PopCalculateIdleInformation

UINT64 __fastcall PopCalculateIdleInformation(__int64 a1, UINT64 *a2){
  __int64 v2; 
  __int64 v3; 
  __int64 v4; 
  unsigned int v5; 
  int v6; 
  unsigned __int64 v7; 
  unsigned __int64 v8; 
  int v9; 
  unsigned int v10; 
  UINT64 *v11; 
  int v12; 
  UINT64 v13; 
  UINT64 result; 
  UINT64 SourceFrequency; 
  UINT64 v17; 

  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;
  }
  v17 = 0i64;
  LODWORD(v7) = PpmQueryPlatformStateResidency((unsigned int)PlatformIdleStateIndex, a2);
  v8 = v7;
  if( v7 != -1i64 )
    v8 = v7 / 0xA;
  v9 = 0;
  v10 = 0;
  if( v5 )
  {
    v11 = (UINT64 *)(v4 + 56);
    v12 = PlatformIdleStateIndex;
    do
    {
      SourceFrequency = PopQpcFrequency;
      v2 += PpmConvertTime(*v11, PopQpcFrequency, 0xF4240ui64);
      if( v12 != -1 && v10 == v12 )
      {
        v13 = PpmConvertTime(*v11, SourceFrequency, 0xF4240ui64);
        v9 = *((_DWORD *)v11 - 6);
        v17 = v13;
      }
      ++v10;
      v11 += 126;
    }
    while( v10 < v5 );
    v3 = a1;
  }
  result = v17;
  *(_QWORD *)v3 = v2;
  *(_QWORD *)(v3 + 8) = v17;
  *(_QWORD *)(v3 + 16) = v8;
  *(_DWORD *)(v3 + 24) = v9;
  *(_DWORD *)(v3 + 28) = v6;
  return result;
}

Referenced by:

PopCalculateCsSummary
PopCaptureSleepStudyStatistics
PopDripsWatchdogCallbackWorker
PopDripsWatchdogDiagnosticWorker
PopDripsWatchdogStartWatchdog
PopSleepstudySnapModernStandbySessionData
PopSleepstudyStartNextSession