public class javassist.CodeConverter
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: javassist.CodeConverter
  super_class: java.lang.Object
{
  protected javassist.convert.Transformer transformers;
    descriptor: Ljavassist/convert/Transformer;
    flags: (0x0004) ACC_PROTECTED

  public void <init>();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // javassist.CodeConverter this
         0: .line 64
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 65
            aload 0 /* this */
            aconst_null
            putfield javassist.CodeConverter.transformers:Ljavassist/convert/Transformer;
         2: .line 64
            return
        end local 0 // javassist.CodeConverter this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Ljavassist/CodeConverter;

  public void replaceNew(javassist.CtClass, javassist.CtClass, java.lang.String);
    descriptor: (Ljavassist/CtClass;Ljavassist/CtClass;Ljava/lang/String;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=7, locals=4, args_size=4
        start local 0 // javassist.CodeConverter this
        start local 1 // javassist.CtClass newClass
        start local 2 // javassist.CtClass calledClass
        start local 3 // java.lang.String calledMethod
         0: .line 111
            aload 0 /* this */
            new javassist.convert.TransformNew
            dup
            aload 0 /* this */
            getfield javassist.CodeConverter.transformers:Ljavassist/convert/Transformer;
            aload 1 /* newClass */
            invokevirtual javassist.CtClass.getName:()Ljava/lang/String;
         1: .line 112
            aload 2 /* calledClass */
            invokevirtual javassist.CtClass.getName:()Ljava/lang/String;
            aload 3 /* calledMethod */
            invokespecial javassist.convert.TransformNew.<init>:(Ljavassist/convert/Transformer;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
         2: .line 111
            putfield javassist.CodeConverter.transformers:Ljavassist/convert/Transformer;
         3: .line 113
            return
        end local 3 // java.lang.String calledMethod
        end local 2 // javassist.CtClass calledClass
        end local 1 // javassist.CtClass newClass
        end local 0 // javassist.CodeConverter this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    4     0          this  Ljavassist/CodeConverter;
            0    4     1      newClass  Ljavassist/CtClass;
            0    4     2   calledClass  Ljavassist/CtClass;
            0    4     3  calledMethod  Ljava/lang/String;
    MethodParameters:
              Name  Flags
      newClass      
      calledClass   
      calledMethod  

  public void replaceNew(javassist.CtClass, javassist.CtClass);
    descriptor: (Ljavassist/CtClass;Ljavassist/CtClass;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=3, args_size=3
        start local 0 // javassist.CodeConverter this
        start local 1 // javassist.CtClass oldClass
        start local 2 // javassist.CtClass newClass
         0: .line 137
            aload 0 /* this */
            new javassist.convert.TransformNewClass
            dup
            aload 0 /* this */
            getfield javassist.CodeConverter.transformers:Ljavassist/convert/Transformer;
            aload 1 /* oldClass */
            invokevirtual javassist.CtClass.getName:()Ljava/lang/String;
         1: .line 138
            aload 2 /* newClass */
            invokevirtual javassist.CtClass.getName:()Ljava/lang/String;
            invokespecial javassist.convert.TransformNewClass.<init>:(Ljavassist/convert/Transformer;Ljava/lang/String;Ljava/lang/String;)V
         2: .line 137
            putfield javassist.CodeConverter.transformers:Ljavassist/convert/Transformer;
         3: .line 139
            return
        end local 2 // javassist.CtClass newClass
        end local 1 // javassist.CtClass oldClass
        end local 0 // javassist.CodeConverter this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    4     0      this  Ljavassist/CodeConverter;
            0    4     1  oldClass  Ljavassist/CtClass;
            0    4     2  newClass  Ljavassist/CtClass;
    MethodParameters:
          Name  Flags
      oldClass  
      newClass  

  public void redirectFieldAccess(javassist.CtField, javassist.CtClass, java.lang.String);
    descriptor: (Ljavassist/CtField;Ljavassist/CtClass;Ljava/lang/String;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=7, locals=4, args_size=4
        start local 0 // javassist.CodeConverter this
        start local 1 // javassist.CtField field
        start local 2 // javassist.CtClass newClass
        start local 3 // java.lang.String newFieldname
         0: .line 160
            aload 0 /* this */
            new javassist.convert.TransformFieldAccess
            dup
            aload 0 /* this */
            getfield javassist.CodeConverter.transformers:Ljavassist/convert/Transformer;
            aload 1 /* field */
         1: .line 161
            aload 2 /* newClass */
            invokevirtual javassist.CtClass.getName:()Ljava/lang/String;
         2: .line 162
            aload 3 /* newFieldname */
            invokespecial javassist.convert.TransformFieldAccess.<init>:(Ljavassist/convert/Transformer;Ljavassist/CtField;Ljava/lang/String;Ljava/lang/String;)V
         3: .line 160
            putfield javassist.CodeConverter.transformers:Ljavassist/convert/Transformer;
         4: .line 163
            return
        end local 3 // java.lang.String newFieldname
        end local 2 // javassist.CtClass newClass
        end local 1 // javassist.CtField field
        end local 0 // javassist.CodeConverter this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    5     0          this  Ljavassist/CodeConverter;
            0    5     1         field  Ljavassist/CtField;
            0    5     2      newClass  Ljavassist/CtClass;
            0    5     3  newFieldname  Ljava/lang/String;
    MethodParameters:
              Name  Flags
      field         
      newClass      
      newFieldname  

  public void replaceFieldRead(javassist.CtField, javassist.CtClass, java.lang.String);
    descriptor: (Ljavassist/CtField;Ljavassist/CtClass;Ljava/lang/String;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=7, locals=4, args_size=4
        start local 0 // javassist.CodeConverter this
        start local 1 // javassist.CtField field
        start local 2 // javassist.CtClass calledClass
        start local 3 // java.lang.String calledMethod
         0: .line 200
            aload 0 /* this */
            new javassist.convert.TransformReadField
            dup
            aload 0 /* this */
            getfield javassist.CodeConverter.transformers:Ljavassist/convert/Transformer;
            aload 1 /* field */
         1: .line 201
            aload 2 /* calledClass */
            invokevirtual javassist.CtClass.getName:()Ljava/lang/String;
         2: .line 202
            aload 3 /* calledMethod */
            invokespecial javassist.convert.TransformReadField.<init>:(Ljavassist/convert/Transformer;Ljavassist/CtField;Ljava/lang/String;Ljava/lang/String;)V
         3: .line 200
            putfield javassist.CodeConverter.transformers:Ljavassist/convert/Transformer;
         4: .line 203
            return
        end local 3 // java.lang.String calledMethod
        end local 2 // javassist.CtClass calledClass
        end local 1 // javassist.CtField field
        end local 0 // javassist.CodeConverter this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    5     0          this  Ljavassist/CodeConverter;
            0    5     1         field  Ljavassist/CtField;
            0    5     2   calledClass  Ljavassist/CtClass;
            0    5     3  calledMethod  Ljava/lang/String;
    MethodParameters:
              Name  Flags
      field         
      calledClass   
      calledMethod  

  public void replaceFieldWrite(javassist.CtField, javassist.CtClass, java.lang.String);
    descriptor: (Ljavassist/CtField;Ljavassist/CtClass;Ljava/lang/String;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=7, locals=4, args_size=4
        start local 0 // javassist.CodeConverter this
        start local 1 // javassist.CtField field
        start local 2 // javassist.CtClass calledClass
        start local 3 // java.lang.String calledMethod
         0: .line 241
            aload 0 /* this */
            new javassist.convert.TransformWriteField
            dup
            aload 0 /* this */
            getfield javassist.CodeConverter.transformers:Ljavassist/convert/Transformer;
            aload 1 /* field */
         1: .line 242
            aload 2 /* calledClass */
            invokevirtual javassist.CtClass.getName:()Ljava/lang/String;
         2: .line 243
            aload 3 /* calledMethod */
            invokespecial javassist.convert.TransformWriteField.<init>:(Ljavassist/convert/Transformer;Ljavassist/CtField;Ljava/lang/String;Ljava/lang/String;)V
         3: .line 241
            putfield javassist.CodeConverter.transformers:Ljavassist/convert/Transformer;
         4: .line 244
            return
        end local 3 // java.lang.String calledMethod
        end local 2 // javassist.CtClass calledClass
        end local 1 // javassist.CtField field
        end local 0 // javassist.CodeConverter this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    5     0          this  Ljavassist/CodeConverter;
            0    5     1         field  Ljavassist/CtField;
            0    5     2   calledClass  Ljavassist/CtClass;
            0    5     3  calledMethod  Ljava/lang/String;
    MethodParameters:
              Name  Flags
      field         
      calledClass   
      calledMethod  

  public void replaceArrayAccess(javassist.CtClass, javassist.CodeConverter$ArrayAccessReplacementMethodNames);
    descriptor: (Ljavassist/CtClass;Ljavassist/CodeConverter$ArrayAccessReplacementMethodNames;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=3, args_size=3
        start local 0 // javassist.CodeConverter this
        start local 1 // javassist.CtClass calledClass
        start local 2 // javassist.CodeConverter$ArrayAccessReplacementMethodNames names
         0: .line 344
            aload 0 /* this */
            new javassist.convert.TransformAccessArrayField
            dup
            aload 0 /* this */
            getfield javassist.CodeConverter.transformers:Ljavassist/convert/Transformer;
            aload 1 /* calledClass */
            invokevirtual javassist.CtClass.getName:()Ljava/lang/String;
            aload 2 /* names */
            invokespecial javassist.convert.TransformAccessArrayField.<init>:(Ljavassist/convert/Transformer;Ljava/lang/String;Ljavassist/CodeConverter$ArrayAccessReplacementMethodNames;)V
            putfield javassist.CodeConverter.transformers:Ljavassist/convert/Transformer;
         1: .line 345
            return
        end local 2 // javassist.CodeConverter$ArrayAccessReplacementMethodNames names
        end local 1 // javassist.CtClass calledClass
        end local 0 // javassist.CodeConverter this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    2     0         this  Ljavassist/CodeConverter;
            0    2     1  calledClass  Ljavassist/CtClass;
            0    2     2        names  Ljavassist/CodeConverter$ArrayAccessReplacementMethodNames;
    Exceptions:
      throws javassist.NotFoundException
    MethodParameters:
             Name  Flags
      calledClass  
      names        

  public void redirectMethodCall(javassist.CtMethod, javassist.CtMethod);
    descriptor: (Ljavassist/CtMethod;Ljavassist/CtMethod;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=7, args_size=3
        start local 0 // javassist.CodeConverter this
        start local 1 // javassist.CtMethod origMethod
        start local 2 // javassist.CtMethod substMethod
         0: .line 366
            aload 1 /* origMethod */
            invokevirtual javassist.CtMethod.getMethodInfo2:()Ljavassist/bytecode/MethodInfo;
            invokevirtual javassist.bytecode.MethodInfo.getDescriptor:()Ljava/lang/String;
            astore 3 /* d1 */
        start local 3 // java.lang.String d1
         1: .line 367
            aload 2 /* substMethod */
            invokevirtual javassist.CtMethod.getMethodInfo2:()Ljavassist/bytecode/MethodInfo;
            invokevirtual javassist.bytecode.MethodInfo.getDescriptor:()Ljava/lang/String;
            astore 4 /* d2 */
        start local 4 // java.lang.String d2
         2: .line 368
            aload 3 /* d1 */
            aload 4 /* d2 */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 6
         3: .line 369
            new javassist.CannotCompileException
            dup
            new java.lang.StringBuilder
            dup
            ldc "signature mismatch: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
         4: .line 370
            aload 2 /* substMethod */
            invokevirtual javassist.CtMethod.getLongName:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
         5: .line 369
            invokespecial javassist.CannotCompileException.<init>:(Ljava/lang/String;)V
            athrow
         6: .line 372
      StackMap locals: java.lang.String java.lang.String
      StackMap stack:
            aload 1 /* origMethod */
            invokevirtual javassist.CtMethod.getModifiers:()I
            istore 5 /* mod1 */
        start local 5 // int mod1
         7: .line 373
            aload 2 /* substMethod */
            invokevirtual javassist.CtMethod.getModifiers:()I
            istore 6 /* mod2 */
        start local 6 // int mod2
         8: .line 374
            iload 5 /* mod1 */
            invokestatic javassist.Modifier.isStatic:(I)Z
            iload 6 /* mod2 */
            invokestatic javassist.Modifier.isStatic:(I)Z
            if_icmpne 12
         9: .line 375
            iload 5 /* mod1 */
            invokestatic javassist.Modifier.isPrivate:(I)Z
            ifeq 10
            iload 6 /* mod2 */
            invokestatic javassist.Modifier.isPrivate:(I)Z
            ifeq 12
        10: .line 376
      StackMap locals: int int
      StackMap stack:
            aload 1 /* origMethod */
            invokevirtual javassist.CtMethod.getDeclaringClass:()Ljavassist/CtClass;
            invokevirtual javassist.CtClass.isInterface:()Z
        11: .line 377
            aload 2 /* substMethod */
            invokevirtual javassist.CtMethod.getDeclaringClass:()Ljavassist/CtClass;
            invokevirtual javassist.CtClass.isInterface:()Z
            if_icmpeq 15
        12: .line 378
      StackMap locals:
      StackMap stack:
            new javassist.CannotCompileException
            dup
            new java.lang.StringBuilder
            dup
            ldc "invoke-type mismatch "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
        13: .line 379
            aload 2 /* substMethod */
            invokevirtual javassist.CtMethod.getLongName:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        14: .line 378
            invokespecial javassist.CannotCompileException.<init>:(Ljava/lang/String;)V
            athrow
        15: .line 381
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            new javassist.convert.TransformCall
            dup
            aload 0 /* this */
            getfield javassist.CodeConverter.transformers:Ljavassist/convert/Transformer;
            aload 1 /* origMethod */
        16: .line 382
            aload 2 /* substMethod */
            invokespecial javassist.convert.TransformCall.<init>:(Ljavassist/convert/Transformer;Ljavassist/CtMethod;Ljavassist/CtMethod;)V
        17: .line 381
            putfield javassist.CodeConverter.transformers:Ljavassist/convert/Transformer;
        18: .line 383
            return
        end local 6 // int mod2
        end local 5 // int mod1
        end local 4 // java.lang.String d2
        end local 3 // java.lang.String d1
        end local 2 // javassist.CtMethod substMethod
        end local 1 // javassist.CtMethod origMethod
        end local 0 // javassist.CodeConverter this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   19     0         this  Ljavassist/CodeConverter;
            0   19     1   origMethod  Ljavassist/CtMethod;
            0   19     2  substMethod  Ljavassist/CtMethod;
            1   19     3           d1  Ljava/lang/String;
            2   19     4           d2  Ljava/lang/String;
            7   19     5         mod1  I
            8   19     6         mod2  I
    Exceptions:
      throws javassist.CannotCompileException
    MethodParameters:
             Name  Flags
      origMethod   
      substMethod  

  public void redirectMethodCall(java.lang.String, javassist.CtMethod);
    descriptor: (Ljava/lang/String;Ljavassist/CtMethod;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=3, args_size=3
        start local 0 // javassist.CodeConverter this
        start local 1 // java.lang.String oldMethodName
        start local 2 // javassist.CtMethod newMethod
         0: .line 406
            aload 0 /* this */
         1: .line 407
            new javassist.convert.TransformCall
            dup
            aload 0 /* this */
            getfield javassist.CodeConverter.transformers:Ljavassist/convert/Transformer;
            aload 1 /* oldMethodName */
            aload 2 /* newMethod */
            invokespecial javassist.convert.TransformCall.<init>:(Ljavassist/convert/Transformer;Ljava/lang/String;Ljavassist/CtMethod;)V
         2: .line 406
            putfield javassist.CodeConverter.transformers:Ljavassist/convert/Transformer;
         3: .line 408
            return
        end local 2 // javassist.CtMethod newMethod
        end local 1 // java.lang.String oldMethodName
        end local 0 // javassist.CodeConverter this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    4     0           this  Ljavassist/CodeConverter;
            0    4     1  oldMethodName  Ljava/lang/String;
            0    4     2      newMethod  Ljavassist/CtMethod;
    Exceptions:
      throws javassist.CannotCompileException
    MethodParameters:
               Name  Flags
      oldMethodName  
      newMethod      

  public void redirectMethodCallToStatic(javassist.CtMethod, javassist.CtMethod);
    descriptor: (Ljavassist/CtMethod;Ljavassist/CtMethod;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=3, args_size=3
        start local 0 // javassist.CodeConverter this
        start local 1 // javassist.CtMethod origMethod
        start local 2 // javassist.CtMethod staticMethod
         0: .line 442
            aload 0 /* this */
            new javassist.convert.TransformCallToStatic
            dup
            aload 0 /* this */
            getfield javassist.CodeConverter.transformers:Ljavassist/convert/Transformer;
            aload 1 /* origMethod */
         1: .line 443
            aload 2 /* staticMethod */
            invokespecial javassist.convert.TransformCallToStatic.<init>:(Ljavassist/convert/Transformer;Ljavassist/CtMethod;Ljavassist/CtMethod;)V
         2: .line 442
            putfield javassist.CodeConverter.transformers:Ljavassist/convert/Transformer;
         3: .line 444
            return
        end local 2 // javassist.CtMethod staticMethod
        end local 1 // javassist.CtMethod origMethod
        end local 0 // javassist.CodeConverter this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    4     0          this  Ljavassist/CodeConverter;
            0    4     1    origMethod  Ljavassist/CtMethod;
            0    4     2  staticMethod  Ljavassist/CtMethod;
    MethodParameters:
              Name  Flags
      origMethod    
      staticMethod  

  public void insertBeforeMethod(javassist.CtMethod, javassist.CtMethod);
    descriptor: (Ljavassist/CtMethod;Ljavassist/CtMethod;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=4, args_size=3
        start local 0 // javassist.CodeConverter this
        start local 1 // javassist.CtMethod origMethod
        start local 2 // javassist.CtMethod beforeMethod
         0: .line 485
            aload 0 /* this */
            new javassist.convert.TransformBefore
            dup
            aload 0 /* this */
            getfield javassist.CodeConverter.transformers:Ljavassist/convert/Transformer;
            aload 1 /* origMethod */
         1: .line 486
            aload 2 /* beforeMethod */
            invokespecial javassist.convert.TransformBefore.<init>:(Ljavassist/convert/Transformer;Ljavassist/CtMethod;Ljavassist/CtMethod;)V
         2: .line 485
            putfield javassist.CodeConverter.transformers:Ljavassist/convert/Transformer;
         3: .line 487
            goto 6
         4: .line 488
      StackMap locals:
      StackMap stack: javassist.NotFoundException
            astore 3 /* e */
        start local 3 // javassist.NotFoundException e
         5: .line 489
            new javassist.CannotCompileException
            dup
            aload 3 /* e */
            invokespecial javassist.CannotCompileException.<init>:(Ljavassist/NotFoundException;)V
            athrow
        end local 3 // javassist.NotFoundException e
         6: .line 491
      StackMap locals:
      StackMap stack:
            return
        end local 2 // javassist.CtMethod beforeMethod
        end local 1 // javassist.CtMethod origMethod
        end local 0 // javassist.CodeConverter this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    7     0          this  Ljavassist/CodeConverter;
            0    7     1    origMethod  Ljavassist/CtMethod;
            0    7     2  beforeMethod  Ljavassist/CtMethod;
            5    6     3             e  Ljavassist/NotFoundException;
      Exception table:
        from    to  target  type
           0     3       4  Class javassist.NotFoundException
    Exceptions:
      throws javassist.CannotCompileException
    MethodParameters:
              Name  Flags
      origMethod    
      beforeMethod  

  public void insertAfterMethod(javassist.CtMethod, javassist.CtMethod);
    descriptor: (Ljavassist/CtMethod;Ljavassist/CtMethod;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=4, args_size=3
        start local 0 // javassist.CodeConverter this
        start local 1 // javassist.CtMethod origMethod
        start local 2 // javassist.CtMethod afterMethod
         0: .line 533
            aload 0 /* this */
            new javassist.convert.TransformAfter
            dup
            aload 0 /* this */
            getfield javassist.CodeConverter.transformers:Ljavassist/convert/Transformer;
            aload 1 /* origMethod */
         1: .line 534
            aload 2 /* afterMethod */
            invokespecial javassist.convert.TransformAfter.<init>:(Ljavassist/convert/Transformer;Ljavassist/CtMethod;Ljavassist/CtMethod;)V
         2: .line 533
            putfield javassist.CodeConverter.transformers:Ljavassist/convert/Transformer;
         3: .line 535
            goto 6
         4: .line 536
      StackMap locals:
      StackMap stack: javassist.NotFoundException
            astore 3 /* e */
        start local 3 // javassist.NotFoundException e
         5: .line 537
            new javassist.CannotCompileException
            dup
            aload 3 /* e */
            invokespecial javassist.CannotCompileException.<init>:(Ljavassist/NotFoundException;)V
            athrow
        end local 3 // javassist.NotFoundException e
         6: .line 539
      StackMap locals:
      StackMap stack:
            return
        end local 2 // javassist.CtMethod afterMethod
        end local 1 // javassist.CtMethod origMethod
        end local 0 // javassist.CodeConverter this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    7     0         this  Ljavassist/CodeConverter;
            0    7     1   origMethod  Ljavassist/CtMethod;
            0    7     2  afterMethod  Ljavassist/CtMethod;
            5    6     3            e  Ljavassist/NotFoundException;
      Exception table:
        from    to  target  type
           0     3       4  Class javassist.NotFoundException
    Exceptions:
      throws javassist.CannotCompileException
    MethodParameters:
             Name  Flags
      origMethod   
      afterMethod  

  protected void doit(javassist.CtClass, javassist.bytecode.MethodInfo, javassist.bytecode.ConstPool);
    descriptor: (Ljavassist/CtClass;Ljavassist/bytecode/MethodInfo;Ljavassist/bytecode/ConstPool;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=5, locals=10, args_size=4
        start local 0 // javassist.CodeConverter this
        start local 1 // javassist.CtClass clazz
        start local 2 // javassist.bytecode.MethodInfo minfo
        start local 3 // javassist.bytecode.ConstPool cp
         0: .line 548
            aload 2 /* minfo */
            invokevirtual javassist.bytecode.MethodInfo.getCodeAttribute:()Ljavassist/bytecode/CodeAttribute;
            astore 5 /* codeAttr */
        start local 5 // javassist.bytecode.CodeAttribute codeAttr
         1: .line 549
            aload 5 /* codeAttr */
            ifnull 2
            aload 0 /* this */
            getfield javassist.CodeConverter.transformers:Ljavassist/convert/Transformer;
            ifnonnull 3
         2: .line 550
      StackMap locals: javassist.CodeConverter javassist.CtClass javassist.bytecode.MethodInfo javassist.bytecode.ConstPool top javassist.bytecode.CodeAttribute
      StackMap stack:
            return
         3: .line 551
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield javassist.CodeConverter.transformers:Ljavassist/convert/Transformer;
            astore 4 /* t */
        start local 4 // javassist.convert.Transformer t
         4: goto 7
         5: .line 552
      StackMap locals: javassist.CodeConverter javassist.CtClass javassist.bytecode.MethodInfo javassist.bytecode.ConstPool javassist.convert.Transformer javassist.bytecode.CodeAttribute
      StackMap stack:
            aload 4 /* t */
            aload 3 /* cp */
            aload 1 /* clazz */
            aload 2 /* minfo */
            invokevirtual javassist.convert.Transformer.initialize:(Ljavassist/bytecode/ConstPool;Ljavassist/CtClass;Ljavassist/bytecode/MethodInfo;)V
         6: .line 551
            aload 4 /* t */
            invokevirtual javassist.convert.Transformer.getNext:()Ljavassist/convert/Transformer;
            astore 4 /* t */
      StackMap locals:
      StackMap stack:
         7: aload 4 /* t */
            ifnonnull 5
         8: .line 554
            aload 5 /* codeAttr */
            invokevirtual javassist.bytecode.CodeAttribute.iterator:()Ljavassist/bytecode/CodeIterator;
            astore 6 /* iterator */
        start local 6 // javassist.bytecode.CodeIterator iterator
         9: .line 555
            goto 18
        10: .line 557
      StackMap locals: javassist.bytecode.CodeIterator
      StackMap stack:
            aload 6 /* iterator */
            invokevirtual javassist.bytecode.CodeIterator.next:()I
            istore 7 /* pos */
        start local 7 // int pos
        11: .line 558
            aload 0 /* this */
            getfield javassist.CodeConverter.transformers:Ljavassist/convert/Transformer;
            astore 4 /* t */
            goto 14
        12: .line 559
      StackMap locals: int
      StackMap stack:
            aload 4 /* t */
            aload 1 /* clazz */
            iload 7 /* pos */
            aload 6 /* iterator */
            aload 3 /* cp */
            invokevirtual javassist.convert.Transformer.transform:(Ljavassist/CtClass;ILjavassist/bytecode/CodeIterator;Ljavassist/bytecode/ConstPool;)I
            istore 7 /* pos */
        13: .line 558
            aload 4 /* t */
            invokevirtual javassist.convert.Transformer.getNext:()Ljavassist/convert/Transformer;
            astore 4 /* t */
      StackMap locals:
      StackMap stack:
        14: aload 4 /* t */
            ifnonnull 12
        end local 7 // int pos
        15: .line 560
            goto 18
        16: .line 561
      StackMap locals: javassist.CodeConverter javassist.CtClass javassist.bytecode.MethodInfo javassist.bytecode.ConstPool javassist.convert.Transformer javassist.bytecode.CodeAttribute javassist.bytecode.CodeIterator
      StackMap stack: javassist.bytecode.BadBytecode
            astore 7 /* e */
        start local 7 // javassist.bytecode.BadBytecode e
        17: .line 562
            new javassist.CannotCompileException
            dup
            aload 7 /* e */
            invokespecial javassist.CannotCompileException.<init>:(Ljava/lang/Throwable;)V
            athrow
        end local 7 // javassist.bytecode.BadBytecode e
        18: .line 555
      StackMap locals:
      StackMap stack:
            aload 6 /* iterator */
            invokevirtual javassist.bytecode.CodeIterator.hasNext:()Z
            ifne 10
        19: .line 566
            iconst_0
            istore 7 /* locals */
        start local 7 // int locals
        20: .line 567
            iconst_0
            istore 8 /* stack */
        start local 8 // int stack
        21: .line 568
            aload 0 /* this */
            getfield javassist.CodeConverter.transformers:Ljavassist/convert/Transformer;
            astore 4 /* t */
            goto 29
        22: .line 569
      StackMap locals: int int
      StackMap stack:
            aload 4 /* t */
            invokevirtual javassist.convert.Transformer.extraLocals:()I
            istore 9 /* s */
        start local 9 // int s
        23: .line 570
            iload 9 /* s */
            iload 7 /* locals */
            if_icmple 25
        24: .line 571
            iload 9 /* s */
            istore 7 /* locals */
        25: .line 573
      StackMap locals: int
      StackMap stack:
            aload 4 /* t */
            invokevirtual javassist.convert.Transformer.extraStack:()I
            istore 9 /* s */
        26: .line 574
            iload 9 /* s */
            iload 8 /* stack */
            if_icmple 28
        27: .line 575
            iload 9 /* s */
            istore 8 /* stack */
        end local 9 // int s
        28: .line 568
      StackMap locals:
      StackMap stack:
            aload 4 /* t */
            invokevirtual javassist.convert.Transformer.getNext:()Ljavassist/convert/Transformer;
            astore 4 /* t */
      StackMap locals:
      StackMap stack:
        29: aload 4 /* t */
            ifnonnull 22
        30: .line 578
            aload 0 /* this */
            getfield javassist.CodeConverter.transformers:Ljavassist/convert/Transformer;
            astore 4 /* t */
            goto 33
        31: .line 579
      StackMap locals:
      StackMap stack:
            aload 4 /* t */
            invokevirtual javassist.convert.Transformer.clean:()V
        32: .line 578
            aload 4 /* t */
            invokevirtual javassist.convert.Transformer.getNext:()Ljavassist/convert/Transformer;
            astore 4 /* t */
      StackMap locals:
      StackMap stack:
        33: aload 4 /* t */
            ifnonnull 31
        34: .line 581
            iload 7 /* locals */
            ifle 36
        35: .line 582
            aload 5 /* codeAttr */
            aload 5 /* codeAttr */
            invokevirtual javassist.bytecode.CodeAttribute.getMaxLocals:()I
            iload 7 /* locals */
            iadd
            invokevirtual javassist.bytecode.CodeAttribute.setMaxLocals:(I)V
        36: .line 584
      StackMap locals:
      StackMap stack:
            iload 8 /* stack */
            ifle 38
        37: .line 585
            aload 5 /* codeAttr */
            aload 5 /* codeAttr */
            invokevirtual javassist.bytecode.CodeAttribute.getMaxStack:()I
            iload 8 /* stack */
            iadd
            invokevirtual javassist.bytecode.CodeAttribute.setMaxStack:(I)V
        38: .line 588
      StackMap locals:
      StackMap stack:
            aload 2 /* minfo */
            aload 1 /* clazz */
            invokevirtual javassist.CtClass.getClassPool:()Ljavassist/ClassPool;
        39: .line 589
            aload 1 /* clazz */
            invokevirtual javassist.CtClass.getClassFile2:()Ljavassist/bytecode/ClassFile;
        40: .line 588
            invokevirtual javassist.bytecode.MethodInfo.rebuildStackMapIf6:(Ljavassist/ClassPool;Ljavassist/bytecode/ClassFile;)V
        41: .line 590
            goto 44
        42: .line 591
      StackMap locals:
      StackMap stack: javassist.bytecode.BadBytecode
            astore 9 /* b */
        start local 9 // javassist.bytecode.BadBytecode b
        43: .line 592
            new javassist.CannotCompileException
            dup
            aload 9 /* b */
            invokevirtual javassist.bytecode.BadBytecode.getMessage:()Ljava/lang/String;
            aload 9 /* b */
            invokespecial javassist.CannotCompileException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
            athrow
        end local 9 // javassist.bytecode.BadBytecode b
        44: .line 594
      StackMap locals:
      StackMap stack:
            return
        end local 8 // int stack
        end local 7 // int locals
        end local 6 // javassist.bytecode.CodeIterator iterator
        end local 5 // javassist.bytecode.CodeAttribute codeAttr
        end local 4 // javassist.convert.Transformer t
        end local 3 // javassist.bytecode.ConstPool cp
        end local 2 // javassist.bytecode.MethodInfo minfo
        end local 1 // javassist.CtClass clazz
        end local 0 // javassist.CodeConverter this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   45     0      this  Ljavassist/CodeConverter;
            0   45     1     clazz  Ljavassist/CtClass;
            0   45     2     minfo  Ljavassist/bytecode/MethodInfo;
            0   45     3        cp  Ljavassist/bytecode/ConstPool;
            4   45     4         t  Ljavassist/convert/Transformer;
            1   45     5  codeAttr  Ljavassist/bytecode/CodeAttribute;
            9   45     6  iterator  Ljavassist/bytecode/CodeIterator;
           11   15     7       pos  I
           17   18     7         e  Ljavassist/bytecode/BadBytecode;
           20   45     7    locals  I
           21   45     8     stack  I
           23   28     9         s  I
           43   44     9         b  Ljavassist/bytecode/BadBytecode;
      Exception table:
        from    to  target  type
          10    15      16  Class javassist.bytecode.BadBytecode
          38    41      42  Class javassist.bytecode.BadBytecode
    Exceptions:
      throws javassist.CannotCompileException
    MethodParameters:
       Name  Flags
      clazz  
      minfo  
      cp     
}
SourceFile: "CodeConverter.java"
NestMembers:
  javassist.CodeConverter$ArrayAccessReplacementMethodNames  javassist.CodeConverter$DefaultArrayAccessReplacementMethodNames
InnerClasses:
  public abstract ArrayAccessReplacementMethodNames = javassist.CodeConverter$ArrayAccessReplacementMethodNames of javassist.CodeConverter
  public DefaultArrayAccessReplacementMethodNames = javassist.CodeConverter$DefaultArrayAccessReplacementMethodNames of javassist.CodeConverter