MiUnlinkNumaStandbyPage

VOID __fastcall MiUnlinkNumaStandbyPage(_MMPFN *Pfn1){
  __int64 v2; 
  __int64 PfnPriority; 
  _MMPFN *PfnDb; 
  __int64 v5; 
  unsigned __int64 v6; 
  __int64 v7; 
  __int64 v8; 
  __int64 v9; 
  __int64 v10; 
  char *v11; 
  char *v12; 
  __int64 v13; 
  PfnPriority = (unsigned int)MiGetPfnPriority((INT64)Pfn1);
  PfnDb = MmGetPfnDb();
  v5 = *(unsigned __int8 *)(v2 + 39) | (*(_QWORD *)v2 >> 28) & 0xFFFFFFF00i64;
  v6 = *(unsigned __int16 *)(v2 + 36) | (*(_QWORD *)(v2 + 24) >> 20) & 0xFFFFF0000i64;
  LODWORD(v7) = MiSearchNumaNodeTable((PVOID)((v2 - (__int64)PfnDb) / 48));
  v8 = *(_QWORD *)(*(_QWORD *)(qword_140C4E388 + 8 * ((*((_QWORD *)Pfn1 + 5) >> 39) & 0x3FFi64)) + 16i64)
     + 4544i64 * *(unsigned int *)(v7 + 8);
  v9 = PfnPriority + 8i64 * (unsigned int)MiGetPfnChannel((INT64)Pfn1);
  v10 = 3 * v9;
  if( v5 == 0xFFFFFFFFFi64 )
  {
    *(_QWORD *)(v8 + 24 * v9 + 3272) = v6;
  }
  else
  {
    v11 = (char *)PfnDb + 48 * v5;
    *((_WORD *)v11 + 18) = v6;
    MiSetPfnNodeBlinkHigh((_MMPFN *)v11, v6 >> 16, 0i64);
  }
  if( v6 == 0xFFFFFFFFFi64 )
  {
    *(_QWORD *)(v8 + 8 * v10 + 3264) = v5;
  }
  else
  {
    v12 = (char *)PfnDb + 48 * v6;
    v13 = *(_QWORD *)v12 ^ (v5 << 28);
    v12[39] = v5;
    *(_QWORD *)v12 = (v5 << 28) ^ v13 & 0xFFFFFFFFFi64;
  }
  --*(_QWORD *)(v8 + 8 * v10 + 3256);
}

Referenced by:

MiRemoveLowestPriorityStandbyPage
MiReplaceNumaStandbyPage
MiReplaceTransitionPage
MiSwapNumaStandbyPage