PsQueryTotalCycleTimeProcess

__int64 __fastcall PsQueryTotalCycleTimeProcess(__int64 a1, unsigned __int64 *a2){
  _KTHREAD *CurrentThread; 
  INT64 *v5; 
  __int64 v6; 
  _QWORD **v7; 
  _QWORD *v8; 
  __int64 v9; 
  CurrentThread = (_ETHREAD *)KeGetCurrentThread();
  KeFlushProcessWriteBuffers(1u);
  KeUpdateTotalCyclesCurrentThread((_KTHREAD *)CurrentThread, a2);
  --*((_WORD *)CurrentThread + 242);
  v5 = (INT64 *)(a1 + 2144);
  ExAcquirePushLockSharedEx(a1 + 2144, 0i64);
  v6 = *(_QWORD *)(a1 + 864);
  v7 = (_QWORD **)(a1 + 1504);
  v8 = *v7;
  while( v8 != v7 )
  {
    v9 = *(v8 - 148);
    v8 = (_QWORD *)*v8;
    v6 += v9;
  }
  if( _InterlockedCompareExchange64(v5, 0i64, 17i64) != 17 )
    ExfReleasePushLockShared(v5);
  KeAbPostRelease(v5);
  KeLeaveCriticalRegionThread((__int64)CurrentThread);
  return v6;
}

Referenced by:

NtQueryInformationProcess