HalpLaAddReservation

NTSTATUS __stdcall HalpLaAddReservation(INT64 a1, INT64 a2){
  UINT8 *v4; 
  INT64 v5; 
  UINT8 **v6; 
  NTSTATUS result; 

  v4 = HalpMmAllocCtxAlloc((_HALP_ALLOC_CONTEXT *)a1, 0x20ui64);
  if( !v4 )
    return -1073741670;
  *((_QWORD *)v4 + 2) = a1 - (a1 & 0xFFF);
  v5 = (a1 & 0xFFF) + a2;
  *((_QWORD *)v4 + 3) = v5;
  if( (v5 & 0xFFF) != 0 )
    *((_QWORD *)v4 + 3) = v5 + 4096 - (v5 & 0xFFF);
  v6 = (UINT8 **)off_140C043E8;
  if( *(void ***)off_140C043E8 != &HalpLaReservedRanges )
    __fastfail(3u);
  *((_QWORD *)v4 + 1) = off_140C043E8;
  *(_QWORD *)v4 = &HalpLaReservedRanges;
  *v6 = v4;
  result = 0;
  off_140C043E8 = v4;
  return result;
}

Referenced by:

HalpDmaInit