MiFreeReadListPages

VOID __stdcall MiFreeReadListPages(_MI_READ_LIST *MiReadList, UINT64 a2){
  UINT64 v3; 
  _MI_PARTITION *v4; 
  UINT64 v5; 
  INT64 *v6; 
  __int64 v7; 
  __int64 v8; 
  INT64 v9; 
  UINT64 v10; 
  _MMPFN *v11; 
  _MI_PARTITION *v12; 
  _MI_PARTITION *Partition; 

  Partition = 0i64;
  LODWORD(v3) = MiFreeReadListPageList((INT64 *)MiReadList + 5, (INT64 *)&Partition);
  v4 = Partition;
  v5 = v3;
  v6 = (INT64 *)(MiReadList + 12);
  v7 = 4i64;
  do
  {
    v8 = 0i64;
    while( *v6 )
    {
      LODWORD(v9) = MiGetPfnLink(*v6);
      *v6 = v9;
      if( !v4 )
      {
        LODWORD(v12) = MiPartitionIdToPointer(((unsigned __int64)v11->u4._bf_0 >> 39) & 0x3FF, v10);
        v4 = v12;
      }
      MiReleaseFreshPage(v11);
      ++v8;
    }
    v5 += v8;
    ++v6;
    --v7;
  }
  while( v7 );
  if( v5 )
    MiReturnFaultCharges(v4, v5, 1ui64);
}

Referenced by:

MiPfPutPagesInTransition
MiReleaseReadListResources