MiBitmapRangeZeroEx

INT64 __stdcall MiBitmapRangeZeroEx(INT64 rcx0, INT64 rdx0, _QWORD *a3){
  __int64 v3; 
  __int64 i; 
  unsigned int v6; 
  int v7; 
  __int64 v8; 
  INT64 v9; 
  INT64 v10; 
  _MMPTE *PteBase; 
  INT64 result; 
  INT64 v13; 
  __int128 v14[2]; 
  v3 = *(_QWORD *)(rcx0 + 8);
  memset(v14, 0, sizeof(v14));
  i = 0i64;
  v6 = 0;
  v7 = 3;
  MiFillPteHierarchy(v3 + rdx0 / 8, (UINT64 *)v14);
  v8 = 3i64;
  while( 1 )
  {
    v9 = *(&v13 + v8--);
    --v7;
    v10 = MI_READ_PTE_LOCK_FREE(v9);
    PteBase = MmGetPteBase();
    if( !v10 )
      break;
    if( (v10 & 0x81) == 0x81 )
      i = -1i64;
    if( i == -1 )
      goto LABEL_9;
    if( !v8 )
      goto LABEL_10;
  }
  v6 = 1;
LABEL_9:
  for( i = (((v9 + 8) << 25) - ((_QWORD)PteBase << 25)) >> 16; v7; --v7 )
    i = ((i << 25) - ((_QWORD)PteBase << 25)) >> 16;
LABEL_10:
  if( !i )
    i = ((*(_QWORD *)&v14[0] << 25) - ((_QWORD)PteBase << 25) + 0x10000000i64) >> 16;
  result = v6;
  *a3 = 8 * (i - v3);
  return result;
}

Referenced by:

MiReturnPageTablePageCommitment