public final class com.oracle.truffle.llvm.parser.util.SymbolNameMangling
  minor version: 0
  major version: 59
  flags: flags: (0x0031) ACC_PUBLIC, ACC_FINAL, ACC_SUPER
  this_class: com.oracle.truffle.llvm.parser.util.SymbolNameMangling
  super_class: java.lang.Object
{
  private static final java.lang.String MANGLED_PREFIX;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "\u0001"

  private static final java.util.function.BiFunction<com.oracle.truffle.llvm.parser.model.enums.Linkage, java.lang.String, java.lang.String> DEFAULT_DEMANGLER;
    descriptor: Ljava/util/function/BiFunction;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    Signature: Ljava/util/function/BiFunction<Lcom/oracle/truffle/llvm/parser/model/enums/Linkage;Ljava/lang/String;Ljava/lang/String;>;

  private static final java.util.function.BiFunction<com.oracle.truffle.llvm.parser.model.enums.Linkage, java.lang.String, java.lang.String> DEMANGLE_ELF;
    descriptor: Ljava/util/function/BiFunction;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    Signature: Ljava/util/function/BiFunction<Lcom/oracle/truffle/llvm/parser/model/enums/Linkage;Ljava/lang/String;Ljava/lang/String;>;

  private static final java.util.function.BiFunction<com.oracle.truffle.llvm.parser.model.enums.Linkage, java.lang.String, java.lang.String> DEMANGLE_MIPS;
    descriptor: Ljava/util/function/BiFunction;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    Signature: Ljava/util/function/BiFunction<Lcom/oracle/truffle/llvm/parser/model/enums/Linkage;Ljava/lang/String;Ljava/lang/String;>;

  private static final java.util.function.BiFunction<com.oracle.truffle.llvm.parser.model.enums.Linkage, java.lang.String, java.lang.String> DEMANGLE_MACHO;
    descriptor: Ljava/util/function/BiFunction;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    Signature: Ljava/util/function/BiFunction<Lcom/oracle/truffle/llvm/parser/model/enums/Linkage;Ljava/lang/String;Ljava/lang/String;>;

  private static final java.util.regex.Pattern LAYOUT_MANGLING_PATTERN;
    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 68
            invokedynamic apply()Ljava/util/function/BiFunction;
              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;)Ljava/lang/Object;
                  com/oracle/truffle/llvm/parser/util/SymbolNameMangling.lambda$0(Lcom/oracle/truffle/llvm/parser/model/enums/Linkage;Ljava/lang/String;)Ljava/lang/String; (6)
                  (Lcom/oracle/truffle/llvm/parser/model/enums/Linkage;Ljava/lang/String;)Ljava/lang/String;
            putstatic com.oracle.truffle.llvm.parser.util.SymbolNameMangling.DEFAULT_DEMANGLER:Ljava/util/function/BiFunction;
         1: .line 70
            invokedynamic apply()Ljava/util/function/BiFunction;
              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;)Ljava/lang/Object;
                  com/oracle/truffle/llvm/parser/util/SymbolNameMangling.lambda$1(Lcom/oracle/truffle/llvm/parser/model/enums/Linkage;Ljava/lang/String;)Ljava/lang/String; (6)
                  (Lcom/oracle/truffle/llvm/parser/model/enums/Linkage;Ljava/lang/String;)Ljava/lang/String;
            putstatic com.oracle.truffle.llvm.parser.util.SymbolNameMangling.DEMANGLE_ELF:Ljava/util/function/BiFunction;
         2: .line 80
            invokedynamic apply()Ljava/util/function/BiFunction;
              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;)Ljava/lang/Object;
                  com/oracle/truffle/llvm/parser/util/SymbolNameMangling.lambda$2(Lcom/oracle/truffle/llvm/parser/model/enums/Linkage;Ljava/lang/String;)Ljava/lang/String; (6)
                  (Lcom/oracle/truffle/llvm/parser/model/enums/Linkage;Ljava/lang/String;)Ljava/lang/String;
            putstatic com.oracle.truffle.llvm.parser.util.SymbolNameMangling.DEMANGLE_MIPS:Ljava/util/function/BiFunction;
         3: .line 90
            invokedynamic apply()Ljava/util/function/BiFunction;
              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;)Ljava/lang/Object;
                  com/oracle/truffle/llvm/parser/util/SymbolNameMangling.lambda$3(Lcom/oracle/truffle/llvm/parser/model/enums/Linkage;Ljava/lang/String;)Ljava/lang/String; (6)
                  (Lcom/oracle/truffle/llvm/parser/model/enums/Linkage;Ljava/lang/String;)Ljava/lang/String;
            putstatic com.oracle.truffle.llvm.parser.util.SymbolNameMangling.DEMANGLE_MACHO:Ljava/util/function/BiFunction;
         4: .line 110
            ldc ".*m:(?<mangling>[\\w]).*"
            invokestatic java.util.regex.Pattern.compile:(Ljava/lang/String;)Ljava/util/regex/Pattern;
            putstatic com.oracle.truffle.llvm.parser.util.SymbolNameMangling.LAYOUT_MANGLING_PATTERN:Ljava/util/regex/Pattern;
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public void <init>();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.oracle.truffle.llvm.parser.util.SymbolNameMangling this
         0: .line 43
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
            return
        end local 0 // com.oracle.truffle.llvm.parser.util.SymbolNameMangling this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/oracle/truffle/llvm/parser/util/SymbolNameMangling;

  private static void demangle(java.util.List<? extends com.oracle.truffle.llvm.parser.model.GlobalSymbol>, java.util.function.BiFunction<com.oracle.truffle.llvm.parser.model.enums.Linkage, java.lang.String, java.lang.String>);
    descriptor: (Ljava/util/List;Ljava/util/function/BiFunction;)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=4, locals=5, args_size=2
        start local 0 // java.util.List list
        start local 1 // java.util.function.BiFunction demangler
         0: .line 48
            aload 0 /* list */
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 3
            goto 6
      StackMap locals: java.util.List java.util.function.BiFunction top java.util.Iterator
      StackMap stack:
         1: aload 3
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast com.oracle.truffle.llvm.parser.model.GlobalSymbol
            astore 2 /* symbol */
        start local 2 // com.oracle.truffle.llvm.parser.model.GlobalSymbol symbol
         2: .line 49
            aload 2 /* symbol */
            invokevirtual com.oracle.truffle.llvm.parser.model.GlobalSymbol.getName:()Ljava/lang/String;
            astore 4 /* name */
        start local 4 // java.lang.String name
         3: .line 51
            aload 4 /* name */
            ldc "\u0001"
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
            ifeq 5
         4: .line 52
            aload 1 /* demangler */
            aload 2 /* symbol */
            invokevirtual com.oracle.truffle.llvm.parser.model.GlobalSymbol.getLinkage:()Lcom/oracle/truffle/llvm/parser/model/enums/Linkage;
            aload 4 /* name */
            ldc "\u0001"
            invokevirtual java.lang.String.length:()I
            invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
            invokeinterface java.util.function.BiFunction.apply:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.lang.String
            astore 4 /* name */
         5: .line 55
      StackMap locals: java.util.List java.util.function.BiFunction com.oracle.truffle.llvm.parser.model.GlobalSymbol java.util.Iterator java.lang.String
      StackMap stack:
            aload 2 /* symbol */
            aload 4 /* name */
            invokevirtual com.oracle.truffle.llvm.parser.model.GlobalSymbol.setName:(Ljava/lang/String;)V
        end local 4 // java.lang.String name
        end local 2 // com.oracle.truffle.llvm.parser.model.GlobalSymbol symbol
         6: .line 48
      StackMap locals: java.util.List java.util.function.BiFunction top java.util.Iterator
      StackMap stack:
            aload 3
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 1
         7: .line 57
            return
        end local 1 // java.util.function.BiFunction demangler
        end local 0 // java.util.List list
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    8     0       list  Ljava/util/List<+Lcom/oracle/truffle/llvm/parser/model/GlobalSymbol;>;
            0    8     1  demangler  Ljava/util/function/BiFunction<Lcom/oracle/truffle/llvm/parser/model/enums/Linkage;Ljava/lang/String;Ljava/lang/String;>;
            2    6     2     symbol  Lcom/oracle/truffle/llvm/parser/model/GlobalSymbol;
            3    6     4       name  Ljava/lang/String;
    Signature: (Ljava/util/List<+Lcom/oracle/truffle/llvm/parser/model/GlobalSymbol;>;Ljava/util/function/BiFunction<Lcom/oracle/truffle/llvm/parser/model/enums/Linkage;Ljava/lang/String;Ljava/lang/String;>;)V
    MethodParameters:
           Name  Flags
      list       
      demangler  

  public static void demangleGlobals(com.oracle.truffle.llvm.parser.model.ModelModule);
    descriptor: (Lcom/oracle/truffle/llvm/parser/model/ModelModule;)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=2, args_size=1
        start local 0 // com.oracle.truffle.llvm.parser.model.ModelModule model
         0: .line 60
            aload 0 /* model */
            invokevirtual com.oracle.truffle.llvm.parser.model.ModelModule.getTargetDataLayout:()Lcom/oracle/truffle/llvm/parser/model/target/TargetDataLayout;
            invokestatic com.oracle.truffle.llvm.parser.util.SymbolNameMangling.getDemangler:(Lcom/oracle/truffle/llvm/parser/model/target/TargetDataLayout;)Ljava/util/function/BiFunction;
            astore 1 /* demangler */
        start local 1 // java.util.function.BiFunction demangler
         1: .line 62
            aload 0 /* model */
            invokevirtual com.oracle.truffle.llvm.parser.model.ModelModule.getGlobalVariables:()Ljava/util/List;
            aload 1 /* demangler */
            invokestatic com.oracle.truffle.llvm.parser.util.SymbolNameMangling.demangle:(Ljava/util/List;Ljava/util/function/BiFunction;)V
         2: .line 63
            aload 0 /* model */
            invokevirtual com.oracle.truffle.llvm.parser.model.ModelModule.getAliases:()Ljava/util/List;
            aload 1 /* demangler */
            invokestatic com.oracle.truffle.llvm.parser.util.SymbolNameMangling.demangle:(Ljava/util/List;Ljava/util/function/BiFunction;)V
         3: .line 64
            aload 0 /* model */
            invokevirtual com.oracle.truffle.llvm.parser.model.ModelModule.getDeclaredFunctions:()Ljava/util/List;
            aload 1 /* demangler */
            invokestatic com.oracle.truffle.llvm.parser.util.SymbolNameMangling.demangle:(Ljava/util/List;Ljava/util/function/BiFunction;)V
         4: .line 65
            aload 0 /* model */
            invokevirtual com.oracle.truffle.llvm.parser.model.ModelModule.getDefinedFunctions:()Ljava/util/List;
            aload 1 /* demangler */
            invokestatic com.oracle.truffle.llvm.parser.util.SymbolNameMangling.demangle:(Ljava/util/List;Ljava/util/function/BiFunction;)V
         5: .line 66
            return
        end local 1 // java.util.function.BiFunction demangler
        end local 0 // com.oracle.truffle.llvm.parser.model.ModelModule model
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    6     0      model  Lcom/oracle/truffle/llvm/parser/model/ModelModule;
            1    6     1  demangler  Ljava/util/function/BiFunction<Lcom/oracle/truffle/llvm/parser/model/enums/Linkage;Ljava/lang/String;Ljava/lang/String;>;
    MethodParameters:
       Name  Flags
      model  

  private static java.util.function.BiFunction<com.oracle.truffle.llvm.parser.model.enums.Linkage, java.lang.String, java.lang.String> getDemangler(com.oracle.truffle.llvm.parser.model.target.TargetDataLayout);
    descriptor: (Lcom/oracle/truffle/llvm/parser/model/target/TargetDataLayout;)Ljava/util/function/BiFunction;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=5, locals=4, args_size=1
        start local 0 // com.oracle.truffle.llvm.parser.model.target.TargetDataLayout targetDataLayout
         0: .line 113
            getstatic com.oracle.truffle.llvm.parser.util.SymbolNameMangling.LAYOUT_MANGLING_PATTERN:Ljava/util/regex/Pattern;
            aload 0 /* targetDataLayout */
            invokevirtual com.oracle.truffle.llvm.parser.model.target.TargetDataLayout.getDataLayout:()Ljava/lang/String;
            invokevirtual java.util.regex.Pattern.matcher:(Ljava/lang/CharSequence;)Ljava/util/regex/Matcher;
            astore 1 /* matcher */
        start local 1 // java.util.regex.Matcher matcher
         1: .line 114
            aload 1 /* matcher */
            invokevirtual java.util.regex.Matcher.matches:()Z
            ifeq 11
         2: .line 115
            aload 1 /* matcher */
            ldc "mangling"
            invokevirtual java.util.regex.Matcher.group:(Ljava/lang/String;)Ljava/lang/String;
            astore 2 /* mangling */
        start local 2 // java.lang.String mangling
         3: .line 116
            aload 2 /* mangling */
            dup
            astore 3
            invokevirtual java.lang.String.hashCode:()I
            lookupswitch { // 3
                  101: 4
                  109: 5
                  111: 6
              default: 10
          }
      StackMap locals: java.util.regex.Matcher java.lang.String java.lang.String
      StackMap stack:
         4: aload 3
            ldc "e"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 7
            goto 10
      StackMap locals:
      StackMap stack:
         5: aload 3
            ldc "m"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 8
            goto 10
      StackMap locals:
      StackMap stack:
         6: aload 3
            ldc "o"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 9
            goto 10
         7: .line 118
      StackMap locals:
      StackMap stack:
            getstatic com.oracle.truffle.llvm.parser.util.SymbolNameMangling.DEMANGLE_ELF:Ljava/util/function/BiFunction;
            areturn
         8: .line 120
      StackMap locals:
      StackMap stack:
            getstatic com.oracle.truffle.llvm.parser.util.SymbolNameMangling.DEMANGLE_MIPS:Ljava/util/function/BiFunction;
            areturn
         9: .line 122
      StackMap locals:
      StackMap stack:
            getstatic com.oracle.truffle.llvm.parser.util.SymbolNameMangling.DEMANGLE_MACHO:Ljava/util/function/BiFunction;
            areturn
        10: .line 124
      StackMap locals:
      StackMap stack:
            new com.oracle.truffle.llvm.runtime.except.LLVMParserException
            dup
            new java.lang.StringBuilder
            dup
            ldc "Unsupported mangling in TargetDataLayout: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 2 /* mangling */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial com.oracle.truffle.llvm.runtime.except.LLVMParserException.<init>:(Ljava/lang/String;)V
            athrow
        end local 2 // java.lang.String mangling
        11: .line 127
      StackMap locals:
      StackMap stack:
            getstatic com.oracle.truffle.llvm.parser.util.SymbolNameMangling.DEFAULT_DEMANGLER:Ljava/util/function/BiFunction;
            areturn
        end local 1 // java.util.regex.Matcher matcher
        end local 0 // com.oracle.truffle.llvm.parser.model.target.TargetDataLayout targetDataLayout
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0   12     0  targetDataLayout  Lcom/oracle/truffle/llvm/parser/model/target/TargetDataLayout;
            1   12     1           matcher  Ljava/util/regex/Matcher;
            3   11     2          mangling  Ljava/lang/String;
    Signature: (Lcom/oracle/truffle/llvm/parser/model/target/TargetDataLayout;)Ljava/util/function/BiFunction<Lcom/oracle/truffle/llvm/parser/model/enums/Linkage;Ljava/lang/String;Ljava/lang/String;>;
    MethodParameters:
                  Name  Flags
      targetDataLayout  

  private static java.lang.String lambda$0(com.oracle.truffle.llvm.parser.model.enums.Linkage, java.lang.String);
    descriptor: (Lcom/oracle/truffle/llvm/parser/model/enums/Linkage;Ljava/lang/String;)Ljava/lang/String;
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=1, locals=2, args_size=2
        start local 0 // com.oracle.truffle.llvm.parser.model.enums.Linkage linkage
        start local 1 // java.lang.String name
         0: .line 68
            aload 1 /* name */
            areturn
        end local 1 // java.lang.String name
        end local 0 // com.oracle.truffle.llvm.parser.model.enums.Linkage linkage
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     0  linkage  Lcom/oracle/truffle/llvm/parser/model/enums/Linkage;
            0    1     1     name  Ljava/lang/String;

  private static java.lang.String lambda$1(com.oracle.truffle.llvm.parser.model.enums.Linkage, java.lang.String);
    descriptor: (Lcom/oracle/truffle/llvm/parser/model/enums/Linkage;Ljava/lang/String;)Ljava/lang/String;
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.oracle.truffle.llvm.parser.model.enums.Linkage linkage
        start local 1 // java.lang.String name
         0: .line 71
            aload 0 /* linkage */
            getstatic com.oracle.truffle.llvm.parser.model.enums.Linkage.PRIVATE:Lcom/oracle/truffle/llvm/parser/model/enums/Linkage;
            if_acmpne 3
         1: .line 72
            aload 1 /* name */
            ldc ".L"
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
            ifeq 3
         2: .line 73
            aload 1 /* name */
            iconst_2
            invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
            areturn
         3: .line 77
      StackMap locals:
      StackMap stack:
            aload 1 /* name */
            areturn
        end local 1 // java.lang.String name
        end local 0 // com.oracle.truffle.llvm.parser.model.enums.Linkage linkage
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    4     0  linkage  Lcom/oracle/truffle/llvm/parser/model/enums/Linkage;
            0    4     1     name  Ljava/lang/String;

  private static java.lang.String lambda$2(com.oracle.truffle.llvm.parser.model.enums.Linkage, java.lang.String);
    descriptor: (Lcom/oracle/truffle/llvm/parser/model/enums/Linkage;Ljava/lang/String;)Ljava/lang/String;
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.oracle.truffle.llvm.parser.model.enums.Linkage linkage
        start local 1 // java.lang.String name
         0: .line 81
            aload 0 /* linkage */
            getstatic com.oracle.truffle.llvm.parser.model.enums.Linkage.PRIVATE:Lcom/oracle/truffle/llvm/parser/model/enums/Linkage;
            if_acmpne 3
         1: .line 82
            aload 1 /* name */
            ldc "$"
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
            ifeq 3
         2: .line 83
            aload 1 /* name */
            iconst_1
            invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
            areturn
         3: .line 87
      StackMap locals:
      StackMap stack:
            aload 1 /* name */
            areturn
        end local 1 // java.lang.String name
        end local 0 // com.oracle.truffle.llvm.parser.model.enums.Linkage linkage
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    4     0  linkage  Lcom/oracle/truffle/llvm/parser/model/enums/Linkage;
            0    4     1     name  Ljava/lang/String;

  private static java.lang.String lambda$3(com.oracle.truffle.llvm.parser.model.enums.Linkage, java.lang.String);
    descriptor: (Lcom/oracle/truffle/llvm/parser/model/enums/Linkage;Ljava/lang/String;)Ljava/lang/String;
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // com.oracle.truffle.llvm.parser.model.enums.Linkage linkage
        start local 1 // java.lang.String name
         0: .line 91
            aload 1 /* name */
            astore 2 /* demangled */
        start local 2 // java.lang.String demangled
         1: .line 93
            aload 2 /* demangled */
            ldc "_"
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
            ifeq 3
         2: .line 94
            aload 2 /* demangled */
            iconst_1
            invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
            astore 2 /* demangled */
         3: .line 97
      StackMap locals: java.lang.String
      StackMap stack:
            aload 0 /* linkage */
            getstatic com.oracle.truffle.llvm.parser.model.enums.Linkage.LINKER_PRIVATE:Lcom/oracle/truffle/llvm/parser/model/enums/Linkage;
            if_acmpeq 4
            aload 0 /* linkage */
            getstatic com.oracle.truffle.llvm.parser.model.enums.Linkage.LINKER_PRIVATE_WEAK:Lcom/oracle/truffle/llvm/parser/model/enums/Linkage;
            if_acmpne 7
         4: .line 98
      StackMap locals:
      StackMap stack:
            aload 2 /* demangled */
            ldc "l"
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
            ifeq 10
         5: .line 99
            aload 2 /* demangled */
            iconst_1
            invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
            astore 2 /* demangled */
         6: .line 101
            goto 10
      StackMap locals:
      StackMap stack:
         7: aload 0 /* linkage */
            getstatic com.oracle.truffle.llvm.parser.model.enums.Linkage.PRIVATE:Lcom/oracle/truffle/llvm/parser/model/enums/Linkage;
            if_acmpne 10
         8: .line 102
            aload 2 /* demangled */
            ldc "L"
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
            ifeq 10
         9: .line 103
            aload 2 /* demangled */
            iconst_1
            invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
            astore 2 /* demangled */
        10: .line 107
      StackMap locals:
      StackMap stack:
            aload 2 /* demangled */
            areturn
        end local 2 // java.lang.String demangled
        end local 1 // java.lang.String name
        end local 0 // com.oracle.truffle.llvm.parser.model.enums.Linkage linkage
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   11     0    linkage  Lcom/oracle/truffle/llvm/parser/model/enums/Linkage;
            0   11     1       name  Ljava/lang/String;
            1   11     2  demangled  Ljava/lang/String;
}
SourceFile: "SymbolNameMangling.java"
InnerClasses:
  public final Lookup = java.lang.invoke.MethodHandles$Lookup of java.lang.invoke.MethodHandles