MiLockNonPagedPoolPte

_MMPFN *__stdcall MiLockNonPagedPoolPte(ULONG_PTR PointerPte, UINT8 *PageIrql){
  INT64 v3; 
  UINT64 v4; 
  UINT64 v5; 
  UINT64 v6; 
  _MMPFN *v7; 
  UINT8 v8; 
  unsigned __int64 v9; 
  __int64 v10; 
  UINT64 v12; 

  v3 = *(_QWORD *)&PointerPte;
  while( 1 )
  {
    LODWORD(v4) = MI_READ_PTE_LOCK_FREE(v3);
    v12 = v4;
    v5 = v4;
    if( (v4 & 1) == 0 )
      KeBugCheckEx(0x1Au, (PVOID)0x5307, (PVOID)(((v3 << 25) - ((_QWORD)MmGetPteBase() << 25)) >> 16), (PVOID)v3, 0i64);
    v6 = v4;
    MiPteInShadowRange((UINT64)&v12);
    v7 = &MmGetPfnDb()[(v5 >> 12) & 0xFFFFFFFFFi64];
    v8 = MiLockPageInline(v7);
    v9 = v8;
    *PageIrql = v8;
    LODWORD(v10) = MI_READ_PTE_LOCK_FREE(v3);
    if( v6 == v10 )
      break;
    _InterlockedAnd64(&v7->u2.Lock, 0x7FFFFFFFFFFFFFFFui64);
    __writecr8(v9);
  }
  return v7;
}

Referenced by:

MiProbeLockFrame
MmProtectPool