PopSleepPowerSettingCallback
VOID __fastcall PopSleepPowerSettingCallback(
INT64 a1,
INT64 a2,
INT64 a3,
INT64 a4,
INT64 a5,
INT64 a6,
INT64 a7,
INT64 a8,
INT64 a9,
INT64 a10,
INT64 a11,
INT64 a12,
INT64 a13,
INT64 a14,
INT64 a15,
INT64 a16,
INT64 a17,
INT64 a18,
INT64 a19,
INT64 a20,
INT64 a21,
PADAPTER_OBJECT DmaAdapter){
int v22;
int v25;
__int128 v26;
__int128 v27;
__int128 v28;
__int128 v29;
__int128 v30;
__int128 v31;
__int128 v32;
__int128 v33;
__int128 v34;
__int128 v35;
__int128 v36;
__int64 v37;
__int64 v38;
__int64 v39;
unsigned int IdleTimeout;
INT64 v41;
__int64 v42;
__int64 v43;
__int64 v44;
unsigned int v45;
POWER_ACTION Action;
_SYSTEM_POWER_POLICY NewPolicy;
v22 = a3;
v25 = -1073741811;
PopAcquirePolicyLock();
v26 = *((_OWORD *)PopPolicy + 1);
*(_OWORD *)&NewPolicy.Revision = *(_OWORD *)PopPolicy;
v27 = *((_OWORD *)PopPolicy + 2);
*(_OWORD *)&NewPolicy.SleepButton.Action = v26;
v28 = *((_OWORD *)PopPolicy + 3);
*(_OWORD *)&NewPolicy.LidClose.Flags = v27;
v29 = *((_OWORD *)PopPolicy + 4);
*(_OWORD *)&NewPolicy.Idle.Action = v28;
v30 = *((_OWORD *)PopPolicy + 5);
*(_OWORD *)&NewPolicy.IdleSensitivity = v29;
v31 = *((_OWORD *)PopPolicy + 6);
*(_OWORD *)&NewPolicy.WinLogonFlags = v30;
*(_OWORD *)&NewPolicy.DischargePolicy[0].Enable = v31;
*(_OWORD *)&NewPolicy.DischargePolicy[0].PowerPolicy.EventCode = *((_OWORD *)PopPolicy + 7);
v32 = *((_OWORD *)PopPolicy + 9);
*(_OWORD *)&NewPolicy.DischargePolicy[1].PowerPolicy.Action = *((_OWORD *)PopPolicy + 8);
v33 = *((_OWORD *)PopPolicy + 10);
*(_OWORD *)&NewPolicy.DischargePolicy[2].Enable = v32;
v34 = *((_OWORD *)PopPolicy + 11);
*(_OWORD *)&NewPolicy.DischargePolicy[2].PowerPolicy.EventCode = v33;
v35 = *((_OWORD *)PopPolicy + 12);
*(_OWORD *)&NewPolicy.DischargePolicy[3].PowerPolicy.Action = v34;
v36 = *((_OWORD *)PopPolicy + 13);
v37 = *((_QWORD *)PopPolicy + 28);
*(_OWORD *)&NewPolicy.VideoTimeout = v35;
*(_OWORD *)&NewPolicy.VideoReserved[2] = v36;
*(_QWORD *)&NewPolicy.OverThrottled.Flags = v37;
v38 = *(_QWORD *)a1;
v39 = *(_QWORD *)&GUID_STANDBY_TIMEOUT.Data1 - *(_QWORD *)a1;
if( *(_QWORD *)&GUID_STANDBY_TIMEOUT.Data1 == *(_QWORD *)a1 )
v39 = *(_QWORD *)GUID_STANDBY_TIMEOUT.Data4 - *(_QWORD *)(a1 + 8);
if( !v39 && v22 == 4 && a2 )
{
IdleTimeout = *(_DWORD *)a2;
NewPolicy.IdleTimeout = *(_DWORD *)a2;
if( *(&PopCapabilities + 5) || *(_WORD *)(&PopCapabilities + 3) )
NewPolicy.Idle.Action = PowerActionSleep;
v25 = 0;
}
else
{
IdleTimeout = NewPolicy.IdleTimeout;
}
v41 = *(_QWORD *)&GUID_HIBERNATE_TIMEOUT.Data1 - v38;
if( *(_QWORD *)&GUID_HIBERNATE_TIMEOUT.Data1 == v38 )
v41 = *(_QWORD *)GUID_HIBERNATE_TIMEOUT.Data4 - *(_QWORD *)(a1 + 8);
if( !v41 && v22 == 4 && a2 )
{
v45 = *(_DWORD *)a2;
NewPolicy.DozeS4Timeout = *(_DWORD *)a2;
if( !IdleTimeout && v45 && *(&PopCapabilities + 6) )
{
Action = NewPolicy.Idle.Action;
if( *(&PopCapabilities + 7) )
Action = PowerActionHibernate;
NewPolicy.Idle.Action = Action;
}
v25 = 0;
}
if( v25 >= 0 )
{
LOBYTE(v41) = 1;
PopApplyPolicy(v41, 0i64, &NewPolicy, 0xE8ui64);
}
v42 = *(_QWORD *)&GUID_HIBERNATE_FASTS4_POLICY.Data1 - *(_QWORD *)a1;
if( *(_QWORD *)&GUID_HIBERNATE_FASTS4_POLICY.Data1 == *(_QWORD *)a1 )
v42 = *(_QWORD *)GUID_HIBERNATE_FASTS4_POLICY.Data4 - *(_QWORD *)(a1 + 8);
if( !v42 && v22 == 4 && a2 )
byte_140C23D1C = *(_DWORD *)a2 == 0;
v43 = *(_QWORD *)&GUID_ALLOW_STANDBY_STATES.Data1 - *(_QWORD *)a1;
if( *(_QWORD *)&GUID_ALLOW_STANDBY_STATES.Data1 == *(_QWORD *)a1 )
v43 = *(_QWORD *)GUID_ALLOW_STANDBY_STATES.Data4 - *(_QWORD *)(a1 + 8);
if( !v43 && v22 == 4 && a2 )
byte_140C23D1D = *(_DWORD *)a2 == 0;
v44 = *(_QWORD *)&GUID_UNATTEND_SLEEP_TIMEOUT.Data1 - *(_QWORD *)a1;
if( *(_QWORD *)&GUID_UNATTEND_SLEEP_TIMEOUT.Data1 == *(_QWORD *)a1 )
v44 = *(_QWORD *)GUID_UNATTEND_SLEEP_TIMEOUT.Data4 - *(_QWORD *)(a1 + 8);
if( !v44 && v22 == 4 && a2 )
{
*(_DWORD *)dword_140C23D20 = *(_DWORD *)a2;
PopInitSIdle();
}
PopReleasePolicyLock();
}Referenced by:
No references.