PopPowerTransitionTimesInMs

VOID __stdcall PopPowerTransitionTimesInMs(
        UINT64 *SleepTimeMs,
        UINT64 *ResumeTimeMs,
        UINT64 *HiberHiberFileTimeMs,
        UINT64 *ResumeHiberFileTimeMs,
        UINT64 *BiosInitTimeMs){
  unsigned __int64 v8; 
  UINT64 *v9; 
  int v10; 
  _LARGE_INTEGER StartTime; 
  _DWORD *v12; 

  v8 = 1000i64 * KeGetCurrentPrcb()->MHz;
  if( SleepTimeMs )
    *(_DWORD *)SleepTimeMs = PopQpcTimeInMs(
                               (_LARGE_INTEGER *)&stru_140C23628 + 36,
                               (_LARGE_INTEGER *)&stru_140C23628 + 37);
  if( ResumeTimeMs )
    *(_DWORD *)ResumeTimeMs = PopQpcTimeInMs(
                                (_LARGE_INTEGER *)&stru_140C23628 + 40,
                                (_LARGE_INTEGER *)&stru_140C23628 + 41);
  v9 = BiosInitTimeMs;
  if( BiosInitTimeMs )
  {
    StartTime.QuadPart = 0i64;
    v10 = PopQpcTimeInMs(&StartTime, (_LARGE_INTEGER *)&stru_140C23628 + 44);
    *(_DWORD *)v9 = v10;
    if( *(&stru_140C23628 + 218) )
      *(_DWORD *)v9 = *(&stru_140C23628 + 120) + v10;
  }
  if( HiberHiberFileTimeMs )
    *(_DWORD *)HiberHiberFileTimeMs = *(&stru_140C23628 + 53) / v8;
  if( ResumeHiberFileTimeMs )
    *(_DWORD *)ResumeHiberFileTimeMs = (*(&stru_140C23628 + 92) + *(&stru_140C23628 + 67)) / v8;
  if( v12 )
    *v12 = *(&stru_140C23628 + 49) / v8;
}

Referenced by:

PopCalculateWakeTimeAdjustment
PopDiagTracePowerTransitionTime