public class org.apache.bcel.verifier.structurals.Subroutines
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: org.apache.bcel.verifier.structurals.Subroutines
  super_class: java.lang.Object
{
  private final java.util.Map<org.apache.bcel.generic.InstructionHandle, org.apache.bcel.verifier.structurals.Subroutine> subroutines;
    descriptor: Ljava/util/Map;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Ljava/util/Map<Lorg/apache/bcel/generic/InstructionHandle;Lorg/apache/bcel/verifier/structurals/Subroutine;>;

  public final org.apache.bcel.verifier.structurals.Subroutine TOPLEVEL;
    descriptor: Lorg/apache/bcel/verifier/structurals/Subroutine;
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL

  public void <init>(org.apache.bcel.generic.MethodGen);
    descriptor: (Lorg/apache/bcel/generic/MethodGen;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // org.apache.bcel.verifier.structurals.Subroutines this
        start local 1 // org.apache.bcel.generic.MethodGen mg
         0: .line 382
            aload 0 /* this */
            aload 1 /* mg */
            iconst_1
            invokespecial org.apache.bcel.verifier.structurals.Subroutines.<init>:(Lorg/apache/bcel/generic/MethodGen;Z)V
         1: .line 383
            return
        end local 1 // org.apache.bcel.generic.MethodGen mg
        end local 0 // org.apache.bcel.verifier.structurals.Subroutines this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/apache/bcel/verifier/structurals/Subroutines;
            0    2     1    mg  Lorg/apache/bcel/generic/MethodGen;
    MethodParameters:
      Name  Flags
      mg    final

  public void <init>(org.apache.bcel.generic.MethodGen, boolean);
    descriptor: (Lorg/apache/bcel/generic/MethodGen;Z)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=17, args_size=3
        start local 0 // org.apache.bcel.verifier.structurals.Subroutines this
        start local 1 // org.apache.bcel.generic.MethodGen mg
        start local 2 // boolean enableJustIceCheck
         0: .line 392
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 363
            aload 0 /* this */
            new java.util.HashMap
            dup
            invokespecial java.util.HashMap.<init>:()V
            putfield org.apache.bcel.verifier.structurals.Subroutines.subroutines:Ljava/util/Map;
         2: .line 393
            aload 1 /* mg */
            invokevirtual org.apache.bcel.generic.MethodGen.getInstructionList:()Lorg/apache/bcel/generic/InstructionList;
            invokevirtual org.apache.bcel.generic.InstructionList.getInstructionHandles:()[Lorg/apache/bcel/generic/InstructionHandle;
            astore 3 /* all */
        start local 3 // org.apache.bcel.generic.InstructionHandle[] all
         3: .line 394
            aload 1 /* mg */
            invokevirtual org.apache.bcel.generic.MethodGen.getExceptionHandlers:()[Lorg/apache/bcel/generic/CodeExceptionGen;
            astore 4 /* handlers */
        start local 4 // org.apache.bcel.generic.CodeExceptionGen[] handlers
         4: .line 397
            aload 0 /* this */
            new org.apache.bcel.verifier.structurals.Subroutines$SubroutineImpl
            dup
            aload 0 /* this */
            invokespecial org.apache.bcel.verifier.structurals.Subroutines$SubroutineImpl.<init>:(Lorg/apache/bcel/verifier/structurals/Subroutines;)V
            putfield org.apache.bcel.verifier.structurals.Subroutines.TOPLEVEL:Lorg/apache/bcel/verifier/structurals/Subroutine;
         5: .line 400
            new java.util.HashSet
            dup
            invokespecial java.util.HashSet.<init>:()V
            astore 5 /* sub_leaders */
        start local 5 // java.util.Set sub_leaders
         6: .line 401
            aload 3 /* all */
            dup
            astore 9
            arraylength
            istore 8
            iconst_0
            istore 7
            goto 12
      StackMap locals: org.apache.bcel.verifier.structurals.Subroutines org.apache.bcel.generic.MethodGen int org.apache.bcel.generic.InstructionHandle[] org.apache.bcel.generic.CodeExceptionGen[] java.util.Set top int int org.apache.bcel.generic.InstructionHandle[]
      StackMap stack:
         7: aload 9
            iload 7
            aaload
            astore 6 /* element */
        start local 6 // org.apache.bcel.generic.InstructionHandle element
         8: .line 402
            aload 6 /* element */
            invokevirtual org.apache.bcel.generic.InstructionHandle.getInstruction:()Lorg/apache/bcel/generic/Instruction;
            astore 10 /* inst */
        start local 10 // org.apache.bcel.generic.Instruction inst
         9: .line 403
            aload 10 /* inst */
            instanceof org.apache.bcel.generic.JsrInstruction
            ifeq 11
        10: .line 404
            aload 5 /* sub_leaders */
            aload 10 /* inst */
            checkcast org.apache.bcel.generic.JsrInstruction
            invokevirtual org.apache.bcel.generic.JsrInstruction.getTarget:()Lorg/apache/bcel/generic/InstructionHandle;
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            pop
        end local 10 // org.apache.bcel.generic.Instruction inst
        end local 6 // org.apache.bcel.generic.InstructionHandle element
        11: .line 401
      StackMap locals:
      StackMap stack:
            iinc 7 1
      StackMap locals:
      StackMap stack:
        12: iload 7
            iload 8
            if_icmplt 7
        13: .line 409
            aload 5 /* sub_leaders */
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            astore 7
            goto 18
      StackMap locals: org.apache.bcel.verifier.structurals.Subroutines org.apache.bcel.generic.MethodGen int org.apache.bcel.generic.InstructionHandle[] org.apache.bcel.generic.CodeExceptionGen[] java.util.Set top java.util.Iterator
      StackMap stack:
        14: aload 7
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.apache.bcel.generic.InstructionHandle
            astore 6 /* astore */
        start local 6 // org.apache.bcel.generic.InstructionHandle astore
        15: .line 410
            new org.apache.bcel.verifier.structurals.Subroutines$SubroutineImpl
            dup
            aload 0 /* this */
            invokespecial org.apache.bcel.verifier.structurals.Subroutines$SubroutineImpl.<init>:(Lorg/apache/bcel/verifier/structurals/Subroutines;)V
            astore 8 /* sr */
        start local 8 // org.apache.bcel.verifier.structurals.Subroutines$SubroutineImpl sr
        16: .line 411
            aload 8 /* sr */
            aload 6 /* astore */
            invokevirtual org.apache.bcel.generic.InstructionHandle.getInstruction:()Lorg/apache/bcel/generic/Instruction;
            checkcast org.apache.bcel.generic.ASTORE
            invokevirtual org.apache.bcel.generic.ASTORE.getIndex:()I
            invokevirtual org.apache.bcel.verifier.structurals.Subroutines$SubroutineImpl.setLocalVariable:(I)V
        17: .line 412
            aload 0 /* this */
            getfield org.apache.bcel.verifier.structurals.Subroutines.subroutines:Ljava/util/Map;
            aload 6 /* astore */
            aload 8 /* sr */
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        end local 8 // org.apache.bcel.verifier.structurals.Subroutines$SubroutineImpl sr
        end local 6 // org.apache.bcel.generic.InstructionHandle astore
        18: .line 409
      StackMap locals:
      StackMap stack:
            aload 7
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 14
        19: .line 416
            aload 0 /* this */
            getfield org.apache.bcel.verifier.structurals.Subroutines.subroutines:Ljava/util/Map;
            aload 3 /* all */
            iconst_0
            aaload
            aload 0 /* this */
            getfield org.apache.bcel.verifier.structurals.Subroutines.TOPLEVEL:Lorg/apache/bcel/verifier/structurals/Subroutine;
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        20: .line 417
            aload 5 /* sub_leaders */
            aload 3 /* all */
            iconst_0
            aaload
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            pop
        21: .line 424
            aload 3 /* all */
            dup
            astore 9
            arraylength
            istore 8
            iconst_0
            istore 7
            goto 28
      StackMap locals: org.apache.bcel.verifier.structurals.Subroutines org.apache.bcel.generic.MethodGen int org.apache.bcel.generic.InstructionHandle[] org.apache.bcel.generic.CodeExceptionGen[] java.util.Set top int int org.apache.bcel.generic.InstructionHandle[]
      StackMap stack:
        22: aload 9
            iload 7
            aaload
            astore 6 /* element */
        start local 6 // org.apache.bcel.generic.InstructionHandle element
        23: .line 425
            aload 6 /* element */
            invokevirtual org.apache.bcel.generic.InstructionHandle.getInstruction:()Lorg/apache/bcel/generic/Instruction;
            astore 10 /* inst */
        start local 10 // org.apache.bcel.generic.Instruction inst
        24: .line 426
            aload 10 /* inst */
            instanceof org.apache.bcel.generic.JsrInstruction
            ifeq 27
        25: .line 427
            aload 10 /* inst */
            checkcast org.apache.bcel.generic.JsrInstruction
            invokevirtual org.apache.bcel.generic.JsrInstruction.getTarget:()Lorg/apache/bcel/generic/InstructionHandle;
            astore 11 /* leader */
        start local 11 // org.apache.bcel.generic.InstructionHandle leader
        26: .line 428
            aload 0 /* this */
            aload 11 /* leader */
            invokevirtual org.apache.bcel.verifier.structurals.Subroutines.getSubroutine:(Lorg/apache/bcel/generic/InstructionHandle;)Lorg/apache/bcel/verifier/structurals/Subroutine;
            checkcast org.apache.bcel.verifier.structurals.Subroutines$SubroutineImpl
            aload 6 /* element */
            invokevirtual org.apache.bcel.verifier.structurals.Subroutines$SubroutineImpl.addEnteringJsrInstruction:(Lorg/apache/bcel/generic/InstructionHandle;)V
        end local 11 // org.apache.bcel.generic.InstructionHandle leader
        end local 10 // org.apache.bcel.generic.Instruction inst
        end local 6 // org.apache.bcel.generic.InstructionHandle element
        27: .line 424
      StackMap locals:
      StackMap stack:
            iinc 7 1
      StackMap locals:
      StackMap stack:
        28: iload 7
            iload 8
            if_icmplt 22
        29: .line 435
            new java.util.HashSet
            dup
            invokespecial java.util.HashSet.<init>:()V
            astore 6 /* instructions_assigned */
        start local 6 // java.util.Set instructions_assigned
        30: .line 438
            new java.util.HashMap
            dup
            invokespecial java.util.HashMap.<init>:()V
            astore 7 /* colors */
        start local 7 // java.util.Map colors
        31: .line 440
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 8 /* Q */
        start local 8 // java.util.List Q
        32: .line 441
            aload 5 /* sub_leaders */
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            astore 10
            goto 76
      StackMap locals: org.apache.bcel.verifier.structurals.Subroutines org.apache.bcel.generic.MethodGen int org.apache.bcel.generic.InstructionHandle[] org.apache.bcel.generic.CodeExceptionGen[] java.util.Set java.util.Set java.util.Map java.util.List top java.util.Iterator
      StackMap stack:
        33: aload 10
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.apache.bcel.generic.InstructionHandle
            astore 9 /* actual */
        start local 9 // org.apache.bcel.generic.InstructionHandle actual
        34: .line 444
            aload 3 /* all */
            dup
            astore 14
            arraylength
            istore 13
            iconst_0
            istore 12
            goto 38
      StackMap locals: org.apache.bcel.verifier.structurals.Subroutines org.apache.bcel.generic.MethodGen int org.apache.bcel.generic.InstructionHandle[] org.apache.bcel.generic.CodeExceptionGen[] java.util.Set java.util.Set java.util.Map java.util.List org.apache.bcel.generic.InstructionHandle java.util.Iterator top int int org.apache.bcel.generic.InstructionHandle[]
      StackMap stack:
        35: aload 14
            iload 12
            aaload
            astore 11 /* element */
        start local 11 // org.apache.bcel.generic.InstructionHandle element
        36: .line 445
            aload 7 /* colors */
            aload 11 /* element */
            getstatic org.apache.bcel.verifier.structurals.Subroutines$ColourConstants.WHITE:Lorg/apache/bcel/verifier/structurals/Subroutines$ColourConstants;
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        end local 11 // org.apache.bcel.generic.InstructionHandle element
        37: .line 444
            iinc 12 1
      StackMap locals:
      StackMap stack:
        38: iload 12
            iload 13
            if_icmplt 35
        39: .line 447
            aload 7 /* colors */
            aload 9 /* actual */
            getstatic org.apache.bcel.verifier.structurals.Subroutines$ColourConstants.GRAY:Lorg/apache/bcel/verifier/structurals/Subroutines$ColourConstants;
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        40: .line 450
            aload 8 /* Q */
            invokeinterface java.util.List.clear:()V
        41: .line 451
            aload 8 /* Q */
            aload 9 /* actual */
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        42: .line 459
            aload 9 /* actual */
            aload 3 /* all */
            iconst_0
            aaload
            if_acmpne 60
        43: .line 460
            aload 4 /* handlers */
            dup
            astore 14
            arraylength
            istore 13
            iconst_0
            istore 12
            goto 48
      StackMap locals: org.apache.bcel.verifier.structurals.Subroutines org.apache.bcel.generic.MethodGen int org.apache.bcel.generic.InstructionHandle[] org.apache.bcel.generic.CodeExceptionGen[] java.util.Set java.util.Set java.util.Map java.util.List org.apache.bcel.generic.InstructionHandle java.util.Iterator top int int org.apache.bcel.generic.CodeExceptionGen[]
      StackMap stack:
        44: aload 14
            iload 12
            aaload
            astore 11 /* handler */
        start local 11 // org.apache.bcel.generic.CodeExceptionGen handler
        45: .line 461
            aload 7 /* colors */
            aload 11 /* handler */
            invokevirtual org.apache.bcel.generic.CodeExceptionGen.getHandlerPC:()Lorg/apache/bcel/generic/InstructionHandle;
            getstatic org.apache.bcel.verifier.structurals.Subroutines$ColourConstants.GRAY:Lorg/apache/bcel/verifier/structurals/Subroutines$ColourConstants;
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        46: .line 462
            aload 8 /* Q */
            aload 11 /* handler */
            invokevirtual org.apache.bcel.generic.CodeExceptionGen.getHandlerPC:()Lorg/apache/bcel/generic/InstructionHandle;
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        end local 11 // org.apache.bcel.generic.CodeExceptionGen handler
        47: .line 460
            iinc 12 1
      StackMap locals:
      StackMap stack:
        48: iload 12
            iload 13
            if_icmplt 44
        49: .line 468
            goto 60
        50: .line 469
      StackMap locals: org.apache.bcel.verifier.structurals.Subroutines org.apache.bcel.generic.MethodGen int org.apache.bcel.generic.InstructionHandle[] org.apache.bcel.generic.CodeExceptionGen[] java.util.Set java.util.Set java.util.Map java.util.List org.apache.bcel.generic.InstructionHandle java.util.Iterator
      StackMap stack:
            aload 8 /* Q */
            iconst_0
            invokeinterface java.util.List.remove:(I)Ljava/lang/Object;
            checkcast org.apache.bcel.generic.InstructionHandle
            astore 11 /* u */
        start local 11 // org.apache.bcel.generic.InstructionHandle u
        51: .line 470
            aload 11 /* u */
            invokestatic org.apache.bcel.verifier.structurals.Subroutines.getSuccessors:(Lorg/apache/bcel/generic/InstructionHandle;)[Lorg/apache/bcel/generic/InstructionHandle;
            astore 12 /* successors */
        start local 12 // org.apache.bcel.generic.InstructionHandle[] successors
        52: .line 471
            aload 12 /* successors */
            dup
            astore 16
            arraylength
            istore 15
            iconst_0
            istore 14
            goto 58
      StackMap locals: org.apache.bcel.verifier.structurals.Subroutines org.apache.bcel.generic.MethodGen int org.apache.bcel.generic.InstructionHandle[] org.apache.bcel.generic.CodeExceptionGen[] java.util.Set java.util.Set java.util.Map java.util.List org.apache.bcel.generic.InstructionHandle java.util.Iterator org.apache.bcel.generic.InstructionHandle org.apache.bcel.generic.InstructionHandle[] top int int org.apache.bcel.generic.InstructionHandle[]
      StackMap stack:
        53: aload 16
            iload 14
            aaload
            astore 13 /* successor */
        start local 13 // org.apache.bcel.generic.InstructionHandle successor
        54: .line 472
            aload 7 /* colors */
            aload 13 /* successor */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            getstatic org.apache.bcel.verifier.structurals.Subroutines$ColourConstants.WHITE:Lorg/apache/bcel/verifier/structurals/Subroutines$ColourConstants;
            if_acmpne 57
        55: .line 473
            aload 7 /* colors */
            aload 13 /* successor */
            getstatic org.apache.bcel.verifier.structurals.Subroutines$ColourConstants.GRAY:Lorg/apache/bcel/verifier/structurals/Subroutines$ColourConstants;
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        56: .line 474
            aload 8 /* Q */
            aload 13 /* successor */
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        end local 13 // org.apache.bcel.generic.InstructionHandle successor
        57: .line 471
      StackMap locals:
      StackMap stack:
            iinc 14 1
      StackMap locals:
      StackMap stack:
        58: iload 14
            iload 15
            if_icmplt 53
        59: .line 477
            aload 7 /* colors */
            aload 11 /* u */
            getstatic org.apache.bcel.verifier.structurals.Subroutines$ColourConstants.BLACK:Lorg/apache/bcel/verifier/structurals/Subroutines$ColourConstants;
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        end local 12 // org.apache.bcel.generic.InstructionHandle[] successors
        end local 11 // org.apache.bcel.generic.InstructionHandle u
        60: .line 468
      StackMap locals: org.apache.bcel.verifier.structurals.Subroutines org.apache.bcel.generic.MethodGen int org.apache.bcel.generic.InstructionHandle[] org.apache.bcel.generic.CodeExceptionGen[] java.util.Set java.util.Set java.util.Map java.util.List org.apache.bcel.generic.InstructionHandle java.util.Iterator
      StackMap stack:
            aload 8 /* Q */
            invokeinterface java.util.List.size:()I
            ifne 50
        61: .line 480
            aload 3 /* all */
            dup
            astore 14
            arraylength
            istore 13
            iconst_0
            istore 12
            goto 73
      StackMap locals: org.apache.bcel.verifier.structurals.Subroutines org.apache.bcel.generic.MethodGen int org.apache.bcel.generic.InstructionHandle[] org.apache.bcel.generic.CodeExceptionGen[] java.util.Set java.util.Set java.util.Map java.util.List org.apache.bcel.generic.InstructionHandle java.util.Iterator top int int org.apache.bcel.generic.InstructionHandle[]
      StackMap stack:
        62: aload 14
            iload 12
            aaload
            astore 11 /* element */
        start local 11 // org.apache.bcel.generic.InstructionHandle element
        63: .line 481
            aload 7 /* colors */
            aload 11 /* element */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            getstatic org.apache.bcel.verifier.structurals.Subroutines$ColourConstants.BLACK:Lorg/apache/bcel/verifier/structurals/Subroutines$ColourConstants;
            if_acmpne 72
        64: .line 482
            aload 9 /* actual */
            aload 3 /* all */
            iconst_0
            aaload
            if_acmpne 65
            aload 0 /* this */
            invokevirtual org.apache.bcel.verifier.structurals.Subroutines.getTopLevel:()Lorg/apache/bcel/verifier/structurals/Subroutine;
            goto 66
      StackMap locals: org.apache.bcel.verifier.structurals.Subroutines org.apache.bcel.generic.MethodGen int org.apache.bcel.generic.InstructionHandle[] org.apache.bcel.generic.CodeExceptionGen[] java.util.Set java.util.Set java.util.Map java.util.List org.apache.bcel.generic.InstructionHandle java.util.Iterator org.apache.bcel.generic.InstructionHandle int int org.apache.bcel.generic.InstructionHandle[]
      StackMap stack:
        65: aload 0 /* this */
            aload 9 /* actual */
            invokevirtual org.apache.bcel.verifier.structurals.Subroutines.getSubroutine:(Lorg/apache/bcel/generic/InstructionHandle;)Lorg/apache/bcel/verifier/structurals/Subroutine;
      StackMap locals:
      StackMap stack: org.apache.bcel.verifier.structurals.Subroutine
        66: checkcast org.apache.bcel.verifier.structurals.Subroutines$SubroutineImpl
            aload 11 /* element */
            invokevirtual org.apache.bcel.verifier.structurals.Subroutines$SubroutineImpl.addInstruction:(Lorg/apache/bcel/generic/InstructionHandle;)V
        67: .line 483
            aload 6 /* instructions_assigned */
            aload 11 /* element */
            invokeinterface java.util.Set.contains:(Ljava/lang/Object;)Z
            ifeq 71
        68: .line 484
            new org.apache.bcel.verifier.exc.StructuralCodeConstraintException
            dup
            new java.lang.StringBuilder
            dup
            ldc "Instruction '"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 11 /* element */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
        69: .line 485
            ldc "' is part of more than one subroutine (or of the top level and a subroutine)."
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        70: .line 484
            invokespecial org.apache.bcel.verifier.exc.StructuralCodeConstraintException.<init>:(Ljava/lang/String;)V
            athrow
        71: .line 487
      StackMap locals:
      StackMap stack:
            aload 6 /* instructions_assigned */
            aload 11 /* element */
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            pop
        end local 11 // org.apache.bcel.generic.InstructionHandle element
        72: .line 480
      StackMap locals: org.apache.bcel.verifier.structurals.Subroutines org.apache.bcel.generic.MethodGen int org.apache.bcel.generic.InstructionHandle[] org.apache.bcel.generic.CodeExceptionGen[] java.util.Set java.util.Set java.util.Map java.util.List org.apache.bcel.generic.InstructionHandle java.util.Iterator top int int org.apache.bcel.generic.InstructionHandle[]
      StackMap stack:
            iinc 12 1
      StackMap locals:
      StackMap stack:
        73: iload 12
            iload 13
            if_icmplt 62
        74: .line 490
            aload 9 /* actual */
            aload 3 /* all */
            iconst_0
            aaload
            if_acmpeq 76
        75: .line 491
            aload 0 /* this */
            aload 9 /* actual */
            invokevirtual org.apache.bcel.verifier.structurals.Subroutines.getSubroutine:(Lorg/apache/bcel/generic/InstructionHandle;)Lorg/apache/bcel/verifier/structurals/Subroutine;
            checkcast org.apache.bcel.verifier.structurals.Subroutines$SubroutineImpl
            invokevirtual org.apache.bcel.verifier.structurals.Subroutines$SubroutineImpl.setLeavingRET:()V
        end local 9 // org.apache.bcel.generic.InstructionHandle actual
        76: .line 441
      StackMap locals: org.apache.bcel.verifier.structurals.Subroutines org.apache.bcel.generic.MethodGen int org.apache.bcel.generic.InstructionHandle[] org.apache.bcel.generic.CodeExceptionGen[] java.util.Set java.util.Set java.util.Map java.util.List top java.util.Iterator
      StackMap stack:
            aload 10
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 33
        77: .line 495
            iload 2 /* enableJustIceCheck */
            ifeq 95
        78: .line 498
            aload 4 /* handlers */
            dup
            astore 12
            arraylength
            istore 11
            iconst_0
            istore 10
            goto 94
      StackMap locals: org.apache.bcel.verifier.structurals.Subroutines org.apache.bcel.generic.MethodGen int org.apache.bcel.generic.InstructionHandle[] org.apache.bcel.generic.CodeExceptionGen[] java.util.Set java.util.Set java.util.Map java.util.List top int int org.apache.bcel.generic.CodeExceptionGen[]
      StackMap stack:
        79: aload 12
            iload 10
            aaload
            astore 9 /* handler */
        start local 9 // org.apache.bcel.generic.CodeExceptionGen handler
        80: .line 499
            aload 9 /* handler */
            invokevirtual org.apache.bcel.generic.CodeExceptionGen.getStartPC:()Lorg/apache/bcel/generic/InstructionHandle;
            astore 13 /* _protected */
        start local 13 // org.apache.bcel.generic.InstructionHandle _protected
        81: .line 500
            goto 92
        82: .line 502
      StackMap locals: org.apache.bcel.verifier.structurals.Subroutines org.apache.bcel.generic.MethodGen int org.apache.bcel.generic.InstructionHandle[] org.apache.bcel.generic.CodeExceptionGen[] java.util.Set java.util.Set java.util.Map java.util.List org.apache.bcel.generic.CodeExceptionGen int int org.apache.bcel.generic.CodeExceptionGen[] org.apache.bcel.generic.InstructionHandle
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.bcel.verifier.structurals.Subroutines.subroutines:Ljava/util/Map;
            invokeinterface java.util.Map.values:()Ljava/util/Collection;
            invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
            astore 15
            goto 90
      StackMap locals: org.apache.bcel.verifier.structurals.Subroutines org.apache.bcel.generic.MethodGen int org.apache.bcel.generic.InstructionHandle[] org.apache.bcel.generic.CodeExceptionGen[] java.util.Set java.util.Set java.util.Map java.util.List org.apache.bcel.generic.CodeExceptionGen int int org.apache.bcel.generic.CodeExceptionGen[] org.apache.bcel.generic.InstructionHandle top java.util.Iterator
      StackMap stack:
        83: aload 15
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.apache.bcel.verifier.structurals.Subroutine
            astore 14 /* sub */
        start local 14 // org.apache.bcel.verifier.structurals.Subroutine sub
        84: .line 503
            aload 14 /* sub */
            aload 0 /* this */
            getfield org.apache.bcel.verifier.structurals.Subroutines.subroutines:Ljava/util/Map;
            aload 3 /* all */
            iconst_0
            aaload
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            if_acmpeq 90
        85: .line 504
            aload 14 /* sub */
            aload 13 /* _protected */
            invokeinterface org.apache.bcel.verifier.structurals.Subroutine.contains:(Lorg/apache/bcel/generic/InstructionHandle;)Z
            ifeq 90
        86: .line 505
            new org.apache.bcel.verifier.exc.StructuralCodeConstraintException
            dup
            new java.lang.StringBuilder
            dup
            ldc "Subroutine instruction '"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 13 /* _protected */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
        87: .line 506
            ldc "' is protected by an exception handler, '"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 9 /* handler */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
        88: .line 507
            ldc "'. This is forbidden by the JustIce verifier due to its clear definition of subroutines."
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        89: .line 505
            invokespecial org.apache.bcel.verifier.exc.StructuralCodeConstraintException.<init>:(Ljava/lang/String;)V
            athrow
        end local 14 // org.apache.bcel.verifier.structurals.Subroutine sub
        90: .line 502
      StackMap locals:
      StackMap stack:
            aload 15
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 83
        91: .line 511
            aload 13 /* _protected */
            invokevirtual org.apache.bcel.generic.InstructionHandle.getNext:()Lorg/apache/bcel/generic/InstructionHandle;
            astore 13 /* _protected */
        92: .line 500
      StackMap locals: org.apache.bcel.verifier.structurals.Subroutines org.apache.bcel.generic.MethodGen int org.apache.bcel.generic.InstructionHandle[] org.apache.bcel.generic.CodeExceptionGen[] java.util.Set java.util.Set java.util.Map java.util.List org.apache.bcel.generic.CodeExceptionGen int int org.apache.bcel.generic.CodeExceptionGen[] org.apache.bcel.generic.InstructionHandle
      StackMap stack:
            aload 13 /* _protected */
            aload 9 /* handler */
            invokevirtual org.apache.bcel.generic.CodeExceptionGen.getEndPC:()Lorg/apache/bcel/generic/InstructionHandle;
            invokevirtual org.apache.bcel.generic.InstructionHandle.getNext:()Lorg/apache/bcel/generic/InstructionHandle;
            if_acmpne 82
        end local 13 // org.apache.bcel.generic.InstructionHandle _protected
        end local 9 // org.apache.bcel.generic.CodeExceptionGen handler
        93: .line 498
            iinc 10 1
      StackMap locals: org.apache.bcel.verifier.structurals.Subroutines org.apache.bcel.generic.MethodGen int org.apache.bcel.generic.InstructionHandle[] org.apache.bcel.generic.CodeExceptionGen[] java.util.Set java.util.Set java.util.Map java.util.List top int int org.apache.bcel.generic.CodeExceptionGen[]
      StackMap stack:
        94: iload 10
            iload 11
            if_icmplt 79
        95: .line 522
      StackMap locals: org.apache.bcel.verifier.structurals.Subroutines org.apache.bcel.generic.MethodGen int org.apache.bcel.generic.InstructionHandle[] org.apache.bcel.generic.CodeExceptionGen[] java.util.Set java.util.Set java.util.Map java.util.List
      StackMap stack:
            aload 0 /* this */
            aload 0 /* this */
            invokevirtual org.apache.bcel.verifier.structurals.Subroutines.getTopLevel:()Lorg/apache/bcel/verifier/structurals/Subroutine;
            new java.util.HashSet
            dup
            invokespecial java.util.HashSet.<init>:()V
            invokevirtual org.apache.bcel.verifier.structurals.Subroutines.noRecursiveCalls:(Lorg/apache/bcel/verifier/structurals/Subroutine;Ljava/util/Set;)V
        96: .line 524
            return
        end local 8 // java.util.List Q
        end local 7 // java.util.Map colors
        end local 6 // java.util.Set instructions_assigned
        end local 5 // java.util.Set sub_leaders
        end local 4 // org.apache.bcel.generic.CodeExceptionGen[] handlers
        end local 3 // org.apache.bcel.generic.InstructionHandle[] all
        end local 2 // boolean enableJustIceCheck
        end local 1 // org.apache.bcel.generic.MethodGen mg
        end local 0 // org.apache.bcel.verifier.structurals.Subroutines this
      LocalVariableTable:
        Start  End  Slot                   Name  Signature
            0   97     0                   this  Lorg/apache/bcel/verifier/structurals/Subroutines;
            0   97     1                     mg  Lorg/apache/bcel/generic/MethodGen;
            0   97     2     enableJustIceCheck  Z
            3   97     3                    all  [Lorg/apache/bcel/generic/InstructionHandle;
            4   97     4               handlers  [Lorg/apache/bcel/generic/CodeExceptionGen;
            6   97     5            sub_leaders  Ljava/util/Set<Lorg/apache/bcel/generic/InstructionHandle;>;
            8   11     6                element  Lorg/apache/bcel/generic/InstructionHandle;
            9   11    10                   inst  Lorg/apache/bcel/generic/Instruction;
           15   18     6                 astore  Lorg/apache/bcel/generic/InstructionHandle;
           16   18     8                     sr  Lorg/apache/bcel/verifier/structurals/Subroutines$SubroutineImpl;
           23   27     6                element  Lorg/apache/bcel/generic/InstructionHandle;
           24   27    10                   inst  Lorg/apache/bcel/generic/Instruction;
           26   27    11                 leader  Lorg/apache/bcel/generic/InstructionHandle;
           30   97     6  instructions_assigned  Ljava/util/Set<Lorg/apache/bcel/generic/InstructionHandle;>;
           31   97     7                 colors  Ljava/util/Map<Lorg/apache/bcel/generic/InstructionHandle;Lorg/apache/bcel/verifier/structurals/Subroutines$ColourConstants;>;
           32   97     8                      Q  Ljava/util/List<Lorg/apache/bcel/generic/InstructionHandle;>;
           34   76     9                 actual  Lorg/apache/bcel/generic/InstructionHandle;
           36   37    11                element  Lorg/apache/bcel/generic/InstructionHandle;
           45   47    11                handler  Lorg/apache/bcel/generic/CodeExceptionGen;
           51   60    11                      u  Lorg/apache/bcel/generic/InstructionHandle;
           52   60    12             successors  [Lorg/apache/bcel/generic/InstructionHandle;
           54   57    13              successor  Lorg/apache/bcel/generic/InstructionHandle;
           63   72    11                element  Lorg/apache/bcel/generic/InstructionHandle;
           80   93     9                handler  Lorg/apache/bcel/generic/CodeExceptionGen;
           81   93    13             _protected  Lorg/apache/bcel/generic/InstructionHandle;
           84   90    14                    sub  Lorg/apache/bcel/verifier/structurals/Subroutine;
    MethodParameters:
                    Name  Flags
      mg                  final
      enableJustIceCheck  final

  private void noRecursiveCalls(org.apache.bcel.verifier.structurals.Subroutine, java.util.Set<java.lang.Integer>);
    descriptor: (Lorg/apache/bcel/verifier/structurals/Subroutine;Ljava/util/Set;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=10, args_size=3
        start local 0 // org.apache.bcel.verifier.structurals.Subroutines this
        start local 1 // org.apache.bcel.verifier.structurals.Subroutine sub
        start local 2 // java.util.Set set
         0: .line 538
            aload 1 /* sub */
            invokeinterface org.apache.bcel.verifier.structurals.Subroutine.subSubs:()[Lorg/apache/bcel/verifier/structurals/Subroutine;
            astore 3 /* subs */
        start local 3 // org.apache.bcel.verifier.structurals.Subroutine[] subs
         1: .line 540
            aload 3 /* subs */
            dup
            astore 7
            arraylength
            istore 6
            iconst_0
            istore 5
            goto 14
      StackMap locals: org.apache.bcel.verifier.structurals.Subroutines org.apache.bcel.verifier.structurals.Subroutine java.util.Set org.apache.bcel.verifier.structurals.Subroutine[] top int int org.apache.bcel.verifier.structurals.Subroutine[]
      StackMap stack:
         2: aload 7
            iload 5
            aaload
            astore 4 /* sub2 */
        start local 4 // org.apache.bcel.verifier.structurals.Subroutine sub2
         3: .line 541
            aload 4 /* sub2 */
            invokeinterface org.apache.bcel.verifier.structurals.Subroutine.getLeavingRET:()Lorg/apache/bcel/generic/InstructionHandle;
            invokevirtual org.apache.bcel.generic.InstructionHandle.getInstruction:()Lorg/apache/bcel/generic/Instruction;
            checkcast org.apache.bcel.generic.RET
            invokevirtual org.apache.bcel.generic.RET.getIndex:()I
            istore 8 /* index */
        start local 8 // int index
         4: .line 543
            aload 2 /* set */
            iload 8 /* index */
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            ifne 11
         5: .line 545
            aload 4 /* sub2 */
            checkcast org.apache.bcel.verifier.structurals.Subroutines$SubroutineImpl
            astore 9 /* si */
        start local 9 // org.apache.bcel.verifier.structurals.Subroutines$SubroutineImpl si
         6: .line 546
            new org.apache.bcel.verifier.exc.StructuralCodeConstraintException
            dup
            new java.lang.StringBuilder
            dup
            ldc "Subroutine with local variable '"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 9 /* si */
            getfield org.apache.bcel.verifier.structurals.Subroutines$SubroutineImpl.localVariable:I
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            ldc "', JSRs '"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
         7: .line 547
            aload 9 /* si */
            getfield org.apache.bcel.verifier.structurals.Subroutines$SubroutineImpl.theJSRs:Ljava/util/Set;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            ldc "', RET '"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 9 /* si */
            getfield org.apache.bcel.verifier.structurals.Subroutines$SubroutineImpl.theRET:Lorg/apache/bcel/generic/InstructionHandle;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
         8: .line 548
            ldc "' is called by a subroutine which uses the same local variable index as itself; maybe even a recursive call?"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
         9: .line 549
            ldc " JustIce's clean definition of a subroutine forbids both."
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        10: .line 546
            invokespecial org.apache.bcel.verifier.exc.StructuralCodeConstraintException.<init>:(Ljava/lang/String;)V
            athrow
        end local 9 // org.apache.bcel.verifier.structurals.Subroutines$SubroutineImpl si
        11: .line 552
      StackMap locals: org.apache.bcel.verifier.structurals.Subroutines org.apache.bcel.verifier.structurals.Subroutine java.util.Set org.apache.bcel.verifier.structurals.Subroutine[] org.apache.bcel.verifier.structurals.Subroutine int int org.apache.bcel.verifier.structurals.Subroutine[] int
      StackMap stack:
            aload 0 /* this */
            aload 4 /* sub2 */
            aload 2 /* set */
            invokevirtual org.apache.bcel.verifier.structurals.Subroutines.noRecursiveCalls:(Lorg/apache/bcel/verifier/structurals/Subroutine;Ljava/util/Set;)V
        12: .line 554
            aload 2 /* set */
            iload 8 /* index */
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            invokeinterface java.util.Set.remove:(Ljava/lang/Object;)Z
            pop
        end local 8 // int index
        end local 4 // org.apache.bcel.verifier.structurals.Subroutine sub2
        13: .line 540
            iinc 5 1
      StackMap locals: org.apache.bcel.verifier.structurals.Subroutines org.apache.bcel.verifier.structurals.Subroutine java.util.Set org.apache.bcel.verifier.structurals.Subroutine[] top int int org.apache.bcel.verifier.structurals.Subroutine[]
      StackMap stack:
        14: iload 5
            iload 6
            if_icmplt 2
        15: .line 556
            return
        end local 3 // org.apache.bcel.verifier.structurals.Subroutine[] subs
        end local 2 // java.util.Set set
        end local 1 // org.apache.bcel.verifier.structurals.Subroutine sub
        end local 0 // org.apache.bcel.verifier.structurals.Subroutines this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0   16     0   this  Lorg/apache/bcel/verifier/structurals/Subroutines;
            0   16     1    sub  Lorg/apache/bcel/verifier/structurals/Subroutine;
            0   16     2    set  Ljava/util/Set<Ljava/lang/Integer;>;
            1   16     3   subs  [Lorg/apache/bcel/verifier/structurals/Subroutine;
            3   13     4   sub2  Lorg/apache/bcel/verifier/structurals/Subroutine;
            4   13     8  index  I
            6   11     9     si  Lorg/apache/bcel/verifier/structurals/Subroutines$SubroutineImpl;
    Signature: (Lorg/apache/bcel/verifier/structurals/Subroutine;Ljava/util/Set<Ljava/lang/Integer;>;)V
    MethodParameters:
      Name  Flags
      sub   final
      set   final

  public org.apache.bcel.verifier.structurals.Subroutine getSubroutine(org.apache.bcel.generic.InstructionHandle);
    descriptor: (Lorg/apache/bcel/generic/InstructionHandle;)Lorg/apache/bcel/verifier/structurals/Subroutine;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // org.apache.bcel.verifier.structurals.Subroutines this
        start local 1 // org.apache.bcel.generic.InstructionHandle leader
         0: .line 567
            aload 0 /* this */
            getfield org.apache.bcel.verifier.structurals.Subroutines.subroutines:Ljava/util/Map;
            aload 1 /* leader */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast org.apache.bcel.verifier.structurals.Subroutine
            astore 2 /* ret */
        start local 2 // org.apache.bcel.verifier.structurals.Subroutine ret
         1: .line 569
            aload 2 /* ret */
            ifnonnull 5
         2: .line 570
            new org.apache.bcel.verifier.exc.AssertionViolatedException
            dup
         3: .line 571
            ldc "Subroutine requested for an InstructionHandle that is not a leader of a subroutine."
         4: .line 570
            invokespecial org.apache.bcel.verifier.exc.AssertionViolatedException.<init>:(Ljava/lang/String;)V
            athrow
         5: .line 574
      StackMap locals: org.apache.bcel.verifier.structurals.Subroutine
      StackMap stack:
            aload 2 /* ret */
            aload 0 /* this */
            getfield org.apache.bcel.verifier.structurals.Subroutines.TOPLEVEL:Lorg/apache/bcel/verifier/structurals/Subroutine;
            if_acmpne 7
         6: .line 575
            new org.apache.bcel.verifier.exc.AssertionViolatedException
            dup
            ldc "TOPLEVEL special subroutine requested; use getTopLevel()."
            invokespecial org.apache.bcel.verifier.exc.AssertionViolatedException.<init>:(Ljava/lang/String;)V
            athrow
         7: .line 578
      StackMap locals:
      StackMap stack:
            aload 2 /* ret */
            areturn
        end local 2 // org.apache.bcel.verifier.structurals.Subroutine ret
        end local 1 // org.apache.bcel.generic.InstructionHandle leader
        end local 0 // org.apache.bcel.verifier.structurals.Subroutines this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    8     0    this  Lorg/apache/bcel/verifier/structurals/Subroutines;
            0    8     1  leader  Lorg/apache/bcel/generic/InstructionHandle;
            1    8     2     ret  Lorg/apache/bcel/verifier/structurals/Subroutine;
    MethodParameters:
        Name  Flags
      leader  final

  public org.apache.bcel.verifier.structurals.Subroutine subroutineOf(org.apache.bcel.generic.InstructionHandle);
    descriptor: (Lorg/apache/bcel/generic/InstructionHandle;)Lorg/apache/bcel/verifier/structurals/Subroutine;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=4, args_size=2
        start local 0 // org.apache.bcel.verifier.structurals.Subroutines this
        start local 1 // org.apache.bcel.generic.InstructionHandle any
         0: .line 593
            aload 0 /* this */
            getfield org.apache.bcel.verifier.structurals.Subroutines.subroutines:Ljava/util/Map;
            invokeinterface java.util.Map.values:()Ljava/util/Collection;
            invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
            astore 3
            goto 4
      StackMap locals: org.apache.bcel.verifier.structurals.Subroutines org.apache.bcel.generic.InstructionHandle top java.util.Iterator
      StackMap stack:
         1: aload 3
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.apache.bcel.verifier.structurals.Subroutine
            astore 2 /* s */
        start local 2 // org.apache.bcel.verifier.structurals.Subroutine s
         2: .line 594
            aload 2 /* s */
            aload 1 /* any */
            invokeinterface org.apache.bcel.verifier.structurals.Subroutine.contains:(Lorg/apache/bcel/generic/InstructionHandle;)Z
            ifeq 4
         3: .line 595
            aload 2 /* s */
            areturn
        end local 2 // org.apache.bcel.verifier.structurals.Subroutine s
         4: .line 593
      StackMap locals:
      StackMap stack:
            aload 3
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 1
         5: .line 598
            getstatic java.lang.System.err:Ljava/io/PrintStream;
            new java.lang.StringBuilder
            dup
            ldc "DEBUG: Please verify '"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* any */
            iconst_1
            invokevirtual org.apache.bcel.generic.InstructionHandle.toString:(Z)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc "' lies in dead code."
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
         6: .line 599
            aconst_null
            areturn
        end local 1 // org.apache.bcel.generic.InstructionHandle any
        end local 0 // org.apache.bcel.verifier.structurals.Subroutines this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    7     0  this  Lorg/apache/bcel/verifier/structurals/Subroutines;
            0    7     1   any  Lorg/apache/bcel/generic/InstructionHandle;
            2    4     2     s  Lorg/apache/bcel/verifier/structurals/Subroutine;
    MethodParameters:
      Name  Flags
      any   final

  public org.apache.bcel.verifier.structurals.Subroutine getTopLevel();
    descriptor: ()Lorg/apache/bcel/verifier/structurals/Subroutine;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.apache.bcel.verifier.structurals.Subroutines this
         0: .line 614
            aload 0 /* this */
            getfield org.apache.bcel.verifier.structurals.Subroutines.TOPLEVEL:Lorg/apache/bcel/verifier/structurals/Subroutine;
            areturn
        end local 0 // org.apache.bcel.verifier.structurals.Subroutines this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/apache/bcel/verifier/structurals/Subroutines;

  private static org.apache.bcel.generic.InstructionHandle[] getSuccessors(org.apache.bcel.generic.InstructionHandle);
    descriptor: (Lorg/apache/bcel/generic/InstructionHandle;)[Lorg/apache/bcel/generic/InstructionHandle;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=5, locals=6, args_size=1
        start local 0 // org.apache.bcel.generic.InstructionHandle instruction
         0: .line 623
            iconst_0
            anewarray org.apache.bcel.generic.InstructionHandle
            astore 1 /* empty */
        start local 1 // org.apache.bcel.generic.InstructionHandle[] empty
         1: .line 624
            iconst_1
            anewarray org.apache.bcel.generic.InstructionHandle
            astore 2 /* single */
        start local 2 // org.apache.bcel.generic.InstructionHandle[] single
         2: .line 626
            aload 0 /* instruction */
            invokevirtual org.apache.bcel.generic.InstructionHandle.getInstruction:()Lorg/apache/bcel/generic/Instruction;
            astore 3 /* inst */
        start local 3 // org.apache.bcel.generic.Instruction inst
         3: .line 628
            aload 3 /* inst */
            instanceof org.apache.bcel.generic.RET
            ifeq 5
         4: .line 629
            aload 1 /* empty */
            areturn
         5: .line 633
      StackMap locals: org.apache.bcel.generic.InstructionHandle[] org.apache.bcel.generic.InstructionHandle[] org.apache.bcel.generic.Instruction
      StackMap stack:
            aload 3 /* inst */
            instanceof org.apache.bcel.generic.ReturnInstruction
            ifeq 7
         6: .line 634
            aload 1 /* empty */
            areturn
         7: .line 639
      StackMap locals:
      StackMap stack:
            aload 3 /* inst */
            instanceof org.apache.bcel.generic.ATHROW
            ifeq 9
         8: .line 640
            aload 1 /* empty */
            areturn
         9: .line 644
      StackMap locals:
      StackMap stack:
            aload 3 /* inst */
            instanceof org.apache.bcel.generic.JsrInstruction
            ifeq 12
        10: .line 645
            aload 2 /* single */
            iconst_0
            aload 0 /* instruction */
            invokevirtual org.apache.bcel.generic.InstructionHandle.getNext:()Lorg/apache/bcel/generic/InstructionHandle;
            aastore
        11: .line 646
            aload 2 /* single */
            areturn
        12: .line 649
      StackMap locals:
      StackMap stack:
            aload 3 /* inst */
            instanceof org.apache.bcel.generic.GotoInstruction
            ifeq 15
        13: .line 650
            aload 2 /* single */
            iconst_0
            aload 3 /* inst */
            checkcast org.apache.bcel.generic.GotoInstruction
            invokevirtual org.apache.bcel.generic.GotoInstruction.getTarget:()Lorg/apache/bcel/generic/InstructionHandle;
            aastore
        14: .line 651
            aload 2 /* single */
            areturn
        15: .line 654
      StackMap locals:
      StackMap stack:
            aload 3 /* inst */
            instanceof org.apache.bcel.generic.BranchInstruction
            ifeq 26
        16: .line 655
            aload 3 /* inst */
            instanceof org.apache.bcel.generic.Select
            ifeq 22
        17: .line 658
            aload 3 /* inst */
            checkcast org.apache.bcel.generic.Select
            invokevirtual org.apache.bcel.generic.Select.getTargets:()[Lorg/apache/bcel/generic/InstructionHandle;
            astore 4 /* matchTargets */
        start local 4 // org.apache.bcel.generic.InstructionHandle[] matchTargets
        18: .line 659
            aload 4 /* matchTargets */
            arraylength
            iconst_1
            iadd
            anewarray org.apache.bcel.generic.InstructionHandle
            astore 5 /* ret */
        start local 5 // org.apache.bcel.generic.InstructionHandle[] ret
        19: .line 660
            aload 5 /* ret */
            iconst_0
            aload 3 /* inst */
            checkcast org.apache.bcel.generic.Select
            invokevirtual org.apache.bcel.generic.Select.getTarget:()Lorg/apache/bcel/generic/InstructionHandle;
            aastore
        20: .line 661
            aload 4 /* matchTargets */
            iconst_0
            aload 5 /* ret */
            iconst_1
            aload 4 /* matchTargets */
            arraylength
            invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
        21: .line 662
            aload 5 /* ret */
            areturn
        end local 5 // org.apache.bcel.generic.InstructionHandle[] ret
        end local 4 // org.apache.bcel.generic.InstructionHandle[] matchTargets
        22: .line 664
      StackMap locals:
      StackMap stack:
            iconst_2
            anewarray org.apache.bcel.generic.InstructionHandle
            astore 4 /* pair */
        start local 4 // org.apache.bcel.generic.InstructionHandle[] pair
        23: .line 665
            aload 4 /* pair */
            iconst_0
            aload 0 /* instruction */
            invokevirtual org.apache.bcel.generic.InstructionHandle.getNext:()Lorg/apache/bcel/generic/InstructionHandle;
            aastore
        24: .line 666
            aload 4 /* pair */
            iconst_1
            aload 3 /* inst */
            checkcast org.apache.bcel.generic.BranchInstruction
            invokevirtual org.apache.bcel.generic.BranchInstruction.getTarget:()Lorg/apache/bcel/generic/InstructionHandle;
            aastore
        25: .line 667
            aload 4 /* pair */
            areturn
        end local 4 // org.apache.bcel.generic.InstructionHandle[] pair
        26: .line 671
      StackMap locals:
      StackMap stack:
            aload 2 /* single */
            iconst_0
            aload 0 /* instruction */
            invokevirtual org.apache.bcel.generic.InstructionHandle.getNext:()Lorg/apache/bcel/generic/InstructionHandle;
            aastore
        27: .line 672
            aload 2 /* single */
            areturn
        end local 3 // org.apache.bcel.generic.Instruction inst
        end local 2 // org.apache.bcel.generic.InstructionHandle[] single
        end local 1 // org.apache.bcel.generic.InstructionHandle[] empty
        end local 0 // org.apache.bcel.generic.InstructionHandle instruction
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0   28     0   instruction  Lorg/apache/bcel/generic/InstructionHandle;
            1   28     1         empty  [Lorg/apache/bcel/generic/InstructionHandle;
            2   28     2        single  [Lorg/apache/bcel/generic/InstructionHandle;
            3   28     3          inst  Lorg/apache/bcel/generic/Instruction;
           18   22     4  matchTargets  [Lorg/apache/bcel/generic/InstructionHandle;
           19   22     5           ret  [Lorg/apache/bcel/generic/InstructionHandle;
           23   26     4          pair  [Lorg/apache/bcel/generic/InstructionHandle;
    MethodParameters:
             Name  Flags
      instruction  final

  public java.lang.String toString();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // org.apache.bcel.verifier.structurals.Subroutines this
         0: .line 680
            new java.lang.StringBuilder
            dup
            ldc "---\n"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* this */
            getfield org.apache.bcel.verifier.structurals.Subroutines.subroutines:Ljava/util/Map;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            ldc "\n---\n"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            areturn
        end local 0 // org.apache.bcel.verifier.structurals.Subroutines this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/apache/bcel/verifier/structurals/Subroutines;
}
SourceFile: "Subroutines.java"
NestMembers:
  org.apache.bcel.verifier.structurals.Subroutines$ColourConstants  org.apache.bcel.verifier.structurals.Subroutines$SubroutineImpl
InnerClasses:
  private final ColourConstants = org.apache.bcel.verifier.structurals.Subroutines$ColourConstants of org.apache.bcel.verifier.structurals.Subroutines
  private SubroutineImpl = org.apache.bcel.verifier.structurals.Subroutines$SubroutineImpl of org.apache.bcel.verifier.structurals.Subroutines