class java.io.ObjectStreamClass$FieldReflector
  minor version: 0
  major version: 59
  flags: flags: (0x0020) ACC_SUPER
  this_class: java.io.ObjectStreamClass$FieldReflector
  super_class: java.lang.Object
{
  private static final jdk.internal.misc.Unsafe unsafe;
    descriptor: Ljdk/internal/misc/Unsafe;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  private final java.io.ObjectStreamField[] fields;
    descriptor: [Ljava/io/ObjectStreamField;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final int numPrimFields;
    descriptor: I
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final long[] readKeys;
    descriptor: [J
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final long[] writeKeys;
    descriptor: [J
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final int[] offsets;
    descriptor: [I
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final char[] typeCodes;
    descriptor: [C
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final java.lang.Class<?>[] types;
    descriptor: [Ljava/lang/Class;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: [Ljava/lang/Class<*>;

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=1, locals=0, args_size=0
         0: .line 1963
            invokestatic jdk.internal.misc.Unsafe.getUnsafe:()Ljdk/internal/misc/Unsafe;
            putstatic java.io.ObjectStreamClass$FieldReflector.unsafe:Ljdk/internal/misc/Unsafe;
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  void <init>(java.io.ObjectStreamField[]);
    descriptor: ([Ljava/io/ObjectStreamField;)V
    flags: (0x0000) 
    Code:
      stack=5, locals=10, args_size=2
        start local 0 // java.io.ObjectStreamClass$FieldReflector this
        start local 1 // java.io.ObjectStreamField[] fields
         0: .line 1987
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 1988
            aload 0 /* this */
            aload 1 /* fields */
            putfield java.io.ObjectStreamClass$FieldReflector.fields:[Ljava/io/ObjectStreamField;
         2: .line 1989
            aload 1 /* fields */
            arraylength
            istore 2 /* nfields */
        start local 2 // int nfields
         3: .line 1990
            aload 0 /* this */
            iload 2 /* nfields */
            newarray 11
            putfield java.io.ObjectStreamClass$FieldReflector.readKeys:[J
         4: .line 1991
            aload 0 /* this */
            iload 2 /* nfields */
            newarray 11
            putfield java.io.ObjectStreamClass$FieldReflector.writeKeys:[J
         5: .line 1992
            aload 0 /* this */
            iload 2 /* nfields */
            newarray 10
            putfield java.io.ObjectStreamClass$FieldReflector.offsets:[I
         6: .line 1993
            aload 0 /* this */
            iload 2 /* nfields */
            newarray 5
            putfield java.io.ObjectStreamClass$FieldReflector.typeCodes:[C
         7: .line 1994
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 3 /* typeList */
        start local 3 // java.util.ArrayList typeList
         8: .line 1995
            new java.util.HashSet
            dup
            invokespecial java.util.HashSet.<init>:()V
            astore 4 /* usedKeys */
        start local 4 // java.util.Set usedKeys
         9: .line 1998
            iconst_0
            istore 5 /* i */
        start local 5 // int i
        10: goto 29
        11: .line 1999
      StackMap locals: java.io.ObjectStreamClass$FieldReflector java.io.ObjectStreamField[] int java.util.ArrayList java.util.Set int
      StackMap stack:
            aload 1 /* fields */
            iload 5 /* i */
            aaload
            astore 6 /* f */
        start local 6 // java.io.ObjectStreamField f
        12: .line 2000
            aload 6 /* f */
            invokevirtual java.io.ObjectStreamField.getField:()Ljava/lang/reflect/Field;
            astore 7 /* rf */
        start local 7 // java.lang.reflect.Field rf
        13: .line 2001
            aload 7 /* rf */
            ifnull 15
        14: .line 2002
            getstatic java.io.ObjectStreamClass$FieldReflector.unsafe:Ljdk/internal/misc/Unsafe;
            aload 7 /* rf */
            invokevirtual jdk.internal.misc.Unsafe.objectFieldOffset:(Ljava/lang/reflect/Field;)J
            goto 16
      StackMap locals: java.io.ObjectStreamField java.lang.reflect.Field
      StackMap stack:
        15: ldc -1
        16: .line 2001
      StackMap locals:
      StackMap stack: long
            lstore 8 /* key */
        start local 8 // long key
        17: .line 2003
            aload 0 /* this */
            getfield java.io.ObjectStreamClass$FieldReflector.readKeys:[J
            iload 5 /* i */
            lload 8 /* key */
            lastore
        18: .line 2004
            aload 0 /* this */
            getfield java.io.ObjectStreamClass$FieldReflector.writeKeys:[J
            iload 5 /* i */
            aload 4 /* usedKeys */
            lload 8 /* key */
            invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            ifeq 20
        19: .line 2005
            lload 8 /* key */
            goto 21
      StackMap locals: java.io.ObjectStreamClass$FieldReflector java.io.ObjectStreamField[] int java.util.ArrayList java.util.Set int java.io.ObjectStreamField java.lang.reflect.Field long
      StackMap stack: long[] int
        20: ldc -1
        21: .line 2004
      StackMap locals: java.io.ObjectStreamClass$FieldReflector java.io.ObjectStreamField[] int java.util.ArrayList java.util.Set int java.io.ObjectStreamField java.lang.reflect.Field long
      StackMap stack: long[] int long
            lastore
        22: .line 2006
            aload 0 /* this */
            getfield java.io.ObjectStreamClass$FieldReflector.offsets:[I
            iload 5 /* i */
            aload 6 /* f */
            invokevirtual java.io.ObjectStreamField.getOffset:()I
            iastore
        23: .line 2007
            aload 0 /* this */
            getfield java.io.ObjectStreamClass$FieldReflector.typeCodes:[C
            iload 5 /* i */
            aload 6 /* f */
            invokevirtual java.io.ObjectStreamField.getTypeCode:()C
            castore
        24: .line 2008
            aload 6 /* f */
            invokevirtual java.io.ObjectStreamField.isPrimitive:()Z
            ifne 28
        25: .line 2009
            aload 3 /* typeList */
            aload 7 /* rf */
            ifnull 26
            aload 7 /* rf */
            invokevirtual java.lang.reflect.Field.getType:()Ljava/lang/Class;
            goto 27
      StackMap locals:
      StackMap stack: java.util.ArrayList
        26: aconst_null
      StackMap locals: java.io.ObjectStreamClass$FieldReflector java.io.ObjectStreamField[] int java.util.ArrayList java.util.Set int java.io.ObjectStreamField java.lang.reflect.Field long
      StackMap stack: java.util.ArrayList java.lang.Class
        27: invokevirtual java.util.ArrayList.add:(Ljava/lang/Object;)Z
            pop
        end local 8 // long key
        end local 7 // java.lang.reflect.Field rf
        end local 6 // java.io.ObjectStreamField f
        28: .line 1998
      StackMap locals:
      StackMap stack:
            iinc 5 /* i */ 1
      StackMap locals:
      StackMap stack:
        29: iload 5 /* i */
            iload 2 /* nfields */
            if_icmplt 11
        end local 5 // int i
        30: .line 2013
            aload 0 /* this */
            aload 3 /* typeList */
            aload 3 /* typeList */
            invokevirtual java.util.ArrayList.size:()I
            anewarray java.lang.Class
            invokevirtual java.util.ArrayList.toArray:([Ljava/lang/Object;)[Ljava/lang/Object;
            checkcast java.lang.Class[]
            putfield java.io.ObjectStreamClass$FieldReflector.types:[Ljava/lang/Class;
        31: .line 2014
            aload 0 /* this */
            iload 2 /* nfields */
            aload 0 /* this */
            getfield java.io.ObjectStreamClass$FieldReflector.types:[Ljava/lang/Class;
            arraylength
            isub
            putfield java.io.ObjectStreamClass$FieldReflector.numPrimFields:I
        32: .line 2015
            return
        end local 4 // java.util.Set usedKeys
        end local 3 // java.util.ArrayList typeList
        end local 2 // int nfields
        end local 1 // java.io.ObjectStreamField[] fields
        end local 0 // java.io.ObjectStreamClass$FieldReflector this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   33     0      this  Ljava/io/ObjectStreamClass$FieldReflector;
            0   33     1    fields  [Ljava/io/ObjectStreamField;
            3   33     2   nfields  I
            8   33     3  typeList  Ljava/util/ArrayList<Ljava/lang/Class<*>;>;
            9   33     4  usedKeys  Ljava/util/Set<Ljava/lang/Long;>;
           10   30     5         i  I
           12   28     6         f  Ljava/io/ObjectStreamField;
           13   28     7        rf  Ljava/lang/reflect/Field;
           17   28     8       key  J
    MethodParameters:
        Name  Flags
      fields  

  java.io.ObjectStreamField[] getFields();
    descriptor: ()[Ljava/io/ObjectStreamField;
    flags: (0x0000) 
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // java.io.ObjectStreamClass$FieldReflector this
         0: .line 2024
            aload 0 /* this */
            getfield java.io.ObjectStreamClass$FieldReflector.fields:[Ljava/io/ObjectStreamField;
            areturn
        end local 0 // java.io.ObjectStreamClass$FieldReflector this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljava/io/ObjectStreamClass$FieldReflector;

  void getPrimFieldValues(java.lang.Object, byte[]);
    descriptor: (Ljava/lang/Object;[B)V
    flags: (0x0000) 
    Code:
      stack=6, locals=7, args_size=3
        start local 0 // java.io.ObjectStreamClass$FieldReflector this
        start local 1 // java.lang.Object obj
        start local 2 // byte[] buf
         0: .line 2033
            aload 1 /* obj */
            ifnonnull 2
         1: .line 2034
            new java.lang.NullPointerException
            dup
            invokespecial java.lang.NullPointerException.<init>:()V
            athrow
         2: .line 2040
      StackMap locals:
      StackMap stack:
            iconst_0
            istore 3 /* i */
        start local 3 // int i
         3: goto 25
         4: .line 2041
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            getfield java.io.ObjectStreamClass$FieldReflector.readKeys:[J
            iload 3 /* i */
            laload
            lstore 4 /* key */
        start local 4 // long key
         5: .line 2042
            aload 0 /* this */
            getfield java.io.ObjectStreamClass$FieldReflector.offsets:[I
            iload 3 /* i */
            iaload
            istore 6 /* off */
        start local 6 // int off
         6: .line 2043
            aload 0 /* this */
            getfield java.io.ObjectStreamClass$FieldReflector.typeCodes:[C
            iload 3 /* i */
            caload
            lookupswitch { // 8
                   66: 9
                   67: 11
                   68: 21
                   70: 17
                   73: 15
                   74: 19
                   83: 13
                   90: 7
              default: 23
          }
         7: .line 2045
      StackMap locals: long int
      StackMap stack:
            aload 2 /* buf */
            iload 6 /* off */
            getstatic java.io.ObjectStreamClass$FieldReflector.unsafe:Ljdk/internal/misc/Unsafe;
            aload 1 /* obj */
            lload 4 /* key */
            invokevirtual jdk.internal.misc.Unsafe.getBoolean:(Ljava/lang/Object;J)Z
            invokestatic java.io.Bits.putBoolean:([BIZ)V
         8: .line 2046
            goto 24
         9: .line 2049
      StackMap locals:
      StackMap stack:
            aload 2 /* buf */
            iload 6 /* off */
            getstatic java.io.ObjectStreamClass$FieldReflector.unsafe:Ljdk/internal/misc/Unsafe;
            aload 1 /* obj */
            lload 4 /* key */
            invokevirtual jdk.internal.misc.Unsafe.getByte:(Ljava/lang/Object;J)B
            bastore
        10: .line 2050
            goto 24
        11: .line 2053
      StackMap locals:
      StackMap stack:
            aload 2 /* buf */
            iload 6 /* off */
            getstatic java.io.ObjectStreamClass$FieldReflector.unsafe:Ljdk/internal/misc/Unsafe;
            aload 1 /* obj */
            lload 4 /* key */
            invokevirtual jdk.internal.misc.Unsafe.getChar:(Ljava/lang/Object;J)C
            invokestatic java.io.Bits.putChar:([BIC)V
        12: .line 2054
            goto 24
        13: .line 2057
      StackMap locals:
      StackMap stack:
            aload 2 /* buf */
            iload 6 /* off */
            getstatic java.io.ObjectStreamClass$FieldReflector.unsafe:Ljdk/internal/misc/Unsafe;
            aload 1 /* obj */
            lload 4 /* key */
            invokevirtual jdk.internal.misc.Unsafe.getShort:(Ljava/lang/Object;J)S
            invokestatic java.io.Bits.putShort:([BIS)V
        14: .line 2058
            goto 24
        15: .line 2061
      StackMap locals:
      StackMap stack:
            aload 2 /* buf */
            iload 6 /* off */
            getstatic java.io.ObjectStreamClass$FieldReflector.unsafe:Ljdk/internal/misc/Unsafe;
            aload 1 /* obj */
            lload 4 /* key */
            invokevirtual jdk.internal.misc.Unsafe.getInt:(Ljava/lang/Object;J)I
            invokestatic java.io.Bits.putInt:([BII)V
        16: .line 2062
            goto 24
        17: .line 2065
      StackMap locals:
      StackMap stack:
            aload 2 /* buf */
            iload 6 /* off */
            getstatic java.io.ObjectStreamClass$FieldReflector.unsafe:Ljdk/internal/misc/Unsafe;
            aload 1 /* obj */
            lload 4 /* key */
            invokevirtual jdk.internal.misc.Unsafe.getFloat:(Ljava/lang/Object;J)F
            invokestatic java.io.Bits.putFloat:([BIF)V
        18: .line 2066
            goto 24
        19: .line 2069
      StackMap locals:
      StackMap stack:
            aload 2 /* buf */
            iload 6 /* off */
            getstatic java.io.ObjectStreamClass$FieldReflector.unsafe:Ljdk/internal/misc/Unsafe;
            aload 1 /* obj */
            lload 4 /* key */
            invokevirtual jdk.internal.misc.Unsafe.getLong:(Ljava/lang/Object;J)J
            invokestatic java.io.Bits.putLong:([BIJ)V
        20: .line 2070
            goto 24
        21: .line 2073
      StackMap locals:
      StackMap stack:
            aload 2 /* buf */
            iload 6 /* off */
            getstatic java.io.ObjectStreamClass$FieldReflector.unsafe:Ljdk/internal/misc/Unsafe;
            aload 1 /* obj */
            lload 4 /* key */
            invokevirtual jdk.internal.misc.Unsafe.getDouble:(Ljava/lang/Object;J)D
            invokestatic java.io.Bits.putDouble:([BID)V
        22: .line 2074
            goto 24
        23: .line 2077
      StackMap locals:
      StackMap stack:
            new java.lang.InternalError
            dup
            invokespecial java.lang.InternalError.<init>:()V
            athrow
        end local 6 // int off
        end local 4 // long key
        24: .line 2040
      StackMap locals:
      StackMap stack:
            iinc 3 /* i */ 1
      StackMap locals:
      StackMap stack:
        25: iload 3 /* i */
            aload 0 /* this */
            getfield java.io.ObjectStreamClass$FieldReflector.numPrimFields:I
            if_icmplt 4
        end local 3 // int i
        26: .line 2080
            return
        end local 2 // byte[] buf
        end local 1 // java.lang.Object obj
        end local 0 // java.io.ObjectStreamClass$FieldReflector this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   27     0  this  Ljava/io/ObjectStreamClass$FieldReflector;
            0   27     1   obj  Ljava/lang/Object;
            0   27     2   buf  [B
            3   26     3     i  I
            5   24     4   key  J
            6   24     6   off  I
    MethodParameters:
      Name  Flags
      obj   
      buf   

  void setPrimFieldValues(java.lang.Object, byte[]);
    descriptor: (Ljava/lang/Object;[B)V
    flags: (0x0000) 
    Code:
      stack=6, locals=7, args_size=3
        start local 0 // java.io.ObjectStreamClass$FieldReflector this
        start local 1 // java.lang.Object obj
        start local 2 // byte[] buf
         0: .line 2088
            aload 1 /* obj */
            ifnonnull 2
         1: .line 2089
            new java.lang.NullPointerException
            dup
            invokespecial java.lang.NullPointerException.<init>:()V
            athrow
         2: .line 2091
      StackMap locals:
      StackMap stack:
            iconst_0
            istore 3 /* i */
        start local 3 // int i
         3: goto 27
         4: .line 2092
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            getfield java.io.ObjectStreamClass$FieldReflector.writeKeys:[J
            iload 3 /* i */
            laload
            lstore 4 /* key */
        start local 4 // long key
         5: .line 2093
            lload 4 /* key */
            ldc -1
            lcmp
            ifne 7
         6: .line 2094
            goto 26
         7: .line 2096
      StackMap locals: long
      StackMap stack:
            aload 0 /* this */
            getfield java.io.ObjectStreamClass$FieldReflector.offsets:[I
            iload 3 /* i */
            iaload
            istore 6 /* off */
        start local 6 // int off
         8: .line 2097
            aload 0 /* this */
            getfield java.io.ObjectStreamClass$FieldReflector.typeCodes:[C
            iload 3 /* i */
            caload
            lookupswitch { // 8
                   66: 11
                   67: 13
                   68: 23
                   70: 19
                   73: 17
                   74: 21
                   83: 15
                   90: 9
              default: 25
          }
         9: .line 2099
      StackMap locals: int
      StackMap stack:
            getstatic java.io.ObjectStreamClass$FieldReflector.unsafe:Ljdk/internal/misc/Unsafe;
            aload 1 /* obj */
            lload 4 /* key */
            aload 2 /* buf */
            iload 6 /* off */
            invokestatic java.io.Bits.getBoolean:([BI)Z
            invokevirtual jdk.internal.misc.Unsafe.putBoolean:(Ljava/lang/Object;JZ)V
        10: .line 2100
            goto 26
        11: .line 2103
      StackMap locals:
      StackMap stack:
            getstatic java.io.ObjectStreamClass$FieldReflector.unsafe:Ljdk/internal/misc/Unsafe;
            aload 1 /* obj */
            lload 4 /* key */
            aload 2 /* buf */
            iload 6 /* off */
            baload
            invokevirtual jdk.internal.misc.Unsafe.putByte:(Ljava/lang/Object;JB)V
        12: .line 2104
            goto 26
        13: .line 2107
      StackMap locals:
      StackMap stack:
            getstatic java.io.ObjectStreamClass$FieldReflector.unsafe:Ljdk/internal/misc/Unsafe;
            aload 1 /* obj */
            lload 4 /* key */
            aload 2 /* buf */
            iload 6 /* off */
            invokestatic java.io.Bits.getChar:([BI)C
            invokevirtual jdk.internal.misc.Unsafe.putChar:(Ljava/lang/Object;JC)V
        14: .line 2108
            goto 26
        15: .line 2111
      StackMap locals:
      StackMap stack:
            getstatic java.io.ObjectStreamClass$FieldReflector.unsafe:Ljdk/internal/misc/Unsafe;
            aload 1 /* obj */
            lload 4 /* key */
            aload 2 /* buf */
            iload 6 /* off */
            invokestatic java.io.Bits.getShort:([BI)S
            invokevirtual jdk.internal.misc.Unsafe.putShort:(Ljava/lang/Object;JS)V
        16: .line 2112
            goto 26
        17: .line 2115
      StackMap locals:
      StackMap stack:
            getstatic java.io.ObjectStreamClass$FieldReflector.unsafe:Ljdk/internal/misc/Unsafe;
            aload 1 /* obj */
            lload 4 /* key */
            aload 2 /* buf */
            iload 6 /* off */
            invokestatic java.io.Bits.getInt:([BI)I
            invokevirtual jdk.internal.misc.Unsafe.putInt:(Ljava/lang/Object;JI)V
        18: .line 2116
            goto 26
        19: .line 2119
      StackMap locals:
      StackMap stack:
            getstatic java.io.ObjectStreamClass$FieldReflector.unsafe:Ljdk/internal/misc/Unsafe;
            aload 1 /* obj */
            lload 4 /* key */
            aload 2 /* buf */
            iload 6 /* off */
            invokestatic java.io.Bits.getFloat:([BI)F
            invokevirtual jdk.internal.misc.Unsafe.putFloat:(Ljava/lang/Object;JF)V
        20: .line 2120
            goto 26
        21: .line 2123
      StackMap locals:
      StackMap stack:
            getstatic java.io.ObjectStreamClass$FieldReflector.unsafe:Ljdk/internal/misc/Unsafe;
            aload 1 /* obj */
            lload 4 /* key */
            aload 2 /* buf */
            iload 6 /* off */
            invokestatic java.io.Bits.getLong:([BI)J
            invokevirtual jdk.internal.misc.Unsafe.putLong:(Ljava/lang/Object;JJ)V
        22: .line 2124
            goto 26
        23: .line 2127
      StackMap locals:
      StackMap stack:
            getstatic java.io.ObjectStreamClass$FieldReflector.unsafe:Ljdk/internal/misc/Unsafe;
            aload 1 /* obj */
            lload 4 /* key */
            aload 2 /* buf */
            iload 6 /* off */
            invokestatic java.io.Bits.getDouble:([BI)D
            invokevirtual jdk.internal.misc.Unsafe.putDouble:(Ljava/lang/Object;JD)V
        24: .line 2128
            goto 26
        25: .line 2131
      StackMap locals:
      StackMap stack:
            new java.lang.InternalError
            dup
            invokespecial java.lang.InternalError.<init>:()V
            athrow
        end local 6 // int off
        end local 4 // long key
        26: .line 2091
      StackMap locals:
      StackMap stack:
            iinc 3 /* i */ 1
      StackMap locals:
      StackMap stack:
        27: iload 3 /* i */
            aload 0 /* this */
            getfield java.io.ObjectStreamClass$FieldReflector.numPrimFields:I
            if_icmplt 4
        end local 3 // int i
        28: .line 2134
            return
        end local 2 // byte[] buf
        end local 1 // java.lang.Object obj
        end local 0 // java.io.ObjectStreamClass$FieldReflector this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   29     0  this  Ljava/io/ObjectStreamClass$FieldReflector;
            0   29     1   obj  Ljava/lang/Object;
            0   29     2   buf  [B
            3   28     3     i  I
            5   26     4   key  J
            8   26     6   off  I
    MethodParameters:
      Name  Flags
      obj   
      buf   

  void getObjFieldValues(java.lang.Object, java.lang.Object[]);
    descriptor: (Ljava/lang/Object;[Ljava/lang/Object;)V
    flags: (0x0000) 
    Code:
      stack=6, locals=4, args_size=3
        start local 0 // java.io.ObjectStreamClass$FieldReflector this
        start local 1 // java.lang.Object obj
        start local 2 // java.lang.Object[] vals
         0: .line 2142
            aload 1 /* obj */
            ifnonnull 2
         1: .line 2143
            new java.lang.NullPointerException
            dup
            invokespecial java.lang.NullPointerException.<init>:()V
            athrow
         2: .line 2149
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield java.io.ObjectStreamClass$FieldReflector.numPrimFields:I
            istore 3 /* i */
        start local 3 // int i
         3: goto 9
         4: .line 2150
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            getfield java.io.ObjectStreamClass$FieldReflector.typeCodes:[C
            iload 3 /* i */
            caload
            lookupswitch { // 2
                   76: 5
                   91: 5
              default: 7
          }
         5: .line 2153
      StackMap locals:
      StackMap stack:
            aload 2 /* vals */
            aload 0 /* this */
            getfield java.io.ObjectStreamClass$FieldReflector.offsets:[I
            iload 3 /* i */
            iaload
            getstatic java.io.ObjectStreamClass$FieldReflector.unsafe:Ljdk/internal/misc/Unsafe;
            aload 1 /* obj */
            aload 0 /* this */
            getfield java.io.ObjectStreamClass$FieldReflector.readKeys:[J
            iload 3 /* i */
            laload
            invokevirtual jdk.internal.misc.Unsafe.getObject:(Ljava/lang/Object;J)Ljava/lang/Object;
            aastore
         6: .line 2154
            goto 8
         7: .line 2157
      StackMap locals:
      StackMap stack:
            new java.lang.InternalError
            dup
            invokespecial java.lang.InternalError.<init>:()V
            athrow
         8: .line 2149
      StackMap locals:
      StackMap stack:
            iinc 3 /* i */ 1
      StackMap locals:
      StackMap stack:
         9: iload 3 /* i */
            aload 0 /* this */
            getfield java.io.ObjectStreamClass$FieldReflector.fields:[Ljava/io/ObjectStreamField;
            arraylength
            if_icmplt 4
        end local 3 // int i
        10: .line 2160
            return
        end local 2 // java.lang.Object[] vals
        end local 1 // java.lang.Object obj
        end local 0 // java.io.ObjectStreamClass$FieldReflector this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   11     0  this  Ljava/io/ObjectStreamClass$FieldReflector;
            0   11     1   obj  Ljava/lang/Object;
            0   11     2  vals  [Ljava/lang/Object;
            3   10     3     i  I
    MethodParameters:
      Name  Flags
      obj   
      vals  

  void checkObjectFieldValueTypes(java.lang.Object, java.lang.Object[]);
    descriptor: (Ljava/lang/Object;[Ljava/lang/Object;)V
    flags: (0x0000) 
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // java.io.ObjectStreamClass$FieldReflector this
        start local 1 // java.lang.Object obj
        start local 2 // java.lang.Object[] vals
         0: .line 2168
            aload 0 /* this */
            aload 1 /* obj */
            aload 2 /* vals */
            iconst_1
            invokevirtual java.io.ObjectStreamClass$FieldReflector.setObjFieldValues:(Ljava/lang/Object;[Ljava/lang/Object;Z)V
         1: .line 2169
            return
        end local 2 // java.lang.Object[] vals
        end local 1 // java.lang.Object obj
        end local 0 // java.io.ObjectStreamClass$FieldReflector this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Ljava/io/ObjectStreamClass$FieldReflector;
            0    2     1   obj  Ljava/lang/Object;
            0    2     2  vals  [Ljava/lang/Object;
    MethodParameters:
      Name  Flags
      obj   
      vals  

  void setObjFieldValues(java.lang.Object, java.lang.Object[]);
    descriptor: (Ljava/lang/Object;[Ljava/lang/Object;)V
    flags: (0x0000) 
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // java.io.ObjectStreamClass$FieldReflector this
        start local 1 // java.lang.Object obj
        start local 2 // java.lang.Object[] vals
         0: .line 2179
            aload 0 /* this */
            aload 1 /* obj */
            aload 2 /* vals */
            iconst_0
            invokevirtual java.io.ObjectStreamClass$FieldReflector.setObjFieldValues:(Ljava/lang/Object;[Ljava/lang/Object;Z)V
         1: .line 2180
            return
        end local 2 // java.lang.Object[] vals
        end local 1 // java.lang.Object obj
        end local 0 // java.io.ObjectStreamClass$FieldReflector this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Ljava/io/ObjectStreamClass$FieldReflector;
            0    2     1   obj  Ljava/lang/Object;
            0    2     2  vals  [Ljava/lang/Object;
    MethodParameters:
      Name  Flags
      obj   
      vals  

  private void setObjFieldValues(java.lang.Object, java.lang.Object[], boolean);
    descriptor: (Ljava/lang/Object;[Ljava/lang/Object;Z)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=9, args_size=4
        start local 0 // java.io.ObjectStreamClass$FieldReflector this
        start local 1 // java.lang.Object obj
        start local 2 // java.lang.Object[] vals
        start local 3 // boolean dryRun
         0: .line 2183
            aload 1 /* obj */
            ifnonnull 2
         1: .line 2184
            new java.lang.NullPointerException
            dup
            invokespecial java.lang.NullPointerException.<init>:()V
            athrow
         2: .line 2186
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield java.io.ObjectStreamClass$FieldReflector.numPrimFields:I
            istore 4 /* i */
        start local 4 // int i
         3: goto 26
         4: .line 2187
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            getfield java.io.ObjectStreamClass$FieldReflector.writeKeys:[J
            iload 4 /* i */
            laload
            lstore 5 /* key */
        start local 5 // long key
         5: .line 2188
            lload 5 /* key */
            ldc -1
            lcmp
            ifne 7
         6: .line 2189
            goto 25
         7: .line 2191
      StackMap locals: long
      StackMap stack:
            aload 0 /* this */
            getfield java.io.ObjectStreamClass$FieldReflector.typeCodes:[C
            iload 4 /* i */
            caload
            lookupswitch { // 2
                   76: 8
                   91: 8
              default: 24
          }
         8: .line 2194
      StackMap locals:
      StackMap stack:
            aload 2 /* vals */
            aload 0 /* this */
            getfield java.io.ObjectStreamClass$FieldReflector.offsets:[I
            iload 4 /* i */
            iaload
            aaload
            astore 7 /* val */
        start local 7 // java.lang.Object val
         9: .line 2195
            aload 7 /* val */
            ifnull 21
        10: .line 2196
            aload 0 /* this */
            getfield java.io.ObjectStreamClass$FieldReflector.types:[Ljava/lang/Class;
            iload 4 /* i */
            aload 0 /* this */
            getfield java.io.ObjectStreamClass$FieldReflector.numPrimFields:I
            isub
            aaload
            aload 7 /* val */
            invokevirtual java.lang.Class.isInstance:(Ljava/lang/Object;)Z
            ifne 21
        11: .line 2198
            aload 0 /* this */
            getfield java.io.ObjectStreamClass$FieldReflector.fields:[Ljava/io/ObjectStreamField;
            iload 4 /* i */
            aaload
            invokevirtual java.io.ObjectStreamField.getField:()Ljava/lang/reflect/Field;
            astore 8 /* f */
        start local 8 // java.lang.reflect.Field f
        12: .line 2199
            new java.lang.ClassCastException
            dup
        13: .line 2200
            new java.lang.StringBuilder
            dup
            ldc "cannot assign instance of "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
        14: .line 2201
            aload 7 /* val */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc " to field "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        15: .line 2202
            aload 8 /* f */
            invokevirtual java.lang.reflect.Field.getDeclaringClass:()Ljava/lang/Class;
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc "."
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        16: .line 2203
            aload 8 /* f */
            invokevirtual java.lang.reflect.Field.getName:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc " of type "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        17: .line 2204
            aload 8 /* f */
            invokevirtual java.lang.reflect.Field.getType:()Ljava/lang/Class;
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc " in instance of "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        18: .line 2205
            aload 1 /* obj */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        19: .line 2200
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        20: .line 2199
            invokespecial java.lang.ClassCastException.<init>:(Ljava/lang/String;)V
            athrow
        end local 8 // java.lang.reflect.Field f
        21: .line 2207
      StackMap locals: java.lang.Object
      StackMap stack:
            iload 3 /* dryRun */
            ifne 25
        22: .line 2208
            getstatic java.io.ObjectStreamClass$FieldReflector.unsafe:Ljdk/internal/misc/Unsafe;
            aload 1 /* obj */
            lload 5 /* key */
            aload 7 /* val */
            invokevirtual jdk.internal.misc.Unsafe.putObject:(Ljava/lang/Object;JLjava/lang/Object;)V
        23: .line 2209
            goto 25
        end local 7 // java.lang.Object val
        24: .line 2212
      StackMap locals:
      StackMap stack:
            new java.lang.InternalError
            dup
            invokespecial java.lang.InternalError.<init>:()V
            athrow
        end local 5 // long key
        25: .line 2186
      StackMap locals:
      StackMap stack:
            iinc 4 /* i */ 1
      StackMap locals:
      StackMap stack:
        26: iload 4 /* i */
            aload 0 /* this */
            getfield java.io.ObjectStreamClass$FieldReflector.fields:[Ljava/io/ObjectStreamField;
            arraylength
            if_icmplt 4
        end local 4 // int i
        27: .line 2215
            return
        end local 3 // boolean dryRun
        end local 2 // java.lang.Object[] vals
        end local 1 // java.lang.Object obj
        end local 0 // java.io.ObjectStreamClass$FieldReflector this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   28     0    this  Ljava/io/ObjectStreamClass$FieldReflector;
            0   28     1     obj  Ljava/lang/Object;
            0   28     2    vals  [Ljava/lang/Object;
            0   28     3  dryRun  Z
            3   27     4       i  I
            5   25     5     key  J
            9   24     7     val  Ljava/lang/Object;
           12   21     8       f  Ljava/lang/reflect/Field;
    MethodParameters:
        Name  Flags
      obj     
      vals    
      dryRun  
}
SourceFile: "ObjectStreamClass.java"
NestHost: java.io.ObjectStreamClass
InnerClasses:
  private FieldReflector = java.io.ObjectStreamClass$FieldReflector of java.io.ObjectStreamClass