public final class com.sun.media.sound.AiffFileReader extends com.sun.media.sound.SunFileReader
  minor version: 0
  major version: 59
  flags: flags: (0x0031) ACC_PUBLIC, ACC_FINAL, ACC_SUPER
  this_class: com.sun.media.sound.AiffFileReader
  super_class: com.sun.media.sound.SunFileReader
{
  public void <init>();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.sun.media.sound.AiffFileReader this
         0: .line 44
            aload 0 /* this */
            invokespecial com.sun.media.sound.SunFileReader.<init>:()V
            return
        end local 0 // com.sun.media.sound.AiffFileReader this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/sun/media/sound/AiffFileReader;

  com.sun.media.sound.StandardFileFormat getAudioFileFormatImpl(java.io.InputStream);
    descriptor: (Ljava/io/InputStream;)Lcom/sun/media/sound/StandardFileFormat;
    flags: (0x0000) 
    Code:
      stack=9, locals=21, args_size=2
        start local 0 // com.sun.media.sound.AiffFileReader this
        start local 1 // java.io.InputStream stream
         0: .line 49
            new java.io.DataInputStream
            dup
            aload 1 /* stream */
            invokespecial java.io.DataInputStream.<init>:(Ljava/io/InputStream;)V
            astore 2 /* dis */
        start local 2 // java.io.DataInputStream dis
         1: .line 51
            aconst_null
            astore 3 /* format */
        start local 3 // javax.sound.sampled.AudioFormat format
         2: .line 54
            aload 2 /* dis */
            invokevirtual java.io.DataInputStream.readInt:()I
            istore 4 /* magic */
        start local 4 // int magic
         3: .line 57
            iload 4 /* magic */
            ldc 1179603533
            if_icmpeq 5
         4: .line 59
            new javax.sound.sampled.UnsupportedAudioFileException
            dup
            ldc "not an AIFF file"
            invokespecial javax.sound.sampled.UnsupportedAudioFileException.<init>:(Ljava/lang/String;)V
            athrow
         5: .line 62
      StackMap locals: java.io.DataInputStream javax.sound.sampled.AudioFormat int
      StackMap stack:
            lconst_0
            lstore 5 /* frameLength */
        start local 5 // long frameLength
         6: .line 63
            aload 2 /* dis */
            invokevirtual java.io.DataInputStream.readInt:()I
            istore 7 /* length */
        start local 7 // int length
         7: .line 64
            aload 2 /* dis */
            invokevirtual java.io.DataInputStream.readInt:()I
            istore 8 /* iffType */
        start local 8 // int iffType
         8: .line 67
            iload 7 /* length */
            ifgt 12
         9: .line 68
            iconst_m1
            istore 7 /* length */
        10: .line 69
            ldc -1
            lstore 9 /* totallength */
        start local 9 // long totallength
        11: .line 70
            goto 13
        end local 9 // long totallength
        12: .line 71
      StackMap locals: long int int
      StackMap stack:
            iload 7 /* length */
            bipush 8
            iadd
            i2l
            lstore 9 /* totallength */
        start local 9 // long totallength
        13: .line 75
      StackMap locals: long
      StackMap stack:
            iconst_0
            istore 11 /* aifc */
        start local 11 // boolean aifc
        14: .line 77
            iload 8 /* iffType */
            ldc 1095321155
            if_icmpne 16
        15: .line 78
            iconst_1
            istore 11 /* aifc */
        16: .line 83
      StackMap locals: int
      StackMap stack:
            iconst_0
            istore 12 /* ssndFound */
        start local 12 // boolean ssndFound
        17: .line 84
            goto 60
        18: .line 86
      StackMap locals: int
      StackMap stack:
            aload 2 /* dis */
            invokevirtual java.io.DataInputStream.readInt:()I
            istore 13 /* chunkName */
        start local 13 // int chunkName
        19: .line 87
            aload 2 /* dis */
            invokevirtual java.io.DataInputStream.readInt:()I
            istore 14 /* chunkLen */
        start local 14 // int chunkLen
        20: .line 89
            iconst_0
            istore 15 /* chunkRead */
        start local 15 // int chunkRead
        21: .line 92
            iload 13 /* chunkName */
            lookupswitch { // 3
           1129270605: 23
           1180058962: 22
           1397968452: 52
              default: 56
          }
        22: .line 95
      StackMap locals: int int int
      StackMap stack:
            goto 56
        23: .line 100
      StackMap locals:
      StackMap stack:
            iload 11 /* aifc */
            ifne 24
            iload 14 /* chunkLen */
            bipush 18
            if_icmplt 25
      StackMap locals:
      StackMap stack:
        24: iload 11 /* aifc */
            ifeq 26
            iload 14 /* chunkLen */
            bipush 22
            if_icmpge 26
        25: .line 101
      StackMap locals:
      StackMap stack:
            new javax.sound.sampled.UnsupportedAudioFileException
            dup
            ldc "Invalid AIFF/COMM chunksize"
            invokespecial javax.sound.sampled.UnsupportedAudioFileException.<init>:(Ljava/lang/String;)V
            athrow
        26: .line 104
      StackMap locals:
      StackMap stack:
            aload 2 /* dis */
            invokevirtual java.io.DataInputStream.readUnsignedShort:()I
            istore 16 /* channels */
        start local 16 // int channels
        27: .line 105
            iload 16 /* channels */
            ifgt 29
        28: .line 106
            new javax.sound.sampled.UnsupportedAudioFileException
            dup
            ldc "Invalid number of channels"
            invokespecial javax.sound.sampled.UnsupportedAudioFileException.<init>:(Ljava/lang/String;)V
            athrow
        29: .line 108
      StackMap locals: int
      StackMap stack:
            aload 2 /* dis */
            invokevirtual java.io.DataInputStream.readInt:()I
            i2l
            ldc 4294967295
            land
            lstore 5 /* frameLength */
        30: .line 110
            aload 2 /* dis */
            invokevirtual java.io.DataInputStream.readUnsignedShort:()I
            istore 17 /* sampleSizeInBits */
        start local 17 // int sampleSizeInBits
        31: .line 111
            iload 17 /* sampleSizeInBits */
            iconst_1
            if_icmplt 32
            iload 17 /* sampleSizeInBits */
            bipush 32
            if_icmple 33
        32: .line 112
      StackMap locals: int
      StackMap stack:
            new javax.sound.sampled.UnsupportedAudioFileException
            dup
            ldc "Invalid AIFF/COMM sampleSize"
            invokespecial javax.sound.sampled.UnsupportedAudioFileException.<init>:(Ljava/lang/String;)V
            athrow
        33: .line 114
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 2 /* dis */
            invokevirtual com.sun.media.sound.AiffFileReader.read_ieee_extended:(Ljava/io/DataInputStream;)D
            d2f
            fstore 18 /* sampleRate */
        start local 18 // float sampleRate
        34: .line 115
            iinc 15 /* chunkRead */ 18
        35: .line 119
            getstatic javax.sound.sampled.AudioFormat$Encoding.PCM_SIGNED:Ljavax/sound/sampled/AudioFormat$Encoding;
            astore 19 /* encoding */
        start local 19 // javax.sound.sampled.AudioFormat$Encoding encoding
        36: .line 121
            iload 11 /* aifc */
            ifeq 46
        37: .line 122
            aload 2 /* dis */
            invokevirtual java.io.DataInputStream.readInt:()I
            istore 20 /* enc */
        start local 20 // int enc
        38: iinc 15 /* chunkRead */ 4
        39: .line 123
            iload 20 /* enc */
            lookupswitch { // 2
           1313820229: 40
           1970037111: 42
              default: 45
          }
        40: .line 125
      StackMap locals: float javax.sound.sampled.AudioFormat$Encoding int
      StackMap stack:
            getstatic javax.sound.sampled.AudioFormat$Encoding.PCM_SIGNED:Ljavax/sound/sampled/AudioFormat$Encoding;
            astore 19 /* encoding */
        41: .line 126
            goto 46
        42: .line 128
      StackMap locals:
      StackMap stack:
            getstatic javax.sound.sampled.AudioFormat$Encoding.ULAW:Ljavax/sound/sampled/AudioFormat$Encoding;
            astore 19 /* encoding */
        43: .line 129
            bipush 8
            istore 17 /* sampleSizeInBits */
        44: .line 130
            goto 46
        45: .line 132
      StackMap locals:
      StackMap stack:
            new javax.sound.sampled.UnsupportedAudioFileException
            dup
            ldc "Invalid AIFF encoding"
            invokespecial javax.sound.sampled.UnsupportedAudioFileException.<init>:(Ljava/lang/String;)V
            athrow
        end local 20 // int enc
        46: .line 135
      StackMap locals:
      StackMap stack:
            iload 17 /* sampleSizeInBits */
            iload 16 /* channels */
            invokestatic com.sun.media.sound.AiffFileReader.calculatePCMFrameSize:(II)I
            istore 20 /* frameSize */
        start local 20 // int frameSize
        47: .line 140
            new javax.sound.sampled.AudioFormat
            dup
            aload 19 /* encoding */
            fload 18 /* sampleRate */
        48: .line 141
            iload 17 /* sampleSizeInBits */
            iload 16 /* channels */
        49: .line 142
            iload 20 /* frameSize */
            fload 18 /* sampleRate */
            iconst_1
        50: .line 140
            invokespecial javax.sound.sampled.AudioFormat.<init>:(Ljavax/sound/sampled/AudioFormat$Encoding;FIIIFZ)V
            astore 3 /* format */
        51: .line 143
            goto 56
        end local 20 // int frameSize
        end local 19 // javax.sound.sampled.AudioFormat$Encoding encoding
        end local 18 // float sampleRate
        end local 17 // int sampleSizeInBits
        end local 16 // int channels
        52: .line 146
      StackMap locals: com.sun.media.sound.AiffFileReader java.io.InputStream java.io.DataInputStream javax.sound.sampled.AudioFormat int long int int long int int int int int
      StackMap stack:
            aload 2 /* dis */
            invokevirtual java.io.DataInputStream.readInt:()I
            pop
        53: .line 147
            aload 2 /* dis */
            invokevirtual java.io.DataInputStream.readInt:()I
            pop
        54: .line 148
            iinc 15 /* chunkRead */ 8
        55: .line 149
            iconst_1
            istore 12 /* ssndFound */
        56: .line 153
      StackMap locals:
      StackMap stack:
            iload 12 /* ssndFound */
            ifne 60
        57: .line 154
            iload 14 /* chunkLen */
            iload 15 /* chunkRead */
            isub
            istore 16 /* toSkip */
        start local 16 // int toSkip
        58: .line 155
            iload 16 /* toSkip */
            ifle 60
        59: .line 156
            aload 2 /* dis */
            iload 16 /* toSkip */
            invokevirtual java.io.DataInputStream.skipBytes:(I)I
            pop
        end local 16 // int toSkip
        end local 15 // int chunkRead
        end local 14 // int chunkLen
        end local 13 // int chunkName
        60: .line 84
      StackMap locals:
      StackMap stack:
            iload 12 /* ssndFound */
            ifeq 18
        61: .line 161
            aload 3 /* format */
            ifnonnull 63
        62: .line 162
            new javax.sound.sampled.UnsupportedAudioFileException
            dup
            ldc "missing COMM chunk"
            invokespecial javax.sound.sampled.UnsupportedAudioFileException.<init>:(Ljava/lang/String;)V
            athrow
        63: .line 164
      StackMap locals:
      StackMap stack:
            iload 11 /* aifc */
            ifeq 64
            getstatic javax.sound.sampled.AudioFileFormat$Type.AIFC:Ljavax/sound/sampled/AudioFileFormat$Type;
            goto 65
      StackMap locals:
      StackMap stack:
        64: getstatic javax.sound.sampled.AudioFileFormat$Type.AIFF:Ljavax/sound/sampled/AudioFileFormat$Type;
      StackMap locals:
      StackMap stack: javax.sound.sampled.AudioFileFormat$Type
        65: astore 13 /* type */
        start local 13 // javax.sound.sampled.AudioFileFormat$Type type
        66: .line 166
            new com.sun.media.sound.AiffFileFormat
            dup
            aload 13 /* type */
            lload 9 /* totallength */
            aload 3 /* format */
            lload 5 /* frameLength */
            invokespecial com.sun.media.sound.AiffFileFormat.<init>:(Ljavax/sound/sampled/AudioFileFormat$Type;JLjavax/sound/sampled/AudioFormat;J)V
            areturn
        end local 13 // javax.sound.sampled.AudioFileFormat$Type type
        end local 12 // boolean ssndFound
        end local 11 // boolean aifc
        end local 9 // long totallength
        end local 8 // int iffType
        end local 7 // int length
        end local 5 // long frameLength
        end local 4 // int magic
        end local 3 // javax.sound.sampled.AudioFormat format
        end local 2 // java.io.DataInputStream dis
        end local 1 // java.io.InputStream stream
        end local 0 // com.sun.media.sound.AiffFileReader this
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0   67     0              this  Lcom/sun/media/sound/AiffFileReader;
            0   67     1            stream  Ljava/io/InputStream;
            1   67     2               dis  Ljava/io/DataInputStream;
            2   67     3            format  Ljavax/sound/sampled/AudioFormat;
            3   67     4             magic  I
            6   67     5       frameLength  J
            7   67     7            length  I
            8   67     8           iffType  I
           11   12     9       totallength  J
           13   67     9       totallength  J
           14   67    11              aifc  Z
           17   67    12         ssndFound  Z
           19   60    13         chunkName  I
           20   60    14          chunkLen  I
           21   60    15         chunkRead  I
           27   52    16          channels  I
           31   52    17  sampleSizeInBits  I
           34   52    18        sampleRate  F
           36   52    19          encoding  Ljavax/sound/sampled/AudioFormat$Encoding;
           38   46    20               enc  I
           47   52    20         frameSize  I
           58   60    16            toSkip  I
           66   67    13              type  Ljavax/sound/sampled/AudioFileFormat$Type;
    Exceptions:
      throws javax.sound.sampled.UnsupportedAudioFileException, java.io.IOException
    MethodParameters:
        Name  Flags
      stream  final

  private double read_ieee_extended(java.io.DataInputStream);
    descriptor: (Ljava/io/DataInputStream;)D
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=8, locals=15, args_size=2
        start local 0 // com.sun.media.sound.AiffFileReader this
        start local 1 // java.io.DataInputStream dis
         0: .line 179
            dconst_0
            dstore 2 /* f */
        start local 2 // double f
         1: .line 180
            iconst_0
            istore 4 /* expon */
        start local 4 // int expon
         2: .line 181
            lconst_0
            lstore 5 /* hiMant */
        start local 5 // long hiMant
         3: lconst_0
            lstore 7 /* loMant */
        start local 7 // long loMant
         4: .line 183
            ldc 3.4028234663852886E38
            dstore 13 /* HUGE */
        start local 13 // double HUGE
         5: .line 186
            aload 1 /* dis */
            invokevirtual java.io.DataInputStream.readUnsignedShort:()I
            istore 4 /* expon */
         6: .line 188
            aload 1 /* dis */
            invokevirtual java.io.DataInputStream.readUnsignedShort:()I
            i2l
            lstore 9 /* t1 */
        start local 9 // long t1
         7: .line 189
            aload 1 /* dis */
            invokevirtual java.io.DataInputStream.readUnsignedShort:()I
            i2l
            lstore 11 /* t2 */
        start local 11 // long t2
         8: .line 190
            lload 9 /* t1 */
            bipush 16
            lshl
            lload 11 /* t2 */
            lor
            lstore 5 /* hiMant */
         9: .line 192
            aload 1 /* dis */
            invokevirtual java.io.DataInputStream.readUnsignedShort:()I
            i2l
            lstore 9 /* t1 */
        10: .line 193
            aload 1 /* dis */
            invokevirtual java.io.DataInputStream.readUnsignedShort:()I
            i2l
            lstore 11 /* t2 */
        11: .line 194
            lload 9 /* t1 */
            bipush 16
            lshl
            lload 11 /* t2 */
            lor
            lstore 7 /* loMant */
        12: .line 196
            iload 4 /* expon */
            ifne 15
            lload 5 /* hiMant */
            lconst_0
            lcmp
            ifne 15
            lload 7 /* loMant */
            lconst_0
            lcmp
            ifne 15
        13: .line 197
            dconst_0
            dstore 2 /* f */
        14: .line 198
            goto 22
        15: .line 199
      StackMap locals: com.sun.media.sound.AiffFileReader java.io.DataInputStream double int long long long long double
      StackMap stack:
            iload 4 /* expon */
            sipush 32767
            if_icmpne 17
        16: .line 200
            dload 13 /* HUGE */
            dstore 2 /* f */
            goto 22
        17: .line 202
      StackMap locals:
      StackMap stack:
            iinc 4 /* expon */ -16383
        18: .line 203
            iinc 4 /* expon */ -31
        19: .line 204
            lload 5 /* hiMant */
            l2d
            ldc 2.0
            iload 4 /* expon */
            i2d
            invokestatic java.lang.Math.pow:(DD)D
            dmul
            dstore 2 /* f */
        20: .line 205
            iinc 4 /* expon */ -32
        21: .line 206
            dload 2 /* f */
            lload 7 /* loMant */
            l2d
            ldc 2.0
            iload 4 /* expon */
            i2d
            invokestatic java.lang.Math.pow:(DD)D
            dmul
            dadd
            dstore 2 /* f */
        22: .line 210
      StackMap locals:
      StackMap stack:
            dload 2 /* f */
            dreturn
        end local 13 // double HUGE
        end local 11 // long t2
        end local 9 // long t1
        end local 7 // long loMant
        end local 5 // long hiMant
        end local 4 // int expon
        end local 2 // double f
        end local 1 // java.io.DataInputStream dis
        end local 0 // com.sun.media.sound.AiffFileReader this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   23     0    this  Lcom/sun/media/sound/AiffFileReader;
            0   23     1     dis  Ljava/io/DataInputStream;
            1   23     2       f  D
            2   23     4   expon  I
            3   23     5  hiMant  J
            4   23     7  loMant  J
            7   23     9      t1  J
            8   23    11      t2  J
            5   23    13    HUGE  D
    Exceptions:
      throws java.io.IOException
    MethodParameters:
      Name  Flags
      dis   

  public javax.sound.sampled.AudioInputStream getAudioInputStream(java.io.InputStream);
    descriptor: (Ljava/io/InputStream;)Ljavax/sound/sampled/AudioInputStream;
    flags: (0x1041) ACC_PUBLIC, ACC_BRIDGE, ACC_SYNTHETIC
    Code:
      stack=2, locals=2, args_size=2
         0: .line 1
            aload 0
            aload 1
            invokespecial com.sun.media.sound.SunFileReader.getAudioInputStream:(Ljava/io/InputStream;)Ljavax/sound/sampled/AudioInputStream;
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature
    Exceptions:
      throws javax.sound.sampled.UnsupportedAudioFileException, java.io.IOException
}
SourceFile: "AiffFileReader.java"
InnerClasses:
  public Type = javax.sound.sampled.AudioFileFormat$Type of javax.sound.sampled.AudioFileFormat
  public Encoding = javax.sound.sampled.AudioFormat$Encoding of javax.sound.sampled.AudioFormat