PopInitSIdle
VOID __stdcall PopInitSIdle(){
unsigned int v0;
unsigned int a7;
UINT8 v2;
unsigned int v3;
INT64 v4;
CHAR a5;
int v6;
int v7;
int v8;
__int64 v9;
_SYSTEM_POWER_CAPABILITIES v10;
INT64 result;
int v12;
INT64 Source2;
int v14;
unsigned int v15;
a7 = v0;
memset((INT64)&result, 0i64);
memset((INT64)&v10, 0i64);
if( PopPlatformAoAc )
{
PopUpdateSystemIdleContext(a7);
return;
}
v2 = 1;
v12 = -1;
HIDWORD(Source2) = 1;
v3 = 5;
v14 = *((_DWORD *)PopPolicy + 14);
v15 = 2;
if( (PopFullWake & 3) == 0 && *(_DWORD *)dword_140C23D20 && (*(_DWORD *)PopSimulate & 0x1000000) == 0 )
{
v3 = 4;
if( (unsigned int)(Action - 2) <= 1 )
{
v15 = *(&Action + 1);
LODWORD(Source2) = Action;
}
else
{
LODWORD(Source2) = 2;
v15 = 4;
}
v14 = 0;
v12 = *(_DWORD *)dword_140C23D20;
goto LABEL_5;
}
PopFilterCapabilities((_SYSTEM_POWER_CAPABILITIES *)&PopCapabilities, &v10);
if( !*((_DWORD *)PopPolicy + 15) )
{
if( !*((_DWORD *)PopPolicy + 22) )
goto LABEL_5;
goto LABEL_32;
}
if( v10.spare2[2] )
{
LODWORD(Source2) = 2;
v3 = 1;
v8 = *((_DWORD *)PopPolicy + 15);
v15 = 1;
}
else
{
if( !*(_WORD *)&v10.SystemS1 && !v10.SystemS3 )
{
LABEL_32:
if( !PopIsDozeSupported(&v10.PowerButtonPresent) || !*(_DWORD *)(v9 + 88) )
goto LABEL_5;
v3 = 3;
LODWORD(Source2) = 3;
v8 = *(_DWORD *)(v9 + 88);
v15 = 5;
goto LABEL_35;
}
LODWORD(Source2) = 2;
v3 = 2;
v8 = *((_DWORD *)PopPolicy + 15);
v15 = 4;
}
LABEL_35:
v12 = v8;
LABEL_5:
if( RtlCompareMemory(&Source1, &Source2, 0xCui64) == 12
&& (v4 = (unsigned int)dword_140C231C0, (_DWORD)dword_140C231C0 == v15)
&& (a5 = ::a5[0], *(_DWORD *)::a5 == v12) )
{
v2 = 0;
}
else
{
PopResetIdleTime(4i64);
v4 = v15;
a5 = v12;
dword_140C231BC = v14;
Source1 = Source2;
byte_140C231D4 = 1;
LODWORD(dword_140C231C0) = v15;
*(_DWORD *)::a5 = v12;
if( dword_140C002E0 )
v6 = dword_140C231C4 | 1;
else
v6 = dword_140C231C4 & 0xFFFFFFFE;
dword_140C231C4 = v6;
if( !byte_140C23E54 )
{
if( dword_140C00300 )
v7 = v6 | 2;
else
v7 = v6 & 0xFFFFFFFD;
dword_140C231C4 = v7;
}
}
PopTraceSystemIdleTimeoutInitialization(
v2,
v3,
(EVENT_DESCRIPTOR *)(unsigned int)Source1,
v4,
a5,
SBYTE4(Source1),
a7);
}Referenced by:
PopApplyPolicy
PopBatteryApplyCompositeState
PopDispatchFullWake
PopSleepPowerSettingCallback
PopTransitionSystemPowerStateEx