public class com.oracle.truffle.llvm.launcher.LLVMLauncher extends org.graalvm.launcher.AbstractLanguageLauncher
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: com.oracle.truffle.llvm.launcher.LLVMLauncher
  super_class: org.graalvm.launcher.AbstractLanguageLauncher
{
  java.lang.String[] programArgs;
    descriptor: [Ljava/lang/String;
    flags: (0x0000) 

  java.io.File file;
    descriptor: Ljava/io/File;
    flags: (0x0000) 

  private org.graalvm.launcher.Launcher$VersionAction versionAction;
    descriptor: Lorg/graalvm/launcher/Launcher$VersionAction;
    flags: (0x0002) ACC_PRIVATE

  private com.oracle.truffle.llvm.launcher.LLVMLauncher$ToolchainAPIFunction toolchainAPI;
    descriptor: Lcom/oracle/truffle/llvm/launcher/LLVMLauncher$ToolchainAPIFunction;
    flags: (0x0002) ACC_PRIVATE

  private java.lang.String toolchainAPIArg;
    descriptor: Ljava/lang/String;
    flags: (0x0002) ACC_PRIVATE

  private static volatile int[] $SWITCH_TABLE$com$oracle$truffle$llvm$launcher$LLVMLauncher$ToolchainAPIFunction;
    descriptor: [I
    flags: (0x104a) ACC_PRIVATE, ACC_STATIC, ACC_VOLATILE, ACC_SYNTHETIC

  public void <init>();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // com.oracle.truffle.llvm.launcher.LLVMLauncher this
         0: .line 50
            aload 0 /* this */
            invokespecial org.graalvm.launcher.AbstractLanguageLauncher.<init>:()V
         1: .line 69
            aload 0 /* this */
            getstatic org.graalvm.launcher.Launcher$VersionAction.None:Lorg/graalvm/launcher/Launcher$VersionAction;
            putfield com.oracle.truffle.llvm.launcher.LLVMLauncher.versionAction:Lorg/graalvm/launcher/Launcher$VersionAction;
         2: .line 70
            aload 0 /* this */
            aconst_null
            putfield com.oracle.truffle.llvm.launcher.LLVMLauncher.toolchainAPI:Lcom/oracle/truffle/llvm/launcher/LLVMLauncher$ToolchainAPIFunction;
         3: .line 71
            aload 0 /* this */
            aconst_null
            putfield com.oracle.truffle.llvm.launcher.LLVMLauncher.toolchainAPIArg:Ljava/lang/String;
         4: .line 50
            return
        end local 0 // com.oracle.truffle.llvm.launcher.LLVMLauncher this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0  this  Lcom/oracle/truffle/llvm/launcher/LLVMLauncher;

  public static void main(java.lang.String[]);
    descriptor: ([Ljava/lang/String;)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // java.lang.String[] args
         0: .line 53
            new com.oracle.truffle.llvm.launcher.LLVMLauncher
            dup
            invokespecial com.oracle.truffle.llvm.launcher.LLVMLauncher.<init>:()V
            aload 0 /* args */
            invokevirtual com.oracle.truffle.llvm.launcher.LLVMLauncher.launch:([Ljava/lang/String;)V
         1: .line 54
            return
        end local 0 // java.lang.String[] args
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  args  [Ljava/lang/String;
    MethodParameters:
      Name  Flags
      args  

  protected void launch(org.graalvm.polyglot.Context$Builder);
    descriptor: (Lorg/graalvm/polyglot/Context$Builder;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.oracle.truffle.llvm.launcher.LLVMLauncher this
        start local 1 // org.graalvm.polyglot.Context$Builder contextBuilder
         0: .line 75
            aload 0 /* this */
            aload 1 /* contextBuilder */
            invokevirtual com.oracle.truffle.llvm.launcher.LLVMLauncher.execute:(Lorg/graalvm/polyglot/Context$Builder;)I
            invokestatic java.lang.System.exit:(I)V
         1: .line 76
            return
        end local 1 // org.graalvm.polyglot.Context$Builder contextBuilder
        end local 0 // com.oracle.truffle.llvm.launcher.LLVMLauncher this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    2     0            this  Lcom/oracle/truffle/llvm/launcher/LLVMLauncher;
            0    2     1  contextBuilder  Lorg/graalvm/polyglot/Context$Builder;
    MethodParameters:
                Name  Flags
      contextBuilder  

  protected java.lang.String getLanguageId();
    descriptor: ()Ljava/lang/String;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.oracle.truffle.llvm.launcher.LLVMLauncher this
         0: .line 80
            ldc "llvm"
            areturn
        end local 0 // com.oracle.truffle.llvm.launcher.LLVMLauncher this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/oracle/truffle/llvm/launcher/LLVMLauncher;

  protected java.util.List<java.lang.String> preprocessArguments(java.util.List<java.lang.String>, java.util.Map<java.lang.String, java.lang.String>);
    descriptor: (Ljava/util/List;Ljava/util/Map;)Ljava/util/List;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=4, locals=13, args_size=3
        start local 0 // com.oracle.truffle.llvm.launcher.LLVMLauncher this
        start local 1 // java.util.List arguments
        start local 2 // java.util.Map polyglotOptions
         0: .line 85
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 3 /* unrecognizedOptions */
        start local 3 // java.util.List unrecognizedOptions
         1: .line 86
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 4 /* path */
        start local 4 // java.util.List path
         2: .line 87
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 5 /* libs */
        start local 5 // java.util.List libs
         3: .line 89
            aload 1 /* arguments */
            invokeinterface java.util.List.listIterator:()Ljava/util/ListIterator;
            astore 6 /* iterator */
        start local 6 // java.util.ListIterator iterator
         4: .line 90
            goto 68
         5: .line 91
      StackMap locals: com.oracle.truffle.llvm.launcher.LLVMLauncher java.util.List java.util.Map java.util.List java.util.List java.util.List java.util.ListIterator
      StackMap stack:
            aload 6 /* iterator */
            invokeinterface java.util.ListIterator.next:()Ljava/lang/Object;
            checkcast java.lang.String
            astore 7 /* option */
        start local 7 // java.lang.String option
         6: .line 92
            aload 7 /* option */
            invokevirtual java.lang.String.length:()I
            iconst_2
            if_icmplt 7
            aload 7 /* option */
            ldc "-"
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
            ifne 9
         7: .line 93
      StackMap locals: java.lang.String
      StackMap stack:
            aload 6 /* iterator */
            invokeinterface java.util.ListIterator.previous:()Ljava/lang/Object;
            pop
         8: .line 94
            goto 69
         9: .line 97
      StackMap locals:
      StackMap stack:
            aload 7 /* option */
            dup
            astore 8
            invokevirtual java.lang.String.hashCode:()I
            lookupswitch { // 7
          -1041488984: 10
           -931199153: 11
                 1440: 12
            347858208: 13
           1193490967: 14
           1737589560: 15
           2126031881: 16
              default: 36
          }
      StackMap locals: java.lang.String
      StackMap stack:
        10: aload 8
            ldc "--show-version"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 17
            goto 36
      StackMap locals:
      StackMap stack:
        11: aload 8
            ldc "--print-toolchain-api-tool"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 24
            goto 36
      StackMap locals:
      StackMap stack:
        12: aload 8
            ldc "--"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 68
            goto 36
      StackMap locals:
      StackMap stack:
        13: aload 8
            ldc "--print-toolchain-api-identifier"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 34
            goto 36
      StackMap locals:
      StackMap stack:
        14: aload 8
            ldc "--print-toolchain-api-paths"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 29
            goto 36
      StackMap locals:
      StackMap stack:
        15: aload 8
            ldc "--version"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 19
            goto 36
      StackMap locals:
      StackMap stack:
        16: aload 8
            ldc "--print-toolchain-path"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 21
            goto 36
        17: .line 101
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getstatic org.graalvm.launcher.Launcher$VersionAction.PrintAndContinue:Lorg/graalvm/launcher/Launcher$VersionAction;
            putfield com.oracle.truffle.llvm.launcher.LLVMLauncher.versionAction:Lorg/graalvm/launcher/Launcher$VersionAction;
        18: .line 102
            goto 68
        19: .line 104
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getstatic org.graalvm.launcher.Launcher$VersionAction.PrintAndExit:Lorg/graalvm/launcher/Launcher$VersionAction;
            putfield com.oracle.truffle.llvm.launcher.LLVMLauncher.versionAction:Lorg/graalvm/launcher/Launcher$VersionAction;
        20: .line 105
            goto 68
        21: .line 107
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getstatic com.oracle.truffle.llvm.launcher.LLVMLauncher$ToolchainAPIFunction.PATHS:Lcom/oracle/truffle/llvm/launcher/LLVMLauncher$ToolchainAPIFunction;
            putfield com.oracle.truffle.llvm.launcher.LLVMLauncher.toolchainAPI:Lcom/oracle/truffle/llvm/launcher/LLVMLauncher$ToolchainAPIFunction;
        22: .line 108
            aload 0 /* this */
            ldc "PATH"
            putfield com.oracle.truffle.llvm.launcher.LLVMLauncher.toolchainAPIArg:Ljava/lang/String;
        23: .line 109
            goto 68
        24: .line 111
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getstatic com.oracle.truffle.llvm.launcher.LLVMLauncher$ToolchainAPIFunction.TOOL:Lcom/oracle/truffle/llvm/launcher/LLVMLauncher$ToolchainAPIFunction;
            putfield com.oracle.truffle.llvm.launcher.LLVMLauncher.toolchainAPI:Lcom/oracle/truffle/llvm/launcher/LLVMLauncher$ToolchainAPIFunction;
        25: .line 112
            aload 6 /* iterator */
            invokeinterface java.util.ListIterator.hasNext:()Z
            ifne 27
        26: .line 113
            aload 0 /* this */
            new java.lang.StringBuilder
            dup
            ldc "Missing argument for "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 7 /* option */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual com.oracle.truffle.llvm.launcher.LLVMLauncher.abort:(Ljava/lang/String;)Lorg/graalvm/launcher/Launcher$AbortException;
            athrow
        27: .line 115
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 6 /* iterator */
            invokeinterface java.util.ListIterator.next:()Ljava/lang/Object;
            checkcast java.lang.String
            putfield com.oracle.truffle.llvm.launcher.LLVMLauncher.toolchainAPIArg:Ljava/lang/String;
        28: .line 116
            goto 68
        29: .line 118
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getstatic com.oracle.truffle.llvm.launcher.LLVMLauncher$ToolchainAPIFunction.PATHS:Lcom/oracle/truffle/llvm/launcher/LLVMLauncher$ToolchainAPIFunction;
            putfield com.oracle.truffle.llvm.launcher.LLVMLauncher.toolchainAPI:Lcom/oracle/truffle/llvm/launcher/LLVMLauncher$ToolchainAPIFunction;
        30: .line 119
            aload 6 /* iterator */
            invokeinterface java.util.ListIterator.hasNext:()Z
            ifne 32
        31: .line 120
            aload 0 /* this */
            new java.lang.StringBuilder
            dup
            ldc "Missing argument for "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 7 /* option */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual com.oracle.truffle.llvm.launcher.LLVMLauncher.abort:(Ljava/lang/String;)Lorg/graalvm/launcher/Launcher$AbortException;
            athrow
        32: .line 122
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 6 /* iterator */
            invokeinterface java.util.ListIterator.next:()Ljava/lang/Object;
            checkcast java.lang.String
            putfield com.oracle.truffle.llvm.launcher.LLVMLauncher.toolchainAPIArg:Ljava/lang/String;
        33: .line 123
            goto 68
        34: .line 125
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getstatic com.oracle.truffle.llvm.launcher.LLVMLauncher$ToolchainAPIFunction.IDENTIFIER:Lcom/oracle/truffle/llvm/launcher/LLVMLauncher$ToolchainAPIFunction;
            putfield com.oracle.truffle.llvm.launcher.LLVMLauncher.toolchainAPI:Lcom/oracle/truffle/llvm/launcher/LLVMLauncher$ToolchainAPIFunction;
        35: .line 126
            goto 68
        36: .line 129
      StackMap locals:
      StackMap stack:
            aload 7 /* option */
            astore 9 /* optionName */
        start local 9 // java.lang.String optionName
        37: .line 131
            aload 7 /* option */
            bipush 61
            invokevirtual java.lang.String.indexOf:(I)I
            istore 11 /* equalsIndex */
        start local 11 // int equalsIndex
        38: .line 132
            iload 11 /* equalsIndex */
            ifle 42
        39: .line 133
            aload 7 /* option */
            iload 11 /* equalsIndex */
            iconst_1
            iadd
            invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
            astore 10 /* argument */
        start local 10 // java.lang.String argument
        40: .line 134
            aload 7 /* option */
            iconst_0
            iload 11 /* equalsIndex */
            invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
            astore 9 /* optionName */
        41: .line 135
            goto 46
        end local 10 // java.lang.String argument
      StackMap locals: com.oracle.truffle.llvm.launcher.LLVMLauncher java.util.List java.util.Map java.util.List java.util.List java.util.List java.util.ListIterator java.lang.String java.lang.String java.lang.String top int
      StackMap stack:
        42: aload 6 /* iterator */
            invokeinterface java.util.ListIterator.hasNext:()Z
            ifeq 45
        43: .line 136
            aload 6 /* iterator */
            invokeinterface java.util.ListIterator.next:()Ljava/lang/Object;
            checkcast java.lang.String
            astore 10 /* argument */
        start local 10 // java.lang.String argument
        44: .line 137
            goto 46
        end local 10 // java.lang.String argument
        45: .line 138
      StackMap locals:
      StackMap stack:
            aconst_null
            astore 10 /* argument */
        start local 10 // java.lang.String argument
        46: .line 140
      StackMap locals: com.oracle.truffle.llvm.launcher.LLVMLauncher java.util.List java.util.Map java.util.List java.util.List java.util.List java.util.ListIterator java.lang.String java.lang.String java.lang.String java.lang.String int
      StackMap stack:
            aload 9 /* optionName */
            dup
            astore 12
            invokevirtual java.lang.String.hashCode:()I
            lookupswitch { // 2
                 1471: 47
             43006181: 48
              default: 65
          }
      StackMap locals: java.lang.String
      StackMap stack:
        47: aload 12
            ldc "-L"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 49
            goto 65
      StackMap locals:
      StackMap stack:
        48: aload 12
            ldc "--lib"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 57
            goto 65
        49: .line 142
      StackMap locals:
      StackMap stack:
            aload 10 /* argument */
            ifnonnull 51
        50: .line 143
            aload 0 /* this */
            new java.lang.StringBuilder
            dup
            ldc "Missing argument for "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 9 /* optionName */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual com.oracle.truffle.llvm.launcher.LLVMLauncher.abort:(Ljava/lang/String;)Lorg/graalvm/launcher/Launcher$AbortException;
            athrow
        51: .line 145
      StackMap locals:
      StackMap stack:
            aload 4 /* path */
            aload 10 /* argument */
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        52: .line 146
            aload 6 /* iterator */
            invokeinterface java.util.ListIterator.remove:()V
        53: .line 147
            iload 11 /* equalsIndex */
            ifge 68
        54: .line 148
            aload 6 /* iterator */
            invokeinterface java.util.ListIterator.previous:()Ljava/lang/Object;
            pop
        55: .line 149
            aload 6 /* iterator */
            invokeinterface java.util.ListIterator.remove:()V
        56: .line 151
            goto 68
        57: .line 153
      StackMap locals:
      StackMap stack:
            aload 10 /* argument */
            ifnonnull 59
        58: .line 154
            aload 0 /* this */
            new java.lang.StringBuilder
            dup
            ldc "Missing argument for "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 9 /* optionName */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual com.oracle.truffle.llvm.launcher.LLVMLauncher.abort:(Ljava/lang/String;)Lorg/graalvm/launcher/Launcher$AbortException;
            athrow
        59: .line 156
      StackMap locals:
      StackMap stack:
            aload 5 /* libs */
            aload 10 /* argument */
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        60: .line 157
            aload 6 /* iterator */
            invokeinterface java.util.ListIterator.remove:()V
        61: .line 158
            iload 11 /* equalsIndex */
            ifge 68
        62: .line 159
            aload 6 /* iterator */
            invokeinterface java.util.ListIterator.previous:()Ljava/lang/Object;
            pop
        63: .line 160
            aload 6 /* iterator */
            invokeinterface java.util.ListIterator.remove:()V
        64: .line 162
            goto 68
        65: .line 165
      StackMap locals:
      StackMap stack:
            aload 3 /* unrecognizedOptions */
            aload 7 /* option */
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        66: .line 166
            iload 11 /* equalsIndex */
            ifge 68
            aload 10 /* argument */
            ifnull 68
        67: .line 167
            aload 6 /* iterator */
            invokeinterface java.util.ListIterator.previous:()Ljava/lang/Object;
            pop
        end local 11 // int equalsIndex
        end local 10 // java.lang.String argument
        end local 9 // java.lang.String optionName
        end local 7 // java.lang.String option
        68: .line 90
      StackMap locals: com.oracle.truffle.llvm.launcher.LLVMLauncher java.util.List java.util.Map java.util.List java.util.List java.util.List java.util.ListIterator
      StackMap stack:
            aload 6 /* iterator */
            invokeinterface java.util.ListIterator.hasNext:()Z
            ifne 5
        69: .line 175
      StackMap locals:
      StackMap stack:
            aload 4 /* path */
            invokeinterface java.util.List.isEmpty:()Z
            ifne 71
        70: .line 176
            aload 2 /* polyglotOptions */
            ldc "llvm.libraryPath"
            aload 4 /* path */
            invokeinterface java.util.List.stream:()Ljava/util/stream/Stream;
            ldc ":"
            invokestatic java.util.stream.Collectors.joining:(Ljava/lang/CharSequence;)Ljava/util/stream/Collector;
            invokeinterface java.util.stream.Stream.collect:(Ljava/util/stream/Collector;)Ljava/lang/Object;
            checkcast java.lang.String
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        71: .line 178
      StackMap locals:
      StackMap stack:
            aload 5 /* libs */
            invokeinterface java.util.List.isEmpty:()Z
            ifne 73
        72: .line 179
            aload 2 /* polyglotOptions */
            ldc "llvm.libraries"
            aload 5 /* libs */
            invokeinterface java.util.List.stream:()Ljava/util/stream/Stream;
            ldc ":"
            invokestatic java.util.stream.Collectors.joining:(Ljava/lang/CharSequence;)Ljava/util/stream/Collector;
            invokeinterface java.util.stream.Stream.collect:(Ljava/util/stream/Collector;)Ljava/lang/Object;
            checkcast java.lang.String
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        73: .line 183
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.oracle.truffle.llvm.launcher.LLVMLauncher.file:Ljava/io/File;
            ifnonnull 75
            aload 6 /* iterator */
            invokeinterface java.util.ListIterator.hasNext:()Z
            ifeq 75
        74: .line 184
            aload 0 /* this */
            aload 6 /* iterator */
            invokeinterface java.util.ListIterator.next:()Ljava/lang/Object;
            checkcast java.lang.String
            iconst_0
            anewarray java.lang.String
            invokestatic java.nio.file.Paths.get:(Ljava/lang/String;[Ljava/lang/String;)Ljava/nio/file/Path;
            invokeinterface java.nio.file.Path.toFile:()Ljava/io/File;
            putfield com.oracle.truffle.llvm.launcher.LLVMLauncher.file:Ljava/io/File;
        75: .line 188
      StackMap locals:
      StackMap stack:
            aload 1 /* arguments */
            aload 6 /* iterator */
            invokeinterface java.util.ListIterator.nextIndex:()I
            aload 1 /* arguments */
            invokeinterface java.util.List.size:()I
            invokeinterface java.util.List.subList:(II)Ljava/util/List;
            astore 7 /* programArgumentsList */
        start local 7 // java.util.List programArgumentsList
        76: .line 189
            aload 0 /* this */
            aload 7 /* programArgumentsList */
            aload 7 /* programArgumentsList */
            invokeinterface java.util.List.size:()I
            anewarray java.lang.String
            invokeinterface java.util.List.toArray:([Ljava/lang/Object;)[Ljava/lang/Object;
            checkcast java.lang.String[]
            putfield com.oracle.truffle.llvm.launcher.LLVMLauncher.programArgs:[Ljava/lang/String;
        77: .line 191
            aload 3 /* unrecognizedOptions */
            areturn
        end local 7 // java.util.List programArgumentsList
        end local 6 // java.util.ListIterator iterator
        end local 5 // java.util.List libs
        end local 4 // java.util.List path
        end local 3 // java.util.List unrecognizedOptions
        end local 2 // java.util.Map polyglotOptions
        end local 1 // java.util.List arguments
        end local 0 // com.oracle.truffle.llvm.launcher.LLVMLauncher this
      LocalVariableTable:
        Start  End  Slot                  Name  Signature
            0   78     0                  this  Lcom/oracle/truffle/llvm/launcher/LLVMLauncher;
            0   78     1             arguments  Ljava/util/List<Ljava/lang/String;>;
            0   78     2       polyglotOptions  Ljava/util/Map<Ljava/lang/String;Ljava/lang/String;>;
            1   78     3   unrecognizedOptions  Ljava/util/List<Ljava/lang/String;>;
            2   78     4                  path  Ljava/util/List<Ljava/lang/String;>;
            3   78     5                  libs  Ljava/util/List<Ljava/lang/String;>;
            4   78     6              iterator  Ljava/util/ListIterator<Ljava/lang/String;>;
            6   68     7                option  Ljava/lang/String;
           37   68     9            optionName  Ljava/lang/String;
           40   42    10              argument  Ljava/lang/String;
           44   45    10              argument  Ljava/lang/String;
           46   68    10              argument  Ljava/lang/String;
           38   68    11           equalsIndex  I
           76   78     7  programArgumentsList  Ljava/util/List<Ljava/lang/String;>;
    Signature: (Ljava/util/List<Ljava/lang/String;>;Ljava/util/Map<Ljava/lang/String;Ljava/lang/String;>;)Ljava/util/List<Ljava/lang/String;>;
    MethodParameters:
                 Name  Flags
      arguments        
      polyglotOptions  

  protected void validateArguments(java.util.Map<java.lang.String, java.lang.String>);
    descriptor: (Ljava/util/Map;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // com.oracle.truffle.llvm.launcher.LLVMLauncher this
        start local 1 // java.util.Map polyglotOptions
         0: .line 196
            aload 0 /* this */
            getfield com.oracle.truffle.llvm.launcher.LLVMLauncher.file:Ljava/io/File;
            ifnonnull 2
            aload 0 /* this */
            getfield com.oracle.truffle.llvm.launcher.LLVMLauncher.versionAction:Lorg/graalvm/launcher/Launcher$VersionAction;
            getstatic org.graalvm.launcher.Launcher$VersionAction.PrintAndExit:Lorg/graalvm/launcher/Launcher$VersionAction;
            if_acmpeq 2
            aload 0 /* this */
            getfield com.oracle.truffle.llvm.launcher.LLVMLauncher.toolchainAPI:Lcom/oracle/truffle/llvm/launcher/LLVMLauncher$ToolchainAPIFunction;
            ifnonnull 2
         1: .line 197
            aload 0 /* this */
            ldc "No bitcode file provided."
            bipush 6
            invokevirtual com.oracle.truffle.llvm.launcher.LLVMLauncher.abort:(Ljava/lang/String;I)Lorg/graalvm/launcher/Launcher$AbortException;
            athrow
         2: .line 199
      StackMap locals:
      StackMap stack:
            return
        end local 1 // java.util.Map polyglotOptions
        end local 0 // com.oracle.truffle.llvm.launcher.LLVMLauncher this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0    3     0             this  Lcom/oracle/truffle/llvm/launcher/LLVMLauncher;
            0    3     1  polyglotOptions  Ljava/util/Map<Ljava/lang/String;Ljava/lang/String;>;
    Signature: (Ljava/util/Map<Ljava/lang/String;Ljava/lang/String;>;)V
    MethodParameters:
                 Name  Flags
      polyglotOptions  

  protected void printHelp(org.graalvm.options.OptionCategory);
    descriptor: (Lorg/graalvm/options/OptionCategory;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.oracle.truffle.llvm.launcher.LLVMLauncher this
        start local 1 // org.graalvm.options.OptionCategory maxCategory
         0: .line 203
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            invokevirtual java.io.PrintStream.println:()V
         1: .line 204
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            ldc "Usage: lli [OPTION]... [FILE] [PROGRAM ARGS]"
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
         2: .line 205
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            ldc "Run LLVM bitcode files on the GraalVM's lli.\n"
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
         3: .line 206
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            ldc "Mandatory arguments to long options are mandatory for short options too.\n"
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
         4: .line 207
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            ldc "Options:"
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
         5: .line 208
            ldc "-L <path>"
            ldc "set path where lli searches for libraries"
            invokestatic com.oracle.truffle.llvm.launcher.LLVMLauncher.printOption:(Ljava/lang/String;Ljava/lang/String;)V
         6: .line 209
            ldc "--lib <libraries>"
            ldc "add library (*.bc or precompiled library *.so/*.dylib)"
            invokestatic com.oracle.truffle.llvm.launcher.LLVMLauncher.printOption:(Ljava/lang/String;Ljava/lang/String;)V
         7: .line 210
            ldc "--version"
            ldc "print the version and exit"
            invokestatic com.oracle.truffle.llvm.launcher.LLVMLauncher.printOption:(Ljava/lang/String;Ljava/lang/String;)V
         8: .line 211
            ldc "--show-version"
            ldc "print the version and continue"
            invokestatic com.oracle.truffle.llvm.launcher.LLVMLauncher.printOption:(Ljava/lang/String;Ljava/lang/String;)V
         9: .line 212
            ldc "--print-toolchain-path"
            ldc "print the toolchain path and exit (shortcut for `--print-toolchain-api-paths PATH`)"
            invokestatic com.oracle.truffle.llvm.launcher.LLVMLauncher.printOption:(Ljava/lang/String;Ljava/lang/String;)V
        10: .line 213
            ldc "--print-toolchain-api-tool <name>"
            ldc "print the location of a toolchain API tool and exit"
            invokestatic com.oracle.truffle.llvm.launcher.LLVMLauncher.printOption:(Ljava/lang/String;Ljava/lang/String;)V
        11: .line 214
            ldc "--print-toolchain-api-paths <name>"
            ldc "print toolchain API paths and exit"
            invokestatic com.oracle.truffle.llvm.launcher.LLVMLauncher.printOption:(Ljava/lang/String;Ljava/lang/String;)V
        12: .line 215
            ldc "--print-toolchain-api-identifier"
            ldc "print the toolchain API identifier and exit"
            invokestatic com.oracle.truffle.llvm.launcher.LLVMLauncher.printOption:(Ljava/lang/String;Ljava/lang/String;)V
        13: .line 216
            return
        end local 1 // org.graalvm.options.OptionCategory maxCategory
        end local 0 // com.oracle.truffle.llvm.launcher.LLVMLauncher this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   14     0         this  Lcom/oracle/truffle/llvm/launcher/LLVMLauncher;
            0   14     1  maxCategory  Lorg/graalvm/options/OptionCategory;
    MethodParameters:
             Name  Flags
      maxCategory  

  protected void collectArguments(java.util.Set<java.lang.String>);
    descriptor: (Ljava/util/Set;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=5, locals=2, args_size=2
        start local 0 // com.oracle.truffle.llvm.launcher.LLVMLauncher this
        start local 1 // java.util.Set args
         0: .line 220
            aload 1 /* args */
            bipush 8
            anewarray java.lang.String
            dup
            iconst_0
         1: .line 221
            ldc "-L"
            aastore
            dup
            iconst_1
            ldc "--lib"
            aastore
            dup
            iconst_2
         2: .line 222
            ldc "--version"
            aastore
            dup
            iconst_3
         3: .line 223
            ldc "--show-version"
            aastore
            dup
            iconst_4
         4: .line 224
            ldc "--print-toolchain-path"
            aastore
            dup
            iconst_5
         5: .line 225
            ldc "--print-toolchain-api-paths"
            aastore
            dup
            bipush 6
         6: .line 226
            ldc "--print-toolchain-api-tool"
            aastore
            dup
            bipush 7
         7: .line 227
            ldc "--print-toolchain-api-identifier"
            aastore
         8: .line 220
            invokestatic java.util.Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;
            invokeinterface java.util.Set.addAll:(Ljava/util/Collection;)Z
            pop
         9: .line 228
            return
        end local 1 // java.util.Set args
        end local 0 // com.oracle.truffle.llvm.launcher.LLVMLauncher this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   10     0  this  Lcom/oracle/truffle/llvm/launcher/LLVMLauncher;
            0   10     1  args  Ljava/util/Set<Ljava/lang/String;>;
    Signature: (Ljava/util/Set<Ljava/lang/String;>;)V
    MethodParameters:
      Name  Flags
      args  

  protected static void printOption(java.lang.String, java.lang.String);
    descriptor: (Ljava/lang/String;Ljava/lang/String;)V
    flags: (0x000c) ACC_PROTECTED, ACC_STATIC
    Code:
      stack=6, locals=3, args_size=2
        start local 0 // java.lang.String option
        start local 1 // java.lang.String description
         0: .line 232
            aload 0 /* option */
            invokevirtual java.lang.String.length:()I
            bipush 22
            if_icmplt 4
         1: .line 233
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            ldc "%s%s"
            iconst_2
            anewarray java.lang.Object
            dup
            iconst_0
            ldc "  "
            aastore
            dup
            iconst_1
            aload 0 /* option */
            aastore
            invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
         2: .line 234
            ldc ""
            astore 2 /* opt */
        start local 2 // java.lang.String opt
         3: .line 235
            goto 5
        end local 2 // java.lang.String opt
         4: .line 236
      StackMap locals:
      StackMap stack:
            aload 0 /* option */
            astore 2 /* opt */
        start local 2 // java.lang.String opt
         5: .line 238
      StackMap locals: java.lang.String
      StackMap stack:
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            ldc "  %-22s%s"
            iconst_2
            anewarray java.lang.Object
            dup
            iconst_0
            aload 2 /* opt */
            aastore
            dup
            iconst_1
            aload 1 /* description */
            aastore
            invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
         6: .line 239
            return
        end local 2 // java.lang.String opt
        end local 1 // java.lang.String description
        end local 0 // java.lang.String option
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    7     0       option  Ljava/lang/String;
            0    7     1  description  Ljava/lang/String;
            3    4     2          opt  Ljava/lang/String;
            5    7     2          opt  Ljava/lang/String;
    MethodParameters:
             Name  Flags
      option       
      description  

  protected int execute(org.graalvm.polyglot.Context$Builder);
    descriptor: (Lorg/graalvm/polyglot/Context$Builder;)I
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=6, locals=6, args_size=2
        start local 0 // com.oracle.truffle.llvm.launcher.LLVMLauncher this
        start local 1 // org.graalvm.polyglot.Context$Builder contextBuilder
         0: .line 242
            aload 1 /* contextBuilder */
            aload 0 /* this */
            invokevirtual com.oracle.truffle.llvm.launcher.LLVMLauncher.getLanguageId:()Ljava/lang/String;
            aload 0 /* this */
            getfield com.oracle.truffle.llvm.launcher.LLVMLauncher.programArgs:[Ljava/lang/String;
            invokevirtual org.graalvm.polyglot.Context$Builder.arguments:(Ljava/lang/String;[Ljava/lang/String;)Lorg/graalvm/polyglot/Context$Builder;
            pop
         1: .line 243
            aconst_null
            astore 2
            aconst_null
            astore 3
         2: aload 1 /* contextBuilder */
            invokevirtual org.graalvm.polyglot.Context$Builder.build:()Lorg/graalvm/polyglot/Context;
            astore 4 /* context */
        start local 4 // org.graalvm.polyglot.Context context
         3: .line 244
            aload 0 /* this */
            aload 0 /* this */
            getfield com.oracle.truffle.llvm.launcher.LLVMLauncher.versionAction:Lorg/graalvm/launcher/Launcher$VersionAction;
            aload 4 /* context */
            invokevirtual org.graalvm.polyglot.Context.getEngine:()Lorg/graalvm/polyglot/Engine;
            invokevirtual com.oracle.truffle.llvm.launcher.LLVMLauncher.runVersionAction:(Lorg/graalvm/launcher/Launcher$VersionAction;Lorg/graalvm/polyglot/Engine;)V
         4: .line 245
            aload 0 /* this */
            getfield com.oracle.truffle.llvm.launcher.LLVMLauncher.toolchainAPI:Lcom/oracle/truffle/llvm/launcher/LLVMLauncher$ToolchainAPIFunction;
            ifnull 8
         5: .line 246
            aload 0 /* this */
            aload 4 /* context */
            invokevirtual com.oracle.truffle.llvm.launcher.LLVMLauncher.printToolchainAPI:(Lorg/graalvm/polyglot/Context;)V
         6: .line 254
            aload 4 /* context */
            ifnull 7
            aload 4 /* context */
            invokevirtual org.graalvm.polyglot.Context.close:()V
         7: .line 247
      StackMap locals: java.lang.Throwable java.lang.Throwable org.graalvm.polyglot.Context
      StackMap stack:
            iconst_0
            ireturn
         8: .line 249
      StackMap locals:
      StackMap stack:
            aload 4 /* context */
            aload 0 /* this */
            invokevirtual com.oracle.truffle.llvm.launcher.LLVMLauncher.getLanguageId:()Ljava/lang/String;
            aload 0 /* this */
            getfield com.oracle.truffle.llvm.launcher.LLVMLauncher.file:Ljava/io/File;
            invokestatic org.graalvm.polyglot.Source.newBuilder:(Ljava/lang/String;Ljava/io/File;)Lorg/graalvm/polyglot/Source$Builder;
            invokevirtual org.graalvm.polyglot.Source$Builder.build:()Lorg/graalvm/polyglot/Source;
            invokevirtual org.graalvm.polyglot.Context.eval:(Lorg/graalvm/polyglot/Source;)Lorg/graalvm/polyglot/Value;
            astore 5 /* library */
        start local 5 // org.graalvm.polyglot.Value library
         9: .line 250
            aload 5 /* library */
            invokevirtual org.graalvm.polyglot.Value.canExecute:()Z
            ifne 11
        10: .line 251
            aload 0 /* this */
            ldc "no main function found"
            invokevirtual com.oracle.truffle.llvm.launcher.LLVMLauncher.abort:(Ljava/lang/String;)Lorg/graalvm/launcher/Launcher$AbortException;
            athrow
        11: .line 253
      StackMap locals: org.graalvm.polyglot.Value
      StackMap stack:
            aload 5 /* library */
            iconst_0
            anewarray java.lang.Object
            invokevirtual org.graalvm.polyglot.Value.execute:([Ljava/lang/Object;)Lorg/graalvm/polyglot/Value;
            invokevirtual org.graalvm.polyglot.Value.asInt:()I
        12: .line 254
            aload 4 /* context */
            ifnull 13
            aload 4 /* context */
            invokevirtual org.graalvm.polyglot.Context.close:()V
        13: .line 253
      StackMap locals:
      StackMap stack: int
            ireturn
        end local 5 // org.graalvm.polyglot.Value library
      StackMap locals: com.oracle.truffle.llvm.launcher.LLVMLauncher org.graalvm.polyglot.Context$Builder java.lang.Throwable java.lang.Throwable org.graalvm.polyglot.Context
      StackMap stack: java.lang.Throwable
        14: astore 2
        15: .line 254
            aload 4 /* context */
            ifnull 16
            aload 4 /* context */
            invokevirtual org.graalvm.polyglot.Context.close:()V
        end local 4 // org.graalvm.polyglot.Context context
      StackMap locals:
      StackMap stack:
        16: aload 2
            athrow
      StackMap locals:
      StackMap stack: java.lang.Throwable
        17: astore 3
            aload 2
            ifnonnull 18
            aload 3
            astore 2
            goto 19
      StackMap locals:
      StackMap stack:
        18: aload 2
            aload 3
            if_acmpeq 19
            aload 2
            aload 3
            invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
      StackMap locals:
      StackMap stack:
        19: aload 2
            athrow
      StackMap locals: com.oracle.truffle.llvm.launcher.LLVMLauncher org.graalvm.polyglot.Context$Builder
      StackMap stack: org.graalvm.polyglot.PolyglotException
        20: astore 2 /* e */
        start local 2 // org.graalvm.polyglot.PolyglotException e
        21: .line 255
            aload 2 /* e */
            invokevirtual org.graalvm.polyglot.PolyglotException.isExit:()Z
            ifeq 23
        22: .line 256
            aload 2 /* e */
            athrow
        23: .line 257
      StackMap locals: org.graalvm.polyglot.PolyglotException
      StackMap stack:
            aload 2 /* e */
            invokevirtual org.graalvm.polyglot.PolyglotException.isInternalError:()Z
            ifne 26
        24: .line 258
            aload 2 /* e */
            invokestatic com.oracle.truffle.llvm.launcher.LLVMLauncher.printStackTraceSkipTrailingHost:(Lorg/graalvm/polyglot/PolyglotException;)V
        25: .line 259
            iconst_1
            ireturn
        26: .line 261
      StackMap locals:
      StackMap stack:
            aload 2 /* e */
            athrow
        end local 2 // org.graalvm.polyglot.PolyglotException e
        27: .line 263
      StackMap locals: com.oracle.truffle.llvm.launcher.LLVMLauncher org.graalvm.polyglot.Context$Builder
      StackMap stack: java.io.IOException
            astore 2 /* e */
        start local 2 // java.io.IOException e
        28: .line 264
            aload 0 /* this */
            ldc "Error loading file '%s' (%s)"
            iconst_2
            anewarray java.lang.Object
            dup
            iconst_0
            aload 0 /* this */
            getfield com.oracle.truffle.llvm.launcher.LLVMLauncher.file:Ljava/io/File;
            aastore
            dup
            iconst_1
            aload 2 /* e */
            invokevirtual java.io.IOException.getMessage:()Ljava/lang/String;
            aastore
            invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
            invokevirtual com.oracle.truffle.llvm.launcher.LLVMLauncher.abort:(Ljava/lang/String;)Lorg/graalvm/launcher/Launcher$AbortException;
            athrow
        end local 2 // java.io.IOException e
        end local 1 // org.graalvm.polyglot.Context$Builder contextBuilder
        end local 0 // com.oracle.truffle.llvm.launcher.LLVMLauncher this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   29     0            this  Lcom/oracle/truffle/llvm/launcher/LLVMLauncher;
            0   29     1  contextBuilder  Lorg/graalvm/polyglot/Context$Builder;
            3   16     4         context  Lorg/graalvm/polyglot/Context;
            9   14     5         library  Lorg/graalvm/polyglot/Value;
           21   27     2               e  Lorg/graalvm/polyglot/PolyglotException;
           28   29     2               e  Ljava/io/IOException;
      Exception table:
        from    to  target  type
           3     6      14  any
           8    12      14  any
           2     7      17  any
           8    13      17  any
          14    17      17  any
           1     7      20  Class org.graalvm.polyglot.PolyglotException
           8    13      20  Class org.graalvm.polyglot.PolyglotException
          14    20      20  Class org.graalvm.polyglot.PolyglotException
           1     7      27  Class java.io.IOException
           8    13      27  Class java.io.IOException
          14    20      27  Class java.io.IOException
    MethodParameters:
                Name  Flags
      contextBuilder  

  private void printToolchainAPI(org.graalvm.polyglot.Context);
    descriptor: (Lorg/graalvm/polyglot/Context;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=5, args_size=2
        start local 0 // com.oracle.truffle.llvm.launcher.LLVMLauncher this
        start local 1 // org.graalvm.polyglot.Context context
         0: .line 269
            aload 1 /* context */
            aload 0 /* this */
            invokevirtual com.oracle.truffle.llvm.launcher.LLVMLauncher.getLanguageId:()Ljava/lang/String;
            invokevirtual org.graalvm.polyglot.Context.getBindings:(Ljava/lang/String;)Lorg/graalvm/polyglot/Value;
            astore 2 /* bindings */
        start local 2 // org.graalvm.polyglot.Value bindings
         1: .line 271
            invokestatic com.oracle.truffle.llvm.launcher.LLVMLauncher.$SWITCH_TABLE$com$oracle$truffle$llvm$launcher$LLVMLauncher$ToolchainAPIFunction:()[I
            aload 0 /* this */
            getfield com.oracle.truffle.llvm.launcher.LLVMLauncher.toolchainAPI:Lcom/oracle/truffle/llvm/launcher/LLVMLauncher$ToolchainAPIFunction;
            invokevirtual com.oracle.truffle.llvm.launcher.LLVMLauncher$ToolchainAPIFunction.ordinal:()I
            iaload
            tableswitch { // 1 - 3
                    1: 2
                    2: 4
                    3: 6
              default: 8
          }
         2: .line 273
      StackMap locals: org.graalvm.polyglot.Value
      StackMap stack:
            aload 2 /* bindings */
            ldc "toolchain_api_tool"
            invokevirtual org.graalvm.polyglot.Value.getMember:(Ljava/lang/String;)Lorg/graalvm/polyglot/Value;
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            aload 0 /* this */
            getfield com.oracle.truffle.llvm.launcher.LLVMLauncher.toolchainAPIArg:Ljava/lang/String;
            aastore
            invokevirtual org.graalvm.polyglot.Value.execute:([Ljava/lang/Object;)Lorg/graalvm/polyglot/Value;
            astore 3 /* result */
        start local 3 // org.graalvm.polyglot.Value result
         3: .line 274
            goto 9
        end local 3 // org.graalvm.polyglot.Value result
         4: .line 276
      StackMap locals:
      StackMap stack:
            aload 2 /* bindings */
            ldc "toolchain_api_paths"
            invokevirtual org.graalvm.polyglot.Value.getMember:(Ljava/lang/String;)Lorg/graalvm/polyglot/Value;
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            aload 0 /* this */
            getfield com.oracle.truffle.llvm.launcher.LLVMLauncher.toolchainAPIArg:Ljava/lang/String;
            aastore
            invokevirtual org.graalvm.polyglot.Value.execute:([Ljava/lang/Object;)Lorg/graalvm/polyglot/Value;
            astore 3 /* result */
        start local 3 // org.graalvm.polyglot.Value result
         5: .line 277
            goto 9
        end local 3 // org.graalvm.polyglot.Value result
         6: .line 279
      StackMap locals:
      StackMap stack:
            aload 2 /* bindings */
            ldc "toolchain_api_identifier"
            invokevirtual org.graalvm.polyglot.Value.getMember:(Ljava/lang/String;)Lorg/graalvm/polyglot/Value;
            iconst_0
            anewarray java.lang.Object
            invokevirtual org.graalvm.polyglot.Value.execute:([Ljava/lang/Object;)Lorg/graalvm/polyglot/Value;
            astore 3 /* result */
        start local 3 // org.graalvm.polyglot.Value result
         7: .line 280
            goto 9
        end local 3 // org.graalvm.polyglot.Value result
         8: .line 283
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            new java.lang.StringBuilder
            dup
            ldc "Unknown --print-toolchain-api function: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* this */
            getfield com.oracle.truffle.llvm.launcher.LLVMLauncher.toolchainAPI:Lcom/oracle/truffle/llvm/launcher/LLVMLauncher$ToolchainAPIFunction;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual com.oracle.truffle.llvm.launcher.LLVMLauncher.abort:(Ljava/lang/String;)Lorg/graalvm/launcher/Launcher$AbortException;
            athrow
        start local 3 // org.graalvm.polyglot.Value result
         9: .line 285
      StackMap locals: org.graalvm.polyglot.Value
      StackMap stack:
            aload 3 /* result */
            invokevirtual org.graalvm.polyglot.Value.isNull:()Z
            ifeq 11
        10: .line 286
            aload 0 /* this */
            new java.lang.StringBuilder
            dup
            ldc "Unknown entry for --print-toolchain-api-"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* this */
            getfield com.oracle.truffle.llvm.launcher.LLVMLauncher.toolchainAPI:Lcom/oracle/truffle/llvm/launcher/LLVMLauncher$ToolchainAPIFunction;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            ldc ": "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 0 /* this */
            getfield com.oracle.truffle.llvm.launcher.LLVMLauncher.toolchainAPIArg:Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual com.oracle.truffle.llvm.launcher.LLVMLauncher.abort:(Ljava/lang/String;)Lorg/graalvm/launcher/Launcher$AbortException;
            athrow
        11: .line 288
      StackMap locals:
      StackMap stack:
            aload 3 /* result */
            invokevirtual org.graalvm.polyglot.Value.hasArrayElements:()Z
            ifeq 18
        12: .line 289
            iconst_0
            istore 4 /* i */
        start local 4 // int i
        13: goto 16
        14: .line 290
      StackMap locals: int
      StackMap stack:
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            aload 3 /* result */
            iload 4 /* i */
            i2l
            invokevirtual org.graalvm.polyglot.Value.getArrayElement:(J)Lorg/graalvm/polyglot/Value;
            invokevirtual org.graalvm.polyglot.Value.asString:()Ljava/lang/String;
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
        15: .line 289
            iinc 4 /* i */ 1
      StackMap locals:
      StackMap stack:
        16: iload 4 /* i */
            i2l
            aload 3 /* result */
            invokevirtual org.graalvm.polyglot.Value.getArraySize:()J
            lcmp
            iflt 14
        end local 4 // int i
        17: .line 292
            goto 19
        18: .line 293
      StackMap locals:
      StackMap stack:
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            aload 3 /* result */
            invokevirtual org.graalvm.polyglot.Value.asString:()Ljava/lang/String;
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
        19: .line 295
      StackMap locals:
      StackMap stack:
            return
        end local 3 // org.graalvm.polyglot.Value result
        end local 2 // org.graalvm.polyglot.Value bindings
        end local 1 // org.graalvm.polyglot.Context context
        end local 0 // com.oracle.truffle.llvm.launcher.LLVMLauncher this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   20     0      this  Lcom/oracle/truffle/llvm/launcher/LLVMLauncher;
            0   20     1   context  Lorg/graalvm/polyglot/Context;
            1   20     2  bindings  Lorg/graalvm/polyglot/Value;
            3    4     3    result  Lorg/graalvm/polyglot/Value;
            5    6     3    result  Lorg/graalvm/polyglot/Value;
            7    8     3    result  Lorg/graalvm/polyglot/Value;
            9   20     3    result  Lorg/graalvm/polyglot/Value;
           13   17     4         i  I
    MethodParameters:
         Name  Flags
      context  

  private static void printStackTraceSkipTrailingHost(org.graalvm.polyglot.PolyglotException);
    descriptor: (Lorg/graalvm/polyglot/PolyglotException;)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=4, locals=4, args_size=1
        start local 0 // org.graalvm.polyglot.PolyglotException e
         0: .line 298
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 1 /* stackTrace */
        start local 1 // java.util.List stackTrace
         1: .line 299
            aload 0 /* e */
            invokevirtual org.graalvm.polyglot.PolyglotException.getPolyglotStackTrace:()Ljava/lang/Iterable;
            invokeinterface java.lang.Iterable.iterator:()Ljava/util/Iterator;
            astore 3
            goto 4
      StackMap locals: org.graalvm.polyglot.PolyglotException java.util.List top java.util.Iterator
      StackMap stack:
         2: aload 3
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.graalvm.polyglot.PolyglotException$StackFrame
            astore 2 /* s */
        start local 2 // org.graalvm.polyglot.PolyglotException$StackFrame s
         3: .line 300
            aload 1 /* stackTrace */
            aload 2 /* s */
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        end local 2 // org.graalvm.polyglot.PolyglotException$StackFrame s
         4: .line 299
      StackMap locals:
      StackMap stack:
            aload 3
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 2
         5: .line 303
            aload 1 /* stackTrace */
            aload 1 /* stackTrace */
            invokeinterface java.util.List.size:()I
            invokeinterface java.util.List.listIterator:(I)Ljava/util/ListIterator;
            astore 2 /* iterator */
        start local 2 // java.util.ListIterator iterator
         6: goto 10
         7: .line 304
      StackMap locals: org.graalvm.polyglot.PolyglotException java.util.List java.util.ListIterator
      StackMap stack:
            aload 2 /* iterator */
            invokeinterface java.util.ListIterator.previous:()Ljava/lang/Object;
            checkcast org.graalvm.polyglot.PolyglotException$StackFrame
            astore 3 /* s */
        start local 3 // org.graalvm.polyglot.PolyglotException$StackFrame s
         8: .line 305
            aload 3 /* s */
            invokevirtual org.graalvm.polyglot.PolyglotException$StackFrame.isHostFrame:()Z
            ifeq 11
         9: .line 306
            aload 2 /* iterator */
            invokeinterface java.util.ListIterator.remove:()V
        end local 3 // org.graalvm.polyglot.PolyglotException$StackFrame s
        10: .line 303
      StackMap locals:
      StackMap stack:
            aload 2 /* iterator */
            invokeinterface java.util.ListIterator.hasPrevious:()Z
            ifne 7
        end local 2 // java.util.ListIterator iterator
        11: .line 311
      StackMap locals:
      StackMap stack:
            getstatic java.lang.System.err:Ljava/io/PrintStream;
            aload 0 /* e */
            invokevirtual org.graalvm.polyglot.PolyglotException.isHostException:()Z
            ifeq 12
            aload 0 /* e */
            invokevirtual org.graalvm.polyglot.PolyglotException.asHostException:()Ljava/lang/Throwable;
            invokevirtual java.lang.Throwable.toString:()Ljava/lang/String;
            goto 13
      StackMap locals:
      StackMap stack: java.io.PrintStream
        12: aload 0 /* e */
            invokevirtual org.graalvm.polyglot.PolyglotException.getMessage:()Ljava/lang/String;
      StackMap locals: org.graalvm.polyglot.PolyglotException java.util.List
      StackMap stack: java.io.PrintStream java.lang.String
        13: invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
        14: .line 312
            aload 1 /* stackTrace */
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 3
            goto 17
      StackMap locals: org.graalvm.polyglot.PolyglotException java.util.List top java.util.Iterator
      StackMap stack:
        15: aload 3
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.graalvm.polyglot.PolyglotException$StackFrame
            astore 2 /* s */
        start local 2 // org.graalvm.polyglot.PolyglotException$StackFrame s
        16: .line 313
            getstatic java.lang.System.err:Ljava/io/PrintStream;
            new java.lang.StringBuilder
            dup
            ldc "\tat "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 2 /* s */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
        end local 2 // org.graalvm.polyglot.PolyglotException$StackFrame s
        17: .line 312
      StackMap locals:
      StackMap stack:
            aload 3
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 15
        18: .line 315
            return
        end local 1 // java.util.List stackTrace
        end local 0 // org.graalvm.polyglot.PolyglotException e
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   19     0           e  Lorg/graalvm/polyglot/PolyglotException;
            1   19     1  stackTrace  Ljava/util/List<Lorg/graalvm/polyglot/PolyglotException$StackFrame;>;
            3    4     2           s  Lorg/graalvm/polyglot/PolyglotException$StackFrame;
            6   11     2    iterator  Ljava/util/ListIterator<Lorg/graalvm/polyglot/PolyglotException$StackFrame;>;
            8   10     3           s  Lorg/graalvm/polyglot/PolyglotException$StackFrame;
           16   17     2           s  Lorg/graalvm/polyglot/PolyglotException$StackFrame;
    MethodParameters:
      Name  Flags
      e     

  static int[] $SWITCH_TABLE$com$oracle$truffle$llvm$launcher$LLVMLauncher$ToolchainAPIFunction();
    descriptor: ()[I
    flags: (0x1008) ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=3, locals=1, args_size=0
         0: .line 50
            getstatic com.oracle.truffle.llvm.launcher.LLVMLauncher.$SWITCH_TABLE$com$oracle$truffle$llvm$launcher$LLVMLauncher$ToolchainAPIFunction:[I
            dup
            ifnull 1
            areturn
      StackMap locals:
      StackMap stack: int[]
         1: pop
            invokestatic com.oracle.truffle.llvm.launcher.LLVMLauncher$ToolchainAPIFunction.values:()[Lcom/oracle/truffle/llvm/launcher/LLVMLauncher$ToolchainAPIFunction;
            arraylength
            newarray 10
            astore 0
         2: aload 0
            getstatic com.oracle.truffle.llvm.launcher.LLVMLauncher$ToolchainAPIFunction.IDENTIFIER:Lcom/oracle/truffle/llvm/launcher/LLVMLauncher$ToolchainAPIFunction;
            invokevirtual com.oracle.truffle.llvm.launcher.LLVMLauncher$ToolchainAPIFunction.ordinal:()I
            iconst_3
            iastore
         3: goto 5
      StackMap locals: int[]
      StackMap stack: java.lang.NoSuchFieldError
         4: pop
      StackMap locals:
      StackMap stack:
         5: aload 0
            getstatic com.oracle.truffle.llvm.launcher.LLVMLauncher$ToolchainAPIFunction.PATHS:Lcom/oracle/truffle/llvm/launcher/LLVMLauncher$ToolchainAPIFunction;
            invokevirtual com.oracle.truffle.llvm.launcher.LLVMLauncher$ToolchainAPIFunction.ordinal:()I
            iconst_2
            iastore
         6: goto 8
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
         7: pop
      StackMap locals:
      StackMap stack:
         8: aload 0
            getstatic com.oracle.truffle.llvm.launcher.LLVMLauncher$ToolchainAPIFunction.TOOL:Lcom/oracle/truffle/llvm/launcher/LLVMLauncher$ToolchainAPIFunction;
            invokevirtual com.oracle.truffle.llvm.launcher.LLVMLauncher$ToolchainAPIFunction.ordinal:()I
            iconst_1
            iastore
         9: goto 11
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        10: pop
      StackMap locals:
      StackMap stack:
        11: aload 0
            dup
            putstatic com.oracle.truffle.llvm.launcher.LLVMLauncher.$SWITCH_TABLE$com$oracle$truffle$llvm$launcher$LLVMLauncher$ToolchainAPIFunction:[I
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature
      Exception table:
        from    to  target  type
           2     3       4  Class java.lang.NoSuchFieldError
           5     6       7  Class java.lang.NoSuchFieldError
           8     9      10  Class java.lang.NoSuchFieldError
}
SourceFile: "LLVMLauncher.java"
NestMembers:
  com.oracle.truffle.llvm.launcher.LLVMLauncher$ToolchainAPIFunction
InnerClasses:
  private final ToolchainAPIFunction = com.oracle.truffle.llvm.launcher.LLVMLauncher$ToolchainAPIFunction of com.oracle.truffle.llvm.launcher.LLVMLauncher
  protected final AbortException = org.graalvm.launcher.Launcher$AbortException of org.graalvm.launcher.Launcher
  protected final VersionAction = org.graalvm.launcher.Launcher$VersionAction of org.graalvm.launcher.Launcher
  public final Builder = org.graalvm.polyglot.Context$Builder of org.graalvm.polyglot.Context
  public final StackFrame = org.graalvm.polyglot.PolyglotException$StackFrame of org.graalvm.polyglot.PolyglotException
  public Builder = org.graalvm.polyglot.Source$Builder of org.graalvm.polyglot.Source