public class org.graalvm.compiler.code.ObjdumpDisassemblerProvider implements org.graalvm.compiler.code.DisassemblerProvider
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: org.graalvm.compiler.code.ObjdumpDisassemblerProvider
  super_class: java.lang.Object
{
  private java.util.Map<java.lang.String, java.lang.Boolean> objdumpCache;
    descriptor: Ljava/util/Map;
    flags: (0x0002) ACC_PRIVATE
    Signature: Ljava/util/Map<Ljava/lang/String;Ljava/lang/Boolean;>;

  private static final java.util.regex.Pattern SAFE_SHELL_ARG;
    descriptor: Ljava/util/regex/Pattern;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=1, locals=0, args_size=0
         0: .line 193
            ldc "[A-Za-z0-9@%_\\-\\+=:,\\./]+"
            invokestatic java.util.regex.Pattern.compile:(Ljava/lang/String;)Ljava/util/regex/Pattern;
            putstatic org.graalvm.compiler.code.ObjdumpDisassemblerProvider.SAFE_SHELL_ARG:Ljava/util/regex/Pattern;
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public void <init>();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // org.graalvm.compiler.code.ObjdumpDisassemblerProvider this
         0: .line 63
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 75
            aload 0 /* this */
            new java.util.HashMap
            dup
            invokespecial java.util.HashMap.<init>:()V
            putfield org.graalvm.compiler.code.ObjdumpDisassemblerProvider.objdumpCache:Ljava/util/Map;
         2: .line 63
            return
        end local 0 // org.graalvm.compiler.code.ObjdumpDisassemblerProvider this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lorg/graalvm/compiler/code/ObjdumpDisassemblerProvider;

  private static java.lang.Process createProcess(java.lang.String[]);
    descriptor: ([Ljava/lang/String;)Ljava/lang/Process;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=3, locals=2, args_size=1
        start local 0 // java.lang.String[] cmd
         0: .line 78
            new java.lang.ProcessBuilder
            dup
            aload 0 /* cmd */
            invokespecial java.lang.ProcessBuilder.<init>:([Ljava/lang/String;)V
            astore 1 /* pb */
        start local 1 // java.lang.ProcessBuilder pb
         1: .line 80
            aload 1 /* pb */
            invokevirtual java.lang.ProcessBuilder.start:()Ljava/lang/Process;
         2: areturn
         3: .line 81
      StackMap locals: java.lang.String[] java.lang.ProcessBuilder
      StackMap stack: java.io.IOException
            pop
         4: .line 83
            aconst_null
            areturn
        end local 1 // java.lang.ProcessBuilder pb
        end local 0 // java.lang.String[] cmd
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0   cmd  [Ljava/lang/String;
            1    5     1    pb  Ljava/lang/ProcessBuilder;
      Exception table:
        from    to  target  type
           1     2       3  Class java.io.IOException
    MethodParameters:
      Name  Flags
      cmd   

  public boolean isAvailable(org.graalvm.compiler.options.OptionValues);
    descriptor: (Lorg/graalvm/compiler/options/OptionValues;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.graalvm.compiler.code.ObjdumpDisassemblerProvider this
        start local 1 // org.graalvm.compiler.options.OptionValues options
         0: .line 88
            aload 0 /* this */
            aload 1 /* options */
            invokevirtual org.graalvm.compiler.code.ObjdumpDisassemblerProvider.getObjdump:(Lorg/graalvm/compiler/options/OptionValues;)Ljava/lang/String;
            ifnull 1
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         1: iconst_0
            ireturn
        end local 1 // org.graalvm.compiler.options.OptionValues options
        end local 0 // org.graalvm.compiler.code.ObjdumpDisassemblerProvider this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    2     0     this  Lorg/graalvm/compiler/code/ObjdumpDisassemblerProvider;
            0    2     1  options  Lorg/graalvm/compiler/options/OptionValues;
    MethodParameters:
         Name  Flags
      options  

  public java.lang.String disassembleCompiledCode(org.graalvm.compiler.options.OptionValues, jdk.vm.ci.code.CodeCacheProvider, org.graalvm.compiler.code.CompilationResult);
    descriptor: (Lorg/graalvm/compiler/options/OptionValues;Ljdk/vm/ci/code/CodeCacheProvider;Lorg/graalvm/compiler/code/CompilationResult;)Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=27, args_size=4
        start local 0 // org.graalvm.compiler.code.ObjdumpDisassemblerProvider this
        start local 1 // org.graalvm.compiler.options.OptionValues options
        start local 2 // jdk.vm.ci.code.CodeCacheProvider codeCache
        start local 3 // org.graalvm.compiler.code.CompilationResult compResult
         0: .line 93
            aload 0 /* this */
            aload 1 /* options */
            invokevirtual org.graalvm.compiler.code.ObjdumpDisassemblerProvider.getObjdump:(Lorg/graalvm/compiler/options/OptionValues;)Ljava/lang/String;
            astore 4 /* objdump */
        start local 4 // java.lang.String objdump
         1: .line 94
            aload 4 /* objdump */
            ifnonnull 3
         2: .line 95
            aconst_null
            areturn
         3: .line 97
      StackMap locals: java.lang.String
      StackMap stack:
            aconst_null
            astore 5 /* tmp */
        start local 5 // java.io.File tmp
         4: .line 99
            ldc "compiledBinary"
            ldc ".bin"
            invokestatic java.io.File.createTempFile:(Ljava/lang/String;Ljava/lang/String;)Ljava/io/File;
            astore 5 /* tmp */
         5: .line 100
            aconst_null
            astore 6
            aconst_null
            astore 7
         6: new java.io.FileOutputStream
            dup
            aload 5 /* tmp */
            invokespecial java.io.FileOutputStream.<init>:(Ljava/io/File;)V
            astore 8 /* fos */
        start local 8 // java.io.FileOutputStream fos
         7: .line 101
            aload 8 /* fos */
            aload 3 /* compResult */
            invokevirtual org.graalvm.compiler.code.CompilationResult.getTargetCode:()[B
            invokevirtual java.io.FileOutputStream.write:([B)V
         8: .line 102
            aload 8 /* fos */
            ifnull 14
            aload 8 /* fos */
            invokevirtual java.io.FileOutputStream.close:()V
            goto 14
      StackMap locals: org.graalvm.compiler.code.ObjdumpDisassemblerProvider org.graalvm.compiler.options.OptionValues jdk.vm.ci.code.CodeCacheProvider org.graalvm.compiler.code.CompilationResult java.lang.String java.io.File java.lang.Throwable java.lang.Throwable java.io.FileOutputStream
      StackMap stack: java.lang.Throwable
         9: astore 6
            aload 8 /* fos */
            ifnull 10
            aload 8 /* fos */
            invokevirtual java.io.FileOutputStream.close:()V
        end local 8 // java.io.FileOutputStream fos
      StackMap locals:
      StackMap stack:
        10: aload 6
            athrow
      StackMap locals:
      StackMap stack: java.lang.Throwable
        11: astore 7
            aload 6
            ifnonnull 12
            aload 7
            astore 6
            goto 13
      StackMap locals:
      StackMap stack:
        12: aload 6
            aload 7
            if_acmpeq 13
            aload 6
            aload 7
            invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
      StackMap locals:
      StackMap stack:
        13: aload 6
            athrow
        14: .line 105
      StackMap locals:
      StackMap stack:
            invokestatic jdk.vm.ci.services.Services.getSavedProperties:()Ljava/util/Map;
            ldc "os.arch"
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.lang.String
            astore 7 /* arch */
        start local 7 // java.lang.String arch
        15: .line 106
            aload 7 /* arch */
            ldc "amd64"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 16
            aload 7 /* arch */
            ldc "x86_64"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 18
        16: .line 107
      StackMap locals: org.graalvm.compiler.code.ObjdumpDisassemblerProvider org.graalvm.compiler.options.OptionValues jdk.vm.ci.code.CodeCacheProvider org.graalvm.compiler.code.CompilationResult java.lang.String java.io.File top java.lang.String
      StackMap stack:
            bipush 9
            anewarray java.lang.String
            dup
            iconst_0
            aload 4 /* objdump */
            aastore
            dup
            iconst_1
            ldc "-D"
            aastore
            dup
            iconst_2
            ldc "-b"
            aastore
            dup
            iconst_3
            ldc "binary"
            aastore
            dup
            iconst_4
            ldc "-M"
            aastore
            dup
            iconst_5
            ldc "x86-64"
            aastore
            dup
            bipush 6
            ldc "-m"
            aastore
            dup
            bipush 7
            ldc "i386"
            aastore
            dup
            bipush 8
            aload 5 /* tmp */
            invokevirtual java.io.File.getAbsolutePath:()Ljava/lang/String;
            aastore
            astore 6 /* cmdline */
        start local 6 // java.lang.String[] cmdline
        17: .line 108
            goto 24
        end local 6 // java.lang.String[] cmdline
      StackMap locals:
      StackMap stack:
        18: aload 7 /* arch */
            ldc "aarch64"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 21
        19: .line 109
            bipush 7
            anewarray java.lang.String
            dup
            iconst_0
            aload 4 /* objdump */
            aastore
            dup
            iconst_1
            ldc "-D"
            aastore
            dup
            iconst_2
            ldc "-b"
            aastore
            dup
            iconst_3
            ldc "binary"
            aastore
            dup
            iconst_4
            ldc "-m"
            aastore
            dup
            iconst_5
            ldc "aarch64"
            aastore
            dup
            bipush 6
            aload 5 /* tmp */
            invokevirtual java.io.File.getAbsolutePath:()Ljava/lang/String;
            aastore
            astore 6 /* cmdline */
        start local 6 // java.lang.String[] cmdline
        20: .line 110
            goto 24
        end local 6 // java.lang.String[] cmdline
        21: .line 184
      StackMap locals:
      StackMap stack:
            aload 5 /* tmp */
            ifnull 23
        22: .line 185
            aload 5 /* tmp */
            invokevirtual java.io.File.delete:()Z
            pop
        23: .line 111
      StackMap locals:
      StackMap stack:
            aconst_null
            areturn
        start local 6 // java.lang.String[] cmdline
        24: .line 114
      StackMap locals: org.graalvm.compiler.code.ObjdumpDisassemblerProvider org.graalvm.compiler.options.OptionValues jdk.vm.ci.code.CodeCacheProvider org.graalvm.compiler.code.CompilationResult java.lang.String java.io.File java.lang.String[] java.lang.String
      StackMap stack:
            ldc " *(([0-9a-fA-F]+):\t.*)"
            invokestatic java.util.regex.Pattern.compile:(Ljava/lang/String;)Ljava/util/regex/Pattern;
            astore 8 /* p */
        start local 8 // java.util.regex.Pattern p
        25: .line 116
            aload 2 /* codeCache */
            invokeinterface jdk.vm.ci.code.CodeCacheProvider.getTarget:()Ljdk/vm/ci/code/TargetDescription;
            astore 9 /* target */
        start local 9 // jdk.vm.ci.code.TargetDescription target
        26: .line 117
            aload 2 /* codeCache */
            invokeinterface jdk.vm.ci.code.CodeCacheProvider.getRegisterConfig:()Ljdk/vm/ci/code/RegisterConfig;
            astore 10 /* regConfig */
        start local 10 // jdk.vm.ci.code.RegisterConfig regConfig
        27: .line 118
            aload 10 /* regConfig */
            invokeinterface jdk.vm.ci.code.RegisterConfig.getFrameRegister:()Ljdk/vm/ci/code/Register;
            astore 11 /* fp */
        start local 11 // jdk.vm.ci.code.Register fp
        28: .line 119
            new jdk.vm.ci.code.CodeUtil$DefaultRefMapFormatter
            dup
            aload 9 /* target */
            getfield jdk.vm.ci.code.TargetDescription.wordSize:I
            aload 11 /* fp */
            iconst_0
            invokespecial jdk.vm.ci.code.CodeUtil$DefaultRefMapFormatter.<init>:(ILjdk/vm/ci/code/Register;I)V
            astore 12 /* slotFormatter */
        start local 12 // jdk.vm.ci.code.CodeUtil$RefMapFormatter slotFormatter
        29: .line 121
            new java.util.HashMap
            dup
            invokespecial java.util.HashMap.<init>:()V
            astore 13 /* annotations */
        start local 13 // java.util.Map annotations
        30: .line 122
            aload 3 /* compResult */
            invokevirtual org.graalvm.compiler.code.CompilationResult.getDataPatches:()Ljava/util/List;
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 15
            goto 33
      StackMap locals: org.graalvm.compiler.code.ObjdumpDisassemblerProvider org.graalvm.compiler.options.OptionValues jdk.vm.ci.code.CodeCacheProvider org.graalvm.compiler.code.CompilationResult java.lang.String java.io.File java.lang.String[] java.lang.String java.util.regex.Pattern jdk.vm.ci.code.TargetDescription jdk.vm.ci.code.RegisterConfig jdk.vm.ci.code.Register jdk.vm.ci.code.CodeUtil$RefMapFormatter java.util.Map top java.util.Iterator
      StackMap stack:
        31: aload 15
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast jdk.vm.ci.code.site.DataPatch
            astore 14 /* site */
        start local 14 // jdk.vm.ci.code.site.DataPatch site
        32: .line 123
            aload 13 /* annotations */
            aload 14 /* site */
            getfield jdk.vm.ci.code.site.DataPatch.pcOffset:I
            new java.lang.StringBuilder
            dup
            ldc "{"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 14 /* site */
            getfield jdk.vm.ci.code.site.DataPatch.reference:Ljdk/vm/ci/code/site/Reference;
            invokevirtual java.lang.Object.toString:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc "}"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokestatic org.graalvm.compiler.code.ObjdumpDisassemblerProvider.putAnnotation:(Ljava/util/Map;ILjava/lang/String;)V
        end local 14 // jdk.vm.ci.code.site.DataPatch site
        33: .line 122
      StackMap locals:
      StackMap stack:
            aload 15
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 31
        34: .line 125
            aload 3 /* compResult */
            invokevirtual org.graalvm.compiler.code.CompilationResult.getMarks:()Ljava/util/List;
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 15
            goto 37
      StackMap locals:
      StackMap stack:
        35: aload 15
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.graalvm.compiler.code.CompilationResult$CodeMark
            astore 14 /* mark */
        start local 14 // org.graalvm.compiler.code.CompilationResult$CodeMark mark
        36: .line 126
            aload 13 /* annotations */
            aload 14 /* mark */
            getfield org.graalvm.compiler.code.CompilationResult$CodeMark.pcOffset:I
            aload 14 /* mark */
            getfield org.graalvm.compiler.code.CompilationResult$CodeMark.id:Lorg/graalvm/compiler/code/CompilationResult$MarkId;
            invokeinterface org.graalvm.compiler.code.CompilationResult$MarkId.getName:()Ljava/lang/String;
            invokestatic org.graalvm.compiler.code.ObjdumpDisassemblerProvider.putAnnotation:(Ljava/util/Map;ILjava/lang/String;)V
        end local 14 // org.graalvm.compiler.code.CompilationResult$CodeMark mark
        37: .line 125
      StackMap locals:
      StackMap stack:
            aload 15
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 35
        38: .line 128
            aload 3 /* compResult */
            invokevirtual org.graalvm.compiler.code.CompilationResult.getCodeAnnotations:()Ljava/util/List;
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 15
            goto 41
      StackMap locals:
      StackMap stack:
        39: aload 15
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.graalvm.compiler.code.CompilationResult$CodeAnnotation
            astore 14 /* a */
        start local 14 // org.graalvm.compiler.code.CompilationResult$CodeAnnotation a
        40: .line 129
            aload 13 /* annotations */
            aload 14 /* a */
            invokevirtual org.graalvm.compiler.code.CompilationResult$CodeAnnotation.getPosition:()I
            aload 14 /* a */
            invokevirtual org.graalvm.compiler.code.CompilationResult$CodeAnnotation.toString:()Ljava/lang/String;
            invokestatic org.graalvm.compiler.code.ObjdumpDisassemblerProvider.putAnnotation:(Ljava/util/Map;ILjava/lang/String;)V
        end local 14 // org.graalvm.compiler.code.CompilationResult$CodeAnnotation a
        41: .line 128
      StackMap locals:
      StackMap stack:
            aload 15
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 39
        42: .line 131
            aload 3 /* compResult */
            invokevirtual org.graalvm.compiler.code.CompilationResult.getInfopoints:()Ljava/util/List;
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 15
            goto 53
      StackMap locals:
      StackMap stack:
        43: aload 15
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast jdk.vm.ci.code.site.Infopoint
            astore 14 /* infopoint */
        start local 14 // jdk.vm.ci.code.site.Infopoint infopoint
        44: .line 132
            aload 14 /* infopoint */
            instanceof jdk.vm.ci.code.site.Call
            ifeq 50
        45: .line 133
            aload 14 /* infopoint */
            checkcast jdk.vm.ci.code.site.Call
            astore 16 /* call */
        start local 16 // jdk.vm.ci.code.site.Call call
        46: .line 134
            aload 16 /* call */
            getfield jdk.vm.ci.code.site.Call.debugInfo:Ljdk/vm/ci/code/DebugInfo;
            ifnull 48
        47: .line 135
            aload 13 /* annotations */
            aload 16 /* call */
            getfield jdk.vm.ci.code.site.Call.pcOffset:I
            aload 16 /* call */
            getfield jdk.vm.ci.code.site.Call.size:I
            iadd
            new java.lang.StringBuilder
            dup
            bipush 100
            invokespecial java.lang.StringBuilder.<init>:(I)V
            aload 16 /* call */
            getfield jdk.vm.ci.code.site.Call.debugInfo:Ljdk/vm/ci/code/DebugInfo;
            aload 12 /* slotFormatter */
            invokestatic jdk.vm.ci.code.CodeUtil.append:(Ljava/lang/StringBuilder;Ljdk/vm/ci/code/DebugInfo;Ljdk/vm/ci/code/CodeUtil$RefMapFormatter;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokestatic org.graalvm.compiler.code.ObjdumpDisassemblerProvider.putAnnotation:(Ljava/util/Map;ILjava/lang/String;)V
        48: .line 137
      StackMap locals: org.graalvm.compiler.code.ObjdumpDisassemblerProvider org.graalvm.compiler.options.OptionValues jdk.vm.ci.code.CodeCacheProvider org.graalvm.compiler.code.CompilationResult java.lang.String java.io.File java.lang.String[] java.lang.String java.util.regex.Pattern jdk.vm.ci.code.TargetDescription jdk.vm.ci.code.RegisterConfig jdk.vm.ci.code.Register jdk.vm.ci.code.CodeUtil$RefMapFormatter java.util.Map jdk.vm.ci.code.site.Infopoint java.util.Iterator jdk.vm.ci.code.site.Call
      StackMap stack:
            aload 13 /* annotations */
            aload 16 /* call */
            getfield jdk.vm.ci.code.site.Call.pcOffset:I
            new java.lang.StringBuilder
            dup
            ldc "{"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 2 /* codeCache */
            aload 16 /* call */
            invokeinterface jdk.vm.ci.code.CodeCacheProvider.getTargetName:(Ljdk/vm/ci/code/site/Call;)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc "}"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokestatic org.graalvm.compiler.code.ObjdumpDisassemblerProvider.putAnnotation:(Ljava/util/Map;ILjava/lang/String;)V
        end local 16 // jdk.vm.ci.code.site.Call call
        49: .line 138
            goto 53
        50: .line 139
      StackMap locals:
      StackMap stack:
            aload 14 /* infopoint */
            getfield jdk.vm.ci.code.site.Infopoint.debugInfo:Ljdk/vm/ci/code/DebugInfo;
            ifnull 52
        51: .line 140
            aload 13 /* annotations */
            aload 14 /* infopoint */
            getfield jdk.vm.ci.code.site.Infopoint.pcOffset:I
            new java.lang.StringBuilder
            dup
            bipush 100
            invokespecial java.lang.StringBuilder.<init>:(I)V
            aload 14 /* infopoint */
            getfield jdk.vm.ci.code.site.Infopoint.debugInfo:Ljdk/vm/ci/code/DebugInfo;
            aload 12 /* slotFormatter */
            invokestatic jdk.vm.ci.code.CodeUtil.append:(Ljava/lang/StringBuilder;Ljdk/vm/ci/code/DebugInfo;Ljdk/vm/ci/code/CodeUtil$RefMapFormatter;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokestatic org.graalvm.compiler.code.ObjdumpDisassemblerProvider.putAnnotation:(Ljava/util/Map;ILjava/lang/String;)V
        52: .line 142
      StackMap locals:
      StackMap stack:
            aload 13 /* annotations */
            aload 14 /* infopoint */
            getfield jdk.vm.ci.code.site.Infopoint.pcOffset:I
            new java.lang.StringBuilder
            dup
            ldc "{infopoint: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 14 /* infopoint */
            getfield jdk.vm.ci.code.site.Infopoint.reason:Ljdk/vm/ci/code/site/InfopointReason;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            ldc "}"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokestatic org.graalvm.compiler.code.ObjdumpDisassemblerProvider.putAnnotation:(Ljava/util/Map;ILjava/lang/String;)V
        end local 14 // jdk.vm.ci.code.site.Infopoint infopoint
        53: .line 131
      StackMap locals: org.graalvm.compiler.code.ObjdumpDisassemblerProvider org.graalvm.compiler.options.OptionValues jdk.vm.ci.code.CodeCacheProvider org.graalvm.compiler.code.CompilationResult java.lang.String java.io.File java.lang.String[] java.lang.String java.util.regex.Pattern jdk.vm.ci.code.TargetDescription jdk.vm.ci.code.RegisterConfig jdk.vm.ci.code.Register jdk.vm.ci.code.CodeUtil$RefMapFormatter java.util.Map top java.util.Iterator
      StackMap stack:
            aload 15
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 43
        54: .line 145
            aload 6 /* cmdline */
            invokestatic org.graalvm.compiler.code.ObjdumpDisassemblerProvider.createProcess:([Ljava/lang/String;)Ljava/lang/Process;
            astore 14 /* proc */
        start local 14 // java.lang.Process proc
        55: .line 146
            aload 14 /* proc */
            ifnonnull 59
        56: .line 184
            aload 5 /* tmp */
            ifnull 58
        57: .line 185
            aload 5 /* tmp */
            invokevirtual java.io.File.delete:()Z
            pop
        58: .line 147
      StackMap locals: org.graalvm.compiler.code.ObjdumpDisassemblerProvider org.graalvm.compiler.options.OptionValues jdk.vm.ci.code.CodeCacheProvider org.graalvm.compiler.code.CompilationResult java.lang.String java.io.File java.lang.String[] java.lang.String java.util.regex.Pattern jdk.vm.ci.code.TargetDescription jdk.vm.ci.code.RegisterConfig jdk.vm.ci.code.Register jdk.vm.ci.code.CodeUtil$RefMapFormatter java.util.Map java.lang.Process
      StackMap stack:
            aconst_null
            areturn
        59: .line 149
      StackMap locals:
      StackMap stack:
            aload 14 /* proc */
            invokevirtual java.lang.Process.getInputStream:()Ljava/io/InputStream;
            astore 15 /* is */
        start local 15 // java.io.InputStream is
        60: .line 150
            new java.lang.StringBuilder
            dup
            invokespecial java.lang.StringBuilder.<init>:()V
            astore 16 /* sb */
        start local 16 // java.lang.StringBuilder sb
        61: .line 152
            new java.io.InputStreamReader
            dup
            aload 15 /* is */
            invokespecial java.io.InputStreamReader.<init>:(Ljava/io/InputStream;)V
            astore 17 /* isr */
        start local 17 // java.io.InputStreamReader isr
        62: .line 153
            aconst_null
            astore 18
            aconst_null
            astore 19
        63: new java.io.BufferedReader
            dup
            aload 17 /* isr */
            invokespecial java.io.BufferedReader.<init>:(Ljava/io/Reader;)V
            astore 20 /* br */
        start local 20 // java.io.BufferedReader br
        64: .line 155
            goto 74
        start local 21 // java.lang.String line
        65: .line 156
      StackMap locals: org.graalvm.compiler.code.ObjdumpDisassemblerProvider org.graalvm.compiler.options.OptionValues jdk.vm.ci.code.CodeCacheProvider org.graalvm.compiler.code.CompilationResult java.lang.String java.io.File java.lang.String[] java.lang.String java.util.regex.Pattern jdk.vm.ci.code.TargetDescription jdk.vm.ci.code.RegisterConfig jdk.vm.ci.code.Register jdk.vm.ci.code.CodeUtil$RefMapFormatter java.util.Map java.lang.Process java.io.InputStream java.lang.StringBuilder java.io.InputStreamReader java.lang.Throwable java.lang.Throwable java.io.BufferedReader java.lang.String
      StackMap stack:
            aload 8 /* p */
            aload 21 /* line */
            invokevirtual java.util.regex.Pattern.matcher:(Ljava/lang/CharSequence;)Ljava/util/regex/Matcher;
            astore 22 /* m */
        start local 22 // java.util.regex.Matcher m
        66: .line 157
            aload 22 /* m */
            invokevirtual java.util.regex.Matcher.find:()Z
            ifeq 73
        67: .line 158
            aload 22 /* m */
            iconst_2
            invokevirtual java.util.regex.Matcher.group:(I)Ljava/lang/String;
            bipush 16
            invokestatic java.lang.Integer.parseInt:(Ljava/lang/String;I)I
            istore 23 /* address */
        start local 23 // int address
        68: .line 159
            aload 13 /* annotations */
            iload 23 /* address */
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.lang.String
            astore 24 /* annotation */
        start local 24 // java.lang.String annotation
        69: .line 160
            aload 24 /* annotation */
            ifnull 72
        70: .line 161
            aload 24 /* annotation */
            ldc "\n"
            ldc "\n; "
            invokevirtual java.lang.String.replace:(Ljava/lang/CharSequence;Ljava/lang/CharSequence;)Ljava/lang/String;
            astore 24 /* annotation */
        71: .line 162
            aload 16 /* sb */
            ldc "; "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 24 /* annotation */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            bipush 10
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            pop
        72: .line 164
      StackMap locals: java.util.regex.Matcher int java.lang.String
      StackMap stack:
            aload 22 /* m */
            ldc "0x$1"
            invokevirtual java.util.regex.Matcher.replaceAll:(Ljava/lang/String;)Ljava/lang/String;
            astore 21 /* line */
        end local 24 // java.lang.String annotation
        end local 23 // int address
        73: .line 166
      StackMap locals:
      StackMap stack:
            aload 16 /* sb */
            aload 21 /* line */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc "\n"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        end local 22 // java.util.regex.Matcher m
        end local 21 // java.lang.String line
        74: .line 155
      StackMap locals:
      StackMap stack:
            aload 20 /* br */
            invokevirtual java.io.BufferedReader.readLine:()Ljava/lang/String;
            dup
            astore 21 /* line */
        start local 21 // java.lang.String line
        75: ifnonnull 65
        end local 21 // java.lang.String line
        76: .line 168
            aload 20 /* br */
            ifnull 82
            aload 20 /* br */
            invokevirtual java.io.BufferedReader.close:()V
            goto 82
      StackMap locals:
      StackMap stack: java.lang.Throwable
        77: astore 18
            aload 20 /* br */
            ifnull 78
            aload 20 /* br */
            invokevirtual java.io.BufferedReader.close:()V
        end local 20 // java.io.BufferedReader br
      StackMap locals:
      StackMap stack:
        78: aload 18
            athrow
      StackMap locals:
      StackMap stack: java.lang.Throwable
        79: astore 19
            aload 18
            ifnonnull 80
            aload 19
            astore 18
            goto 81
      StackMap locals:
      StackMap stack:
        80: aload 18
            aload 19
            if_acmpeq 81
            aload 18
            aload 19
            invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
      StackMap locals:
      StackMap stack:
        81: aload 18
            athrow
        82: .line 169
      StackMap locals:
      StackMap stack:
            aconst_null
            astore 18
            aconst_null
            astore 19
        83: new java.io.BufferedReader
            dup
            new java.io.InputStreamReader
            dup
            aload 14 /* proc */
            invokevirtual java.lang.Process.getErrorStream:()Ljava/io/InputStream;
            invokespecial java.io.InputStreamReader.<init>:(Ljava/io/InputStream;)V
            invokespecial java.io.BufferedReader.<init>:(Ljava/io/Reader;)V
            astore 20 /* ebr */
        start local 20 // java.io.BufferedReader ebr
        84: .line 170
            aload 20 /* ebr */
            invokevirtual java.io.BufferedReader.readLine:()Ljava/lang/String;
            astore 21 /* errLine */
        start local 21 // java.lang.String errLine
        85: .line 171
            aload 21 /* errLine */
            ifnull 91
        86: .line 172
            getstatic java.lang.System.err:Ljava/io/PrintStream;
            new java.lang.StringBuilder
            dup
            ldc "Error output from executing: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 6 /* cmdline */
            invokedynamic apply()Ljava/util/function/Function;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)Ljava/lang/Object;
                  org/graalvm/compiler/code/ObjdumpDisassemblerProvider.lambda$0(Ljava/lang/String;)Ljava/lang/String; (6)
                  (Ljava/lang/String;)Ljava/lang/String;
            ldc " "
            invokestatic org.graalvm.util.CollectionsUtil.mapAndJoin:([Ljava/lang/Object;Ljava/util/function/Function;Ljava/lang/String;)Ljava/lang/String;
            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
        87: .line 173
            getstatic java.lang.System.err:Ljava/io/PrintStream;
            aload 21 /* errLine */
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
        88: .line 174
            goto 90
        89: .line 175
      StackMap locals: org.graalvm.compiler.code.ObjdumpDisassemblerProvider org.graalvm.compiler.options.OptionValues jdk.vm.ci.code.CodeCacheProvider org.graalvm.compiler.code.CompilationResult java.lang.String java.io.File java.lang.String[] java.lang.String java.util.regex.Pattern jdk.vm.ci.code.TargetDescription jdk.vm.ci.code.RegisterConfig jdk.vm.ci.code.Register jdk.vm.ci.code.CodeUtil$RefMapFormatter java.util.Map java.lang.Process java.io.InputStream java.lang.StringBuilder java.io.InputStreamReader java.lang.Throwable java.lang.Throwable java.io.BufferedReader java.lang.String
      StackMap stack:
            getstatic java.lang.System.err:Ljava/io/PrintStream;
            aload 21 /* errLine */
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
        90: .line 174
      StackMap locals:
      StackMap stack:
            aload 20 /* ebr */
            invokevirtual java.io.BufferedReader.readLine:()Ljava/lang/String;
            dup
            astore 21 /* errLine */
            ifnonnull 89
        end local 21 // java.lang.String errLine
        91: .line 178
      StackMap locals:
      StackMap stack:
            aload 20 /* ebr */
            ifnull 97
            aload 20 /* ebr */
            invokevirtual java.io.BufferedReader.close:()V
            goto 97
      StackMap locals:
      StackMap stack: java.lang.Throwable
        92: astore 18
            aload 20 /* ebr */
            ifnull 93
            aload 20 /* ebr */
            invokevirtual java.io.BufferedReader.close:()V
        end local 20 // java.io.BufferedReader ebr
      StackMap locals:
      StackMap stack:
        93: aload 18
            athrow
      StackMap locals:
      StackMap stack: java.lang.Throwable
        94: astore 19
            aload 18
            ifnonnull 95
            aload 19
            astore 18
            goto 96
      StackMap locals:
      StackMap stack:
        95: aload 18
            aload 19
            if_acmpeq 96
            aload 18
            aload 19
            invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
      StackMap locals:
      StackMap stack:
        96: aload 18
            athrow
        97: .line 179
      StackMap locals:
      StackMap stack:
            aload 16 /* sb */
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 26
        98: .line 184
            aload 5 /* tmp */
            ifnull 100
        99: .line 185
            aload 5 /* tmp */
            invokevirtual java.io.File.delete:()Z
            pop
       100: .line 179
      StackMap locals: org.graalvm.compiler.code.ObjdumpDisassemblerProvider org.graalvm.compiler.options.OptionValues jdk.vm.ci.code.CodeCacheProvider org.graalvm.compiler.code.CompilationResult java.lang.String java.io.File java.lang.String[] java.lang.String java.util.regex.Pattern jdk.vm.ci.code.TargetDescription jdk.vm.ci.code.RegisterConfig jdk.vm.ci.code.Register jdk.vm.ci.code.CodeUtil$RefMapFormatter java.util.Map java.lang.Process java.io.InputStream java.lang.StringBuilder java.io.InputStreamReader top top top top top top top top java.lang.String
      StackMap stack:
            aload 26
            areturn
        end local 17 // java.io.InputStreamReader isr
        end local 16 // java.lang.StringBuilder sb
        end local 15 // java.io.InputStream is
        end local 14 // java.lang.Process proc
        end local 13 // java.util.Map annotations
        end local 12 // jdk.vm.ci.code.CodeUtil$RefMapFormatter slotFormatter
        end local 11 // jdk.vm.ci.code.Register fp
        end local 10 // jdk.vm.ci.code.RegisterConfig regConfig
        end local 9 // jdk.vm.ci.code.TargetDescription target
        end local 8 // java.util.regex.Pattern p
        end local 7 // java.lang.String arch
        end local 6 // java.lang.String[] cmdline
       101: .line 180
      StackMap locals: org.graalvm.compiler.code.ObjdumpDisassemblerProvider org.graalvm.compiler.options.OptionValues jdk.vm.ci.code.CodeCacheProvider org.graalvm.compiler.code.CompilationResult java.lang.String java.io.File
      StackMap stack: java.io.IOException
            astore 6 /* e */
        start local 6 // java.io.IOException e
       102: .line 181
            aload 6 /* e */
            invokevirtual java.io.IOException.printStackTrace:()V
       103: .line 184
            aload 5 /* tmp */
            ifnull 105
       104: .line 185
            aload 5 /* tmp */
            invokevirtual java.io.File.delete:()Z
            pop
       105: .line 182
      StackMap locals: java.io.IOException
      StackMap stack:
            aconst_null
            areturn
        end local 6 // java.io.IOException e
       106: .line 183
      StackMap locals: org.graalvm.compiler.code.ObjdumpDisassemblerProvider org.graalvm.compiler.options.OptionValues jdk.vm.ci.code.CodeCacheProvider org.graalvm.compiler.code.CompilationResult java.lang.String java.io.File
      StackMap stack: java.lang.Throwable
            astore 25
       107: .line 184
            aload 5 /* tmp */
            ifnull 109
       108: .line 185
            aload 5 /* tmp */
            invokevirtual java.io.File.delete:()Z
            pop
       109: .line 187
      StackMap locals: org.graalvm.compiler.code.ObjdumpDisassemblerProvider org.graalvm.compiler.options.OptionValues jdk.vm.ci.code.CodeCacheProvider org.graalvm.compiler.code.CompilationResult java.lang.String java.io.File top top top top top top top top top top top top top top top top top top top java.lang.Throwable
      StackMap stack:
            aload 25
            athrow
        end local 5 // java.io.File tmp
        end local 4 // java.lang.String objdump
        end local 3 // org.graalvm.compiler.code.CompilationResult compResult
        end local 2 // jdk.vm.ci.code.CodeCacheProvider codeCache
        end local 1 // org.graalvm.compiler.options.OptionValues options
        end local 0 // org.graalvm.compiler.code.ObjdumpDisassemblerProvider this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0  110     0           this  Lorg/graalvm/compiler/code/ObjdumpDisassemblerProvider;
            0  110     1        options  Lorg/graalvm/compiler/options/OptionValues;
            0  110     2      codeCache  Ljdk/vm/ci/code/CodeCacheProvider;
            0  110     3     compResult  Lorg/graalvm/compiler/code/CompilationResult;
            1  110     4        objdump  Ljava/lang/String;
            4  110     5            tmp  Ljava/io/File;
            7   10     8            fos  Ljava/io/FileOutputStream;
           17   18     6        cmdline  [Ljava/lang/String;
           20   21     6        cmdline  [Ljava/lang/String;
           24  101     6        cmdline  [Ljava/lang/String;
           15  101     7           arch  Ljava/lang/String;
           25  101     8              p  Ljava/util/regex/Pattern;
           26  101     9         target  Ljdk/vm/ci/code/TargetDescription;
           27  101    10      regConfig  Ljdk/vm/ci/code/RegisterConfig;
           28  101    11             fp  Ljdk/vm/ci/code/Register;
           29  101    12  slotFormatter  Ljdk/vm/ci/code/CodeUtil$RefMapFormatter;
           30  101    13    annotations  Ljava/util/Map<Ljava/lang/Integer;Ljava/lang/String;>;
           32   33    14           site  Ljdk/vm/ci/code/site/DataPatch;
           36   37    14           mark  Lorg/graalvm/compiler/code/CompilationResult$CodeMark;
           40   41    14              a  Lorg/graalvm/compiler/code/CompilationResult$CodeAnnotation;
           44   53    14      infopoint  Ljdk/vm/ci/code/site/Infopoint;
           46   49    16           call  Ljdk/vm/ci/code/site/Call;
           55  101    14           proc  Ljava/lang/Process;
           60  101    15             is  Ljava/io/InputStream;
           61  101    16             sb  Ljava/lang/StringBuilder;
           62  101    17            isr  Ljava/io/InputStreamReader;
           64   78    20             br  Ljava/io/BufferedReader;
           65   74    21           line  Ljava/lang/String;
           75   76    21           line  Ljava/lang/String;
           66   74    22              m  Ljava/util/regex/Matcher;
           68   73    23        address  I
           69   73    24     annotation  Ljava/lang/String;
           84   93    20            ebr  Ljava/io/BufferedReader;
           85   91    21        errLine  Ljava/lang/String;
          102  106     6              e  Ljava/io/IOException;
      Exception table:
        from    to  target  type
           7     8       9  any
           6    11      11  any
          64    76      77  any
          63    79      79  any
          84    91      92  any
          83    94      94  any
           4    21     101  Class java.io.IOException
          24    56     101  Class java.io.IOException
          59    98     101  Class java.io.IOException
           4    21     106  any
          24    56     106  any
          59    98     106  any
         101   103     106  any
    MethodParameters:
            Name  Flags
      options     
      codeCache   
      compResult  

  public static java.lang.String quoteShellArg(java.lang.String);
    descriptor: (Ljava/lang/String;)Ljava/lang/String;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=2, args_size=1
        start local 0 // java.lang.String arg
         0: .line 199
            aload 0 /* arg */
            invokevirtual java.lang.String.isEmpty:()Z
            ifeq 2
         1: .line 200
            ldc "\"\""
            areturn
         2: .line 202
      StackMap locals:
      StackMap stack:
            getstatic org.graalvm.compiler.code.ObjdumpDisassemblerProvider.SAFE_SHELL_ARG:Ljava/util/regex/Pattern;
            aload 0 /* arg */
            invokevirtual java.util.regex.Pattern.matcher:(Ljava/lang/CharSequence;)Ljava/util/regex/Matcher;
            astore 1 /* m */
        start local 1 // java.util.regex.Matcher m
         3: .line 203
            aload 1 /* m */
            invokevirtual java.util.regex.Matcher.matches:()Z
            ifeq 5
         4: .line 204
            aload 0 /* arg */
            areturn
         5: .line 207
      StackMap locals: java.util.regex.Matcher
      StackMap stack:
            new java.lang.StringBuilder
            dup
            ldc "'"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* arg */
            ldc "'"
            ldc "'\"'\"'"
            invokevirtual java.lang.String.replace:(Ljava/lang/CharSequence;Ljava/lang/CharSequence;)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc "'"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            areturn
        end local 1 // java.util.regex.Matcher m
        end local 0 // java.lang.String arg
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    6     0   arg  Ljava/lang/String;
            3    6     1     m  Ljava/util/regex/Matcher;
    MethodParameters:
      Name  Flags
      arg   

  private java.lang.String getObjdump(org.graalvm.compiler.options.OptionValues);
    descriptor: (Lorg/graalvm/compiler/options/OptionValues;)Ljava/lang/String;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=15, args_size=2
        start local 0 // org.graalvm.compiler.code.ObjdumpDisassemblerProvider this
        start local 1 // org.graalvm.compiler.options.OptionValues options
         0: .line 215
            getstatic org.graalvm.compiler.code.ObjdumpDisassemblerProvider$Options.ObjdumpExecutables:Lorg/graalvm/compiler/options/OptionKey;
            aload 1 /* options */
            invokevirtual org.graalvm.compiler.options.OptionKey.getValue:(Lorg/graalvm/compiler/options/OptionValues;)Ljava/lang/Object;
            checkcast java.lang.String
            astore 2 /* candidates */
        start local 2 // java.lang.String candidates
         1: .line 216
            aload 2 /* candidates */
            ifnull 31
            aload 2 /* candidates */
            invokevirtual java.lang.String.isEmpty:()Z
            ifne 31
         2: .line 217
            aload 2 /* candidates */
            ldc ","
            invokevirtual java.lang.String.split:(Ljava/lang/String;)[Ljava/lang/String;
            dup
            astore 6
            arraylength
            istore 5
            iconst_0
            istore 4
            goto 30
      StackMap locals: org.graalvm.compiler.code.ObjdumpDisassemblerProvider org.graalvm.compiler.options.OptionValues java.lang.String top int int java.lang.String[]
      StackMap stack:
         3: aload 6
            iload 4
            aaload
            astore 3 /* candidate */
        start local 3 // java.lang.String candidate
         4: .line 219
            aload 0 /* this */
            getfield org.graalvm.compiler.code.ObjdumpDisassemblerProvider.objdumpCache:Ljava/util/Map;
            aload 3 /* candidate */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.lang.Boolean
            astore 7 /* cachedQuery */
        start local 7 // java.lang.Boolean cachedQuery
         5: .line 220
            aload 7 /* cachedQuery */
            ifnull 8
         6: .line 221
            aload 7 /* cachedQuery */
            invokevirtual java.lang.Boolean.booleanValue:()Z
            ifeq 29
         7: .line 222
            aload 3 /* candidate */
            areturn
         8: .line 229
      StackMap locals: org.graalvm.compiler.code.ObjdumpDisassemblerProvider org.graalvm.compiler.options.OptionValues java.lang.String java.lang.String int int java.lang.String[] java.lang.Boolean
      StackMap stack:
            iconst_2
            anewarray java.lang.String
            dup
            iconst_0
            aload 3 /* candidate */
            aastore
            dup
            iconst_1
            ldc "--version"
            aastore
            astore 8 /* cmd */
        start local 8 // java.lang.String[] cmd
         9: .line 230
            aload 8 /* cmd */
            invokestatic org.graalvm.compiler.code.ObjdumpDisassemblerProvider.createProcess:([Ljava/lang/String;)Ljava/lang/Process;
            astore 9 /* proc */
        start local 9 // java.lang.Process proc
        10: .line 231
            aload 9 /* proc */
            ifnonnull 13
        11: .line 233
            aload 0 /* this */
            getfield org.graalvm.compiler.code.ObjdumpDisassemblerProvider.objdumpCache:Ljava/util/Map;
            aload 3 /* candidate */
            getstatic java.lang.Boolean.FALSE:Ljava/lang/Boolean;
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        12: .line 234
            aconst_null
            areturn
        13: .line 236
      StackMap locals: java.lang.String[] java.lang.Process
      StackMap stack:
            aload 9 /* proc */
            invokevirtual java.lang.Process.getInputStream:()Ljava/io/InputStream;
            astore 10 /* is */
        start local 10 // java.io.InputStream is
        14: .line 237
            aload 9 /* proc */
            invokevirtual java.lang.Process.waitFor:()I
            istore 11 /* exitValue */
        start local 11 // int exitValue
        15: .line 238
            iload 11 /* exitValue */
            ifne 28
        16: .line 239
            aload 10 /* is */
            invokevirtual java.io.InputStream.available:()I
            newarray 8
            astore 12 /* buf */
        start local 12 // byte[] buf
        17: .line 240
            iconst_0
            istore 13 /* pos */
        start local 13 // int pos
        18: .line 241
            goto 21
        19: .line 242
      StackMap locals: org.graalvm.compiler.code.ObjdumpDisassemblerProvider org.graalvm.compiler.options.OptionValues java.lang.String java.lang.String int int java.lang.String[] java.lang.Boolean java.lang.String[] java.lang.Process java.io.InputStream int byte[] int
      StackMap stack:
            aload 10 /* is */
            aload 12 /* buf */
            iload 13 /* pos */
            aload 12 /* buf */
            arraylength
            iload 13 /* pos */
            isub
            invokevirtual java.io.InputStream.read:([BII)I
            istore 14 /* read */
        start local 14 // int read
        20: .line 243
            iload 13 /* pos */
            iload 14 /* read */
            iadd
            istore 13 /* pos */
        end local 14 // int read
        21: .line 241
      StackMap locals:
      StackMap stack:
            iload 13 /* pos */
            aload 12 /* buf */
            arraylength
            if_icmplt 19
        22: .line 245
            new java.lang.String
            dup
            aload 12 /* buf */
            invokespecial java.lang.String.<init>:([B)V
            astore 14 /* output */
        start local 14 // java.lang.String output
        23: .line 246
            aload 14 /* output */
            ldc "GNU objdump"
            invokevirtual java.lang.String.contains:(Ljava/lang/CharSequence;)Z
            ifeq 28
        24: .line 248
            aload 0 /* this */
            getfield org.graalvm.compiler.code.ObjdumpDisassemblerProvider.objdumpCache:Ljava/util/Map;
            aload 3 /* candidate */
            getstatic java.lang.Boolean.TRUE:Ljava/lang/Boolean;
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        25: .line 249
            aload 3 /* candidate */
        26: areturn
        end local 14 // java.lang.String output
        end local 13 // int pos
        end local 12 // byte[] buf
        end local 11 // int exitValue
        end local 10 // java.io.InputStream is
        end local 9 // java.lang.Process proc
        end local 8 // java.lang.String[] cmd
        27: .line 252
      StackMap locals: org.graalvm.compiler.code.ObjdumpDisassemblerProvider org.graalvm.compiler.options.OptionValues java.lang.String java.lang.String int int java.lang.String[] java.lang.Boolean
      StackMap stack: java.lang.Exception
            pop
        28: .line 255
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.graalvm.compiler.code.ObjdumpDisassemblerProvider.objdumpCache:Ljava/util/Map;
            aload 3 /* candidate */
            getstatic java.lang.Boolean.FALSE:Ljava/lang/Boolean;
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        end local 7 // java.lang.Boolean cachedQuery
        end local 3 // java.lang.String candidate
        29: .line 217
      StackMap locals: org.graalvm.compiler.code.ObjdumpDisassemblerProvider org.graalvm.compiler.options.OptionValues java.lang.String top int int java.lang.String[]
      StackMap stack:
            iinc 4 1
      StackMap locals:
      StackMap stack:
        30: iload 4
            iload 5
            if_icmplt 3
        31: .line 258
      StackMap locals: org.graalvm.compiler.code.ObjdumpDisassemblerProvider org.graalvm.compiler.options.OptionValues java.lang.String
      StackMap stack:
            aconst_null
            areturn
        end local 2 // java.lang.String candidates
        end local 1 // org.graalvm.compiler.options.OptionValues options
        end local 0 // org.graalvm.compiler.code.ObjdumpDisassemblerProvider this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   32     0         this  Lorg/graalvm/compiler/code/ObjdumpDisassemblerProvider;
            0   32     1      options  Lorg/graalvm/compiler/options/OptionValues;
            1   32     2   candidates  Ljava/lang/String;
            4   29     3    candidate  Ljava/lang/String;
            5   29     7  cachedQuery  Ljava/lang/Boolean;
            9   27     8          cmd  [Ljava/lang/String;
           10   27     9         proc  Ljava/lang/Process;
           14   27    10           is  Ljava/io/InputStream;
           15   27    11    exitValue  I
           17   27    12          buf  [B
           18   27    13          pos  I
           20   21    14         read  I
           23   27    14       output  Ljava/lang/String;
      Exception table:
        from    to  target  type
           8    12      27  Class java.io.IOException
          13    26      27  Class java.io.IOException
           8    12      27  Class java.lang.InterruptedException
          13    26      27  Class java.lang.InterruptedException
    MethodParameters:
         Name  Flags
      options  

  private static void putAnnotation(java.util.Map<java.lang.Integer, java.lang.String>, int, java.lang.String);
    descriptor: (Ljava/util/Map;ILjava/lang/String;)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=5, locals=4, args_size=3
        start local 0 // java.util.Map annotations
        start local 1 // int idx
        start local 2 // java.lang.String txt
         0: .line 262
            new java.lang.StringBuilder
            dup
            aload 0 /* annotations */
            iload 1 /* idx */
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            ldc ""
            invokeinterface java.util.Map.getOrDefault:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.lang.String
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc "\n"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 2 /* txt */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 3 /* newAnnotation */
        start local 3 // java.lang.String newAnnotation
         1: .line 263
            aload 0 /* annotations */
            iload 1 /* idx */
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            aload 3 /* newAnnotation */
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         2: .line 264
            return
        end local 3 // java.lang.String newAnnotation
        end local 2 // java.lang.String txt
        end local 1 // int idx
        end local 0 // java.util.Map annotations
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    3     0    annotations  Ljava/util/Map<Ljava/lang/Integer;Ljava/lang/String;>;
            0    3     1            idx  I
            0    3     2            txt  Ljava/lang/String;
            1    3     3  newAnnotation  Ljava/lang/String;
    Signature: (Ljava/util/Map<Ljava/lang/Integer;Ljava/lang/String;>;ILjava/lang/String;)V
    MethodParameters:
             Name  Flags
      annotations  
      idx          
      txt          

  public java.lang.String disassembleInstalledCode(jdk.vm.ci.code.CodeCacheProvider, org.graalvm.compiler.code.CompilationResult, jdk.vm.ci.code.InstalledCode);
    descriptor: (Ljdk/vm/ci/code/CodeCacheProvider;Lorg/graalvm/compiler/code/CompilationResult;Ljdk/vm/ci/code/InstalledCode;)Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=4, args_size=4
        start local 0 // org.graalvm.compiler.code.ObjdumpDisassemblerProvider this
        start local 1 // jdk.vm.ci.code.CodeCacheProvider codeCache
        start local 2 // org.graalvm.compiler.code.CompilationResult compResult
        start local 3 // jdk.vm.ci.code.InstalledCode code
         0: .line 268
            ldc "<unavailable>"
            areturn
        end local 3 // jdk.vm.ci.code.InstalledCode code
        end local 2 // org.graalvm.compiler.code.CompilationResult compResult
        end local 1 // jdk.vm.ci.code.CodeCacheProvider codeCache
        end local 0 // org.graalvm.compiler.code.ObjdumpDisassemblerProvider this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    1     0        this  Lorg/graalvm/compiler/code/ObjdumpDisassemblerProvider;
            0    1     1   codeCache  Ljdk/vm/ci/code/CodeCacheProvider;
            0    1     2  compResult  Lorg/graalvm/compiler/code/CompilationResult;
            0    1     3        code  Ljdk/vm/ci/code/InstalledCode;
    MethodParameters:
            Name  Flags
      codeCache   
      compResult  
      code        

  public java.lang.String getName();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.graalvm.compiler.code.ObjdumpDisassemblerProvider this
         0: .line 273
            ldc "objdump"
            areturn
        end local 0 // org.graalvm.compiler.code.ObjdumpDisassemblerProvider this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/graalvm/compiler/code/ObjdumpDisassemblerProvider;

  private static java.lang.String lambda$0(java.lang.String);
    descriptor: (Ljava/lang/String;)Ljava/lang/String;
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // java.lang.String e
         0: .line 172
            aload 0 /* e */
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokestatic org.graalvm.compiler.code.ObjdumpDisassemblerProvider.quoteShellArg:(Ljava/lang/String;)Ljava/lang/String;
            areturn
        end local 0 // java.lang.String e
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0     e  Ljava/lang/String;
}
SourceFile: "ObjdumpDisassemblerProvider.java"
NestMembers:
  org.graalvm.compiler.code.ObjdumpDisassemblerProvider$Options
InnerClasses:
  public final Lookup = java.lang.invoke.MethodHandles$Lookup of java.lang.invoke.MethodHandles
  public DefaultRefMapFormatter = jdk.vm.ci.code.CodeUtil$DefaultRefMapFormatter of jdk.vm.ci.code.CodeUtil
  public abstract RefMapFormatter = jdk.vm.ci.code.CodeUtil$RefMapFormatter of jdk.vm.ci.code.CodeUtil
  public abstract CodeAnnotation = org.graalvm.compiler.code.CompilationResult$CodeAnnotation of org.graalvm.compiler.code.CompilationResult
  public CodeMark = org.graalvm.compiler.code.CompilationResult$CodeMark of org.graalvm.compiler.code.CompilationResult
  public abstract MarkId = org.graalvm.compiler.code.CompilationResult$MarkId of org.graalvm.compiler.code.CompilationResult
  Options = org.graalvm.compiler.code.ObjdumpDisassemblerProvider$Options of org.graalvm.compiler.code.ObjdumpDisassemblerProvider
    RuntimeInvisibleAnnotations: 
      org.graalvm.compiler.serviceprovider.ServiceProvider(value = Lorg/graalvm/compiler/code/DisassemblerProvider;)