public MaskedLong divideUnsigned(MaskedLong that) {
		if (this.isFullyDefined() && that.isFullyDefined()) {
			//long newVal = this.val / that.val;
			long newVal = Long.divideUnsigned(this.val, that.val);
			return fromMaskAndValue(-1, newVal);
		}
		else if (that.isFullyDefined()) {
			// If it's a power of 2, re-write as bit shift
			if (Long.bitCount(that.val) == 1) {
				return shiftRightLogical(Long.numberOfTrailingZeros(that.val));
			}
			// TODO: Some way to distinguish size, or perhaps don't know from don't care
			// TODO: Some way to distinguish sign
			// If all unknown bits are at the far left, just assume they are zero
			// We may lose some possibilities, but we'll have at least found one
			else if (Long.numberOfLeadingZeros(this.msk) +
				Long.numberOfTrailingZeros(~this.msk) == Long.SIZE) {
				return fromMaskAndValue(this.msk, Long.divideUnsigned(this.val, that.val));
			}
		}
		throw new UnsupportedOperationException("Cannot divide unknown values, yet.");
		// TODO: Work this using a bitwise algorithm, if *really* needed.
		// AFAICT, a bitwise algorithm doesn't buy much at all
	}
Compute the unsigned arithmetic quotient: this masked long divided by another

@param that the other masked long.
@return the result.
Ghidra/Framework/SoftwareModeling/src/main/java/ghidra/app/plugin/assembler/sleigh/expr/MaskedLong.java