code: @Override
      public void sawOpcode(int seen) {
          int lhsReg = -1;
          try {
              stack.precomputation(this);
  
              switch (state) {
                  case SEEN_NOTHING:
                      if (!catchTargets.get(getPC()) && lookForStore(seen) && (stack.getStackDepth() >= 1)) {
                          OpcodeStack.Item item = stack.getStackItem(0);
                          Integer reg = (Integer) item.getUserValue();
                          if ((reg == null) || (reg.intValue() != storeReg)) {
                              state = State.SEEN_STORE;
                          }
                      }
                  break;
  
                  case SEEN_STORE:
                      if (branchTargets.get(getPC())) {
                          state = State.SEEN_NOTHING;
                          break;
                      }
  
                      state = lookForLoad(seen) ? State.SEEN_LOAD : State.SEEN_NOTHING;
                  break;
  
                  case SEEN_LOAD:
                      if ((seen >= Const.IRETURN) && (seen <= Const.ARETURN)) {
                          bugReporter.reportBug(new BugInstance(this, BugType.USBR_UNNECESSARY_STORE_BEFORE_RETURN.name(), NORMAL_PRIORITY).addClass(this)
                                  .addMethod(this).addSourceLine(this));
                      }
                      state = State.SEEN_NOTHING;
                  break;
              }
  
              if (branchInstructions.get(seen)) {
                  branchTargets.set(getBranchTarget());
              }
  
              lhsReg = processBinOp(seen);
  
          } finally {
              TernaryPatcher.pre(stack, seen);
              stack.sawOpcode(this, seen);
              TernaryPatcher.post(stack, seen);
              if ((lhsReg > -1) && (stack.getStackDepth() >= 1)) {
                  OpcodeStack.Item item = stack.getStackItem(0);
                  item.setUserValue(Integer.valueOf(lhsReg));
              }
          }
  
      }
docs: implements the visitor to look for store of registers immediately before returns of that register
  
  @param seen
  the opcode of the currently parsed instruction