MiUpdatePageAttributeStamp

VOID __stdcall MiUpdatePageAttributeStamp(_MMPFN *Pfn1){
  WORK_QUEUE_TYPE v1; 
  void *v2; 
  __int64 v4; 
  char v5; 
  __int64 v6; 
  __int64 v7; 
  __int64 v8; 
  int v9[8]; 
  struct _KLOCK_QUEUE_HANDLE LockHandle; 
  *(_QWORD *)&LockHandle.OldIrql = 0i64;
  if( !*((_WORD *)Pfn1 + 16) )
  {
    v4 = *(_QWORD *)(qword_140C4E388 + 8 * ((*((_QWORD *)Pfn1 + 5) >> 39) & 0x3FFi64));
    v5 = *((_BYTE *)Pfn1 + 34);
    v6 = *(_QWORD *)(v4 + 8i64 * (v5 & 7) + 4216);
    if( (v5 & 7) == 2 )
    {
      v7 = 5i64 * (unsigned int)MiGetPfnPriority((INT64)Pfn1) + 304;
    }
    else
    {
      if( *(_DWORD *)(v6 + 8) != 3 || (*((_DWORD *)Pfn1 + 4) & 0x400i64) == 0 )
        goto LABEL_5;
      LODWORD(v8) = MiSearchNumaNodeTable((PVOID)((Pfn1 - MmGetPfnDb()) / 48));
      v7 = 5i64 * *(unsigned int *)(v8 + 8) + 432;
    }
    v6 = v4 + 8 * v7;
LABEL_5:
    LockHandle.LockQueue.Next = 0i64;
    LockHandle.LockQueue.Lock = (unsigned __int64 *volatile)(v6 + 32);
    KxAcquireQueuedSpinLock((PIO_WORKITEM)&LockHandle, (PIO_WORKITEM_ROUTINE)(v6 + 32), v1, v2);
    _InterlockedOr(v9, 0);
    *((_QWORD *)Pfn1 + 3) ^= (*((_QWORD *)Pfn1 + 3) ^ ((unsigned __int64)(unsigned int)KiTbFlushTimeStamp << 56)) & 0xF00000000000000i64;
    KeReleaseInStackQueuedSpinLockFromDpcLevel(&LockHandle);
  }
}

Referenced by:

MiCopyHeaderIfResident