CcShouldLazyWriteCacheMap

VOID __fastcall CcShouldLazyWriteCacheMap(
        UINT64 *SharedCacheMap,
        UINT64 PagesToWrite,
        INT64 a3,
        INT64 a4,
        _FILE_OBJECT *FileObject,
        UINT64 ReasonForFlush){
  int v8; 
  int v10; 
  int v12; 
  UINT8 *Partition; 

  v8 = *((_DWORD *)SharedCacheMap + 38);
  if( (v8 & 0x400820) == 0 && (v8 & 0x10000) == 0 && !*((_DWORD *)SharedCacheMap + 129) )
  {
    v10 = *((_DWORD *)SharedCacheMap + 1);
    if( (v10 || *((_DWORD *)SharedCacheMap + 28) && SharedCacheMap[1]) && (v8 & 0x40000000) == 0 )
    {
      if( *((_DWORD *)SharedCacheMap + 28) )
      {
        if( PagesToWrite )
        {
          v12 = *((_DWORD *)SharedCacheMap + 67) + 1;
          *((_DWORD *)SharedCacheMap + 67) = v12;
          if( (v8 & 0x1000000) == 0 && (v8 & 0x200) == 0 && (*(_DWORD *)(a3 + 80) & 0x8000) != 0 )
          {
            if( v10 )
            {
              Partition = (UINT8 *)CcGetPartition(SharedCacheMap);
              CcCanIWriteStreamEx(Partition, a3, 0x1000000ui64, 0i64, 8, 0i64);
            }
          }
        }
      }
    }
  }
}

Referenced by:

CcLazyWriteScan