MiMapExParametersInitialize

__int64 __fastcall MiMapExParametersInitialize(__int64 a1, __int64 a2, __int64 a3){
  _CONTROL_AREA *v5; 
  unsigned __int64 *v6; 
  __int64 v7; 
  unsigned int v8; 
  _CONTROL_AREA *v9; 
  unsigned __int64 v10; 
  unsigned __int64 v11; 
  unsigned __int64 v12; 
  unsigned __int64 v13; 
  int v14; 
  unsigned int v15; 

  v5 = MiSectionControlArea(*(_SECTION **)(a2 + 32));
  v8 = 0;
  v9 = v5;
  if( v6[2] )
    return(unsigned int)-1073741811;
  if( (*(_DWORD *)(v7 + 40) & 0x4000) != 0 )
  {
    if( *v6 || v6[1] )
      return(unsigned int)-1073741811;
    *(_DWORD *)(v7 + 60) |= 0x4000000u;
    *(_DWORD *)(v7 + 72) |= 2u;
    *(_QWORD *)(v7 + 16) = 4096i64;
  }
  v10 = *v6;
  if( ((*(_QWORD *)(v7 + 16) - 1i64) & *v6) != 0 || *(_QWORD *)a2 && (v10 || v6[1] || v6[2]) )
    return(unsigned int)-1073741811;
  v11 = v6[1];
  if( v11 )
  {
    if( v11 <= 0x7FFFFFFEFFFFi64 && (((_WORD)v11 + 1) & 0xFFF) == 0 )
      goto LABEL_7;
    return(unsigned int)-1073741811;
  }
  LODWORD(v12) = MiGetUserReservationHighestAddress(*(_QWORD *)(a2 + 40), 0i64);
  v11 = v12;
  *(_QWORD *)(a3 + 8) = v12;
LABEL_7:
  if( v10 >= v11 )
    return(unsigned int)-1073741811;
  v13 = *(_QWORD *)(a2 + 8);
  if( v13 )
  {
    if( v11 - v10 + 1 < v13 )
      return(unsigned int)-1073741811;
  }
  v14 = *(_DWORD *)(v7 + 40);
  if( (v14 & 0x7F) != 0 )
    return(unsigned int)-1073741811;
  if( *(_DWORD *)(v7 + 52) != v8 )
    return(unsigned int)-1073741811;
  v15 = *(_DWORD *)(a3 + 32);
  if( v15 > (unsigned __int16)KeNumberNodes || (v14 & 0x40000000) != 0 && (v9->u.LongFlags & 0x420) != 0 )
    return(unsigned int)-1073741811;
  if( (v14 & 0x20000000) != 0 && (v9->u.LongFlags & 0x20) != 0 && (*(_DWORD *)(v7 + 72) & 1) != 0 )
    return(unsigned int)-1073741811;
  if( (*(_BYTE *)(a3 + 56) & 0x20) != 0 )
  {
    *(_DWORD *)(v7 + 60) |= 2u;
    v15 = *(_DWORD *)(a3 + 32);
  }
  *(_DWORD *)(v7 + 52) = v15;
  *(_QWORD *)v7 = *(_QWORD *)a3;
  *(_QWORD *)(v7 + 8) = *(_QWORD *)(a3 + 8);
  *(_DWORD *)(v7 + 40) = v14 & 0xFFFFBFFF;
  return v8;
}

Referenced by:

MiMapViewOfSectionExCommon