MiUnlockCodePage

VOID __stdcall MiUnlockCodePage(MMPTE *PointerPte, MMPTE *LastPte){
  int v2; 
  int v3; 
  unsigned __int64 v5; 
  char *v6; 
  INT64 v7; 
  char *v8; 
  UINT64 v9; 
  char *v10; 
  unsigned __int64 v11; 
  UINT64 v12; 
  v3 = v2;
  v5 = (unsigned __int64)PointerPte;
  v6 = (char *)MmGetPteBase() + (((unsigned __int64)PointerPte >> 9) & 0x7FFFFFFFF8i64);
  if( PointerPte <= LastPte )
  {
    MiPteInShadowRange((UINT64)&v12);
    do
    {
      v7 = (INT64)v6;
      v8 = v6;
      if( !v3 )
        v7 = v5;
      v12 = MI_READ_PTE_LOCK_FREE(v7);
      v9 = (v12 >> 12) & 0xFFFFFFFFFi64;
      if( v3 )
        v9 += (v5 >> 3) & 0x1FF;
      v10 = (char *)MmGetPfnDb() + 48 * v9;
      v11 = (unsigned __int8)MiLockPageInline((INT64)v10);
      MiRemoveLockedPageChargeAndDecRef((_MMPFN *)v10);
      _InterlockedAnd64((volatile signed __int64 *)v10 + 3, 0x7FFFFFFFFFFFFFFFui64);
      __writecr8(v11);
      v5 += 8i64;
      v6 = v8 + 8;
      if( (v5 & 0xFFF) != 0 )
        v6 = v8;
    }
    while( v5 <= (unsigned __int64)LastPte );
  }
}

Referenced by:

MiHandleDriverNonPagedSections
MiLockCode
MiUnlockDriverCode
MiUnlockDriverPages
MmUnlockPreChargedPagedPool