public class sun.java2d.cmm.ProfileDataVerifier
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: sun.java2d.cmm.ProfileDataVerifier
  super_class: java.lang.Object
{
  private static final int MAX_TAG_COUNT;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 100

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

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

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

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

  public void <init>();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // sun.java2d.cmm.ProfileDataVerifier this
         0: .line 28
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
            return
        end local 0 // sun.java2d.cmm.ProfileDataVerifier this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lsun/java2d/cmm/ProfileDataVerifier;

  public static void verify(byte[]);
    descriptor: ([B)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=7, args_size=1
        start local 0 // byte[] data
         0: .line 36
            aload 0 /* data */
            ifnonnull 2
         1: .line 37
            new java.lang.IllegalArgumentException
            dup
            ldc "Invalid ICC Profile Data"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 40
      StackMap locals:
      StackMap stack:
            aload 0 /* data */
            arraylength
            sipush 132
            if_icmpge 4
         3: .line 42
            new java.lang.IllegalArgumentException
            dup
            ldc "Invalid ICC Profile Data"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         4: .line 46
      StackMap locals:
      StackMap stack:
            aload 0 /* data */
            iconst_0
            invokestatic sun.java2d.cmm.ProfileDataVerifier.readInt32:([BI)I
            istore 1 /* size */
        start local 1 // int size
         5: .line 47
            aload 0 /* data */
            sipush 128
            invokestatic sun.java2d.cmm.ProfileDataVerifier.readInt32:([BI)I
            istore 2 /* tagCount */
        start local 2 // int tagCount
         6: .line 49
            iload 2 /* tagCount */
            iflt 7
            iload 2 /* tagCount */
            bipush 100
            if_icmple 8
         7: .line 50
      StackMap locals: int int
      StackMap stack:
            new java.lang.IllegalArgumentException
            dup
            ldc "Invalid ICC Profile Data"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         8: .line 53
      StackMap locals:
      StackMap stack:
            iload 1 /* size */
            sipush 132
            iload 2 /* tagCount */
            bipush 12
            imul
            iadd
            if_icmplt 10
         9: .line 54
            iload 1 /* size */
            aload 0 /* data */
            arraylength
            if_icmple 11
        10: .line 56
      StackMap locals:
      StackMap stack:
            new java.lang.IllegalArgumentException
            dup
            ldc "Invalid ICC Profile Data"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
        11: .line 59
      StackMap locals:
      StackMap stack:
            aload 0 /* data */
            bipush 36
            invokestatic sun.java2d.cmm.ProfileDataVerifier.readInt32:([BI)I
            istore 3 /* sig */
        start local 3 // int sig
        12: .line 61
            ldc 1633907568
            iload 3 /* sig */
            if_icmpeq 14
        13: .line 62
            new java.lang.IllegalArgumentException
            dup
            ldc "Invalid ICC Profile Data"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
        14: .line 66
      StackMap locals: int
      StackMap stack:
            iconst_0
            istore 4 /* i */
        start local 4 // int i
        15: goto 25
        16: .line 67
      StackMap locals: int
      StackMap stack:
            iload 4 /* i */
            aload 0 /* data */
            invokestatic sun.java2d.cmm.ProfileDataVerifier.getTagOffset:(I[B)I
            istore 5 /* tag_offset */
        start local 5 // int tag_offset
        17: .line 68
            iload 4 /* i */
            aload 0 /* data */
            invokestatic sun.java2d.cmm.ProfileDataVerifier.getTagSize:(I[B)I
            istore 6 /* tag_size */
        start local 6 // int tag_size
        18: .line 70
            iload 5 /* tag_offset */
            sipush 132
            if_icmplt 19
            iload 5 /* tag_offset */
            iload 1 /* size */
            if_icmple 20
        19: .line 71
      StackMap locals: int int
      StackMap stack:
            new java.lang.IllegalArgumentException
            dup
            ldc "Invalid ICC Profile Data"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
        20: .line 74
      StackMap locals:
      StackMap stack:
            iload 6 /* tag_size */
            iflt 23
        21: .line 75
            iload 6 /* tag_size */
            ldc 2147483647
            iload 5 /* tag_offset */
            isub
            if_icmpgt 23
        22: .line 76
            iload 6 /* tag_size */
            iload 5 /* tag_offset */
            iadd
            iload 1 /* size */
            if_icmple 24
        23: .line 78
      StackMap locals:
      StackMap stack:
            new java.lang.IllegalArgumentException
            dup
            ldc "Invalid ICC Profile Data"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
        end local 6 // int tag_size
        end local 5 // int tag_offset
        24: .line 66
      StackMap locals:
      StackMap stack:
            iinc 4 /* i */ 1
      StackMap locals:
      StackMap stack:
        25: iload 4 /* i */
            iload 2 /* tagCount */
            if_icmplt 16
        end local 4 // int i
        26: .line 81
            return
        end local 3 // int sig
        end local 2 // int tagCount
        end local 1 // int size
        end local 0 // byte[] data
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   27     0        data  [B
            5   27     1        size  I
            6   27     2    tagCount  I
           12   27     3         sig  I
           15   26     4           i  I
           17   24     5  tag_offset  I
           18   24     6    tag_size  I
    MethodParameters:
      Name  Flags
      data  

  private static int getTagOffset(int, byte[]);
    descriptor: (I[B)I
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // int idx
        start local 1 // byte[] data
         0: .line 84
            sipush 132
            iload 0 /* idx */
            bipush 12
            imul
            iadd
            iconst_4
            iadd
            istore 2 /* pos */
        start local 2 // int pos
         1: .line 85
            aload 1 /* data */
            iload 2 /* pos */
            invokestatic sun.java2d.cmm.ProfileDataVerifier.readInt32:([BI)I
            ireturn
        end local 2 // int pos
        end local 1 // byte[] data
        end local 0 // int idx
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0   idx  I
            0    2     1  data  [B
            1    2     2   pos  I
    MethodParameters:
      Name  Flags
      idx   
      data  

  private static int getTagSize(int, byte[]);
    descriptor: (I[B)I
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // int idx
        start local 1 // byte[] data
         0: .line 89
            sipush 132
            iload 0 /* idx */
            bipush 12
            imul
            iadd
            bipush 8
            iadd
            istore 2 /* pos */
        start local 2 // int pos
         1: .line 90
            aload 1 /* data */
            iload 2 /* pos */
            invokestatic sun.java2d.cmm.ProfileDataVerifier.readInt32:([BI)I
            ireturn
        end local 2 // int pos
        end local 1 // byte[] data
        end local 0 // int idx
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0   idx  I
            0    2     1  data  [B
            1    2     2   pos  I
    MethodParameters:
      Name  Flags
      idx   
      data  

  private static int readInt32(byte[], int);
    descriptor: ([BI)I
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=4, locals=4, args_size=2
        start local 0 // byte[] data
        start local 1 // int off
         0: .line 94
            iconst_0
            istore 2 /* res */
        start local 2 // int res
         1: .line 95
            iconst_0
            istore 3 /* i */
        start local 3 // int i
         2: goto 6
         3: .line 96
      StackMap locals: int int
      StackMap stack:
            iload 2 /* res */
            bipush 8
            ishl
            istore 2 /* res */
         4: .line 98
            iload 2 /* res */
            sipush 255
            aload 0 /* data */
            iload 1 /* off */
            iinc 1 /* off */ 1
            baload
            iand
            ior
            istore 2 /* res */
         5: .line 95
            iinc 3 /* i */ 1
      StackMap locals:
      StackMap stack:
         6: iload 3 /* i */
            iconst_4
            if_icmplt 3
        end local 3 // int i
         7: .line 100
            iload 2 /* res */
            ireturn
        end local 2 // int res
        end local 1 // int off
        end local 0 // byte[] data
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    8     0  data  [B
            0    8     1   off  I
            1    8     2   res  I
            2    7     3     i  I
    MethodParameters:
      Name  Flags
      data  
      off   
}
SourceFile: "ProfileDataVerifier.java"