HalpMmAllocCtxAllocBuffer
VOID **__fastcall HalpMmAllocCtxAllocBuffer(__int64 a1, UINT64 a2){
UINT64 v3;
UINT64 v4;
VOID **PoolWithTag;
VOID **v6;
VOID **v7;
__int64 v8;
VOID **v9;
v3 = a2 >> 4;
v4 = a2 >> 7;
PoolWithTag = ExAllocatePoolWithTag(0x200ui64, (a2 >> 7) + 48, 1651269960i64);
v6 = PoolWithTag;
if( !PoolWithTag )
return 0i64;
memset(PoolWithTag, 0i64, v4 + 48);
*((_DWORD *)v6 + 8) = v3;
v6[5] = (VOID *)(((unsigned __int64)v6 + 51) & 0xFFFFFFFFFFFFFFFCui64);
v6[1] = v6;
*v6 = v6;
v7 = ExAllocatePoolWithTag(0x200ui64, a2, 1114399048i64);
v6[2] = v7;
if( v7 )
{
v9 = v6;
v6 = 0i64;
}
else
{
v9 = 0i64;
}
if( v6 )
HalpMmAllocCtxBufferCleanup(v8, v6);
return v9;
}Referenced by:
HalpMmAllocCtxAlloc