public final class org.apache.bcel.generic.SWITCH implements org.apache.bcel.generic.CompoundInstruction
  minor version: 0
  major version: 59
  flags: flags: (0x0031) ACC_PUBLIC, ACC_FINAL, ACC_SUPER
  this_class: org.apache.bcel.generic.SWITCH
  super_class: java.lang.Object
{
  private int[] match;
    descriptor: [I
    flags: (0x0002) ACC_PRIVATE

  private org.apache.bcel.generic.InstructionHandle[] targets;
    descriptor: [Lorg/apache/bcel/generic/InstructionHandle;
    flags: (0x0002) ACC_PRIVATE

  private org.apache.bcel.generic.Select instruction;
    descriptor: Lorg/apache/bcel/generic/Select;
    flags: (0x0002) ACC_PRIVATE

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

  public void <init>(int[], org.apache.bcel.generic.InstructionHandle[], org.apache.bcel.generic.InstructionHandle, int);
    descriptor: ([I[Lorg/apache/bcel/generic/InstructionHandle;Lorg/apache/bcel/generic/InstructionHandle;I)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=5, args_size=5
        start local 0 // org.apache.bcel.generic.SWITCH this
        start local 1 // int[] match
        start local 2 // org.apache.bcel.generic.InstructionHandle[] targets
        start local 3 // org.apache.bcel.generic.InstructionHandle target
        start local 4 // int max_gap
         0: .line 49
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 50
            aload 0 /* this */
            aload 1 /* match */
            invokevirtual int[].clone:()Ljava/lang/Object;
            checkcast int[]
            putfield org.apache.bcel.generic.SWITCH.match:[I
         2: .line 51
            aload 0 /* this */
            aload 2 /* targets */
            invokevirtual org.apache.bcel.generic.InstructionHandle[].clone:()Ljava/lang/Object;
            checkcast org.apache.bcel.generic.InstructionHandle[]
            putfield org.apache.bcel.generic.SWITCH.targets:[Lorg/apache/bcel/generic/InstructionHandle;
         3: .line 52
            aload 0 /* this */
            aload 1 /* match */
            arraylength
            dup_x1
            putfield org.apache.bcel.generic.SWITCH.match_length:I
            iconst_2
            if_icmpge 6
         4: .line 53
            aload 0 /* this */
            new org.apache.bcel.generic.TABLESWITCH
            dup
            aload 1 /* match */
            aload 2 /* targets */
            aload 3 /* target */
            invokespecial org.apache.bcel.generic.TABLESWITCH.<init>:([I[Lorg/apache/bcel/generic/InstructionHandle;Lorg/apache/bcel/generic/InstructionHandle;)V
            putfield org.apache.bcel.generic.SWITCH.instruction:Lorg/apache/bcel/generic/Select;
         5: .line 54
            goto 12
         6: .line 55
      StackMap locals: org.apache.bcel.generic.SWITCH int[] org.apache.bcel.generic.InstructionHandle[] org.apache.bcel.generic.InstructionHandle int
      StackMap stack:
            aload 0 /* this */
            iconst_0
            aload 0 /* this */
            getfield org.apache.bcel.generic.SWITCH.match_length:I
            iconst_1
            isub
            invokevirtual org.apache.bcel.generic.SWITCH.sort:(II)V
         7: .line 56
            aload 0 /* this */
            iload 4 /* max_gap */
            invokevirtual org.apache.bcel.generic.SWITCH.matchIsOrdered:(I)Z
            ifeq 11
         8: .line 57
            aload 0 /* this */
            iload 4 /* max_gap */
            aload 3 /* target */
            invokevirtual org.apache.bcel.generic.SWITCH.fillup:(ILorg/apache/bcel/generic/InstructionHandle;)V
         9: .line 58
            aload 0 /* this */
            new org.apache.bcel.generic.TABLESWITCH
            dup
            aload 0 /* this */
            getfield org.apache.bcel.generic.SWITCH.match:[I
            aload 0 /* this */
            getfield org.apache.bcel.generic.SWITCH.targets:[Lorg/apache/bcel/generic/InstructionHandle;
            aload 3 /* target */
            invokespecial org.apache.bcel.generic.TABLESWITCH.<init>:([I[Lorg/apache/bcel/generic/InstructionHandle;Lorg/apache/bcel/generic/InstructionHandle;)V
            putfield org.apache.bcel.generic.SWITCH.instruction:Lorg/apache/bcel/generic/Select;
        10: .line 59
            goto 12
        11: .line 60
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            new org.apache.bcel.generic.LOOKUPSWITCH
            dup
            aload 0 /* this */
            getfield org.apache.bcel.generic.SWITCH.match:[I
            aload 0 /* this */
            getfield org.apache.bcel.generic.SWITCH.targets:[Lorg/apache/bcel/generic/InstructionHandle;
            aload 3 /* target */
            invokespecial org.apache.bcel.generic.LOOKUPSWITCH.<init>:([I[Lorg/apache/bcel/generic/InstructionHandle;Lorg/apache/bcel/generic/InstructionHandle;)V
            putfield org.apache.bcel.generic.SWITCH.instruction:Lorg/apache/bcel/generic/Select;
        12: .line 63
      StackMap locals:
      StackMap stack:
            return
        end local 4 // int max_gap
        end local 3 // org.apache.bcel.generic.InstructionHandle target
        end local 2 // org.apache.bcel.generic.InstructionHandle[] targets
        end local 1 // int[] match
        end local 0 // org.apache.bcel.generic.SWITCH this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   13     0     this  Lorg/apache/bcel/generic/SWITCH;
            0   13     1    match  [I
            0   13     2  targets  [Lorg/apache/bcel/generic/InstructionHandle;
            0   13     3   target  Lorg/apache/bcel/generic/InstructionHandle;
            0   13     4  max_gap  I
    MethodParameters:
         Name  Flags
      match    final
      targets  final
      target   final
      max_gap  final

  public void <init>(int[], org.apache.bcel.generic.InstructionHandle[], org.apache.bcel.generic.InstructionHandle);
    descriptor: ([I[Lorg/apache/bcel/generic/InstructionHandle;Lorg/apache/bcel/generic/InstructionHandle;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=4, args_size=4
        start local 0 // org.apache.bcel.generic.SWITCH this
        start local 1 // int[] match
        start local 2 // org.apache.bcel.generic.InstructionHandle[] targets
        start local 3 // org.apache.bcel.generic.InstructionHandle target
         0: .line 67
            aload 0 /* this */
            aload 1 /* match */
            aload 2 /* targets */
            aload 3 /* target */
            iconst_1
            invokespecial org.apache.bcel.generic.SWITCH.<init>:([I[Lorg/apache/bcel/generic/InstructionHandle;Lorg/apache/bcel/generic/InstructionHandle;I)V
         1: .line 68
            return
        end local 3 // org.apache.bcel.generic.InstructionHandle target
        end local 2 // org.apache.bcel.generic.InstructionHandle[] targets
        end local 1 // int[] match
        end local 0 // org.apache.bcel.generic.SWITCH this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    2     0     this  Lorg/apache/bcel/generic/SWITCH;
            0    2     1    match  [I
            0    2     2  targets  [Lorg/apache/bcel/generic/InstructionHandle;
            0    2     3   target  Lorg/apache/bcel/generic/InstructionHandle;
    MethodParameters:
         Name  Flags
      match    final
      targets  final
      target   final

  private void fillup(int, org.apache.bcel.generic.InstructionHandle);
    descriptor: (ILorg/apache/bcel/generic/InstructionHandle;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=11, args_size=3
        start local 0 // org.apache.bcel.generic.SWITCH this
        start local 1 // int max_gap
        start local 2 // org.apache.bcel.generic.InstructionHandle target
         0: .line 72
            aload 0 /* this */
            getfield org.apache.bcel.generic.SWITCH.match_length:I
            aload 0 /* this */
            getfield org.apache.bcel.generic.SWITCH.match_length:I
            iload 1 /* max_gap */
            imul
            iadd
            istore 3 /* max_size */
        start local 3 // int max_size
         1: .line 73
            iload 3 /* max_size */
            newarray 10
            astore 4 /* m_vec */
        start local 4 // int[] m_vec
         2: .line 74
            iload 3 /* max_size */
            anewarray org.apache.bcel.generic.InstructionHandle
            astore 5 /* t_vec */
        start local 5 // org.apache.bcel.generic.InstructionHandle[] t_vec
         3: .line 75
            iconst_1
            istore 6 /* count */
        start local 6 // int count
         4: .line 76
            aload 4 /* m_vec */
            iconst_0
            aload 0 /* this */
            getfield org.apache.bcel.generic.SWITCH.match:[I
            iconst_0
            iaload
            iastore
         5: .line 77
            aload 5 /* t_vec */
            iconst_0
            aload 0 /* this */
            getfield org.apache.bcel.generic.SWITCH.targets:[Lorg/apache/bcel/generic/InstructionHandle;
            iconst_0
            aaload
            aastore
         6: .line 78
            iconst_1
            istore 7 /* i */
        start local 7 // int i
         7: goto 21
         8: .line 79
      StackMap locals: org.apache.bcel.generic.SWITCH int org.apache.bcel.generic.InstructionHandle int int[] org.apache.bcel.generic.InstructionHandle[] int int
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.bcel.generic.SWITCH.match:[I
            iload 7 /* i */
            iconst_1
            isub
            iaload
            istore 8 /* prev */
        start local 8 // int prev
         9: .line 80
            aload 0 /* this */
            getfield org.apache.bcel.generic.SWITCH.match:[I
            iload 7 /* i */
            iaload
            iload 8 /* prev */
            isub
            istore 9 /* gap */
        start local 9 // int gap
        10: .line 81
            iconst_1
            istore 10 /* j */
        start local 10 // int j
        11: goto 16
        12: .line 82
      StackMap locals: int int int
      StackMap stack:
            aload 4 /* m_vec */
            iload 6 /* count */
            iload 8 /* prev */
            iload 10 /* j */
            iadd
            iastore
        13: .line 83
            aload 5 /* t_vec */
            iload 6 /* count */
            aload 2 /* target */
            aastore
        14: .line 84
            iinc 6 /* count */ 1
        15: .line 81
            iinc 10 /* j */ 1
      StackMap locals:
      StackMap stack:
        16: iload 10 /* j */
            iload 9 /* gap */
            if_icmplt 12
        end local 10 // int j
        17: .line 86
            aload 4 /* m_vec */
            iload 6 /* count */
            aload 0 /* this */
            getfield org.apache.bcel.generic.SWITCH.match:[I
            iload 7 /* i */
            iaload
            iastore
        18: .line 87
            aload 5 /* t_vec */
            iload 6 /* count */
            aload 0 /* this */
            getfield org.apache.bcel.generic.SWITCH.targets:[Lorg/apache/bcel/generic/InstructionHandle;
            iload 7 /* i */
            aaload
            aastore
        19: .line 88
            iinc 6 /* count */ 1
        end local 9 // int gap
        end local 8 // int prev
        20: .line 78
            iinc 7 /* i */ 1
      StackMap locals:
      StackMap stack:
        21: iload 7 /* i */
            aload 0 /* this */
            getfield org.apache.bcel.generic.SWITCH.match_length:I
            if_icmplt 8
        end local 7 // int i
        22: .line 90
            aload 0 /* this */
            iload 6 /* count */
            newarray 10
            putfield org.apache.bcel.generic.SWITCH.match:[I
        23: .line 91
            aload 0 /* this */
            iload 6 /* count */
            anewarray org.apache.bcel.generic.InstructionHandle
            putfield org.apache.bcel.generic.SWITCH.targets:[Lorg/apache/bcel/generic/InstructionHandle;
        24: .line 92
            aload 4 /* m_vec */
            iconst_0
            aload 0 /* this */
            getfield org.apache.bcel.generic.SWITCH.match:[I
            iconst_0
            iload 6 /* count */
            invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
        25: .line 93
            aload 5 /* t_vec */
            iconst_0
            aload 0 /* this */
            getfield org.apache.bcel.generic.SWITCH.targets:[Lorg/apache/bcel/generic/InstructionHandle;
            iconst_0
            iload 6 /* count */
            invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
        26: .line 94
            return
        end local 6 // int count
        end local 5 // org.apache.bcel.generic.InstructionHandle[] t_vec
        end local 4 // int[] m_vec
        end local 3 // int max_size
        end local 2 // org.apache.bcel.generic.InstructionHandle target
        end local 1 // int max_gap
        end local 0 // org.apache.bcel.generic.SWITCH this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   27     0      this  Lorg/apache/bcel/generic/SWITCH;
            0   27     1   max_gap  I
            0   27     2    target  Lorg/apache/bcel/generic/InstructionHandle;
            1   27     3  max_size  I
            2   27     4     m_vec  [I
            3   27     5     t_vec  [Lorg/apache/bcel/generic/InstructionHandle;
            4   27     6     count  I
            7   22     7         i  I
            9   20     8      prev  I
           10   20     9       gap  I
           11   17    10         j  I
    MethodParameters:
         Name  Flags
      max_gap  final
      target   final

  private void sort(int, int);
    descriptor: (II)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=8, args_size=3
        start local 0 // org.apache.bcel.generic.SWITCH this
        start local 1 // int l
        start local 2 // int r
         0: .line 101
            iload 1 /* l */
            istore 3 /* i */
        start local 3 // int i
         1: .line 102
            iload 2 /* r */
            istore 4 /* j */
        start local 4 // int j
         2: .line 104
            aload 0 /* this */
            getfield org.apache.bcel.generic.SWITCH.match:[I
            iload 1 /* l */
            iload 2 /* r */
            iadd
            iconst_1
            iushr
            iaload
            istore 6 /* m */
        start local 6 // int m
         3: .line 107
            goto 5
         4: .line 108
      StackMap locals: org.apache.bcel.generic.SWITCH int int int int top int
      StackMap stack:
            iinc 3 /* i */ 1
         5: .line 107
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.bcel.generic.SWITCH.match:[I
            iload 3 /* i */
            iaload
            iload 6 /* m */
            if_icmplt 4
         6: .line 110
            goto 8
         7: .line 111
      StackMap locals:
      StackMap stack:
            iinc 4 /* j */ -1
         8: .line 110
      StackMap locals:
      StackMap stack:
            iload 6 /* m */
            aload 0 /* this */
            getfield org.apache.bcel.generic.SWITCH.match:[I
            iload 4 /* j */
            iaload
            if_icmplt 7
         9: .line 113
            iload 3 /* i */
            iload 4 /* j */
            if_icmpgt 18
        10: .line 114
            aload 0 /* this */
            getfield org.apache.bcel.generic.SWITCH.match:[I
            iload 3 /* i */
            iaload
            istore 5 /* h */
        start local 5 // int h
        11: .line 115
            aload 0 /* this */
            getfield org.apache.bcel.generic.SWITCH.match:[I
            iload 3 /* i */
            aload 0 /* this */
            getfield org.apache.bcel.generic.SWITCH.match:[I
            iload 4 /* j */
            iaload
            iastore
        12: .line 116
            aload 0 /* this */
            getfield org.apache.bcel.generic.SWITCH.match:[I
            iload 4 /* j */
            iload 5 /* h */
            iastore
        13: .line 117
            aload 0 /* this */
            getfield org.apache.bcel.generic.SWITCH.targets:[Lorg/apache/bcel/generic/InstructionHandle;
            iload 3 /* i */
            aaload
            astore 7 /* h2 */
        start local 7 // org.apache.bcel.generic.InstructionHandle h2
        14: .line 118
            aload 0 /* this */
            getfield org.apache.bcel.generic.SWITCH.targets:[Lorg/apache/bcel/generic/InstructionHandle;
            iload 3 /* i */
            aload 0 /* this */
            getfield org.apache.bcel.generic.SWITCH.targets:[Lorg/apache/bcel/generic/InstructionHandle;
            iload 4 /* j */
            aaload
            aastore
        15: .line 119
            aload 0 /* this */
            getfield org.apache.bcel.generic.SWITCH.targets:[Lorg/apache/bcel/generic/InstructionHandle;
            iload 4 /* j */
            aload 7 /* h2 */
            aastore
        16: .line 120
            iinc 3 /* i */ 1
        17: .line 121
            iinc 4 /* j */ -1
        end local 7 // org.apache.bcel.generic.InstructionHandle h2
        end local 5 // int h
        18: .line 123
      StackMap locals:
      StackMap stack:
            iload 3 /* i */
            iload 4 /* j */
        19: .line 106
            if_icmple 5
        20: .line 124
            iload 1 /* l */
            iload 4 /* j */
            if_icmpge 22
        21: .line 125
            aload 0 /* this */
            iload 1 /* l */
            iload 4 /* j */
            invokevirtual org.apache.bcel.generic.SWITCH.sort:(II)V
        22: .line 127
      StackMap locals:
      StackMap stack:
            iload 3 /* i */
            iload 2 /* r */
            if_icmpge 24
        23: .line 128
            aload 0 /* this */
            iload 3 /* i */
            iload 2 /* r */
            invokevirtual org.apache.bcel.generic.SWITCH.sort:(II)V
        24: .line 130
      StackMap locals:
      StackMap stack:
            return
        end local 6 // int m
        end local 4 // int j
        end local 3 // int i
        end local 2 // int r
        end local 1 // int l
        end local 0 // org.apache.bcel.generic.SWITCH this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   25     0  this  Lorg/apache/bcel/generic/SWITCH;
            0   25     1     l  I
            0   25     2     r  I
            1   25     3     i  I
            2   25     4     j  I
           11   18     5     h  I
            3   25     6     m  I
           14   18     7    h2  Lorg/apache/bcel/generic/InstructionHandle;
    MethodParameters:
      Name  Flags
      l     final
      r     final

  private boolean matchIsOrdered(int);
    descriptor: (I)Z
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=3, args_size=2
        start local 0 // org.apache.bcel.generic.SWITCH this
        start local 1 // int max_gap
         0: .line 137
            iconst_1
            istore 2 /* i */
        start local 2 // int i
         1: goto 5
         2: .line 138
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.bcel.generic.SWITCH.match:[I
            iload 2 /* i */
            iaload
            aload 0 /* this */
            getfield org.apache.bcel.generic.SWITCH.match:[I
            iload 2 /* i */
            iconst_1
            isub
            iaload
            isub
            iload 1 /* max_gap */
            if_icmple 4
         3: .line 139
            iconst_0
            ireturn
         4: .line 137
      StackMap locals:
      StackMap stack:
            iinc 2 /* i */ 1
      StackMap locals:
      StackMap stack:
         5: iload 2 /* i */
            aload 0 /* this */
            getfield org.apache.bcel.generic.SWITCH.match_length:I
            if_icmplt 2
        end local 2 // int i
         6: .line 142
            iconst_1
            ireturn
        end local 1 // int max_gap
        end local 0 // org.apache.bcel.generic.SWITCH this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    7     0     this  Lorg/apache/bcel/generic/SWITCH;
            0    7     1  max_gap  I
            1    6     2        i  I
    MethodParameters:
         Name  Flags
      max_gap  final

  public org.apache.bcel.generic.InstructionList getInstructionList();
    descriptor: ()Lorg/apache/bcel/generic/InstructionList;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // org.apache.bcel.generic.SWITCH this
         0: .line 148
            new org.apache.bcel.generic.InstructionList
            dup
            aload 0 /* this */
            getfield org.apache.bcel.generic.SWITCH.instruction:Lorg/apache/bcel/generic/Select;
            invokespecial org.apache.bcel.generic.InstructionList.<init>:(Lorg/apache/bcel/generic/BranchInstruction;)V
            areturn
        end local 0 // org.apache.bcel.generic.SWITCH this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/apache/bcel/generic/SWITCH;

  public org.apache.bcel.generic.Instruction getInstruction();
    descriptor: ()Lorg/apache/bcel/generic/Instruction;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.apache.bcel.generic.SWITCH this
         0: .line 153
            aload 0 /* this */
            getfield org.apache.bcel.generic.SWITCH.instruction:Lorg/apache/bcel/generic/Select;
            areturn
        end local 0 // org.apache.bcel.generic.SWITCH this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/apache/bcel/generic/SWITCH;
}
SourceFile: "SWITCH.java"