MiRemoveViewsFromSection

__int64 __fastcall MiRemoveViewsFromSection(ULONG_PTR BugCheckParameter2, unsigned __int64 a2, unsigned int a3){
  ULONG_PTR v5; 
  __int64 v6; 
  __int64 v7; 
  UINT64 v8; 
  unsigned __int64 v9; 
  unsigned int v11; 
  v5 = BugCheckParameter2;
  v6 = 0i64;
  v7 = *(_QWORD *)(*(_QWORD *)BugCheckParameter2 + 64i64);
  do
  {
    v6 += MiDecrementSubsectionViewCount((INT64 *)v5, a3);
    if( v7 && !*(_QWORD *)(v5 + 96) && (*(_BYTE *)(v5 + 34) & 1) == 0 )
      v6 += MiInsertUnusedSubsection((_MSUBSECTION *)v5, v8);
    if( a2 )
    {
      v9 = *(unsigned int *)(v5 + 44);
      if( a2 <= v9 )
        return v6;
      a2 -= v9;
    }
    v5 = *(_QWORD *)(v5 + 16);
    v11 = a3 & 0xFFFFFFF7;
    if( v7 )
      v11 = a3;
    a3 = v11;
  }
  while( v5 );
  return v6;
}

Referenced by:

MiConvertStaticSubsections
MiRemoveMappedPtes
MiRemoveSystemCacheReferences
MiRemoveViewsFromSectionWithPfn
MmUnmapViewInSystemCache