MiUnlockCodePage

VOID __stdcall MiUnlockCodePage(_MMPTE *PointerPte, _MMPTE *LastPte){
  int v2; 
  int v3; 
  unsigned __int64 v5; 
  char *v6; 
  INT64 v7; 
  char *v8; 
  UINT64 v9; 
  __int64 v10; 
  _MMPFN *v11; 
  unsigned __int64 v12; 
  UINT64 v13; 

  v3 = v2;
  v5 = (unsigned __int64)PointerPte;
  v6 = (char *)MmGetPteBase() + (((unsigned __int64)PointerPte >> 9) & 0x7FFFFFFFF8i64);
  if( PointerPte <= LastPte )
  {
    MiPteInShadowRange((UINT64)&v13);
    do
    {
      v7 = (INT64)v6;
      v8 = v6;
      if( !v3 )
        v7 = v5;
      LODWORD(v9) = MI_READ_PTE_LOCK_FREE(v7);
      v13 = v9;
      v10 = (v9 >> 12) & 0xFFFFFFFFFi64;
      if( v3 )
        v10 += (v5 >> 3) & 0x1FF;
      v11 = &MmGetPfnDb()[v10];
      v12 = MiLockPageInline(v11);
      MiRemoveLockedPageChargeAndDecRef(v11);
      _InterlockedAnd64(&v11->u2.Lock, 0x7FFFFFFFFFFFFFFFui64);
      __writecr8(v12);
      v5 += 8i64;
      v6 = v8 + 8;
      if( (v5 & 0xFFF) != 0 )
        v6 = v8;
    }
    while( v5 <= (unsigned __int64)LastPte );
  }
}

Referenced by:

MiHandleDriverNonPagedSections
MiLockCode
MiUnlockDriverCode
MiUnlockDriverPages
MmUnlockPreChargedPagedPool