MmFreeSystemCacheReserveView

INT64 __stdcall MmFreeSystemCacheReserveView(PVOID BugCheckParameter3){
  MMPTE *PteAddress; 
  MMPTE *v3; 
  ULONG_PTR SystemCacheReverseMap; 
  ULONG_PTR v5; 
  __int16 v6; 
  INT64 result; 
  PteAddress = MiGetPteAddress(BugCheckParameter3);
  v3 = (MMPTE *)((char *)PteAddress + 512);
  SystemCacheReverseMap = MiGetSystemCacheReverseMap((UINT64)BugCheckParameter3);
  v5 = SystemCacheReverseMap;
  if( *(_QWORD *)(SystemCacheReverseMap + 16) )
    KeBugCheckEx(0x1Au, 0x784ui64, SystemCacheReverseMap, (ULONG_PTR)BugCheckParameter3, 0i64);
  do
  {
    v6 = MI_READ_PTE_LOCK_FREE((INT64)PteAddress);
    if( (v6 & 1) != 0 || (v6 & 0x400) != 0 )
      KeBugCheckEx(0x1Au, 0x785ui64, v5, (ULONG_PTR)BugCheckParameter3, 0i64);
    PteAddress = (MMPTE *)((char *)PteAddress + 8);
  }
  while( PteAddress < v3 );
  MiReleaseSystemCacheView((MMPTE *)((char *)PteAddress - 512));
  return result;
}

Referenced by:

CcUninitializePartitionVacbs