public final class com.sun.media.sound.WaveFileWriter extends com.sun.media.sound.SunFileWriter
  minor version: 0
  major version: 59
  flags: flags: (0x0031) ACC_PUBLIC, ACC_FINAL, ACC_SUPER
  this_class: com.sun.media.sound.WaveFileWriter
  super_class: com.sun.media.sound.SunFileWriter
{
  public void <init>();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=1, args_size=1
        start local 0 // com.sun.media.sound.WaveFileWriter this
         0: .line 59
            aload 0 /* this */
            iconst_1
            anewarray javax.sound.sampled.AudioFileFormat$Type
            dup
            iconst_0
            getstatic javax.sound.sampled.AudioFileFormat$Type.WAVE:Ljavax/sound/sampled/AudioFileFormat$Type;
            aastore
            invokespecial com.sun.media.sound.SunFileWriter.<init>:([Ljavax/sound/sampled/AudioFileFormat$Type;)V
         1: .line 60
            return
        end local 0 // com.sun.media.sound.WaveFileWriter this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lcom/sun/media/sound/WaveFileWriter;

  public javax.sound.sampled.AudioFileFormat$Type[] getAudioFileTypes(javax.sound.sampled.AudioInputStream);
    descriptor: (Ljavax/sound/sampled/AudioInputStream;)[Ljavax/sound/sampled/AudioFileFormat$Type;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=5, args_size=2
        start local 0 // com.sun.media.sound.WaveFileWriter this
        start local 1 // javax.sound.sampled.AudioInputStream stream
         0: .line 65
            aload 0 /* this */
            getfield com.sun.media.sound.WaveFileWriter.types:[Ljavax/sound/sampled/AudioFileFormat$Type;
            arraylength
            anewarray javax.sound.sampled.AudioFileFormat$Type
            astore 2 /* filetypes */
        start local 2 // javax.sound.sampled.AudioFileFormat$Type[] filetypes
         1: .line 66
            aload 0 /* this */
            getfield com.sun.media.sound.WaveFileWriter.types:[Ljavax/sound/sampled/AudioFileFormat$Type;
            iconst_0
            aload 2 /* filetypes */
            iconst_0
            aload 0 /* this */
            getfield com.sun.media.sound.WaveFileWriter.types:[Ljavax/sound/sampled/AudioFileFormat$Type;
            arraylength
            invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
         2: .line 69
            aload 1 /* stream */
            invokevirtual javax.sound.sampled.AudioInputStream.getFormat:()Ljavax/sound/sampled/AudioFormat;
            astore 3 /* format */
        start local 3 // javax.sound.sampled.AudioFormat format
         3: .line 70
            aload 3 /* format */
            invokevirtual javax.sound.sampled.AudioFormat.getEncoding:()Ljavax/sound/sampled/AudioFormat$Encoding;
            astore 4 /* encoding */
        start local 4 // javax.sound.sampled.AudioFormat$Encoding encoding
         4: .line 72
            getstatic javax.sound.sampled.AudioFormat$Encoding.ALAW:Ljavax/sound/sampled/AudioFormat$Encoding;
            aload 4 /* encoding */
            invokevirtual javax.sound.sampled.AudioFormat$Encoding.equals:(Ljava/lang/Object;)Z
            ifne 8
         5: .line 73
            getstatic javax.sound.sampled.AudioFormat$Encoding.ULAW:Ljavax/sound/sampled/AudioFormat$Encoding;
            aload 4 /* encoding */
            invokevirtual javax.sound.sampled.AudioFormat$Encoding.equals:(Ljava/lang/Object;)Z
            ifne 8
         6: .line 74
            getstatic javax.sound.sampled.AudioFormat$Encoding.PCM_SIGNED:Ljavax/sound/sampled/AudioFormat$Encoding;
            aload 4 /* encoding */
            invokevirtual javax.sound.sampled.AudioFormat$Encoding.equals:(Ljava/lang/Object;)Z
            ifne 8
         7: .line 75
            getstatic javax.sound.sampled.AudioFormat$Encoding.PCM_UNSIGNED:Ljavax/sound/sampled/AudioFormat$Encoding;
            aload 4 /* encoding */
            invokevirtual javax.sound.sampled.AudioFormat$Encoding.equals:(Ljava/lang/Object;)Z
            ifeq 9
         8: .line 77
      StackMap locals: javax.sound.sampled.AudioFileFormat$Type[] javax.sound.sampled.AudioFormat javax.sound.sampled.AudioFormat$Encoding
      StackMap stack:
            aload 2 /* filetypes */
            areturn
         9: .line 80
      StackMap locals:
      StackMap stack:
            iconst_0
            anewarray javax.sound.sampled.AudioFileFormat$Type
            areturn
        end local 4 // javax.sound.sampled.AudioFormat$Encoding encoding
        end local 3 // javax.sound.sampled.AudioFormat format
        end local 2 // javax.sound.sampled.AudioFileFormat$Type[] filetypes
        end local 1 // javax.sound.sampled.AudioInputStream stream
        end local 0 // com.sun.media.sound.WaveFileWriter this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   10     0       this  Lcom/sun/media/sound/WaveFileWriter;
            0   10     1     stream  Ljavax/sound/sampled/AudioInputStream;
            1   10     2  filetypes  [Ljavax/sound/sampled/AudioFileFormat$Type;
            3   10     3     format  Ljavax/sound/sampled/AudioFormat;
            4   10     4   encoding  Ljavax/sound/sampled/AudioFormat$Encoding;
    MethodParameters:
        Name  Flags
      stream  

  public int write(javax.sound.sampled.AudioInputStream, javax.sound.sampled.AudioFileFormat$Type, java.io.OutputStream);
    descriptor: (Ljavax/sound/sampled/AudioInputStream;Ljavax/sound/sampled/AudioFileFormat$Type;Ljava/io/OutputStream;)I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=5, args_size=4
        start local 0 // com.sun.media.sound.WaveFileWriter this
        start local 1 // javax.sound.sampled.AudioInputStream stream
        start local 2 // javax.sound.sampled.AudioFileFormat$Type fileType
        start local 3 // java.io.OutputStream out
         0: .line 85
            aload 1 /* stream */
            invokestatic java.util.Objects.requireNonNull:(Ljava/lang/Object;)Ljava/lang/Object;
            pop
         1: .line 86
            aload 2 /* fileType */
            invokestatic java.util.Objects.requireNonNull:(Ljava/lang/Object;)Ljava/lang/Object;
            pop
         2: .line 87
            aload 3 /* out */
            invokestatic java.util.Objects.requireNonNull:(Ljava/lang/Object;)Ljava/lang/Object;
            pop
         3: .line 94
            aload 0 /* this */
            aload 2 /* fileType */
            aload 1 /* stream */
            invokevirtual com.sun.media.sound.WaveFileWriter.getAudioFileFormat:(Ljavax/sound/sampled/AudioFileFormat$Type;Ljavax/sound/sampled/AudioInputStream;)Ljavax/sound/sampled/AudioFileFormat;
            checkcast com.sun.media.sound.WaveFileFormat
            astore 4 /* waveFileFormat */
        start local 4 // com.sun.media.sound.WaveFileFormat waveFileFormat
         4: .line 99
            aload 1 /* stream */
            invokevirtual javax.sound.sampled.AudioInputStream.getFrameLength:()J
            ldc -1
            lcmp
            ifne 6
         5: .line 100
            new java.io.IOException
            dup
            ldc "stream length not specified"
            invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
            athrow
         6: .line 103
      StackMap locals: com.sun.media.sound.WaveFileFormat
      StackMap stack:
            aload 0 /* this */
            aload 1 /* stream */
            aload 4 /* waveFileFormat */
            aload 3 /* out */
            invokevirtual com.sun.media.sound.WaveFileWriter.writeWaveFile:(Ljava/io/InputStream;Lcom/sun/media/sound/WaveFileFormat;Ljava/io/OutputStream;)I
            ireturn
        end local 4 // com.sun.media.sound.WaveFileFormat waveFileFormat
        end local 3 // java.io.OutputStream out
        end local 2 // javax.sound.sampled.AudioFileFormat$Type fileType
        end local 1 // javax.sound.sampled.AudioInputStream stream
        end local 0 // com.sun.media.sound.WaveFileWriter this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    7     0            this  Lcom/sun/media/sound/WaveFileWriter;
            0    7     1          stream  Ljavax/sound/sampled/AudioInputStream;
            0    7     2        fileType  Ljavax/sound/sampled/AudioFileFormat$Type;
            0    7     3             out  Ljava/io/OutputStream;
            4    7     4  waveFileFormat  Lcom/sun/media/sound/WaveFileFormat;
    Exceptions:
      throws java.io.IOException
    MethodParameters:
          Name  Flags
      stream    
      fileType  
      out       

  public int write(javax.sound.sampled.AudioInputStream, javax.sound.sampled.AudioFileFormat$Type, java.io.File);
    descriptor: (Ljavax/sound/sampled/AudioInputStream;Ljavax/sound/sampled/AudioFileFormat$Type;Ljava/io/File;)I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=11, args_size=4
        start local 0 // com.sun.media.sound.WaveFileWriter this
        start local 1 // javax.sound.sampled.AudioInputStream stream
        start local 2 // javax.sound.sampled.AudioFileFormat$Type fileType
        start local 3 // java.io.File out
         0: .line 108
            aload 1 /* stream */
            invokestatic java.util.Objects.requireNonNull:(Ljava/lang/Object;)Ljava/lang/Object;
            pop
         1: .line 109
            aload 2 /* fileType */
            invokestatic java.util.Objects.requireNonNull:(Ljava/lang/Object;)Ljava/lang/Object;
            pop
         2: .line 110
            aload 3 /* out */
            invokestatic java.util.Objects.requireNonNull:(Ljava/lang/Object;)Ljava/lang/Object;
            pop
         3: .line 113
            aload 0 /* this */
            aload 2 /* fileType */
            aload 1 /* stream */
            invokevirtual com.sun.media.sound.WaveFileWriter.getAudioFileFormat:(Ljavax/sound/sampled/AudioFileFormat$Type;Ljavax/sound/sampled/AudioInputStream;)Ljavax/sound/sampled/AudioFileFormat;
            checkcast com.sun.media.sound.WaveFileFormat
            astore 4 /* waveFileFormat */
        start local 4 // com.sun.media.sound.WaveFileFormat waveFileFormat
         4: .line 117
            aconst_null
            astore 6
            aconst_null
            astore 7
         5: new java.io.FileOutputStream
            dup
            aload 3 /* out */
            invokespecial java.io.FileOutputStream.<init>:(Ljava/io/File;)V
            astore 8 /* fos */
        start local 8 // java.io.FileOutputStream fos
         6: .line 118
            new java.io.BufferedOutputStream
            dup
            aload 8 /* fos */
            invokespecial java.io.BufferedOutputStream.<init>:(Ljava/io/OutputStream;)V
            astore 9 /* bos */
        start local 9 // java.io.BufferedOutputStream bos
         7: .line 119
            aload 0 /* this */
            aload 1 /* stream */
            aload 4 /* waveFileFormat */
            aload 9 /* bos */
            invokevirtual com.sun.media.sound.WaveFileWriter.writeWaveFile:(Ljava/io/InputStream;Lcom/sun/media/sound/WaveFileFormat;Ljava/io/OutputStream;)I
            istore 5 /* bytesWritten */
        start local 5 // int bytesWritten
         8: .line 120
            aload 9 /* bos */
            ifnull 11
            aload 9 /* bos */
            invokevirtual java.io.BufferedOutputStream.close:()V
            goto 11
        end local 5 // int bytesWritten
      StackMap locals: com.sun.media.sound.WaveFileWriter javax.sound.sampled.AudioInputStream javax.sound.sampled.AudioFileFormat$Type java.io.File com.sun.media.sound.WaveFileFormat top java.lang.Throwable java.lang.Throwable java.io.FileOutputStream java.io.BufferedOutputStream
      StackMap stack: java.lang.Throwable
         9: astore 6
            aload 9 /* bos */
            ifnull 10
            aload 9 /* bos */
            invokevirtual java.io.BufferedOutputStream.close:()V
        end local 9 // java.io.BufferedOutputStream bos
      StackMap locals:
      StackMap stack:
        10: aload 6
            athrow
        start local 5 // int bytesWritten
      StackMap locals: com.sun.media.sound.WaveFileWriter javax.sound.sampled.AudioInputStream javax.sound.sampled.AudioFileFormat$Type java.io.File com.sun.media.sound.WaveFileFormat int java.lang.Throwable java.lang.Throwable java.io.FileOutputStream
      StackMap stack:
        11: aload 8 /* fos */
            ifnull 19
            aload 8 /* fos */
            invokevirtual java.io.FileOutputStream.close:()V
            goto 19
        end local 5 // int bytesWritten
      StackMap locals: com.sun.media.sound.WaveFileWriter javax.sound.sampled.AudioInputStream javax.sound.sampled.AudioFileFormat$Type java.io.File com.sun.media.sound.WaveFileFormat top java.lang.Throwable java.lang.Throwable java.io.FileOutputStream
      StackMap stack: java.lang.Throwable
        12: astore 7
            aload 6
            ifnonnull 13
            aload 7
            astore 6
            goto 14
      StackMap locals:
      StackMap stack:
        13: aload 6
            aload 7
            if_acmpeq 14
            aload 6
            aload 7
            invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
      StackMap locals:
      StackMap stack:
        14: aload 8 /* fos */
            ifnull 15
            aload 8 /* fos */
            invokevirtual java.io.FileOutputStream.close:()V
        end local 8 // java.io.FileOutputStream fos
      StackMap locals:
      StackMap stack:
        15: aload 6
            athrow
      StackMap locals:
      StackMap stack: java.lang.Throwable
        16: astore 7
            aload 6
            ifnonnull 17
            aload 7
            astore 6
            goto 18
      StackMap locals:
      StackMap stack:
        17: aload 6
            aload 7
            if_acmpeq 18
            aload 6
            aload 7
            invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
      StackMap locals:
      StackMap stack:
        18: aload 6
            athrow
        start local 5 // int bytesWritten
        19: .line 125
      StackMap locals: com.sun.media.sound.WaveFileWriter javax.sound.sampled.AudioInputStream javax.sound.sampled.AudioFileFormat$Type java.io.File com.sun.media.sound.WaveFileFormat int
      StackMap stack:
            aload 4 /* waveFileFormat */
            invokevirtual com.sun.media.sound.WaveFileFormat.getByteLength:()I
            iconst_m1
            if_icmpne 38
        20: .line 127
            iload 5 /* bytesWritten */
            aload 4 /* waveFileFormat */
            invokevirtual com.sun.media.sound.WaveFileFormat.getHeaderSize:()I
            isub
            istore 6 /* dataLength */
        start local 6 // int dataLength
        21: .line 128
            iload 6 /* dataLength */
            aload 4 /* waveFileFormat */
            invokevirtual com.sun.media.sound.WaveFileFormat.getHeaderSize:()I
            iadd
            bipush 8
            isub
            istore 7 /* riffLength */
        start local 7 // int riffLength
        22: .line 129
            aconst_null
            astore 8
            aconst_null
            astore 9
        23: new java.io.RandomAccessFile
            dup
            aload 3 /* out */
            ldc "rw"
            invokespecial java.io.RandomAccessFile.<init>:(Ljava/io/File;Ljava/lang/String;)V
            astore 10 /* raf */
        start local 10 // java.io.RandomAccessFile raf
        24: .line 131
            aload 10 /* raf */
            iconst_4
            invokevirtual java.io.RandomAccessFile.skipBytes:(I)I
            pop
        25: .line 132
            aload 10 /* raf */
            aload 0 /* this */
            iload 7 /* riffLength */
            invokevirtual com.sun.media.sound.WaveFileWriter.big2little:(I)I
            invokevirtual java.io.RandomAccessFile.writeInt:(I)V
        26: .line 134
            aload 10 /* raf */
            bipush 12
        27: .line 135
            aload 4 /* waveFileFormat */
            invokevirtual com.sun.media.sound.WaveFileFormat.getWaveType:()I
        28: .line 134
            invokestatic com.sun.media.sound.WaveFileFormat.getFmtChunkSize:(I)I
            iadd
        29: .line 135
            iconst_4
            iadd
        30: .line 134
            invokevirtual java.io.RandomAccessFile.skipBytes:(I)I
            pop
        31: .line 136
            aload 10 /* raf */
            aload 0 /* this */
            iload 6 /* dataLength */
            invokevirtual com.sun.media.sound.WaveFileWriter.big2little:(I)I
            invokevirtual java.io.RandomAccessFile.writeInt:(I)V
        32: .line 138
            aload 10 /* raf */
            ifnull 38
            aload 10 /* raf */
            invokevirtual java.io.RandomAccessFile.close:()V
            goto 38
      StackMap locals: com.sun.media.sound.WaveFileWriter javax.sound.sampled.AudioInputStream javax.sound.sampled.AudioFileFormat$Type java.io.File com.sun.media.sound.WaveFileFormat int int int java.lang.Throwable java.lang.Throwable java.io.RandomAccessFile
      StackMap stack: java.lang.Throwable
        33: astore 8
            aload 10 /* raf */
            ifnull 34
            aload 10 /* raf */
            invokevirtual java.io.RandomAccessFile.close:()V
        end local 10 // java.io.RandomAccessFile raf
      StackMap locals:
      StackMap stack:
        34: aload 8
            athrow
      StackMap locals:
      StackMap stack: java.lang.Throwable
        35: astore 9
            aload 8
            ifnonnull 36
            aload 9
            astore 8
            goto 37
      StackMap locals:
      StackMap stack:
        36: aload 8
            aload 9
            if_acmpeq 37
            aload 8
            aload 9
            invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
      StackMap locals:
      StackMap stack:
        37: aload 8
            athrow
        end local 7 // int riffLength
        end local 6 // int dataLength
        38: .line 141
      StackMap locals: com.sun.media.sound.WaveFileWriter javax.sound.sampled.AudioInputStream javax.sound.sampled.AudioFileFormat$Type java.io.File com.sun.media.sound.WaveFileFormat int
      StackMap stack:
            iload 5 /* bytesWritten */
            ireturn
        end local 5 // int bytesWritten
        end local 4 // com.sun.media.sound.WaveFileFormat waveFileFormat
        end local 3 // java.io.File out
        end local 2 // javax.sound.sampled.AudioFileFormat$Type fileType
        end local 1 // javax.sound.sampled.AudioInputStream stream
        end local 0 // com.sun.media.sound.WaveFileWriter this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   39     0            this  Lcom/sun/media/sound/WaveFileWriter;
            0   39     1          stream  Ljavax/sound/sampled/AudioInputStream;
            0   39     2        fileType  Ljavax/sound/sampled/AudioFileFormat$Type;
            0   39     3             out  Ljava/io/File;
            4   39     4  waveFileFormat  Lcom/sun/media/sound/WaveFileFormat;
            8    9     5    bytesWritten  I
           11   12     5    bytesWritten  I
           19   39     5    bytesWritten  I
            6   15     8             fos  Ljava/io/FileOutputStream;
            7   10     9             bos  Ljava/io/BufferedOutputStream;
           21   38     6      dataLength  I
           22   38     7      riffLength  I
           24   34    10             raf  Ljava/io/RandomAccessFile;
      Exception table:
        from    to  target  type
           7     8       9  any
           6    11      12  any
           5    16      16  any
          24    32      33  any
          23    35      35  any
    Exceptions:
      throws java.io.IOException
    MethodParameters:
          Name  Flags
      stream    
      fileType  
      out       

  private javax.sound.sampled.AudioFileFormat getAudioFileFormat(javax.sound.sampled.AudioFileFormat$Type, javax.sound.sampled.AudioInputStream);
    descriptor: (Ljavax/sound/sampled/AudioFileFormat$Type;Ljavax/sound/sampled/AudioInputStream;)Ljavax/sound/sampled/AudioFileFormat;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=9, locals=11, args_size=3
        start local 0 // com.sun.media.sound.WaveFileWriter this
        start local 1 // javax.sound.sampled.AudioFileFormat$Type type
        start local 2 // javax.sound.sampled.AudioInputStream stream
         0: .line 151
            aload 0 /* this */
            aload 1 /* type */
            aload 2 /* stream */
            invokevirtual com.sun.media.sound.WaveFileWriter.isFileTypeSupported:(Ljavax/sound/sampled/AudioFileFormat$Type;Ljavax/sound/sampled/AudioInputStream;)Z
            ifne 2
         1: .line 152
            new java.lang.IllegalArgumentException
            dup
            new java.lang.StringBuilder
            dup
            ldc "File type "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* type */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            ldc " not supported."
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 154
      StackMap locals:
      StackMap stack:
            aconst_null
            astore 3 /* format */
        start local 3 // javax.sound.sampled.AudioFormat format
         3: .line 155
            aconst_null
            astore 4 /* fileFormat */
        start local 4 // com.sun.media.sound.WaveFileFormat fileFormat
         4: .line 156
            getstatic javax.sound.sampled.AudioFormat$Encoding.PCM_SIGNED:Ljavax/sound/sampled/AudioFormat$Encoding;
            astore 5 /* encoding */
        start local 5 // javax.sound.sampled.AudioFormat$Encoding encoding
         5: .line 158
            aload 2 /* stream */
            invokevirtual javax.sound.sampled.AudioInputStream.getFormat:()Ljavax/sound/sampled/AudioFormat;
            astore 6 /* streamFormat */
        start local 6 // javax.sound.sampled.AudioFormat streamFormat
         6: .line 159
            aload 6 /* streamFormat */
            invokevirtual javax.sound.sampled.AudioFormat.getEncoding:()Ljavax/sound/sampled/AudioFormat$Encoding;
            astore 7 /* streamEncoding */
        start local 7 // javax.sound.sampled.AudioFormat$Encoding streamEncoding
         7: .line 168
            iconst_1
            istore 10 /* waveType */
        start local 10 // int waveType
         8: .line 170
            getstatic javax.sound.sampled.AudioFormat$Encoding.ALAW:Ljavax/sound/sampled/AudioFormat$Encoding;
            aload 7 /* streamEncoding */
            invokevirtual javax.sound.sampled.AudioFormat$Encoding.equals:(Ljava/lang/Object;)Z
            ifne 10
         9: .line 171
            getstatic javax.sound.sampled.AudioFormat$Encoding.ULAW:Ljavax/sound/sampled/AudioFormat$Encoding;
            aload 7 /* streamEncoding */
            invokevirtual javax.sound.sampled.AudioFormat$Encoding.equals:(Ljava/lang/Object;)Z
            ifeq 17
        10: .line 173
      StackMap locals: com.sun.media.sound.WaveFileWriter javax.sound.sampled.AudioFileFormat$Type javax.sound.sampled.AudioInputStream javax.sound.sampled.AudioFormat com.sun.media.sound.WaveFileFormat javax.sound.sampled.AudioFormat$Encoding javax.sound.sampled.AudioFormat javax.sound.sampled.AudioFormat$Encoding top top int
      StackMap stack:
            aload 7 /* streamEncoding */
            astore 5 /* encoding */
        11: .line 174
            aload 6 /* streamFormat */
            invokevirtual javax.sound.sampled.AudioFormat.getSampleSizeInBits:()I
            istore 8 /* sampleSizeInBits */
        start local 8 // int sampleSizeInBits
        12: .line 175
            aload 7 /* streamEncoding */
            getstatic javax.sound.sampled.AudioFormat$Encoding.ALAW:Ljavax/sound/sampled/AudioFormat$Encoding;
            invokevirtual javax.sound.sampled.AudioFormat$Encoding.equals:(Ljava/lang/Object;)Z
            ifeq 15
        13: .line 176
            bipush 6
            istore 10 /* waveType */
        14: .line 177
            goto 23
        15: .line 178
      StackMap locals: com.sun.media.sound.WaveFileWriter javax.sound.sampled.AudioFileFormat$Type javax.sound.sampled.AudioInputStream javax.sound.sampled.AudioFormat com.sun.media.sound.WaveFileFormat javax.sound.sampled.AudioFormat$Encoding javax.sound.sampled.AudioFormat javax.sound.sampled.AudioFormat$Encoding int top int
      StackMap stack:
            bipush 7
            istore 10 /* waveType */
        16: .line 180
            goto 23
        end local 8 // int sampleSizeInBits
      StackMap locals: com.sun.media.sound.WaveFileWriter javax.sound.sampled.AudioFileFormat$Type javax.sound.sampled.AudioInputStream javax.sound.sampled.AudioFormat com.sun.media.sound.WaveFileFormat javax.sound.sampled.AudioFormat$Encoding javax.sound.sampled.AudioFormat javax.sound.sampled.AudioFormat$Encoding top top int
      StackMap stack:
        17: aload 6 /* streamFormat */
            invokevirtual javax.sound.sampled.AudioFormat.getSampleSizeInBits:()I
            bipush 8
            if_icmpne 21
        18: .line 181
            getstatic javax.sound.sampled.AudioFormat$Encoding.PCM_UNSIGNED:Ljavax/sound/sampled/AudioFormat$Encoding;
            astore 5 /* encoding */
        19: .line 182
            bipush 8
            istore 8 /* sampleSizeInBits */
        start local 8 // int sampleSizeInBits
        20: .line 183
            goto 23
        end local 8 // int sampleSizeInBits
        21: .line 184
      StackMap locals:
      StackMap stack:
            getstatic javax.sound.sampled.AudioFormat$Encoding.PCM_SIGNED:Ljavax/sound/sampled/AudioFormat$Encoding;
            astore 5 /* encoding */
        22: .line 185
            aload 6 /* streamFormat */
            invokevirtual javax.sound.sampled.AudioFormat.getSampleSizeInBits:()I
            istore 8 /* sampleSizeInBits */
        start local 8 // int sampleSizeInBits
        23: .line 189
      StackMap locals: com.sun.media.sound.WaveFileWriter javax.sound.sampled.AudioFileFormat$Type javax.sound.sampled.AudioInputStream javax.sound.sampled.AudioFormat com.sun.media.sound.WaveFileFormat javax.sound.sampled.AudioFormat$Encoding javax.sound.sampled.AudioFormat javax.sound.sampled.AudioFormat$Encoding int top int
      StackMap stack:
            new javax.sound.sampled.AudioFormat
            dup
            aload 5 /* encoding */
        24: .line 190
            aload 6 /* streamFormat */
            invokevirtual javax.sound.sampled.AudioFormat.getSampleRate:()F
        25: .line 191
            iload 8 /* sampleSizeInBits */
        26: .line 192
            aload 6 /* streamFormat */
            invokevirtual javax.sound.sampled.AudioFormat.getChannels:()I
        27: .line 193
            aload 6 /* streamFormat */
            invokevirtual javax.sound.sampled.AudioFormat.getFrameSize:()I
        28: .line 194
            aload 6 /* streamFormat */
            invokevirtual javax.sound.sampled.AudioFormat.getFrameRate:()F
        29: .line 195
            iconst_0
        30: .line 189
            invokespecial javax.sound.sampled.AudioFormat.<init>:(Ljavax/sound/sampled/AudioFormat$Encoding;FIIIFZ)V
            astore 3 /* format */
        31: .line 197
            aload 2 /* stream */
            invokevirtual javax.sound.sampled.AudioInputStream.getFrameLength:()J
            ldc -1
            lcmp
            ifeq 36
        32: .line 198
            aload 2 /* stream */
            invokevirtual javax.sound.sampled.AudioInputStream.getFrameLength:()J
            l2i
            aload 6 /* streamFormat */
            invokevirtual javax.sound.sampled.AudioFormat.getFrameSize:()I
            imul
        33: .line 199
            iload 10 /* waveType */
            invokestatic com.sun.media.sound.WaveFileFormat.getHeaderSize:(I)I
        34: .line 198
            iadd
            istore 9 /* fileSize */
        start local 9 // int fileSize
        35: .line 200
            goto 37
        end local 9 // int fileSize
        36: .line 201
      StackMap locals:
      StackMap stack:
            iconst_m1
            istore 9 /* fileSize */
        start local 9 // int fileSize
        37: .line 204
      StackMap locals: com.sun.media.sound.WaveFileWriter javax.sound.sampled.AudioFileFormat$Type javax.sound.sampled.AudioInputStream javax.sound.sampled.AudioFormat com.sun.media.sound.WaveFileFormat javax.sound.sampled.AudioFormat$Encoding javax.sound.sampled.AudioFormat javax.sound.sampled.AudioFormat$Encoding int int int
      StackMap stack:
            new com.sun.media.sound.WaveFileFormat
            dup
            getstatic javax.sound.sampled.AudioFileFormat$Type.WAVE:Ljavax/sound/sampled/AudioFileFormat$Type;
        38: .line 205
            iload 9 /* fileSize */
            i2l
        39: .line 206
            aload 3 /* format */
        40: .line 207
            aload 2 /* stream */
            invokevirtual javax.sound.sampled.AudioInputStream.getFrameLength:()J
            l2i
            i2l
        41: .line 204
            invokespecial com.sun.media.sound.WaveFileFormat.<init>:(Ljavax/sound/sampled/AudioFileFormat$Type;JLjavax/sound/sampled/AudioFormat;J)V
            astore 4 /* fileFormat */
        42: .line 209
            aload 4 /* fileFormat */
            areturn
        end local 10 // int waveType
        end local 9 // int fileSize
        end local 8 // int sampleSizeInBits
        end local 7 // javax.sound.sampled.AudioFormat$Encoding streamEncoding
        end local 6 // javax.sound.sampled.AudioFormat streamFormat
        end local 5 // javax.sound.sampled.AudioFormat$Encoding encoding
        end local 4 // com.sun.media.sound.WaveFileFormat fileFormat
        end local 3 // javax.sound.sampled.AudioFormat format
        end local 2 // javax.sound.sampled.AudioInputStream stream
        end local 1 // javax.sound.sampled.AudioFileFormat$Type type
        end local 0 // com.sun.media.sound.WaveFileWriter this
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0   43     0              this  Lcom/sun/media/sound/WaveFileWriter;
            0   43     1              type  Ljavax/sound/sampled/AudioFileFormat$Type;
            0   43     2            stream  Ljavax/sound/sampled/AudioInputStream;
            3   43     3            format  Ljavax/sound/sampled/AudioFormat;
            4   43     4        fileFormat  Lcom/sun/media/sound/WaveFileFormat;
            5   43     5          encoding  Ljavax/sound/sampled/AudioFormat$Encoding;
            6   43     6      streamFormat  Ljavax/sound/sampled/AudioFormat;
            7   43     7    streamEncoding  Ljavax/sound/sampled/AudioFormat$Encoding;
           12   17     8  sampleSizeInBits  I
           20   21     8  sampleSizeInBits  I
           23   43     8  sampleSizeInBits  I
           35   36     9          fileSize  I
           37   43     9          fileSize  I
            8   43    10          waveType  I
    MethodParameters:
        Name  Flags
      type    
      stream  

  private int writeWaveFile(java.io.InputStream, com.sun.media.sound.WaveFileFormat, java.io.OutputStream);
    descriptor: (Ljava/io/InputStream;Lcom/sun/media/sound/WaveFileFormat;Ljava/io/OutputStream;)I
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=9, args_size=4
        start local 0 // com.sun.media.sound.WaveFileWriter this
        start local 1 // java.io.InputStream in
        start local 2 // com.sun.media.sound.WaveFileFormat waveFileFormat
        start local 3 // java.io.OutputStream out
         0: .line 215
            iconst_0
            istore 4 /* bytesRead */
        start local 4 // int bytesRead
         1: .line 216
            iconst_0
            istore 5 /* bytesWritten */
        start local 5 // int bytesWritten
         2: .line 217
            aload 0 /* this */
            aload 2 /* waveFileFormat */
            aload 1 /* in */
            invokevirtual com.sun.media.sound.WaveFileWriter.getFileStream:(Lcom/sun/media/sound/WaveFileFormat;Ljava/io/InputStream;)Ljava/io/InputStream;
            astore 6 /* fileStream */
        start local 6 // java.io.InputStream fileStream
         3: .line 218
            sipush 4096
            newarray 8
            astore 7 /* buffer */
        start local 7 // byte[] buffer
         4: .line 219
            aload 2 /* waveFileFormat */
            invokevirtual com.sun.media.sound.WaveFileFormat.getByteLength:()I
            istore 8 /* maxLength */
        start local 8 // int maxLength
         5: .line 221
            goto 18
         6: .line 223
      StackMap locals: com.sun.media.sound.WaveFileWriter java.io.InputStream com.sun.media.sound.WaveFileFormat java.io.OutputStream int int java.io.InputStream byte[] int
      StackMap stack:
            iload 8 /* maxLength */
            ifle 16
         7: .line 224
            iload 4 /* bytesRead */
            iload 8 /* maxLength */
            if_icmpge 12
         8: .line 225
            aload 3 /* out */
            aload 7 /* buffer */
            iconst_0
            iload 4 /* bytesRead */
            invokevirtual java.io.OutputStream.write:([BII)V
         9: .line 226
            iload 5 /* bytesWritten */
            iload 4 /* bytesRead */
            iadd
            istore 5 /* bytesWritten */
        10: .line 227
            iload 8 /* maxLength */
            iload 4 /* bytesRead */
            isub
            istore 8 /* maxLength */
        11: .line 228
            goto 18
        12: .line 229
      StackMap locals:
      StackMap stack:
            aload 3 /* out */
            aload 7 /* buffer */
            iconst_0
            iload 8 /* maxLength */
            invokevirtual java.io.OutputStream.write:([BII)V
        13: .line 230
            iload 5 /* bytesWritten */
            iload 8 /* maxLength */
            iadd
            istore 5 /* bytesWritten */
        14: .line 231
            iconst_0
            istore 8 /* maxLength */
        15: .line 232
            goto 19
        16: .line 235
      StackMap locals:
      StackMap stack:
            aload 3 /* out */
            aload 7 /* buffer */
            iconst_0
            iload 4 /* bytesRead */
            invokevirtual java.io.OutputStream.write:([BII)V
        17: .line 236
            iload 5 /* bytesWritten */
            iload 4 /* bytesRead */
            iadd
            istore 5 /* bytesWritten */
        18: .line 221
      StackMap locals:
      StackMap stack:
            aload 6 /* fileStream */
            aload 7 /* buffer */
            invokevirtual java.io.InputStream.read:([B)I
            dup
            istore 4 /* bytesRead */
            ifge 6
        19: .line 240
      StackMap locals:
      StackMap stack:
            iload 5 /* bytesWritten */
            ireturn
        end local 8 // int maxLength
        end local 7 // byte[] buffer
        end local 6 // java.io.InputStream fileStream
        end local 5 // int bytesWritten
        end local 4 // int bytesRead
        end local 3 // java.io.OutputStream out
        end local 2 // com.sun.media.sound.WaveFileFormat waveFileFormat
        end local 1 // java.io.InputStream in
        end local 0 // com.sun.media.sound.WaveFileWriter this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   20     0            this  Lcom/sun/media/sound/WaveFileWriter;
            0   20     1              in  Ljava/io/InputStream;
            0   20     2  waveFileFormat  Lcom/sun/media/sound/WaveFileFormat;
            0   20     3             out  Ljava/io/OutputStream;
            1   20     4       bytesRead  I
            2   20     5    bytesWritten  I
            3   20     6      fileStream  Ljava/io/InputStream;
            4   20     7          buffer  [B
            5   20     8       maxLength  I
    Exceptions:
      throws java.io.IOException
    MethodParameters:
                Name  Flags
      in              
      waveFileFormat  
      out             

  private java.io.InputStream getFileStream(com.sun.media.sound.WaveFileFormat, java.io.InputStream);
    descriptor: (Lcom/sun/media/sound/WaveFileFormat;Ljava/io/InputStream;)Ljava/io/InputStream;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=9, locals=27, args_size=3
        start local 0 // com.sun.media.sound.WaveFileWriter this
        start local 1 // com.sun.media.sound.WaveFileFormat waveFileFormat
        start local 2 // java.io.InputStream audioStream
         0: .line 247
            aload 1 /* waveFileFormat */
            invokevirtual com.sun.media.sound.WaveFileFormat.getFormat:()Ljavax/sound/sampled/AudioFormat;
            astore 3 /* audioFormat */
        start local 3 // javax.sound.sampled.AudioFormat audioFormat
         1: .line 248
            aload 1 /* waveFileFormat */
            invokevirtual com.sun.media.sound.WaveFileFormat.getHeaderSize:()I
            istore 4 /* headerLength */
        start local 4 // int headerLength
         2: .line 249
            ldc 1380533830
            istore 5 /* riffMagic */
        start local 5 // int riffMagic
         3: .line 250
            ldc 1463899717
            istore 6 /* waveMagic */
        start local 6 // int waveMagic
         4: .line 251
            ldc 1718449184
            istore 7 /* fmtMagic */
        start local 7 // int fmtMagic
         5: .line 252
            aload 1 /* waveFileFormat */
            invokevirtual com.sun.media.sound.WaveFileFormat.getWaveType:()I
            invokestatic com.sun.media.sound.WaveFileFormat.getFmtChunkSize:(I)I
            istore 8 /* fmtLength */
        start local 8 // int fmtLength
         6: .line 253
            aload 1 /* waveFileFormat */
            invokevirtual com.sun.media.sound.WaveFileFormat.getWaveType:()I
            i2s
            istore 9 /* wav_type */
        start local 9 // short wav_type
         7: .line 254
            aload 3 /* audioFormat */
            invokevirtual javax.sound.sampled.AudioFormat.getChannels:()I
            i2s
            istore 10 /* channels */
        start local 10 // short channels
         8: .line 255
            aload 3 /* audioFormat */
            invokevirtual javax.sound.sampled.AudioFormat.getSampleSizeInBits:()I
            i2s
            istore 11 /* sampleSizeInBits */
        start local 11 // short sampleSizeInBits
         9: .line 256
            aload 3 /* audioFormat */
            invokevirtual javax.sound.sampled.AudioFormat.getSampleRate:()F
            f2i
            istore 12 /* sampleRate */
        start local 12 // int sampleRate
        10: .line 257
            aload 3 /* audioFormat */
            invokevirtual javax.sound.sampled.AudioFormat.getFrameSize:()I
            istore 13 /* frameSizeInBytes */
        start local 13 // int frameSizeInBytes
        11: .line 258
            aload 3 /* audioFormat */
            invokevirtual javax.sound.sampled.AudioFormat.getFrameRate:()F
            pop
        12: .line 259
            iload 10 /* channels */
            iload 11 /* sampleSizeInBits */
            imul
            iload 12 /* sampleRate */
            imul
            bipush 8
            idiv
            istore 14 /* avgBytesPerSec */
        start local 14 // int avgBytesPerSec
        13: .line 260
            iload 11 /* sampleSizeInBits */
            bipush 8
            idiv
            iload 10 /* channels */
            imul
            i2s
            istore 15 /* blockAlign */
        start local 15 // short blockAlign
        14: .line 261
            ldc 1684108385
            istore 16 /* dataMagic */
        start local 16 // int dataMagic
        15: .line 262
            aload 1 /* waveFileFormat */
            invokevirtual com.sun.media.sound.WaveFileFormat.getFrameLength:()I
            iload 13 /* frameSizeInBytes */
            imul
            istore 17 /* dataLength */
        start local 17 // int dataLength
        16: .line 263
            aload 1 /* waveFileFormat */
            invokevirtual com.sun.media.sound.WaveFileFormat.getByteLength:()I
            pop
        17: .line 264
            iload 17 /* dataLength */
            iload 4 /* headerLength */
            iadd
            bipush 8
            isub
            istore 18 /* riffLength */
        start local 18 // int riffLength
        18: .line 266
            aconst_null
            astore 19 /* audioStreamFormat */
        start local 19 // javax.sound.sampled.AudioFormat audioStreamFormat
        19: .line 267
            aconst_null
            astore 20 /* encoding */
        start local 20 // javax.sound.sampled.AudioFormat$Encoding encoding
        20: .line 268
            aload 2 /* audioStream */
            astore 21 /* codedAudioStream */
        start local 21 // java.io.InputStream codedAudioStream
        21: .line 271
            aload 2 /* audioStream */
            instanceof javax.sound.sampled.AudioInputStream
            ifeq 54
        22: .line 272
            aload 2 /* audioStream */
            checkcast javax.sound.sampled.AudioInputStream
            invokevirtual javax.sound.sampled.AudioInputStream.getFormat:()Ljavax/sound/sampled/AudioFormat;
            astore 19 /* audioStreamFormat */
        23: .line 274
            aload 19 /* audioStreamFormat */
            invokevirtual javax.sound.sampled.AudioFormat.getEncoding:()Ljavax/sound/sampled/AudioFormat$Encoding;
            astore 20 /* encoding */
        24: .line 276
            getstatic javax.sound.sampled.AudioFormat$Encoding.PCM_SIGNED:Ljavax/sound/sampled/AudioFormat$Encoding;
            aload 20 /* encoding */
            invokevirtual javax.sound.sampled.AudioFormat$Encoding.equals:(Ljava/lang/Object;)Z
            ifeq 38
        25: .line 277
            iload 11 /* sampleSizeInBits */
            bipush 8
            if_icmpne 38
        26: .line 278
            iconst_1
            istore 9 /* wav_type */
        27: .line 280
            new javax.sound.sampled.AudioFormat
            dup
        28: .line 281
            getstatic javax.sound.sampled.AudioFormat$Encoding.PCM_UNSIGNED:Ljavax/sound/sampled/AudioFormat$Encoding;
        29: .line 282
            aload 19 /* audioStreamFormat */
            invokevirtual javax.sound.sampled.AudioFormat.getSampleRate:()F
        30: .line 283
            aload 19 /* audioStreamFormat */
            invokevirtual javax.sound.sampled.AudioFormat.getSampleSizeInBits:()I
        31: .line 284
            aload 19 /* audioStreamFormat */
            invokevirtual javax.sound.sampled.AudioFormat.getChannels:()I
        32: .line 285
            aload 19 /* audioStreamFormat */
            invokevirtual javax.sound.sampled.AudioFormat.getFrameSize:()I
        33: .line 286
            aload 19 /* audioStreamFormat */
            invokevirtual javax.sound.sampled.AudioFormat.getFrameRate:()F
        34: .line 287
            iconst_0
        35: .line 280
            invokespecial javax.sound.sampled.AudioFormat.<init>:(Ljavax/sound/sampled/AudioFormat$Encoding;FIIIFZ)V
        36: .line 288
            aload 2 /* audioStream */
            checkcast javax.sound.sampled.AudioInputStream
        37: .line 280
            invokestatic javax.sound.sampled.AudioSystem.getAudioInputStream:(Ljavax/sound/sampled/AudioFormat;Ljavax/sound/sampled/AudioInputStream;)Ljavax/sound/sampled/AudioInputStream;
            astore 21 /* codedAudioStream */
        38: .line 291
      StackMap locals: com.sun.media.sound.WaveFileWriter com.sun.media.sound.WaveFileFormat java.io.InputStream javax.sound.sampled.AudioFormat int int int int int int int int int int int int int int int javax.sound.sampled.AudioFormat javax.sound.sampled.AudioFormat$Encoding java.io.InputStream
      StackMap stack:
            getstatic javax.sound.sampled.AudioFormat$Encoding.PCM_SIGNED:Ljavax/sound/sampled/AudioFormat$Encoding;
            aload 20 /* encoding */
            invokevirtual javax.sound.sampled.AudioFormat$Encoding.equals:(Ljava/lang/Object;)Z
            ifeq 39
            aload 19 /* audioStreamFormat */
            invokevirtual javax.sound.sampled.AudioFormat.isBigEndian:()Z
            ifne 41
        39: .line 292
      StackMap locals:
      StackMap stack:
            getstatic javax.sound.sampled.AudioFormat$Encoding.PCM_UNSIGNED:Ljavax/sound/sampled/AudioFormat$Encoding;
            aload 20 /* encoding */
            invokevirtual javax.sound.sampled.AudioFormat$Encoding.equals:(Ljava/lang/Object;)Z
            ifeq 40
            aload 19 /* audioStreamFormat */
            invokevirtual javax.sound.sampled.AudioFormat.isBigEndian:()Z
            ifeq 41
        40: .line 293
      StackMap locals:
      StackMap stack:
            getstatic javax.sound.sampled.AudioFormat$Encoding.PCM_UNSIGNED:Ljavax/sound/sampled/AudioFormat$Encoding;
            aload 20 /* encoding */
            invokevirtual javax.sound.sampled.AudioFormat$Encoding.equals:(Ljava/lang/Object;)Z
            ifeq 54
            aload 19 /* audioStreamFormat */
            invokevirtual javax.sound.sampled.AudioFormat.isBigEndian:()Z
            ifeq 54
        41: .line 294
      StackMap locals:
      StackMap stack:
            iload 11 /* sampleSizeInBits */
            bipush 8
            if_icmpeq 54
        42: .line 295
            iconst_1
            istore 9 /* wav_type */
        43: .line 297
            new javax.sound.sampled.AudioFormat
            dup
        44: .line 298
            getstatic javax.sound.sampled.AudioFormat$Encoding.PCM_SIGNED:Ljavax/sound/sampled/AudioFormat$Encoding;
        45: .line 299
            aload 19 /* audioStreamFormat */
            invokevirtual javax.sound.sampled.AudioFormat.getSampleRate:()F
        46: .line 300
            aload 19 /* audioStreamFormat */
            invokevirtual javax.sound.sampled.AudioFormat.getSampleSizeInBits:()I
        47: .line 301
            aload 19 /* audioStreamFormat */
            invokevirtual javax.sound.sampled.AudioFormat.getChannels:()I
        48: .line 302
            aload 19 /* audioStreamFormat */
            invokevirtual javax.sound.sampled.AudioFormat.getFrameSize:()I
        49: .line 303
            aload 19 /* audioStreamFormat */
            invokevirtual javax.sound.sampled.AudioFormat.getFrameRate:()F
        50: .line 304
            iconst_0
        51: .line 297
            invokespecial javax.sound.sampled.AudioFormat.<init>:(Ljavax/sound/sampled/AudioFormat$Encoding;FIIIFZ)V
        52: .line 305
            aload 2 /* audioStream */
            checkcast javax.sound.sampled.AudioInputStream
        53: .line 297
            invokestatic javax.sound.sampled.AudioSystem.getAudioInputStream:(Ljavax/sound/sampled/AudioFormat;Ljavax/sound/sampled/AudioInputStream;)Ljavax/sound/sampled/AudioInputStream;
            astore 21 /* codedAudioStream */
        54: .line 313
      StackMap locals:
      StackMap stack:
            aconst_null
            astore 23
            aconst_null
            astore 24
        55: new java.io.ByteArrayOutputStream
            dup
            invokespecial java.io.ByteArrayOutputStream.<init>:()V
            astore 25 /* baos */
        start local 25 // java.io.ByteArrayOutputStream baos
        56: .line 314
            new java.io.DataOutputStream
            dup
            aload 25 /* baos */
            invokespecial java.io.DataOutputStream.<init>:(Ljava/io/OutputStream;)V
            astore 26 /* dos */
        start local 26 // java.io.DataOutputStream dos
        57: .line 316
            aload 26 /* dos */
            iload 5 /* riffMagic */
            invokevirtual java.io.DataOutputStream.writeInt:(I)V
        58: .line 317
            aload 26 /* dos */
            aload 0 /* this */
            iload 18 /* riffLength */
            invokevirtual com.sun.media.sound.WaveFileWriter.big2little:(I)I
            invokevirtual java.io.DataOutputStream.writeInt:(I)V
        59: .line 318
            aload 26 /* dos */
            iload 6 /* waveMagic */
            invokevirtual java.io.DataOutputStream.writeInt:(I)V
        60: .line 319
            aload 26 /* dos */
            iload 7 /* fmtMagic */
            invokevirtual java.io.DataOutputStream.writeInt:(I)V
        61: .line 320
            aload 26 /* dos */
            aload 0 /* this */
            iload 8 /* fmtLength */
            invokevirtual com.sun.media.sound.WaveFileWriter.big2little:(I)I
            invokevirtual java.io.DataOutputStream.writeInt:(I)V
        62: .line 321
            aload 26 /* dos */
            aload 0 /* this */
            iload 9 /* wav_type */
            invokevirtual com.sun.media.sound.WaveFileWriter.big2littleShort:(S)S
            invokevirtual java.io.DataOutputStream.writeShort:(I)V
        63: .line 322
            aload 26 /* dos */
            aload 0 /* this */
            iload 10 /* channels */
            invokevirtual com.sun.media.sound.WaveFileWriter.big2littleShort:(S)S
            invokevirtual java.io.DataOutputStream.writeShort:(I)V
        64: .line 323
            aload 26 /* dos */
            aload 0 /* this */
            iload 12 /* sampleRate */
            invokevirtual com.sun.media.sound.WaveFileWriter.big2little:(I)I
            invokevirtual java.io.DataOutputStream.writeInt:(I)V
        65: .line 324
            aload 26 /* dos */
            aload 0 /* this */
            iload 14 /* avgBytesPerSec */
            invokevirtual com.sun.media.sound.WaveFileWriter.big2little:(I)I
            invokevirtual java.io.DataOutputStream.writeInt:(I)V
        66: .line 325
            aload 26 /* dos */
            aload 0 /* this */
            iload 15 /* blockAlign */
            invokevirtual com.sun.media.sound.WaveFileWriter.big2littleShort:(S)S
            invokevirtual java.io.DataOutputStream.writeShort:(I)V
        67: .line 326
            aload 26 /* dos */
            aload 0 /* this */
            iload 11 /* sampleSizeInBits */
            invokevirtual com.sun.media.sound.WaveFileWriter.big2littleShort:(S)S
            invokevirtual java.io.DataOutputStream.writeShort:(I)V
        68: .line 328
            iload 9 /* wav_type */
            iconst_1
            if_icmpeq 70
        69: .line 330
            aload 26 /* dos */
            iconst_0
            invokevirtual java.io.DataOutputStream.writeShort:(I)V
        70: .line 332
      StackMap locals: com.sun.media.sound.WaveFileWriter com.sun.media.sound.WaveFileFormat java.io.InputStream javax.sound.sampled.AudioFormat int int int int int int int int int int int int int int int javax.sound.sampled.AudioFormat javax.sound.sampled.AudioFormat$Encoding java.io.InputStream top java.lang.Throwable java.lang.Throwable java.io.ByteArrayOutputStream java.io.DataOutputStream
      StackMap stack:
            aload 26 /* dos */
            iload 16 /* dataMagic */
            invokevirtual java.io.DataOutputStream.writeInt:(I)V
        71: .line 333
            aload 26 /* dos */
            aload 0 /* this */
            iload 17 /* dataLength */
            invokevirtual com.sun.media.sound.WaveFileWriter.big2little:(I)I
            invokevirtual java.io.DataOutputStream.writeInt:(I)V
        72: .line 334
            aload 25 /* baos */
            invokevirtual java.io.ByteArrayOutputStream.toByteArray:()[B
            astore 22 /* header */
        start local 22 // byte[] header
        73: .line 335
            aload 26 /* dos */
            ifnull 76
            aload 26 /* dos */
            invokevirtual java.io.DataOutputStream.close:()V
            goto 76
        end local 22 // byte[] header
      StackMap locals:
      StackMap stack: java.lang.Throwable
        74: astore 23
            aload 26 /* dos */
            ifnull 75
            aload 26 /* dos */
            invokevirtual java.io.DataOutputStream.close:()V
        end local 26 // java.io.DataOutputStream dos
      StackMap locals:
      StackMap stack:
        75: aload 23
            athrow
        start local 22 // byte[] header
      StackMap locals: com.sun.media.sound.WaveFileWriter com.sun.media.sound.WaveFileFormat java.io.InputStream javax.sound.sampled.AudioFormat int int int int int int int int int int int int int int int javax.sound.sampled.AudioFormat javax.sound.sampled.AudioFormat$Encoding java.io.InputStream byte[] java.lang.Throwable java.lang.Throwable java.io.ByteArrayOutputStream
      StackMap stack:
        76: aload 25 /* baos */
            ifnull 84
            aload 25 /* baos */
            invokevirtual java.io.ByteArrayOutputStream.close:()V
            goto 84
        end local 22 // byte[] header
      StackMap locals: com.sun.media.sound.WaveFileWriter com.sun.media.sound.WaveFileFormat java.io.InputStream javax.sound.sampled.AudioFormat int int int int int int int int int int int int int int int javax.sound.sampled.AudioFormat javax.sound.sampled.AudioFormat$Encoding java.io.InputStream top java.lang.Throwable java.lang.Throwable java.io.ByteArrayOutputStream
      StackMap stack: java.lang.Throwable
        77: astore 24
            aload 23
            ifnonnull 78
            aload 24
            astore 23
            goto 79
      StackMap locals:
      StackMap stack:
        78: aload 23
            aload 24
            if_acmpeq 79
            aload 23
            aload 24
            invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
      StackMap locals:
      StackMap stack:
        79: aload 25 /* baos */
            ifnull 80
            aload 25 /* baos */
            invokevirtual java.io.ByteArrayOutputStream.close:()V
        end local 25 // java.io.ByteArrayOutputStream baos
      StackMap locals:
      StackMap stack:
        80: aload 23
            athrow
      StackMap locals:
      StackMap stack: java.lang.Throwable
        81: astore 24
            aload 23
            ifnonnull 82
            aload 24
            astore 23
            goto 83
      StackMap locals:
      StackMap stack:
        82: aload 23
            aload 24
            if_acmpeq 83
            aload 23
            aload 24
            invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
      StackMap locals:
      StackMap stack:
        83: aload 23
            athrow
        start local 22 // byte[] header
        84: .line 336
      StackMap locals: com.sun.media.sound.WaveFileWriter com.sun.media.sound.WaveFileFormat java.io.InputStream javax.sound.sampled.AudioFormat int int int int int int int int int int int int int int int javax.sound.sampled.AudioFormat javax.sound.sampled.AudioFormat$Encoding java.io.InputStream byte[]
      StackMap stack:
            new java.io.SequenceInputStream
            dup
            new java.io.ByteArrayInputStream
            dup
            aload 22 /* header */
            invokespecial java.io.ByteArrayInputStream.<init>:([B)V
        85: .line 337
            new com.sun.media.sound.SunFileWriter$NoCloseInputStream
            dup
            aload 0 /* this */
            aload 21 /* codedAudioStream */
            invokespecial com.sun.media.sound.SunFileWriter$NoCloseInputStream.<init>:(Lcom/sun/media/sound/SunFileWriter;Ljava/io/InputStream;)V
        86: .line 336
            invokespecial java.io.SequenceInputStream.<init>:(Ljava/io/InputStream;Ljava/io/InputStream;)V
            areturn
        end local 22 // byte[] header
        end local 21 // java.io.InputStream codedAudioStream
        end local 20 // javax.sound.sampled.AudioFormat$Encoding encoding
        end local 19 // javax.sound.sampled.AudioFormat audioStreamFormat
        end local 18 // int riffLength
        end local 17 // int dataLength
        end local 16 // int dataMagic
        end local 15 // short blockAlign
        end local 14 // int avgBytesPerSec
        end local 13 // int frameSizeInBytes
        end local 12 // int sampleRate
        end local 11 // short sampleSizeInBits
        end local 10 // short channels
        end local 9 // short wav_type
        end local 8 // int fmtLength
        end local 7 // int fmtMagic
        end local 6 // int waveMagic
        end local 5 // int riffMagic
        end local 4 // int headerLength
        end local 3 // javax.sound.sampled.AudioFormat audioFormat
        end local 2 // java.io.InputStream audioStream
        end local 1 // com.sun.media.sound.WaveFileFormat waveFileFormat
        end local 0 // com.sun.media.sound.WaveFileWriter this
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0   87     0               this  Lcom/sun/media/sound/WaveFileWriter;
            0   87     1     waveFileFormat  Lcom/sun/media/sound/WaveFileFormat;
            0   87     2        audioStream  Ljava/io/InputStream;
            1   87     3        audioFormat  Ljavax/sound/sampled/AudioFormat;
            2   87     4       headerLength  I
            3   87     5          riffMagic  I
            4   87     6          waveMagic  I
            5   87     7           fmtMagic  I
            6   87     8          fmtLength  I
            7   87     9           wav_type  S
            8   87    10           channels  S
            9   87    11   sampleSizeInBits  S
           10   87    12         sampleRate  I
           11   87    13   frameSizeInBytes  I
           13   87    14     avgBytesPerSec  I
           14   87    15         blockAlign  S
           15   87    16          dataMagic  I
           16   87    17         dataLength  I
           18   87    18         riffLength  I
           19   87    19  audioStreamFormat  Ljavax/sound/sampled/AudioFormat;
           20   87    20           encoding  Ljavax/sound/sampled/AudioFormat$Encoding;
           21   87    21   codedAudioStream  Ljava/io/InputStream;
           73   74    22             header  [B
           76   77    22             header  [B
           84   87    22             header  [B
           56   80    25               baos  Ljava/io/ByteArrayOutputStream;
           57   75    26                dos  Ljava/io/DataOutputStream;
      Exception table:
        from    to  target  type
          57    73      74  any
          56    76      77  any
          55    81      81  any
    Exceptions:
      throws java.io.IOException
    MethodParameters:
                Name  Flags
      waveFileFormat  
      audioStream     
}
SourceFile: "WaveFileWriter.java"
InnerClasses:
  final NoCloseInputStream = com.sun.media.sound.SunFileWriter$NoCloseInputStream of com.sun.media.sound.SunFileWriter
  public Type = javax.sound.sampled.AudioFileFormat$Type of javax.sound.sampled.AudioFileFormat
  public Encoding = javax.sound.sampled.AudioFormat$Encoding of javax.sound.sampled.AudioFormat