public class sun.awt.image.GifImageDecoder extends sun.awt.image.ImageDecoder
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: sun.awt.image.GifImageDecoder
  super_class: sun.awt.image.ImageDecoder
{
  private static final boolean verbose;
    descriptor: Z
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 0

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

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

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

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

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

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

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

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

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

  int num_global_colors;
    descriptor: I
    flags: (0x0000) 

  byte[] global_colormap;
    descriptor: [B
    flags: (0x0000) 

  int trans_pixel;
    descriptor: I
    flags: (0x0000) 

  java.awt.image.IndexColorModel global_model;
    descriptor: Ljava/awt/image/IndexColorModel;
    flags: (0x0000) 

  java.util.Hashtable<java.lang.String, java.lang.Object> props;
    descriptor: Ljava/util/Hashtable;
    flags: (0x0000) 
    Signature: Ljava/util/Hashtable<Ljava/lang/String;Ljava/lang/Object;>;

  byte[] saved_image;
    descriptor: [B
    flags: (0x0000) 

  java.awt.image.IndexColorModel saved_model;
    descriptor: Ljava/awt/image/IndexColorModel;
    flags: (0x0000) 

  int global_width;
    descriptor: I
    flags: (0x0000) 

  int global_height;
    descriptor: I
    flags: (0x0000) 

  int global_bgpixel;
    descriptor: I
    flags: (0x0000) 

  sun.awt.image.GifFrame curframe;
    descriptor: Lsun/awt/image/GifFrame;
    flags: (0x0000) 

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

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

  private short[] prefix;
    descriptor: [S
    flags: (0x0002) ACC_PRIVATE

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

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

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=0, locals=0, args_size=0
         0: .line 350
            invokestatic sun.awt.image.NativeLibLoader.loadLibraries:()V
         1: .line 351
            invokestatic sun.awt.image.GifImageDecoder.initIDs:()V
         2: .line 352
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public void <init>(sun.awt.image.InputStreamImageSource, java.io.InputStream);
    descriptor: (Lsun/awt/image/InputStreamImageSource;Ljava/io/InputStream;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // sun.awt.image.GifImageDecoder this
        start local 1 // sun.awt.image.InputStreamImageSource src
        start local 2 // java.io.InputStream is
         0: .line 75
            aload 0 /* this */
            aload 1 /* src */
            aload 2 /* is */
            invokespecial sun.awt.image.ImageDecoder.<init>:(Lsun/awt/image/InputStreamImageSource;Ljava/io/InputStream;)V
         1: .line 60
            aload 0 /* this */
            iconst_m1
            putfield sun.awt.image.GifImageDecoder.trans_pixel:I
         2: .line 63
            aload 0 /* this */
            new java.util.Hashtable
            dup
            invokespecial java.util.Hashtable.<init>:()V
            putfield sun.awt.image.GifImageDecoder.props:Ljava/util/Hashtable;
         3: .line 342
            aload 0 /* this */
            sipush 4096
            newarray 9
            putfield sun.awt.image.GifImageDecoder.prefix:[S
         4: .line 343
            aload 0 /* this */
            sipush 4096
            newarray 8
            putfield sun.awt.image.GifImageDecoder.suffix:[B
         5: .line 344
            aload 0 /* this */
            sipush 4097
            newarray 8
            putfield sun.awt.image.GifImageDecoder.outCode:[B
         6: .line 76
            return
        end local 2 // java.io.InputStream is
        end local 1 // sun.awt.image.InputStreamImageSource src
        end local 0 // sun.awt.image.GifImageDecoder this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    7     0  this  Lsun/awt/image/GifImageDecoder;
            0    7     1   src  Lsun/awt/image/InputStreamImageSource;
            0    7     2    is  Ljava/io/InputStream;
    MethodParameters:
      Name  Flags
      src   
      is    

  private static void error(java.lang.String);
    descriptor: (Ljava/lang/String;)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // java.lang.String s1
         0: .line 82
            new sun.awt.image.ImageFormatException
            dup
            aload 0 /* s1 */
            invokespecial sun.awt.image.ImageFormatException.<init>:(Ljava/lang/String;)V
            athrow
        end local 0 // java.lang.String s1
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0    s1  Ljava/lang/String;
    Exceptions:
      throws sun.awt.image.ImageFormatException
    MethodParameters:
      Name  Flags
      s1    

  private int readBytes(byte[], int, int);
    descriptor: ([BII)I
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=5, args_size=4
        start local 0 // sun.awt.image.GifImageDecoder this
        start local 1 // byte[] buf
        start local 2 // int off
        start local 3 // int len
         0: .line 90
            goto 9
         1: .line 92
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.awt.image.GifImageDecoder.input:Ljava/io/InputStream;
            aload 1 /* buf */
            iload 2 /* off */
            iload 3 /* len */
            invokevirtual java.io.InputStream.read:([BII)I
            istore 4 /* n */
        start local 4 // int n
         2: .line 93
            iload 4 /* n */
            ifge 4
         3: .line 94
            goto 10
         4: .line 96
      StackMap locals: int
      StackMap stack:
            iload 2 /* off */
            iload 4 /* n */
            iadd
            istore 2 /* off */
         5: .line 97
            iload 3 /* len */
            iload 4 /* n */
            isub
            istore 3 /* len */
        end local 4 // int n
         6: .line 98
            goto 9
      StackMap locals: sun.awt.image.GifImageDecoder byte[] int int
      StackMap stack: java.io.IOException
         7: pop
         8: .line 99
            goto 10
         9: .line 90
      StackMap locals:
      StackMap stack:
            iload 3 /* len */
            ifgt 1
        10: .line 102
      StackMap locals:
      StackMap stack:
            iload 3 /* len */
            ireturn
        end local 3 // int len
        end local 2 // int off
        end local 1 // byte[] buf
        end local 0 // sun.awt.image.GifImageDecoder this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   11     0  this  Lsun/awt/image/GifImageDecoder;
            0   11     1   buf  [B
            0   11     2   off  I
            0   11     3   len  I
            2    6     4     n  I
      Exception table:
        from    to  target  type
           1     3       7  Class java.io.IOException
           4     6       7  Class java.io.IOException
    MethodParameters:
      Name  Flags
      buf   
      off   
      len   

  private static final int ExtractByte(byte[], int);
    descriptor: ([BI)I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // byte[] buf
        start local 1 // int off
         0: .line 106
            aload 0 /* buf */
            iload 1 /* off */
            baload
            sipush 255
            iand
            ireturn
        end local 1 // int off
        end local 0 // byte[] buf
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0   buf  [B
            0    1     1   off  I
    MethodParameters:
      Name  Flags
      buf   
      off   

  private static final int ExtractWord(byte[], int);
    descriptor: ([BI)I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // byte[] buf
        start local 1 // int off
         0: .line 110
            aload 0 /* buf */
            iload 1 /* off */
            baload
            sipush 255
            iand
            aload 0 /* buf */
            iload 1 /* off */
            iconst_1
            iadd
            baload
            sipush 255
            iand
            bipush 8
            ishl
            ior
            ireturn
        end local 1 // int off
        end local 0 // byte[] buf
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0   buf  [B
            0    1     1   off  I
    MethodParameters:
      Name  Flags
      buf   
      off   

  public void produceImage();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=14, args_size=1
        start local 0 // sun.awt.image.GifImageDecoder this
         0: .line 119
            aload 0 /* this */
            invokevirtual sun.awt.image.GifImageDecoder.readHeader:()V
         1: .line 121
            iconst_0
            istore 1 /* totalframes */
        start local 1 // int totalframes
         2: .line 122
            iconst_0
            istore 2 /* frameno */
        start local 2 // int frameno
         3: .line 123
            iconst_m1
            istore 3 /* nloops */
        start local 3 // int nloops
         4: .line 124
            iconst_0
            istore 4 /* disposal_method */
        start local 4 // int disposal_method
         5: .line 125
            iconst_m1
            istore 5 /* delay */
        start local 5 // int delay
         6: .line 126
            iconst_0
            istore 6 /* loopsRead */
        start local 6 // boolean loopsRead
         7: .line 127
            iconst_0
            istore 7 /* isAnimation */
        start local 7 // boolean isAnimation
         8: .line 129
            goto 96
         9: .line 132
      StackMap locals: sun.awt.image.GifImageDecoder int int int int int int int
      StackMap stack:
            aload 0 /* this */
            getfield sun.awt.image.GifImageDecoder.input:Ljava/io/InputStream;
            invokevirtual java.io.InputStream.read:()I
            dup
            istore 8 /* code */
        start local 8 // int code
        10: lookupswitch { // 4
                   -1: 78
                   33: 11
                   44: 62
                   59: 81
              default: 78
          }
        11: .line 134
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            getfield sun.awt.image.GifImageDecoder.input:Ljava/io/InputStream;
            invokevirtual java.io.InputStream.read:()I
            dup
            istore 8 /* code */
            lookupswitch { // 4
                   -1: 60
                  249: 12
                  254: 29
                  255: 29
              default: 29
          }
        12: .line 136
      StackMap locals:
      StackMap stack:
            bipush 6
            newarray 8
            astore 9 /* buf */
        start local 9 // byte[] buf
        13: .line 137
            aload 0 /* this */
            aload 9 /* buf */
            iconst_0
            bipush 6
            invokevirtual sun.awt.image.GifImageDecoder.readBytes:([BII)I
            ifeq 16
        14: .line 269
            aload 0 /* this */
            invokevirtual sun.awt.image.GifImageDecoder.close:()V
        15: .line 138
            return
        16: .line 140
      StackMap locals: byte[]
      StackMap stack:
            aload 9 /* buf */
            iconst_0
            baload
            iconst_4
            if_icmpne 17
            aload 9 /* buf */
            iconst_5
            baload
            ifeq 19
        17: .line 269
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual sun.awt.image.GifImageDecoder.close:()V
        18: .line 141
            return
        19: .line 144
      StackMap locals:
      StackMap stack:
            aload 9 /* buf */
            iconst_2
            invokestatic sun.awt.image.GifImageDecoder.ExtractWord:([BI)I
            bipush 10
            imul
            istore 5 /* delay */
        20: .line 145
            iload 5 /* delay */
            ifle 23
            iload 7 /* isAnimation */
            ifne 23
        21: .line 146
            iconst_1
            istore 7 /* isAnimation */
        22: .line 147
            invokestatic sun.awt.image.ImageFetcher.startingAnimation:()V
        23: .line 149
      StackMap locals:
      StackMap stack:
            aload 9 /* buf */
            iconst_1
            baload
            iconst_2
            ishr
            bipush 7
            iand
            istore 4 /* disposal_method */
        24: .line 150
            aload 9 /* buf */
            iconst_1
            baload
            iconst_1
            iand
            ifeq 27
        25: .line 151
            aload 0 /* this */
            aload 9 /* buf */
            iconst_4
            invokestatic sun.awt.image.GifImageDecoder.ExtractByte:([BI)I
            putfield sun.awt.image.GifImageDecoder.trans_pixel:I
        26: .line 152
            goto 96
        27: .line 153
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iconst_m1
            putfield sun.awt.image.GifImageDecoder.trans_pixel:I
        28: .line 155
            goto 96
        end local 9 // byte[] buf
        29: .line 161
      StackMap locals:
      StackMap stack:
            iconst_0
            istore 9 /* loop_tag */
        start local 9 // boolean loop_tag
        30: .line 162
            ldc ""
            astore 10 /* comment */
        start local 10 // java.lang.String comment
        31: .line 164
      StackMap locals: int java.lang.String
      StackMap stack:
            aload 0 /* this */
            getfield sun.awt.image.GifImageDecoder.input:Ljava/io/InputStream;
            invokevirtual java.io.InputStream.read:()I
            istore 11 /* n */
        start local 11 // int n
        32: .line 165
            iload 11 /* n */
            ifgt 34
        33: .line 166
            goto 54
        34: .line 168
      StackMap locals: int
      StackMap stack:
            iload 11 /* n */
            newarray 8
            astore 12 /* buf */
        start local 12 // byte[] buf
        35: .line 169
            aload 0 /* this */
            aload 12 /* buf */
            iconst_0
            iload 11 /* n */
            invokevirtual sun.awt.image.GifImageDecoder.readBytes:([BII)I
            ifeq 38
        36: .line 269
            aload 0 /* this */
            invokevirtual sun.awt.image.GifImageDecoder.close:()V
        37: .line 170
            return
        38: .line 172
      StackMap locals: byte[]
      StackMap stack:
            iload 8 /* code */
            sipush 254
            if_icmpne 41
        39: .line 173
            new java.lang.StringBuilder
            dup
            aload 10 /* comment */
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            new java.lang.String
            dup
            aload 12 /* buf */
            iconst_0
            invokespecial java.lang.String.<init>:([BI)V
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 10 /* comment */
        40: .line 174
            goto 31
      StackMap locals:
      StackMap stack:
        41: iload 8 /* code */
            sipush 255
            if_icmpne 31
        42: .line 175
            iload 9 /* loop_tag */
            ifeq 51
        43: .line 176
            iload 11 /* n */
            iconst_3
            if_icmpne 50
            aload 12 /* buf */
            iconst_0
            baload
            iconst_1
            if_icmpne 50
        44: .line 177
            iload 6 /* loopsRead */
            ifeq 47
        45: .line 178
            aload 12 /* buf */
            iconst_1
            invokestatic sun.awt.image.GifImageDecoder.ExtractWord:([BI)I
            pop
        46: .line 179
            goto 51
        47: .line 181
      StackMap locals:
      StackMap stack:
            aload 12 /* buf */
            iconst_1
            invokestatic sun.awt.image.GifImageDecoder.ExtractWord:([BI)I
            istore 3 /* nloops */
        48: .line 182
            iconst_1
            istore 6 /* loopsRead */
        49: .line 184
            goto 51
        50: .line 185
      StackMap locals:
      StackMap stack:
            iconst_0
            istore 9 /* loop_tag */
        51: .line 188
      StackMap locals:
      StackMap stack:
            ldc "NETSCAPE2.0"
            new java.lang.String
            dup
            aload 12 /* buf */
            iconst_0
            invokespecial java.lang.String.<init>:([BI)V
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 31
        52: .line 189
            iconst_1
            istore 9 /* loop_tag */
        end local 12 // byte[] buf
        end local 11 // int n
        53: .line 163
            goto 31
        54: .line 193
      StackMap locals:
      StackMap stack:
            iload 8 /* code */
            sipush 254
            if_icmpne 56
        55: .line 194
            aload 0 /* this */
            getfield sun.awt.image.GifImageDecoder.props:Ljava/util/Hashtable;
            ldc "comment"
            aload 10 /* comment */
            invokevirtual java.util.Hashtable.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        56: .line 196
      StackMap locals:
      StackMap stack:
            iload 9 /* loop_tag */
            ifeq 96
            iload 7 /* isAnimation */
            ifne 96
        57: .line 197
            iconst_1
            istore 7 /* isAnimation */
        58: .line 198
            invokestatic sun.awt.image.ImageFetcher.startingAnimation:()V
        59: .line 200
            goto 96
        end local 10 // java.lang.String comment
        end local 9 // boolean loop_tag
        60: .line 269
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual sun.awt.image.GifImageDecoder.close:()V
        61: .line 203
            return
        62: .line 208
      StackMap locals:
      StackMap stack:
            iload 7 /* isAnimation */
            ifne 64
        63: .line 209
            aload 0 /* this */
            getfield sun.awt.image.GifImageDecoder.input:Ljava/io/InputStream;
            iconst_0
            invokevirtual java.io.InputStream.mark:(I)V
        64: .line 212
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iload 1 /* totalframes */
            ifne 65
            iconst_1
            goto 66
      StackMap locals:
      StackMap stack: sun.awt.image.GifImageDecoder
        65: iconst_0
        66: .line 213
      StackMap locals: sun.awt.image.GifImageDecoder int int int int int int int int
      StackMap stack: sun.awt.image.GifImageDecoder int
            iload 4 /* disposal_method */
        67: .line 214
            iload 5 /* delay */
        68: .line 212
            invokevirtual sun.awt.image.GifImageDecoder.readImage:(ZII)Z
        69: .line 214
            ifne 75
        70: .line 269
            aload 0 /* this */
            invokevirtual sun.awt.image.GifImageDecoder.close:()V
        71: .line 215
            return
        72: .line 217
      StackMap locals:
      StackMap stack: java.lang.Exception
            astore 9 /* e */
        start local 9 // java.lang.Exception e
        73: .line 269
            aload 0 /* this */
            invokevirtual sun.awt.image.GifImageDecoder.close:()V
        74: .line 221
            return
        end local 9 // java.lang.Exception e
        75: .line 223
      StackMap locals:
      StackMap stack:
            iinc 2 /* frameno */ 1
        76: .line 224
            iinc 1 /* totalframes */ 1
        77: .line 225
            goto 96
        78: .line 238
      StackMap locals:
      StackMap stack:
            iload 2 /* frameno */
            ifne 81
        79: .line 269
            aload 0 /* this */
            invokevirtual sun.awt.image.GifImageDecoder.close:()V
        80: .line 239
            return
        81: .line 244
      StackMap locals:
      StackMap stack:
            iload 3 /* nloops */
            ifeq 82
            iload 3 /* nloops */
            iinc 3 /* nloops */ -1
            iflt 93
        82: .line 246
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.awt.image.GifImageDecoder.curframe:Lsun/awt/image/GifFrame;
            ifnull 85
        83: .line 247
            aload 0 /* this */
            getfield sun.awt.image.GifImageDecoder.curframe:Lsun/awt/image/GifFrame;
            invokevirtual sun.awt.image.GifFrame.dispose:()Z
            pop
        84: .line 248
            aload 0 /* this */
            aconst_null
            putfield sun.awt.image.GifImageDecoder.curframe:Lsun/awt/image/GifFrame;
        85: .line 250
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.awt.image.GifImageDecoder.input:Ljava/io/InputStream;
            invokevirtual java.io.InputStream.reset:()V
        86: .line 251
            aload 0 /* this */
            aconst_null
            putfield sun.awt.image.GifImageDecoder.saved_image:[B
        87: .line 252
            aload 0 /* this */
            aconst_null
            putfield sun.awt.image.GifImageDecoder.saved_model:Ljava/awt/image/IndexColorModel;
        88: .line 253
            iconst_0
            istore 2 /* frameno */
        89: .line 254
            goto 96
        90: .line 255
      StackMap locals:
      StackMap stack: java.io.IOException
            pop
        91: .line 269
            aload 0 /* this */
            invokevirtual sun.awt.image.GifImageDecoder.close:()V
        92: .line 256
            return
        93: .line 264
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iconst_3
            iconst_1
            invokevirtual sun.awt.image.GifImageDecoder.imageComplete:(IZ)I
            pop
        94: .line 269
            aload 0 /* this */
            invokevirtual sun.awt.image.GifImageDecoder.close:()V
        95: .line 265
            return
        end local 8 // int code
        96: .line 129
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.awt.image.GifImageDecoder.aborted:Z
            ifeq 9
        end local 7 // boolean isAnimation
        end local 6 // boolean loopsRead
        end local 5 // int delay
        end local 4 // int disposal_method
        end local 3 // int nloops
        end local 2 // int frameno
        end local 1 // int totalframes
        97: .line 268
            goto 101
      StackMap locals: sun.awt.image.GifImageDecoder
      StackMap stack: java.lang.Throwable
        98: astore 13
        99: .line 269
            aload 0 /* this */
            invokevirtual sun.awt.image.GifImageDecoder.close:()V
       100: .line 270
            aload 13
            athrow
       101: .line 269
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual sun.awt.image.GifImageDecoder.close:()V
       102: .line 271
            return
        end local 0 // sun.awt.image.GifImageDecoder this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0  103     0             this  Lsun/awt/image/GifImageDecoder;
            2   97     1      totalframes  I
            3   97     2          frameno  I
            4   97     3           nloops  I
            5   97     4  disposal_method  I
            6   97     5            delay  I
            7   97     6        loopsRead  Z
            8   97     7      isAnimation  Z
           10   96     8             code  I
           13   29     9              buf  [B
           30   60     9         loop_tag  Z
           31   60    10          comment  Ljava/lang/String;
           32   53    11                n  I
           35   53    12              buf  [B
           73   75     9                e  Ljava/lang/Exception;
      Exception table:
        from    to  target  type
          64    70      72  Class java.lang.Exception
          82    89      90  Class java.io.IOException
           0    14      98  any
          16    17      98  any
          19    36      98  any
          38    60      98  any
          62    70      98  any
          72    73      98  any
          75    79      98  any
          81    91      98  any
          93    94      98  any
          96    98      98  any
    Exceptions:
      throws java.io.IOException, sun.awt.image.ImageFormatException

  private void readHeader();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=8, locals=3, args_size=1
        start local 0 // sun.awt.image.GifImageDecoder this
         0: .line 278
            bipush 13
            newarray 8
            astore 1 /* buf */
        start local 1 // byte[] buf
         1: .line 281
            aload 0 /* this */
            aload 1 /* buf */
            iconst_0
            bipush 13
            invokevirtual sun.awt.image.GifImageDecoder.readBytes:([BII)I
            ifeq 3
         2: .line 282
            new java.io.IOException
            dup
            invokespecial java.io.IOException.<init>:()V
            athrow
         3: .line 286
      StackMap locals: byte[]
      StackMap stack:
            aload 1 /* buf */
            iconst_0
            baload
            bipush 71
            if_icmpne 4
            aload 1 /* buf */
            iconst_1
            baload
            bipush 73
            if_icmpne 4
            aload 1 /* buf */
            iconst_2
            baload
            bipush 70
            if_icmpeq 5
         4: .line 287
      StackMap locals:
      StackMap stack:
            ldc "not a GIF file."
            invokestatic sun.awt.image.GifImageDecoder.error:(Ljava/lang/String;)V
         5: .line 291
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* buf */
            bipush 6
            invokestatic sun.awt.image.GifImageDecoder.ExtractWord:([BI)I
            putfield sun.awt.image.GifImageDecoder.global_width:I
         6: .line 292
            aload 0 /* this */
            aload 1 /* buf */
            bipush 8
            invokestatic sun.awt.image.GifImageDecoder.ExtractWord:([BI)I
            putfield sun.awt.image.GifImageDecoder.global_height:I
         7: .line 295
            aload 1 /* buf */
            bipush 10
            invokestatic sun.awt.image.GifImageDecoder.ExtractByte:([BI)I
            istore 2 /* ch */
        start local 2 // int ch
         8: .line 296
            iload 2 /* ch */
            sipush 128
            iand
            ifne 15
         9: .line 303
            aload 0 /* this */
            iconst_2
            putfield sun.awt.image.GifImageDecoder.num_global_colors:I
        10: .line 304
            aload 0 /* this */
            iconst_0
            putfield sun.awt.image.GifImageDecoder.global_bgpixel:I
        11: .line 305
            aload 0 /* this */
            bipush 6
            newarray 8
            putfield sun.awt.image.GifImageDecoder.global_colormap:[B
        12: .line 306
            aload 0 /* this */
            getfield sun.awt.image.GifImageDecoder.global_colormap:[B
            iconst_0
            aload 0 /* this */
            getfield sun.awt.image.GifImageDecoder.global_colormap:[B
            iconst_1
            aload 0 /* this */
            getfield sun.awt.image.GifImageDecoder.global_colormap:[B
            iconst_2
            iconst_0
            dup_x2
            bastore
            dup_x2
            bastore
            bastore
        13: .line 307
            aload 0 /* this */
            getfield sun.awt.image.GifImageDecoder.global_colormap:[B
            iconst_3
            aload 0 /* this */
            getfield sun.awt.image.GifImageDecoder.global_colormap:[B
            iconst_4
            aload 0 /* this */
            getfield sun.awt.image.GifImageDecoder.global_colormap:[B
            iconst_5
            iconst_m1
            dup_x2
            bastore
            dup_x2
            bastore
            bastore
        14: .line 309
            goto 22
        15: .line 311
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            iconst_1
            iload 2 /* ch */
            bipush 7
            iand
            iconst_1
            iadd
            ishl
            putfield sun.awt.image.GifImageDecoder.num_global_colors:I
        16: .line 313
            aload 0 /* this */
            aload 1 /* buf */
            bipush 11
            invokestatic sun.awt.image.GifImageDecoder.ExtractByte:([BI)I
            putfield sun.awt.image.GifImageDecoder.global_bgpixel:I
        17: .line 315
            aload 1 /* buf */
            bipush 12
            baload
            ifeq 19
        18: .line 316
            aload 0 /* this */
            getfield sun.awt.image.GifImageDecoder.props:Ljava/util/Hashtable;
            ldc "aspectratio"
            new java.lang.StringBuilder
            dup
            invokespecial java.lang.StringBuilder.<init>:()V
            aload 1 /* buf */
            bipush 12
            invokestatic sun.awt.image.GifImageDecoder.ExtractByte:([BI)I
            bipush 15
            iadd
            i2d
            ldc 64.0
            ddiv
            invokevirtual java.lang.StringBuilder.append:(D)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual java.util.Hashtable.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        19: .line 320
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 0 /* this */
            getfield sun.awt.image.GifImageDecoder.num_global_colors:I
            iconst_3
            imul
            newarray 8
            putfield sun.awt.image.GifImageDecoder.global_colormap:[B
        20: .line 321
            aload 0 /* this */
            aload 0 /* this */
            getfield sun.awt.image.GifImageDecoder.global_colormap:[B
            iconst_0
            aload 0 /* this */
            getfield sun.awt.image.GifImageDecoder.num_global_colors:I
            iconst_3
            imul
            invokevirtual sun.awt.image.GifImageDecoder.readBytes:([BII)I
            ifeq 22
        21: .line 322
            new java.io.IOException
            dup
            invokespecial java.io.IOException.<init>:()V
            athrow
        22: .line 325
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.awt.image.GifImageDecoder.input:Ljava/io/InputStream;
            ldc 2147483647
            invokevirtual java.io.InputStream.mark:(I)V
        23: .line 326
            return
        end local 2 // int ch
        end local 1 // byte[] buf
        end local 0 // sun.awt.image.GifImageDecoder this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   24     0  this  Lsun/awt/image/GifImageDecoder;
            1   24     1   buf  [B
            8   24     2    ch  I
    Exceptions:
      throws java.io.IOException, sun.awt.image.ImageFormatException

  private static native void initIDs();
    descriptor: ()V
    flags: (0x010a) ACC_PRIVATE, ACC_STATIC, ACC_NATIVE

  private native boolean parseImage(int, int, int, int, boolean, int, byte[], byte[], java.awt.image.IndexColorModel);
    descriptor: (IIIIZI[B[BLjava/awt/image/IndexColorModel;)Z
    flags: (0x0102) ACC_PRIVATE, ACC_NATIVE
    MethodParameters:
              Name  Flags
      x             
      y             
      width         
      height        
      interlace     
      initCodeSize  
      block         
      rasline       
      model         

  private int sendPixels(int, int, int, int, byte[], java.awt.image.ColorModel);
    descriptor: (IIII[BLjava/awt/image/ColorModel;)I
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=9, locals=16, args_size=7
        start local 0 // sun.awt.image.GifImageDecoder this
        start local 1 // int x
        start local 2 // int y
        start local 3 // int width
        start local 4 // int height
        start local 5 // byte[] rasline
        start local 6 // java.awt.image.ColorModel model
         0: .line 362
            iload 2 /* y */
            ifge 3
         1: .line 363
            iload 4 /* height */
            iload 2 /* y */
            iadd
            istore 4 /* height */
         2: .line 364
            iconst_0
            istore 2 /* y */
         3: .line 366
      StackMap locals:
      StackMap stack:
            iload 2 /* y */
            iload 4 /* height */
            iadd
            aload 0 /* this */
            getfield sun.awt.image.GifImageDecoder.global_height:I
            if_icmple 5
         4: .line 367
            aload 0 /* this */
            getfield sun.awt.image.GifImageDecoder.global_height:I
            iload 2 /* y */
            isub
            istore 4 /* height */
         5: .line 369
      StackMap locals:
      StackMap stack:
            iload 4 /* height */
            ifgt 7
         6: .line 370
            iconst_1
            ireturn
         7: .line 374
      StackMap locals:
      StackMap stack:
            iload 1 /* x */
            ifge 12
         8: .line 375
            iload 1 /* x */
            ineg
            istore 7 /* rasbeg */
        start local 7 // int rasbeg
         9: .line 376
            iload 3 /* width */
            iload 1 /* x */
            iadd
            istore 3 /* width */
        10: .line 377
            iconst_0
            istore 9 /* x2 */
        start local 9 // int x2
        11: .line 378
            goto 14
        end local 9 // int x2
        end local 7 // int rasbeg
        12: .line 379
      StackMap locals:
      StackMap stack:
            iconst_0
            istore 7 /* rasbeg */
        start local 7 // int rasbeg
        13: .line 381
            iload 1 /* x */
            istore 9 /* x2 */
        start local 9 // int x2
        14: .line 386
      StackMap locals: sun.awt.image.GifImageDecoder int int int int byte[] java.awt.image.ColorModel int top int
      StackMap stack:
            iload 9 /* x2 */
            iload 3 /* width */
            iadd
            aload 0 /* this */
            getfield sun.awt.image.GifImageDecoder.global_width:I
            if_icmple 16
        15: .line 387
            aload 0 /* this */
            getfield sun.awt.image.GifImageDecoder.global_width:I
            iload 9 /* x2 */
            isub
            istore 3 /* width */
        16: .line 389
      StackMap locals:
      StackMap stack:
            iload 3 /* width */
            ifgt 18
        17: .line 390
            iconst_1
            ireturn
        18: .line 392
      StackMap locals:
      StackMap stack:
            iload 7 /* rasbeg */
            iload 3 /* width */
            iadd
            istore 8 /* rasend */
        start local 8 // int rasend
        19: .line 395
            iload 2 /* y */
            aload 0 /* this */
            getfield sun.awt.image.GifImageDecoder.global_width:I
            imul
            iload 9 /* x2 */
            iadd
            istore 10 /* off */
        start local 10 // int off
        20: .line 396
            aload 0 /* this */
            getfield sun.awt.image.GifImageDecoder.curframe:Lsun/awt/image/GifFrame;
            getfield sun.awt.image.GifFrame.disposal_method:I
            iconst_1
            if_icmpne 21
            iconst_1
            goto 22
      StackMap locals: sun.awt.image.GifImageDecoder int int int int byte[] java.awt.image.ColorModel int int int int
      StackMap stack:
        21: iconst_0
      StackMap locals:
      StackMap stack: int
        22: istore 11 /* save */
        start local 11 // boolean save
        23: .line 397
            aload 0 /* this */
            getfield sun.awt.image.GifImageDecoder.trans_pixel:I
            iflt 65
            aload 0 /* this */
            getfield sun.awt.image.GifImageDecoder.curframe:Lsun/awt/image/GifFrame;
            getfield sun.awt.image.GifFrame.initialframe:Z
            ifne 65
        24: .line 398
            aload 0 /* this */
            getfield sun.awt.image.GifImageDecoder.saved_image:[B
            ifnull 36
            aload 6 /* model */
            aload 0 /* this */
            getfield sun.awt.image.GifImageDecoder.saved_model:Ljava/awt/image/IndexColorModel;
            invokevirtual java.awt.image.ColorModel.equals:(Ljava/lang/Object;)Z
            ifeq 36
        25: .line 399
            iload 7 /* rasbeg */
            istore 12 /* i */
        start local 12 // int i
        26: goto 34
        27: .line 400
      StackMap locals: int int
      StackMap stack:
            aload 5 /* rasline */
            iload 12 /* i */
            baload
            istore 13 /* pixel */
        start local 13 // byte pixel
        28: .line 401
            iload 13 /* pixel */
            sipush 255
            iand
            aload 0 /* this */
            getfield sun.awt.image.GifImageDecoder.trans_pixel:I
            if_icmpne 31
        29: .line 402
            aload 5 /* rasline */
            iload 12 /* i */
            aload 0 /* this */
            getfield sun.awt.image.GifImageDecoder.saved_image:[B
            iload 10 /* off */
            baload
            bastore
        30: .line 403
            goto 33
      StackMap locals: int
      StackMap stack:
        31: iload 11 /* save */
            ifeq 33
        32: .line 404
            aload 0 /* this */
            getfield sun.awt.image.GifImageDecoder.saved_image:[B
            iload 10 /* off */
            iload 13 /* pixel */
            bastore
        end local 13 // byte pixel
        33: .line 399
      StackMap locals:
      StackMap stack:
            iinc 12 /* i */ 1
            iinc 10 /* off */ 1
      StackMap locals:
      StackMap stack:
        34: iload 12 /* i */
            iload 8 /* rasend */
            if_icmplt 27
        end local 12 // int i
        35: .line 407
            goto 67
        36: .line 412
      StackMap locals:
      StackMap stack:
            iconst_m1
            istore 12 /* runstart */
        start local 12 // int runstart
        37: .line 413
            iconst_1
            istore 13 /* count */
        start local 13 // int count
        38: .line 414
            iload 7 /* rasbeg */
            istore 14 /* i */
        start local 14 // int i
        39: goto 57
        40: .line 415
      StackMap locals: int int int
      StackMap stack:
            aload 5 /* rasline */
            iload 14 /* i */
            baload
            istore 15 /* pixel */
        start local 15 // byte pixel
        41: .line 416
            iload 15 /* pixel */
            sipush 255
            iand
            aload 0 /* this */
            getfield sun.awt.image.GifImageDecoder.trans_pixel:I
            if_icmpne 52
        42: .line 417
            iload 12 /* runstart */
            iflt 50
        43: .line 418
            aload 0 /* this */
            iload 1 /* x */
            iload 12 /* runstart */
            iadd
            iload 2 /* y */
        44: .line 419
            iload 14 /* i */
            iload 12 /* runstart */
            isub
            iconst_1
        45: .line 420
            aload 6 /* model */
            aload 5 /* rasline */
        46: .line 421
            iload 12 /* runstart */
            iconst_0
        47: .line 418
            invokevirtual sun.awt.image.GifImageDecoder.setPixels:(IIIILjava/awt/image/ColorModel;[BII)I
            istore 13 /* count */
        48: .line 422
            iload 13 /* count */
            ifne 50
        49: .line 423
            goto 58
        50: .line 426
      StackMap locals: int
      StackMap stack:
            iconst_m1
            istore 12 /* runstart */
        51: .line 427
            goto 56
        52: .line 428
      StackMap locals:
      StackMap stack:
            iload 12 /* runstart */
            ifge 54
        53: .line 429
            iload 14 /* i */
            istore 12 /* runstart */
        54: .line 431
      StackMap locals:
      StackMap stack:
            iload 11 /* save */
            ifeq 56
        55: .line 432
            aload 0 /* this */
            getfield sun.awt.image.GifImageDecoder.saved_image:[B
            iload 10 /* off */
            iload 15 /* pixel */
            bastore
        end local 15 // byte pixel
        56: .line 414
      StackMap locals:
      StackMap stack:
            iinc 14 /* i */ 1
            iinc 10 /* off */ 1
      StackMap locals:
      StackMap stack:
        57: iload 14 /* i */
            iload 8 /* rasend */
            if_icmplt 40
        end local 14 // int i
        58: .line 436
      StackMap locals:
      StackMap stack:
            iload 12 /* runstart */
            iflt 64
        59: .line 437
            aload 0 /* this */
            iload 1 /* x */
            iload 12 /* runstart */
            iadd
            iload 2 /* y */
        60: .line 438
            iload 8 /* rasend */
            iload 12 /* runstart */
            isub
            iconst_1
        61: .line 439
            aload 6 /* model */
            aload 5 /* rasline */
        62: .line 440
            iload 12 /* runstart */
            iconst_0
        63: .line 437
            invokevirtual sun.awt.image.GifImageDecoder.setPixels:(IIIILjava/awt/image/ColorModel;[BII)I
            istore 13 /* count */
        64: .line 442
      StackMap locals:
      StackMap stack:
            iload 13 /* count */
            ireturn
        end local 13 // int count
        end local 12 // int runstart
        65: .line 444
      StackMap locals:
      StackMap stack:
            iload 11 /* save */
            ifeq 67
        66: .line 445
            aload 5 /* rasline */
            iload 7 /* rasbeg */
            aload 0 /* this */
            getfield sun.awt.image.GifImageDecoder.saved_image:[B
            iload 10 /* off */
            iload 3 /* width */
            invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
        67: .line 447
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iload 9 /* x2 */
            iload 2 /* y */
            iload 3 /* width */
            iload 4 /* height */
            aload 6 /* model */
        68: .line 448
            aload 5 /* rasline */
            iload 7 /* rasbeg */
            iconst_0
        69: .line 447
            invokevirtual sun.awt.image.GifImageDecoder.setPixels:(IIIILjava/awt/image/ColorModel;[BII)I
            istore 12 /* count */
        start local 12 // int count
        70: .line 449
            iload 12 /* count */
            ireturn
        end local 12 // int count
        end local 11 // boolean save
        end local 10 // int off
        end local 9 // int x2
        end local 8 // int rasend
        end local 7 // int rasbeg
        end local 6 // java.awt.image.ColorModel model
        end local 5 // byte[] rasline
        end local 4 // int height
        end local 3 // int width
        end local 2 // int y
        end local 1 // int x
        end local 0 // sun.awt.image.GifImageDecoder this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   71     0      this  Lsun/awt/image/GifImageDecoder;
            0   71     1         x  I
            0   71     2         y  I
            0   71     3     width  I
            0   71     4    height  I
            0   71     5   rasline  [B
            0   71     6     model  Ljava/awt/image/ColorModel;
            9   12     7    rasbeg  I
           13   71     7    rasbeg  I
           19   71     8    rasend  I
           11   12     9        x2  I
           14   71     9        x2  I
           20   71    10       off  I
           23   71    11      save  Z
           26   35    12         i  I
           28   33    13     pixel  B
           37   65    12  runstart  I
           38   65    13     count  I
           39   58    14         i  I
           41   56    15     pixel  B
           70   71    12     count  I
    MethodParameters:
         Name  Flags
      x        
      y        
      width    
      height   
      rasline  
      model    

  private boolean readImage(boolean, int, int);
    descriptor: (ZII)Z
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=12, locals=17, args_size=4
        start local 0 // sun.awt.image.GifImageDecoder this
        start local 1 // boolean first
        start local 2 // int disposal_method
        start local 3 // int delay
         0: .line 458
            aload 0 /* this */
            getfield sun.awt.image.GifImageDecoder.curframe:Lsun/awt/image/GifFrame;
            ifnull 3
            aload 0 /* this */
            getfield sun.awt.image.GifImageDecoder.curframe:Lsun/awt/image/GifFrame;
            invokevirtual sun.awt.image.GifFrame.dispose:()Z
            ifne 3
         1: .line 459
            aload 0 /* this */
            invokevirtual sun.awt.image.GifImageDecoder.abort:()V
         2: .line 460
            iconst_0
            ireturn
         3: .line 463
      StackMap locals:
      StackMap stack:
            lconst_0
            lstore 4 /* tm */
        start local 4 // long tm
         4: .line 470
            sipush 259
            newarray 8
            astore 6 /* block */
        start local 6 // byte[] block
         5: .line 473
            aload 0 /* this */
            aload 6 /* block */
            iconst_0
            bipush 10
            invokevirtual sun.awt.image.GifImageDecoder.readBytes:([BII)I
            ifeq 7
         6: .line 474
            new java.io.IOException
            dup
            invokespecial java.io.IOException.<init>:()V
            athrow
         7: .line 476
      StackMap locals: long byte[]
      StackMap stack:
            aload 6 /* block */
            iconst_0
            invokestatic sun.awt.image.GifImageDecoder.ExtractWord:([BI)I
            istore 7 /* x */
        start local 7 // int x
         8: .line 477
            aload 6 /* block */
            iconst_2
            invokestatic sun.awt.image.GifImageDecoder.ExtractWord:([BI)I
            istore 8 /* y */
        start local 8 // int y
         9: .line 478
            aload 6 /* block */
            iconst_4
            invokestatic sun.awt.image.GifImageDecoder.ExtractWord:([BI)I
            istore 9 /* width */
        start local 9 // int width
        10: .line 479
            aload 6 /* block */
            bipush 6
            invokestatic sun.awt.image.GifImageDecoder.ExtractWord:([BI)I
            istore 10 /* height */
        start local 10 // int height
        11: .line 492
            iload 9 /* width */
            ifne 13
            aload 0 /* this */
            getfield sun.awt.image.GifImageDecoder.global_width:I
            ifeq 13
        12: .line 493
            aload 0 /* this */
            getfield sun.awt.image.GifImageDecoder.global_width:I
            iload 7 /* x */
            isub
            istore 9 /* width */
        13: .line 495
      StackMap locals: sun.awt.image.GifImageDecoder int int int long byte[] int int int int
      StackMap stack:
            iload 10 /* height */
            ifne 15
            aload 0 /* this */
            getfield sun.awt.image.GifImageDecoder.global_height:I
            ifeq 15
        14: .line 496
            aload 0 /* this */
            getfield sun.awt.image.GifImageDecoder.global_height:I
            iload 8 /* y */
            isub
            istore 10 /* height */
        15: .line 499
      StackMap locals:
      StackMap stack:
            aload 6 /* block */
            bipush 8
            baload
            bipush 64
            iand
            ifeq 16
            iconst_1
            goto 17
      StackMap locals:
      StackMap stack:
        16: iconst_0
      StackMap locals:
      StackMap stack: int
        17: istore 11 /* interlace */
        start local 11 // boolean interlace
        18: .line 501
            aload 0 /* this */
            getfield sun.awt.image.GifImageDecoder.global_model:Ljava/awt/image/IndexColorModel;
            astore 12 /* model */
        start local 12 // java.awt.image.IndexColorModel model
        19: .line 503
            aload 6 /* block */
            bipush 8
            baload
            sipush 128
            iand
            ifeq 34
        20: .line 507
            iconst_1
            aload 6 /* block */
            bipush 8
            baload
            bipush 7
            iand
            iconst_1
            iadd
            ishl
            istore 13 /* num_local_colors */
        start local 13 // int num_local_colors
        21: .line 510
            iload 13 /* num_local_colors */
            iconst_3
            imul
            newarray 8
            astore 14 /* local_colormap */
        start local 14 // byte[] local_colormap
        22: .line 511
            aload 14 /* local_colormap */
            iconst_0
            aload 6 /* block */
            bipush 9
            baload
            bastore
        23: .line 512
            aload 0 /* this */
            aload 14 /* local_colormap */
            iconst_1
            iload 13 /* num_local_colors */
            iconst_3
            imul
            iconst_1
            isub
            invokevirtual sun.awt.image.GifImageDecoder.readBytes:([BII)I
            ifeq 25
        24: .line 513
            new java.io.IOException
            dup
            invokespecial java.io.IOException.<init>:()V
            athrow
        25: .line 518
      StackMap locals: sun.awt.image.GifImageDecoder int int int long byte[] int int int int int java.awt.image.IndexColorModel int byte[]
      StackMap stack:
            aload 0 /* this */
            aload 6 /* block */
            bipush 9
            iconst_1
            invokevirtual sun.awt.image.GifImageDecoder.readBytes:([BII)I
            ifeq 27
        26: .line 519
            new java.io.IOException
            dup
            invokespecial java.io.IOException.<init>:()V
            athrow
        27: .line 521
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.awt.image.GifImageDecoder.trans_pixel:I
            iload 13 /* num_local_colors */
            if_icmplt 30
        28: .line 523
            aload 0 /* this */
            getfield sun.awt.image.GifImageDecoder.trans_pixel:I
            iconst_1
            iadd
            istore 13 /* num_local_colors */
        29: .line 524
            aload 14 /* local_colormap */
            iload 13 /* num_local_colors */
            invokestatic sun.awt.image.GifImageDecoder.grow_colormap:([BI)[B
            astore 14 /* local_colormap */
        30: .line 526
      StackMap locals:
      StackMap stack:
            new java.awt.image.IndexColorModel
            dup
            bipush 8
            iload 13 /* num_local_colors */
            aload 14 /* local_colormap */
        31: .line 527
            iconst_0
            iconst_0
            aload 0 /* this */
            getfield sun.awt.image.GifImageDecoder.trans_pixel:I
        32: .line 526
            invokespecial java.awt.image.IndexColorModel.<init>:(II[BIZI)V
            astore 12 /* model */
        end local 14 // byte[] local_colormap
        end local 13 // int num_local_colors
        33: .line 528
            goto 43
      StackMap locals:
      StackMap stack:
        34: aload 12 /* model */
            ifnull 36
        35: .line 529
            aload 0 /* this */
            getfield sun.awt.image.GifImageDecoder.trans_pixel:I
            aload 12 /* model */
            invokevirtual java.awt.image.IndexColorModel.getTransparentPixel:()I
            if_icmpeq 43
        36: .line 530
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.awt.image.GifImageDecoder.trans_pixel:I
            aload 0 /* this */
            getfield sun.awt.image.GifImageDecoder.num_global_colors:I
            if_icmplt 39
        37: .line 532
            aload 0 /* this */
            aload 0 /* this */
            getfield sun.awt.image.GifImageDecoder.trans_pixel:I
            iconst_1
            iadd
            putfield sun.awt.image.GifImageDecoder.num_global_colors:I
        38: .line 533
            aload 0 /* this */
            aload 0 /* this */
            getfield sun.awt.image.GifImageDecoder.global_colormap:[B
            aload 0 /* this */
            getfield sun.awt.image.GifImageDecoder.num_global_colors:I
            invokestatic sun.awt.image.GifImageDecoder.grow_colormap:([BI)[B
            putfield sun.awt.image.GifImageDecoder.global_colormap:[B
        39: .line 535
      StackMap locals:
      StackMap stack:
            new java.awt.image.IndexColorModel
            dup
            bipush 8
            aload 0 /* this */
            getfield sun.awt.image.GifImageDecoder.num_global_colors:I
            aload 0 /* this */
            getfield sun.awt.image.GifImageDecoder.global_colormap:[B
        40: .line 536
            iconst_0
            iconst_0
            aload 0 /* this */
            getfield sun.awt.image.GifImageDecoder.trans_pixel:I
        41: .line 535
            invokespecial java.awt.image.IndexColorModel.<init>:(II[BIZI)V
            astore 12 /* model */
        42: .line 537
            aload 0 /* this */
            aload 12 /* model */
            putfield sun.awt.image.GifImageDecoder.global_model:Ljava/awt/image/IndexColorModel;
        43: .line 541
      StackMap locals:
      StackMap stack:
            iload 1 /* first */
            ifeq 50
        44: .line 542
            aload 0 /* this */
            getfield sun.awt.image.GifImageDecoder.global_width:I
            ifne 45
            aload 0 /* this */
            iload 9 /* width */
            putfield sun.awt.image.GifImageDecoder.global_width:I
        45: .line 543
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.awt.image.GifImageDecoder.global_height:I
            ifne 46
            aload 0 /* this */
            iload 10 /* height */
            putfield sun.awt.image.GifImageDecoder.global_height:I
        46: .line 545
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 0 /* this */
            getfield sun.awt.image.GifImageDecoder.global_width:I
            aload 0 /* this */
            getfield sun.awt.image.GifImageDecoder.global_height:I
            invokevirtual sun.awt.image.GifImageDecoder.setDimensions:(II)I
            pop
        47: .line 546
            aload 0 /* this */
            aload 0 /* this */
            getfield sun.awt.image.GifImageDecoder.props:Ljava/util/Hashtable;
            invokevirtual sun.awt.image.GifImageDecoder.setProperties:(Ljava/util/Hashtable;)I
            pop
        48: .line 547
            aload 0 /* this */
            aload 12 /* model */
            invokevirtual sun.awt.image.GifImageDecoder.setColorModel:(Ljava/awt/image/ColorModel;)I
            pop
        49: .line 548
            aload 0 /* this */
            invokevirtual sun.awt.image.GifImageDecoder.headerComplete:()V
        50: .line 551
      StackMap locals:
      StackMap stack:
            iload 2 /* disposal_method */
            iconst_1
            if_icmpne 68
            aload 0 /* this */
            getfield sun.awt.image.GifImageDecoder.saved_image:[B
            ifnonnull 68
        51: .line 552
            aload 0 /* this */
            aload 0 /* this */
            getfield sun.awt.image.GifImageDecoder.global_width:I
            aload 0 /* this */
            getfield sun.awt.image.GifImageDecoder.global_height:I
            imul
            newarray 8
            putfield sun.awt.image.GifImageDecoder.saved_image:[B
        52: .line 557
            iload 10 /* height */
            aload 0 /* this */
            getfield sun.awt.image.GifImageDecoder.global_height:I
            if_icmpge 68
            aload 12 /* model */
            ifnull 68
        53: .line 558
            aload 12 /* model */
            invokevirtual java.awt.image.IndexColorModel.getTransparentPixel:()I
            i2b
            istore 13 /* tpix */
        start local 13 // byte tpix
        54: .line 559
            iload 13 /* tpix */
            iflt 68
        55: .line 560
            aload 0 /* this */
            getfield sun.awt.image.GifImageDecoder.global_width:I
            newarray 8
            astore 14 /* trans_rasline */
        start local 14 // byte[] trans_rasline
        56: .line 561
            iconst_0
            istore 15 /* i */
        start local 15 // int i
        57: goto 60
        58: .line 562
      StackMap locals: int byte[] int
      StackMap stack:
            aload 14 /* trans_rasline */
            iload 15 /* i */
            iload 13 /* tpix */
            bastore
        59: .line 561
            iinc 15 /* i */ 1
      StackMap locals:
      StackMap stack:
        60: iload 15 /* i */
            aload 0 /* this */
            getfield sun.awt.image.GifImageDecoder.global_width:I
            if_icmplt 58
        end local 15 // int i
        61: .line 565
            aload 0 /* this */
            iconst_0
            iconst_0
            aload 0 /* this */
            getfield sun.awt.image.GifImageDecoder.global_width:I
            iload 8 /* y */
        62: .line 566
            aload 12 /* model */
            aload 14 /* trans_rasline */
            iconst_0
            iconst_0
        63: .line 565
            invokevirtual sun.awt.image.GifImageDecoder.setPixels:(IIIILjava/awt/image/ColorModel;[BII)I
            pop
        64: .line 567
            aload 0 /* this */
            iconst_0
            iload 8 /* y */
            iload 10 /* height */
            iadd
            aload 0 /* this */
            getfield sun.awt.image.GifImageDecoder.global_width:I
        65: .line 568
            aload 0 /* this */
            getfield sun.awt.image.GifImageDecoder.global_height:I
            iload 10 /* height */
            isub
            iload 8 /* y */
            isub
            aload 12 /* model */
            aload 14 /* trans_rasline */
        66: .line 569
            iconst_0
            iconst_0
        67: .line 567
            invokevirtual sun.awt.image.GifImageDecoder.setPixels:(IIIILjava/awt/image/ColorModel;[BII)I
            pop
        end local 14 // byte[] trans_rasline
        end local 13 // byte tpix
        68: .line 574
      StackMap locals:
      StackMap stack:
            iload 11 /* interlace */
            ifeq 69
            bipush 29
            goto 70
      StackMap locals:
      StackMap stack:
        69: bipush 30
      StackMap locals:
      StackMap stack: int
        70: istore 13 /* hints */
        start local 13 // int hints
        71: .line 575
            aload 0 /* this */
            iload 13 /* hints */
            invokevirtual sun.awt.image.GifImageDecoder.setHints:(I)I
            pop
        72: .line 577
            aload 0 /* this */
        73: new sun.awt.image.GifFrame
            dup
            aload 0 /* this */
            iload 2 /* disposal_method */
            iload 3 /* delay */
        74: .line 578
            aload 0 /* this */
            getfield sun.awt.image.GifImageDecoder.curframe:Lsun/awt/image/GifFrame;
            ifnonnull 75
            iconst_1
            goto 76
      StackMap locals: sun.awt.image.GifImageDecoder int int int long byte[] int int int int int java.awt.image.IndexColorModel int
      StackMap stack: sun.awt.image.GifImageDecoder new 73 new 73 sun.awt.image.GifImageDecoder int int
        75: iconst_0
      StackMap locals: sun.awt.image.GifImageDecoder int int int long byte[] int int int int int java.awt.image.IndexColorModel int
      StackMap stack: sun.awt.image.GifImageDecoder new 73 new 73 sun.awt.image.GifImageDecoder int int int
        76: aload 12 /* model */
        77: .line 579
            iload 7 /* x */
            iload 8 /* y */
            iload 9 /* width */
            iload 10 /* height */
            invokespecial sun.awt.image.GifFrame.<init>:(Lsun/awt/image/GifImageDecoder;IIZLjava/awt/image/IndexColorModel;IIII)V
        78: .line 577
            putfield sun.awt.image.GifImageDecoder.curframe:Lsun/awt/image/GifFrame;
        79: .line 582
            iload 9 /* width */
            newarray 8
            astore 14 /* rasline */
        start local 14 // byte[] rasline
        80: .line 588
            aload 6 /* block */
            bipush 9
            invokestatic sun.awt.image.GifImageDecoder.ExtractByte:([BI)I
            istore 15 /* initCodeSize */
        start local 15 // int initCodeSize
        81: .line 589
            iload 15 /* initCodeSize */
            bipush 12
            if_icmplt 83
        82: .line 594
            iconst_0
            ireturn
        83: .line 596
      StackMap locals: byte[] int
      StackMap stack:
            aload 0 /* this */
            iload 7 /* x */
            iload 8 /* y */
            iload 9 /* width */
            iload 10 /* height */
        84: .line 597
            iload 11 /* interlace */
            iload 15 /* initCodeSize */
        85: .line 598
            aload 6 /* block */
            aload 14 /* rasline */
            aload 12 /* model */
        86: .line 596
            invokevirtual sun.awt.image.GifImageDecoder.parseImage:(IIIIZI[B[BLjava/awt/image/IndexColorModel;)Z
            istore 16 /* ret */
        start local 16 // boolean ret
        87: .line 600
            iload 16 /* ret */
            ifne 89
        88: .line 601
            aload 0 /* this */
            invokevirtual sun.awt.image.GifImageDecoder.abort:()V
        89: .line 610
      StackMap locals: int
      StackMap stack:
            iload 16 /* ret */
            ireturn
        end local 16 // boolean ret
        end local 15 // int initCodeSize
        end local 14 // byte[] rasline
        end local 13 // int hints
        end local 12 // java.awt.image.IndexColorModel model
        end local 11 // boolean interlace
        end local 10 // int height
        end local 9 // int width
        end local 8 // int y
        end local 7 // int x
        end local 6 // byte[] block
        end local 4 // long tm
        end local 3 // int delay
        end local 2 // int disposal_method
        end local 1 // boolean first
        end local 0 // sun.awt.image.GifImageDecoder this
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0   90     0              this  Lsun/awt/image/GifImageDecoder;
            0   90     1             first  Z
            0   90     2   disposal_method  I
            0   90     3             delay  I
            4   90     4                tm  J
            5   90     6             block  [B
            8   90     7                 x  I
            9   90     8                 y  I
           10   90     9             width  I
           11   90    10            height  I
           18   90    11         interlace  Z
           19   90    12             model  Ljava/awt/image/IndexColorModel;
           21   33    13  num_local_colors  I
           22   33    14    local_colormap  [B
           54   68    13              tpix  B
           56   68    14     trans_rasline  [B
           57   61    15                 i  I
           71   90    13             hints  I
           80   90    14           rasline  [B
           81   90    15      initCodeSize  I
           87   90    16               ret  Z
    Exceptions:
      throws java.io.IOException
    MethodParameters:
                 Name  Flags
      first            
      disposal_method  
      delay            

  public static byte[] grow_colormap(byte[], int);
    descriptor: ([BI)[B
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=5, locals=3, args_size=2
        start local 0 // byte[] colormap
        start local 1 // int newlen
         0: .line 614
            iload 1 /* newlen */
            iconst_3
            imul
            newarray 8
            astore 2 /* newcm */
        start local 2 // byte[] newcm
         1: .line 615
            aload 0 /* colormap */
            iconst_0
            aload 2 /* newcm */
            iconst_0
            aload 0 /* colormap */
            arraylength
            invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
         2: .line 616
            aload 2 /* newcm */
            areturn
        end local 2 // byte[] newcm
        end local 1 // int newlen
        end local 0 // byte[] colormap
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    3     0  colormap  [B
            0    3     1    newlen  I
            1    3     2     newcm  [B
    MethodParameters:
          Name  Flags
      colormap  
      newlen    
}
SourceFile: "GifImageDecoder.java"