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