PnprInitializeMappingReserve

INT64 __fastcall PnprInitializeMappingReserve(INT16 a1, INT64 a2){
  unsigned int v4; 
  void *MappingAddress; 
  void *v6; 
  int v7; 
  UINT64 v8; 
  int v9; 
  int v10; 
  PMDL Mdl; 
  v4 = 0;
  MappingAddress = (void *)MmAllocateMappingAddressEx(0x10000i64, 0x51706E50ui64, 0i64);
  v6 = MappingAddress;
  if( MappingAddress )
  {
    Mdl = IoAllocateMdl(MappingAddress, 0x10000u, 0, 0, 0i64);
    if( Mdl )
    {
      *(_QWORD *)a2 = Mdl;
      *(_QWORD *)(a2 + 8) = v6;
      *(_WORD *)(a2 + 16) = a1;
      return v4;
    }
    MmFreeMappingAddress(v6, 0x51706E50u);
    v7 = 3930;
  }
  else
  {
    v7 = 3915;
  }
  v8 = PnprContext;
  v4 = -1073741670;
  v9 = *(_DWORD *)(PnprContext + 20984);
  if( !v9 )
    v9 = v7;
  *(_DWORD *)(PnprContext + 20984) = v9;
  v10 = *(_DWORD *)(v8 + 20988);
  if( !v10 )
    v10 = 10;
  *(_DWORD *)(v8 + 20988) = v10;
  return v4;
}

Referenced by:

PnprAllocateMappingReserves