public final class javassist.bytecode.ClassFileWriter$MethodWriter
  minor version: 0
  major version: 59
  flags: flags: (0x0031) ACC_PUBLIC, ACC_FINAL, ACC_SUPER
  this_class: javassist.bytecode.ClassFileWriter$MethodWriter
  super_class: java.lang.Object
{
  protected javassist.bytecode.ByteStream output;
    descriptor: Ljavassist/bytecode/ByteStream;
    flags: (0x0004) ACC_PROTECTED

  protected javassist.bytecode.ClassFileWriter$ConstPoolWriter constPool;
    descriptor: Ljavassist/bytecode/ClassFileWriter$ConstPoolWriter;
    flags: (0x0004) ACC_PROTECTED

  private int methodCount;
    descriptor: I
    flags: (0x0002) ACC_PRIVATE

  protected int codeIndex;
    descriptor: I
    flags: (0x0004) ACC_PROTECTED

  protected int throwsIndex;
    descriptor: I
    flags: (0x0004) ACC_PROTECTED

  protected int stackIndex;
    descriptor: I
    flags: (0x0004) ACC_PROTECTED

  private int startPos;
    descriptor: I
    flags: (0x0002) ACC_PRIVATE

  private boolean isAbstract;
    descriptor: Z
    flags: (0x0002) ACC_PRIVATE

  private int catchPos;
    descriptor: I
    flags: (0x0002) ACC_PRIVATE

  private int catchCount;
    descriptor: I
    flags: (0x0002) ACC_PRIVATE

  void <init>(javassist.bytecode.ClassFileWriter$ConstPoolWriter);
    descriptor: (Ljavassist/bytecode/ClassFileWriter$ConstPoolWriter;)V
    flags: (0x0000) 
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // javassist.bytecode.ClassFileWriter$MethodWriter this
        start local 1 // javassist.bytecode.ClassFileWriter$ConstPoolWriter cp
         0: .line 324
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 325
            aload 0 /* this */
            new javassist.bytecode.ByteStream
            dup
            sipush 256
            invokespecial javassist.bytecode.ByteStream.<init>:(I)V
            putfield javassist.bytecode.ClassFileWriter$MethodWriter.output:Ljavassist/bytecode/ByteStream;
         2: .line 326
            aload 0 /* this */
            aload 1 /* cp */
            putfield javassist.bytecode.ClassFileWriter$MethodWriter.constPool:Ljavassist/bytecode/ClassFileWriter$ConstPoolWriter;
         3: .line 327
            aload 0 /* this */
            iconst_0
            putfield javassist.bytecode.ClassFileWriter$MethodWriter.methodCount:I
         4: .line 328
            aload 0 /* this */
            iconst_0
            putfield javassist.bytecode.ClassFileWriter$MethodWriter.codeIndex:I
         5: .line 329
            aload 0 /* this */
            iconst_0
            putfield javassist.bytecode.ClassFileWriter$MethodWriter.throwsIndex:I
         6: .line 330
            aload 0 /* this */
            iconst_0
            putfield javassist.bytecode.ClassFileWriter$MethodWriter.stackIndex:I
         7: .line 331
            return
        end local 1 // javassist.bytecode.ClassFileWriter$ConstPoolWriter cp
        end local 0 // javassist.bytecode.ClassFileWriter$MethodWriter this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    8     0  this  Ljavassist/bytecode/ClassFileWriter$MethodWriter;
            0    8     1    cp  Ljavassist/bytecode/ClassFileWriter$ConstPoolWriter;
    MethodParameters:
      Name  Flags
      cp    

  public void begin(int, java.lang.String, java.lang.String, java.lang.String[], javassist.bytecode.ClassFileWriter$AttributeWriter);
    descriptor: (ILjava/lang/String;Ljava/lang/String;[Ljava/lang/String;Ljavassist/bytecode/ClassFileWriter$AttributeWriter;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=9, args_size=6
        start local 0 // javassist.bytecode.ClassFileWriter$MethodWriter this
        start local 1 // int accessFlags
        start local 2 // java.lang.String name
        start local 3 // java.lang.String descriptor
        start local 4 // java.lang.String[] exceptions
        start local 5 // javassist.bytecode.ClassFileWriter$AttributeWriter aw
         0: .line 346
            aload 0 /* this */
            getfield javassist.bytecode.ClassFileWriter$MethodWriter.constPool:Ljavassist/bytecode/ClassFileWriter$ConstPoolWriter;
            aload 2 /* name */
            invokevirtual javassist.bytecode.ClassFileWriter$ConstPoolWriter.addUtf8Info:(Ljava/lang/String;)I
            istore 6 /* nameIndex */
        start local 6 // int nameIndex
         1: .line 347
            aload 0 /* this */
            getfield javassist.bytecode.ClassFileWriter$MethodWriter.constPool:Ljavassist/bytecode/ClassFileWriter$ConstPoolWriter;
            aload 3 /* descriptor */
            invokevirtual javassist.bytecode.ClassFileWriter$ConstPoolWriter.addUtf8Info:(Ljava/lang/String;)I
            istore 7 /* descIndex */
        start local 7 // int descIndex
         2: .line 349
            aload 4 /* exceptions */
            ifnonnull 5
         3: .line 350
            aconst_null
            astore 8 /* intfs */
        start local 8 // int[] intfs
         4: goto 6
        end local 8 // int[] intfs
         5: .line 352
      StackMap locals: int int
      StackMap stack:
            aload 0 /* this */
            getfield javassist.bytecode.ClassFileWriter$MethodWriter.constPool:Ljavassist/bytecode/ClassFileWriter$ConstPoolWriter;
            aload 4 /* exceptions */
            invokevirtual javassist.bytecode.ClassFileWriter$ConstPoolWriter.addClassInfo:([Ljava/lang/String;)[I
            astore 8 /* intfs */
        start local 8 // int[] intfs
         6: .line 354
      StackMap locals: int[]
      StackMap stack:
            aload 0 /* this */
            iload 1 /* accessFlags */
            iload 6 /* nameIndex */
            iload 7 /* descIndex */
            aload 8 /* intfs */
            aload 5 /* aw */
            invokevirtual javassist.bytecode.ClassFileWriter$MethodWriter.begin:(III[ILjavassist/bytecode/ClassFileWriter$AttributeWriter;)V
         7: .line 355
            return
        end local 8 // int[] intfs
        end local 7 // int descIndex
        end local 6 // int nameIndex
        end local 5 // javassist.bytecode.ClassFileWriter$AttributeWriter aw
        end local 4 // java.lang.String[] exceptions
        end local 3 // java.lang.String descriptor
        end local 2 // java.lang.String name
        end local 1 // int accessFlags
        end local 0 // javassist.bytecode.ClassFileWriter$MethodWriter this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    8     0         this  Ljavassist/bytecode/ClassFileWriter$MethodWriter;
            0    8     1  accessFlags  I
            0    8     2         name  Ljava/lang/String;
            0    8     3   descriptor  Ljava/lang/String;
            0    8     4   exceptions  [Ljava/lang/String;
            0    8     5           aw  Ljavassist/bytecode/ClassFileWriter$AttributeWriter;
            1    8     6    nameIndex  I
            2    8     7    descIndex  I
            4    5     8        intfs  [I
            6    8     8        intfs  [I
    MethodParameters:
             Name  Flags
      accessFlags  
      name         
      descriptor   
      exceptions   
      aw           

  public void begin(int, int, int, int[], javassist.bytecode.ClassFileWriter$AttributeWriter);
    descriptor: (III[ILjavassist/bytecode/ClassFileWriter$AttributeWriter;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=7, args_size=6
        start local 0 // javassist.bytecode.ClassFileWriter$MethodWriter this
        start local 1 // int accessFlags
        start local 2 // int name
        start local 3 // int descriptor
        start local 4 // int[] exceptions
        start local 5 // javassist.bytecode.ClassFileWriter$AttributeWriter aw
         0: .line 368
            aload 0 /* this */
            dup
            getfield javassist.bytecode.ClassFileWriter$MethodWriter.methodCount:I
            iconst_1
            iadd
            putfield javassist.bytecode.ClassFileWriter$MethodWriter.methodCount:I
         1: .line 369
            aload 0 /* this */
            getfield javassist.bytecode.ClassFileWriter$MethodWriter.output:Ljavassist/bytecode/ByteStream;
            iload 1 /* accessFlags */
            invokevirtual javassist.bytecode.ByteStream.writeShort:(I)V
         2: .line 370
            aload 0 /* this */
            getfield javassist.bytecode.ClassFileWriter$MethodWriter.output:Ljavassist/bytecode/ByteStream;
            iload 2 /* name */
            invokevirtual javassist.bytecode.ByteStream.writeShort:(I)V
         3: .line 371
            aload 0 /* this */
            getfield javassist.bytecode.ClassFileWriter$MethodWriter.output:Ljavassist/bytecode/ByteStream;
            iload 3 /* descriptor */
            invokevirtual javassist.bytecode.ByteStream.writeShort:(I)V
         4: .line 372
            aload 0 /* this */
            iload 1 /* accessFlags */
            sipush 1024
            iand
            ifeq 5
            iconst_1
            goto 6
      StackMap locals:
      StackMap stack: javassist.bytecode.ClassFileWriter$MethodWriter
         5: iconst_0
      StackMap locals: javassist.bytecode.ClassFileWriter$MethodWriter int int int int[] javassist.bytecode.ClassFileWriter$AttributeWriter
      StackMap stack: javassist.bytecode.ClassFileWriter$MethodWriter int
         6: putfield javassist.bytecode.ClassFileWriter$MethodWriter.isAbstract:Z
         7: .line 374
            aload 0 /* this */
            getfield javassist.bytecode.ClassFileWriter$MethodWriter.isAbstract:Z
            ifeq 8
            iconst_0
            goto 9
      StackMap locals:
      StackMap stack:
         8: iconst_1
      StackMap locals:
      StackMap stack: int
         9: istore 6 /* attrCount */
        start local 6 // int attrCount
        10: .line 375
            aload 4 /* exceptions */
            ifnull 12
        11: .line 376
            iinc 6 /* attrCount */ 1
        12: .line 378
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            getfield javassist.bytecode.ClassFileWriter$MethodWriter.output:Ljavassist/bytecode/ByteStream;
            aload 5 /* aw */
            iload 6 /* attrCount */
            invokestatic javassist.bytecode.ClassFileWriter.writeAttribute:(Ljavassist/bytecode/ByteStream;Ljavassist/bytecode/ClassFileWriter$AttributeWriter;I)V
        13: .line 380
            aload 4 /* exceptions */
            ifnull 15
        14: .line 381
            aload 0 /* this */
            aload 4 /* exceptions */
            invokevirtual javassist.bytecode.ClassFileWriter$MethodWriter.writeThrows:([I)V
        15: .line 383
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield javassist.bytecode.ClassFileWriter$MethodWriter.isAbstract:Z
            ifne 21
        16: .line 384
            aload 0 /* this */
            getfield javassist.bytecode.ClassFileWriter$MethodWriter.codeIndex:I
            ifne 18
        17: .line 385
            aload 0 /* this */
            aload 0 /* this */
            getfield javassist.bytecode.ClassFileWriter$MethodWriter.constPool:Ljavassist/bytecode/ClassFileWriter$ConstPoolWriter;
            ldc "Code"
            invokevirtual javassist.bytecode.ClassFileWriter$ConstPoolWriter.addUtf8Info:(Ljava/lang/String;)I
            putfield javassist.bytecode.ClassFileWriter$MethodWriter.codeIndex:I
        18: .line 387
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 0 /* this */
            getfield javassist.bytecode.ClassFileWriter$MethodWriter.output:Ljavassist/bytecode/ByteStream;
            invokevirtual javassist.bytecode.ByteStream.getPos:()I
            putfield javassist.bytecode.ClassFileWriter$MethodWriter.startPos:I
        19: .line 388
            aload 0 /* this */
            getfield javassist.bytecode.ClassFileWriter$MethodWriter.output:Ljavassist/bytecode/ByteStream;
            aload 0 /* this */
            getfield javassist.bytecode.ClassFileWriter$MethodWriter.codeIndex:I
            invokevirtual javassist.bytecode.ByteStream.writeShort:(I)V
        20: .line 389
            aload 0 /* this */
            getfield javassist.bytecode.ClassFileWriter$MethodWriter.output:Ljavassist/bytecode/ByteStream;
            bipush 12
            invokevirtual javassist.bytecode.ByteStream.writeBlank:(I)V
        21: .line 392
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iconst_m1
            putfield javassist.bytecode.ClassFileWriter$MethodWriter.catchPos:I
        22: .line 393
            aload 0 /* this */
            iconst_0
            putfield javassist.bytecode.ClassFileWriter$MethodWriter.catchCount:I
        23: .line 394
            return
        end local 6 // int attrCount
        end local 5 // javassist.bytecode.ClassFileWriter$AttributeWriter aw
        end local 4 // int[] exceptions
        end local 3 // int descriptor
        end local 2 // int name
        end local 1 // int accessFlags
        end local 0 // javassist.bytecode.ClassFileWriter$MethodWriter this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   24     0         this  Ljavassist/bytecode/ClassFileWriter$MethodWriter;
            0   24     1  accessFlags  I
            0   24     2         name  I
            0   24     3   descriptor  I
            0   24     4   exceptions  [I
            0   24     5           aw  Ljavassist/bytecode/ClassFileWriter$AttributeWriter;
           10   24     6    attrCount  I
    MethodParameters:
             Name  Flags
      accessFlags  
      name         
      descriptor   
      exceptions   
      aw           

  private void writeThrows(int[]);
    descriptor: ([I)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // javassist.bytecode.ClassFileWriter$MethodWriter this
        start local 1 // int[] exceptions
         0: .line 397
            aload 0 /* this */
            getfield javassist.bytecode.ClassFileWriter$MethodWriter.throwsIndex:I
            ifne 2
         1: .line 398
            aload 0 /* this */
            aload 0 /* this */
            getfield javassist.bytecode.ClassFileWriter$MethodWriter.constPool:Ljavassist/bytecode/ClassFileWriter$ConstPoolWriter;
            ldc "Exceptions"
            invokevirtual javassist.bytecode.ClassFileWriter$ConstPoolWriter.addUtf8Info:(Ljava/lang/String;)I
            putfield javassist.bytecode.ClassFileWriter$MethodWriter.throwsIndex:I
         2: .line 400
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield javassist.bytecode.ClassFileWriter$MethodWriter.output:Ljavassist/bytecode/ByteStream;
            aload 0 /* this */
            getfield javassist.bytecode.ClassFileWriter$MethodWriter.throwsIndex:I
            invokevirtual javassist.bytecode.ByteStream.writeShort:(I)V
         3: .line 401
            aload 0 /* this */
            getfield javassist.bytecode.ClassFileWriter$MethodWriter.output:Ljavassist/bytecode/ByteStream;
            aload 1 /* exceptions */
            arraylength
            iconst_2
            imul
            iconst_2
            iadd
            invokevirtual javassist.bytecode.ByteStream.writeInt:(I)V
         4: .line 402
            aload 0 /* this */
            getfield javassist.bytecode.ClassFileWriter$MethodWriter.output:Ljavassist/bytecode/ByteStream;
            aload 1 /* exceptions */
            arraylength
            invokevirtual javassist.bytecode.ByteStream.writeShort:(I)V
         5: .line 403
            iconst_0
            istore 2 /* i */
        start local 2 // int i
         6: goto 9
         7: .line 404
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            getfield javassist.bytecode.ClassFileWriter$MethodWriter.output:Ljavassist/bytecode/ByteStream;
            aload 1 /* exceptions */
            iload 2 /* i */
            iaload
            invokevirtual javassist.bytecode.ByteStream.writeShort:(I)V
         8: .line 403
            iinc 2 /* i */ 1
      StackMap locals:
      StackMap stack:
         9: iload 2 /* i */
            aload 1 /* exceptions */
            arraylength
            if_icmplt 7
        end local 2 // int i
        10: .line 405
            return
        end local 1 // int[] exceptions
        end local 0 // javassist.bytecode.ClassFileWriter$MethodWriter this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   11     0        this  Ljavassist/bytecode/ClassFileWriter$MethodWriter;
            0   11     1  exceptions  [I
            6   10     2           i  I
    MethodParameters:
            Name  Flags
      exceptions  

  public void add(int);
    descriptor: (I)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // javassist.bytecode.ClassFileWriter$MethodWriter this
        start local 1 // int b
         0: .line 413
            aload 0 /* this */
            getfield javassist.bytecode.ClassFileWriter$MethodWriter.output:Ljavassist/bytecode/ByteStream;
            iload 1 /* b */
            invokevirtual javassist.bytecode.ByteStream.write:(I)V
         1: .line 414
            return
        end local 1 // int b
        end local 0 // javassist.bytecode.ClassFileWriter$MethodWriter this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Ljavassist/bytecode/ClassFileWriter$MethodWriter;
            0    2     1     b  I
    MethodParameters:
      Name  Flags
      b     

  public void add16(int);
    descriptor: (I)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // javassist.bytecode.ClassFileWriter$MethodWriter this
        start local 1 // int b
         0: .line 420
            aload 0 /* this */
            getfield javassist.bytecode.ClassFileWriter$MethodWriter.output:Ljavassist/bytecode/ByteStream;
            iload 1 /* b */
            invokevirtual javassist.bytecode.ByteStream.writeShort:(I)V
         1: .line 421
            return
        end local 1 // int b
        end local 0 // javassist.bytecode.ClassFileWriter$MethodWriter this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Ljavassist/bytecode/ClassFileWriter$MethodWriter;
            0    2     1     b  I
    MethodParameters:
      Name  Flags
      b     

  public void add32(int);
    descriptor: (I)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // javassist.bytecode.ClassFileWriter$MethodWriter this
        start local 1 // int b
         0: .line 427
            aload 0 /* this */
            getfield javassist.bytecode.ClassFileWriter$MethodWriter.output:Ljavassist/bytecode/ByteStream;
            iload 1 /* b */
            invokevirtual javassist.bytecode.ByteStream.writeInt:(I)V
         1: .line 428
            return
        end local 1 // int b
        end local 0 // javassist.bytecode.ClassFileWriter$MethodWriter this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Ljavassist/bytecode/ClassFileWriter$MethodWriter;
            0    2     1     b  I
    MethodParameters:
      Name  Flags
      b     

  public void addInvoke(int, java.lang.String, java.lang.String, java.lang.String);
    descriptor: (ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=8, args_size=5
        start local 0 // javassist.bytecode.ClassFileWriter$MethodWriter this
        start local 1 // int opcode
        start local 2 // java.lang.String targetClass
        start local 3 // java.lang.String methodName
        start local 4 // java.lang.String descriptor
         0: .line 437
            aload 0 /* this */
            getfield javassist.bytecode.ClassFileWriter$MethodWriter.constPool:Ljavassist/bytecode/ClassFileWriter$ConstPoolWriter;
            aload 2 /* targetClass */
            invokevirtual javassist.bytecode.ClassFileWriter$ConstPoolWriter.addClassInfo:(Ljava/lang/String;)I
            istore 5 /* target */
        start local 5 // int target
         1: .line 438
            aload 0 /* this */
            getfield javassist.bytecode.ClassFileWriter$MethodWriter.constPool:Ljavassist/bytecode/ClassFileWriter$ConstPoolWriter;
            aload 3 /* methodName */
            aload 4 /* descriptor */
            invokevirtual javassist.bytecode.ClassFileWriter$ConstPoolWriter.addNameAndTypeInfo:(Ljava/lang/String;Ljava/lang/String;)I
            istore 6 /* nt */
        start local 6 // int nt
         2: .line 439
            aload 0 /* this */
            getfield javassist.bytecode.ClassFileWriter$MethodWriter.constPool:Ljavassist/bytecode/ClassFileWriter$ConstPoolWriter;
            iload 5 /* target */
            iload 6 /* nt */
            invokevirtual javassist.bytecode.ClassFileWriter$ConstPoolWriter.addMethodrefInfo:(II)I
            istore 7 /* method */
        start local 7 // int method
         3: .line 440
            aload 0 /* this */
            iload 1 /* opcode */
            invokevirtual javassist.bytecode.ClassFileWriter$MethodWriter.add:(I)V
         4: .line 441
            aload 0 /* this */
            iload 7 /* method */
            invokevirtual javassist.bytecode.ClassFileWriter$MethodWriter.add16:(I)V
         5: .line 442
            return
        end local 7 // int method
        end local 6 // int nt
        end local 5 // int target
        end local 4 // java.lang.String descriptor
        end local 3 // java.lang.String methodName
        end local 2 // java.lang.String targetClass
        end local 1 // int opcode
        end local 0 // javassist.bytecode.ClassFileWriter$MethodWriter this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    6     0         this  Ljavassist/bytecode/ClassFileWriter$MethodWriter;
            0    6     1       opcode  I
            0    6     2  targetClass  Ljava/lang/String;
            0    6     3   methodName  Ljava/lang/String;
            0    6     4   descriptor  Ljava/lang/String;
            1    6     5       target  I
            2    6     6           nt  I
            3    6     7       method  I
    MethodParameters:
             Name  Flags
      opcode       
      targetClass  
      methodName   
      descriptor   

  public void codeEnd(int, int);
    descriptor: (II)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // javassist.bytecode.ClassFileWriter$MethodWriter this
        start local 1 // int maxStack
        start local 2 // int maxLocals
         0: .line 448
            aload 0 /* this */
            getfield javassist.bytecode.ClassFileWriter$MethodWriter.isAbstract:Z
            ifne 7
         1: .line 449
            aload 0 /* this */
            getfield javassist.bytecode.ClassFileWriter$MethodWriter.output:Ljavassist/bytecode/ByteStream;
            aload 0 /* this */
            getfield javassist.bytecode.ClassFileWriter$MethodWriter.startPos:I
            bipush 6
            iadd
            iload 1 /* maxStack */
            invokevirtual javassist.bytecode.ByteStream.writeShort:(II)V
         2: .line 450
            aload 0 /* this */
            getfield javassist.bytecode.ClassFileWriter$MethodWriter.output:Ljavassist/bytecode/ByteStream;
            aload 0 /* this */
            getfield javassist.bytecode.ClassFileWriter$MethodWriter.startPos:I
            bipush 8
            iadd
            iload 2 /* maxLocals */
            invokevirtual javassist.bytecode.ByteStream.writeShort:(II)V
         3: .line 451
            aload 0 /* this */
            getfield javassist.bytecode.ClassFileWriter$MethodWriter.output:Ljavassist/bytecode/ByteStream;
            aload 0 /* this */
            getfield javassist.bytecode.ClassFileWriter$MethodWriter.startPos:I
            bipush 10
            iadd
            aload 0 /* this */
            getfield javassist.bytecode.ClassFileWriter$MethodWriter.output:Ljavassist/bytecode/ByteStream;
            invokevirtual javassist.bytecode.ByteStream.getPos:()I
            aload 0 /* this */
            getfield javassist.bytecode.ClassFileWriter$MethodWriter.startPos:I
            isub
            bipush 14
            isub
            invokevirtual javassist.bytecode.ByteStream.writeInt:(II)V
         4: .line 452
            aload 0 /* this */
            aload 0 /* this */
            getfield javassist.bytecode.ClassFileWriter$MethodWriter.output:Ljavassist/bytecode/ByteStream;
            invokevirtual javassist.bytecode.ByteStream.getPos:()I
            putfield javassist.bytecode.ClassFileWriter$MethodWriter.catchPos:I
         5: .line 453
            aload 0 /* this */
            iconst_0
            putfield javassist.bytecode.ClassFileWriter$MethodWriter.catchCount:I
         6: .line 454
            aload 0 /* this */
            getfield javassist.bytecode.ClassFileWriter$MethodWriter.output:Ljavassist/bytecode/ByteStream;
            iconst_0
            invokevirtual javassist.bytecode.ByteStream.writeShort:(I)V
         7: .line 456
      StackMap locals:
      StackMap stack:
            return
        end local 2 // int maxLocals
        end local 1 // int maxStack
        end local 0 // javassist.bytecode.ClassFileWriter$MethodWriter this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    8     0       this  Ljavassist/bytecode/ClassFileWriter$MethodWriter;
            0    8     1   maxStack  I
            0    8     2  maxLocals  I
    MethodParameters:
           Name  Flags
      maxStack   
      maxLocals  

  public void addCatch(int, int, int, int);
    descriptor: (IIII)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=5, args_size=5
        start local 0 // javassist.bytecode.ClassFileWriter$MethodWriter this
        start local 1 // int startPc
        start local 2 // int endPc
        start local 3 // int handlerPc
        start local 4 // int catchType
         0: .line 466
            aload 0 /* this */
            dup
            getfield javassist.bytecode.ClassFileWriter$MethodWriter.catchCount:I
            iconst_1
            iadd
            putfield javassist.bytecode.ClassFileWriter$MethodWriter.catchCount:I
         1: .line 467
            aload 0 /* this */
            getfield javassist.bytecode.ClassFileWriter$MethodWriter.output:Ljavassist/bytecode/ByteStream;
            iload 1 /* startPc */
            invokevirtual javassist.bytecode.ByteStream.writeShort:(I)V
         2: .line 468
            aload 0 /* this */
            getfield javassist.bytecode.ClassFileWriter$MethodWriter.output:Ljavassist/bytecode/ByteStream;
            iload 2 /* endPc */
            invokevirtual javassist.bytecode.ByteStream.writeShort:(I)V
         3: .line 469
            aload 0 /* this */
            getfield javassist.bytecode.ClassFileWriter$MethodWriter.output:Ljavassist/bytecode/ByteStream;
            iload 3 /* handlerPc */
            invokevirtual javassist.bytecode.ByteStream.writeShort:(I)V
         4: .line 470
            aload 0 /* this */
            getfield javassist.bytecode.ClassFileWriter$MethodWriter.output:Ljavassist/bytecode/ByteStream;
            iload 4 /* catchType */
            invokevirtual javassist.bytecode.ByteStream.writeShort:(I)V
         5: .line 471
            return
        end local 4 // int catchType
        end local 3 // int handlerPc
        end local 2 // int endPc
        end local 1 // int startPc
        end local 0 // javassist.bytecode.ClassFileWriter$MethodWriter this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    6     0       this  Ljavassist/bytecode/ClassFileWriter$MethodWriter;
            0    6     1    startPc  I
            0    6     2      endPc  I
            0    6     3  handlerPc  I
            0    6     4  catchType  I
    MethodParameters:
           Name  Flags
      startPc    
      endPc      
      handlerPc  
      catchType  

  public void end(javassist.bytecode.StackMapTable$Writer, javassist.bytecode.ClassFileWriter$AttributeWriter);
    descriptor: (Ljavassist/bytecode/StackMapTable$Writer;Ljavassist/bytecode/ClassFileWriter$AttributeWriter;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=5, args_size=3
        start local 0 // javassist.bytecode.ClassFileWriter$MethodWriter this
        start local 1 // javassist.bytecode.StackMapTable$Writer smap
        start local 2 // javassist.bytecode.ClassFileWriter$AttributeWriter aw
         0: .line 482
            aload 0 /* this */
            getfield javassist.bytecode.ClassFileWriter$MethodWriter.isAbstract:Z
            ifeq 2
         1: .line 483
            return
         2: .line 486
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield javassist.bytecode.ClassFileWriter$MethodWriter.output:Ljavassist/bytecode/ByteStream;
            aload 0 /* this */
            getfield javassist.bytecode.ClassFileWriter$MethodWriter.catchPos:I
            aload 0 /* this */
            getfield javassist.bytecode.ClassFileWriter$MethodWriter.catchCount:I
            invokevirtual javassist.bytecode.ByteStream.writeShort:(II)V
         3: .line 488
            aload 1 /* smap */
            ifnonnull 4
            iconst_0
            goto 5
      StackMap locals:
      StackMap stack:
         4: iconst_1
      StackMap locals:
      StackMap stack: int
         5: istore 3 /* attrCount */
        start local 3 // int attrCount
         6: .line 489
            aload 0 /* this */
            getfield javassist.bytecode.ClassFileWriter$MethodWriter.output:Ljavassist/bytecode/ByteStream;
            aload 2 /* aw */
            iload 3 /* attrCount */
            invokestatic javassist.bytecode.ClassFileWriter.writeAttribute:(Ljavassist/bytecode/ByteStream;Ljavassist/bytecode/ClassFileWriter$AttributeWriter;I)V
         7: .line 491
            aload 1 /* smap */
            ifnull 14
         8: .line 492
            aload 0 /* this */
            getfield javassist.bytecode.ClassFileWriter$MethodWriter.stackIndex:I
            ifne 10
         9: .line 493
            aload 0 /* this */
            aload 0 /* this */
            getfield javassist.bytecode.ClassFileWriter$MethodWriter.constPool:Ljavassist/bytecode/ClassFileWriter$ConstPoolWriter;
            ldc "StackMapTable"
            invokevirtual javassist.bytecode.ClassFileWriter$ConstPoolWriter.addUtf8Info:(Ljava/lang/String;)I
            putfield javassist.bytecode.ClassFileWriter$MethodWriter.stackIndex:I
        10: .line 495
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            getfield javassist.bytecode.ClassFileWriter$MethodWriter.output:Ljavassist/bytecode/ByteStream;
            aload 0 /* this */
            getfield javassist.bytecode.ClassFileWriter$MethodWriter.stackIndex:I
            invokevirtual javassist.bytecode.ByteStream.writeShort:(I)V
        11: .line 496
            aload 1 /* smap */
            invokevirtual javassist.bytecode.StackMapTable$Writer.toByteArray:()[B
            astore 4 /* data */
        start local 4 // byte[] data
        12: .line 497
            aload 0 /* this */
            getfield javassist.bytecode.ClassFileWriter$MethodWriter.output:Ljavassist/bytecode/ByteStream;
            aload 4 /* data */
            arraylength
            invokevirtual javassist.bytecode.ByteStream.writeInt:(I)V
        13: .line 498
            aload 0 /* this */
            getfield javassist.bytecode.ClassFileWriter$MethodWriter.output:Ljavassist/bytecode/ByteStream;
            aload 4 /* data */
            invokevirtual javassist.bytecode.ByteStream.write:([B)V
        end local 4 // byte[] data
        14: .line 502
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield javassist.bytecode.ClassFileWriter$MethodWriter.output:Ljavassist/bytecode/ByteStream;
            aload 0 /* this */
            getfield javassist.bytecode.ClassFileWriter$MethodWriter.startPos:I
            iconst_2
            iadd
            aload 0 /* this */
            getfield javassist.bytecode.ClassFileWriter$MethodWriter.output:Ljavassist/bytecode/ByteStream;
            invokevirtual javassist.bytecode.ByteStream.getPos:()I
            aload 0 /* this */
            getfield javassist.bytecode.ClassFileWriter$MethodWriter.startPos:I
            isub
            bipush 6
            isub
            invokevirtual javassist.bytecode.ByteStream.writeInt:(II)V
        15: .line 503
            return
        end local 3 // int attrCount
        end local 2 // javassist.bytecode.ClassFileWriter$AttributeWriter aw
        end local 1 // javassist.bytecode.StackMapTable$Writer smap
        end local 0 // javassist.bytecode.ClassFileWriter$MethodWriter this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   16     0       this  Ljavassist/bytecode/ClassFileWriter$MethodWriter;
            0   16     1       smap  Ljavassist/bytecode/StackMapTable$Writer;
            0   16     2         aw  Ljavassist/bytecode/ClassFileWriter$AttributeWriter;
            6   16     3  attrCount  I
           12   14     4       data  [B
    MethodParameters:
      Name  Flags
      smap  
      aw    

  public int size();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // javassist.bytecode.ClassFileWriter$MethodWriter this
         0: .line 511
            aload 0 /* this */
            getfield javassist.bytecode.ClassFileWriter$MethodWriter.output:Ljavassist/bytecode/ByteStream;
            invokevirtual javassist.bytecode.ByteStream.getPos:()I
            aload 0 /* this */
            getfield javassist.bytecode.ClassFileWriter$MethodWriter.startPos:I
            isub
            bipush 14
            isub
            ireturn
        end local 0 // javassist.bytecode.ClassFileWriter$MethodWriter this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljavassist/bytecode/ClassFileWriter$MethodWriter;

  int numOfMethods();
    descriptor: ()I
    flags: (0x0000) 
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // javassist.bytecode.ClassFileWriter$MethodWriter this
         0: .line 513
            aload 0 /* this */
            getfield javassist.bytecode.ClassFileWriter$MethodWriter.methodCount:I
            ireturn
        end local 0 // javassist.bytecode.ClassFileWriter$MethodWriter this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljavassist/bytecode/ClassFileWriter$MethodWriter;

  int dataSize();
    descriptor: ()I
    flags: (0x0000) 
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // javassist.bytecode.ClassFileWriter$MethodWriter this
         0: .line 515
            aload 0 /* this */
            getfield javassist.bytecode.ClassFileWriter$MethodWriter.output:Ljavassist/bytecode/ByteStream;
            invokevirtual javassist.bytecode.ByteStream.size:()I
            ireturn
        end local 0 // javassist.bytecode.ClassFileWriter$MethodWriter this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljavassist/bytecode/ClassFileWriter$MethodWriter;

  void write(java.io.OutputStream);
    descriptor: (Ljava/io/OutputStream;)V
    flags: (0x0000) 
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // javassist.bytecode.ClassFileWriter$MethodWriter this
        start local 1 // java.io.OutputStream out
         0: .line 521
            aload 0 /* this */
            getfield javassist.bytecode.ClassFileWriter$MethodWriter.output:Ljavassist/bytecode/ByteStream;
            aload 1 /* out */
            invokevirtual javassist.bytecode.ByteStream.writeTo:(Ljava/io/OutputStream;)V
         1: .line 522
            return
        end local 1 // java.io.OutputStream out
        end local 0 // javassist.bytecode.ClassFileWriter$MethodWriter this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Ljavassist/bytecode/ClassFileWriter$MethodWriter;
            0    2     1   out  Ljava/io/OutputStream;
    Exceptions:
      throws java.io.IOException
    MethodParameters:
      Name  Flags
      out   
}
SourceFile: "ClassFileWriter.java"
NestHost: javassist.bytecode.ClassFileWriter
InnerClasses:
  public abstract AttributeWriter = javassist.bytecode.ClassFileWriter$AttributeWriter of javassist.bytecode.ClassFileWriter
  public final ConstPoolWriter = javassist.bytecode.ClassFileWriter$ConstPoolWriter of javassist.bytecode.ClassFileWriter
  public final MethodWriter = javassist.bytecode.ClassFileWriter$MethodWriter of javassist.bytecode.ClassFileWriter
  public Writer = javassist.bytecode.StackMapTable$Writer of javassist.bytecode.StackMapTable