public MaskedLong invMultiplyUnsigned(MaskedLong that) throws SolverException {
		if (that.isFullyDefined()) {
			// If it's a power of 2, re-write as bit shift
			if (Long.bitCount(that.val) == 1) {
				return invShiftLeft(Long.numberOfTrailingZeros(that.val));
			}
			// Ditto comments from #divideUnsigned
			// TODO: Is this correct or even useful?
			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.");
	}
Compute the arithmetic quotient as a solution to unsigned multiplication

<p>
This is slightly different than {@link #divideUnsigned(MaskedLong)} in its treatment of
unknowns.

@param that the known factor
@return a solution to that*x == this, if possible
@throws SolverException
Ghidra/Framework/SoftwareModeling/src/main/java/ghidra/app/plugin/assembler/sleigh/expr/MaskedLong.java