MiZeroPhysicalPage

VOID __fastcall MiZeroPhysicalPage(UINT64 PageFrameIndex, UINT64 Flags, _MI_PFN_CACHE_ATTRIBUTE FinalAttribute){
  char v4; 
  _MMPFN *v6; 
  __int64 v7; 
  unsigned int v8; 
  INT64 v9; 
  char v10; 
  int ProtectionPfnCompatible; 
  v4 = Flags;
  v6 = (_MMPFN *)((char *)MmGetPfnDb() + 48 * PageFrameIndex);
  v7 = *((unsigned __int8 *)v6 + 34) >> 6;
  v8 = *((unsigned __int8 *)v6 + 34) >> 6;
  if( (Flags & 2) == 0 )
  {
    v8 = dword_140C4DCD8[4 * v7 + (int)FinalAttribute];
    if( v8 != (_DWORD)v7 )
      MiChangePageAttribute((INT64)v6, v8, 0);
  }
  v9 = 0i64;
  v10 = -2;
  if( !*((_QWORD *)KeGetCurrentPrcb() + 4160) )
    v10 = v4;
  if( (v10 & 1) != 0 && (v9 = MiReservePtes((INT64)&qword_140C4EC80, 1ui64)) != 0 )
  {
    ProtectionPfnCompatible = MiMakeProtectionPfnCompatible(4ui64, v6);
    *(_QWORD *)v9 = MiMakeValidPte(v9, PageFrameIndex, ProtectionPfnCompatible | 0xA0000000);
    KeZeroPages((PVOID)(((v9 << 25) - ((_QWORD)MmGetPteBase() << 25)) >> 16), 0x1000ui64);
    MiReleasePtes((INT64)&qword_140C4EC80, v9, 1ui64);
  }
  else
  {
    if( *((_QWORD *)KeGetCurrentPrcb() + 4160) )
      v9 = 1i64;
    MiFillPhysicalPages((PVOID)PageFrameIndex);
  }
  if( v8 != (_DWORD)v7 && v8 != FinalAttribute )
  {
    if( v9 )
      MiChangePageAttribute((INT64)v6, (unsigned int)v7, 0);
  }
}

Referenced by:

MiComputeOptimalZeroPath
MiGetLargePage
MiGetPage
MiGetPageChain
MiInitializeCacheFlushing
MiIssueHardFault
MiMakePageAvoidRead
MiPerformFinalZeroing
MiPfPutPagesInTransition
MiWaitForInPageComplete
MiZeroAndConvertPage
MiZeroLargePage
MiZeroWithSystemPtes
MmCheckCachedPageStates