MiCreateUserPhysicalView

VOID __fastcall MiCreateUserPhysicalView(_MMVAD_SHORT *Vad, INT64 a2, INT64 a3, _WORD *a4){
  __int64 v5; 
  char v7; 
  unsigned int v8; 
  INT64 v9; 
  int v10; 
  _QWORD *Pool; 
  _QWORD *v12; 
  _WORD *v13; 

  v5 = *(_QWORD *)(a3 + 112);
  v7 = a2;
  if( v5 )
  {
    v8 = (unsigned __int64)(a2 & 4 | 8) >> 1;
    v9 = v8 | 8;
    if( (v7 & 2) == 0 )
      v9 = v8;
    MiReferenceAweHandle(v5, v9);
  }
  else if( (*(_QWORD *)(a3 + 120) & 0xA) == 0 && (_DWORD)a2 == 4 )
  {
    MiCreateProcessDefaultAweInfo();
    if( v10 >= 0 )
    {
      Pool = MiAllocatePool(64i64, 0x48ui64, 0x76706D4Dui64);
      v12 = Pool;
      if( Pool )
      {
        *((_DWORD *)Pool + 16) = 256;
        Pool[4] = Vad;
        Pool[5] = 0i64;
        LODWORD(v13) = MiGetAweInfoPartition(0i64);
        *a4 = *v13;
        v12[3] = 0i64;
        MiInsertVadEvent((__int64)Vad, v12, 0);
      }
    }
  }
}

Referenced by:

MiReserveUserMemory