private static void ensureInt32u(long value) throws InvalidDataException {
		if (value < 0 || value > Integer.MAX_VALUE) {
			throw new InvalidDataException(
				"Value out of range for positive java 32 bit unsigned int: %s"
						.formatted(Long.toUnsignedString(value)));
		}
	}
Reads an object from the current position, using the supplied reader function.

@param <T> type of the object that will be returned
@param func {@link InputStreamReaderFunction} that will read and return an object
@return new object of type T
@throws IOException if error reading
Ghidra/Features/Base/src/main/java/ghidra/app/util/bin/BinaryReader.java