private static ToOpEdge moveOffSkip(PcodeOp op, int slot) {
		if (transtable[op.getOpcode()] != 0) {
			return null;
		}
		do {
			if (slot >= 0) {
				Varnode vn = op.getOutput();
				op = vn.getLoneDescend();
				if (op == null) {
					return new ToOpEdge(null, 0);	// Indicate the end of the data-flow path
				}
				slot = op.getSlot(vn);
			}
			else {
				Varnode vn = op.getInput(0);
				op = vn.getDef();
				if (op == null) {
					return new ToOpEdge(null, 0);	// Indicate the end of the data-flow path
				}
			}
		}
		while (transtable[op.getOpcode()] == 0);
		return new ToOpEdge(op, slot);
	}
For a DynamicHash on a PcodeOp, the op must not be a CAST or other skipped opcode.
Test if the given op is a skip op, and if so follow data-flow indicated by the
slot to another PcodeOp until we find one that isn't a skip op. Return null, if
the initial op is not skipped, otherwise return a ToOpEdge indicating the
new (op,slot) pair.
@param op is the given PcodeOp
@param slot is the slot
@return null or a new (op,slot) pair
Ghidra/Framework/SoftwareModeling/src/main/java/ghidra/program/model/pcode/DynamicHash.java