public AssemblyPatternBlock maskOut(AssemblyPatternBlock other) {
		assert this.length() >= other.length();

		byte[] newMask = Arrays.copyOf(this.mask, this.mask.length);
		byte[] newVals = Arrays.copyOf(this.vals, this.vals.length);

		for (int i = this.offset; i < Math.min(this.length(), other.length()); i++) {
			if (i < this.offset || i < other.offset) {
				continue;
			}
			newMask[i - this.offset] &= (~other.mask[i - other.offset] & 0xff);
			newVals[i - this.offset] &= (~other.mask[i - other.offset] & 0xff);
		}
		return new AssemblyPatternBlock(offset, newMask, newVals);
	}
Set all bits that are known (1 in mask) in {@code other} to unknown.

<p>
Other must have the same or shorter length than this.

@param other the other pattern block whose mask bits are examined
@return a copy of this pattern with mask bits set to unknown
Ghidra/Framework/SoftwareModeling/src/main/java/ghidra/app/plugin/assembler/sleigh/sem/AssemblyPatternBlock.java