MiFlushAllFilesystemPages

NTSTATUS __stdcall MiFlushAllFilesystemPages(){
  VOID(__stdcall *v0)(VOID *); 
  VOID(__stdcall *v1)(VOID *); 
  int v2; 
  unsigned int v3; 
  int v4; 

  LODWORD(v0) = KeGetCurrentIrql();
  if( (unsigned __int8)v0 <= 1u )
  {
    LOBYTE(v0) = MiIsWorkingSetTrimThread();
    v3 = 0;
    if( !(_DWORD)v0 )
    {
      v0 = MiModifiedPageWriter;
      if( v1 != MiModifiedPageWriter )
      {
        v0 = MiMappedPageWriter;
        if( v1 != MiMappedPageWriter )
        {
          if( v2 == 1 )
          {
            LODWORD(v0) = _InterlockedIncrement((_DWORD *)&stru_140C4DB30 + 566);
            if( (_DWORD)v0 != 1 )
              return(int)v0;
            MiEmptyAllWorkingSets(&Irp);
          }
          _InterlockedIncrement((_DWORD *)&stru_140C50B28 + 171);
          LODWORD(v0) = *(&stru_140C50B28 + 1874);
          if( *(&stru_140C50B28 + 923) != *(&stru_140C50B28 + 937) )
          {
            v4 = *(&stru_140C50B28 + 145);
            do
            {
              KeSetEvent((PRKEVENT)((char *)&stru_140C50B28 + 688), 0, 0);
              CcForEachPartition((__int64(__fastcall *)(INT64, __int64))CcNotifyWriteBehindHelper, 2i64, 0);
              LODWORD(v0) = *(&stru_140C50B28 + 1874);
              if( *(&stru_140C50B28 + 923) == *(&stru_140C50B28 + 937) )
                break;
              KeDelayExecutionThread(0, 0, (_LARGE_INTEGER *)&Mi30Milliseconds);
              LODWORD(v0) = *(&stru_140C50B28 + 145);
              if( v4 != *(&stru_140C50B28 + 145) )
              {
                v4 = *(&stru_140C50B28 + 145);
                v3 = -1;
              }
              ++v3;
            }
            while( v3 < 0xFF );
          }
          _InterlockedDecrement((_DWORD *)&stru_140C50B28 + 171);
        }
      }
    }
  }
  return(int)v0;
}

Referenced by:

MiCommitExistingVad
MiGetNextPageTablePte
MiInPageSingleKernelStack
MiLockPagedAddress
MiMakeOutswappedPageResident
MiMakeSystemAddressValid
MiSetProtectionOnSection
MiShutdownSystem
MiWaitForInPageComplete