MiFillPhysicalPages

NTSTATUS __stdcall MiFillPhysicalPages(PVOID BugCheckParameter2){
  __int64 v1; 
  unsigned __int64 v2; 
  UINT64 *v3; 
  unsigned __int64 v4; 
  __int64 v6; 
  __int64 v7; 
  void *v8; 
  void *v9; 
  NTSTATUS result; 
  unsigned __int64 Phase0Mapping; 
  __int64 OldIrql; 
  OldIrql = v1;
  LOBYTE(OldIrql) = 17;
  v3 = 0i64;
  v4 = v2;
  v6 = 0i64;
  v7 = *((_QWORD *)KeGetCurrentPrcb() + 4160);
  do
  {
    if( v7 )
    {
      LODWORD(v8) = MiMapPageInHyperSpaceWorker((UINT64)BugCheckParameter2, (UINT8 *)&OldIrql, 0x80000000ui64);
      v9 = v8;
    }
    else
    {
      Phase0Mapping = (unsigned __int64)MxGetPhase0Mapping();
      v9 = (void *)Phase0Mapping;
      if( !Phase0Mapping )
        KeBugCheckEx(0x1Au, 0x3030305ui64, (ULONG_PTR)BugCheckParameter2, 0i64, 0i64);
      v3 = (UINT64 *)((char *)MmGetPteBase() + ((Phase0Mapping >> 9) & 0x7FFFFFFFF8i64));
      *v3 = MiMakeValidPte((UINT64)v3, (INT64)BugCheckParameter2, 2684354564i64);
    }
    if( v4 )
      memset64(v9, v4, 0x200ui64);
    else
      KeZeroPages(v9, 0x1000ui64);
    if( v7 )
    {
      MiUnmapPageInHyperSpaceWorker(v9, OldIrql, 0x80000000ui64);
    }
    else
    {
      *v3 = ZeroPte;
      result = KeFlushSingleTb(v9, 0i64, 1i64);
    }
    ++v6;
    BugCheckParameter2 = (char *)BugCheckParameter2 + 1;
  }
  while( !v6 );
  return result;
}

Referenced by:

MiGetPoolPages
MiInitializeDummyPages
MiInitializeSystemPageTable
MiZeroPhysicalPage
MxMapVa