public Iterator<FunctionDescription> listFunctions(ExecutableRecord exe) {
		ExecutableRecord startexe = exerec.floor(exe);
		ExecutableRecord endexe = exerec.higher(exe);
		if (startexe == null) {
			return null;
		}
		FunctionDescription startfunc = new FunctionDescription(startexe, "", 0);
		startfunc = funcrec.ceiling(startfunc);
		if (startfunc == null) { // No functions in exe or after
			startfunc = funcrec.last();
			return funcrec.subSet(startfunc, startfunc).iterator();
		}
		FunctionDescription endfunc = null;
		if (endexe != null) {
			endfunc = new FunctionDescription(endexe, "", 0);
			endfunc = funcrec.ceiling(endfunc);
		}
		if (endfunc == null) {
			// executable is last and has no functions
			return funcrec.tailSet(startfunc).iterator();
		}
		return funcrec.subSet(startfunc, endfunc).iterator();
	}
Generate an iterator over all functions belonging to a specific executable
@param exe is the specific executable
@return iterator over all functions in -exe-
Ghidra/Features/BSim/src/main/java/ghidra/features/bsim/query/description/DescriptionManager.java