private Address[] getFlowsFromInstruction(Instruction instr) {
		Reference[] refsFrom = instr.getReferencesFrom();
		int length = refsFrom.length;
		List<Address> list = new ArrayList<Address>(length);
		for (int i = 0; i < length; i++) {
			RefType refType = refsFrom[i].getReferenceType();
			if (refType.isFlow()) {
				if (shouldFollowFlow((FlowType) refType)) {
					Address toAddr = refsFrom[i].getToAddress();
					if (!followIntoFunction) {
						SymbolTable symbolTable = program.getSymbolTable();
						Symbol primarySymbol = symbolTable.getPrimarySymbol(toAddr);
						if (primarySymbol.getSymbolType() == SymbolType.FUNCTION) {
							continue;
						}
					}
					list.add(toAddr);
				}
			}
		}
		return list.toArray(new Address[list.size()]);
	}
Gets the addresses of where this instruction flows. Only flow types
matching the ones that should be followed will have the address it flows
to returned.

@param instr the instruction being flowed from.
@return array of the addresses being flowed to in the manner we are
interested in.
Ghidra/Framework/SoftwareModeling/src/main/java/ghidra/program/model/block/FollowFlow.java