final class com.sun.media.jfxmediaimpl.platform.java.ID3MetadataParser extends com.sun.media.jfxmediaimpl.MetadataParserImpl
  minor version: 0
  major version: 59
  flags: flags: (0x0030) ACC_FINAL, ACC_SUPER
  this_class: com.sun.media.jfxmediaimpl.platform.java.ID3MetadataParser
  super_class: com.sun.media.jfxmediaimpl.MetadataParserImpl
{
  private static final int ID3_VERSION_MIN;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 2

  private static final int ID3_VERSION_MAX;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 4

  private static final java.lang.String CHARSET_UTF_8;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "UTF-8"

  private static final java.lang.String CHARSET_ISO_8859_1;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "ISO-8859-1"

  private static final java.lang.String CHARSET_UTF_16;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "UTF-16"

  private static final java.lang.String CHARSET_UTF_16BE;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "UTF-16BE"

  private int COMMCount;
    descriptor: I
    flags: (0x0002) ACC_PRIVATE

  private int TXXXCount;
    descriptor: I
    flags: (0x0002) ACC_PRIVATE

  private int version;
    descriptor: I
    flags: (0x0002) ACC_PRIVATE

  private boolean unsynchronized;
    descriptor: Z
    flags: (0x0002) ACC_PRIVATE

  public void <init>(com.sun.media.jfxmedia.locator.Locator);
    descriptor: (Lcom/sun/media/jfxmedia/locator/Locator;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.sun.media.jfxmediaimpl.platform.java.ID3MetadataParser this
        start local 1 // com.sun.media.jfxmedia.locator.Locator locator
         0: .line 52
            aload 0 /* this */
            aload 1 /* locator */
            invokespecial com.sun.media.jfxmediaimpl.MetadataParserImpl.<init>:(Lcom/sun/media/jfxmedia/locator/Locator;)V
         1: .line 46
            aload 0 /* this */
            iconst_0
            putfield com.sun.media.jfxmediaimpl.platform.java.ID3MetadataParser.COMMCount:I
         2: .line 47
            aload 0 /* this */
            iconst_0
            putfield com.sun.media.jfxmediaimpl.platform.java.ID3MetadataParser.TXXXCount:I
         3: .line 48
            aload 0 /* this */
            iconst_3
            putfield com.sun.media.jfxmediaimpl.platform.java.ID3MetadataParser.version:I
         4: .line 49
            aload 0 /* this */
            iconst_0
            putfield com.sun.media.jfxmediaimpl.platform.java.ID3MetadataParser.unsynchronized:Z
         5: .line 53
            return
        end local 1 // com.sun.media.jfxmedia.locator.Locator locator
        end local 0 // com.sun.media.jfxmediaimpl.platform.java.ID3MetadataParser this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    6     0     this  Lcom/sun/media/jfxmediaimpl/platform/java/ID3MetadataParser;
            0    6     1  locator  Lcom/sun/media/jfxmedia/locator/Locator;
    MethodParameters:
         Name  Flags
      locator  

  protected void parse();
    descriptor: ()V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=6, locals=17, args_size=1
        start local 0 // com.sun.media.jfxmediaimpl.platform.java.ID3MetadataParser this
         0: .line 58
            ldc "ISO-8859-1"
            invokestatic java.nio.charset.Charset.isSupported:(Ljava/lang/String;)Z
            ifne 2
         1: .line 59
            new java.nio.charset.UnsupportedCharsetException
            dup
            ldc "ISO-8859-1"
            invokespecial java.nio.charset.UnsupportedCharsetException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 75
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            bipush 10
            invokevirtual com.sun.media.jfxmediaimpl.platform.java.ID3MetadataParser.getBytes:(I)[B
            astore 1 /* buf */
        start local 1 // byte[] buf
         3: .line 76
            aload 0 /* this */
            aload 1 /* buf */
            iconst_3
            baload
            sipush 255
            iand
            putfield com.sun.media.jfxmediaimpl.platform.java.ID3MetadataParser.version:I
         4: .line 77
            aload 1 /* buf */
            iconst_0
            baload
            bipush 73
            if_icmpne 150
            aload 1 /* buf */
            iconst_1
            baload
            bipush 68
            if_icmpne 150
            aload 1 /* buf */
            iconst_2
            baload
            bipush 51
            if_icmpne 150
         5: .line 78
            aload 0 /* this */
            getfield com.sun.media.jfxmediaimpl.platform.java.ID3MetadataParser.version:I
            iconst_2
            if_icmplt 150
            aload 0 /* this */
            getfield com.sun.media.jfxmediaimpl.platform.java.ID3MetadataParser.version:I
            iconst_4
            if_icmpgt 150
         6: .line 79
            aload 1 /* buf */
            iconst_5
            baload
            sipush 255
            iand
            istore 2 /* flags */
        start local 2 // int flags
         7: .line 80
            iload 2 /* flags */
            sipush 128
            iand
            sipush 128
            if_icmpne 9
         8: .line 81
            aload 0 /* this */
            iconst_1
            putfield com.sun.media.jfxmediaimpl.platform.java.ID3MetadataParser.unsynchronized:Z
         9: .line 84
      StackMap locals: byte[] int
      StackMap stack:
            iconst_0
            istore 3 /* tagSize */
        start local 3 // int tagSize
        10: .line 85
            bipush 6
            istore 4 /* i */
        start local 4 // int i
        11: bipush 21
            istore 5 /* shift */
        start local 5 // int shift
        12: goto 16
        13: .line 86
      StackMap locals: int int int
      StackMap stack:
            iload 3 /* tagSize */
            aload 1 /* buf */
            iload 4 /* i */
            baload
            bipush 127
            iand
            iload 5 /* shift */
            ishl
            iadd
            istore 3 /* tagSize */
        14: .line 87
            iinc 5 /* shift */ -7
        15: .line 85
            iinc 4 /* i */ 1
      StackMap locals:
      StackMap stack:
        16: iload 4 /* i */
            bipush 10
            if_icmplt 13
        end local 5 // int shift
        end local 4 // int i
        17: .line 90
            aload 0 /* this */
            iload 3 /* tagSize */
            bipush 10
            iadd
            invokevirtual com.sun.media.jfxmediaimpl.platform.java.ID3MetadataParser.startRawMetadata:(I)V
        18: .line 91
            aload 0 /* this */
            aload 1 /* buf */
            iconst_0
            bipush 10
            invokevirtual com.sun.media.jfxmediaimpl.platform.java.ID3MetadataParser.stuffRawMetadata:([BII)V
        19: .line 92
            aload 0 /* this */
            iload 3 /* tagSize */
            invokevirtual com.sun.media.jfxmediaimpl.platform.java.ID3MetadataParser.readRawMetadata:(I)V
        20: .line 93
            aload 0 /* this */
            iconst_1
            invokevirtual com.sun.media.jfxmediaimpl.platform.java.ID3MetadataParser.setParseRawMetadata:(Z)V
        21: .line 94
            aload 0 /* this */
            bipush 10
            invokevirtual com.sun.media.jfxmediaimpl.platform.java.ID3MetadataParser.skipBytes:(I)V
        22: .line 96
            goto 131
        23: .line 100
      StackMap locals:
      StackMap stack:
            iconst_2
            aload 0 /* this */
            getfield com.sun.media.jfxmediaimpl.platform.java.ID3MetadataParser.version:I
            if_icmpne 27
        24: .line 102
            aload 0 /* this */
            iconst_3
            invokevirtual com.sun.media.jfxmediaimpl.platform.java.ID3MetadataParser.getBytes:(I)[B
            astore 5 /* idBytes */
        start local 5 // byte[] idBytes
        25: .line 103
            aload 0 /* this */
            invokevirtual com.sun.media.jfxmediaimpl.platform.java.ID3MetadataParser.getU24:()I
            istore 4 /* frameSize */
        start local 4 // int frameSize
        26: .line 104
            goto 30
        end local 5 // byte[] idBytes
        end local 4 // int frameSize
        27: .line 105
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iconst_4
            invokevirtual com.sun.media.jfxmediaimpl.platform.java.ID3MetadataParser.getBytes:(I)[B
            astore 5 /* idBytes */
        start local 5 // byte[] idBytes
        28: .line 106
            aload 0 /* this */
            invokevirtual com.sun.media.jfxmediaimpl.platform.java.ID3MetadataParser.getFrameSize:()I
            istore 4 /* frameSize */
        start local 4 // int frameSize
        29: .line 107
            aload 0 /* this */
            iconst_2
            invokevirtual com.sun.media.jfxmediaimpl.platform.java.ID3MetadataParser.skipBytes:(I)V
        30: .line 110
      StackMap locals: int byte[]
      StackMap stack:
            aload 5 /* idBytes */
            iconst_0
            baload
            ifne 38
        31: .line 112
            iconst_1
            invokestatic com.sun.media.jfxmedia.logging.Logger.canLog:(I)Z
            ifeq 150
        32: .line 113
            iconst_1
            ldc "ID3MetadataParser"
            ldc "parse"
        33: .line 114
            new java.lang.StringBuilder
            dup
            ldc "ID3 parser: zero padding detected at "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
        34: .line 115
            aload 0 /* this */
            invokevirtual com.sun.media.jfxmediaimpl.platform.java.ID3MetadataParser.getStreamPosition:()I
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            ldc ", terminating"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        35: .line 114
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        36: .line 113
            invokestatic com.sun.media.jfxmedia.logging.Logger.logMsg:(ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
        37: .line 117
            goto 150
        38: .line 120
      StackMap locals:
      StackMap stack:
            new java.lang.String
            dup
            aload 5 /* idBytes */
            ldc "ISO-8859-1"
            invokestatic java.nio.charset.Charset.forName:(Ljava/lang/String;)Ljava/nio/charset/Charset;
            invokespecial java.lang.String.<init>:([BLjava/nio/charset/Charset;)V
            astore 6 /* frameID */
        start local 6 // java.lang.String frameID
        39: .line 122
            iconst_1
            invokestatic com.sun.media.jfxmedia.logging.Logger.canLog:(I)Z
            ifeq 45
        40: .line 123
            iconst_1
            ldc "ID3MetadataParser"
            ldc "parse"
        41: .line 124
            new java.lang.StringBuilder
            dup
            aload 0 /* this */
            invokevirtual com.sun.media.jfxmediaimpl.platform.java.ID3MetadataParser.getStreamPosition:()I
            invokestatic java.lang.String.valueOf:(I)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc "\\"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            iload 3 /* tagSize */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
        42: .line 125
            ldc ": frame ID "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 6 /* frameID */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc ", size "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            iload 4 /* frameSize */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
        43: .line 124
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        44: .line 123
            invokestatic com.sun.media.jfxmedia.logging.Logger.logMsg:(ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
        45: .line 127
      StackMap locals: java.lang.String
      StackMap stack:
            aload 6 /* frameID */
            ldc "APIC"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 46
            aload 6 /* frameID */
            ldc "PIC"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 55
        46: .line 128
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iload 4 /* frameSize */
            invokevirtual com.sun.media.jfxmediaimpl.platform.java.ID3MetadataParser.getBytes:(I)[B
            astore 7 /* data */
        start local 7 // byte[] data
        47: .line 129
            aload 0 /* this */
            getfield com.sun.media.jfxmediaimpl.platform.java.ID3MetadataParser.unsynchronized:Z
            ifeq 49
        48: .line 130
            aload 0 /* this */
            aload 7 /* data */
            invokevirtual com.sun.media.jfxmediaimpl.platform.java.ID3MetadataParser.unsynchronizeBuffer:([B)[B
            astore 7 /* data */
        49: .line 133
      StackMap locals: byte[]
      StackMap stack:
            aload 6 /* frameID */
            ldc "PIC"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 50
            aload 0 /* this */
            aload 7 /* data */
            invokevirtual com.sun.media.jfxmediaimpl.platform.java.ID3MetadataParser.getImageFromPIC:([B)[B
            goto 51
      StackMap locals:
      StackMap stack:
        50: aload 0 /* this */
            aload 7 /* data */
            invokevirtual com.sun.media.jfxmediaimpl.platform.java.ID3MetadataParser.getImageFromAPIC:([B)[B
      StackMap locals:
      StackMap stack: byte[]
        51: astore 8 /* image */
        start local 8 // byte[] image
        52: .line 135
            aload 8 /* image */
            ifnull 131
        53: .line 136
            aload 0 /* this */
            ldc "image"
            aload 8 /* image */
            invokevirtual com.sun.media.jfxmediaimpl.platform.java.ID3MetadataParser.addMetadataItem:(Ljava/lang/String;Ljava/lang/Object;)V
        end local 8 // byte[] image
        end local 7 // byte[] data
        54: .line 138
            goto 131
      StackMap locals:
      StackMap stack:
        55: aload 6 /* frameID */
            ldc "T"
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
            ifeq 71
            aload 6 /* frameID */
            ldc "TXXX"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 71
        56: .line 139
            aload 0 /* this */
            invokevirtual com.sun.media.jfxmediaimpl.platform.java.ID3MetadataParser.getEncoding:()Ljava/lang/String;
            astore 7 /* encoding */
        start local 7 // java.lang.String encoding
        57: .line 140
            aload 0 /* this */
            iload 4 /* frameSize */
            iconst_1
            isub
            invokevirtual com.sun.media.jfxmediaimpl.platform.java.ID3MetadataParser.getBytes:(I)[B
            astore 8 /* data */
        start local 8 // byte[] data
        58: .line 141
            aload 0 /* this */
            getfield com.sun.media.jfxmediaimpl.platform.java.ID3MetadataParser.unsynchronized:Z
            ifeq 60
        59: .line 142
            aload 0 /* this */
            aload 8 /* data */
            invokevirtual com.sun.media.jfxmediaimpl.platform.java.ID3MetadataParser.unsynchronizeBuffer:([B)[B
            astore 8 /* data */
        60: .line 144
      StackMap locals: java.lang.String byte[]
      StackMap stack:
            new java.lang.String
            dup
            aload 8 /* data */
            aload 7 /* encoding */
            invokespecial java.lang.String.<init>:([BLjava/lang/String;)V
            astore 9 /* value */
        start local 9 // java.lang.String value
        61: .line 145
            aload 0 /* this */
            aload 6 /* frameID */
            invokevirtual com.sun.media.jfxmediaimpl.platform.java.ID3MetadataParser.getTagFromFrameID:(Ljava/lang/String;)[Ljava/lang/String;
            astore 10 /* tag */
        start local 10 // java.lang.String[] tag
        62: .line 146
            aload 10 /* tag */
            ifnull 131
        63: .line 147
            iconst_0
            istore 11 /* i */
        start local 11 // int i
        64: goto 69
        65: .line 148
      StackMap locals: java.lang.String java.lang.String[] int
      StackMap stack:
            aload 0 /* this */
            aload 10 /* tag */
            iload 11 /* i */
            aaload
            aload 9 /* value */
            invokevirtual com.sun.media.jfxmediaimpl.platform.java.ID3MetadataParser.convertValue:(Ljava/lang/String;Ljava/lang/Object;)Ljava/lang/Object;
            astore 12 /* tagValue */
        start local 12 // java.lang.Object tagValue
        66: .line 149
            aload 12 /* tagValue */
            ifnull 68
        67: .line 150
            aload 0 /* this */
            aload 10 /* tag */
            iload 11 /* i */
            aaload
            aload 12 /* tagValue */
            invokevirtual com.sun.media.jfxmediaimpl.platform.java.ID3MetadataParser.addMetadataItem:(Ljava/lang/String;Ljava/lang/Object;)V
        end local 12 // java.lang.Object tagValue
        68: .line 147
      StackMap locals:
      StackMap stack:
            iinc 11 /* i */ 1
      StackMap locals:
      StackMap stack:
        69: iload 11 /* i */
            aload 10 /* tag */
            arraylength
            if_icmplt 65
        end local 11 // int i
        end local 10 // java.lang.String[] tag
        end local 9 // java.lang.String value
        end local 8 // byte[] data
        end local 7 // java.lang.String encoding
        70: .line 154
            goto 131
      StackMap locals: com.sun.media.jfxmediaimpl.platform.java.ID3MetadataParser byte[] int int int byte[] java.lang.String
      StackMap stack:
        71: aload 6 /* frameID */
            ldc "COMM"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 72
            aload 6 /* frameID */
            ldc "COM"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 104
        72: .line 155
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual com.sun.media.jfxmediaimpl.platform.java.ID3MetadataParser.getEncoding:()Ljava/lang/String;
            astore 7 /* encoding */
        start local 7 // java.lang.String encoding
        73: .line 157
            aload 0 /* this */
            iconst_3
            invokevirtual com.sun.media.jfxmediaimpl.platform.java.ID3MetadataParser.getBytes:(I)[B
            astore 8 /* data */
        start local 8 // byte[] data
        74: .line 158
            aload 0 /* this */
            getfield com.sun.media.jfxmediaimpl.platform.java.ID3MetadataParser.unsynchronized:Z
            ifeq 76
        75: .line 159
            aload 0 /* this */
            aload 8 /* data */
            invokevirtual com.sun.media.jfxmediaimpl.platform.java.ID3MetadataParser.unsynchronizeBuffer:([B)[B
            astore 8 /* data */
        76: .line 161
      StackMap locals: java.lang.String byte[]
      StackMap stack:
            new java.lang.String
            dup
            aload 8 /* data */
            ldc "ISO-8859-1"
            invokestatic java.nio.charset.Charset.forName:(Ljava/lang/String;)Ljava/nio/charset/Charset;
            invokespecial java.lang.String.<init>:([BLjava/nio/charset/Charset;)V
            astore 9 /* language */
        start local 9 // java.lang.String language
        77: .line 163
            aload 0 /* this */
            iload 4 /* frameSize */
            iconst_4
            isub
            invokevirtual com.sun.media.jfxmediaimpl.platform.java.ID3MetadataParser.getBytes:(I)[B
            astore 8 /* data */
        78: .line 164
            aload 0 /* this */
            getfield com.sun.media.jfxmediaimpl.platform.java.ID3MetadataParser.unsynchronized:Z
            ifeq 80
        79: .line 165
            aload 0 /* this */
            aload 8 /* data */
            invokevirtual com.sun.media.jfxmediaimpl.platform.java.ID3MetadataParser.unsynchronizeBuffer:([B)[B
            astore 8 /* data */
        80: .line 167
      StackMap locals: java.lang.String
      StackMap stack:
            new java.lang.String
            dup
            aload 8 /* data */
            aload 7 /* encoding */
            invokespecial java.lang.String.<init>:([BLjava/lang/String;)V
            astore 10 /* value */
        start local 10 // java.lang.String value
        81: .line 168
            aload 10 /* value */
            ifnull 131
        82: .line 169
            aload 10 /* value */
            iconst_0
            invokevirtual java.lang.String.indexOf:(I)I
            istore 11 /* index */
        start local 11 // int index
        83: .line 170
            ldc ""
            astore 12 /* content */
        start local 12 // java.lang.String content
        84: .line 172
            iload 11 /* index */
            ifne 90
        85: .line 173
            aload 0 /* this */
            aload 7 /* encoding */
            invokevirtual com.sun.media.jfxmediaimpl.platform.java.ID3MetadataParser.isTwoByteEncoding:(Ljava/lang/String;)Z
            ifeq 88
        86: .line 174
            aload 10 /* value */
            iconst_2
            invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
            astore 13 /* comment */
        start local 13 // java.lang.String comment
        87: .line 175
            goto 95
        end local 13 // java.lang.String comment
        88: .line 176
      StackMap locals: java.lang.String int java.lang.String
      StackMap stack:
            aload 10 /* value */
            iconst_1
            invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
            astore 13 /* comment */
        start local 13 // java.lang.String comment
        89: .line 178
            goto 95
        end local 13 // java.lang.String comment
        90: .line 179
      StackMap locals:
      StackMap stack:
            aload 10 /* value */
            iconst_0
            iload 11 /* index */
            invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
            astore 12 /* content */
        91: .line 180
            aload 0 /* this */
            aload 7 /* encoding */
            invokevirtual com.sun.media.jfxmediaimpl.platform.java.ID3MetadataParser.isTwoByteEncoding:(Ljava/lang/String;)Z
            ifeq 94
        92: .line 181
            aload 10 /* value */
            iload 11 /* index */
            iconst_2
            iadd
            invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
            astore 13 /* comment */
        start local 13 // java.lang.String comment
        93: .line 182
            goto 95
        end local 13 // java.lang.String comment
        94: .line 183
      StackMap locals:
      StackMap stack:
            aload 10 /* value */
            iload 11 /* index */
            iconst_1
            iadd
            invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
            astore 13 /* comment */
        start local 13 // java.lang.String comment
        95: .line 186
      StackMap locals: java.lang.String
      StackMap stack:
            aload 0 /* this */
            aload 6 /* frameID */
            invokevirtual com.sun.media.jfxmediaimpl.platform.java.ID3MetadataParser.getTagFromFrameID:(Ljava/lang/String;)[Ljava/lang/String;
            astore 14 /* tag */
        start local 14 // java.lang.String[] tag
        96: .line 187
            aload 14 /* tag */
            ifnull 131
        97: .line 188
            iconst_0
            istore 15 /* i */
        start local 15 // int i
        98: goto 102
        99: .line 189
      StackMap locals: java.lang.String[] int
      StackMap stack:
            aload 0 /* this */
            new java.lang.StringBuilder
            dup
            aload 14 /* tag */
            iload 15 /* i */
            aaload
            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 0 /* this */
            getfield com.sun.media.jfxmediaimpl.platform.java.ID3MetadataParser.COMMCount:I
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            new java.lang.StringBuilder
            dup
            aload 12 /* content */
            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 9 /* language */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc "]="
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 13 /* comment */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual com.sun.media.jfxmediaimpl.platform.java.ID3MetadataParser.addMetadataItem:(Ljava/lang/String;Ljava/lang/Object;)V
       100: .line 190
            aload 0 /* this */
            dup
            getfield com.sun.media.jfxmediaimpl.platform.java.ID3MetadataParser.COMMCount:I
            iconst_1
            iadd
            putfield com.sun.media.jfxmediaimpl.platform.java.ID3MetadataParser.COMMCount:I
       101: .line 188
            iinc 15 /* i */ 1
      StackMap locals:
      StackMap stack:
       102: iload 15 /* i */
            aload 14 /* tag */
            arraylength
            if_icmplt 99
        end local 15 // int i
        end local 14 // java.lang.String[] tag
        end local 13 // java.lang.String comment
        end local 12 // java.lang.String content
        end local 11 // int index
        end local 10 // java.lang.String value
        end local 9 // java.lang.String language
        end local 8 // byte[] data
        end local 7 // java.lang.String encoding
       103: .line 194
            goto 131
      StackMap locals: com.sun.media.jfxmediaimpl.platform.java.ID3MetadataParser byte[] int int int byte[] java.lang.String
      StackMap stack:
       104: aload 6 /* frameID */
            ldc "TXX"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 105
            aload 6 /* frameID */
            ldc "TXXX"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 130
       105: .line 195
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual com.sun.media.jfxmediaimpl.platform.java.ID3MetadataParser.getEncoding:()Ljava/lang/String;
            astore 7 /* encoding */
        start local 7 // java.lang.String encoding
       106: .line 196
            aload 0 /* this */
            iload 4 /* frameSize */
            iconst_1
            isub
            invokevirtual com.sun.media.jfxmediaimpl.platform.java.ID3MetadataParser.getBytes:(I)[B
            astore 8 /* data */
        start local 8 // byte[] data
       107: .line 197
            aload 0 /* this */
            getfield com.sun.media.jfxmediaimpl.platform.java.ID3MetadataParser.unsynchronized:Z
            ifeq 109
       108: .line 198
            aload 0 /* this */
            aload 8 /* data */
            invokevirtual com.sun.media.jfxmediaimpl.platform.java.ID3MetadataParser.unsynchronizeBuffer:([B)[B
            astore 8 /* data */
       109: .line 200
      StackMap locals: java.lang.String byte[]
      StackMap stack:
            new java.lang.String
            dup
            aload 8 /* data */
            aload 7 /* encoding */
            invokespecial java.lang.String.<init>:([BLjava/lang/String;)V
            astore 9 /* value */
        start local 9 // java.lang.String value
       110: .line 201
            aload 9 /* value */
            ifnull 131
       111: .line 202
            aload 9 /* value */
            iconst_0
            invokevirtual java.lang.String.indexOf:(I)I
            istore 10 /* index */
        start local 10 // int index
       112: .line 203
            iload 10 /* index */
            ifeq 113
            aload 9 /* value */
            iconst_0
            iload 10 /* index */
            invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
            goto 114
      StackMap locals: java.lang.String int
      StackMap stack:
       113: ldc ""
      StackMap locals:
      StackMap stack: java.lang.String
       114: astore 11 /* description */
        start local 11 // java.lang.String description
       115: .line 204
            aload 0 /* this */
            aload 7 /* encoding */
            invokevirtual com.sun.media.jfxmediaimpl.platform.java.ID3MetadataParser.isTwoByteEncoding:(Ljava/lang/String;)Z
            ifeq 116
            aload 9 /* value */
            iload 10 /* index */
            iconst_2
            iadd
            invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
            goto 117
      StackMap locals: java.lang.String
      StackMap stack:
       116: aload 9 /* value */
            iload 10 /* index */
            iconst_1
            iadd
            invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
      StackMap locals:
      StackMap stack: java.lang.String
       117: astore 12 /* text */
        start local 12 // java.lang.String text
       118: .line 206
            aload 0 /* this */
            aload 6 /* frameID */
            invokevirtual com.sun.media.jfxmediaimpl.platform.java.ID3MetadataParser.getTagFromFrameID:(Ljava/lang/String;)[Ljava/lang/String;
            astore 13 /* tag */
        start local 13 // java.lang.String[] tag
       119: .line 207
            aload 13 /* tag */
            ifnull 131
       120: .line 208
            iconst_0
            istore 14 /* i */
        start local 14 // int i
       121: goto 128
       122: .line 209
      StackMap locals: java.lang.String java.lang.String[] int
      StackMap stack:
            aload 11 /* description */
            ldc ""
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 125
       123: .line 210
            aload 0 /* this */
            new java.lang.StringBuilder
            dup
            aload 13 /* tag */
            iload 14 /* i */
            aaload
            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 0 /* this */
            getfield com.sun.media.jfxmediaimpl.platform.java.ID3MetadataParser.TXXXCount:I
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            aload 12 /* text */
            invokevirtual com.sun.media.jfxmediaimpl.platform.java.ID3MetadataParser.addMetadataItem:(Ljava/lang/String;Ljava/lang/Object;)V
       124: .line 211
            goto 126
       125: .line 212
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            new java.lang.StringBuilder
            dup
            aload 13 /* tag */
            iload 14 /* i */
            aaload
            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 0 /* this */
            getfield com.sun.media.jfxmediaimpl.platform.java.ID3MetadataParser.TXXXCount:I
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            new java.lang.StringBuilder
            dup
            aload 11 /* description */
            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 12 /* text */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual com.sun.media.jfxmediaimpl.platform.java.ID3MetadataParser.addMetadataItem:(Ljava/lang/String;Ljava/lang/Object;)V
       126: .line 214
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            dup
            getfield com.sun.media.jfxmediaimpl.platform.java.ID3MetadataParser.TXXXCount:I
            iconst_1
            iadd
            putfield com.sun.media.jfxmediaimpl.platform.java.ID3MetadataParser.TXXXCount:I
       127: .line 208
            iinc 14 /* i */ 1
      StackMap locals:
      StackMap stack:
       128: iload 14 /* i */
            aload 13 /* tag */
            arraylength
            if_icmplt 122
        end local 14 // int i
        end local 13 // java.lang.String[] tag
        end local 12 // java.lang.String text
        end local 11 // java.lang.String description
        end local 10 // int index
        end local 9 // java.lang.String value
        end local 8 // byte[] data
        end local 7 // java.lang.String encoding
       129: .line 218
            goto 131
       130: .line 220
      StackMap locals: com.sun.media.jfxmediaimpl.platform.java.ID3MetadataParser byte[] int int int byte[] java.lang.String
      StackMap stack:
            aload 0 /* this */
            iload 4 /* frameSize */
            invokevirtual com.sun.media.jfxmediaimpl.platform.java.ID3MetadataParser.skipBytes:(I)V
        end local 6 // java.lang.String frameID
        end local 5 // byte[] idBytes
        end local 4 // int frameSize
       131: .line 96
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual com.sun.media.jfxmediaimpl.platform.java.ID3MetadataParser.getStreamPosition:()I
            iload 3 /* tagSize */
            if_icmplt 23
        end local 3 // int tagSize
        end local 2 // int flags
        end local 1 // byte[] buf
       132: .line 224
            goto 150
      StackMap locals: com.sun.media.jfxmediaimpl.platform.java.ID3MetadataParser
      StackMap stack: java.lang.Exception
       133: astore 1 /* ex */
        start local 1 // java.lang.Exception ex
       134: .line 227
            iconst_3
            invokestatic com.sun.media.jfxmedia.logging.Logger.canLog:(I)Z
            ifeq 138
       135: .line 228
            iconst_3
            ldc "ID3MetadataParser"
            ldc "parse"
       136: .line 229
            new java.lang.StringBuilder
            dup
            ldc "Exception while processing ID3v2 metadata: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* ex */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
       137: .line 228
            invokestatic com.sun.media.jfxmedia.logging.Logger.logMsg:(ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
        end local 1 // java.lang.Exception ex
       138: .line 232
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.media.jfxmediaimpl.platform.java.ID3MetadataParser.rawMetaBlob:Ljava/nio/ByteBuffer;
            ifnull 142
       139: .line 233
            aload 0 /* this */
            iconst_0
            invokevirtual com.sun.media.jfxmediaimpl.platform.java.ID3MetadataParser.setParseRawMetadata:(Z)V
       140: .line 234
            aload 0 /* this */
            ldc "ID3"
            invokevirtual com.sun.media.jfxmediaimpl.platform.java.ID3MetadataParser.addRawMetadata:(Ljava/lang/String;)V
       141: .line 235
            aload 0 /* this */
            invokevirtual com.sun.media.jfxmediaimpl.platform.java.ID3MetadataParser.disposeRawMetadata:()V
       142: .line 237
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual com.sun.media.jfxmediaimpl.platform.java.ID3MetadataParser.done:()V
            goto 155
       143: .line 231
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 16
       144: .line 232
            aload 0 /* this */
            getfield com.sun.media.jfxmediaimpl.platform.java.ID3MetadataParser.rawMetaBlob:Ljava/nio/ByteBuffer;
            ifnull 148
       145: .line 233
            aload 0 /* this */
            iconst_0
            invokevirtual com.sun.media.jfxmediaimpl.platform.java.ID3MetadataParser.setParseRawMetadata:(Z)V
       146: .line 234
            aload 0 /* this */
            ldc "ID3"
            invokevirtual com.sun.media.jfxmediaimpl.platform.java.ID3MetadataParser.addRawMetadata:(Ljava/lang/String;)V
       147: .line 235
            aload 0 /* this */
            invokevirtual com.sun.media.jfxmediaimpl.platform.java.ID3MetadataParser.disposeRawMetadata:()V
       148: .line 237
      StackMap locals: com.sun.media.jfxmediaimpl.platform.java.ID3MetadataParser top top top top top top top top top top top top top top top java.lang.Throwable
      StackMap stack:
            aload 0 /* this */
            invokevirtual com.sun.media.jfxmediaimpl.platform.java.ID3MetadataParser.done:()V
       149: .line 238
            aload 16
            athrow
       150: .line 232
      StackMap locals: com.sun.media.jfxmediaimpl.platform.java.ID3MetadataParser
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.media.jfxmediaimpl.platform.java.ID3MetadataParser.rawMetaBlob:Ljava/nio/ByteBuffer;
            ifnull 154
       151: .line 233
            aload 0 /* this */
            iconst_0
            invokevirtual com.sun.media.jfxmediaimpl.platform.java.ID3MetadataParser.setParseRawMetadata:(Z)V
       152: .line 234
            aload 0 /* this */
            ldc "ID3"
            invokevirtual com.sun.media.jfxmediaimpl.platform.java.ID3MetadataParser.addRawMetadata:(Ljava/lang/String;)V
       153: .line 235
            aload 0 /* this */
            invokevirtual com.sun.media.jfxmediaimpl.platform.java.ID3MetadataParser.disposeRawMetadata:()V
       154: .line 237
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual com.sun.media.jfxmediaimpl.platform.java.ID3MetadataParser.done:()V
       155: .line 239
      StackMap locals:
      StackMap stack:
            return
        end local 0 // com.sun.media.jfxmediaimpl.platform.java.ID3MetadataParser this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0  156     0         this  Lcom/sun/media/jfxmediaimpl/platform/java/ID3MetadataParser;
            3  132     1          buf  [B
            7  132     2        flags  I
           10  132     3      tagSize  I
           11   17     4            i  I
           12   17     5        shift  I
           26   27     4    frameSize  I
           29  131     4    frameSize  I
           25   27     5      idBytes  [B
           28  131     5      idBytes  [B
           39  131     6      frameID  Ljava/lang/String;
           47   54     7         data  [B
           52   54     8        image  [B
           57   70     7     encoding  Ljava/lang/String;
           58   70     8         data  [B
           61   70     9        value  Ljava/lang/String;
           62   70    10          tag  [Ljava/lang/String;
           64   70    11            i  I
           66   68    12     tagValue  Ljava/lang/Object;
           73  103     7     encoding  Ljava/lang/String;
           74  103     8         data  [B
           77  103     9     language  Ljava/lang/String;
           81  103    10        value  Ljava/lang/String;
           83  103    11        index  I
           84  103    12      content  Ljava/lang/String;
           87   88    13      comment  Ljava/lang/String;
           89   90    13      comment  Ljava/lang/String;
           93   94    13      comment  Ljava/lang/String;
           95  103    13      comment  Ljava/lang/String;
           96  103    14          tag  [Ljava/lang/String;
           98  103    15            i  I
          106  129     7     encoding  Ljava/lang/String;
          107  129     8         data  [B
          110  129     9        value  Ljava/lang/String;
          112  129    10        index  I
          115  129    11  description  Ljava/lang/String;
          118  129    12         text  Ljava/lang/String;
          119  129    13          tag  [Ljava/lang/String;
          121  129    14            i  I
          134  138     1           ex  Ljava/lang/Exception;
      Exception table:
        from    to  target  type
           0   132     133  Class java.lang.Exception
           0   138     143  any

  private int getFrameSize();
    descriptor: ()I
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=5, args_size=1
        start local 0 // com.sun.media.jfxmediaimpl.platform.java.ID3MetadataParser this
         0: .line 242
            aload 0 /* this */
            getfield com.sun.media.jfxmediaimpl.platform.java.ID3MetadataParser.version:I
            iconst_4
            if_icmpne 11
         1: .line 243
            aload 0 /* this */
            iconst_4
            invokevirtual com.sun.media.jfxmediaimpl.platform.java.ID3MetadataParser.getBytes:(I)[B
            astore 1 /* buf */
        start local 1 // byte[] buf
         2: .line 244
            iconst_0
            istore 2 /* size */
        start local 2 // int size
         3: .line 245
            iconst_0
            istore 3 /* i */
        start local 3 // int i
         4: bipush 21
            istore 4 /* shift */
        start local 4 // int shift
         5: goto 9
         6: .line 246
      StackMap locals: com.sun.media.jfxmediaimpl.platform.java.ID3MetadataParser byte[] int int int
      StackMap stack:
            iload 2 /* size */
            aload 1 /* buf */
            iload 3 /* i */
            baload
            bipush 127
            iand
            iload 4 /* shift */
            ishl
            iadd
            istore 2 /* size */
         7: .line 247
            iinc 4 /* shift */ -7
         8: .line 245
            iinc 3 /* i */ 1
      StackMap locals:
      StackMap stack:
         9: iload 3 /* i */
            iconst_4
            if_icmplt 6
        end local 4 // int shift
        end local 3 // int i
        10: .line 249
            iload 2 /* size */
            ireturn
        end local 2 // int size
        end local 1 // byte[] buf
        11: .line 251
      StackMap locals: com.sun.media.jfxmediaimpl.platform.java.ID3MetadataParser
      StackMap stack:
            aload 0 /* this */
            invokevirtual com.sun.media.jfxmediaimpl.platform.java.ID3MetadataParser.getInteger:()I
            ireturn
        end local 0 // com.sun.media.jfxmediaimpl.platform.java.ID3MetadataParser this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0   12     0   this  Lcom/sun/media/jfxmediaimpl/platform/java/ID3MetadataParser;
            2   11     1    buf  [B
            3   11     2   size  I
            4   10     3      i  I
            5   10     4  shift  I
    Exceptions:
      throws java.io.IOException

  private java.lang.String getEncoding();
    descriptor: ()Ljava/lang/String;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=2, args_size=1
        start local 0 // com.sun.media.jfxmediaimpl.platform.java.ID3MetadataParser this
         0: .line 256
            aload 0 /* this */
            invokevirtual com.sun.media.jfxmediaimpl.platform.java.ID3MetadataParser.getNextByte:()B
            istore 1 /* encodingType */
        start local 1 // byte encodingType
         1: .line 257
            iload 1 /* encodingType */
            ifne 3
         2: .line 258
            ldc "ISO-8859-1"
            areturn
         3: .line 259
      StackMap locals: int
      StackMap stack:
            iload 1 /* encodingType */
            iconst_1
            if_icmpne 5
         4: .line 260
            ldc "UTF-16"
            areturn
         5: .line 261
      StackMap locals:
      StackMap stack:
            iload 1 /* encodingType */
            iconst_2
            if_icmpne 7
         6: .line 262
            ldc "UTF-16BE"
            areturn
         7: .line 263
      StackMap locals:
      StackMap stack:
            iload 1 /* encodingType */
            iconst_3
            if_icmpne 9
         8: .line 264
            ldc "UTF-8"
            areturn
         9: .line 266
      StackMap locals:
      StackMap stack:
            new java.lang.IllegalArgumentException
            dup
            invokespecial java.lang.IllegalArgumentException.<init>:()V
            athrow
        end local 1 // byte encodingType
        end local 0 // com.sun.media.jfxmediaimpl.platform.java.ID3MetadataParser this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0   10     0          this  Lcom/sun/media/jfxmediaimpl/platform/java/ID3MetadataParser;
            1   10     1  encodingType  B
    Exceptions:
      throws java.io.IOException

  private boolean isTwoByteEncoding(java.lang.String);
    descriptor: (Ljava/lang/String;)Z
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.sun.media.jfxmediaimpl.platform.java.ID3MetadataParser this
        start local 1 // java.lang.String encoding
         0: .line 271
            aload 1 /* encoding */
            ldc "ISO-8859-1"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 1
            aload 1 /* encoding */
            ldc "UTF-8"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 2
         1: .line 272
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
         2: .line 273
      StackMap locals:
      StackMap stack:
            aload 1 /* encoding */
            ldc "UTF-16"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 3
            aload 1 /* encoding */
            ldc "UTF-16BE"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 4
         3: .line 274
      StackMap locals:
      StackMap stack:
            iconst_1
            ireturn
         4: .line 276
      StackMap locals:
      StackMap stack:
            new java.lang.IllegalArgumentException
            dup
            invokespecial java.lang.IllegalArgumentException.<init>:()V
            athrow
        end local 1 // java.lang.String encoding
        end local 0 // com.sun.media.jfxmediaimpl.platform.java.ID3MetadataParser this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    5     0      this  Lcom/sun/media/jfxmediaimpl/platform/java/ID3MetadataParser;
            0    5     1  encoding  Ljava/lang/String;
    MethodParameters:
          Name  Flags
      encoding  

  private java.lang.String[] getTagFromFrameID(java.lang.String);
    descriptor: (Ljava/lang/String;)[Ljava/lang/String;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // com.sun.media.jfxmediaimpl.platform.java.ID3MetadataParser this
        start local 1 // java.lang.String frameID
         0: .line 297
            aload 1 /* frameID */
            ldc "TPE2"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 1
            aload 1 /* frameID */
            ldc "TP2"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 2
         1: .line 298
      StackMap locals:
      StackMap stack:
            iconst_1
            anewarray java.lang.String
            dup
            iconst_0
            ldc "album artist"
            aastore
            areturn
         2: .line 299
      StackMap locals:
      StackMap stack:
            aload 1 /* frameID */
            ldc "TALB"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 3
            aload 1 /* frameID */
            ldc "TAL"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 4
         3: .line 300
      StackMap locals:
      StackMap stack:
            iconst_1
            anewarray java.lang.String
            dup
            iconst_0
            ldc "album"
            aastore
            areturn
         4: .line 301
      StackMap locals:
      StackMap stack:
            aload 1 /* frameID */
            ldc "TPE1"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 5
            aload 1 /* frameID */
            ldc "TP1"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 6
         5: .line 302
      StackMap locals:
      StackMap stack:
            iconst_1
            anewarray java.lang.String
            dup
            iconst_0
            ldc "artist"
            aastore
            areturn
         6: .line 303
      StackMap locals:
      StackMap stack:
            aload 1 /* frameID */
            ldc "COMM"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 7
            aload 1 /* frameID */
            ldc "COM"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 8
         7: .line 304
      StackMap locals:
      StackMap stack:
            iconst_1
            anewarray java.lang.String
            dup
            iconst_0
            ldc "comment"
            aastore
            areturn
         8: .line 305
      StackMap locals:
      StackMap stack:
            aload 1 /* frameID */
            ldc "TCOM"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 9
            aload 1 /* frameID */
            ldc "TCM"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 10
         9: .line 306
      StackMap locals:
      StackMap stack:
            iconst_1
            anewarray java.lang.String
            dup
            iconst_0
            ldc "composer"
            aastore
            areturn
        10: .line 307
      StackMap locals:
      StackMap stack:
            aload 1 /* frameID */
            ldc "TLEN"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 11
            aload 1 /* frameID */
            ldc "TLE"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 12
        11: .line 308
      StackMap locals:
      StackMap stack:
            iconst_1
            anewarray java.lang.String
            dup
            iconst_0
            ldc "duration"
            aastore
            areturn
        12: .line 309
      StackMap locals:
      StackMap stack:
            aload 1 /* frameID */
            ldc "TCON"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 13
            aload 1 /* frameID */
            ldc "TCO"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 14
        13: .line 310
      StackMap locals:
      StackMap stack:
            iconst_1
            anewarray java.lang.String
            dup
            iconst_0
            ldc "genre"
            aastore
            areturn
        14: .line 311
      StackMap locals:
      StackMap stack:
            aload 1 /* frameID */
            ldc "TIT2"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 15
            aload 1 /* frameID */
            ldc "TT2"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 16
        15: .line 312
      StackMap locals:
      StackMap stack:
            iconst_1
            anewarray java.lang.String
            dup
            iconst_0
            ldc "title"
            aastore
            areturn
        16: .line 313
      StackMap locals:
      StackMap stack:
            aload 1 /* frameID */
            ldc "TRCK"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 17
            aload 1 /* frameID */
            ldc "TRK"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 18
        17: .line 314
      StackMap locals:
      StackMap stack:
            iconst_2
            anewarray java.lang.String
            dup
            iconst_0
            ldc "track number"
            aastore
            dup
            iconst_1
            ldc "track count"
            aastore
            areturn
        18: .line 315
      StackMap locals:
      StackMap stack:
            aload 1 /* frameID */
            ldc "TPOS"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 19
            aload 1 /* frameID */
            ldc "TPA"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 20
        19: .line 316
      StackMap locals:
      StackMap stack:
            iconst_2
            anewarray java.lang.String
            dup
            iconst_0
            ldc "disc number"
            aastore
            dup
            iconst_1
            ldc "disc count"
            aastore
            areturn
        20: .line 317
      StackMap locals:
      StackMap stack:
            aload 1 /* frameID */
            ldc "TYER"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 21
            aload 1 /* frameID */
            ldc "TDRC"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 22
        21: .line 318
      StackMap locals:
      StackMap stack:
            iconst_1
            anewarray java.lang.String
            dup
            iconst_0
            ldc "year"
            aastore
            areturn
        22: .line 319
      StackMap locals:
      StackMap stack:
            aload 1 /* frameID */
            ldc "TXX"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 23
            aload 1 /* frameID */
            ldc "TXXX"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 24
        23: .line 320
      StackMap locals:
      StackMap stack:
            iconst_1
            anewarray java.lang.String
            dup
            iconst_0
            ldc "text"
            aastore
            areturn
        24: .line 323
      StackMap locals:
      StackMap stack:
            aconst_null
            areturn
        end local 1 // java.lang.String frameID
        end local 0 // com.sun.media.jfxmediaimpl.platform.java.ID3MetadataParser this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   25     0     this  Lcom/sun/media/jfxmediaimpl/platform/java/ID3MetadataParser;
            0   25     1  frameID  Ljava/lang/String;
    MethodParameters:
         Name  Flags
      frameID  

  private byte[] getImageFromPIC(byte[]);
    descriptor: ([B)[B
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=6, locals=4, args_size=2
        start local 0 // com.sun.media.jfxmediaimpl.platform.java.ID3MetadataParser this
        start local 1 // byte[] data
         0: .line 338
            iconst_5
            istore 2 /* imgOffset */
        start local 2 // int imgOffset
         1: .line 339
            goto 3
         2: .line 340
      StackMap locals: int
      StackMap stack:
            iinc 2 /* imgOffset */ 1
         3: .line 339
      StackMap locals:
      StackMap stack:
            aload 1 /* data */
            iload 2 /* imgOffset */
            baload
            ifeq 4
            iload 2 /* imgOffset */
            aload 1 /* data */
            arraylength
            if_icmplt 2
         4: .line 342
      StackMap locals:
      StackMap stack:
            iload 2 /* imgOffset */
            aload 1 /* data */
            arraylength
            if_icmpne 6
         5: .line 344
            aconst_null
            areturn
         6: .line 347
      StackMap locals:
      StackMap stack:
            new java.lang.String
            dup
            aload 1 /* data */
            iconst_1
            iconst_3
            ldc "ISO-8859-1"
            invokestatic java.nio.charset.Charset.forName:(Ljava/lang/String;)Ljava/nio/charset/Charset;
            invokespecial java.lang.String.<init>:([BIILjava/nio/charset/Charset;)V
            astore 3 /* type */
        start local 3 // java.lang.String type
         7: .line 348
            iconst_1
            invokestatic com.sun.media.jfxmedia.logging.Logger.canLog:(I)Z
            ifeq 11
         8: .line 349
            iconst_1
            ldc "ID3MetadataParser"
            ldc "getImageFromPIC"
         9: .line 350
            new java.lang.StringBuilder
            dup
            ldc "PIC type: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 3 /* type */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        10: .line 349
            invokestatic com.sun.media.jfxmedia.logging.Logger.logMsg:(ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
        11: .line 353
      StackMap locals: java.lang.String
      StackMap stack:
            aload 3 /* type */
            ldc "PNG"
            invokevirtual java.lang.String.equalsIgnoreCase:(Ljava/lang/String;)Z
            ifne 12
            aload 3 /* type */
            ldc "JPG"
            invokevirtual java.lang.String.equalsIgnoreCase:(Ljava/lang/String;)Z
            ifeq 13
        12: .line 355
      StackMap locals:
      StackMap stack:
            aload 1 /* data */
            iload 2 /* imgOffset */
            iconst_1
            iadd
            aload 1 /* data */
            arraylength
            invokestatic java.util.Arrays.copyOfRange:([BII)[B
            areturn
        13: .line 357
      StackMap locals:
      StackMap stack:
            iconst_3
            invokestatic com.sun.media.jfxmedia.logging.Logger.canLog:(I)Z
            ifeq 17
        14: .line 358
            iconst_3
            ldc "ID3MetadataParser"
            ldc "getImageFromPIC"
        15: .line 359
            new java.lang.StringBuilder
            dup
            ldc "Unsupported picture type found \""
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 3 /* type */
            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;
        16: .line 358
            invokestatic com.sun.media.jfxmedia.logging.Logger.logMsg:(ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
        17: .line 361
      StackMap locals:
      StackMap stack:
            aconst_null
            areturn
        end local 3 // java.lang.String type
        end local 2 // int imgOffset
        end local 1 // byte[] data
        end local 0 // com.sun.media.jfxmediaimpl.platform.java.ID3MetadataParser this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   18     0       this  Lcom/sun/media/jfxmediaimpl/platform/java/ID3MetadataParser;
            0   18     1       data  [B
            1   18     2  imgOffset  I
            7   18     3       type  Ljava/lang/String;
    MethodParameters:
      Name  Flags
      data  

  private byte[] getImageFromAPIC(byte[]);
    descriptor: ([B)[B
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=9, args_size=2
        start local 0 // com.sun.media.jfxmediaimpl.platform.java.ID3MetadataParser this
        start local 1 // byte[] data
         0: .line 365
            iconst_0
            istore 2 /* isImageJPEG */
        start local 2 // boolean isImageJPEG
         1: .line 366
            iconst_0
            istore 3 /* isImagePNG */
        start local 3 // boolean isImagePNG
         2: .line 369
            aload 1 /* data */
            arraylength
            bipush 10
            isub
            istore 4 /* maxIndex */
        start local 4 // int maxIndex
         3: .line 370
            iconst_0
            istore 5 /* offset */
        start local 5 // int offset
         4: .line 371
            iconst_0
            istore 6 /* j */
        start local 6 // int j
         5: goto 27
         6: .line 372
      StackMap locals: com.sun.media.jfxmediaimpl.platform.java.ID3MetadataParser byte[] int int int int int
      StackMap stack:
            aload 1 /* data */
            iload 6 /* j */
            baload
            bipush 105
            if_icmpne 26
         7: .line 373
            aload 1 /* data */
            iload 6 /* j */
            iconst_1
            iadd
            baload
            bipush 109
            if_icmpne 26
         8: .line 374
            aload 1 /* data */
            iload 6 /* j */
            iconst_2
            iadd
            baload
            bipush 97
            if_icmpne 26
         9: .line 375
            aload 1 /* data */
            iload 6 /* j */
            iconst_3
            iadd
            baload
            bipush 103
            if_icmpne 26
        10: .line 376
            aload 1 /* data */
            iload 6 /* j */
            iconst_4
            iadd
            baload
            bipush 101
            if_icmpne 26
        11: .line 377
            aload 1 /* data */
            iload 6 /* j */
            iconst_5
            iadd
            baload
            bipush 47
            if_icmpne 26
        12: .line 379
            iinc 6 /* j */ 6
        13: .line 382
            aload 1 /* data */
            iload 6 /* j */
            baload
            bipush 106
            if_icmpne 20
        14: .line 383
            aload 1 /* data */
            iload 6 /* j */
            iconst_1
            iadd
            baload
            bipush 112
            if_icmpne 20
        15: .line 384
            aload 1 /* data */
            iload 6 /* j */
            iconst_2
            iadd
            baload
            bipush 101
            if_icmpne 20
        16: .line 385
            aload 1 /* data */
            iload 6 /* j */
            iconst_3
            iadd
            baload
            bipush 103
            if_icmpne 20
        17: .line 387
            iconst_1
            istore 2 /* isImageJPEG */
        18: .line 388
            iload 6 /* j */
            iconst_4
            iadd
            istore 5 /* offset */
        19: .line 389
            goto 28
        20: .line 391
      StackMap locals:
      StackMap stack:
            aload 1 /* data */
            iload 6 /* j */
            baload
            bipush 112
            if_icmpne 26
        21: .line 392
            aload 1 /* data */
            iload 6 /* j */
            iconst_1
            iadd
            baload
            bipush 110
            if_icmpne 26
        22: .line 393
            aload 1 /* data */
            iload 6 /* j */
            iconst_2
            iadd
            baload
            bipush 103
            if_icmpne 26
        23: .line 395
            iconst_1
            istore 3 /* isImagePNG */
        24: .line 396
            iload 6 /* j */
            iconst_3
            iadd
            istore 5 /* offset */
        25: .line 397
            goto 28
        26: .line 371
      StackMap locals:
      StackMap stack:
            iinc 6 /* j */ 1
      StackMap locals:
      StackMap stack:
        27: iload 6 /* j */
            iload 4 /* maxIndex */
            if_icmplt 6
        end local 6 // int j
        28: .line 402
      StackMap locals:
      StackMap stack:
            iload 2 /* isImageJPEG */
            ifeq 41
        29: .line 404
            iconst_0
            istore 6 /* isSignatureFound */
        start local 6 // boolean isSignatureFound
        30: .line 405
            aload 1 /* data */
            arraylength
            iconst_1
            isub
            istore 7 /* upperBound */
        start local 7 // int upperBound
        31: .line 407
            iload 5 /* offset */
            istore 8 /* j */
        start local 8 // int j
        32: goto 38
        33: .line 409
      StackMap locals: int int int
      StackMap stack:
            iconst_m1
            aload 1 /* data */
            iload 8 /* j */
            baload
            if_icmpne 37
            bipush -40
            aload 1 /* data */
            iload 8 /* j */
            iconst_1
            iadd
            baload
            if_icmpne 37
        34: .line 411
            iconst_1
            istore 6 /* isSignatureFound */
        35: .line 412
            iload 8 /* j */
            istore 5 /* offset */
        36: .line 413
            goto 39
        37: .line 407
      StackMap locals:
      StackMap stack:
            iinc 8 /* j */ 1
      StackMap locals:
      StackMap stack:
        38: iload 8 /* j */
            iload 7 /* upperBound */
            if_icmplt 33
        end local 8 // int j
        39: .line 417
      StackMap locals:
      StackMap stack:
            iload 6 /* isSignatureFound */
            ifeq 41
        40: .line 419
            aload 1 /* data */
            iload 5 /* offset */
            aload 1 /* data */
            arraylength
            invokestatic java.util.Arrays.copyOfRange:([BII)[B
            areturn
        end local 7 // int upperBound
        end local 6 // boolean isSignatureFound
        41: .line 423
      StackMap locals:
      StackMap stack:
            iload 3 /* isImagePNG */
            ifeq 61
        42: .line 425
            iconst_0
            istore 6 /* isSignatureFound */
        start local 6 // boolean isSignatureFound
        43: .line 426
            aload 1 /* data */
            arraylength
            bipush 7
            isub
            istore 7 /* upperBound */
        start local 7 // int upperBound
        44: .line 428
            iload 5 /* offset */
            istore 8 /* j */
        start local 8 // int j
        45: goto 58
        46: .line 430
      StackMap locals: int int int
      StackMap stack:
            bipush -119
            aload 1 /* data */
            iload 8 /* j */
            baload
            if_icmpne 57
        47: .line 431
            bipush 80
            aload 1 /* data */
            iload 8 /* j */
            iconst_1
            iadd
            baload
            if_icmpne 57
        48: .line 432
            bipush 78
            aload 1 /* data */
            iload 8 /* j */
            iconst_2
            iadd
            baload
            if_icmpne 57
        49: .line 433
            bipush 71
            aload 1 /* data */
            iload 8 /* j */
            iconst_3
            iadd
            baload
            if_icmpne 57
        50: .line 434
            bipush 13
            aload 1 /* data */
            iload 8 /* j */
            iconst_4
            iadd
            baload
            if_icmpne 57
        51: .line 435
            bipush 10
            aload 1 /* data */
            iload 8 /* j */
            iconst_5
            iadd
            baload
            if_icmpne 57
        52: .line 436
            bipush 26
            aload 1 /* data */
            iload 8 /* j */
            bipush 6
            iadd
            baload
            if_icmpne 57
        53: .line 437
            bipush 10
            aload 1 /* data */
            iload 8 /* j */
            bipush 7
            iadd
            baload
            if_icmpne 57
        54: .line 440
            iconst_1
            istore 6 /* isSignatureFound */
        55: .line 441
            iload 8 /* j */
            istore 5 /* offset */
        56: .line 442
            goto 59
        57: .line 428
      StackMap locals:
      StackMap stack:
            iinc 8 /* j */ 1
      StackMap locals:
      StackMap stack:
        58: iload 8 /* j */
            iload 7 /* upperBound */
            if_icmplt 46
        end local 8 // int j
        59: .line 446
      StackMap locals:
      StackMap stack:
            iload 6 /* isSignatureFound */
            ifeq 61
        60: .line 448
            aload 1 /* data */
            iload 5 /* offset */
            aload 1 /* data */
            arraylength
            invokestatic java.util.Arrays.copyOfRange:([BII)[B
            areturn
        end local 7 // int upperBound
        end local 6 // boolean isSignatureFound
        61: .line 451
      StackMap locals:
      StackMap stack:
            aconst_null
            areturn
        end local 5 // int offset
        end local 4 // int maxIndex
        end local 3 // boolean isImagePNG
        end local 2 // boolean isImageJPEG
        end local 1 // byte[] data
        end local 0 // com.sun.media.jfxmediaimpl.platform.java.ID3MetadataParser this
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0   62     0              this  Lcom/sun/media/jfxmediaimpl/platform/java/ID3MetadataParser;
            0   62     1              data  [B
            1   62     2       isImageJPEG  Z
            2   62     3        isImagePNG  Z
            3   62     4          maxIndex  I
            4   62     5            offset  I
            5   28     6                 j  I
           30   41     6  isSignatureFound  Z
           31   41     7        upperBound  I
           32   39     8                 j  I
           43   61     6  isSignatureFound  Z
           44   61     7        upperBound  I
           45   59     8                 j  I
    MethodParameters:
      Name  Flags
      data  

  private byte[] unsynchronizeBuffer(byte[]);
    descriptor: ([B)[B
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=5, args_size=2
        start local 0 // com.sun.media.jfxmediaimpl.platform.java.ID3MetadataParser this
        start local 1 // byte[] data
         0: .line 455
            aload 1 /* data */
            arraylength
            newarray 8
            astore 2 /* udata */
        start local 2 // byte[] udata
         1: .line 456
            iconst_0
            istore 3 /* udatalen */
        start local 3 // int udatalen
         2: .line 458
            iconst_0
            istore 4 /* i */
        start local 4 // int i
         3: goto 15
         4: .line 459
      StackMap locals: byte[] int int
      StackMap stack:
            aload 1 /* data */
            iload 4 /* i */
            baload
            sipush 255
            iand
            sipush 255
            if_icmpne 5
            aload 1 /* data */
            iload 4 /* i */
            iconst_1
            iadd
            baload
            ifne 5
            aload 1 /* data */
            iload 4 /* i */
            iconst_2
            iadd
            baload
            ifeq 6
         5: .line 460
      StackMap locals:
      StackMap stack:
            aload 1 /* data */
            iload 4 /* i */
            baload
            sipush 255
            iand
            sipush 255
            if_icmpne 12
            aload 1 /* data */
            iload 4 /* i */
            iconst_1
            iadd
            baload
            ifne 12
            aload 1 /* data */
            iload 4 /* i */
            iconst_2
            iadd
            baload
            sipush 224
            iand
            sipush 224
            if_icmpne 12
         6: .line 461
      StackMap locals:
      StackMap stack:
            aload 2 /* udata */
            iload 3 /* udatalen */
            aload 1 /* data */
            iload 4 /* i */
            baload
            bastore
         7: .line 462
            iinc 3 /* udatalen */ 1
         8: .line 463
            aload 2 /* udata */
            iload 3 /* udatalen */
            aload 1 /* data */
            iload 4 /* i */
            iconst_2
            iadd
            baload
            bastore
         9: .line 464
            iinc 3 /* udatalen */ 1
        10: .line 465
            iinc 4 /* i */ 2
        11: .line 466
            goto 14
        12: .line 467
      StackMap locals:
      StackMap stack:
            aload 2 /* udata */
            iload 3 /* udatalen */
            aload 1 /* data */
            iload 4 /* i */
            baload
            bastore
        13: .line 468
            iinc 3 /* udatalen */ 1
        14: .line 458
      StackMap locals:
      StackMap stack:
            iinc 4 /* i */ 1
      StackMap locals:
      StackMap stack:
        15: iload 4 /* i */
            aload 1 /* data */
            arraylength
            if_icmplt 4
        end local 4 // int i
        16: .line 472
            aload 2 /* udata */
            iload 3 /* udatalen */
            invokestatic java.util.Arrays.copyOf:([BI)[B
            areturn
        end local 3 // int udatalen
        end local 2 // byte[] udata
        end local 1 // byte[] data
        end local 0 // com.sun.media.jfxmediaimpl.platform.java.ID3MetadataParser this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   17     0      this  Lcom/sun/media/jfxmediaimpl/platform/java/ID3MetadataParser;
            0   17     1      data  [B
            1   17     2     udata  [B
            2   17     3  udatalen  I
            3   16     4         i  I
    MethodParameters:
      Name  Flags
      data  
}
SourceFile: "ID3MetadataParser.java"