public void bootstrap(String msg,
			CheckedIOFunction<BinaryReader, ? extends DWARFIndirectTableHeader> headerReader,
			TaskMonitor monitor) throws CancelledException, IOException {
		if (reader == null) {
			return;
		}
		reader.setPointerIndex(0);
		monitor.initialize(reader.length(), msg);
		while (reader.hasNext()) {
			monitor.checkCancelled();
			monitor.setProgress(reader.getPointerIndex());
			monitor.setMessage(msg + " #" + lookupMap.size());

			DWARFIndirectTableHeader header = headerReader.apply(reader);
			if (header != null) {
				lookupMap.put(header.getFirstElementOffset(), header);
			}
		}
	}
Populates this instance will all {@link DWARFIndirectTableHeader} instances that can be
read from the stream.

@param msg String message to use for the taskmonitor
@param headerReader a function that reads the specific table header type from the stream
@param monitor {@link TaskMonitor}
@throws CancelledException if cancelled
@throws IOException if error reading a header
Ghidra/Features/Base/src/main/java/ghidra/app/util/bin/format/dwarf/DWARFIndirectTable.java