public final class sun.misc.Unsafe
  minor version: 0
  major version: 59
  flags: flags: (0x0031) ACC_PUBLIC, ACC_FINAL, ACC_SUPER
  this_class: sun.misc.Unsafe
  super_class: java.lang.Object
{
  private static final sun.misc.Unsafe theUnsafe;
    descriptor: Lsun/misc/Unsafe;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  public static final int INVALID_FIELD_OFFSET;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: -1

  public static final int ARRAY_BOOLEAN_BASE_OFFSET;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL

  public static final int ARRAY_BYTE_BASE_OFFSET;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL

  public static final int ARRAY_SHORT_BASE_OFFSET;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL

  public static final int ARRAY_CHAR_BASE_OFFSET;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL

  public static final int ARRAY_INT_BASE_OFFSET;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL

  public static final int ARRAY_LONG_BASE_OFFSET;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL

  public static final int ARRAY_FLOAT_BASE_OFFSET;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL

  public static final int ARRAY_DOUBLE_BASE_OFFSET;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL

  public static final int ARRAY_OBJECT_BASE_OFFSET;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL

  public static final int ARRAY_BOOLEAN_INDEX_SCALE;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL

  public static final int ARRAY_BYTE_INDEX_SCALE;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL

  public static final int ARRAY_SHORT_INDEX_SCALE;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL

  public static final int ARRAY_CHAR_INDEX_SCALE;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL

  public static final int ARRAY_INT_INDEX_SCALE;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL

  public static final int ARRAY_LONG_INDEX_SCALE;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL

  public static final int ARRAY_FLOAT_INDEX_SCALE;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL

  public static final int ARRAY_DOUBLE_INDEX_SCALE;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL

  public static final int ARRAY_OBJECT_INDEX_SCALE;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL

  public static final int ADDRESS_SIZE;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=5, locals=0, args_size=0
         0: .line 48
            invokestatic sun.misc.Unsafe.registerNatives:()V
         1: .line 49
            ldc Lsun/misc/Unsafe;
            iconst_1
            anewarray java.lang.String
            dup
            iconst_0
            ldc "getUnsafe"
            aastore
            invokestatic sun.reflect.Reflection.registerMethodsToFilter:(Ljava/lang/Class;[Ljava/lang/String;)V
         2: .line 54
            new sun.misc.Unsafe
            dup
            invokespecial sun.misc.Unsafe.<init>:()V
            putstatic sun.misc.Unsafe.theUnsafe:Lsun/misc/Unsafe;
         3: .line 713
            getstatic sun.misc.Unsafe.theUnsafe:Lsun/misc/Unsafe;
            ldc [Z
            invokevirtual sun.misc.Unsafe.arrayBaseOffset:(Ljava/lang/Class;)I
         4: .line 712
            putstatic sun.misc.Unsafe.ARRAY_BOOLEAN_BASE_OFFSET:I
         5: .line 717
            getstatic sun.misc.Unsafe.theUnsafe:Lsun/misc/Unsafe;
            ldc [B
            invokevirtual sun.misc.Unsafe.arrayBaseOffset:(Ljava/lang/Class;)I
         6: .line 716
            putstatic sun.misc.Unsafe.ARRAY_BYTE_BASE_OFFSET:I
         7: .line 721
            getstatic sun.misc.Unsafe.theUnsafe:Lsun/misc/Unsafe;
            ldc [S
            invokevirtual sun.misc.Unsafe.arrayBaseOffset:(Ljava/lang/Class;)I
         8: .line 720
            putstatic sun.misc.Unsafe.ARRAY_SHORT_BASE_OFFSET:I
         9: .line 725
            getstatic sun.misc.Unsafe.theUnsafe:Lsun/misc/Unsafe;
            ldc [C
            invokevirtual sun.misc.Unsafe.arrayBaseOffset:(Ljava/lang/Class;)I
        10: .line 724
            putstatic sun.misc.Unsafe.ARRAY_CHAR_BASE_OFFSET:I
        11: .line 729
            getstatic sun.misc.Unsafe.theUnsafe:Lsun/misc/Unsafe;
            ldc [I
            invokevirtual sun.misc.Unsafe.arrayBaseOffset:(Ljava/lang/Class;)I
        12: .line 728
            putstatic sun.misc.Unsafe.ARRAY_INT_BASE_OFFSET:I
        13: .line 733
            getstatic sun.misc.Unsafe.theUnsafe:Lsun/misc/Unsafe;
            ldc [J
            invokevirtual sun.misc.Unsafe.arrayBaseOffset:(Ljava/lang/Class;)I
        14: .line 732
            putstatic sun.misc.Unsafe.ARRAY_LONG_BASE_OFFSET:I
        15: .line 737
            getstatic sun.misc.Unsafe.theUnsafe:Lsun/misc/Unsafe;
            ldc [F
            invokevirtual sun.misc.Unsafe.arrayBaseOffset:(Ljava/lang/Class;)I
        16: .line 736
            putstatic sun.misc.Unsafe.ARRAY_FLOAT_BASE_OFFSET:I
        17: .line 741
            getstatic sun.misc.Unsafe.theUnsafe:Lsun/misc/Unsafe;
            ldc [D
            invokevirtual sun.misc.Unsafe.arrayBaseOffset:(Ljava/lang/Class;)I
        18: .line 740
            putstatic sun.misc.Unsafe.ARRAY_DOUBLE_BASE_OFFSET:I
        19: .line 745
            getstatic sun.misc.Unsafe.theUnsafe:Lsun/misc/Unsafe;
            ldc [Ljava/lang/Object;
            invokevirtual sun.misc.Unsafe.arrayBaseOffset:(Ljava/lang/Class;)I
        20: .line 744
            putstatic sun.misc.Unsafe.ARRAY_OBJECT_BASE_OFFSET:I
        21: .line 762
            getstatic sun.misc.Unsafe.theUnsafe:Lsun/misc/Unsafe;
            ldc [Z
            invokevirtual sun.misc.Unsafe.arrayIndexScale:(Ljava/lang/Class;)I
        22: .line 761
            putstatic sun.misc.Unsafe.ARRAY_BOOLEAN_INDEX_SCALE:I
        23: .line 766
            getstatic sun.misc.Unsafe.theUnsafe:Lsun/misc/Unsafe;
            ldc [B
            invokevirtual sun.misc.Unsafe.arrayIndexScale:(Ljava/lang/Class;)I
        24: .line 765
            putstatic sun.misc.Unsafe.ARRAY_BYTE_INDEX_SCALE:I
        25: .line 770
            getstatic sun.misc.Unsafe.theUnsafe:Lsun/misc/Unsafe;
            ldc [S
            invokevirtual sun.misc.Unsafe.arrayIndexScale:(Ljava/lang/Class;)I
        26: .line 769
            putstatic sun.misc.Unsafe.ARRAY_SHORT_INDEX_SCALE:I
        27: .line 774
            getstatic sun.misc.Unsafe.theUnsafe:Lsun/misc/Unsafe;
            ldc [C
            invokevirtual sun.misc.Unsafe.arrayIndexScale:(Ljava/lang/Class;)I
        28: .line 773
            putstatic sun.misc.Unsafe.ARRAY_CHAR_INDEX_SCALE:I
        29: .line 778
            getstatic sun.misc.Unsafe.theUnsafe:Lsun/misc/Unsafe;
            ldc [I
            invokevirtual sun.misc.Unsafe.arrayIndexScale:(Ljava/lang/Class;)I
        30: .line 777
            putstatic sun.misc.Unsafe.ARRAY_INT_INDEX_SCALE:I
        31: .line 782
            getstatic sun.misc.Unsafe.theUnsafe:Lsun/misc/Unsafe;
            ldc [J
            invokevirtual sun.misc.Unsafe.arrayIndexScale:(Ljava/lang/Class;)I
        32: .line 781
            putstatic sun.misc.Unsafe.ARRAY_LONG_INDEX_SCALE:I
        33: .line 786
            getstatic sun.misc.Unsafe.theUnsafe:Lsun/misc/Unsafe;
            ldc [F
            invokevirtual sun.misc.Unsafe.arrayIndexScale:(Ljava/lang/Class;)I
        34: .line 785
            putstatic sun.misc.Unsafe.ARRAY_FLOAT_INDEX_SCALE:I
        35: .line 790
            getstatic sun.misc.Unsafe.theUnsafe:Lsun/misc/Unsafe;
            ldc [D
            invokevirtual sun.misc.Unsafe.arrayIndexScale:(Ljava/lang/Class;)I
        36: .line 789
            putstatic sun.misc.Unsafe.ARRAY_DOUBLE_INDEX_SCALE:I
        37: .line 794
            getstatic sun.misc.Unsafe.theUnsafe:Lsun/misc/Unsafe;
            ldc [Ljava/lang/Object;
            invokevirtual sun.misc.Unsafe.arrayIndexScale:(Ljava/lang/Class;)I
        38: .line 793
            putstatic sun.misc.Unsafe.ARRAY_OBJECT_INDEX_SCALE:I
        39: .line 805
            getstatic sun.misc.Unsafe.theUnsafe:Lsun/misc/Unsafe;
            invokevirtual sun.misc.Unsafe.addressSize:()I
            putstatic sun.misc.Unsafe.ADDRESS_SIZE:I
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  private static native void registerNatives();
    descriptor: ()V
    flags: (0x010a) ACC_PRIVATE, ACC_STATIC, ACC_NATIVE

  private void <init>();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // sun.misc.Unsafe this
         0: .line 52
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
            return
        end local 0 // sun.misc.Unsafe this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lsun/misc/Unsafe;

  public static sun.misc.Unsafe getUnsafe();
    descriptor: ()Lsun/misc/Unsafe;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=1, args_size=0
         0: .line 88
            invokestatic sun.reflect.Reflection.getCallerClass:()Ljava/lang/Class;
            astore 0 /* caller */
        start local 0 // java.lang.Class caller
         1: .line 89
            aload 0 /* caller */
            invokevirtual java.lang.Class.getClassLoader:()Ljava/lang/ClassLoader;
            invokestatic sun.misc.VM.isSystemDomainLoader:(Ljava/lang/ClassLoader;)Z
            ifne 3
         2: .line 90
            new java.lang.SecurityException
            dup
            ldc "Unsafe"
            invokespecial java.lang.SecurityException.<init>:(Ljava/lang/String;)V
            athrow
         3: .line 91
      StackMap locals: java.lang.Class
      StackMap stack:
            getstatic sun.misc.Unsafe.theUnsafe:Lsun/misc/Unsafe;
            areturn
        end local 0 // java.lang.Class caller
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            1    4     0  caller  Ljava/lang/Class<*>;
    RuntimeVisibleAnnotations: 
      sun.reflect.CallerSensitive()

  public native int getInt(java.lang.Object, long);
    descriptor: (Ljava/lang/Object;J)I
    flags: (0x0101) ACC_PUBLIC, ACC_NATIVE
    MethodParameters:
        Name  Flags
      o       
      offset  

  public native void putInt(java.lang.Object, long, int);
    descriptor: (Ljava/lang/Object;JI)V
    flags: (0x0101) ACC_PUBLIC, ACC_NATIVE
    MethodParameters:
        Name  Flags
      o       
      offset  
      x       

  public native java.lang.Object getObject(java.lang.Object, long);
    descriptor: (Ljava/lang/Object;J)Ljava/lang/Object;
    flags: (0x0101) ACC_PUBLIC, ACC_NATIVE
    MethodParameters:
        Name  Flags
      o       
      offset  

  public native void putObject(java.lang.Object, long, java.lang.Object);
    descriptor: (Ljava/lang/Object;JLjava/lang/Object;)V
    flags: (0x0101) ACC_PUBLIC, ACC_NATIVE
    MethodParameters:
        Name  Flags
      o       
      offset  
      x       

  public native boolean getBoolean(java.lang.Object, long);
    descriptor: (Ljava/lang/Object;J)Z
    flags: (0x0101) ACC_PUBLIC, ACC_NATIVE
    MethodParameters:
        Name  Flags
      o       
      offset  

  public native void putBoolean(java.lang.Object, long, boolean);
    descriptor: (Ljava/lang/Object;JZ)V
    flags: (0x0101) ACC_PUBLIC, ACC_NATIVE
    MethodParameters:
        Name  Flags
      o       
      offset  
      x       

  public native byte getByte(java.lang.Object, long);
    descriptor: (Ljava/lang/Object;J)B
    flags: (0x0101) ACC_PUBLIC, ACC_NATIVE
    MethodParameters:
        Name  Flags
      o       
      offset  

  public native void putByte(java.lang.Object, long, byte);
    descriptor: (Ljava/lang/Object;JB)V
    flags: (0x0101) ACC_PUBLIC, ACC_NATIVE
    MethodParameters:
        Name  Flags
      o       
      offset  
      x       

  public native short getShort(java.lang.Object, long);
    descriptor: (Ljava/lang/Object;J)S
    flags: (0x0101) ACC_PUBLIC, ACC_NATIVE
    MethodParameters:
        Name  Flags
      o       
      offset  

  public native void putShort(java.lang.Object, long, short);
    descriptor: (Ljava/lang/Object;JS)V
    flags: (0x0101) ACC_PUBLIC, ACC_NATIVE
    MethodParameters:
        Name  Flags
      o       
      offset  
      x       

  public native char getChar(java.lang.Object, long);
    descriptor: (Ljava/lang/Object;J)C
    flags: (0x0101) ACC_PUBLIC, ACC_NATIVE
    MethodParameters:
        Name  Flags
      o       
      offset  

  public native void putChar(java.lang.Object, long, char);
    descriptor: (Ljava/lang/Object;JC)V
    flags: (0x0101) ACC_PUBLIC, ACC_NATIVE
    MethodParameters:
        Name  Flags
      o       
      offset  
      x       

  public native long getLong(java.lang.Object, long);
    descriptor: (Ljava/lang/Object;J)J
    flags: (0x0101) ACC_PUBLIC, ACC_NATIVE
    MethodParameters:
        Name  Flags
      o       
      offset  

  public native void putLong(java.lang.Object, long, long);
    descriptor: (Ljava/lang/Object;JJ)V
    flags: (0x0101) ACC_PUBLIC, ACC_NATIVE
    MethodParameters:
        Name  Flags
      o       
      offset  
      x       

  public native float getFloat(java.lang.Object, long);
    descriptor: (Ljava/lang/Object;J)F
    flags: (0x0101) ACC_PUBLIC, ACC_NATIVE
    MethodParameters:
        Name  Flags
      o       
      offset  

  public native void putFloat(java.lang.Object, long, float);
    descriptor: (Ljava/lang/Object;JF)V
    flags: (0x0101) ACC_PUBLIC, ACC_NATIVE
    MethodParameters:
        Name  Flags
      o       
      offset  
      x       

  public native double getDouble(java.lang.Object, long);
    descriptor: (Ljava/lang/Object;J)D
    flags: (0x0101) ACC_PUBLIC, ACC_NATIVE
    MethodParameters:
        Name  Flags
      o       
      offset  

  public native void putDouble(java.lang.Object, long, double);
    descriptor: (Ljava/lang/Object;JD)V
    flags: (0x0101) ACC_PUBLIC, ACC_NATIVE
    MethodParameters:
        Name  Flags
      o       
      offset  
      x       

  public int getInt(java.lang.Object, int);
    descriptor: (Ljava/lang/Object;I)I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // sun.misc.Unsafe this
        start local 1 // java.lang.Object o
        start local 2 // int offset
         0: .line 235
            aload 0 /* this */
            aload 1 /* o */
            iload 2 /* offset */
            i2l
            invokevirtual sun.misc.Unsafe.getInt:(Ljava/lang/Object;J)I
            ireturn
        end local 2 // int offset
        end local 1 // java.lang.Object o
        end local 0 // sun.misc.Unsafe this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    1     0    this  Lsun/misc/Unsafe;
            0    1     1       o  Ljava/lang/Object;
            0    1     2  offset  I
    RuntimeVisibleAnnotations: 
      java.lang.Deprecated()
    MethodParameters:
        Name  Flags
      o       
      offset  

  public void putInt(java.lang.Object, int, int);
    descriptor: (Ljava/lang/Object;II)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=4, args_size=4
        start local 0 // sun.misc.Unsafe this
        start local 1 // java.lang.Object o
        start local 2 // int offset
        start local 3 // int x
         0: .line 244
            aload 0 /* this */
            aload 1 /* o */
            iload 2 /* offset */
            i2l
            iload 3 /* x */
            invokevirtual sun.misc.Unsafe.putInt:(Ljava/lang/Object;JI)V
         1: .line 245
            return
        end local 3 // int x
        end local 2 // int offset
        end local 1 // java.lang.Object o
        end local 0 // sun.misc.Unsafe this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    2     0    this  Lsun/misc/Unsafe;
            0    2     1       o  Ljava/lang/Object;
            0    2     2  offset  I
            0    2     3       x  I
    RuntimeVisibleAnnotations: 
      java.lang.Deprecated()
    MethodParameters:
        Name  Flags
      o       
      offset  
      x       

  public java.lang.Object getObject(java.lang.Object, int);
    descriptor: (Ljava/lang/Object;I)Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // sun.misc.Unsafe this
        start local 1 // java.lang.Object o
        start local 2 // int offset
         0: .line 253
            aload 0 /* this */
            aload 1 /* o */
            iload 2 /* offset */
            i2l
            invokevirtual sun.misc.Unsafe.getObject:(Ljava/lang/Object;J)Ljava/lang/Object;
            areturn
        end local 2 // int offset
        end local 1 // java.lang.Object o
        end local 0 // sun.misc.Unsafe this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    1     0    this  Lsun/misc/Unsafe;
            0    1     1       o  Ljava/lang/Object;
            0    1     2  offset  I
    RuntimeVisibleAnnotations: 
      java.lang.Deprecated()
    MethodParameters:
        Name  Flags
      o       
      offset  

  public void putObject(java.lang.Object, int, java.lang.Object);
    descriptor: (Ljava/lang/Object;ILjava/lang/Object;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=4, args_size=4
        start local 0 // sun.misc.Unsafe this
        start local 1 // java.lang.Object o
        start local 2 // int offset
        start local 3 // java.lang.Object x
         0: .line 262
            aload 0 /* this */
            aload 1 /* o */
            iload 2 /* offset */
            i2l
            aload 3 /* x */
            invokevirtual sun.misc.Unsafe.putObject:(Ljava/lang/Object;JLjava/lang/Object;)V
         1: .line 263
            return
        end local 3 // java.lang.Object x
        end local 2 // int offset
        end local 1 // java.lang.Object o
        end local 0 // sun.misc.Unsafe this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    2     0    this  Lsun/misc/Unsafe;
            0    2     1       o  Ljava/lang/Object;
            0    2     2  offset  I
            0    2     3       x  Ljava/lang/Object;
    RuntimeVisibleAnnotations: 
      java.lang.Deprecated()
    MethodParameters:
        Name  Flags
      o       
      offset  
      x       

  public boolean getBoolean(java.lang.Object, int);
    descriptor: (Ljava/lang/Object;I)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // sun.misc.Unsafe this
        start local 1 // java.lang.Object o
        start local 2 // int offset
         0: .line 271
            aload 0 /* this */
            aload 1 /* o */
            iload 2 /* offset */
            i2l
            invokevirtual sun.misc.Unsafe.getBoolean:(Ljava/lang/Object;J)Z
            ireturn
        end local 2 // int offset
        end local 1 // java.lang.Object o
        end local 0 // sun.misc.Unsafe this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    1     0    this  Lsun/misc/Unsafe;
            0    1     1       o  Ljava/lang/Object;
            0    1     2  offset  I
    RuntimeVisibleAnnotations: 
      java.lang.Deprecated()
    MethodParameters:
        Name  Flags
      o       
      offset  

  public void putBoolean(java.lang.Object, int, boolean);
    descriptor: (Ljava/lang/Object;IZ)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=4, args_size=4
        start local 0 // sun.misc.Unsafe this
        start local 1 // java.lang.Object o
        start local 2 // int offset
        start local 3 // boolean x
         0: .line 280
            aload 0 /* this */
            aload 1 /* o */
            iload 2 /* offset */
            i2l
            iload 3 /* x */
            invokevirtual sun.misc.Unsafe.putBoolean:(Ljava/lang/Object;JZ)V
         1: .line 281
            return
        end local 3 // boolean x
        end local 2 // int offset
        end local 1 // java.lang.Object o
        end local 0 // sun.misc.Unsafe this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    2     0    this  Lsun/misc/Unsafe;
            0    2     1       o  Ljava/lang/Object;
            0    2     2  offset  I
            0    2     3       x  Z
    RuntimeVisibleAnnotations: 
      java.lang.Deprecated()
    MethodParameters:
        Name  Flags
      o       
      offset  
      x       

  public byte getByte(java.lang.Object, int);
    descriptor: (Ljava/lang/Object;I)B
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // sun.misc.Unsafe this
        start local 1 // java.lang.Object o
        start local 2 // int offset
         0: .line 289
            aload 0 /* this */
            aload 1 /* o */
            iload 2 /* offset */
            i2l
            invokevirtual sun.misc.Unsafe.getByte:(Ljava/lang/Object;J)B
            ireturn
        end local 2 // int offset
        end local 1 // java.lang.Object o
        end local 0 // sun.misc.Unsafe this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    1     0    this  Lsun/misc/Unsafe;
            0    1     1       o  Ljava/lang/Object;
            0    1     2  offset  I
    RuntimeVisibleAnnotations: 
      java.lang.Deprecated()
    MethodParameters:
        Name  Flags
      o       
      offset  

  public void putByte(java.lang.Object, int, byte);
    descriptor: (Ljava/lang/Object;IB)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=4, args_size=4
        start local 0 // sun.misc.Unsafe this
        start local 1 // java.lang.Object o
        start local 2 // int offset
        start local 3 // byte x
         0: .line 298
            aload 0 /* this */
            aload 1 /* o */
            iload 2 /* offset */
            i2l
            iload 3 /* x */
            invokevirtual sun.misc.Unsafe.putByte:(Ljava/lang/Object;JB)V
         1: .line 299
            return
        end local 3 // byte x
        end local 2 // int offset
        end local 1 // java.lang.Object o
        end local 0 // sun.misc.Unsafe this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    2     0    this  Lsun/misc/Unsafe;
            0    2     1       o  Ljava/lang/Object;
            0    2     2  offset  I
            0    2     3       x  B
    RuntimeVisibleAnnotations: 
      java.lang.Deprecated()
    MethodParameters:
        Name  Flags
      o       
      offset  
      x       

  public short getShort(java.lang.Object, int);
    descriptor: (Ljava/lang/Object;I)S
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // sun.misc.Unsafe this
        start local 1 // java.lang.Object o
        start local 2 // int offset
         0: .line 307
            aload 0 /* this */
            aload 1 /* o */
            iload 2 /* offset */
            i2l
            invokevirtual sun.misc.Unsafe.getShort:(Ljava/lang/Object;J)S
            ireturn
        end local 2 // int offset
        end local 1 // java.lang.Object o
        end local 0 // sun.misc.Unsafe this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    1     0    this  Lsun/misc/Unsafe;
            0    1     1       o  Ljava/lang/Object;
            0    1     2  offset  I
    RuntimeVisibleAnnotations: 
      java.lang.Deprecated()
    MethodParameters:
        Name  Flags
      o       
      offset  

  public void putShort(java.lang.Object, int, short);
    descriptor: (Ljava/lang/Object;IS)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=4, args_size=4
        start local 0 // sun.misc.Unsafe this
        start local 1 // java.lang.Object o
        start local 2 // int offset
        start local 3 // short x
         0: .line 316
            aload 0 /* this */
            aload 1 /* o */
            iload 2 /* offset */
            i2l
            iload 3 /* x */
            invokevirtual sun.misc.Unsafe.putShort:(Ljava/lang/Object;JS)V
         1: .line 317
            return
        end local 3 // short x
        end local 2 // int offset
        end local 1 // java.lang.Object o
        end local 0 // sun.misc.Unsafe this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    2     0    this  Lsun/misc/Unsafe;
            0    2     1       o  Ljava/lang/Object;
            0    2     2  offset  I
            0    2     3       x  S
    RuntimeVisibleAnnotations: 
      java.lang.Deprecated()
    MethodParameters:
        Name  Flags
      o       
      offset  
      x       

  public char getChar(java.lang.Object, int);
    descriptor: (Ljava/lang/Object;I)C
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // sun.misc.Unsafe this
        start local 1 // java.lang.Object o
        start local 2 // int offset
         0: .line 325
            aload 0 /* this */
            aload 1 /* o */
            iload 2 /* offset */
            i2l
            invokevirtual sun.misc.Unsafe.getChar:(Ljava/lang/Object;J)C
            ireturn
        end local 2 // int offset
        end local 1 // java.lang.Object o
        end local 0 // sun.misc.Unsafe this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    1     0    this  Lsun/misc/Unsafe;
            0    1     1       o  Ljava/lang/Object;
            0    1     2  offset  I
    RuntimeVisibleAnnotations: 
      java.lang.Deprecated()
    MethodParameters:
        Name  Flags
      o       
      offset  

  public void putChar(java.lang.Object, int, char);
    descriptor: (Ljava/lang/Object;IC)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=4, args_size=4
        start local 0 // sun.misc.Unsafe this
        start local 1 // java.lang.Object o
        start local 2 // int offset
        start local 3 // char x
         0: .line 334
            aload 0 /* this */
            aload 1 /* o */
            iload 2 /* offset */
            i2l
            iload 3 /* x */
            invokevirtual sun.misc.Unsafe.putChar:(Ljava/lang/Object;JC)V
         1: .line 335
            return
        end local 3 // char x
        end local 2 // int offset
        end local 1 // java.lang.Object o
        end local 0 // sun.misc.Unsafe this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    2     0    this  Lsun/misc/Unsafe;
            0    2     1       o  Ljava/lang/Object;
            0    2     2  offset  I
            0    2     3       x  C
    RuntimeVisibleAnnotations: 
      java.lang.Deprecated()
    MethodParameters:
        Name  Flags
      o       
      offset  
      x       

  public long getLong(java.lang.Object, int);
    descriptor: (Ljava/lang/Object;I)J
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // sun.misc.Unsafe this
        start local 1 // java.lang.Object o
        start local 2 // int offset
         0: .line 343
            aload 0 /* this */
            aload 1 /* o */
            iload 2 /* offset */
            i2l
            invokevirtual sun.misc.Unsafe.getLong:(Ljava/lang/Object;J)J
            lreturn
        end local 2 // int offset
        end local 1 // java.lang.Object o
        end local 0 // sun.misc.Unsafe this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    1     0    this  Lsun/misc/Unsafe;
            0    1     1       o  Ljava/lang/Object;
            0    1     2  offset  I
    RuntimeVisibleAnnotations: 
      java.lang.Deprecated()
    MethodParameters:
        Name  Flags
      o       
      offset  

  public void putLong(java.lang.Object, int, long);
    descriptor: (Ljava/lang/Object;IJ)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=5, args_size=4
        start local 0 // sun.misc.Unsafe this
        start local 1 // java.lang.Object o
        start local 2 // int offset
        start local 3 // long x
         0: .line 352
            aload 0 /* this */
            aload 1 /* o */
            iload 2 /* offset */
            i2l
            lload 3 /* x */
            invokevirtual sun.misc.Unsafe.putLong:(Ljava/lang/Object;JJ)V
         1: .line 353
            return
        end local 3 // long x
        end local 2 // int offset
        end local 1 // java.lang.Object o
        end local 0 // sun.misc.Unsafe this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    2     0    this  Lsun/misc/Unsafe;
            0    2     1       o  Ljava/lang/Object;
            0    2     2  offset  I
            0    2     3       x  J
    RuntimeVisibleAnnotations: 
      java.lang.Deprecated()
    MethodParameters:
        Name  Flags
      o       
      offset  
      x       

  public float getFloat(java.lang.Object, int);
    descriptor: (Ljava/lang/Object;I)F
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // sun.misc.Unsafe this
        start local 1 // java.lang.Object o
        start local 2 // int offset
         0: .line 361
            aload 0 /* this */
            aload 1 /* o */
            iload 2 /* offset */
            i2l
            invokevirtual sun.misc.Unsafe.getFloat:(Ljava/lang/Object;J)F
            freturn
        end local 2 // int offset
        end local 1 // java.lang.Object o
        end local 0 // sun.misc.Unsafe this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    1     0    this  Lsun/misc/Unsafe;
            0    1     1       o  Ljava/lang/Object;
            0    1     2  offset  I
    RuntimeVisibleAnnotations: 
      java.lang.Deprecated()
    MethodParameters:
        Name  Flags
      o       
      offset  

  public void putFloat(java.lang.Object, int, float);
    descriptor: (Ljava/lang/Object;IF)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=4, args_size=4
        start local 0 // sun.misc.Unsafe this
        start local 1 // java.lang.Object o
        start local 2 // int offset
        start local 3 // float x
         0: .line 370
            aload 0 /* this */
            aload 1 /* o */
            iload 2 /* offset */
            i2l
            fload 3 /* x */
            invokevirtual sun.misc.Unsafe.putFloat:(Ljava/lang/Object;JF)V
         1: .line 371
            return
        end local 3 // float x
        end local 2 // int offset
        end local 1 // java.lang.Object o
        end local 0 // sun.misc.Unsafe this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    2     0    this  Lsun/misc/Unsafe;
            0    2     1       o  Ljava/lang/Object;
            0    2     2  offset  I
            0    2     3       x  F
    RuntimeVisibleAnnotations: 
      java.lang.Deprecated()
    MethodParameters:
        Name  Flags
      o       
      offset  
      x       

  public double getDouble(java.lang.Object, int);
    descriptor: (Ljava/lang/Object;I)D
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // sun.misc.Unsafe this
        start local 1 // java.lang.Object o
        start local 2 // int offset
         0: .line 379
            aload 0 /* this */
            aload 1 /* o */
            iload 2 /* offset */
            i2l
            invokevirtual sun.misc.Unsafe.getDouble:(Ljava/lang/Object;J)D
            dreturn
        end local 2 // int offset
        end local 1 // java.lang.Object o
        end local 0 // sun.misc.Unsafe this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    1     0    this  Lsun/misc/Unsafe;
            0    1     1       o  Ljava/lang/Object;
            0    1     2  offset  I
    RuntimeVisibleAnnotations: 
      java.lang.Deprecated()
    MethodParameters:
        Name  Flags
      o       
      offset  

  public void putDouble(java.lang.Object, int, double);
    descriptor: (Ljava/lang/Object;ID)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=5, args_size=4
        start local 0 // sun.misc.Unsafe this
        start local 1 // java.lang.Object o
        start local 2 // int offset
        start local 3 // double x
         0: .line 388
            aload 0 /* this */
            aload 1 /* o */
            iload 2 /* offset */
            i2l
            dload 3 /* x */
            invokevirtual sun.misc.Unsafe.putDouble:(Ljava/lang/Object;JD)V
         1: .line 389
            return
        end local 3 // double x
        end local 2 // int offset
        end local 1 // java.lang.Object o
        end local 0 // sun.misc.Unsafe this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    2     0    this  Lsun/misc/Unsafe;
            0    2     1       o  Ljava/lang/Object;
            0    2     2  offset  I
            0    2     3       x  D
    RuntimeVisibleAnnotations: 
      java.lang.Deprecated()
    MethodParameters:
        Name  Flags
      o       
      offset  
      x       

  public native byte getByte(long);
    descriptor: (J)B
    flags: (0x0101) ACC_PUBLIC, ACC_NATIVE
    MethodParameters:
         Name  Flags
      address  

  public native void putByte(long, byte);
    descriptor: (JB)V
    flags: (0x0101) ACC_PUBLIC, ACC_NATIVE
    MethodParameters:
         Name  Flags
      address  
      x        

  public native short getShort(long);
    descriptor: (J)S
    flags: (0x0101) ACC_PUBLIC, ACC_NATIVE
    MethodParameters:
         Name  Flags
      address  

  public native void putShort(long, short);
    descriptor: (JS)V
    flags: (0x0101) ACC_PUBLIC, ACC_NATIVE
    MethodParameters:
         Name  Flags
      address  
      x        

  public native char getChar(long);
    descriptor: (J)C
    flags: (0x0101) ACC_PUBLIC, ACC_NATIVE
    MethodParameters:
         Name  Flags
      address  

  public native void putChar(long, char);
    descriptor: (JC)V
    flags: (0x0101) ACC_PUBLIC, ACC_NATIVE
    MethodParameters:
         Name  Flags
      address  
      x        

  public native int getInt(long);
    descriptor: (J)I
    flags: (0x0101) ACC_PUBLIC, ACC_NATIVE
    MethodParameters:
         Name  Flags
      address  

  public native void putInt(long, int);
    descriptor: (JI)V
    flags: (0x0101) ACC_PUBLIC, ACC_NATIVE
    MethodParameters:
         Name  Flags
      address  
      x        

  public native long getLong(long);
    descriptor: (J)J
    flags: (0x0101) ACC_PUBLIC, ACC_NATIVE
    MethodParameters:
         Name  Flags
      address  

  public native void putLong(long, long);
    descriptor: (JJ)V
    flags: (0x0101) ACC_PUBLIC, ACC_NATIVE
    MethodParameters:
         Name  Flags
      address  
      x        

  public native float getFloat(long);
    descriptor: (J)F
    flags: (0x0101) ACC_PUBLIC, ACC_NATIVE
    MethodParameters:
         Name  Flags
      address  

  public native void putFloat(long, float);
    descriptor: (JF)V
    flags: (0x0101) ACC_PUBLIC, ACC_NATIVE
    MethodParameters:
         Name  Flags
      address  
      x        

  public native double getDouble(long);
    descriptor: (J)D
    flags: (0x0101) ACC_PUBLIC, ACC_NATIVE
    MethodParameters:
         Name  Flags
      address  

  public native void putDouble(long, double);
    descriptor: (JD)V
    flags: (0x0101) ACC_PUBLIC, ACC_NATIVE
    MethodParameters:
         Name  Flags
      address  
      x        

  public native long getAddress(long);
    descriptor: (J)J
    flags: (0x0101) ACC_PUBLIC, ACC_NATIVE
    MethodParameters:
         Name  Flags
      address  

  public native void putAddress(long, long);
    descriptor: (JJ)V
    flags: (0x0101) ACC_PUBLIC, ACC_NATIVE
    MethodParameters:
         Name  Flags
      address  
      x        

  public native long allocateMemory(long);
    descriptor: (J)J
    flags: (0x0101) ACC_PUBLIC, ACC_NATIVE
    MethodParameters:
       Name  Flags
      bytes  

  public native long reallocateMemory(long, long);
    descriptor: (JJ)J
    flags: (0x0101) ACC_PUBLIC, ACC_NATIVE
    MethodParameters:
         Name  Flags
      address  
      bytes    

  public native void setMemory(java.lang.Object, long, long, byte);
    descriptor: (Ljava/lang/Object;JJB)V
    flags: (0x0101) ACC_PUBLIC, ACC_NATIVE
    MethodParameters:
        Name  Flags
      o       
      offset  
      bytes   
      value   

  public void setMemory(long, long, byte);
    descriptor: (JJB)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=7, locals=6, args_size=4
        start local 0 // sun.misc.Unsafe this
        start local 1 // long address
        start local 3 // long bytes
        start local 5 // byte value
         0: .line 529
            aload 0 /* this */
            aconst_null
            lload 1 /* address */
            lload 3 /* bytes */
            iload 5 /* value */
            invokevirtual sun.misc.Unsafe.setMemory:(Ljava/lang/Object;JJB)V
         1: .line 530
            return
        end local 5 // byte value
        end local 3 // long bytes
        end local 1 // long address
        end local 0 // sun.misc.Unsafe this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    2     0     this  Lsun/misc/Unsafe;
            0    2     1  address  J
            0    2     3    bytes  J
            0    2     5    value  B
    MethodParameters:
         Name  Flags
      address  
      bytes    
      value    

  public native void copyMemory(java.lang.Object, long, java.lang.Object, long, long);
    descriptor: (Ljava/lang/Object;JLjava/lang/Object;JJ)V
    flags: (0x0101) ACC_PUBLIC, ACC_NATIVE
    MethodParameters:
            Name  Flags
      srcBase     
      srcOffset   
      destBase    
      destOffset  
      bytes       

  public void copyMemory(long, long, long);
    descriptor: (JJJ)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=9, locals=7, args_size=4
        start local 0 // sun.misc.Unsafe this
        start local 1 // long srcAddress
        start local 3 // long destAddress
        start local 5 // long bytes
         0: .line 560
            aload 0 /* this */
            aconst_null
            lload 1 /* srcAddress */
            aconst_null
            lload 3 /* destAddress */
            lload 5 /* bytes */
            invokevirtual sun.misc.Unsafe.copyMemory:(Ljava/lang/Object;JLjava/lang/Object;JJ)V
         1: .line 561
            return
        end local 5 // long bytes
        end local 3 // long destAddress
        end local 1 // long srcAddress
        end local 0 // sun.misc.Unsafe this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    2     0         this  Lsun/misc/Unsafe;
            0    2     1   srcAddress  J
            0    2     3  destAddress  J
            0    2     5        bytes  J
    MethodParameters:
             Name  Flags
      srcAddress   
      destAddress  
      bytes        

  public native void freeMemory(long);
    descriptor: (J)V
    flags: (0x0101) ACC_PUBLIC, ACC_NATIVE
    MethodParameters:
         Name  Flags
      address  

  public int fieldOffset(java.lang.reflect.Field);
    descriptor: (Ljava/lang/reflect/Field;)I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // sun.misc.Unsafe this
        start local 1 // java.lang.reflect.Field f
         0: .line 597
            aload 1 /* f */
            invokevirtual java.lang.reflect.Field.getModifiers:()I
            invokestatic java.lang.reflect.Modifier.isStatic:(I)Z
            ifeq 2
         1: .line 598
            aload 0 /* this */
            aload 1 /* f */
            invokevirtual sun.misc.Unsafe.staticFieldOffset:(Ljava/lang/reflect/Field;)J
            l2i
            ireturn
         2: .line 600
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* f */
            invokevirtual sun.misc.Unsafe.objectFieldOffset:(Ljava/lang/reflect/Field;)J
            l2i
            ireturn
        end local 1 // java.lang.reflect.Field f
        end local 0 // sun.misc.Unsafe this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lsun/misc/Unsafe;
            0    3     1     f  Ljava/lang/reflect/Field;
    RuntimeVisibleAnnotations: 
      java.lang.Deprecated()
    MethodParameters:
      Name  Flags
      f     

  public  staticFieldBase(java.lang.Class<?>);
    descriptor: (Ljava/lang/Class;)Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=4, args_size=2
        start local 0 // sun.misc.Unsafe this
        start local 1 // java.lang.Class c
         0: .line 624
            aload 1 /* c */
            invokevirtual java.lang.Class.getDeclaredFields:()[Ljava/lang/reflect/Field;
            astore 2 /* fields */
        start local 2 // java.lang.reflect.Field[] fields
         1: .line 625
            iconst_0
            istore 3 /* i */
        start local 3 // int i
         2: goto 6
         3: .line 626
      StackMap locals: java.lang.reflect.Field[] int
      StackMap stack:
            aload 2 /* fields */
            iload 3 /* i */
            aaload
            invokevirtual java.lang.reflect.Field.getModifiers:()I
            invokestatic java.lang.reflect.Modifier.isStatic:(I)Z
            ifeq 5
         4: .line 627
            aload 0 /* this */
            aload 2 /* fields */
            iload 3 /* i */
            aaload
            invokevirtual sun.misc.Unsafe.staticFieldBase:(Ljava/lang/reflect/Field;)Ljava/lang/Object;
            areturn
         5: .line 625
      StackMap locals:
      StackMap stack:
            iinc 3 /* i */ 1
      StackMap locals:
      StackMap stack:
         6: iload 3 /* i */
            aload 2 /* fields */
            arraylength
            if_icmplt 3
        end local 3 // int i
         7: .line 630
            aconst_null
            areturn
        end local 2 // java.lang.reflect.Field[] fields
        end local 1 // java.lang.Class c
        end local 0 // sun.misc.Unsafe this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    8     0    this  Lsun/misc/Unsafe;
            0    8     1       c  Ljava/lang/Class<*>;
            1    8     2  fields  [Ljava/lang/reflect/Field;
            2    7     3       i  I
    Signature: (Ljava/lang/Class<*>;)Ljava/lang/Object;
    RuntimeVisibleAnnotations: 
      java.lang.Deprecated()
    MethodParameters:
      Name  Flags
      c     

  public native long staticFieldOffset(java.lang.reflect.Field);
    descriptor: (Ljava/lang/reflect/Field;)J
    flags: (0x0101) ACC_PUBLIC, ACC_NATIVE
    MethodParameters:
      Name  Flags
      f     

  public native long objectFieldOffset(java.lang.reflect.Field);
    descriptor: (Ljava/lang/reflect/Field;)J
    flags: (0x0101) ACC_PUBLIC, ACC_NATIVE
    MethodParameters:
      Name  Flags
      f     

  public native java.lang.Object staticFieldBase(java.lang.reflect.Field);
    descriptor: (Ljava/lang/reflect/Field;)Ljava/lang/Object;
    flags: (0x0101) ACC_PUBLIC, ACC_NATIVE
    MethodParameters:
      Name  Flags
      f     

  public native boolean shouldBeInitialized(java.lang.Class<?>);
    descriptor: (Ljava/lang/Class;)Z
    flags: (0x0101) ACC_PUBLIC, ACC_NATIVE
    Signature: (Ljava/lang/Class<*>;)Z
    MethodParameters:
      Name  Flags
      c     

  public native void ensureClassInitialized(java.lang.Class<?>);
    descriptor: (Ljava/lang/Class;)V
    flags: (0x0101) ACC_PUBLIC, ACC_NATIVE
    Signature: (Ljava/lang/Class<*>;)V
    MethodParameters:
      Name  Flags
      c     

  public native int arrayBaseOffset(java.lang.Class<?>);
    descriptor: (Ljava/lang/Class;)I
    flags: (0x0101) ACC_PUBLIC, ACC_NATIVE
    Signature: (Ljava/lang/Class<*>;)I
    MethodParameters:
            Name  Flags
      arrayClass  

  public native int arrayIndexScale(java.lang.Class<?>);
    descriptor: (Ljava/lang/Class;)I
    flags: (0x0101) ACC_PUBLIC, ACC_NATIVE
    Signature: (Ljava/lang/Class<*>;)I
    MethodParameters:
            Name  Flags
      arrayClass  

  public native int addressSize();
    descriptor: ()I
    flags: (0x0101) ACC_PUBLIC, ACC_NATIVE

  public native int pageSize();
    descriptor: ()I
    flags: (0x0101) ACC_PUBLIC, ACC_NATIVE

  public native java.lang.Class<?> defineClass(java.lang.String, byte[], int, int, java.lang.ClassLoader, java.security.ProtectionDomain);
    descriptor: (Ljava/lang/String;[BIILjava/lang/ClassLoader;Ljava/security/ProtectionDomain;)Ljava/lang/Class;
    flags: (0x0101) ACC_PUBLIC, ACC_NATIVE
    Signature: (Ljava/lang/String;[BIILjava/lang/ClassLoader;Ljava/security/ProtectionDomain;)Ljava/lang/Class<*>;
    MethodParameters:
                  Name  Flags
      name              
      b                 
      off               
      len               
      loader            
      protectionDomain  

  public native java.lang.Class<?> defineAnonymousClass(java.lang.Class<?>, byte[], []);
    descriptor: (Ljava/lang/Class;[B[Ljava/lang/Object;)Ljava/lang/Class;
    flags: (0x0101) ACC_PUBLIC, ACC_NATIVE
    Signature: (Ljava/lang/Class<*>;[B[Ljava/lang/Object;)Ljava/lang/Class<*>;
    MethodParameters:
           Name  Flags
      hostClass  
      data       
      cpPatches  

  public native  allocateInstance(java.lang.Class<?>);
    descriptor: (Ljava/lang/Class;)Ljava/lang/Object;
    flags: (0x0101) ACC_PUBLIC, ACC_NATIVE
    Exceptions:
      throws java.lang.InstantiationException
    Signature: (Ljava/lang/Class<*>;)Ljava/lang/Object;
    MethodParameters:
      Name  Flags
      cls   

  public native void monitorEnter(java.lang.Object);
    descriptor: (Ljava/lang/Object;)V
    flags: (0x0101) ACC_PUBLIC, ACC_NATIVE
    RuntimeVisibleAnnotations: 
      java.lang.Deprecated()
    MethodParameters:
      Name  Flags
      o     

  public native void monitorExit(java.lang.Object);
    descriptor: (Ljava/lang/Object;)V
    flags: (0x0101) ACC_PUBLIC, ACC_NATIVE
    RuntimeVisibleAnnotations: 
      java.lang.Deprecated()
    MethodParameters:
      Name  Flags
      o     

  public native boolean tryMonitorEnter(java.lang.Object);
    descriptor: (Ljava/lang/Object;)Z
    flags: (0x0101) ACC_PUBLIC, ACC_NATIVE
    RuntimeVisibleAnnotations: 
      java.lang.Deprecated()
    MethodParameters:
      Name  Flags
      o     

  public native void throwException(java.lang.Throwable);
    descriptor: (Ljava/lang/Throwable;)V
    flags: (0x0101) ACC_PUBLIC, ACC_NATIVE
    MethodParameters:
      Name  Flags
      ee    

  public final native boolean compareAndSwapObject(java.lang.Object, long, java.lang.Object, java.lang.Object);
    descriptor: (Ljava/lang/Object;JLjava/lang/Object;Ljava/lang/Object;)Z
    flags: (0x0111) ACC_PUBLIC, ACC_FINAL, ACC_NATIVE
    MethodParameters:
          Name  Flags
      o         
      offset    
      expected  
      x         

  public final native boolean compareAndSwapInt(java.lang.Object, long, int, int);
    descriptor: (Ljava/lang/Object;JII)Z
    flags: (0x0111) ACC_PUBLIC, ACC_FINAL, ACC_NATIVE
    MethodParameters:
          Name  Flags
      o         
      offset    
      expected  
      x         

  public final native boolean compareAndSwapLong(java.lang.Object, long, long, long);
    descriptor: (Ljava/lang/Object;JJJ)Z
    flags: (0x0111) ACC_PUBLIC, ACC_FINAL, ACC_NATIVE
    MethodParameters:
          Name  Flags
      o         
      offset    
      expected  
      x         

  public native java.lang.Object getObjectVolatile(java.lang.Object, long);
    descriptor: (Ljava/lang/Object;J)Ljava/lang/Object;
    flags: (0x0101) ACC_PUBLIC, ACC_NATIVE
    MethodParameters:
        Name  Flags
      o       
      offset  

  public native void putObjectVolatile(java.lang.Object, long, java.lang.Object);
    descriptor: (Ljava/lang/Object;JLjava/lang/Object;)V
    flags: (0x0101) ACC_PUBLIC, ACC_NATIVE
    MethodParameters:
        Name  Flags
      o       
      offset  
      x       

  public native int getIntVolatile(java.lang.Object, long);
    descriptor: (Ljava/lang/Object;J)I
    flags: (0x0101) ACC_PUBLIC, ACC_NATIVE
    MethodParameters:
        Name  Flags
      o       
      offset  

  public native void putIntVolatile(java.lang.Object, long, int);
    descriptor: (Ljava/lang/Object;JI)V
    flags: (0x0101) ACC_PUBLIC, ACC_NATIVE
    MethodParameters:
        Name  Flags
      o       
      offset  
      x       

  public native boolean getBooleanVolatile(java.lang.Object, long);
    descriptor: (Ljava/lang/Object;J)Z
    flags: (0x0101) ACC_PUBLIC, ACC_NATIVE
    MethodParameters:
        Name  Flags
      o       
      offset  

  public native void putBooleanVolatile(java.lang.Object, long, boolean);
    descriptor: (Ljava/lang/Object;JZ)V
    flags: (0x0101) ACC_PUBLIC, ACC_NATIVE
    MethodParameters:
        Name  Flags
      o       
      offset  
      x       

  public native byte getByteVolatile(java.lang.Object, long);
    descriptor: (Ljava/lang/Object;J)B
    flags: (0x0101) ACC_PUBLIC, ACC_NATIVE
    MethodParameters:
        Name  Flags
      o       
      offset  

  public native void putByteVolatile(java.lang.Object, long, byte);
    descriptor: (Ljava/lang/Object;JB)V
    flags: (0x0101) ACC_PUBLIC, ACC_NATIVE
    MethodParameters:
        Name  Flags
      o       
      offset  
      x       

  public native short getShortVolatile(java.lang.Object, long);
    descriptor: (Ljava/lang/Object;J)S
    flags: (0x0101) ACC_PUBLIC, ACC_NATIVE
    MethodParameters:
        Name  Flags
      o       
      offset  

  public native void putShortVolatile(java.lang.Object, long, short);
    descriptor: (Ljava/lang/Object;JS)V
    flags: (0x0101) ACC_PUBLIC, ACC_NATIVE
    MethodParameters:
        Name  Flags
      o       
      offset  
      x       

  public native char getCharVolatile(java.lang.Object, long);
    descriptor: (Ljava/lang/Object;J)C
    flags: (0x0101) ACC_PUBLIC, ACC_NATIVE
    MethodParameters:
        Name  Flags
      o       
      offset  

  public native void putCharVolatile(java.lang.Object, long, char);
    descriptor: (Ljava/lang/Object;JC)V
    flags: (0x0101) ACC_PUBLIC, ACC_NATIVE
    MethodParameters:
        Name  Flags
      o       
      offset  
      x       

  public native long getLongVolatile(java.lang.Object, long);
    descriptor: (Ljava/lang/Object;J)J
    flags: (0x0101) ACC_PUBLIC, ACC_NATIVE
    MethodParameters:
        Name  Flags
      o       
      offset  

  public native void putLongVolatile(java.lang.Object, long, long);
    descriptor: (Ljava/lang/Object;JJ)V
    flags: (0x0101) ACC_PUBLIC, ACC_NATIVE
    MethodParameters:
        Name  Flags
      o       
      offset  
      x       

  public native float getFloatVolatile(java.lang.Object, long);
    descriptor: (Ljava/lang/Object;J)F
    flags: (0x0101) ACC_PUBLIC, ACC_NATIVE
    MethodParameters:
        Name  Flags
      o       
      offset  

  public native void putFloatVolatile(java.lang.Object, long, float);
    descriptor: (Ljava/lang/Object;JF)V
    flags: (0x0101) ACC_PUBLIC, ACC_NATIVE
    MethodParameters:
        Name  Flags
      o       
      offset  
      x       

  public native double getDoubleVolatile(java.lang.Object, long);
    descriptor: (Ljava/lang/Object;J)D
    flags: (0x0101) ACC_PUBLIC, ACC_NATIVE
    MethodParameters:
        Name  Flags
      o       
      offset  

  public native void putDoubleVolatile(java.lang.Object, long, double);
    descriptor: (Ljava/lang/Object;JD)V
    flags: (0x0101) ACC_PUBLIC, ACC_NATIVE
    MethodParameters:
        Name  Flags
      o       
      offset  
      x       

  public native void putOrderedObject(java.lang.Object, long, java.lang.Object);
    descriptor: (Ljava/lang/Object;JLjava/lang/Object;)V
    flags: (0x0101) ACC_PUBLIC, ACC_NATIVE
    MethodParameters:
        Name  Flags
      o       
      offset  
      x       

  public native void putOrderedInt(java.lang.Object, long, int);
    descriptor: (Ljava/lang/Object;JI)V
    flags: (0x0101) ACC_PUBLIC, ACC_NATIVE
    MethodParameters:
        Name  Flags
      o       
      offset  
      x       

  public native void putOrderedLong(java.lang.Object, long, long);
    descriptor: (Ljava/lang/Object;JJ)V
    flags: (0x0101) ACC_PUBLIC, ACC_NATIVE
    MethodParameters:
        Name  Flags
      o       
      offset  
      x       

  public native void unpark(java.lang.Object);
    descriptor: (Ljava/lang/Object;)V
    flags: (0x0101) ACC_PUBLIC, ACC_NATIVE
    MethodParameters:
        Name  Flags
      thread  

  public native void park(boolean, long);
    descriptor: (ZJ)V
    flags: (0x0101) ACC_PUBLIC, ACC_NATIVE
    MethodParameters:
            Name  Flags
      isAbsolute  
      time        

  public native int getLoadAverage(double[], int);
    descriptor: ([DI)I
    flags: (0x0101) ACC_PUBLIC, ACC_NATIVE
    MethodParameters:
         Name  Flags
      loadavg  
      nelems   

  public final int getAndAddInt(java.lang.Object, long, int);
    descriptor: (Ljava/lang/Object;JI)I
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL
    Code:
      stack=7, locals=6, args_size=4
        start local 0 // sun.misc.Unsafe this
        start local 1 // java.lang.Object o
        start local 2 // long offset
        start local 4 // int delta
         0: .line 1034
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* o */
            lload 2 /* offset */
            invokevirtual sun.misc.Unsafe.getIntVolatile:(Ljava/lang/Object;J)I
            istore 5 /* v */
        start local 5 // int v
         1: .line 1035
            aload 0 /* this */
            aload 1 /* o */
            lload 2 /* offset */
            iload 5 /* v */
            iload 5 /* v */
            iload 4 /* delta */
            iadd
            invokevirtual sun.misc.Unsafe.compareAndSwapInt:(Ljava/lang/Object;JII)Z
            ifeq 0
         2: .line 1036
            iload 5 /* v */
            ireturn
        end local 5 // int v
        end local 4 // int delta
        end local 2 // long offset
        end local 1 // java.lang.Object o
        end local 0 // sun.misc.Unsafe this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    3     0    this  Lsun/misc/Unsafe;
            0    3     1       o  Ljava/lang/Object;
            0    3     2  offset  J
            0    3     4   delta  I
            1    3     5       v  I
    MethodParameters:
        Name  Flags
      o       
      offset  
      delta   

  public final long getAndAddLong(java.lang.Object, long, long);
    descriptor: (Ljava/lang/Object;JJ)J
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL
    Code:
      stack=10, locals=8, args_size=4
        start local 0 // sun.misc.Unsafe this
        start local 1 // java.lang.Object o
        start local 2 // long offset
        start local 4 // long delta
         0: .line 1053
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* o */
            lload 2 /* offset */
            invokevirtual sun.misc.Unsafe.getLongVolatile:(Ljava/lang/Object;J)J
            lstore 6 /* v */
        start local 6 // long v
         1: .line 1054
            aload 0 /* this */
            aload 1 /* o */
            lload 2 /* offset */
            lload 6 /* v */
            lload 6 /* v */
            lload 4 /* delta */
            ladd
            invokevirtual sun.misc.Unsafe.compareAndSwapLong:(Ljava/lang/Object;JJJ)Z
            ifeq 0
         2: .line 1055
            lload 6 /* v */
            lreturn
        end local 6 // long v
        end local 4 // long delta
        end local 2 // long offset
        end local 1 // java.lang.Object o
        end local 0 // sun.misc.Unsafe this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    3     0    this  Lsun/misc/Unsafe;
            0    3     1       o  Ljava/lang/Object;
            0    3     2  offset  J
            0    3     4   delta  J
            1    3     6       v  J
    MethodParameters:
        Name  Flags
      o       
      offset  
      delta   

  public final int getAndSetInt(java.lang.Object, long, int);
    descriptor: (Ljava/lang/Object;JI)I
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL
    Code:
      stack=6, locals=6, args_size=4
        start local 0 // sun.misc.Unsafe this
        start local 1 // java.lang.Object o
        start local 2 // long offset
        start local 4 // int newValue
         0: .line 1072
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* o */
            lload 2 /* offset */
            invokevirtual sun.misc.Unsafe.getIntVolatile:(Ljava/lang/Object;J)I
            istore 5 /* v */
        start local 5 // int v
         1: .line 1073
            aload 0 /* this */
            aload 1 /* o */
            lload 2 /* offset */
            iload 5 /* v */
            iload 4 /* newValue */
            invokevirtual sun.misc.Unsafe.compareAndSwapInt:(Ljava/lang/Object;JII)Z
            ifeq 0
         2: .line 1074
            iload 5 /* v */
            ireturn
        end local 5 // int v
        end local 4 // int newValue
        end local 2 // long offset
        end local 1 // java.lang.Object o
        end local 0 // sun.misc.Unsafe this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    3     0      this  Lsun/misc/Unsafe;
            0    3     1         o  Ljava/lang/Object;
            0    3     2    offset  J
            0    3     4  newValue  I
            1    3     5         v  I
    MethodParameters:
          Name  Flags
      o         
      offset    
      newValue  

  public final long getAndSetLong(java.lang.Object, long, long);
    descriptor: (Ljava/lang/Object;JJ)J
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL
    Code:
      stack=8, locals=8, args_size=4
        start local 0 // sun.misc.Unsafe this
        start local 1 // java.lang.Object o
        start local 2 // long offset
        start local 4 // long newValue
         0: .line 1091
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* o */
            lload 2 /* offset */
            invokevirtual sun.misc.Unsafe.getLongVolatile:(Ljava/lang/Object;J)J
            lstore 6 /* v */
        start local 6 // long v
         1: .line 1092
            aload 0 /* this */
            aload 1 /* o */
            lload 2 /* offset */
            lload 6 /* v */
            lload 4 /* newValue */
            invokevirtual sun.misc.Unsafe.compareAndSwapLong:(Ljava/lang/Object;JJJ)Z
            ifeq 0
         2: .line 1093
            lload 6 /* v */
            lreturn
        end local 6 // long v
        end local 4 // long newValue
        end local 2 // long offset
        end local 1 // java.lang.Object o
        end local 0 // sun.misc.Unsafe this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    3     0      this  Lsun/misc/Unsafe;
            0    3     1         o  Ljava/lang/Object;
            0    3     2    offset  J
            0    3     4  newValue  J
            1    3     6         v  J
    MethodParameters:
          Name  Flags
      o         
      offset    
      newValue  

  public final java.lang.Object getAndSetObject(java.lang.Object, long, java.lang.Object);
    descriptor: (Ljava/lang/Object;JLjava/lang/Object;)Ljava/lang/Object;
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL
    Code:
      stack=6, locals=6, args_size=4
        start local 0 // sun.misc.Unsafe this
        start local 1 // java.lang.Object o
        start local 2 // long offset
        start local 4 // java.lang.Object newValue
         0: .line 1110
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* o */
            lload 2 /* offset */
            invokevirtual sun.misc.Unsafe.getObjectVolatile:(Ljava/lang/Object;J)Ljava/lang/Object;
            astore 5 /* v */
        start local 5 // java.lang.Object v
         1: .line 1111
            aload 0 /* this */
            aload 1 /* o */
            lload 2 /* offset */
            aload 5 /* v */
            aload 4 /* newValue */
            invokevirtual sun.misc.Unsafe.compareAndSwapObject:(Ljava/lang/Object;JLjava/lang/Object;Ljava/lang/Object;)Z
            ifeq 0
         2: .line 1112
            aload 5 /* v */
            areturn
        end local 5 // java.lang.Object v
        end local 4 // java.lang.Object newValue
        end local 2 // long offset
        end local 1 // java.lang.Object o
        end local 0 // sun.misc.Unsafe this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    3     0      this  Lsun/misc/Unsafe;
            0    3     1         o  Ljava/lang/Object;
            0    3     2    offset  J
            0    3     4  newValue  Ljava/lang/Object;
            1    3     5         v  Ljava/lang/Object;
    MethodParameters:
          Name  Flags
      o         
      offset    
      newValue  

  public native void loadFence();
    descriptor: ()V
    flags: (0x0101) ACC_PUBLIC, ACC_NATIVE

  public native void storeFence();
    descriptor: ()V
    flags: (0x0101) ACC_PUBLIC, ACC_NATIVE

  public native void fullFence();
    descriptor: ()V
    flags: (0x0101) ACC_PUBLIC, ACC_NATIVE

  private static void throwIllegalAccessError();
    descriptor: ()V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=0, args_size=0
         0: .line 1142
            new java.lang.IllegalAccessError
            dup
            invokespecial java.lang.IllegalAccessError.<init>:()V
            athrow
      LocalVariableTable:
        Start  End  Slot  Name  Signature
}
SourceFile: "Unsafe.java"