public class sun.jvm.hotspot.asm.Disassembler
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: sun.jvm.hotspot.asm.Disassembler
  super_class: java.lang.Object
{
  private static java.lang.String options;
    descriptor: Ljava/lang/String;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC

  private static long decode_function;
    descriptor: J
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC

  protected long startPc;
    descriptor: J
    flags: (0x0004) ACC_PROTECTED

  protected byte[] code;
    descriptor: [B
    flags: (0x0004) ACC_PROTECTED

  private sun.jvm.hotspot.code.CodeBlob blob;
    descriptor: Lsun/jvm/hotspot/code/CodeBlob;
    flags: (0x0002) ACC_PRIVATE

  private sun.jvm.hotspot.code.NMethod nmethod;
    descriptor: Lsun/jvm/hotspot/code/NMethod;
    flags: (0x0002) ACC_PRIVATE

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=1, locals=0, args_size=0
         0: .line 36
            ldc ""
            putstatic sun.jvm.hotspot.asm.Disassembler.options:Ljava/lang/String;
         1: .line 37
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public static void decode(sun.jvm.hotspot.asm.InstructionVisitor, sun.jvm.hotspot.code.CodeBlob);
    descriptor: (Lsun/jvm/hotspot/asm/InstructionVisitor;Lsun/jvm/hotspot/code/CodeBlob;)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // sun.jvm.hotspot.asm.InstructionVisitor visitor
        start local 1 // sun.jvm.hotspot.code.CodeBlob blob
         0: .line 45
            aload 0 /* visitor */
            aload 1 /* blob */
            aload 1 /* blob */
            invokevirtual sun.jvm.hotspot.code.CodeBlob.codeBegin:()Lsun/jvm/hotspot/debugger/Address;
            aload 1 /* blob */
            invokevirtual sun.jvm.hotspot.code.CodeBlob.codeEnd:()Lsun/jvm/hotspot/debugger/Address;
            invokestatic sun.jvm.hotspot.asm.Disassembler.decode:(Lsun/jvm/hotspot/asm/InstructionVisitor;Lsun/jvm/hotspot/code/CodeBlob;Lsun/jvm/hotspot/debugger/Address;Lsun/jvm/hotspot/debugger/Address;)V
         1: .line 46
            return
        end local 1 // sun.jvm.hotspot.code.CodeBlob blob
        end local 0 // sun.jvm.hotspot.asm.InstructionVisitor visitor
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    2     0  visitor  Lsun/jvm/hotspot/asm/InstructionVisitor;
            0    2     1     blob  Lsun/jvm/hotspot/code/CodeBlob;
    MethodParameters:
         Name  Flags
      visitor  
      blob     

  public static void decode(sun.jvm.hotspot.asm.InstructionVisitor, sun.jvm.hotspot.code.CodeBlob, sun.jvm.hotspot.debugger.Address, sun.jvm.hotspot.debugger.Address);
    descriptor: (Lsun/jvm/hotspot/asm/InstructionVisitor;Lsun/jvm/hotspot/code/CodeBlob;Lsun/jvm/hotspot/debugger/Address;Lsun/jvm/hotspot/debugger/Address;)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=5, locals=9, args_size=4
        start local 0 // sun.jvm.hotspot.asm.InstructionVisitor visitor
        start local 1 // sun.jvm.hotspot.code.CodeBlob blob
        start local 2 // sun.jvm.hotspot.debugger.Address begin
        start local 3 // sun.jvm.hotspot.debugger.Address end
         0: .line 49
            aload 3 /* end */
            aload 2 /* begin */
            invokeinterface sun.jvm.hotspot.debugger.Address.minus:(Lsun/jvm/hotspot/debugger/Address;)J
            l2i
            istore 4 /* codeSize */
        start local 4 // int codeSize
         1: .line 50
            aload 2 /* begin */
            invokestatic sun.jvm.hotspot.runtime.VM.getAddressValue:(Lsun/jvm/hotspot/debugger/Address;)J
            lstore 5 /* startPc */
        start local 5 // long startPc
         2: .line 51
            iload 4 /* codeSize */
            newarray 8
            astore 7 /* code */
        start local 7 // byte[] code
         3: .line 52
            iconst_0
            istore 8 /* i */
        start local 8 // int i
         4: goto 7
         5: .line 53
      StackMap locals: sun.jvm.hotspot.asm.InstructionVisitor sun.jvm.hotspot.code.CodeBlob sun.jvm.hotspot.debugger.Address sun.jvm.hotspot.debugger.Address int long byte[] int
      StackMap stack:
            aload 7 /* code */
            iload 8 /* i */
            aload 2 /* begin */
            iload 8 /* i */
            i2l
            invokeinterface sun.jvm.hotspot.debugger.Address.getJByteAt:(J)B
            bastore
         6: .line 52
            iinc 8 /* i */ 1
      StackMap locals:
      StackMap stack:
         7: iload 8 /* i */
            aload 7 /* code */
            arraylength
            if_icmplt 5
        end local 8 // int i
         8: .line 54
            new sun.jvm.hotspot.asm.Disassembler
            dup
            lload 5 /* startPc */
            aload 7 /* code */
            invokespecial sun.jvm.hotspot.asm.Disassembler.<init>:(J[B)V
            astore 8 /* dis */
        start local 8 // sun.jvm.hotspot.asm.Disassembler dis
         9: .line 55
            aload 8 /* dis */
            aload 0 /* visitor */
            invokevirtual sun.jvm.hotspot.asm.Disassembler.decode:(Lsun/jvm/hotspot/asm/InstructionVisitor;)V
        10: .line 56
            return
        end local 8 // sun.jvm.hotspot.asm.Disassembler dis
        end local 7 // byte[] code
        end local 5 // long startPc
        end local 4 // int codeSize
        end local 3 // sun.jvm.hotspot.debugger.Address end
        end local 2 // sun.jvm.hotspot.debugger.Address begin
        end local 1 // sun.jvm.hotspot.code.CodeBlob blob
        end local 0 // sun.jvm.hotspot.asm.InstructionVisitor visitor
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   11     0   visitor  Lsun/jvm/hotspot/asm/InstructionVisitor;
            0   11     1      blob  Lsun/jvm/hotspot/code/CodeBlob;
            0   11     2     begin  Lsun/jvm/hotspot/debugger/Address;
            0   11     3       end  Lsun/jvm/hotspot/debugger/Address;
            1   11     4  codeSize  I
            2   11     5   startPc  J
            3   11     7      code  [B
            4    8     8         i  I
            9   11     8       dis  Lsun/jvm/hotspot/asm/Disassembler;
    MethodParameters:
         Name  Flags
      visitor  
      blob     
      begin    
      end      

  private void <init>(long, byte[]);
    descriptor: (J[B)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=9, args_size=3
        start local 0 // sun.jvm.hotspot.asm.Disassembler this
        start local 1 // long startPc
        start local 3 // byte[] code
         0: .line 58
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 59
            aload 0 /* this */
            lload 1 /* startPc */
            putfield sun.jvm.hotspot.asm.Disassembler.startPc:J
         2: .line 60
            aload 0 /* this */
            aload 3 /* code */
            putfield sun.jvm.hotspot.asm.Disassembler.code:[B
         3: .line 63
            getstatic sun.jvm.hotspot.asm.Disassembler.decode_function:J
            lconst_0
            lcmp
            ifne 51
         4: .line 64
            new java.lang.StringBuilder
            dup
            ldc "java.home"
            invokestatic java.lang.System.getProperty:(Ljava/lang/String;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            astore 4 /* path */
        start local 4 // java.lang.StringBuilder path
         5: .line 65
            ldc "file.separator"
            invokestatic java.lang.System.getProperty:(Ljava/lang/String;)Ljava/lang/String;
            astore 5 /* sep */
        start local 5 // java.lang.String sep
         6: .line 66
            ldc "os.name"
            invokestatic java.lang.System.getProperty:(Ljava/lang/String;)Ljava/lang/String;
            astore 6 /* os */
        start local 6 // java.lang.String os
         7: .line 67
            ldc "hsdis"
            astore 7 /* libname */
        start local 7 // java.lang.String libname
         8: .line 68
            ldc "os.arch"
            invokestatic java.lang.System.getProperty:(Ljava/lang/String;)Ljava/lang/String;
            astore 8 /* arch */
        start local 8 // java.lang.String arch
         9: .line 69
            aload 6 /* os */
            ldc "Windows"
            iconst_0
            invokevirtual java.lang.String.lastIndexOf:(Ljava/lang/String;I)I
            iconst_m1
            if_icmpeq 20
        10: .line 70
            aload 8 /* arch */
            ldc "x86"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 13
        11: .line 71
            new java.lang.StringBuilder
            dup
            aload 7 /* libname */
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc "-i386"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 7 /* libname */
        12: .line 72
            goto 17
      StackMap locals: sun.jvm.hotspot.asm.Disassembler long byte[] java.lang.StringBuilder java.lang.String java.lang.String java.lang.String java.lang.String
      StackMap stack:
        13: aload 8 /* arch */
            ldc "amd64"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 16
        14: .line 73
            new java.lang.StringBuilder
            dup
            aload 7 /* libname */
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc "-amd64"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 7 /* libname */
        15: .line 74
            goto 17
        16: .line 75
      StackMap locals:
      StackMap stack:
            new java.lang.StringBuilder
            dup
            aload 7 /* libname */
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc "-"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 8 /* arch */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 7 /* libname */
        17: .line 77
      StackMap locals:
      StackMap stack:
            aload 4 /* path */
            new java.lang.StringBuilder
            dup
            aload 5 /* sep */
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc "bin"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 5 /* sep */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        18: .line 78
            new java.lang.StringBuilder
            dup
            aload 7 /* libname */
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc ".dll"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 7 /* libname */
        19: .line 79
            goto 50
      StackMap locals:
      StackMap stack:
        20: aload 6 /* os */
            ldc "SunOS"
            iconst_0
            invokevirtual java.lang.String.lastIndexOf:(Ljava/lang/String;I)I
            iconst_m1
            if_icmpeq 32
        21: .line 80
            aload 8 /* arch */
            ldc "x86"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 22
            aload 8 /* arch */
            ldc "i386"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 25
        22: .line 81
      StackMap locals:
      StackMap stack:
            aload 4 /* path */
            new java.lang.StringBuilder
            dup
            aload 5 /* sep */
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc "lib"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 5 /* sep */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc "i386"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 5 /* sep */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        23: .line 82
            new java.lang.StringBuilder
            dup
            aload 7 /* libname */
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc "-i386.so"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 7 /* libname */
        24: .line 83
            goto 50
      StackMap locals:
      StackMap stack:
        25: aload 8 /* arch */
            ldc "amd64"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 29
        26: .line 84
            aload 4 /* path */
            new java.lang.StringBuilder
            dup
            aload 5 /* sep */
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc "lib"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 5 /* sep */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc "amd64"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 5 /* sep */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        27: .line 85
            new java.lang.StringBuilder
            dup
            aload 7 /* libname */
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc "-amd64.so"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 7 /* libname */
        28: .line 86
            goto 50
        29: .line 87
      StackMap locals:
      StackMap stack:
            aload 4 /* path */
            new java.lang.StringBuilder
            dup
            aload 5 /* sep */
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc "lib"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 5 /* sep */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 8 /* arch */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 5 /* sep */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        30: .line 88
            new java.lang.StringBuilder
            dup
            aload 7 /* libname */
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc "-"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 8 /* arch */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc ".so"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 7 /* libname */
        31: .line 90
            goto 50
      StackMap locals:
      StackMap stack:
        32: aload 6 /* os */
            ldc "Linux"
            iconst_0
            invokevirtual java.lang.String.lastIndexOf:(Ljava/lang/String;I)I
            iconst_m1
            if_icmpeq 44
        33: .line 91
            aload 8 /* arch */
            ldc "x86"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 34
            aload 8 /* arch */
            ldc "i386"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 37
        34: .line 92
      StackMap locals:
      StackMap stack:
            aload 4 /* path */
            new java.lang.StringBuilder
            dup
            aload 5 /* sep */
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc "lib"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 5 /* sep */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc "i386"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 5 /* sep */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        35: .line 93
            new java.lang.StringBuilder
            dup
            aload 7 /* libname */
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc "-i386.so"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 7 /* libname */
        36: .line 94
            goto 50
      StackMap locals:
      StackMap stack:
        37: aload 8 /* arch */
            ldc "amd64"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 38
            aload 8 /* arch */
            ldc "x86_64"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 41
        38: .line 95
      StackMap locals:
      StackMap stack:
            aload 4 /* path */
            new java.lang.StringBuilder
            dup
            aload 5 /* sep */
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc "lib"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 5 /* sep */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc "amd64"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 5 /* sep */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        39: .line 96
            new java.lang.StringBuilder
            dup
            aload 7 /* libname */
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc "-amd64.so"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 7 /* libname */
        40: .line 97
            goto 50
        41: .line 98
      StackMap locals:
      StackMap stack:
            aload 4 /* path */
            new java.lang.StringBuilder
            dup
            aload 5 /* sep */
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc "lib"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 5 /* sep */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 8 /* arch */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 5 /* sep */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        42: .line 99
            new java.lang.StringBuilder
            dup
            aload 7 /* libname */
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc "-"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 8 /* arch */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc ".so"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 7 /* libname */
        43: .line 101
            goto 50
      StackMap locals:
      StackMap stack:
        44: aload 6 /* os */
            ldc "Mac OS X"
            iconst_0
            invokevirtual java.lang.String.lastIndexOf:(Ljava/lang/String;I)I
            iconst_m1
            if_icmpeq 48
        45: .line 102
            aload 4 /* path */
            new java.lang.StringBuilder
            dup
            aload 5 /* sep */
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc "lib"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 5 /* sep */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        46: .line 103
            new java.lang.StringBuilder
            dup
            aload 7 /* libname */
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc "-amd64.dylib"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 7 /* libname */
        47: .line 104
            goto 50
        48: .line 105
      StackMap locals:
      StackMap stack:
            aload 4 /* path */
            new java.lang.StringBuilder
            dup
            aload 5 /* sep */
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc "lib"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 5 /* sep */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc "arch"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 5 /* sep */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        49: .line 106
            new java.lang.StringBuilder
            dup
            aload 7 /* libname */
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc "-"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 8 /* arch */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc ".so"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 7 /* libname */
        50: .line 108
      StackMap locals:
      StackMap stack:
            aload 4 /* path */
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            aload 7 /* libname */
            invokestatic sun.jvm.hotspot.asm.Disassembler.load_library:(Ljava/lang/String;Ljava/lang/String;)J
            putstatic sun.jvm.hotspot.asm.Disassembler.decode_function:J
        end local 8 // java.lang.String arch
        end local 7 // java.lang.String libname
        end local 6 // java.lang.String os
        end local 5 // java.lang.String sep
        end local 4 // java.lang.StringBuilder path
        51: .line 110
      StackMap locals: sun.jvm.hotspot.asm.Disassembler long byte[]
      StackMap stack:
            return
        end local 3 // byte[] code
        end local 1 // long startPc
        end local 0 // sun.jvm.hotspot.asm.Disassembler this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   52     0     this  Lsun/jvm/hotspot/asm/Disassembler;
            0   52     1  startPc  J
            0   52     3     code  [B
            5   51     4     path  Ljava/lang/StringBuilder;
            6   51     5      sep  Ljava/lang/String;
            7   51     6       os  Ljava/lang/String;
            8   51     7  libname  Ljava/lang/String;
            9   51     8     arch  Ljava/lang/String;
    MethodParameters:
         Name  Flags
      startPc  
      code     

  private static native long load_library(java.lang.String, java.lang.String);
    descriptor: (Ljava/lang/String;Ljava/lang/String;)J
    flags: (0x010a) ACC_PRIVATE, ACC_STATIC, ACC_NATIVE
    MethodParameters:
                    Name  Flags
      installed_jrepath   
      hsdis_library_name  

  private native void decode(sun.jvm.hotspot.asm.InstructionVisitor, long, byte[], java.lang.String, long);
    descriptor: (Lsun/jvm/hotspot/asm/InstructionVisitor;J[BLjava/lang/String;J)V
    flags: (0x0102) ACC_PRIVATE, ACC_NATIVE
    MethodParameters:
                 Name  Flags
      visitor          
      pc               
      code             
      options          
      decode_function  

  private void decode(sun.jvm.hotspot.asm.InstructionVisitor);
    descriptor: (Lsun/jvm/hotspot/asm/InstructionVisitor;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=8, locals=2, args_size=2
        start local 0 // sun.jvm.hotspot.asm.Disassembler this
        start local 1 // sun.jvm.hotspot.asm.InstructionVisitor visitor
         0: .line 118
            aload 1 /* visitor */
            invokeinterface sun.jvm.hotspot.asm.InstructionVisitor.prologue:()V
         1: .line 119
            aload 0 /* this */
            aload 1 /* visitor */
            aload 0 /* this */
            getfield sun.jvm.hotspot.asm.Disassembler.startPc:J
            aload 0 /* this */
            getfield sun.jvm.hotspot.asm.Disassembler.code:[B
            getstatic sun.jvm.hotspot.asm.Disassembler.options:Ljava/lang/String;
            getstatic sun.jvm.hotspot.asm.Disassembler.decode_function:J
            invokevirtual sun.jvm.hotspot.asm.Disassembler.decode:(Lsun/jvm/hotspot/asm/InstructionVisitor;J[BLjava/lang/String;J)V
         2: .line 120
            aload 1 /* visitor */
            invokeinterface sun.jvm.hotspot.asm.InstructionVisitor.epilogue:()V
         3: .line 121
            return
        end local 1 // sun.jvm.hotspot.asm.InstructionVisitor visitor
        end local 0 // sun.jvm.hotspot.asm.Disassembler this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    4     0     this  Lsun/jvm/hotspot/asm/Disassembler;
            0    4     1  visitor  Lsun/jvm/hotspot/asm/InstructionVisitor;
    MethodParameters:
         Name  Flags
      visitor  

  private boolean match(java.lang.String, java.lang.String);
    descriptor: (Ljava/lang/String;Ljava/lang/String;)Z
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=5, args_size=3
        start local 0 // sun.jvm.hotspot.asm.Disassembler this
        start local 1 // java.lang.String event
        start local 2 // java.lang.String tag
         0: .line 124
            aload 1 /* event */
            aload 2 /* tag */
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
            ifne 2
         1: .line 125
            iconst_0
            ireturn
         2: .line 126
      StackMap locals:
      StackMap stack:
            aload 2 /* tag */
            invokevirtual java.lang.String.length:()I
            istore 3 /* taglen */
        start local 3 // int taglen
         3: .line 127
            iload 3 /* taglen */
            aload 1 /* event */
            invokevirtual java.lang.String.length:()I
            if_icmpne 4
            iconst_1
            ireturn
         4: .line 128
      StackMap locals: int
      StackMap stack:
            aload 1 /* event */
            iload 3 /* taglen */
            invokevirtual java.lang.String.charAt:(I)C
            istore 4 /* delim */
        start local 4 // char delim
         5: .line 129
            iload 4 /* delim */
            bipush 32
            if_icmpeq 6
            iload 4 /* delim */
            bipush 47
            if_icmpeq 6
            iload 4 /* delim */
            bipush 61
            if_icmpeq 6
            iconst_0
            ireturn
      StackMap locals: int
      StackMap stack:
         6: iconst_1
            ireturn
        end local 4 // char delim
        end local 3 // int taglen
        end local 2 // java.lang.String tag
        end local 1 // java.lang.String event
        end local 0 // sun.jvm.hotspot.asm.Disassembler this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    7     0    this  Lsun/jvm/hotspot/asm/Disassembler;
            0    7     1   event  Ljava/lang/String;
            0    7     2     tag  Ljava/lang/String;
            3    7     3  taglen  I
            5    7     4   delim  C
    MethodParameters:
       Name  Flags
      event  
      tag    

  private long handleEvent(sun.jvm.hotspot.asm.InstructionVisitor, java.lang.String, long);
    descriptor: (Lsun/jvm/hotspot/asm/InstructionVisitor;Ljava/lang/String;J)J
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=6, args_size=4
        start local 0 // sun.jvm.hotspot.asm.Disassembler this
        start local 1 // sun.jvm.hotspot.asm.InstructionVisitor visitor
        start local 2 // java.lang.String event
        start local 3 // long arg
         0: .line 135
            aload 0 /* this */
            aload 2 /* event */
            ldc "insn"
            invokevirtual sun.jvm.hotspot.asm.Disassembler.match:(Ljava/lang/String;Ljava/lang/String;)Z
            ifeq 6
         1: .line 137
            aload 1 /* visitor */
            lload 3 /* arg */
            invokeinterface sun.jvm.hotspot.asm.InstructionVisitor.beginInstruction:(J)V
         2: .line 138
            goto 17
      StackMap locals:
      StackMap stack: java.lang.Throwable
         3: astore 5 /* e */
        start local 5 // java.lang.Throwable e
         4: .line 139
            aload 5 /* e */
            invokevirtual java.lang.Throwable.printStackTrace:()V
        end local 5 // java.lang.Throwable e
         5: .line 141
            goto 17
      StackMap locals:
      StackMap stack:
         6: aload 0 /* this */
            aload 2 /* event */
            ldc "/insn"
            invokevirtual sun.jvm.hotspot.asm.Disassembler.match:(Ljava/lang/String;Ljava/lang/String;)Z
            ifeq 12
         7: .line 143
            aload 1 /* visitor */
            lload 3 /* arg */
            invokeinterface sun.jvm.hotspot.asm.InstructionVisitor.endInstruction:(J)V
         8: .line 144
            goto 17
      StackMap locals:
      StackMap stack: java.lang.Throwable
         9: astore 5 /* e */
        start local 5 // java.lang.Throwable e
        10: .line 145
            aload 5 /* e */
            invokevirtual java.lang.Throwable.printStackTrace:()V
        end local 5 // java.lang.Throwable e
        11: .line 147
            goto 17
      StackMap locals:
      StackMap stack:
        12: aload 0 /* this */
            aload 2 /* event */
            ldc "addr"
            invokevirtual sun.jvm.hotspot.asm.Disassembler.match:(Ljava/lang/String;Ljava/lang/String;)Z
            ifeq 16
        13: .line 148
            lload 3 /* arg */
            lconst_0
            lcmp
            ifeq 15
        14: .line 149
            aload 1 /* visitor */
            lload 3 /* arg */
            invokeinterface sun.jvm.hotspot.asm.InstructionVisitor.printAddress:(J)V
        15: .line 151
      StackMap locals:
      StackMap stack:
            lload 3 /* arg */
            lreturn
        16: .line 152
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 2 /* event */
            ldc "mach"
            invokevirtual sun.jvm.hotspot.asm.Disassembler.match:(Ljava/lang/String;Ljava/lang/String;)Z
            pop
        17: .line 157
      StackMap locals:
      StackMap stack:
            lconst_0
            lreturn
        end local 3 // long arg
        end local 2 // java.lang.String event
        end local 1 // sun.jvm.hotspot.asm.InstructionVisitor visitor
        end local 0 // sun.jvm.hotspot.asm.Disassembler this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   18     0     this  Lsun/jvm/hotspot/asm/Disassembler;
            0   18     1  visitor  Lsun/jvm/hotspot/asm/InstructionVisitor;
            0   18     2    event  Ljava/lang/String;
            0   18     3      arg  J
            4    5     5        e  Ljava/lang/Throwable;
           10   11     5        e  Ljava/lang/Throwable;
      Exception table:
        from    to  target  type
           1     2       3  Class java.lang.Throwable
           7     8       9  Class java.lang.Throwable
    MethodParameters:
         Name  Flags
      visitor  
      event    
      arg      

  private void rawPrint(sun.jvm.hotspot.asm.InstructionVisitor, java.lang.String);
    descriptor: (Lsun/jvm/hotspot/asm/InstructionVisitor;Ljava/lang/String;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=3, args_size=3
        start local 0 // sun.jvm.hotspot.asm.Disassembler this
        start local 1 // sun.jvm.hotspot.asm.InstructionVisitor visitor
        start local 2 // java.lang.String s
         0: .line 162
            aload 1 /* visitor */
            aload 2 /* s */
            invokeinterface sun.jvm.hotspot.asm.InstructionVisitor.print:(Ljava/lang/String;)V
         1: .line 163
            return
        end local 2 // java.lang.String s
        end local 1 // sun.jvm.hotspot.asm.InstructionVisitor visitor
        end local 0 // sun.jvm.hotspot.asm.Disassembler this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    2     0     this  Lsun/jvm/hotspot/asm/Disassembler;
            0    2     1  visitor  Lsun/jvm/hotspot/asm/InstructionVisitor;
            0    2     2        s  Ljava/lang/String;
    MethodParameters:
         Name  Flags
      visitor  
      s        
}
SourceFile: "Disassembler.java"