PopVerifySystemPowerState
VOID __fastcall PopVerifySystemPowerState(INT64 *a1, INT64 a2){
int v2;
INT64 *v3;
int v4;
char v5;
BYTE *v6;
BYTE *v7;
BYTE *v9;
v2 = a2;
v3 = a1;
if( a1 )
{
v4 = *(_DWORD *)a1;
if( *(int *)a1 <= -1 || (unsigned int)(v4 - 2) <= 3 )
{
v5 = 1;
if( (int)a2 >= 0 )
{
v6 = &PopCapabilities;
if( (int)a2 > 1 )
{
if( (_DWORD)a2 != 2 )
goto LABEL_8;
}
else
{
if( v4 == 5 )
{
if( PopIsHiberbootSupported((INT64)&PopCapabilities) )
goto LABEL_8;
if( PopIsHibernateSupported(v7) )
goto LABEL_8;
v4 = 4;
}
if( v4 == 4 )
{
if( *(&PopCapabilities + 5) )
goto LABEL_8;
v4 = 3;
}
if( v4 == 3 )
{
if( *(&PopCapabilities + 4) )
goto LABEL_8;
v4 = 2;
}
if( v4 == 2 )
{
if( *(&PopCapabilities + 3) )
goto LABEL_8;
v4 = 1;
}
if( v4 != 1 || v2 != 1 )
goto LABEL_8;
v5 = 0;
v4 = 2;
}
if( v4 == 2 )
{
if( *(&PopCapabilities + 3) )
goto LABEL_8;
v4 = 3;
}
if( v4 == 3 )
{
if( *(&PopCapabilities + 4) )
goto LABEL_8;
v4 = 4;
}
if( v4 == 4 )
{
if( *(&PopCapabilities + 5) )
goto LABEL_8;
v4 = 5;
}
if( v4 == 5 && (!v5 || !PopIsHiberbootSupported((INT64)v6) && !PopIsHibernateSupported(v9)) )
v4 = 1;
}
LABEL_8:
*(_DWORD *)v3 = v4;
}
}
}Referenced by:
PdcPoVerifyPowerState
PopActionRetrieveInitialState
PopAdvanceSystemPowerState
PopExecutePowerAction
PopVerifySystemPowerPolicy