public void processFile(XmlPullParser parser,LSHVectorFactory vectorFactory) throws IOException,
			InterruptedException, LSHException {
		recnum = 0;
        
        DescriptionManager dmanage = null;
		parser.start("description");
		while(parser.peek().isStart()) {
			parser.start("execlist");
			dmanage = new DescriptionManager();		// Allocate per executable
			ExecutableRecord erec = ExecutableRecord.restoreXml(parser, dmanage);
			handleExecutable(erec);
			while(parser.peek().isStart()) {
				FunctionDescription fdesc = FunctionDescription.restoreXml(parser, vectorFactory, dmanage, erec);
				handleFunction(fdesc,recnum);
				dmanage.clearFunctions();		// Free up memory
				recnum += 1;					// Count the record
			}
			parser.end();
		}
		parser.end();
	}
Scan a description XML file and for each {@code <fdesc>} tag, parse it, build the 
FunctionDescription object and call handleFunction
Ghidra/Features/BSim/src/main/java/ghidra/features/bsim/query/description/FunctionDescriptionMapper.java