private void disassemble(Address start, Address end, Program prog, TaskMonitor monitor)
			throws CancelledException {
		// TODO: Should we restrict disassembly or follows flows?
		AddressSet set = new AddressSet(start, end);
		Disassembler disassembler = Disassembler.getDisassembler(prog, monitor, m -> {
			/* silent */});
		while (!set.isEmpty()) {
			monitor.checkCancelled();
			AddressSet disset = disassembler.disassemble(set.getMinAddress(), null, true);
			if (disset.isEmpty()) {
				// Stop on first error but discard error bookmark since
				// some plt sections are partly empty and must rely
				// on normal flow disassembly during analysis
				prog.getBookmarkManager()
						.removeBookmarks(set, BookmarkType.ERROR,
							Disassembler.ERROR_BOOKMARK_CATEGORY, monitor);
				break;//we did not disassemble anything...
			}
			set.delete(disset);
		}
	}
Convert all symbols over a specified range to thunks to external functions. 
@param minAddress range minimum address
@param maxAddress range maximum address (inclusive)
@return number of symbols converted
Ghidra/Features/Base/src/main/java/ghidra/app/util/bin/format/elf/ElfDefaultGotPltMarkup.java