MiZeroWithUltraSpace

VOID __fastcall MiZeroWithUltraSpace(INT64 a1, INT64 a2){
  INT64 v2; 
  __int64 v4; 
  unsigned int PfnPageSizeIndex; 
  unsigned int v6; 
  __int64 v7; 
  _MMPTE *PteBase; 
  VOID *v9; 
  UINT64 v10; 
  __int64 v11; 
  int ProtectionPfnCompatible; 
  INT64 v13; 
  int v14; 
  UINT64 ValidPte; 
  UINT64 v16; 
  UINT64 v17; 
  __int64 v18; 
  unsigned __int64 UltraMapping; 
  v2 = a1;
  LODWORD(v4) = 3;
  if( (*(_QWORD *)(a2 + 40) & 0x1000000000i64) == 0 )
    goto LABEL_6;
  PfnPageSizeIndex = MiGetPfnPageSizeIndex(a2);
  v4 = PfnPageSizeIndex;
  if( PfnPageSizeIndex == -1 )
    v4 = v6;
  if( (unsigned int)v4 < v6 )
  {
    v7 = MiLargePageSizes[v4];
    v18 = v7;
  }
  else
  {
LABEL_6:
    v7 = 1i64;
    v18 = 1i64;
  }
  UltraMapping = MiGetUltraMapping((unsigned __int64 *)(v2 + 32i64 * (unsigned int)v4), v4, v7, 0);
  PteBase = MmGetPteBase();
  v9 = (VOID *)UltraMapping;
  v10 = (UINT64)PteBase + ((UltraMapping >> 9) & 0x7FFFFFFFF8i64);
  if( (unsigned int)v4 <= 1 )
  {
    v11 = (unsigned int)(2 - v4);
    do
    {
      v10 = (UINT64)PteBase + ((v10 >> 9) & 0x7FFFFFFFF8i64);
      --v11;
    }
    while( v11 );
  }
  ProtectionPfnCompatible = MiMakeProtectionPfnCompatible(4ui64, (_MMPFN *)a2);
  v14 = -1543503872;
  if( (unsigned int)v4 > 1 )
    v14 = -1610612736;
  ValidPte = MiMakeValidPte(v10, v13, ProtectionPfnCompatible | (unsigned int)v14);
  if( (_DWORD)v4 == 2 )
  {
    if( v10 < v10 + 128 )
    {
      v16 = v10 + 128;
      do
      {
        *(_QWORD *)v10 = ValidPte;
        v10 += 8i64;
        ValidPte ^= (ValidPte ^ (ValidPte + 4096)) & 0xFFFFFFFFF000i64;
      }
      while( v10 < v16 );
      v7 = v18;
      v9 = (VOID *)UltraMapping;
    }
    v10 -= 128i64;
  }
  else
  {
    *(_QWORD *)v10 = ValidPte;
  }
  MiZeroMemory(v9, v7 << 12);
  if( (_DWORD)v4 == 2 )
  {
    v17 = v10 + 128;
    while( v10 < v17 )
    {
      *(_QWORD *)v10 = ZeroPte;
      v10 += 8i64;
    }
  }
  else
  {
    *(_QWORD *)v10 = ZeroPte;
  }
}

Referenced by:

MiZeroInParallelWorker