MiEliminateZeroPages

VOID __stdcall MiEliminateZeroPages(_MMSUPPORT_INSTANCE *Vm, VOID *Va, UINT64 a3){
  _KTBFLUSH_TYPE v6; 
  _MMPTE *PteAddress; 
  UINT64 v8; 
  _MMPTE *v9; 
  _QWORD *v10; 
  _QWORD *v11; 
  _MMPTE *PdeAddress; 
  _BYTE TbFlushList[184]; 

  memset(TbFlushList, 0i64, sizeof(TbFlushList));
  v6 = MiTbFlushType(Vm);
  MiInitializeTbFlushList((_MI_TB_FLUSH_LIST *)TbFlushList, v6, 0x14ui64);
  TbFlushList[4] |= 4u;
  PteAddress = MiGetPteAddress(Va);
  v8 = a3 >> 12;
  v9 = 0i64;
  while( v8 )
  {
    v10 = Va;
    v11 = (char *)Va + 4088;
    do
    {
      if( *v10 | *v11 )
        break;
      ++v10;
      --v11;
    }
    while( v10 <= v11 );
    if( v10 > v11 )
    {
      PdeAddress = MiGetPdeAddress(Va);
      if( v9 != PdeAddress )
      {
        if( *(_DWORD *)&TbFlushList[12] )
          MiConvertAndFlushWsleVas(Vm, (_MMWSLE_FLUSH_LIST *)TbFlushList);
        v9 = PdeAddress;
      }
      MiInsertTbFlushEntry((_MI_TB_FLUSH_LIST *)TbFlushList, Va, 1ui64, 0i64);
      if( *(_DWORD *)&TbFlushList[12] == *(_DWORD *)&TbFlushList[8] )
        MiConvertAndFlushWsleVas(Vm, (_MMWSLE_FLUSH_LIST *)TbFlushList);
    }
    ++PteAddress;
    Va = (char *)Va + 4096;
    --v8;
  }
  if( *(_DWORD *)&TbFlushList[12] )
    MiConvertAndFlushWsleVas(Vm, (_MMWSLE_FLUSH_LIST *)TbFlushList);
}

Referenced by:

MiCopyToCfgBitMap
MiUpdateCfgSystemWideBitmapWorker