MiCompressTbFlushList

UINT64 *__fastcall MiCompressTbFlushList(INT64 a1){
  int v1; 
  UINT64 *result; 
  unsigned int v3; 
  UINT64 v5; 
  UINT64 v6; 
  INT64 v7; 
  __int64 v8; 
  UINT64 v9; 
  unsigned int v10; 
  v1 = 0;
  result = (UINT64 *)(a1 + 24);
  v3 = 1;
  if( *(_DWORD *)(a1 + 12) > 1u )
  {
    do
    {
      v5 = *result;
      v6 = *(_QWORD *)(a1 + 8i64 * v3 + 24);
      v7 = a1 + 8i64 * v3;
      v8 = 4096i64 << (9 * ((unsigned __int8)(v6 >> 10) & 3u));
      if( ((v6 >> 10) & 3) == ((*result >> 10) & 3)
        && (v9 = *result & 0x3FF, (v6 & 0xFFFFFFFFFFFFF000ui64) - v8 * (v9 + 1) == (v5 & 0xFFFFFFFFFFFFF000ui64))
        && v9 != 1023 )
      {
        if( v9 + (v6 & 0x3FF) + 1 > 0x3FF )
        {
          *(_QWORD *)(v7 + 24) = (1023 - v9) * v8
                               + (v6 ^ ((unsigned __int16)v6 ^ (unsigned __int16)(v6 - (1023 - v9))) & 0x3FF);
          *result++ |= 0x3FFui64;
          *result = *(_QWORD *)(v7 + 24);
        }
        else
        {
          *result = v5 ^ ((unsigned __int16)v5 ^ (unsigned __int16)(v6 + v5 + 1)) & 0x3FF;
          ++v1;
        }
      }
      else
      {
        *++result = v6;
      }
      v10 = *(_DWORD *)(a1 + 12);
      ++v3;
    }
    while( v3 < v10 );
    if( v1 )
      *(_DWORD *)(a1 + 12) = v10 - v1;
  }
  return result;
}

Referenced by:

MiClearPteAccessed
MiDeleteVa
MiInsertTbFlushEntry
MiMoveDirtyBitsToPfns
MiTerminateWsleCluster
MiZeroPage
MmUnmapViewInSystemCache