private Object getPointerDataTypeValue(DataType dataType, Address lastSetAddr,
			BigInteger bval) {
		
		int len = dataType.getLength();
		byte[] byteArray = new byte[len];

		BigEndianDataConverter.INSTANCE.putBigInteger(byteArray, 0, len, bval);

		MemBuffer buf =
			new ByteMemBufferImpl(program.getMemory(), lastSetAddr, byteArray, true);

		// if not enough bytes for data type, can't do it
		if (len > byteArray.length) {
			return null;
		}
		
		Object value = dataType.getValue(buf, dataType.getDefaultSettings(), len);
		
		return value;
	}
check if the offset is large enough to possibly be an address
    It shouldn't be smaller than +- MIN_BOUNDS
@param offset assumed relative to another register
@return true if it could be an address
Ghidra/Features/Base/src/main/java/ghidra/program/util/SymbolicPropogator.java