PopExecuteSystemIdleAction
INT64 __fastcall PopExecuteSystemIdleAction(_LOADER_PARAMETER_BLOCK *LoaderBlock){
char v1;
__int64 v2;
UINT8 v3;
__int64 v4;
unsigned int v5;
unsigned __int64 v6;
CHAR v7;
unsigned int updated;
UINT64 a5;
INT64 a3;
int v12;
INT64 a1[2];
__int64 v14;
v3 = v1;
*(_OWORD *)a1 = 0i64;
v14 = 0i64;
v4 = v2;
v5 = (unsigned int)LoaderBlock;
v6 = *(_QWORD *)&KUSER_SHARED_DATA.InterruptTime.LowPart / 0x989680ui64;
if( (_DWORD)LoaderBlock == 1 )
{
v7 = v1;
goto LABEL_10;
}
if( (int)LoaderBlock <= 2 )
goto LABEL_8;
if( (int)LoaderBlock > 4 )
{
if( (_DWORD)LoaderBlock == 5 )
{
v7 = 0;
LABEL_10:
updated = PopUpdatePdcSystemIdleState(v7);
goto LABEL_11;
}
LABEL_8:
updated = -1073741811;
goto LABEL_11;
}
updated = 0;
if( v1 )
{
a1[0] = 0x8000000007i64;
v12 = 0;
a3 = 0x8000002400000003ui64;
PopAcquirePolicyLock();
LODWORD(a5) = 1;
PopExecutePowerAction((INT64)a1, 0i64, (INT64)&a3, 5i64, a5);
PopReleasePolicyLock();
}
LABEL_11:
*(_QWORD *)v4 = v6;
*(_DWORD *)(v4 + 8) = v5;
*(_BYTE *)(v4 + 12) = v3;
*(_DWORD *)(v4 + 16) = updated;
PopDiagTraceSystemIdleAction(v5, v3, (EVENT_DESCRIPTOR *)updated);
return updated;
}Referenced by:
PopSystemIdleWorker