code: void replaceArgsWithArray(String desc) {
          Type[] methodArgs = Type.getArgumentTypes(desc);
          createObjectArray(methodArgs.length); // [target] args... array
          for (int i = methodArgs.length - 1; i >= 0; i--) {
              if (methodArgs[i].getSize() == 2) {
                  visitInsn(DUP_X2); // [target] args... array arg_arg array
                  visitLdcInsn(Integer.valueOf(i)); // [target] args... array arg_arg array idx
                  visitInsn(DUP2_X2); // [target] args... array array idx arg_arg array idx
                  visitInsn(POP2); // [target] args... array array idx arg_arg
              } else {
                  visitInsn(DUP_X1); // [target] args... array arg array
                  visitInsn(SWAP); // [target] args... array array arg
                  visitLdcInsn(Integer.valueOf(i)); // [target] args... array array arg idx
                  visitInsn(SWAP); // [target] args... array array idx arg
              }
              box(methodArgs[i]); // [target] args... array array idx boxed
              visitInsn(AASTORE); // [target] args... array
          } // [target] array
      }
docs: Create an object array and store the target method arguments in it.
  
  @param desc the target method descriptor