PnprRecopyMappingReserve

__int64 __fastcall PnprRecopyMappingReserve(__int64 *a1){
  __int64 v1; 
  int v3; 
  __int64 v4; 
  INT64 v5; 
  int v6; 
  __int64 v8; 
  int v9; 
  int v10; 

  v1 = 0i64;
  v3 = 0;
  while( 1 )
  {
    LODWORD(v4) = MiGetContainingPageTable(
                    (UINT64)MmGetPteBase()
                  + (((a1[1] + (unsigned __int64)(unsigned int)(v3 << 12)) >> 9) & 0x7FFFFFFFF8i64));
    if( v4 != v1 )
    {
      v1 = v4;
      LOBYTE(v5) = 1;
      v6 = PnprMarkOrMirrorPages(v4 << 12, 0x1000ui64, v5);
      if( v6 < 0 )
        break;
    }
    if( (unsigned int)++v3 >= 0x10 )
    {
      PnprRecopyAddress(*a1, 0x30u);
      return 0i64;
    }
  }
  v8 = PnprContext;
  v9 = *(_DWORD *)(PnprContext + 20984);
  if( !v9 )
    v9 = 5721;
  *(_DWORD *)(PnprContext + 20984) = v9;
  v10 = *(_DWORD *)(v8 + 20988);
  if( !v10 )
    v10 = 1;
  *(_DWORD *)(v8 + 20988) = v10;
  return(unsigned int)v6;
}

Referenced by:

PnprRecopyMirrorPages