public class sun.jvm.hotspot.oops.OopUtilities
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: sun.jvm.hotspot.oops.OopUtilities
  super_class: java.lang.Object
{
  private static sun.jvm.hotspot.oops.ByteField coderField;
    descriptor: Lsun/jvm/hotspot/oops/ByteField;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC

  private static sun.jvm.hotspot.oops.OopField valueField;
    descriptor: Lsun/jvm/hotspot/oops/OopField;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC

  private static sun.jvm.hotspot.oops.OopField threadGroupParentField;
    descriptor: Lsun/jvm/hotspot/oops/OopField;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC

  private static sun.jvm.hotspot.oops.OopField threadGroupNameField;
    descriptor: Lsun/jvm/hotspot/oops/OopField;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC

  private static sun.jvm.hotspot.oops.IntField threadGroupNThreadsField;
    descriptor: Lsun/jvm/hotspot/oops/IntField;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC

  private static sun.jvm.hotspot.oops.OopField threadGroupThreadsField;
    descriptor: Lsun/jvm/hotspot/oops/OopField;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC

  private static sun.jvm.hotspot.oops.IntField threadGroupNGroupsField;
    descriptor: Lsun/jvm/hotspot/oops/IntField;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC

  private static sun.jvm.hotspot.oops.OopField threadGroupGroupsField;
    descriptor: Lsun/jvm/hotspot/oops/OopField;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC

  private static sun.jvm.hotspot.oops.OopField threadNameField;
    descriptor: Lsun/jvm/hotspot/oops/OopField;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC

  private static sun.jvm.hotspot.oops.OopField threadGroupField;
    descriptor: Lsun/jvm/hotspot/oops/OopField;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC

  private static sun.jvm.hotspot.oops.LongField threadEETopField;
    descriptor: Lsun/jvm/hotspot/oops/LongField;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC

  private static sun.jvm.hotspot.oops.LongField threadTIDField;
    descriptor: Lsun/jvm/hotspot/oops/LongField;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC

  private static sun.jvm.hotspot.oops.IntField threadStatusField;
    descriptor: Lsun/jvm/hotspot/oops/IntField;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC

  private static sun.jvm.hotspot.oops.OopField threadParkBlockerField;
    descriptor: Lsun/jvm/hotspot/oops/OopField;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC

  private static int THREAD_STATUS_NEW;
    descriptor: I
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC

  private static sun.jvm.hotspot.oops.OopField absOwnSyncOwnerThreadField;
    descriptor: Lsun/jvm/hotspot/oops/OopField;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC

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

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=2, locals=0, args_size=0
         0: .line 83
            new sun.jvm.hotspot.oops.OopUtilities$1
            dup
            invokespecial sun.jvm.hotspot.oops.OopUtilities$1.<init>:()V
            invokestatic sun.jvm.hotspot.runtime.VM.registerVMInitializedObserver:(Ljava/util/Observer;)V
         1: .line 88
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

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

  private static synchronized void initialize(sun.jvm.hotspot.types.TypeDataBase);
    descriptor: (Lsun/jvm/hotspot/types/TypeDataBase;)V
    flags: (0x002a) ACC_PRIVATE, ACC_STATIC, ACC_SYNCHRONIZED
    Code:
      stack=0, locals=1, args_size=1
        start local 0 // sun.jvm.hotspot.types.TypeDataBase db
         0: .line 93
            return
        end local 0 // sun.jvm.hotspot.types.TypeDataBase db
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0    db  Lsun/jvm/hotspot/types/TypeDataBase;
    MethodParameters:
      Name  Flags
      db    

  public static java.lang.String charArrayToString(sun.jvm.hotspot.oops.TypeArray);
    descriptor: (Lsun/jvm/hotspot/oops/TypeArray;)Ljava/lang/String;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=4, args_size=1
        start local 0 // sun.jvm.hotspot.oops.TypeArray charArray
         0: .line 96
            aload 0 /* charArray */
            ifnonnull 2
         1: .line 97
            aconst_null
            areturn
         2: .line 99
      StackMap locals:
      StackMap stack:
            aload 0 /* charArray */
            invokevirtual sun.jvm.hotspot.oops.TypeArray.getLength:()J
            l2i
            istore 1 /* length */
        start local 1 // int length
         3: .line 100
            new java.lang.StringBuffer
            dup
            iload 1 /* length */
            invokespecial java.lang.StringBuffer.<init>:(I)V
            astore 2 /* buf */
        start local 2 // java.lang.StringBuffer buf
         4: .line 101
            iconst_0
            istore 3 /* i */
        start local 3 // int i
         5: goto 8
         6: .line 102
      StackMap locals: int java.lang.StringBuffer int
      StackMap stack:
            aload 2 /* buf */
            aload 0 /* charArray */
            iload 3 /* i */
            i2l
            invokevirtual sun.jvm.hotspot.oops.TypeArray.getCharAt:(J)C
            invokevirtual java.lang.StringBuffer.append:(C)Ljava/lang/StringBuffer;
            pop
         7: .line 101
            iinc 3 /* i */ 1
      StackMap locals:
      StackMap stack:
         8: iload 3 /* i */
            iload 1 /* length */
            if_icmplt 6
        end local 3 // int i
         9: .line 104
            aload 2 /* buf */
            invokevirtual java.lang.StringBuffer.toString:()Ljava/lang/String;
            areturn
        end local 2 // java.lang.StringBuffer buf
        end local 1 // int length
        end local 0 // sun.jvm.hotspot.oops.TypeArray charArray
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   10     0  charArray  Lsun/jvm/hotspot/oops/TypeArray;
            3   10     1     length  I
            4   10     2        buf  Ljava/lang/StringBuffer;
            5    9     3          i  I
    MethodParameters:
           Name  Flags
      charArray  

  public static java.lang.String byteArrayToString(sun.jvm.hotspot.oops.TypeArray, byte);
    descriptor: (Lsun/jvm/hotspot/oops/TypeArray;B)Ljava/lang/String;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=5, args_size=2
        start local 0 // sun.jvm.hotspot.oops.TypeArray byteArray
        start local 1 // byte coder
         0: .line 108
            aload 0 /* byteArray */
            ifnonnull 2
         1: .line 109
            aconst_null
            areturn
         2: .line 111
      StackMap locals:
      StackMap stack:
            aload 0 /* byteArray */
            invokevirtual sun.jvm.hotspot.oops.TypeArray.getLength:()J
            l2i
            iload 1 /* coder */
            ishr
            istore 2 /* length */
        start local 2 // int length
         3: .line 112
            new java.lang.StringBuffer
            dup
            iload 2 /* length */
            invokespecial java.lang.StringBuffer.<init>:(I)V
            astore 3 /* buf */
        start local 3 // java.lang.StringBuffer buf
         4: .line 113
            iload 1 /* coder */
            ifne 11
         5: .line 115
            iconst_0
            istore 4 /* i */
        start local 4 // int i
         6: goto 9
         7: .line 116
      StackMap locals: int java.lang.StringBuffer int
      StackMap stack:
            aload 3 /* buf */
            aload 0 /* byteArray */
            iload 4 /* i */
            i2l
            invokevirtual sun.jvm.hotspot.oops.TypeArray.getByteAt:(J)B
            sipush 255
            iand
            i2c
            invokevirtual java.lang.StringBuffer.append:(C)Ljava/lang/StringBuffer;
            pop
         8: .line 115
            iinc 4 /* i */ 1
      StackMap locals:
      StackMap stack:
         9: iload 4 /* i */
            iload 2 /* length */
            if_icmplt 7
        end local 4 // int i
        10: .line 118
            goto 16
        11: .line 120
      StackMap locals:
      StackMap stack:
            iconst_0
            istore 4 /* i */
        start local 4 // int i
        12: goto 15
        13: .line 121
      StackMap locals: int
      StackMap stack:
            aload 3 /* buf */
            aload 0 /* byteArray */
            iload 4 /* i */
            i2l
            invokevirtual sun.jvm.hotspot.oops.TypeArray.getCharAt:(J)C
            invokevirtual java.lang.StringBuffer.append:(C)Ljava/lang/StringBuffer;
            pop
        14: .line 120
            iinc 4 /* i */ 1
      StackMap locals:
      StackMap stack:
        15: iload 4 /* i */
            iload 2 /* length */
            if_icmplt 13
        end local 4 // int i
        16: .line 124
      StackMap locals:
      StackMap stack:
            aload 3 /* buf */
            invokevirtual java.lang.StringBuffer.toString:()Ljava/lang/String;
            areturn
        end local 3 // java.lang.StringBuffer buf
        end local 2 // int length
        end local 1 // byte coder
        end local 0 // sun.jvm.hotspot.oops.TypeArray byteArray
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   17     0  byteArray  Lsun/jvm/hotspot/oops/TypeArray;
            0   17     1      coder  B
            3   17     2     length  I
            4   17     3        buf  Ljava/lang/StringBuffer;
            6   10     4          i  I
           12   16     4          i  I
    MethodParameters:
           Name  Flags
      byteArray  
      coder      

  public static java.lang.String escapeString(java.lang.String);
    descriptor: (Ljava/lang/String;)Ljava/lang/String;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=4, args_size=1
        start local 0 // java.lang.String s
         0: .line 128
            aconst_null
            astore 1 /* sb */
        start local 1 // java.lang.StringBuilder sb
         1: .line 129
            iconst_0
            istore 2 /* index */
        start local 2 // int index
         2: goto 18
         3: .line 130
      StackMap locals: java.lang.StringBuilder int
      StackMap stack:
            aload 0 /* s */
            iload 2 /* index */
            invokevirtual java.lang.String.charAt:(I)C
            istore 3 /* value */
        start local 3 // char value
         4: .line 131
            iload 3 /* value */
            bipush 32
            if_icmplt 5
            iload 3 /* value */
            bipush 127
            if_icmplt 6
      StackMap locals: int
      StackMap stack:
         5: iload 3 /* value */
            bipush 39
            if_icmpeq 6
            iload 3 /* value */
            bipush 92
            if_icmpne 9
         6: .line 132
      StackMap locals:
      StackMap stack:
            aload 1 /* sb */
            ifnull 17
         7: .line 133
            aload 1 /* sb */
            iload 3 /* value */
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            pop
         8: .line 135
            goto 17
         9: .line 136
      StackMap locals:
      StackMap stack:
            aload 1 /* sb */
            ifnonnull 12
        10: .line 137
            new java.lang.StringBuilder
            dup
            aload 0 /* s */
            invokevirtual java.lang.String.length:()I
            iconst_2
            imul
            invokespecial java.lang.StringBuilder.<init>:(I)V
            astore 1 /* sb */
        11: .line 138
            aload 1 /* sb */
            aload 0 /* s */
            iconst_0
            iload 2 /* index */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/CharSequence;II)Ljava/lang/StringBuilder;
            pop
        12: .line 140
      StackMap locals:
      StackMap stack:
            aload 1 /* sb */
            ldc "\\u"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        13: .line 141
            iload 3 /* value */
            bipush 16
            if_icmpge 14
            aload 1 /* sb */
            ldc "000"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
            goto 16
        14: .line 142
      StackMap locals:
      StackMap stack:
            iload 3 /* value */
            sipush 256
            if_icmpge 15
            aload 1 /* sb */
            ldc "00"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
            goto 16
        15: .line 143
      StackMap locals:
      StackMap stack:
            iload 3 /* value */
            sipush 4096
            if_icmpge 16
            aload 1 /* sb */
            ldc "0"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        16: .line 144
      StackMap locals:
      StackMap stack:
            aload 1 /* sb */
            iload 3 /* value */
            invokestatic java.lang.Integer.toHexString:(I)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        end local 3 // char value
        17: .line 129
      StackMap locals:
      StackMap stack:
            iinc 2 /* index */ 1
      StackMap locals:
      StackMap stack:
        18: iload 2 /* index */
            aload 0 /* s */
            invokevirtual java.lang.String.length:()I
            if_icmplt 3
        end local 2 // int index
        19: .line 147
            aload 1 /* sb */
            ifnull 21
        20: .line 148
            aload 1 /* sb */
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            areturn
        21: .line 150
      StackMap locals:
      StackMap stack:
            aload 0 /* s */
            areturn
        end local 1 // java.lang.StringBuilder sb
        end local 0 // java.lang.String s
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0   22     0      s  Ljava/lang/String;
            1   22     1     sb  Ljava/lang/StringBuilder;
            2   19     2  index  I
            4   17     3  value  C
    MethodParameters:
      Name  Flags
      s     

  public static java.lang.String stringOopToString(sun.jvm.hotspot.oops.Oop);
    descriptor: (Lsun/jvm/hotspot/oops/Oop;)Ljava/lang/String;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=2, args_size=1
        start local 0 // sun.jvm.hotspot.oops.Oop stringOop
         0: .line 154
            aload 0 /* stringOop */
            invokevirtual sun.jvm.hotspot.oops.Oop.getKlass:()Lsun/jvm/hotspot/oops/Klass;
            checkcast sun.jvm.hotspot.oops.InstanceKlass
            astore 1 /* k */
        start local 1 // sun.jvm.hotspot.oops.InstanceKlass k
         1: .line 155
            aload 1 /* k */
            ldc "coder"
            ldc "B"
            invokevirtual sun.jvm.hotspot.oops.InstanceKlass.findField:(Ljava/lang/String;Ljava/lang/String;)Lsun/jvm/hotspot/oops/Field;
            checkcast sun.jvm.hotspot.oops.ByteField
            putstatic sun.jvm.hotspot.oops.OopUtilities.coderField:Lsun/jvm/hotspot/oops/ByteField;
         2: .line 156
            aload 1 /* k */
            ldc "value"
            ldc "[B"
            invokevirtual sun.jvm.hotspot.oops.InstanceKlass.findField:(Ljava/lang/String;Ljava/lang/String;)Lsun/jvm/hotspot/oops/Field;
            checkcast sun.jvm.hotspot.oops.OopField
            putstatic sun.jvm.hotspot.oops.OopUtilities.valueField:Lsun/jvm/hotspot/oops/OopField;
         3: .line 157
            getstatic sun.jvm.hotspot.utilities.Assert.ASSERTS_ENABLED:Z
            ifeq 10
         4: .line 158
            getstatic sun.jvm.hotspot.oops.OopUtilities.coderField:Lsun/jvm/hotspot/oops/ByteField;
            ifnull 5
            iconst_1
            goto 6
      StackMap locals: sun.jvm.hotspot.oops.InstanceKlass
      StackMap stack:
         5: iconst_0
      StackMap locals:
      StackMap stack: int
         6: ldc "Field 'coder' of java.lang.String not found"
            invokestatic sun.jvm.hotspot.utilities.Assert.that:(ZLjava/lang/String;)V
         7: .line 159
            getstatic sun.jvm.hotspot.oops.OopUtilities.valueField:Lsun/jvm/hotspot/oops/OopField;
            ifnull 8
            iconst_1
            goto 9
      StackMap locals:
      StackMap stack:
         8: iconst_0
      StackMap locals:
      StackMap stack: int
         9: ldc "Field 'value' of java.lang.String not found"
            invokestatic sun.jvm.hotspot.utilities.Assert.that:(ZLjava/lang/String;)V
        10: .line 161
      StackMap locals:
      StackMap stack:
            getstatic sun.jvm.hotspot.oops.OopUtilities.valueField:Lsun/jvm/hotspot/oops/OopField;
            aload 0 /* stringOop */
            invokevirtual sun.jvm.hotspot.oops.OopField.getValue:(Lsun/jvm/hotspot/oops/Oop;)Lsun/jvm/hotspot/oops/Oop;
            checkcast sun.jvm.hotspot.oops.TypeArray
            getstatic sun.jvm.hotspot.oops.OopUtilities.coderField:Lsun/jvm/hotspot/oops/ByteField;
            aload 0 /* stringOop */
            invokevirtual sun.jvm.hotspot.oops.ByteField.getValue:(Lsun/jvm/hotspot/oops/Oop;)B
            invokestatic sun.jvm.hotspot.oops.OopUtilities.byteArrayToString:(Lsun/jvm/hotspot/oops/TypeArray;B)Ljava/lang/String;
            areturn
        end local 1 // sun.jvm.hotspot.oops.InstanceKlass k
        end local 0 // sun.jvm.hotspot.oops.Oop stringOop
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   11     0  stringOop  Lsun/jvm/hotspot/oops/Oop;
            1   11     1          k  Lsun/jvm/hotspot/oops/InstanceKlass;
    MethodParameters:
           Name  Flags
      stringOop  

  public static java.lang.String stringOopToEscapedString(sun.jvm.hotspot.oops.Oop);
    descriptor: (Lsun/jvm/hotspot/oops/Oop;)Ljava/lang/String;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // sun.jvm.hotspot.oops.Oop stringOop
         0: .line 165
            aload 0 /* stringOop */
            invokestatic sun.jvm.hotspot.oops.OopUtilities.stringOopToString:(Lsun/jvm/hotspot/oops/Oop;)Ljava/lang/String;
            invokestatic sun.jvm.hotspot.oops.OopUtilities.escapeString:(Ljava/lang/String;)Ljava/lang/String;
            areturn
        end local 0 // sun.jvm.hotspot.oops.Oop stringOop
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    1     0  stringOop  Lsun/jvm/hotspot/oops/Oop;
    MethodParameters:
           Name  Flags
      stringOop  

  private static void initThreadGroupFields();
    descriptor: ()V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=3, locals=2, args_size=0
         0: .line 169
            getstatic sun.jvm.hotspot.oops.OopUtilities.threadGroupParentField:Lsun/jvm/hotspot/oops/OopField;
            ifnonnull 19
         1: .line 170
            invokestatic sun.jvm.hotspot.runtime.VM.getVM:()Lsun/jvm/hotspot/runtime/VM;
            invokevirtual sun.jvm.hotspot.runtime.VM.getSystemDictionary:()Lsun/jvm/hotspot/memory/SystemDictionary;
            astore 0 /* sysDict */
        start local 0 // sun.jvm.hotspot.memory.SystemDictionary sysDict
         2: .line 171
            invokestatic sun.jvm.hotspot.memory.SystemDictionary.getThreadGroupKlass:()Lsun/jvm/hotspot/oops/InstanceKlass;
            astore 1 /* k */
        start local 1 // sun.jvm.hotspot.oops.InstanceKlass k
         3: .line 172
            aload 1 /* k */
            ldc "parent"
            ldc "Ljava/lang/ThreadGroup;"
            invokevirtual sun.jvm.hotspot.oops.InstanceKlass.findField:(Ljava/lang/String;Ljava/lang/String;)Lsun/jvm/hotspot/oops/Field;
            checkcast sun.jvm.hotspot.oops.OopField
            putstatic sun.jvm.hotspot.oops.OopUtilities.threadGroupParentField:Lsun/jvm/hotspot/oops/OopField;
         4: .line 173
            aload 1 /* k */
            ldc "name"
            ldc "Ljava/lang/String;"
            invokevirtual sun.jvm.hotspot.oops.InstanceKlass.findField:(Ljava/lang/String;Ljava/lang/String;)Lsun/jvm/hotspot/oops/Field;
            checkcast sun.jvm.hotspot.oops.OopField
            putstatic sun.jvm.hotspot.oops.OopUtilities.threadGroupNameField:Lsun/jvm/hotspot/oops/OopField;
         5: .line 174
            aload 1 /* k */
            ldc "nthreads"
            ldc "I"
            invokevirtual sun.jvm.hotspot.oops.InstanceKlass.findField:(Ljava/lang/String;Ljava/lang/String;)Lsun/jvm/hotspot/oops/Field;
            checkcast sun.jvm.hotspot.oops.IntField
            putstatic sun.jvm.hotspot.oops.OopUtilities.threadGroupNThreadsField:Lsun/jvm/hotspot/oops/IntField;
         6: .line 175
            aload 1 /* k */
            ldc "threads"
            ldc "[Ljava/lang/Thread;"
            invokevirtual sun.jvm.hotspot.oops.InstanceKlass.findField:(Ljava/lang/String;Ljava/lang/String;)Lsun/jvm/hotspot/oops/Field;
            checkcast sun.jvm.hotspot.oops.OopField
            putstatic sun.jvm.hotspot.oops.OopUtilities.threadGroupThreadsField:Lsun/jvm/hotspot/oops/OopField;
         7: .line 176
            aload 1 /* k */
            ldc "ngroups"
            ldc "I"
            invokevirtual sun.jvm.hotspot.oops.InstanceKlass.findField:(Ljava/lang/String;Ljava/lang/String;)Lsun/jvm/hotspot/oops/Field;
            checkcast sun.jvm.hotspot.oops.IntField
            putstatic sun.jvm.hotspot.oops.OopUtilities.threadGroupNGroupsField:Lsun/jvm/hotspot/oops/IntField;
         8: .line 177
            aload 1 /* k */
            ldc "groups"
            ldc "[Ljava/lang/ThreadGroup;"
            invokevirtual sun.jvm.hotspot.oops.InstanceKlass.findField:(Ljava/lang/String;Ljava/lang/String;)Lsun/jvm/hotspot/oops/Field;
            checkcast sun.jvm.hotspot.oops.OopField
            putstatic sun.jvm.hotspot.oops.OopUtilities.threadGroupGroupsField:Lsun/jvm/hotspot/oops/OopField;
         9: .line 178
            getstatic sun.jvm.hotspot.utilities.Assert.ASSERTS_ENABLED:Z
            ifeq 19
        10: .line 179
            getstatic sun.jvm.hotspot.oops.OopUtilities.threadGroupParentField:Lsun/jvm/hotspot/oops/OopField;
            ifnull 16
        11: .line 180
            getstatic sun.jvm.hotspot.oops.OopUtilities.threadGroupNameField:Lsun/jvm/hotspot/oops/OopField;
            ifnull 16
        12: .line 181
            getstatic sun.jvm.hotspot.oops.OopUtilities.threadGroupNThreadsField:Lsun/jvm/hotspot/oops/IntField;
            ifnull 16
        13: .line 182
            getstatic sun.jvm.hotspot.oops.OopUtilities.threadGroupThreadsField:Lsun/jvm/hotspot/oops/OopField;
            ifnull 16
        14: .line 183
            getstatic sun.jvm.hotspot.oops.OopUtilities.threadGroupNGroupsField:Lsun/jvm/hotspot/oops/IntField;
            ifnull 16
        15: .line 184
            getstatic sun.jvm.hotspot.oops.OopUtilities.threadGroupGroupsField:Lsun/jvm/hotspot/oops/OopField;
            ifnull 16
            iconst_1
            goto 17
      StackMap locals: sun.jvm.hotspot.memory.SystemDictionary sun.jvm.hotspot.oops.InstanceKlass
      StackMap stack:
        16: iconst_0
      StackMap locals:
      StackMap stack: int
        17: ldc "must find all java.lang.ThreadGroup fields"
        18: .line 179
            invokestatic sun.jvm.hotspot.utilities.Assert.that:(ZLjava/lang/String;)V
        end local 1 // sun.jvm.hotspot.oops.InstanceKlass k
        end local 0 // sun.jvm.hotspot.memory.SystemDictionary sysDict
        19: .line 187
      StackMap locals:
      StackMap stack:
            return
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            2   19     0  sysDict  Lsun/jvm/hotspot/memory/SystemDictionary;
            3   19     1        k  Lsun/jvm/hotspot/oops/InstanceKlass;

  public static sun.jvm.hotspot.oops.Oop threadGroupOopGetParent(sun.jvm.hotspot.oops.Oop);
    descriptor: (Lsun/jvm/hotspot/oops/Oop;)Lsun/jvm/hotspot/oops/Oop;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // sun.jvm.hotspot.oops.Oop threadGroupOop
         0: .line 190
            invokestatic sun.jvm.hotspot.oops.OopUtilities.initThreadGroupFields:()V
         1: .line 191
            getstatic sun.jvm.hotspot.oops.OopUtilities.threadGroupParentField:Lsun/jvm/hotspot/oops/OopField;
            aload 0 /* threadGroupOop */
            invokevirtual sun.jvm.hotspot.oops.OopField.getValue:(Lsun/jvm/hotspot/oops/Oop;)Lsun/jvm/hotspot/oops/Oop;
            areturn
        end local 0 // sun.jvm.hotspot.oops.Oop threadGroupOop
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    2     0  threadGroupOop  Lsun/jvm/hotspot/oops/Oop;
    MethodParameters:
                Name  Flags
      threadGroupOop  

  public static java.lang.String threadGroupOopGetName(sun.jvm.hotspot.oops.Oop);
    descriptor: (Lsun/jvm/hotspot/oops/Oop;)Ljava/lang/String;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // sun.jvm.hotspot.oops.Oop threadGroupOop
         0: .line 195
            invokestatic sun.jvm.hotspot.oops.OopUtilities.initThreadGroupFields:()V
         1: .line 196
            getstatic sun.jvm.hotspot.oops.OopUtilities.threadGroupNameField:Lsun/jvm/hotspot/oops/OopField;
            aload 0 /* threadGroupOop */
            invokevirtual sun.jvm.hotspot.oops.OopField.getValue:(Lsun/jvm/hotspot/oops/Oop;)Lsun/jvm/hotspot/oops/Oop;
            invokestatic sun.jvm.hotspot.oops.OopUtilities.stringOopToString:(Lsun/jvm/hotspot/oops/Oop;)Ljava/lang/String;
            areturn
        end local 0 // sun.jvm.hotspot.oops.Oop threadGroupOop
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    2     0  threadGroupOop  Lsun/jvm/hotspot/oops/Oop;
    MethodParameters:
                Name  Flags
      threadGroupOop  

  public static sun.jvm.hotspot.oops.Oop[] threadGroupOopGetThreads(sun.jvm.hotspot.oops.Oop);
    descriptor: (Lsun/jvm/hotspot/oops/Oop;)[Lsun/jvm/hotspot/oops/Oop;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=5, locals=5, args_size=1
        start local 0 // sun.jvm.hotspot.oops.Oop threadGroupOop
         0: .line 200
            invokestatic sun.jvm.hotspot.oops.OopUtilities.initThreadGroupFields:()V
         1: .line 201
            getstatic sun.jvm.hotspot.oops.OopUtilities.threadGroupNThreadsField:Lsun/jvm/hotspot/oops/IntField;
            aload 0 /* threadGroupOop */
            invokevirtual sun.jvm.hotspot.oops.IntField.getValue:(Lsun/jvm/hotspot/oops/Oop;)I
            istore 1 /* nthreads */
        start local 1 // int nthreads
         2: .line 202
            iload 1 /* nthreads */
            anewarray sun.jvm.hotspot.oops.Oop
            astore 2 /* result */
        start local 2 // sun.jvm.hotspot.oops.Oop[] result
         3: .line 203
            getstatic sun.jvm.hotspot.oops.OopUtilities.threadGroupThreadsField:Lsun/jvm/hotspot/oops/OopField;
            aload 0 /* threadGroupOop */
            invokevirtual sun.jvm.hotspot.oops.OopField.getValue:(Lsun/jvm/hotspot/oops/Oop;)Lsun/jvm/hotspot/oops/Oop;
            checkcast sun.jvm.hotspot.oops.ObjArray
            astore 3 /* threads */
        start local 3 // sun.jvm.hotspot.oops.ObjArray threads
         4: .line 204
            iconst_0
            istore 4 /* i */
        start local 4 // int i
         5: goto 8
         6: .line 205
      StackMap locals: sun.jvm.hotspot.oops.Oop int sun.jvm.hotspot.oops.Oop[] sun.jvm.hotspot.oops.ObjArray int
      StackMap stack:
            aload 2 /* result */
            iload 4 /* i */
            aload 3 /* threads */
            iload 4 /* i */
            i2l
            invokevirtual sun.jvm.hotspot.oops.ObjArray.getObjAt:(J)Lsun/jvm/hotspot/oops/Oop;
            aastore
         7: .line 204
            iinc 4 /* i */ 1
      StackMap locals:
      StackMap stack:
         8: iload 4 /* i */
            iload 1 /* nthreads */
            if_icmplt 6
        end local 4 // int i
         9: .line 207
            aload 2 /* result */
            areturn
        end local 3 // sun.jvm.hotspot.oops.ObjArray threads
        end local 2 // sun.jvm.hotspot.oops.Oop[] result
        end local 1 // int nthreads
        end local 0 // sun.jvm.hotspot.oops.Oop threadGroupOop
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   10     0  threadGroupOop  Lsun/jvm/hotspot/oops/Oop;
            2   10     1        nthreads  I
            3   10     2          result  [Lsun/jvm/hotspot/oops/Oop;
            4   10     3         threads  Lsun/jvm/hotspot/oops/ObjArray;
            5    9     4               i  I
    MethodParameters:
                Name  Flags
      threadGroupOop  

  public static sun.jvm.hotspot.oops.Oop[] threadGroupOopGetGroups(sun.jvm.hotspot.oops.Oop);
    descriptor: (Lsun/jvm/hotspot/oops/Oop;)[Lsun/jvm/hotspot/oops/Oop;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=5, locals=5, args_size=1
        start local 0 // sun.jvm.hotspot.oops.Oop threadGroupOop
         0: .line 211
            invokestatic sun.jvm.hotspot.oops.OopUtilities.initThreadGroupFields:()V
         1: .line 212
            getstatic sun.jvm.hotspot.oops.OopUtilities.threadGroupNGroupsField:Lsun/jvm/hotspot/oops/IntField;
            aload 0 /* threadGroupOop */
            invokevirtual sun.jvm.hotspot.oops.IntField.getValue:(Lsun/jvm/hotspot/oops/Oop;)I
            istore 1 /* ngroups */
        start local 1 // int ngroups
         2: .line 213
            iload 1 /* ngroups */
            anewarray sun.jvm.hotspot.oops.Oop
            astore 2 /* result */
        start local 2 // sun.jvm.hotspot.oops.Oop[] result
         3: .line 214
            getstatic sun.jvm.hotspot.oops.OopUtilities.threadGroupGroupsField:Lsun/jvm/hotspot/oops/OopField;
            aload 0 /* threadGroupOop */
            invokevirtual sun.jvm.hotspot.oops.OopField.getValue:(Lsun/jvm/hotspot/oops/Oop;)Lsun/jvm/hotspot/oops/Oop;
            checkcast sun.jvm.hotspot.oops.ObjArray
            astore 3 /* groups */
        start local 3 // sun.jvm.hotspot.oops.ObjArray groups
         4: .line 215
            iconst_0
            istore 4 /* i */
        start local 4 // int i
         5: goto 8
         6: .line 216
      StackMap locals: sun.jvm.hotspot.oops.Oop int sun.jvm.hotspot.oops.Oop[] sun.jvm.hotspot.oops.ObjArray int
      StackMap stack:
            aload 2 /* result */
            iload 4 /* i */
            aload 3 /* groups */
            iload 4 /* i */
            i2l
            invokevirtual sun.jvm.hotspot.oops.ObjArray.getObjAt:(J)Lsun/jvm/hotspot/oops/Oop;
            aastore
         7: .line 215
            iinc 4 /* i */ 1
      StackMap locals:
      StackMap stack:
         8: iload 4 /* i */
            iload 1 /* ngroups */
            if_icmplt 6
        end local 4 // int i
         9: .line 218
            aload 2 /* result */
            areturn
        end local 3 // sun.jvm.hotspot.oops.ObjArray groups
        end local 2 // sun.jvm.hotspot.oops.Oop[] result
        end local 1 // int ngroups
        end local 0 // sun.jvm.hotspot.oops.Oop threadGroupOop
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   10     0  threadGroupOop  Lsun/jvm/hotspot/oops/Oop;
            2   10     1         ngroups  I
            3   10     2          result  [Lsun/jvm/hotspot/oops/Oop;
            4   10     3          groups  Lsun/jvm/hotspot/oops/ObjArray;
            5    9     4               i  I
    MethodParameters:
                Name  Flags
      threadGroupOop  

  private static void initThreadFields();
    descriptor: ()V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=3, locals=3, args_size=0
         0: .line 222
            getstatic sun.jvm.hotspot.oops.OopUtilities.threadNameField:Lsun/jvm/hotspot/oops/OopField;
            ifnonnull 20
         1: .line 223
            invokestatic sun.jvm.hotspot.runtime.VM.getVM:()Lsun/jvm/hotspot/runtime/VM;
            invokevirtual sun.jvm.hotspot.runtime.VM.getSystemDictionary:()Lsun/jvm/hotspot/memory/SystemDictionary;
            astore 0 /* sysDict */
        start local 0 // sun.jvm.hotspot.memory.SystemDictionary sysDict
         2: .line 224
            invokestatic sun.jvm.hotspot.memory.SystemDictionary.getThreadKlass:()Lsun/jvm/hotspot/oops/InstanceKlass;
            astore 1 /* k */
        start local 1 // sun.jvm.hotspot.oops.InstanceKlass k
         3: .line 225
            aload 1 /* k */
            ldc "name"
            ldc "Ljava/lang/String;"
            invokevirtual sun.jvm.hotspot.oops.InstanceKlass.findField:(Ljava/lang/String;Ljava/lang/String;)Lsun/jvm/hotspot/oops/Field;
            checkcast sun.jvm.hotspot.oops.OopField
            putstatic sun.jvm.hotspot.oops.OopUtilities.threadNameField:Lsun/jvm/hotspot/oops/OopField;
         4: .line 226
            aload 1 /* k */
            ldc "group"
            ldc "Ljava/lang/ThreadGroup;"
            invokevirtual sun.jvm.hotspot.oops.InstanceKlass.findField:(Ljava/lang/String;Ljava/lang/String;)Lsun/jvm/hotspot/oops/Field;
            checkcast sun.jvm.hotspot.oops.OopField
            putstatic sun.jvm.hotspot.oops.OopUtilities.threadGroupField:Lsun/jvm/hotspot/oops/OopField;
         5: .line 227
            aload 1 /* k */
            ldc "eetop"
            ldc "J"
            invokevirtual sun.jvm.hotspot.oops.InstanceKlass.findField:(Ljava/lang/String;Ljava/lang/String;)Lsun/jvm/hotspot/oops/Field;
            checkcast sun.jvm.hotspot.oops.LongField
            putstatic sun.jvm.hotspot.oops.OopUtilities.threadEETopField:Lsun/jvm/hotspot/oops/LongField;
         6: .line 228
            aload 1 /* k */
            ldc "tid"
            ldc "J"
            invokevirtual sun.jvm.hotspot.oops.InstanceKlass.findField:(Ljava/lang/String;Ljava/lang/String;)Lsun/jvm/hotspot/oops/Field;
            checkcast sun.jvm.hotspot.oops.LongField
            putstatic sun.jvm.hotspot.oops.OopUtilities.threadTIDField:Lsun/jvm/hotspot/oops/LongField;
         7: .line 229
            aload 1 /* k */
            ldc "threadStatus"
            ldc "I"
            invokevirtual sun.jvm.hotspot.oops.InstanceKlass.findField:(Ljava/lang/String;Ljava/lang/String;)Lsun/jvm/hotspot/oops/Field;
            checkcast sun.jvm.hotspot.oops.IntField
            putstatic sun.jvm.hotspot.oops.OopUtilities.threadStatusField:Lsun/jvm/hotspot/oops/IntField;
         8: .line 230
            aload 1 /* k */
            ldc "parkBlocker"
         9: .line 231
            ldc "Ljava/lang/Object;"
        10: .line 230
            invokevirtual sun.jvm.hotspot.oops.InstanceKlass.findField:(Ljava/lang/String;Ljava/lang/String;)Lsun/jvm/hotspot/oops/Field;
            checkcast sun.jvm.hotspot.oops.OopField
            putstatic sun.jvm.hotspot.oops.OopUtilities.threadParkBlockerField:Lsun/jvm/hotspot/oops/OopField;
        11: .line 232
            invokestatic sun.jvm.hotspot.runtime.VM.getVM:()Lsun/jvm/hotspot/runtime/VM;
            invokevirtual sun.jvm.hotspot.runtime.VM.getTypeDataBase:()Lsun/jvm/hotspot/types/TypeDataBase;
            astore 2 /* db */
        start local 2 // sun.jvm.hotspot.types.TypeDataBase db
        12: .line 233
            aload 2 /* db */
            ldc "java_lang_Thread::NEW"
            invokeinterface sun.jvm.hotspot.types.TypeDataBase.lookupIntConstant:(Ljava/lang/String;)Ljava/lang/Integer;
            invokevirtual java.lang.Integer.intValue:()I
            putstatic sun.jvm.hotspot.oops.OopUtilities.THREAD_STATUS_NEW:I
        13: .line 247
            getstatic sun.jvm.hotspot.utilities.Assert.ASSERTS_ENABLED:Z
            ifeq 20
        14: .line 250
            getstatic sun.jvm.hotspot.oops.OopUtilities.threadNameField:Lsun/jvm/hotspot/oops/OopField;
            ifnull 17
        15: .line 251
            getstatic sun.jvm.hotspot.oops.OopUtilities.threadGroupField:Lsun/jvm/hotspot/oops/OopField;
            ifnull 17
        16: .line 252
            getstatic sun.jvm.hotspot.oops.OopUtilities.threadEETopField:Lsun/jvm/hotspot/oops/LongField;
            ifnull 17
            iconst_1
            goto 18
      StackMap locals: sun.jvm.hotspot.memory.SystemDictionary sun.jvm.hotspot.oops.InstanceKlass sun.jvm.hotspot.types.TypeDataBase
      StackMap stack:
        17: iconst_0
      StackMap locals:
      StackMap stack: int
        18: ldc "must find all java.lang.Thread fields"
        19: .line 250
            invokestatic sun.jvm.hotspot.utilities.Assert.that:(ZLjava/lang/String;)V
        end local 2 // sun.jvm.hotspot.types.TypeDataBase db
        end local 1 // sun.jvm.hotspot.oops.InstanceKlass k
        end local 0 // sun.jvm.hotspot.memory.SystemDictionary sysDict
        20: .line 255
      StackMap locals:
      StackMap stack:
            return
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            2   20     0  sysDict  Lsun/jvm/hotspot/memory/SystemDictionary;
            3   20     1        k  Lsun/jvm/hotspot/oops/InstanceKlass;
           12   20     2       db  Lsun/jvm/hotspot/types/TypeDataBase;

  public static sun.jvm.hotspot.oops.Oop threadOopGetThreadGroup(sun.jvm.hotspot.oops.Oop);
    descriptor: (Lsun/jvm/hotspot/oops/Oop;)Lsun/jvm/hotspot/oops/Oop;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // sun.jvm.hotspot.oops.Oop threadOop
         0: .line 258
            invokestatic sun.jvm.hotspot.oops.OopUtilities.initThreadFields:()V
         1: .line 259
            getstatic sun.jvm.hotspot.oops.OopUtilities.threadGroupField:Lsun/jvm/hotspot/oops/OopField;
            aload 0 /* threadOop */
            invokevirtual sun.jvm.hotspot.oops.OopField.getValue:(Lsun/jvm/hotspot/oops/Oop;)Lsun/jvm/hotspot/oops/Oop;
            areturn
        end local 0 // sun.jvm.hotspot.oops.Oop threadOop
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    2     0  threadOop  Lsun/jvm/hotspot/oops/Oop;
    MethodParameters:
           Name  Flags
      threadOop  

  public static java.lang.String threadOopGetName(sun.jvm.hotspot.oops.Oop);
    descriptor: (Lsun/jvm/hotspot/oops/Oop;)Ljava/lang/String;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // sun.jvm.hotspot.oops.Oop threadOop
         0: .line 263
            invokestatic sun.jvm.hotspot.oops.OopUtilities.initThreadFields:()V
         1: .line 264
            getstatic sun.jvm.hotspot.oops.OopUtilities.threadNameField:Lsun/jvm/hotspot/oops/OopField;
            aload 0 /* threadOop */
            invokevirtual sun.jvm.hotspot.oops.OopField.getValue:(Lsun/jvm/hotspot/oops/Oop;)Lsun/jvm/hotspot/oops/Oop;
            invokestatic sun.jvm.hotspot.oops.OopUtilities.stringOopToString:(Lsun/jvm/hotspot/oops/Oop;)Ljava/lang/String;
            areturn
        end local 0 // sun.jvm.hotspot.oops.Oop threadOop
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    2     0  threadOop  Lsun/jvm/hotspot/oops/Oop;
    MethodParameters:
           Name  Flags
      threadOop  

  public static sun.jvm.hotspot.runtime.JavaThread threadOopGetJavaThread(sun.jvm.hotspot.oops.Oop);
    descriptor: (Lsun/jvm/hotspot/oops/Oop;)Lsun/jvm/hotspot/runtime/JavaThread;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=2, args_size=1
        start local 0 // sun.jvm.hotspot.oops.Oop threadOop
         0: .line 269
            invokestatic sun.jvm.hotspot.oops.OopUtilities.initThreadFields:()V
         1: .line 270
            aload 0 /* threadOop */
            invokevirtual sun.jvm.hotspot.oops.Oop.getHandle:()Lsun/jvm/hotspot/debugger/OopHandle;
            getstatic sun.jvm.hotspot.oops.OopUtilities.threadEETopField:Lsun/jvm/hotspot/oops/LongField;
            invokevirtual sun.jvm.hotspot.oops.LongField.getOffset:()J
            invokeinterface sun.jvm.hotspot.debugger.OopHandle.getAddressAt:(J)Lsun/jvm/hotspot/debugger/Address;
            astore 1 /* addr */
        start local 1 // sun.jvm.hotspot.debugger.Address addr
         2: .line 271
            aload 1 /* addr */
            ifnonnull 4
         3: .line 272
            aconst_null
            areturn
         4: .line 274
      StackMap locals: sun.jvm.hotspot.debugger.Address
      StackMap stack:
            invokestatic sun.jvm.hotspot.runtime.VM.getVM:()Lsun/jvm/hotspot/runtime/VM;
            invokevirtual sun.jvm.hotspot.runtime.VM.getThreads:()Lsun/jvm/hotspot/runtime/Threads;
            aload 1 /* addr */
            invokevirtual sun.jvm.hotspot.runtime.Threads.createJavaThreadWrapper:(Lsun/jvm/hotspot/debugger/Address;)Lsun/jvm/hotspot/runtime/JavaThread;
            areturn
        end local 1 // sun.jvm.hotspot.debugger.Address addr
        end local 0 // sun.jvm.hotspot.oops.Oop threadOop
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    5     0  threadOop  Lsun/jvm/hotspot/oops/Oop;
            2    5     1       addr  Lsun/jvm/hotspot/debugger/Address;
    MethodParameters:
           Name  Flags
      threadOop  

  public static long threadOopGetTID(sun.jvm.hotspot.oops.Oop);
    descriptor: (Lsun/jvm/hotspot/oops/Oop;)J
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // sun.jvm.hotspot.oops.Oop threadOop
         0: .line 278
            invokestatic sun.jvm.hotspot.oops.OopUtilities.initThreadFields:()V
         1: .line 279
            getstatic sun.jvm.hotspot.oops.OopUtilities.threadTIDField:Lsun/jvm/hotspot/oops/LongField;
            ifnull 3
         2: .line 280
            getstatic sun.jvm.hotspot.oops.OopUtilities.threadTIDField:Lsun/jvm/hotspot/oops/LongField;
            aload 0 /* threadOop */
            invokevirtual sun.jvm.hotspot.oops.LongField.getValue:(Lsun/jvm/hotspot/oops/Oop;)J
            lreturn
         3: .line 282
      StackMap locals:
      StackMap stack:
            lconst_0
            lreturn
        end local 0 // sun.jvm.hotspot.oops.Oop threadOop
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    4     0  threadOop  Lsun/jvm/hotspot/oops/Oop;
    MethodParameters:
           Name  Flags
      threadOop  

  public static int threadOopGetThreadStatus(sun.jvm.hotspot.oops.Oop);
    descriptor: (Lsun/jvm/hotspot/oops/Oop;)I
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=2, args_size=1
        start local 0 // sun.jvm.hotspot.oops.Oop threadOop
         0: .line 288
            invokestatic sun.jvm.hotspot.oops.OopUtilities.initThreadFields:()V
         1: .line 290
            getstatic sun.jvm.hotspot.oops.OopUtilities.threadStatusField:Lsun/jvm/hotspot/oops/IntField;
            ifnull 3
         2: .line 291
            getstatic sun.jvm.hotspot.oops.OopUtilities.threadStatusField:Lsun/jvm/hotspot/oops/IntField;
            aload 0 /* threadOop */
            invokevirtual sun.jvm.hotspot.oops.IntField.getValue:(Lsun/jvm/hotspot/oops/Oop;)I
            ireturn
         3: .line 295
      StackMap locals:
      StackMap stack:
            aload 0 /* threadOop */
            invokestatic sun.jvm.hotspot.oops.OopUtilities.threadOopGetJavaThread:(Lsun/jvm/hotspot/oops/Oop;)Lsun/jvm/hotspot/runtime/JavaThread;
            astore 1 /* thr */
        start local 1 // sun.jvm.hotspot.runtime.JavaThread thr
         4: .line 296
            aload 1 /* thr */
            ifnonnull 6
         5: .line 298
            getstatic sun.jvm.hotspot.oops.OopUtilities.THREAD_STATUS_NEW:I
            ireturn
         6: .line 300
      StackMap locals: sun.jvm.hotspot.runtime.JavaThread
      StackMap stack:
            iconst_1
            ireturn
        end local 1 // sun.jvm.hotspot.runtime.JavaThread thr
        end local 0 // sun.jvm.hotspot.oops.Oop threadOop
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    7     0  threadOop  Lsun/jvm/hotspot/oops/Oop;
            4    7     1        thr  Lsun/jvm/hotspot/runtime/JavaThread;
    MethodParameters:
           Name  Flags
      threadOop  

  public static sun.jvm.hotspot.oops.Oop threadOopGetParkBlocker(sun.jvm.hotspot.oops.Oop);
    descriptor: (Lsun/jvm/hotspot/oops/Oop;)Lsun/jvm/hotspot/oops/Oop;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // sun.jvm.hotspot.oops.Oop threadOop
         0: .line 307
            invokestatic sun.jvm.hotspot.oops.OopUtilities.initThreadFields:()V
         1: .line 308
            getstatic sun.jvm.hotspot.oops.OopUtilities.threadParkBlockerField:Lsun/jvm/hotspot/oops/OopField;
            ifnull 3
         2: .line 309
            getstatic sun.jvm.hotspot.oops.OopUtilities.threadParkBlockerField:Lsun/jvm/hotspot/oops/OopField;
            aload 0 /* threadOop */
            invokevirtual sun.jvm.hotspot.oops.OopField.getValue:(Lsun/jvm/hotspot/oops/Oop;)Lsun/jvm/hotspot/oops/Oop;
            areturn
         3: .line 311
      StackMap locals:
      StackMap stack:
            aconst_null
            areturn
        end local 0 // sun.jvm.hotspot.oops.Oop threadOop
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    4     0  threadOop  Lsun/jvm/hotspot/oops/Oop;
    MethodParameters:
           Name  Flags
      threadOop  

  private static void initAbsOwnSyncFields();
    descriptor: ()V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=3, locals=2, args_size=0
         0: .line 316
            getstatic sun.jvm.hotspot.oops.OopUtilities.absOwnSyncOwnerThreadField:Lsun/jvm/hotspot/oops/OopField;
            ifnonnull 7
         1: .line 317
            invokestatic sun.jvm.hotspot.runtime.VM.getVM:()Lsun/jvm/hotspot/runtime/VM;
            invokevirtual sun.jvm.hotspot.runtime.VM.getSystemDictionary:()Lsun/jvm/hotspot/memory/SystemDictionary;
            astore 0 /* sysDict */
        start local 0 // sun.jvm.hotspot.memory.SystemDictionary sysDict
         2: .line 318
            aload 0 /* sysDict */
            invokevirtual sun.jvm.hotspot.memory.SystemDictionary.getAbstractOwnableSynchronizerKlass:()Lsun/jvm/hotspot/oops/InstanceKlass;
            astore 1 /* k */
        start local 1 // sun.jvm.hotspot.oops.InstanceKlass k
         3: .line 320
            aload 1 /* k */
            ldc "exclusiveOwnerThread"
         4: .line 321
            ldc "Ljava/lang/Thread;"
         5: .line 320
            invokevirtual sun.jvm.hotspot.oops.InstanceKlass.findField:(Ljava/lang/String;Ljava/lang/String;)Lsun/jvm/hotspot/oops/Field;
            checkcast sun.jvm.hotspot.oops.OopField
         6: .line 319
            putstatic sun.jvm.hotspot.oops.OopUtilities.absOwnSyncOwnerThreadField:Lsun/jvm/hotspot/oops/OopField;
        end local 1 // sun.jvm.hotspot.oops.InstanceKlass k
        end local 0 // sun.jvm.hotspot.memory.SystemDictionary sysDict
         7: .line 323
      StackMap locals:
      StackMap stack:
            return
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            2    7     0  sysDict  Lsun/jvm/hotspot/memory/SystemDictionary;
            3    7     1        k  Lsun/jvm/hotspot/oops/InstanceKlass;

  public static sun.jvm.hotspot.oops.Oop abstractOwnableSynchronizerGetOwnerThread(sun.jvm.hotspot.oops.Oop);
    descriptor: (Lsun/jvm/hotspot/oops/Oop;)Lsun/jvm/hotspot/oops/Oop;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // sun.jvm.hotspot.oops.Oop oop
         0: .line 327
            invokestatic sun.jvm.hotspot.oops.OopUtilities.initAbsOwnSyncFields:()V
         1: .line 328
            getstatic sun.jvm.hotspot.oops.OopUtilities.absOwnSyncOwnerThreadField:Lsun/jvm/hotspot/oops/OopField;
            ifnonnull 3
         2: .line 329
            aconst_null
            areturn
         3: .line 331
      StackMap locals:
      StackMap stack:
            getstatic sun.jvm.hotspot.oops.OopUtilities.absOwnSyncOwnerThreadField:Lsun/jvm/hotspot/oops/OopField;
            aload 0 /* oop */
            invokevirtual sun.jvm.hotspot.oops.OopField.getValue:(Lsun/jvm/hotspot/oops/Oop;)Lsun/jvm/hotspot/oops/Oop;
            areturn
        end local 0 // sun.jvm.hotspot.oops.Oop oop
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0   oop  Lsun/jvm/hotspot/oops/Oop;
    MethodParameters:
      Name  Flags
      oop   
}
SourceFile: "OopUtilities.java"
NestMembers:
  sun.jvm.hotspot.oops.OopUtilities$1
InnerClasses:
  sun.jvm.hotspot.oops.OopUtilities$1