class java.lang.invoke.MethodHandles$Lookup$ClassFile
  minor version: 0
  major version: 59
  flags: flags: (0x0020) ACC_SUPER
  this_class: java.lang.invoke.MethodHandles$Lookup$ClassFile
  super_class: java.lang.Object
{
  final java.lang.String name;
    descriptor: Ljava/lang/String;
    flags: (0x0010) ACC_FINAL

  final int accessFlags;
    descriptor: I
    flags: (0x0010) ACC_FINAL

  final byte[] bytes;
    descriptor: [B
    flags: (0x0010) ACC_FINAL

  void <init>(java.lang.String, int, byte[]);
    descriptor: (Ljava/lang/String;I[B)V
    flags: (0x0000) 
    Code:
      stack=2, locals=4, args_size=4
        start local 0 // java.lang.invoke.MethodHandles$Lookup$ClassFile this
        start local 1 // java.lang.String name
        start local 2 // int accessFlags
        start local 3 // byte[] bytes
         0: .line 2228
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 2229
            aload 0 /* this */
            aload 1 /* name */
            putfield java.lang.invoke.MethodHandles$Lookup$ClassFile.name:Ljava/lang/String;
         2: .line 2230
            aload 0 /* this */
            iload 2 /* accessFlags */
            putfield java.lang.invoke.MethodHandles$Lookup$ClassFile.accessFlags:I
         3: .line 2231
            aload 0 /* this */
            aload 3 /* bytes */
            putfield java.lang.invoke.MethodHandles$Lookup$ClassFile.bytes:[B
         4: .line 2232
            return
        end local 3 // byte[] bytes
        end local 2 // int accessFlags
        end local 1 // java.lang.String name
        end local 0 // java.lang.invoke.MethodHandles$Lookup$ClassFile this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    5     0         this  Ljava/lang/invoke/MethodHandles$Lookup$ClassFile;
            0    5     1         name  Ljava/lang/String;
            0    5     2  accessFlags  I
            0    5     3        bytes  [B
    MethodParameters:
             Name  Flags
      name         
      accessFlags  
      bytes        

  static java.lang.invoke.MethodHandles$Lookup$ClassFile newInstanceNoCheck(java.lang.String, byte[]);
    descriptor: (Ljava/lang/String;[B)Ljava/lang/invoke/MethodHandles$Lookup$ClassFile;
    flags: (0x0008) ACC_STATIC
    Code:
      stack=5, locals=2, args_size=2
        start local 0 // java.lang.String name
        start local 1 // byte[] bytes
         0: .line 2235
            new java.lang.invoke.MethodHandles$Lookup$ClassFile
            dup
            aload 0 /* name */
            iconst_0
            aload 1 /* bytes */
            invokespecial java.lang.invoke.MethodHandles$Lookup$ClassFile.<init>:(Ljava/lang/String;I[B)V
            areturn
        end local 1 // byte[] bytes
        end local 0 // java.lang.String name
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    1     0   name  Ljava/lang/String;
            0    1     1  bytes  [B
    MethodParameters:
       Name  Flags
      name   
      bytes  

  static java.lang.invoke.MethodHandles$Lookup$ClassFile newInstance(byte[], java.lang.String);
    descriptor: ([BLjava/lang/String;)Ljava/lang/invoke/MethodHandles$Lookup$ClassFile;
    flags: (0x0008) ACC_STATIC
    Code:
      stack=5, locals=11, args_size=2
        start local 0 // byte[] bytes
        start local 1 // java.lang.String pkgName
         0: .line 2247
            aload 0 /* bytes */
            iconst_0
            invokestatic java.lang.invoke.MethodHandles$Lookup$ClassFile.readInt:([BI)I
            istore 2 /* magic */
        start local 2 // int magic
         1: .line 2248
            iload 2 /* magic */
            ldc -889275714
            if_icmpeq 3
         2: .line 2249
            new java.lang.ClassFormatError
            dup
            new java.lang.StringBuilder
            dup
            ldc "Incompatible magic value: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            iload 2 /* magic */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.lang.ClassFormatError.<init>:(Ljava/lang/String;)V
            athrow
         3: .line 2251
      StackMap locals: int
      StackMap stack:
            aload 0 /* bytes */
            iconst_4
            invokestatic java.lang.invoke.MethodHandles$Lookup$ClassFile.readUnsignedShort:([BI)I
            istore 3 /* minor */
        start local 3 // int minor
         4: .line 2252
            aload 0 /* bytes */
            bipush 6
            invokestatic java.lang.invoke.MethodHandles$Lookup$ClassFile.readUnsignedShort:([BI)I
            istore 4 /* major */
        start local 4 // int major
         5: .line 2253
            iload 4 /* major */
            iload 3 /* minor */
            invokestatic jdk.internal.misc.VM.isSupportedClassFileVersion:(II)Z
            ifne 7
         6: .line 2254
            new java.lang.UnsupportedClassVersionError
            dup
            new java.lang.StringBuilder
            dup
            ldc "Unsupported class file version "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            iload 4 /* major */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            ldc "."
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            iload 3 /* minor */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.lang.UnsupportedClassVersionError.<init>:(Ljava/lang/String;)V
            athrow
         7: .line 2260
      StackMap locals: int int
      StackMap stack:
            new jdk.internal.org.objectweb.asm.ClassReader
            dup
            aload 0 /* bytes */
            invokespecial jdk.internal.org.objectweb.asm.ClassReader.<init>:([B)V
            astore 7 /* reader */
        start local 7 // jdk.internal.org.objectweb.asm.ClassReader reader
         8: .line 2263
            aload 7 /* reader */
            aload 7 /* reader */
            getfield jdk.internal.org.objectweb.asm.ClassReader.header:I
            iconst_2
            iadd
            invokevirtual jdk.internal.org.objectweb.asm.ClassReader.readUnsignedShort:(I)I
            istore 8 /* thisClass */
        start local 8 // int thisClass
         9: .line 2264
            aload 7 /* reader */
            iload 8 /* thisClass */
            aload 7 /* reader */
            invokevirtual jdk.internal.org.objectweb.asm.ClassReader.getMaxStringLength:()I
            newarray 5
            invokevirtual jdk.internal.org.objectweb.asm.ClassReader.readConst:(I[C)Ljava/lang/Object;
            astore 9 /* constant */
        start local 9 // java.lang.Object constant
        10: .line 2265
            aload 9 /* constant */
            instanceof jdk.internal.org.objectweb.asm.Type
            ifne 12
        11: .line 2266
            new java.lang.ClassFormatError
            dup
            new java.lang.StringBuilder
            dup
            ldc "this_class item: #"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            iload 8 /* thisClass */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            ldc " not a CONSTANT_Class_info"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.lang.ClassFormatError.<init>:(Ljava/lang/String;)V
            athrow
        12: .line 2268
      StackMap locals: byte[] java.lang.String int int int top top jdk.internal.org.objectweb.asm.ClassReader int java.lang.Object
      StackMap stack:
            aload 9 /* constant */
            checkcast jdk.internal.org.objectweb.asm.Type
            astore 10 /* type */
        start local 10 // jdk.internal.org.objectweb.asm.Type type
        13: .line 2269
            aload 10 /* type */
            invokevirtual jdk.internal.org.objectweb.asm.Type.getDescriptor:()Ljava/lang/String;
            ldc "L"
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
            ifne 15
        14: .line 2270
            new java.lang.ClassFormatError
            dup
            new java.lang.StringBuilder
            dup
            ldc "this_class item: #"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            iload 8 /* thisClass */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            ldc " not a CONSTANT_Class_info"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.lang.ClassFormatError.<init>:(Ljava/lang/String;)V
            athrow
        15: .line 2272
      StackMap locals: jdk.internal.org.objectweb.asm.Type
      StackMap stack:
            aload 10 /* type */
            invokevirtual jdk.internal.org.objectweb.asm.Type.getClassName:()Ljava/lang/String;
            astore 5 /* name */
        start local 5 // java.lang.String name
        16: .line 2273
            aload 7 /* reader */
            aload 7 /* reader */
            getfield jdk.internal.org.objectweb.asm.ClassReader.header:I
            invokevirtual jdk.internal.org.objectweb.asm.ClassReader.readUnsignedShort:(I)I
            istore 6 /* accessFlags */
        end local 10 // jdk.internal.org.objectweb.asm.Type type
        end local 9 // java.lang.Object constant
        end local 8 // int thisClass
        end local 7 // jdk.internal.org.objectweb.asm.ClassReader reader
        start local 6 // int accessFlags
        17: .line 2274
            goto 22
        end local 6 // int accessFlags
        end local 5 // java.lang.String name
      StackMap locals: byte[] java.lang.String int int int
      StackMap stack: java.lang.RuntimeException
        18: astore 7 /* e */
        start local 7 // java.lang.RuntimeException e
        19: .line 2276
            new java.lang.ClassFormatError
            dup
            invokespecial java.lang.ClassFormatError.<init>:()V
            astore 8 /* cfe */
        start local 8 // java.lang.ClassFormatError cfe
        20: .line 2277
            aload 8 /* cfe */
            aload 7 /* e */
            invokevirtual java.lang.ClassFormatError.initCause:(Ljava/lang/Throwable;)Ljava/lang/Throwable;
            pop
        21: .line 2278
            aload 8 /* cfe */
            athrow
        end local 8 // java.lang.ClassFormatError cfe
        end local 7 // java.lang.RuntimeException e
        start local 5 // java.lang.String name
        start local 6 // int accessFlags
        22: .line 2282
      StackMap locals: java.lang.String int
      StackMap stack:
            iload 6 /* accessFlags */
            ldc 32768
            iand
            ifeq 24
        23: .line 2283
            ldc "Not a class or interface: ACC_MODULE flag is set"
            invokestatic java.lang.invoke.MethodHandleStatics.newIllegalArgumentException:(Ljava/lang/String;)Ljava/lang/RuntimeException;
            athrow
        24: .line 2287
      StackMap locals:
      StackMap stack:
            aload 5 /* name */
            bipush 46
            invokevirtual java.lang.String.lastIndexOf:(I)I
            istore 7 /* index */
        start local 7 // int index
        25: .line 2288
            iload 7 /* index */
            iconst_m1
            if_icmpne 26
            ldc ""
            goto 27
      StackMap locals: int
      StackMap stack:
        26: aload 5 /* name */
            iconst_0
            iload 7 /* index */
            invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
      StackMap locals:
      StackMap stack: java.lang.String
        27: astore 8 /* pn */
        start local 8 // java.lang.String pn
        28: .line 2289
            aload 8 /* pn */
            aload 1 /* pkgName */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 30
        29: .line 2290
            new java.lang.StringBuilder
            dup
            aload 5 /* name */
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc " not in same package as lookup class"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokestatic java.lang.invoke.MethodHandleStatics.newIllegalArgumentException:(Ljava/lang/String;)Ljava/lang/RuntimeException;
            athrow
        30: .line 2293
      StackMap locals: java.lang.String
      StackMap stack:
            new java.lang.invoke.MethodHandles$Lookup$ClassFile
            dup
            aload 5 /* name */
            iload 6 /* accessFlags */
            aload 0 /* bytes */
            invokespecial java.lang.invoke.MethodHandles$Lookup$ClassFile.<init>:(Ljava/lang/String;I[B)V
            areturn
        end local 8 // java.lang.String pn
        end local 7 // int index
        end local 6 // int accessFlags
        end local 5 // java.lang.String name
        end local 4 // int major
        end local 3 // int minor
        end local 2 // int magic
        end local 1 // java.lang.String pkgName
        end local 0 // byte[] bytes
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   31     0        bytes  [B
            0   31     1      pkgName  Ljava/lang/String;
            1   31     2        magic  I
            4   31     3        minor  I
            5   31     4        major  I
           16   18     5         name  Ljava/lang/String;
           22   31     5         name  Ljava/lang/String;
           17   18     6  accessFlags  I
           22   31     6  accessFlags  I
            8   17     7       reader  Ljdk/internal/org/objectweb/asm/ClassReader;
            9   17     8    thisClass  I
           10   17     9     constant  Ljava/lang/Object;
           13   17    10         type  Ljdk/internal/org/objectweb/asm/Type;
           19   22     7            e  Ljava/lang/RuntimeException;
           20   22     8          cfe  Ljava/lang/ClassFormatError;
           25   31     7        index  I
           28   31     8           pn  Ljava/lang/String;
      Exception table:
        from    to  target  type
           7    17      18  Class java.lang.RuntimeException
    MethodParameters:
         Name  Flags
      bytes    
      pkgName  

  private static int readInt(byte[], int);
    descriptor: ([BI)I
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // byte[] bytes
        start local 1 // int offset
         0: .line 2297
            iload 1 /* offset */
            iconst_4
            iadd
            aload 0 /* bytes */
            arraylength
            if_icmple 2
         1: .line 2298
            new java.lang.ClassFormatError
            dup
            ldc "Invalid ClassFile structure"
            invokespecial java.lang.ClassFormatError.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 2300
      StackMap locals:
      StackMap stack:
            aload 0 /* bytes */
            iload 1 /* offset */
            baload
            sipush 255
            iand
            bipush 24
            ishl
         3: .line 2301
            aload 0 /* bytes */
            iload 1 /* offset */
            iconst_1
            iadd
            baload
            sipush 255
            iand
            bipush 16
            ishl
         4: .line 2300
            ior
         5: .line 2302
            aload 0 /* bytes */
            iload 1 /* offset */
            iconst_2
            iadd
            baload
            sipush 255
            iand
            bipush 8
            ishl
         6: .line 2300
            ior
         7: .line 2303
            aload 0 /* bytes */
            iload 1 /* offset */
            iconst_3
            iadd
            baload
            sipush 255
            iand
         8: .line 2300
            ior
            ireturn
        end local 1 // int offset
        end local 0 // byte[] bytes
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    9     0   bytes  [B
            0    9     1  offset  I
    MethodParameters:
        Name  Flags
      bytes   
      offset  

  private static int readUnsignedShort(byte[], int);
    descriptor: ([BI)I
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // byte[] bytes
        start local 1 // int offset
         0: .line 2307
            iload 1 /* offset */
            iconst_2
            iadd
            aload 0 /* bytes */
            arraylength
            if_icmple 2
         1: .line 2308
            new java.lang.ClassFormatError
            dup
            ldc "Invalid ClassFile structure"
            invokespecial java.lang.ClassFormatError.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 2310
      StackMap locals:
      StackMap stack:
            aload 0 /* bytes */
            iload 1 /* offset */
            baload
            sipush 255
            iand
            bipush 8
            ishl
            aload 0 /* bytes */
            iload 1 /* offset */
            iconst_1
            iadd
            baload
            sipush 255
            iand
            ior
            ireturn
        end local 1 // int offset
        end local 0 // byte[] bytes
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    3     0   bytes  [B
            0    3     1  offset  I
    MethodParameters:
        Name  Flags
      bytes   
      offset  
}
SourceFile: "MethodHandles.java"
NestHost: java.lang.invoke.MethodHandles
InnerClasses:
  public final Lookup = java.lang.invoke.MethodHandles$Lookup of java.lang.invoke.MethodHandles
  ClassFile = java.lang.invoke.MethodHandles$Lookup$ClassFile of java.lang.invoke.MethodHandles$Lookup