MiAllocateDummyPage

_MMPFN *__stdcall MiAllocateDummyPage(INT64 a1){
  __int64 v1; 
  _MMPFN *v2; 
  unsigned __int64 v3; 
  __int64 v4; 
  char v5; 

  MiAcquireNonPagedResources(&Irp, 1ui64);
  LODWORD(v1) = MiGetPage((ULONG_PTR *)&Irp.Core.PartitionId, 0i64, 0x208ui64);
  if( v1 == -1 )
    KeBugCheckEx(0x7Du, *(&stru_140C50B28 + 853), *(&stru_140C50B28 + 851), *(&stru_140C50B28 + 852), (PVOID)0x102);
  v2 = &MmGetPfnDb()[v1];
  MiSetPfnTbFlushStamp(v2, 0i64, 0i64);
  v2->PteLong = (unsigned __int64)MmGetPteBase();
  v3 = MiLockPageInline(v2);
  v4 = MiSwizzleInvalidPte(128i64);
  v5 = *((_BYTE *)&v2->u3 + 2);
  v2->OriginalPte.u.Long = v4;
  v5 |= 7u;
  v2->u3.ReferenceCount = 2;
  *((_BYTE *)&v2->u3 + 2) = v5;
  *((_BYTE *)&v2->u3 + 2) = v5 | 0x20;
  *((_BYTE *)&v2->u3 + 2) |= 8u;
  v2->u4._bf_0 &= 0x7FFFFFF000000000ui64;
  _InterlockedAnd64(&v2->u2.Lock, 0x7FFFFFFFFFFFFFFFui64);
  __writecr8(v3);
  return v2;
}

Referenced by:

MiInitSystem
MiInitializeDummyPages