MiLockNonPagedPoolPte

_MMPFN *__fastcall MiLockNonPagedPoolPte(_MMPTE *PoINTerPte, UINT8 *PageIrql){
  INT64 v4; 
  unsigned __int64 v5; 
  INT64 v6; 
  volatile signed __int64 *v7; 
  UINT8 v8; 
  unsigned __int64 v9; 
  UINT64 v11; 
  while( 1 )
  {
    v4 = MI_READ_PTE_LOCK_FREE((INT64)PoINTerPte);
    v11 = v4;
    v5 = v4;
    if( (v4 & 1) == 0 )
      KeBugCheckEx(
        0x1Au,
        0x5307ui64,
        (__int64)(((_QWORD)PoINTerPte << 25) - ((_QWORD)MmGetPteBase() << 25)) >> 16,
        (ULONG_PTR)PoINTerPte,
        0i64);
    v6 = v4;
    MiPteInShadowRange((UINT64)&v11);
    v7 = (volatile signed __int64 *)((char *)MmGetPfnDb() + 48 * ((v5 >> 12) & 0xFFFFFFFFFi64));
    v8 = MiLockPageInline((INT64)v7);
    v9 = v8;
    *PageIrql = v8;
    if( v6 == MI_READ_PTE_LOCK_FREE((INT64)PoINTerPte) )
      break;
    _InterlockedAnd64(v7 + 3, 0x7FFFFFFFFFFFFFFFui64);
    __writecr8(v9);
  }
  return(_MMPFN *)v7;
}

Referenced by:

MiProbeLockFrame
MmProtectPool