RtlpHpAllocVirtBlockCommitFirst
CHAR *__fastcall RtlpHpAllocVirtBlockCommitFirst(VOID *a1, _QWORD *a2, UINT64 a3, UINT64 *a4){
CHAR *v6;
ULONG_PTR v7;
UINT64 v9;
UINT64 v10;
ULONG_PTR v11;
PVOID v12;
PVOID BaseAddress;
ULONG_PTR RegionSize;
ULONG_PTR v15;
v15 = a3;
BaseAddress = a1;
LODWORD(v10) = 4;
RegionSize = *a2 + a3 + 4096;
LODWORD(v9) = 4096;
v6 = 0i64;
BaseAddress = 0i64;
if( ZwAllocateVirtualMemory((PVOID)0xFFFFFFFFFFFFFFFFi64, &BaseAddress, 0i64, &RegionSize, v9, v10) >= 0 )
{
if( v15 )
ZwFreeVirtualMemory((PVOID)0xFFFFFFFFFFFFFFFFi64, &BaseAddress, &v15, 0x4000ui64);
v11 = 4096i64;
v12 = (char *)BaseAddress + RegionSize - 4096;
ZwFreeVirtualMemory((PVOID)0xFFFFFFFFFFFFFFFFi64, &v12, &v11, 0x4000ui64);
v7 = RegionSize;
v6 = (char *)BaseAddress + v15;
*a2 = RegionSize - v11 - v15;
*a4 = v7;
}
return v6;
}Referenced by:
RtlpAllocateHeap