protected static Variable getOverlappingVariable(SymbolTable otherSymTable, Variable var,
			VariableStorage otherStorage, Symbol otherFunctionSymbol) {
		SymbolType symbolType = var.getSymbol().getSymbolType();
		int ordinal = -1;
		if (var instanceof Parameter) {
			ordinal = ((Parameter) var).getOrdinal();
		}
		int firstUseOffset = var.getFirstUseOffset();

		SymbolIterator symbolIter = otherSymTable.getSymbols(otherFunctionSymbol.getID());
		while (symbolIter.hasNext()) {
			Symbol s = symbolIter.next();
			if (s.getSymbolType() != symbolType) {
				continue;
			}
			Variable v = (Variable) s.getObject();
			if (v instanceof Parameter && ordinal != ((Parameter) v).getOrdinal()) {
				continue;
			}
			if (firstUseOffset != v.getFirstUseOffset()) {
				continue;
			}
			if (v.getVariableStorage().equals(otherStorage)) {
				return v;
			}
		}
		return null;
	}
Find overlapping variable which meets the following conditions
1. First use offset matches
2. Ordinal matches (for parameters only)
3. Minimum or maximum address matches
@param otherSymTable other symbol table
@param var variable
@param otherStorage other variable storage
@param otherFunctionSymbol other function symbol
@return the overlapping variable or null
Ghidra/Framework/SoftwareModeling/src/main/java/ghidra/program/util/SimpleDiffUtility.java