IopRemovePageDumpRange

NTSTATUS __stdcall IopRemovePageDumpRange(_KBUGCHECK_REMOVE_PAGES *RemovePages, UINT8 *ContinueProcessing){
  int Flags; 
  NTSTATUS result; 
  UINT8 v5; 
  unsigned __int64 Count; 
  unsigned __int64 Address; 
  int v8; 
  __int64 v9; 
  __int64 v10[2]; 
  __int128 Context; 
  __int128 v12; 
  __int128 v13; 

  Context = 0i64;
  v12 = 0i64;
  v13 = 0i64;
  if( ContinueProcessing )
    *ContinueProcessing = 0;
  Flags = RemovePages->Flags;
  if( (Flags & 0x7FFFFFFC) != 0 )
    return -1073741582;
  if( Flags >= 0 )
  {
    v5 = 0;
  }
  else
  {
    Flags &= ~0x80000000;
    v5 = 1;
    RemovePages->Flags = Flags;
  }
  if( ((Flags - 1) & Flags) != 0 )
    return -1073741811;
  Count = RemovePages->Count;
  if( !Count )
    return 0;
  Address = RemovePages->Address;
  v8 = Flags & 1;
  if( !v8 )
    Address >>= 12;
  v9 = *(_QWORD *)(qword_140C50960 + 8i64);
  v10[0] = *(_QWORD *)(v9 + 48);
  v10[1] = v9 + 56;
  *(_QWORD *)&v12 = v10;
  IoFreeDumpRange((_MM_KERNEL_DUMP_CONTEXT *)&Context, (VOID *)Address, Count, 2 * (v8 ^ 1u));
  if( result >= 0 )
  {
    if( ContinueProcessing )
      *ContinueProcessing = v5;
  }
  return result;
}

Referenced by:

IopDumpCallRemovePagesCallbacks