PopNewWakeInfo
VOID __stdcall PopNewWakeInfo(){
VOID **PoolWithTag;
VOID **v1;
_QWORD *v2;
_QWORD *v3;
__int64 v4;
__int64 v5;
_QWORD *v6;
_QWORD *v7;
_KLOCK_QUEUE_HANDLE LockHandle;
memset(&LockHandle, 0, sizeof(LockHandle));
PoolWithTag = ExAllocatePoolWithTag(0x200ui64, 0xB0ui64, 544040269i64);
v1 = PoolWithTag;
if( PoolWithTag )
{
memset(PoolWithTag, 0i64, 0xB0u);
*((_DWORD *)v1 + 4) = 1;
v1[4] = v1 + 3;
v1[3] = v1 + 3;
v1[1] = v1;
*v1 = v1;
}
PopAcquireWakeSourceSpinLock(&LockHandle);
v2 = (_QWORD *)*(&stru_140C23628 + 356);
if( *(&stru_140C23628 + 356) )
{
v4 = *(&stru_140C23628 + 359);
if( *(_UNKNOWN **)(*(&stru_140C23628 + 359) + 8i64) != (_UNKNOWN *)((char *)&stru_140C23628 + 2872) )
goto LABEL_15;
*(&stru_140C23628 + 356) = 0i64;
++*(&stru_140C23628 + 708);
*v2 = *(&stru_140C23628 + 359);
v2[1] = (char *)&stru_140C23628 + 2872;
*(_QWORD *)(v4 + 8) = v2;
*(&stru_140C23628 + 359) = v2;
}
v3 = (_QWORD *)*(&stru_140C23628 + 357);
if( *(&stru_140C23628 + 357) )
{
v5 = *(&stru_140C23628 + 359);
if( *(_UNKNOWN **)(*(&stru_140C23628 + 359) + 8i64) != (_UNKNOWN *)((char *)&stru_140C23628 + 2872) )
goto LABEL_15;
*(&stru_140C23628 + 357) = 0i64;
++*(&stru_140C23628 + 708);
*v3 = *(&stru_140C23628 + 359);
v3[1] = (char *)&stru_140C23628 + 2872;
*(_QWORD *)(v5 + 8) = v3;
*(&stru_140C23628 + 359) = v3;
}
if( v1 )
{
*(&stru_140C23628 + 357) = v1;
if( *(&stru_140C23628 + 708) == 1 )
{
v6 = (_QWORD *)*(&stru_140C23628 + 360);
v7 = *(_QWORD **)(*(&stru_140C23628 + 360) + 8i64);
if( (_UNKNOWN *)**(&stru_140C23628 + 360) == (_UNKNOWN *)((char *)&stru_140C23628 + 2872)
&& *v7 == *(&stru_140C23628 + 360) )
{
*(&stru_140C23628 + 360) = *(_QWORD *)(*(&stru_140C23628 + 360) + 8i64);
*v7 = (char *)&stru_140C23628 + 2872;
v6[1] = v6;
*v6 = v6;
PopWakeInfoDereference((__int64)v6);
--*(&stru_140C23628 + 708);
goto LABEL_7;
}
LABEL_15:
__fastfail(3u);
}
}
LABEL_7:
PopReleaseWakeSourceSpinLock(&LockHandle);
KeResetEvent((_KEVENT *)((char *)&stru_140C23628 + 2936));
*(&stru_140C23628 + 740) = 0;
}Referenced by:
PopTransitionSystemPowerStateEx