PopValidateRTCWake
UINT8 __stdcall PopValidateRTCWake(UINT8 *Uncertain){
unsigned __int64 v1;
int v2;
unsigned int v3;
unsigned __int8 v4;
UINT8 v5;
int v7;
int v8;
unsigned __int64 v9;
__int64 v11;
INT64 v12;
INT64 v13;
SYSTEM_BATTERY_STATE PowerState;
v1 = 0i64;
v2 = *(&stru_140C23628 + 2960) & 0x18;
*Uncertain = 0;
v3 = 0;
v4 = 0;
v5 = 0;
v7 = 1;
if( v2 == 16 )
{
v8 = 1;
dword_140C232C0 = 1;
goto LABEL_6;
}
if( v2 == 8 )
{
v8 = 0;
v4 = 1;
dword_140C232C0 = 0;
goto LABEL_6;
}
if( v2 )
{
PopCurrentPowerStatePrecise(&PowerState);
dword_140C232C0 = *(&stru_140C23628 + 441);
}
v8 = dword_140C232C0;
if( dword_140C232C0 >= 0 )
{
LABEL_6:
if( (unsigned __int64)v8 < 3 )
goto LABEL_11;
}
if( (*(&stru_140C23628 + 2960) & 4) == 0 )
*Uncertain = 1;
if( ProgrammedWakeTimeDc && ProgrammedWakeTimeAc > ProgrammedWakeTimeDc )
{
v8 = 1;
dword_140C232C0 = 1;
}
else
{
v8 = 0;
*Uncertain = 0;
dword_140C232C0 = 0;
v4 = 1;
}
LABEL_11:
v9 = *(&ProgrammedWakeTimeAc + 3 * v8);
if( v9 )
{
v11 = qword_140C232A8;
v1 = v11 - 10000 * (unsigned int)PopCalculateWakeTimeAdjustment();
if( v9 - 100000000 < v1 )
{
if( v1 <= v9
|| v1 - v9 < (-(__int64)(PopPendingUserPresenceDuringSystemSleep != 0) & 0xFFFFFFFFBE6F5500ui64) + 1200000000 )
{
v5 = 1;
}
else
{
dword_140C232C0 = 3;
v3 = 3;
*Uncertain = 0;
}
}
else
{
dword_140C232C0 = 3;
v3 = 2;
*Uncertain = 0;
}
v7 = 0;
}
else
{
dword_140C232C0 = 3;
v3 = 1;
*Uncertain = 0;
}
LODWORD(v13) = v4;
LODWORD(v12) = v7;
PopDiagTraceRtcWakeInfo(v4, v5, v3, *Uncertain, v12, v13, v1);
return v5;
}Referenced by:
PopHandleWakeSources