private boolean checkInstructionMatch(final int opIdx, boolean input,
					VarnodeContext context, Instruction instr) {
				List<Object> list = Arrays.asList(input ? inputObjects : resultObjects);

				// if the register appeared as an input and output varnode, and not a load or store, then
				// is just a calculation, so don't consider the an input values
				if (input && !loadStore && registerInOut) {
					return false;
				}

				for (int index = opIdx; index < instr.getNumOperands(); index++) {
					if (getRefsForOperand(context, instr, list, index)) {
						// register is both an in/out check if symbolic on out
						if (registerInOut) {
							break;
						}
						return true;
					}
				}
				if (addSymbolicRefs(input, context, instr, list)) {
					return true;
				}
				return false;
			}
Get the register at the location

@param opIndex index into operands for instruction
@param subOpIndex index into operands for an operand location

@return register if there is one at the location
Ghidra/Features/Base/ghidra_scripts/MultiInstructionMemReference.java