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