MiUpdatePageAttributeStamp

VOID __stdcall MiUpdatePageAttributeStamp(_MMPFN *Pfn1){
  __int64 v2; 
  char v3; 
  __int64 v4; 
  __int64 v5; 
  __int64 v6; 
  int v7[8]; 
  _KLOCK_QUEUE_HANDLE LockQueue; 

  *(_QWORD *)&LockQueue.OldIrql = 0i64;
  if( !Pfn1->u3.ReferenceCount )
  {
    v2 = *(_QWORD *)(*(&stru_140C4DB30 + 267) + 8 * (((unsigned __int64)Pfn1->u4._bf_0 >> 39) & 0x3FF));
    v3 = *((_BYTE *)&Pfn1->u3 + 2);
    v4 = *(_QWORD *)(v2 + 8i64 * (v3 & 7) + 4216);
    if( (v3 & 7) == 2 )
    {
      v5 = 5i64 * (unsigned int)MiGetPfnPriority(Pfn1) + 304;
    }
    else
    {
      if( *(_DWORD *)(v4 + 8) != 3 || (*(_DWORD *)(&Pfn1->3 + 1) & 0x400i64) == 0 )
        goto LABEL_5;
      LODWORD(v6) = MiSearchNumaNodeTable((PVOID)(Pfn1 - MmGetPfnDb()));
      v5 = 5i64 * *(unsigned int *)(v6 + 8) + 432;
    }
    v4 = v2 + 8 * v5;
LABEL_5:
    LockQueue.LockQueue.Next = 0i64;
    LockQueue.LockQueue.Lock = (unsigned __int64 *volatile)(v4 + 32);
    KxAcquireQueuedSpinLock(&LockQueue.LockQueue, (UINT64 *)(v4 + 32));
    _InterlockedOr(v7, 0);
    Pfn1->u2._bf_0 ^= (Pfn1->u2._bf_0 ^ ((unsigned __int64)(unsigned int)KiTbFlushTimeStamp << 56)) & 0xF00000000000000i64;
    KeReleaseInStackQueuedSpinLockFromDpcLevel(&LockQueue);
  }
}

Referenced by:

MiCopyHeaderIfResident