public class com.sun.imageio.plugins.jpeg.JPEGImageReader extends javax.imageio.ImageReader
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: com.sun.imageio.plugins.jpeg.JPEGImageReader
  super_class: javax.imageio.ImageReader
{
  private boolean debug;
    descriptor: Z
    flags: (0x0002) ACC_PRIVATE

  private long structPointer;
    descriptor: J
    flags: (0x0002) ACC_PRIVATE

  private javax.imageio.stream.ImageInputStream iis;
    descriptor: Ljavax/imageio/stream/ImageInputStream;
    flags: (0x0002) ACC_PRIVATE

  private java.util.List<java.lang.Long> imagePositions;
    descriptor: Ljava/util/List;
    flags: (0x0002) ACC_PRIVATE
    Signature: Ljava/util/List<Ljava/lang/Long;>;

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

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

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

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

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

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

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

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

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

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

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

  private java.awt.color.ColorSpace iccCS;
    descriptor: Ljava/awt/color/ColorSpace;
    flags: (0x0002) ACC_PRIVATE

  private java.awt.image.ColorConvertOp convert;
    descriptor: Ljava/awt/image/ColorConvertOp;
    flags: (0x0002) ACC_PRIVATE

  private java.awt.image.BufferedImage image;
    descriptor: Ljava/awt/image/BufferedImage;
    flags: (0x0002) ACC_PRIVATE

  private java.awt.image.WritableRaster raster;
    descriptor: Ljava/awt/image/WritableRaster;
    flags: (0x0002) ACC_PRIVATE

  private java.awt.image.WritableRaster target;
    descriptor: Ljava/awt/image/WritableRaster;
    flags: (0x0002) ACC_PRIVATE

  private java.awt.image.DataBufferByte buffer;
    descriptor: Ljava/awt/image/DataBufferByte;
    flags: (0x0002) ACC_PRIVATE

  private java.awt.Rectangle destROI;
    descriptor: Ljava/awt/Rectangle;
    flags: (0x0002) ACC_PRIVATE

  private int[] destinationBands;
    descriptor: [I
    flags: (0x0002) ACC_PRIVATE

  private com.sun.imageio.plugins.jpeg.JPEGMetadata streamMetadata;
    descriptor: Lcom/sun/imageio/plugins/jpeg/JPEGMetadata;
    flags: (0x0002) ACC_PRIVATE

  private com.sun.imageio.plugins.jpeg.JPEGMetadata imageMetadata;
    descriptor: Lcom/sun/imageio/plugins/jpeg/JPEGMetadata;
    flags: (0x0002) ACC_PRIVATE

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

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

  private javax.imageio.plugins.jpeg.JPEGQTable[] abbrevQTables;
    descriptor: [Ljavax/imageio/plugins/jpeg/JPEGQTable;
    flags: (0x0002) ACC_PRIVATE

  private javax.imageio.plugins.jpeg.JPEGHuffmanTable[] abbrevDCHuffmanTables;
    descriptor: [Ljavax/imageio/plugins/jpeg/JPEGHuffmanTable;
    flags: (0x0002) ACC_PRIVATE

  private javax.imageio.plugins.jpeg.JPEGHuffmanTable[] abbrevACHuffmanTables;
    descriptor: [Ljavax/imageio/plugins/jpeg/JPEGHuffmanTable;
    flags: (0x0002) ACC_PRIVATE

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

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

  private static final int UNKNOWN;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: -1

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

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

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

  private float percentToDate;
    descriptor: F
    flags: (0x0002) ACC_PRIVATE

  private float previousPassPercentage;
    descriptor: F
    flags: (0x0002) ACC_PRIVATE

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

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

  private java.lang.Object disposerReferent;
    descriptor: Ljava/lang/Object;
    flags: (0x0002) ACC_PRIVATE

  private sun.java2d.DisposerRecord disposerRecord;
    descriptor: Lsun/java2d/DisposerRecord;
    flags: (0x0002) ACC_PRIVATE

  private java.lang.Thread theThread;
    descriptor: Ljava/lang/Thread;
    flags: (0x0002) ACC_PRIVATE

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

  private com.sun.imageio.plugins.jpeg.JPEGImageReader$CallBackLock cbLock;
    descriptor: Lcom/sun/imageio/plugins/jpeg/JPEGImageReader$CallBackLock;
    flags: (0x0002) ACC_PRIVATE

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=3, locals=0, args_size=0
         0: .line 90
            new com.sun.imageio.plugins.jpeg.JPEGImageReader$1
            dup
            invokespecial com.sun.imageio.plugins.jpeg.JPEGImageReader$1.<init>:()V
         1: .line 89
            invokestatic java.security.AccessController.doPrivileged:(Ljava/security/PrivilegedAction;)Ljava/lang/Object;
            pop
         2: .line 96
            ldc Ljavax/imageio/stream/ImageInputStream;
         3: .line 97
            ldc Ljavax/imageio/plugins/jpeg/JPEGQTable;
         4: .line 98
            ldc Ljavax/imageio/plugins/jpeg/JPEGHuffmanTable;
         5: .line 96
            invokestatic com.sun.imageio.plugins.jpeg.JPEGImageReader.initReaderIDs:(Ljava/lang/Class;Ljava/lang/Class;Ljava/lang/Class;)V
         6: .line 207
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  private static native void initReaderIDs(java.lang.Class<?>, java.lang.Class<?>, java.lang.Class<?>);
    descriptor: (Ljava/lang/Class;Ljava/lang/Class;Ljava/lang/Class;)V
    flags: (0x010a) ACC_PRIVATE, ACC_STATIC, ACC_NATIVE
    Signature: (Ljava/lang/Class<*>;Ljava/lang/Class<*>;Ljava/lang/Class<*>;)V
    MethodParameters:
             Name  Flags
      iisClass     
      qTableClass  
      huffClass    

  public void <init>(javax.imageio.spi.ImageReaderSpi);
    descriptor: (Ljavax/imageio/spi/ImageReaderSpi;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=2, args_size=2
        start local 0 // com.sun.imageio.plugins.jpeg.JPEGImageReader this
        start local 1 // javax.imageio.spi.ImageReaderSpi originator
         0: .line 231
            aload 0 /* this */
            aload 1 /* originator */
            invokespecial javax.imageio.ImageReader.<init>:(Ljavax/imageio/spi/ImageReaderSpi;)V
         1: .line 64
            aload 0 /* this */
            iconst_0
            putfield com.sun.imageio.plugins.jpeg.JPEGImageReader.debug:Z
         2: .line 72
            aload 0 /* this */
            lconst_0
            putfield com.sun.imageio.plugins.jpeg.JPEGImageReader.structPointer:J
         3: .line 75
            aload 0 /* this */
            aconst_null
            putfield com.sun.imageio.plugins.jpeg.JPEGImageReader.iis:Ljavax/imageio/stream/ImageInputStream;
         4: .line 81
            aload 0 /* this */
            aconst_null
            putfield com.sun.imageio.plugins.jpeg.JPEGImageReader.imagePositions:Ljava/util/List;
         5: .line 86
            aload 0 /* this */
            iconst_0
            putfield com.sun.imageio.plugins.jpeg.JPEGImageReader.numImages:I
         6: .line 132
            aload 0 /* this */
            iconst_m1
            putfield com.sun.imageio.plugins.jpeg.JPEGImageReader.currentImage:I
         7: .line 155
            aload 0 /* this */
            aconst_null
            putfield com.sun.imageio.plugins.jpeg.JPEGImageReader.iccCS:Ljava/awt/color/ColorSpace;
         8: .line 159
            aload 0 /* this */
            aconst_null
            putfield com.sun.imageio.plugins.jpeg.JPEGImageReader.convert:Ljava/awt/image/ColorConvertOp;
         9: .line 162
            aload 0 /* this */
            aconst_null
            putfield com.sun.imageio.plugins.jpeg.JPEGImageReader.image:Ljava/awt/image/BufferedImage;
        10: .line 165
            aload 0 /* this */
            aconst_null
            putfield com.sun.imageio.plugins.jpeg.JPEGImageReader.raster:Ljava/awt/image/WritableRaster;
        11: .line 168
            aload 0 /* this */
            aconst_null
            putfield com.sun.imageio.plugins.jpeg.JPEGImageReader.target:Ljava/awt/image/WritableRaster;
        12: .line 171
            aload 0 /* this */
            aconst_null
            putfield com.sun.imageio.plugins.jpeg.JPEGImageReader.buffer:Ljava/awt/image/DataBufferByte;
        13: .line 174
            aload 0 /* this */
            aconst_null
            putfield com.sun.imageio.plugins.jpeg.JPEGImageReader.destROI:Ljava/awt/Rectangle;
        14: .line 177
            aload 0 /* this */
            aconst_null
            putfield com.sun.imageio.plugins.jpeg.JPEGImageReader.destinationBands:[I
        15: .line 180
            aload 0 /* this */
            aconst_null
            putfield com.sun.imageio.plugins.jpeg.JPEGImageReader.streamMetadata:Lcom/sun/imageio/plugins/jpeg/JPEGMetadata;
        16: .line 183
            aload 0 /* this */
            aconst_null
            putfield com.sun.imageio.plugins.jpeg.JPEGImageReader.imageMetadata:Lcom/sun/imageio/plugins/jpeg/JPEGMetadata;
        17: .line 184
            aload 0 /* this */
            iconst_m1
            putfield com.sun.imageio.plugins.jpeg.JPEGImageReader.imageMetadataIndex:I
        18: .line 190
            aload 0 /* this */
            iconst_0
            putfield com.sun.imageio.plugins.jpeg.JPEGImageReader.haveSeeked:Z
        19: .line 196
            aload 0 /* this */
            aconst_null
            putfield com.sun.imageio.plugins.jpeg.JPEGImageReader.abbrevQTables:[Ljavax/imageio/plugins/jpeg/JPEGQTable;
        20: .line 197
            aload 0 /* this */
            aconst_null
            putfield com.sun.imageio.plugins.jpeg.JPEGImageReader.abbrevDCHuffmanTables:[Ljavax/imageio/plugins/jpeg/JPEGHuffmanTable;
        21: .line 198
            aload 0 /* this */
            aconst_null
            putfield com.sun.imageio.plugins.jpeg.JPEGImageReader.abbrevACHuffmanTables:[Ljavax/imageio/plugins/jpeg/JPEGHuffmanTable;
        22: .line 200
            aload 0 /* this */
            iconst_0
            putfield com.sun.imageio.plugins.jpeg.JPEGImageReader.minProgressivePass:I
        23: .line 201
            aload 0 /* this */
            ldc 2147483647
            putfield com.sun.imageio.plugins.jpeg.JPEGImageReader.maxProgressivePass:I
        24: .line 208
            aload 0 /* this */
            iconst_m1
            putfield com.sun.imageio.plugins.jpeg.JPEGImageReader.knownPassCount:I
        25: .line 209
            aload 0 /* this */
            iconst_0
            putfield com.sun.imageio.plugins.jpeg.JPEGImageReader.pass:I
        26: .line 210
            aload 0 /* this */
            fconst_0
            putfield com.sun.imageio.plugins.jpeg.JPEGImageReader.percentToDate:F
        27: .line 211
            aload 0 /* this */
            fconst_0
            putfield com.sun.imageio.plugins.jpeg.JPEGImageReader.previousPassPercentage:F
        28: .line 212
            aload 0 /* this */
            iconst_0
            putfield com.sun.imageio.plugins.jpeg.JPEGImageReader.progInterval:I
        29: .line 217
            aload 0 /* this */
            iconst_0
            putfield com.sun.imageio.plugins.jpeg.JPEGImageReader.tablesOnlyChecked:Z
        30: .line 220
            aload 0 /* this */
            new java.lang.Object
            dup
            invokespecial java.lang.Object.<init>:()V
            putfield com.sun.imageio.plugins.jpeg.JPEGImageReader.disposerReferent:Ljava/lang/Object;
        31: .line 1754
            aload 0 /* this */
            aconst_null
            putfield com.sun.imageio.plugins.jpeg.JPEGImageReader.theThread:Ljava/lang/Thread;
        32: .line 1755
            aload 0 /* this */
            iconst_0
            putfield com.sun.imageio.plugins.jpeg.JPEGImageReader.theLockCount:I
        33: .line 1790
            aload 0 /* this */
            new com.sun.imageio.plugins.jpeg.JPEGImageReader$CallBackLock
            dup
            invokespecial com.sun.imageio.plugins.jpeg.JPEGImageReader$CallBackLock.<init>:()V
            putfield com.sun.imageio.plugins.jpeg.JPEGImageReader.cbLock:Lcom/sun/imageio/plugins/jpeg/JPEGImageReader$CallBackLock;
        34: .line 232
            aload 0 /* this */
            aload 0 /* this */
            invokevirtual com.sun.imageio.plugins.jpeg.JPEGImageReader.initJPEGImageReader:()J
            putfield com.sun.imageio.plugins.jpeg.JPEGImageReader.structPointer:J
        35: .line 233
            aload 0 /* this */
            new com.sun.imageio.plugins.jpeg.JPEGImageReader$JPEGReaderDisposerRecord
            dup
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageReader.structPointer:J
            invokespecial com.sun.imageio.plugins.jpeg.JPEGImageReader$JPEGReaderDisposerRecord.<init>:(J)V
            putfield com.sun.imageio.plugins.jpeg.JPEGImageReader.disposerRecord:Lsun/java2d/DisposerRecord;
        36: .line 234
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageReader.disposerReferent:Ljava/lang/Object;
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageReader.disposerRecord:Lsun/java2d/DisposerRecord;
            invokestatic sun.java2d.Disposer.addRecord:(Ljava/lang/Object;Lsun/java2d/DisposerRecord;)V
        37: .line 235
            return
        end local 1 // javax.imageio.spi.ImageReaderSpi originator
        end local 0 // com.sun.imageio.plugins.jpeg.JPEGImageReader this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   38     0        this  Lcom/sun/imageio/plugins/jpeg/JPEGImageReader;
            0   38     1  originator  Ljavax/imageio/spi/ImageReaderSpi;
    MethodParameters:
            Name  Flags
      originator  

  private native long initJPEGImageReader();
    descriptor: ()J
    flags: (0x0102) ACC_PRIVATE, ACC_NATIVE

  protected void warningOccurred(int);
    descriptor: (I)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // com.sun.imageio.plugins.jpeg.JPEGImageReader this
        start local 1 // int code
         0: .line 246
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageReader.cbLock:Lcom/sun/imageio/plugins/jpeg/JPEGImageReader$CallBackLock;
            invokevirtual com.sun.imageio.plugins.jpeg.JPEGImageReader$CallBackLock.lock:()V
         1: .line 248
            iload 1 /* code */
            iflt 2
            iload 1 /* code */
            iconst_2
            if_icmple 3
         2: .line 249
      StackMap locals:
      StackMap stack:
            new java.lang.InternalError
            dup
            ldc "Invalid warning index"
            invokespecial java.lang.InternalError.<init>:(Ljava/lang/String;)V
            athrow
         3: .line 251
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
         4: .line 252
            ldc "com.sun.imageio.plugins.jpeg.JPEGImageReaderResources"
         5: .line 253
            iload 1 /* code */
            invokestatic java.lang.Integer.toString:(I)Ljava/lang/String;
         6: .line 251
            invokevirtual com.sun.imageio.plugins.jpeg.JPEGImageReader.processWarningOccurred:(Ljava/lang/String;Ljava/lang/String;)V
         7: .line 254
            goto 11
      StackMap locals:
      StackMap stack: java.lang.Throwable
         8: astore 2
         9: .line 255
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageReader.cbLock:Lcom/sun/imageio/plugins/jpeg/JPEGImageReader$CallBackLock;
            invokevirtual com.sun.imageio.plugins.jpeg.JPEGImageReader$CallBackLock.unlock:()V
        10: .line 256
            aload 2
            athrow
        11: .line 255
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageReader.cbLock:Lcom/sun/imageio/plugins/jpeg/JPEGImageReader$CallBackLock;
            invokevirtual com.sun.imageio.plugins.jpeg.JPEGImageReader$CallBackLock.unlock:()V
        12: .line 257
            return
        end local 1 // int code
        end local 0 // com.sun.imageio.plugins.jpeg.JPEGImageReader this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   13     0  this  Lcom/sun/imageio/plugins/jpeg/JPEGImageReader;
            0   13     1  code  I
      Exception table:
        from    to  target  type
           1     8       8  any
    MethodParameters:
      Name  Flags
      code  

  protected void warningWithMessage(java.lang.String);
    descriptor: (Ljava/lang/String;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // com.sun.imageio.plugins.jpeg.JPEGImageReader this
        start local 1 // java.lang.String msg
         0: .line 273
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageReader.cbLock:Lcom/sun/imageio/plugins/jpeg/JPEGImageReader$CallBackLock;
            invokevirtual com.sun.imageio.plugins.jpeg.JPEGImageReader$CallBackLock.lock:()V
         1: .line 275
            aload 0 /* this */
            aload 1 /* msg */
            invokevirtual com.sun.imageio.plugins.jpeg.JPEGImageReader.processWarningOccurred:(Ljava/lang/String;)V
         2: .line 276
            goto 6
      StackMap locals:
      StackMap stack: java.lang.Throwable
         3: astore 2
         4: .line 277
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageReader.cbLock:Lcom/sun/imageio/plugins/jpeg/JPEGImageReader$CallBackLock;
            invokevirtual com.sun.imageio.plugins.jpeg.JPEGImageReader$CallBackLock.unlock:()V
         5: .line 278
            aload 2
            athrow
         6: .line 277
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageReader.cbLock:Lcom/sun/imageio/plugins/jpeg/JPEGImageReader$CallBackLock;
            invokevirtual com.sun.imageio.plugins.jpeg.JPEGImageReader$CallBackLock.unlock:()V
         7: .line 279
            return
        end local 1 // java.lang.String msg
        end local 0 // com.sun.imageio.plugins.jpeg.JPEGImageReader this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    8     0  this  Lcom/sun/imageio/plugins/jpeg/JPEGImageReader;
            0    8     1   msg  Ljava/lang/String;
      Exception table:
        from    to  target  type
           1     3       3  any
    MethodParameters:
      Name  Flags
      msg   

  public void setInput(java.lang.Object, boolean, boolean);
    descriptor: (Ljava/lang/Object;ZZ)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=5, args_size=4
        start local 0 // com.sun.imageio.plugins.jpeg.JPEGImageReader this
        start local 1 // java.lang.Object input
        start local 2 // boolean seekForwardOnly
        start local 3 // boolean ignoreMetadata
         0: .line 285
            aload 0 /* this */
            invokevirtual com.sun.imageio.plugins.jpeg.JPEGImageReader.setThreadLock:()V
         1: .line 287
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageReader.cbLock:Lcom/sun/imageio/plugins/jpeg/JPEGImageReader$CallBackLock;
            invokevirtual com.sun.imageio.plugins.jpeg.JPEGImageReader$CallBackLock.check:()V
         2: .line 289
            aload 0 /* this */
            aload 1 /* input */
            iload 2 /* seekForwardOnly */
            iload 3 /* ignoreMetadata */
            invokespecial javax.imageio.ImageReader.setInput:(Ljava/lang/Object;ZZ)V
         3: .line 290
            aload 0 /* this */
            iload 3 /* ignoreMetadata */
            putfield com.sun.imageio.plugins.jpeg.JPEGImageReader.ignoreMetadata:Z
         4: .line 291
            aload 0 /* this */
            invokevirtual com.sun.imageio.plugins.jpeg.JPEGImageReader.resetInternalState:()V
         5: .line 292
            aload 0 /* this */
            aload 1 /* input */
            checkcast javax.imageio.stream.ImageInputStream
            putfield com.sun.imageio.plugins.jpeg.JPEGImageReader.iis:Ljavax/imageio/stream/ImageInputStream;
         6: .line 293
            aload 0 /* this */
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageReader.structPointer:J
            invokevirtual com.sun.imageio.plugins.jpeg.JPEGImageReader.setSource:(J)V
         7: .line 294
            goto 11
      StackMap locals:
      StackMap stack: java.lang.Throwable
         8: astore 4
         9: .line 295
            aload 0 /* this */
            invokevirtual com.sun.imageio.plugins.jpeg.JPEGImageReader.clearThreadLock:()V
        10: .line 296
            aload 4
            athrow
        11: .line 295
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual com.sun.imageio.plugins.jpeg.JPEGImageReader.clearThreadLock:()V
        12: .line 297
            return
        end local 3 // boolean ignoreMetadata
        end local 2 // boolean seekForwardOnly
        end local 1 // java.lang.Object input
        end local 0 // com.sun.imageio.plugins.jpeg.JPEGImageReader this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0   13     0             this  Lcom/sun/imageio/plugins/jpeg/JPEGImageReader;
            0   13     1            input  Ljava/lang/Object;
            0   13     2  seekForwardOnly  Z
            0   13     3   ignoreMetadata  Z
      Exception table:
        from    to  target  type
           1     8       8  any
    MethodParameters:
                 Name  Flags
      input            
      seekForwardOnly  
      ignoreMetadata   

  private int readInputData(byte[], int, int);
    descriptor: ([BII)I
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=6, args_size=4
        start local 0 // com.sun.imageio.plugins.jpeg.JPEGImageReader this
        start local 1 // byte[] buf
        start local 2 // int off
        start local 3 // int len
         0: .line 310
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageReader.cbLock:Lcom/sun/imageio/plugins/jpeg/JPEGImageReader$CallBackLock;
            invokevirtual com.sun.imageio.plugins.jpeg.JPEGImageReader$CallBackLock.lock:()V
         1: .line 312
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageReader.iis:Ljavax/imageio/stream/ImageInputStream;
            aload 1 /* buf */
            iload 2 /* off */
            iload 3 /* len */
            invokeinterface javax.imageio.stream.ImageInputStream.read:([BII)I
            istore 5
         2: .line 314
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageReader.cbLock:Lcom/sun/imageio/plugins/jpeg/JPEGImageReader$CallBackLock;
            invokevirtual com.sun.imageio.plugins.jpeg.JPEGImageReader$CallBackLock.unlock:()V
         3: .line 312
            iload 5
            ireturn
         4: .line 313
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 4
         5: .line 314
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageReader.cbLock:Lcom/sun/imageio/plugins/jpeg/JPEGImageReader$CallBackLock;
            invokevirtual com.sun.imageio.plugins.jpeg.JPEGImageReader$CallBackLock.unlock:()V
         6: .line 315
            aload 4
            athrow
        end local 3 // int len
        end local 2 // int off
        end local 1 // byte[] buf
        end local 0 // com.sun.imageio.plugins.jpeg.JPEGImageReader this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    7     0  this  Lcom/sun/imageio/plugins/jpeg/JPEGImageReader;
            0    7     1   buf  [B
            0    7     2   off  I
            0    7     3   len  I
      Exception table:
        from    to  target  type
           1     2       4  any
    Exceptions:
      throws java.io.IOException
    MethodParameters:
      Name  Flags
      buf   
      off   
      len   

  private long skipInputBytes(long);
    descriptor: (J)J
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=6, args_size=2
        start local 0 // com.sun.imageio.plugins.jpeg.JPEGImageReader this
        start local 1 // long n
         0: .line 327
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageReader.cbLock:Lcom/sun/imageio/plugins/jpeg/JPEGImageReader$CallBackLock;
            invokevirtual com.sun.imageio.plugins.jpeg.JPEGImageReader$CallBackLock.lock:()V
         1: .line 329
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageReader.iis:Ljavax/imageio/stream/ImageInputStream;
            lload 1 /* n */
            invokeinterface javax.imageio.stream.ImageInputStream.skipBytes:(J)J
            lstore 4
         2: .line 331
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageReader.cbLock:Lcom/sun/imageio/plugins/jpeg/JPEGImageReader$CallBackLock;
            invokevirtual com.sun.imageio.plugins.jpeg.JPEGImageReader$CallBackLock.unlock:()V
         3: .line 329
            lload 4
            lreturn
         4: .line 330
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 3
         5: .line 331
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageReader.cbLock:Lcom/sun/imageio/plugins/jpeg/JPEGImageReader$CallBackLock;
            invokevirtual com.sun.imageio.plugins.jpeg.JPEGImageReader$CallBackLock.unlock:()V
         6: .line 332
            aload 3
            athrow
        end local 1 // long n
        end local 0 // com.sun.imageio.plugins.jpeg.JPEGImageReader this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    7     0  this  Lcom/sun/imageio/plugins/jpeg/JPEGImageReader;
            0    7     1     n  J
      Exception table:
        from    to  target  type
           1     2       4  any
    Exceptions:
      throws java.io.IOException
    MethodParameters:
      Name  Flags
      n     

  private native void setSource(long);
    descriptor: (J)V
    flags: (0x0102) ACC_PRIVATE, ACC_NATIVE
    MethodParameters:
               Name  Flags
      structPointer  

  private void checkTablesOnly();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=7, locals=6, args_size=1
        start local 0 // com.sun.imageio.plugins.jpeg.JPEGImageReader this
         0: .line 338
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageReader.debug:Z
            ifeq 2
         1: .line 339
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            ldc "Checking for tables-only image"
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
         2: .line 341
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageReader.iis:Ljavax/imageio/stream/ImageInputStream;
            invokeinterface javax.imageio.stream.ImageInputStream.getStreamPosition:()J
            lstore 1 /* savePos */
        start local 1 // long savePos
         3: .line 342
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageReader.debug:Z
            ifeq 6
         4: .line 343
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            new java.lang.StringBuilder
            dup
            ldc "saved pos is "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            lload 1 /* savePos */
            invokevirtual java.lang.StringBuilder.append:(J)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
         5: .line 344
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            new java.lang.StringBuilder
            dup
            ldc "length is "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageReader.iis:Ljavax/imageio/stream/ImageInputStream;
            invokeinterface javax.imageio.stream.ImageInputStream.length:()J
            invokevirtual java.lang.StringBuilder.append:(J)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
         6: .line 347
      StackMap locals: long
      StackMap stack:
            aload 0 /* this */
            iconst_1
            invokevirtual com.sun.imageio.plugins.jpeg.JPEGImageReader.readNativeHeader:(Z)Z
            istore 3 /* tablesOnly */
        start local 3 // boolean tablesOnly
         7: .line 348
            iload 3 /* tablesOnly */
            ifeq 26
         8: .line 349
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageReader.debug:Z
            ifeq 12
         9: .line 350
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            ldc "tables-only image found"
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
        10: .line 351
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageReader.iis:Ljavax/imageio/stream/ImageInputStream;
            invokeinterface javax.imageio.stream.ImageInputStream.getStreamPosition:()J
            lstore 4 /* pos */
        start local 4 // long pos
        11: .line 352
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            new java.lang.StringBuilder
            dup
            ldc "pos after return from native is "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            lload 4 /* pos */
            invokevirtual java.lang.StringBuilder.append:(J)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
        end local 4 // long pos
        12: .line 356
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageReader.ignoreMetadata:Z
            ifne 23
        13: .line 357
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageReader.iis:Ljavax/imageio/stream/ImageInputStream;
            lload 1 /* savePos */
            invokeinterface javax.imageio.stream.ImageInputStream.seek:(J)V
        14: .line 358
            aload 0 /* this */
            iconst_1
            putfield com.sun.imageio.plugins.jpeg.JPEGImageReader.haveSeeked:Z
        15: .line 359
            aload 0 /* this */
            new com.sun.imageio.plugins.jpeg.JPEGMetadata
            dup
            iconst_1
            iconst_0
        16: .line 360
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageReader.iis:Ljavax/imageio/stream/ImageInputStream;
            aload 0 /* this */
            invokespecial com.sun.imageio.plugins.jpeg.JPEGMetadata.<init>:(ZZLjavax/imageio/stream/ImageInputStream;Lcom/sun/imageio/plugins/jpeg/JPEGImageReader;)V
        17: .line 359
            putfield com.sun.imageio.plugins.jpeg.JPEGImageReader.streamMetadata:Lcom/sun/imageio/plugins/jpeg/JPEGMetadata;
        18: .line 361
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageReader.iis:Ljavax/imageio/stream/ImageInputStream;
            invokeinterface javax.imageio.stream.ImageInputStream.getStreamPosition:()J
            lstore 4 /* pos */
        start local 4 // long pos
        19: .line 362
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageReader.debug:Z
            ifeq 23
        20: .line 363
            getstatic java.lang.System.out:Ljava/io/PrintStream;
        21: .line 364
            new java.lang.StringBuilder
            dup
            ldc "pos after constructing stream metadata is "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            lload 4 /* pos */
            invokevirtual java.lang.StringBuilder.append:(J)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        22: .line 363
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
        end local 4 // long pos
        23: .line 369
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual com.sun.imageio.plugins.jpeg.JPEGImageReader.hasNextImage:()Z
            ifeq 28
        24: .line 370
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageReader.imagePositions:Ljava/util/List;
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageReader.iis:Ljavax/imageio/stream/ImageInputStream;
            invokeinterface javax.imageio.stream.ImageInputStream.getStreamPosition:()J
            invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        25: .line 372
            goto 28
        26: .line 373
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageReader.imagePositions:Ljava/util/List;
            lload 1 /* savePos */
            invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        27: .line 375
            aload 0 /* this */
            iconst_0
            putfield com.sun.imageio.plugins.jpeg.JPEGImageReader.currentImage:I
        28: .line 377
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageReader.seekForwardOnly:Z
            ifeq 31
        29: .line 378
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageReader.imagePositions:Ljava/util/List;
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageReader.imagePositions:Ljava/util/List;
            invokeinterface java.util.List.size:()I
            iconst_1
            isub
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            checkcast java.lang.Long
            astore 4 /* pos */
        start local 4 // java.lang.Long pos
        30: .line 379
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageReader.iis:Ljavax/imageio/stream/ImageInputStream;
            aload 4 /* pos */
            invokevirtual java.lang.Long.longValue:()J
            invokeinterface javax.imageio.stream.ImageInputStream.flushBefore:(J)V
        end local 4 // java.lang.Long pos
        31: .line 381
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iconst_1
            putfield com.sun.imageio.plugins.jpeg.JPEGImageReader.tablesOnlyChecked:Z
        32: .line 382
            return
        end local 3 // boolean tablesOnly
        end local 1 // long savePos
        end local 0 // com.sun.imageio.plugins.jpeg.JPEGImageReader this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   33     0        this  Lcom/sun/imageio/plugins/jpeg/JPEGImageReader;
            3   33     1     savePos  J
            7   33     3  tablesOnly  Z
           11   12     4         pos  J
           19   23     4         pos  J
           30   31     4         pos  Ljava/lang/Long;
    Exceptions:
      throws java.io.IOException

  public int getNumImages(boolean);
    descriptor: (Z)I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=4, args_size=2
        start local 0 // com.sun.imageio.plugins.jpeg.JPEGImageReader this
        start local 1 // boolean allowSearch
         0: .line 385
            aload 0 /* this */
            invokevirtual com.sun.imageio.plugins.jpeg.JPEGImageReader.setThreadLock:()V
         1: .line 387
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageReader.cbLock:Lcom/sun/imageio/plugins/jpeg/JPEGImageReader$CallBackLock;
            invokevirtual com.sun.imageio.plugins.jpeg.JPEGImageReader$CallBackLock.check:()V
         2: .line 389
            aload 0 /* this */
            iload 1 /* allowSearch */
            invokevirtual com.sun.imageio.plugins.jpeg.JPEGImageReader.getNumImagesOnThread:(Z)I
            istore 3
         3: .line 391
            aload 0 /* this */
            invokevirtual com.sun.imageio.plugins.jpeg.JPEGImageReader.clearThreadLock:()V
         4: .line 389
            iload 3
            ireturn
         5: .line 390
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 2
         6: .line 391
            aload 0 /* this */
            invokevirtual com.sun.imageio.plugins.jpeg.JPEGImageReader.clearThreadLock:()V
         7: .line 392
            aload 2
            athrow
        end local 1 // boolean allowSearch
        end local 0 // com.sun.imageio.plugins.jpeg.JPEGImageReader this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    8     0         this  Lcom/sun/imageio/plugins/jpeg/JPEGImageReader;
            0    8     1  allowSearch  Z
      Exception table:
        from    to  target  type
           1     3       5  any
    Exceptions:
      throws java.io.IOException
    MethodParameters:
             Name  Flags
      allowSearch  

  private void skipPastImage(int);
    descriptor: (I)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // com.sun.imageio.plugins.jpeg.JPEGImageReader this
        start local 1 // int imageIndex
         0: .line 396
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageReader.cbLock:Lcom/sun/imageio/plugins/jpeg/JPEGImageReader$CallBackLock;
            invokevirtual com.sun.imageio.plugins.jpeg.JPEGImageReader$CallBackLock.lock:()V
         1: .line 398
            aload 0 /* this */
            iload 1 /* imageIndex */
            invokevirtual com.sun.imageio.plugins.jpeg.JPEGImageReader.gotoImage:(I)V
         2: .line 399
            aload 0 /* this */
            invokevirtual com.sun.imageio.plugins.jpeg.JPEGImageReader.skipImage:()V
         3: .line 400
            goto 9
      StackMap locals:
      StackMap stack: java.lang.Exception
         4: pop
         5: .line 402
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageReader.cbLock:Lcom/sun/imageio/plugins/jpeg/JPEGImageReader$CallBackLock;
            invokevirtual com.sun.imageio.plugins.jpeg.JPEGImageReader$CallBackLock.unlock:()V
            goto 10
         6: .line 401
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 2
         7: .line 402
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageReader.cbLock:Lcom/sun/imageio/plugins/jpeg/JPEGImageReader$CallBackLock;
            invokevirtual com.sun.imageio.plugins.jpeg.JPEGImageReader$CallBackLock.unlock:()V
         8: .line 403
            aload 2
            athrow
         9: .line 402
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageReader.cbLock:Lcom/sun/imageio/plugins/jpeg/JPEGImageReader$CallBackLock;
            invokevirtual com.sun.imageio.plugins.jpeg.JPEGImageReader$CallBackLock.unlock:()V
        10: .line 404
      StackMap locals:
      StackMap stack:
            return
        end local 1 // int imageIndex
        end local 0 // com.sun.imageio.plugins.jpeg.JPEGImageReader this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   11     0        this  Lcom/sun/imageio/plugins/jpeg/JPEGImageReader;
            0   11     1  imageIndex  I
      Exception table:
        from    to  target  type
           1     3       4  Class java.io.IOException
           1     3       4  Class java.lang.IndexOutOfBoundsException
           1     5       6  any
    MethodParameters:
            Name  Flags
      imageIndex  

  private int getNumImagesOnThread(boolean);
    descriptor: (Z)I
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=6, locals=5, args_size=2
        start local 0 // com.sun.imageio.plugins.jpeg.JPEGImageReader this
        start local 1 // boolean allowSearch
         0: .line 409
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageReader.numImages:I
            ifeq 2
         1: .line 410
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageReader.numImages:I
            ireturn
         2: .line 412
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageReader.iis:Ljavax/imageio/stream/ImageInputStream;
            ifnonnull 4
         3: .line 413
            new java.lang.IllegalStateException
            dup
            ldc "Input not set"
            invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
            athrow
         4: .line 415
      StackMap locals:
      StackMap stack:
            iload 1 /* allowSearch */
            ifeq 35
         5: .line 416
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageReader.seekForwardOnly:Z
            ifeq 9
         6: .line 417
            new java.lang.IllegalStateException
            dup
         7: .line 418
            ldc "seekForwardOnly and allowSearch can't both be true!"
         8: .line 417
            invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
            athrow
         9: .line 422
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageReader.tablesOnlyChecked:Z
            ifne 11
        10: .line 423
            aload 0 /* this */
            invokevirtual com.sun.imageio.plugins.jpeg.JPEGImageReader.checkTablesOnly:()V
        11: .line 426
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageReader.iis:Ljavax/imageio/stream/ImageInputStream;
            invokeinterface javax.imageio.stream.ImageInputStream.mark:()V
        12: .line 428
            aload 0 /* this */
            iconst_0
            invokevirtual com.sun.imageio.plugins.jpeg.JPEGImageReader.gotoImage:(I)V
        13: .line 430
            new com.sun.imageio.plugins.jpeg.JPEGBuffer
            dup
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageReader.iis:Ljavax/imageio/stream/ImageInputStream;
            invokespecial com.sun.imageio.plugins.jpeg.JPEGBuffer.<init>:(Ljavax/imageio/stream/ImageInputStream;)V
            astore 2 /* buffer */
        start local 2 // com.sun.imageio.plugins.jpeg.JPEGBuffer buffer
        14: .line 431
            aload 2 /* buffer */
            iconst_0
            invokevirtual com.sun.imageio.plugins.jpeg.JPEGBuffer.loadBuf:(I)V
        15: .line 433
            iconst_0
            istore 3 /* done */
        start local 3 // boolean done
        16: .line 434
            goto 32
        17: .line 435
      StackMap locals: com.sun.imageio.plugins.jpeg.JPEGBuffer int
      StackMap stack:
            aload 2 /* buffer */
            aload 0 /* this */
            invokevirtual com.sun.imageio.plugins.jpeg.JPEGBuffer.scanForFF:(Lcom/sun/imageio/plugins/jpeg/JPEGImageReader;)Z
            istore 3 /* done */
        18: .line 436
            aload 2 /* buffer */
            getfield com.sun.imageio.plugins.jpeg.JPEGBuffer.buf:[B
            aload 2 /* buffer */
            getfield com.sun.imageio.plugins.jpeg.JPEGBuffer.bufPtr:I
            baload
            sipush 255
            iand
            lookupswitch { // 11
                    0: 20
                  208: 20
                  209: 20
                  210: 20
                  211: 20
                  212: 20
                  213: 20
                  214: 20
                  215: 20
                  216: 19
                  217: 20
              default: 23
          }
        19: .line 438
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            dup
            getfield com.sun.imageio.plugins.jpeg.JPEGImageReader.numImages:I
            iconst_1
            iadd
            putfield com.sun.imageio.plugins.jpeg.JPEGImageReader.numImages:I
        20: .line 451
      StackMap locals:
      StackMap stack:
            aload 2 /* buffer */
            dup
            getfield com.sun.imageio.plugins.jpeg.JPEGBuffer.bufAvail:I
            iconst_1
            isub
            putfield com.sun.imageio.plugins.jpeg.JPEGBuffer.bufAvail:I
        21: .line 452
            aload 2 /* buffer */
            dup
            getfield com.sun.imageio.plugins.jpeg.JPEGBuffer.bufPtr:I
            iconst_1
            iadd
            putfield com.sun.imageio.plugins.jpeg.JPEGBuffer.bufPtr:I
        22: .line 453
            goto 32
        23: .line 456
      StackMap locals:
      StackMap stack:
            aload 2 /* buffer */
            dup
            getfield com.sun.imageio.plugins.jpeg.JPEGBuffer.bufAvail:I
            iconst_1
            isub
            putfield com.sun.imageio.plugins.jpeg.JPEGBuffer.bufAvail:I
        24: .line 457
            aload 2 /* buffer */
            dup
            getfield com.sun.imageio.plugins.jpeg.JPEGBuffer.bufPtr:I
            iconst_1
            iadd
            putfield com.sun.imageio.plugins.jpeg.JPEGBuffer.bufPtr:I
        25: .line 458
            aload 2 /* buffer */
            iconst_2
            invokevirtual com.sun.imageio.plugins.jpeg.JPEGBuffer.loadBuf:(I)V
        26: .line 459
            aload 2 /* buffer */
            getfield com.sun.imageio.plugins.jpeg.JPEGBuffer.buf:[B
            aload 2 /* buffer */
            dup
            getfield com.sun.imageio.plugins.jpeg.JPEGBuffer.bufPtr:I
            dup_x1
            iconst_1
            iadd
            putfield com.sun.imageio.plugins.jpeg.JPEGBuffer.bufPtr:I
            baload
            sipush 255
            iand
            bipush 8
            ishl
        27: .line 460
            aload 2 /* buffer */
            getfield com.sun.imageio.plugins.jpeg.JPEGBuffer.buf:[B
            aload 2 /* buffer */
            dup
            getfield com.sun.imageio.plugins.jpeg.JPEGBuffer.bufPtr:I
            dup_x1
            iconst_1
            iadd
            putfield com.sun.imageio.plugins.jpeg.JPEGBuffer.bufPtr:I
            baload
            sipush 255
            iand
        28: .line 459
            ior
            istore 4 /* length */
        start local 4 // int length
        29: .line 461
            aload 2 /* buffer */
            dup
            getfield com.sun.imageio.plugins.jpeg.JPEGBuffer.bufAvail:I
            iconst_2
            isub
            putfield com.sun.imageio.plugins.jpeg.JPEGBuffer.bufAvail:I
        30: .line 462
            iinc 4 /* length */ -2
        31: .line 463
            aload 2 /* buffer */
            iload 4 /* length */
            invokevirtual com.sun.imageio.plugins.jpeg.JPEGBuffer.skipData:(I)V
        end local 4 // int length
        32: .line 434
      StackMap locals:
      StackMap stack:
            iload 3 /* done */
            ifeq 17
        33: .line 468
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageReader.iis:Ljavax/imageio/stream/ImageInputStream;
            invokeinterface javax.imageio.stream.ImageInputStream.reset:()V
        34: .line 470
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageReader.numImages:I
            ireturn
        end local 3 // boolean done
        end local 2 // com.sun.imageio.plugins.jpeg.JPEGBuffer buffer
        35: .line 473
      StackMap locals:
      StackMap stack:
            iconst_m1
            ireturn
        end local 1 // boolean allowSearch
        end local 0 // com.sun.imageio.plugins.jpeg.JPEGImageReader this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   36     0         this  Lcom/sun/imageio/plugins/jpeg/JPEGImageReader;
            0   36     1  allowSearch  Z
           14   35     2       buffer  Lcom/sun/imageio/plugins/jpeg/JPEGBuffer;
           16   35     3         done  Z
           29   32     4       length  I
    Exceptions:
      throws java.io.IOException
    MethodParameters:
             Name  Flags
      allowSearch  

  private void gotoImage(int);
    descriptor: (I)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=4, args_size=2
        start local 0 // com.sun.imageio.plugins.jpeg.JPEGImageReader this
        start local 1 // int imageIndex
         0: .line 486
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageReader.iis:Ljavax/imageio/stream/ImageInputStream;
            ifnonnull 2
         1: .line 487
            new java.lang.IllegalStateException
            dup
            ldc "Input not set"
            invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 489
      StackMap locals:
      StackMap stack:
            iload 1 /* imageIndex */
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageReader.minIndex:I
            if_icmpge 4
         3: .line 490
            new java.lang.IndexOutOfBoundsException
            dup
            invokespecial java.lang.IndexOutOfBoundsException.<init>:()V
            athrow
         4: .line 492
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageReader.tablesOnlyChecked:Z
            ifne 6
         5: .line 493
            aload 0 /* this */
            invokevirtual com.sun.imageio.plugins.jpeg.JPEGImageReader.checkTablesOnly:()V
         6: .line 495
      StackMap locals:
      StackMap stack:
            iload 1 /* imageIndex */
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageReader.imagePositions:Ljava/util/List;
            invokeinterface java.util.List.size:()I
            if_icmpge 9
         7: .line 496
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageReader.iis:Ljavax/imageio/stream/ImageInputStream;
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageReader.imagePositions:Ljava/util/List;
            iload 1 /* imageIndex */
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            checkcast java.lang.Long
            invokevirtual java.lang.Long.longValue:()J
            invokeinterface javax.imageio.stream.ImageInputStream.seek:(J)V
         8: .line 497
            goto 25
         9: .line 501
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageReader.imagePositions:Ljava/util/List;
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageReader.imagePositions:Ljava/util/List;
            invokeinterface java.util.List.size:()I
            iconst_1
            isub
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            checkcast java.lang.Long
            astore 2 /* pos */
        start local 2 // java.lang.Long pos
        10: .line 502
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageReader.iis:Ljavax/imageio/stream/ImageInputStream;
            aload 2 /* pos */
            invokevirtual java.lang.Long.longValue:()J
            invokeinterface javax.imageio.stream.ImageInputStream.seek:(J)V
        11: .line 503
            aload 0 /* this */
            invokevirtual com.sun.imageio.plugins.jpeg.JPEGImageReader.skipImage:()V
        12: .line 505
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageReader.imagePositions:Ljava/util/List;
            invokeinterface java.util.List.size:()I
            istore 3 /* index */
        start local 3 // int index
        13: .line 506
            goto 23
        14: .line 509
      StackMap locals: java.lang.Long int
      StackMap stack:
            aload 0 /* this */
            invokevirtual com.sun.imageio.plugins.jpeg.JPEGImageReader.hasNextImage:()Z
            ifne 16
        15: .line 510
            new java.lang.IndexOutOfBoundsException
            dup
            invokespecial java.lang.IndexOutOfBoundsException.<init>:()V
            athrow
        16: .line 512
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageReader.iis:Ljavax/imageio/stream/ImageInputStream;
            invokeinterface javax.imageio.stream.ImageInputStream.getStreamPosition:()J
            invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
            astore 2 /* pos */
        17: .line 513
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageReader.imagePositions:Ljava/util/List;
            aload 2 /* pos */
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        18: .line 514
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageReader.seekForwardOnly:Z
            ifeq 20
        19: .line 515
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageReader.iis:Ljavax/imageio/stream/ImageInputStream;
            aload 2 /* pos */
            invokevirtual java.lang.Long.longValue:()J
            invokeinterface javax.imageio.stream.ImageInputStream.flushBefore:(J)V
        20: .line 517
      StackMap locals:
      StackMap stack:
            iload 3 /* index */
            iload 1 /* imageIndex */
            if_icmpge 22
        21: .line 518
            aload 0 /* this */
            invokevirtual com.sun.imageio.plugins.jpeg.JPEGImageReader.skipImage:()V
        22: .line 507
      StackMap locals:
      StackMap stack:
            iinc 3 /* index */ 1
        23: .line 506
      StackMap locals:
      StackMap stack:
            iload 3 /* index */
            iload 1 /* imageIndex */
        24: .line 505
            if_icmple 14
        end local 3 // int index
        end local 2 // java.lang.Long pos
        25: .line 523
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageReader.seekForwardOnly:Z
            ifeq 27
        26: .line 524
            aload 0 /* this */
            iload 1 /* imageIndex */
            putfield com.sun.imageio.plugins.jpeg.JPEGImageReader.minIndex:I
        27: .line 527
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iconst_1
            putfield com.sun.imageio.plugins.jpeg.JPEGImageReader.haveSeeked:Z
        28: .line 528
            return
        end local 1 // int imageIndex
        end local 0 // com.sun.imageio.plugins.jpeg.JPEGImageReader this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   29     0        this  Lcom/sun/imageio/plugins/jpeg/JPEGImageReader;
            0   29     1  imageIndex  I
           10   25     2         pos  Ljava/lang/Long;
           13   25     3       index  I
    Exceptions:
      throws java.io.IOException
    MethodParameters:
            Name  Flags
      imageIndex  

  private void skipImage();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=6, locals=9, args_size=1
        start local 0 // com.sun.imageio.plugins.jpeg.JPEGImageReader this
         0: .line 541
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageReader.debug:Z
            ifeq 2
         1: .line 542
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            ldc "skipImage called"
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
         2: .line 545
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageReader.iis:Ljavax/imageio/stream/ImageInputStream;
            invokeinterface javax.imageio.stream.ImageInputStream.read:()I
            istore 1 /* initialFF */
        start local 1 // int initialFF
         3: .line 546
            iload 1 /* initialFF */
            sipush 255
            if_icmpne 7
         4: .line 547
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageReader.iis:Ljavax/imageio/stream/ImageInputStream;
            invokeinterface javax.imageio.stream.ImageInputStream.read:()I
            istore 2 /* soiMarker */
        start local 2 // int soiMarker
         5: .line 548
            iload 2 /* soiMarker */
            sipush 216
            if_icmpeq 8
         6: .line 549
            new java.io.IOException
            dup
            ldc "skipImage : Invalid image doesn't start with SOI marker"
            invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
            athrow
        end local 2 // int soiMarker
         7: .line 553
      StackMap locals: int
      StackMap stack:
            new java.io.IOException
            dup
            ldc "skipImage : Invalid image doesn't start with 0xff"
            invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
            athrow
         8: .line 556
      StackMap locals:
      StackMap stack:
            iconst_0
            istore 2 /* foundFF */
        start local 2 // boolean foundFF
         9: .line 557
            ldc "skipImage : Reached EOF before we got EOI marker"
            astore 3 /* IOOBE */
        start local 3 // java.lang.String IOOBE
        10: .line 558
            iconst_2
            istore 4 /* markerLength */
        start local 4 // int markerLength
        11: .line 559
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageReader.iis:Ljavax/imageio/stream/ImageInputStream;
            invokeinterface javax.imageio.stream.ImageInputStream.read:()I
            istore 5 /* byteval */
        start local 5 // int byteval
        12: .line 560
            goto 43
        13: .line 563
      StackMap locals: com.sun.imageio.plugins.jpeg.JPEGImageReader int int java.lang.String int int
      StackMap stack:
            iload 2 /* foundFF */
            ifeq 39
        14: .line 564
            iload 5 /* byteval */
            lookupswitch { // 53
                   -1: 35
                    0: 21
                    1: 21
                  192: 22
                  193: 22
                  194: 22
                  195: 22
                  196: 22
                  197: 22
                  198: 22
                  199: 22
                  200: 22
                  201: 22
                  202: 22
                  203: 22
                  204: 22
                  205: 22
                  206: 22
                  207: 22
                  208: 21
                  209: 21
                  210: 21
                  211: 21
                  212: 21
                  213: 21
                  214: 21
                  215: 21
                  216: 20
                  217: 15
                  218: 22
                  219: 22
                  220: 22
                  221: 22
                  222: 22
                  223: 22
                  224: 22
                  225: 22
                  226: 22
                  227: 22
                  228: 22
                  229: 22
                  230: 22
                  231: 22
                  232: 22
                  233: 22
                  234: 22
                  235: 22
                  236: 22
                  237: 22
                  238: 22
                  239: 22
                  254: 22
                  255: 21
              default: 36
          }
        15: .line 566
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageReader.debug:Z
            ifeq 19
        16: .line 567
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            new java.lang.StringBuilder
            dup
            ldc "skipImage : Found EOI at "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
        17: .line 568
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageReader.iis:Ljavax/imageio/stream/ImageInputStream;
            invokeinterface javax.imageio.stream.ImageInputStream.getStreamPosition:()J
            iload 4 /* markerLength */
            i2l
            lsub
            invokevirtual java.lang.StringBuilder.append:(J)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        18: .line 567
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
        19: .line 570
      StackMap locals:
      StackMap stack:
            return
        20: .line 572
      StackMap locals:
      StackMap stack:
            new java.io.IOException
            dup
            ldc "skipImage : Found extra SOI marker before getting to EOI"
            invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
            athrow
        21: .line 586
      StackMap locals:
      StackMap stack:
            goto 39
        22: .line 629
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageReader.iis:Ljavax/imageio/stream/ImageInputStream;
            invokeinterface javax.imageio.stream.ImageInputStream.read:()I
            istore 6 /* lengthHigherBits */
        start local 6 // int lengthHigherBits
        23: .line 630
            iload 6 /* lengthHigherBits */
            iconst_m1
            if_icmpeq 32
        24: .line 631
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageReader.iis:Ljavax/imageio/stream/ImageInputStream;
            invokeinterface javax.imageio.stream.ImageInputStream.read:()I
            istore 7 /* lengthLowerBits */
        start local 7 // int lengthLowerBits
        25: .line 632
            iload 7 /* lengthLowerBits */
            iconst_m1
            if_icmpeq 31
        26: .line 633
            iload 6 /* lengthHigherBits */
            bipush 8
            ishl
        27: .line 634
            iload 7 /* lengthLowerBits */
        28: .line 633
            ior
            istore 8 /* length */
        start local 8 // int length
        29: .line 636
            iinc 8 /* length */ -2
        30: .line 637
            goto 33
        end local 8 // int length
        31: .line 638
      StackMap locals: int int
      StackMap stack:
            new java.lang.IndexOutOfBoundsException
            dup
            aload 3 /* IOOBE */
            invokespecial java.lang.IndexOutOfBoundsException.<init>:(Ljava/lang/String;)V
            athrow
        end local 7 // int lengthLowerBits
        32: .line 641
      StackMap locals:
      StackMap stack:
            new java.lang.IndexOutOfBoundsException
            dup
            aload 3 /* IOOBE */
            invokespecial java.lang.IndexOutOfBoundsException.<init>:(Ljava/lang/String;)V
            athrow
        start local 7 // int lengthLowerBits
        start local 8 // int length
        33: .line 644
      StackMap locals: int int
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageReader.iis:Ljavax/imageio/stream/ImageInputStream;
            iload 8 /* length */
            invokeinterface javax.imageio.stream.ImageInputStream.skipBytes:(I)I
            pop
        34: .line 645
            goto 39
        end local 8 // int length
        end local 7 // int lengthLowerBits
        end local 6 // int lengthHigherBits
        35: .line 647
      StackMap locals:
      StackMap stack:
            new java.lang.IndexOutOfBoundsException
            dup
            aload 3 /* IOOBE */
            invokespecial java.lang.IndexOutOfBoundsException.<init>:(Ljava/lang/String;)V
            athrow
        36: .line 649
      StackMap locals:
      StackMap stack:
            new java.io.IOException
            dup
            new java.lang.StringBuilder
            dup
            ldc "skipImage : Invalid marker starting with ff "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
        37: .line 651
            iload 5 /* byteval */
            invokestatic java.lang.Integer.toHexString:(I)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        38: .line 649
            invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
            athrow
        39: .line 654
      StackMap locals:
      StackMap stack:
            iload 5 /* byteval */
            sipush 255
            if_icmpne 40
            iconst_1
            goto 41
      StackMap locals:
      StackMap stack:
        40: iconst_0
      StackMap locals:
      StackMap stack: int
        41: istore 2 /* foundFF */
        42: .line 561
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageReader.iis:Ljavax/imageio/stream/ImageInputStream;
            invokeinterface javax.imageio.stream.ImageInputStream.read:()I
            istore 5 /* byteval */
        43: .line 560
      StackMap locals:
      StackMap stack:
            iload 5 /* byteval */
            iconst_m1
            if_icmpne 13
        end local 5 // int byteval
        44: .line 656
            new java.lang.IndexOutOfBoundsException
            dup
            aload 3 /* IOOBE */
            invokespecial java.lang.IndexOutOfBoundsException.<init>:(Ljava/lang/String;)V
            athrow
        end local 4 // int markerLength
        end local 3 // java.lang.String IOOBE
        end local 2 // boolean foundFF
        end local 1 // int initialFF
        end local 0 // com.sun.imageio.plugins.jpeg.JPEGImageReader this
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0   45     0              this  Lcom/sun/imageio/plugins/jpeg/JPEGImageReader;
            3   45     1         initialFF  I
            5    7     2         soiMarker  I
            9   45     2           foundFF  Z
           10   45     3             IOOBE  Ljava/lang/String;
           11   45     4      markerLength  I
           12   44     5           byteval  I
           23   35     6  lengthHigherBits  I
           25   32     7   lengthLowerBits  I
           33   35     7   lengthLowerBits  I
           29   31     8            length  I
           33   35     8            length  I
    Exceptions:
      throws java.io.IOException

  private boolean hasNextImage();
    descriptor: ()Z
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=3, args_size=1
        start local 0 // com.sun.imageio.plugins.jpeg.JPEGImageReader this
         0: .line 665
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageReader.debug:Z
            ifeq 2
         1: .line 666
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            ldc "hasNextImage called; returning "
            invokevirtual java.io.PrintStream.print:(Ljava/lang/String;)V
         2: .line 668
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageReader.iis:Ljavax/imageio/stream/ImageInputStream;
            invokeinterface javax.imageio.stream.ImageInputStream.mark:()V
         3: .line 669
            iconst_0
            istore 1 /* foundFF */
        start local 1 // boolean foundFF
         4: .line 670
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageReader.iis:Ljavax/imageio/stream/ImageInputStream;
            invokeinterface javax.imageio.stream.ImageInputStream.read:()I
            istore 2 /* byteval */
        start local 2 // int byteval
         5: .line 671
            goto 16
         6: .line 674
      StackMap locals: int int
      StackMap stack:
            iload 1 /* foundFF */
            ifeq 12
         7: .line 675
            iload 2 /* byteval */
            sipush 216
            if_icmpne 12
         8: .line 676
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageReader.iis:Ljavax/imageio/stream/ImageInputStream;
            invokeinterface javax.imageio.stream.ImageInputStream.reset:()V
         9: .line 677
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageReader.debug:Z
            ifeq 11
        10: .line 678
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            ldc "true"
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
        11: .line 680
      StackMap locals:
      StackMap stack:
            iconst_1
            ireturn
        12: .line 683
      StackMap locals:
      StackMap stack:
            iload 2 /* byteval */
            sipush 255
            if_icmpne 13
            iconst_1
            goto 14
      StackMap locals:
      StackMap stack:
        13: iconst_0
      StackMap locals:
      StackMap stack: int
        14: istore 1 /* foundFF */
        15: .line 672
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageReader.iis:Ljavax/imageio/stream/ImageInputStream;
            invokeinterface javax.imageio.stream.ImageInputStream.read:()I
            istore 2 /* byteval */
        16: .line 671
      StackMap locals:
      StackMap stack:
            iload 2 /* byteval */
            iconst_m1
            if_icmpne 6
        end local 2 // int byteval
        17: .line 686
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageReader.iis:Ljavax/imageio/stream/ImageInputStream;
            invokeinterface javax.imageio.stream.ImageInputStream.reset:()V
        18: .line 687
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageReader.debug:Z
            ifeq 20
        19: .line 688
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            ldc "false"
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
        20: .line 690
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
        end local 1 // boolean foundFF
        end local 0 // com.sun.imageio.plugins.jpeg.JPEGImageReader this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   21     0     this  Lcom/sun/imageio/plugins/jpeg/JPEGImageReader;
            4   21     1  foundFF  Z
            5   17     2  byteval  I
    Exceptions:
      throws java.io.IOException

  private void pushBack(int);
    descriptor: (I)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=3, args_size=2
        start local 0 // com.sun.imageio.plugins.jpeg.JPEGImageReader this
        start local 1 // int num
         0: .line 699
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageReader.debug:Z
            ifeq 2
         1: .line 700
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            new java.lang.StringBuilder
            dup
            ldc "pushing back "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            iload 1 /* num */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            ldc " bytes"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
         2: .line 702
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageReader.cbLock:Lcom/sun/imageio/plugins/jpeg/JPEGImageReader$CallBackLock;
            invokevirtual com.sun.imageio.plugins.jpeg.JPEGImageReader$CallBackLock.lock:()V
         3: .line 704
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageReader.iis:Ljavax/imageio/stream/ImageInputStream;
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageReader.iis:Ljavax/imageio/stream/ImageInputStream;
            invokeinterface javax.imageio.stream.ImageInputStream.getStreamPosition:()J
            iload 1 /* num */
            i2l
            lsub
            invokeinterface javax.imageio.stream.ImageInputStream.seek:(J)V
         4: .line 706
            goto 8
      StackMap locals:
      StackMap stack: java.lang.Throwable
         5: astore 2
         6: .line 707
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageReader.cbLock:Lcom/sun/imageio/plugins/jpeg/JPEGImageReader$CallBackLock;
            invokevirtual com.sun.imageio.plugins.jpeg.JPEGImageReader$CallBackLock.unlock:()V
         7: .line 708
            aload 2
            athrow
         8: .line 707
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageReader.cbLock:Lcom/sun/imageio/plugins/jpeg/JPEGImageReader$CallBackLock;
            invokevirtual com.sun.imageio.plugins.jpeg.JPEGImageReader$CallBackLock.unlock:()V
         9: .line 709
            return
        end local 1 // int num
        end local 0 // com.sun.imageio.plugins.jpeg.JPEGImageReader this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   10     0  this  Lcom/sun/imageio/plugins/jpeg/JPEGImageReader;
            0   10     1   num  I
      Exception table:
        from    to  target  type
           3     5       5  any
    Exceptions:
      throws java.io.IOException
    MethodParameters:
      Name  Flags
      num   

  private void readHeader(int, boolean);
    descriptor: (IZ)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=3, args_size=3
        start local 0 // com.sun.imageio.plugins.jpeg.JPEGImageReader this
        start local 1 // int imageIndex
        start local 2 // boolean reset
         0: .line 716
            aload 0 /* this */
            iload 1 /* imageIndex */
            invokevirtual com.sun.imageio.plugins.jpeg.JPEGImageReader.gotoImage:(I)V
         1: .line 717
            aload 0 /* this */
            iload 2 /* reset */
            invokevirtual com.sun.imageio.plugins.jpeg.JPEGImageReader.readNativeHeader:(Z)Z
            pop
         2: .line 718
            aload 0 /* this */
            iload 1 /* imageIndex */
            putfield com.sun.imageio.plugins.jpeg.JPEGImageReader.currentImage:I
         3: .line 719
            return
        end local 2 // boolean reset
        end local 1 // int imageIndex
        end local 0 // com.sun.imageio.plugins.jpeg.JPEGImageReader this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    4     0        this  Lcom/sun/imageio/plugins/jpeg/JPEGImageReader;
            0    4     1  imageIndex  I
            0    4     2       reset  Z
    Exceptions:
      throws java.io.IOException
    MethodParameters:
            Name  Flags
      imageIndex  
      reset       

  private boolean readNativeHeader(boolean);
    descriptor: (Z)Z
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=3, args_size=2
        start local 0 // com.sun.imageio.plugins.jpeg.JPEGImageReader this
        start local 1 // boolean reset
         0: .line 722
            iconst_0
            istore 2 /* retval */
        start local 2 // boolean retval
         1: .line 723
            aload 0 /* this */
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageReader.structPointer:J
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageReader.haveSeeked:Z
            iload 1 /* reset */
            invokevirtual com.sun.imageio.plugins.jpeg.JPEGImageReader.readImageHeader:(JZZ)Z
            istore 2 /* retval */
         2: .line 724
            aload 0 /* this */
            iconst_0
            putfield com.sun.imageio.plugins.jpeg.JPEGImageReader.haveSeeked:Z
         3: .line 725
            iload 2 /* retval */
            ireturn
        end local 2 // boolean retval
        end local 1 // boolean reset
        end local 0 // com.sun.imageio.plugins.jpeg.JPEGImageReader this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    4     0    this  Lcom/sun/imageio/plugins/jpeg/JPEGImageReader;
            0    4     1   reset  Z
            1    4     2  retval  Z
    Exceptions:
      throws java.io.IOException
    MethodParameters:
       Name  Flags
      reset  

  private native boolean readImageHeader(long, boolean, boolean);
    descriptor: (JZZ)Z
    flags: (0x0102) ACC_PRIVATE, ACC_NATIVE
    Exceptions:
      throws java.io.IOException
    MethodParameters:
               Name  Flags
      structPointer  
      clearBuffer    
      reset          

  private void setImageData(int, int, int, int, int, byte[]);
    descriptor: (IIIII[B)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=12, args_size=7
        start local 0 // com.sun.imageio.plugins.jpeg.JPEGImageReader this
        start local 1 // int width
        start local 2 // int height
        start local 3 // int colorSpaceCode
        start local 4 // int outColorSpaceCode
        start local 5 // int numComponents
        start local 6 // byte[] iccData
         0: .line 758
            aload 0 /* this */
            iload 1 /* width */
            putfield com.sun.imageio.plugins.jpeg.JPEGImageReader.width:I
         1: .line 759
            aload 0 /* this */
            iload 2 /* height */
            putfield com.sun.imageio.plugins.jpeg.JPEGImageReader.height:I
         2: .line 760
            aload 0 /* this */
            iload 3 /* colorSpaceCode */
            putfield com.sun.imageio.plugins.jpeg.JPEGImageReader.colorSpaceCode:I
         3: .line 761
            aload 0 /* this */
            iload 4 /* outColorSpaceCode */
            putfield com.sun.imageio.plugins.jpeg.JPEGImageReader.outColorSpaceCode:I
         4: .line 762
            aload 0 /* this */
            iload 5 /* numComponents */
            putfield com.sun.imageio.plugins.jpeg.JPEGImageReader.numComponents:I
         5: .line 764
            aload 6 /* iccData */
            ifnonnull 8
         6: .line 765
            aload 0 /* this */
            aconst_null
            putfield com.sun.imageio.plugins.jpeg.JPEGImageReader.iccCS:Ljava/awt/color/ColorSpace;
         7: .line 766
            return
         8: .line 769
      StackMap locals:
      StackMap stack:
            aconst_null
            astore 7 /* newProfile */
        start local 7 // java.awt.color.ICC_Profile newProfile
         9: .line 771
            aload 6 /* iccData */
            invokestatic java.awt.color.ICC_Profile.getInstance:([B)Ljava/awt/color/ICC_Profile;
            astore 7 /* newProfile */
        10: .line 772
            goto 15
      StackMap locals: com.sun.imageio.plugins.jpeg.JPEGImageReader int int int int int byte[] java.awt.color.ICC_Profile
      StackMap stack: java.lang.IllegalArgumentException
        11: pop
        12: .line 777
            aload 0 /* this */
            aconst_null
            putfield com.sun.imageio.plugins.jpeg.JPEGImageReader.iccCS:Ljava/awt/color/ColorSpace;
        13: .line 778
            aload 0 /* this */
            iconst_2
            invokevirtual com.sun.imageio.plugins.jpeg.JPEGImageReader.warningOccurred:(I)V
        14: .line 780
            return
        15: .line 782
      StackMap locals:
      StackMap stack:
            aload 7 /* newProfile */
            invokevirtual java.awt.color.ICC_Profile.getData:()[B
            astore 8 /* newData */
        start local 8 // byte[] newData
        16: .line 784
            aconst_null
            astore 9 /* oldProfile */
        start local 9 // java.awt.color.ICC_Profile oldProfile
        17: .line 785
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageReader.iccCS:Ljava/awt/color/ColorSpace;
            instanceof java.awt.color.ICC_ColorSpace
            ifeq 19
        18: .line 786
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageReader.iccCS:Ljava/awt/color/ColorSpace;
            checkcast java.awt.color.ICC_ColorSpace
            invokevirtual java.awt.color.ICC_ColorSpace.getProfile:()Ljava/awt/color/ICC_Profile;
            astore 9 /* oldProfile */
        19: .line 788
      StackMap locals: byte[] java.awt.color.ICC_Profile
      StackMap stack:
            aconst_null
            astore 10 /* oldData */
        start local 10 // byte[] oldData
        20: .line 789
            aload 9 /* oldProfile */
            ifnull 22
        21: .line 790
            aload 9 /* oldProfile */
            invokevirtual java.awt.color.ICC_Profile.getData:()[B
            astore 10 /* oldData */
        22: .line 802
      StackMap locals: byte[]
      StackMap stack:
            aload 10 /* oldData */
            ifnull 24
        23: .line 803
            aload 10 /* oldData */
            aload 8 /* newData */
            invokestatic java.util.Arrays.equals:([B[B)Z
            ifne 36
        24: .line 805
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            new java.awt.color.ICC_ColorSpace
            dup
            aload 7 /* newProfile */
            invokespecial java.awt.color.ICC_ColorSpace.<init>:(Ljava/awt/color/ICC_Profile;)V
            putfield com.sun.imageio.plugins.jpeg.JPEGImageReader.iccCS:Ljava/awt/color/ColorSpace;
        25: .line 808
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageReader.iccCS:Ljava/awt/color/ColorSpace;
            iconst_3
            newarray 6
            dup
            iconst_0
            fconst_1
            fastore
            dup
            iconst_1
            fconst_0
            fastore
            dup
            iconst_2
            fconst_0
            fastore
            invokevirtual java.awt.color.ColorSpace.fromRGB:([F)[F
            pop
        26: .line 809
            goto 36
      StackMap locals:
      StackMap stack: java.awt.color.CMMException
        27: pop
        28: .line 814
            aload 0 /* this */
            aconst_null
            putfield com.sun.imageio.plugins.jpeg.JPEGImageReader.iccCS:Ljava/awt/color/ColorSpace;
        29: .line 815
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageReader.cbLock:Lcom/sun/imageio/plugins/jpeg/JPEGImageReader$CallBackLock;
            invokevirtual com.sun.imageio.plugins.jpeg.JPEGImageReader$CallBackLock.lock:()V
        30: .line 817
            aload 0 /* this */
            iconst_2
            invokevirtual com.sun.imageio.plugins.jpeg.JPEGImageReader.warningOccurred:(I)V
        31: .line 818
            goto 35
      StackMap locals:
      StackMap stack: java.lang.Throwable
        32: astore 11
        33: .line 819
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageReader.cbLock:Lcom/sun/imageio/plugins/jpeg/JPEGImageReader$CallBackLock;
            invokevirtual com.sun.imageio.plugins.jpeg.JPEGImageReader$CallBackLock.unlock:()V
        34: .line 820
            aload 11
            athrow
        35: .line 819
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageReader.cbLock:Lcom/sun/imageio/plugins/jpeg/JPEGImageReader$CallBackLock;
            invokevirtual com.sun.imageio.plugins.jpeg.JPEGImageReader$CallBackLock.unlock:()V
        36: .line 823
      StackMap locals:
      StackMap stack:
            return
        end local 10 // byte[] oldData
        end local 9 // java.awt.color.ICC_Profile oldProfile
        end local 8 // byte[] newData
        end local 7 // java.awt.color.ICC_Profile newProfile
        end local 6 // byte[] iccData
        end local 5 // int numComponents
        end local 4 // int outColorSpaceCode
        end local 3 // int colorSpaceCode
        end local 2 // int height
        end local 1 // int width
        end local 0 // com.sun.imageio.plugins.jpeg.JPEGImageReader this
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0   37     0               this  Lcom/sun/imageio/plugins/jpeg/JPEGImageReader;
            0   37     1              width  I
            0   37     2             height  I
            0   37     3     colorSpaceCode  I
            0   37     4  outColorSpaceCode  I
            0   37     5      numComponents  I
            0   37     6            iccData  [B
            9   37     7         newProfile  Ljava/awt/color/ICC_Profile;
           16   37     8            newData  [B
           17   37     9         oldProfile  Ljava/awt/color/ICC_Profile;
           20   37    10            oldData  [B
      Exception table:
        from    to  target  type
           9    10      11  Class java.lang.IllegalArgumentException
          25    26      27  Class java.awt.color.CMMException
          30    32      32  any
    MethodParameters:
                   Name  Flags
      width              
      height             
      colorSpaceCode     
      outColorSpaceCode  
      numComponents      
      iccData            

  public int getWidth(int);
    descriptor: (I)I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=4, args_size=2
        start local 0 // com.sun.imageio.plugins.jpeg.JPEGImageReader this
        start local 1 // int imageIndex
         0: .line 826
            aload 0 /* this */
            invokevirtual com.sun.imageio.plugins.jpeg.JPEGImageReader.setThreadLock:()V
         1: .line 828
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageReader.currentImage:I
            iload 1 /* imageIndex */
            if_icmpeq 4
         2: .line 829
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageReader.cbLock:Lcom/sun/imageio/plugins/jpeg/JPEGImageReader$CallBackLock;
            invokevirtual com.sun.imageio.plugins.jpeg.JPEGImageReader$CallBackLock.check:()V
         3: .line 830
            aload 0 /* this */
            iload 1 /* imageIndex */
            iconst_1
            invokevirtual com.sun.imageio.plugins.jpeg.JPEGImageReader.readHeader:(IZ)V
         4: .line 832
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageReader.width:I
            istore 3
         5: .line 834
            aload 0 /* this */
            invokevirtual com.sun.imageio.plugins.jpeg.JPEGImageReader.clearThreadLock:()V
         6: .line 832
            iload 3
            ireturn
         7: .line 833
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 2
         8: .line 834
            aload 0 /* this */
            invokevirtual com.sun.imageio.plugins.jpeg.JPEGImageReader.clearThreadLock:()V
         9: .line 835
            aload 2
            athrow
        end local 1 // int imageIndex
        end local 0 // com.sun.imageio.plugins.jpeg.JPEGImageReader this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   10     0        this  Lcom/sun/imageio/plugins/jpeg/JPEGImageReader;
            0   10     1  imageIndex  I
      Exception table:
        from    to  target  type
           1     5       7  any
    Exceptions:
      throws java.io.IOException
    MethodParameters:
            Name  Flags
      imageIndex  

  public int getHeight(int);
    descriptor: (I)I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=4, args_size=2
        start local 0 // com.sun.imageio.plugins.jpeg.JPEGImageReader this
        start local 1 // int imageIndex
         0: .line 839
            aload 0 /* this */
            invokevirtual com.sun.imageio.plugins.jpeg.JPEGImageReader.setThreadLock:()V
         1: .line 841
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageReader.currentImage:I
            iload 1 /* imageIndex */
            if_icmpeq 4
         2: .line 842
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageReader.cbLock:Lcom/sun/imageio/plugins/jpeg/JPEGImageReader$CallBackLock;
            invokevirtual com.sun.imageio.plugins.jpeg.JPEGImageReader$CallBackLock.check:()V
         3: .line 843
            aload 0 /* this */
            iload 1 /* imageIndex */
            iconst_1
            invokevirtual com.sun.imageio.plugins.jpeg.JPEGImageReader.readHeader:(IZ)V
         4: .line 845
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageReader.height:I
            istore 3
         5: .line 847
            aload 0 /* this */
            invokevirtual com.sun.imageio.plugins.jpeg.JPEGImageReader.clearThreadLock:()V
         6: .line 845
            iload 3
            ireturn
         7: .line 846
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 2
         8: .line 847
            aload 0 /* this */
            invokevirtual com.sun.imageio.plugins.jpeg.JPEGImageReader.clearThreadLock:()V
         9: .line 848
            aload 2
            athrow
        end local 1 // int imageIndex
        end local 0 // com.sun.imageio.plugins.jpeg.JPEGImageReader this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   10     0        this  Lcom/sun/imageio/plugins/jpeg/JPEGImageReader;
            0   10     1  imageIndex  I
      Exception table:
        from    to  target  type
           1     5       7  any
    Exceptions:
      throws java.io.IOException
    MethodParameters:
            Name  Flags
      imageIndex  

  private com.sun.imageio.plugins.jpeg.ImageTypeProducer getImageType(int);
    descriptor: (I)Lcom/sun/imageio/plugins/jpeg/ImageTypeProducer;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // com.sun.imageio.plugins.jpeg.JPEGImageReader this
        start local 1 // int code
         0: .line 858
            aconst_null
            astore 2 /* ret */
        start local 2 // com.sun.imageio.plugins.jpeg.ImageTypeProducer ret
         1: .line 860
            iload 1 /* code */
            ifle 3
            iload 1 /* code */
            bipush 12
            if_icmpge 3
         2: .line 861
            iload 1 /* code */
            invokestatic com.sun.imageio.plugins.jpeg.ImageTypeProducer.getTypeProducer:(I)Lcom/sun/imageio/plugins/jpeg/ImageTypeProducer;
            astore 2 /* ret */
         3: .line 863
      StackMap locals: com.sun.imageio.plugins.jpeg.ImageTypeProducer
      StackMap stack:
            aload 2 /* ret */
            areturn
        end local 2 // com.sun.imageio.plugins.jpeg.ImageTypeProducer ret
        end local 1 // int code
        end local 0 // com.sun.imageio.plugins.jpeg.JPEGImageReader this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Lcom/sun/imageio/plugins/jpeg/JPEGImageReader;
            0    4     1  code  I
            1    4     2   ret  Lcom/sun/imageio/plugins/jpeg/ImageTypeProducer;
    MethodParameters:
      Name  Flags
      code  

  public javax.imageio.ImageTypeSpecifier getRawImageType(int);
    descriptor: (I)Ljavax/imageio/ImageTypeSpecifier;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=4, args_size=2
        start local 0 // com.sun.imageio.plugins.jpeg.JPEGImageReader this
        start local 1 // int imageIndex
         0: .line 868
            aload 0 /* this */
            invokevirtual com.sun.imageio.plugins.jpeg.JPEGImageReader.setThreadLock:()V
         1: .line 870
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageReader.currentImage:I
            iload 1 /* imageIndex */
            if_icmpeq 4
         2: .line 871
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageReader.cbLock:Lcom/sun/imageio/plugins/jpeg/JPEGImageReader$CallBackLock;
            invokevirtual com.sun.imageio.plugins.jpeg.JPEGImageReader$CallBackLock.check:()V
         3: .line 873
            aload 0 /* this */
            iload 1 /* imageIndex */
            iconst_1
            invokevirtual com.sun.imageio.plugins.jpeg.JPEGImageReader.readHeader:(IZ)V
         4: .line 877
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageReader.colorSpaceCode:I
            invokevirtual com.sun.imageio.plugins.jpeg.JPEGImageReader.getImageType:(I)Lcom/sun/imageio/plugins/jpeg/ImageTypeProducer;
            invokevirtual com.sun.imageio.plugins.jpeg.ImageTypeProducer.getType:()Ljavax/imageio/ImageTypeSpecifier;
            astore 3
         5: .line 879
            aload 0 /* this */
            invokevirtual com.sun.imageio.plugins.jpeg.JPEGImageReader.clearThreadLock:()V
         6: .line 877
            aload 3
            areturn
         7: .line 878
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 2
         8: .line 879
            aload 0 /* this */
            invokevirtual com.sun.imageio.plugins.jpeg.JPEGImageReader.clearThreadLock:()V
         9: .line 880
            aload 2
            athrow
        end local 1 // int imageIndex
        end local 0 // com.sun.imageio.plugins.jpeg.JPEGImageReader this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   10     0        this  Lcom/sun/imageio/plugins/jpeg/JPEGImageReader;
            0   10     1  imageIndex  I
      Exception table:
        from    to  target  type
           1     5       7  any
    Exceptions:
      throws java.io.IOException
    MethodParameters:
            Name  Flags
      imageIndex  

  public java.util.Iterator<javax.imageio.ImageTypeSpecifier> getImageTypes(int);
    descriptor: (I)Ljava/util/Iterator;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=4, args_size=2
        start local 0 // com.sun.imageio.plugins.jpeg.JPEGImageReader this
        start local 1 // int imageIndex
         0: .line 885
            aload 0 /* this */
            invokevirtual com.sun.imageio.plugins.jpeg.JPEGImageReader.setThreadLock:()V
         1: .line 887
            aload 0 /* this */
            iload 1 /* imageIndex */
            invokevirtual com.sun.imageio.plugins.jpeg.JPEGImageReader.getImageTypesOnThread:(I)Ljava/util/Iterator;
            astore 3
         2: .line 889
            aload 0 /* this */
            invokevirtual com.sun.imageio.plugins.jpeg.JPEGImageReader.clearThreadLock:()V
         3: .line 887
            aload 3
            areturn
         4: .line 888
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 2
         5: .line 889
            aload 0 /* this */
            invokevirtual com.sun.imageio.plugins.jpeg.JPEGImageReader.clearThreadLock:()V
         6: .line 890
            aload 2
            athrow
        end local 1 // int imageIndex
        end local 0 // com.sun.imageio.plugins.jpeg.JPEGImageReader this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    7     0        this  Lcom/sun/imageio/plugins/jpeg/JPEGImageReader;
            0    7     1  imageIndex  I
      Exception table:
        from    to  target  type
           1     2       4  any
    Exceptions:
      throws java.io.IOException
    Signature: (I)Ljava/util/Iterator<Ljavax/imageio/ImageTypeSpecifier;>;
    MethodParameters:
            Name  Flags
      imageIndex  

  private java.util.Iterator<javax.imageio.ImageTypeSpecifier> getImageTypesOnThread(int);
    descriptor: (I)Ljava/util/Iterator;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=4, args_size=2
        start local 0 // com.sun.imageio.plugins.jpeg.JPEGImageReader this
        start local 1 // int imageIndex
         0: .line 895
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageReader.currentImage:I
            iload 1 /* imageIndex */
            if_icmpeq 3
         1: .line 896
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageReader.cbLock:Lcom/sun/imageio/plugins/jpeg/JPEGImageReader$CallBackLock;
            invokevirtual com.sun.imageio.plugins.jpeg.JPEGImageReader$CallBackLock.check:()V
         2: .line 897
            aload 0 /* this */
            iload 1 /* imageIndex */
            iconst_1
            invokevirtual com.sun.imageio.plugins.jpeg.JPEGImageReader.readHeader:(IZ)V
         3: .line 912
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageReader.colorSpaceCode:I
            invokevirtual com.sun.imageio.plugins.jpeg.JPEGImageReader.getImageType:(I)Lcom/sun/imageio/plugins/jpeg/ImageTypeProducer;
            astore 2 /* raw */
        start local 2 // com.sun.imageio.plugins.jpeg.ImageTypeProducer raw
         4: .line 918
            new java.util.ArrayList
            dup
            iconst_1
            invokespecial java.util.ArrayList.<init>:(I)V
            astore 3 /* list */
        start local 3 // java.util.ArrayList list
         5: .line 920
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageReader.colorSpaceCode:I
            tableswitch { // 1 - 10
                    1: 6
                    2: 9
                    3: 22
                    4: 29
                    5: 15
                    6: 13
                    7: 28
                    8: 29
                    9: 29
                   10: 19
              default: 29
          }
         6: .line 922
      StackMap locals: com.sun.imageio.plugins.jpeg.ImageTypeProducer java.util.ArrayList
      StackMap stack:
            aload 3 /* list */
            aload 2 /* raw */
            invokevirtual java.util.ArrayList.add:(Ljava/lang/Object;)Z
            pop
         7: .line 923
            aload 3 /* list */
            aload 0 /* this */
            iconst_2
            invokevirtual com.sun.imageio.plugins.jpeg.JPEGImageReader.getImageType:(I)Lcom/sun/imageio/plugins/jpeg/ImageTypeProducer;
            invokevirtual java.util.ArrayList.add:(Ljava/lang/Object;)Z
            pop
         8: .line 924
            goto 29
         9: .line 926
      StackMap locals:
      StackMap stack:
            aload 3 /* list */
            aload 2 /* raw */
            invokevirtual java.util.ArrayList.add:(Ljava/lang/Object;)Z
            pop
        10: .line 927
            aload 3 /* list */
            aload 0 /* this */
            iconst_1
            invokevirtual com.sun.imageio.plugins.jpeg.JPEGImageReader.getImageType:(I)Lcom/sun/imageio/plugins/jpeg/ImageTypeProducer;
            invokevirtual java.util.ArrayList.add:(Ljava/lang/Object;)Z
            pop
        11: .line 928
            aload 3 /* list */
            aload 0 /* this */
            iconst_5
            invokevirtual com.sun.imageio.plugins.jpeg.JPEGImageReader.getImageType:(I)Lcom/sun/imageio/plugins/jpeg/ImageTypeProducer;
            invokevirtual java.util.ArrayList.add:(Ljava/lang/Object;)Z
            pop
        12: .line 929
            goto 29
        13: .line 931
      StackMap locals:
      StackMap stack:
            aload 3 /* list */
            aload 2 /* raw */
            invokevirtual java.util.ArrayList.add:(Ljava/lang/Object;)Z
            pop
        14: .line 932
            goto 29
        15: .line 934
      StackMap locals:
      StackMap stack:
            aload 2 /* raw */
            ifnull 29
        16: .line 935
            aload 3 /* list */
            aload 2 /* raw */
            invokevirtual java.util.ArrayList.add:(Ljava/lang/Object;)Z
            pop
        17: .line 936
            aload 3 /* list */
            aload 0 /* this */
            iconst_2
            invokevirtual com.sun.imageio.plugins.jpeg.JPEGImageReader.getImageType:(I)Lcom/sun/imageio/plugins/jpeg/ImageTypeProducer;
            invokevirtual java.util.ArrayList.add:(Ljava/lang/Object;)Z
            pop
        18: .line 938
            goto 29
        19: .line 940
      StackMap locals:
      StackMap stack:
            aload 2 /* raw */
            ifnull 29
        20: .line 941
            aload 3 /* list */
            aload 2 /* raw */
            invokevirtual java.util.ArrayList.add:(Ljava/lang/Object;)Z
            pop
        21: .line 943
            goto 29
        22: .line 950
      StackMap locals:
      StackMap stack:
            aload 3 /* list */
            aload 0 /* this */
            iconst_2
            invokevirtual com.sun.imageio.plugins.jpeg.JPEGImageReader.getImageType:(I)Lcom/sun/imageio/plugins/jpeg/ImageTypeProducer;
            invokevirtual java.util.ArrayList.add:(Ljava/lang/Object;)Z
            pop
        23: .line 952
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageReader.iccCS:Ljava/awt/color/ColorSpace;
            ifnull 25
        24: .line 953
            aload 3 /* list */
            new com.sun.imageio.plugins.jpeg.JPEGImageReader$2
            dup
            aload 0 /* this */
            invokespecial com.sun.imageio.plugins.jpeg.JPEGImageReader$2.<init>:(Lcom/sun/imageio/plugins/jpeg/JPEGImageReader;)V
            invokevirtual java.util.ArrayList.add:(Ljava/lang/Object;)Z
            pop
        25: .line 966
      StackMap locals:
      StackMap stack:
            aload 3 /* list */
            aload 0 /* this */
            iconst_1
            invokevirtual com.sun.imageio.plugins.jpeg.JPEGImageReader.getImageType:(I)Lcom/sun/imageio/plugins/jpeg/ImageTypeProducer;
            invokevirtual java.util.ArrayList.add:(Ljava/lang/Object;)Z
            pop
        26: .line 967
            aload 3 /* list */
            aload 0 /* this */
            iconst_5
            invokevirtual com.sun.imageio.plugins.jpeg.JPEGImageReader.getImageType:(I)Lcom/sun/imageio/plugins/jpeg/ImageTypeProducer;
            invokevirtual java.util.ArrayList.add:(Ljava/lang/Object;)Z
            pop
        27: .line 968
            goto 29
        28: .line 972
      StackMap locals:
      StackMap stack:
            aload 3 /* list */
            aload 0 /* this */
            bipush 6
            invokevirtual com.sun.imageio.plugins.jpeg.JPEGImageReader.getImageType:(I)Lcom/sun/imageio/plugins/jpeg/ImageTypeProducer;
            invokevirtual java.util.ArrayList.add:(Ljava/lang/Object;)Z
            pop
        29: .line 976
      StackMap locals:
      StackMap stack:
            new com.sun.imageio.plugins.jpeg.ImageTypeIterator
            dup
            aload 3 /* list */
            invokevirtual java.util.ArrayList.iterator:()Ljava/util/Iterator;
            invokespecial com.sun.imageio.plugins.jpeg.ImageTypeIterator.<init>:(Ljava/util/Iterator;)V
            areturn
        end local 3 // java.util.ArrayList list
        end local 2 // com.sun.imageio.plugins.jpeg.ImageTypeProducer raw
        end local 1 // int imageIndex
        end local 0 // com.sun.imageio.plugins.jpeg.JPEGImageReader this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   30     0        this  Lcom/sun/imageio/plugins/jpeg/JPEGImageReader;
            0   30     1  imageIndex  I
            4   30     2         raw  Lcom/sun/imageio/plugins/jpeg/ImageTypeProducer;
            5   30     3        list  Ljava/util/ArrayList<Lcom/sun/imageio/plugins/jpeg/ImageTypeProducer;>;
    Exceptions:
      throws java.io.IOException
    Signature: (I)Ljava/util/Iterator<Ljavax/imageio/ImageTypeSpecifier;>;
    MethodParameters:
            Name  Flags
      imageIndex  

  private void checkColorConversion(java.awt.image.BufferedImage, javax.imageio.ImageReadParam);
    descriptor: (Ljava/awt/image/BufferedImage;Ljavax/imageio/ImageReadParam;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=6, locals=7, args_size=3
        start local 0 // com.sun.imageio.plugins.jpeg.JPEGImageReader this
        start local 1 // java.awt.image.BufferedImage image
        start local 2 // javax.imageio.ImageReadParam param
         0: .line 997
            aload 2 /* param */
            ifnull 4
         1: .line 998
            aload 2 /* param */
            invokevirtual javax.imageio.ImageReadParam.getSourceBands:()[I
            ifnonnull 3
         2: .line 999
            aload 2 /* param */
            invokevirtual javax.imageio.ImageReadParam.getDestinationBands:()[I
            ifnull 4
         3: .line 1001
      StackMap locals:
      StackMap stack:
            return
         4: .line 1010
      StackMap locals:
      StackMap stack:
            aload 1 /* image */
            invokevirtual java.awt.image.BufferedImage.getColorModel:()Ljava/awt/image/ColorModel;
            astore 3 /* cm */
        start local 3 // java.awt.image.ColorModel cm
         5: .line 1012
            aload 3 /* cm */
            instanceof java.awt.image.IndexColorModel
            ifeq 7
         6: .line 1013
            new javax.imageio.IIOException
            dup
            ldc "IndexColorModel not supported"
            invokespecial javax.imageio.IIOException.<init>:(Ljava/lang/String;)V
            athrow
         7: .line 1018
      StackMap locals: java.awt.image.ColorModel
      StackMap stack:
            aload 3 /* cm */
            invokevirtual java.awt.image.ColorModel.getColorSpace:()Ljava/awt/color/ColorSpace;
            astore 4 /* cs */
        start local 4 // java.awt.color.ColorSpace cs
         8: .line 1019
            aload 4 /* cs */
            invokevirtual java.awt.color.ColorSpace.getType:()I
            istore 5 /* csType */
        start local 5 // int csType
         9: .line 1020
            aload 0 /* this */
            aconst_null
            putfield com.sun.imageio.plugins.jpeg.JPEGImageReader.convert:Ljava/awt/image/ColorConvertOp;
        10: .line 1021
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageReader.outColorSpaceCode:I
            tableswitch { // 1 - 10
                    1: 11
                    2: 18
                    3: 51
                    4: 51
                    5: 39
                    6: 36
                    7: 51
                    8: 51
                    9: 51
                   10: 46
              default: 51
          }
        11: .line 1023
      StackMap locals: java.awt.color.ColorSpace int
      StackMap stack:
            iload 5 /* csType */
            iconst_5
            if_icmpne 16
        12: .line 1025
            aload 0 /* this */
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageReader.structPointer:J
            iconst_2
            invokevirtual com.sun.imageio.plugins.jpeg.JPEGImageReader.setOutColorSpace:(JI)V
        13: .line 1028
            aload 0 /* this */
            iconst_2
            putfield com.sun.imageio.plugins.jpeg.JPEGImageReader.outColorSpaceCode:I
        14: .line 1029
            aload 0 /* this */
            iconst_3
            putfield com.sun.imageio.plugins.jpeg.JPEGImageReader.numComponents:I
        15: .line 1030
            goto 52
      StackMap locals:
      StackMap stack:
        16: iload 5 /* csType */
            bipush 6
            if_icmpeq 52
        17: .line 1031
            new javax.imageio.IIOException
            dup
            ldc "Incompatible color conversion"
            invokespecial javax.imageio.IIOException.<init>:(Ljava/lang/String;)V
            athrow
        18: .line 1035
      StackMap locals:
      StackMap stack:
            iload 5 /* csType */
            bipush 6
            if_icmpne 24
        19: .line 1036
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageReader.colorSpaceCode:I
            iconst_3
            if_icmpne 52
        20: .line 1038
            aload 0 /* this */
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageReader.structPointer:J
            iconst_1
            invokevirtual com.sun.imageio.plugins.jpeg.JPEGImageReader.setOutColorSpace:(JI)V
        21: .line 1041
            aload 0 /* this */
            iconst_1
            putfield com.sun.imageio.plugins.jpeg.JPEGImageReader.outColorSpaceCode:I
        22: .line 1042
            aload 0 /* this */
            iconst_1
            putfield com.sun.imageio.plugins.jpeg.JPEGImageReader.numComponents:I
        23: .line 1044
            goto 52
      StackMap locals:
      StackMap stack:
        24: aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageReader.iccCS:Ljava/awt/color/ColorSpace;
            ifnull 29
        25: .line 1045
            aload 3 /* cm */
            invokevirtual java.awt.image.ColorModel.getNumComponents:()I
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageReader.numComponents:I
            if_icmpne 29
        26: .line 1046
            aload 4 /* cs */
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageReader.iccCS:Ljava/awt/color/ColorSpace;
            if_acmpeq 29
        27: .line 1049
            aload 0 /* this */
            new java.awt.image.ColorConvertOp
            dup
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageReader.iccCS:Ljava/awt/color/ColorSpace;
            aload 4 /* cs */
            aconst_null
            invokespecial java.awt.image.ColorConvertOp.<init>:(Ljava/awt/color/ColorSpace;Ljava/awt/color/ColorSpace;Ljava/awt/RenderingHints;)V
            putfield com.sun.imageio.plugins.jpeg.JPEGImageReader.convert:Ljava/awt/image/ColorConvertOp;
        28: .line 1051
            goto 52
      StackMap locals:
      StackMap stack:
        29: aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageReader.iccCS:Ljava/awt/color/ColorSpace;
            ifnonnull 34
        30: .line 1052
            aload 4 /* cs */
            invokevirtual java.awt.color.ColorSpace.isCS_sRGB:()Z
            ifne 34
        31: .line 1053
            aload 3 /* cm */
            invokevirtual java.awt.image.ColorModel.getNumComponents:()I
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageReader.numComponents:I
            if_icmpne 34
        32: .line 1055
            aload 0 /* this */
            new java.awt.image.ColorConvertOp
            dup
            getstatic com.sun.imageio.plugins.jpeg.JPEG$JCS.sRGB:Ljava/awt/color/ColorSpace;
            aload 4 /* cs */
            aconst_null
            invokespecial java.awt.image.ColorConvertOp.<init>:(Ljava/awt/color/ColorSpace;Ljava/awt/color/ColorSpace;Ljava/awt/RenderingHints;)V
            putfield com.sun.imageio.plugins.jpeg.JPEGImageReader.convert:Ljava/awt/image/ColorConvertOp;
        33: .line 1056
            goto 52
      StackMap locals:
      StackMap stack:
        34: iload 5 /* csType */
            iconst_5
            if_icmpeq 52
        35: .line 1057
            new javax.imageio.IIOException
            dup
            ldc "Incompatible color conversion"
            invokespecial javax.imageio.IIOException.<init>:(Ljava/lang/String;)V
            athrow
        36: .line 1062
      StackMap locals:
      StackMap stack:
            iload 5 /* csType */
            iconst_5
            if_icmpne 38
        37: .line 1063
            aload 3 /* cm */
            invokevirtual java.awt.image.ColorModel.getNumComponents:()I
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageReader.numComponents:I
            if_icmpeq 52
        38: .line 1064
      StackMap locals:
      StackMap stack:
            new javax.imageio.IIOException
            dup
            ldc "Incompatible color conversion"
            invokespecial javax.imageio.IIOException.<init>:(Ljava/lang/String;)V
            athrow
        39: .line 1069
      StackMap locals:
      StackMap stack:
            invokestatic com.sun.imageio.plugins.jpeg.JPEG$JCS.getYCC:()Ljava/awt/color/ColorSpace;
            astore 6 /* YCC */
        start local 6 // java.awt.color.ColorSpace YCC
        40: .line 1070
            aload 6 /* YCC */
            ifnonnull 42
        41: .line 1071
            new javax.imageio.IIOException
            dup
            ldc "Incompatible color conversion"
            invokespecial javax.imageio.IIOException.<init>:(Ljava/lang/String;)V
            athrow
        42: .line 1073
      StackMap locals: java.awt.color.ColorSpace
      StackMap stack:
            aload 4 /* cs */
            aload 6 /* YCC */
            if_acmpeq 52
        43: .line 1074
            aload 3 /* cm */
            invokevirtual java.awt.image.ColorModel.getNumComponents:()I
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageReader.numComponents:I
            if_icmpne 52
        44: .line 1075
            aload 0 /* this */
            new java.awt.image.ColorConvertOp
            dup
            aload 6 /* YCC */
            aload 4 /* cs */
            aconst_null
            invokespecial java.awt.image.ColorConvertOp.<init>:(Ljava/awt/color/ColorSpace;Ljava/awt/color/ColorSpace;Ljava/awt/RenderingHints;)V
            putfield com.sun.imageio.plugins.jpeg.JPEGImageReader.convert:Ljava/awt/image/ColorConvertOp;
        end local 6 // java.awt.color.ColorSpace YCC
        45: .line 1078
            goto 52
        46: .line 1081
      StackMap locals:
      StackMap stack:
            invokestatic com.sun.imageio.plugins.jpeg.JPEG$JCS.getYCC:()Ljava/awt/color/ColorSpace;
            astore 6 /* YCC */
        start local 6 // java.awt.color.ColorSpace YCC
        47: .line 1083
            aload 6 /* YCC */
            ifnull 50
        48: .line 1084
            aload 4 /* cs */
            aload 6 /* YCC */
            if_acmpne 50
        49: .line 1085
            aload 3 /* cm */
            invokevirtual java.awt.image.ColorModel.getNumComponents:()I
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageReader.numComponents:I
            if_icmpeq 52
        50: .line 1086
      StackMap locals: java.awt.color.ColorSpace
      StackMap stack:
            new javax.imageio.IIOException
            dup
            ldc "Incompatible color conversion"
            invokespecial javax.imageio.IIOException.<init>:(Ljava/lang/String;)V
            athrow
        end local 6 // java.awt.color.ColorSpace YCC
        51: .line 1092
      StackMap locals:
      StackMap stack:
            new javax.imageio.IIOException
            dup
            ldc "Incompatible color conversion"
            invokespecial javax.imageio.IIOException.<init>:(Ljava/lang/String;)V
            athrow
        52: .line 1094
      StackMap locals:
      StackMap stack:
            return
        end local 5 // int csType
        end local 4 // java.awt.color.ColorSpace cs
        end local 3 // java.awt.image.ColorModel cm
        end local 2 // javax.imageio.ImageReadParam param
        end local 1 // java.awt.image.BufferedImage image
        end local 0 // com.sun.imageio.plugins.jpeg.JPEGImageReader this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   53     0    this  Lcom/sun/imageio/plugins/jpeg/JPEGImageReader;
            0   53     1   image  Ljava/awt/image/BufferedImage;
            0   53     2   param  Ljavax/imageio/ImageReadParam;
            5   53     3      cm  Ljava/awt/image/ColorModel;
            8   53     4      cs  Ljava/awt/color/ColorSpace;
            9   53     5  csType  I
           40   45     6     YCC  Ljava/awt/color/ColorSpace;
           47   51     6     YCC  Ljava/awt/color/ColorSpace;
    Exceptions:
      throws javax.imageio.IIOException
    MethodParameters:
       Name  Flags
      image  
      param  

  private native void setOutColorSpace(long, int);
    descriptor: (JI)V
    flags: (0x0102) ACC_PRIVATE, ACC_NATIVE
    MethodParameters:
               Name  Flags
      structPointer  
      id             

  public javax.imageio.ImageReadParam getDefaultReadParam();
    descriptor: ()Ljavax/imageio/ImageReadParam;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // com.sun.imageio.plugins.jpeg.JPEGImageReader this
         0: .line 1105
            new javax.imageio.plugins.jpeg.JPEGImageReadParam
            dup
            invokespecial javax.imageio.plugins.jpeg.JPEGImageReadParam.<init>:()V
            areturn
        end local 0 // com.sun.imageio.plugins.jpeg.JPEGImageReader this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/sun/imageio/plugins/jpeg/JPEGImageReader;

  public javax.imageio.metadata.IIOMetadata getStreamMetadata();
    descriptor: ()Ljavax/imageio/metadata/IIOMetadata;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=3, args_size=1
        start local 0 // com.sun.imageio.plugins.jpeg.JPEGImageReader this
         0: .line 1109
            aload 0 /* this */
            invokevirtual com.sun.imageio.plugins.jpeg.JPEGImageReader.setThreadLock:()V
         1: .line 1111
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageReader.tablesOnlyChecked:Z
            ifne 4
         2: .line 1112
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageReader.cbLock:Lcom/sun/imageio/plugins/jpeg/JPEGImageReader$CallBackLock;
            invokevirtual com.sun.imageio.plugins.jpeg.JPEGImageReader$CallBackLock.check:()V
         3: .line 1113
            aload 0 /* this */
            invokevirtual com.sun.imageio.plugins.jpeg.JPEGImageReader.checkTablesOnly:()V
         4: .line 1115
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageReader.streamMetadata:Lcom/sun/imageio/plugins/jpeg/JPEGMetadata;
            astore 2
         5: .line 1117
            aload 0 /* this */
            invokevirtual com.sun.imageio.plugins.jpeg.JPEGImageReader.clearThreadLock:()V
         6: .line 1115
            aload 2
            areturn
         7: .line 1116
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 1
         8: .line 1117
            aload 0 /* this */
            invokevirtual com.sun.imageio.plugins.jpeg.JPEGImageReader.clearThreadLock:()V
         9: .line 1118
            aload 1
            athrow
        end local 0 // com.sun.imageio.plugins.jpeg.JPEGImageReader this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   10     0  this  Lcom/sun/imageio/plugins/jpeg/JPEGImageReader;
      Exception table:
        from    to  target  type
           1     5       7  any
    Exceptions:
      throws java.io.IOException

  public javax.imageio.metadata.IIOMetadata getImageMetadata(int);
    descriptor: (I)Ljavax/imageio/metadata/IIOMetadata;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=7, locals=4, args_size=2
        start local 0 // com.sun.imageio.plugins.jpeg.JPEGImageReader this
        start local 1 // int imageIndex
         0: .line 1123
            aload 0 /* this */
            invokevirtual com.sun.imageio.plugins.jpeg.JPEGImageReader.setThreadLock:()V
         1: .line 1128
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageReader.imageMetadataIndex:I
            iload 1 /* imageIndex */
            if_icmpne 6
         2: .line 1129
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageReader.imageMetadata:Lcom/sun/imageio/plugins/jpeg/JPEGMetadata;
            ifnull 6
         3: .line 1130
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageReader.imageMetadata:Lcom/sun/imageio/plugins/jpeg/JPEGMetadata;
            astore 3
         4: .line 1143
            aload 0 /* this */
            invokevirtual com.sun.imageio.plugins.jpeg.JPEGImageReader.clearThreadLock:()V
         5: .line 1130
            aload 3
            areturn
         6: .line 1133
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageReader.cbLock:Lcom/sun/imageio/plugins/jpeg/JPEGImageReader$CallBackLock;
            invokevirtual com.sun.imageio.plugins.jpeg.JPEGImageReader$CallBackLock.check:()V
         7: .line 1135
            aload 0 /* this */
            iload 1 /* imageIndex */
            invokevirtual com.sun.imageio.plugins.jpeg.JPEGImageReader.gotoImage:(I)V
         8: .line 1137
            aload 0 /* this */
            new com.sun.imageio.plugins.jpeg.JPEGMetadata
            dup
            iconst_0
            iconst_0
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageReader.iis:Ljavax/imageio/stream/ImageInputStream;
            aload 0 /* this */
            invokespecial com.sun.imageio.plugins.jpeg.JPEGMetadata.<init>:(ZZLjavax/imageio/stream/ImageInputStream;Lcom/sun/imageio/plugins/jpeg/JPEGImageReader;)V
            putfield com.sun.imageio.plugins.jpeg.JPEGImageReader.imageMetadata:Lcom/sun/imageio/plugins/jpeg/JPEGMetadata;
         9: .line 1139
            aload 0 /* this */
            iload 1 /* imageIndex */
            putfield com.sun.imageio.plugins.jpeg.JPEGImageReader.imageMetadataIndex:I
        10: .line 1141
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageReader.imageMetadata:Lcom/sun/imageio/plugins/jpeg/JPEGMetadata;
            astore 3
        11: .line 1143
            aload 0 /* this */
            invokevirtual com.sun.imageio.plugins.jpeg.JPEGImageReader.clearThreadLock:()V
        12: .line 1141
            aload 3
            areturn
        13: .line 1142
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 2
        14: .line 1143
            aload 0 /* this */
            invokevirtual com.sun.imageio.plugins.jpeg.JPEGImageReader.clearThreadLock:()V
        15: .line 1144
            aload 2
            athrow
        end local 1 // int imageIndex
        end local 0 // com.sun.imageio.plugins.jpeg.JPEGImageReader this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   16     0        this  Lcom/sun/imageio/plugins/jpeg/JPEGImageReader;
            0   16     1  imageIndex  I
      Exception table:
        from    to  target  type
           1     4      13  any
           6    11      13  any
    Exceptions:
      throws java.io.IOException
    MethodParameters:
            Name  Flags
      imageIndex  

  public java.awt.image.BufferedImage read(int, javax.imageio.ImageReadParam);
    descriptor: (ILjavax/imageio/ImageReadParam;)Ljava/awt/image/BufferedImage;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=6, args_size=3
        start local 0 // com.sun.imageio.plugins.jpeg.JPEGImageReader this
        start local 1 // int imageIndex
        start local 2 // javax.imageio.ImageReadParam param
         0: .line 1149
            aload 0 /* this */
            invokevirtual com.sun.imageio.plugins.jpeg.JPEGImageReader.setThreadLock:()V
         1: .line 1151
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageReader.cbLock:Lcom/sun/imageio/plugins/jpeg/JPEGImageReader$CallBackLock;
            invokevirtual com.sun.imageio.plugins.jpeg.JPEGImageReader$CallBackLock.check:()V
         2: .line 1153
            aload 0 /* this */
            iload 1 /* imageIndex */
            aload 2 /* param */
            iconst_0
            invokevirtual com.sun.imageio.plugins.jpeg.JPEGImageReader.readInternal:(ILjavax/imageio/ImageReadParam;Z)Ljava/awt/image/Raster;
            pop
         3: .line 1154
            goto 10
      StackMap locals:
      StackMap stack: java.lang.RuntimeException
         4: astore 3 /* e */
        start local 3 // java.lang.RuntimeException e
         5: .line 1155
            aload 0 /* this */
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageReader.structPointer:J
            invokevirtual com.sun.imageio.plugins.jpeg.JPEGImageReader.resetLibraryState:(J)V
         6: .line 1156
            aload 3 /* e */
            athrow
        end local 3 // java.lang.RuntimeException e
         7: .line 1157
      StackMap locals:
      StackMap stack: java.io.IOException
            astore 3 /* e */
        start local 3 // java.io.IOException e
         8: .line 1158
            aload 0 /* this */
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageReader.structPointer:J
            invokevirtual com.sun.imageio.plugins.jpeg.JPEGImageReader.resetLibraryState:(J)V
         9: .line 1159
            aload 3 /* e */
            athrow
        end local 3 // java.io.IOException e
        10: .line 1162
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageReader.image:Ljava/awt/image/BufferedImage;
            astore 3 /* ret */
        start local 3 // java.awt.image.BufferedImage ret
        11: .line 1163
            aload 0 /* this */
            aconst_null
            putfield com.sun.imageio.plugins.jpeg.JPEGImageReader.image:Ljava/awt/image/BufferedImage;
        12: .line 1164
            aload 3 /* ret */
            astore 5
        13: .line 1166
            aload 0 /* this */
            invokevirtual com.sun.imageio.plugins.jpeg.JPEGImageReader.clearThreadLock:()V
        14: .line 1164
            aload 5
            areturn
        end local 3 // java.awt.image.BufferedImage ret
        15: .line 1165
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 4
        16: .line 1166
            aload 0 /* this */
            invokevirtual com.sun.imageio.plugins.jpeg.JPEGImageReader.clearThreadLock:()V
        17: .line 1167
            aload 4
            athrow
        end local 2 // javax.imageio.ImageReadParam param
        end local 1 // int imageIndex
        end local 0 // com.sun.imageio.plugins.jpeg.JPEGImageReader this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   18     0        this  Lcom/sun/imageio/plugins/jpeg/JPEGImageReader;
            0   18     1  imageIndex  I
            0   18     2       param  Ljavax/imageio/ImageReadParam;
            5    7     3           e  Ljava/lang/RuntimeException;
            8   10     3           e  Ljava/io/IOException;
           11   15     3         ret  Ljava/awt/image/BufferedImage;
      Exception table:
        from    to  target  type
           2     3       4  Class java.lang.RuntimeException
           2     3       7  Class java.io.IOException
           1    13      15  any
    Exceptions:
      throws java.io.IOException
    MethodParameters:
            Name  Flags
      imageIndex  
      param       

  private java.awt.image.Raster readInternal(int, javax.imageio.ImageReadParam, boolean);
    descriptor: (ILjavax/imageio/ImageReadParam;Z)Ljava/awt/image/Raster;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=20, locals=16, args_size=4
        start local 0 // com.sun.imageio.plugins.jpeg.JPEGImageReader this
        start local 1 // int imageIndex
        start local 2 // javax.imageio.ImageReadParam param
        start local 3 // boolean wantRaster
         0: .line 1173
            aload 0 /* this */
            iload 1 /* imageIndex */
            iconst_0
            invokevirtual com.sun.imageio.plugins.jpeg.JPEGImageReader.readHeader:(IZ)V
         1: .line 1175
            aconst_null
            astore 4 /* imRas */
        start local 4 // java.awt.image.WritableRaster imRas
         2: .line 1176
            iconst_0
            istore 5 /* numImageBands */
        start local 5 // int numImageBands
         3: .line 1178
            iload 3 /* wantRaster */
            ifne 13
         4: .line 1180
            aload 0 /* this */
            iload 1 /* imageIndex */
            invokevirtual com.sun.imageio.plugins.jpeg.JPEGImageReader.getImageTypes:(I)Ljava/util/Iterator;
            astore 6 /* imageTypes */
        start local 6 // java.util.Iterator imageTypes
         5: .line 1181
            aload 6 /* imageTypes */
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 7
         6: .line 1182
            new javax.imageio.IIOException
            dup
            ldc "Unsupported Image Type"
            invokespecial javax.imageio.IIOException.<init>:(Ljava/lang/String;)V
            athrow
         7: .line 1185
      StackMap locals: java.awt.image.WritableRaster int java.util.Iterator
      StackMap stack:
            aload 0 /* this */
            aload 2 /* param */
            aload 6 /* imageTypes */
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageReader.width:I
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageReader.height:I
            invokestatic com.sun.imageio.plugins.jpeg.JPEGImageReader.getDestination:(Ljavax/imageio/ImageReadParam;Ljava/util/Iterator;II)Ljava/awt/image/BufferedImage;
            putfield com.sun.imageio.plugins.jpeg.JPEGImageReader.image:Ljava/awt/image/BufferedImage;
         8: .line 1186
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageReader.image:Ljava/awt/image/BufferedImage;
            invokevirtual java.awt.image.BufferedImage.getRaster:()Ljava/awt/image/WritableRaster;
            astore 4 /* imRas */
         9: .line 1190
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageReader.image:Ljava/awt/image/BufferedImage;
            invokevirtual java.awt.image.BufferedImage.getSampleModel:()Ljava/awt/image/SampleModel;
            invokevirtual java.awt.image.SampleModel.getNumBands:()I
            istore 5 /* numImageBands */
        10: .line 1197
            aload 0 /* this */
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageReader.image:Ljava/awt/image/BufferedImage;
            aload 2 /* param */
            invokevirtual com.sun.imageio.plugins.jpeg.JPEGImageReader.checkColorConversion:(Ljava/awt/image/BufferedImage;Ljavax/imageio/ImageReadParam;)V
        11: .line 1200
            aload 2 /* param */
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageReader.numComponents:I
            iload 5 /* numImageBands */
            invokestatic com.sun.imageio.plugins.jpeg.JPEGImageReader.checkReadParamBandSettings:(Ljavax/imageio/ImageReadParam;II)V
        end local 6 // java.util.Iterator imageTypes
        12: .line 1201
            goto 15
        13: .line 1204
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageReader.structPointer:J
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageReader.colorSpaceCode:I
            invokevirtual com.sun.imageio.plugins.jpeg.JPEGImageReader.setOutColorSpace:(JI)V
        14: .line 1205
            aload 0 /* this */
            aconst_null
            putfield com.sun.imageio.plugins.jpeg.JPEGImageReader.image:Ljava/awt/image/BufferedImage;
        15: .line 1215
      StackMap locals:
      StackMap stack:
            getstatic com.sun.imageio.plugins.jpeg.JPEG.bandOffsets:[[I
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageReader.numComponents:I
            iconst_1
            isub
            aaload
            astore 6 /* srcBands */
        start local 6 // int[] srcBands
        16: .line 1216
            iload 3 /* wantRaster */
            ifeq 17
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageReader.numComponents:I
            goto 18
      StackMap locals: int[]
      StackMap stack:
        17: iload 5 /* numImageBands */
      StackMap locals:
      StackMap stack: int
        18: istore 7 /* numRasterBands */
        start local 7 // int numRasterBands
        19: .line 1217
            aload 0 /* this */
            aconst_null
            putfield com.sun.imageio.plugins.jpeg.JPEGImageReader.destinationBands:[I
        20: .line 1219
            new java.awt.Rectangle
            dup
            iconst_0
            iconst_0
            iconst_0
            iconst_0
            invokespecial java.awt.Rectangle.<init>:(IIII)V
            astore 8 /* srcROI */
        start local 8 // java.awt.Rectangle srcROI
        21: .line 1220
            aload 0 /* this */
            new java.awt.Rectangle
            dup
            iconst_0
            iconst_0
            iconst_0
            iconst_0
            invokespecial java.awt.Rectangle.<init>:(IIII)V
            putfield com.sun.imageio.plugins.jpeg.JPEGImageReader.destROI:Ljava/awt/Rectangle;
        22: .line 1221
            aload 2 /* param */
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageReader.width:I
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageReader.height:I
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageReader.image:Ljava/awt/image/BufferedImage;
            aload 8 /* srcROI */
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageReader.destROI:Ljava/awt/Rectangle;
            invokestatic com.sun.imageio.plugins.jpeg.JPEGImageReader.computeRegions:(Ljavax/imageio/ImageReadParam;IILjava/awt/image/BufferedImage;Ljava/awt/Rectangle;Ljava/awt/Rectangle;)V
        23: .line 1223
            iconst_1
            istore 9 /* periodX */
        start local 9 // int periodX
        24: .line 1224
            iconst_1
            istore 10 /* periodY */
        start local 10 // int periodY
        25: .line 1226
            aload 0 /* this */
            iconst_0
            putfield com.sun.imageio.plugins.jpeg.JPEGImageReader.minProgressivePass:I
        26: .line 1227
            aload 0 /* this */
            ldc 2147483647
            putfield com.sun.imageio.plugins.jpeg.JPEGImageReader.maxProgressivePass:I
        27: .line 1229
            aload 2 /* param */
            ifnull 44
        28: .line 1230
            aload 2 /* param */
            invokevirtual javax.imageio.ImageReadParam.getSourceXSubsampling:()I
            istore 9 /* periodX */
        29: .line 1231
            aload 2 /* param */
            invokevirtual javax.imageio.ImageReadParam.getSourceYSubsampling:()I
            istore 10 /* periodY */
        30: .line 1233
            aload 2 /* param */
            invokevirtual javax.imageio.ImageReadParam.getSourceBands:()[I
            astore 11 /* sBands */
        start local 11 // int[] sBands
        31: .line 1234
            aload 11 /* sBands */
            ifnull 34
        32: .line 1235
            aload 11 /* sBands */
            astore 6 /* srcBands */
        33: .line 1236
            aload 6 /* srcBands */
            arraylength
            istore 7 /* numRasterBands */
        34: .line 1238
      StackMap locals: com.sun.imageio.plugins.jpeg.JPEGImageReader int javax.imageio.ImageReadParam int java.awt.image.WritableRaster int int[] int java.awt.Rectangle int int int[]
      StackMap stack:
            iload 3 /* wantRaster */
            ifne 36
        35: .line 1239
            aload 0 /* this */
            aload 2 /* param */
            invokevirtual javax.imageio.ImageReadParam.getDestinationBands:()[I
            putfield com.sun.imageio.plugins.jpeg.JPEGImageReader.destinationBands:[I
        36: .line 1242
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 2 /* param */
            invokevirtual javax.imageio.ImageReadParam.getSourceMinProgressivePass:()I
            putfield com.sun.imageio.plugins.jpeg.JPEGImageReader.minProgressivePass:I
        37: .line 1243
            aload 0 /* this */
            aload 2 /* param */
            invokevirtual javax.imageio.ImageReadParam.getSourceMaxProgressivePass:()I
            putfield com.sun.imageio.plugins.jpeg.JPEGImageReader.maxProgressivePass:I
        38: .line 1245
            aload 2 /* param */
            instanceof javax.imageio.plugins.jpeg.JPEGImageReadParam
            ifeq 44
        39: .line 1246
            aload 2 /* param */
            checkcast javax.imageio.plugins.jpeg.JPEGImageReadParam
            astore 12 /* jparam */
        start local 12 // javax.imageio.plugins.jpeg.JPEGImageReadParam jparam
        40: .line 1247
            aload 12 /* jparam */
            invokevirtual javax.imageio.plugins.jpeg.JPEGImageReadParam.areTablesSet:()Z
            ifeq 44
        41: .line 1248
            aload 0 /* this */
            aload 12 /* jparam */
            invokevirtual javax.imageio.plugins.jpeg.JPEGImageReadParam.getQTables:()[Ljavax/imageio/plugins/jpeg/JPEGQTable;
            putfield com.sun.imageio.plugins.jpeg.JPEGImageReader.abbrevQTables:[Ljavax/imageio/plugins/jpeg/JPEGQTable;
        42: .line 1249
            aload 0 /* this */
            aload 12 /* jparam */
            invokevirtual javax.imageio.plugins.jpeg.JPEGImageReadParam.getDCHuffmanTables:()[Ljavax/imageio/plugins/jpeg/JPEGHuffmanTable;
            putfield com.sun.imageio.plugins.jpeg.JPEGImageReader.abbrevDCHuffmanTables:[Ljavax/imageio/plugins/jpeg/JPEGHuffmanTable;
        43: .line 1250
            aload 0 /* this */
            aload 12 /* jparam */
            invokevirtual javax.imageio.plugins.jpeg.JPEGImageReadParam.getACHuffmanTables:()[Ljavax/imageio/plugins/jpeg/JPEGHuffmanTable;
            putfield com.sun.imageio.plugins.jpeg.JPEGImageReader.abbrevACHuffmanTables:[Ljavax/imageio/plugins/jpeg/JPEGHuffmanTable;
        end local 12 // javax.imageio.plugins.jpeg.JPEGImageReadParam jparam
        end local 11 // int[] sBands
        44: .line 1255
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageReader.destROI:Ljava/awt/Rectangle;
            getfield java.awt.Rectangle.width:I
            iload 7 /* numRasterBands */
            imul
            istore 11 /* lineSize */
        start local 11 // int lineSize
        45: .line 1257
            aload 0 /* this */
            new java.awt.image.DataBufferByte
            dup
            iload 11 /* lineSize */
            invokespecial java.awt.image.DataBufferByte.<init>:(I)V
            putfield com.sun.imageio.plugins.jpeg.JPEGImageReader.buffer:Ljava/awt/image/DataBufferByte;
        46: .line 1259
            getstatic com.sun.imageio.plugins.jpeg.JPEG.bandOffsets:[[I
            iload 7 /* numRasterBands */
            iconst_1
            isub
            aaload
            astore 12 /* bandOffs */
        start local 12 // int[] bandOffs
        47: .line 1261
            aload 0 /* this */
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageReader.buffer:Ljava/awt/image/DataBufferByte;
        48: .line 1262
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageReader.destROI:Ljava/awt/Rectangle;
            getfield java.awt.Rectangle.width:I
            iconst_1
        49: .line 1263
            iload 11 /* lineSize */
        50: .line 1264
            iload 7 /* numRasterBands */
        51: .line 1265
            aload 12 /* bandOffs */
        52: .line 1266
            aconst_null
        53: .line 1261
            invokestatic java.awt.image.Raster.createInterleavedRaster:(Ljava/awt/image/DataBuffer;IIII[ILjava/awt/Point;)Ljava/awt/image/WritableRaster;
            putfield com.sun.imageio.plugins.jpeg.JPEGImageReader.raster:Ljava/awt/image/WritableRaster;
        54: .line 1270
            iload 3 /* wantRaster */
            ifeq 64
        55: .line 1271
            aload 0 /* this */
            iconst_0
        56: .line 1272
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageReader.destROI:Ljava/awt/Rectangle;
            getfield java.awt.Rectangle.width:I
        57: .line 1273
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageReader.destROI:Ljava/awt/Rectangle;
            getfield java.awt.Rectangle.height:I
        58: .line 1274
            iload 11 /* lineSize */
        59: .line 1275
            iload 7 /* numRasterBands */
        60: .line 1276
            aload 12 /* bandOffs */
        61: .line 1277
            aconst_null
        62: .line 1271
            invokestatic java.awt.image.Raster.createInterleavedRaster:(IIIII[ILjava/awt/Point;)Ljava/awt/image/WritableRaster;
            putfield com.sun.imageio.plugins.jpeg.JPEGImageReader.target:Ljava/awt/image/WritableRaster;
        63: .line 1278
            goto 65
        64: .line 1279
      StackMap locals: int int[]
      StackMap stack:
            aload 0 /* this */
            aload 4 /* imRas */
            putfield com.sun.imageio.plugins.jpeg.JPEGImageReader.target:Ljava/awt/image/WritableRaster;
        65: .line 1281
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageReader.target:Ljava/awt/image/WritableRaster;
            invokevirtual java.awt.image.WritableRaster.getSampleModel:()Ljava/awt/image/SampleModel;
            invokevirtual java.awt.image.SampleModel.getSampleSize:()[I
            astore 13 /* bandSizes */
        start local 13 // int[] bandSizes
        66: .line 1282
            iconst_0
            istore 14 /* i */
        start local 14 // int i
        67: goto 71
        68: .line 1283
      StackMap locals: int[] int
      StackMap stack:
            aload 13 /* bandSizes */
            iload 14 /* i */
            iaload
            ifle 69
            aload 13 /* bandSizes */
            iload 14 /* i */
            iaload
            bipush 8
            if_icmple 70
        69: .line 1284
      StackMap locals:
      StackMap stack:
            new javax.imageio.IIOException
            dup
            ldc "Illegal band size: should be 0 < size <= 8"
            invokespecial javax.imageio.IIOException.<init>:(Ljava/lang/String;)V
            athrow
        70: .line 1282
      StackMap locals:
      StackMap stack:
            iinc 14 /* i */ 1
      StackMap locals:
      StackMap stack:
        71: iload 14 /* i */
            aload 13 /* bandSizes */
            arraylength
            if_icmplt 68
        end local 14 // int i
        72: .line 1295
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageReader.updateListeners:Ljava/util/List;
            ifnonnull 75
        73: .line 1296
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageReader.progressListeners:Ljava/util/List;
            ifnonnull 75
        74: .line 1295
            iconst_0
            goto 76
      StackMap locals:
      StackMap stack:
        75: iconst_1
      StackMap locals:
      StackMap stack: int
        76: istore 14 /* callbackUpdates */
        start local 14 // boolean callbackUpdates
        77: .line 1299
            aload 0 /* this */
            invokevirtual com.sun.imageio.plugins.jpeg.JPEGImageReader.initProgressData:()V
        78: .line 1302
            iload 1 /* imageIndex */
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageReader.imageMetadataIndex:I
            if_icmpne 86
        79: .line 1303
            aload 0 /* this */
            iconst_0
            putfield com.sun.imageio.plugins.jpeg.JPEGImageReader.knownPassCount:I
        80: .line 1305
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageReader.imageMetadata:Lcom/sun/imageio/plugins/jpeg/JPEGMetadata;
            getfield com.sun.imageio.plugins.jpeg.JPEGMetadata.markerSequence:Ljava/util/List;
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
        81: .line 1304
            astore 15 /* iter */
        start local 15 // java.util.Iterator iter
        82: .line 1305
            goto 85
        83: .line 1306
      StackMap locals: int java.util.Iterator
      StackMap stack:
            aload 15 /* iter */
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            instanceof com.sun.imageio.plugins.jpeg.SOSMarkerSegment
            ifeq 85
        84: .line 1307
            aload 0 /* this */
            dup
            getfield com.sun.imageio.plugins.jpeg.JPEGImageReader.knownPassCount:I
            iconst_1
            iadd
            putfield com.sun.imageio.plugins.jpeg.JPEGImageReader.knownPassCount:I
        85: .line 1305
      StackMap locals:
      StackMap stack:
            aload 15 /* iter */
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 83
        end local 15 // java.util.Iterator iter
        86: .line 1311
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageReader.target:Ljava/awt/image/WritableRaster;
            invokevirtual java.awt.image.WritableRaster.getHeight:()I
            iconst_1
            isub
            bipush 20
            idiv
            iconst_1
            invokestatic java.lang.Math.max:(II)I
            putfield com.sun.imageio.plugins.jpeg.JPEGImageReader.progInterval:I
        87: .line 1312
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageReader.knownPassCount:I
            ifle 90
        88: .line 1313
            aload 0 /* this */
            dup
            getfield com.sun.imageio.plugins.jpeg.JPEGImageReader.progInterval:I
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageReader.knownPassCount:I
            imul
            putfield com.sun.imageio.plugins.jpeg.JPEGImageReader.progInterval:I
        89: .line 1314
            goto 92
      StackMap locals:
      StackMap stack:
        90: aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageReader.maxProgressivePass:I
            ldc 2147483647
            if_icmpeq 92
        91: .line 1315
            aload 0 /* this */
            dup
            getfield com.sun.imageio.plugins.jpeg.JPEGImageReader.progInterval:I
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageReader.maxProgressivePass:I
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageReader.minProgressivePass:I
            isub
            iconst_1
            iadd
            imul
            putfield com.sun.imageio.plugins.jpeg.JPEGImageReader.progInterval:I
        92: .line 1318
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageReader.debug:Z
            ifeq 117
        93: .line 1319
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            ldc "**** Read Data *****"
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
        94: .line 1320
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            new java.lang.StringBuilder
            dup
            ldc "numRasterBands is "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            iload 7 /* numRasterBands */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
        95: .line 1321
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            ldc "srcBands:"
            invokevirtual java.io.PrintStream.print:(Ljava/lang/String;)V
        96: .line 1322
            iconst_0
            istore 15 /* i */
        start local 15 // int i
        97: goto 100
        98: .line 1323
      StackMap locals: int
      StackMap stack:
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            new java.lang.StringBuilder
            dup
            ldc " "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 6 /* srcBands */
            iload 15 /* i */
            iaload
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual java.io.PrintStream.print:(Ljava/lang/String;)V
        99: .line 1322
            iinc 15 /* i */ 1
      StackMap locals:
      StackMap stack:
       100: iload 15 /* i */
            aload 6 /* srcBands */
            arraylength
            if_icmplt 98
        end local 15 // int i
       101: .line 1324
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            invokevirtual java.io.PrintStream.println:()V
       102: .line 1325
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            new java.lang.StringBuilder
            dup
            ldc "destination bands is "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageReader.destinationBands:[I
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
       103: .line 1326
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageReader.destinationBands:[I
            ifnull 110
       104: .line 1327
            iconst_0
            istore 15 /* i */
        start local 15 // int i
       105: goto 108
       106: .line 1328
      StackMap locals:
      StackMap stack:
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            new java.lang.StringBuilder
            dup
            ldc " "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageReader.destinationBands:[I
            iload 15 /* i */
            iaload
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual java.io.PrintStream.print:(Ljava/lang/String;)V
       107: .line 1327
            iinc 15 /* i */ 1
      StackMap locals:
      StackMap stack:
       108: iload 15 /* i */
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageReader.destinationBands:[I
            arraylength
            if_icmplt 106
        end local 15 // int i
       109: .line 1330
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            invokevirtual java.io.PrintStream.println:()V
       110: .line 1332
      StackMap locals:
      StackMap stack:
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            new java.lang.StringBuilder
            dup
            ldc "sourceROI is "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 8 /* srcROI */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
       111: .line 1333
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            new java.lang.StringBuilder
            dup
            ldc "destROI is "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageReader.destROI:Ljava/awt/Rectangle;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
       112: .line 1334
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            new java.lang.StringBuilder
            dup
            ldc "periodX is "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            iload 9 /* periodX */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
       113: .line 1335
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            new java.lang.StringBuilder
            dup
            ldc "periodY is "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            iload 10 /* periodY */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
       114: .line 1336
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            new java.lang.StringBuilder
            dup
            ldc "minProgressivePass is "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageReader.minProgressivePass:I
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
       115: .line 1337
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            new java.lang.StringBuilder
            dup
            ldc "maxProgressivePass is "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageReader.maxProgressivePass:I
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
       116: .line 1338
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            new java.lang.StringBuilder
            dup
            ldc "callbackUpdates is "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            iload 14 /* callbackUpdates */
            invokevirtual java.lang.StringBuilder.append:(Z)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
       117: .line 1347
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageReader.structPointer:J
            invokevirtual com.sun.imageio.plugins.jpeg.JPEGImageReader.clearNativeReadAbortFlag:(J)V
       118: .line 1348
            aload 0 /* this */
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageReader.currentImage:I
            invokevirtual com.sun.imageio.plugins.jpeg.JPEGImageReader.processImageStarted:(I)V
       119: .line 1354
            aload 0 /* this */
            iload 1 /* imageIndex */
       120: .line 1355
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageReader.structPointer:J
       121: .line 1356
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageReader.buffer:Ljava/awt/image/DataBufferByte;
            invokevirtual java.awt.image.DataBufferByte.getData:()[B
       122: .line 1357
            iload 7 /* numRasterBands */
       123: .line 1358
            aload 6 /* srcBands */
       124: .line 1359
            aload 13 /* bandSizes */
       125: .line 1360
            aload 8 /* srcROI */
            getfield java.awt.Rectangle.x:I
            aload 8 /* srcROI */
            getfield java.awt.Rectangle.y:I
       126: .line 1361
            aload 8 /* srcROI */
            getfield java.awt.Rectangle.width:I
            aload 8 /* srcROI */
            getfield java.awt.Rectangle.height:I
       127: .line 1362
            iload 9 /* periodX */
            iload 10 /* periodY */
       128: .line 1363
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageReader.abbrevQTables:[Ljavax/imageio/plugins/jpeg/JPEGQTable;
       129: .line 1364
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageReader.abbrevDCHuffmanTables:[Ljavax/imageio/plugins/jpeg/JPEGHuffmanTable;
       130: .line 1365
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageReader.abbrevACHuffmanTables:[Ljavax/imageio/plugins/jpeg/JPEGHuffmanTable;
       131: .line 1366
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageReader.minProgressivePass:I
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageReader.maxProgressivePass:I
       132: .line 1367
            iload 14 /* callbackUpdates */
       133: .line 1354
            invokevirtual com.sun.imageio.plugins.jpeg.JPEGImageReader.readImage:(IJ[BI[I[IIIIIII[Ljavax/imageio/plugins/jpeg/JPEGQTable;[Ljavax/imageio/plugins/jpeg/JPEGHuffmanTable;[Ljavax/imageio/plugins/jpeg/JPEGHuffmanTable;IIZ)Z
            istore 15 /* aborted */
        start local 15 // boolean aborted
       134: .line 1369
            iload 15 /* aborted */
            ifeq 137
       135: .line 1370
            aload 0 /* this */
            invokevirtual com.sun.imageio.plugins.jpeg.JPEGImageReader.processReadAborted:()V
       136: .line 1371
            goto 138
       137: .line 1372
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            invokevirtual com.sun.imageio.plugins.jpeg.JPEGImageReader.processImageComplete:()V
       138: .line 1375
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageReader.target:Ljava/awt/image/WritableRaster;
            areturn
        end local 15 // boolean aborted
        end local 14 // boolean callbackUpdates
        end local 13 // int[] bandSizes
        end local 12 // int[] bandOffs
        end local 11 // int lineSize
        end local 10 // int periodY
        end local 9 // int periodX
        end local 8 // java.awt.Rectangle srcROI
        end local 7 // int numRasterBands
        end local 6 // int[] srcBands
        end local 5 // int numImageBands
        end local 4 // java.awt.image.WritableRaster imRas
        end local 3 // boolean wantRaster
        end local 2 // javax.imageio.ImageReadParam param
        end local 1 // int imageIndex
        end local 0 // com.sun.imageio.plugins.jpeg.JPEGImageReader this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0  139     0             this  Lcom/sun/imageio/plugins/jpeg/JPEGImageReader;
            0  139     1       imageIndex  I
            0  139     2            param  Ljavax/imageio/ImageReadParam;
            0  139     3       wantRaster  Z
            2  139     4            imRas  Ljava/awt/image/WritableRaster;
            3  139     5    numImageBands  I
            5   12     6       imageTypes  Ljava/util/Iterator<Ljavax/imageio/ImageTypeSpecifier;>;
           16  139     6         srcBands  [I
           19  139     7   numRasterBands  I
           21  139     8           srcROI  Ljava/awt/Rectangle;
           24  139     9          periodX  I
           25  139    10          periodY  I
           31   44    11           sBands  [I
           40   44    12           jparam  Ljavax/imageio/plugins/jpeg/JPEGImageReadParam;
           45  139    11         lineSize  I
           47  139    12         bandOffs  [I
           66  139    13        bandSizes  [I
           67   72    14                i  I
           77  139    14  callbackUpdates  Z
           82   86    15             iter  Ljava/util/Iterator<Lcom/sun/imageio/plugins/jpeg/MarkerSegment;>;
           97  101    15                i  I
          105  109    15                i  I
          134  139    15          aborted  Z
    Exceptions:
      throws java.io.IOException
    MethodParameters:
            Name  Flags
      imageIndex  
      param       
      wantRaster  

  private void acceptPixels(int, boolean);
    descriptor: (IZ)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=9, locals=8, args_size=3
        start local 0 // com.sun.imageio.plugins.jpeg.JPEGImageReader this
        start local 1 // int y
        start local 2 // boolean progressive
         0: .line 1386
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageReader.convert:Ljava/awt/image/ColorConvertOp;
            ifnull 2
         1: .line 1387
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageReader.convert:Ljava/awt/image/ColorConvertOp;
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageReader.raster:Ljava/awt/image/WritableRaster;
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageReader.raster:Ljava/awt/image/WritableRaster;
            invokevirtual java.awt.image.ColorConvertOp.filter:(Ljava/awt/image/Raster;Ljava/awt/image/WritableRaster;)Ljava/awt/image/WritableRaster;
            pop
         2: .line 1389
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageReader.target:Ljava/awt/image/WritableRaster;
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageReader.destROI:Ljava/awt/Rectangle;
            getfield java.awt.Rectangle.x:I
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageReader.destROI:Ljava/awt/Rectangle;
            getfield java.awt.Rectangle.y:I
            iload 1 /* y */
            iadd
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageReader.raster:Ljava/awt/image/WritableRaster;
            invokevirtual java.awt.image.WritableRaster.setRect:(IILjava/awt/image/Raster;)V
         3: .line 1391
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageReader.cbLock:Lcom/sun/imageio/plugins/jpeg/JPEGImageReader$CallBackLock;
            invokevirtual com.sun.imageio.plugins.jpeg.JPEGImageReader$CallBackLock.lock:()V
         4: .line 1393
            aload 0 /* this */
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageReader.image:Ljava/awt/image/BufferedImage;
         5: .line 1394
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageReader.destROI:Ljava/awt/Rectangle;
            getfield java.awt.Rectangle.x:I
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageReader.destROI:Ljava/awt/Rectangle;
            getfield java.awt.Rectangle.y:I
            iload 1 /* y */
            iadd
         6: .line 1395
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageReader.raster:Ljava/awt/image/WritableRaster;
            invokevirtual java.awt.image.WritableRaster.getWidth:()I
            iconst_1
         7: .line 1396
            iconst_1
            iconst_1
         8: .line 1397
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageReader.destinationBands:[I
         9: .line 1393
            invokevirtual com.sun.imageio.plugins.jpeg.JPEGImageReader.processImageUpdate:(Ljava/awt/image/BufferedImage;IIIIII[I)V
        10: .line 1398
            iload 1 /* y */
            ifle 58
            iload 1 /* y */
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageReader.progInterval:I
            irem
            ifne 58
        11: .line 1399
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageReader.target:Ljava/awt/image/WritableRaster;
            invokevirtual java.awt.image.WritableRaster.getHeight:()I
            iconst_1
            isub
            istore 3 /* height */
        start local 3 // int height
        12: .line 1400
            iload 1 /* y */
            i2f
            iload 3 /* height */
            i2f
            fdiv
            fstore 4 /* percentOfPass */
        start local 4 // float percentOfPass
        13: .line 1401
            iload 2 /* progressive */
            ifeq 53
        14: .line 1402
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageReader.knownPassCount:I
            iconst_m1
            if_icmpeq 19
        15: .line 1403
            aload 0 /* this */
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageReader.pass:I
            i2f
            fload 4 /* percentOfPass */
            fadd
            ldc 100.0
            fmul
        16: .line 1404
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageReader.knownPassCount:I
            i2f
            fdiv
        17: .line 1403
            invokevirtual com.sun.imageio.plugins.jpeg.JPEGImageReader.processImageProgress:(F)V
        18: .line 1405
            goto 58
      StackMap locals: int float
      StackMap stack:
        19: aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageReader.maxProgressivePass:I
            ldc 2147483647
            if_icmpeq 24
        20: .line 1407
            aload 0 /* this */
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageReader.pass:I
            i2f
            fload 4 /* percentOfPass */
            fadd
            ldc 100.0
            fmul
        21: .line 1408
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageReader.maxProgressivePass:I
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageReader.minProgressivePass:I
            isub
            iconst_1
            iadd
            i2f
            fdiv
        22: .line 1407
            invokevirtual com.sun.imageio.plugins.jpeg.JPEGImageReader.processImageProgress:(F)V
        23: .line 1409
            goto 58
        24: .line 1419
      StackMap locals:
      StackMap stack:
            iconst_2
            bipush 10
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageReader.pass:I
            isub
            invokestatic java.lang.Math.max:(II)I
        25: .line 1418
            istore 5 /* remainingPasses */
        start local 5 // int remainingPasses
        26: .line 1420
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageReader.pass:I
            iload 5 /* remainingPasses */
            iadd
            iconst_1
            isub
            istore 6 /* totalPasses */
        start local 6 // int totalPasses
        27: .line 1421
            aload 0 /* this */
            iload 3 /* height */
            bipush 20
            idiv
            iload 6 /* totalPasses */
            imul
        28: .line 1422
            iload 6 /* totalPasses */
        29: .line 1421
            invokestatic java.lang.Math.max:(II)I
            putfield com.sun.imageio.plugins.jpeg.JPEGImageReader.progInterval:I
        30: .line 1423
            iload 1 /* y */
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageReader.progInterval:I
            irem
            ifne 58
        31: .line 1424
            aload 0 /* this */
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageReader.previousPassPercentage:F
        32: .line 1425
            fconst_1
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageReader.previousPassPercentage:F
            fsub
        33: .line 1426
            fload 4 /* percentOfPass */
        34: .line 1425
            fmul
        35: .line 1426
            iload 5 /* remainingPasses */
            i2f
        36: .line 1425
            fdiv
            fadd
        37: .line 1424
            putfield com.sun.imageio.plugins.jpeg.JPEGImageReader.percentToDate:F
        38: .line 1427
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageReader.debug:Z
            ifeq 51
        39: .line 1428
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            new java.lang.StringBuilder
            dup
            ldc "pass= "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageReader.pass:I
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual java.io.PrintStream.print:(Ljava/lang/String;)V
        40: .line 1429
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            new java.lang.StringBuilder
            dup
            ldc ", y= "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            iload 1 /* y */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual java.io.PrintStream.print:(Ljava/lang/String;)V
        41: .line 1430
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            new java.lang.StringBuilder
            dup
            ldc ", progInt= "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageReader.progInterval:I
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual java.io.PrintStream.print:(Ljava/lang/String;)V
        42: .line 1431
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            new java.lang.StringBuilder
            dup
            ldc ", % of pass: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            fload 4 /* percentOfPass */
            invokevirtual java.lang.StringBuilder.append:(F)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual java.io.PrintStream.print:(Ljava/lang/String;)V
        43: .line 1432
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            new java.lang.StringBuilder
            dup
            ldc ", rem. passes: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
        44: .line 1433
            iload 5 /* remainingPasses */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        45: .line 1432
            invokevirtual java.io.PrintStream.print:(Ljava/lang/String;)V
        46: .line 1434
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            new java.lang.StringBuilder
            dup
            ldc ", prev%: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
        47: .line 1435
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageReader.previousPassPercentage:F
            invokevirtual java.lang.StringBuilder.append:(F)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        48: .line 1434
            invokevirtual java.io.PrintStream.print:(Ljava/lang/String;)V
        49: .line 1436
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            new java.lang.StringBuilder
            dup
            ldc ", %ToDate: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageReader.percentToDate:F
            invokevirtual java.lang.StringBuilder.append:(F)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual java.io.PrintStream.print:(Ljava/lang/String;)V
        50: .line 1437
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            ldc " "
            invokevirtual java.io.PrintStream.print:(Ljava/lang/String;)V
        51: .line 1439
      StackMap locals: int int
      StackMap stack:
            aload 0 /* this */
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageReader.percentToDate:F
            ldc 100.0
            fmul
            invokevirtual com.sun.imageio.plugins.jpeg.JPEGImageReader.processImageProgress:(F)V
        end local 6 // int totalPasses
        end local 5 // int remainingPasses
        52: .line 1442
            goto 58
        53: .line 1443
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            fload 4 /* percentOfPass */
            ldc 100.0
            fmul
            invokevirtual com.sun.imageio.plugins.jpeg.JPEGImageReader.processImageProgress:(F)V
        end local 4 // float percentOfPass
        end local 3 // int height
        54: .line 1446
            goto 58
      StackMap locals: com.sun.imageio.plugins.jpeg.JPEGImageReader int int
      StackMap stack: java.lang.Throwable
        55: astore 7
        56: .line 1447
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageReader.cbLock:Lcom/sun/imageio/plugins/jpeg/JPEGImageReader$CallBackLock;
            invokevirtual com.sun.imageio.plugins.jpeg.JPEGImageReader$CallBackLock.unlock:()V
        57: .line 1448
            aload 7
            athrow
        58: .line 1447
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageReader.cbLock:Lcom/sun/imageio/plugins/jpeg/JPEGImageReader$CallBackLock;
            invokevirtual com.sun.imageio.plugins.jpeg.JPEGImageReader$CallBackLock.unlock:()V
        59: .line 1449
            return
        end local 2 // boolean progressive
        end local 1 // int y
        end local 0 // com.sun.imageio.plugins.jpeg.JPEGImageReader this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0   60     0             this  Lcom/sun/imageio/plugins/jpeg/JPEGImageReader;
            0   60     1                y  I
            0   60     2      progressive  Z
           12   54     3           height  I
           13   54     4    percentOfPass  F
           26   52     5  remainingPasses  I
           27   52     6      totalPasses  I
      Exception table:
        from    to  target  type
           4    55      55  any
    MethodParameters:
             Name  Flags
      y            
      progressive  

  private void initProgressData();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // com.sun.imageio.plugins.jpeg.JPEGImageReader this
         0: .line 1452
            aload 0 /* this */
            iconst_m1
            putfield com.sun.imageio.plugins.jpeg.JPEGImageReader.knownPassCount:I
         1: .line 1453
            aload 0 /* this */
            iconst_0
            putfield com.sun.imageio.plugins.jpeg.JPEGImageReader.pass:I
         2: .line 1454
            aload 0 /* this */
            fconst_0
            putfield com.sun.imageio.plugins.jpeg.JPEGImageReader.percentToDate:F
         3: .line 1455
            aload 0 /* this */
            fconst_0
            putfield com.sun.imageio.plugins.jpeg.JPEGImageReader.previousPassPercentage:F
         4: .line 1456
            aload 0 /* this */
            iconst_0
            putfield com.sun.imageio.plugins.jpeg.JPEGImageReader.progInterval:I
         5: .line 1457
            return
        end local 0 // com.sun.imageio.plugins.jpeg.JPEGImageReader this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    6     0  this  Lcom/sun/imageio/plugins/jpeg/JPEGImageReader;

  private void passStarted(int);
    descriptor: (I)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=10, locals=3, args_size=2
        start local 0 // com.sun.imageio.plugins.jpeg.JPEGImageReader this
        start local 1 // int pass
         0: .line 1460
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageReader.cbLock:Lcom/sun/imageio/plugins/jpeg/JPEGImageReader$CallBackLock;
            invokevirtual com.sun.imageio.plugins.jpeg.JPEGImageReader$CallBackLock.lock:()V
         1: .line 1462
            aload 0 /* this */
            iload 1 /* pass */
            putfield com.sun.imageio.plugins.jpeg.JPEGImageReader.pass:I
         2: .line 1463
            aload 0 /* this */
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageReader.percentToDate:F
            putfield com.sun.imageio.plugins.jpeg.JPEGImageReader.previousPassPercentage:F
         3: .line 1464
            aload 0 /* this */
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageReader.image:Ljava/awt/image/BufferedImage;
         4: .line 1465
            iload 1 /* pass */
         5: .line 1466
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageReader.minProgressivePass:I
         6: .line 1467
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageReader.maxProgressivePass:I
         7: .line 1468
            iconst_0
            iconst_0
         8: .line 1469
            iconst_1
            iconst_1
         9: .line 1470
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageReader.destinationBands:[I
        10: .line 1464
            invokevirtual com.sun.imageio.plugins.jpeg.JPEGImageReader.processPassStarted:(Ljava/awt/image/BufferedImage;IIIIIII[I)V
        11: .line 1471
            goto 15
      StackMap locals:
      StackMap stack: java.lang.Throwable
        12: astore 2
        13: .line 1472
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageReader.cbLock:Lcom/sun/imageio/plugins/jpeg/JPEGImageReader$CallBackLock;
            invokevirtual com.sun.imageio.plugins.jpeg.JPEGImageReader$CallBackLock.unlock:()V
        14: .line 1473
            aload 2
            athrow
        15: .line 1472
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageReader.cbLock:Lcom/sun/imageio/plugins/jpeg/JPEGImageReader$CallBackLock;
            invokevirtual com.sun.imageio.plugins.jpeg.JPEGImageReader$CallBackLock.unlock:()V
        16: .line 1474
            return
        end local 1 // int pass
        end local 0 // com.sun.imageio.plugins.jpeg.JPEGImageReader this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   17     0  this  Lcom/sun/imageio/plugins/jpeg/JPEGImageReader;
            0   17     1  pass  I
      Exception table:
        from    to  target  type
           1    12      12  any
    MethodParameters:
      Name  Flags
      pass  

  private void passComplete();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=2, args_size=1
        start local 0 // com.sun.imageio.plugins.jpeg.JPEGImageReader this
         0: .line 1477
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageReader.cbLock:Lcom/sun/imageio/plugins/jpeg/JPEGImageReader$CallBackLock;
            invokevirtual com.sun.imageio.plugins.jpeg.JPEGImageReader$CallBackLock.lock:()V
         1: .line 1479
            aload 0 /* this */
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageReader.image:Ljava/awt/image/BufferedImage;
            invokevirtual com.sun.imageio.plugins.jpeg.JPEGImageReader.processPassComplete:(Ljava/awt/image/BufferedImage;)V
         2: .line 1480
            goto 6
      StackMap locals:
      StackMap stack: java.lang.Throwable
         3: astore 1
         4: .line 1481
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageReader.cbLock:Lcom/sun/imageio/plugins/jpeg/JPEGImageReader$CallBackLock;
            invokevirtual com.sun.imageio.plugins.jpeg.JPEGImageReader$CallBackLock.unlock:()V
         5: .line 1482
            aload 1
            athrow
         6: .line 1481
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageReader.cbLock:Lcom/sun/imageio/plugins/jpeg/JPEGImageReader$CallBackLock;
            invokevirtual com.sun.imageio.plugins.jpeg.JPEGImageReader$CallBackLock.unlock:()V
         7: .line 1483
            return
        end local 0 // com.sun.imageio.plugins.jpeg.JPEGImageReader this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    8     0  this  Lcom/sun/imageio/plugins/jpeg/JPEGImageReader;
      Exception table:
        from    to  target  type
           1     3       3  any

  void thumbnailStarted(int);
    descriptor: (I)V
    flags: (0x0000) 
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // com.sun.imageio.plugins.jpeg.JPEGImageReader this
        start local 1 // int thumbnailIndex
         0: .line 1486
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageReader.cbLock:Lcom/sun/imageio/plugins/jpeg/JPEGImageReader$CallBackLock;
            invokevirtual com.sun.imageio.plugins.jpeg.JPEGImageReader$CallBackLock.lock:()V
         1: .line 1488
            aload 0 /* this */
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageReader.currentImage:I
            iload 1 /* thumbnailIndex */
            invokevirtual com.sun.imageio.plugins.jpeg.JPEGImageReader.processThumbnailStarted:(II)V
         2: .line 1489
            goto 6
      StackMap locals:
      StackMap stack: java.lang.Throwable
         3: astore 2
         4: .line 1490
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageReader.cbLock:Lcom/sun/imageio/plugins/jpeg/JPEGImageReader$CallBackLock;
            invokevirtual com.sun.imageio.plugins.jpeg.JPEGImageReader$CallBackLock.unlock:()V
         5: .line 1491
            aload 2
            athrow
         6: .line 1490
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageReader.cbLock:Lcom/sun/imageio/plugins/jpeg/JPEGImageReader$CallBackLock;
            invokevirtual com.sun.imageio.plugins.jpeg.JPEGImageReader$CallBackLock.unlock:()V
         7: .line 1492
            return
        end local 1 // int thumbnailIndex
        end local 0 // com.sun.imageio.plugins.jpeg.JPEGImageReader this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    8     0            this  Lcom/sun/imageio/plugins/jpeg/JPEGImageReader;
            0    8     1  thumbnailIndex  I
      Exception table:
        from    to  target  type
           1     3       3  any
    MethodParameters:
                Name  Flags
      thumbnailIndex  

  void thumbnailProgress(float);
    descriptor: (F)V
    flags: (0x0000) 
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // com.sun.imageio.plugins.jpeg.JPEGImageReader this
        start local 1 // float percentageDone
         0: .line 1496
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageReader.cbLock:Lcom/sun/imageio/plugins/jpeg/JPEGImageReader$CallBackLock;
            invokevirtual com.sun.imageio.plugins.jpeg.JPEGImageReader$CallBackLock.lock:()V
         1: .line 1498
            aload 0 /* this */
            fload 1 /* percentageDone */
            invokevirtual com.sun.imageio.plugins.jpeg.JPEGImageReader.processThumbnailProgress:(F)V
         2: .line 1499
            goto 6
      StackMap locals:
      StackMap stack: java.lang.Throwable
         3: astore 2
         4: .line 1500
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageReader.cbLock:Lcom/sun/imageio/plugins/jpeg/JPEGImageReader$CallBackLock;
            invokevirtual com.sun.imageio.plugins.jpeg.JPEGImageReader$CallBackLock.unlock:()V
         5: .line 1501
            aload 2
            athrow
         6: .line 1500
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageReader.cbLock:Lcom/sun/imageio/plugins/jpeg/JPEGImageReader$CallBackLock;
            invokevirtual com.sun.imageio.plugins.jpeg.JPEGImageReader$CallBackLock.unlock:()V
         7: .line 1502
            return
        end local 1 // float percentageDone
        end local 0 // com.sun.imageio.plugins.jpeg.JPEGImageReader this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    8     0            this  Lcom/sun/imageio/plugins/jpeg/JPEGImageReader;
            0    8     1  percentageDone  F
      Exception table:
        from    to  target  type
           1     3       3  any
    MethodParameters:
                Name  Flags
      percentageDone  

  void thumbnailComplete();
    descriptor: ()V
    flags: (0x0000) 
    Code:
      stack=1, locals=2, args_size=1
        start local 0 // com.sun.imageio.plugins.jpeg.JPEGImageReader this
         0: .line 1506
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageReader.cbLock:Lcom/sun/imageio/plugins/jpeg/JPEGImageReader$CallBackLock;
            invokevirtual com.sun.imageio.plugins.jpeg.JPEGImageReader$CallBackLock.lock:()V
         1: .line 1508
            aload 0 /* this */
            invokevirtual com.sun.imageio.plugins.jpeg.JPEGImageReader.processThumbnailComplete:()V
         2: .line 1509
            goto 6
      StackMap locals:
      StackMap stack: java.lang.Throwable
         3: astore 1
         4: .line 1510
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageReader.cbLock:Lcom/sun/imageio/plugins/jpeg/JPEGImageReader$CallBackLock;
            invokevirtual com.sun.imageio.plugins.jpeg.JPEGImageReader$CallBackLock.unlock:()V
         5: .line 1511
            aload 1
            athrow
         6: .line 1510
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageReader.cbLock:Lcom/sun/imageio/plugins/jpeg/JPEGImageReader$CallBackLock;
            invokevirtual com.sun.imageio.plugins.jpeg.JPEGImageReader$CallBackLock.unlock:()V
         7: .line 1512
            return
        end local 0 // com.sun.imageio.plugins.jpeg.JPEGImageReader this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    8     0  this  Lcom/sun/imageio/plugins/jpeg/JPEGImageReader;
      Exception table:
        from    to  target  type
           1     3       3  any

  private native boolean readImage(int, long, byte[], int, int[], int[], int, int, int, int, int, int, javax.imageio.plugins.jpeg.JPEGQTable[], javax.imageio.plugins.jpeg.JPEGHuffmanTable[], javax.imageio.plugins.jpeg.JPEGHuffmanTable[], int, int, boolean);
    descriptor: (IJ[BI[I[IIIIIII[Ljavax/imageio/plugins/jpeg/JPEGQTable;[Ljavax/imageio/plugins/jpeg/JPEGHuffmanTable;[Ljavax/imageio/plugins/jpeg/JPEGHuffmanTable;IIZ)Z
    flags: (0x0102) ACC_PRIVATE, ACC_NATIVE
    MethodParameters:
                       Name  Flags
      imageIndex             
      structPointer          
      buffer                 
      numRasterBands         
      srcBands               
      bandSizes              
      sourceXOffset          
      sourceYOffset          
      sourceWidth            
      sourceHeight           
      periodX                
      periodY                
      abbrevQTables          
      abbrevDCHuffmanTables  
      abbrevACHuffmanTables  
      minProgressivePass     
      maxProgressivePass     
      wantUpdates            

  private native void clearNativeReadAbortFlag(long);
    descriptor: (J)V
    flags: (0x0102) ACC_PRIVATE, ACC_NATIVE
    MethodParameters:
               Name  Flags
      structPointer  

  public void abort();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=1
        start local 0 // com.sun.imageio.plugins.jpeg.JPEGImageReader this
         0: .line 1540
            aload 0 /* this */
            invokevirtual com.sun.imageio.plugins.jpeg.JPEGImageReader.setThreadLock:()V
         1: .line 1547
            aload 0 /* this */
            invokespecial javax.imageio.ImageReader.abort:()V
         2: .line 1548
            aload 0 /* this */
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageReader.structPointer:J
            invokevirtual com.sun.imageio.plugins.jpeg.JPEGImageReader.abortRead:(J)V
         3: .line 1549
            goto 7
      StackMap locals:
      StackMap stack: java.lang.Throwable
         4: astore 1
         5: .line 1550
            aload 0 /* this */
            invokevirtual com.sun.imageio.plugins.jpeg.JPEGImageReader.clearThreadLock:()V
         6: .line 1551
            aload 1
            athrow
         7: .line 1550
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual com.sun.imageio.plugins.jpeg.JPEGImageReader.clearThreadLock:()V
         8: .line 1552
            return
        end local 0 // com.sun.imageio.plugins.jpeg.JPEGImageReader this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    9     0  this  Lcom/sun/imageio/plugins/jpeg/JPEGImageReader;
      Exception table:
        from    to  target  type
           1     4       4  any

  private native void abortRead(long);
    descriptor: (J)V
    flags: (0x0102) ACC_PRIVATE, ACC_NATIVE
    MethodParameters:
               Name  Flags
      structPointer  

  private native void resetLibraryState(long);
    descriptor: (J)V
    flags: (0x0102) ACC_PRIVATE, ACC_NATIVE
    MethodParameters:
               Name  Flags
      structPointer  

  public boolean canReadRaster();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.sun.imageio.plugins.jpeg.JPEGImageReader this
         0: .line 1561
            iconst_1
            ireturn
        end local 0 // com.sun.imageio.plugins.jpeg.JPEGImageReader this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/sun/imageio/plugins/jpeg/JPEGImageReader;

  public java.awt.image.Raster readRaster(int, javax.imageio.ImageReadParam);
    descriptor: (ILjavax/imageio/ImageReadParam;)Ljava/awt/image/Raster;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=6, args_size=3
        start local 0 // com.sun.imageio.plugins.jpeg.JPEGImageReader this
        start local 1 // int imageIndex
        start local 2 // javax.imageio.ImageReadParam param
         0: .line 1566
            aload 0 /* this */
            invokevirtual com.sun.imageio.plugins.jpeg.JPEGImageReader.setThreadLock:()V
         1: .line 1567
            aconst_null
            astore 3 /* retval */
        start local 3 // java.awt.image.Raster retval
         2: .line 1569
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageReader.cbLock:Lcom/sun/imageio/plugins/jpeg/JPEGImageReader$CallBackLock;
            invokevirtual com.sun.imageio.plugins.jpeg.JPEGImageReader$CallBackLock.check:()V
         3: .line 1579
            aconst_null
            astore 4 /* saveDestOffset */
        start local 4 // java.awt.Point saveDestOffset
         4: .line 1580
            aload 2 /* param */
            ifnull 7
         5: .line 1581
            aload 2 /* param */
            invokevirtual javax.imageio.ImageReadParam.getDestinationOffset:()Ljava/awt/Point;
            astore 4 /* saveDestOffset */
         6: .line 1582
            aload 2 /* param */
            new java.awt.Point
            dup
            iconst_0
            iconst_0
            invokespecial java.awt.Point.<init>:(II)V
            invokevirtual javax.imageio.ImageReadParam.setDestinationOffset:(Ljava/awt/Point;)V
         7: .line 1584
      StackMap locals: java.awt.image.Raster java.awt.Point
      StackMap stack:
            aload 0 /* this */
            iload 1 /* imageIndex */
            aload 2 /* param */
            iconst_1
            invokevirtual com.sun.imageio.plugins.jpeg.JPEGImageReader.readInternal:(ILjavax/imageio/ImageReadParam;Z)Ljava/awt/image/Raster;
            astore 3 /* retval */
         8: .line 1586
            aload 4 /* saveDestOffset */
            ifnull 22
         9: .line 1587
            aload 0 /* this */
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageReader.target:Ljava/awt/image/WritableRaster;
            aload 4 /* saveDestOffset */
            getfield java.awt.Point.x:I
        10: .line 1588
            aload 4 /* saveDestOffset */
            getfield java.awt.Point.y:I
        11: .line 1587
            invokevirtual java.awt.image.WritableRaster.createWritableTranslatedChild:(II)Ljava/awt/image/WritableRaster;
            putfield com.sun.imageio.plugins.jpeg.JPEGImageReader.target:Ljava/awt/image/WritableRaster;
        end local 4 // java.awt.Point saveDestOffset
        12: .line 1590
            goto 22
      StackMap locals: com.sun.imageio.plugins.jpeg.JPEGImageReader int javax.imageio.ImageReadParam java.awt.image.Raster
      StackMap stack: java.lang.RuntimeException
        13: astore 4 /* e */
        start local 4 // java.lang.RuntimeException e
        14: .line 1591
            aload 0 /* this */
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageReader.structPointer:J
            invokevirtual com.sun.imageio.plugins.jpeg.JPEGImageReader.resetLibraryState:(J)V
        15: .line 1592
            aload 4 /* e */
            athrow
        end local 4 // java.lang.RuntimeException e
        16: .line 1593
      StackMap locals:
      StackMap stack: java.io.IOException
            astore 4 /* e */
        start local 4 // java.io.IOException e
        17: .line 1594
            aload 0 /* this */
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageReader.structPointer:J
            invokevirtual com.sun.imageio.plugins.jpeg.JPEGImageReader.resetLibraryState:(J)V
        18: .line 1595
            aload 4 /* e */
            athrow
        end local 4 // java.io.IOException e
        19: .line 1596
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 5
        20: .line 1597
            aload 0 /* this */
            invokevirtual com.sun.imageio.plugins.jpeg.JPEGImageReader.clearThreadLock:()V
        21: .line 1598
            aload 5
            athrow
        22: .line 1597
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual com.sun.imageio.plugins.jpeg.JPEGImageReader.clearThreadLock:()V
        23: .line 1599
            aload 3 /* retval */
            areturn
        end local 3 // java.awt.image.Raster retval
        end local 2 // javax.imageio.ImageReadParam param
        end local 1 // int imageIndex
        end local 0 // com.sun.imageio.plugins.jpeg.JPEGImageReader this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   24     0            this  Lcom/sun/imageio/plugins/jpeg/JPEGImageReader;
            0   24     1      imageIndex  I
            0   24     2           param  Ljavax/imageio/ImageReadParam;
            2   24     3          retval  Ljava/awt/image/Raster;
            4   12     4  saveDestOffset  Ljava/awt/Point;
           14   16     4               e  Ljava/lang/RuntimeException;
           17   19     4               e  Ljava/io/IOException;
      Exception table:
        from    to  target  type
           2    12      13  Class java.lang.RuntimeException
           2    12      16  Class java.io.IOException
           2    19      19  any
    Exceptions:
      throws java.io.IOException
    MethodParameters:
            Name  Flags
      imageIndex  
      param       

  public boolean readerSupportsThumbnails();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.sun.imageio.plugins.jpeg.JPEGImageReader this
         0: .line 1603
            iconst_1
            ireturn
        end local 0 // com.sun.imageio.plugins.jpeg.JPEGImageReader this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/sun/imageio/plugins/jpeg/JPEGImageReader;

  public int getNumThumbnails(int);
    descriptor: (I)I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=6, args_size=2
        start local 0 // com.sun.imageio.plugins.jpeg.JPEGImageReader this
        start local 1 // int imageIndex
         0: .line 1607
            aload 0 /* this */
            invokevirtual com.sun.imageio.plugins.jpeg.JPEGImageReader.setThreadLock:()V
         1: .line 1609
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageReader.cbLock:Lcom/sun/imageio/plugins/jpeg/JPEGImageReader$CallBackLock;
            invokevirtual com.sun.imageio.plugins.jpeg.JPEGImageReader$CallBackLock.check:()V
         2: .line 1611
            aload 0 /* this */
            iload 1 /* imageIndex */
            invokevirtual com.sun.imageio.plugins.jpeg.JPEGImageReader.getImageMetadata:(I)Ljavax/imageio/metadata/IIOMetadata;
            pop
         3: .line 1614
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageReader.imageMetadata:Lcom/sun/imageio/plugins/jpeg/JPEGMetadata;
         4: .line 1615
            ldc Lcom/sun/imageio/plugins/jpeg/JFIFMarkerSegment;
            iconst_1
         5: .line 1614
            invokevirtual com.sun.imageio.plugins.jpeg.JPEGMetadata.findMarkerSegment:(Ljava/lang/Class;Z)Lcom/sun/imageio/plugins/jpeg/MarkerSegment;
            checkcast com.sun.imageio.plugins.jpeg.JFIFMarkerSegment
         6: .line 1613
            astore 2 /* jfif */
        start local 2 // com.sun.imageio.plugins.jpeg.JFIFMarkerSegment jfif
         7: .line 1616
            iconst_0
            istore 3 /* retval */
        start local 3 // int retval
         8: .line 1617
            aload 2 /* jfif */
            ifnull 13
         9: .line 1618
            aload 2 /* jfif */
            getfield com.sun.imageio.plugins.jpeg.JFIFMarkerSegment.thumb:Lcom/sun/imageio/plugins/jpeg/JFIFMarkerSegment$JFIFThumbRGB;
            ifnonnull 10
            iconst_0
            goto 11
      StackMap locals: com.sun.imageio.plugins.jpeg.JFIFMarkerSegment int
      StackMap stack:
        10: iconst_1
      StackMap locals:
      StackMap stack: int
        11: istore 3 /* retval */
        12: .line 1619
            iload 3 /* retval */
            aload 2 /* jfif */
            getfield com.sun.imageio.plugins.jpeg.JFIFMarkerSegment.extSegments:Ljava/util/ArrayList;
            invokevirtual java.util.ArrayList.size:()I
            iadd
            istore 3 /* retval */
        13: .line 1621
      StackMap locals:
      StackMap stack:
            iload 3 /* retval */
            istore 5
        14: .line 1623
            aload 0 /* this */
            invokevirtual com.sun.imageio.plugins.jpeg.JPEGImageReader.clearThreadLock:()V
        15: .line 1621
            iload 5
            ireturn
        end local 3 // int retval
        end local 2 // com.sun.imageio.plugins.jpeg.JFIFMarkerSegment jfif
        16: .line 1622
      StackMap locals: com.sun.imageio.plugins.jpeg.JPEGImageReader int
      StackMap stack: java.lang.Throwable
            astore 4
        17: .line 1623
            aload 0 /* this */
            invokevirtual com.sun.imageio.plugins.jpeg.JPEGImageReader.clearThreadLock:()V
        18: .line 1624
            aload 4
            athrow
        end local 1 // int imageIndex
        end local 0 // com.sun.imageio.plugins.jpeg.JPEGImageReader this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   19     0        this  Lcom/sun/imageio/plugins/jpeg/JPEGImageReader;
            0   19     1  imageIndex  I
            7   16     2        jfif  Lcom/sun/imageio/plugins/jpeg/JFIFMarkerSegment;
            8   16     3      retval  I
      Exception table:
        from    to  target  type
           1    14      16  any
    Exceptions:
      throws java.io.IOException
    MethodParameters:
            Name  Flags
      imageIndex  

  public int getThumbnailWidth(int, int);
    descriptor: (II)I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=6, args_size=3
        start local 0 // com.sun.imageio.plugins.jpeg.JPEGImageReader this
        start local 1 // int imageIndex
        start local 2 // int thumbnailIndex
         0: .line 1629
            aload 0 /* this */
            invokevirtual com.sun.imageio.plugins.jpeg.JPEGImageReader.setThreadLock:()V
         1: .line 1631
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageReader.cbLock:Lcom/sun/imageio/plugins/jpeg/JPEGImageReader$CallBackLock;
            invokevirtual com.sun.imageio.plugins.jpeg.JPEGImageReader$CallBackLock.check:()V
         2: .line 1633
            iload 2 /* thumbnailIndex */
            iflt 4
         3: .line 1634
            iload 2 /* thumbnailIndex */
            aload 0 /* this */
            iload 1 /* imageIndex */
            invokevirtual com.sun.imageio.plugins.jpeg.JPEGImageReader.getNumThumbnails:(I)I
            if_icmplt 5
         4: .line 1635
      StackMap locals:
      StackMap stack:
            new java.lang.IndexOutOfBoundsException
            dup
            ldc "No such thumbnail"
            invokespecial java.lang.IndexOutOfBoundsException.<init>:(Ljava/lang/String;)V
            athrow
         5: .line 1639
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageReader.imageMetadata:Lcom/sun/imageio/plugins/jpeg/JPEGMetadata;
         6: .line 1640
            ldc Lcom/sun/imageio/plugins/jpeg/JFIFMarkerSegment;
            iconst_1
         7: .line 1639
            invokevirtual com.sun.imageio.plugins.jpeg.JPEGMetadata.findMarkerSegment:(Ljava/lang/Class;Z)Lcom/sun/imageio/plugins/jpeg/MarkerSegment;
            checkcast com.sun.imageio.plugins.jpeg.JFIFMarkerSegment
         8: .line 1638
            astore 3 /* jfif */
        start local 3 // com.sun.imageio.plugins.jpeg.JFIFMarkerSegment jfif
         9: .line 1641
            aload 3 /* jfif */
            iload 2 /* thumbnailIndex */
            invokevirtual com.sun.imageio.plugins.jpeg.JFIFMarkerSegment.getThumbnailWidth:(I)I
            istore 5
        10: .line 1643
            aload 0 /* this */
            invokevirtual com.sun.imageio.plugins.jpeg.JPEGImageReader.clearThreadLock:()V
        11: .line 1641
            iload 5
            ireturn
        end local 3 // com.sun.imageio.plugins.jpeg.JFIFMarkerSegment jfif
        12: .line 1642
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 4
        13: .line 1643
            aload 0 /* this */
            invokevirtual com.sun.imageio.plugins.jpeg.JPEGImageReader.clearThreadLock:()V
        14: .line 1644
            aload 4
            athrow
        end local 2 // int thumbnailIndex
        end local 1 // int imageIndex
        end local 0 // com.sun.imageio.plugins.jpeg.JPEGImageReader this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   15     0            this  Lcom/sun/imageio/plugins/jpeg/JPEGImageReader;
            0   15     1      imageIndex  I
            0   15     2  thumbnailIndex  I
            9   12     3            jfif  Lcom/sun/imageio/plugins/jpeg/JFIFMarkerSegment;
      Exception table:
        from    to  target  type
           1    10      12  any
    Exceptions:
      throws java.io.IOException
    MethodParameters:
                Name  Flags
      imageIndex      
      thumbnailIndex  

  public int getThumbnailHeight(int, int);
    descriptor: (II)I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=6, args_size=3
        start local 0 // com.sun.imageio.plugins.jpeg.JPEGImageReader this
        start local 1 // int imageIndex
        start local 2 // int thumbnailIndex
         0: .line 1649
            aload 0 /* this */
            invokevirtual com.sun.imageio.plugins.jpeg.JPEGImageReader.setThreadLock:()V
         1: .line 1651
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageReader.cbLock:Lcom/sun/imageio/plugins/jpeg/JPEGImageReader$CallBackLock;
            invokevirtual com.sun.imageio.plugins.jpeg.JPEGImageReader$CallBackLock.check:()V
         2: .line 1653
            iload 2 /* thumbnailIndex */
            iflt 4
         3: .line 1654
            iload 2 /* thumbnailIndex */
            aload 0 /* this */
            iload 1 /* imageIndex */
            invokevirtual com.sun.imageio.plugins.jpeg.JPEGImageReader.getNumThumbnails:(I)I
            if_icmplt 5
         4: .line 1655
      StackMap locals:
      StackMap stack:
            new java.lang.IndexOutOfBoundsException
            dup
            ldc "No such thumbnail"
            invokespecial java.lang.IndexOutOfBoundsException.<init>:(Ljava/lang/String;)V
            athrow
         5: .line 1659
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageReader.imageMetadata:Lcom/sun/imageio/plugins/jpeg/JPEGMetadata;
         6: .line 1660
            ldc Lcom/sun/imageio/plugins/jpeg/JFIFMarkerSegment;
            iconst_1
         7: .line 1659
            invokevirtual com.sun.imageio.plugins.jpeg.JPEGMetadata.findMarkerSegment:(Ljava/lang/Class;Z)Lcom/sun/imageio/plugins/jpeg/MarkerSegment;
            checkcast com.sun.imageio.plugins.jpeg.JFIFMarkerSegment
         8: .line 1658
            astore 3 /* jfif */
        start local 3 // com.sun.imageio.plugins.jpeg.JFIFMarkerSegment jfif
         9: .line 1661
            aload 3 /* jfif */
            iload 2 /* thumbnailIndex */
            invokevirtual com.sun.imageio.plugins.jpeg.JFIFMarkerSegment.getThumbnailHeight:(I)I
            istore 5
        10: .line 1663
            aload 0 /* this */
            invokevirtual com.sun.imageio.plugins.jpeg.JPEGImageReader.clearThreadLock:()V
        11: .line 1661
            iload 5
            ireturn
        end local 3 // com.sun.imageio.plugins.jpeg.JFIFMarkerSegment jfif
        12: .line 1662
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 4
        13: .line 1663
            aload 0 /* this */
            invokevirtual com.sun.imageio.plugins.jpeg.JPEGImageReader.clearThreadLock:()V
        14: .line 1664
            aload 4
            athrow
        end local 2 // int thumbnailIndex
        end local 1 // int imageIndex
        end local 0 // com.sun.imageio.plugins.jpeg.JPEGImageReader this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   15     0            this  Lcom/sun/imageio/plugins/jpeg/JPEGImageReader;
            0   15     1      imageIndex  I
            0   15     2  thumbnailIndex  I
            9   12     3            jfif  Lcom/sun/imageio/plugins/jpeg/JFIFMarkerSegment;
      Exception table:
        from    to  target  type
           1    10      12  any
    Exceptions:
      throws java.io.IOException
    MethodParameters:
                Name  Flags
      imageIndex      
      thumbnailIndex  

  public java.awt.image.BufferedImage readThumbnail(int, int);
    descriptor: (II)Ljava/awt/image/BufferedImage;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=6, args_size=3
        start local 0 // com.sun.imageio.plugins.jpeg.JPEGImageReader this
        start local 1 // int imageIndex
        start local 2 // int thumbnailIndex
         0: .line 1670
            aload 0 /* this */
            invokevirtual com.sun.imageio.plugins.jpeg.JPEGImageReader.setThreadLock:()V
         1: .line 1672
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageReader.cbLock:Lcom/sun/imageio/plugins/jpeg/JPEGImageReader$CallBackLock;
            invokevirtual com.sun.imageio.plugins.jpeg.JPEGImageReader$CallBackLock.check:()V
         2: .line 1674
            iload 2 /* thumbnailIndex */
            iflt 4
         3: .line 1675
            iload 2 /* thumbnailIndex */
            aload 0 /* this */
            iload 1 /* imageIndex */
            invokevirtual com.sun.imageio.plugins.jpeg.JPEGImageReader.getNumThumbnails:(I)I
            if_icmplt 5
         4: .line 1676
      StackMap locals:
      StackMap stack:
            new java.lang.IndexOutOfBoundsException
            dup
            ldc "No such thumbnail"
            invokespecial java.lang.IndexOutOfBoundsException.<init>:(Ljava/lang/String;)V
            athrow
         5: .line 1680
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageReader.imageMetadata:Lcom/sun/imageio/plugins/jpeg/JPEGMetadata;
         6: .line 1681
            ldc Lcom/sun/imageio/plugins/jpeg/JFIFMarkerSegment;
            iconst_1
         7: .line 1680
            invokevirtual com.sun.imageio.plugins.jpeg.JPEGMetadata.findMarkerSegment:(Ljava/lang/Class;Z)Lcom/sun/imageio/plugins/jpeg/MarkerSegment;
            checkcast com.sun.imageio.plugins.jpeg.JFIFMarkerSegment
         8: .line 1679
            astore 3 /* jfif */
        start local 3 // com.sun.imageio.plugins.jpeg.JFIFMarkerSegment jfif
         9: .line 1682
            aload 3 /* jfif */
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageReader.iis:Ljavax/imageio/stream/ImageInputStream;
            iload 2 /* thumbnailIndex */
            aload 0 /* this */
            invokevirtual com.sun.imageio.plugins.jpeg.JFIFMarkerSegment.getThumbnail:(Ljavax/imageio/stream/ImageInputStream;ILcom/sun/imageio/plugins/jpeg/JPEGImageReader;)Ljava/awt/image/BufferedImage;
            astore 5
        10: .line 1684
            aload 0 /* this */
            invokevirtual com.sun.imageio.plugins.jpeg.JPEGImageReader.clearThreadLock:()V
        11: .line 1682
            aload 5
            areturn
        end local 3 // com.sun.imageio.plugins.jpeg.JFIFMarkerSegment jfif
        12: .line 1683
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 4
        13: .line 1684
            aload 0 /* this */
            invokevirtual com.sun.imageio.plugins.jpeg.JPEGImageReader.clearThreadLock:()V
        14: .line 1685
            aload 4
            athrow
        end local 2 // int thumbnailIndex
        end local 1 // int imageIndex
        end local 0 // com.sun.imageio.plugins.jpeg.JPEGImageReader this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   15     0            this  Lcom/sun/imageio/plugins/jpeg/JPEGImageReader;
            0   15     1      imageIndex  I
            0   15     2  thumbnailIndex  I
            9   12     3            jfif  Lcom/sun/imageio/plugins/jpeg/JFIFMarkerSegment;
      Exception table:
        from    to  target  type
           1    10      12  any
    Exceptions:
      throws java.io.IOException
    MethodParameters:
                Name  Flags
      imageIndex      
      thumbnailIndex  

  private void resetInternalState();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // com.sun.imageio.plugins.jpeg.JPEGImageReader this
         0: .line 1690
            aload 0 /* this */
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageReader.structPointer:J
            invokevirtual com.sun.imageio.plugins.jpeg.JPEGImageReader.resetReader:(J)V
         1: .line 1693
            aload 0 /* this */
            iconst_0
            putfield com.sun.imageio.plugins.jpeg.JPEGImageReader.numImages:I
         2: .line 1694
            aload 0 /* this */
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            putfield com.sun.imageio.plugins.jpeg.JPEGImageReader.imagePositions:Ljava/util/List;
         3: .line 1695
            aload 0 /* this */
            iconst_m1
            putfield com.sun.imageio.plugins.jpeg.JPEGImageReader.currentImage:I
         4: .line 1696
            aload 0 /* this */
            aconst_null
            putfield com.sun.imageio.plugins.jpeg.JPEGImageReader.image:Ljava/awt/image/BufferedImage;
         5: .line 1697
            aload 0 /* this */
            aconst_null
            putfield com.sun.imageio.plugins.jpeg.JPEGImageReader.raster:Ljava/awt/image/WritableRaster;
         6: .line 1698
            aload 0 /* this */
            aconst_null
            putfield com.sun.imageio.plugins.jpeg.JPEGImageReader.target:Ljava/awt/image/WritableRaster;
         7: .line 1699
            aload 0 /* this */
            aconst_null
            putfield com.sun.imageio.plugins.jpeg.JPEGImageReader.buffer:Ljava/awt/image/DataBufferByte;
         8: .line 1700
            aload 0 /* this */
            aconst_null
            putfield com.sun.imageio.plugins.jpeg.JPEGImageReader.destROI:Ljava/awt/Rectangle;
         9: .line 1701
            aload 0 /* this */
            aconst_null
            putfield com.sun.imageio.plugins.jpeg.JPEGImageReader.destinationBands:[I
        10: .line 1702
            aload 0 /* this */
            aconst_null
            putfield com.sun.imageio.plugins.jpeg.JPEGImageReader.streamMetadata:Lcom/sun/imageio/plugins/jpeg/JPEGMetadata;
        11: .line 1703
            aload 0 /* this */
            aconst_null
            putfield com.sun.imageio.plugins.jpeg.JPEGImageReader.imageMetadata:Lcom/sun/imageio/plugins/jpeg/JPEGMetadata;
        12: .line 1704
            aload 0 /* this */
            iconst_m1
            putfield com.sun.imageio.plugins.jpeg.JPEGImageReader.imageMetadataIndex:I
        13: .line 1705
            aload 0 /* this */
            iconst_0
            putfield com.sun.imageio.plugins.jpeg.JPEGImageReader.haveSeeked:Z
        14: .line 1706
            aload 0 /* this */
            iconst_0
            putfield com.sun.imageio.plugins.jpeg.JPEGImageReader.tablesOnlyChecked:Z
        15: .line 1707
            aload 0 /* this */
            aconst_null
            putfield com.sun.imageio.plugins.jpeg.JPEGImageReader.iccCS:Ljava/awt/color/ColorSpace;
        16: .line 1708
            aload 0 /* this */
            invokevirtual com.sun.imageio.plugins.jpeg.JPEGImageReader.initProgressData:()V
        17: .line 1709
            return
        end local 0 // com.sun.imageio.plugins.jpeg.JPEGImageReader this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   18     0  this  Lcom/sun/imageio/plugins/jpeg/JPEGImageReader;

  public void reset();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=2, args_size=1
        start local 0 // com.sun.imageio.plugins.jpeg.JPEGImageReader this
         0: .line 1712
            aload 0 /* this */
            invokevirtual com.sun.imageio.plugins.jpeg.JPEGImageReader.setThreadLock:()V
         1: .line 1714
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageReader.cbLock:Lcom/sun/imageio/plugins/jpeg/JPEGImageReader$CallBackLock;
            invokevirtual com.sun.imageio.plugins.jpeg.JPEGImageReader$CallBackLock.check:()V
         2: .line 1715
            aload 0 /* this */
            invokespecial javax.imageio.ImageReader.reset:()V
         3: .line 1716
            goto 7
      StackMap locals:
      StackMap stack: java.lang.Throwable
         4: astore 1
         5: .line 1717
            aload 0 /* this */
            invokevirtual com.sun.imageio.plugins.jpeg.JPEGImageReader.clearThreadLock:()V
         6: .line 1718
            aload 1
            athrow
         7: .line 1717
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual com.sun.imageio.plugins.jpeg.JPEGImageReader.clearThreadLock:()V
         8: .line 1719
            return
        end local 0 // com.sun.imageio.plugins.jpeg.JPEGImageReader this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    9     0  this  Lcom/sun/imageio/plugins/jpeg/JPEGImageReader;
      Exception table:
        from    to  target  type
           1     4       4  any

  private native void resetReader(long);
    descriptor: (J)V
    flags: (0x0102) ACC_PRIVATE, ACC_NATIVE
    MethodParameters:
               Name  Flags
      structPointer  

  public void dispose();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=2, args_size=1
        start local 0 // com.sun.imageio.plugins.jpeg.JPEGImageReader this
         0: .line 1724
            aload 0 /* this */
            invokevirtual com.sun.imageio.plugins.jpeg.JPEGImageReader.setThreadLock:()V
         1: .line 1726
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageReader.cbLock:Lcom/sun/imageio/plugins/jpeg/JPEGImageReader$CallBackLock;
            invokevirtual com.sun.imageio.plugins.jpeg.JPEGImageReader$CallBackLock.check:()V
         2: .line 1728
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageReader.structPointer:J
            lconst_0
            lcmp
            ifeq 9
         3: .line 1729
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageReader.disposerRecord:Lsun/java2d/DisposerRecord;
            invokeinterface sun.java2d.DisposerRecord.dispose:()V
         4: .line 1730
            aload 0 /* this */
            lconst_0
            putfield com.sun.imageio.plugins.jpeg.JPEGImageReader.structPointer:J
         5: .line 1732
            goto 9
      StackMap locals:
      StackMap stack: java.lang.Throwable
         6: astore 1
         7: .line 1733
            aload 0 /* this */
            invokevirtual com.sun.imageio.plugins.jpeg.JPEGImageReader.clearThreadLock:()V
         8: .line 1734
            aload 1
            athrow
         9: .line 1733
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual com.sun.imageio.plugins.jpeg.JPEGImageReader.clearThreadLock:()V
        10: .line 1735
            return
        end local 0 // com.sun.imageio.plugins.jpeg.JPEGImageReader this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   11     0  this  Lcom/sun/imageio/plugins/jpeg/JPEGImageReader;
      Exception table:
        from    to  target  type
           1     6       6  any

  private static native void disposeReader(long);
    descriptor: (J)V
    flags: (0x010a) ACC_PRIVATE, ACC_STATIC, ACC_NATIVE
    MethodParameters:
               Name  Flags
      structPointer  

  private synchronized void setThreadLock();
    descriptor: ()V
    flags: (0x0022) ACC_PRIVATE, ACC_SYNCHRONIZED
    Code:
      stack=5, locals=2, args_size=1
        start local 0 // com.sun.imageio.plugins.jpeg.JPEGImageReader this
         0: .line 1758
            invokestatic java.lang.Thread.currentThread:()Ljava/lang/Thread;
            astore 1 /* currThread */
        start local 1 // java.lang.Thread currThread
         1: .line 1759
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageReader.theThread:Ljava/lang/Thread;
            ifnull 10
         2: .line 1760
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageReader.theThread:Ljava/lang/Thread;
            aload 1 /* currThread */
            if_acmpeq 8
         3: .line 1763
            new java.lang.IllegalStateException
            dup
            new java.lang.StringBuilder
            dup
            ldc "Attempt to use instance of "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
         4: .line 1764
            aload 0 /* this */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            ldc " locked on thread "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
         5: .line 1765
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageReader.theThread:Ljava/lang/Thread;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            ldc " from thread "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
         6: .line 1766
            aload 1 /* currThread */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
         7: .line 1763
            invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
            athrow
         8: .line 1768
      StackMap locals: java.lang.Thread
      StackMap stack:
            aload 0 /* this */
            dup
            getfield com.sun.imageio.plugins.jpeg.JPEGImageReader.theLockCount:I
            iconst_1
            iadd
            putfield com.sun.imageio.plugins.jpeg.JPEGImageReader.theLockCount:I
         9: .line 1770
            goto 12
        10: .line 1771
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* currThread */
            putfield com.sun.imageio.plugins.jpeg.JPEGImageReader.theThread:Ljava/lang/Thread;
        11: .line 1772
            aload 0 /* this */
            iconst_1
            putfield com.sun.imageio.plugins.jpeg.JPEGImageReader.theLockCount:I
        12: .line 1774
      StackMap locals:
      StackMap stack:
            return
        end local 1 // java.lang.Thread currThread
        end local 0 // com.sun.imageio.plugins.jpeg.JPEGImageReader this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   13     0        this  Lcom/sun/imageio/plugins/jpeg/JPEGImageReader;
            1   13     1  currThread  Ljava/lang/Thread;

  private synchronized void clearThreadLock();
    descriptor: ()V
    flags: (0x0022) ACC_PRIVATE, ACC_SYNCHRONIZED
    Code:
      stack=5, locals=2, args_size=1
        start local 0 // com.sun.imageio.plugins.jpeg.JPEGImageReader this
         0: .line 1777
            invokestatic java.lang.Thread.currentThread:()Ljava/lang/Thread;
            astore 1 /* currThread */
        start local 1 // java.lang.Thread currThread
         1: .line 1778
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageReader.theThread:Ljava/lang/Thread;
            ifnull 2
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageReader.theThread:Ljava/lang/Thread;
            aload 1 /* currThread */
            if_acmpeq 6
         2: .line 1779
      StackMap locals: java.lang.Thread
      StackMap stack:
            new java.lang.IllegalStateException
            dup
            new java.lang.StringBuilder
            dup
            ldc "Attempt to clear thread lock  form wrong thread. Locked thread: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
         3: .line 1781
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageReader.theThread:Ljava/lang/Thread;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
         4: .line 1782
            ldc "; current thread: "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 1 /* currThread */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
         5: .line 1779
            invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
            athrow
         6: .line 1784
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            dup
            getfield com.sun.imageio.plugins.jpeg.JPEGImageReader.theLockCount:I
            iconst_1
            isub
            putfield com.sun.imageio.plugins.jpeg.JPEGImageReader.theLockCount:I
         7: .line 1785
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageReader.theLockCount:I
            ifne 9
         8: .line 1786
            aload 0 /* this */
            aconst_null
            putfield com.sun.imageio.plugins.jpeg.JPEGImageReader.theThread:Ljava/lang/Thread;
         9: .line 1788
      StackMap locals:
      StackMap stack:
            return
        end local 1 // java.lang.Thread currThread
        end local 0 // com.sun.imageio.plugins.jpeg.JPEGImageReader this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   10     0        this  Lcom/sun/imageio/plugins/jpeg/JPEGImageReader;
            1   10     1  currThread  Ljava/lang/Thread;
}
SourceFile: "JPEGImageReader.java"
NestMembers:
  com.sun.imageio.plugins.jpeg.JPEGImageReader$1  com.sun.imageio.plugins.jpeg.JPEGImageReader$2  com.sun.imageio.plugins.jpeg.JPEGImageReader$CallBackLock  com.sun.imageio.plugins.jpeg.JPEGImageReader$CallBackLock$State  com.sun.imageio.plugins.jpeg.JPEGImageReader$JPEGReaderDisposerRecord
InnerClasses:
  public JCS = com.sun.imageio.plugins.jpeg.JPEG$JCS of com.sun.imageio.plugins.jpeg.JPEG
  com.sun.imageio.plugins.jpeg.JPEGImageReader$1
  com.sun.imageio.plugins.jpeg.JPEGImageReader$2
  private CallBackLock = com.sun.imageio.plugins.jpeg.JPEGImageReader$CallBackLock of com.sun.imageio.plugins.jpeg.JPEGImageReader
  private JPEGReaderDisposerRecord = com.sun.imageio.plugins.jpeg.JPEGImageReader$JPEGReaderDisposerRecord of com.sun.imageio.plugins.jpeg.JPEGImageReader