PopCalculateIdleInformation

UINT64 __fastcall PopCalculateIdleInformation(INT64 a1, UINT64 *a2){
  __int64 v2; 
  INT64 v3; 
  __int64 v4; 
  unsigned int v5; 
  int v6; 
  UINT64 PlatformStateResidency; 
  int v8; 
  unsigned int v9; 
  UINT64 *v10; 
  int v11; 
  UINT64 v12; 
  UINT64 result; 
  ULONGLONG SourceFrequency; 
  UINT64 v16; 
  v2 = 0i64;
  v3 = a1;
  if( PpmPlatformStates )
  {
    v4 = *(_QWORD *)(PpmPlatformStates + 48);
    v5 = *(_DWORD *)(v4 + 4);
    v6 = *(_DWORD *)(v4 + 8);
  }
  else
  {
    v4 = 0i64;
    v5 = 0;
    v6 = 0;
  }
  v16 = 0i64;
  PlatformStateResidency = PpmQueryPlatformStateResidency((unsigned int)PlatformIdleStateIndex);
  if( PlatformStateResidency != -1i64 )
    PlatformStateResidency /= 0xAui64;
  v8 = 0;
  v9 = 0;
  if( v5 )
  {
    v10 = (UINT64 *)(v4 + 56);
    v11 = PlatformIdleStateIndex;
    do
    {
      SourceFrequency = PopQpcFrequency;
      v2 += PpmConvertTime(*v10, PopQpcFrequency, 0xF4240ui64);
      if( v11 != -1 && v9 == v11 )
      {
        v12 = PpmConvertTime(*v10, SourceFrequency, 0xF4240ui64);
        v8 = *((_DWORD *)v10 - 6);
        v16 = v12;
      }
      ++v9;
      v10 += 126;
    }
    while( v9 < v5 );
    v3 = a1;
  }
  result = v16;
  *(_QWORD *)v3 = v2;
  *(_QWORD *)(v3 + 8) = v16;
  *(_QWORD *)(v3 + 16) = PlatformStateResidency;
  *(_DWORD *)(v3 + 24) = v8;
  *(_DWORD *)(v3 + 28) = v6;
  return result;
}

Referenced by:

PopCalculateCsSummary
PopCaptureSleepStudyStatistics
PopDripsWatchdogCallbackWorker
PopDripsWatchdogDiagnosticWorker
PopDripsWatchdogStartWatchdog
PopSleepstudySnapModernStandbySessionData
PopSleepstudyStartNextSession