MiEliminateZeroPages

VOID __fastcall MiEliminateZeroPages(INT64 a1, UINT64 a2, UINT64 a3){
  unsigned int v6; 
  MMPTE *PteAddress; 
  UINT64 v8; 
  MMPTE *v9; 
  _QWORD *v10; 
  _QWORD *v11; 
  MMPTE *PdeAddress; 
  INT64 result; 
  int v14; 
  int v15; 
  memset((INT64)&result, 0i64);
  v6 = MiTbFlushType(a1);
  MiInitializeTbFlushList((INT64)&result, v6, 20i64);
  BYTE4(result) |= 4u;
  PteAddress = MiGetPteAddress((PVOID)a2);
  v8 = a3 >> 12;
  v9 = 0i64;
  while( v8 )
  {
    v10 = (_QWORD *)a2;
    v11 = (_QWORD *)(a2 + 4088);
    do
    {
      if( *v10 | *v11 )
        break;
      ++v10;
      --v11;
    }
    while( v10 <= v11 );
    if( v10 > v11 )
    {
      PdeAddress = MiGetPdeAddress((PVOID)a2);
      if( v9 != PdeAddress )
      {
        if( v15 )
          MiConvertAndFlushWsleVas(a1, (INT64)&result);
        v9 = PdeAddress;
      }
      MiInsertTbFlushEntry((INT64)&result, a2, 1i64, 0i64);
      if( v15 == v14 )
        MiConvertAndFlushWsleVas(a1, (INT64)&result);
    }
    PteAddress = (MMPTE *)((char *)PteAddress + 8);
    a2 += 4096i64;
    --v8;
  }
  if( v15 )
    MiConvertAndFlushWsleVas(a1, (INT64)&result);
}

Referenced by:

MiCopyToCfgBitMap
MiUpdateCfgSystemWideBitmapWorker