KiUpdateTotalCyclesCurrentThread

UINT64 __fastcall KiUpdateTotalCyclesCurrentThread(__int64 a1, __int64 a2, unsigned __int64 *a3){
  unsigned __int64 v6; 
  UINT64 v7; 
  UINT64 v8; 
  unsigned __int64 v9; 
  bool v10; 
  *(_BYTE *)(a1 + 32) = 1;
  v6 = __rdtsc();
  v7 = v6 - *(_QWORD *)(a1 + 32448);
  v8 = v7 + *(_QWORD *)(a2 + 72);
  v9 = v7 + *(unsigned int *)(a2 + 80);
  *(_QWORD *)(a2 + 72) = v8;
  if( v9 > 0xFFFFFFFF )
    LODWORD(v9) = -1;
  *(_QWORD *)(a1 + 32448) = v6;
  v10 = (*(_BYTE *)(a2 + 2) & 0x3E) == 0;
  *(_DWORD *)(a2 + 80) = v9;
  if( !v10 )
    KiEndThreadAccountingPeriod((_KPRCB *)a1, (_KTHREAD *)a2, v7);
  if( a3 )
    *a3 = v6;
  KiStartThreadCycleAccumulation((_KPRCB *)a1, (_KTHREAD *)a2, 0);
  return v8;
}

Referenced by:

KeBoostPriorityThread
KeDelayExecutionThread
KeRemovePriQueue
KeSetActualBasePriorityThread
KeSetBasePriorityThread
KeSetPriorityAndQuantumProcess
KeSetPriorityThread
KeSetThreadChargeOnlySchedulingGroup
KeUpdateTotalCyclesCurrentThread
KeYieldExecution
KiCompleteDirectSwitchThread
KiReduceByEffectiveIdleSmtSet
KiRemoveThreadFromSchedulingGroup
KiStartDebugAccumulation
PspRevertContainerImpersonation