MiInitializeDummyPages

VOID __stdcall MiInitializeDummyPages(){
  INT64 v0; 
  __int64 v1; 
  __int64 v2; 
  _MMPFN *PfnDb; 
  unsigned __int64 v4; 
  INT64 v5; 
  INT64 v6; 
  _MMPFN *DummyPage; 
  _MMPTE *PteBase; 
  __int64 v9; 
  __int64 v10; 
  INT64 v11; 
  _MMPFN *v12; 
  __int64 v13; 
  __int64 v14; 

  MiAllocateDummyPage(v0);
  v1 = MiSwizzleInvalidPte(32i64);
  *(_QWORD *)(v2 + 16) = v1;
  PfnDb = MmGetPfnDb();
  v4 = (__int64)((unsigned __int128)((v2 - (__int64)PfnDb) * (__int128)0x2AAAAAAAAAAAAAABi64) >> 64) >> 3;
  *(&stru_140C4DB30 + 498) = (v4 >> 63) + v4;
  MiFillPhysicalPages(*(&stru_140C4DB30 + 498));
  *(&stru_140C4DB30 + 494) = MiAllocateDummyPage(v5);
  *(_QWORD *)(*(&stru_140C4DB30 + 494) + 16i64) = v1;
  *(&stru_140C4DB30 + 495) = (*(&stru_140C4DB30 + 494) - (_QWORD)PfnDb) / 48i64;
  MiFillPhysicalPages(*(&stru_140C4DB30 + 495));
  DummyPage = MiAllocateDummyPage(v6);
  DummyPage->OriginalPte.u.Long = v1;
  PteBase = MmGetPteBase();
  v9 = DummyPage - PfnDb;
  *(&stru_140C4DB30 + 511) = v9;
  MiMakeValidPte(
    (_XSTATE_CONFIGURATION *)((char *)PteBase + (((unsigned __int64)MmPfnDatabase >> 9) & 0x7FFFFFFFF8i64)),
    *(&stru_140C4DB30 + 498),
    1i64);
  MiFillPhysicalPages((PVOID)v9);
  LODWORD(v10) = MiMakeValidPte(
                   (_XSTATE_CONFIGURATION *)((char *)PteBase + (((unsigned __int64)MmPfnDatabase >> 9) & 0x7FFFFFFFF8i64)),
                   *(&stru_140C4DB30 + 498),
                   134217729i64);
  v11 = (*(&stru_140C4DB30 + 511) & 0xFFFFFFFFFi64) << 12;
  *(&stru_140C4DB30 + 512) = v11 | v10 & 0xFFFF000000000FFFui64;
  v12 = MiAllocateDummyPage(v11);
  v12->OriginalPte.u.Long = v1;
  v13 = v12 - PfnDb;
  *(&stru_140C4DB30 + 513) = v13;
  MiMakeValidPte(
    (_XSTATE_CONFIGURATION *)((char *)PteBase + (((unsigned __int64)MmPfnDatabase >> 9) & 0x7FFFFFFFF8i64)),
    *(&stru_140C4DB30 + 495),
    1i64);
  MiFillPhysicalPages((PVOID)v13);
  LODWORD(v14) = MiMakeValidPte(
                   (_XSTATE_CONFIGURATION *)((char *)PteBase + (((unsigned __int64)MmPfnDatabase >> 9) & 0x7FFFFFFFF8i64)),
                   *(&stru_140C4DB30 + 495),
                   134217729i64);
  *(&stru_140C4DB30 + 514) = ((*(&stru_140C4DB30 + 513) & 0xFFFFFFFFFi64) << 12) | v14 & 0xFFFF000000000FFFui64;
}

Referenced by:

MiInitNucleus