private void applyRegisterMask(byte[] baseMask) {
		if (baseMask.length != (bytes.length / 2)) {
			throw new AssertException();
		}
		int valueOffset = baseMask.length;
		for (int i = 0; i < baseMask.length; i++) {
			bytes[i] &= baseMask[i];
			bytes[valueOffset + i] &= baseMask[i];
		}
	}
Constructs a new RegisterValue object for the given register and the mask/value byte array
@param register the register associated with this value.  The register specifies which bits
int the total mask/value arrays are used for this register which may be a sub-register of
some larger register.  The byte[] always is sized for the largest Register that contains
the given register.
@param bytes the mask/value array - the first n/2 bytes are the mask and the last n/2 bytes
are the value bits.
Ghidra/Framework/SoftwareModeling/src/main/java/ghidra/program/model/lang/RegisterValue.java