public final class sun.security.ssl.SSLEngineImpl extends javax.net.ssl.SSLEngine
  minor version: 0
  major version: 59
  flags: flags: (0x0031) ACC_PUBLIC, ACC_FINAL, ACC_SUPER
  this_class: sun.security.ssl.SSLEngineImpl
  super_class: javax.net.ssl.SSLEngine
{
  private int connectionState;
    descriptor: I
    flags: (0x0002) ACC_PRIVATE

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

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

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

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

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

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

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

  sun.security.ssl.EngineWriter writer;
    descriptor: Lsun/security/ssl/EngineWriter;
    flags: (0x0000) 

  private sun.security.ssl.SSLContextImpl sslContext;
    descriptor: Lsun/security/ssl/SSLContextImpl;
    flags: (0x0002) ACC_PRIVATE

  private sun.security.ssl.SSLSessionImpl sess;
    descriptor: Lsun/security/ssl/SSLSessionImpl;
    flags: (0x0002) ACC_PRIVATE

  private sun.security.ssl.Handshaker handshaker;
    descriptor: Lsun/security/ssl/Handshaker;
    flags: (0x0002) ACC_PRIVATE

  static final byte clauth_none;
    descriptor: B
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: 0

  static final byte clauth_requested;
    descriptor: B
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: 1

  static final byte clauth_required;
    descriptor: B
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: 2

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

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

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

  private javax.net.ssl.SSLException closeReason;
    descriptor: Ljavax/net/ssl/SSLException;
    flags: (0x0002) ACC_PRIVATE

  private byte doClientAuth;
    descriptor: B
    flags: (0x0002) ACC_PRIVATE

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

  sun.security.ssl.EngineInputRecord inputRecord;
    descriptor: Lsun/security/ssl/EngineInputRecord;
    flags: (0x0000) 

  sun.security.ssl.EngineOutputRecord outputRecord;
    descriptor: Lsun/security/ssl/EngineOutputRecord;
    flags: (0x0000) 

  private java.security.AccessControlContext acc;
    descriptor: Ljava/security/AccessControlContext;
    flags: (0x0002) ACC_PRIVATE

  private sun.security.ssl.CipherSuiteList enabledCipherSuites;
    descriptor: Lsun/security/ssl/CipherSuiteList;
    flags: (0x0002) ACC_PRIVATE

  private java.lang.String identificationAlg;
    descriptor: Ljava/lang/String;
    flags: (0x0002) ACC_PRIVATE

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

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

  private sun.security.ssl.ProtocolList enabledProtocols;
    descriptor: Lsun/security/ssl/ProtocolList;
    flags: (0x0002) ACC_PRIVATE

  private sun.security.ssl.ProtocolVersion protocolVersion;
    descriptor: Lsun/security/ssl/ProtocolVersion;
    flags: (0x0002) ACC_PRIVATE

  private sun.security.ssl.MAC readMAC;
    descriptor: Lsun/security/ssl/MAC;
    flags: (0x0002) ACC_PRIVATE

  private sun.security.ssl.MAC writeMAC;
    descriptor: Lsun/security/ssl/MAC;
    flags: (0x0002) ACC_PRIVATE

  private sun.security.ssl.CipherBox readCipher;
    descriptor: Lsun/security/ssl/CipherBox;
    flags: (0x0002) ACC_PRIVATE

  private sun.security.ssl.CipherBox writeCipher;
    descriptor: Lsun/security/ssl/CipherBox;
    flags: (0x0002) ACC_PRIVATE

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

  private byte[] clientVerifyData;
    descriptor: [B
    flags: (0x0002) ACC_PRIVATE

  private byte[] serverVerifyData;
    descriptor: [B
    flags: (0x0002) ACC_PRIVATE

  private java.lang.Object wrapLock;
    descriptor: Ljava/lang/Object;
    flags: (0x0002) ACC_PRIVATE

  private java.lang.Object unwrapLock;
    descriptor: Ljava/lang/Object;
    flags: (0x0002) ACC_PRIVATE

  java.lang.Object writeLock;
    descriptor: Ljava/lang/Object;
    flags: (0x0000) 

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

  private static final sun.security.ssl.Debug debug;
    descriptor: Lsun/security/ssl/Debug;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  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 111
            ldc Lsun/security/ssl/SSLEngineImpl;
            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.security.ssl.SSLEngineImpl.$assertionsDisabled:Z
         3: .line 321
            ldc "ssl"
            invokestatic sun.security.ssl.Debug.getInstance:(Ljava/lang/String;)Lsun/security/ssl/Debug;
            putstatic sun.security.ssl.SSLEngineImpl.debug:Lsun/security/ssl/Debug;
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  void <init>(sun.security.ssl.SSLContextImpl);
    descriptor: (Lsun/security/ssl/SSLContextImpl;)V
    flags: (0x0000) 
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // sun.security.ssl.SSLEngineImpl this
        start local 1 // sun.security.ssl.SSLContextImpl ctx
         0: .line 333
            aload 0 /* this */
            invokespecial javax.net.ssl.SSLEngine.<init>:()V
         1: .line 181
            aload 0 /* this */
            iconst_0
            putfield sun.security.ssl.SSLEngineImpl.inboundDone:Z
         2: .line 246
            aload 0 /* this */
            iconst_1
            putfield sun.security.ssl.SSLEngineImpl.enableSessionCreation:Z
         3: .line 256
            aload 0 /* this */
            aconst_null
            putfield sun.security.ssl.SSLEngineImpl.identificationAlg:Ljava/lang/String;
         4: .line 259
            aload 0 /* this */
            iconst_0
            putfield sun.security.ssl.SSLEngineImpl.serverModeSet:Z
         5: .line 274
            aload 0 /* this */
            getstatic sun.security.ssl.ProtocolVersion.DEFAULT:Lsun/security/ssl/ProtocolVersion;
            putfield sun.security.ssl.SSLEngineImpl.protocolVersion:Lsun/security/ssl/ProtocolVersion;
         6: .line 316
            aload 0 /* this */
            iconst_1
            putfield sun.security.ssl.SSLEngineImpl.isFirstAppOutputRecord:Z
         7: .line 334
            aload 0 /* this */
            aload 1 /* ctx */
            invokevirtual sun.security.ssl.SSLEngineImpl.init:(Lsun/security/ssl/SSLContextImpl;)V
         8: .line 335
            return
        end local 1 // sun.security.ssl.SSLContextImpl ctx
        end local 0 // sun.security.ssl.SSLEngineImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    9     0  this  Lsun/security/ssl/SSLEngineImpl;
            0    9     1   ctx  Lsun/security/ssl/SSLContextImpl;
    MethodParameters:
      Name  Flags
      ctx   

  void <init>(sun.security.ssl.SSLContextImpl, java.lang.String, int);
    descriptor: (Lsun/security/ssl/SSLContextImpl;Ljava/lang/String;I)V
    flags: (0x0000) 
    Code:
      stack=3, locals=4, args_size=4
        start local 0 // sun.security.ssl.SSLEngineImpl this
        start local 1 // sun.security.ssl.SSLContextImpl ctx
        start local 2 // java.lang.String host
        start local 3 // int port
         0: .line 341
            aload 0 /* this */
            aload 2 /* host */
            iload 3 /* port */
            invokespecial javax.net.ssl.SSLEngine.<init>:(Ljava/lang/String;I)V
         1: .line 181
            aload 0 /* this */
            iconst_0
            putfield sun.security.ssl.SSLEngineImpl.inboundDone:Z
         2: .line 246
            aload 0 /* this */
            iconst_1
            putfield sun.security.ssl.SSLEngineImpl.enableSessionCreation:Z
         3: .line 256
            aload 0 /* this */
            aconst_null
            putfield sun.security.ssl.SSLEngineImpl.identificationAlg:Ljava/lang/String;
         4: .line 259
            aload 0 /* this */
            iconst_0
            putfield sun.security.ssl.SSLEngineImpl.serverModeSet:Z
         5: .line 274
            aload 0 /* this */
            getstatic sun.security.ssl.ProtocolVersion.DEFAULT:Lsun/security/ssl/ProtocolVersion;
            putfield sun.security.ssl.SSLEngineImpl.protocolVersion:Lsun/security/ssl/ProtocolVersion;
         6: .line 316
            aload 0 /* this */
            iconst_1
            putfield sun.security.ssl.SSLEngineImpl.isFirstAppOutputRecord:Z
         7: .line 342
            aload 0 /* this */
            aload 1 /* ctx */
            invokevirtual sun.security.ssl.SSLEngineImpl.init:(Lsun/security/ssl/SSLContextImpl;)V
         8: .line 343
            return
        end local 3 // int port
        end local 2 // java.lang.String host
        end local 1 // sun.security.ssl.SSLContextImpl ctx
        end local 0 // sun.security.ssl.SSLEngineImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    9     0  this  Lsun/security/ssl/SSLEngineImpl;
            0    9     1   ctx  Lsun/security/ssl/SSLContextImpl;
            0    9     2  host  Ljava/lang/String;
            0    9     3  port  I
    MethodParameters:
      Name  Flags
      ctx   
      host  
      port  

  private void init(sun.security.ssl.SSLContextImpl);
    descriptor: (Lsun/security/ssl/SSLContextImpl;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=2, args_size=2
        start local 0 // sun.security.ssl.SSLEngineImpl this
        start local 1 // sun.security.ssl.SSLContextImpl ctx
         0: .line 349
            getstatic sun.security.ssl.SSLEngineImpl.debug:Lsun/security/ssl/Debug;
            ifnull 2
            ldc "ssl"
            invokestatic sun.security.ssl.Debug.isOn:(Ljava/lang/String;)Z
            ifeq 2
         1: .line 350
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            ldc "Using SSLEngineImpl."
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
         2: .line 353
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* ctx */
            putfield sun.security.ssl.SSLEngineImpl.sslContext:Lsun/security/ssl/SSLContextImpl;
         3: .line 354
            aload 0 /* this */
            getstatic sun.security.ssl.SSLSessionImpl.nullSession:Lsun/security/ssl/SSLSessionImpl;
            putfield sun.security.ssl.SSLEngineImpl.sess:Lsun/security/ssl/SSLSessionImpl;
         4: .line 362
            aload 0 /* this */
            iconst_1
            putfield sun.security.ssl.SSLEngineImpl.roleIsServer:Z
         5: .line 363
            aload 0 /* this */
            iconst_0
            putfield sun.security.ssl.SSLEngineImpl.connectionState:I
         6: .line 364
            aload 0 /* this */
            iconst_0
            putfield sun.security.ssl.SSLEngineImpl.receivedCCS:Z
         7: .line 371
            aload 0 /* this */
            getstatic sun.security.ssl.CipherBox.NULL:Lsun/security/ssl/CipherBox;
            putfield sun.security.ssl.SSLEngineImpl.readCipher:Lsun/security/ssl/CipherBox;
         8: .line 372
            aload 0 /* this */
            getstatic sun.security.ssl.MAC.NULL:Lsun/security/ssl/MAC;
            putfield sun.security.ssl.SSLEngineImpl.readMAC:Lsun/security/ssl/MAC;
         9: .line 373
            aload 0 /* this */
            getstatic sun.security.ssl.CipherBox.NULL:Lsun/security/ssl/CipherBox;
            putfield sun.security.ssl.SSLEngineImpl.writeCipher:Lsun/security/ssl/CipherBox;
        10: .line 374
            aload 0 /* this */
            getstatic sun.security.ssl.MAC.NULL:Lsun/security/ssl/MAC;
            putfield sun.security.ssl.SSLEngineImpl.writeMAC:Lsun/security/ssl/MAC;
        11: .line 377
            aload 0 /* this */
            iconst_0
            putfield sun.security.ssl.SSLEngineImpl.secureRenegotiation:Z
        12: .line 378
            aload 0 /* this */
            iconst_0
            newarray 8
            putfield sun.security.ssl.SSLEngineImpl.clientVerifyData:[B
        13: .line 379
            aload 0 /* this */
            iconst_0
            newarray 8
            putfield sun.security.ssl.SSLEngineImpl.serverVerifyData:[B
        14: .line 381
            aload 0 /* this */
        15: .line 382
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.sslContext:Lsun/security/ssl/SSLContextImpl;
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.roleIsServer:Z
            invokevirtual sun.security.ssl.SSLContextImpl.getDefaultCipherSuiteList:(Z)Lsun/security/ssl/CipherSuiteList;
        16: .line 381
            putfield sun.security.ssl.SSLEngineImpl.enabledCipherSuites:Lsun/security/ssl/CipherSuiteList;
        17: .line 383
            aload 0 /* this */
        18: .line 384
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.sslContext:Lsun/security/ssl/SSLContextImpl;
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.roleIsServer:Z
            invokevirtual sun.security.ssl.SSLContextImpl.getDefaultProtocolList:(Z)Lsun/security/ssl/ProtocolList;
        19: .line 383
            putfield sun.security.ssl.SSLEngineImpl.enabledProtocols:Lsun/security/ssl/ProtocolList;
        20: .line 386
            aload 0 /* this */
            new java.lang.Object
            dup
            invokespecial java.lang.Object.<init>:()V
            putfield sun.security.ssl.SSLEngineImpl.wrapLock:Ljava/lang/Object;
        21: .line 387
            aload 0 /* this */
            new java.lang.Object
            dup
            invokespecial java.lang.Object.<init>:()V
            putfield sun.security.ssl.SSLEngineImpl.unwrapLock:Ljava/lang/Object;
        22: .line 388
            aload 0 /* this */
            new java.lang.Object
            dup
            invokespecial java.lang.Object.<init>:()V
            putfield sun.security.ssl.SSLEngineImpl.writeLock:Ljava/lang/Object;
        23: .line 396
            aload 0 /* this */
            invokestatic java.security.AccessController.getContext:()Ljava/security/AccessControlContext;
            putfield sun.security.ssl.SSLEngineImpl.acc:Ljava/security/AccessControlContext;
        24: .line 404
            aload 0 /* this */
        25: .line 405
            new sun.security.ssl.EngineOutputRecord
            dup
            bipush 23
            aload 0 /* this */
            invokespecial sun.security.ssl.EngineOutputRecord.<init>:(BLsun/security/ssl/SSLEngineImpl;)V
        26: .line 404
            putfield sun.security.ssl.SSLEngineImpl.outputRecord:Lsun/security/ssl/EngineOutputRecord;
        27: .line 406
            aload 0 /* this */
            new sun.security.ssl.EngineInputRecord
            dup
            aload 0 /* this */
            invokespecial sun.security.ssl.EngineInputRecord.<init>:(Lsun/security/ssl/SSLEngineImpl;)V
            putfield sun.security.ssl.SSLEngineImpl.inputRecord:Lsun/security/ssl/EngineInputRecord;
        28: .line 407
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.inputRecord:Lsun/security/ssl/EngineInputRecord;
            invokevirtual sun.security.ssl.EngineInputRecord.enableFormatChecks:()V
        29: .line 409
            aload 0 /* this */
            new sun.security.ssl.EngineWriter
            dup
            invokespecial sun.security.ssl.EngineWriter.<init>:()V
            putfield sun.security.ssl.SSLEngineImpl.writer:Lsun/security/ssl/EngineWriter;
        30: .line 410
            return
        end local 1 // sun.security.ssl.SSLContextImpl ctx
        end local 0 // sun.security.ssl.SSLEngineImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   31     0  this  Lsun/security/ssl/SSLEngineImpl;
            0   31     1   ctx  Lsun/security/ssl/SSLContextImpl;
    MethodParameters:
      Name  Flags
      ctx   

  private void initHandshaker();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=12, locals=1, args_size=1
        start local 0 // sun.security.ssl.SSLEngineImpl this
         0: .line 429
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.connectionState:I
            tableswitch { // 0 - 3
                    0: 1
                    1: 2
                    2: 1
                    3: 2
              default: 3
          }
         1: .line 436
      StackMap locals:
      StackMap stack:
            goto 4
         2: .line 443
      StackMap locals:
      StackMap stack:
            return
         3: .line 450
      StackMap locals:
      StackMap stack:
            new java.lang.IllegalStateException
            dup
            ldc "Internal error"
            invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
            athrow
         4: .line 454
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.connectionState:I
            ifne 7
         5: .line 455
            aload 0 /* this */
            iconst_1
            putfield sun.security.ssl.SSLEngineImpl.connectionState:I
         6: .line 456
            goto 8
         7: .line 457
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iconst_3
            putfield sun.security.ssl.SSLEngineImpl.connectionState:I
         8: .line 459
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.roleIsServer:Z
            ifeq 17
         9: .line 460
            aload 0 /* this */
        10: new sun.security.ssl.ServerHandshaker
            dup
            aload 0 /* this */
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.sslContext:Lsun/security/ssl/SSLContextImpl;
        11: .line 461
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.enabledProtocols:Lsun/security/ssl/ProtocolList;
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.doClientAuth:B
        12: .line 462
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.protocolVersion:Lsun/security/ssl/ProtocolVersion;
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.connectionState:I
            iconst_1
            if_icmpne 13
            iconst_1
            goto 14
      StackMap locals: sun.security.ssl.SSLEngineImpl
      StackMap stack: sun.security.ssl.SSLEngineImpl new 10 new 10 sun.security.ssl.SSLEngineImpl sun.security.ssl.SSLContextImpl sun.security.ssl.ProtocolList int sun.security.ssl.ProtocolVersion
        13: iconst_0
        14: .line 463
      StackMap locals: sun.security.ssl.SSLEngineImpl
      StackMap stack: sun.security.ssl.SSLEngineImpl new 10 new 10 sun.security.ssl.SSLEngineImpl sun.security.ssl.SSLContextImpl sun.security.ssl.ProtocolList int sun.security.ssl.ProtocolVersion int
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.secureRenegotiation:Z
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.clientVerifyData:[B
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.serverVerifyData:[B
            invokespecial sun.security.ssl.ServerHandshaker.<init>:(Lsun/security/ssl/SSLEngineImpl;Lsun/security/ssl/SSLContextImpl;Lsun/security/ssl/ProtocolList;BLsun/security/ssl/ProtocolVersion;ZZ[B[B)V
        15: .line 460
            putfield sun.security.ssl.SSLEngineImpl.handshaker:Lsun/security/ssl/Handshaker;
        16: .line 464
            goto 24
        17: .line 465
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
        18: new sun.security.ssl.ClientHandshaker
            dup
            aload 0 /* this */
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.sslContext:Lsun/security/ssl/SSLContextImpl;
        19: .line 466
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.enabledProtocols:Lsun/security/ssl/ProtocolList;
        20: .line 467
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.protocolVersion:Lsun/security/ssl/ProtocolVersion;
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.connectionState:I
            iconst_1
            if_icmpne 21
            iconst_1
            goto 22
      StackMap locals: sun.security.ssl.SSLEngineImpl
      StackMap stack: sun.security.ssl.SSLEngineImpl new 18 new 18 sun.security.ssl.SSLEngineImpl sun.security.ssl.SSLContextImpl sun.security.ssl.ProtocolList sun.security.ssl.ProtocolVersion
        21: iconst_0
        22: .line 468
      StackMap locals: sun.security.ssl.SSLEngineImpl
      StackMap stack: sun.security.ssl.SSLEngineImpl new 18 new 18 sun.security.ssl.SSLEngineImpl sun.security.ssl.SSLContextImpl sun.security.ssl.ProtocolList sun.security.ssl.ProtocolVersion int
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.secureRenegotiation:Z
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.clientVerifyData:[B
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.serverVerifyData:[B
            invokespecial sun.security.ssl.ClientHandshaker.<init>:(Lsun/security/ssl/SSLEngineImpl;Lsun/security/ssl/SSLContextImpl;Lsun/security/ssl/ProtocolList;Lsun/security/ssl/ProtocolVersion;ZZ[B[B)V
        23: .line 465
            putfield sun.security.ssl.SSLEngineImpl.handshaker:Lsun/security/ssl/Handshaker;
        24: .line 470
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.handshaker:Lsun/security/ssl/Handshaker;
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.enabledCipherSuites:Lsun/security/ssl/CipherSuiteList;
            invokevirtual sun.security.ssl.Handshaker.setEnabledCipherSuites:(Lsun/security/ssl/CipherSuiteList;)V
        25: .line 471
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.handshaker:Lsun/security/ssl/Handshaker;
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.enableSessionCreation:Z
            invokevirtual sun.security.ssl.Handshaker.setEnableSessionCreation:(Z)V
        26: .line 472
            return
        end local 0 // sun.security.ssl.SSLEngineImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   27     0  this  Lsun/security/ssl/SSLEngineImpl;

  private javax.net.ssl.SSLEngineResult$HandshakeStatus getHSStatus(javax.net.ssl.SSLEngineResult$HandshakeStatus);
    descriptor: (Ljavax/net/ssl/SSLEngineResult$HandshakeStatus;)Ljavax/net/ssl/SSLEngineResult$HandshakeStatus;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // sun.security.ssl.SSLEngineImpl this
        start local 1 // javax.net.ssl.SSLEngineResult$HandshakeStatus hss
         0: .line 479
            aload 1 /* hss */
            ifnull 2
         1: .line 480
            aload 1 /* hss */
            areturn
         2: .line 483
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            dup
            astore 2
            monitorenter
         3: .line 484
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.writer:Lsun/security/ssl/EngineWriter;
            invokevirtual sun.security.ssl.EngineWriter.hasOutboundData:()Z
            ifeq 6
         4: .line 485
            getstatic javax.net.ssl.SSLEngineResult$HandshakeStatus.NEED_WRAP:Ljavax/net/ssl/SSLEngineResult$HandshakeStatus;
            aload 2
            monitorexit
         5: areturn
         6: .line 486
      StackMap locals: sun.security.ssl.SSLEngineImpl
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.handshaker:Lsun/security/ssl/Handshaker;
            ifnull 12
         7: .line 487
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.handshaker:Lsun/security/ssl/Handshaker;
            invokevirtual sun.security.ssl.Handshaker.taskOutstanding:()Z
            ifeq 10
         8: .line 488
            getstatic javax.net.ssl.SSLEngineResult$HandshakeStatus.NEED_TASK:Ljavax/net/ssl/SSLEngineResult$HandshakeStatus;
            aload 2
            monitorexit
         9: areturn
        10: .line 490
      StackMap locals:
      StackMap stack:
            getstatic javax.net.ssl.SSLEngineResult$HandshakeStatus.NEED_UNWRAP:Ljavax/net/ssl/SSLEngineResult$HandshakeStatus;
            aload 2
            monitorexit
        11: areturn
        12: .line 492
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.connectionState:I
            bipush 6
            if_icmpne 16
        13: .line 501
            aload 0 /* this */
            invokevirtual sun.security.ssl.SSLEngineImpl.isInboundDone:()Z
            ifne 16
        14: .line 502
            getstatic javax.net.ssl.SSLEngineResult$HandshakeStatus.NEED_UNWRAP:Ljavax/net/ssl/SSLEngineResult$HandshakeStatus;
            aload 2
            monitorexit
        15: areturn
        16: .line 506
      StackMap locals:
      StackMap stack:
            getstatic javax.net.ssl.SSLEngineResult$HandshakeStatus.NOT_HANDSHAKING:Ljavax/net/ssl/SSLEngineResult$HandshakeStatus;
            aload 2
            monitorexit
        17: areturn
        18: .line 483
      StackMap locals:
      StackMap stack: java.lang.Throwable
            aload 2
            monitorexit
        19: athrow
        end local 1 // javax.net.ssl.SSLEngineResult$HandshakeStatus hss
        end local 0 // sun.security.ssl.SSLEngineImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   20     0  this  Lsun/security/ssl/SSLEngineImpl;
            0   20     1   hss  Ljavax/net/ssl/SSLEngineResult$HandshakeStatus;
      Exception table:
        from    to  target  type
           3     5      18  any
           6     9      18  any
          10    11      18  any
          12    15      18  any
          16    17      18  any
          18    19      18  any
    MethodParameters:
      Name  Flags
      hss   

  private synchronized void checkTaskThrown();
    descriptor: ()V
    flags: (0x0022) ACC_PRIVATE, ACC_SYNCHRONIZED
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // sun.security.ssl.SSLEngineImpl this
         0: .line 511
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.handshaker:Lsun/security/ssl/Handshaker;
            ifnull 2
         1: .line 512
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.handshaker:Lsun/security/ssl/Handshaker;
            invokevirtual sun.security.ssl.Handshaker.checkThrown:()V
         2: .line 514
      StackMap locals:
      StackMap stack:
            return
        end local 0 // sun.security.ssl.SSLEngineImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lsun/security/ssl/SSLEngineImpl;
    Exceptions:
      throws javax.net.ssl.SSLException

  private synchronized int getConnectionState();
    descriptor: ()I
    flags: (0x0022) ACC_PRIVATE, ACC_SYNCHRONIZED
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // sun.security.ssl.SSLEngineImpl this
         0: .line 525
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.connectionState:I
            ireturn
        end local 0 // sun.security.ssl.SSLEngineImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lsun/security/ssl/SSLEngineImpl;

  private synchronized void setConnectionState(int);
    descriptor: (I)V
    flags: (0x0022) ACC_PRIVATE, ACC_SYNCHRONIZED
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // sun.security.ssl.SSLEngineImpl this
        start local 1 // int state
         0: .line 529
            aload 0 /* this */
            iload 1 /* state */
            putfield sun.security.ssl.SSLEngineImpl.connectionState:I
         1: .line 530
            return
        end local 1 // int state
        end local 0 // sun.security.ssl.SSLEngineImpl this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    2     0   this  Lsun/security/ssl/SSLEngineImpl;
            0    2     1  state  I
    MethodParameters:
       Name  Flags
      state  

  java.security.AccessControlContext getAcc();
    descriptor: ()Ljava/security/AccessControlContext;
    flags: (0x0000) 
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // sun.security.ssl.SSLEngineImpl this
         0: .line 540
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.acc:Ljava/security/AccessControlContext;
            areturn
        end local 0 // sun.security.ssl.SSLEngineImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lsun/security/ssl/SSLEngineImpl;

  public javax.net.ssl.SSLEngineResult$HandshakeStatus getHandshakeStatus();
    descriptor: ()Ljavax/net/ssl/SSLEngineResult$HandshakeStatus;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // sun.security.ssl.SSLEngineImpl this
         0: .line 547
            aload 0 /* this */
            aconst_null
            invokevirtual sun.security.ssl.SSLEngineImpl.getHSStatus:(Ljavax/net/ssl/SSLEngineResult$HandshakeStatus;)Ljavax/net/ssl/SSLEngineResult$HandshakeStatus;
            areturn
        end local 0 // sun.security.ssl.SSLEngineImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lsun/security/ssl/SSLEngineImpl;

  private void changeReadCiphers();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=2, args_size=1
        start local 0 // sun.security.ssl.SSLEngineImpl this
         0: .line 566
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.connectionState:I
            iconst_1
            if_icmpeq 5
         1: .line 567
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.connectionState:I
            iconst_3
            if_icmpeq 5
         2: .line 568
            new javax.net.ssl.SSLProtocolException
            dup
         3: .line 569
            ldc "State error, change cipher specs"
         4: .line 568
            invokespecial javax.net.ssl.SSLProtocolException.<init>:(Ljava/lang/String;)V
            athrow
         5: .line 575
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.handshaker:Lsun/security/ssl/Handshaker;
            invokevirtual sun.security.ssl.Handshaker.newReadCipher:()Lsun/security/ssl/CipherBox;
            putfield sun.security.ssl.SSLEngineImpl.readCipher:Lsun/security/ssl/CipherBox;
         6: .line 576
            aload 0 /* this */
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.handshaker:Lsun/security/ssl/Handshaker;
            invokevirtual sun.security.ssl.Handshaker.newReadMAC:()Lsun/security/ssl/MAC;
            putfield sun.security.ssl.SSLEngineImpl.readMAC:Lsun/security/ssl/MAC;
         7: .line 577
            goto 10
      StackMap locals:
      StackMap stack: java.security.GeneralSecurityException
         8: astore 1 /* e */
        start local 1 // java.security.GeneralSecurityException e
         9: .line 579
            new javax.net.ssl.SSLException
            dup
            ldc "Algorithm missing:  "
            aload 1 /* e */
            invokespecial javax.net.ssl.SSLException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
            athrow
        end local 1 // java.security.GeneralSecurityException e
        10: .line 581
      StackMap locals:
      StackMap stack:
            return
        end local 0 // sun.security.ssl.SSLEngineImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   11     0  this  Lsun/security/ssl/SSLEngineImpl;
            9   10     1     e  Ljava/security/GeneralSecurityException;
      Exception table:
        from    to  target  type
           5     7       8  Class java.security.GeneralSecurityException
    Exceptions:
      throws javax.net.ssl.SSLException

  void changeWriteCiphers();
    descriptor: ()V
    flags: (0x0000) 
    Code:
      stack=4, locals=2, args_size=1
        start local 0 // sun.security.ssl.SSLEngineImpl this
         0: .line 590
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.connectionState:I
            iconst_1
            if_icmpeq 5
         1: .line 591
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.connectionState:I
            iconst_3
            if_icmpeq 5
         2: .line 592
            new javax.net.ssl.SSLProtocolException
            dup
         3: .line 593
            ldc "State error, change cipher specs"
         4: .line 592
            invokespecial javax.net.ssl.SSLProtocolException.<init>:(Ljava/lang/String;)V
            athrow
         5: .line 599
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.handshaker:Lsun/security/ssl/Handshaker;
            invokevirtual sun.security.ssl.Handshaker.newWriteCipher:()Lsun/security/ssl/CipherBox;
            putfield sun.security.ssl.SSLEngineImpl.writeCipher:Lsun/security/ssl/CipherBox;
         6: .line 600
            aload 0 /* this */
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.handshaker:Lsun/security/ssl/Handshaker;
            invokevirtual sun.security.ssl.Handshaker.newWriteMAC:()Lsun/security/ssl/MAC;
            putfield sun.security.ssl.SSLEngineImpl.writeMAC:Lsun/security/ssl/MAC;
         7: .line 601
            goto 10
      StackMap locals:
      StackMap stack: java.security.GeneralSecurityException
         8: astore 1 /* e */
        start local 1 // java.security.GeneralSecurityException e
         9: .line 603
            new javax.net.ssl.SSLException
            dup
            ldc "Algorithm missing:  "
            aload 1 /* e */
            invokespecial javax.net.ssl.SSLException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
            athrow
        end local 1 // java.security.GeneralSecurityException e
        10: .line 607
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iconst_1
            putfield sun.security.ssl.SSLEngineImpl.isFirstAppOutputRecord:Z
        11: .line 608
            return
        end local 0 // sun.security.ssl.SSLEngineImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   12     0  this  Lsun/security/ssl/SSLEngineImpl;
            9   10     1     e  Ljava/security/GeneralSecurityException;
      Exception table:
        from    to  target  type
           5     7       8  Class java.security.GeneralSecurityException
    Exceptions:
      throws javax.net.ssl.SSLException

  synchronized void setVersion(sun.security.ssl.ProtocolVersion);
    descriptor: (Lsun/security/ssl/ProtocolVersion;)V
    flags: (0x0020) ACC_SYNCHRONIZED
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // sun.security.ssl.SSLEngineImpl this
        start local 1 // sun.security.ssl.ProtocolVersion protocolVersion
         0: .line 615
            aload 0 /* this */
            aload 1 /* protocolVersion */
            putfield sun.security.ssl.SSLEngineImpl.protocolVersion:Lsun/security/ssl/ProtocolVersion;
         1: .line 616
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.outputRecord:Lsun/security/ssl/EngineOutputRecord;
            aload 1 /* protocolVersion */
            invokevirtual sun.security.ssl.EngineOutputRecord.setVersion:(Lsun/security/ssl/ProtocolVersion;)V
         2: .line 617
            return
        end local 1 // sun.security.ssl.ProtocolVersion protocolVersion
        end local 0 // sun.security.ssl.SSLEngineImpl this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0    3     0             this  Lsun/security/ssl/SSLEngineImpl;
            0    3     1  protocolVersion  Lsun/security/ssl/ProtocolVersion;
    MethodParameters:
                 Name  Flags
      protocolVersion  

  private synchronized void kickstartHandshake();
    descriptor: ()V
    flags: (0x0022) ACC_PRIVATE, ACC_SYNCHRONIZED
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // sun.security.ssl.SSLEngineImpl this
         0: .line 635
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.connectionState:I
            tableswitch { // 0 - 3
                    0: 1
                    1: 7
                    2: 8
                    3: 19
              default: 20
          }
         1: .line 638
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.serverModeSet:Z
            ifne 5
         2: .line 639
            new java.lang.IllegalStateException
            dup
         3: .line 640
            ldc "Client/Server mode not yet set."
         4: .line 639
            invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
            athrow
         5: .line 642
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual sun.security.ssl.SSLEngineImpl.initHandshaker:()V
         6: .line 643
            goto 21
         7: .line 647
      StackMap locals:
      StackMap stack:
            goto 21
         8: .line 650
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.secureRenegotiation:Z
            ifne 12
            getstatic sun.security.ssl.Handshaker.allowUnsafeRenegotiation:Z
            ifne 12
         9: .line 651
            new javax.net.ssl.SSLHandshakeException
            dup
        10: .line 652
            ldc "Insecure renegotiation is not allowed"
        11: .line 651
            invokespecial javax.net.ssl.SSLHandshakeException.<init>:(Ljava/lang/String;)V
            athrow
        12: .line 655
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.secureRenegotiation:Z
            ifne 17
        13: .line 656
            getstatic sun.security.ssl.SSLEngineImpl.debug:Lsun/security/ssl/Debug;
            ifnull 17
            ldc "handshake"
            invokestatic sun.security.ssl.Debug.isOn:(Ljava/lang/String;)Z
            ifeq 17
        14: .line 657
            getstatic java.lang.System.out:Ljava/io/PrintStream;
        15: .line 658
            ldc "Warning: Using insecure renegotiation"
        16: .line 657
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
        17: .line 663
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual sun.security.ssl.SSLEngineImpl.initHandshaker:()V
        18: .line 664
            goto 21
        19: .line 668
      StackMap locals:
      StackMap stack:
            return
        20: .line 672
      StackMap locals:
      StackMap stack:
            new javax.net.ssl.SSLException
            dup
            ldc "SSLEngine is closing/closed"
            invokespecial javax.net.ssl.SSLException.<init>:(Ljava/lang/String;)V
            athrow
        21: .line 682
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.handshaker:Lsun/security/ssl/Handshaker;
            invokevirtual sun.security.ssl.Handshaker.activated:()Z
            ifne 32
        22: .line 684
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.connectionState:I
            iconst_3
            if_icmpne 25
        23: .line 686
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.handshaker:Lsun/security/ssl/Handshaker;
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.protocolVersion:Lsun/security/ssl/ProtocolVersion;
            invokevirtual sun.security.ssl.Handshaker.activate:(Lsun/security/ssl/ProtocolVersion;)V
        24: .line 687
            goto 26
        25: .line 688
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.handshaker:Lsun/security/ssl/Handshaker;
            aconst_null
            invokevirtual sun.security.ssl.Handshaker.activate:(Lsun/security/ssl/ProtocolVersion;)V
        26: .line 691
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.handshaker:Lsun/security/ssl/Handshaker;
            instanceof sun.security.ssl.ClientHandshaker
            ifeq 29
        27: .line 693
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.handshaker:Lsun/security/ssl/Handshaker;
            invokevirtual sun.security.ssl.Handshaker.kickstart:()V
        28: .line 694
            goto 32
        29: .line 695
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.connectionState:I
            iconst_1
            if_icmpeq 32
        30: .line 699
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.handshaker:Lsun/security/ssl/Handshaker;
            invokevirtual sun.security.ssl.Handshaker.kickstart:()V
        31: .line 703
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.handshaker:Lsun/security/ssl/Handshaker;
            getfield sun.security.ssl.Handshaker.handshakeHash:Lsun/security/ssl/HandshakeHash;
            invokevirtual sun.security.ssl.HandshakeHash.reset:()V
        32: .line 707
      StackMap locals:
      StackMap stack:
            return
        end local 0 // sun.security.ssl.SSLEngineImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   33     0  this  Lsun/security/ssl/SSLEngineImpl;
    Exceptions:
      throws java.io.IOException

  public void beginHandshake();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=2, args_size=1
        start local 0 // sun.security.ssl.SSLEngineImpl this
         0: .line 714
            aload 0 /* this */
            invokevirtual sun.security.ssl.SSLEngineImpl.kickstartHandshake:()V
         1: .line 715
            goto 6
      StackMap locals:
      StackMap stack: java.lang.Exception
         2: astore 1 /* e */
        start local 1 // java.lang.Exception e
         3: .line 716
            aload 0 /* this */
            bipush 40
         4: .line 717
            ldc "Couldn't kickstart handshaking"
            aload 1 /* e */
         5: .line 716
            invokevirtual sun.security.ssl.SSLEngineImpl.fatal:(BLjava/lang/String;Ljava/lang/Throwable;)V
        end local 1 // java.lang.Exception e
         6: .line 719
      StackMap locals:
      StackMap stack:
            return
        end local 0 // sun.security.ssl.SSLEngineImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    7     0  this  Lsun/security/ssl/SSLEngineImpl;
            3    6     1     e  Ljava/lang/Exception;
      Exception table:
        from    to  target  type
           0     1       2  Class java.lang.Exception
    Exceptions:
      throws javax.net.ssl.SSLException

  public javax.net.ssl.SSLEngineResult unwrap(java.nio.ByteBuffer, java.nio.ByteBuffer[], int, int);
    descriptor: (Ljava/nio/ByteBuffer;[Ljava/nio/ByteBuffer;II)Ljavax/net/ssl/SSLEngineResult;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=9, args_size=5
        start local 0 // sun.security.ssl.SSLEngineImpl this
        start local 1 // java.nio.ByteBuffer netData
        start local 2 // java.nio.ByteBuffer[] appData
        start local 3 // int offset
        start local 4 // int length
         0: .line 734
            new sun.security.ssl.EngineArgs
            dup
            aload 1 /* netData */
            aload 2 /* appData */
            iload 3 /* offset */
            iload 4 /* length */
            invokespecial sun.security.ssl.EngineArgs.<init>:(Ljava/nio/ByteBuffer;[Ljava/nio/ByteBuffer;II)V
            astore 5 /* ea */
        start local 5 // sun.security.ssl.EngineArgs ea
         1: .line 737
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.unwrapLock:Ljava/lang/Object;
            dup
            astore 6
            monitorenter
         2: .line 738
            aload 0 /* this */
            aload 5 /* ea */
            invokevirtual sun.security.ssl.SSLEngineImpl.readNetRecord:(Lsun/security/ssl/EngineArgs;)Ljavax/net/ssl/SSLEngineResult;
            astore 8
            aload 6
            monitorexit
         3: .line 754
            aload 5 /* ea */
            invokevirtual sun.security.ssl.EngineArgs.resetLim:()V
         4: .line 738
            aload 8
            areturn
         5: .line 737
      StackMap locals: sun.security.ssl.SSLEngineImpl java.nio.ByteBuffer java.nio.ByteBuffer[] int int sun.security.ssl.EngineArgs java.lang.Object
      StackMap stack: java.lang.Throwable
            aload 6
            monitorexit
         6: athrow
         7: .line 740
      StackMap locals: sun.security.ssl.SSLEngineImpl java.nio.ByteBuffer java.nio.ByteBuffer[] int int sun.security.ssl.EngineArgs
      StackMap stack: java.lang.Exception
            astore 6 /* e */
        start local 6 // java.lang.Exception e
         8: .line 747
            aload 0 /* this */
            bipush 80
         9: .line 748
            ldc "problem wrapping app data"
            aload 6 /* e */
        10: .line 747
            invokevirtual sun.security.ssl.SSLEngineImpl.fatal:(BLjava/lang/String;Ljava/lang/Throwable;)V
        11: .line 754
            aload 5 /* ea */
            invokevirtual sun.security.ssl.EngineArgs.resetLim:()V
        12: .line 749
            aconst_null
            areturn
        end local 6 // java.lang.Exception e
        13: .line 750
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 7
        14: .line 754
            aload 5 /* ea */
            invokevirtual sun.security.ssl.EngineArgs.resetLim:()V
        15: .line 755
            aload 7
            athrow
        end local 5 // sun.security.ssl.EngineArgs ea
        end local 4 // int length
        end local 3 // int offset
        end local 2 // java.nio.ByteBuffer[] appData
        end local 1 // java.nio.ByteBuffer netData
        end local 0 // sun.security.ssl.SSLEngineImpl this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   16     0     this  Lsun/security/ssl/SSLEngineImpl;
            0   16     1  netData  Ljava/nio/ByteBuffer;
            0   16     2  appData  [Ljava/nio/ByteBuffer;
            0   16     3   offset  I
            0   16     4   length  I
            1   16     5       ea  Lsun/security/ssl/EngineArgs;
            8   13     6        e  Ljava/lang/Exception;
      Exception table:
        from    to  target  type
           2     3       5  any
           5     6       5  any
           1     3       7  Class java.lang.Exception
           5     7       7  Class java.lang.Exception
           1     3      13  any
           5    11      13  any
    Exceptions:
      throws javax.net.ssl.SSLException
    MethodParameters:
         Name  Flags
      netData  
      appData  
      offset   
      length   

  private javax.net.ssl.SSLEngineResult readNetRecord(sun.security.ssl.EngineArgs);
    descriptor: (Lsun/security/ssl/EngineArgs;)Ljavax/net/ssl/SSLEngineResult;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=6, locals=6, args_size=2
        start local 0 // sun.security.ssl.SSLEngineImpl this
        start local 1 // sun.security.ssl.EngineArgs ea
         0: .line 764
            aconst_null
            astore 2 /* status */
        start local 2 // javax.net.ssl.SSLEngineResult$Status status
         1: .line 765
            aconst_null
            astore 3 /* hsStatus */
        start local 3 // javax.net.ssl.SSLEngineResult$HandshakeStatus hsStatus
         2: .line 770
            aload 0 /* this */
            invokevirtual sun.security.ssl.SSLEngineImpl.checkTaskThrown:()V
         3: .line 775
            aload 0 /* this */
            invokevirtual sun.security.ssl.SSLEngineImpl.isInboundDone:()Z
            ifeq 5
         4: .line 776
            new javax.net.ssl.SSLEngineResult
            dup
            getstatic javax.net.ssl.SSLEngineResult$Status.CLOSED:Ljavax/net/ssl/SSLEngineResult$Status;
            aload 0 /* this */
            aconst_null
            invokevirtual sun.security.ssl.SSLEngineImpl.getHSStatus:(Ljavax/net/ssl/SSLEngineResult$HandshakeStatus;)Ljavax/net/ssl/SSLEngineResult$HandshakeStatus;
            iconst_0
            iconst_0
            invokespecial javax.net.ssl.SSLEngineResult.<init>:(Ljavax/net/ssl/SSLEngineResult$Status;Ljavax/net/ssl/SSLEngineResult$HandshakeStatus;II)V
            areturn
         5: .line 783
      StackMap locals: javax.net.ssl.SSLEngineResult$Status javax.net.ssl.SSLEngineResult$HandshakeStatus
      StackMap stack:
            aload 0 /* this */
            dup
            astore 4
            monitorenter
         6: .line 784
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.connectionState:I
            iconst_1
            if_icmpeq 8
         7: .line 785
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.connectionState:I
            ifne 13
         8: .line 786
      StackMap locals: sun.security.ssl.SSLEngineImpl
      StackMap stack:
            aload 0 /* this */
            invokevirtual sun.security.ssl.SSLEngineImpl.kickstartHandshake:()V
         9: .line 792
            aload 0 /* this */
            aconst_null
            invokevirtual sun.security.ssl.SSLEngineImpl.getHSStatus:(Ljavax/net/ssl/SSLEngineResult$HandshakeStatus;)Ljavax/net/ssl/SSLEngineResult$HandshakeStatus;
            astore 3 /* hsStatus */
        10: .line 794
            aload 3 /* hsStatus */
            getstatic javax.net.ssl.SSLEngineResult$HandshakeStatus.NEED_WRAP:Ljavax/net/ssl/SSLEngineResult$HandshakeStatus;
            if_acmpne 13
        11: .line 795
            new javax.net.ssl.SSLEngineResult
            dup
            getstatic javax.net.ssl.SSLEngineResult$Status.OK:Ljavax/net/ssl/SSLEngineResult$Status;
            aload 3 /* hsStatus */
            iconst_0
            iconst_0
            invokespecial javax.net.ssl.SSLEngineResult.<init>:(Ljavax/net/ssl/SSLEngineResult$Status;Ljavax/net/ssl/SSLEngineResult$HandshakeStatus;II)V
            aload 4
            monitorexit
        12: areturn
        13: .line 783
      StackMap locals:
      StackMap stack:
            aload 4
            monitorexit
        14: goto 17
      StackMap locals:
      StackMap stack: java.lang.Throwable
        15: aload 4
            monitorexit
        16: athrow
        17: .line 806
      StackMap locals:
      StackMap stack:
            aload 3 /* hsStatus */
            ifnonnull 19
        18: .line 807
            aload 0 /* this */
            aconst_null
            invokevirtual sun.security.ssl.SSLEngineImpl.getHSStatus:(Ljavax/net/ssl/SSLEngineResult$HandshakeStatus;)Ljavax/net/ssl/SSLEngineResult$HandshakeStatus;
            astore 3 /* hsStatus */
        19: .line 816
      StackMap locals:
      StackMap stack:
            aload 3 /* hsStatus */
            getstatic javax.net.ssl.SSLEngineResult$HandshakeStatus.NEED_TASK:Ljavax/net/ssl/SSLEngineResult$HandshakeStatus;
            if_acmpne 23
        20: .line 817
            new javax.net.ssl.SSLEngineResult
            dup
        21: .line 818
            getstatic javax.net.ssl.SSLEngineResult$Status.OK:Ljavax/net/ssl/SSLEngineResult$Status;
            aload 3 /* hsStatus */
            iconst_0
            iconst_0
        22: .line 817
            invokespecial javax.net.ssl.SSLEngineResult.<init>:(Ljavax/net/ssl/SSLEngineResult$Status;Ljavax/net/ssl/SSLEngineResult$HandshakeStatus;II)V
            areturn
        23: .line 825
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.inputRecord:Lsun/security/ssl/EngineInputRecord;
            aload 1 /* ea */
            getfield sun.security.ssl.EngineArgs.netData:Ljava/nio/ByteBuffer;
            invokevirtual sun.security.ssl.EngineInputRecord.bytesInCompletePacket:(Ljava/nio/ByteBuffer;)I
            istore 4 /* packetLen */
        start local 4 // int packetLen
        24: .line 828
            iload 4 /* packetLen */
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.sess:Lsun/security/ssl/SSLSessionImpl;
            invokevirtual sun.security.ssl.SSLSessionImpl.getPacketBufferSize:()I
            if_icmple 32
        25: .line 829
            iload 4 /* packetLen */
            ldc 33305
            if_icmple 31
        26: .line 830
            new javax.net.ssl.SSLProtocolException
            dup
        27: .line 831
            new java.lang.StringBuilder
            dup
            ldc "Input SSL/TLS record too big: max = 33305 len = "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
        28: .line 833
            iload 4 /* packetLen */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
        29: .line 831
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        30: .line 830
            invokespecial javax.net.ssl.SSLProtocolException.<init>:(Ljava/lang/String;)V
            athrow
        31: .line 837
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.sess:Lsun/security/ssl/SSLSessionImpl;
            invokevirtual sun.security.ssl.SSLSessionImpl.expandBufferSizes:()V
        32: .line 847
      StackMap locals:
      StackMap stack:
            iload 4 /* packetLen */
            iconst_5
            isub
            aload 1 /* ea */
            invokevirtual sun.security.ssl.EngineArgs.getAppRemaining:()I
            if_icmple 34
        33: .line 848
            new javax.net.ssl.SSLEngineResult
            dup
            getstatic javax.net.ssl.SSLEngineResult$Status.BUFFER_OVERFLOW:Ljavax/net/ssl/SSLEngineResult$Status;
            aload 3 /* hsStatus */
            iconst_0
            iconst_0
            invokespecial javax.net.ssl.SSLEngineResult.<init>:(Ljavax/net/ssl/SSLEngineResult$Status;Ljavax/net/ssl/SSLEngineResult$HandshakeStatus;II)V
            areturn
        34: .line 852
      StackMap locals:
      StackMap stack:
            iload 4 /* packetLen */
            iconst_m1
            if_icmpeq 35
            aload 1 /* ea */
            getfield sun.security.ssl.EngineArgs.netData:Ljava/nio/ByteBuffer;
            invokevirtual java.nio.ByteBuffer.remaining:()I
            iload 4 /* packetLen */
            if_icmpge 38
        35: .line 853
      StackMap locals:
      StackMap stack:
            new javax.net.ssl.SSLEngineResult
            dup
        36: .line 854
            getstatic javax.net.ssl.SSLEngineResult$Status.BUFFER_UNDERFLOW:Ljavax/net/ssl/SSLEngineResult$Status;
            aload 3 /* hsStatus */
            iconst_0
            iconst_0
        37: .line 853
            invokespecial javax.net.ssl.SSLEngineResult.<init>:(Ljavax/net/ssl/SSLEngineResult$Status;Ljavax/net/ssl/SSLEngineResult$HandshakeStatus;II)V
            areturn
        38: .line 864
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* ea */
            invokevirtual sun.security.ssl.SSLEngineImpl.readRecord:(Lsun/security/ssl/EngineArgs;)Ljavax/net/ssl/SSLEngineResult$HandshakeStatus;
            astore 3 /* hsStatus */
        39: .line 865
            goto 44
      StackMap locals:
      StackMap stack: javax.net.ssl.SSLException
        40: astore 5 /* e */
        start local 5 // javax.net.ssl.SSLException e
        41: .line 866
            aload 5 /* e */
            athrow
        end local 5 // javax.net.ssl.SSLException e
        42: .line 867
      StackMap locals:
      StackMap stack: java.io.IOException
            astore 5 /* e */
        start local 5 // java.io.IOException e
        43: .line 868
            new javax.net.ssl.SSLException
            dup
            ldc "readRecord"
            aload 5 /* e */
            invokespecial javax.net.ssl.SSLException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
            athrow
        end local 5 // java.io.IOException e
        44: .line 881
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual sun.security.ssl.SSLEngineImpl.isInboundDone:()Z
            ifeq 45
            getstatic javax.net.ssl.SSLEngineResult$Status.CLOSED:Ljavax/net/ssl/SSLEngineResult$Status;
            goto 46
      StackMap locals:
      StackMap stack:
        45: getstatic javax.net.ssl.SSLEngineResult$Status.OK:Ljavax/net/ssl/SSLEngineResult$Status;
      StackMap locals:
      StackMap stack: javax.net.ssl.SSLEngineResult$Status
        46: astore 2 /* status */
        47: .line 882
            aload 0 /* this */
            aload 3 /* hsStatus */
            invokevirtual sun.security.ssl.SSLEngineImpl.getHSStatus:(Ljavax/net/ssl/SSLEngineResult$HandshakeStatus;)Ljavax/net/ssl/SSLEngineResult$HandshakeStatus;
            astore 3 /* hsStatus */
        48: .line 884
            new javax.net.ssl.SSLEngineResult
            dup
            aload 2 /* status */
            aload 3 /* hsStatus */
        49: .line 885
            aload 1 /* ea */
            invokevirtual sun.security.ssl.EngineArgs.deltaNet:()I
            aload 1 /* ea */
            invokevirtual sun.security.ssl.EngineArgs.deltaApp:()I
        50: .line 884
            invokespecial javax.net.ssl.SSLEngineResult.<init>:(Ljavax/net/ssl/SSLEngineResult$Status;Ljavax/net/ssl/SSLEngineResult$HandshakeStatus;II)V
            areturn
        end local 4 // int packetLen
        end local 3 // javax.net.ssl.SSLEngineResult$HandshakeStatus hsStatus
        end local 2 // javax.net.ssl.SSLEngineResult$Status status
        end local 1 // sun.security.ssl.EngineArgs ea
        end local 0 // sun.security.ssl.SSLEngineImpl this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   51     0       this  Lsun/security/ssl/SSLEngineImpl;
            0   51     1         ea  Lsun/security/ssl/EngineArgs;
            1   51     2     status  Ljavax/net/ssl/SSLEngineResult$Status;
            2   51     3   hsStatus  Ljavax/net/ssl/SSLEngineResult$HandshakeStatus;
           24   51     4  packetLen  I
           41   42     5          e  Ljavax/net/ssl/SSLException;
           43   44     5          e  Ljava/io/IOException;
      Exception table:
        from    to  target  type
           6    12      15  any
          13    14      15  any
          15    16      15  any
          38    39      40  Class javax.net.ssl.SSLException
          38    39      42  Class java.io.IOException
    Exceptions:
      throws java.io.IOException
    MethodParameters:
      Name  Flags
      ea    

  private javax.net.ssl.SSLEngineResult$HandshakeStatus readRecord(sun.security.ssl.EngineArgs);
    descriptor: (Lsun/security/ssl/EngineArgs;)Ljavax/net/ssl/SSLEngineResult$HandshakeStatus;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=7, args_size=2
        start local 0 // sun.security.ssl.SSLEngineImpl this
        start local 1 // sun.security.ssl.EngineArgs ea
         0: .line 901
            aconst_null
            astore 2 /* hsStatus */
        start local 2 // javax.net.ssl.SSLEngineResult$HandshakeStatus hsStatus
         1: .line 908
            aconst_null
            astore 3 /* readBB */
        start local 3 // java.nio.ByteBuffer readBB
         2: .line 909
            aconst_null
            astore 4 /* decryptedBB */
        start local 4 // java.nio.ByteBuffer decryptedBB
         3: .line 911
            aload 0 /* this */
            invokevirtual sun.security.ssl.SSLEngineImpl.getConnectionState:()I
            iconst_4
            if_icmpeq 103
         4: .line 919
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.inputRecord:Lsun/security/ssl/EngineInputRecord;
            aload 1 /* ea */
            getfield sun.security.ssl.EngineArgs.netData:Ljava/nio/ByteBuffer;
            invokevirtual sun.security.ssl.EngineInputRecord.read:(Ljava/nio/ByteBuffer;)Ljava/nio/ByteBuffer;
            astore 3 /* readBB */
         5: .line 920
            goto 8
      StackMap locals: sun.security.ssl.SSLEngineImpl sun.security.ssl.EngineArgs javax.net.ssl.SSLEngineResult$HandshakeStatus java.nio.ByteBuffer java.nio.ByteBuffer
      StackMap stack: java.io.IOException
         6: astore 5 /* e */
        start local 5 // java.io.IOException e
         7: .line 921
            aload 0 /* this */
            bipush 10
            aload 5 /* e */
            invokevirtual sun.security.ssl.SSLEngineImpl.fatal:(BLjava/lang/Throwable;)V
        end local 5 // java.io.IOException e
         8: .line 931
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.inputRecord:Lsun/security/ssl/EngineInputRecord;
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.readMAC:Lsun/security/ssl/MAC;
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.readCipher:Lsun/security/ssl/CipherBox;
            aload 3 /* readBB */
            invokevirtual sun.security.ssl.EngineInputRecord.decrypt:(Lsun/security/ssl/MAC;Lsun/security/ssl/CipherBox;Ljava/nio/ByteBuffer;)Ljava/nio/ByteBuffer;
            astore 4 /* decryptedBB */
         9: .line 932
            goto 18
      StackMap locals:
      StackMap stack: javax.crypto.BadPaddingException
        10: astore 5 /* e */
        start local 5 // javax.crypto.BadPaddingException e
        11: .line 933
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.inputRecord:Lsun/security/ssl/EngineInputRecord;
            invokevirtual sun.security.ssl.EngineInputRecord.contentType:()B
        12: .line 934
            bipush 22
        13: .line 933
            if_icmpne 15
        14: .line 935
            bipush 40
            goto 16
        15: .line 936
      StackMap locals: javax.crypto.BadPaddingException
      StackMap stack:
            bipush 20
        16: .line 933
      StackMap locals:
      StackMap stack: int
            istore 6 /* alertType */
        start local 6 // byte alertType
        17: .line 937
            aload 0 /* this */
            iload 6 /* alertType */
            aload 5 /* e */
            invokevirtual javax.crypto.BadPaddingException.getMessage:()Ljava/lang/String;
            aload 5 /* e */
            invokevirtual sun.security.ssl.SSLEngineImpl.fatal:(BLjava/lang/String;Ljava/lang/Throwable;)V
        end local 6 // byte alertType
        end local 5 // javax.crypto.BadPaddingException e
        18: .line 949
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            dup
            astore 5
            monitorenter
        19: .line 950
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.inputRecord:Lsun/security/ssl/EngineInputRecord;
            invokevirtual sun.security.ssl.EngineInputRecord.contentType:()B
            tableswitch { // 20 - 23
                   20: 67
                   21: 65
                   22: 20
                   23: 50
              default: 87
          }
        20: .line 963
      StackMap locals: sun.security.ssl.SSLEngineImpl
      StackMap stack:
            aload 0 /* this */
            invokevirtual sun.security.ssl.SSLEngineImpl.initHandshaker:()V
        21: .line 964
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.handshaker:Lsun/security/ssl/Handshaker;
            invokevirtual sun.security.ssl.Handshaker.activated:()Z
            ifne 26
        22: .line 966
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.connectionState:I
            iconst_3
            if_icmpne 25
        23: .line 968
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.handshaker:Lsun/security/ssl/Handshaker;
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.protocolVersion:Lsun/security/ssl/ProtocolVersion;
            invokevirtual sun.security.ssl.Handshaker.activate:(Lsun/security/ssl/ProtocolVersion;)V
        24: .line 969
            goto 26
        25: .line 970
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.handshaker:Lsun/security/ssl/Handshaker;
            aconst_null
            invokevirtual sun.security.ssl.Handshaker.activate:(Lsun/security/ssl/ProtocolVersion;)V
        26: .line 981
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.handshaker:Lsun/security/ssl/Handshaker;
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.inputRecord:Lsun/security/ssl/EngineInputRecord;
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.expectingFinished:Z
            invokevirtual sun.security.ssl.Handshaker.process_record:(Lsun/security/ssl/InputRecord;Z)V
        27: .line 982
            aload 0 /* this */
            iconst_0
            putfield sun.security.ssl.SSLEngineImpl.expectingFinished:Z
        28: .line 984
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.handshaker:Lsun/security/ssl/Handshaker;
            getfield sun.security.ssl.Handshaker.invalidated:Z
            ifeq 34
        29: .line 985
            aload 0 /* this */
            aconst_null
            putfield sun.security.ssl.SSLEngineImpl.handshaker:Lsun/security/ssl/Handshaker;
        30: .line 986
            aload 0 /* this */
            iconst_0
            putfield sun.security.ssl.SSLEngineImpl.receivedCCS:Z
        31: .line 988
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.connectionState:I
            iconst_3
            if_icmpne 92
        32: .line 989
            aload 0 /* this */
            iconst_2
            putfield sun.security.ssl.SSLEngineImpl.connectionState:I
        33: .line 991
            goto 92
      StackMap locals:
      StackMap stack:
        34: aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.handshaker:Lsun/security/ssl/Handshaker;
            invokevirtual sun.security.ssl.Handshaker.isDone:()Z
            ifeq 47
        35: .line 993
            aload 0 /* this */
        36: .line 994
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.handshaker:Lsun/security/ssl/Handshaker;
            invokevirtual sun.security.ssl.Handshaker.isSecureRenegotiation:()Z
        37: .line 993
            putfield sun.security.ssl.SSLEngineImpl.secureRenegotiation:Z
        38: .line 995
            aload 0 /* this */
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.handshaker:Lsun/security/ssl/Handshaker;
            invokevirtual sun.security.ssl.Handshaker.getClientVerifyData:()[B
            putfield sun.security.ssl.SSLEngineImpl.clientVerifyData:[B
        39: .line 996
            aload 0 /* this */
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.handshaker:Lsun/security/ssl/Handshaker;
            invokevirtual sun.security.ssl.Handshaker.getServerVerifyData:()[B
            putfield sun.security.ssl.SSLEngineImpl.serverVerifyData:[B
        40: .line 998
            aload 0 /* this */
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.handshaker:Lsun/security/ssl/Handshaker;
            invokevirtual sun.security.ssl.Handshaker.getSession:()Lsun/security/ssl/SSLSessionImpl;
            putfield sun.security.ssl.SSLEngineImpl.sess:Lsun/security/ssl/SSLSessionImpl;
        41: .line 999
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.writer:Lsun/security/ssl/EngineWriter;
            invokevirtual sun.security.ssl.EngineWriter.hasOutboundData:()Z
            ifne 43
        42: .line 1000
            getstatic javax.net.ssl.SSLEngineResult$HandshakeStatus.FINISHED:Ljavax/net/ssl/SSLEngineResult$HandshakeStatus;
            astore 2 /* hsStatus */
        43: .line 1002
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aconst_null
            putfield sun.security.ssl.SSLEngineImpl.handshaker:Lsun/security/ssl/Handshaker;
        44: .line 1003
            aload 0 /* this */
            iconst_2
            putfield sun.security.ssl.SSLEngineImpl.connectionState:I
        45: .line 1004
            aload 0 /* this */
            iconst_0
            putfield sun.security.ssl.SSLEngineImpl.receivedCCS:Z
        46: .line 1008
            goto 92
      StackMap locals:
      StackMap stack:
        47: aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.handshaker:Lsun/security/ssl/Handshaker;
            invokevirtual sun.security.ssl.Handshaker.taskOutstanding:()Z
            ifeq 92
        48: .line 1009
            getstatic javax.net.ssl.SSLEngineResult$HandshakeStatus.NEED_TASK:Ljavax/net/ssl/SSLEngineResult$HandshakeStatus;
            astore 2 /* hsStatus */
        49: .line 1011
            goto 92
        50: .line 1015
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.connectionState:I
            iconst_2
            if_icmpeq 58
        51: .line 1016
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.connectionState:I
            iconst_3
            if_icmpeq 58
        52: .line 1017
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.connectionState:I
            bipush 6
            if_icmpeq 58
        53: .line 1018
            new javax.net.ssl.SSLProtocolException
            dup
        54: .line 1019
            new java.lang.StringBuilder
            dup
            ldc "Data received in non-data state: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
        55: .line 1020
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.connectionState:I
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
        56: .line 1019
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        57: .line 1018
            invokespecial javax.net.ssl.SSLProtocolException.<init>:(Ljava/lang/String;)V
            athrow
        58: .line 1023
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.expectingFinished:Z
            ifeq 62
        59: .line 1024
            new javax.net.ssl.SSLProtocolException
            dup
        60: .line 1025
            ldc "Expecting finished message, received data"
        61: .line 1024
            invokespecial javax.net.ssl.SSLProtocolException.<init>:(Ljava/lang/String;)V
            athrow
        62: .line 1032
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.inboundDone:Z
            ifne 92
        63: .line 1033
            aload 1 /* ea */
            aload 4 /* decryptedBB */
            invokevirtual java.nio.ByteBuffer.slice:()Ljava/nio/ByteBuffer;
            invokevirtual sun.security.ssl.EngineArgs.scatter:(Ljava/nio/ByteBuffer;)V
        64: .line 1035
            goto 92
        65: .line 1038
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual sun.security.ssl.SSLEngineImpl.recvAlert:()V
        66: .line 1039
            goto 92
        67: .line 1042
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.connectionState:I
            iconst_1
            if_icmpeq 69
        68: .line 1043
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.connectionState:I
            iconst_3
            if_icmpne 71
        69: .line 1044
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.handshaker:Lsun/security/ssl/Handshaker;
            invokevirtual sun.security.ssl.Handshaker.sessionKeysCalculated:()Z
            ifeq 71
        70: .line 1045
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.receivedCCS:Z
            ifeq 78
        71: .line 1047
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            bipush 10
        72: .line 1048
            new java.lang.StringBuilder
            dup
            ldc "illegal change cipher spec msg, conn state = "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
        73: .line 1049
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.connectionState:I
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            ldc ", handshake state = "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        74: .line 1050
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.handshaker:Lsun/security/ssl/Handshaker;
            getfield sun.security.ssl.Handshaker.state:I
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
        75: .line 1048
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        76: .line 1047
            invokevirtual sun.security.ssl.SSLEngineImpl.fatal:(BLjava/lang/String;)V
        77: .line 1051
            goto 83
      StackMap locals:
      StackMap stack:
        78: aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.inputRecord:Lsun/security/ssl/EngineInputRecord;
            invokevirtual sun.security.ssl.EngineInputRecord.available:()I
            iconst_1
            if_icmpne 80
        79: .line 1052
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.inputRecord:Lsun/security/ssl/EngineInputRecord;
            invokevirtual sun.security.ssl.EngineInputRecord.read:()I
            iconst_1
            if_icmpeq 83
        80: .line 1054
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            bipush 10
        81: .line 1055
            ldc "Malformed change cipher spec msg"
        82: .line 1054
            invokevirtual sun.security.ssl.SSLEngineImpl.fatal:(BLjava/lang/String;)V
        83: .line 1061
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iconst_1
            putfield sun.security.ssl.SSLEngineImpl.receivedCCS:Z
        84: .line 1070
            aload 0 /* this */
            invokevirtual sun.security.ssl.SSLEngineImpl.changeReadCiphers:()V
        85: .line 1072
            aload 0 /* this */
            iconst_1
            putfield sun.security.ssl.SSLEngineImpl.expectingFinished:Z
        86: .line 1073
            goto 92
        87: .line 1079
      StackMap locals:
      StackMap stack:
            getstatic sun.security.ssl.SSLEngineImpl.debug:Lsun/security/ssl/Debug;
            ifnull 92
            ldc "ssl"
            invokestatic sun.security.ssl.Debug.isOn:(Ljava/lang/String;)Z
            ifeq 92
        88: .line 1080
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            new java.lang.StringBuilder
            dup
            invokestatic sun.security.ssl.SSLEngineImpl.threadName:()Ljava/lang/String;
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
        89: .line 1081
            ldc ", Received record type: "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        90: .line 1082
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.inputRecord:Lsun/security/ssl/EngineInputRecord;
            invokevirtual sun.security.ssl.EngineInputRecord.contentType:()B
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        91: .line 1080
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
        92: .line 1099
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.connectionState:I
            iconst_4
            if_icmpge 99
            aload 0 /* this */
            invokevirtual sun.security.ssl.SSLEngineImpl.isInboundDone:()Z
            ifne 99
        93: .line 1100
            aload 2 /* hsStatus */
            getstatic javax.net.ssl.SSLEngineResult$HandshakeStatus.NOT_HANDSHAKING:Ljavax/net/ssl/SSLEngineResult$HandshakeStatus;
            if_acmpne 99
        94: .line 1101
            aload 0 /* this */
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.readMAC:Lsun/security/ssl/MAC;
        95: .line 1102
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.inputRecord:Lsun/security/ssl/EngineInputRecord;
            invokevirtual sun.security.ssl.EngineInputRecord.contentType:()B
        96: .line 1101
            invokevirtual sun.security.ssl.SSLEngineImpl.checkSequenceNumber:(Lsun/security/ssl/MAC;B)Z
        97: .line 1102
            ifeq 99
        98: .line 1103
            aload 0 /* this */
            aconst_null
            invokevirtual sun.security.ssl.SSLEngineImpl.getHSStatus:(Ljavax/net/ssl/SSLEngineResult$HandshakeStatus;)Ljavax/net/ssl/SSLEngineResult$HandshakeStatus;
            astore 2 /* hsStatus */
        99: .line 949
      StackMap locals:
      StackMap stack:
            aload 5
            monitorexit
       100: goto 103
      StackMap locals:
      StackMap stack: java.lang.Throwable
       101: aload 5
            monitorexit
       102: athrow
       103: .line 1109
      StackMap locals:
      StackMap stack:
            aload 2 /* hsStatus */
            areturn
        end local 4 // java.nio.ByteBuffer decryptedBB
        end local 3 // java.nio.ByteBuffer readBB
        end local 2 // javax.net.ssl.SSLEngineResult$HandshakeStatus hsStatus
        end local 1 // sun.security.ssl.EngineArgs ea
        end local 0 // sun.security.ssl.SSLEngineImpl this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0  104     0         this  Lsun/security/ssl/SSLEngineImpl;
            0  104     1           ea  Lsun/security/ssl/EngineArgs;
            1  104     2     hsStatus  Ljavax/net/ssl/SSLEngineResult$HandshakeStatus;
            2  104     3       readBB  Ljava/nio/ByteBuffer;
            3  104     4  decryptedBB  Ljava/nio/ByteBuffer;
            7    8     5            e  Ljava/io/IOException;
           11   18     5            e  Ljavax/crypto/BadPaddingException;
           17   18     6    alertType  B
      Exception table:
        from    to  target  type
           4     5       6  Class java.io.IOException
           8     9      10  Class javax.crypto.BadPaddingException
          19   100     101  any
         101   102     101  any
    Exceptions:
      throws java.io.IOException
    MethodParameters:
      Name  Flags
      ea    

  public javax.net.ssl.SSLEngineResult wrap(java.nio.ByteBuffer[], int, int, java.nio.ByteBuffer);
    descriptor: ([Ljava/nio/ByteBuffer;IILjava/nio/ByteBuffer;)Ljavax/net/ssl/SSLEngineResult;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=9, args_size=5
        start local 0 // sun.security.ssl.SSLEngineImpl this
        start local 1 // java.nio.ByteBuffer[] appData
        start local 2 // int offset
        start local 3 // int length
        start local 4 // java.nio.ByteBuffer netData
         0: .line 1125
            new sun.security.ssl.EngineArgs
            dup
            aload 1 /* appData */
            iload 2 /* offset */
            iload 3 /* length */
            aload 4 /* netData */
            invokespecial sun.security.ssl.EngineArgs.<init>:([Ljava/nio/ByteBuffer;IILjava/nio/ByteBuffer;)V
            astore 5 /* ea */
        start local 5 // sun.security.ssl.EngineArgs ea
         1: .line 1132
            aload 4 /* netData */
            invokevirtual java.nio.ByteBuffer.remaining:()I
            sipush 16921
            if_icmpge 5
         2: .line 1133
            new javax.net.ssl.SSLEngineResult
            dup
         3: .line 1134
            getstatic javax.net.ssl.SSLEngineResult$Status.BUFFER_OVERFLOW:Ljavax/net/ssl/SSLEngineResult$Status;
            aload 0 /* this */
            aconst_null
            invokevirtual sun.security.ssl.SSLEngineImpl.getHSStatus:(Ljavax/net/ssl/SSLEngineResult$HandshakeStatus;)Ljavax/net/ssl/SSLEngineResult$HandshakeStatus;
            iconst_0
            iconst_0
         4: .line 1133
            invokespecial javax.net.ssl.SSLEngineResult.<init>:(Ljavax/net/ssl/SSLEngineResult$Status;Ljavax/net/ssl/SSLEngineResult$HandshakeStatus;II)V
            areturn
         5: .line 1138
      StackMap locals: sun.security.ssl.EngineArgs
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.wrapLock:Ljava/lang/Object;
            dup
            astore 6
            monitorenter
         6: .line 1139
            aload 0 /* this */
            aload 5 /* ea */
            invokevirtual sun.security.ssl.SSLEngineImpl.writeAppRecord:(Lsun/security/ssl/EngineArgs;)Ljavax/net/ssl/SSLEngineResult;
            astore 8
            aload 6
            monitorexit
         7: .line 1151
            aload 5 /* ea */
            invokevirtual sun.security.ssl.EngineArgs.resetLim:()V
         8: .line 1139
            aload 8
            areturn
         9: .line 1138
      StackMap locals: sun.security.ssl.SSLEngineImpl java.nio.ByteBuffer[] int int java.nio.ByteBuffer sun.security.ssl.EngineArgs java.lang.Object
      StackMap stack: java.lang.Throwable
            aload 6
            monitorexit
        10: athrow
        11: .line 1141
      StackMap locals: sun.security.ssl.SSLEngineImpl java.nio.ByteBuffer[] int int java.nio.ByteBuffer sun.security.ssl.EngineArgs
      StackMap stack: java.lang.Exception
            astore 6 /* e */
        start local 6 // java.lang.Exception e
        12: .line 1142
            aload 5 /* ea */
            invokevirtual sun.security.ssl.EngineArgs.resetPos:()V
        13: .line 1144
            aload 0 /* this */
            bipush 80
        14: .line 1145
            ldc "problem unwrapping net record"
            aload 6 /* e */
        15: .line 1144
            invokevirtual sun.security.ssl.SSLEngineImpl.fatal:(BLjava/lang/String;Ljava/lang/Throwable;)V
        16: .line 1151
            aload 5 /* ea */
            invokevirtual sun.security.ssl.EngineArgs.resetLim:()V
        17: .line 1146
            aconst_null
            areturn
        end local 6 // java.lang.Exception e
        18: .line 1147
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 7
        19: .line 1151
            aload 5 /* ea */
            invokevirtual sun.security.ssl.EngineArgs.resetLim:()V
        20: .line 1152
            aload 7
            athrow
        end local 5 // sun.security.ssl.EngineArgs ea
        end local 4 // java.nio.ByteBuffer netData
        end local 3 // int length
        end local 2 // int offset
        end local 1 // java.nio.ByteBuffer[] appData
        end local 0 // sun.security.ssl.SSLEngineImpl this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   21     0     this  Lsun/security/ssl/SSLEngineImpl;
            0   21     1  appData  [Ljava/nio/ByteBuffer;
            0   21     2   offset  I
            0   21     3   length  I
            0   21     4  netData  Ljava/nio/ByteBuffer;
            1   21     5       ea  Lsun/security/ssl/EngineArgs;
           12   18     6        e  Ljava/lang/Exception;
      Exception table:
        from    to  target  type
           6     7       9  any
           9    10       9  any
           5     7      11  Class java.lang.Exception
           9    11      11  Class java.lang.Exception
           5     7      18  any
           9    16      18  any
    Exceptions:
      throws javax.net.ssl.SSLException
    MethodParameters:
         Name  Flags
      appData  
      offset   
      length   
      netData  

  private javax.net.ssl.SSLEngineResult writeAppRecord(sun.security.ssl.EngineArgs);
    descriptor: (Lsun/security/ssl/EngineArgs;)Ljavax/net/ssl/SSLEngineResult;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=6, locals=5, args_size=2
        start local 0 // sun.security.ssl.SSLEngineImpl this
        start local 1 // sun.security.ssl.EngineArgs ea
         0: .line 1161
            aconst_null
            astore 2 /* status */
        start local 2 // javax.net.ssl.SSLEngineResult$Status status
         1: .line 1162
            aconst_null
            astore 3 /* hsStatus */
        start local 3 // javax.net.ssl.SSLEngineResult$HandshakeStatus hsStatus
         2: .line 1167
            aload 0 /* this */
            invokevirtual sun.security.ssl.SSLEngineImpl.checkTaskThrown:()V
         3: .line 1172
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.writer:Lsun/security/ssl/EngineWriter;
            invokevirtual sun.security.ssl.EngineWriter.isOutboundDone:()Z
            ifeq 5
         4: .line 1173
            new javax.net.ssl.SSLEngineResult
            dup
            getstatic javax.net.ssl.SSLEngineResult$Status.CLOSED:Ljavax/net/ssl/SSLEngineResult$Status;
            aload 0 /* this */
            aconst_null
            invokevirtual sun.security.ssl.SSLEngineImpl.getHSStatus:(Ljavax/net/ssl/SSLEngineResult$HandshakeStatus;)Ljavax/net/ssl/SSLEngineResult$HandshakeStatus;
            iconst_0
            iconst_0
            invokespecial javax.net.ssl.SSLEngineResult.<init>:(Ljavax/net/ssl/SSLEngineResult$Status;Ljavax/net/ssl/SSLEngineResult$HandshakeStatus;II)V
            areturn
         5: .line 1180
      StackMap locals: javax.net.ssl.SSLEngineResult$Status javax.net.ssl.SSLEngineResult$HandshakeStatus
      StackMap stack:
            aload 0 /* this */
            dup
            astore 4
            monitorenter
         6: .line 1181
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.connectionState:I
            iconst_1
            if_icmpeq 8
         7: .line 1182
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.connectionState:I
            ifne 13
         8: .line 1183
      StackMap locals: sun.security.ssl.SSLEngineImpl
      StackMap stack:
            aload 0 /* this */
            invokevirtual sun.security.ssl.SSLEngineImpl.kickstartHandshake:()V
         9: .line 1189
            aload 0 /* this */
            aconst_null
            invokevirtual sun.security.ssl.SSLEngineImpl.getHSStatus:(Ljavax/net/ssl/SSLEngineResult$HandshakeStatus;)Ljavax/net/ssl/SSLEngineResult$HandshakeStatus;
            astore 3 /* hsStatus */
        10: .line 1191
            aload 3 /* hsStatus */
            getstatic javax.net.ssl.SSLEngineResult$HandshakeStatus.NEED_UNWRAP:Ljavax/net/ssl/SSLEngineResult$HandshakeStatus;
            if_acmpne 13
        11: .line 1192
            new javax.net.ssl.SSLEngineResult
            dup
            getstatic javax.net.ssl.SSLEngineResult$Status.OK:Ljavax/net/ssl/SSLEngineResult$Status;
            aload 3 /* hsStatus */
            iconst_0
            iconst_0
            invokespecial javax.net.ssl.SSLEngineResult.<init>:(Ljavax/net/ssl/SSLEngineResult$Status;Ljavax/net/ssl/SSLEngineResult$HandshakeStatus;II)V
            aload 4
            monitorexit
        12: areturn
        13: .line 1180
      StackMap locals:
      StackMap stack:
            aload 4
            monitorexit
        14: goto 17
      StackMap locals:
      StackMap stack: java.lang.Throwable
        15: aload 4
            monitorexit
        16: athrow
        17: .line 1203
      StackMap locals:
      StackMap stack:
            aload 3 /* hsStatus */
            ifnonnull 19
        18: .line 1204
            aload 0 /* this */
            aconst_null
            invokevirtual sun.security.ssl.SSLEngineImpl.getHSStatus:(Ljavax/net/ssl/SSLEngineResult$HandshakeStatus;)Ljavax/net/ssl/SSLEngineResult$HandshakeStatus;
            astore 3 /* hsStatus */
        19: .line 1213
      StackMap locals:
      StackMap stack:
            aload 3 /* hsStatus */
            getstatic javax.net.ssl.SSLEngineResult$HandshakeStatus.NEED_TASK:Ljavax/net/ssl/SSLEngineResult$HandshakeStatus;
            if_acmpne 23
        20: .line 1214
            new javax.net.ssl.SSLEngineResult
            dup
        21: .line 1215
            getstatic javax.net.ssl.SSLEngineResult$Status.OK:Ljavax/net/ssl/SSLEngineResult$Status;
            aload 3 /* hsStatus */
            iconst_0
            iconst_0
        22: .line 1214
            invokespecial javax.net.ssl.SSLEngineResult.<init>:(Ljavax/net/ssl/SSLEngineResult$Status;Ljavax/net/ssl/SSLEngineResult$HandshakeStatus;II)V
            areturn
        23: .line 1223
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.writeLock:Ljava/lang/Object;
            dup
            astore 4
            monitorenter
        24: .line 1224
            aload 0 /* this */
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.outputRecord:Lsun/security/ssl/EngineOutputRecord;
            aload 1 /* ea */
            invokevirtual sun.security.ssl.SSLEngineImpl.writeRecord:(Lsun/security/ssl/EngineOutputRecord;Lsun/security/ssl/EngineArgs;)Ljavax/net/ssl/SSLEngineResult$HandshakeStatus;
            astore 3 /* hsStatus */
        25: .line 1223
            aload 4
            monitorexit
        26: goto 33
      StackMap locals: sun.security.ssl.SSLEngineImpl sun.security.ssl.EngineArgs javax.net.ssl.SSLEngineResult$Status javax.net.ssl.SSLEngineResult$HandshakeStatus java.lang.Object
      StackMap stack: java.lang.Throwable
        27: aload 4
            monitorexit
        28: athrow
        29: .line 1226
      StackMap locals: sun.security.ssl.SSLEngineImpl sun.security.ssl.EngineArgs javax.net.ssl.SSLEngineResult$Status javax.net.ssl.SSLEngineResult$HandshakeStatus
      StackMap stack: javax.net.ssl.SSLException
            astore 4 /* e */
        start local 4 // javax.net.ssl.SSLException e
        30: .line 1227
            aload 4 /* e */
            athrow
        end local 4 // javax.net.ssl.SSLException e
        31: .line 1228
      StackMap locals:
      StackMap stack: java.io.IOException
            astore 4 /* e */
        start local 4 // java.io.IOException e
        32: .line 1229
            new javax.net.ssl.SSLException
            dup
            ldc "Write problems"
            aload 4 /* e */
            invokespecial javax.net.ssl.SSLException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
            athrow
        end local 4 // java.io.IOException e
        33: .line 1238
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual sun.security.ssl.SSLEngineImpl.isOutboundDone:()Z
            ifeq 34
            getstatic javax.net.ssl.SSLEngineResult$Status.CLOSED:Ljavax/net/ssl/SSLEngineResult$Status;
            goto 35
      StackMap locals:
      StackMap stack:
        34: getstatic javax.net.ssl.SSLEngineResult$Status.OK:Ljavax/net/ssl/SSLEngineResult$Status;
      StackMap locals:
      StackMap stack: javax.net.ssl.SSLEngineResult$Status
        35: astore 2 /* status */
        36: .line 1239
            aload 0 /* this */
            aload 3 /* hsStatus */
            invokevirtual sun.security.ssl.SSLEngineImpl.getHSStatus:(Ljavax/net/ssl/SSLEngineResult$HandshakeStatus;)Ljavax/net/ssl/SSLEngineResult$HandshakeStatus;
            astore 3 /* hsStatus */
        37: .line 1241
            new javax.net.ssl.SSLEngineResult
            dup
            aload 2 /* status */
            aload 3 /* hsStatus */
        38: .line 1242
            aload 1 /* ea */
            invokevirtual sun.security.ssl.EngineArgs.deltaApp:()I
            aload 1 /* ea */
            invokevirtual sun.security.ssl.EngineArgs.deltaNet:()I
        39: .line 1241
            invokespecial javax.net.ssl.SSLEngineResult.<init>:(Ljavax/net/ssl/SSLEngineResult$Status;Ljavax/net/ssl/SSLEngineResult$HandshakeStatus;II)V
            areturn
        end local 3 // javax.net.ssl.SSLEngineResult$HandshakeStatus hsStatus
        end local 2 // javax.net.ssl.SSLEngineResult$Status status
        end local 1 // sun.security.ssl.EngineArgs ea
        end local 0 // sun.security.ssl.SSLEngineImpl this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   40     0      this  Lsun/security/ssl/SSLEngineImpl;
            0   40     1        ea  Lsun/security/ssl/EngineArgs;
            1   40     2    status  Ljavax/net/ssl/SSLEngineResult$Status;
            2   40     3  hsStatus  Ljavax/net/ssl/SSLEngineResult$HandshakeStatus;
           30   31     4         e  Ljavax/net/ssl/SSLException;
           32   33     4         e  Ljava/io/IOException;
      Exception table:
        from    to  target  type
           6    12      15  any
          13    14      15  any
          15    16      15  any
          24    26      27  any
          27    28      27  any
          23    29      29  Class javax.net.ssl.SSLException
          23    29      31  Class java.io.IOException
    Exceptions:
      throws java.io.IOException
    MethodParameters:
      Name  Flags
      ea    

  private javax.net.ssl.SSLEngineResult$HandshakeStatus writeRecord(sun.security.ssl.EngineOutputRecord, sun.security.ssl.EngineArgs);
    descriptor: (Lsun/security/ssl/EngineOutputRecord;Lsun/security/ssl/EngineArgs;)Ljavax/net/ssl/SSLEngineResult$HandshakeStatus;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=4, args_size=3
        start local 0 // sun.security.ssl.SSLEngineImpl this
        start local 1 // sun.security.ssl.EngineOutputRecord eor
        start local 2 // sun.security.ssl.EngineArgs ea
         0: .line 1253
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.writer:Lsun/security/ssl/EngineWriter;
            aload 1 /* eor */
            aload 2 /* ea */
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.writeMAC:Lsun/security/ssl/MAC;
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.writeCipher:Lsun/security/ssl/CipherBox;
            invokevirtual sun.security.ssl.EngineWriter.writeRecord:(Lsun/security/ssl/EngineOutputRecord;Lsun/security/ssl/EngineArgs;Lsun/security/ssl/MAC;Lsun/security/ssl/CipherBox;)Ljavax/net/ssl/SSLEngineResult$HandshakeStatus;
         1: .line 1252
            astore 3 /* hsStatus */
        start local 3 // javax.net.ssl.SSLEngineResult$HandshakeStatus hsStatus
         2: .line 1267
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.connectionState:I
            iconst_4
            if_icmpge 6
            aload 0 /* this */
            invokevirtual sun.security.ssl.SSLEngineImpl.isOutboundDone:()Z
            ifne 6
         3: .line 1268
            aload 3 /* hsStatus */
            getstatic javax.net.ssl.SSLEngineResult$HandshakeStatus.NOT_HANDSHAKING:Ljavax/net/ssl/SSLEngineResult$HandshakeStatus;
            if_acmpne 6
         4: .line 1269
            aload 0 /* this */
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.writeMAC:Lsun/security/ssl/MAC;
            aload 1 /* eor */
            invokevirtual sun.security.ssl.EngineOutputRecord.contentType:()B
            invokevirtual sun.security.ssl.SSLEngineImpl.checkSequenceNumber:(Lsun/security/ssl/MAC;B)Z
            ifeq 6
         5: .line 1270
            aload 0 /* this */
            aconst_null
            invokevirtual sun.security.ssl.SSLEngineImpl.getHSStatus:(Ljavax/net/ssl/SSLEngineResult$HandshakeStatus;)Ljavax/net/ssl/SSLEngineResult$HandshakeStatus;
            astore 3 /* hsStatus */
         6: .line 1278
      StackMap locals: javax.net.ssl.SSLEngineResult$HandshakeStatus
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.isFirstAppOutputRecord:Z
            ifeq 8
            aload 2 /* ea */
            invokevirtual sun.security.ssl.EngineArgs.deltaApp:()I
            ifle 8
         7: .line 1279
            aload 0 /* this */
            iconst_0
            putfield sun.security.ssl.SSLEngineImpl.isFirstAppOutputRecord:Z
         8: .line 1282
      StackMap locals:
      StackMap stack:
            aload 3 /* hsStatus */
            areturn
        end local 3 // javax.net.ssl.SSLEngineResult$HandshakeStatus hsStatus
        end local 2 // sun.security.ssl.EngineArgs ea
        end local 1 // sun.security.ssl.EngineOutputRecord eor
        end local 0 // sun.security.ssl.SSLEngineImpl this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    9     0      this  Lsun/security/ssl/SSLEngineImpl;
            0    9     1       eor  Lsun/security/ssl/EngineOutputRecord;
            0    9     2        ea  Lsun/security/ssl/EngineArgs;
            2    9     3  hsStatus  Ljavax/net/ssl/SSLEngineResult$HandshakeStatus;
    Exceptions:
      throws java.io.IOException
    MethodParameters:
      Name  Flags
      eor   
      ea    

  boolean needToSplitPayload(sun.security.ssl.CipherBox, sun.security.ssl.ProtocolVersion);
    descriptor: (Lsun/security/ssl/CipherBox;Lsun/security/ssl/ProtocolVersion;)Z
    flags: (0x0000) 
    Code:
      stack=2, locals=3, args_size=3
        start local 0 // sun.security.ssl.SSLEngineImpl this
        start local 1 // sun.security.ssl.CipherBox cipher
        start local 2 // sun.security.ssl.ProtocolVersion protocol
         0: .line 1298
            aload 2 /* protocol */
            getfield sun.security.ssl.ProtocolVersion.v:I
            getstatic sun.security.ssl.ProtocolVersion.TLS10:Lsun/security/ssl/ProtocolVersion;
            getfield sun.security.ssl.ProtocolVersion.v:I
            if_icmpgt 4
         1: .line 1299
            aload 1 /* cipher */
            invokevirtual sun.security.ssl.CipherBox.isCBCMode:()Z
            ifeq 4
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.isFirstAppOutputRecord:Z
            ifne 4
         2: .line 1300
            getstatic sun.security.ssl.Record.enableCBCProtection:Z
            ifeq 4
         3: .line 1298
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         4: iconst_0
            ireturn
        end local 2 // sun.security.ssl.ProtocolVersion protocol
        end local 1 // sun.security.ssl.CipherBox cipher
        end local 0 // sun.security.ssl.SSLEngineImpl this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    5     0      this  Lsun/security/ssl/SSLEngineImpl;
            0    5     1    cipher  Lsun/security/ssl/CipherBox;
            0    5     2  protocol  Lsun/security/ssl/ProtocolVersion;
    MethodParameters:
          Name  Flags
      cipher    
      protocol  

  void writeRecord(sun.security.ssl.EngineOutputRecord);
    descriptor: (Lsun/security/ssl/EngineOutputRecord;)V
    flags: (0x0000) 
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // sun.security.ssl.SSLEngineImpl this
        start local 1 // sun.security.ssl.EngineOutputRecord eor
         0: .line 1308
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.writer:Lsun/security/ssl/EngineWriter;
            aload 1 /* eor */
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.writeMAC:Lsun/security/ssl/MAC;
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.writeCipher:Lsun/security/ssl/CipherBox;
            invokevirtual sun.security.ssl.EngineWriter.writeRecord:(Lsun/security/ssl/EngineOutputRecord;Lsun/security/ssl/MAC;Lsun/security/ssl/CipherBox;)V
         1: .line 1321
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.connectionState:I
            iconst_4
            if_icmpge 3
            aload 0 /* this */
            invokevirtual sun.security.ssl.SSLEngineImpl.isOutboundDone:()Z
            ifne 3
         2: .line 1322
            aload 0 /* this */
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.writeMAC:Lsun/security/ssl/MAC;
            aload 1 /* eor */
            invokevirtual sun.security.ssl.EngineOutputRecord.contentType:()B
            invokevirtual sun.security.ssl.SSLEngineImpl.checkSequenceNumber:(Lsun/security/ssl/MAC;B)Z
            pop
         3: .line 1324
      StackMap locals:
      StackMap stack:
            return
        end local 1 // sun.security.ssl.EngineOutputRecord eor
        end local 0 // sun.security.ssl.SSLEngineImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Lsun/security/ssl/SSLEngineImpl;
            0    4     1   eor  Lsun/security/ssl/EngineOutputRecord;
    Exceptions:
      throws java.io.IOException
    MethodParameters:
      Name  Flags
      eor   

  private boolean checkSequenceNumber(sun.security.ssl.MAC, byte);
    descriptor: (Lsun/security/ssl/MAC;B)Z
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // sun.security.ssl.SSLEngineImpl this
        start local 1 // sun.security.ssl.MAC mac
        start local 2 // byte type
         0: .line 1347
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.connectionState:I
            iconst_4
            if_icmpge 1
            aload 1 /* mac */
            getstatic sun.security.ssl.MAC.NULL:Lsun/security/ssl/MAC;
            if_acmpne 2
         1: .line 1348
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
         2: .line 1355
      StackMap locals:
      StackMap stack:
            aload 1 /* mac */
            invokevirtual sun.security.ssl.MAC.seqNumOverflow:()Z
            ifeq 10
         3: .line 1361
            getstatic sun.security.ssl.SSLEngineImpl.debug:Lsun/security/ssl/Debug;
            ifnull 8
            ldc "ssl"
            invokestatic sun.security.ssl.Debug.isOn:(Ljava/lang/String;)Z
            ifeq 8
         4: .line 1362
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            new java.lang.StringBuilder
            dup
            invokestatic sun.security.ssl.SSLEngineImpl.threadName:()Ljava/lang/String;
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
         5: .line 1363
            ldc ", sequence number extremely close to overflow "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
         6: .line 1364
            ldc "(2^64-1 packets). Closing connection."
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
         7: .line 1362
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
         8: .line 1367
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            bipush 40
            ldc "sequence number overflow"
            invokevirtual sun.security.ssl.SSLEngineImpl.fatal:(BLjava/lang/String;)V
         9: .line 1369
            iconst_1
            ireturn
        10: .line 1378
      StackMap locals:
      StackMap stack:
            iload 2 /* type */
            bipush 22
            if_icmpeq 17
            aload 1 /* mac */
            invokevirtual sun.security.ssl.MAC.seqNumIsHuge:()Z
            ifeq 17
        11: .line 1379
            getstatic sun.security.ssl.SSLEngineImpl.debug:Lsun/security/ssl/Debug;
            ifnull 15
            ldc "ssl"
            invokestatic sun.security.ssl.Debug.isOn:(Ljava/lang/String;)Z
            ifeq 15
        12: .line 1380
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            new java.lang.StringBuilder
            dup
            invokestatic sun.security.ssl.SSLEngineImpl.threadName:()Ljava/lang/String;
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc ", request renegotiation "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        13: .line 1381
            ldc "to avoid sequence number overflow"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        14: .line 1380
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
        15: .line 1384
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual sun.security.ssl.SSLEngineImpl.beginHandshake:()V
        16: .line 1385
            iconst_1
            ireturn
        17: .line 1388
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
        end local 2 // byte type
        end local 1 // sun.security.ssl.MAC mac
        end local 0 // sun.security.ssl.SSLEngineImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   18     0  this  Lsun/security/ssl/SSLEngineImpl;
            0   18     1   mac  Lsun/security/ssl/MAC;
            0   18     2  type  B
    Exceptions:
      throws java.io.IOException
    MethodParameters:
      Name  Flags
      mac   
      type  

  private void closeOutboundInternal();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=1, args_size=1
        start local 0 // sun.security.ssl.SSLEngineImpl this
         0: .line 1397
            getstatic sun.security.ssl.SSLEngineImpl.debug:Lsun/security/ssl/Debug;
            ifnull 2
            ldc "ssl"
            invokestatic sun.security.ssl.Debug.isOn:(Ljava/lang/String;)Z
            ifeq 2
         1: .line 1398
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            new java.lang.StringBuilder
            dup
            invokestatic sun.security.ssl.SSLEngineImpl.threadName:()Ljava/lang/String;
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc ", closeOutboundInternal()"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
         2: .line 1404
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.writer:Lsun/security/ssl/EngineWriter;
            invokevirtual sun.security.ssl.EngineWriter.isOutboundDone:()Z
            ifeq 4
         3: .line 1405
            return
         4: .line 1408
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.connectionState:I
            tableswitch { // 0 - 6
                    0: 5
                    1: 9
                    2: 9
                    3: 9
                    4: 8
                    5: 9
                    6: 8
              default: 9
          }
         5: .line 1414
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.writer:Lsun/security/ssl/EngineWriter;
            invokevirtual sun.security.ssl.EngineWriter.closeOutbound:()V
         6: .line 1415
            aload 0 /* this */
            iconst_1
            putfield sun.security.ssl.SSLEngineImpl.inboundDone:Z
         7: .line 1416
            goto 11
         8: .line 1420
      StackMap locals:
      StackMap stack:
            goto 11
         9: .line 1429
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iconst_0
            invokevirtual sun.security.ssl.SSLEngineImpl.warning:(B)V
        10: .line 1430
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.writer:Lsun/security/ssl/EngineWriter;
            invokevirtual sun.security.ssl.EngineWriter.closeOutbound:()V
        11: .line 1434
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            bipush 6
            putfield sun.security.ssl.SSLEngineImpl.connectionState:I
        12: .line 1435
            return
        end local 0 // sun.security.ssl.SSLEngineImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   13     0  this  Lsun/security/ssl/SSLEngineImpl;

  public synchronized void closeOutbound();
    descriptor: ()V
    flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
    Code:
      stack=4, locals=1, args_size=1
        start local 0 // sun.security.ssl.SSLEngineImpl this
         0: .line 1441
            getstatic sun.security.ssl.SSLEngineImpl.debug:Lsun/security/ssl/Debug;
            ifnull 2
            ldc "ssl"
            invokestatic sun.security.ssl.Debug.isOn:(Ljava/lang/String;)Z
            ifeq 2
         1: .line 1442
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            new java.lang.StringBuilder
            dup
            invokestatic sun.security.ssl.SSLEngineImpl.threadName:()Ljava/lang/String;
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc ", called closeOutbound()"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
         2: .line 1445
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual sun.security.ssl.SSLEngineImpl.closeOutboundInternal:()V
         3: .line 1446
            return
        end local 0 // sun.security.ssl.SSLEngineImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Lsun/security/ssl/SSLEngineImpl;

  public boolean isOutboundDone();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // sun.security.ssl.SSLEngineImpl this
         0: .line 1452
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.writer:Lsun/security/ssl/EngineWriter;
            invokevirtual sun.security.ssl.EngineWriter.isOutboundDone:()Z
            ireturn
        end local 0 // sun.security.ssl.SSLEngineImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lsun/security/ssl/SSLEngineImpl;

  private void closeInboundInternal();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=1, args_size=1
        start local 0 // sun.security.ssl.SSLEngineImpl this
         0: .line 1461
            getstatic sun.security.ssl.SSLEngineImpl.debug:Lsun/security/ssl/Debug;
            ifnull 2
            ldc "ssl"
            invokestatic sun.security.ssl.Debug.isOn:(Ljava/lang/String;)Z
            ifeq 2
         1: .line 1462
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            new java.lang.StringBuilder
            dup
            invokestatic sun.security.ssl.SSLEngineImpl.threadName:()Ljava/lang/String;
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc ", closeInboundInternal()"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
         2: .line 1468
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.inboundDone:Z
            ifeq 4
         3: .line 1469
            return
         4: .line 1472
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual sun.security.ssl.SSLEngineImpl.closeOutboundInternal:()V
         5: .line 1473
            aload 0 /* this */
            iconst_1
            putfield sun.security.ssl.SSLEngineImpl.inboundDone:Z
         6: .line 1474
            aload 0 /* this */
            bipush 6
            putfield sun.security.ssl.SSLEngineImpl.connectionState:I
         7: .line 1475
            return
        end local 0 // sun.security.ssl.SSLEngineImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    8     0  this  Lsun/security/ssl/SSLEngineImpl;

  public synchronized void closeInbound();
    descriptor: ()V
    flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
    Code:
      stack=4, locals=1, args_size=1
        start local 0 // sun.security.ssl.SSLEngineImpl this
         0: .line 1489
            getstatic sun.security.ssl.SSLEngineImpl.debug:Lsun/security/ssl/Debug;
            ifnull 2
            ldc "ssl"
            invokestatic sun.security.ssl.Debug.isOn:(Ljava/lang/String;)Z
            ifeq 2
         1: .line 1490
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            new java.lang.StringBuilder
            dup
            invokestatic sun.security.ssl.SSLEngineImpl.threadName:()Ljava/lang/String;
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc ", called closeInbound()"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
         2: .line 1496
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.connectionState:I
            ifeq 8
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.recvCN:Z
            ifne 8
         3: .line 1497
            aload 0 /* this */
            iconst_1
            putfield sun.security.ssl.SSLEngineImpl.recvCN:Z
         4: .line 1498
            aload 0 /* this */
            bipush 80
         5: .line 1499
            ldc "Inbound closed before receiving peer's close_notify: possible truncation attack?"
         6: .line 1498
            invokevirtual sun.security.ssl.SSLEngineImpl.fatal:(BLjava/lang/String;)V
         7: .line 1501
            goto 9
         8: .line 1506
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual sun.security.ssl.SSLEngineImpl.closeInboundInternal:()V
         9: .line 1508
      StackMap locals:
      StackMap stack:
            return
        end local 0 // sun.security.ssl.SSLEngineImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   10     0  this  Lsun/security/ssl/SSLEngineImpl;
    Exceptions:
      throws javax.net.ssl.SSLException

  public synchronized boolean isInboundDone();
    descriptor: ()Z
    flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // sun.security.ssl.SSLEngineImpl this
         0: .line 1514
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.inboundDone:Z
            ireturn
        end local 0 // sun.security.ssl.SSLEngineImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lsun/security/ssl/SSLEngineImpl;

  public synchronized javax.net.ssl.SSLSession getSession();
    descriptor: ()Ljavax/net/ssl/SSLSession;
    flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // sun.security.ssl.SSLEngineImpl this
         0: .line 1531
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.sess:Lsun/security/ssl/SSLSessionImpl;
            areturn
        end local 0 // sun.security.ssl.SSLEngineImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lsun/security/ssl/SSLEngineImpl;

  public synchronized java.lang.Runnable getDelegatedTask();
    descriptor: ()Ljava/lang/Runnable;
    flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // sun.security.ssl.SSLEngineImpl this
         0: .line 1539
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.handshaker:Lsun/security/ssl/Handshaker;
            ifnull 2
         1: .line 1540
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.handshaker:Lsun/security/ssl/Handshaker;
            invokevirtual sun.security.ssl.Handshaker.getTask:()Lsun/security/ssl/Handshaker$DelegatedTask;
            areturn
         2: .line 1542
      StackMap locals:
      StackMap stack:
            aconst_null
            areturn
        end local 0 // sun.security.ssl.SSLEngineImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lsun/security/ssl/SSLEngineImpl;

  void warning(byte);
    descriptor: (B)V
    flags: (0x0000) 
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // sun.security.ssl.SSLEngineImpl this
        start local 1 // byte description
         0: .line 1554
            aload 0 /* this */
            iconst_1
            iload 1 /* description */
            invokevirtual sun.security.ssl.SSLEngineImpl.sendAlert:(BB)V
         1: .line 1555
            return
        end local 1 // byte description
        end local 0 // sun.security.ssl.SSLEngineImpl this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    2     0         this  Lsun/security/ssl/SSLEngineImpl;
            0    2     1  description  B
    MethodParameters:
             Name  Flags
      description  

  synchronized void fatal(byte, java.lang.String);
    descriptor: (BLjava/lang/String;)V
    flags: (0x0020) ACC_SYNCHRONIZED
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // sun.security.ssl.SSLEngineImpl this
        start local 1 // byte description
        start local 2 // java.lang.String diagnostic
         0: .line 1559
            aload 0 /* this */
            iload 1 /* description */
            aload 2 /* diagnostic */
            aconst_null
            invokevirtual sun.security.ssl.SSLEngineImpl.fatal:(BLjava/lang/String;Ljava/lang/Throwable;)V
         1: .line 1560
            return
        end local 2 // java.lang.String diagnostic
        end local 1 // byte description
        end local 0 // sun.security.ssl.SSLEngineImpl this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    2     0         this  Lsun/security/ssl/SSLEngineImpl;
            0    2     1  description  B
            0    2     2   diagnostic  Ljava/lang/String;
    Exceptions:
      throws javax.net.ssl.SSLException
    MethodParameters:
             Name  Flags
      description  
      diagnostic   

  synchronized void fatal(byte, java.lang.Throwable);
    descriptor: (BLjava/lang/Throwable;)V
    flags: (0x0020) ACC_SYNCHRONIZED
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // sun.security.ssl.SSLEngineImpl this
        start local 1 // byte description
        start local 2 // java.lang.Throwable cause
         0: .line 1564
            aload 0 /* this */
            iload 1 /* description */
            aconst_null
            aload 2 /* cause */
            invokevirtual sun.security.ssl.SSLEngineImpl.fatal:(BLjava/lang/String;Ljava/lang/Throwable;)V
         1: .line 1565
            return
        end local 2 // java.lang.Throwable cause
        end local 1 // byte description
        end local 0 // sun.security.ssl.SSLEngineImpl this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    2     0         this  Lsun/security/ssl/SSLEngineImpl;
            0    2     1  description  B
            0    2     2        cause  Ljava/lang/Throwable;
    Exceptions:
      throws javax.net.ssl.SSLException
    MethodParameters:
             Name  Flags
      description  
      cause        

  synchronized void fatal(byte, java.lang.String, java.lang.Throwable);
    descriptor: (BLjava/lang/String;Ljava/lang/Throwable;)V
    flags: (0x0020) ACC_SYNCHRONIZED
    Code:
      stack=4, locals=5, args_size=4
        start local 0 // sun.security.ssl.SSLEngineImpl this
        start local 1 // byte description
        start local 2 // java.lang.String diagnostic
        start local 3 // java.lang.Throwable cause
         0: .line 1587
            aload 2 /* diagnostic */
            ifnonnull 2
         1: .line 1588
            ldc "General SSLEngine problem"
            astore 2 /* diagnostic */
         2: .line 1590
      StackMap locals:
      StackMap stack:
            aload 3 /* cause */
            ifnonnull 4
         3: .line 1591
            iload 1 /* description */
            aload 3 /* cause */
            aload 2 /* diagnostic */
            invokestatic sun.security.ssl.Alerts.getSSLException:(BLjava/lang/Throwable;Ljava/lang/String;)Ljavax/net/ssl/SSLException;
            astore 3 /* cause */
         4: .line 1602
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.closeReason:Ljavax/net/ssl/SSLException;
            ifnull 16
         5: .line 1603
            getstatic sun.security.ssl.SSLEngineImpl.debug:Lsun/security/ssl/Debug;
            ifnull 10
            ldc "ssl"
            invokestatic sun.security.ssl.Debug.isOn:(Ljava/lang/String;)Z
            ifeq 10
         6: .line 1604
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            new java.lang.StringBuilder
            dup
            invokestatic sun.security.ssl.SSLEngineImpl.threadName:()Ljava/lang/String;
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
         7: .line 1605
            ldc ", fatal: engine already closed.  Rethrowing "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
         8: .line 1606
            aload 3 /* cause */
            invokevirtual java.lang.Throwable.toString:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
         9: .line 1604
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
        10: .line 1608
      StackMap locals:
      StackMap stack:
            aload 3 /* cause */
            instanceof java.lang.RuntimeException
            ifeq 12
        11: .line 1609
            aload 3 /* cause */
            checkcast java.lang.RuntimeException
            athrow
        12: .line 1610
      StackMap locals:
      StackMap stack:
            aload 3 /* cause */
            instanceof javax.net.ssl.SSLException
            ifeq 14
        13: .line 1611
            aload 3 /* cause */
            checkcast javax.net.ssl.SSLException
            athrow
        14: .line 1612
      StackMap locals:
      StackMap stack:
            aload 3 /* cause */
            instanceof java.lang.Exception
            ifeq 16
        15: .line 1613
            new javax.net.ssl.SSLException
            dup
            ldc "fatal SSLEngine condition"
            aload 3 /* cause */
            invokespecial javax.net.ssl.SSLException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
            athrow
        16: .line 1617
      StackMap locals:
      StackMap stack:
            getstatic sun.security.ssl.SSLEngineImpl.debug:Lsun/security/ssl/Debug;
            ifnull 21
            ldc "ssl"
            invokestatic sun.security.ssl.Debug.isOn:(Ljava/lang/String;)Z
            ifeq 21
        17: .line 1618
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            new java.lang.StringBuilder
            dup
            invokestatic sun.security.ssl.SSLEngineImpl.threadName:()Ljava/lang/String;
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
        18: .line 1619
            ldc ", fatal error: "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            iload 1 /* description */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
        19: .line 1620
            ldc ": "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 2 /* diagnostic */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc "\n"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 3 /* cause */
            invokevirtual java.lang.Throwable.toString:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        20: .line 1618
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
        21: .line 1626
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.connectionState:I
            istore 4 /* oldState */
        start local 4 // int oldState
        22: .line 1627
            aload 0 /* this */
            iconst_4
            putfield sun.security.ssl.SSLEngineImpl.connectionState:I
        23: .line 1629
            aload 0 /* this */
            iconst_1
            putfield sun.security.ssl.SSLEngineImpl.inboundDone:Z
        24: .line 1631
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.sess:Lsun/security/ssl/SSLSessionImpl;
            invokevirtual sun.security.ssl.SSLSessionImpl.invalidate:()V
        25: .line 1637
            iload 4 /* oldState */
            ifeq 27
        26: .line 1638
            aload 0 /* this */
            iconst_2
            iload 1 /* description */
            invokevirtual sun.security.ssl.SSLEngineImpl.sendAlert:(BB)V
        27: .line 1641
      StackMap locals: int
      StackMap stack:
            aload 3 /* cause */
            instanceof javax.net.ssl.SSLException
            ifeq 30
        28: .line 1642
            aload 0 /* this */
            aload 3 /* cause */
            checkcast javax.net.ssl.SSLException
            putfield sun.security.ssl.SSLEngineImpl.closeReason:Ljavax/net/ssl/SSLException;
        29: .line 1643
            goto 33
        30: .line 1649
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
        31: .line 1650
            iload 1 /* description */
            aload 3 /* cause */
            aload 2 /* diagnostic */
            invokestatic sun.security.ssl.Alerts.getSSLException:(BLjava/lang/Throwable;Ljava/lang/String;)Ljavax/net/ssl/SSLException;
        32: .line 1649
            putfield sun.security.ssl.SSLEngineImpl.closeReason:Ljavax/net/ssl/SSLException;
        33: .line 1653
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.writer:Lsun/security/ssl/EngineWriter;
            invokevirtual sun.security.ssl.EngineWriter.closeOutbound:()V
        34: .line 1655
            aload 0 /* this */
            bipush 6
            putfield sun.security.ssl.SSLEngineImpl.connectionState:I
        35: .line 1657
            aload 3 /* cause */
            instanceof java.lang.RuntimeException
            ifeq 37
        36: .line 1658
            aload 3 /* cause */
            checkcast java.lang.RuntimeException
            athrow
        37: .line 1660
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.closeReason:Ljavax/net/ssl/SSLException;
            athrow
        end local 4 // int oldState
        end local 3 // java.lang.Throwable cause
        end local 2 // java.lang.String diagnostic
        end local 1 // byte description
        end local 0 // sun.security.ssl.SSLEngineImpl this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   38     0         this  Lsun/security/ssl/SSLEngineImpl;
            0   38     1  description  B
            0   38     2   diagnostic  Ljava/lang/String;
            0   38     3        cause  Ljava/lang/Throwable;
           22   38     4     oldState  I
    Exceptions:
      throws javax.net.ssl.SSLException
    MethodParameters:
             Name  Flags
      description  
      diagnostic   
      cause        

  private void recvAlert();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=4, args_size=1
        start local 0 // sun.security.ssl.SSLEngineImpl this
         0: .line 1669
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.inputRecord:Lsun/security/ssl/EngineInputRecord;
            invokevirtual sun.security.ssl.EngineInputRecord.read:()I
            i2b
            istore 1 /* level */
        start local 1 // byte level
         1: .line 1670
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.inputRecord:Lsun/security/ssl/EngineInputRecord;
            invokevirtual sun.security.ssl.EngineInputRecord.read:()I
            i2b
            istore 2 /* description */
        start local 2 // byte description
         2: .line 1671
            iload 2 /* description */
            iconst_m1
            if_icmpne 4
         3: .line 1672
            aload 0 /* this */
            bipush 47
            ldc "Short alert message"
            invokevirtual sun.security.ssl.SSLEngineImpl.fatal:(BLjava/lang/String;)V
         4: .line 1675
      StackMap locals: int int
      StackMap stack:
            getstatic sun.security.ssl.SSLEngineImpl.debug:Lsun/security/ssl/Debug;
            ifnull 21
            ldc "record"
            invokestatic sun.security.ssl.Debug.isOn:(Ljava/lang/String;)Z
            ifne 6
         5: .line 1676
            ldc "handshake"
            invokestatic sun.security.ssl.Debug.isOn:(Ljava/lang/String;)Z
            ifeq 21
         6: .line 1677
      StackMap locals:
      StackMap stack:
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            dup
            astore 3
            monitorenter
         7: .line 1678
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            invokestatic sun.security.ssl.SSLEngineImpl.threadName:()Ljava/lang/String;
            invokevirtual java.io.PrintStream.print:(Ljava/lang/String;)V
         8: .line 1679
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            new java.lang.StringBuilder
            dup
            ldc ", RECV "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.protocolVersion:Lsun/security/ssl/ProtocolVersion;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            ldc " ALERT:  "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual java.io.PrintStream.print:(Ljava/lang/String;)V
         9: .line 1680
            iload 1 /* level */
            iconst_2
            if_icmpne 12
        10: .line 1681
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            ldc "fatal, "
            invokevirtual java.io.PrintStream.print:(Ljava/lang/String;)V
        11: .line 1682
            goto 16
      StackMap locals: java.io.PrintStream
      StackMap stack:
        12: iload 1 /* level */
            iconst_1
            if_icmpne 15
        13: .line 1683
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            ldc "warning, "
            invokevirtual java.io.PrintStream.print:(Ljava/lang/String;)V
        14: .line 1684
            goto 16
        15: .line 1685
      StackMap locals:
      StackMap stack:
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            new java.lang.StringBuilder
            dup
            ldc "<level "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            sipush 255
            iload 1 /* level */
            iand
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            ldc ">, "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual java.io.PrintStream.print:(Ljava/lang/String;)V
        16: .line 1687
      StackMap locals:
      StackMap stack:
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            iload 2 /* description */
            invokestatic sun.security.ssl.Alerts.alertDescription:(B)Ljava/lang/String;
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
        17: .line 1677
            aload 3
            monitorexit
        18: goto 21
      StackMap locals:
      StackMap stack: java.lang.Throwable
        19: aload 3
            monitorexit
        20: athrow
        21: .line 1691
      StackMap locals:
      StackMap stack:
            iload 1 /* level */
            iconst_1
            if_icmpne 34
        22: .line 1692
            iload 2 /* description */
            ifne 31
        23: .line 1693
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.connectionState:I
            iconst_1
            if_icmpne 28
        24: .line 1694
            aload 0 /* this */
            bipush 10
        25: .line 1695
            ldc "Received close_notify during handshake"
        26: .line 1694
            invokevirtual sun.security.ssl.SSLEngineImpl.fatal:(BLjava/lang/String;)V
        27: .line 1696
            goto 40
        28: .line 1697
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iconst_1
            putfield sun.security.ssl.SSLEngineImpl.recvCN:Z
        29: .line 1698
            aload 0 /* this */
            invokevirtual sun.security.ssl.SSLEngineImpl.closeInboundInternal:()V
        30: .line 1700
            goto 40
        31: .line 1708
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.handshaker:Lsun/security/ssl/Handshaker;
            ifnull 40
        32: .line 1709
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.handshaker:Lsun/security/ssl/Handshaker;
            iload 2 /* description */
            invokevirtual sun.security.ssl.Handshaker.handshakeAlert:(B)V
        33: .line 1712
            goto 40
        34: .line 1713
      StackMap locals:
      StackMap stack:
            new java.lang.StringBuilder
            dup
            ldc "Received fatal alert: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
        35: .line 1714
            iload 2 /* description */
            invokestatic sun.security.ssl.Alerts.alertDescription:(B)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        36: .line 1713
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 3 /* reason */
        start local 3 // java.lang.String reason
        37: .line 1715
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.closeReason:Ljavax/net/ssl/SSLException;
            ifnonnull 39
        38: .line 1716
            aload 0 /* this */
            iload 2 /* description */
            aload 3 /* reason */
            invokestatic sun.security.ssl.Alerts.getSSLException:(BLjava/lang/String;)Ljavax/net/ssl/SSLException;
            putfield sun.security.ssl.SSLEngineImpl.closeReason:Ljavax/net/ssl/SSLException;
        39: .line 1718
      StackMap locals: java.lang.String
      StackMap stack:
            aload 0 /* this */
            bipush 10
            aload 3 /* reason */
            invokevirtual sun.security.ssl.SSLEngineImpl.fatal:(BLjava/lang/String;)V
        end local 3 // java.lang.String reason
        40: .line 1720
      StackMap locals:
      StackMap stack:
            return
        end local 2 // byte description
        end local 1 // byte level
        end local 0 // sun.security.ssl.SSLEngineImpl this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   41     0         this  Lsun/security/ssl/SSLEngineImpl;
            1   41     1        level  B
            2   41     2  description  B
           37   40     3       reason  Ljava/lang/String;
      Exception table:
        from    to  target  type
           7    18      19  any
          19    20      19  any
    Exceptions:
      throws java.io.IOException

  private void sendAlert(byte, byte);
    descriptor: (BB)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=6, args_size=3
        start local 0 // sun.security.ssl.SSLEngineImpl this
        start local 1 // byte level
        start local 2 // byte description
         0: .line 1728
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.connectionState:I
            bipush 6
            if_icmplt 2
         1: .line 1729
            return
         2: .line 1734
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.connectionState:I
            iconst_1
            if_icmpne 5
         3: .line 1735
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.handshaker:Lsun/security/ssl/Handshaker;
            ifnull 4
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.handshaker:Lsun/security/ssl/Handshaker;
            invokevirtual sun.security.ssl.Handshaker.started:()Z
            ifne 5
         4: .line 1736
      StackMap locals:
      StackMap stack:
            return
         5: .line 1739
      StackMap locals:
      StackMap stack:
            new sun.security.ssl.EngineOutputRecord
            dup
            bipush 21
            aload 0 /* this */
            invokespecial sun.security.ssl.EngineOutputRecord.<init>:(BLsun/security/ssl/SSLEngineImpl;)V
            astore 3 /* r */
        start local 3 // sun.security.ssl.EngineOutputRecord r
         6: .line 1740
            aload 3 /* r */
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.protocolVersion:Lsun/security/ssl/ProtocolVersion;
            invokevirtual sun.security.ssl.EngineOutputRecord.setVersion:(Lsun/security/ssl/ProtocolVersion;)V
         7: .line 1742
            getstatic sun.security.ssl.SSLEngineImpl.debug:Lsun/security/ssl/Debug;
            ifnull 8
            ldc "ssl"
            invokestatic sun.security.ssl.Debug.isOn:(Ljava/lang/String;)Z
            ifeq 8
            iconst_1
            goto 9
      StackMap locals: sun.security.ssl.EngineOutputRecord
      StackMap stack:
         8: iconst_0
      StackMap locals:
      StackMap stack: int
         9: istore 4 /* useDebug */
        start local 4 // boolean useDebug
        10: .line 1743
            iload 4 /* useDebug */
            ifeq 28
        11: .line 1744
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            dup
            astore 5
            monitorenter
        12: .line 1745
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            invokestatic sun.security.ssl.SSLEngineImpl.threadName:()Ljava/lang/String;
            invokevirtual java.io.PrintStream.print:(Ljava/lang/String;)V
        13: .line 1746
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            new java.lang.StringBuilder
            dup
            ldc ", SEND "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.protocolVersion:Lsun/security/ssl/ProtocolVersion;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            ldc " ALERT:  "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual java.io.PrintStream.print:(Ljava/lang/String;)V
        14: .line 1747
            iload 1 /* level */
            iconst_2
            if_icmpne 17
        15: .line 1748
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            ldc "fatal, "
            invokevirtual java.io.PrintStream.print:(Ljava/lang/String;)V
        16: .line 1749
            goto 21
      StackMap locals: int java.io.PrintStream
      StackMap stack:
        17: iload 1 /* level */
            iconst_1
            if_icmpne 20
        18: .line 1750
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            ldc "warning, "
            invokevirtual java.io.PrintStream.print:(Ljava/lang/String;)V
        19: .line 1751
            goto 21
        20: .line 1752
      StackMap locals:
      StackMap stack:
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            new java.lang.StringBuilder
            dup
            ldc "<level = "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            sipush 255
            iload 1 /* level */
            iand
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            ldc ">, "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual java.io.PrintStream.print:(Ljava/lang/String;)V
        21: .line 1754
      StackMap locals:
      StackMap stack:
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            new java.lang.StringBuilder
            dup
            ldc "description = "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
        22: .line 1755
            iload 2 /* description */
            invokestatic sun.security.ssl.Alerts.alertDescription:(B)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        23: .line 1754
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
        24: .line 1744
            aload 5
            monitorexit
        25: goto 28
      StackMap locals:
      StackMap stack: java.lang.Throwable
        26: aload 5
            monitorexit
        27: athrow
        28: .line 1759
      StackMap locals:
      StackMap stack:
            aload 3 /* r */
            iload 1 /* level */
            invokevirtual sun.security.ssl.EngineOutputRecord.write:(I)V
        29: .line 1760
            aload 3 /* r */
            iload 2 /* description */
            invokevirtual sun.security.ssl.EngineOutputRecord.write:(I)V
        30: .line 1762
            aload 0 /* this */
            aload 3 /* r */
            invokevirtual sun.security.ssl.SSLEngineImpl.writeRecord:(Lsun/security/ssl/EngineOutputRecord;)V
        31: .line 1763
            goto 37
      StackMap locals:
      StackMap stack: java.io.IOException
        32: astore 5 /* e */
        start local 5 // java.io.IOException e
        33: .line 1764
            iload 4 /* useDebug */
            ifeq 37
        34: .line 1765
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            new java.lang.StringBuilder
            dup
            invokestatic sun.security.ssl.SSLEngineImpl.threadName:()Ljava/lang/String;
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
        35: .line 1766
            ldc ", Exception sending alert: "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 5 /* e */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        36: .line 1765
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
        end local 5 // java.io.IOException e
        37: .line 1769
      StackMap locals:
      StackMap stack:
            return
        end local 4 // boolean useDebug
        end local 3 // sun.security.ssl.EngineOutputRecord r
        end local 2 // byte description
        end local 1 // byte level
        end local 0 // sun.security.ssl.SSLEngineImpl this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   38     0         this  Lsun/security/ssl/SSLEngineImpl;
            0   38     1        level  B
            0   38     2  description  B
            6   38     3            r  Lsun/security/ssl/EngineOutputRecord;
           10   38     4     useDebug  Z
           33   37     5            e  Ljava/io/IOException;
      Exception table:
        from    to  target  type
          12    25      26  any
          26    27      26  any
          30    31      32  Class java.io.IOException
    MethodParameters:
             Name  Flags
      level        
      description  

  public synchronized void setEnableSessionCreation(boolean);
    descriptor: (Z)V
    flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // sun.security.ssl.SSLEngineImpl this
        start local 1 // boolean flag
         0: .line 1786
            aload 0 /* this */
            iload 1 /* flag */
            putfield sun.security.ssl.SSLEngineImpl.enableSessionCreation:Z
         1: .line 1788
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.handshaker:Lsun/security/ssl/Handshaker;
            ifnull 3
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.handshaker:Lsun/security/ssl/Handshaker;
            invokevirtual sun.security.ssl.Handshaker.activated:()Z
            ifne 3
         2: .line 1789
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.handshaker:Lsun/security/ssl/Handshaker;
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.enableSessionCreation:Z
            invokevirtual sun.security.ssl.Handshaker.setEnableSessionCreation:(Z)V
         3: .line 1791
      StackMap locals:
      StackMap stack:
            return
        end local 1 // boolean flag
        end local 0 // sun.security.ssl.SSLEngineImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Lsun/security/ssl/SSLEngineImpl;
            0    4     1  flag  Z
    MethodParameters:
      Name  Flags
      flag  

  public synchronized boolean getEnableSessionCreation();
    descriptor: ()Z
    flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // sun.security.ssl.SSLEngineImpl this
         0: .line 1798
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.enableSessionCreation:Z
            ireturn
        end local 0 // sun.security.ssl.SSLEngineImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lsun/security/ssl/SSLEngineImpl;

  public synchronized void setNeedClientAuth(boolean);
    descriptor: (Z)V
    flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // sun.security.ssl.SSLEngineImpl this
        start local 1 // boolean flag
         0: .line 1811
            aload 0 /* this */
            iload 1 /* flag */
            ifeq 2
         1: .line 1812
            iconst_2
            goto 3
      StackMap locals:
      StackMap stack: sun.security.ssl.SSLEngineImpl
         2: iconst_0
         3: .line 1811
      StackMap locals: sun.security.ssl.SSLEngineImpl int
      StackMap stack: sun.security.ssl.SSLEngineImpl int
            putfield sun.security.ssl.SSLEngineImpl.doClientAuth:B
         4: .line 1814
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.handshaker:Lsun/security/ssl/Handshaker;
            ifnull 8
         5: .line 1815
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.handshaker:Lsun/security/ssl/Handshaker;
            instanceof sun.security.ssl.ServerHandshaker
            ifeq 8
         6: .line 1816
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.handshaker:Lsun/security/ssl/Handshaker;
            invokevirtual sun.security.ssl.Handshaker.activated:()Z
            ifne 8
         7: .line 1817
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.handshaker:Lsun/security/ssl/Handshaker;
            checkcast sun.security.ssl.ServerHandshaker
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.doClientAuth:B
            invokevirtual sun.security.ssl.ServerHandshaker.setClientAuth:(B)V
         8: .line 1819
      StackMap locals:
      StackMap stack:
            return
        end local 1 // boolean flag
        end local 0 // sun.security.ssl.SSLEngineImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    9     0  this  Lsun/security/ssl/SSLEngineImpl;
            0    9     1  flag  Z
    MethodParameters:
      Name  Flags
      flag  

  public synchronized boolean getNeedClientAuth();
    descriptor: ()Z
    flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // sun.security.ssl.SSLEngineImpl this
         0: .line 1822
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.doClientAuth:B
            iconst_2
            if_icmpne 1
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         1: iconst_0
            ireturn
        end local 0 // sun.security.ssl.SSLEngineImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lsun/security/ssl/SSLEngineImpl;

  public synchronized void setWantClientAuth(boolean);
    descriptor: (Z)V
    flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // sun.security.ssl.SSLEngineImpl this
        start local 1 // boolean flag
         0: .line 1834
            aload 0 /* this */
            iload 1 /* flag */
            ifeq 2
         1: .line 1835
            iconst_1
            goto 3
      StackMap locals:
      StackMap stack: sun.security.ssl.SSLEngineImpl
         2: iconst_0
         3: .line 1834
      StackMap locals: sun.security.ssl.SSLEngineImpl int
      StackMap stack: sun.security.ssl.SSLEngineImpl int
            putfield sun.security.ssl.SSLEngineImpl.doClientAuth:B
         4: .line 1837
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.handshaker:Lsun/security/ssl/Handshaker;
            ifnull 8
         5: .line 1838
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.handshaker:Lsun/security/ssl/Handshaker;
            instanceof sun.security.ssl.ServerHandshaker
            ifeq 8
         6: .line 1839
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.handshaker:Lsun/security/ssl/Handshaker;
            invokevirtual sun.security.ssl.Handshaker.activated:()Z
            ifne 8
         7: .line 1840
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.handshaker:Lsun/security/ssl/Handshaker;
            checkcast sun.security.ssl.ServerHandshaker
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.doClientAuth:B
            invokevirtual sun.security.ssl.ServerHandshaker.setClientAuth:(B)V
         8: .line 1842
      StackMap locals:
      StackMap stack:
            return
        end local 1 // boolean flag
        end local 0 // sun.security.ssl.SSLEngineImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    9     0  this  Lsun/security/ssl/SSLEngineImpl;
            0    9     1  flag  Z
    MethodParameters:
      Name  Flags
      flag  

  public synchronized boolean getWantClientAuth();
    descriptor: ()Z
    flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // sun.security.ssl.SSLEngineImpl this
         0: .line 1845
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.doClientAuth:B
            iconst_1
            if_icmpne 1
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         1: iconst_0
            ireturn
        end local 0 // sun.security.ssl.SSLEngineImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lsun/security/ssl/SSLEngineImpl;

  public synchronized void setUseClientMode(boolean);
    descriptor: (Z)V
    flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // sun.security.ssl.SSLEngineImpl this
        start local 1 // boolean flag
         0: .line 1856
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.connectionState:I
            tableswitch { // 0 - 1
                    0: 1
                    1: 13
              default: 28
          }
         1: .line 1864
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.roleIsServer:Z
            iload 1 /* flag */
            ifeq 2
            iconst_0
            goto 3
      StackMap locals:
      StackMap stack: int
         2: iconst_1
      StackMap locals: sun.security.ssl.SSLEngineImpl int
      StackMap stack: int int
         3: if_icmpeq 8
         4: .line 1865
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.sslContext:Lsun/security/ssl/SSLContextImpl;
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.enabledProtocols:Lsun/security/ssl/ProtocolList;
            invokevirtual sun.security.ssl.SSLContextImpl.isDefaultProtocolList:(Lsun/security/ssl/ProtocolList;)Z
            ifeq 8
         5: .line 1866
            aload 0 /* this */
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.sslContext:Lsun/security/ssl/SSLContextImpl;
            iload 1 /* flag */
            ifeq 6
            iconst_0
            goto 7
      StackMap locals: sun.security.ssl.SSLEngineImpl int
      StackMap stack: sun.security.ssl.SSLEngineImpl sun.security.ssl.SSLContextImpl
         6: iconst_1
      StackMap locals: sun.security.ssl.SSLEngineImpl int
      StackMap stack: sun.security.ssl.SSLEngineImpl sun.security.ssl.SSLContextImpl int
         7: invokevirtual sun.security.ssl.SSLContextImpl.getDefaultProtocolList:(Z)Lsun/security/ssl/ProtocolList;
            putfield sun.security.ssl.SSLEngineImpl.enabledProtocols:Lsun/security/ssl/ProtocolList;
         8: .line 1869
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iload 1 /* flag */
            ifeq 9
            iconst_0
            goto 10
      StackMap locals:
      StackMap stack: sun.security.ssl.SSLEngineImpl
         9: iconst_1
      StackMap locals: sun.security.ssl.SSLEngineImpl int
      StackMap stack: sun.security.ssl.SSLEngineImpl int
        10: putfield sun.security.ssl.SSLEngineImpl.roleIsServer:Z
        11: .line 1870
            aload 0 /* this */
            iconst_1
            putfield sun.security.ssl.SSLEngineImpl.serverModeSet:Z
        12: .line 1871
            goto 36
        13: .line 1881
      StackMap locals:
      StackMap stack:
            getstatic sun.security.ssl.SSLEngineImpl.$assertionsDisabled:Z
            ifne 14
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.handshaker:Lsun/security/ssl/Handshaker;
            ifnonnull 14
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
        14: .line 1882
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.handshaker:Lsun/security/ssl/Handshaker;
            invokevirtual sun.security.ssl.Handshaker.activated:()Z
            ifne 28
        15: .line 1888
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.roleIsServer:Z
            iload 1 /* flag */
            ifeq 16
            iconst_0
            goto 17
      StackMap locals:
      StackMap stack: int
        16: iconst_1
      StackMap locals: sun.security.ssl.SSLEngineImpl int
      StackMap stack: int int
        17: if_icmpeq 22
        18: .line 1889
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.sslContext:Lsun/security/ssl/SSLContextImpl;
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.enabledProtocols:Lsun/security/ssl/ProtocolList;
            invokevirtual sun.security.ssl.SSLContextImpl.isDefaultProtocolList:(Lsun/security/ssl/ProtocolList;)Z
            ifeq 22
        19: .line 1890
            aload 0 /* this */
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.sslContext:Lsun/security/ssl/SSLContextImpl;
            iload 1 /* flag */
            ifeq 20
            iconst_0
            goto 21
      StackMap locals: sun.security.ssl.SSLEngineImpl int
      StackMap stack: sun.security.ssl.SSLEngineImpl sun.security.ssl.SSLContextImpl
        20: iconst_1
      StackMap locals: sun.security.ssl.SSLEngineImpl int
      StackMap stack: sun.security.ssl.SSLEngineImpl sun.security.ssl.SSLContextImpl int
        21: invokevirtual sun.security.ssl.SSLContextImpl.getDefaultProtocolList:(Z)Lsun/security/ssl/ProtocolList;
            putfield sun.security.ssl.SSLEngineImpl.enabledProtocols:Lsun/security/ssl/ProtocolList;
        22: .line 1893
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iload 1 /* flag */
            ifeq 23
            iconst_0
            goto 24
      StackMap locals:
      StackMap stack: sun.security.ssl.SSLEngineImpl
        23: iconst_1
      StackMap locals: sun.security.ssl.SSLEngineImpl int
      StackMap stack: sun.security.ssl.SSLEngineImpl int
        24: putfield sun.security.ssl.SSLEngineImpl.roleIsServer:Z
        25: .line 1894
            aload 0 /* this */
            iconst_0
            putfield sun.security.ssl.SSLEngineImpl.connectionState:I
        26: .line 1895
            aload 0 /* this */
            invokevirtual sun.security.ssl.SSLEngineImpl.initHandshaker:()V
        27: .line 1896
            goto 36
        28: .line 1902
      StackMap locals:
      StackMap stack:
            getstatic sun.security.ssl.SSLEngineImpl.debug:Lsun/security/ssl/Debug;
            ifnull 33
            ldc "ssl"
            invokestatic sun.security.ssl.Debug.isOn:(Ljava/lang/String;)Z
            ifeq 33
        29: .line 1903
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            new java.lang.StringBuilder
            dup
            invokestatic sun.security.ssl.SSLEngineImpl.threadName:()Ljava/lang/String;
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
        30: .line 1904
            ldc ", setUseClientMode() invoked in state = "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        31: .line 1905
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.connectionState:I
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        32: .line 1903
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
        33: .line 1912
      StackMap locals:
      StackMap stack:
            new java.lang.IllegalArgumentException
            dup
        34: .line 1913
            ldc "Cannot change mode after SSL traffic has started"
        35: .line 1912
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
        36: .line 1915
      StackMap locals:
      StackMap stack:
            return
        end local 1 // boolean flag
        end local 0 // sun.security.ssl.SSLEngineImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   37     0  this  Lsun/security/ssl/SSLEngineImpl;
            0   37     1  flag  Z
    MethodParameters:
      Name  Flags
      flag  

  public synchronized boolean getUseClientMode();
    descriptor: ()Z
    flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // sun.security.ssl.SSLEngineImpl this
         0: .line 1918
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.roleIsServer:Z
            ifeq 1
            iconst_0
            goto 2
      StackMap locals:
      StackMap stack:
         1: iconst_1
      StackMap locals:
      StackMap stack: int
         2: ireturn
        end local 0 // sun.security.ssl.SSLEngineImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lsun/security/ssl/SSLEngineImpl;

  public java.lang.String[] getSupportedCipherSuites();
    descriptor: ()[Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // sun.security.ssl.SSLEngineImpl this
         0: .line 1933
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.sslContext:Lsun/security/ssl/SSLContextImpl;
            invokevirtual sun.security.ssl.SSLContextImpl.getSupportedCipherSuiteList:()Lsun/security/ssl/CipherSuiteList;
            invokevirtual sun.security.ssl.CipherSuiteList.toStringArray:()[Ljava/lang/String;
            areturn
        end local 0 // sun.security.ssl.SSLEngineImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lsun/security/ssl/SSLEngineImpl;

  public synchronized void setEnabledCipherSuites(java.lang.String[]);
    descriptor: ([Ljava/lang/String;)V
    flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // sun.security.ssl.SSLEngineImpl this
        start local 1 // java.lang.String[] suites
         0: .line 1946
            aload 0 /* this */
            new sun.security.ssl.CipherSuiteList
            dup
            aload 1 /* suites */
            invokespecial sun.security.ssl.CipherSuiteList.<init>:([Ljava/lang/String;)V
            putfield sun.security.ssl.SSLEngineImpl.enabledCipherSuites:Lsun/security/ssl/CipherSuiteList;
         1: .line 1947
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.handshaker:Lsun/security/ssl/Handshaker;
            ifnull 3
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.handshaker:Lsun/security/ssl/Handshaker;
            invokevirtual sun.security.ssl.Handshaker.activated:()Z
            ifne 3
         2: .line 1948
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.handshaker:Lsun/security/ssl/Handshaker;
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.enabledCipherSuites:Lsun/security/ssl/CipherSuiteList;
            invokevirtual sun.security.ssl.Handshaker.setEnabledCipherSuites:(Lsun/security/ssl/CipherSuiteList;)V
         3: .line 1950
      StackMap locals:
      StackMap stack:
            return
        end local 1 // java.lang.String[] suites
        end local 0 // sun.security.ssl.SSLEngineImpl this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    4     0    this  Lsun/security/ssl/SSLEngineImpl;
            0    4     1  suites  [Ljava/lang/String;
    MethodParameters:
        Name  Flags
      suites  

  public synchronized java.lang.String[] getEnabledCipherSuites();
    descriptor: ()[Ljava/lang/String;
    flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // sun.security.ssl.SSLEngineImpl this
         0: .line 1963
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.enabledCipherSuites:Lsun/security/ssl/CipherSuiteList;
            invokevirtual sun.security.ssl.CipherSuiteList.toStringArray:()[Ljava/lang/String;
            areturn
        end local 0 // sun.security.ssl.SSLEngineImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lsun/security/ssl/SSLEngineImpl;

  public java.lang.String[] getSupportedProtocols();
    descriptor: ()[Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // sun.security.ssl.SSLEngineImpl this
         0: .line 1973
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.sslContext:Lsun/security/ssl/SSLContextImpl;
            invokevirtual sun.security.ssl.SSLContextImpl.getSuportedProtocolList:()Lsun/security/ssl/ProtocolList;
            invokevirtual sun.security.ssl.ProtocolList.toStringArray:()[Ljava/lang/String;
            areturn
        end local 0 // sun.security.ssl.SSLEngineImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lsun/security/ssl/SSLEngineImpl;

  public synchronized void setEnabledProtocols(java.lang.String[]);
    descriptor: ([Ljava/lang/String;)V
    flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // sun.security.ssl.SSLEngineImpl this
        start local 1 // java.lang.String[] protocols
         0: .line 1986
            aload 0 /* this */
            new sun.security.ssl.ProtocolList
            dup
            aload 1 /* protocols */
            invokespecial sun.security.ssl.ProtocolList.<init>:([Ljava/lang/String;)V
            putfield sun.security.ssl.SSLEngineImpl.enabledProtocols:Lsun/security/ssl/ProtocolList;
         1: .line 1987
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.handshaker:Lsun/security/ssl/Handshaker;
            ifnull 3
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.handshaker:Lsun/security/ssl/Handshaker;
            invokevirtual sun.security.ssl.Handshaker.activated:()Z
            ifne 3
         2: .line 1988
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.handshaker:Lsun/security/ssl/Handshaker;
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.enabledProtocols:Lsun/security/ssl/ProtocolList;
            invokevirtual sun.security.ssl.Handshaker.setEnabledProtocols:(Lsun/security/ssl/ProtocolList;)V
         3: .line 1990
      StackMap locals:
      StackMap stack:
            return
        end local 1 // java.lang.String[] protocols
        end local 0 // sun.security.ssl.SSLEngineImpl this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    4     0       this  Lsun/security/ssl/SSLEngineImpl;
            0    4     1  protocols  [Ljava/lang/String;
    MethodParameters:
           Name  Flags
      protocols  

  public synchronized java.lang.String[] getEnabledProtocols();
    descriptor: ()[Ljava/lang/String;
    flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // sun.security.ssl.SSLEngineImpl this
         0: .line 1993
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.enabledProtocols:Lsun/security/ssl/ProtocolList;
            invokevirtual sun.security.ssl.ProtocolList.toStringArray:()[Ljava/lang/String;
            areturn
        end local 0 // sun.security.ssl.SSLEngineImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lsun/security/ssl/SSLEngineImpl;

  public synchronized boolean trySetHostnameVerification(java.lang.String);
    descriptor: (Ljava/lang/String;)Z
    flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // sun.security.ssl.SSLEngineImpl this
        start local 1 // java.lang.String identificationAlgorithm
         0: .line 2005
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.sslContext:Lsun/security/ssl/SSLContextImpl;
            invokevirtual sun.security.ssl.SSLContextImpl.getX509TrustManager:()Ljavax/net/ssl/X509TrustManager;
            instanceof com.sun.net.ssl.internal.ssl.X509ExtendedTrustManager
         1: .line 2006
            ifeq 4
         2: .line 2007
            aload 0 /* this */
            aload 1 /* identificationAlgorithm */
            putfield sun.security.ssl.SSLEngineImpl.identificationAlg:Ljava/lang/String;
         3: .line 2008
            iconst_1
            ireturn
         4: .line 2010
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
        end local 1 // java.lang.String identificationAlgorithm
        end local 0 // sun.security.ssl.SSLEngineImpl this
      LocalVariableTable:
        Start  End  Slot                     Name  Signature
            0    5     0                     this  Lsun/security/ssl/SSLEngineImpl;
            0    5     1  identificationAlgorithm  Ljava/lang/String;
    MethodParameters:
                         Name  Flags
      identificationAlgorithm  

  public synchronized java.lang.String getHostnameVerification();
    descriptor: ()Ljava/lang/String;
    flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // sun.security.ssl.SSLEngineImpl this
         0: .line 2018
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.identificationAlg:Ljava/lang/String;
            areturn
        end local 0 // sun.security.ssl.SSLEngineImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lsun/security/ssl/SSLEngineImpl;

  private static java.lang.String threadName();
    descriptor: ()Ljava/lang/String;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=1, locals=0, args_size=0
         0: .line 2025
            invokestatic java.lang.Thread.currentThread:()Ljava/lang/Thread;
            invokevirtual java.lang.Thread.getName:()Ljava/lang/String;
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  boolean receivedChangeCipherSpec();
    descriptor: ()Z
    flags: (0x0000) 
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // sun.security.ssl.SSLEngineImpl this
         0: .line 2033
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.receivedCCS:Z
            ireturn
        end local 0 // sun.security.ssl.SSLEngineImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lsun/security/ssl/SSLEngineImpl;

  public java.lang.String toString();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=1
        start local 0 // sun.security.ssl.SSLEngineImpl this
         0: .line 2040
            new java.lang.StringBuilder
            dup
            bipush 80
            invokespecial java.lang.StringBuilder.<init>:(I)V
            astore 1 /* retval */
        start local 1 // java.lang.StringBuilder retval
         1: .line 2042
            aload 1 /* retval */
            aload 0 /* this */
            invokevirtual java.lang.Object.hashCode:()I
            invokestatic java.lang.Integer.toHexString:(I)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
         2: .line 2043
            aload 1 /* retval */
            ldc "["
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
         3: .line 2044
            aload 1 /* retval */
            ldc "SSLEngine[hostname="
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
         4: .line 2045
            aload 0 /* this */
            invokevirtual sun.security.ssl.SSLEngineImpl.getPeerHost:()Ljava/lang/String;
            astore 2 /* host */
        start local 2 // java.lang.String host
         5: .line 2046
            aload 1 /* retval */
            aload 2 /* host */
            ifnonnull 6
            ldc "null"
            goto 7
      StackMap locals: sun.security.ssl.SSLEngineImpl java.lang.StringBuilder java.lang.String
      StackMap stack: java.lang.StringBuilder
         6: aload 2 /* host */
      StackMap locals: sun.security.ssl.SSLEngineImpl java.lang.StringBuilder java.lang.String
      StackMap stack: java.lang.StringBuilder java.lang.String
         7: invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
         8: .line 2047
            aload 1 /* retval */
            ldc " port="
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
         9: .line 2048
            aload 1 /* retval */
            aload 0 /* this */
            invokevirtual sun.security.ssl.SSLEngineImpl.getPeerPort:()I
            invokestatic java.lang.Integer.toString:(I)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        10: .line 2049
            aload 1 /* retval */
            ldc "] "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        11: .line 2050
            aload 1 /* retval */
            aload 0 /* this */
            invokevirtual sun.security.ssl.SSLEngineImpl.getSession:()Ljavax/net/ssl/SSLSession;
            invokeinterface javax.net.ssl.SSLSession.getCipherSuite:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        12: .line 2051
            aload 1 /* retval */
            ldc "]"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        13: .line 2053
            aload 1 /* retval */
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            areturn
        end local 2 // java.lang.String host
        end local 1 // java.lang.StringBuilder retval
        end local 0 // sun.security.ssl.SSLEngineImpl this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   14     0    this  Lsun/security/ssl/SSLEngineImpl;
            1   14     1  retval  Ljava/lang/StringBuilder;
            5   14     2    host  Ljava/lang/String;
}
SourceFile: "SSLEngineImpl.java"
InnerClasses:
  public final HandshakeStatus = javax.net.ssl.SSLEngineResult$HandshakeStatus of javax.net.ssl.SSLEngineResult
  public final Status = javax.net.ssl.SSLEngineResult$Status of javax.net.ssl.SSLEngineResult
  DelegatedTask = sun.security.ssl.Handshaker$DelegatedTask of sun.security.ssl.Handshaker