PopIdleChooseDozeS4Time
CHAR __fastcall PopIdleChooseDozeS4Time(UINT64 *a1, INT64 *a2){
UINT64 v2;
CHAR v3;
int v4;
unsigned __int64 v5;
v2 = 0i64;
v3 = 0;
v4 = 0;
v5 = 10000000i64 * *((unsigned int *)PopPolicy + 22);
if( dword_140C231D0 )
{
v3 = 1;
LOBYTE(v4) = dword_140C231D0 != 1;
v4 += 3;
}
else if( qword_140C231C8 > *(__int64 *)&KUSER_SHARED_DATA.SystemTime.LowPart && PopSmartUserPresenceAction == 1 )
{
if( *(_QWORD *)&KUSER_SHARED_DATA.InterruptTime.LowPart - qword_140C231F8 <= 10000000
* (unsigned __int64)(unsigned int)PopSmartUserPresenceGracePeriod )
v2 = 10000000i64 * (unsigned int)PopSmartUserPresenceGracePeriod
- (*(_QWORD *)&KUSER_SHARED_DATA.InterruptTime.LowPart
- qword_140C231F8);
if( (__int64)(v2 + *(_QWORD *)&KUSER_SHARED_DATA.SystemTime.LowPart) < qword_140C231C8
- 10000000
* ((unsigned int)PopSmartUserPresenceWakeOffset
+ 60i64)
&& (!v2 || !v5 || v2 < v5) )
{
v3 = 1;
v4 = 2;
}
v2 = -(__int64)v2;
}
if( v5 && !v4 )
{
v3 = 1;
v2 = -10000000i64 * *((unsigned int *)PopPolicy + 22);
v4 = 1;
}
*a1 = v2;
if( a2 )
*(_DWORD *)a2 = v4;
return v3;
}Referenced by:
PopIdleArmAoAcDozeS4Timer