PopAssessSystemIdleEvent
INT64 __fastcall PopAssessSystemIdleEvent(INT64 a1, UINT64 a2, UINT64 *a3){
unsigned __int64 v5;
unsigned int a5;
UINT8 v7;
unsigned __int64 v8;
unsigned __int64 v9;
INT64 v10;
v5 = (unsigned int)a2;
a5 = 0;
v7 = *(_BYTE *)(a1 + 16);
v8 = *(_QWORD *)&KUSER_SHARED_DATA.InterruptTime.LowPart / 0x989680ui64;
v9 = *(_QWORD *)&KUSER_SHARED_DATA.InterruptTime.LowPart / 0x989680ui64 - *(_QWORD *)(a1 + 8);
if( v7 )
{
*a3 = -1i64;
}
else
{
*a3 = v9;
if( (_DWORD)v5 )
{
if( v9 < v5 )
a5 = 1;
}
else
{
a5 = 2;
}
}
*(_QWORD *)(a1 + 24) = v8;
v10 = *(unsigned int *)a1;
*(_QWORD *)(a1 + 32) = v9;
*(_QWORD *)(a1 + 40) = v5;
*(_BYTE *)(a1 + 48) = v7;
*(_DWORD *)(a1 + 52) = a5;
PopDiagTraceSystemIdleEventAssessment(v10, v9, (EVENT_DESCRIPTOR *)v5, v7, a5);
return a5;
}Referenced by:
PopIsSystemIdle