final class sun.security.ssl.SSLEngineOutputRecord$HandshakeFragment
  minor version: 0
  major version: 59
  flags: flags: (0x0030) ACC_FINAL, ACC_SUPER
  this_class: sun.security.ssl.SSLEngineOutputRecord$HandshakeFragment
  super_class: java.lang.Object
{
  private java.util.LinkedList<sun.security.ssl.SSLEngineOutputRecord$RecordMemo> handshakeMemos;
    descriptor: Ljava/util/LinkedList;
    flags: (0x0002) ACC_PRIVATE
    Signature: Ljava/util/LinkedList<Lsun/security/ssl/SSLEngineOutputRecord$RecordMemo;>;

  final sun.security.ssl.SSLEngineOutputRecord this$0;
    descriptor: Lsun/security/ssl/SSLEngineOutputRecord;
    flags: (0x1010) ACC_FINAL, ACC_SYNTHETIC

  void <init>(sun.security.ssl.SSLEngineOutputRecord);
    descriptor: (Lsun/security/ssl/SSLEngineOutputRecord;)V
    flags: (0x0000) 
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // sun.security.ssl.SSLEngineOutputRecord$HandshakeFragment this
         0: .line 373
            aload 0 /* this */
            aload 1
            putfield sun.security.ssl.SSLEngineOutputRecord$HandshakeFragment.this$0:Lsun/security/ssl/SSLEngineOutputRecord;
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 374
            aload 0 /* this */
            new java.util.LinkedList
            dup
            invokespecial java.util.LinkedList.<init>:()V
            putfield sun.security.ssl.SSLEngineOutputRecord$HandshakeFragment.handshakeMemos:Ljava/util/LinkedList;
         2: .line 373
            return
        end local 0 // sun.security.ssl.SSLEngineOutputRecord$HandshakeFragment this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lsun/security/ssl/SSLEngineOutputRecord$HandshakeFragment;
    MethodParameters:
        Name  Flags
      this$0  final

  void queueUpFragment(byte[], int, int);
    descriptor: ([BII)V
    flags: (0x0000) 
    Code:
      stack=6, locals=5, args_size=4
        start local 0 // sun.security.ssl.SSLEngineOutputRecord$HandshakeFragment this
        start local 1 // byte[] source
        start local 2 // int offset
        start local 3 // int length
         0: .line 378
            new sun.security.ssl.SSLEngineOutputRecord$HandshakeMemo
            dup
            invokespecial sun.security.ssl.SSLEngineOutputRecord$HandshakeMemo.<init>:()V
            astore 4 /* memo */
        start local 4 // sun.security.ssl.SSLEngineOutputRecord$HandshakeMemo memo
         1: .line 380
            aload 4 /* memo */
            getstatic sun.security.ssl.ContentType.HANDSHAKE:Lsun/security/ssl/ContentType;
            getfield sun.security.ssl.ContentType.id:B
            putfield sun.security.ssl.SSLEngineOutputRecord$HandshakeMemo.contentType:B
         2: .line 381
            aload 4 /* memo */
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineOutputRecord$HandshakeFragment.this$0:Lsun/security/ssl/SSLEngineOutputRecord;
            getfield sun.security.ssl.SSLEngineOutputRecord.protocolVersion:Lsun/security/ssl/ProtocolVersion;
            getfield sun.security.ssl.ProtocolVersion.major:B
            putfield sun.security.ssl.SSLEngineOutputRecord$HandshakeMemo.majorVersion:B
         3: .line 382
            aload 4 /* memo */
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineOutputRecord$HandshakeFragment.this$0:Lsun/security/ssl/SSLEngineOutputRecord;
            getfield sun.security.ssl.SSLEngineOutputRecord.protocolVersion:Lsun/security/ssl/ProtocolVersion;
            getfield sun.security.ssl.ProtocolVersion.minor:B
            putfield sun.security.ssl.SSLEngineOutputRecord$HandshakeMemo.minorVersion:B
         4: .line 383
            aload 4 /* memo */
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineOutputRecord$HandshakeFragment.this$0:Lsun/security/ssl/SSLEngineOutputRecord;
            getfield sun.security.ssl.SSLEngineOutputRecord.writeCipher:Lsun/security/ssl/SSLCipher$SSLWriteCipher;
            putfield sun.security.ssl.SSLEngineOutputRecord$HandshakeMemo.encodeCipher:Lsun/security/ssl/SSLCipher$SSLWriteCipher;
         5: .line 385
            aload 4 /* memo */
            aload 1 /* source */
            iload 2 /* offset */
            baload
            putfield sun.security.ssl.SSLEngineOutputRecord$HandshakeMemo.handshakeType:B
         6: .line 386
            aload 4 /* memo */
            iconst_0
            putfield sun.security.ssl.SSLEngineOutputRecord$HandshakeMemo.acquireOffset:I
         7: .line 387
            aload 4 /* memo */
            iload 3 /* length */
            iconst_4
            isub
            newarray 8
            putfield sun.security.ssl.SSLEngineOutputRecord$HandshakeMemo.fragment:[B
         8: .line 390
            aload 1 /* source */
            iload 2 /* offset */
            iconst_4
            iadd
            aload 4 /* memo */
            getfield sun.security.ssl.SSLEngineOutputRecord$HandshakeMemo.fragment:[B
            iconst_0
            iload 3 /* length */
            iconst_4
            isub
            invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
         9: .line 392
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineOutputRecord$HandshakeFragment.handshakeMemos:Ljava/util/LinkedList;
            aload 4 /* memo */
            invokevirtual java.util.LinkedList.add:(Ljava/lang/Object;)Z
            pop
        10: .line 393
            return
        end local 4 // sun.security.ssl.SSLEngineOutputRecord$HandshakeMemo memo
        end local 3 // int length
        end local 2 // int offset
        end local 1 // byte[] source
        end local 0 // sun.security.ssl.SSLEngineOutputRecord$HandshakeFragment this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   11     0    this  Lsun/security/ssl/SSLEngineOutputRecord$HandshakeFragment;
            0   11     1  source  [B
            0   11     2  offset  I
            0   11     3  length  I
            1   11     4    memo  Lsun/security/ssl/SSLEngineOutputRecord$HandshakeMemo;
    Exceptions:
      throws java.io.IOException
    MethodParameters:
        Name  Flags
      source  
      offset  
      length  

  void queueUpChangeCipherSpec();
    descriptor: ()V
    flags: (0x0000) 
    Code:
      stack=3, locals=2, args_size=1
        start local 0 // sun.security.ssl.SSLEngineOutputRecord$HandshakeFragment this
         0: .line 396
            new sun.security.ssl.SSLEngineOutputRecord$RecordMemo
            dup
            invokespecial sun.security.ssl.SSLEngineOutputRecord$RecordMemo.<init>:()V
            astore 1 /* memo */
        start local 1 // sun.security.ssl.SSLEngineOutputRecord$RecordMemo memo
         1: .line 398
            aload 1 /* memo */
            getstatic sun.security.ssl.ContentType.CHANGE_CIPHER_SPEC:Lsun/security/ssl/ContentType;
            getfield sun.security.ssl.ContentType.id:B
            putfield sun.security.ssl.SSLEngineOutputRecord$RecordMemo.contentType:B
         2: .line 399
            aload 1 /* memo */
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineOutputRecord$HandshakeFragment.this$0:Lsun/security/ssl/SSLEngineOutputRecord;
            getfield sun.security.ssl.SSLEngineOutputRecord.protocolVersion:Lsun/security/ssl/ProtocolVersion;
            getfield sun.security.ssl.ProtocolVersion.major:B
            putfield sun.security.ssl.SSLEngineOutputRecord$RecordMemo.majorVersion:B
         3: .line 400
            aload 1 /* memo */
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineOutputRecord$HandshakeFragment.this$0:Lsun/security/ssl/SSLEngineOutputRecord;
            getfield sun.security.ssl.SSLEngineOutputRecord.protocolVersion:Lsun/security/ssl/ProtocolVersion;
            getfield sun.security.ssl.ProtocolVersion.minor:B
            putfield sun.security.ssl.SSLEngineOutputRecord$RecordMemo.minorVersion:B
         4: .line 401
            aload 1 /* memo */
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineOutputRecord$HandshakeFragment.this$0:Lsun/security/ssl/SSLEngineOutputRecord;
            getfield sun.security.ssl.SSLEngineOutputRecord.writeCipher:Lsun/security/ssl/SSLCipher$SSLWriteCipher;
            putfield sun.security.ssl.SSLEngineOutputRecord$RecordMemo.encodeCipher:Lsun/security/ssl/SSLCipher$SSLWriteCipher;
         5: .line 403
            aload 1 /* memo */
            iconst_1
            newarray 8
            putfield sun.security.ssl.SSLEngineOutputRecord$RecordMemo.fragment:[B
         6: .line 404
            aload 1 /* memo */
            getfield sun.security.ssl.SSLEngineOutputRecord$RecordMemo.fragment:[B
            iconst_0
            iconst_1
            bastore
         7: .line 406
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineOutputRecord$HandshakeFragment.handshakeMemos:Ljava/util/LinkedList;
            aload 1 /* memo */
            invokevirtual java.util.LinkedList.add:(Ljava/lang/Object;)Z
            pop
         8: .line 407
            return
        end local 1 // sun.security.ssl.SSLEngineOutputRecord$RecordMemo memo
        end local 0 // sun.security.ssl.SSLEngineOutputRecord$HandshakeFragment this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    9     0  this  Lsun/security/ssl/SSLEngineOutputRecord$HandshakeFragment;
            1    9     1  memo  Lsun/security/ssl/SSLEngineOutputRecord$RecordMemo;

  void queueUpAlert(byte, byte);
    descriptor: (BB)V
    flags: (0x0000) 
    Code:
      stack=3, locals=4, args_size=3
        start local 0 // sun.security.ssl.SSLEngineOutputRecord$HandshakeFragment this
        start local 1 // byte level
        start local 2 // byte description
         0: .line 410
            new sun.security.ssl.SSLEngineOutputRecord$RecordMemo
            dup
            invokespecial sun.security.ssl.SSLEngineOutputRecord$RecordMemo.<init>:()V
            astore 3 /* memo */
        start local 3 // sun.security.ssl.SSLEngineOutputRecord$RecordMemo memo
         1: .line 412
            aload 3 /* memo */
            getstatic sun.security.ssl.ContentType.ALERT:Lsun/security/ssl/ContentType;
            getfield sun.security.ssl.ContentType.id:B
            putfield sun.security.ssl.SSLEngineOutputRecord$RecordMemo.contentType:B
         2: .line 413
            aload 3 /* memo */
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineOutputRecord$HandshakeFragment.this$0:Lsun/security/ssl/SSLEngineOutputRecord;
            getfield sun.security.ssl.SSLEngineOutputRecord.protocolVersion:Lsun/security/ssl/ProtocolVersion;
            getfield sun.security.ssl.ProtocolVersion.major:B
            putfield sun.security.ssl.SSLEngineOutputRecord$RecordMemo.majorVersion:B
         3: .line 414
            aload 3 /* memo */
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineOutputRecord$HandshakeFragment.this$0:Lsun/security/ssl/SSLEngineOutputRecord;
            getfield sun.security.ssl.SSLEngineOutputRecord.protocolVersion:Lsun/security/ssl/ProtocolVersion;
            getfield sun.security.ssl.ProtocolVersion.minor:B
            putfield sun.security.ssl.SSLEngineOutputRecord$RecordMemo.minorVersion:B
         4: .line 415
            aload 3 /* memo */
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineOutputRecord$HandshakeFragment.this$0:Lsun/security/ssl/SSLEngineOutputRecord;
            getfield sun.security.ssl.SSLEngineOutputRecord.writeCipher:Lsun/security/ssl/SSLCipher$SSLWriteCipher;
            putfield sun.security.ssl.SSLEngineOutputRecord$RecordMemo.encodeCipher:Lsun/security/ssl/SSLCipher$SSLWriteCipher;
         5: .line 417
            aload 3 /* memo */
            iconst_2
            newarray 8
            putfield sun.security.ssl.SSLEngineOutputRecord$RecordMemo.fragment:[B
         6: .line 418
            aload 3 /* memo */
            getfield sun.security.ssl.SSLEngineOutputRecord$RecordMemo.fragment:[B
            iconst_0
            iload 1 /* level */
            bastore
         7: .line 419
            aload 3 /* memo */
            getfield sun.security.ssl.SSLEngineOutputRecord$RecordMemo.fragment:[B
            iconst_1
            iload 2 /* description */
            bastore
         8: .line 421
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineOutputRecord$HandshakeFragment.handshakeMemos:Ljava/util/LinkedList;
            aload 3 /* memo */
            invokevirtual java.util.LinkedList.add:(Ljava/lang/Object;)Z
            pop
         9: .line 422
            return
        end local 3 // sun.security.ssl.SSLEngineOutputRecord$RecordMemo memo
        end local 2 // byte description
        end local 1 // byte level
        end local 0 // sun.security.ssl.SSLEngineOutputRecord$HandshakeFragment this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   10     0         this  Lsun/security/ssl/SSLEngineOutputRecord$HandshakeFragment;
            0   10     1        level  B
            0   10     2  description  B
            1   10     3         memo  Lsun/security/ssl/SSLEngineOutputRecord$RecordMemo;
    MethodParameters:
             Name  Flags
      level        
      description  

  sun.security.ssl.Ciphertext acquireCiphertext(java.nio.ByteBuffer);
    descriptor: (Ljava/nio/ByteBuffer;)Lsun/security/ssl/Ciphertext;
    flags: (0x0000) 
    Code:
      stack=8, locals=12, args_size=2
        start local 0 // sun.security.ssl.SSLEngineOutputRecord$HandshakeFragment this
        start local 1 // java.nio.ByteBuffer dstBuf
         0: .line 425
            aload 0 /* this */
            invokevirtual sun.security.ssl.SSLEngineOutputRecord$HandshakeFragment.isEmpty:()Z
            ifeq 2
         1: .line 426
            aconst_null
            areturn
         2: .line 429
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineOutputRecord$HandshakeFragment.handshakeMemos:Ljava/util/LinkedList;
            invokevirtual java.util.LinkedList.getFirst:()Ljava/lang/Object;
            checkcast sun.security.ssl.SSLEngineOutputRecord$RecordMemo
            astore 2 /* memo */
        start local 2 // sun.security.ssl.SSLEngineOutputRecord$RecordMemo memo
         3: .line 430
            aconst_null
            astore 3 /* hsMemo */
        start local 3 // sun.security.ssl.SSLEngineOutputRecord$HandshakeMemo hsMemo
         4: .line 431
            aload 2 /* memo */
            getfield sun.security.ssl.SSLEngineOutputRecord$RecordMemo.contentType:B
            getstatic sun.security.ssl.ContentType.HANDSHAKE:Lsun/security/ssl/ContentType;
            getfield sun.security.ssl.ContentType.id:B
            if_icmpne 6
         5: .line 432
            aload 2 /* memo */
            checkcast sun.security.ssl.SSLEngineOutputRecord$HandshakeMemo
            astore 3 /* hsMemo */
         6: .line 438
      StackMap locals: sun.security.ssl.SSLEngineOutputRecord$RecordMemo sun.security.ssl.SSLEngineOutputRecord$HandshakeMemo
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineOutputRecord$HandshakeFragment.this$0:Lsun/security/ssl/SSLEngineOutputRecord;
            getfield sun.security.ssl.SSLEngineOutputRecord.packetSize:I
            ifle 12
         7: .line 439
            sipush 16709
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineOutputRecord$HandshakeFragment.this$0:Lsun/security/ssl/SSLEngineOutputRecord;
            getfield sun.security.ssl.SSLEngineOutputRecord.packetSize:I
            invokestatic java.lang.Math.min:(II)I
            istore 4 /* fragLen */
        start local 4 // int fragLen
         8: .line 440
            aload 2 /* memo */
            getfield sun.security.ssl.SSLEngineOutputRecord$RecordMemo.encodeCipher:Lsun/security/ssl/SSLCipher$SSLWriteCipher;
         9: .line 441
            iload 4 /* fragLen */
            iconst_5
        10: .line 440
            invokevirtual sun.security.ssl.SSLCipher$SSLWriteCipher.calculateFragmentSize:(II)I
            istore 4 /* fragLen */
        11: .line 442
            goto 13
        end local 4 // int fragLen
        12: .line 443
      StackMap locals:
      StackMap stack:
            sipush 16384
            istore 4 /* fragLen */
        start local 4 // int fragLen
        13: .line 447
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineOutputRecord$HandshakeFragment.this$0:Lsun/security/ssl/SSLEngineOutputRecord;
            iload 4 /* fragLen */
            invokevirtual sun.security.ssl.SSLEngineOutputRecord.calculateFragmentSize:(I)I
            istore 4 /* fragLen */
        14: .line 449
            aload 1 /* dstBuf */
            invokevirtual java.nio.ByteBuffer.position:()I
            istore 5 /* dstPos */
        start local 5 // int dstPos
        15: .line 450
            aload 1 /* dstBuf */
            invokevirtual java.nio.ByteBuffer.limit:()I
            istore 6 /* dstLim */
        start local 6 // int dstLim
        16: .line 451
            iload 5 /* dstPos */
            iconst_5
            iadd
        17: .line 452
            aload 2 /* memo */
            getfield sun.security.ssl.SSLEngineOutputRecord$RecordMemo.encodeCipher:Lsun/security/ssl/SSLCipher$SSLWriteCipher;
            invokevirtual sun.security.ssl.SSLCipher$SSLWriteCipher.getExplicitNonceSize:()I
        18: .line 451
            iadd
            istore 7 /* dstContent */
        start local 7 // int dstContent
        19: .line 453
            aload 1 /* dstBuf */
            iload 7 /* dstContent */
            invokevirtual java.nio.ByteBuffer.position:(I)Ljava/nio/ByteBuffer;
            pop
        20: .line 455
            aload 3 /* hsMemo */
            ifnull 49
        21: .line 456
            iload 4 /* fragLen */
            istore 8 /* remainingFragLen */
        start local 8 // int remainingFragLen
        22: .line 457
            goto 47
        23: .line 458
      StackMap locals: sun.security.ssl.SSLEngineOutputRecord$HandshakeFragment java.nio.ByteBuffer sun.security.ssl.SSLEngineOutputRecord$RecordMemo sun.security.ssl.SSLEngineOutputRecord$HandshakeMemo int int int int int
      StackMap stack:
            aload 3 /* hsMemo */
            getfield sun.security.ssl.SSLEngineOutputRecord$HandshakeMemo.fragment:[B
            arraylength
            istore 9 /* memoFragLen */
        start local 9 // int memoFragLen
        24: .line 459
            aload 3 /* hsMemo */
            getfield sun.security.ssl.SSLEngineOutputRecord$HandshakeMemo.acquireOffset:I
            ifne 32
        25: .line 461
            iload 8 /* remainingFragLen */
            iconst_4
            if_icmpgt 27
        26: .line 462
            goto 52
        27: .line 465
      StackMap locals: int
      StackMap stack:
            aload 1 /* dstBuf */
            aload 3 /* hsMemo */
            getfield sun.security.ssl.SSLEngineOutputRecord$HandshakeMemo.handshakeType:B
            invokevirtual java.nio.ByteBuffer.put:(B)Ljava/nio/ByteBuffer;
            pop
        28: .line 466
            aload 1 /* dstBuf */
            iload 9 /* memoFragLen */
            bipush 16
            ishr
            sipush 255
            iand
            i2b
            invokevirtual java.nio.ByteBuffer.put:(B)Ljava/nio/ByteBuffer;
            pop
        29: .line 467
            aload 1 /* dstBuf */
            iload 9 /* memoFragLen */
            bipush 8
            ishr
            sipush 255
            iand
            i2b
            invokevirtual java.nio.ByteBuffer.put:(B)Ljava/nio/ByteBuffer;
            pop
        30: .line 468
            aload 1 /* dstBuf */
            iload 9 /* memoFragLen */
            sipush 255
            iand
            i2b
            invokevirtual java.nio.ByteBuffer.put:(B)Ljava/nio/ByteBuffer;
            pop
        31: .line 470
            iinc 8 /* remainingFragLen */ -4
        32: .line 473
      StackMap locals:
      StackMap stack:
            iload 8 /* remainingFragLen */
        33: .line 474
            iload 9 /* memoFragLen */
            aload 3 /* hsMemo */
            getfield sun.security.ssl.SSLEngineOutputRecord$HandshakeMemo.acquireOffset:I
            isub
        34: .line 473
            invokestatic java.lang.Math.min:(II)I
            istore 10 /* chipLen */
        start local 10 // int chipLen
        35: .line 475
            aload 1 /* dstBuf */
            aload 3 /* hsMemo */
            getfield sun.security.ssl.SSLEngineOutputRecord$HandshakeMemo.fragment:[B
            aload 3 /* hsMemo */
            getfield sun.security.ssl.SSLEngineOutputRecord$HandshakeMemo.acquireOffset:I
            iload 10 /* chipLen */
            invokevirtual java.nio.ByteBuffer.put:([BII)Ljava/nio/ByteBuffer;
            pop
        36: .line 477
            aload 3 /* hsMemo */
            dup
            getfield sun.security.ssl.SSLEngineOutputRecord$HandshakeMemo.acquireOffset:I
            iload 10 /* chipLen */
            iadd
            putfield sun.security.ssl.SSLEngineOutputRecord$HandshakeMemo.acquireOffset:I
        37: .line 478
            aload 3 /* hsMemo */
            getfield sun.security.ssl.SSLEngineOutputRecord$HandshakeMemo.acquireOffset:I
            iload 9 /* memoFragLen */
            if_icmpne 45
        38: .line 479
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineOutputRecord$HandshakeFragment.handshakeMemos:Ljava/util/LinkedList;
            invokevirtual java.util.LinkedList.removeFirst:()Ljava/lang/Object;
            pop
        39: .line 482
            iload 8 /* remainingFragLen */
            iload 10 /* chipLen */
            if_icmple 45
        40: .line 483
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineOutputRecord$HandshakeFragment.handshakeMemos:Ljava/util/LinkedList;
            invokevirtual java.util.LinkedList.isEmpty:()Z
            ifne 45
        41: .line 486
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineOutputRecord$HandshakeFragment.handshakeMemos:Ljava/util/LinkedList;
            invokevirtual java.util.LinkedList.getFirst:()Ljava/lang/Object;
            checkcast sun.security.ssl.SSLEngineOutputRecord$RecordMemo
            astore 11 /* rm */
        start local 11 // sun.security.ssl.SSLEngineOutputRecord$RecordMemo rm
        42: .line 487
            aload 11 /* rm */
            getfield sun.security.ssl.SSLEngineOutputRecord$RecordMemo.contentType:B
            getstatic sun.security.ssl.ContentType.HANDSHAKE:Lsun/security/ssl/ContentType;
            getfield sun.security.ssl.ContentType.id:B
            if_icmpne 52
        43: .line 488
            aload 11 /* rm */
            getfield sun.security.ssl.SSLEngineOutputRecord$RecordMemo.encodeCipher:Lsun/security/ssl/SSLCipher$SSLWriteCipher;
            aload 3 /* hsMemo */
            getfield sun.security.ssl.SSLEngineOutputRecord$HandshakeMemo.encodeCipher:Lsun/security/ssl/SSLCipher$SSLWriteCipher;
            if_acmpne 52
        44: .line 489
            aload 11 /* rm */
            checkcast sun.security.ssl.SSLEngineOutputRecord$HandshakeMemo
            astore 3 /* hsMemo */
        end local 11 // sun.security.ssl.SSLEngineOutputRecord$RecordMemo rm
        45: .line 490
      StackMap locals: int
      StackMap stack:
            iload 8 /* remainingFragLen */
        46: .line 497
            iload 10 /* chipLen */
            isub
            istore 8 /* remainingFragLen */
        end local 10 // int chipLen
        end local 9 // int memoFragLen
        47: .line 457
      StackMap locals:
      StackMap stack:
            iload 8 /* remainingFragLen */
            ifle 52
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineOutputRecord$HandshakeFragment.handshakeMemos:Ljava/util/LinkedList;
            invokevirtual java.util.LinkedList.isEmpty:()Z
            ifeq 23
        end local 8 // int remainingFragLen
        48: .line 499
            goto 52
        49: .line 500
      StackMap locals:
      StackMap stack:
            iload 4 /* fragLen */
            aload 2 /* memo */
            getfield sun.security.ssl.SSLEngineOutputRecord$RecordMemo.fragment:[B
            arraylength
            invokestatic java.lang.Math.min:(II)I
            istore 4 /* fragLen */
        50: .line 501
            aload 1 /* dstBuf */
            aload 2 /* memo */
            getfield sun.security.ssl.SSLEngineOutputRecord$RecordMemo.fragment:[B
            iconst_0
            iload 4 /* fragLen */
            invokevirtual java.nio.ByteBuffer.put:([BII)Ljava/nio/ByteBuffer;
            pop
        51: .line 503
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineOutputRecord$HandshakeFragment.handshakeMemos:Ljava/util/LinkedList;
            invokevirtual java.util.LinkedList.removeFirst:()Ljava/lang/Object;
            pop
        52: .line 506
      StackMap locals:
      StackMap stack:
            aload 1 /* dstBuf */
            aload 1 /* dstBuf */
            invokevirtual java.nio.ByteBuffer.position:()I
            invokevirtual java.nio.ByteBuffer.limit:(I)Ljava/nio/ByteBuffer;
            pop
        53: .line 507
            aload 1 /* dstBuf */
            iload 7 /* dstContent */
            invokevirtual java.nio.ByteBuffer.position:(I)Ljava/nio/ByteBuffer;
            pop
        54: .line 509
            getstatic sun.security.ssl.SSLLogger.isOn:Z
            ifeq 60
            ldc "record"
            invokestatic sun.security.ssl.SSLLogger.isOn:(Ljava/lang/String;)Z
            ifeq 60
        55: .line 511
            new java.lang.StringBuilder
            dup
            ldc "WRITE: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineOutputRecord$HandshakeFragment.this$0:Lsun/security/ssl/SSLEngineOutputRecord;
            getfield sun.security.ssl.SSLEngineOutputRecord.protocolVersion:Lsun/security/ssl/ProtocolVersion;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            ldc " "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        56: .line 512
            aload 2 /* memo */
            getfield sun.security.ssl.SSLEngineOutputRecord$RecordMemo.contentType:B
            invokestatic sun.security.ssl.ContentType.nameOf:(B)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        57: .line 513
            ldc ", length = "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 1 /* dstBuf */
            invokevirtual java.nio.ByteBuffer.remaining:()I
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
        58: .line 511
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            iconst_0
            anewarray java.lang.Object
        59: .line 510
            invokestatic sun.security.ssl.SSLLogger.fine:(Ljava/lang/String;[Ljava/lang/Object;)V
        60: .line 518
      StackMap locals:
      StackMap stack:
            aload 2 /* memo */
            getfield sun.security.ssl.SSLEngineOutputRecord$RecordMemo.encodeCipher:Lsun/security/ssl/SSLCipher$SSLWriteCipher;
        61: .line 519
            aload 2 /* memo */
            getfield sun.security.ssl.SSLEngineOutputRecord$RecordMemo.contentType:B
            aload 1 /* dstBuf */
        62: .line 520
            iload 5 /* dstPos */
            iload 6 /* dstLim */
            iconst_5
        63: .line 521
            aload 2 /* memo */
            getfield sun.security.ssl.SSLEngineOutputRecord$RecordMemo.majorVersion:B
        64: .line 522
            aload 2 /* memo */
            getfield sun.security.ssl.SSLEngineOutputRecord$RecordMemo.minorVersion:B
        65: .line 521
            invokestatic sun.security.ssl.ProtocolVersion.valueOf:(BB)Lsun/security/ssl/ProtocolVersion;
        66: .line 517
            invokestatic sun.security.ssl.SSLEngineOutputRecord.encrypt:(Lsun/security/ssl/SSLCipher$SSLWriteCipher;BLjava/nio/ByteBuffer;IIILsun/security/ssl/ProtocolVersion;)J
            lstore 8 /* recordSN */
        start local 8 // long recordSN
        67: .line 524
            getstatic sun.security.ssl.SSLLogger.isOn:Z
            ifeq 72
            ldc "packet"
            invokestatic sun.security.ssl.SSLLogger.isOn:(Ljava/lang/String;)Z
            ifeq 72
        68: .line 525
            aload 1 /* dstBuf */
            invokevirtual java.nio.ByteBuffer.duplicate:()Ljava/nio/ByteBuffer;
            astore 10 /* temporary */
        start local 10 // java.nio.ByteBuffer temporary
        69: .line 526
            aload 10 /* temporary */
            aload 10 /* temporary */
            invokevirtual java.nio.ByteBuffer.position:()I
            invokevirtual java.nio.ByteBuffer.limit:(I)Ljava/nio/ByteBuffer;
            pop
        70: .line 527
            aload 10 /* temporary */
            iload 5 /* dstPos */
            invokevirtual java.nio.ByteBuffer.position:(I)Ljava/nio/ByteBuffer;
            pop
        71: .line 528
            ldc "Raw write"
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            aload 10 /* temporary */
            aastore
            invokestatic sun.security.ssl.SSLLogger.fine:(Ljava/lang/String;[Ljava/lang/Object;)V
        end local 10 // java.nio.ByteBuffer temporary
        72: .line 532
      StackMap locals: long
      StackMap stack:
            aload 1 /* dstBuf */
            iload 6 /* dstLim */
            invokevirtual java.nio.ByteBuffer.limit:(I)Ljava/nio/ByteBuffer;
            pop
        73: .line 535
            aload 3 /* hsMemo */
            ifnull 77
        74: .line 536
            new sun.security.ssl.Ciphertext
            dup
            aload 3 /* hsMemo */
            getfield sun.security.ssl.SSLEngineOutputRecord$HandshakeMemo.contentType:B
        75: .line 537
            aload 3 /* hsMemo */
            getfield sun.security.ssl.SSLEngineOutputRecord$HandshakeMemo.handshakeType:B
            lload 8 /* recordSN */
        76: .line 536
            invokespecial sun.security.ssl.Ciphertext.<init>:(BBJ)V
            areturn
        77: .line 539
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineOutputRecord$HandshakeFragment.this$0:Lsun/security/ssl/SSLEngineOutputRecord;
            getfield sun.security.ssl.SSLEngineOutputRecord.isCloseWaiting:Z
            ifeq 80
        78: .line 540
            aload 2 /* memo */
            getfield sun.security.ssl.SSLEngineOutputRecord$RecordMemo.contentType:B
            getstatic sun.security.ssl.ContentType.ALERT:Lsun/security/ssl/ContentType;
            getfield sun.security.ssl.ContentType.id:B
            if_icmpne 80
        79: .line 541
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineOutputRecord$HandshakeFragment.this$0:Lsun/security/ssl/SSLEngineOutputRecord;
            invokevirtual sun.security.ssl.SSLEngineOutputRecord.close:()V
        80: .line 544
      StackMap locals:
      StackMap stack:
            new sun.security.ssl.Ciphertext
            dup
            aload 2 /* memo */
            getfield sun.security.ssl.SSLEngineOutputRecord$RecordMemo.contentType:B
        81: .line 545
            getstatic sun.security.ssl.SSLHandshake.NOT_APPLICABLE:Lsun/security/ssl/SSLHandshake;
            getfield sun.security.ssl.SSLHandshake.id:B
            lload 8 /* recordSN */
        82: .line 544
            invokespecial sun.security.ssl.Ciphertext.<init>:(BBJ)V
            areturn
        end local 8 // long recordSN
        end local 7 // int dstContent
        end local 6 // int dstLim
        end local 5 // int dstPos
        end local 4 // int fragLen
        end local 3 // sun.security.ssl.SSLEngineOutputRecord$HandshakeMemo hsMemo
        end local 2 // sun.security.ssl.SSLEngineOutputRecord$RecordMemo memo
        end local 1 // java.nio.ByteBuffer dstBuf
        end local 0 // sun.security.ssl.SSLEngineOutputRecord$HandshakeFragment this
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0   83     0              this  Lsun/security/ssl/SSLEngineOutputRecord$HandshakeFragment;
            0   83     1            dstBuf  Ljava/nio/ByteBuffer;
            3   83     2              memo  Lsun/security/ssl/SSLEngineOutputRecord$RecordMemo;
            4   83     3            hsMemo  Lsun/security/ssl/SSLEngineOutputRecord$HandshakeMemo;
            8   12     4           fragLen  I
           13   83     4           fragLen  I
           15   83     5            dstPos  I
           16   83     6            dstLim  I
           19   83     7        dstContent  I
           22   48     8  remainingFragLen  I
           24   47     9       memoFragLen  I
           35   47    10           chipLen  I
           42   45    11                rm  Lsun/security/ssl/SSLEngineOutputRecord$RecordMemo;
           67   83     8          recordSN  J
           69   72    10         temporary  Ljava/nio/ByteBuffer;
    Exceptions:
      throws java.io.IOException
    MethodParameters:
        Name  Flags
      dstBuf  

  boolean isEmpty();
    descriptor: ()Z
    flags: (0x0000) 
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // sun.security.ssl.SSLEngineOutputRecord$HandshakeFragment this
         0: .line 550
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineOutputRecord$HandshakeFragment.handshakeMemos:Ljava/util/LinkedList;
            invokevirtual java.util.LinkedList.isEmpty:()Z
            ireturn
        end local 0 // sun.security.ssl.SSLEngineOutputRecord$HandshakeFragment this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lsun/security/ssl/SSLEngineOutputRecord$HandshakeFragment;

  boolean hasAlert();
    descriptor: ()Z
    flags: (0x0000) 
    Code:
      stack=2, locals=3, args_size=1
        start local 0 // sun.security.ssl.SSLEngineOutputRecord$HandshakeFragment this
         0: .line 554
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineOutputRecord$HandshakeFragment.handshakeMemos:Ljava/util/LinkedList;
            invokevirtual java.util.LinkedList.iterator:()Ljava/util/Iterator;
            astore 2
            goto 4
      StackMap locals: sun.security.ssl.SSLEngineOutputRecord$HandshakeFragment top java.util.Iterator
      StackMap stack:
         1: aload 2
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast sun.security.ssl.SSLEngineOutputRecord$RecordMemo
            astore 1 /* memo */
        start local 1 // sun.security.ssl.SSLEngineOutputRecord$RecordMemo memo
         2: .line 555
            aload 1 /* memo */
            getfield sun.security.ssl.SSLEngineOutputRecord$RecordMemo.contentType:B
            getstatic sun.security.ssl.ContentType.ALERT:Lsun/security/ssl/ContentType;
            getfield sun.security.ssl.ContentType.id:B
            if_icmpne 4
         3: .line 556
            iconst_1
            ireturn
        end local 1 // sun.security.ssl.SSLEngineOutputRecord$RecordMemo memo
         4: .line 554
      StackMap locals:
      StackMap stack:
            aload 2
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 1
         5: .line 560
            iconst_0
            ireturn
        end local 0 // sun.security.ssl.SSLEngineOutputRecord$HandshakeFragment this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    6     0  this  Lsun/security/ssl/SSLEngineOutputRecord$HandshakeFragment;
            2    4     1  memo  Lsun/security/ssl/SSLEngineOutputRecord$RecordMemo;
}
SourceFile: "SSLEngineOutputRecord.java"
NestHost: sun.security.ssl.SSLEngineOutputRecord
InnerClasses:
  abstract SSLWriteCipher = sun.security.ssl.SSLCipher$SSLWriteCipher of sun.security.ssl.SSLCipher
  final HandshakeFragment = sun.security.ssl.SSLEngineOutputRecord$HandshakeFragment of sun.security.ssl.SSLEngineOutputRecord
  private HandshakeMemo = sun.security.ssl.SSLEngineOutputRecord$HandshakeMemo of sun.security.ssl.SSLEngineOutputRecord
  private RecordMemo = sun.security.ssl.SSLEngineOutputRecord$RecordMemo of sun.security.ssl.SSLEngineOutputRecord