private void checkStackOffsetAssignment(PcodeOp op, Varnode value, TaskMonitor monitor)
			throws CancelledException {
		if (analyzer == null || !(value instanceof VarnodeOperation)) {
			return;
		}
		Varnode output = op.getOutput();
		if (output == null || output.isUnique()) {
			return;
		}
		FrameNode frameNode = ContextState.getFrameNode(value, program.getLanguage());
		if (frameNode == null || !getStackPointerVarnode().equals(frameNode.getFramePointer())) {
			return;
		}
		Varnode[] inputs = op.getInputs();
		for (Varnode input : inputs) {
			if (input.isConstant() || (input.isUnique() && inputs.length != 1)) {
				continue;
			}
			int opIndex = findOpIndex(op, input);
			if (opIndex >= 0) {
				analyzer.stackReference(op, opIndex, (int) frameNode.getFrameOffset(), -1, -1,
					RefType.DATA, monitor);
				return;
			}
		}
	}
Check value assignments for items of interest:
<ul>
<li>Frame pointer identification</li>
<li>Tracking of modified registers</li>
</ul>
@param output output varnode
@param value assigned value
@param op pcode operation
@throws CancelledException
Ghidra/Features/Base/src/main/java/ghidra/util/state/ResultsState.java