@Override
	public void executeConditionalBranch(PcodeOp op, PcodeFrame frame) {
		Pair<byte[], TaintVec> condition = state.getVar(op.getInput(1), reason);
		TaintVec taint = condition.getRight();
		if (!taint.union().isEmpty()) {
			// getInstruction may return null if an inject executes a CBRANCH
			Msg.trace(this, "Conditional branch '" + thread.getInstruction() + "' at " +
				thread.getCounter() + " decided by tainted value: " + taint);
			// TODO: Record these somewhere more useful.
		}
		super.executeConditionalBranch(op, frame);
	}
{@inheritDoc}

<p>
This is invoked on every {@link PcodeOp#CBRANCH}, allowing us a decent place to instrument
the emulator and add some diagnostics. Refer to
{@link PcodeExecutor#executeConditionalBranch(PcodeOp, PcodeFrame)} to see the operations
inputs. Alternatively, we could override
{@link TaintPcodeArithmetic#isTrue(TaintVec, Purpose)}; however, we'd have access to less
contextual information at that position.
Ghidra/Debug/TaintAnalysis/src/main/java/ghidra/pcode/emu/taint/TaintPcodeThreadExecutor.java