MiReadyStandbyPageForActive

VOID __fastcall MiReadyStandbyPageForActive(_MMPFN *Pfn1, _MMPTE *PointerPte){
  _LIST_ENTRY *Blink; 
  char v3; 
  _QWORD *v5; 
  int v6; 
  int v7; 
  __int64 v8; 
  __int64 v9; 
  int v10; 

  Blink = Pfn1->ListEntry.Blink;
  v3 = *(_BYTE *)(&Pfn1->u3 + 1) & 0xFE;
  ++Pfn1->u3.ReferenceCount;
  *((_BYTE *)&Pfn1->u3 + 2) = v3 | 6;
  v5 = (_QWORD *)((unsigned __int64)Blink | 0x8000000000000000ui64);
  v6 = (unsigned __int8)Pfn1->OriginalPte.u.Long >> 5;
  v7 = *((unsigned __int8 *)&Pfn1->u3 + 2) >> 6;
  if( v7 != 1 )
  {
    if( v7 )
    {
      if( v7 == 2 )
        v6 |= 0x18u;
    }
    else
    {
      v6 |= 8u;
    }
  }
  LODWORD(v8) = MiMakeValidPte((_XSTATE_CONFIGURATION *)PointerPte, Pfn1 - MmGetPfnDb(), v6 | 0x20000000u);
  v9 = v8;
  LOBYTE(v10) = MiPteInShadowRange((UINT64)v5);
  if( v10 && (KeGetCurrentThread()->ApcState.Process->Flags3 & 0x1000) != 0 && (v9 & 1) != 0 )
    v9 |= 0x8000000000000000ui64;
  *v5 = v9;
  Pfn1->u2._bf_0 = Pfn1->u2._bf_0 & 0xC000000000000000ui64 | 1;
}

Referenced by:

MiUnlinkStandbyBatch