public HighSymbol populateSymbol(long id, DataType dataType, int sz) {
		if ((id >> 56) == (HighSymbol.ID_BASE >> 56)) {
			return null;		// This is an internal id, not a database key
		}
		Symbol symbol = symbolTable.getSymbol(id);
		if (symbol == null) {
			return null;
		}
		HighSymbol highSym = null;
		if (symbol instanceof CodeSymbol) {
			highSym = new HighCodeSymbol((CodeSymbol) symbol, func);
		}
		else if (symbol instanceof FunctionSymbol) {
			highSym = new HighFunctionShellSymbol(id, symbol.getName(), symbol.getAddress(),
				func.getDataTypeManager());
		}
		else {
			return null;
		}
		insertSymbol(highSym, symbol.getAddress());
		return highSym;
	}
Create a HighSymbol based on the id of the underlying Ghidra Symbol. The Symbol
is looked up in the SymbolTable and then a HighSymbol is created with the name and
dataType associated with the Symbol. If a Symbol cannot be found, null is returned.
@param id is the database id of the CodeSymbol
@param dataType is the recovered data-type of the symbol
@param sz is the size in bytes of the desired symbol
@return the CodeSymbol wrapped as a HighSymbol or null
Ghidra/Framework/SoftwareModeling/src/main/java/ghidra/program/model/pcode/GlobalSymbolMap.java