final static boolean isFunction(Program program, String symbol, Address addr, int length) {
		int atpos = symbol.lastIndexOf('@');
		if (atpos > 0) {
			String s = symbol.substring(atpos + 1);
			try {
				Integer.parseInt(s);
			}
			catch (NumberFormatException e) {
				return false;
			}
			//check to make sure it is all code....
			PseudoDisassembler dis = new PseudoDisassembler(program);
			Address tmp = addr;
			while (tmp.subtract(addr) < length) {
				try {
					PseudoInstruction instr = dis.disassemble(tmp);
					tmp = tmp.add(instr.getLength());
				}
				catch (Exception e) {
					return false;
				}
			}
			return true;
		}
		return false;
	}
Returns true is this symbol represents a function.
For example, "FunctionName@4" or "MyFunction@22".
@param program the {@link Program} for which to check
@param symbol the symbol to check
@param addr {@link Address} of the symbol
@param length the length for the check
@return {@code true} upon success
Ghidra/Features/PDB/src/main/java/ghidra/app/util/bin/format/pdb/PdbUtil.java