MiInsertNumaStandbyPage

void __fastcall MiInsertNumaStandbyPage(_MMPFN *Pfn1){
  _MMPFN *PfnDb; 
  __int64 v3; 
  __int64 v4; 
  char v5; 
  __int64 v6; 
  __int64 v7; 
  __int64 v8; 
  unsigned int v9; 
  _QWORD *v10; 
  __int64 v11; 
  char *v12; 
  __int64 v13; 
  __int64 v14; 
  PfnDb = MmGetPfnDb();
  v3 = (Pfn1 - PfnDb) / 48;
  v4 = *(_QWORD *)(qword_140C4E388 + 8 * ((*((_QWORD *)Pfn1 + 5) >> 39) & 0x3FFi64));
  v5 = *((_BYTE *)Pfn1 + 35);
  if( (v5 & 8) != 0 )
    v6 = 5i64;
  else
    v6 = v5 & 7;
  LODWORD(v7) = MiSearchNumaNodeTable((PVOID)((Pfn1 - PfnDb) / 48));
  v8 = *(unsigned int *)(v7 + 8);
  if( qword_140C4DC10 )
    v9 = MiPageToChannel(v3);
  else
    v9 = 0;
  v10 = (_QWORD *)(*(_QWORD *)(v4 + 16) + 4544 * v8 + 24 * (v6 + 8i64 * v9));
  ++v10[407];
  v11 = v10[409];
  if( v11 == 0xFFFFFFFFFi64 )
  {
    v10[408] = v3;
  }
  else
  {
    v12 = (char *)PfnDb + 48 * v11;
    v13 = (*(_QWORD *)v12 ^ (v3 << 28)) & 0xFFFFFFFFFi64;
    v12[39] = v3;
    *(_QWORD *)v12 = (v3 << 28) ^ v13;
  }
  *(_QWORD *)Pfn1 |= 0xFFFFFFF000000000ui64;
  *((_WORD *)Pfn1 + 18) = v11;
  v14 = (*((_QWORD *)Pfn1 + 3) ^ (v11 << 20)) & 0xFFFFF000000000i64;
  *((_BYTE *)Pfn1 + 39) = -1;
  *((_QWORD *)Pfn1 + 3) ^= v14;
  v10[409] = v3;
}

Referenced by:

MiInsertProtectedStandbyPage
MiReplaceNumaStandbyPage
MiSwapNumaStandbyPage