private int disambiguateNgramsWithStrategy(DisambiguateStrategy strategy, HashEntry srcEntry,
			HashEntry destEntry) throws CancelledException, MemoryAccessException {
		TreeMap<Hash, DisambiguatorEntry> srcDisambig =
			constructDisambiguatorTree(srcEntry, srcStore, strategy);
		TreeMap<Hash, DisambiguatorEntry> destDisambig =
			constructDisambiguatorTree(destEntry, destStore, strategy);
		int count = 0;
		Iterator<DisambiguatorEntry> iter = srcDisambig.values().iterator();
		while (iter.hasNext()) {
			DisambiguatorEntry srcDisEntry = iter.next();
			if (srcDisEntry.count != 1)
				continue;
			// Its possible for this InstructHash to have been matched by an earlier DisambiguatorEntry
			if (srcDisEntry.instruct.isMatched)
				continue;
			DisambiguatorEntry destDisEntry = destDisambig.get(srcDisEntry.hash);
			if (destDisEntry == null)
				continue;
			if (destDisEntry.count != 1)
				continue;
			if (destDisEntry.instruct.isMatched)
				continue;
			// If both sides have exactly one matching InstructHash, call it a match
			declareMatch(srcEntry, srcDisEntry.instruct, destEntry, destDisEntry.instruct);
			count += 1;
		}
		return count;
	}
Try to disambiguate n-grams with a single hash using a specific secondary hash strategy
@param strategy is the DisambiguateStrategy to use for secondary hashes
@param srcEntry is the collection of n-grams with the same hash on the source side
@param destEntry is the collection of n-grams with the same hash on the destination side
@return the number of disambiguated matches successfully discovered
@throws CancelledException
@throws MemoryAccessException
Ghidra/Framework/SoftwareModeling/src/main/java/ghidra/program/model/correlate/HashedFunctionAddressCorrelation.java