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 369
            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 370
            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 369
            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 374
            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 376
            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 377
            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 378
            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 379
            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 381
            aload 4 /* memo */
            aload 1 /* source */
            iload 2 /* offset */
            baload
            putfield sun.security.ssl.SSLEngineOutputRecord$HandshakeMemo.handshakeType:B
         6: .line 382
            aload 4 /* memo */
            iconst_0
            putfield sun.security.ssl.SSLEngineOutputRecord$HandshakeMemo.acquireOffset:I
         7: .line 383
            aload 4 /* memo */
            iload 3 /* length */
            iconst_4
            isub
            newarray 8
            putfield sun.security.ssl.SSLEngineOutputRecord$HandshakeMemo.fragment:[B
         8: .line 386
            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 388
            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 389
            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 392
            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 394
            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 395
            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 396
            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 397
            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 399
            aload 1 /* memo */
            iconst_1
            newarray 8
            putfield sun.security.ssl.SSLEngineOutputRecord$RecordMemo.fragment:[B
         6: .line 400
            aload 1 /* memo */
            getfield sun.security.ssl.SSLEngineOutputRecord$RecordMemo.fragment:[B
            iconst_0
            iconst_1
            bastore
         7: .line 402
            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 403
            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 406
            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 408
            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 409
            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 410
            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 411
            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 413
            aload 3 /* memo */
            iconst_2
            newarray 8
            putfield sun.security.ssl.SSLEngineOutputRecord$RecordMemo.fragment:[B
         6: .line 414
            aload 3 /* memo */
            getfield sun.security.ssl.SSLEngineOutputRecord$RecordMemo.fragment:[B
            iconst_0
            iload 1 /* level */
            bastore
         7: .line 415
            aload 3 /* memo */
            getfield sun.security.ssl.SSLEngineOutputRecord$RecordMemo.fragment:[B
            iconst_1
            iload 2 /* description */
            bastore
         8: .line 417
            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 418
            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 421
            aload 0 /* this */
            invokevirtual sun.security.ssl.SSLEngineOutputRecord$HandshakeFragment.isEmpty:()Z
            ifeq 2
         1: .line 422
            aconst_null
            areturn
         2: .line 425
      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 426
            aconst_null
            astore 3 /* hsMemo */
        start local 3 // sun.security.ssl.SSLEngineOutputRecord$HandshakeMemo hsMemo
         4: .line 427
            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 428
            aload 2 /* memo */
            checkcast sun.security.ssl.SSLEngineOutputRecord$HandshakeMemo
            astore 3 /* hsMemo */
         6: .line 434
      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 435
            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 436
            aload 2 /* memo */
            getfield sun.security.ssl.SSLEngineOutputRecord$RecordMemo.encodeCipher:Lsun/security/ssl/SSLCipher$SSLWriteCipher;
         9: .line 437
            iload 4 /* fragLen */
            iconst_5
        10: .line 436
            invokevirtual sun.security.ssl.SSLCipher$SSLWriteCipher.calculateFragmentSize:(II)I
            istore 4 /* fragLen */
        11: .line 438
            goto 13
        end local 4 // int fragLen
        12: .line 439
      StackMap locals:
      StackMap stack:
            sipush 16384
            istore 4 /* fragLen */
        start local 4 // int fragLen
        13: .line 442
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineOutputRecord$HandshakeFragment.this$0:Lsun/security/ssl/SSLEngineOutputRecord;
            getfield sun.security.ssl.SSLEngineOutputRecord.fragmentSize:I
            ifle 15
        14: .line 443
            iload 4 /* fragLen */
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineOutputRecord$HandshakeFragment.this$0:Lsun/security/ssl/SSLEngineOutputRecord;
            getfield sun.security.ssl.SSLEngineOutputRecord.fragmentSize:I
            invokestatic java.lang.Math.min:(II)I
            istore 4 /* fragLen */
        15: .line 446
      StackMap locals:
      StackMap stack:
            aload 1 /* dstBuf */
            invokevirtual java.nio.ByteBuffer.position:()I
            istore 5 /* dstPos */
        start local 5 // int dstPos
        16: .line 447
            aload 1 /* dstBuf */
            invokevirtual java.nio.ByteBuffer.limit:()I
            istore 6 /* dstLim */
        start local 6 // int dstLim
        17: .line 448
            iload 5 /* dstPos */
            iconst_5
            iadd
        18: .line 449
            aload 2 /* memo */
            getfield sun.security.ssl.SSLEngineOutputRecord$RecordMemo.encodeCipher:Lsun/security/ssl/SSLCipher$SSLWriteCipher;
            invokevirtual sun.security.ssl.SSLCipher$SSLWriteCipher.getExplicitNonceSize:()I
        19: .line 448
            iadd
            istore 7 /* dstContent */
        start local 7 // int dstContent
        20: .line 450
            aload 1 /* dstBuf */
            iload 7 /* dstContent */
            invokevirtual java.nio.ByteBuffer.position:(I)Ljava/nio/ByteBuffer;
            pop
        21: .line 452
            aload 3 /* hsMemo */
            ifnull 50
        22: .line 453
            iload 4 /* fragLen */
            istore 8 /* remainingFragLen */
        start local 8 // int remainingFragLen
        23: .line 454
            goto 48
        24: .line 455
      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
        25: .line 456
            aload 3 /* hsMemo */
            getfield sun.security.ssl.SSLEngineOutputRecord$HandshakeMemo.acquireOffset:I
            ifne 33
        26: .line 458
            iload 8 /* remainingFragLen */
            iconst_4
            if_icmpgt 28
        27: .line 459
            goto 53
        28: .line 462
      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
        29: .line 463
            aload 1 /* dstBuf */
            iload 9 /* memoFragLen */
            bipush 16
            ishr
            sipush 255
            iand
            i2b
            invokevirtual java.nio.ByteBuffer.put:(B)Ljava/nio/ByteBuffer;
            pop
        30: .line 464
            aload 1 /* dstBuf */
            iload 9 /* memoFragLen */
            bipush 8
            ishr
            sipush 255
            iand
            i2b
            invokevirtual java.nio.ByteBuffer.put:(B)Ljava/nio/ByteBuffer;
            pop
        31: .line 465
            aload 1 /* dstBuf */
            iload 9 /* memoFragLen */
            sipush 255
            iand
            i2b
            invokevirtual java.nio.ByteBuffer.put:(B)Ljava/nio/ByteBuffer;
            pop
        32: .line 467
            iinc 8 /* remainingFragLen */ -4
        33: .line 470
      StackMap locals:
      StackMap stack:
            iload 8 /* remainingFragLen */
        34: .line 471
            iload 9 /* memoFragLen */
            aload 3 /* hsMemo */
            getfield sun.security.ssl.SSLEngineOutputRecord$HandshakeMemo.acquireOffset:I
            isub
        35: .line 470
            invokestatic java.lang.Math.min:(II)I
            istore 10 /* chipLen */
        start local 10 // int chipLen
        36: .line 472
            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
        37: .line 474
            aload 3 /* hsMemo */
            dup
            getfield sun.security.ssl.SSLEngineOutputRecord$HandshakeMemo.acquireOffset:I
            iload 10 /* chipLen */
            iadd
            putfield sun.security.ssl.SSLEngineOutputRecord$HandshakeMemo.acquireOffset:I
        38: .line 475
            aload 3 /* hsMemo */
            getfield sun.security.ssl.SSLEngineOutputRecord$HandshakeMemo.acquireOffset:I
            iload 9 /* memoFragLen */
            if_icmpne 46
        39: .line 476
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineOutputRecord$HandshakeFragment.handshakeMemos:Ljava/util/LinkedList;
            invokevirtual java.util.LinkedList.removeFirst:()Ljava/lang/Object;
            pop
        40: .line 479
            iload 8 /* remainingFragLen */
            iload 10 /* chipLen */
            if_icmple 46
        41: .line 480
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineOutputRecord$HandshakeFragment.handshakeMemos:Ljava/util/LinkedList;
            invokevirtual java.util.LinkedList.isEmpty:()Z
            ifne 46
        42: .line 483
            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
        43: .line 484
            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 53
        44: .line 485
            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 53
        45: .line 486
            aload 11 /* rm */
            checkcast sun.security.ssl.SSLEngineOutputRecord$HandshakeMemo
            astore 3 /* hsMemo */
        end local 11 // sun.security.ssl.SSLEngineOutputRecord$RecordMemo rm
        46: .line 487
      StackMap locals: int
      StackMap stack:
            iload 8 /* remainingFragLen */
        47: .line 494
            iload 10 /* chipLen */
            isub
            istore 8 /* remainingFragLen */
        end local 10 // int chipLen
        end local 9 // int memoFragLen
        48: .line 454
      StackMap locals:
      StackMap stack:
            iload 8 /* remainingFragLen */
            ifle 53
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineOutputRecord$HandshakeFragment.handshakeMemos:Ljava/util/LinkedList;
            invokevirtual java.util.LinkedList.isEmpty:()Z
            ifeq 24
        end local 8 // int remainingFragLen
        49: .line 496
            goto 53
        50: .line 497
      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 */
        51: .line 498
            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
        52: .line 500
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineOutputRecord$HandshakeFragment.handshakeMemos:Ljava/util/LinkedList;
            invokevirtual java.util.LinkedList.removeFirst:()Ljava/lang/Object;
            pop
        53: .line 503
      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
        54: .line 504
            aload 1 /* dstBuf */
            iload 7 /* dstContent */
            invokevirtual java.nio.ByteBuffer.position:(I)Ljava/nio/ByteBuffer;
            pop
        55: .line 506
            getstatic sun.security.ssl.SSLLogger.isOn:Z
            ifeq 61
            ldc "record"
            invokestatic sun.security.ssl.SSLLogger.isOn:(Ljava/lang/String;)Z
            ifeq 61
        56: .line 508
            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;
        57: .line 509
            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;
        58: .line 510
            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;
        59: .line 508
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            iconst_0
            anewarray java.lang.Object
        60: .line 507
            invokestatic sun.security.ssl.SSLLogger.fine:(Ljava/lang/String;[Ljava/lang/Object;)V
        61: .line 515
      StackMap locals:
      StackMap stack:
            aload 2 /* memo */
            getfield sun.security.ssl.SSLEngineOutputRecord$RecordMemo.encodeCipher:Lsun/security/ssl/SSLCipher$SSLWriteCipher;
        62: .line 516
            aload 2 /* memo */
            getfield sun.security.ssl.SSLEngineOutputRecord$RecordMemo.contentType:B
            aload 1 /* dstBuf */
        63: .line 517
            iload 5 /* dstPos */
            iload 6 /* dstLim */
            iconst_5
        64: .line 518
            aload 2 /* memo */
            getfield sun.security.ssl.SSLEngineOutputRecord$RecordMemo.majorVersion:B
        65: .line 519
            aload 2 /* memo */
            getfield sun.security.ssl.SSLEngineOutputRecord$RecordMemo.minorVersion:B
        66: .line 518
            invokestatic sun.security.ssl.ProtocolVersion.valueOf:(BB)Lsun/security/ssl/ProtocolVersion;
        67: .line 514
            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
        68: .line 521
            getstatic sun.security.ssl.SSLLogger.isOn:Z
            ifeq 73
            ldc "packet"
            invokestatic sun.security.ssl.SSLLogger.isOn:(Ljava/lang/String;)Z
            ifeq 73
        69: .line 522
            aload 1 /* dstBuf */
            invokevirtual java.nio.ByteBuffer.duplicate:()Ljava/nio/ByteBuffer;
            astore 10 /* temporary */
        start local 10 // java.nio.ByteBuffer temporary
        70: .line 523
            aload 10 /* temporary */
            aload 10 /* temporary */
            invokevirtual java.nio.ByteBuffer.position:()I
            invokevirtual java.nio.ByteBuffer.limit:(I)Ljava/nio/ByteBuffer;
            pop
        71: .line 524
            aload 10 /* temporary */
            iload 5 /* dstPos */
            invokevirtual java.nio.ByteBuffer.position:(I)Ljava/nio/ByteBuffer;
            pop
        72: .line 525
            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
        73: .line 529
      StackMap locals: long
      StackMap stack:
            aload 1 /* dstBuf */
            iload 6 /* dstLim */
            invokevirtual java.nio.ByteBuffer.limit:(I)Ljava/nio/ByteBuffer;
            pop
        74: .line 532
            aload 3 /* hsMemo */
            ifnull 78
        75: .line 533
            new sun.security.ssl.Ciphertext
            dup
            aload 3 /* hsMemo */
            getfield sun.security.ssl.SSLEngineOutputRecord$HandshakeMemo.contentType:B
        76: .line 534
            aload 3 /* hsMemo */
            getfield sun.security.ssl.SSLEngineOutputRecord$HandshakeMemo.handshakeType:B
            lload 8 /* recordSN */
        77: .line 533
            invokespecial sun.security.ssl.Ciphertext.<init>:(BBJ)V
            areturn
        78: .line 536
      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 81
        79: .line 537
            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 81
        80: .line 538
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineOutputRecord$HandshakeFragment.this$0:Lsun/security/ssl/SSLEngineOutputRecord;
            invokevirtual sun.security.ssl.SSLEngineOutputRecord.close:()V
        81: .line 541
      StackMap locals:
      StackMap stack:
            new sun.security.ssl.Ciphertext
            dup
            aload 2 /* memo */
            getfield sun.security.ssl.SSLEngineOutputRecord$RecordMemo.contentType:B
        82: .line 542
            getstatic sun.security.ssl.SSLHandshake.NOT_APPLICABLE:Lsun/security/ssl/SSLHandshake;
            getfield sun.security.ssl.SSLHandshake.id:B
            lload 8 /* recordSN */
        83: .line 541
            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   84     0              this  Lsun/security/ssl/SSLEngineOutputRecord$HandshakeFragment;
            0   84     1            dstBuf  Ljava/nio/ByteBuffer;
            3   84     2              memo  Lsun/security/ssl/SSLEngineOutputRecord$RecordMemo;
            4   84     3            hsMemo  Lsun/security/ssl/SSLEngineOutputRecord$HandshakeMemo;
            8   12     4           fragLen  I
           13   84     4           fragLen  I
           16   84     5            dstPos  I
           17   84     6            dstLim  I
           20   84     7        dstContent  I
           23   49     8  remainingFragLen  I
           25   48     9       memoFragLen  I
           36   48    10           chipLen  I
           43   46    11                rm  Lsun/security/ssl/SSLEngineOutputRecord$RecordMemo;
           68   84     8          recordSN  J
           70   73    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 547
            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 551
            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 552
            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 553
            iconst_1
            ireturn
        end local 1 // sun.security.ssl.SSLEngineOutputRecord$RecordMemo memo
         4: .line 551
      StackMap locals:
      StackMap stack:
            aload 2
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 1
         5: .line 557
            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