KiEndThreadCycleAccumulation

UINT64 __stdcall KiEndThreadCycleAccumulation(_KPRCB *Prcb, _ETHREAD *CurrentThread, UINT64 *TimeStamp){
  UINT64 v5; 
  UINT64 v6; 
  UINT64 v7; 
  unsigned __int64 v8; 
  bool v9; 
  UINT64 result; 
  *((_BYTE *)Prcb + 32) = 1;
  v5 = __rdtsc();
  v6 = v5 - *((_QWORD *)Prcb + 4056);
  v7 = v6 + *((_QWORD *)CurrentThread + 9);
  v8 = v6 + *((unsigned int *)CurrentThread + 20);
  *((_QWORD *)CurrentThread + 9) = v7;
  *((_QWORD *)Prcb + 4056) = v5;
  if( v8 > 0xFFFFFFFF )
    LODWORD(v8) = -1;
  v9 = (*((_BYTE *)CurrentThread + 2) & 0x3E) == 0;
  *((_DWORD *)CurrentThread + 20) = v8;
  if( !v9 )
    KiEndThreadAccountingPeriod(Prcb, (_KTHREAD *)CurrentThread, v6);
  result = v7;
  if( TimeStamp )
    *TimeStamp = v5;
  return result;
}

Referenced by:

KeBoostPriorityThread
KeCpuSetReportParkedProcessors
KeDelayExecutionThread
KeRecomputeCpuSetAffinityProcess
KeRemoveQueueEx
KeSetAffinityThread
KeSetBasePriorityThread
KeSetCpuSetsProcess
KeSetLegacyAffinityThread
KeSetSchedulingGroupRankBias
KeSetSelectedCpuSetsThread
KeSetThreadSchedulerAssist
KeUpdateThreadCpuSets
KeUpdateThreadTag
KeYieldExecution
KiAbForceProcessLockEntry
KiAbThreadUnboostCpuPriority
KiCheckForThreadDispatch
KiExitDispatcher
KiGroupSchedulingGenerationEnd
KiIdleSchedule
KiProcessDeferredReadyList
KiQuantumEnd
KiReadyOutSwappedThreads
KiSchedulerApc
KiSetHeteroPolicyThread
PsImpersonateContainerOfThread