public class com.sun.imageio.plugins.tiff.TIFFJPEGDecompressor extends com.sun.imageio.plugins.tiff.TIFFDecompressor
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: com.sun.imageio.plugins.tiff.TIFFJPEGDecompressor
  super_class: com.sun.imageio.plugins.tiff.TIFFDecompressor
{
  protected static final int SOI;
    descriptor: I
    flags: (0x001c) ACC_PROTECTED, ACC_STATIC, ACC_FINAL
    ConstantValue: 216

  protected static final int EOI;
    descriptor: I
    flags: (0x001c) ACC_PROTECTED, ACC_STATIC, ACC_FINAL
    ConstantValue: 217

  protected javax.imageio.ImageReader JPEGReader;
    descriptor: Ljavax/imageio/ImageReader;
    flags: (0x0004) ACC_PROTECTED

  protected javax.imageio.ImageReadParam JPEGParam;
    descriptor: Ljavax/imageio/ImageReadParam;
    flags: (0x0004) ACC_PROTECTED

  protected boolean hasJPEGTables;
    descriptor: Z
    flags: (0x0004) ACC_PROTECTED

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

  private byte[] data;
    descriptor: [B
    flags: (0x0002) ACC_PRIVATE

  public void <init>();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // com.sun.imageio.plugins.tiff.TIFFJPEGDecompressor this
         0: .line 53
            aload 0 /* this */
            invokespecial com.sun.imageio.plugins.tiff.TIFFDecompressor.<init>:()V
         1: .line 45
            aload 0 /* this */
            aconst_null
            putfield com.sun.imageio.plugins.tiff.TIFFJPEGDecompressor.JPEGReader:Ljavax/imageio/ImageReader;
         2: .line 48
            aload 0 /* this */
            iconst_0
            putfield com.sun.imageio.plugins.tiff.TIFFJPEGDecompressor.hasJPEGTables:Z
         3: .line 49
            aload 0 /* this */
            aconst_null
            putfield com.sun.imageio.plugins.tiff.TIFFJPEGDecompressor.tables:[B
         4: .line 51
            aload 0 /* this */
            iconst_0
            newarray 8
            putfield com.sun.imageio.plugins.tiff.TIFFJPEGDecompressor.data:[B
         5: .line 53
            return
        end local 0 // com.sun.imageio.plugins.tiff.TIFFJPEGDecompressor this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    6     0  this  Lcom/sun/imageio/plugins/tiff/TIFFJPEGDecompressor;

  public void beginDecoding();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=1
        start local 0 // com.sun.imageio.plugins.tiff.TIFFJPEGDecompressor this
         0: .line 57
            aload 0 /* this */
            getfield com.sun.imageio.plugins.tiff.TIFFJPEGDecompressor.JPEGReader:Ljavax/imageio/ImageReader;
            ifnonnull 6
         1: .line 59
            ldc "jpeg"
            invokestatic javax.imageio.ImageIO.getImageReadersByFormatName:(Ljava/lang/String;)Ljava/util/Iterator;
            astore 1 /* iter */
        start local 1 // java.util.Iterator iter
         2: .line 61
            aload 1 /* iter */
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 4
         3: .line 62
            new java.lang.IllegalStateException
            dup
            ldc "No JPEG readers found!"
            invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
            athrow
         4: .line 66
      StackMap locals: java.util.Iterator
      StackMap stack:
            aload 0 /* this */
            aload 1 /* iter */
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast javax.imageio.ImageReader
            putfield com.sun.imageio.plugins.tiff.TIFFJPEGDecompressor.JPEGReader:Ljavax/imageio/ImageReader;
         5: .line 68
            aload 0 /* this */
            aload 0 /* this */
            getfield com.sun.imageio.plugins.tiff.TIFFJPEGDecompressor.JPEGReader:Ljavax/imageio/ImageReader;
            invokevirtual javax.imageio.ImageReader.getDefaultReadParam:()Ljavax/imageio/ImageReadParam;
            putfield com.sun.imageio.plugins.tiff.TIFFJPEGDecompressor.JPEGParam:Ljavax/imageio/ImageReadParam;
        end local 1 // java.util.Iterator iter
         6: .line 72
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.imageio.plugins.tiff.TIFFJPEGDecompressor.metadata:Ljavax/imageio/metadata/IIOMetadata;
            checkcast com.sun.imageio.plugins.tiff.TIFFImageMetadata
            astore 1 /* tmetadata */
        start local 1 // com.sun.imageio.plugins.tiff.TIFFImageMetadata tmetadata
         7: .line 74
            aload 1 /* tmetadata */
            sipush 347
            invokevirtual com.sun.imageio.plugins.tiff.TIFFImageMetadata.getTIFFField:(I)Ljavax/imageio/plugins/tiff/TIFFField;
         8: .line 73
            astore 2 /* f */
        start local 2 // javax.imageio.plugins.tiff.TIFFField f
         9: .line 76
            aload 2 /* f */
            ifnull 13
        10: .line 77
            aload 0 /* this */
            iconst_1
            putfield com.sun.imageio.plugins.tiff.TIFFJPEGDecompressor.hasJPEGTables:Z
        11: .line 78
            aload 0 /* this */
            aload 2 /* f */
            invokevirtual javax.imageio.plugins.tiff.TIFFField.getAsBytes:()[B
            putfield com.sun.imageio.plugins.tiff.TIFFJPEGDecompressor.tables:[B
        12: .line 79
            goto 14
        13: .line 80
      StackMap locals: com.sun.imageio.plugins.tiff.TIFFImageMetadata javax.imageio.plugins.tiff.TIFFField
      StackMap stack:
            aload 0 /* this */
            iconst_0
            putfield com.sun.imageio.plugins.tiff.TIFFJPEGDecompressor.hasJPEGTables:Z
        14: .line 82
      StackMap locals:
      StackMap stack:
            return
        end local 2 // javax.imageio.plugins.tiff.TIFFField f
        end local 1 // com.sun.imageio.plugins.tiff.TIFFImageMetadata tmetadata
        end local 0 // com.sun.imageio.plugins.tiff.TIFFJPEGDecompressor this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   15     0       this  Lcom/sun/imageio/plugins/tiff/TIFFJPEGDecompressor;
            2    6     1       iter  Ljava/util/Iterator<Ljavax/imageio/ImageReader;>;
            7   15     1  tmetadata  Lcom/sun/imageio/plugins/tiff/TIFFImageMetadata;
            9   15     2          f  Ljavax/imageio/plugins/tiff/TIFFField;

  public void decodeRaw(byte[], int, int, int);
    descriptor: ([BIII)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=11, args_size=5
        start local 0 // com.sun.imageio.plugins.tiff.TIFFJPEGDecompressor this
        start local 1 // byte[] b
        start local 2 // int dstOffset
        start local 3 // int bitsPerPixel
        start local 4 // int scanlineStride
         0: .line 89
            aload 0 /* this */
            getfield com.sun.imageio.plugins.tiff.TIFFJPEGDecompressor.stream:Ljavax/imageio/stream/ImageInputStream;
            aload 0 /* this */
            getfield com.sun.imageio.plugins.tiff.TIFFJPEGDecompressor.offset:J
            invokeinterface javax.imageio.stream.ImageInputStream.seek:(J)V
         1: .line 93
            aload 0 /* this */
            getfield com.sun.imageio.plugins.tiff.TIFFJPEGDecompressor.hasJPEGTables:Z
            ifeq 24
         2: .line 97
            aload 0 /* this */
            getfield com.sun.imageio.plugins.tiff.TIFFJPEGDecompressor.tables:[B
            arraylength
            aload 0 /* this */
            getfield com.sun.imageio.plugins.tiff.TIFFJPEGDecompressor.byteCount:I
            iadd
            istore 6 /* dataLength */
        start local 6 // int dataLength
         3: .line 98
            aload 0 /* this */
            getfield com.sun.imageio.plugins.tiff.TIFFJPEGDecompressor.data:[B
            arraylength
            iload 6 /* dataLength */
            if_icmpge 5
         4: .line 99
            aload 0 /* this */
            iload 6 /* dataLength */
            newarray 8
            putfield com.sun.imageio.plugins.tiff.TIFFJPEGDecompressor.data:[B
         5: .line 103
      StackMap locals: com.sun.imageio.plugins.tiff.TIFFJPEGDecompressor byte[] int int int top int
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.imageio.plugins.tiff.TIFFJPEGDecompressor.tables:[B
            arraylength
            istore 7 /* dataOffset */
        start local 7 // int dataOffset
         6: .line 104
            aload 0 /* this */
            getfield com.sun.imageio.plugins.tiff.TIFFJPEGDecompressor.tables:[B
            arraylength
            iconst_2
            isub
            istore 8 /* i */
        start local 8 // int i
         7: goto 13
         8: .line 105
      StackMap locals: int int
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.imageio.plugins.tiff.TIFFJPEGDecompressor.tables:[B
            iload 8 /* i */
            baload
            sipush 255
            iand
            sipush 255
            if_icmpne 12
         9: .line 106
            aload 0 /* this */
            getfield com.sun.imageio.plugins.tiff.TIFFJPEGDecompressor.tables:[B
            iload 8 /* i */
            iconst_1
            iadd
            baload
            sipush 255
            iand
            sipush 217
            if_icmpne 12
        10: .line 107
            iload 8 /* i */
            istore 7 /* dataOffset */
        11: .line 108
            goto 14
        12: .line 104
      StackMap locals:
      StackMap stack:
            iinc 8 /* i */ -1
      StackMap locals:
      StackMap stack:
        13: iload 8 /* i */
            ifgt 8
        end local 8 // int i
        14: .line 111
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.imageio.plugins.tiff.TIFFJPEGDecompressor.tables:[B
            iconst_0
            aload 0 /* this */
            getfield com.sun.imageio.plugins.tiff.TIFFJPEGDecompressor.data:[B
            iconst_0
            iload 7 /* dataOffset */
            invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
        15: .line 114
            aload 0 /* this */
            getfield com.sun.imageio.plugins.tiff.TIFFJPEGDecompressor.stream:Ljavax/imageio/stream/ImageInputStream;
            invokeinterface javax.imageio.stream.ImageInputStream.read:()I
            i2b
            istore 8 /* byte1 */
        start local 8 // byte byte1
        16: .line 115
            aload 0 /* this */
            getfield com.sun.imageio.plugins.tiff.TIFFJPEGDecompressor.stream:Ljavax/imageio/stream/ImageInputStream;
            invokeinterface javax.imageio.stream.ImageInputStream.read:()I
            i2b
            istore 9 /* byte2 */
        start local 9 // byte byte2
        17: .line 116
            iload 8 /* byte1 */
            sipush 255
            iand
            sipush 255
            if_icmpne 18
            iload 9 /* byte2 */
            sipush 255
            iand
            sipush 216
            if_icmpeq 20
        18: .line 117
      StackMap locals: int int
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.imageio.plugins.tiff.TIFFJPEGDecompressor.data:[B
            iload 7 /* dataOffset */
            iinc 7 /* dataOffset */ 1
            iload 8 /* byte1 */
            bastore
        19: .line 118
            aload 0 /* this */
            getfield com.sun.imageio.plugins.tiff.TIFFJPEGDecompressor.data:[B
            iload 7 /* dataOffset */
            iinc 7 /* dataOffset */ 1
            iload 9 /* byte2 */
            bastore
        20: .line 122
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.imageio.plugins.tiff.TIFFJPEGDecompressor.stream:Ljavax/imageio/stream/ImageInputStream;
            aload 0 /* this */
            getfield com.sun.imageio.plugins.tiff.TIFFJPEGDecompressor.data:[B
            iload 7 /* dataOffset */
            aload 0 /* this */
            getfield com.sun.imageio.plugins.tiff.TIFFJPEGDecompressor.byteCount:I
            iconst_2
            isub
            invokeinterface javax.imageio.stream.ImageInputStream.readFully:([BII)V
        21: .line 125
            new java.io.ByteArrayInputStream
            dup
            aload 0 /* this */
            getfield com.sun.imageio.plugins.tiff.TIFFJPEGDecompressor.data:[B
            invokespecial java.io.ByteArrayInputStream.<init>:([B)V
            astore 10 /* bais */
        start local 10 // java.io.ByteArrayInputStream bais
        22: .line 126
            new javax.imageio.stream.MemoryCacheImageInputStream
            dup
            aload 10 /* bais */
            invokespecial javax.imageio.stream.MemoryCacheImageInputStream.<init>:(Ljava/io/InputStream;)V
            astore 5 /* is */
        end local 10 // java.io.ByteArrayInputStream bais
        end local 9 // byte byte2
        end local 8 // byte byte1
        end local 7 // int dataOffset
        end local 6 // int dataLength
        start local 5 // javax.imageio.stream.ImageInputStream is
        23: .line 127
            goto 25
        end local 5 // javax.imageio.stream.ImageInputStream is
        24: .line 129
      StackMap locals: com.sun.imageio.plugins.tiff.TIFFJPEGDecompressor byte[] int int int
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.imageio.plugins.tiff.TIFFJPEGDecompressor.stream:Ljavax/imageio/stream/ImageInputStream;
            astore 5 /* is */
        start local 5 // javax.imageio.stream.ImageInputStream is
        25: .line 133
      StackMap locals: javax.imageio.stream.ImageInputStream
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.imageio.plugins.tiff.TIFFJPEGDecompressor.JPEGReader:Ljavax/imageio/ImageReader;
            aload 5 /* is */
            iconst_0
            iconst_1
            invokevirtual javax.imageio.ImageReader.setInput:(Ljava/lang/Object;ZZ)V
        26: .line 136
            aload 0 /* this */
            getfield com.sun.imageio.plugins.tiff.TIFFJPEGDecompressor.JPEGParam:Ljavax/imageio/ImageReadParam;
            aload 0 /* this */
            getfield com.sun.imageio.plugins.tiff.TIFFJPEGDecompressor.rawImage:Ljava/awt/image/BufferedImage;
            invokevirtual javax.imageio.ImageReadParam.setDestination:(Ljava/awt/image/BufferedImage;)V
        27: .line 139
            aload 0 /* this */
            getfield com.sun.imageio.plugins.tiff.TIFFJPEGDecompressor.JPEGReader:Ljavax/imageio/ImageReader;
            iconst_0
            aload 0 /* this */
            getfield com.sun.imageio.plugins.tiff.TIFFJPEGDecompressor.JPEGParam:Ljavax/imageio/ImageReadParam;
            invokevirtual javax.imageio.ImageReader.read:(ILjavax/imageio/ImageReadParam;)Ljava/awt/image/BufferedImage;
            pop
        28: .line 140
            return
        end local 5 // javax.imageio.stream.ImageInputStream is
        end local 4 // int scanlineStride
        end local 3 // int bitsPerPixel
        end local 2 // int dstOffset
        end local 1 // byte[] b
        end local 0 // com.sun.imageio.plugins.tiff.TIFFJPEGDecompressor this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   29     0            this  Lcom/sun/imageio/plugins/tiff/TIFFJPEGDecompressor;
            0   29     1               b  [B
            0   29     2       dstOffset  I
            0   29     3    bitsPerPixel  I
            0   29     4  scanlineStride  I
           23   24     5              is  Ljavax/imageio/stream/ImageInputStream;
           25   29     5              is  Ljavax/imageio/stream/ImageInputStream;
            3   23     6      dataLength  I
            6   23     7      dataOffset  I
            7   14     8               i  I
           16   23     8           byte1  B
           17   23     9           byte2  B
           22   23    10            bais  Ljava/io/ByteArrayInputStream;
    Exceptions:
      throws java.io.IOException
    MethodParameters:
                Name  Flags
      b               
      dstOffset       
      bitsPerPixel    
      scanlineStride  

  protected void finalize();
    descriptor: ()V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.sun.imageio.plugins.tiff.TIFFJPEGDecompressor this
         0: .line 144
            aload 0 /* this */
            invokespecial java.lang.Object.finalize:()V
         1: .line 145
            aload 0 /* this */
            getfield com.sun.imageio.plugins.tiff.TIFFJPEGDecompressor.JPEGReader:Ljavax/imageio/ImageReader;
            invokevirtual javax.imageio.ImageReader.dispose:()V
         2: .line 146
            return
        end local 0 // com.sun.imageio.plugins.tiff.TIFFJPEGDecompressor this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lcom/sun/imageio/plugins/tiff/TIFFJPEGDecompressor;
    Exceptions:
      throws java.lang.Throwable
}
SourceFile: "TIFFJPEGDecompressor.java"