MiCaptureDeleteHierarchy

INT64 __fastcall MiCaptureDeleteHierarchy(
        _KPRCB *Prcb,
        UINT64 Reset,
        INT64 Remote,
        INT64 SnapPmc,
        _PROC_PERF_CHECK_SNAP *Snap){
  UINT8 v5; 
  INT64 result; 
  _MMPTE *PteBase; 
  _BYTE *v9; 
  __int64 v10; 
  __int64 *v11; 
  unsigned int v12; 
  __int64 v13; 
  __int64 v14; 
  unsigned __int64 v15; 
  unsigned __int64 v16; 
  v5 = Remote;
  *(_DWORD *)SnapPmc = 0;
  result = (INT64)MmGetPdeBase();
  PteBase = MmGetPteBase();
  v9 = (_BYTE *)SnapPmc;
  v10 = 2i64;
  do
  {
    v16 = result + (((unsigned __int64)Prcb >> 18) & 0x3FFFFFF8);
    v15 = (unsigned __int64)PteBase + ((v16 >> 9) & 0x7FFFFFFFF8i64);
    v11 = &v14;
    v14 = (__int64)PteBase + ((v15 >> 9) & 0x7FFFFFFFF8i64);
    v12 = 0;
    while( 1 )
    {
      v13 = *(_QWORD *)*v11;
      if( !v13 )
        break;
      if( (v13 & 1) == 0 && v12 != 2 )
      {
        MiMakeSystemAddressValid(((*v11 << 25) - ((_QWORD)PteBase << 25)) >> 16, 0i64, 0i64, v5, 1);
        PteBase = MmGetPteBase();
      }
      ++v12;
      ++v11;
      if( v12 >= 3 )
        goto LABEL_6;
    }
    *v9 = 1 << (2 - v12);
LABEL_6:
    ++v9;
    result = (INT64)MmGetPdeBase();
    Prcb = (_KPRCB *)Reset;
    --v10;
  }
  while( v10 );
  return result;
}

Referenced by:

MiDeleteEmptyPageTableCommit
MiDeletePartialVad
MiDeleteVad