private boolean decompile(Function function, TaskMonitor monitor) {

		DecompInterface decompiler = null;
		try {
			decompiler = getConfiguredDecompiler();
			if (!decompiler.openProgram(plugin.getCurrentProgram())) {
				Msg.info(this, "Unable to initalize the Decompiler interface");
				Msg.info(this, decompiler.getLastMessage());
				return false;
			}
			int decompilerTimeout = plugin.getDecompilerTimeout();
			//first decompile the function to get the HighFunction 
			DecompileResults decompRes =
				decompiler.decompileFunction(function, decompilerTimeout, monitor);
			hfunction = decompRes.getHighFunction();
			if (hfunction == null) {
				Msg.info(this, "null HighFunction for " + function.getName());
				return false;
			}
			//populate the map from block indices to call strings and
			//create a map from SequenceNumbers to PcodeOps
			//needed since the DebugSignature objects only contain the sequence number
			seqToPcode = new HashMap<>();
			blockIndexToCallString = new HashMap<>();
			for (PcodeBlockBasic block : hfunction.getBasicBlocks()) {
				StringBuilder sb = new StringBuilder();
				Iterator<PcodeOp> pcodeOpIter = block.getIterator();
				while (pcodeOpIter.hasNext()) {
					PcodeOpAST op = (PcodeOpAST) pcodeOpIter.next();
					seqToPcode.put(op.getSeqnum(), op);
					if ((op.getOpcode() == PcodeOp.CALL) || (op.getOpcode() == PcodeOp.CALLIND)) {
						if (sb.length() > 0) {
							sb.append(",");
						}
						sb.append(op.getMnemonic());
					}
				}
				if (sb.length() == 0) {
					sb.append(BSimFeatureGraphType.EMPTY_CALL_STRING);
				}
				blockIndexToCallString.put(block.getIndex(), sb.toString());
			}

			//next use the decompiler to get the debug BSim feature information
			signatures = decompiler.debugSignatures(function, decompilerTimeout, null);
			if (signatures == null) {
				Msg.info(this, "Null sigres for function " + function.getName());
				return false;
			}
		}
		finally {
			if (decompiler != null) {
				decompiler.closeProgram();
				decompiler.dispose();
			}
		}
		return true;
	}
Sets the current program and reloads the table data.
@param p program
Ghidra/Features/BSimFeatureVisualizer/src/main/java/ghidra/bsfv/BsfvTableModel.java