PoDisableSleepStates
INT64 __fastcall PoDisableSleepStates(INT64 a1, INT64 a2, CHAR **a3){
int v3;
int v5;
_QWORD *PoolWithTag;
unsigned int v7;
__int64 v8;
__int64 *v9;
v3 = a2;
v5 = a1;
PoolWithTag = ExAllocatePoolWithTag(PagedPool, 0x18ui64, 0x64536F50ui64);
v7 = 0;
v8 = (__int64)PoolWithTag;
if( PoolWithTag )
{
*PoolWithTag = 0i64;
PoolWithTag[1] = 0i64;
*((_DWORD *)PoolWithTag + 4) = v5;
*((_DWORD *)PoolWithTag + 5) = v3;
ExAcquireFastMutex(&PopDisableSleepMutex);
v9 = (__int64 *)qword_140C24998;
if( *(__int64 **)qword_140C24998 != &PopDisableSleepList )
__fastfail(3u);
*(_QWORD *)v8 = &PopDisableSleepList;
*(_QWORD *)(v8 + 8) = v9;
*v9 = v8;
qword_140C24998 = v8;
KeReleaseGuardedMutex(&PopDisableSleepMutex);
*a3 = (CHAR *)v8;
}
else
{
return(unsigned int)-1073741670;
}
return v7;
}Referenced by:
HalpLoadMicrocode
PoInitHiberServices
VslpIumPhase4Initialize