private void searchForHiddenFormatStrings(PcodeOpAST callOp,
			List<FunctionCallData> functionCallDataList, Function function) {

		int formatStringSlot = function.getParameterCount() - 1;
		Parameter param = function.getParameter(formatStringSlot);
		if (param == null || param.getSource().equals(SourceType.DEFAULT)) {
			return;
		}
		DataType type = param.getDataType();
		if ((type == null) || !(type instanceof Pointer)) {
			return;
		}
		//+1 since first input of callOp is call target address
		String formatStringCandidate = findNullTerminatedString(
			callOp.getInput(formatStringSlot + 1).getAddress(), (Pointer) type);
		if (formatStringCandidate == null) {
			return;
		}
		if (formatStringCandidate.contains("%")) {
			functionCallDataList.add(new FunctionCallData(callOp.getSeqnum().getTarget(),
				function.getName(), formatStringCandidate));
		}
	}
Takes pcode ops of a function and parses them to determine whether there are
any calls to variadic functions that use format Strings.

@param pcodeOps            List of PcodeOpAST for a function
@param addressToCandidateData map of Addresses to format String data
@param variadicFunctionNames   Set of variadic functions to look for
@return List of variadic functions that the current function calls
Ghidra/Features/DecompilerDependent/src/main/java/ghidra/app/plugin/core/string/variadic/PcodeFunctionParser.java