@Override
	public final BigInteger getBigInteger(AddressSpace spc, long off, int size, boolean signed) {
		if (spc.isConstantSpace()) {
			if (!signed && off < 0) {
				return new BigInteger(1, Utils.longToBytes(off, 8, true));
			}
			return BigInteger.valueOf(off);
		}
		byte[] bytes = new byte[size];
		getChunk(bytes, spc, off, size, false);
		return Utils.bytesToBigInteger(bytes, size, language.isBigEndian(), signed);
	}
This is the main interface for reading values from the MemoryState. If there is no registered
MemoryBank for the desired address space, or if there is some other error, an exception is
thrown.

@param spc is the address space being queried
@param off is the offset of the value being queried
@param size is the number of bytes to query
@param signed true if signed value should be returned, false for unsigned value
@return the queried unsigned value
Ghidra/Framework/Emulation/src/main/java/ghidra/pcode/memstate/AbstractMemoryState.java