code: @Nullable
      private UserObject sawInstanceCall(int pc) {
          String signature = getSigConstantOperand();
          String name = getNameConstantOperand();
  
          // this is kind of a wart. there should be a more seamless way to check this
          if ("wasNull".equals(getNameConstantOperand()) && SignatureBuilder.SIG_VOID_TO_BOOLEAN.equals(signature)) {
              dontReport = true;
          }
  
          if (signature.endsWith(Values.SIG_VOID)) {
              return null;
          }
  
          MethodInfo mi = Statistics.getStatistics().getMethodStatistics(getClassConstantOperand(), name, signature);
  
          UserObject uo = new UserObject(getCallingObject(), mi.getModifiesState() || isRiskyMethodCall());
  
          if (uo.caller != null) {
              ScopeBlock sb = findScopeBlock(rootScopeBlock, pc);
              if (sb != null) {
                  sb.removeByAssoc(uo.caller);
              }
          }
  
          return uo;
      }
docs: processes a instance method call to see if that call is modifies state or is otherwise'risky', if so mark the variable(s) associated with the caller as
  not reportable
  
  @param pc
  the current program counter
  
  @return a user object to place on the return value's OpcodeStack item