@Override
	public byte getByte(int offset) throws MemoryAccessException {

		// check external to code units owned bytes
		if (offset < 0 || offset >= bytes.length) {
			if (program == null) {
				throw new MemoryAccessException(
					"Pseduo code unit has null program - memory request out of range");
			}
			Memory memory = program.getMemory();
			try {
				return memory.getByte(address.add(offset));
			}
			catch (AddressOutOfBoundsException e) {
				throw new MemoryAccessException(e.getMessage());
			}
		}

		synchronized (this) {
			refreshIfNeeded();
			return bytes[offset];
		}
	}
Get one byte from memory at the current position plus offset.

@param offset
           the displacement from the current position.
@return the data at offset from the current position.
@throws AddressOutOfBoundsException
            if offset exceeds address space
@throws IndexOutOfBoundsException
            if offset is negative
@throws MemoryAccessException
            if memory cannot be read
Ghidra/Framework/SoftwareModeling/src/main/java/ghidra/app/util/PseudoCodeUnit.java