private void getGcWriteBarrierFlagAddrGuesses(Address wbFuncCallSite,
				Map<Address, Integer> candidateFlagAddrs) {
			Address minAddr = wbFuncCallSite.subtract(MAX_REFSEARCH_BYTES);

			for (Address refAddr : refMgr.getReferenceSourceIterator(wbFuncCallSite, false)) {
				if (refAddr.compareTo(minAddr) < 0) {
					break;
				}
				for (Reference ref : refMgr.getReferencesFrom(refAddr)) {
					if (ref.getReferenceType().isData() && ref.getReferenceType().isRead() &&
						ref.isMemoryReference() && searchAddrs.contains(ref.getToAddress())) {
						if (hasTrailingConditionalRef(refAddr, wbFuncCallSite)) {
							candidateFlagAddrs.compute(ref.getToAddress(),
								(k, v) -> v == null ? 1 : v + 1);
						}
					}
				}
			}
		}
A background command that runs later, it copies the function signature information from the
main entry point of the duff function to any unnamed functions that are within the footprint
of the main function.
Ghidra/Features/Base/src/main/java/ghidra/app/plugin/core/analysis/GolangSymbolAnalyzer.java