private void loadFunctionNamesIfNeeded(Program program)
			throws FileNotFoundException, IOException, XmlParseException {

		if (functionNames != null) {
			return;
		}

		functionNames = new HashSet<>();
		wildcardFunctionNames = new HashSet<>();

		ResourceFile[] files = NonReturningFunctionNames.findDataFiles(program);
		for (ResourceFile file : files) {

			BufferedReader reader =
				new BufferedReader(new InputStreamReader(file.getInputStream()));
			try {
				while (true) {
					String line = reader.readLine();
					if (line == null) {
						break;
					}
					line = line.trim();
					if (line.length() == 0 || line.charAt(0) == '#') {
						continue;
					}
					int startIndex = 0;
					while (line.charAt(startIndex) == '_') {
						++startIndex;
					}
					if (startIndex != 0) {
						Msg.warn(this, "Ignoring leading '_' chars on no-return name '" + line +
							"' specified in file: " + file.getAbsolutePath());
						line = line.substring(startIndex);
					}

					String funcName = line.trim();
					if (funcName.endsWith("*")) {
						// if funcName has a wildcard at the end, put on wildcard list
						funcName = funcName.substring(0, funcName.length() - 1);
						wildcardFunctionNames.add(funcName);
					}
					else {
						functionNames.add(funcName);
					}
				}
			}
			finally {
				reader.close();
			}
		}
	}
If symbol corresponds to a pointer which references an external symbol return 
the referenced external symbol, otherwise return the symbol provided.</li>
@param symbol - symbol to check for an external reference
@return referenced external symbol or original symbol
Ghidra/Features/Base/src/main/java/ghidra/app/plugin/core/analysis/NoReturnFunctionAnalyzer.java