KiSetClockTickRate

UINT64 __stdcall KiSetClockTickRate(UINT64 DesiredIncrement){
  char v1; 
  _KI_CLOCK_STATE v2; 
  char v3; 
  unsigned int v4; 
  int v5; 
  __int64 v6; 
  char *v7; 
  int v8; 
  UINT64 result; 
  UINT64 DeliveredIncrement; 
  UINT64 RequestedIncrement; 

  v2 = KiClockState;
  DeliveredIncrement = 0i64;
  v3 = v1;
  v4 = DesiredIncrement;
  RequestedIncrement = (unsigned int)DesiredIncrement;
  LODWORD(KiLastRequestedTimeIncrement) = DesiredIncrement;
  if( v1 )
  {
    ((void(__fastcall *)(__int64, _QWORD, UINT64 *))off_140C00890[0])(
      1i64,
      (unsigned int)DesiredIncrement,
      &DeliveredIncrement);
    v5 = 1;
  }
  else
  {
    ((void(__fastcall *)(_QWORD, _QWORD, UINT64 *))off_140C00890[0])(
      0i64,
      (unsigned int)DesiredIncrement,
      &DeliveredIncrement);
    v5 = 0;
  }
  KiClockOwnerOneShotRequestState = v5;
  KiSetPendingTick(1u);
  if( v2 == ClockStatePendingPeriodic )
    v2 = _InterlockedExchange((volatile __int32 *)&KiClockState, 0);
  KiEventClockStateChange(ClockStatePeriodic, v2, &DeliveredIncrement, &RequestedIncrement);
  KeTimeIncrement = DeliveredIncrement;
  v6 = *(_QWORD *)&KUSER_SHARED_DATA.InterruptTime.LowPart;
  KiClockTimerNextTickTime = *(_QWORD *)&KUSER_SHARED_DATA.InterruptTime.LowPart + (unsigned int)DeliveredIncrement;
  if( (unsigned int)DeliveredIncrement < dword_140C31374 )
    dword_140C31374 = DeliveredIncrement;
  if( (unsigned int)DeliveredIncrement > dword_140C31370 )
    dword_140C31370 = DeliveredIncrement;
  if( v4 < dword_140C3137C )
    dword_140C3137C = v4;
  if( v4 > dword_140C31378 )
    dword_140C31378 = v4;
  v7 = (char *)&KiClockIncrementTrace + 32 * (unsigned int)KiClockIncrementTraceCount;
  KiClockIncrementTraceCount = ((_BYTE)KiClockIncrementTraceCount + 1) & 0xF;
  v8 = KiLastRequestedTimeIncrement;
  *(_DWORD *)v7 = DeliveredIncrement;
  *((_DWORD *)v7 + 1) = v8;
  *((_QWORD *)v7 + 1) = v6;
  *((_QWORD *)v7 + 2) = KeQueryPerformanceCounter(0i64);
  result = (unsigned int)KeTimeIncrement;
  v7[24] = v3;
  return result;
}

Referenced by:

KiSetClockIntervalToMinimumRequested