MiReduceUnusedSubsectionCount

VOID __stdcall MiReduceUnusedSubsectionCount(_MSUBSECTION *MappedSubsection){
  __int64 v1; 
  unsigned int PtesInSubsection; 
  unsigned __int64 v3; 
  unsigned __int64 v4; 
  unsigned __int64 v5; 
  unsigned int v6; 

  v1 = *(_QWORD *)(*(&stru_140C4DB30 + 267) + 8i64 * (MappedSubsection->Core.ControlArea->u1.Flags._bf_0 & 0x3FF));
  PtesInSubsection = MappedSubsection->Core.PtesInSubsection;
  v3 = 8i64 * PtesInSubsection;
  if( v3 > 0xFE0 )
  {
    v6 = (8 * (_WORD)PtesInSubsection) & 0xFFF;
    if( v3 >= 0x10000 || v6 > 0xFC0 )
    {
      v5 = (v3 + 4095) & 0xFFFFFFFFFFFFF000ui64;
      goto LABEL_4;
    }
    v4 = v3 + 15;
  }
  else
  {
    v4 = v3 + 31;
  }
  v5 = v4 & 0xFFFFFFFFFFFFFFF0ui64;
LABEL_4:
  _InterlockedExchangeAdd64(&qword_140C4C6D8, -(__int64)v5);
  *(_QWORD *)(v1 + 1696) -= v5;
}

Referenced by:

MiDeleteCachedSubsection
MiDeleteEmptySubsections
MiRemoveUnusedSubsection