public class jdk.internal.jimage.decompressor.CompressIndexes
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: jdk.internal.jimage.decompressor.CompressIndexes
  super_class: java.lang.Object
{
  private static final int COMPRESSED_FLAG;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 128

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

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

  public void <init>();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // jdk.internal.jimage.decompressor.CompressIndexes this
         0: .line 44
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
            return
        end local 0 // jdk.internal.jimage.decompressor.CompressIndexes this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljdk/internal/jimage/decompressor/CompressIndexes;

  public static java.util.List<java.lang.Integer> decompressFlow(byte[]);
    descriptor: ([B)Ljava/util/List;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=4, args_size=1
        start local 0 // byte[] values
         0: .line 50
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 1 /* lst */
        start local 1 // java.util.List lst
         1: .line 52
            iconst_0
            istore 2 /* i */
        start local 2 // int i
         2: goto 6
         3: .line 53
      StackMap locals: java.util.List int
      StackMap stack:
            aload 0 /* values */
            iload 2 /* i */
            invokestatic jdk.internal.jimage.decompressor.CompressIndexes.decompress:([BI)I
            istore 3 /* decompressed */
        start local 3 // int decompressed
         4: .line 54
            aload 1 /* lst */
            iload 3 /* decompressed */
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        end local 3 // int decompressed
         5: .line 52
            iload 2 /* i */
            aload 0 /* values */
            iload 2 /* i */
            baload
            invokestatic jdk.internal.jimage.decompressor.CompressIndexes.getHeaderLength:(B)I
            iadd
            istore 2 /* i */
      StackMap locals:
      StackMap stack:
         6: iload 2 /* i */
            aload 0 /* values */
            arraylength
            if_icmplt 3
        end local 2 // int i
         7: .line 57
            aload 1 /* lst */
            areturn
        end local 1 // java.util.List lst
        end local 0 // byte[] values
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    8     0        values  [B
            1    8     1           lst  Ljava/util/List<Ljava/lang/Integer;>;
            2    7     2             i  I
            4    5     3  decompressed  I
    Signature: ([B)Ljava/util/List<Ljava/lang/Integer;>;
    MethodParameters:
        Name  Flags
      values  

  public static int readInt(java.io.DataInputStream);
    descriptor: (Ljava/io/DataInputStream;)I
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=5, args_size=1
        start local 0 // java.io.DataInputStream cr
         0: .line 62
            aload 0 /* cr */
            invokevirtual java.io.DataInputStream.readByte:()B
            istore 1 /* header */
        start local 1 // byte header
         1: .line 64
            iload 1 /* header */
            invokestatic jdk.internal.jimage.decompressor.CompressIndexes.getHeaderLength:(B)I
            istore 2 /* size */
        start local 2 // int size
         2: .line 66
            iload 1 /* header */
            invokestatic jdk.internal.jimage.decompressor.CompressIndexes.getHeaderValue:(B)I
            istore 3 /* result */
        start local 3 // int result
         3: .line 69
            iconst_1
            istore 4 /* i */
        start local 4 // int i
         4: goto 8
         5: .line 71
      StackMap locals: java.io.DataInputStream int int int int
      StackMap stack:
            iload 3 /* result */
            bipush 8
            ishl
            istore 3 /* result */
         6: .line 72
            iload 3 /* result */
            aload 0 /* cr */
            invokevirtual java.io.DataInputStream.readByte:()B
            sipush 255
            iand
            ior
            istore 3 /* result */
         7: .line 69
            iinc 4 /* i */ 1
      StackMap locals:
      StackMap stack:
         8: iload 4 /* i */
            iload 2 /* size */
            if_icmplt 5
        end local 4 // int i
         9: .line 75
            iload 3 /* result */
            ireturn
        end local 3 // int result
        end local 2 // int size
        end local 1 // byte header
        end local 0 // java.io.DataInputStream cr
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   10     0      cr  Ljava/io/DataInputStream;
            1   10     1  header  B
            2   10     2    size  I
            3   10     3  result  I
            4    9     4       i  I
    Exceptions:
      throws java.io.IOException
    MethodParameters:
      Name  Flags
      cr    

  private static boolean isCompressed(byte);
    descriptor: (B)Z
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // byte b
         0: .line 79
            iload 0 /* b */
            sipush 128
            iand
            ifeq 1
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         1: iconst_0
            ireturn
        end local 0 // byte b
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0     b  B
    MethodParameters:
      Name  Flags
      b     

  private static int getHeaderLength(byte);
    descriptor: (B)I
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // byte b
         0: .line 83
            iload 0 /* b */
            invokestatic jdk.internal.jimage.decompressor.CompressIndexes.isCompressed:(B)Z
            ifeq 1
            iload 0 /* b */
            iconst_5
            ishr
            iconst_3
            iand
            goto 2
      StackMap locals:
      StackMap stack:
         1: iconst_4
      StackMap locals:
      StackMap stack: int
         2: ireturn
        end local 0 // byte b
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0     b  B
    MethodParameters:
      Name  Flags
      b     

  private static int getHeaderValue(byte);
    descriptor: (B)I
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // byte b
         0: .line 87
            iload 0 /* b */
            invokestatic jdk.internal.jimage.decompressor.CompressIndexes.isCompressed:(B)Z
            ifeq 1
            iload 0 /* b */
            bipush 31
            iand
            goto 2
      StackMap locals:
      StackMap stack:
         1: iload 0 /* b */
      StackMap locals:
      StackMap stack: int
         2: ireturn
        end local 0 // byte b
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0     b  B
    MethodParameters:
      Name  Flags
      b     

  public static int decompress(byte[], int);
    descriptor: ([BI)I
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=6, args_size=2
        start local 0 // byte[] value
        start local 1 // int offset
         0: .line 92
            aload 0 /* value */
            iload 1 /* offset */
            baload
            istore 2 /* header */
        start local 2 // byte header
         1: .line 94
            iload 2 /* header */
            invokestatic jdk.internal.jimage.decompressor.CompressIndexes.getHeaderLength:(B)I
            istore 3 /* size */
        start local 3 // int size
         2: .line 96
            iload 2 /* header */
            invokestatic jdk.internal.jimage.decompressor.CompressIndexes.getHeaderValue:(B)I
            istore 4 /* result */
        start local 4 // int result
         3: .line 99
            iconst_1
            istore 5 /* i */
        start local 5 // int i
         4: goto 8
         5: .line 101
      StackMap locals: byte[] int int int int int
      StackMap stack:
            iload 4 /* result */
            bipush 8
            ishl
            istore 4 /* result */
         6: .line 102
            iload 4 /* result */
            aload 0 /* value */
            iload 1 /* offset */
            iload 5 /* i */
            iadd
            baload
            sipush 255
            iand
            ior
            istore 4 /* result */
         7: .line 99
            iinc 5 /* i */ 1
      StackMap locals:
      StackMap stack:
         8: iload 5 /* i */
            iload 3 /* size */
            if_icmplt 5
        end local 5 // int i
         9: .line 105
            iload 4 /* result */
            ireturn
        end local 4 // int result
        end local 3 // int size
        end local 2 // byte header
        end local 1 // int offset
        end local 0 // byte[] value
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   10     0   value  [B
            0   10     1  offset  I
            1   10     2  header  B
            2   10     3    size  I
            3   10     4  result  I
            4    9     5       i  I
    MethodParameters:
        Name  Flags
      value   
      offset  

  public static byte[] compress(int);
    descriptor: (I)[B
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=6, locals=5, args_size=1
        start local 0 // int value
         0: .line 110
            iload 0 /* value */
            ifge 2
         1: .line 111
            new java.lang.IllegalArgumentException
            dup
            ldc "value < 0"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 115
      StackMap locals:
      StackMap stack:
            bipush 32
            iload 0 /* value */
            invokestatic java.lang.Integer.numberOfLeadingZeros:(I)I
            isub
            istore 1 /* width */
        start local 1 // int width
         3: .line 118
            iload 1 /* width */
            iconst_3
            iadd
            iconst_1
            isub
            iconst_3
            ishr
            iconst_1
            iadd
            iconst_4
            invokestatic java.lang.Math.min:(II)I
            istore 2 /* size */
        start local 2 // int size
         4: .line 121
            iload 2 /* size */
            newarray 8
            astore 3 /* result */
        start local 3 // byte[] result
         5: .line 124
            iconst_0
            istore 4 /* i */
        start local 4 // int i
         6: goto 9
         7: .line 125
      StackMap locals: int int int byte[] int
      StackMap stack:
            aload 3 /* result */
            iload 4 /* i */
            iload 0 /* value */
            iload 2 /* size */
            iload 4 /* i */
            isub
            iconst_1
            isub
            bipush 8
            imul
            ishr
            i2b
            bastore
         8: .line 124
            iinc 4 /* i */ 1
      StackMap locals:
      StackMap stack:
         9: iload 4 /* i */
            iload 2 /* size */
            if_icmplt 7
        end local 4 // int i
        10: .line 129
            iload 2 /* size */
            iconst_4
            if_icmpge 12
        11: .line 130
            aload 3 /* result */
            iconst_0
            dup2
            baload
            sipush 128
            iload 2 /* size */
            iconst_5
            ishl
            ior
            i2b
            ior
            i2b
            bastore
        12: .line 133
      StackMap locals:
      StackMap stack:
            aload 3 /* result */
            areturn
        end local 3 // byte[] result
        end local 2 // int size
        end local 1 // int width
        end local 0 // int value
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   13     0   value  I
            3   13     1   width  I
            4   13     2    size  I
            5   13     3  result  [B
            6   10     4       i  I
    MethodParameters:
       Name  Flags
      value  
}
SourceFile: "CompressIndexes.java"