private void performMultiLineSearch(Function function, List<ClangLine> lines) {

			// Map characters to lines so we can later translate a character position into the line
			// that contains it.  Also convert all lines into one big run of text to use with the
			// regex.  Also, turn the c line into a String for later searching.
			StringBuilder buffy = new StringBuilder();
			TreeMap<Integer, TextLine> linesRangeMap = new TreeMap<>();
			int pos = 0;
			for (ClangLine cLine : lines) {
				String text = PrettyPrinter.getText(cLine);
				buffy.append(text).append('\n');
				TextLine textLine = new TextLine(pos, cLine, text);
				linesRangeMap.put(pos, textLine);
				pos += text.length() + 1; // +1 for newline
			}

			Matcher matcher = pattern.matcher(buffy);
			findMatches(function, linesRangeMap, matcher);
		}
Finds text inside the given decompiled functions using the given pattern.
@param program the program
@param searchPattern the search pattern
@param functions the functions to search
@param consumer the consumer that will get matches
@param monitor the task monitor
@see #findText(Program, Pattern, Consumer, TaskMonitor)
Ghidra/Features/DecompilerDependent/src/main/java/ghidra/app/plugin/core/search/DecompilerTextFinder.java