code: def _wrapped_unsigned_div(a, b):
          
  
          bits = max(a.bits, b.bits)
  
          divisor_lb, divisor_ub = b.lower_bound, b.upper_bound
          uninit_flag = a.uninitialized | b.uninitialized
  
          # Make sure divisor_lb and divisor_ub is not 0
          if divisor_lb == 0:
              # Can we increment it?
              if divisor_ub == 0:
                  # We can't :-(
                  return StridedInterval.empty(bits)
              else:
                  divisor_lb += 1
          # If divisor_ub is 0, decrement it to get last but one element
          if divisor_ub == 0:
              divisor_ub = (divisor_ub - 1) & (2 ** bits - 1)
  
          lb = a.lower_bound // divisor_ub
          ub = a.upper_bound // divisor_lb
  
          # TODO: Can we make a more precise estimate of the stride?
          stride = 1
  
          return StridedInterval(bits=bits, stride=stride, lower_bound=lb, upper_bound=ub, uninitialized=uninit_flag)
docs: Perform wrapped unsigned division on two StridedIntervals.
  
          :param a: The dividend (StridedInterval)
          :param b: The divisor (StridedInterval)
          :return: The quotient