RtlpHpVaMgrRegionAllocate

UINT8 *__stdcall RtlpHpVaMgrRegionAllocate(INT64 a1){
  UINT64 v2; 
  INT64 v3; 
  __int16 v4; 
  UINT8 *v5; 
  UINT64 v6; 
  UINT8 *v7; 
  INT64 v9[2]; 
  __int128 v10; 
  UINT64 v11; 
  INT64 v12; 

  v12 = (unsigned __int64)*(unsigned __int16 *)(a1 + 40) << 20;
  LODWORD(v2) = RtlpHpVaMgrAllocAligned(a1, &v12, v12);
  v11 = v2;
  v3 = v2;
  if( !v2 )
    return 0i64;
  v4 = *(_WORD *)(a1 + 40);
  v10 = 0i64;
  WORD4(v10) = v4;
  *(_OWORD *)v9 = 0i64;
  v5 = RtlpHpVaMgrRangeCreate(a1, v3, (INT64)v9);
  v6 = v11;
  v7 = v5;
  if( v5 )
    v6 = 0i64;
  v11 = v6;
  if( v6 )
    RtlpHpEnvFreeVA(&v11, (UINT64 *)&v12, 0x8000i64);
  return v7;
}

Referenced by:

RtlpHpVaMgrAlloc