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