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