PopGetHwConfigurationSignature
UINT64 __stdcall PopGetHwConfigurationSignature(){
VOID *v0;
unsigned int v1;
unsigned int v2;
int v3;
VOID **PoolWithTag;
VOID **v5;
int v6;
_LARGE_INTEGER v7;
_DWORD *v8;
UINT64 NumberOfBytes;
int v11;
int v12;
int v13;
int v14;
int v15;
v15 = 0;
v0 = 0i64;
v12 = 1;
v14 = 0;
NumberOfBytes = 0i64;
v1 = 0;
v11 = 1094930505;
v13 = 1346584902;
v2 = 4;
ZwQuerySystemInformation();
if( v3 == -1073741789 )
{
PoolWithTag = ExAllocatePoolWithTag(0x200ui64, (unsigned int)NumberOfBytes, 544040269i64);
v5 = PoolWithTag;
if( PoolWithTag )
{
*(_DWORD *)PoolWithTag = 1094930505;
*((_DWORD *)PoolWithTag + 1) = 1;
*((_DWORD *)PoolWithTag + 2) = 1346584902;
*((_DWORD *)PoolWithTag + 3) = NumberOfBytes - 16;
ZwQuerySystemInformation();
if( v6 >= 0 && *((_BYTE *)v5 + 24) >= 5u )
{
v7.QuadPart = *((unsigned int *)v5 + 13);
HalGetMemoryCachingRequirements(v7, 0x40ui64, (_MEMORY_CACHING_TYPE *)&NumberOfBytes + 1);
if( HIDWORD(NumberOfBytes) != 1 )
{
v2 = 516;
if( HIDWORD(NumberOfBytes) == 2 )
v2 = 1028;
}
v8 = MmMapIoSpaceEx(v7, 0x40ui64, v2);
v0 = v8;
if( *v8 == 1396916550 )
v1 = v8[2];
}
ExFreePoolWithTag(v5, 0x206D654Du);
if( v0 )
MmUnmapIoSpace(v0, 0x40ui64);
}
}
return v1;
}Referenced by:
PopAllocateHiberContext