public class sun.jvm.hotspot.utilities.HeapHprofBinWriter extends sun.jvm.hotspot.utilities.AbstractHeapGraphWriter
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: sun.jvm.hotspot.utilities.HeapHprofBinWriter
  super_class: sun.jvm.hotspot.utilities.AbstractHeapGraphWriter
{
  private static final long HPROF_SEGMENTED_HEAP_DUMP_THRESHOLD;
    descriptor: J
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 2147483648

  private static final long HPROF_SEGMENTED_HEAP_DUMP_SEGMENT_SIZE;
    descriptor: J
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 1073741824

  private static final java.lang.String HPROF_HEADER_1_0_2;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "JAVA PROFILE 1.0.2"

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  private static final long MAX_U4_VALUE;
    descriptor: J
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 4294967295

  int serialNum;
    descriptor: I
    flags: (0x0000) 

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

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

  private java.io.DataOutputStream out;
    descriptor: Ljava/io/DataOutputStream;
    flags: (0x0002) ACC_PRIVATE

  private java.io.FileOutputStream fos;
    descriptor: Ljava/io/FileOutputStream;
    flags: (0x0002) ACC_PRIVATE

  private sun.jvm.hotspot.debugger.Debugger dbg;
    descriptor: Lsun/jvm/hotspot/debugger/Debugger;
    flags: (0x0002) ACC_PRIVATE

  private sun.jvm.hotspot.oops.ObjectHeap objectHeap;
    descriptor: Lsun/jvm/hotspot/oops/ObjectHeap;
    flags: (0x0002) ACC_PRIVATE

  private sun.jvm.hotspot.memory.SymbolTable symTbl;
    descriptor: Lsun/jvm/hotspot/memory/SymbolTable;
    flags: (0x0002) ACC_PRIVATE

  private java.util.ArrayList<sun.jvm.hotspot.oops.Klass> KlassMap;
    descriptor: Ljava/util/ArrayList;
    flags: (0x0002) ACC_PRIVATE
    Signature: Ljava/util/ArrayList<Lsun/jvm/hotspot/oops/Klass;>;

  private int OBJ_ID_SIZE;
    descriptor: I
    flags: (0x0002) ACC_PRIVATE

  private boolean useSegmentedHeapDump;
    descriptor: Z
    flags: (0x0002) ACC_PRIVATE

  private long currentSegmentStart;
    descriptor: J
    flags: (0x0002) ACC_PRIVATE

  private long BOOLEAN_BASE_OFFSET;
    descriptor: J
    flags: (0x0002) ACC_PRIVATE

  private long BYTE_BASE_OFFSET;
    descriptor: J
    flags: (0x0002) ACC_PRIVATE

  private long CHAR_BASE_OFFSET;
    descriptor: J
    flags: (0x0002) ACC_PRIVATE

  private long SHORT_BASE_OFFSET;
    descriptor: J
    flags: (0x0002) ACC_PRIVATE

  private long INT_BASE_OFFSET;
    descriptor: J
    flags: (0x0002) ACC_PRIVATE

  private long LONG_BASE_OFFSET;
    descriptor: J
    flags: (0x0002) ACC_PRIVATE

  private long FLOAT_BASE_OFFSET;
    descriptor: J
    flags: (0x0002) ACC_PRIVATE

  private long DOUBLE_BASE_OFFSET;
    descriptor: J
    flags: (0x0002) ACC_PRIVATE

  private long OBJECT_BASE_OFFSET;
    descriptor: J
    flags: (0x0002) ACC_PRIVATE

  private long BOOLEAN_SIZE;
    descriptor: J
    flags: (0x0002) ACC_PRIVATE

  private long BYTE_SIZE;
    descriptor: J
    flags: (0x0002) ACC_PRIVATE

  private long CHAR_SIZE;
    descriptor: J
    flags: (0x0002) ACC_PRIVATE

  private long SHORT_SIZE;
    descriptor: J
    flags: (0x0002) ACC_PRIVATE

  private long INT_SIZE;
    descriptor: J
    flags: (0x0002) ACC_PRIVATE

  private long LONG_SIZE;
    descriptor: J
    flags: (0x0002) ACC_PRIVATE

  private long FLOAT_SIZE;
    descriptor: J
    flags: (0x0002) ACC_PRIVATE

  private long DOUBLE_SIZE;
    descriptor: J
    flags: (0x0002) ACC_PRIVATE

  private java.util.Map classDataCache;
    descriptor: Ljava/util/Map;
    flags: (0x0002) ACC_PRIVATE

  static final boolean $assertionsDisabled;
    descriptor: Z
    flags: (0x1018) ACC_STATIC, ACC_FINAL, ACC_SYNTHETIC

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=1, locals=0, args_size=0
         0: .line 310
            ldc Lsun/jvm/hotspot/utilities/HeapHprofBinWriter;
            invokevirtual java.lang.Class.desiredAssertionStatus:()Z
            ifne 1
            iconst_1
            goto 2
      StackMap locals:
      StackMap stack:
         1: iconst_0
      StackMap locals:
      StackMap stack: int
         2: putstatic sun.jvm.hotspot.utilities.HeapHprofBinWriter.$assertionsDisabled:Z
         3: .line 1192
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public void <init>();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // sun.jvm.hotspot.utilities.HeapHprofBinWriter this
         0: .line 382
            aload 0 /* this */
            invokespecial sun.jvm.hotspot.utilities.AbstractHeapGraphWriter.<init>:()V
         1: .line 380
            aload 0 /* this */
            iconst_1
            putfield sun.jvm.hotspot.utilities.HeapHprofBinWriter.serialNum:I
         2: .line 1237
            aload 0 /* this */
            new java.util.HashMap
            dup
            invokespecial java.util.HashMap.<init>:()V
            putfield sun.jvm.hotspot.utilities.HeapHprofBinWriter.classDataCache:Ljava/util/Map;
         3: .line 383
            aload 0 /* this */
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            putfield sun.jvm.hotspot.utilities.HeapHprofBinWriter.KlassMap:Ljava/util/ArrayList;
         4: .line 384
            return
        end local 0 // sun.jvm.hotspot.utilities.HeapHprofBinWriter this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0  this  Lsun/jvm/hotspot/utilities/HeapHprofBinWriter;

  public synchronized void write(java.lang.String);
    descriptor: (Ljava/lang/String;)V
    flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
    Code:
      stack=6, locals=3, args_size=2
        start local 0 // sun.jvm.hotspot.utilities.HeapHprofBinWriter this
        start local 1 // java.lang.String fileName
         0: .line 388
            aload 0 /* this */
            new java.io.FileOutputStream
            dup
            aload 1 /* fileName */
            invokespecial java.io.FileOutputStream.<init>:(Ljava/lang/String;)V
            putfield sun.jvm.hotspot.utilities.HeapHprofBinWriter.fos:Ljava/io/FileOutputStream;
         1: .line 389
            aload 0 /* this */
            new java.io.DataOutputStream
            dup
            new java.io.BufferedOutputStream
            dup
            aload 0 /* this */
            getfield sun.jvm.hotspot.utilities.HeapHprofBinWriter.fos:Ljava/io/FileOutputStream;
            invokespecial java.io.BufferedOutputStream.<init>:(Ljava/io/OutputStream;)V
            invokespecial java.io.DataOutputStream.<init>:(Ljava/io/OutputStream;)V
            putfield sun.jvm.hotspot.utilities.HeapHprofBinWriter.out:Ljava/io/DataOutputStream;
         2: .line 391
            invokestatic sun.jvm.hotspot.runtime.VM.getVM:()Lsun/jvm/hotspot/runtime/VM;
            astore 2 /* vm */
        start local 2 // sun.jvm.hotspot.runtime.VM vm
         3: .line 392
            aload 0 /* this */
            aload 2 /* vm */
            invokevirtual sun.jvm.hotspot.runtime.VM.getDebugger:()Lsun/jvm/hotspot/debugger/JVMDebugger;
            putfield sun.jvm.hotspot.utilities.HeapHprofBinWriter.dbg:Lsun/jvm/hotspot/debugger/Debugger;
         4: .line 393
            aload 0 /* this */
            aload 2 /* vm */
            invokevirtual sun.jvm.hotspot.runtime.VM.getObjectHeap:()Lsun/jvm/hotspot/oops/ObjectHeap;
            putfield sun.jvm.hotspot.utilities.HeapHprofBinWriter.objectHeap:Lsun/jvm/hotspot/oops/ObjectHeap;
         5: .line 394
            aload 0 /* this */
            aload 2 /* vm */
            invokevirtual sun.jvm.hotspot.runtime.VM.getSymbolTable:()Lsun/jvm/hotspot/memory/SymbolTable;
            putfield sun.jvm.hotspot.utilities.HeapHprofBinWriter.symTbl:Lsun/jvm/hotspot/memory/SymbolTable;
         6: .line 396
            aload 0 /* this */
            aload 2 /* vm */
            invokevirtual sun.jvm.hotspot.runtime.VM.getOopSize:()J
            l2i
            putfield sun.jvm.hotspot.utilities.HeapHprofBinWriter.OBJ_ID_SIZE:I
         7: .line 398
            aload 0 /* this */
            getstatic sun.jvm.hotspot.runtime.BasicType.T_BOOLEAN:Lsun/jvm/hotspot/runtime/BasicType;
            invokestatic sun.jvm.hotspot.oops.TypeArray.baseOffsetInBytes:(Lsun/jvm/hotspot/runtime/BasicType;)J
            putfield sun.jvm.hotspot.utilities.HeapHprofBinWriter.BOOLEAN_BASE_OFFSET:J
         8: .line 399
            aload 0 /* this */
            getstatic sun.jvm.hotspot.runtime.BasicType.T_BYTE:Lsun/jvm/hotspot/runtime/BasicType;
            invokestatic sun.jvm.hotspot.oops.TypeArray.baseOffsetInBytes:(Lsun/jvm/hotspot/runtime/BasicType;)J
            putfield sun.jvm.hotspot.utilities.HeapHprofBinWriter.BYTE_BASE_OFFSET:J
         9: .line 400
            aload 0 /* this */
            getstatic sun.jvm.hotspot.runtime.BasicType.T_CHAR:Lsun/jvm/hotspot/runtime/BasicType;
            invokestatic sun.jvm.hotspot.oops.TypeArray.baseOffsetInBytes:(Lsun/jvm/hotspot/runtime/BasicType;)J
            putfield sun.jvm.hotspot.utilities.HeapHprofBinWriter.CHAR_BASE_OFFSET:J
        10: .line 401
            aload 0 /* this */
            getstatic sun.jvm.hotspot.runtime.BasicType.T_SHORT:Lsun/jvm/hotspot/runtime/BasicType;
            invokestatic sun.jvm.hotspot.oops.TypeArray.baseOffsetInBytes:(Lsun/jvm/hotspot/runtime/BasicType;)J
            putfield sun.jvm.hotspot.utilities.HeapHprofBinWriter.SHORT_BASE_OFFSET:J
        11: .line 402
            aload 0 /* this */
            getstatic sun.jvm.hotspot.runtime.BasicType.T_INT:Lsun/jvm/hotspot/runtime/BasicType;
            invokestatic sun.jvm.hotspot.oops.TypeArray.baseOffsetInBytes:(Lsun/jvm/hotspot/runtime/BasicType;)J
            putfield sun.jvm.hotspot.utilities.HeapHprofBinWriter.INT_BASE_OFFSET:J
        12: .line 403
            aload 0 /* this */
            getstatic sun.jvm.hotspot.runtime.BasicType.T_LONG:Lsun/jvm/hotspot/runtime/BasicType;
            invokestatic sun.jvm.hotspot.oops.TypeArray.baseOffsetInBytes:(Lsun/jvm/hotspot/runtime/BasicType;)J
            putfield sun.jvm.hotspot.utilities.HeapHprofBinWriter.LONG_BASE_OFFSET:J
        13: .line 404
            aload 0 /* this */
            getstatic sun.jvm.hotspot.runtime.BasicType.T_FLOAT:Lsun/jvm/hotspot/runtime/BasicType;
            invokestatic sun.jvm.hotspot.oops.TypeArray.baseOffsetInBytes:(Lsun/jvm/hotspot/runtime/BasicType;)J
            putfield sun.jvm.hotspot.utilities.HeapHprofBinWriter.FLOAT_BASE_OFFSET:J
        14: .line 405
            aload 0 /* this */
            getstatic sun.jvm.hotspot.runtime.BasicType.T_DOUBLE:Lsun/jvm/hotspot/runtime/BasicType;
            invokestatic sun.jvm.hotspot.oops.TypeArray.baseOffsetInBytes:(Lsun/jvm/hotspot/runtime/BasicType;)J
            putfield sun.jvm.hotspot.utilities.HeapHprofBinWriter.DOUBLE_BASE_OFFSET:J
        15: .line 406
            aload 0 /* this */
            getstatic sun.jvm.hotspot.runtime.BasicType.T_OBJECT:Lsun/jvm/hotspot/runtime/BasicType;
            invokestatic sun.jvm.hotspot.oops.TypeArray.baseOffsetInBytes:(Lsun/jvm/hotspot/runtime/BasicType;)J
            putfield sun.jvm.hotspot.utilities.HeapHprofBinWriter.OBJECT_BASE_OFFSET:J
        16: .line 408
            aload 0 /* this */
            aload 0 /* this */
            getfield sun.jvm.hotspot.utilities.HeapHprofBinWriter.objectHeap:Lsun/jvm/hotspot/oops/ObjectHeap;
            invokevirtual sun.jvm.hotspot.oops.ObjectHeap.getBooleanSize:()J
            putfield sun.jvm.hotspot.utilities.HeapHprofBinWriter.BOOLEAN_SIZE:J
        17: .line 409
            aload 0 /* this */
            aload 0 /* this */
            getfield sun.jvm.hotspot.utilities.HeapHprofBinWriter.objectHeap:Lsun/jvm/hotspot/oops/ObjectHeap;
            invokevirtual sun.jvm.hotspot.oops.ObjectHeap.getByteSize:()J
            putfield sun.jvm.hotspot.utilities.HeapHprofBinWriter.BYTE_SIZE:J
        18: .line 410
            aload 0 /* this */
            aload 0 /* this */
            getfield sun.jvm.hotspot.utilities.HeapHprofBinWriter.objectHeap:Lsun/jvm/hotspot/oops/ObjectHeap;
            invokevirtual sun.jvm.hotspot.oops.ObjectHeap.getCharSize:()J
            putfield sun.jvm.hotspot.utilities.HeapHprofBinWriter.CHAR_SIZE:J
        19: .line 411
            aload 0 /* this */
            aload 0 /* this */
            getfield sun.jvm.hotspot.utilities.HeapHprofBinWriter.objectHeap:Lsun/jvm/hotspot/oops/ObjectHeap;
            invokevirtual sun.jvm.hotspot.oops.ObjectHeap.getShortSize:()J
            putfield sun.jvm.hotspot.utilities.HeapHprofBinWriter.SHORT_SIZE:J
        20: .line 412
            aload 0 /* this */
            aload 0 /* this */
            getfield sun.jvm.hotspot.utilities.HeapHprofBinWriter.objectHeap:Lsun/jvm/hotspot/oops/ObjectHeap;
            invokevirtual sun.jvm.hotspot.oops.ObjectHeap.getIntSize:()J
            putfield sun.jvm.hotspot.utilities.HeapHprofBinWriter.INT_SIZE:J
        21: .line 413
            aload 0 /* this */
            aload 0 /* this */
            getfield sun.jvm.hotspot.utilities.HeapHprofBinWriter.objectHeap:Lsun/jvm/hotspot/oops/ObjectHeap;
            invokevirtual sun.jvm.hotspot.oops.ObjectHeap.getLongSize:()J
            putfield sun.jvm.hotspot.utilities.HeapHprofBinWriter.LONG_SIZE:J
        22: .line 414
            aload 0 /* this */
            aload 0 /* this */
            getfield sun.jvm.hotspot.utilities.HeapHprofBinWriter.objectHeap:Lsun/jvm/hotspot/oops/ObjectHeap;
            invokevirtual sun.jvm.hotspot.oops.ObjectHeap.getFloatSize:()J
            putfield sun.jvm.hotspot.utilities.HeapHprofBinWriter.FLOAT_SIZE:J
        23: .line 415
            aload 0 /* this */
            aload 0 /* this */
            getfield sun.jvm.hotspot.utilities.HeapHprofBinWriter.objectHeap:Lsun/jvm/hotspot/oops/ObjectHeap;
            invokevirtual sun.jvm.hotspot.oops.ObjectHeap.getDoubleSize:()J
            putfield sun.jvm.hotspot.utilities.HeapHprofBinWriter.DOUBLE_SIZE:J
        24: .line 418
            aload 0 /* this */
            aload 2 /* vm */
            invokevirtual sun.jvm.hotspot.runtime.VM.getUniverse:()Lsun/jvm/hotspot/memory/Universe;
            invokevirtual sun.jvm.hotspot.memory.Universe.heap:()Lsun/jvm/hotspot/gc/shared/CollectedHeap;
            invokevirtual sun.jvm.hotspot.gc.shared.CollectedHeap.used:()J
            ldc 2147483648
            lcmp
            ifle 25
            iconst_1
            goto 26
      StackMap locals: sun.jvm.hotspot.utilities.HeapHprofBinWriter java.lang.String sun.jvm.hotspot.runtime.VM
      StackMap stack: sun.jvm.hotspot.utilities.HeapHprofBinWriter
        25: iconst_0
      StackMap locals: sun.jvm.hotspot.utilities.HeapHprofBinWriter java.lang.String sun.jvm.hotspot.runtime.VM
      StackMap stack: sun.jvm.hotspot.utilities.HeapHprofBinWriter int
        26: putfield sun.jvm.hotspot.utilities.HeapHprofBinWriter.useSegmentedHeapDump:Z
        27: .line 421
            aload 0 /* this */
            invokevirtual sun.jvm.hotspot.utilities.HeapHprofBinWriter.writeFileHeader:()V
        28: .line 425
            aload 0 /* this */
            invokevirtual sun.jvm.hotspot.utilities.HeapHprofBinWriter.writeDummyTrace:()V
        29: .line 428
            aload 0 /* this */
            invokevirtual sun.jvm.hotspot.utilities.HeapHprofBinWriter.writeSymbols:()V
        30: .line 431
            aload 0 /* this */
            invokevirtual sun.jvm.hotspot.utilities.HeapHprofBinWriter.writeClasses:()V
        31: .line 434
            aload 0 /* this */
            invokevirtual sun.jvm.hotspot.utilities.HeapHprofBinWriter.dumpStackTraces:()V
        32: .line 437
            aload 0 /* this */
            invokevirtual sun.jvm.hotspot.utilities.HeapHprofBinWriter.writeClassDumpRecords:()V
        33: .line 440
            aload 0 /* this */
            invokespecial sun.jvm.hotspot.utilities.AbstractHeapGraphWriter.write:()V
        34: .line 443
            aload 0 /* this */
            getfield sun.jvm.hotspot.utilities.HeapHprofBinWriter.out:Ljava/io/DataOutputStream;
            invokevirtual java.io.DataOutputStream.flush:()V
        35: .line 446
            aload 0 /* this */
            invokevirtual sun.jvm.hotspot.utilities.HeapHprofBinWriter.fillInHeapRecordLength:()V
        36: .line 448
            aload 0 /* this */
            getfield sun.jvm.hotspot.utilities.HeapHprofBinWriter.useSegmentedHeapDump:Z
            ifeq 40
        37: .line 450
            aload 0 /* this */
            getfield sun.jvm.hotspot.utilities.HeapHprofBinWriter.out:Ljava/io/DataOutputStream;
            bipush 44
            invokevirtual java.io.DataOutputStream.writeByte:(I)V
        38: .line 451
            aload 0 /* this */
            getfield sun.jvm.hotspot.utilities.HeapHprofBinWriter.out:Ljava/io/DataOutputStream;
            iconst_0
            invokevirtual java.io.DataOutputStream.writeInt:(I)V
        39: .line 452
            aload 0 /* this */
            getfield sun.jvm.hotspot.utilities.HeapHprofBinWriter.out:Ljava/io/DataOutputStream;
            iconst_0
            invokevirtual java.io.DataOutputStream.writeInt:(I)V
        40: .line 456
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.jvm.hotspot.utilities.HeapHprofBinWriter.out:Ljava/io/DataOutputStream;
            invokevirtual java.io.DataOutputStream.flush:()V
        41: .line 457
            aload 0 /* this */
            aconst_null
            putfield sun.jvm.hotspot.utilities.HeapHprofBinWriter.out:Ljava/io/DataOutputStream;
        42: .line 460
            aload 0 /* this */
            getfield sun.jvm.hotspot.utilities.HeapHprofBinWriter.fos:Ljava/io/FileOutputStream;
            invokevirtual java.io.FileOutputStream.close:()V
        43: .line 461
            return
        end local 2 // sun.jvm.hotspot.runtime.VM vm
        end local 1 // java.lang.String fileName
        end local 0 // sun.jvm.hotspot.utilities.HeapHprofBinWriter this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   44     0      this  Lsun/jvm/hotspot/utilities/HeapHprofBinWriter;
            0   44     1  fileName  Ljava/lang/String;
            3   44     2        vm  Lsun/jvm/hotspot/runtime/VM;
    Exceptions:
      throws java.io.IOException
    MethodParameters:
          Name  Flags
      fileName  

  protected void writeHeapRecordPrologue();
    descriptor: ()V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=4, locals=1, args_size=1
        start local 0 // sun.jvm.hotspot.utilities.HeapHprofBinWriter this
         0: .line 465
            aload 0 /* this */
            getfield sun.jvm.hotspot.utilities.HeapHprofBinWriter.currentSegmentStart:J
            lconst_0
            lcmp
            ifne 9
         1: .line 468
            aload 0 /* this */
            getfield sun.jvm.hotspot.utilities.HeapHprofBinWriter.out:Ljava/io/DataOutputStream;
            aload 0 /* this */
            getfield sun.jvm.hotspot.utilities.HeapHprofBinWriter.useSegmentedHeapDump:Z
            ifeq 2
            bipush 28
            goto 3
         2: .line 469
      StackMap locals:
      StackMap stack: java.io.DataOutputStream
            bipush 12
      StackMap locals: sun.jvm.hotspot.utilities.HeapHprofBinWriter
      StackMap stack: java.io.DataOutputStream int
         3: i2b
         4: .line 468
            invokevirtual java.io.DataOutputStream.writeByte:(I)V
         5: .line 470
            aload 0 /* this */
            getfield sun.jvm.hotspot.utilities.HeapHprofBinWriter.out:Ljava/io/DataOutputStream;
            iconst_0
            invokevirtual java.io.DataOutputStream.writeInt:(I)V
         6: .line 474
            aload 0 /* this */
            getfield sun.jvm.hotspot.utilities.HeapHprofBinWriter.out:Ljava/io/DataOutputStream;
            invokevirtual java.io.DataOutputStream.flush:()V
         7: .line 475
            aload 0 /* this */
            aload 0 /* this */
            getfield sun.jvm.hotspot.utilities.HeapHprofBinWriter.fos:Ljava/io/FileOutputStream;
            invokevirtual java.io.FileOutputStream.getChannel:()Ljava/nio/channels/FileChannel;
            invokevirtual java.nio.channels.FileChannel.position:()J
            putfield sun.jvm.hotspot.utilities.HeapHprofBinWriter.currentSegmentStart:J
         8: .line 477
            aload 0 /* this */
            getfield sun.jvm.hotspot.utilities.HeapHprofBinWriter.out:Ljava/io/DataOutputStream;
            iconst_0
            invokevirtual java.io.DataOutputStream.writeInt:(I)V
         9: .line 479
      StackMap locals:
      StackMap stack:
            return
        end local 0 // sun.jvm.hotspot.utilities.HeapHprofBinWriter this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   10     0  this  Lsun/jvm/hotspot/utilities/HeapHprofBinWriter;
    Exceptions:
      throws java.io.IOException

  protected void writeHeapRecordEpilogue();
    descriptor: ()V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=4, locals=1, args_size=1
        start local 0 // sun.jvm.hotspot.utilities.HeapHprofBinWriter this
         0: .line 483
            aload 0 /* this */
            getfield sun.jvm.hotspot.utilities.HeapHprofBinWriter.useSegmentedHeapDump:Z
            ifeq 5
         1: .line 484
            aload 0 /* this */
            getfield sun.jvm.hotspot.utilities.HeapHprofBinWriter.out:Ljava/io/DataOutputStream;
            invokevirtual java.io.DataOutputStream.flush:()V
         2: .line 485
            aload 0 /* this */
            getfield sun.jvm.hotspot.utilities.HeapHprofBinWriter.fos:Ljava/io/FileOutputStream;
            invokevirtual java.io.FileOutputStream.getChannel:()Ljava/nio/channels/FileChannel;
            invokevirtual java.nio.channels.FileChannel.position:()J
            aload 0 /* this */
            getfield sun.jvm.hotspot.utilities.HeapHprofBinWriter.currentSegmentStart:J
            lsub
            ldc 4
            lsub
            ldc 1073741824
            lcmp
            iflt 5
         3: .line 486
            aload 0 /* this */
            invokevirtual sun.jvm.hotspot.utilities.HeapHprofBinWriter.fillInHeapRecordLength:()V
         4: .line 487
            aload 0 /* this */
            lconst_0
            putfield sun.jvm.hotspot.utilities.HeapHprofBinWriter.currentSegmentStart:J
         5: .line 490
      StackMap locals:
      StackMap stack:
            return
        end local 0 // sun.jvm.hotspot.utilities.HeapHprofBinWriter this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    6     0  this  Lsun/jvm/hotspot/utilities/HeapHprofBinWriter;
    Exceptions:
      throws java.io.IOException

  private void fillInHeapRecordLength();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=8, args_size=1
        start local 0 // sun.jvm.hotspot.utilities.HeapHprofBinWriter this
         0: .line 495
            aload 0 /* this */
            getfield sun.jvm.hotspot.utilities.HeapHprofBinWriter.fos:Ljava/io/FileOutputStream;
            invokevirtual java.io.FileOutputStream.getChannel:()Ljava/nio/channels/FileChannel;
            invokevirtual java.nio.channels.FileChannel.position:()J
            lstore 1 /* dumpEnd */
        start local 1 // long dumpEnd
         1: .line 498
            lload 1 /* dumpEnd */
            aload 0 /* this */
            getfield sun.jvm.hotspot.utilities.HeapHprofBinWriter.currentSegmentStart:J
            lsub
            ldc 4
            lsub
            lstore 3 /* dumpLenLong */
        start local 3 // long dumpLenLong
         2: .line 501
            lload 3 /* dumpLenLong */
            ldc 4294967296
            lcmp
            iflt 4
         3: .line 502
            new java.lang.RuntimeException
            dup
            ldc "Heap segment size overflow."
            invokespecial java.lang.RuntimeException.<init>:(Ljava/lang/String;)V
            athrow
         4: .line 506
      StackMap locals: long long
      StackMap stack:
            aload 0 /* this */
            getfield sun.jvm.hotspot.utilities.HeapHprofBinWriter.fos:Ljava/io/FileOutputStream;
            invokevirtual java.io.FileOutputStream.getChannel:()Ljava/nio/channels/FileChannel;
            invokevirtual java.nio.channels.FileChannel.position:()J
            lstore 5 /* currentPosition */
        start local 5 // long currentPosition
         5: .line 509
            aload 0 /* this */
            getfield sun.jvm.hotspot.utilities.HeapHprofBinWriter.fos:Ljava/io/FileOutputStream;
            invokevirtual java.io.FileOutputStream.getChannel:()Ljava/nio/channels/FileChannel;
            aload 0 /* this */
            getfield sun.jvm.hotspot.utilities.HeapHprofBinWriter.currentSegmentStart:J
            invokevirtual java.nio.channels.FileChannel.position:(J)Ljava/nio/channels/FileChannel;
            pop
         6: .line 511
            lload 3 /* dumpLenLong */
            l2i
            istore 7 /* dumpLen */
        start local 7 // int dumpLen
         7: .line 514
            aload 0 /* this */
            getfield sun.jvm.hotspot.utilities.HeapHprofBinWriter.fos:Ljava/io/FileOutputStream;
            iload 7 /* dumpLen */
            bipush 24
            iushr
            sipush 255
            iand
            invokevirtual java.io.FileOutputStream.write:(I)V
         8: .line 515
            aload 0 /* this */
            getfield sun.jvm.hotspot.utilities.HeapHprofBinWriter.fos:Ljava/io/FileOutputStream;
            iload 7 /* dumpLen */
            bipush 16
            iushr
            sipush 255
            iand
            invokevirtual java.io.FileOutputStream.write:(I)V
         9: .line 516
            aload 0 /* this */
            getfield sun.jvm.hotspot.utilities.HeapHprofBinWriter.fos:Ljava/io/FileOutputStream;
            iload 7 /* dumpLen */
            bipush 8
            iushr
            sipush 255
            iand
            invokevirtual java.io.FileOutputStream.write:(I)V
        10: .line 517
            aload 0 /* this */
            getfield sun.jvm.hotspot.utilities.HeapHprofBinWriter.fos:Ljava/io/FileOutputStream;
            iload 7 /* dumpLen */
            iconst_0
            iushr
            sipush 255
            iand
            invokevirtual java.io.FileOutputStream.write:(I)V
        11: .line 520
            aload 0 /* this */
            getfield sun.jvm.hotspot.utilities.HeapHprofBinWriter.fos:Ljava/io/FileOutputStream;
            invokevirtual java.io.FileOutputStream.getChannel:()Ljava/nio/channels/FileChannel;
            lload 5 /* currentPosition */
            invokevirtual java.nio.channels.FileChannel.position:(J)Ljava/nio/channels/FileChannel;
            pop
        12: .line 521
            return
        end local 7 // int dumpLen
        end local 5 // long currentPosition
        end local 3 // long dumpLenLong
        end local 1 // long dumpEnd
        end local 0 // sun.jvm.hotspot.utilities.HeapHprofBinWriter this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0   13     0             this  Lsun/jvm/hotspot/utilities/HeapHprofBinWriter;
            1   13     1          dumpEnd  J
            2   13     3      dumpLenLong  J
            5   13     5  currentPosition  J
            7   13     7          dumpLen  I
    Exceptions:
      throws java.io.IOException

  private long getSizeForType(int);
    descriptor: (I)J
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=2, args_size=2
        start local 0 // sun.jvm.hotspot.utilities.HeapHprofBinWriter this
        start local 1 // int type
         0: .line 525
            iload 1 /* type */
            tableswitch { // 4 - 11
                    4: 1
                    5: 3
                    6: 7
                    7: 8
                    8: 5
                    9: 4
                   10: 2
                   11: 6
              default: 9
          }
         1: .line 527
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.jvm.hotspot.utilities.HeapHprofBinWriter.BOOLEAN_SIZE:J
            lreturn
         2: .line 529
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.jvm.hotspot.utilities.HeapHprofBinWriter.INT_SIZE:J
            lreturn
         3: .line 531
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.jvm.hotspot.utilities.HeapHprofBinWriter.CHAR_SIZE:J
            lreturn
         4: .line 533
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.jvm.hotspot.utilities.HeapHprofBinWriter.SHORT_SIZE:J
            lreturn
         5: .line 535
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.jvm.hotspot.utilities.HeapHprofBinWriter.BYTE_SIZE:J
            lreturn
         6: .line 537
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.jvm.hotspot.utilities.HeapHprofBinWriter.LONG_SIZE:J
            lreturn
         7: .line 539
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.jvm.hotspot.utilities.HeapHprofBinWriter.FLOAT_SIZE:J
            lreturn
         8: .line 541
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.jvm.hotspot.utilities.HeapHprofBinWriter.DOUBLE_SIZE:J
            lreturn
         9: .line 543
      StackMap locals:
      StackMap stack:
            new java.lang.RuntimeException
            dup
        10: .line 544
            new java.lang.StringBuilder
            dup
            ldc "Should not reach here: Unknown type: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            iload 1 /* type */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        11: .line 543
            invokespecial java.lang.RuntimeException.<init>:(Ljava/lang/String;)V
            athrow
        end local 1 // int type
        end local 0 // sun.jvm.hotspot.utilities.HeapHprofBinWriter this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   12     0  this  Lsun/jvm/hotspot/utilities/HeapHprofBinWriter;
            0   12     1  type  I
    Exceptions:
      throws java.io.IOException
    MethodParameters:
      Name  Flags
      type  

  private int getArrayHeaderSize(boolean);
    descriptor: (Z)I
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // sun.jvm.hotspot.utilities.HeapHprofBinWriter this
        start local 1 // boolean isObjectAarray
         0: .line 549
            iload 1 /* isObjectAarray */
            ifeq 2
         1: .line 550
            aload 0 /* this */
            getfield sun.jvm.hotspot.utilities.HeapHprofBinWriter.BYTE_SIZE:J
            l2i
            iconst_2
            aload 0 /* this */
            getfield sun.jvm.hotspot.utilities.HeapHprofBinWriter.INT_SIZE:J
            l2i
            imul
            iadd
            iconst_2
            aload 0 /* this */
            getfield sun.jvm.hotspot.utilities.HeapHprofBinWriter.OBJ_ID_SIZE:I
            imul
            iadd
            goto 3
         2: .line 551
      StackMap locals:
      StackMap stack:
            iconst_2
            aload 0 /* this */
            getfield sun.jvm.hotspot.utilities.HeapHprofBinWriter.BYTE_SIZE:J
            l2i
            imul
            iconst_2
            aload 0 /* this */
            getfield sun.jvm.hotspot.utilities.HeapHprofBinWriter.INT_SIZE:J
            l2i
            imul
            iadd
            aload 0 /* this */
            getfield sun.jvm.hotspot.utilities.HeapHprofBinWriter.OBJ_ID_SIZE:I
            iadd
         3: .line 549
      StackMap locals:
      StackMap stack: int
            ireturn
        end local 1 // boolean isObjectAarray
        end local 0 // sun.jvm.hotspot.utilities.HeapHprofBinWriter this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    4     0            this  Lsun/jvm/hotspot/utilities/HeapHprofBinWriter;
            0    4     1  isObjectAarray  Z
    MethodParameters:
                Name  Flags
      isObjectAarray  

  private int calculateArrayMaxLength(long, int, long, java.lang.String);
    descriptor: (JIJLjava/lang/String;)I
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=6, locals=17, args_size=5
        start local 0 // sun.jvm.hotspot.utilities.HeapHprofBinWriter this
        start local 1 // long originalArrayLength
        start local 3 // int headerSize
        start local 4 // long typeSize
        start local 6 // java.lang.String typeName
         0: .line 560
            lload 1 /* originalArrayLength */
            lstore 7 /* length */
        start local 7 // long length
         1: .line 563
            aload 0 /* this */
            getfield sun.jvm.hotspot.utilities.HeapHprofBinWriter.fos:Ljava/io/FileOutputStream;
            invokevirtual java.io.FileOutputStream.getChannel:()Ljava/nio/channels/FileChannel;
            invokevirtual java.nio.channels.FileChannel.position:()J
            lstore 9 /* dumpEnd */
        start local 9 // long dumpEnd
         2: .line 564
            lload 1 /* originalArrayLength */
            lload 4 /* typeSize */
            lmul
            lstore 11 /* originalLengthInBytes */
        start local 11 // long originalLengthInBytes
         3: .line 567
            lload 9 /* dumpEnd */
            aload 0 /* this */
            getfield sun.jvm.hotspot.utilities.HeapHprofBinWriter.currentSegmentStart:J
            lsub
            ldc 4
            lsub
            lstore 13 /* currentRecordLength */
        start local 13 // long currentRecordLength
         4: .line 568
            lload 13 /* currentRecordLength */
            lconst_0
            lcmp
            ifle 10
         5: .line 569
            lload 13 /* currentRecordLength */
            iload 3 /* headerSize */
            i2l
            ladd
            lload 11 /* originalLengthInBytes */
            ladd
            ldc 4294967295
            lcmp
            ifle 10
         6: .line 570
            aload 0 /* this */
            invokevirtual sun.jvm.hotspot.utilities.HeapHprofBinWriter.fillInHeapRecordLength:()V
         7: .line 571
            aload 0 /* this */
            lconst_0
            putfield sun.jvm.hotspot.utilities.HeapHprofBinWriter.currentSegmentStart:J
         8: .line 572
            aload 0 /* this */
            invokevirtual sun.jvm.hotspot.utilities.HeapHprofBinWriter.writeHeapRecordPrologue:()V
         9: .line 573
            lconst_0
            lstore 13 /* currentRecordLength */
        10: .line 577
      StackMap locals: sun.jvm.hotspot.utilities.HeapHprofBinWriter long int long java.lang.String long long long long
      StackMap stack:
            ldc 4294967295
            iload 3 /* headerSize */
            i2l
            lload 13 /* currentRecordLength */
            ladd
            lsub
            lstore 15 /* maxBytes */
        start local 15 // long maxBytes
        11: .line 579
            lload 11 /* originalLengthInBytes */
            lload 15 /* maxBytes */
            lcmp
            ifle 17
        12: .line 580
            lload 15 /* maxBytes */
            lload 4 /* typeSize */
            ldiv
            lstore 7 /* length */
        13: .line 581
            getstatic java.lang.System.err:Ljava/io/PrintStream;
            new java.lang.StringBuilder
            dup
            ldc "WARNING: Cannot dump array of type "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 6 /* typeName */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        14: .line 582
            ldc " with length "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            lload 1 /* originalArrayLength */
            invokevirtual java.lang.StringBuilder.append:(J)Ljava/lang/StringBuilder;
        15: .line 583
            ldc "; truncating to length "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            lload 7 /* length */
            invokevirtual java.lang.StringBuilder.append:(J)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        16: .line 581
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
        17: .line 585
      StackMap locals: long
      StackMap stack:
            lload 7 /* length */
            l2i
            ireturn
        end local 15 // long maxBytes
        end local 13 // long currentRecordLength
        end local 11 // long originalLengthInBytes
        end local 9 // long dumpEnd
        end local 7 // long length
        end local 6 // java.lang.String typeName
        end local 4 // long typeSize
        end local 3 // int headerSize
        end local 1 // long originalArrayLength
        end local 0 // sun.jvm.hotspot.utilities.HeapHprofBinWriter this
      LocalVariableTable:
        Start  End  Slot                   Name  Signature
            0   18     0                   this  Lsun/jvm/hotspot/utilities/HeapHprofBinWriter;
            0   18     1    originalArrayLength  J
            0   18     3             headerSize  I
            0   18     4               typeSize  J
            0   18     6               typeName  Ljava/lang/String;
            1   18     7                 length  J
            2   18     9                dumpEnd  J
            3   18    11  originalLengthInBytes  J
            4   18    13    currentRecordLength  J
           11   18    15               maxBytes  J
    Exceptions:
      throws java.io.IOException
    MethodParameters:
                     Name  Flags
      originalArrayLength  
      headerSize           
      typeSize             
      typeName             

  private void writeClassDumpRecords();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=3, args_size=1
        start local 0 // sun.jvm.hotspot.utilities.HeapHprofBinWriter this
         0: .line 589
            invokestatic sun.jvm.hotspot.runtime.VM.getVM:()Lsun/jvm/hotspot/runtime/VM;
            invokevirtual sun.jvm.hotspot.runtime.VM.getClassLoaderDataGraph:()Lsun/jvm/hotspot/classfile/ClassLoaderDataGraph;
            astore 1 /* cldGraph */
        start local 1 // sun.jvm.hotspot.classfile.ClassLoaderDataGraph cldGraph
         1: .line 591
            aload 1 /* cldGraph */
            new sun.jvm.hotspot.utilities.HeapHprofBinWriter$1
            dup
            aload 0 /* this */
            invokespecial sun.jvm.hotspot.utilities.HeapHprofBinWriter$1.<init>:(Lsun/jvm/hotspot/utilities/HeapHprofBinWriter;)V
            invokevirtual sun.jvm.hotspot.classfile.ClassLoaderDataGraph.classesDo:(Lsun/jvm/hotspot/classfile/ClassLoaderDataGraph$ClassVisitor;)V
         2: .line 602
            goto 5
      StackMap locals: sun.jvm.hotspot.utilities.HeapHprofBinWriter sun.jvm.hotspot.classfile.ClassLoaderDataGraph
      StackMap stack: java.lang.RuntimeException
         3: astore 2 /* re */
        start local 2 // java.lang.RuntimeException re
         4: .line 603
            aload 0 /* this */
            aload 2 /* re */
            invokevirtual sun.jvm.hotspot.utilities.HeapHprofBinWriter.handleRuntimeException:(Ljava/lang/RuntimeException;)V
        end local 2 // java.lang.RuntimeException re
         5: .line 605
      StackMap locals:
      StackMap stack:
            return
        end local 1 // sun.jvm.hotspot.classfile.ClassLoaderDataGraph cldGraph
        end local 0 // sun.jvm.hotspot.utilities.HeapHprofBinWriter this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    6     0      this  Lsun/jvm/hotspot/utilities/HeapHprofBinWriter;
            1    6     1  cldGraph  Lsun/jvm/hotspot/classfile/ClassLoaderDataGraph;
            4    5     2        re  Ljava/lang/RuntimeException;
      Exception table:
        from    to  target  type
           1     2       3  Class java.lang.RuntimeException
    Exceptions:
      throws java.io.IOException

  protected void writeClass(sun.jvm.hotspot.oops.Instance);
    descriptor: (Lsun/jvm/hotspot/oops/Instance;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // sun.jvm.hotspot.utilities.HeapHprofBinWriter this
        start local 1 // sun.jvm.hotspot.oops.Instance instance
         0: .line 608
            aload 1 /* instance */
            invokestatic sun.jvm.hotspot.oops.java_lang_Class.asKlass:(Lsun/jvm/hotspot/oops/Oop;)Lsun/jvm/hotspot/oops/Klass;
            astore 2 /* reflectedKlass */
        start local 2 // sun.jvm.hotspot.oops.Klass reflectedKlass
         1: .line 611
            aload 2 /* reflectedKlass */
            ifnonnull 3
         2: .line 612
            aload 0 /* this */
            aload 1 /* instance */
            invokevirtual sun.jvm.hotspot.utilities.HeapHprofBinWriter.writeInstance:(Lsun/jvm/hotspot/oops/Instance;)V
         3: .line 614
      StackMap locals: sun.jvm.hotspot.oops.Klass
      StackMap stack:
            return
        end local 2 // sun.jvm.hotspot.oops.Klass reflectedKlass
        end local 1 // sun.jvm.hotspot.oops.Instance instance
        end local 0 // sun.jvm.hotspot.utilities.HeapHprofBinWriter this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    4     0            this  Lsun/jvm/hotspot/utilities/HeapHprofBinWriter;
            0    4     1        instance  Lsun/jvm/hotspot/oops/Instance;
            1    4     2  reflectedKlass  Lsun/jvm/hotspot/oops/Klass;
    Exceptions:
      throws java.io.IOException
    MethodParameters:
          Name  Flags
      instance  

  private void writeClassDumpRecord(sun.jvm.hotspot.oops.Klass);
    descriptor: (Lsun/jvm/hotspot/oops/Klass;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=6, locals=11, args_size=2
        start local 0 // sun.jvm.hotspot.utilities.HeapHprofBinWriter this
        start local 1 // sun.jvm.hotspot.oops.Klass k
         0: .line 617
            aload 0 /* this */
            getfield sun.jvm.hotspot.utilities.HeapHprofBinWriter.out:Ljava/io/DataOutputStream;
            bipush 32
            invokevirtual java.io.DataOutputStream.writeByte:(I)V
         1: .line 618
            aload 0 /* this */
            aload 1 /* k */
            invokevirtual sun.jvm.hotspot.oops.Klass.getJavaMirror:()Lsun/jvm/hotspot/oops/Instance;
            invokevirtual sun.jvm.hotspot.utilities.HeapHprofBinWriter.writeObjectID:(Lsun/jvm/hotspot/oops/Oop;)V
         2: .line 619
            aload 0 /* this */
            getfield sun.jvm.hotspot.utilities.HeapHprofBinWriter.out:Ljava/io/DataOutputStream;
            iconst_1
            invokevirtual java.io.DataOutputStream.writeInt:(I)V
         3: .line 620
            aload 1 /* k */
            invokevirtual sun.jvm.hotspot.oops.Klass.getJavaSuper:()Lsun/jvm/hotspot/oops/Klass;
            astore 2 /* superKlass */
        start local 2 // sun.jvm.hotspot.oops.Klass superKlass
         4: .line 621
            aload 2 /* superKlass */
            ifnull 7
         5: .line 622
            aload 0 /* this */
            aload 2 /* superKlass */
            invokevirtual sun.jvm.hotspot.oops.Klass.getJavaMirror:()Lsun/jvm/hotspot/oops/Instance;
            invokevirtual sun.jvm.hotspot.utilities.HeapHprofBinWriter.writeObjectID:(Lsun/jvm/hotspot/oops/Oop;)V
         6: .line 623
            goto 8
         7: .line 624
      StackMap locals: sun.jvm.hotspot.oops.Klass
      StackMap stack:
            aload 0 /* this */
            aconst_null
            invokevirtual sun.jvm.hotspot.utilities.HeapHprofBinWriter.writeObjectID:(Lsun/jvm/hotspot/oops/Oop;)V
         8: .line 627
      StackMap locals:
      StackMap stack:
            aload 1 /* k */
            instanceof sun.jvm.hotspot.oops.InstanceKlass
            ifeq 34
         9: .line 628
            aload 1 /* k */
            checkcast sun.jvm.hotspot.oops.InstanceKlass
            astore 3 /* ik */
        start local 3 // sun.jvm.hotspot.oops.InstanceKlass ik
        10: .line 629
            aload 0 /* this */
            aload 3 /* ik */
            invokevirtual sun.jvm.hotspot.oops.InstanceKlass.getClassLoader:()Lsun/jvm/hotspot/oops/Oop;
            invokevirtual sun.jvm.hotspot.utilities.HeapHprofBinWriter.writeObjectID:(Lsun/jvm/hotspot/oops/Oop;)V
        11: .line 630
            aload 0 /* this */
            aconst_null
            invokevirtual sun.jvm.hotspot.utilities.HeapHprofBinWriter.writeObjectID:(Lsun/jvm/hotspot/oops/Oop;)V
        12: .line 631
            aload 0 /* this */
            aconst_null
            invokevirtual sun.jvm.hotspot.utilities.HeapHprofBinWriter.writeObjectID:(Lsun/jvm/hotspot/oops/Oop;)V
        13: .line 633
            aload 0 /* this */
            aconst_null
            invokevirtual sun.jvm.hotspot.utilities.HeapHprofBinWriter.writeObjectID:(Lsun/jvm/hotspot/oops/Oop;)V
        14: .line 634
            aload 0 /* this */
            aconst_null
            invokevirtual sun.jvm.hotspot.utilities.HeapHprofBinWriter.writeObjectID:(Lsun/jvm/hotspot/oops/Oop;)V
        15: .line 635
            aload 3 /* ik */
            invokestatic sun.jvm.hotspot.utilities.HeapHprofBinWriter.getInstanceFields:(Lsun/jvm/hotspot/oops/InstanceKlass;)Ljava/util/List;
            astore 4 /* fields */
        start local 4 // java.util.List fields
        16: .line 636
            aload 0 /* this */
            aload 4 /* fields */
            invokevirtual sun.jvm.hotspot.utilities.HeapHprofBinWriter.getSizeForFields:(Ljava/util/List;)I
            istore 5 /* instSize */
        start local 5 // int instSize
        17: .line 637
            aload 0 /* this */
            getfield sun.jvm.hotspot.utilities.HeapHprofBinWriter.classDataCache:Ljava/util/Map;
            aload 3 /* ik */
            new sun.jvm.hotspot.utilities.HeapHprofBinWriter$ClassData
            dup
            iload 5 /* instSize */
            aload 4 /* fields */
            invokespecial sun.jvm.hotspot.utilities.HeapHprofBinWriter$ClassData.<init>:(ILjava/util/List;)V
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        18: .line 638
            aload 0 /* this */
            getfield sun.jvm.hotspot.utilities.HeapHprofBinWriter.out:Ljava/io/DataOutputStream;
            iload 5 /* instSize */
            invokevirtual java.io.DataOutputStream.writeInt:(I)V
        19: .line 642
            aload 0 /* this */
            getfield sun.jvm.hotspot.utilities.HeapHprofBinWriter.out:Ljava/io/DataOutputStream;
            iconst_0
            invokevirtual java.io.DataOutputStream.writeShort:(I)V
        20: .line 644
            aload 3 /* ik */
            invokevirtual sun.jvm.hotspot.oops.InstanceKlass.getImmediateFields:()Ljava/util/List;
            astore 6 /* declaredFields */
        start local 6 // java.util.List declaredFields
        21: .line 645
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 7 /* staticFields */
        start local 7 // java.util.List staticFields
        22: .line 646
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 8 /* instanceFields */
        start local 8 // java.util.List instanceFields
        23: .line 647
            aconst_null
            astore 9 /* itr */
        start local 9 // java.util.Iterator itr
        24: .line 648
            aload 6 /* declaredFields */
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 9 /* itr */
            goto 30
        25: .line 649
      StackMap locals: sun.jvm.hotspot.utilities.HeapHprofBinWriter sun.jvm.hotspot.oops.Klass sun.jvm.hotspot.oops.Klass sun.jvm.hotspot.oops.InstanceKlass java.util.List int java.util.List java.util.List java.util.List java.util.Iterator
      StackMap stack:
            aload 9 /* itr */
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast sun.jvm.hotspot.oops.Field
            astore 10 /* field */
        start local 10 // sun.jvm.hotspot.oops.Field field
        26: .line 650
            aload 10 /* field */
            invokevirtual sun.jvm.hotspot.oops.Field.isStatic:()Z
            ifeq 29
        27: .line 651
            aload 7 /* staticFields */
            aload 10 /* field */
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        28: .line 652
            goto 30
        29: .line 653
      StackMap locals: sun.jvm.hotspot.oops.Field
      StackMap stack:
            aload 8 /* instanceFields */
            aload 10 /* field */
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        end local 10 // sun.jvm.hotspot.oops.Field field
        30: .line 648
      StackMap locals:
      StackMap stack:
            aload 9 /* itr */
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 25
        31: .line 658
            aload 0 /* this */
            aload 7 /* staticFields */
            aload 3 /* ik */
            invokevirtual sun.jvm.hotspot.utilities.HeapHprofBinWriter.writeFieldDescriptors:(Ljava/util/List;Lsun/jvm/hotspot/oops/InstanceKlass;)V
        32: .line 661
            aload 0 /* this */
            aload 8 /* instanceFields */
            aconst_null
            invokevirtual sun.jvm.hotspot.utilities.HeapHprofBinWriter.writeFieldDescriptors:(Ljava/util/List;Lsun/jvm/hotspot/oops/InstanceKlass;)V
        end local 9 // java.util.Iterator itr
        end local 8 // java.util.List instanceFields
        end local 7 // java.util.List staticFields
        end local 6 // java.util.List declaredFields
        end local 5 // int instSize
        end local 4 // java.util.List fields
        end local 3 // sun.jvm.hotspot.oops.InstanceKlass ik
        33: .line 662
            goto 56
        34: .line 663
      StackMap locals: sun.jvm.hotspot.utilities.HeapHprofBinWriter sun.jvm.hotspot.oops.Klass sun.jvm.hotspot.oops.Klass
      StackMap stack:
            aload 1 /* k */
            instanceof sun.jvm.hotspot.oops.ObjArrayKlass
            ifeq 47
        35: .line 664
            aload 1 /* k */
            checkcast sun.jvm.hotspot.oops.ObjArrayKlass
            astore 3 /* oak */
        start local 3 // sun.jvm.hotspot.oops.ObjArrayKlass oak
        36: .line 665
            aload 3 /* oak */
            invokevirtual sun.jvm.hotspot.oops.ObjArrayKlass.getBottomKlass:()Lsun/jvm/hotspot/oops/Klass;
            astore 4 /* bottomKlass */
        start local 4 // sun.jvm.hotspot.oops.Klass bottomKlass
        37: .line 666
            aload 4 /* bottomKlass */
            instanceof sun.jvm.hotspot.oops.InstanceKlass
            ifeq 43
        38: .line 667
            aload 4 /* bottomKlass */
            checkcast sun.jvm.hotspot.oops.InstanceKlass
            astore 5 /* ik */
        start local 5 // sun.jvm.hotspot.oops.InstanceKlass ik
        39: .line 668
            aload 0 /* this */
            aload 5 /* ik */
            invokevirtual sun.jvm.hotspot.oops.InstanceKlass.getClassLoader:()Lsun/jvm/hotspot/oops/Oop;
            invokevirtual sun.jvm.hotspot.utilities.HeapHprofBinWriter.writeObjectID:(Lsun/jvm/hotspot/oops/Oop;)V
        40: .line 669
            aload 0 /* this */
            aconst_null
            invokevirtual sun.jvm.hotspot.utilities.HeapHprofBinWriter.writeObjectID:(Lsun/jvm/hotspot/oops/Oop;)V
        41: .line 670
            aload 0 /* this */
            aconst_null
            invokevirtual sun.jvm.hotspot.utilities.HeapHprofBinWriter.writeObjectID:(Lsun/jvm/hotspot/oops/Oop;)V
        end local 5 // sun.jvm.hotspot.oops.InstanceKlass ik
        42: .line 671
            goto 50
        43: .line 672
      StackMap locals: sun.jvm.hotspot.oops.ObjArrayKlass sun.jvm.hotspot.oops.Klass
      StackMap stack:
            aload 0 /* this */
            aconst_null
            invokevirtual sun.jvm.hotspot.utilities.HeapHprofBinWriter.writeObjectID:(Lsun/jvm/hotspot/oops/Oop;)V
        44: .line 673
            aload 0 /* this */
            aconst_null
            invokevirtual sun.jvm.hotspot.utilities.HeapHprofBinWriter.writeObjectID:(Lsun/jvm/hotspot/oops/Oop;)V
        45: .line 674
            aload 0 /* this */
            aconst_null
            invokevirtual sun.jvm.hotspot.utilities.HeapHprofBinWriter.writeObjectID:(Lsun/jvm/hotspot/oops/Oop;)V
        end local 4 // sun.jvm.hotspot.oops.Klass bottomKlass
        end local 3 // sun.jvm.hotspot.oops.ObjArrayKlass oak
        46: .line 676
            goto 50
        47: .line 677
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aconst_null
            invokevirtual sun.jvm.hotspot.utilities.HeapHprofBinWriter.writeObjectID:(Lsun/jvm/hotspot/oops/Oop;)V
        48: .line 678
            aload 0 /* this */
            aconst_null
            invokevirtual sun.jvm.hotspot.utilities.HeapHprofBinWriter.writeObjectID:(Lsun/jvm/hotspot/oops/Oop;)V
        49: .line 679
            aload 0 /* this */
            aconst_null
            invokevirtual sun.jvm.hotspot.utilities.HeapHprofBinWriter.writeObjectID:(Lsun/jvm/hotspot/oops/Oop;)V
        50: .line 682
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aconst_null
            invokevirtual sun.jvm.hotspot.utilities.HeapHprofBinWriter.writeObjectID:(Lsun/jvm/hotspot/oops/Oop;)V
        51: .line 683
            aload 0 /* this */
            aconst_null
            invokevirtual sun.jvm.hotspot.utilities.HeapHprofBinWriter.writeObjectID:(Lsun/jvm/hotspot/oops/Oop;)V
        52: .line 686
            aload 0 /* this */
            getfield sun.jvm.hotspot.utilities.HeapHprofBinWriter.out:Ljava/io/DataOutputStream;
            iconst_0
            invokevirtual java.io.DataOutputStream.writeInt:(I)V
        53: .line 688
            aload 0 /* this */
            getfield sun.jvm.hotspot.utilities.HeapHprofBinWriter.out:Ljava/io/DataOutputStream;
            iconst_0
            invokevirtual java.io.DataOutputStream.writeShort:(I)V
        54: .line 690
            aload 0 /* this */
            getfield sun.jvm.hotspot.utilities.HeapHprofBinWriter.out:Ljava/io/DataOutputStream;
            iconst_0
            invokevirtual java.io.DataOutputStream.writeShort:(I)V
        55: .line 692
            aload 0 /* this */
            getfield sun.jvm.hotspot.utilities.HeapHprofBinWriter.out:Ljava/io/DataOutputStream;
            iconst_0
            invokevirtual java.io.DataOutputStream.writeShort:(I)V
        56: .line 694
      StackMap locals:
      StackMap stack:
            return
        end local 2 // sun.jvm.hotspot.oops.Klass superKlass
        end local 1 // sun.jvm.hotspot.oops.Klass k
        end local 0 // sun.jvm.hotspot.utilities.HeapHprofBinWriter this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   57     0            this  Lsun/jvm/hotspot/utilities/HeapHprofBinWriter;
            0   57     1               k  Lsun/jvm/hotspot/oops/Klass;
            4   57     2      superKlass  Lsun/jvm/hotspot/oops/Klass;
           10   33     3              ik  Lsun/jvm/hotspot/oops/InstanceKlass;
           16   33     4          fields  Ljava/util/List;
           17   33     5        instSize  I
           21   33     6  declaredFields  Ljava/util/List;
           22   33     7    staticFields  Ljava/util/List;
           23   33     8  instanceFields  Ljava/util/List;
           24   33     9             itr  Ljava/util/Iterator;
           26   30    10           field  Lsun/jvm/hotspot/oops/Field;
           36   46     3             oak  Lsun/jvm/hotspot/oops/ObjArrayKlass;
           37   46     4     bottomKlass  Lsun/jvm/hotspot/oops/Klass;
           39   42     5              ik  Lsun/jvm/hotspot/oops/InstanceKlass;
    Exceptions:
      throws java.io.IOException
    MethodParameters:
      Name  Flags
      k     

  private void dumpStackTraces();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=6, locals=13, args_size=1
        start local 0 // sun.jvm.hotspot.utilities.HeapHprofBinWriter this
         0: .line 698
            aload 0 /* this */
            iconst_5
            iconst_3
            aload 0 /* this */
            getfield sun.jvm.hotspot.utilities.HeapHprofBinWriter.INT_SIZE:J
            l2i
            imul
            invokevirtual sun.jvm.hotspot.utilities.HeapHprofBinWriter.writeHeader:(II)V
         1: .line 699
            aload 0 /* this */
            getfield sun.jvm.hotspot.utilities.HeapHprofBinWriter.out:Ljava/io/DataOutputStream;
            iconst_1
            invokevirtual java.io.DataOutputStream.writeInt:(I)V
         2: .line 700
            aload 0 /* this */
            getfield sun.jvm.hotspot.utilities.HeapHprofBinWriter.out:Ljava/io/DataOutputStream;
            iconst_0
            invokevirtual java.io.DataOutputStream.writeInt:(I)V
         3: .line 701
            aload 0 /* this */
            getfield sun.jvm.hotspot.utilities.HeapHprofBinWriter.out:Ljava/io/DataOutputStream;
            iconst_0
            invokevirtual java.io.DataOutputStream.writeInt:(I)V
         4: .line 703
            iconst_0
            istore 1 /* frameSerialNum */
        start local 1 // int frameSerialNum
         5: .line 704
            iconst_0
            istore 2 /* numThreads */
        start local 2 // int numThreads
         6: .line 705
            invokestatic sun.jvm.hotspot.runtime.VM.getVM:()Lsun/jvm/hotspot/runtime/VM;
            invokevirtual sun.jvm.hotspot.runtime.VM.getThreads:()Lsun/jvm/hotspot/runtime/Threads;
            astore 3 /* threads */
        start local 3 // sun.jvm.hotspot.runtime.Threads threads
         7: .line 707
            aload 3 /* threads */
            invokevirtual sun.jvm.hotspot.runtime.Threads.first:()Lsun/jvm/hotspot/runtime/JavaThread;
            astore 4 /* thread */
        start local 4 // sun.jvm.hotspot.runtime.JavaThread thread
         8: goto 36
         9: .line 708
      StackMap locals: sun.jvm.hotspot.utilities.HeapHprofBinWriter int int sun.jvm.hotspot.runtime.Threads sun.jvm.hotspot.runtime.JavaThread
      StackMap stack:
            aload 4 /* thread */
            invokevirtual sun.jvm.hotspot.runtime.JavaThread.getThreadObj:()Lsun/jvm/hotspot/oops/Oop;
            astore 5 /* threadObj */
        start local 5 // sun.jvm.hotspot.oops.Oop threadObj
        10: .line 709
            aload 5 /* threadObj */
            ifnull 35
            aload 4 /* thread */
            invokevirtual sun.jvm.hotspot.runtime.JavaThread.isExiting:()Z
            ifne 35
            aload 4 /* thread */
            invokevirtual sun.jvm.hotspot.runtime.JavaThread.isHiddenFromExternalView:()Z
            ifne 35
        11: .line 712
            new sun.jvm.hotspot.runtime.ThreadStackTrace
            dup
            aload 4 /* thread */
            invokespecial sun.jvm.hotspot.runtime.ThreadStackTrace.<init>:(Lsun/jvm/hotspot/runtime/JavaThread;)V
            astore 6 /* st */
        start local 6 // sun.jvm.hotspot.runtime.ThreadStackTrace st
        12: .line 713
            aload 6 /* st */
            iconst_m1
            invokevirtual sun.jvm.hotspot.runtime.ThreadStackTrace.dumpStack:(I)V
        13: .line 714
            iinc 2 /* numThreads */ 1
        14: .line 717
            aload 6 /* st */
            invokevirtual sun.jvm.hotspot.runtime.ThreadStackTrace.getStackDepth:()I
            istore 7 /* depth */
        start local 7 // int depth
        15: .line 718
            iload 1 /* frameSerialNum */
            istore 8 /* threadFrameStart */
        start local 8 // int threadFrameStart
        16: .line 719
            iconst_0
            istore 9 /* j */
        start local 9 // int j
        17: goto 24
        18: .line 720
      StackMap locals: sun.jvm.hotspot.utilities.HeapHprofBinWriter int int sun.jvm.hotspot.runtime.Threads sun.jvm.hotspot.runtime.JavaThread sun.jvm.hotspot.oops.Oop sun.jvm.hotspot.runtime.ThreadStackTrace int int int
      StackMap stack:
            aload 6 /* st */
            iload 9 /* j */
            invokevirtual sun.jvm.hotspot.runtime.ThreadStackTrace.stackFrameAt:(I)Lsun/jvm/hotspot/runtime/StackFrameInfo;
            astore 10 /* frame */
        start local 10 // sun.jvm.hotspot.runtime.StackFrameInfo frame
        19: .line 721
            aload 10 /* frame */
            invokevirtual sun.jvm.hotspot.runtime.StackFrameInfo.getMethod:()Lsun/jvm/hotspot/oops/Method;
            astore 11 /* m */
        start local 11 // sun.jvm.hotspot.oops.Method m
        20: .line 722
            aload 0 /* this */
            getfield sun.jvm.hotspot.utilities.HeapHprofBinWriter.KlassMap:Ljava/util/ArrayList;
            aload 11 /* m */
            invokevirtual sun.jvm.hotspot.oops.Method.getMethodHolder:()Lsun/jvm/hotspot/oops/InstanceKlass;
            invokevirtual java.util.ArrayList.indexOf:(Ljava/lang/Object;)I
            iconst_1
            iadd
            istore 12 /* classSerialNum */
        start local 12 // int classSerialNum
        21: .line 724
            getstatic sun.jvm.hotspot.utilities.HeapHprofBinWriter.$assertionsDisabled:Z
            ifne 22
            iload 12 /* classSerialNum */
            ifgt 22
            new java.lang.AssertionError
            dup
            ldc "class not found"
            invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
            athrow
        22: .line 725
      StackMap locals: sun.jvm.hotspot.runtime.StackFrameInfo sun.jvm.hotspot.oops.Method int
      StackMap stack:
            aload 0 /* this */
            iinc 1 /* frameSerialNum */ 1
            iload 1 /* frameSerialNum */
            iload 12 /* classSerialNum */
            aload 11 /* m */
            aload 10 /* frame */
            invokevirtual sun.jvm.hotspot.runtime.StackFrameInfo.getBCI:()I
            invokevirtual sun.jvm.hotspot.utilities.HeapHprofBinWriter.dumpStackFrame:(IILsun/jvm/hotspot/oops/Method;I)V
        end local 12 // int classSerialNum
        end local 11 // sun.jvm.hotspot.oops.Method m
        end local 10 // sun.jvm.hotspot.runtime.StackFrameInfo frame
        23: .line 719
            iinc 9 /* j */ 1
      StackMap locals:
      StackMap stack:
        24: iload 9 /* j */
            iload 7 /* depth */
            if_icmplt 18
        end local 9 // int j
        25: .line 729
            aload 0 /* this */
            iconst_5
            iconst_3
            aload 0 /* this */
            getfield sun.jvm.hotspot.utilities.HeapHprofBinWriter.INT_SIZE:J
            l2i
            imul
            iload 7 /* depth */
            invokestatic sun.jvm.hotspot.runtime.VM.getVM:()Lsun/jvm/hotspot/runtime/VM;
            invokevirtual sun.jvm.hotspot.runtime.VM.getOopSize:()J
            l2i
            imul
            iadd
            invokevirtual sun.jvm.hotspot.utilities.HeapHprofBinWriter.writeHeader:(II)V
        26: .line 730
            iload 2 /* numThreads */
            iconst_1
            iadd
            istore 9 /* stackSerialNum */
        start local 9 // int stackSerialNum
        27: .line 731
            aload 0 /* this */
            getfield sun.jvm.hotspot.utilities.HeapHprofBinWriter.out:Ljava/io/DataOutputStream;
            iload 9 /* stackSerialNum */
            invokevirtual java.io.DataOutputStream.writeInt:(I)V
        28: .line 732
            aload 0 /* this */
            getfield sun.jvm.hotspot.utilities.HeapHprofBinWriter.out:Ljava/io/DataOutputStream;
            iload 2 /* numThreads */
            invokevirtual java.io.DataOutputStream.writeInt:(I)V
        29: .line 733
            aload 0 /* this */
            getfield sun.jvm.hotspot.utilities.HeapHprofBinWriter.out:Ljava/io/DataOutputStream;
            iload 7 /* depth */
            invokevirtual java.io.DataOutputStream.writeInt:(I)V
        30: .line 734
            iconst_1
            istore 10 /* j */
        start local 10 // int j
        31: goto 34
        32: .line 735
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            iload 8 /* threadFrameStart */
            iload 10 /* j */
            iadd
            i2l
            invokevirtual sun.jvm.hotspot.utilities.HeapHprofBinWriter.writeObjectID:(J)V
        33: .line 734
            iinc 10 /* j */ 1
      StackMap locals:
      StackMap stack:
        34: iload 10 /* j */
            iload 7 /* depth */
            if_icmple 32
        end local 10 // int j
        end local 9 // int stackSerialNum
        end local 8 // int threadFrameStart
        end local 7 // int depth
        end local 6 // sun.jvm.hotspot.runtime.ThreadStackTrace st
        end local 5 // sun.jvm.hotspot.oops.Oop threadObj
        35: .line 707
      StackMap locals: sun.jvm.hotspot.utilities.HeapHprofBinWriter int int sun.jvm.hotspot.runtime.Threads sun.jvm.hotspot.runtime.JavaThread
      StackMap stack:
            aload 4 /* thread */
            invokevirtual sun.jvm.hotspot.runtime.JavaThread.next:()Lsun/jvm/hotspot/runtime/JavaThread;
            astore 4 /* thread */
      StackMap locals:
      StackMap stack:
        36: aload 4 /* thread */
            ifnonnull 9
        end local 4 // sun.jvm.hotspot.runtime.JavaThread thread
        37: .line 739
            return
        end local 3 // sun.jvm.hotspot.runtime.Threads threads
        end local 2 // int numThreads
        end local 1 // int frameSerialNum
        end local 0 // sun.jvm.hotspot.utilities.HeapHprofBinWriter this
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0   38     0              this  Lsun/jvm/hotspot/utilities/HeapHprofBinWriter;
            5   38     1    frameSerialNum  I
            6   38     2        numThreads  I
            7   38     3           threads  Lsun/jvm/hotspot/runtime/Threads;
            8   37     4            thread  Lsun/jvm/hotspot/runtime/JavaThread;
           10   35     5         threadObj  Lsun/jvm/hotspot/oops/Oop;
           12   35     6                st  Lsun/jvm/hotspot/runtime/ThreadStackTrace;
           15   35     7             depth  I
           16   35     8  threadFrameStart  I
           17   25     9                 j  I
           19   23    10             frame  Lsun/jvm/hotspot/runtime/StackFrameInfo;
           20   23    11                 m  Lsun/jvm/hotspot/oops/Method;
           21   23    12    classSerialNum  I
           27   35     9    stackSerialNum  I
           31   35    10                 j  I
    Exceptions:
      throws java.io.IOException

  private void dumpStackFrame(int, int, sun.jvm.hotspot.oops.Method, int);
    descriptor: (IILsun/jvm/hotspot/oops/Method;I)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=6, locals=6, args_size=5
        start local 0 // sun.jvm.hotspot.utilities.HeapHprofBinWriter this
        start local 1 // int frameSN
        start local 2 // int classSN
        start local 3 // sun.jvm.hotspot.oops.Method m
        start local 4 // int bci
         0: .line 743
            aload 3 /* m */
            invokevirtual sun.jvm.hotspot.oops.Method.isNative:()Z
            ifeq 3
         1: .line 744
            bipush -3
            istore 5 /* lineNumber */
        start local 5 // int lineNumber
         2: .line 745
            goto 4
        end local 5 // int lineNumber
         3: .line 746
      StackMap locals:
      StackMap stack:
            aload 3 /* m */
            iload 4 /* bci */
            invokevirtual sun.jvm.hotspot.oops.Method.getLineNumberFromBCI:(I)I
            istore 5 /* lineNumber */
        start local 5 // int lineNumber
         4: .line 748
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            iconst_4
            iconst_4
            invokestatic sun.jvm.hotspot.runtime.VM.getVM:()Lsun/jvm/hotspot/runtime/VM;
            invokevirtual sun.jvm.hotspot.runtime.VM.getOopSize:()J
            l2i
            imul
            iconst_2
            aload 0 /* this */
            getfield sun.jvm.hotspot.utilities.HeapHprofBinWriter.INT_SIZE:J
            l2i
            imul
            iadd
            invokevirtual sun.jvm.hotspot.utilities.HeapHprofBinWriter.writeHeader:(II)V
         5: .line 749
            aload 0 /* this */
            iload 1 /* frameSN */
            i2l
            invokevirtual sun.jvm.hotspot.utilities.HeapHprofBinWriter.writeObjectID:(J)V
         6: .line 750
            aload 0 /* this */
            aload 3 /* m */
            invokevirtual sun.jvm.hotspot.oops.Method.getName:()Lsun/jvm/hotspot/oops/Symbol;
            invokevirtual sun.jvm.hotspot.utilities.HeapHprofBinWriter.writeSymbolID:(Lsun/jvm/hotspot/oops/Symbol;)V
         7: .line 751
            aload 0 /* this */
            aload 3 /* m */
            invokevirtual sun.jvm.hotspot.oops.Method.getSignature:()Lsun/jvm/hotspot/oops/Symbol;
            invokevirtual sun.jvm.hotspot.utilities.HeapHprofBinWriter.writeSymbolID:(Lsun/jvm/hotspot/oops/Symbol;)V
         8: .line 752
            aload 0 /* this */
            aload 3 /* m */
            invokevirtual sun.jvm.hotspot.oops.Method.getMethodHolder:()Lsun/jvm/hotspot/oops/InstanceKlass;
            invokevirtual sun.jvm.hotspot.oops.InstanceKlass.getSourceFileName:()Lsun/jvm/hotspot/oops/Symbol;
            invokevirtual sun.jvm.hotspot.utilities.HeapHprofBinWriter.writeSymbolID:(Lsun/jvm/hotspot/oops/Symbol;)V
         9: .line 753
            aload 0 /* this */
            getfield sun.jvm.hotspot.utilities.HeapHprofBinWriter.out:Ljava/io/DataOutputStream;
            iload 2 /* classSN */
            invokevirtual java.io.DataOutputStream.writeInt:(I)V
        10: .line 754
            aload 0 /* this */
            getfield sun.jvm.hotspot.utilities.HeapHprofBinWriter.out:Ljava/io/DataOutputStream;
            iload 5 /* lineNumber */
            invokevirtual java.io.DataOutputStream.writeInt:(I)V
        11: .line 755
            return
        end local 5 // int lineNumber
        end local 4 // int bci
        end local 3 // sun.jvm.hotspot.oops.Method m
        end local 2 // int classSN
        end local 1 // int frameSN
        end local 0 // sun.jvm.hotspot.utilities.HeapHprofBinWriter this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   12     0        this  Lsun/jvm/hotspot/utilities/HeapHprofBinWriter;
            0   12     1     frameSN  I
            0   12     2     classSN  I
            0   12     3           m  Lsun/jvm/hotspot/oops/Method;
            0   12     4         bci  I
            2    3     5  lineNumber  I
            4   12     5  lineNumber  I
    Exceptions:
      throws java.io.IOException
    MethodParameters:
         Name  Flags
      frameSN  
      classSN  
      m        
      bci      

  protected void writeJavaThread(sun.jvm.hotspot.runtime.JavaThread, int);
    descriptor: (Lsun/jvm/hotspot/runtime/JavaThread;I)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // sun.jvm.hotspot.utilities.HeapHprofBinWriter this
        start local 1 // sun.jvm.hotspot.runtime.JavaThread jt
        start local 2 // int index
         0: .line 758
            aload 0 /* this */
            getfield sun.jvm.hotspot.utilities.HeapHprofBinWriter.out:Ljava/io/DataOutputStream;
            bipush 8
            invokevirtual java.io.DataOutputStream.writeByte:(I)V
         1: .line 759
            aload 0 /* this */
            aload 1 /* jt */
            invokevirtual sun.jvm.hotspot.runtime.JavaThread.getThreadObj:()Lsun/jvm/hotspot/oops/Oop;
            invokevirtual sun.jvm.hotspot.utilities.HeapHprofBinWriter.writeObjectID:(Lsun/jvm/hotspot/oops/Oop;)V
         2: .line 760
            aload 0 /* this */
            getfield sun.jvm.hotspot.utilities.HeapHprofBinWriter.out:Ljava/io/DataOutputStream;
            iload 2 /* index */
            invokevirtual java.io.DataOutputStream.writeInt:(I)V
         3: .line 761
            aload 0 /* this */
            getfield sun.jvm.hotspot.utilities.HeapHprofBinWriter.out:Ljava/io/DataOutputStream;
            iconst_1
            invokevirtual java.io.DataOutputStream.writeInt:(I)V
         4: .line 762
            aload 0 /* this */
            aload 1 /* jt */
            iload 2 /* index */
            invokevirtual sun.jvm.hotspot.utilities.HeapHprofBinWriter.writeLocalJNIHandles:(Lsun/jvm/hotspot/runtime/JavaThread;I)V
         5: .line 763
            return
        end local 2 // int index
        end local 1 // sun.jvm.hotspot.runtime.JavaThread jt
        end local 0 // sun.jvm.hotspot.utilities.HeapHprofBinWriter this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    6     0   this  Lsun/jvm/hotspot/utilities/HeapHprofBinWriter;
            0    6     1     jt  Lsun/jvm/hotspot/runtime/JavaThread;
            0    6     2  index  I
    Exceptions:
      throws java.io.IOException
    MethodParameters:
       Name  Flags
      jt     
      index  

  protected void writeLocalJNIHandles(sun.jvm.hotspot.runtime.JavaThread, int);
    descriptor: (Lsun/jvm/hotspot/runtime/JavaThread;I)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=5, locals=6, args_size=3
        start local 0 // sun.jvm.hotspot.utilities.HeapHprofBinWriter this
        start local 1 // sun.jvm.hotspot.runtime.JavaThread jt
        start local 2 // int index
         0: .line 766
            iload 2 /* index */
            istore 3 /* threadIndex */
        start local 3 // int threadIndex
         1: .line 767
            aload 1 /* jt */
            invokevirtual sun.jvm.hotspot.runtime.JavaThread.activeHandles:()Lsun/jvm/hotspot/runtime/JNIHandleBlock;
            astore 4 /* blk */
        start local 4 // sun.jvm.hotspot.runtime.JNIHandleBlock blk
         2: .line 768
            aload 4 /* blk */
            ifnull 7
         3: .line 770
            aload 4 /* blk */
            new sun.jvm.hotspot.utilities.HeapHprofBinWriter$2
            dup
            aload 0 /* this */
            iload 3 /* threadIndex */
            invokespecial sun.jvm.hotspot.utilities.HeapHprofBinWriter$2.<init>:(Lsun/jvm/hotspot/utilities/HeapHprofBinWriter;I)V
            invokevirtual sun.jvm.hotspot.runtime.JNIHandleBlock.oopsDo:(Lsun/jvm/hotspot/runtime/AddressVisitor;)V
         4: .line 793
            goto 7
      StackMap locals: sun.jvm.hotspot.utilities.HeapHprofBinWriter sun.jvm.hotspot.runtime.JavaThread int int sun.jvm.hotspot.runtime.JNIHandleBlock
      StackMap stack: java.lang.RuntimeException
         5: astore 5 /* re */
        start local 5 // java.lang.RuntimeException re
         6: .line 794
            aload 0 /* this */
            aload 5 /* re */
            invokevirtual sun.jvm.hotspot.utilities.HeapHprofBinWriter.handleRuntimeException:(Ljava/lang/RuntimeException;)V
        end local 5 // java.lang.RuntimeException re
         7: .line 797
      StackMap locals:
      StackMap stack:
            return
        end local 4 // sun.jvm.hotspot.runtime.JNIHandleBlock blk
        end local 3 // int threadIndex
        end local 2 // int index
        end local 1 // sun.jvm.hotspot.runtime.JavaThread jt
        end local 0 // sun.jvm.hotspot.utilities.HeapHprofBinWriter this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    8     0         this  Lsun/jvm/hotspot/utilities/HeapHprofBinWriter;
            0    8     1           jt  Lsun/jvm/hotspot/runtime/JavaThread;
            0    8     2        index  I
            1    8     3  threadIndex  I
            2    8     4          blk  Lsun/jvm/hotspot/runtime/JNIHandleBlock;
            6    7     5           re  Ljava/lang/RuntimeException;
      Exception table:
        from    to  target  type
           3     4       5  Class java.lang.RuntimeException
    Exceptions:
      throws java.io.IOException
    MethodParameters:
       Name  Flags
      jt     
      index  

  protected void writeGlobalJNIHandle(sun.jvm.hotspot.debugger.Address);
    descriptor: (Lsun/jvm/hotspot/debugger/Address;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=3, locals=4, args_size=2
        start local 0 // sun.jvm.hotspot.utilities.HeapHprofBinWriter this
        start local 1 // sun.jvm.hotspot.debugger.Address handleAddr
         0: .line 800
            aload 1 /* handleAddr */
            lconst_0
            invokeinterface sun.jvm.hotspot.debugger.Address.getOopHandleAt:(J)Lsun/jvm/hotspot/debugger/OopHandle;
            astore 2 /* oopHandle */
        start local 2 // sun.jvm.hotspot.debugger.OopHandle oopHandle
         1: .line 801
            aload 0 /* this */
            getfield sun.jvm.hotspot.utilities.HeapHprofBinWriter.objectHeap:Lsun/jvm/hotspot/oops/ObjectHeap;
            aload 2 /* oopHandle */
            invokevirtual sun.jvm.hotspot.oops.ObjectHeap.newOop:(Lsun/jvm/hotspot/debugger/OopHandle;)Lsun/jvm/hotspot/oops/Oop;
            astore 3 /* oop */
        start local 3 // sun.jvm.hotspot.oops.Oop oop
         2: .line 803
            aload 3 /* oop */
            ifnull 6
            aload 0 /* this */
            aload 3 /* oop */
            invokevirtual sun.jvm.hotspot.utilities.HeapHprofBinWriter.isJavaVisible:(Lsun/jvm/hotspot/oops/Oop;)Z
            ifeq 6
         3: .line 804
            aload 0 /* this */
            getfield sun.jvm.hotspot.utilities.HeapHprofBinWriter.out:Ljava/io/DataOutputStream;
            iconst_1
            invokevirtual java.io.DataOutputStream.writeByte:(I)V
         4: .line 805
            aload 0 /* this */
            aload 3 /* oop */
            invokevirtual sun.jvm.hotspot.utilities.HeapHprofBinWriter.writeObjectID:(Lsun/jvm/hotspot/oops/Oop;)V
         5: .line 807
            aload 0 /* this */
            aload 0 /* this */
            aload 1 /* handleAddr */
            invokevirtual sun.jvm.hotspot.utilities.HeapHprofBinWriter.getAddressValue:(Lsun/jvm/hotspot/debugger/Address;)J
            invokevirtual sun.jvm.hotspot.utilities.HeapHprofBinWriter.writeObjectID:(J)V
         6: .line 809
      StackMap locals: sun.jvm.hotspot.debugger.OopHandle sun.jvm.hotspot.oops.Oop
      StackMap stack:
            return
        end local 3 // sun.jvm.hotspot.oops.Oop oop
        end local 2 // sun.jvm.hotspot.debugger.OopHandle oopHandle
        end local 1 // sun.jvm.hotspot.debugger.Address handleAddr
        end local 0 // sun.jvm.hotspot.utilities.HeapHprofBinWriter this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    7     0        this  Lsun/jvm/hotspot/utilities/HeapHprofBinWriter;
            0    7     1  handleAddr  Lsun/jvm/hotspot/debugger/Address;
            1    7     2   oopHandle  Lsun/jvm/hotspot/debugger/OopHandle;
            2    7     3         oop  Lsun/jvm/hotspot/oops/Oop;
    Exceptions:
      throws java.io.IOException
    MethodParameters:
            Name  Flags
      handleAddr  

  protected void writeObjectArray(sun.jvm.hotspot.oops.ObjArray);
    descriptor: (Lsun/jvm/hotspot/oops/ObjArray;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=7, locals=6, args_size=2
        start local 0 // sun.jvm.hotspot.utilities.HeapHprofBinWriter this
        start local 1 // sun.jvm.hotspot.oops.ObjArray array
         0: .line 812
            aload 0 /* this */
            iconst_1
            invokevirtual sun.jvm.hotspot.utilities.HeapHprofBinWriter.getArrayHeaderSize:(Z)I
            istore 2 /* headerSize */
        start local 2 // int headerSize
         1: .line 813
            aload 0 /* this */
            aload 1 /* array */
            invokevirtual sun.jvm.hotspot.oops.ObjArray.getLength:()J
         2: .line 814
            iload 2 /* headerSize */
         3: .line 815
            aload 0 /* this */
            getfield sun.jvm.hotspot.utilities.HeapHprofBinWriter.OBJ_ID_SIZE:I
            i2l
         4: .line 816
            ldc "Object"
         5: .line 813
            invokevirtual sun.jvm.hotspot.utilities.HeapHprofBinWriter.calculateArrayMaxLength:(JIJLjava/lang/String;)I
            istore 3 /* length */
        start local 3 // int length
         6: .line 817
            aload 0 /* this */
            getfield sun.jvm.hotspot.utilities.HeapHprofBinWriter.out:Ljava/io/DataOutputStream;
            bipush 34
            invokevirtual java.io.DataOutputStream.writeByte:(I)V
         7: .line 818
            aload 0 /* this */
            aload 1 /* array */
            invokevirtual sun.jvm.hotspot.utilities.HeapHprofBinWriter.writeObjectID:(Lsun/jvm/hotspot/oops/Oop;)V
         8: .line 819
            aload 0 /* this */
            getfield sun.jvm.hotspot.utilities.HeapHprofBinWriter.out:Ljava/io/DataOutputStream;
            iconst_1
            invokevirtual java.io.DataOutputStream.writeInt:(I)V
         9: .line 820
            aload 0 /* this */
            getfield sun.jvm.hotspot.utilities.HeapHprofBinWriter.out:Ljava/io/DataOutputStream;
            iload 3 /* length */
            invokevirtual java.io.DataOutputStream.writeInt:(I)V
        10: .line 821
            aload 0 /* this */
            aload 1 /* array */
            invokevirtual sun.jvm.hotspot.oops.ObjArray.getKlass:()Lsun/jvm/hotspot/oops/Klass;
            invokevirtual sun.jvm.hotspot.oops.Klass.getJavaMirror:()Lsun/jvm/hotspot/oops/Instance;
            invokevirtual sun.jvm.hotspot.utilities.HeapHprofBinWriter.writeObjectID:(Lsun/jvm/hotspot/oops/Oop;)V
        11: .line 822
            iconst_0
            istore 4 /* index */
        start local 4 // int index
        12: goto 16
        13: .line 823
      StackMap locals: int int int
      StackMap stack:
            aload 1 /* array */
            iload 4 /* index */
            i2l
            invokevirtual sun.jvm.hotspot.oops.ObjArray.getOopHandleAt:(J)Lsun/jvm/hotspot/debugger/OopHandle;
            astore 5 /* handle */
        start local 5 // sun.jvm.hotspot.debugger.OopHandle handle
        14: .line 824
            aload 0 /* this */
            aload 0 /* this */
            aload 5 /* handle */
            invokevirtual sun.jvm.hotspot.utilities.HeapHprofBinWriter.getAddressValue:(Lsun/jvm/hotspot/debugger/Address;)J
            invokevirtual sun.jvm.hotspot.utilities.HeapHprofBinWriter.writeObjectID:(J)V
        end local 5 // sun.jvm.hotspot.debugger.OopHandle handle
        15: .line 822
            iinc 4 /* index */ 1
      StackMap locals:
      StackMap stack:
        16: iload 4 /* index */
            iload 3 /* length */
            if_icmplt 13
        end local 4 // int index
        17: .line 826
            return
        end local 3 // int length
        end local 2 // int headerSize
        end local 1 // sun.jvm.hotspot.oops.ObjArray array
        end local 0 // sun.jvm.hotspot.utilities.HeapHprofBinWriter this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   18     0        this  Lsun/jvm/hotspot/utilities/HeapHprofBinWriter;
            0   18     1       array  Lsun/jvm/hotspot/oops/ObjArray;
            1   18     2  headerSize  I
            6   18     3      length  I
           12   17     4       index  I
           14   15     5      handle  Lsun/jvm/hotspot/debugger/OopHandle;
    Exceptions:
      throws java.io.IOException
    MethodParameters:
       Name  Flags
      array  

  protected void writePrimitiveArray(sun.jvm.hotspot.oops.TypeArray);
    descriptor: (Lsun/jvm/hotspot/oops/TypeArray;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=7, locals=9, args_size=2
        start local 0 // sun.jvm.hotspot.utilities.HeapHprofBinWriter this
        start local 1 // sun.jvm.hotspot.oops.TypeArray array
         0: .line 829
            aload 0 /* this */
            iconst_0
            invokevirtual sun.jvm.hotspot.utilities.HeapHprofBinWriter.getArrayHeaderSize:(Z)I
            istore 2 /* headerSize */
        start local 2 // int headerSize
         1: .line 830
            aload 1 /* array */
            invokevirtual sun.jvm.hotspot.oops.TypeArray.getKlass:()Lsun/jvm/hotspot/oops/Klass;
            checkcast sun.jvm.hotspot.oops.TypeArrayKlass
            astore 3 /* tak */
        start local 3 // sun.jvm.hotspot.oops.TypeArrayKlass tak
         2: .line 831
            aload 3 /* tak */
            invokevirtual sun.jvm.hotspot.oops.TypeArrayKlass.getElementType:()I
            istore 4 /* type */
        start local 4 // int type
         3: .line 832
            aload 3 /* tak */
            invokevirtual sun.jvm.hotspot.oops.TypeArrayKlass.getElementTypeName:()Ljava/lang/String;
            astore 5 /* typeName */
        start local 5 // java.lang.String typeName
         4: .line 833
            aload 0 /* this */
            iload 4 /* type */
            invokevirtual sun.jvm.hotspot.utilities.HeapHprofBinWriter.getSizeForType:(I)J
            lstore 6 /* typeSize */
        start local 6 // long typeSize
         5: .line 834
            aload 0 /* this */
            aload 1 /* array */
            invokevirtual sun.jvm.hotspot.oops.TypeArray.getLength:()J
         6: .line 835
            iload 2 /* headerSize */
         7: .line 836
            lload 6 /* typeSize */
         8: .line 837
            aload 5 /* typeName */
         9: .line 834
            invokevirtual sun.jvm.hotspot.utilities.HeapHprofBinWriter.calculateArrayMaxLength:(JIJLjava/lang/String;)I
            istore 8 /* length */
        start local 8 // int length
        10: .line 838
            aload 0 /* this */
            getfield sun.jvm.hotspot.utilities.HeapHprofBinWriter.out:Ljava/io/DataOutputStream;
            bipush 35
            invokevirtual java.io.DataOutputStream.writeByte:(I)V
        11: .line 839
            aload 0 /* this */
            aload 1 /* array */
            invokevirtual sun.jvm.hotspot.utilities.HeapHprofBinWriter.writeObjectID:(Lsun/jvm/hotspot/oops/Oop;)V
        12: .line 840
            aload 0 /* this */
            getfield sun.jvm.hotspot.utilities.HeapHprofBinWriter.out:Ljava/io/DataOutputStream;
            iconst_1
            invokevirtual java.io.DataOutputStream.writeInt:(I)V
        13: .line 841
            aload 0 /* this */
            getfield sun.jvm.hotspot.utilities.HeapHprofBinWriter.out:Ljava/io/DataOutputStream;
            iload 8 /* length */
            invokevirtual java.io.DataOutputStream.writeInt:(I)V
        14: .line 842
            aload 0 /* this */
            getfield sun.jvm.hotspot.utilities.HeapHprofBinWriter.out:Ljava/io/DataOutputStream;
            iload 4 /* type */
            i2b
            invokevirtual java.io.DataOutputStream.writeByte:(I)V
        15: .line 843
            iload 4 /* type */
            tableswitch { // 4 - 11
                    4: 16
                    5: 18
                    6: 20
                    7: 22
                    8: 24
                    9: 26
                   10: 28
                   11: 30
              default: 32
          }
        16: .line 845
      StackMap locals: sun.jvm.hotspot.utilities.HeapHprofBinWriter sun.jvm.hotspot.oops.TypeArray int sun.jvm.hotspot.oops.TypeArrayKlass int java.lang.String long int
      StackMap stack:
            aload 0 /* this */
            aload 1 /* array */
            iload 8 /* length */
            invokevirtual sun.jvm.hotspot.utilities.HeapHprofBinWriter.writeBooleanArray:(Lsun/jvm/hotspot/oops/TypeArray;I)V
        17: .line 846
            goto 35
        18: .line 848
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* array */
            iload 8 /* length */
            invokevirtual sun.jvm.hotspot.utilities.HeapHprofBinWriter.writeCharArray:(Lsun/jvm/hotspot/oops/TypeArray;I)V
        19: .line 849
            goto 35
        20: .line 851
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* array */
            iload 8 /* length */
            invokevirtual sun.jvm.hotspot.utilities.HeapHprofBinWriter.writeFloatArray:(Lsun/jvm/hotspot/oops/TypeArray;I)V
        21: .line 852
            goto 35
        22: .line 854
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* array */
            iload 8 /* length */
            invokevirtual sun.jvm.hotspot.utilities.HeapHprofBinWriter.writeDoubleArray:(Lsun/jvm/hotspot/oops/TypeArray;I)V
        23: .line 855
            goto 35
        24: .line 857
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* array */
            iload 8 /* length */
            invokevirtual sun.jvm.hotspot.utilities.HeapHprofBinWriter.writeByteArray:(Lsun/jvm/hotspot/oops/TypeArray;I)V
        25: .line 858
            goto 35
        26: .line 860
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* array */
            iload 8 /* length */
            invokevirtual sun.jvm.hotspot.utilities.HeapHprofBinWriter.writeShortArray:(Lsun/jvm/hotspot/oops/TypeArray;I)V
        27: .line 861
            goto 35
        28: .line 863
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* array */
            iload 8 /* length */
            invokevirtual sun.jvm.hotspot.utilities.HeapHprofBinWriter.writeIntArray:(Lsun/jvm/hotspot/oops/TypeArray;I)V
        29: .line 864
            goto 35
        30: .line 866
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* array */
            iload 8 /* length */
            invokevirtual sun.jvm.hotspot.utilities.HeapHprofBinWriter.writeLongArray:(Lsun/jvm/hotspot/oops/TypeArray;I)V
        31: .line 867
            goto 35
        32: .line 869
      StackMap locals:
      StackMap stack:
            new java.lang.RuntimeException
            dup
        33: .line 870
            new java.lang.StringBuilder
            dup
            ldc "Should not reach here: Unknown type: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            iload 4 /* type */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        34: .line 869
            invokespecial java.lang.RuntimeException.<init>:(Ljava/lang/String;)V
            athrow
        35: .line 872
      StackMap locals:
      StackMap stack:
            return
        end local 8 // int length
        end local 6 // long typeSize
        end local 5 // java.lang.String typeName
        end local 4 // int type
        end local 3 // sun.jvm.hotspot.oops.TypeArrayKlass tak
        end local 2 // int headerSize
        end local 1 // sun.jvm.hotspot.oops.TypeArray array
        end local 0 // sun.jvm.hotspot.utilities.HeapHprofBinWriter this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   36     0        this  Lsun/jvm/hotspot/utilities/HeapHprofBinWriter;
            0   36     1       array  Lsun/jvm/hotspot/oops/TypeArray;
            1   36     2  headerSize  I
            2   36     3         tak  Lsun/jvm/hotspot/oops/TypeArrayKlass;
            3   36     4        type  I
            4   36     5    typeName  Ljava/lang/String;
            5   36     6    typeSize  J
           10   36     8      length  I
    Exceptions:
      throws java.io.IOException
    MethodParameters:
       Name  Flags
      array  

  private void writeBooleanArray(sun.jvm.hotspot.oops.TypeArray, int);
    descriptor: (Lsun/jvm/hotspot/oops/TypeArray;I)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=6, locals=6, args_size=3
        start local 0 // sun.jvm.hotspot.utilities.HeapHprofBinWriter this
        start local 1 // sun.jvm.hotspot.oops.TypeArray array
        start local 2 // int length
         0: .line 875
            iconst_0
            istore 3 /* index */
        start local 3 // int index
         1: goto 5
         2: .line 876
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            getfield sun.jvm.hotspot.utilities.HeapHprofBinWriter.BOOLEAN_BASE_OFFSET:J
            iload 3 /* index */
            i2l
            aload 0 /* this */
            getfield sun.jvm.hotspot.utilities.HeapHprofBinWriter.BOOLEAN_SIZE:J
            lmul
            ladd
            lstore 4 /* offset */
        start local 4 // long offset
         3: .line 877
            aload 0 /* this */
            getfield sun.jvm.hotspot.utilities.HeapHprofBinWriter.out:Ljava/io/DataOutputStream;
            aload 1 /* array */
            invokevirtual sun.jvm.hotspot.oops.TypeArray.getHandle:()Lsun/jvm/hotspot/debugger/OopHandle;
            lload 4 /* offset */
            invokeinterface sun.jvm.hotspot.debugger.OopHandle.getJBooleanAt:(J)Z
            invokevirtual java.io.DataOutputStream.writeBoolean:(Z)V
        end local 4 // long offset
         4: .line 875
            iinc 3 /* index */ 1
      StackMap locals:
      StackMap stack:
         5: iload 3 /* index */
            iload 2 /* length */
            if_icmplt 2
        end local 3 // int index
         6: .line 879
            return
        end local 2 // int length
        end local 1 // sun.jvm.hotspot.oops.TypeArray array
        end local 0 // sun.jvm.hotspot.utilities.HeapHprofBinWriter this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    7     0    this  Lsun/jvm/hotspot/utilities/HeapHprofBinWriter;
            0    7     1   array  Lsun/jvm/hotspot/oops/TypeArray;
            0    7     2  length  I
            1    6     3   index  I
            3    4     4  offset  J
    Exceptions:
      throws java.io.IOException
    MethodParameters:
        Name  Flags
      array   
      length  

  private void writeByteArray(sun.jvm.hotspot.oops.TypeArray, int);
    descriptor: (Lsun/jvm/hotspot/oops/TypeArray;I)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=6, locals=6, args_size=3
        start local 0 // sun.jvm.hotspot.utilities.HeapHprofBinWriter this
        start local 1 // sun.jvm.hotspot.oops.TypeArray array
        start local 2 // int length
         0: .line 882
            iconst_0
            istore 3 /* index */
        start local 3 // int index
         1: goto 5
         2: .line 883
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            getfield sun.jvm.hotspot.utilities.HeapHprofBinWriter.BYTE_BASE_OFFSET:J
            iload 3 /* index */
            i2l
            aload 0 /* this */
            getfield sun.jvm.hotspot.utilities.HeapHprofBinWriter.BYTE_SIZE:J
            lmul
            ladd
            lstore 4 /* offset */
        start local 4 // long offset
         3: .line 884
            aload 0 /* this */
            getfield sun.jvm.hotspot.utilities.HeapHprofBinWriter.out:Ljava/io/DataOutputStream;
            aload 1 /* array */
            invokevirtual sun.jvm.hotspot.oops.TypeArray.getHandle:()Lsun/jvm/hotspot/debugger/OopHandle;
            lload 4 /* offset */
            invokeinterface sun.jvm.hotspot.debugger.OopHandle.getJByteAt:(J)B
            invokevirtual java.io.DataOutputStream.writeByte:(I)V
        end local 4 // long offset
         4: .line 882
            iinc 3 /* index */ 1
      StackMap locals:
      StackMap stack:
         5: iload 3 /* index */
            iload 2 /* length */
            if_icmplt 2
        end local 3 // int index
         6: .line 886
            return
        end local 2 // int length
        end local 1 // sun.jvm.hotspot.oops.TypeArray array
        end local 0 // sun.jvm.hotspot.utilities.HeapHprofBinWriter this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    7     0    this  Lsun/jvm/hotspot/utilities/HeapHprofBinWriter;
            0    7     1   array  Lsun/jvm/hotspot/oops/TypeArray;
            0    7     2  length  I
            1    6     3   index  I
            3    4     4  offset  J
    Exceptions:
      throws java.io.IOException
    MethodParameters:
        Name  Flags
      array   
      length  

  private void writeShortArray(sun.jvm.hotspot.oops.TypeArray, int);
    descriptor: (Lsun/jvm/hotspot/oops/TypeArray;I)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=6, locals=6, args_size=3
        start local 0 // sun.jvm.hotspot.utilities.HeapHprofBinWriter this
        start local 1 // sun.jvm.hotspot.oops.TypeArray array
        start local 2 // int length
         0: .line 889
            iconst_0
            istore 3 /* index */
        start local 3 // int index
         1: goto 5
         2: .line 890
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            getfield sun.jvm.hotspot.utilities.HeapHprofBinWriter.SHORT_BASE_OFFSET:J
            iload 3 /* index */
            i2l
            aload 0 /* this */
            getfield sun.jvm.hotspot.utilities.HeapHprofBinWriter.SHORT_SIZE:J
            lmul
            ladd
            lstore 4 /* offset */
        start local 4 // long offset
         3: .line 891
            aload 0 /* this */
            getfield sun.jvm.hotspot.utilities.HeapHprofBinWriter.out:Ljava/io/DataOutputStream;
            aload 1 /* array */
            invokevirtual sun.jvm.hotspot.oops.TypeArray.getHandle:()Lsun/jvm/hotspot/debugger/OopHandle;
            lload 4 /* offset */
            invokeinterface sun.jvm.hotspot.debugger.OopHandle.getJShortAt:(J)S
            invokevirtual java.io.DataOutputStream.writeShort:(I)V
        end local 4 // long offset
         4: .line 889
            iinc 3 /* index */ 1
      StackMap locals:
      StackMap stack:
         5: iload 3 /* index */
            iload 2 /* length */
            if_icmplt 2
        end local 3 // int index
         6: .line 893
            return
        end local 2 // int length
        end local 1 // sun.jvm.hotspot.oops.TypeArray array
        end local 0 // sun.jvm.hotspot.utilities.HeapHprofBinWriter this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    7     0    this  Lsun/jvm/hotspot/utilities/HeapHprofBinWriter;
            0    7     1   array  Lsun/jvm/hotspot/oops/TypeArray;
            0    7     2  length  I
            1    6     3   index  I
            3    4     4  offset  J
    Exceptions:
      throws java.io.IOException
    MethodParameters:
        Name  Flags
      array   
      length  

  private void writeIntArray(sun.jvm.hotspot.oops.TypeArray, int);
    descriptor: (Lsun/jvm/hotspot/oops/TypeArray;I)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=6, locals=6, args_size=3
        start local 0 // sun.jvm.hotspot.utilities.HeapHprofBinWriter this
        start local 1 // sun.jvm.hotspot.oops.TypeArray array
        start local 2 // int length
         0: .line 896
            iconst_0
            istore 3 /* index */
        start local 3 // int index
         1: goto 5
         2: .line 897
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            getfield sun.jvm.hotspot.utilities.HeapHprofBinWriter.INT_BASE_OFFSET:J
            iload 3 /* index */
            i2l
            aload 0 /* this */
            getfield sun.jvm.hotspot.utilities.HeapHprofBinWriter.INT_SIZE:J
            lmul
            ladd
            lstore 4 /* offset */
        start local 4 // long offset
         3: .line 898
            aload 0 /* this */
            getfield sun.jvm.hotspot.utilities.HeapHprofBinWriter.out:Ljava/io/DataOutputStream;
            aload 1 /* array */
            invokevirtual sun.jvm.hotspot.oops.TypeArray.getHandle:()Lsun/jvm/hotspot/debugger/OopHandle;
            lload 4 /* offset */
            invokeinterface sun.jvm.hotspot.debugger.OopHandle.getJIntAt:(J)I
            invokevirtual java.io.DataOutputStream.writeInt:(I)V
        end local 4 // long offset
         4: .line 896
            iinc 3 /* index */ 1
      StackMap locals:
      StackMap stack:
         5: iload 3 /* index */
            iload 2 /* length */
            if_icmplt 2
        end local 3 // int index
         6: .line 900
            return
        end local 2 // int length
        end local 1 // sun.jvm.hotspot.oops.TypeArray array
        end local 0 // sun.jvm.hotspot.utilities.HeapHprofBinWriter this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    7     0    this  Lsun/jvm/hotspot/utilities/HeapHprofBinWriter;
            0    7     1   array  Lsun/jvm/hotspot/oops/TypeArray;
            0    7     2  length  I
            1    6     3   index  I
            3    4     4  offset  J
    Exceptions:
      throws java.io.IOException
    MethodParameters:
        Name  Flags
      array   
      length  

  private void writeLongArray(sun.jvm.hotspot.oops.TypeArray, int);
    descriptor: (Lsun/jvm/hotspot/oops/TypeArray;I)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=6, locals=6, args_size=3
        start local 0 // sun.jvm.hotspot.utilities.HeapHprofBinWriter this
        start local 1 // sun.jvm.hotspot.oops.TypeArray array
        start local 2 // int length
         0: .line 903
            iconst_0
            istore 3 /* index */
        start local 3 // int index
         1: goto 5
         2: .line 904
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            getfield sun.jvm.hotspot.utilities.HeapHprofBinWriter.LONG_BASE_OFFSET:J
            iload 3 /* index */
            i2l
            aload 0 /* this */
            getfield sun.jvm.hotspot.utilities.HeapHprofBinWriter.LONG_SIZE:J
            lmul
            ladd
            lstore 4 /* offset */
        start local 4 // long offset
         3: .line 905
            aload 0 /* this */
            getfield sun.jvm.hotspot.utilities.HeapHprofBinWriter.out:Ljava/io/DataOutputStream;
            aload 1 /* array */
            invokevirtual sun.jvm.hotspot.oops.TypeArray.getHandle:()Lsun/jvm/hotspot/debugger/OopHandle;
            lload 4 /* offset */
            invokeinterface sun.jvm.hotspot.debugger.OopHandle.getJLongAt:(J)J
            invokevirtual java.io.DataOutputStream.writeLong:(J)V
        end local 4 // long offset
         4: .line 903
            iinc 3 /* index */ 1
      StackMap locals:
      StackMap stack:
         5: iload 3 /* index */
            iload 2 /* length */
            if_icmplt 2
        end local 3 // int index
         6: .line 907
            return
        end local 2 // int length
        end local 1 // sun.jvm.hotspot.oops.TypeArray array
        end local 0 // sun.jvm.hotspot.utilities.HeapHprofBinWriter this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    7     0    this  Lsun/jvm/hotspot/utilities/HeapHprofBinWriter;
            0    7     1   array  Lsun/jvm/hotspot/oops/TypeArray;
            0    7     2  length  I
            1    6     3   index  I
            3    4     4  offset  J
    Exceptions:
      throws java.io.IOException
    MethodParameters:
        Name  Flags
      array   
      length  

  private void writeCharArray(sun.jvm.hotspot.oops.TypeArray, int);
    descriptor: (Lsun/jvm/hotspot/oops/TypeArray;I)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=6, locals=6, args_size=3
        start local 0 // sun.jvm.hotspot.utilities.HeapHprofBinWriter this
        start local 1 // sun.jvm.hotspot.oops.TypeArray array
        start local 2 // int length
         0: .line 910
            iconst_0
            istore 3 /* index */
        start local 3 // int index
         1: goto 5
         2: .line 911
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            getfield sun.jvm.hotspot.utilities.HeapHprofBinWriter.CHAR_BASE_OFFSET:J
            iload 3 /* index */
            i2l
            aload 0 /* this */
            getfield sun.jvm.hotspot.utilities.HeapHprofBinWriter.CHAR_SIZE:J
            lmul
            ladd
            lstore 4 /* offset */
        start local 4 // long offset
         3: .line 912
            aload 0 /* this */
            getfield sun.jvm.hotspot.utilities.HeapHprofBinWriter.out:Ljava/io/DataOutputStream;
            aload 1 /* array */
            invokevirtual sun.jvm.hotspot.oops.TypeArray.getHandle:()Lsun/jvm/hotspot/debugger/OopHandle;
            lload 4 /* offset */
            invokeinterface sun.jvm.hotspot.debugger.OopHandle.getJCharAt:(J)C
            invokevirtual java.io.DataOutputStream.writeChar:(I)V
        end local 4 // long offset
         4: .line 910
            iinc 3 /* index */ 1
      StackMap locals:
      StackMap stack:
         5: iload 3 /* index */
            iload 2 /* length */
            if_icmplt 2
        end local 3 // int index
         6: .line 914
            return
        end local 2 // int length
        end local 1 // sun.jvm.hotspot.oops.TypeArray array
        end local 0 // sun.jvm.hotspot.utilities.HeapHprofBinWriter this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    7     0    this  Lsun/jvm/hotspot/utilities/HeapHprofBinWriter;
            0    7     1   array  Lsun/jvm/hotspot/oops/TypeArray;
            0    7     2  length  I
            1    6     3   index  I
            3    4     4  offset  J
    Exceptions:
      throws java.io.IOException
    MethodParameters:
        Name  Flags
      array   
      length  

  private void writeFloatArray(sun.jvm.hotspot.oops.TypeArray, int);
    descriptor: (Lsun/jvm/hotspot/oops/TypeArray;I)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=6, locals=6, args_size=3
        start local 0 // sun.jvm.hotspot.utilities.HeapHprofBinWriter this
        start local 1 // sun.jvm.hotspot.oops.TypeArray array
        start local 2 // int length
         0: .line 917
            iconst_0
            istore 3 /* index */
        start local 3 // int index
         1: goto 5
         2: .line 918
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            getfield sun.jvm.hotspot.utilities.HeapHprofBinWriter.FLOAT_BASE_OFFSET:J
            iload 3 /* index */
            i2l
            aload 0 /* this */
            getfield sun.jvm.hotspot.utilities.HeapHprofBinWriter.FLOAT_SIZE:J
            lmul
            ladd
            lstore 4 /* offset */
        start local 4 // long offset
         3: .line 919
            aload 0 /* this */
            getfield sun.jvm.hotspot.utilities.HeapHprofBinWriter.out:Ljava/io/DataOutputStream;
            aload 1 /* array */
            invokevirtual sun.jvm.hotspot.oops.TypeArray.getHandle:()Lsun/jvm/hotspot/debugger/OopHandle;
            lload 4 /* offset */
            invokeinterface sun.jvm.hotspot.debugger.OopHandle.getJFloatAt:(J)F
            invokevirtual java.io.DataOutputStream.writeFloat:(F)V
        end local 4 // long offset
         4: .line 917
            iinc 3 /* index */ 1
      StackMap locals:
      StackMap stack:
         5: iload 3 /* index */
            iload 2 /* length */
            if_icmplt 2
        end local 3 // int index
         6: .line 921
            return
        end local 2 // int length
        end local 1 // sun.jvm.hotspot.oops.TypeArray array
        end local 0 // sun.jvm.hotspot.utilities.HeapHprofBinWriter this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    7     0    this  Lsun/jvm/hotspot/utilities/HeapHprofBinWriter;
            0    7     1   array  Lsun/jvm/hotspot/oops/TypeArray;
            0    7     2  length  I
            1    6     3   index  I
            3    4     4  offset  J
    Exceptions:
      throws java.io.IOException
    MethodParameters:
        Name  Flags
      array   
      length  

  private void writeDoubleArray(sun.jvm.hotspot.oops.TypeArray, int);
    descriptor: (Lsun/jvm/hotspot/oops/TypeArray;I)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=6, locals=6, args_size=3
        start local 0 // sun.jvm.hotspot.utilities.HeapHprofBinWriter this
        start local 1 // sun.jvm.hotspot.oops.TypeArray array
        start local 2 // int length
         0: .line 924
            iconst_0
            istore 3 /* index */
        start local 3 // int index
         1: goto 5
         2: .line 925
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            getfield sun.jvm.hotspot.utilities.HeapHprofBinWriter.DOUBLE_BASE_OFFSET:J
            iload 3 /* index */
            i2l
            aload 0 /* this */
            getfield sun.jvm.hotspot.utilities.HeapHprofBinWriter.DOUBLE_SIZE:J
            lmul
            ladd
            lstore 4 /* offset */
        start local 4 // long offset
         3: .line 926
            aload 0 /* this */
            getfield sun.jvm.hotspot.utilities.HeapHprofBinWriter.out:Ljava/io/DataOutputStream;
            aload 1 /* array */
            invokevirtual sun.jvm.hotspot.oops.TypeArray.getHandle:()Lsun/jvm/hotspot/debugger/OopHandle;
            lload 4 /* offset */
            invokeinterface sun.jvm.hotspot.debugger.OopHandle.getJDoubleAt:(J)D
            invokevirtual java.io.DataOutputStream.writeDouble:(D)V
        end local 4 // long offset
         4: .line 924
            iinc 3 /* index */ 1
      StackMap locals:
      StackMap stack:
         5: iload 3 /* index */
            iload 2 /* length */
            if_icmplt 2
        end local 3 // int index
         6: .line 928
            return
        end local 2 // int length
        end local 1 // sun.jvm.hotspot.oops.TypeArray array
        end local 0 // sun.jvm.hotspot.utilities.HeapHprofBinWriter this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    7     0    this  Lsun/jvm/hotspot/utilities/HeapHprofBinWriter;
            0    7     1   array  Lsun/jvm/hotspot/oops/TypeArray;
            0    7     2  length  I
            1    6     3   index  I
            3    4     4  offset  J
    Exceptions:
      throws java.io.IOException
    MethodParameters:
        Name  Flags
      array   
      length  

  protected void writeInstance(sun.jvm.hotspot.oops.Instance);
    descriptor: (Lsun/jvm/hotspot/oops/Instance;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=4, locals=7, args_size=2
        start local 0 // sun.jvm.hotspot.utilities.HeapHprofBinWriter this
        start local 1 // sun.jvm.hotspot.oops.Instance instance
         0: .line 931
            aload 0 /* this */
            getfield sun.jvm.hotspot.utilities.HeapHprofBinWriter.out:Ljava/io/DataOutputStream;
            bipush 33
            invokevirtual java.io.DataOutputStream.writeByte:(I)V
         1: .line 932
            aload 0 /* this */
            aload 1 /* instance */
            invokevirtual sun.jvm.hotspot.utilities.HeapHprofBinWriter.writeObjectID:(Lsun/jvm/hotspot/oops/Oop;)V
         2: .line 933
            aload 0 /* this */
            getfield sun.jvm.hotspot.utilities.HeapHprofBinWriter.out:Ljava/io/DataOutputStream;
            iconst_1
            invokevirtual java.io.DataOutputStream.writeInt:(I)V
         3: .line 934
            aload 1 /* instance */
            invokevirtual sun.jvm.hotspot.oops.Instance.getKlass:()Lsun/jvm/hotspot/oops/Klass;
            astore 2 /* klass */
        start local 2 // sun.jvm.hotspot.oops.Klass klass
         4: .line 935
            aload 0 /* this */
            aload 2 /* klass */
            invokevirtual sun.jvm.hotspot.oops.Klass.getJavaMirror:()Lsun/jvm/hotspot/oops/Instance;
            invokevirtual sun.jvm.hotspot.utilities.HeapHprofBinWriter.writeObjectID:(Lsun/jvm/hotspot/oops/Oop;)V
         5: .line 937
            aload 0 /* this */
            getfield sun.jvm.hotspot.utilities.HeapHprofBinWriter.classDataCache:Ljava/util/Map;
            aload 2 /* klass */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast sun.jvm.hotspot.utilities.HeapHprofBinWriter$ClassData
            astore 3 /* cd */
        start local 3 // sun.jvm.hotspot.utilities.HeapHprofBinWriter$ClassData cd
         6: .line 939
            getstatic sun.jvm.hotspot.utilities.Assert.ASSERTS_ENABLED:Z
            ifeq 10
         7: .line 940
            aload 3 /* cd */
            ifnull 8
            iconst_1
            goto 9
      StackMap locals: sun.jvm.hotspot.oops.Klass sun.jvm.hotspot.utilities.HeapHprofBinWriter$ClassData
      StackMap stack:
         8: iconst_0
      StackMap locals:
      StackMap stack: int
         9: new java.lang.StringBuilder
            dup
            ldc "can not get class data for "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 2 /* klass */
            invokevirtual sun.jvm.hotspot.oops.Klass.getName:()Lsun/jvm/hotspot/oops/Symbol;
            invokevirtual sun.jvm.hotspot.oops.Symbol.asString:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 2 /* klass */
            invokevirtual sun.jvm.hotspot.oops.Klass.getAddress:()Lsun/jvm/hotspot/debugger/Address;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokestatic sun.jvm.hotspot.utilities.Assert.that:(ZLjava/lang/String;)V
        10: .line 942
      StackMap locals:
      StackMap stack:
            aload 3 /* cd */
            getfield sun.jvm.hotspot.utilities.HeapHprofBinWriter$ClassData.fields:Ljava/util/List;
            astore 4 /* fields */
        start local 4 // java.util.List fields
        11: .line 943
            aload 3 /* cd */
            getfield sun.jvm.hotspot.utilities.HeapHprofBinWriter$ClassData.instSize:I
            istore 5 /* size */
        start local 5 // int size
        12: .line 944
            aload 0 /* this */
            getfield sun.jvm.hotspot.utilities.HeapHprofBinWriter.out:Ljava/io/DataOutputStream;
            iload 5 /* size */
            invokevirtual java.io.DataOutputStream.writeInt:(I)V
        13: .line 945
            aload 4 /* fields */
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 6 /* itr */
        start local 6 // java.util.Iterator itr
        14: goto 16
        15: .line 946
      StackMap locals: java.util.List int java.util.Iterator
      StackMap stack:
            aload 0 /* this */
            aload 6 /* itr */
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast sun.jvm.hotspot.oops.Field
            aload 1 /* instance */
            invokevirtual sun.jvm.hotspot.utilities.HeapHprofBinWriter.writeField:(Lsun/jvm/hotspot/oops/Field;Lsun/jvm/hotspot/oops/Oop;)V
        16: .line 945
      StackMap locals:
      StackMap stack:
            aload 6 /* itr */
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 15
        end local 6 // java.util.Iterator itr
        17: .line 948
            return
        end local 5 // int size
        end local 4 // java.util.List fields
        end local 3 // sun.jvm.hotspot.utilities.HeapHprofBinWriter$ClassData cd
        end local 2 // sun.jvm.hotspot.oops.Klass klass
        end local 1 // sun.jvm.hotspot.oops.Instance instance
        end local 0 // sun.jvm.hotspot.utilities.HeapHprofBinWriter this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   18     0      this  Lsun/jvm/hotspot/utilities/HeapHprofBinWriter;
            0   18     1  instance  Lsun/jvm/hotspot/oops/Instance;
            4   18     2     klass  Lsun/jvm/hotspot/oops/Klass;
            6   18     3        cd  Lsun/jvm/hotspot/utilities/HeapHprofBinWriter$ClassData;
           11   18     4    fields  Ljava/util/List;
           12   18     5      size  I
           14   17     6       itr  Ljava/util/Iterator;
    Exceptions:
      throws java.io.IOException
    MethodParameters:
          Name  Flags
      instance  

  private void writeFieldDescriptors(java.util.List, sun.jvm.hotspot.oops.InstanceKlass);
    descriptor: (Ljava/util/List;Lsun/jvm/hotspot/oops/InstanceKlass;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=8, args_size=3
        start local 0 // sun.jvm.hotspot.utilities.HeapHprofBinWriter this
        start local 1 // java.util.List fields
        start local 2 // sun.jvm.hotspot.oops.InstanceKlass ik
         0: .line 955
            aload 0 /* this */
            getfield sun.jvm.hotspot.utilities.HeapHprofBinWriter.out:Ljava/io/DataOutputStream;
            aload 1 /* fields */
            invokeinterface java.util.List.size:()I
            i2s
            invokevirtual java.io.DataOutputStream.writeShort:(I)V
         1: .line 956
            aload 1 /* fields */
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 3 /* itr */
        start local 3 // java.util.Iterator itr
         2: goto 11
         3: .line 957
      StackMap locals: java.util.Iterator
      StackMap stack:
            aload 3 /* itr */
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast sun.jvm.hotspot.oops.Field
            astore 4 /* field */
        start local 4 // sun.jvm.hotspot.oops.Field field
         4: .line 958
            aload 0 /* this */
            getfield sun.jvm.hotspot.utilities.HeapHprofBinWriter.symTbl:Lsun/jvm/hotspot/memory/SymbolTable;
            aload 4 /* field */
            invokevirtual sun.jvm.hotspot.oops.Field.getID:()Lsun/jvm/hotspot/oops/FieldIdentifier;
            invokevirtual sun.jvm.hotspot.oops.FieldIdentifier.getName:()Ljava/lang/String;
            invokevirtual sun.jvm.hotspot.memory.SymbolTable.probe:(Ljava/lang/String;)Lsun/jvm/hotspot/oops/Symbol;
            astore 5 /* name */
        start local 5 // sun.jvm.hotspot.oops.Symbol name
         5: .line 959
            aload 0 /* this */
            aload 5 /* name */
            invokevirtual sun.jvm.hotspot.utilities.HeapHprofBinWriter.writeSymbolID:(Lsun/jvm/hotspot/oops/Symbol;)V
         6: .line 960
            aload 4 /* field */
            invokevirtual sun.jvm.hotspot.oops.Field.getSignature:()Lsun/jvm/hotspot/oops/Symbol;
            lconst_0
            invokevirtual sun.jvm.hotspot.oops.Symbol.getByteAt:(J)B
            i2c
            istore 6 /* typeCode */
        start local 6 // char typeCode
         7: .line 961
            iload 6 /* typeCode */
            invokestatic sun.jvm.hotspot.utilities.HeapHprofBinWriter.signatureToHprofKind:(C)I
            istore 7 /* kind */
        start local 7 // int kind
         8: .line 962
            aload 0 /* this */
            getfield sun.jvm.hotspot.utilities.HeapHprofBinWriter.out:Ljava/io/DataOutputStream;
            iload 7 /* kind */
            i2b
            invokevirtual java.io.DataOutputStream.writeByte:(I)V
         9: .line 963
            aload 2 /* ik */
            ifnull 11
        10: .line 965
            aload 0 /* this */
            aload 4 /* field */
            aload 2 /* ik */
            invokevirtual sun.jvm.hotspot.oops.InstanceKlass.getJavaMirror:()Lsun/jvm/hotspot/oops/Instance;
            invokevirtual sun.jvm.hotspot.utilities.HeapHprofBinWriter.writeField:(Lsun/jvm/hotspot/oops/Field;Lsun/jvm/hotspot/oops/Oop;)V
        end local 7 // int kind
        end local 6 // char typeCode
        end local 5 // sun.jvm.hotspot.oops.Symbol name
        end local 4 // sun.jvm.hotspot.oops.Field field
        11: .line 956
      StackMap locals:
      StackMap stack:
            aload 3 /* itr */
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 3
        end local 3 // java.util.Iterator itr
        12: .line 968
            return
        end local 2 // sun.jvm.hotspot.oops.InstanceKlass ik
        end local 1 // java.util.List fields
        end local 0 // sun.jvm.hotspot.utilities.HeapHprofBinWriter this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   13     0      this  Lsun/jvm/hotspot/utilities/HeapHprofBinWriter;
            0   13     1    fields  Ljava/util/List;
            0   13     2        ik  Lsun/jvm/hotspot/oops/InstanceKlass;
            2   12     3       itr  Ljava/util/Iterator;
            4   11     4     field  Lsun/jvm/hotspot/oops/Field;
            5   11     5      name  Lsun/jvm/hotspot/oops/Symbol;
            7   11     6  typeCode  C
            8   11     7      kind  I
    Exceptions:
      throws java.io.IOException
    MethodParameters:
        Name  Flags
      fields  
      ik      

  public static int signatureToHprofKind(char);
    descriptor: (C)I
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // char ch
         0: .line 971
            iload 0 /* ch */
            lookupswitch { // 10
                   66: 6
                   67: 3
                   68: 5
                   70: 4
                   73: 8
                   74: 9
                   76: 1
                   83: 7
                   90: 2
                   91: 1
              default: 10
          }
         1: .line 974
      StackMap locals:
      StackMap stack:
            iconst_2
            ireturn
         2: .line 976
      StackMap locals:
      StackMap stack:
            iconst_4
            ireturn
         3: .line 978
      StackMap locals:
      StackMap stack:
            iconst_5
            ireturn
         4: .line 980
      StackMap locals:
      StackMap stack:
            bipush 6
            ireturn
         5: .line 982
      StackMap locals:
      StackMap stack:
            bipush 7
            ireturn
         6: .line 984
      StackMap locals:
      StackMap stack:
            bipush 8
            ireturn
         7: .line 986
      StackMap locals:
      StackMap stack:
            bipush 9
            ireturn
         8: .line 988
      StackMap locals:
      StackMap stack:
            bipush 10
            ireturn
         9: .line 990
      StackMap locals:
      StackMap stack:
            bipush 11
            ireturn
        10: .line 992
      StackMap locals:
      StackMap stack:
            new java.lang.RuntimeException
            dup
            ldc "should not reach here"
            invokespecial java.lang.RuntimeException.<init>:(Ljava/lang/String;)V
            athrow
        end local 0 // char ch
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   11     0    ch  C
    MethodParameters:
      Name  Flags
      ch    

  private void writeField(sun.jvm.hotspot.oops.Field, sun.jvm.hotspot.oops.Oop);
    descriptor: (Lsun/jvm/hotspot/oops/Field;Lsun/jvm/hotspot/oops/Oop;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=5, args_size=3
        start local 0 // sun.jvm.hotspot.utilities.HeapHprofBinWriter this
        start local 1 // sun.jvm.hotspot.oops.Field field
        start local 2 // sun.jvm.hotspot.oops.Oop oop
         0: .line 997
            aload 1 /* field */
            invokevirtual sun.jvm.hotspot.oops.Field.getSignature:()Lsun/jvm/hotspot/oops/Symbol;
            lconst_0
            invokevirtual sun.jvm.hotspot.oops.Symbol.getByteAt:(J)B
            i2c
            istore 3 /* typeCode */
        start local 3 // char typeCode
         1: .line 998
            iload 3 /* typeCode */
            lookupswitch { // 10
                   66: 6
                   67: 4
                   68: 16
                   70: 14
                   73: 10
                   74: 12
                   76: 18
                   83: 8
                   90: 2
                   91: 18
              default: 25
          }
         2: .line 1000
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            getfield sun.jvm.hotspot.utilities.HeapHprofBinWriter.out:Ljava/io/DataOutputStream;
            aload 1 /* field */
            checkcast sun.jvm.hotspot.oops.BooleanField
            aload 2 /* oop */
            invokevirtual sun.jvm.hotspot.oops.BooleanField.getValue:(Lsun/jvm/hotspot/oops/Oop;)Z
            invokevirtual java.io.DataOutputStream.writeBoolean:(Z)V
         3: .line 1001
            goto 26
         4: .line 1003
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.jvm.hotspot.utilities.HeapHprofBinWriter.out:Ljava/io/DataOutputStream;
            aload 1 /* field */
            checkcast sun.jvm.hotspot.oops.CharField
            aload 2 /* oop */
            invokevirtual sun.jvm.hotspot.oops.CharField.getValue:(Lsun/jvm/hotspot/oops/Oop;)C
            invokevirtual java.io.DataOutputStream.writeChar:(I)V
         5: .line 1004
            goto 26
         6: .line 1006
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.jvm.hotspot.utilities.HeapHprofBinWriter.out:Ljava/io/DataOutputStream;
            aload 1 /* field */
            checkcast sun.jvm.hotspot.oops.ByteField
            aload 2 /* oop */
            invokevirtual sun.jvm.hotspot.oops.ByteField.getValue:(Lsun/jvm/hotspot/oops/Oop;)B
            invokevirtual java.io.DataOutputStream.writeByte:(I)V
         7: .line 1007
            goto 26
         8: .line 1009
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.jvm.hotspot.utilities.HeapHprofBinWriter.out:Ljava/io/DataOutputStream;
            aload 1 /* field */
            checkcast sun.jvm.hotspot.oops.ShortField
            aload 2 /* oop */
            invokevirtual sun.jvm.hotspot.oops.ShortField.getValue:(Lsun/jvm/hotspot/oops/Oop;)S
            invokevirtual java.io.DataOutputStream.writeShort:(I)V
         9: .line 1010
            goto 26
        10: .line 1012
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.jvm.hotspot.utilities.HeapHprofBinWriter.out:Ljava/io/DataOutputStream;
            aload 1 /* field */
            checkcast sun.jvm.hotspot.oops.IntField
            aload 2 /* oop */
            invokevirtual sun.jvm.hotspot.oops.IntField.getValue:(Lsun/jvm/hotspot/oops/Oop;)I
            invokevirtual java.io.DataOutputStream.writeInt:(I)V
        11: .line 1013
            goto 26
        12: .line 1015
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.jvm.hotspot.utilities.HeapHprofBinWriter.out:Ljava/io/DataOutputStream;
            aload 1 /* field */
            checkcast sun.jvm.hotspot.oops.LongField
            aload 2 /* oop */
            invokevirtual sun.jvm.hotspot.oops.LongField.getValue:(Lsun/jvm/hotspot/oops/Oop;)J
            invokevirtual java.io.DataOutputStream.writeLong:(J)V
        13: .line 1016
            goto 26
        14: .line 1018
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.jvm.hotspot.utilities.HeapHprofBinWriter.out:Ljava/io/DataOutputStream;
            aload 1 /* field */
            checkcast sun.jvm.hotspot.oops.FloatField
            aload 2 /* oop */
            invokevirtual sun.jvm.hotspot.oops.FloatField.getValue:(Lsun/jvm/hotspot/oops/Oop;)F
            invokevirtual java.io.DataOutputStream.writeFloat:(F)V
        15: .line 1019
            goto 26
        16: .line 1021
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.jvm.hotspot.utilities.HeapHprofBinWriter.out:Ljava/io/DataOutputStream;
            aload 1 /* field */
            checkcast sun.jvm.hotspot.oops.DoubleField
            aload 2 /* oop */
            invokevirtual sun.jvm.hotspot.oops.DoubleField.getValue:(Lsun/jvm/hotspot/oops/Oop;)D
            invokevirtual java.io.DataOutputStream.writeDouble:(D)V
        17: .line 1022
            goto 26
        18: .line 1025
      StackMap locals:
      StackMap stack:
            invokestatic sun.jvm.hotspot.runtime.VM.getVM:()Lsun/jvm/hotspot/runtime/VM;
            invokevirtual sun.jvm.hotspot.runtime.VM.isCompressedOopsEnabled:()Z
            ifeq 22
        19: .line 1026
            aload 1 /* field */
            checkcast sun.jvm.hotspot.oops.NarrowOopField
            aload 2 /* oop */
            invokevirtual sun.jvm.hotspot.oops.NarrowOopField.getValueAsOopHandle:(Lsun/jvm/hotspot/oops/Oop;)Lsun/jvm/hotspot/debugger/OopHandle;
            astore 4 /* handle */
        start local 4 // sun.jvm.hotspot.debugger.OopHandle handle
        20: .line 1027
            aload 0 /* this */
            aload 0 /* this */
            aload 4 /* handle */
            invokevirtual sun.jvm.hotspot.utilities.HeapHprofBinWriter.getAddressValue:(Lsun/jvm/hotspot/debugger/Address;)J
            invokevirtual sun.jvm.hotspot.utilities.HeapHprofBinWriter.writeObjectID:(J)V
        end local 4 // sun.jvm.hotspot.debugger.OopHandle handle
        21: .line 1028
            goto 26
        22: .line 1029
      StackMap locals:
      StackMap stack:
            aload 1 /* field */
            checkcast sun.jvm.hotspot.oops.OopField
            aload 2 /* oop */
            invokevirtual sun.jvm.hotspot.oops.OopField.getValueAsOopHandle:(Lsun/jvm/hotspot/oops/Oop;)Lsun/jvm/hotspot/debugger/OopHandle;
            astore 4 /* handle */
        start local 4 // sun.jvm.hotspot.debugger.OopHandle handle
        23: .line 1030
            aload 0 /* this */
            aload 0 /* this */
            aload 4 /* handle */
            invokevirtual sun.jvm.hotspot.utilities.HeapHprofBinWriter.getAddressValue:(Lsun/jvm/hotspot/debugger/Address;)J
            invokevirtual sun.jvm.hotspot.utilities.HeapHprofBinWriter.writeObjectID:(J)V
        end local 4 // sun.jvm.hotspot.debugger.OopHandle handle
        24: .line 1032
            goto 26
        25: .line 1035
      StackMap locals:
      StackMap stack:
            new java.lang.RuntimeException
            dup
            ldc "should not reach here"
            invokespecial java.lang.RuntimeException.<init>:(Ljava/lang/String;)V
            athrow
        26: .line 1037
      StackMap locals:
      StackMap stack:
            return
        end local 3 // char typeCode
        end local 2 // sun.jvm.hotspot.oops.Oop oop
        end local 1 // sun.jvm.hotspot.oops.Field field
        end local 0 // sun.jvm.hotspot.utilities.HeapHprofBinWriter this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   27     0      this  Lsun/jvm/hotspot/utilities/HeapHprofBinWriter;
            0   27     1     field  Lsun/jvm/hotspot/oops/Field;
            0   27     2       oop  Lsun/jvm/hotspot/oops/Oop;
            1   27     3  typeCode  C
           20   21     4    handle  Lsun/jvm/hotspot/debugger/OopHandle;
           23   24     4    handle  Lsun/jvm/hotspot/debugger/OopHandle;
    Exceptions:
      throws java.io.IOException
    MethodParameters:
       Name  Flags
      field  
      oop    

  private void writeHeader(int, int);
    descriptor: (II)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=3, args_size=3
        start local 0 // sun.jvm.hotspot.utilities.HeapHprofBinWriter this
        start local 1 // int tag
        start local 2 // int len
         0: .line 1040
            aload 0 /* this */
            getfield sun.jvm.hotspot.utilities.HeapHprofBinWriter.out:Ljava/io/DataOutputStream;
            iload 1 /* tag */
            i2b
            invokevirtual java.io.DataOutputStream.writeByte:(I)V
         1: .line 1041
            aload 0 /* this */
            getfield sun.jvm.hotspot.utilities.HeapHprofBinWriter.out:Ljava/io/DataOutputStream;
            iconst_0
            invokevirtual java.io.DataOutputStream.writeInt:(I)V
         2: .line 1042
            aload 0 /* this */
            getfield sun.jvm.hotspot.utilities.HeapHprofBinWriter.out:Ljava/io/DataOutputStream;
            iload 2 /* len */
            invokevirtual java.io.DataOutputStream.writeInt:(I)V
         3: .line 1043
            return
        end local 2 // int len
        end local 1 // int tag
        end local 0 // sun.jvm.hotspot.utilities.HeapHprofBinWriter this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Lsun/jvm/hotspot/utilities/HeapHprofBinWriter;
            0    4     1   tag  I
            0    4     2   len  I
    Exceptions:
      throws java.io.IOException
    MethodParameters:
      Name  Flags
      tag   
      len   

  private void writeDummyTrace();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // sun.jvm.hotspot.utilities.HeapHprofBinWriter this
         0: .line 1046
            aload 0 /* this */
            iconst_5
            bipush 12
            invokevirtual sun.jvm.hotspot.utilities.HeapHprofBinWriter.writeHeader:(II)V
         1: .line 1047
            aload 0 /* this */
            getfield sun.jvm.hotspot.utilities.HeapHprofBinWriter.out:Ljava/io/DataOutputStream;
            iconst_1
            invokevirtual java.io.DataOutputStream.writeInt:(I)V
         2: .line 1048
            aload 0 /* this */
            getfield sun.jvm.hotspot.utilities.HeapHprofBinWriter.out:Ljava/io/DataOutputStream;
            iconst_0
            invokevirtual java.io.DataOutputStream.writeInt:(I)V
         3: .line 1049
            aload 0 /* this */
            getfield sun.jvm.hotspot.utilities.HeapHprofBinWriter.out:Ljava/io/DataOutputStream;
            iconst_0
            invokevirtual java.io.DataOutputStream.writeInt:(I)V
         4: .line 1050
            return
        end local 0 // sun.jvm.hotspot.utilities.HeapHprofBinWriter this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0  this  Lsun/jvm/hotspot/utilities/HeapHprofBinWriter;
    Exceptions:
      throws java.io.IOException

  private void writeSymbols();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=2, args_size=1
        start local 0 // sun.jvm.hotspot.utilities.HeapHprofBinWriter this
         0: .line 1054
            aload 0 /* this */
            getfield sun.jvm.hotspot.utilities.HeapHprofBinWriter.symTbl:Lsun/jvm/hotspot/memory/SymbolTable;
            new sun.jvm.hotspot.utilities.HeapHprofBinWriter$3
            dup
            aload 0 /* this */
            invokespecial sun.jvm.hotspot.utilities.HeapHprofBinWriter$3.<init>:(Lsun/jvm/hotspot/utilities/HeapHprofBinWriter;)V
            invokevirtual sun.jvm.hotspot.memory.SymbolTable.symbolsDo:(Lsun/jvm/hotspot/memory/SymbolTable$SymbolVisitor;)V
         1: .line 1063
            goto 4
      StackMap locals:
      StackMap stack: java.lang.RuntimeException
         2: astore 1 /* re */
        start local 1 // java.lang.RuntimeException re
         3: .line 1064
            aload 0 /* this */
            aload 1 /* re */
            invokevirtual sun.jvm.hotspot.utilities.HeapHprofBinWriter.handleRuntimeException:(Ljava/lang/RuntimeException;)V
        end local 1 // java.lang.RuntimeException re
         4: .line 1066
      StackMap locals:
      StackMap stack:
            return
        end local 0 // sun.jvm.hotspot.utilities.HeapHprofBinWriter this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0  this  Lsun/jvm/hotspot/utilities/HeapHprofBinWriter;
            3    4     1    re  Ljava/lang/RuntimeException;
      Exception table:
        from    to  target  type
           0     1       2  Class java.lang.RuntimeException
    Exceptions:
      throws java.io.IOException

  private void writeSymbol(sun.jvm.hotspot.oops.Symbol);
    descriptor: (Lsun/jvm/hotspot/oops/Symbol;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=3, args_size=2
        start local 0 // sun.jvm.hotspot.utilities.HeapHprofBinWriter this
        start local 1 // sun.jvm.hotspot.oops.Symbol sym
         0: .line 1069
            aload 1 /* sym */
            invokevirtual sun.jvm.hotspot.oops.Symbol.asString:()Ljava/lang/String;
            ldc "UTF-8"
            invokevirtual java.lang.String.getBytes:(Ljava/lang/String;)[B
            astore 2 /* buf */
        start local 2 // byte[] buf
         1: .line 1070
            aload 0 /* this */
            iconst_1
            aload 2 /* buf */
            arraylength
            aload 0 /* this */
            getfield sun.jvm.hotspot.utilities.HeapHprofBinWriter.OBJ_ID_SIZE:I
            iadd
            invokevirtual sun.jvm.hotspot.utilities.HeapHprofBinWriter.writeHeader:(II)V
         2: .line 1071
            aload 0 /* this */
            aload 1 /* sym */
            invokevirtual sun.jvm.hotspot.utilities.HeapHprofBinWriter.writeSymbolID:(Lsun/jvm/hotspot/oops/Symbol;)V
         3: .line 1072
            aload 0 /* this */
            getfield sun.jvm.hotspot.utilities.HeapHprofBinWriter.out:Ljava/io/DataOutputStream;
            aload 2 /* buf */
            invokevirtual java.io.DataOutputStream.write:([B)V
         4: .line 1073
            return
        end local 2 // byte[] buf
        end local 1 // sun.jvm.hotspot.oops.Symbol sym
        end local 0 // sun.jvm.hotspot.utilities.HeapHprofBinWriter this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0  this  Lsun/jvm/hotspot/utilities/HeapHprofBinWriter;
            0    5     1   sym  Lsun/jvm/hotspot/oops/Symbol;
            1    5     2   buf  [B
    Exceptions:
      throws java.io.IOException
    MethodParameters:
      Name  Flags
      sym   

  private void writeClasses();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=3, args_size=1
        start local 0 // sun.jvm.hotspot.utilities.HeapHprofBinWriter this
         0: .line 1077
            invokestatic sun.jvm.hotspot.runtime.VM.getVM:()Lsun/jvm/hotspot/runtime/VM;
            invokevirtual sun.jvm.hotspot.runtime.VM.getClassLoaderDataGraph:()Lsun/jvm/hotspot/classfile/ClassLoaderDataGraph;
            astore 1 /* cldGraph */
        start local 1 // sun.jvm.hotspot.classfile.ClassLoaderDataGraph cldGraph
         1: .line 1079
            aload 1 /* cldGraph */
            new sun.jvm.hotspot.utilities.HeapHprofBinWriter$4
            dup
            aload 0 /* this */
            invokespecial sun.jvm.hotspot.utilities.HeapHprofBinWriter$4.<init>:(Lsun/jvm/hotspot/utilities/HeapHprofBinWriter;)V
            invokevirtual sun.jvm.hotspot.classfile.ClassLoaderDataGraph.classesDo:(Lsun/jvm/hotspot/classfile/ClassLoaderDataGraph$ClassVisitor;)V
         2: .line 1095
            goto 5
      StackMap locals: sun.jvm.hotspot.utilities.HeapHprofBinWriter sun.jvm.hotspot.classfile.ClassLoaderDataGraph
      StackMap stack: java.lang.RuntimeException
         3: astore 2 /* re */
        start local 2 // java.lang.RuntimeException re
         4: .line 1096
            aload 0 /* this */
            aload 2 /* re */
            invokevirtual sun.jvm.hotspot.utilities.HeapHprofBinWriter.handleRuntimeException:(Ljava/lang/RuntimeException;)V
        end local 2 // java.lang.RuntimeException re
         5: .line 1098
      StackMap locals:
      StackMap stack:
            return
        end local 1 // sun.jvm.hotspot.classfile.ClassLoaderDataGraph cldGraph
        end local 0 // sun.jvm.hotspot.utilities.HeapHprofBinWriter this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    6     0      this  Lsun/jvm/hotspot/utilities/HeapHprofBinWriter;
            1    6     1  cldGraph  Lsun/jvm/hotspot/classfile/ClassLoaderDataGraph;
            4    5     2        re  Ljava/lang/RuntimeException;
      Exception table:
        from    to  target  type
           1     2       3  Class java.lang.RuntimeException
    Exceptions:
      throws java.io.IOException

  private void writeFileHeader();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // sun.jvm.hotspot.utilities.HeapHprofBinWriter this
         0: .line 1103
            aload 0 /* this */
            getfield sun.jvm.hotspot.utilities.HeapHprofBinWriter.out:Ljava/io/DataOutputStream;
            ldc "JAVA PROFILE 1.0.2"
            invokevirtual java.io.DataOutputStream.writeBytes:(Ljava/lang/String;)V
         1: .line 1104
            aload 0 /* this */
            getfield sun.jvm.hotspot.utilities.HeapHprofBinWriter.out:Ljava/io/DataOutputStream;
            iconst_0
            invokevirtual java.io.DataOutputStream.writeByte:(I)V
         2: .line 1107
            aload 0 /* this */
            getfield sun.jvm.hotspot.utilities.HeapHprofBinWriter.out:Ljava/io/DataOutputStream;
            aload 0 /* this */
            getfield sun.jvm.hotspot.utilities.HeapHprofBinWriter.OBJ_ID_SIZE:I
            invokevirtual java.io.DataOutputStream.writeInt:(I)V
         3: .line 1110
            aload 0 /* this */
            getfield sun.jvm.hotspot.utilities.HeapHprofBinWriter.out:Ljava/io/DataOutputStream;
            invokestatic java.lang.System.currentTimeMillis:()J
            invokevirtual java.io.DataOutputStream.writeLong:(J)V
         4: .line 1111
            return
        end local 0 // sun.jvm.hotspot.utilities.HeapHprofBinWriter this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0  this  Lsun/jvm/hotspot/utilities/HeapHprofBinWriter;
    Exceptions:
      throws java.io.IOException

  private void writeObjectID(sun.jvm.hotspot.oops.Oop);
    descriptor: (Lsun/jvm/hotspot/oops/Oop;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=5, args_size=2
        start local 0 // sun.jvm.hotspot.utilities.HeapHprofBinWriter this
        start local 1 // sun.jvm.hotspot.oops.Oop oop
         0: .line 1115
            aload 1 /* oop */
            ifnull 1
            aload 1 /* oop */
            invokevirtual sun.jvm.hotspot.oops.Oop.getHandle:()Lsun/jvm/hotspot/debugger/OopHandle;
            goto 2
      StackMap locals:
      StackMap stack:
         1: aconst_null
      StackMap locals:
      StackMap stack: sun.jvm.hotspot.debugger.OopHandle
         2: astore 2 /* handle */
        start local 2 // sun.jvm.hotspot.debugger.OopHandle handle
         3: .line 1116
            aload 0 /* this */
            aload 2 /* handle */
            invokevirtual sun.jvm.hotspot.utilities.HeapHprofBinWriter.getAddressValue:(Lsun/jvm/hotspot/debugger/Address;)J
            lstore 3 /* address */
        start local 3 // long address
         4: .line 1117
            aload 0 /* this */
            lload 3 /* address */
            invokevirtual sun.jvm.hotspot.utilities.HeapHprofBinWriter.writeObjectID:(J)V
         5: .line 1118
            return
        end local 3 // long address
        end local 2 // sun.jvm.hotspot.debugger.OopHandle handle
        end local 1 // sun.jvm.hotspot.oops.Oop oop
        end local 0 // sun.jvm.hotspot.utilities.HeapHprofBinWriter this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    6     0     this  Lsun/jvm/hotspot/utilities/HeapHprofBinWriter;
            0    6     1      oop  Lsun/jvm/hotspot/oops/Oop;
            3    6     2   handle  Lsun/jvm/hotspot/debugger/OopHandle;
            4    6     3  address  J
    Exceptions:
      throws java.io.IOException
    MethodParameters:
      Name  Flags
      oop   

  private void writeSymbolID(sun.jvm.hotspot.oops.Symbol);
    descriptor: (Lsun/jvm/hotspot/oops/Symbol;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // sun.jvm.hotspot.utilities.HeapHprofBinWriter this
        start local 1 // sun.jvm.hotspot.oops.Symbol sym
         0: .line 1121
            aload 0 /* this */
            aload 0 /* this */
            aload 1 /* sym */
            invokevirtual sun.jvm.hotspot.oops.Symbol.getAddress:()Lsun/jvm/hotspot/debugger/Address;
            invokevirtual sun.jvm.hotspot.utilities.HeapHprofBinWriter.getAddressValue:(Lsun/jvm/hotspot/debugger/Address;)J
            invokevirtual sun.jvm.hotspot.utilities.HeapHprofBinWriter.writeObjectID:(J)V
         1: .line 1122
            return
        end local 1 // sun.jvm.hotspot.oops.Symbol sym
        end local 0 // sun.jvm.hotspot.utilities.HeapHprofBinWriter this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lsun/jvm/hotspot/utilities/HeapHprofBinWriter;
            0    2     1   sym  Lsun/jvm/hotspot/oops/Symbol;
    Exceptions:
      throws java.io.IOException
    MethodParameters:
      Name  Flags
      sym   

  private void writeObjectID(long);
    descriptor: (J)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // sun.jvm.hotspot.utilities.HeapHprofBinWriter this
        start local 1 // long address
         0: .line 1125
            aload 0 /* this */
            getfield sun.jvm.hotspot.utilities.HeapHprofBinWriter.OBJ_ID_SIZE:I
            iconst_4
            if_icmpne 3
         1: .line 1126
            aload 0 /* this */
            getfield sun.jvm.hotspot.utilities.HeapHprofBinWriter.out:Ljava/io/DataOutputStream;
            lload 1 /* address */
            l2i
            invokevirtual java.io.DataOutputStream.writeInt:(I)V
         2: .line 1127
            goto 4
         3: .line 1128
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.jvm.hotspot.utilities.HeapHprofBinWriter.out:Ljava/io/DataOutputStream;
            lload 1 /* address */
            invokevirtual java.io.DataOutputStream.writeLong:(J)V
         4: .line 1130
      StackMap locals:
      StackMap stack:
            return
        end local 1 // long address
        end local 0 // sun.jvm.hotspot.utilities.HeapHprofBinWriter this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    5     0     this  Lsun/jvm/hotspot/utilities/HeapHprofBinWriter;
            0    5     1  address  J
    Exceptions:
      throws java.io.IOException
    MethodParameters:
         Name  Flags
      address  

  private long getAddressValue(sun.jvm.hotspot.debugger.Address);
    descriptor: (Lsun/jvm/hotspot/debugger/Address;)J
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // sun.jvm.hotspot.utilities.HeapHprofBinWriter this
        start local 1 // sun.jvm.hotspot.debugger.Address addr
         0: .line 1133
            aload 1 /* addr */
            ifnonnull 1
            lconst_0
            goto 2
      StackMap locals:
      StackMap stack:
         1: aload 0 /* this */
            getfield sun.jvm.hotspot.utilities.HeapHprofBinWriter.dbg:Lsun/jvm/hotspot/debugger/Debugger;
            aload 1 /* addr */
            invokeinterface sun.jvm.hotspot.debugger.Debugger.getAddressValue:(Lsun/jvm/hotspot/debugger/Address;)J
      StackMap locals:
      StackMap stack: long
         2: lreturn
        end local 1 // sun.jvm.hotspot.debugger.Address addr
        end local 0 // sun.jvm.hotspot.utilities.HeapHprofBinWriter this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lsun/jvm/hotspot/utilities/HeapHprofBinWriter;
            0    3     1  addr  Lsun/jvm/hotspot/debugger/Address;
    MethodParameters:
      Name  Flags
      addr  

  private static java.util.List getInstanceFields(sun.jvm.hotspot.oops.InstanceKlass);
    descriptor: (Lsun/jvm/hotspot/oops/InstanceKlass;)Ljava/util/List;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=6, args_size=1
        start local 0 // sun.jvm.hotspot.oops.InstanceKlass ik
         0: .line 1138
            aload 0 /* ik */
            astore 1 /* klass */
        start local 1 // sun.jvm.hotspot.oops.InstanceKlass klass
         1: .line 1139
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 2 /* res */
        start local 2 // java.util.List res
         2: .line 1140
            goto 11
         3: .line 1141
      StackMap locals: sun.jvm.hotspot.oops.InstanceKlass java.util.List
      StackMap stack:
            aload 1 /* klass */
            invokevirtual sun.jvm.hotspot.oops.InstanceKlass.getImmediateFields:()Ljava/util/List;
            astore 3 /* curFields */
        start local 3 // java.util.List curFields
         4: .line 1142
            aload 3 /* curFields */
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 4 /* itr */
        start local 4 // java.util.Iterator itr
         5: goto 9
         6: .line 1143
      StackMap locals: java.util.List java.util.Iterator
      StackMap stack:
            aload 4 /* itr */
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast sun.jvm.hotspot.oops.Field
            astore 5 /* f */
        start local 5 // sun.jvm.hotspot.oops.Field f
         7: .line 1144
            aload 5 /* f */
            invokevirtual sun.jvm.hotspot.oops.Field.isStatic:()Z
            ifne 9
         8: .line 1145
            aload 2 /* res */
            aload 5 /* f */
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        end local 5 // sun.jvm.hotspot.oops.Field f
         9: .line 1142
      StackMap locals:
      StackMap stack:
            aload 4 /* itr */
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 6
        end local 4 // java.util.Iterator itr
        10: .line 1148
            aload 1 /* klass */
            invokevirtual sun.jvm.hotspot.oops.InstanceKlass.getSuper:()Lsun/jvm/hotspot/oops/Klass;
            checkcast sun.jvm.hotspot.oops.InstanceKlass
            astore 1 /* klass */
        end local 3 // java.util.List curFields
        11: .line 1140
      StackMap locals:
      StackMap stack:
            aload 1 /* klass */
            ifnonnull 3
        12: .line 1150
            aload 2 /* res */
            areturn
        end local 2 // java.util.List res
        end local 1 // sun.jvm.hotspot.oops.InstanceKlass klass
        end local 0 // sun.jvm.hotspot.oops.InstanceKlass ik
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   13     0         ik  Lsun/jvm/hotspot/oops/InstanceKlass;
            1   13     1      klass  Lsun/jvm/hotspot/oops/InstanceKlass;
            2   13     2        res  Ljava/util/List;
            4   11     3  curFields  Ljava/util/List;
            5   10     4        itr  Ljava/util/Iterator;
            7    9     5          f  Lsun/jvm/hotspot/oops/Field;
    MethodParameters:
      Name  Flags
      ik    

  private int getSizeForFields(java.util.List);
    descriptor: (Ljava/util/List;)I
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=6, args_size=2
        start local 0 // sun.jvm.hotspot.utilities.HeapHprofBinWriter this
        start local 1 // java.util.List fields
         0: .line 1157
            iconst_0
            istore 2 /* size */
        start local 2 // int size
         1: .line 1158
            aload 1 /* fields */
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 3 /* itr */
        start local 3 // java.util.Iterator itr
         2: goto 17
         3: .line 1159
      StackMap locals: int java.util.Iterator
      StackMap stack:
            aload 3 /* itr */
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast sun.jvm.hotspot.oops.Field
            astore 4 /* field */
        start local 4 // sun.jvm.hotspot.oops.Field field
         4: .line 1160
            aload 4 /* field */
            invokevirtual sun.jvm.hotspot.oops.Field.getSignature:()Lsun/jvm/hotspot/oops/Symbol;
            lconst_0
            invokevirtual sun.jvm.hotspot.oops.Symbol.getByteAt:(J)B
            i2c
            istore 5 /* typeCode */
        start local 5 // char typeCode
         5: .line 1161
            iload 5 /* typeCode */
            lookupswitch { // 10
                   66: 6
                   67: 8
                   68: 14
                   70: 10
                   73: 10
                   74: 14
                   76: 12
                   83: 8
                   90: 6
                   91: 12
              default: 16
          }
         6: .line 1164
      StackMap locals: sun.jvm.hotspot.oops.Field int
      StackMap stack:
            iinc 2 /* size */ 1
         7: .line 1165
            goto 17
         8: .line 1168
      StackMap locals:
      StackMap stack:
            iinc 2 /* size */ 2
         9: .line 1169
            goto 17
        10: .line 1172
      StackMap locals:
      StackMap stack:
            iinc 2 /* size */ 4
        11: .line 1173
            goto 17
        12: .line 1176
      StackMap locals:
      StackMap stack:
            iload 2 /* size */
            aload 0 /* this */
            getfield sun.jvm.hotspot.utilities.HeapHprofBinWriter.OBJ_ID_SIZE:I
            iadd
            istore 2 /* size */
        13: .line 1177
            goto 17
        14: .line 1180
      StackMap locals:
      StackMap stack:
            iinc 2 /* size */ 8
        15: .line 1181
            goto 17
        16: .line 1183
      StackMap locals:
      StackMap stack:
            new java.lang.RuntimeException
            dup
            ldc "should not reach here"
            invokespecial java.lang.RuntimeException.<init>:(Ljava/lang/String;)V
            athrow
        end local 5 // char typeCode
        end local 4 // sun.jvm.hotspot.oops.Field field
        17: .line 1158
      StackMap locals:
      StackMap stack:
            aload 3 /* itr */
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 3
        end local 3 // java.util.Iterator itr
        18: .line 1186
            iload 2 /* size */
            ireturn
        end local 2 // int size
        end local 1 // java.util.List fields
        end local 0 // sun.jvm.hotspot.utilities.HeapHprofBinWriter this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   19     0      this  Lsun/jvm/hotspot/utilities/HeapHprofBinWriter;
            0   19     1    fields  Ljava/util/List;
            1   19     2      size  I
            2   18     3       itr  Ljava/util/Iterator;
            4   17     4     field  Lsun/jvm/hotspot/oops/Field;
            5   17     5  typeCode  C
    MethodParameters:
        Name  Flags
      fields  
}
SourceFile: "HeapHprofBinWriter.java"
NestMembers:
  sun.jvm.hotspot.utilities.HeapHprofBinWriter$1  sun.jvm.hotspot.utilities.HeapHprofBinWriter$2  sun.jvm.hotspot.utilities.HeapHprofBinWriter$3  sun.jvm.hotspot.utilities.HeapHprofBinWriter$4  sun.jvm.hotspot.utilities.HeapHprofBinWriter$ClassData
InnerClasses:
  public abstract ClassVisitor = sun.jvm.hotspot.classfile.ClassLoaderDataGraph$ClassVisitor of sun.jvm.hotspot.classfile.ClassLoaderDataGraph
  public abstract SymbolVisitor = sun.jvm.hotspot.memory.SymbolTable$SymbolVisitor of sun.jvm.hotspot.memory.SymbolTable
  sun.jvm.hotspot.utilities.HeapHprofBinWriter$1
  sun.jvm.hotspot.utilities.HeapHprofBinWriter$2
  sun.jvm.hotspot.utilities.HeapHprofBinWriter$3
  sun.jvm.hotspot.utilities.HeapHprofBinWriter$4
  private ClassData = sun.jvm.hotspot.utilities.HeapHprofBinWriter$ClassData of sun.jvm.hotspot.utilities.HeapHprofBinWriter