MiPageListCollision

VOID __stdcall MiPageListCollision(_MMPFN *Pfn1){
  union {unsigned __int64 Long;volatile unsigned __int64 VolatileLong;_MMPTE_HARDWARE Hard;_MMPTE_PROTOTYPE Proto;_MMPTE_SOFTWARE Soft;_MMPTE_TIMESTAMP TimeStamp;_MMPTE_TRANSITION Trans;_MMPTE_SUBSECTION Subsect;_MMPTE_LIST List;} v1; 
  __int64 v2; 
  int v3; 
  __int64 v4; 
  __int64 v5; 
  _MMPTE *v6; 

  v1.Long = (unsigned __int64)Pfn1->OriginalPte.u;
  *((_BYTE *)&Pfn1->u3 + 2) &= ~8u;
  *(_QWORD *)(v1.Long + 24) = 0i64;
  *(_BYTE *)(v1.Long + 69) = 1;
  v2 = MiSwizzleInvalidPte(128i64);
  *(_QWORD *)(v5 + 16) = v2;
  v6 = *(_MMPTE **)(v4 + 32);
  if( v6 )
  {
    if( (v6->u.Long & 1) != 0 )
      MiZeroPageWorkMapping(*(unsigned int *)(v4 + 64), v6, v3 == 0 ? 2 : 0, (_KTBFLUSH_TYPE)-v3);
  }
}

Referenced by:

MiReplenishPageSlist
MiScrubNodeLargePageList
MiUnlinkFreeOrZeroedPage
MiUnlinkNodeLargePageHelper