code: public static List<AbstractInsnNode> searchForOpcodes(InsnList insnList, int ... opcodes) {
          Validate.notNull(insnList);
          Validate.notNull(opcodes);
          Validate.isTrue(opcodes.length > 0);
          
          List<AbstractInsnNode> ret = new LinkedList<>();
          
          Set<Integer> opcodeSet = new HashSet<>();
          Arrays.stream(opcodes).forEach((x) -> opcodeSet.add(x));
          
          Iterator<AbstractInsnNode> it = insnList.iterator();
          while (it.hasNext()) {
              AbstractInsnNode insnNode = it.next();
              if (opcodeSet.contains(insnNode.getOpcode())) {
                  ret.add(insnNode);
              }
          }
          
          return ret;
      }
docs: Find instructions in a certain class that are of a certain set of opcodes.
  @param insnList instruction list to search through
  @param opcodes opcodes to search for
  @return list of instructions that contain the opcodes being searched for
  @throws NullPointerException if any argument is {@code null}
  @throws IllegalArgumentException if {@code opcodes} is empty