MiScanPagefiles

VOID __stdcall MiScanPagefiles(_MI_PARTITION *Partition){
  unsigned int v2; 
  unsigned int v3; 
  int v4; 
  char *i; 
  INT64 v6; 
  __int64 v7; 
  MiFreePageFileHashPfns(Partition);
  if( !(unsigned int)MiSufficientAvailablePages((INT64)Partition, 0x420ui64) )
  {
    v2 = *((_DWORD *)Partition + 1734);
    if( v2 )
    {
      if( *((_QWORD *)Partition + 950) && !*((_QWORD *)Partition + 123) )
      {
        v3 = *((_DWORD *)Partition + 248);
        if( v3 >= 0x1E )
        {
          v4 = 0;
          for( i = (char *)Partition + 6944;
                (*(_BYTE *)(*(_QWORD *)i + 204i64) & 0x50) != 0 || !*(_QWORD *)(*(_QWORD *)i + 24i64);
                i += 8 )
          {
            if( ++v4 >= v2 )
            {
              if( *((_BYTE *)Partition + 675) == 1 )
              {
                v6 = *((_QWORD *)Partition + 22);
                *((_BYTE *)Partition + 675) = 0;
                *((_DWORD *)Partition + 248) = 0;
                if( PsReferencePartitionSafe(v6) )
                {
                  *((_QWORD *)Partition + 123) = Partition;
                  *((_QWORD *)Partition + 122) = MiScanPagefileSpace;
                  *((_QWORD *)Partition + 120) = v7;
                  ExQueueWorkItemToPartition((char *)Partition + 960);
                }
              }
              return;
            }
          }
        }
        else
        {
          *((_DWORD *)Partition + 248) = v3 + 1;
        }
      }
    }
  }
}

Referenced by:

MiWorkingSetManager