public class net.sf.cglib.core.LocalVariablesSorter extends org.objectweb.asm.MethodVisitor
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: net.sf.cglib.core.LocalVariablesSorter
  super_class: org.objectweb.asm.MethodVisitor
{
  protected final int firstLocal;
    descriptor: I
    flags: (0x0014) ACC_PROTECTED, ACC_FINAL

  private final net.sf.cglib.core.LocalVariablesSorter$State state;
    descriptor: Lnet/sf/cglib/core/LocalVariablesSorter$State;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  public void <init>(int, java.lang.String, org.objectweb.asm.MethodVisitor);
    descriptor: (ILjava/lang/String;Lorg/objectweb/asm/MethodVisitor;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=6, args_size=4
        start local 0 // net.sf.cglib.core.LocalVariablesSorter this
        start local 1 // int access
        start local 2 // java.lang.String desc
        start local 3 // org.objectweb.asm.MethodVisitor mv
         0: .line 66
            aload 0 /* this */
            getstatic net.sf.cglib.core.Constants.ASM_API:I
            aload 3 /* mv */
            invokespecial org.objectweb.asm.MethodVisitor.<init>:(ILorg/objectweb/asm/MethodVisitor;)V
         1: .line 67
            aload 0 /* this */
            new net.sf.cglib.core.LocalVariablesSorter$State
            dup
            invokespecial net.sf.cglib.core.LocalVariablesSorter$State.<init>:()V
            putfield net.sf.cglib.core.LocalVariablesSorter.state:Lnet/sf/cglib/core/LocalVariablesSorter$State;
         2: .line 68
            aload 2 /* desc */
            invokestatic org.objectweb.asm.Type.getArgumentTypes:(Ljava/lang/String;)[Lorg/objectweb/asm/Type;
            astore 4 /* args */
        start local 4 // org.objectweb.asm.Type[] args
         3: .line 69
            aload 0 /* this */
            getfield net.sf.cglib.core.LocalVariablesSorter.state:Lnet/sf/cglib/core/LocalVariablesSorter$State;
            bipush 8
            iload 1 /* access */
            iand
            ifeq 4
            iconst_0
            goto 5
      StackMap locals: net.sf.cglib.core.LocalVariablesSorter int java.lang.String org.objectweb.asm.MethodVisitor org.objectweb.asm.Type[]
      StackMap stack: net.sf.cglib.core.LocalVariablesSorter$State
         4: iconst_1
      StackMap locals: net.sf.cglib.core.LocalVariablesSorter int java.lang.String org.objectweb.asm.MethodVisitor org.objectweb.asm.Type[]
      StackMap stack: net.sf.cglib.core.LocalVariablesSorter$State int
         5: putfield net.sf.cglib.core.LocalVariablesSorter$State.nextLocal:I
         6: .line 70
            iconst_0
            istore 5 /* i */
        start local 5 // int i
         7: goto 10
         8: .line 71
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            getfield net.sf.cglib.core.LocalVariablesSorter.state:Lnet/sf/cglib/core/LocalVariablesSorter$State;
            dup
            getfield net.sf.cglib.core.LocalVariablesSorter$State.nextLocal:I
            aload 4 /* args */
            iload 5 /* i */
            aaload
            invokevirtual org.objectweb.asm.Type.getSize:()I
            iadd
            putfield net.sf.cglib.core.LocalVariablesSorter$State.nextLocal:I
         9: .line 70
            iinc 5 /* i */ 1
      StackMap locals:
      StackMap stack:
        10: iload 5 /* i */
            aload 4 /* args */
            arraylength
            if_icmplt 8
        end local 5 // int i
        11: .line 73
            aload 0 /* this */
            aload 0 /* this */
            getfield net.sf.cglib.core.LocalVariablesSorter.state:Lnet/sf/cglib/core/LocalVariablesSorter$State;
            getfield net.sf.cglib.core.LocalVariablesSorter$State.nextLocal:I
            putfield net.sf.cglib.core.LocalVariablesSorter.firstLocal:I
        12: .line 74
            return
        end local 4 // org.objectweb.asm.Type[] args
        end local 3 // org.objectweb.asm.MethodVisitor mv
        end local 2 // java.lang.String desc
        end local 1 // int access
        end local 0 // net.sf.cglib.core.LocalVariablesSorter this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   13     0    this  Lnet/sf/cglib/core/LocalVariablesSorter;
            0   13     1  access  I
            0   13     2    desc  Ljava/lang/String;
            0   13     3      mv  Lorg/objectweb/asm/MethodVisitor;
            3   13     4    args  [Lorg/objectweb/asm/Type;
            7   11     5       i  I
    MethodParameters:
        Name  Flags
      access  final
      desc    final
      mv      final

  public void <init>(net.sf.cglib.core.LocalVariablesSorter);
    descriptor: (Lnet/sf/cglib/core/LocalVariablesSorter;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // net.sf.cglib.core.LocalVariablesSorter this
        start local 1 // net.sf.cglib.core.LocalVariablesSorter lvs
         0: .line 77
            aload 0 /* this */
            getstatic net.sf.cglib.core.Constants.ASM_API:I
            aload 1 /* lvs */
            getfield net.sf.cglib.core.LocalVariablesSorter.mv:Lorg/objectweb/asm/MethodVisitor;
            invokespecial org.objectweb.asm.MethodVisitor.<init>:(ILorg/objectweb/asm/MethodVisitor;)V
         1: .line 78
            aload 0 /* this */
            aload 1 /* lvs */
            getfield net.sf.cglib.core.LocalVariablesSorter.state:Lnet/sf/cglib/core/LocalVariablesSorter$State;
            putfield net.sf.cglib.core.LocalVariablesSorter.state:Lnet/sf/cglib/core/LocalVariablesSorter$State;
         2: .line 79
            aload 0 /* this */
            aload 1 /* lvs */
            getfield net.sf.cglib.core.LocalVariablesSorter.firstLocal:I
            putfield net.sf.cglib.core.LocalVariablesSorter.firstLocal:I
         3: .line 80
            return
        end local 1 // net.sf.cglib.core.LocalVariablesSorter lvs
        end local 0 // net.sf.cglib.core.LocalVariablesSorter this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Lnet/sf/cglib/core/LocalVariablesSorter;
            0    4     1   lvs  Lnet/sf/cglib/core/LocalVariablesSorter;
    MethodParameters:
      Name  Flags
      lvs   

  public void visitVarInsn(int, int);
    descriptor: (II)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=4, args_size=3
        start local 0 // net.sf.cglib.core.LocalVariablesSorter this
        start local 1 // int opcode
        start local 2 // int var
         0: .line 84
            iload 1 /* opcode */
            lookupswitch { // 4
                   22: 1
                   24: 1
                   55: 1
                   57: 1
              default: 3
          }
         1: .line 89
      StackMap locals:
      StackMap stack:
            iconst_2
            istore 3 /* size */
        start local 3 // int size
         2: .line 90
            goto 4
        end local 3 // int size
         3: .line 92
      StackMap locals:
      StackMap stack:
            iconst_1
            istore 3 /* size */
        start local 3 // int size
         4: .line 94
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            getfield net.sf.cglib.core.LocalVariablesSorter.mv:Lorg/objectweb/asm/MethodVisitor;
            iload 1 /* opcode */
            aload 0 /* this */
            iload 2 /* var */
            iload 3 /* size */
            invokevirtual net.sf.cglib.core.LocalVariablesSorter.remap:(II)I
            invokevirtual org.objectweb.asm.MethodVisitor.visitVarInsn:(II)V
         5: .line 95
            return
        end local 3 // int size
        end local 2 // int var
        end local 1 // int opcode
        end local 0 // net.sf.cglib.core.LocalVariablesSorter this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    6     0    this  Lnet/sf/cglib/core/LocalVariablesSorter;
            0    6     1  opcode  I
            0    6     2     var  I
            2    3     3    size  I
            4    6     3    size  I
    MethodParameters:
        Name  Flags
      opcode  final
      var     final

  public void visitIincInsn(int, int);
    descriptor: (II)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // net.sf.cglib.core.LocalVariablesSorter this
        start local 1 // int var
        start local 2 // int increment
         0: .line 98
            aload 0 /* this */
            getfield net.sf.cglib.core.LocalVariablesSorter.mv:Lorg/objectweb/asm/MethodVisitor;
            aload 0 /* this */
            iload 1 /* var */
            iconst_1
            invokevirtual net.sf.cglib.core.LocalVariablesSorter.remap:(II)I
            iload 2 /* increment */
            invokevirtual org.objectweb.asm.MethodVisitor.visitIincInsn:(II)V
         1: .line 99
            return
        end local 2 // int increment
        end local 1 // int var
        end local 0 // net.sf.cglib.core.LocalVariablesSorter this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    2     0       this  Lnet/sf/cglib/core/LocalVariablesSorter;
            0    2     1        var  I
            0    2     2  increment  I
    MethodParameters:
           Name  Flags
      var        final
      increment  final

  public void visitMaxs(int, int);
    descriptor: (II)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // net.sf.cglib.core.LocalVariablesSorter this
        start local 1 // int maxStack
        start local 2 // int maxLocals
         0: .line 102
            aload 0 /* this */
            getfield net.sf.cglib.core.LocalVariablesSorter.mv:Lorg/objectweb/asm/MethodVisitor;
            iload 1 /* maxStack */
            aload 0 /* this */
            getfield net.sf.cglib.core.LocalVariablesSorter.state:Lnet/sf/cglib/core/LocalVariablesSorter$State;
            getfield net.sf.cglib.core.LocalVariablesSorter$State.nextLocal:I
            invokevirtual org.objectweb.asm.MethodVisitor.visitMaxs:(II)V
         1: .line 103
            return
        end local 2 // int maxLocals
        end local 1 // int maxStack
        end local 0 // net.sf.cglib.core.LocalVariablesSorter this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    2     0       this  Lnet/sf/cglib/core/LocalVariablesSorter;
            0    2     1   maxStack  I
            0    2     2  maxLocals  I
    MethodParameters:
           Name  Flags
      maxStack   final
      maxLocals  final

  public void visitLocalVariable(java.lang.String, java.lang.String, java.lang.String, org.objectweb.asm.Label, org.objectweb.asm.Label, int);
    descriptor: (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Lorg/objectweb/asm/Label;Lorg/objectweb/asm/Label;I)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=8, locals=7, args_size=7
        start local 0 // net.sf.cglib.core.LocalVariablesSorter this
        start local 1 // java.lang.String name
        start local 2 // java.lang.String desc
        start local 3 // java.lang.String signature
        start local 4 // org.objectweb.asm.Label start
        start local 5 // org.objectweb.asm.Label end
        start local 6 // int index
         0: .line 113
            aload 0 /* this */
            getfield net.sf.cglib.core.LocalVariablesSorter.mv:Lorg/objectweb/asm/MethodVisitor;
            aload 1 /* name */
            aload 2 /* desc */
            aload 3 /* signature */
            aload 4 /* start */
            aload 5 /* end */
            aload 0 /* this */
            iload 6 /* index */
            invokevirtual net.sf.cglib.core.LocalVariablesSorter.remap:(I)I
            invokevirtual org.objectweb.asm.MethodVisitor.visitLocalVariable:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Lorg/objectweb/asm/Label;Lorg/objectweb/asm/Label;I)V
         1: .line 114
            return
        end local 6 // int index
        end local 5 // org.objectweb.asm.Label end
        end local 4 // org.objectweb.asm.Label start
        end local 3 // java.lang.String signature
        end local 2 // java.lang.String desc
        end local 1 // java.lang.String name
        end local 0 // net.sf.cglib.core.LocalVariablesSorter this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    2     0       this  Lnet/sf/cglib/core/LocalVariablesSorter;
            0    2     1       name  Ljava/lang/String;
            0    2     2       desc  Ljava/lang/String;
            0    2     3  signature  Ljava/lang/String;
            0    2     4      start  Lorg/objectweb/asm/Label;
            0    2     5        end  Lorg/objectweb/asm/Label;
            0    2     6      index  I
    MethodParameters:
           Name  Flags
      name       final
      desc       final
      signature  final
      start      final
      end        final
      index      final

  protected int newLocal(int);
    descriptor: (I)I
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // net.sf.cglib.core.LocalVariablesSorter this
        start local 1 // int size
         0: .line 119
            aload 0 /* this */
            getfield net.sf.cglib.core.LocalVariablesSorter.state:Lnet/sf/cglib/core/LocalVariablesSorter$State;
            getfield net.sf.cglib.core.LocalVariablesSorter$State.nextLocal:I
            istore 2 /* var */
        start local 2 // int var
         1: .line 120
            aload 0 /* this */
            getfield net.sf.cglib.core.LocalVariablesSorter.state:Lnet/sf/cglib/core/LocalVariablesSorter$State;
            dup
            getfield net.sf.cglib.core.LocalVariablesSorter$State.nextLocal:I
            iload 1 /* size */
            iadd
            putfield net.sf.cglib.core.LocalVariablesSorter$State.nextLocal:I
         2: .line 121
            iload 2 /* var */
            ireturn
        end local 2 // int var
        end local 1 // int size
        end local 0 // net.sf.cglib.core.LocalVariablesSorter this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lnet/sf/cglib/core/LocalVariablesSorter;
            0    3     1  size  I
            1    3     2   var  I
    MethodParameters:
      Name  Flags
      size  final

  private int remap(int, int);
    descriptor: (II)I
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=6, args_size=3
        start local 0 // net.sf.cglib.core.LocalVariablesSorter this
        start local 1 // int var
        start local 2 // int size
         0: .line 125
            iload 1 /* var */
            aload 0 /* this */
            getfield net.sf.cglib.core.LocalVariablesSorter.firstLocal:I
            if_icmpge 2
         1: .line 126
            iload 1 /* var */
            ireturn
         2: .line 128
      StackMap locals:
      StackMap stack:
            iconst_2
            iload 1 /* var */
            imul
            iload 2 /* size */
            iadd
            iconst_1
            isub
            istore 3 /* key */
        start local 3 // int key
         3: .line 129
            aload 0 /* this */
            getfield net.sf.cglib.core.LocalVariablesSorter.state:Lnet/sf/cglib/core/LocalVariablesSorter$State;
            getfield net.sf.cglib.core.LocalVariablesSorter$State.mapping:[I
            arraylength
            istore 4 /* length */
        start local 4 // int length
         4: .line 130
            iload 3 /* key */
            iload 4 /* length */
            if_icmplt 8
         5: .line 131
            iconst_2
            iload 4 /* length */
            imul
            iload 3 /* key */
            iconst_1
            iadd
            invokestatic java.lang.Math.max:(II)I
            newarray 10
            astore 5 /* newMapping */
        start local 5 // int[] newMapping
         6: .line 132
            aload 0 /* this */
            getfield net.sf.cglib.core.LocalVariablesSorter.state:Lnet/sf/cglib/core/LocalVariablesSorter$State;
            getfield net.sf.cglib.core.LocalVariablesSorter$State.mapping:[I
            iconst_0
            aload 5 /* newMapping */
            iconst_0
            iload 4 /* length */
            invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
         7: .line 133
            aload 0 /* this */
            getfield net.sf.cglib.core.LocalVariablesSorter.state:Lnet/sf/cglib/core/LocalVariablesSorter$State;
            aload 5 /* newMapping */
            putfield net.sf.cglib.core.LocalVariablesSorter$State.mapping:[I
        end local 5 // int[] newMapping
         8: .line 135
      StackMap locals: int int
      StackMap stack:
            aload 0 /* this */
            getfield net.sf.cglib.core.LocalVariablesSorter.state:Lnet/sf/cglib/core/LocalVariablesSorter$State;
            getfield net.sf.cglib.core.LocalVariablesSorter$State.mapping:[I
            iload 3 /* key */
            iaload
            istore 5 /* value */
        start local 5 // int value
         9: .line 136
            iload 5 /* value */
            ifne 13
        10: .line 137
            aload 0 /* this */
            getfield net.sf.cglib.core.LocalVariablesSorter.state:Lnet/sf/cglib/core/LocalVariablesSorter$State;
            getfield net.sf.cglib.core.LocalVariablesSorter$State.nextLocal:I
            iconst_1
            iadd
            istore 5 /* value */
        11: .line 138
            aload 0 /* this */
            getfield net.sf.cglib.core.LocalVariablesSorter.state:Lnet/sf/cglib/core/LocalVariablesSorter$State;
            getfield net.sf.cglib.core.LocalVariablesSorter$State.mapping:[I
            iload 3 /* key */
            iload 5 /* value */
            iastore
        12: .line 139
            aload 0 /* this */
            getfield net.sf.cglib.core.LocalVariablesSorter.state:Lnet/sf/cglib/core/LocalVariablesSorter$State;
            dup
            getfield net.sf.cglib.core.LocalVariablesSorter$State.nextLocal:I
            iload 2 /* size */
            iadd
            putfield net.sf.cglib.core.LocalVariablesSorter$State.nextLocal:I
        13: .line 141
      StackMap locals: int
      StackMap stack:
            iload 5 /* value */
            iconst_1
            isub
            ireturn
        end local 5 // int value
        end local 4 // int length
        end local 3 // int key
        end local 2 // int size
        end local 1 // int var
        end local 0 // net.sf.cglib.core.LocalVariablesSorter this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   14     0        this  Lnet/sf/cglib/core/LocalVariablesSorter;
            0   14     1         var  I
            0   14     2        size  I
            3   14     3         key  I
            4   14     4      length  I
            6    8     5  newMapping  [I
            9   14     5       value  I
    MethodParameters:
      Name  Flags
      var   final
      size  final

  private int remap(int);
    descriptor: (I)I
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=4, args_size=2
        start local 0 // net.sf.cglib.core.LocalVariablesSorter this
        start local 1 // int var
         0: .line 145
            iload 1 /* var */
            aload 0 /* this */
            getfield net.sf.cglib.core.LocalVariablesSorter.firstLocal:I
            if_icmpge 2
         1: .line 146
            iload 1 /* var */
            ireturn
         2: .line 148
      StackMap locals:
      StackMap stack:
            iconst_2
            iload 1 /* var */
            imul
            istore 2 /* key */
        start local 2 // int key
         3: .line 149
            iload 2 /* key */
            aload 0 /* this */
            getfield net.sf.cglib.core.LocalVariablesSorter.state:Lnet/sf/cglib/core/LocalVariablesSorter$State;
            getfield net.sf.cglib.core.LocalVariablesSorter$State.mapping:[I
            arraylength
            if_icmpge 4
            aload 0 /* this */
            getfield net.sf.cglib.core.LocalVariablesSorter.state:Lnet/sf/cglib/core/LocalVariablesSorter$State;
            getfield net.sf.cglib.core.LocalVariablesSorter$State.mapping:[I
            iload 2 /* key */
            iaload
            goto 5
      StackMap locals: int
      StackMap stack:
         4: iconst_0
      StackMap locals:
      StackMap stack: int
         5: istore 3 /* value */
        start local 3 // int value
         6: .line 150
            iload 3 /* value */
            ifne 10
         7: .line 151
            iload 2 /* key */
            iconst_1
            iadd
            aload 0 /* this */
            getfield net.sf.cglib.core.LocalVariablesSorter.state:Lnet/sf/cglib/core/LocalVariablesSorter$State;
            getfield net.sf.cglib.core.LocalVariablesSorter$State.mapping:[I
            arraylength
            if_icmpge 8
            aload 0 /* this */
            getfield net.sf.cglib.core.LocalVariablesSorter.state:Lnet/sf/cglib/core/LocalVariablesSorter$State;
            getfield net.sf.cglib.core.LocalVariablesSorter$State.mapping:[I
            iload 2 /* key */
            iconst_1
            iadd
            iaload
            goto 9
      StackMap locals: int
      StackMap stack:
         8: iconst_0
      StackMap locals:
      StackMap stack: int
         9: istore 3 /* value */
        10: .line 153
      StackMap locals:
      StackMap stack:
            iload 3 /* value */
            ifne 12
        11: .line 154
            new java.lang.IllegalStateException
            dup
            new java.lang.StringBuilder
            dup
            ldc "Unknown local variable "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            iload 1 /* var */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
            athrow
        12: .line 156
      StackMap locals:
      StackMap stack:
            iload 3 /* value */
            iconst_1
            isub
            ireturn
        end local 3 // int value
        end local 2 // int key
        end local 1 // int var
        end local 0 // net.sf.cglib.core.LocalVariablesSorter this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0   13     0   this  Lnet/sf/cglib/core/LocalVariablesSorter;
            0   13     1    var  I
            3   13     2    key  I
            6   13     3  value  I
    MethodParameters:
      Name  Flags
      var   final
}
SourceFile: "LocalVariablesSorter.java"
NestMembers:
  net.sf.cglib.core.LocalVariablesSorter$State
InnerClasses:
  private State = net.sf.cglib.core.LocalVariablesSorter$State of net.sf.cglib.core.LocalVariablesSorter