IoPageRead

VOID __stdcall IoPageRead(
        _FILE_OBJECT *FileObject,
        _MDL *MemoryDescriptorList,
        _LARGE_INTEGER *StartingOffset,
        _KEVENT *Event,
        _IO_STATUS_BLOCK *IoStatusBlock){
  int v7; 
  __int64 v8; 
  unsigned __int64 v9; 
  int v10; 
  int v11; 
  MDL *v12; 
  char v13; 
  UINT64 Flags; 
  v7 = 0;
  if( ((unsigned __int8)FileObject & 3) != 0 )
  {
    v13 = (char)FileObject;
    FileObject = (_FILE_OBJECT *)((unsigned __int64)FileObject & 0xFFFFFFFFFFFFFFFCui64);
    v7 = 2 - ((v13 & 1) != 0i64);
  }
  v8 = (unsigned __int8)MemoryDescriptorList & 1;
  v9 = (unsigned __int64)MemoryDescriptorList & 0xFFFFFFFFFFFFFFFEui64;
  if( ((unsigned __int8)MemoryDescriptorList & 1) == 0 )
    v9 = (unsigned __int64)MemoryDescriptorList;
  v10 = v7 | 4;
  if( !v8 )
    v10 = v7;
  v11 = v10 | 8;
  if( (v9 & 2) == 0 )
    v11 = v10;
  v12 = (MDL *)(v9 & 0xFFFFFFFFFFFFFFFDui64);
  if( (v9 & 2) == 0 )
    v12 = (MDL *)v9;
  LODWORD(Flags) = v11;
  IoPageReadEx(FileObject, v12, StartingOffset, Event, IoStatusBlock, Flags, 0i64);
}

Referenced by:

PopReadPagesFromHiberFile