MiFreeReadListPages

VOID __fastcall MiFreeReadListPages(INT64 a1){
  INT64 ListPageList; 
  _MI_PARTITION *v3; 
  UINT64 v4; 
  INT64 *v5; 
  __int64 v6; 
  __int64 v7; 
  UINT64 v8; 
  __int64 v9; 
  _MI_PARTITION *v10; 
  _MI_PARTITION *Partition; 
  Partition = 0i64;
  ListPageList = MiFreeReadListPageList((INT64 *)(a1 + 40), (INT64 *)&Partition);
  v3 = Partition;
  v4 = ListPageList;
  v5 = (INT64 *)(a1 + 48);
  v6 = 4i64;
  do
  {
    v7 = 0i64;
    while( *v5 )
    {
      *v5 = MiGetPfnLink(*v5);
      if( !v3 )
      {
        LODWORD(v10) = MiPartitionIdToPointer((*(_QWORD *)(v9 + 40) >> 39) & 0x3FF, v8);
        v3 = v10;
      }
      MiReleaseFreshPage((_MMPFN *)v9);
      ++v7;
    }
    v4 += v7;
    ++v5;
    --v6;
  }
  while( v6 );
  if( v4 )
    MiReturnFaultCharges(v3, v4, 1ui64);
}

Referenced by:

MiPfPutPagesInTransition
MiReleaseReadListResources