ExAllocatePoolSanityChecks
VOID __fastcall ExAllocatePoolSanityChecks(
_POOL_TYPE PoolType,
UINT64 NumberOfBytes,
UINT64 *Tag,
VOID *CallingAddress){
unsigned int v4;
__int64 v6;
UINT64 v9;
unsigned __int8 CurrentIrql;
UINT64 v11;
UINT64 v12;
v4 = *(_DWORD *)Tag;
v6 = PoolType;
if( *(_DWORD *)Tag )
{
if( v4 == 541542722 )
{
if( (MmVerifierData & 1) != 0 )
VerifierBugCheckIfAppropriate(
0xC2ui64,
0x9Cui64,
(int)PoolType & 0xFFFFFFFFFFFFFF7Fui64,
NumberOfBytes,
(UINT64)CallingAddress,
v12);
*(_DWORD *)Tag = 828662082;
}
else if( !(unsigned int)ExpIsPoolTagPrintable(v4) )
{
if( (MmVerifierData & 1) != 0 )
VerifierBugCheckIfAppropriate(0xC2ui64, 0x9Dui64, v9, v6 & 0xFFFFFFFFFFFFFF7Fui64, (UINT64)CallingAddress, v12);
*(_DWORD *)Tag = 845439298;
}
}
else
{
if( (MmVerifierData & 1) != 0 )
VerifierBugCheckIfAppropriate(
0xC2ui64,
0x9Bui64,
(int)PoolType & 0xFFFFFFFFFFFFFF7Fui64,
NumberOfBytes,
(UINT64)CallingAddress,
v12);
*(_DWORD *)Tag = 811884866;
}
if( !NumberOfBytes && (MmVerifierData & 1) != 0 )
VerifierBugCheckIfAppropriate(0xC4ui64, 0i64, KeGetCurrentIrql(), v6 & 0xFFFFFFFFFFFFFF7Fui64, 0i64, v12);
CurrentIrql = KeGetCurrentIrql();
if( (v6 & 1) != 0 )
{
if( CurrentIrql > 1u && (MmVerifierData & 1) != 0 )
{
v11 = 1i64;
LABEL_23:
VerifierBugCheckIfAppropriate(0xC4ui64, v11, KeGetCurrentIrql(), v6 & 0xFFFFFFFFFFFFFF7Fui64, NumberOfBytes, v12);
}
}
else
{
v11 = 2i64;
if( CurrentIrql > 2u && (MmVerifierData & 1) != 0 )
goto LABEL_23;
}
}Referenced by:
VeAllocatePoolWithTagPriority