PopIsSystemIdle
BOOL __fastcall PopIsSystemIdle(INT64 a1, UINT64 a2, UINT64 *a3, INT64 a4){
unsigned int v4;
UINT64 v5;
unsigned int v7;
unsigned int v9;
EVENT_DESCRIPTOR *v11;
unsigned __int128 v12;
BOOL result;
UINT64 v14;
v14 = 0i64;
v4 = 0;
v5 = -1i64;
v7 = 0;
v9 = a2;
do
{
if( (unsigned int)PopAssessSystemIdleEvent(a1, v9, &v14) )
v4 |= 1 << v7;
if( v5 >= v14 )
v5 = v14;
++v7;
a1 += 56i64;
}
while( v7 < 4 );
*a3 = v5;
LOBYTE(v11) = v4 == 0;
v12 = *(unsigned __int64 *)&KUSER_SHARED_DATA.InterruptTime.LowPart * (unsigned __int128)0xD6BF94D5E57A42BDui64;
*(_DWORD *)(a4 + 8) = v9;
*(_QWORD *)a4 = *((_QWORD *)&v12 + 1) >> 23;
*(_DWORD *)(a4 + 12) = v4;
*(_BYTE *)(a4 + 16) = v4 == 0;
PopDiagTraceSystemIdleAssessment(v9, v4, v11);
LOBYTE(result) = v4 == 0;
return result;
}Referenced by:
PopSystemIdleWorker