public class com.sun.imageio.plugins.common.LZWStringTable
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: com.sun.imageio.plugins.common.LZWStringTable
  super_class: java.lang.Object
{
  private static final int RES_CODES;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 2

  private static final short HASH_FREE;
    descriptor: S
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: -1

  private static final short NEXT_FIRST;
    descriptor: S
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: -1

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

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

  private static final short HASHSIZE;
    descriptor: S
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 9973

  private static final short HASHSTEP;
    descriptor: S
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 2039

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

  short[] strNxt;
    descriptor: [S
    flags: (0x0000) 

  short[] strHsh;
    descriptor: [S
    flags: (0x0000) 

  short numStrings;
    descriptor: S
    flags: (0x0000) 

  int[] strLen;
    descriptor: [I
    flags: (0x0000) 

  public void <init>();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // com.sun.imageio.plugins.common.LZWStringTable this
         0: .line 65
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 66
            aload 0 /* this */
            sipush 4096
            newarray 8
            putfield com.sun.imageio.plugins.common.LZWStringTable.strChr:[B
         2: .line 67
            aload 0 /* this */
            sipush 4096
            newarray 9
            putfield com.sun.imageio.plugins.common.LZWStringTable.strNxt:[S
         3: .line 68
            aload 0 /* this */
            sipush 4096
            newarray 10
            putfield com.sun.imageio.plugins.common.LZWStringTable.strLen:[I
         4: .line 69
            aload 0 /* this */
            sipush 9973
            newarray 9
            putfield com.sun.imageio.plugins.common.LZWStringTable.strHsh:[S
         5: .line 70
            return
        end local 0 // com.sun.imageio.plugins.common.LZWStringTable this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    6     0  this  Lcom/sun/imageio/plugins/common/LZWStringTable;

  public int addCharString(short, byte);
    descriptor: (SB)I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=4, args_size=3
        start local 0 // com.sun.imageio.plugins.common.LZWStringTable this
        start local 1 // short index
        start local 2 // byte b
         0: .line 82
            aload 0 /* this */
            getfield com.sun.imageio.plugins.common.LZWStringTable.numStrings:S
            sipush 4096
            if_icmplt 2
         1: .line 83
            ldc 65535
            ireturn
         2: .line 86
      StackMap locals:
      StackMap stack:
            iload 1 /* index */
            iload 2 /* b */
            invokestatic com.sun.imageio.plugins.common.LZWStringTable.hash:(SB)I
            istore 3 /* hshidx */
        start local 3 // int hshidx
         3: .line 87
            goto 5
         4: .line 88
      StackMap locals: int
      StackMap stack:
            iload 3 /* hshidx */
            sipush 2039
            iadd
            sipush 9973
            irem
            istore 3 /* hshidx */
         5: .line 87
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.imageio.plugins.common.LZWStringTable.strHsh:[S
            iload 3 /* hshidx */
            saload
            iconst_m1
            if_icmpne 4
         6: .line 91
            aload 0 /* this */
            getfield com.sun.imageio.plugins.common.LZWStringTable.strHsh:[S
            iload 3 /* hshidx */
            aload 0 /* this */
            getfield com.sun.imageio.plugins.common.LZWStringTable.numStrings:S
            sastore
         7: .line 92
            aload 0 /* this */
            getfield com.sun.imageio.plugins.common.LZWStringTable.strChr:[B
            aload 0 /* this */
            getfield com.sun.imageio.plugins.common.LZWStringTable.numStrings:S
            iload 2 /* b */
            bastore
         8: .line 93
            iload 1 /* index */
            iconst_m1
            if_icmpne 12
         9: .line 94
            aload 0 /* this */
            getfield com.sun.imageio.plugins.common.LZWStringTable.strNxt:[S
            aload 0 /* this */
            getfield com.sun.imageio.plugins.common.LZWStringTable.numStrings:S
            iconst_m1
            sastore
        10: .line 95
            aload 0 /* this */
            getfield com.sun.imageio.plugins.common.LZWStringTable.strLen:[I
            aload 0 /* this */
            getfield com.sun.imageio.plugins.common.LZWStringTable.numStrings:S
            iconst_1
            iastore
        11: .line 96
            goto 14
        12: .line 97
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.imageio.plugins.common.LZWStringTable.strNxt:[S
            aload 0 /* this */
            getfield com.sun.imageio.plugins.common.LZWStringTable.numStrings:S
            iload 1 /* index */
            sastore
        13: .line 98
            aload 0 /* this */
            getfield com.sun.imageio.plugins.common.LZWStringTable.strLen:[I
            aload 0 /* this */
            getfield com.sun.imageio.plugins.common.LZWStringTable.numStrings:S
            aload 0 /* this */
            getfield com.sun.imageio.plugins.common.LZWStringTable.strLen:[I
            iload 1 /* index */
            iaload
            iconst_1
            iadd
            iastore
        14: .line 101
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            dup
            getfield com.sun.imageio.plugins.common.LZWStringTable.numStrings:S
            dup_x1
            iconst_1
            iadd
            i2s
            putfield com.sun.imageio.plugins.common.LZWStringTable.numStrings:S
            ireturn
        end local 3 // int hshidx
        end local 2 // byte b
        end local 1 // short index
        end local 0 // com.sun.imageio.plugins.common.LZWStringTable this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   15     0    this  Lcom/sun/imageio/plugins/common/LZWStringTable;
            0   15     1   index  S
            0   15     2       b  B
            3   15     3  hshidx  I
    MethodParameters:
       Name  Flags
      index  
      b      

  public short findCharString(short, byte);
    descriptor: (SB)S
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=5, args_size=3
        start local 0 // com.sun.imageio.plugins.common.LZWStringTable this
        start local 1 // short index
        start local 2 // byte b
         0: .line 113
            iload 1 /* index */
            iconst_m1
            if_icmpne 2
         1: .line 114
            iload 2 /* b */
            sipush 255
            iand
            i2s
            ireturn
         2: .line 117
      StackMap locals:
      StackMap stack:
            iload 1 /* index */
            iload 2 /* b */
            invokestatic com.sun.imageio.plugins.common.LZWStringTable.hash:(SB)I
            istore 3 /* hshidx */
        start local 3 // int hshidx
         3: .line 118
            goto 7
        start local 4 // int nxtidx
         4: .line 119
      StackMap locals: int int
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.imageio.plugins.common.LZWStringTable.strNxt:[S
            iload 4 /* nxtidx */
            saload
            iload 1 /* index */
            if_icmpne 6
            aload 0 /* this */
            getfield com.sun.imageio.plugins.common.LZWStringTable.strChr:[B
            iload 4 /* nxtidx */
            baload
            iload 2 /* b */
            if_icmpne 6
         5: .line 120
            iload 4 /* nxtidx */
            i2s
            ireturn
         6: .line 122
      StackMap locals:
      StackMap stack:
            iload 3 /* hshidx */
            sipush 2039
            iadd
            sipush 9973
            irem
            istore 3 /* hshidx */
        end local 4 // int nxtidx
         7: .line 118
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.imageio.plugins.common.LZWStringTable.strHsh:[S
            iload 3 /* hshidx */
            saload
            dup
            istore 4 /* nxtidx */
        start local 4 // int nxtidx
         8: iconst_m1
            if_icmpne 4
         9: .line 125
            iconst_m1
            ireturn
        end local 4 // int nxtidx
        end local 3 // int hshidx
        end local 2 // byte b
        end local 1 // short index
        end local 0 // com.sun.imageio.plugins.common.LZWStringTable this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   10     0    this  Lcom/sun/imageio/plugins/common/LZWStringTable;
            0   10     1   index  S
            0   10     2       b  B
            3   10     3  hshidx  I
            4    7     4  nxtidx  I
            8   10     4  nxtidx  I
    MethodParameters:
       Name  Flags
      index  
      b      

  public void clearTable(int);
    descriptor: (I)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=4, args_size=2
        start local 0 // com.sun.imageio.plugins.common.LZWStringTable this
        start local 1 // int codesize
         0: .line 133
            aload 0 /* this */
            iconst_0
            putfield com.sun.imageio.plugins.common.LZWStringTable.numStrings:S
         1: .line 135
            iconst_0
            istore 2 /* q */
        start local 2 // int q
         2: goto 5
         3: .line 136
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.imageio.plugins.common.LZWStringTable.strHsh:[S
            iload 2 /* q */
            iconst_m1
            sastore
         4: .line 135
            iinc 2 /* q */ 1
      StackMap locals:
      StackMap stack:
         5: iload 2 /* q */
            sipush 9973
            if_icmplt 3
        end local 2 // int q
         6: .line 139
            iconst_1
            iload 1 /* codesize */
            ishl
            iconst_2
            iadd
            istore 2 /* w */
        start local 2 // int w
         7: .line 140
            iconst_0
            istore 3 /* q */
        start local 3 // int q
         8: goto 11
         9: .line 141
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            iconst_m1
            iload 3 /* q */
            i2b
            invokevirtual com.sun.imageio.plugins.common.LZWStringTable.addCharString:(SB)I
            pop
        10: .line 140
            iinc 3 /* q */ 1
      StackMap locals:
      StackMap stack:
        11: iload 3 /* q */
            iload 2 /* w */
            if_icmplt 9
        end local 3 // int q
        12: .line 143
            return
        end local 2 // int w
        end local 1 // int codesize
        end local 0 // com.sun.imageio.plugins.common.LZWStringTable this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   13     0      this  Lcom/sun/imageio/plugins/common/LZWStringTable;
            0   13     1  codesize  I
            2    6     2         q  I
            7   13     2         w  I
            8   12     3         q  I
    MethodParameters:
          Name  Flags
      codesize  

  public static int hash(short, byte);
    descriptor: (SB)I
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // short index
        start local 1 // byte lastbyte
         0: .line 146
            iload 1 /* lastbyte */
            bipush 8
            ishl
            i2s
            iload 0 /* index */
            ixor
            ldc 65535
            iand
            sipush 9973
            irem
            ireturn
        end local 1 // byte lastbyte
        end local 0 // short index
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    1     0     index  S
            0    1     1  lastbyte  B
    MethodParameters:
          Name  Flags
      index     
      lastbyte  

  public int expandCode(byte[], int, short, int);
    descriptor: ([BISI)I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=10, args_size=5
        start local 0 // com.sun.imageio.plugins.common.LZWStringTable this
        start local 1 // byte[] buf
        start local 2 // int offset
        start local 3 // short code
        start local 4 // int skipHead
         0: .line 170
            iload 2 /* offset */
            bipush -2
            if_icmpne 3
         1: .line 171
            iload 4 /* skipHead */
            iconst_1
            if_icmpne 3
         2: .line 172
            iconst_0
            istore 4 /* skipHead */
         3: .line 175
      StackMap locals:
      StackMap stack:
            iload 3 /* code */
            iconst_m1
            if_icmpeq 5
         4: .line 176
            iload 4 /* skipHead */
            aload 0 /* this */
            getfield com.sun.imageio.plugins.common.LZWStringTable.strLen:[I
            iload 3 /* code */
            iaload
            if_icmpne 6
         5: .line 178
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
         6: .line 182
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.imageio.plugins.common.LZWStringTable.strLen:[I
            iload 3 /* code */
            iaload
            iload 4 /* skipHead */
            isub
            istore 6 /* codeLen */
        start local 6 // int codeLen
         7: .line 183
            aload 1 /* buf */
            arraylength
            iload 2 /* offset */
            isub
            istore 7 /* bufSpace */
        start local 7 // int bufSpace
         8: .line 184
            iload 7 /* bufSpace */
            iload 6 /* codeLen */
            if_icmple 11
         9: .line 185
            iload 6 /* codeLen */
            istore 5 /* expandLen */
        start local 5 // int expandLen
        10: .line 186
            goto 12
        end local 5 // int expandLen
        11: .line 187
      StackMap locals: com.sun.imageio.plugins.common.LZWStringTable byte[] int int int top int int
      StackMap stack:
            iload 7 /* bufSpace */
            istore 5 /* expandLen */
        start local 5 // int expandLen
        12: .line 190
      StackMap locals: com.sun.imageio.plugins.common.LZWStringTable byte[] int int int int int int
      StackMap stack:
            iload 6 /* codeLen */
            iload 5 /* expandLen */
            isub
            istore 8 /* skipTail */
        start local 8 // int skipTail
        13: .line 192
            iload 2 /* offset */
            iload 5 /* expandLen */
            iadd
            istore 9 /* idx */
        start local 9 // int idx
        14: .line 196
            goto 18
        15: .line 197
      StackMap locals: int int
      StackMap stack:
            iinc 8 /* skipTail */ -1
            iload 8 /* skipTail */
            ifge 17
        16: .line 198
            aload 1 /* buf */
            iinc 9 /* idx */ -1
            iload 9 /* idx */
            aload 0 /* this */
            getfield com.sun.imageio.plugins.common.LZWStringTable.strChr:[B
            iload 3 /* code */
            baload
            bastore
        17: .line 200
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.imageio.plugins.common.LZWStringTable.strNxt:[S
            iload 3 /* code */
            saload
            istore 3 /* code */
        18: .line 196
      StackMap locals:
      StackMap stack:
            iload 9 /* idx */
            iload 2 /* offset */
            if_icmple 19
            iload 3 /* code */
            iconst_m1
            if_icmpne 15
        19: .line 203
      StackMap locals:
      StackMap stack:
            iload 6 /* codeLen */
            iload 5 /* expandLen */
            if_icmple 21
        20: .line 204
            iload 5 /* expandLen */
            ineg
            ireturn
        21: .line 206
      StackMap locals:
      StackMap stack:
            iload 5 /* expandLen */
            ireturn
        end local 9 // int idx
        end local 8 // int skipTail
        end local 7 // int bufSpace
        end local 6 // int codeLen
        end local 5 // int expandLen
        end local 4 // int skipHead
        end local 3 // short code
        end local 2 // int offset
        end local 1 // byte[] buf
        end local 0 // com.sun.imageio.plugins.common.LZWStringTable this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   22     0       this  Lcom/sun/imageio/plugins/common/LZWStringTable;
            0   22     1        buf  [B
            0   22     2     offset  I
            0   22     3       code  S
            0   22     4   skipHead  I
           10   11     5  expandLen  I
           12   22     5  expandLen  I
            7   22     6    codeLen  I
            8   22     7   bufSpace  I
           13   22     8   skipTail  I
           14   22     9        idx  I
    MethodParameters:
          Name  Flags
      buf       
      offset    
      code      
      skipHead  

  public void dump(java.io.PrintStream);
    descriptor: (Ljava/io/PrintStream;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=3, args_size=2
        start local 0 // com.sun.imageio.plugins.common.LZWStringTable this
        start local 1 // java.io.PrintStream out
         0: .line 212
            sipush 258
            istore 2 /* i */
        start local 2 // int i
         1: goto 7
         2: .line 213
      StackMap locals: int
      StackMap stack:
            aload 1 /* out */
            new java.lang.StringBuilder
            dup
            ldc " strNxt["
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            iload 2 /* i */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            ldc "] = "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 0 /* this */
            getfield com.sun.imageio.plugins.common.LZWStringTable.strNxt:[S
            iload 2 /* i */
            saload
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
         3: .line 214
            ldc " strChr "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 0 /* this */
            getfield com.sun.imageio.plugins.common.LZWStringTable.strChr:[B
            iload 2 /* i */
            baload
            sipush 255
            iand
            invokestatic java.lang.Integer.toHexString:(I)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
         4: .line 215
            ldc " strLen "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 0 /* this */
            getfield com.sun.imageio.plugins.common.LZWStringTable.strLen:[I
            iload 2 /* i */
            iaload
            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;
         5: .line 213
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
         6: .line 212
            iinc 2 /* i */ 1
      StackMap locals:
      StackMap stack:
         7: iload 2 /* i */
            aload 0 /* this */
            getfield com.sun.imageio.plugins.common.LZWStringTable.numStrings:S
            if_icmplt 2
         8: .line 217
            return
        end local 2 // int i
        end local 1 // java.io.PrintStream out
        end local 0 // com.sun.imageio.plugins.common.LZWStringTable this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    9     0  this  Lcom/sun/imageio/plugins/common/LZWStringTable;
            0    9     1   out  Ljava/io/PrintStream;
            1    9     2     i  I
    MethodParameters:
      Name  Flags
      out   
}
SourceFile: "LZWStringTable.java"