MiUnlockPageTableRange

VOID __stdcall MiUnlockPageTableRange(UINT64 *Minimum, UINT64 *Maximum){
  _MMPTE *PdeBase; 
  INT64 v4; 
  char *v5; 
  char *v6; 
  UINT8 v7; 
  UINT64 v8; 
  unsigned __int64 v9; 
  UINT64 v10; 
  PdeBase = MmGetPdeBase();
  v4 = *((_QWORD *)KeGetCurrentThread() + 23) + 1664i64;
  v5 = (char *)PdeBase + (((unsigned __int64)Minimum >> 18) & 0x3FFFFFF8);
  v6 = (char *)PdeBase + (((unsigned __int64)Maximum >> 18) & 0x3FFFFFF8);
  v7 = MiLockWorkingSetShared(v4);
  if( v5 <= v6 )
  {
    v8 = (UINT64)v5;
    do
    {
      MiLockPageTableInternal(v4, (UINT64)v5, 0i64);
      v9 = *(_QWORD *)v5;
      MiPteInShadowRange(v8);
      MiUnlockPageTableCharges((_MMPFN *)((char *)MmGetPfnDb() + 48 * ((v9 >> 12) & 0xFFFFFFFFFi64)), 2u, v10);
      MiUnlockPageTableInternal(v4, (UINT64)v5);
      v5 += 8;
      v8 = (UINT64)v5;
    }
    while( v5 <= v6 );
  }
  MiUnlockWorkingSetShared(v4, v7);
}

Referenced by:

MiLockPageTableRange
MmStoreFreeVirtualMemory