MiInitializeDummyPages
VOID __stdcall MiInitializeDummyPages(){
INT64 v0;
__int64 v1;
_MMPFN *PfnDb;
unsigned __int64 v3;
_MMPFN *DummyPage;
_MMPTE *PteBase;
__int64 v6;
_MMPFN *v7;
__int64 v8;
MiAllocateDummyPage();
v0 = MiSwizzleInvalidPte(32i64);
*(_QWORD *)(v1 + 16) = v0;
PfnDb = MmGetPfnDb();
v3 = (__int64)((unsigned __int128)((v1 - (__int64)PfnDb) * (__int128)0x2AAAAAAAAAAAAAABi64) >> 64) >> 3;
qword_140C4EAC0 = (v3 >> 63) + v3;
MiFillPhysicalPages((PVOID)qword_140C4EAC0);
qword_140C4EAA0 = (__int64)MiAllocateDummyPage();
*(_QWORD *)(qword_140C4EAA0 + 16) = v0;
qword_140C4EAA8 = (qword_140C4EAA0 - (__int64)PfnDb) / 48;
MiFillPhysicalPages((PVOID)qword_140C4EAA8);
DummyPage = MiAllocateDummyPage();
*((_QWORD *)DummyPage + 2) = v0;
PteBase = MmGetPteBase();
v6 = (DummyPage - PfnDb) / 48;
qword_140C4EB28 = v6;
MiMakeValidPte((UINT64)PteBase + (((unsigned __int64)MmPfnDatabase >> 9) & 0x7FFFFFFFF8i64), qword_140C4EAC0, 1i64);
MiFillPhysicalPages((PVOID)v6);
qword_140C4EB30 = ((qword_140C4EB28 & 0xFFFFFFFFFi64) << 12) | MiMakeValidPte(
(UINT64)PteBase
+ (((unsigned __int64)MmPfnDatabase >> 9) & 0x7FFFFFFFF8i64),
qword_140C4EAC0,
134217729i64) & 0xFFFF000000000FFFui64;
v7 = MiAllocateDummyPage();
*((_QWORD *)v7 + 2) = v0;
v8 = (v7 - PfnDb) / 48;
qword_140C4EB38 = v8;
MiMakeValidPte((UINT64)PteBase + (((unsigned __int64)MmPfnDatabase >> 9) & 0x7FFFFFFFF8i64), qword_140C4EAA8, 1i64);
MiFillPhysicalPages((PVOID)v8);
qword_140C4EB40 = ((qword_140C4EB38 & 0xFFFFFFFFFi64) << 12) | MiMakeValidPte(
(UINT64)PteBase
+ (((unsigned __int64)MmPfnDatabase >> 9) & 0x7FFFFFFFF8i64),
qword_140C4EAA8,
134217729i64) & 0xFFFF000000000FFFui64;
}Referenced by:
MiInitNucleus