public static String getCleanSymbolName(String symbolName, Address address) {

		int indexOfAt = symbolName.lastIndexOf("@");
		int indexOfUnderscore = symbolName.lastIndexOf("_");

		if (indexOfAt < 1 && indexOfUnderscore < 1) {
			return symbolName;
		}

		if (indexOfAt > indexOfUnderscore) {
			// Check for possible use of "@"
			String potentialBaseName = symbolName.substring(0, indexOfAt);
			if (symbolName.equals(getAddressAppendedName(potentialBaseName, address, "@"))) {
				return potentialBaseName;
			}
			return symbolName;
		}

		// Check for possible use of "_"
		String potentialBaseName = symbolName.substring(0, indexOfUnderscore);
		if (symbolName.equals(getAddressAppendedName(potentialBaseName, address, "_"))) {
			return potentialBaseName;
		}
		return symbolName;
	}
Gets the base symbol name regardless of whether or not the address has been appended 
using either the standard "@" separator, or the less preferred "_" separator.  The
address string extension must match that which is produced by the 
{@link #getAddressString(Address)} method for it to be recognized.
@param symbolName a symbol name to get the clean name for.
@param address the symbol's address
@return the base symbol name where the {@literal "@<address>"} has been stripped away if it exists.
Ghidra/Framework/SoftwareModeling/src/main/java/ghidra/program/model/symbol/SymbolUtilities.java