HalpMmAllocCtxAllocBuffer
_DWORD *__fastcall HalpMmAllocCtxAllocBuffer(__int64 a1, SIZE_T a2){
SIZE_T v3;
_DWORD *PoolWithTag;
_DWORD *v5;
VOID *v6;
__int64 v7;
_DWORD *v8;
v3 = a2 >> 4;
PoolWithTag = ExAllocatePoolWithTag(NonPagedPoolNx, (a2 >> 7) + 48, 0x626C6148ui64);
v5 = PoolWithTag;
if( !PoolWithTag )
return 0i64;
memset((INT64)PoolWithTag, 0i64);
v5[8] = v3;
*((_QWORD *)v5 + 5) = ((unsigned __int64)v5 + 51) & 0xFFFFFFFFFFFFFFFCui64;
*((_QWORD *)v5 + 1) = v5;
*(_QWORD *)v5 = v5;
v6 = ExAllocatePoolWithTag(NonPagedPoolNx, a2, 0x426C6148ui64);
*((_QWORD *)v5 + 2) = v6;
if( v6 )
{
v8 = v5;
v5 = 0i64;
}
else
{
v8 = 0i64;
}
if( v5 )
HalpMmAllocCtxBufferCleanup(v7, v5);
return v8;
}Referenced by:
HalpMmAllocCtxAlloc