RtlpHpSegMgrAllocate

NTSTATUS __stdcall RtlpHpSegMgrAllocate(INT64 a1, INT64 a2, INT64 a3){
  int v3; 
  unsigned int v4; 
  INT64 v6; 
  INT64 v7; 
  NTSTATUS v8; 
  INT64 v10; 
  INT64 v11; 
  INT64 v12; 
  unsigned int v13; 
  __int64 v14[2]; 
  unsigned int v15; 

  v13 = 0;
  v15 = 0;
  v14[0] = 0i64;
  v3 = a3;
  v4 = a2;
  if( (int)RtlpHpSegMgrReserve(a1, a3, v14, &v13, (__int64)&v15) < 0 )
  {
    v7 = v14[0];
    v8 = 0;
  }
  else
  {
    LODWORD(v12) = v3;
    v6 = v4;
    LODWORD(v11) = 1073745920;
    LODWORD(v10) = v4;
    v7 = v14[0];
    if( RtlpHpSegMgrCommit(a1, v14[0], 0i64, v6, v10, v11, v12) < 0 )
    {
      v8 = 0;
    }
    else
    {
      if( v13 < v15 )
        RtlpHpSegMgrVaCtxInsert(a1, v7);
      v8 = v7;
      v7 = 0i64;
    }
  }
  if( v7 )
    RtlpHpSegMgrRelease(a1, v7, 0i64);
  return v8;
}

Referenced by:

RtlpHpSegSegmentAllocate