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

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

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

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

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

  private volatile sun.security.ssl.SSLSessionImpl handshakeSession;
    descriptor: Lsun/security/ssl/SSLSessionImpl;
    flags: (0x0042) ACC_PRIVATE, ACC_VOLATILE

  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 sun.security.ssl.ClientAuthType doClientAuth;
    descriptor: Lsun/security/ssl/ClientAuthType;
    flags: (0x0002) ACC_PRIVATE

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

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

  sun.security.ssl.OutputRecord outputRecord;
    descriptor: Lsun/security/ssl/OutputRecord;
    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 identificationProtocol;
    descriptor: Ljava/lang/String;
    flags: (0x0002) ACC_PRIVATE

  private java.security.AlgorithmConstraints algorithmConstraints;
    descriptor: Ljava/security/AlgorithmConstraints;
    flags: (0x0002) ACC_PRIVATE

  java.util.List<javax.net.ssl.SNIServerName> serverNames;
    descriptor: Ljava/util/List;
    flags: (0x0000) 
    Signature: Ljava/util/List<Ljavax/net/ssl/SNIServerName;>;

  java.util.Collection<javax.net.ssl.SNIMatcher> sniMatchers;
    descriptor: Ljava/util/Collection;
    flags: (0x0000) 
    Signature: Ljava/util/Collection<Ljavax/net/ssl/SNIMatcher;>;

  java.lang.String[] applicationProtocols;
    descriptor: [Ljava/lang/String;
    flags: (0x0000) 

  java.lang.String applicationProtocol;
    descriptor: Ljava/lang/String;
    flags: (0x0000) 

  java.util.function.BiFunction<javax.net.ssl.SSLEngine, java.util.List<java.lang.String>, java.lang.String> applicationProtocolSelector;
    descriptor: Ljava/util/function/BiFunction;
    flags: (0x0000) 
    Signature: Ljava/util/function/BiFunction<Ljavax/net/ssl/SSLEngine;Ljava/util/List<Ljava/lang/String;>;Ljava/lang/String;>;

  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 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 preferLocalCipherSuites;
    descriptor: Z
    flags: (0x0002) ACC_PRIVATE

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

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

  private final boolean isDTLS;
    descriptor: Z
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  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 60
            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 286
            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, boolean);
    descriptor: (Lsun/security/ssl/SSLContextImpl;Z)V
    flags: (0x0000) 
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // sun.security.ssl.SSLEngineImpl this
        start local 1 // sun.security.ssl.SSLContextImpl ctx
        start local 2 // boolean isDTLS
         0: .line 298
            aload 0 /* this */
            invokespecial javax.net.ssl.SSLEngine.<init>:()V
         1: .line 130
            aload 0 /* this */
            iconst_0
            putfield sun.security.ssl.SSLEngineImpl.inboundDone:Z
         2: .line 131
            aload 0 /* this */
            iconst_0
            putfield sun.security.ssl.SSLEngineImpl.outboundDone:Z
         3: .line 180
            aload 0 /* this */
         4: .line 181
            getstatic sun.security.ssl.ClientAuthType.CLIENT_AUTH_NONE:Lsun/security/ssl/ClientAuthType;
            putfield sun.security.ssl.SSLEngineImpl.doClientAuth:Lsun/security/ssl/ClientAuthType;
         5: .line 182
            aload 0 /* this */
            iconst_1
            putfield sun.security.ssl.SSLEngineImpl.enableSessionCreation:Z
         6: .line 191
            aload 0 /* this */
            aconst_null
            putfield sun.security.ssl.SSLEngineImpl.identificationProtocol:Ljava/lang/String;
         7: .line 194
            aload 0 /* this */
            aconst_null
            putfield sun.security.ssl.SSLEngineImpl.algorithmConstraints:Ljava/security/AlgorithmConstraints;
         8: .line 197
            aload 0 /* this */
         9: .line 198
            invokestatic java.util.Collections.emptyList:()Ljava/util/List;
            putfield sun.security.ssl.SSLEngineImpl.serverNames:Ljava/util/List;
        10: .line 199
            aload 0 /* this */
        11: .line 200
            invokestatic java.util.Collections.emptyList:()Ljava/util/List;
            putfield sun.security.ssl.SSLEngineImpl.sniMatchers:Ljava/util/Collection;
        12: .line 203
            aload 0 /* this */
            iconst_0
            anewarray java.lang.String
            putfield sun.security.ssl.SSLEngineImpl.applicationProtocols:[Ljava/lang/String;
        13: .line 208
            aload 0 /* this */
            aconst_null
            putfield sun.security.ssl.SSLEngineImpl.applicationProtocol:Ljava/lang/String;
        14: .line 215
            aload 0 /* this */
            iconst_0
            putfield sun.security.ssl.SSLEngineImpl.serverModeSet:Z
        15: .line 266
            aload 0 /* this */
            iconst_0
            putfield sun.security.ssl.SSLEngineImpl.preferLocalCipherSuites:Z
        16: .line 271
            aload 0 /* this */
            iconst_0
            putfield sun.security.ssl.SSLEngineImpl.enableRetransmissions:Z
        17: .line 276
            aload 0 /* this */
            iconst_0
            putfield sun.security.ssl.SSLEngineImpl.maximumPacketSize:I
        18: .line 299
            aload 0 /* this */
            iload 2 /* isDTLS */
            putfield sun.security.ssl.SSLEngineImpl.isDTLS:Z
        19: .line 300
            aload 0 /* this */
            aload 1 /* ctx */
            iload 2 /* isDTLS */
            invokevirtual sun.security.ssl.SSLEngineImpl.init:(Lsun/security/ssl/SSLContextImpl;Z)V
        20: .line 301
            return
        end local 2 // boolean isDTLS
        end local 1 // sun.security.ssl.SSLContextImpl ctx
        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     ctx  Lsun/security/ssl/SSLContextImpl;
            0   21     2  isDTLS  Z
    MethodParameters:
        Name  Flags
      ctx     
      isDTLS  

  void <init>(sun.security.ssl.SSLContextImpl, java.lang.String, int, boolean);
    descriptor: (Lsun/security/ssl/SSLContextImpl;Ljava/lang/String;IZ)V
    flags: (0x0000) 
    Code:
      stack=3, locals=5, args_size=5
        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
        start local 4 // boolean isDTLS
         0: .line 307
            aload 0 /* this */
            aload 2 /* host */
            iload 3 /* port */
            invokespecial javax.net.ssl.SSLEngine.<init>:(Ljava/lang/String;I)V
         1: .line 130
            aload 0 /* this */
            iconst_0
            putfield sun.security.ssl.SSLEngineImpl.inboundDone:Z
         2: .line 131
            aload 0 /* this */
            iconst_0
            putfield sun.security.ssl.SSLEngineImpl.outboundDone:Z
         3: .line 180
            aload 0 /* this */
         4: .line 181
            getstatic sun.security.ssl.ClientAuthType.CLIENT_AUTH_NONE:Lsun/security/ssl/ClientAuthType;
            putfield sun.security.ssl.SSLEngineImpl.doClientAuth:Lsun/security/ssl/ClientAuthType;
         5: .line 182
            aload 0 /* this */
            iconst_1
            putfield sun.security.ssl.SSLEngineImpl.enableSessionCreation:Z
         6: .line 191
            aload 0 /* this */
            aconst_null
            putfield sun.security.ssl.SSLEngineImpl.identificationProtocol:Ljava/lang/String;
         7: .line 194
            aload 0 /* this */
            aconst_null
            putfield sun.security.ssl.SSLEngineImpl.algorithmConstraints:Ljava/security/AlgorithmConstraints;
         8: .line 197
            aload 0 /* this */
         9: .line 198
            invokestatic java.util.Collections.emptyList:()Ljava/util/List;
            putfield sun.security.ssl.SSLEngineImpl.serverNames:Ljava/util/List;
        10: .line 199
            aload 0 /* this */
        11: .line 200
            invokestatic java.util.Collections.emptyList:()Ljava/util/List;
            putfield sun.security.ssl.SSLEngineImpl.sniMatchers:Ljava/util/Collection;
        12: .line 203
            aload 0 /* this */
            iconst_0
            anewarray java.lang.String
            putfield sun.security.ssl.SSLEngineImpl.applicationProtocols:[Ljava/lang/String;
        13: .line 208
            aload 0 /* this */
            aconst_null
            putfield sun.security.ssl.SSLEngineImpl.applicationProtocol:Ljava/lang/String;
        14: .line 215
            aload 0 /* this */
            iconst_0
            putfield sun.security.ssl.SSLEngineImpl.serverModeSet:Z
        15: .line 266
            aload 0 /* this */
            iconst_0
            putfield sun.security.ssl.SSLEngineImpl.preferLocalCipherSuites:Z
        16: .line 271
            aload 0 /* this */
            iconst_0
            putfield sun.security.ssl.SSLEngineImpl.enableRetransmissions:Z
        17: .line 276
            aload 0 /* this */
            iconst_0
            putfield sun.security.ssl.SSLEngineImpl.maximumPacketSize:I
        18: .line 308
            aload 0 /* this */
            iload 4 /* isDTLS */
            putfield sun.security.ssl.SSLEngineImpl.isDTLS:Z
        19: .line 309
            aload 0 /* this */
            aload 1 /* ctx */
            iload 4 /* isDTLS */
            invokevirtual sun.security.ssl.SSLEngineImpl.init:(Lsun/security/ssl/SSLContextImpl;Z)V
        20: .line 310
            return
        end local 4 // boolean isDTLS
        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   21     0    this  Lsun/security/ssl/SSLEngineImpl;
            0   21     1     ctx  Lsun/security/ssl/SSLContextImpl;
            0   21     2    host  Ljava/lang/String;
            0   21     3    port  I
            0   21     4  isDTLS  Z
    MethodParameters:
        Name  Flags
      ctx     
      host    
      port    
      isDTLS  

  private void init(sun.security.ssl.SSLContextImpl, boolean);
    descriptor: (Lsun/security/ssl/SSLContextImpl;Z)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // sun.security.ssl.SSLEngineImpl this
        start local 1 // sun.security.ssl.SSLContextImpl ctx
        start local 2 // boolean isDTLS
         0: .line 316
            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 317
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            ldc "Using SSLEngineImpl."
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
         2: .line 320
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* ctx */
            putfield sun.security.ssl.SSLEngineImpl.sslContext:Lsun/security/ssl/SSLContextImpl;
         3: .line 321
            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 322
            aload 0 /* this */
            aconst_null
            putfield sun.security.ssl.SSLEngineImpl.handshakeSession:Lsun/security/ssl/SSLSessionImpl;
         5: .line 323
            aload 0 /* this */
            iload 2 /* isDTLS */
            ifeq 7
         6: .line 324
            getstatic sun.security.ssl.ProtocolVersion.DEFAULT_DTLS:Lsun/security/ssl/ProtocolVersion;
            goto 8
      StackMap locals:
      StackMap stack: sun.security.ssl.SSLEngineImpl
         7: getstatic sun.security.ssl.ProtocolVersion.DEFAULT_TLS:Lsun/security/ssl/ProtocolVersion;
         8: .line 323
      StackMap locals: sun.security.ssl.SSLEngineImpl sun.security.ssl.SSLContextImpl int
      StackMap stack: sun.security.ssl.SSLEngineImpl sun.security.ssl.ProtocolVersion
            putfield sun.security.ssl.SSLEngineImpl.protocolVersion:Lsun/security/ssl/ProtocolVersion;
         9: .line 332
            aload 0 /* this */
            iconst_1
            putfield sun.security.ssl.SSLEngineImpl.roleIsServer:Z
        10: .line 333
            aload 0 /* this */
            iconst_0
            putfield sun.security.ssl.SSLEngineImpl.connectionState:I
        11: .line 336
            aload 0 /* this */
        12: .line 337
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.serverNames:Ljava/util/List;
            aload 0 /* this */
            invokevirtual sun.security.ssl.SSLEngineImpl.getPeerHost:()Ljava/lang/String;
            invokestatic sun.security.ssl.Utilities.addToSNIServerNameList:(Ljava/util/List;Ljava/lang/String;)Ljava/util/List;
        13: .line 336
            putfield sun.security.ssl.SSLEngineImpl.serverNames:Ljava/util/List;
        14: .line 340
            aload 0 /* this */
            iconst_0
            putfield sun.security.ssl.SSLEngineImpl.secureRenegotiation:Z
        15: .line 341
            aload 0 /* this */
            iconst_0
            newarray 8
            putfield sun.security.ssl.SSLEngineImpl.clientVerifyData:[B
        16: .line 342
            aload 0 /* this */
            iconst_0
            newarray 8
            putfield sun.security.ssl.SSLEngineImpl.serverVerifyData:[B
        17: .line 344
            aload 0 /* this */
        18: .line 345
            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;
        19: .line 344
            putfield sun.security.ssl.SSLEngineImpl.enabledCipherSuites:Lsun/security/ssl/CipherSuiteList;
        20: .line 346
            aload 0 /* this */
        21: .line 347
            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;
        22: .line 346
            putfield sun.security.ssl.SSLEngineImpl.enabledProtocols:Lsun/security/ssl/ProtocolList;
        23: .line 349
            aload 0 /* this */
            new java.lang.Object
            dup
            invokespecial java.lang.Object.<init>:()V
            putfield sun.security.ssl.SSLEngineImpl.wrapLock:Ljava/lang/Object;
        24: .line 350
            aload 0 /* this */
            new java.lang.Object
            dup
            invokespecial java.lang.Object.<init>:()V
            putfield sun.security.ssl.SSLEngineImpl.unwrapLock:Ljava/lang/Object;
        25: .line 351
            aload 0 /* this */
            new java.lang.Object
            dup
            invokespecial java.lang.Object.<init>:()V
            putfield sun.security.ssl.SSLEngineImpl.writeLock:Ljava/lang/Object;
        26: .line 359
            aload 0 /* this */
            invokestatic java.security.AccessController.getContext:()Ljava/security/AccessControlContext;
            putfield sun.security.ssl.SSLEngineImpl.acc:Ljava/security/AccessControlContext;
        27: .line 367
            iload 2 /* isDTLS */
            ifeq 32
        28: .line 368
            aload 0 /* this */
            iconst_1
            putfield sun.security.ssl.SSLEngineImpl.enableRetransmissions:Z
        29: .line 371
            aload 0 /* this */
            new sun.security.ssl.DTLSOutputRecord
            dup
            invokespecial sun.security.ssl.DTLSOutputRecord.<init>:()V
            putfield sun.security.ssl.SSLEngineImpl.outputRecord:Lsun/security/ssl/OutputRecord;
        30: .line 372
            aload 0 /* this */
            new sun.security.ssl.DTLSInputRecord
            dup
            invokespecial sun.security.ssl.DTLSInputRecord.<init>:()V
            putfield sun.security.ssl.SSLEngineImpl.inputRecord:Lsun/security/ssl/InputRecord;
        31: .line 374
            goto 34
        32: .line 375
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            new sun.security.ssl.SSLEngineOutputRecord
            dup
            invokespecial sun.security.ssl.SSLEngineOutputRecord.<init>:()V
            putfield sun.security.ssl.SSLEngineImpl.outputRecord:Lsun/security/ssl/OutputRecord;
        33: .line 376
            aload 0 /* this */
            new sun.security.ssl.SSLEngineInputRecord
            dup
            invokespecial sun.security.ssl.SSLEngineInputRecord.<init>:()V
            putfield sun.security.ssl.SSLEngineImpl.inputRecord:Lsun/security/ssl/InputRecord;
        34: .line 379
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.outputRecord:Lsun/security/ssl/OutputRecord;
            invokevirtual sun.security.ssl.OutputRecord.getMaxPacketSize:()I
            putfield sun.security.ssl.SSLEngineImpl.maximumPacketSize:I
        35: .line 380
            return
        end local 2 // boolean isDTLS
        end local 1 // sun.security.ssl.SSLContextImpl ctx
        end local 0 // sun.security.ssl.SSLEngineImpl this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   36     0    this  Lsun/security/ssl/SSLEngineImpl;
            0   36     1     ctx  Lsun/security/ssl/SSLContextImpl;
            0   36     2  isDTLS  Z
    MethodParameters:
        Name  Flags
      ctx     
      isDTLS  

  private void initHandshaker();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=13, locals=1, args_size=1
        start local 0 // sun.security.ssl.SSLEngineImpl this
         0: .line 399
            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 406
      StackMap locals:
      StackMap stack:
            goto 4
         2: .line 413
      StackMap locals:
      StackMap stack:
            return
         3: .line 420
      StackMap locals:
      StackMap stack:
            new java.lang.IllegalStateException
            dup
            ldc "Internal error"
            invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
            athrow
         4: .line 424
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.connectionState:I
            ifne 7
         5: .line 425
            aload 0 /* this */
            iconst_1
            putfield sun.security.ssl.SSLEngineImpl.connectionState:I
         6: .line 426
            goto 8
         7: .line 427
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iconst_3
            putfield sun.security.ssl.SSLEngineImpl.connectionState:I
         8: .line 430
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.roleIsServer:Z
            ifeq 20
         9: .line 431
            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 432
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.enabledProtocols:Lsun/security/ssl/ProtocolList;
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.doClientAuth:Lsun/security/ssl/ClientAuthType;
        12: .line 433
            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 sun.security.ssl.ClientAuthType sun.security.ssl.ProtocolVersion
        13: iconst_0
        14: .line 434
      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 sun.security.ssl.ClientAuthType 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
        15: .line 435
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.isDTLS:Z
            invokespecial sun.security.ssl.ServerHandshaker.<init>:(Lsun/security/ssl/SSLEngineImpl;Lsun/security/ssl/SSLContextImpl;Lsun/security/ssl/ProtocolList;Lsun/security/ssl/ClientAuthType;Lsun/security/ssl/ProtocolVersion;ZZ[B[BZ)V
        16: .line 431
            putfield sun.security.ssl.SSLEngineImpl.handshaker:Lsun/security/ssl/Handshaker;
        17: .line 436
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.handshaker:Lsun/security/ssl/Handshaker;
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.sniMatchers:Ljava/util/Collection;
            invokevirtual sun.security.ssl.Handshaker.setSNIMatchers:(Ljava/util/Collection;)V
        18: .line 437
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.handshaker:Lsun/security/ssl/Handshaker;
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.preferLocalCipherSuites:Z
            invokevirtual sun.security.ssl.Handshaker.setUseCipherSuitesOrder:(Z)V
        19: .line 438
            goto 29
        20: .line 439
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
        21: new sun.security.ssl.ClientHandshaker
            dup
            aload 0 /* this */
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.sslContext:Lsun/security/ssl/SSLContextImpl;
        22: .line 440
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.enabledProtocols:Lsun/security/ssl/ProtocolList;
        23: .line 441
            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 24
            iconst_1
            goto 25
      StackMap locals: sun.security.ssl.SSLEngineImpl
      StackMap stack: sun.security.ssl.SSLEngineImpl new 21 new 21 sun.security.ssl.SSLEngineImpl sun.security.ssl.SSLContextImpl sun.security.ssl.ProtocolList sun.security.ssl.ProtocolVersion
        24: iconst_0
        25: .line 442
      StackMap locals: sun.security.ssl.SSLEngineImpl
      StackMap stack: sun.security.ssl.SSLEngineImpl new 21 new 21 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
        26: .line 443
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.isDTLS:Z
            invokespecial sun.security.ssl.ClientHandshaker.<init>:(Lsun/security/ssl/SSLEngineImpl;Lsun/security/ssl/SSLContextImpl;Lsun/security/ssl/ProtocolList;Lsun/security/ssl/ProtocolVersion;ZZ[B[BZ)V
        27: .line 439
            putfield sun.security.ssl.SSLEngineImpl.handshaker:Lsun/security/ssl/Handshaker;
        28: .line 444
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.handshaker:Lsun/security/ssl/Handshaker;
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.serverNames:Ljava/util/List;
            invokevirtual sun.security.ssl.Handshaker.setSNIServerNames:(Ljava/util/List;)V
        29: .line 446
      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.maximumPacketSize:I
            invokevirtual sun.security.ssl.Handshaker.setMaximumPacketSize:(I)V
        30: .line 447
            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
        31: .line 448
            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
        32: .line 449
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.handshaker:Lsun/security/ssl/Handshaker;
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.applicationProtocols:[Ljava/lang/String;
            invokevirtual sun.security.ssl.Handshaker.setApplicationProtocols:([Ljava/lang/String;)V
        33: .line 450
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.handshaker:Lsun/security/ssl/Handshaker;
        34: .line 451
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.applicationProtocolSelector:Ljava/util/function/BiFunction;
        35: .line 450
            invokevirtual sun.security.ssl.Handshaker.setApplicationProtocolSelectorSSLEngine:(Ljava/util/function/BiFunction;)V
        36: .line 453
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.outputRecord:Lsun/security/ssl/OutputRecord;
            invokevirtual sun.security.ssl.OutputRecord.initHandshaker:()V
        37: .line 454
            return
        end local 0 // sun.security.ssl.SSLEngineImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   38     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 461
            aload 1 /* hss */
            ifnull 2
         1: .line 462
            aload 1 /* hss */
            areturn
         2: .line 465
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            dup
            astore 2
            monitorenter
         3: .line 466
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.outputRecord:Lsun/security/ssl/OutputRecord;
            invokevirtual sun.security.ssl.OutputRecord.isEmpty:()Z
            ifne 6
         4: .line 468
            getstatic javax.net.ssl.SSLEngineResult$HandshakeStatus.NEED_WRAP:Ljavax/net/ssl/SSLEngineResult$HandshakeStatus;
            aload 2
            monitorexit
         5: areturn
         6: .line 469
      StackMap locals: sun.security.ssl.SSLEngineImpl
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.handshaker:Lsun/security/ssl/Handshaker;
            ifnull 15
         7: .line 470
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.handshaker:Lsun/security/ssl/Handshaker;
            invokevirtual sun.security.ssl.Handshaker.taskOutstanding:()Z
            ifeq 10
         8: .line 471
            getstatic javax.net.ssl.SSLEngineResult$HandshakeStatus.NEED_TASK:Ljavax/net/ssl/SSLEngineResult$HandshakeStatus;
            aload 2
            monitorexit
         9: areturn
        10: .line 472
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.isDTLS:Z
            ifeq 13
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.inputRecord:Lsun/security/ssl/InputRecord;
            invokevirtual sun.security.ssl.InputRecord.isEmpty:()Z
            ifne 13
        11: .line 473
            getstatic javax.net.ssl.SSLEngineResult$HandshakeStatus.NEED_UNWRAP_AGAIN:Ljavax/net/ssl/SSLEngineResult$HandshakeStatus;
            aload 2
            monitorexit
        12: areturn
        13: .line 475
      StackMap locals:
      StackMap stack:
            getstatic javax.net.ssl.SSLEngineResult$HandshakeStatus.NEED_UNWRAP:Ljavax/net/ssl/SSLEngineResult$HandshakeStatus;
            aload 2
            monitorexit
        14: areturn
        15: .line 477
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.connectionState:I
            bipush 6
            if_icmpne 19
        16: .line 486
            aload 0 /* this */
            invokevirtual sun.security.ssl.SSLEngineImpl.isInboundDone:()Z
            ifne 19
        17: .line 487
            getstatic javax.net.ssl.SSLEngineResult$HandshakeStatus.NEED_UNWRAP:Ljavax/net/ssl/SSLEngineResult$HandshakeStatus;
            aload 2
            monitorexit
        18: areturn
        19: .line 491
      StackMap locals:
      StackMap stack:
            getstatic javax.net.ssl.SSLEngineResult$HandshakeStatus.NOT_HANDSHAKING:Ljavax/net/ssl/SSLEngineResult$HandshakeStatus;
            aload 2
            monitorexit
        20: areturn
        21: .line 465
      StackMap locals:
      StackMap stack: java.lang.Throwable
            aload 2
            monitorexit
        22: 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   23     0  this  Lsun/security/ssl/SSLEngineImpl;
            0   23     1   hss  Ljavax/net/ssl/SSLEngineResult$HandshakeStatus;
      Exception table:
        from    to  target  type
           3     5      21  any
           6     9      21  any
          10    12      21  any
          13    14      21  any
          15    18      21  any
          19    20      21  any
          21    22      21  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 496
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.handshaker:Lsun/security/ssl/Handshaker;
            ifnull 2
         1: .line 497
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.handshaker:Lsun/security/ssl/Handshaker;
            invokevirtual sun.security.ssl.Handshaker.checkThrown:()V
         2: .line 499
      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 510
            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 514
            aload 0 /* this */
            iload 1 /* state */
            putfield sun.security.ssl.SSLEngineImpl.connectionState:I
         1: .line 515
            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 525
            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 533
            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;

  void changeWriteCiphers();
    descriptor: ()V
    flags: (0x0000) 
    Code:
      stack=4, locals=4, args_size=1
        start local 0 // sun.security.ssl.SSLEngineImpl this
         0: .line 547
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.handshaker:Lsun/security/ssl/Handshaker;
            invokevirtual sun.security.ssl.Handshaker.newWriteCipher:()Lsun/security/ssl/CipherBox;
            astore 2 /* writeCipher */
        start local 2 // sun.security.ssl.CipherBox writeCipher
         1: .line 548
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.handshaker:Lsun/security/ssl/Handshaker;
            invokevirtual sun.security.ssl.Handshaker.newWriteAuthenticator:()Lsun/security/ssl/Authenticator;
            astore 1 /* writeAuthenticator */
        start local 1 // sun.security.ssl.Authenticator writeAuthenticator
         2: .line 549
            goto 5
        end local 2 // sun.security.ssl.CipherBox writeCipher
        end local 1 // sun.security.ssl.Authenticator writeAuthenticator
      StackMap locals:
      StackMap stack: java.security.GeneralSecurityException
         3: astore 3 /* e */
        start local 3 // java.security.GeneralSecurityException e
         4: .line 551
            new javax.net.ssl.SSLException
            dup
            ldc "Algorithm missing:  "
            aload 3 /* e */
            invokespecial javax.net.ssl.SSLException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
            athrow
        end local 3 // java.security.GeneralSecurityException e
        start local 1 // sun.security.ssl.Authenticator writeAuthenticator
        start local 2 // sun.security.ssl.CipherBox writeCipher
         5: .line 554
      StackMap locals: sun.security.ssl.Authenticator sun.security.ssl.CipherBox
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.outputRecord:Lsun/security/ssl/OutputRecord;
            aload 1 /* writeAuthenticator */
            aload 2 /* writeCipher */
            invokevirtual sun.security.ssl.OutputRecord.changeWriteCiphers:(Lsun/security/ssl/Authenticator;Lsun/security/ssl/CipherBox;)V
         6: .line 555
            return
        end local 2 // sun.security.ssl.CipherBox writeCipher
        end local 1 // sun.security.ssl.Authenticator writeAuthenticator
        end local 0 // sun.security.ssl.SSLEngineImpl this
      LocalVariableTable:
        Start  End  Slot                Name  Signature
            0    7     0                this  Lsun/security/ssl/SSLEngineImpl;
            2    3     1  writeAuthenticator  Lsun/security/ssl/Authenticator;
            5    7     1  writeAuthenticator  Lsun/security/ssl/Authenticator;
            1    3     2         writeCipher  Lsun/security/ssl/CipherBox;
            5    7     2         writeCipher  Lsun/security/ssl/CipherBox;
            4    5     3                   e  Ljava/security/GeneralSecurityException;
      Exception table:
        from    to  target  type
           0     2       3  Class java.security.GeneralSecurityException
    Exceptions:
      throws java.io.IOException

  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 562
            aload 0 /* this */
            aload 1 /* protocolVersion */
            putfield sun.security.ssl.SSLEngineImpl.protocolVersion:Lsun/security/ssl/ProtocolVersion;
         1: .line 563
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.outputRecord:Lsun/security/ssl/OutputRecord;
            aload 1 /* protocolVersion */
            invokevirtual sun.security.ssl.OutputRecord.setVersion:(Lsun/security/ssl/ProtocolVersion;)V
         2: .line 564
            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 582
            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 585
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.serverModeSet:Z
            ifne 5
         2: .line 586
            new java.lang.IllegalStateException
            dup
         3: .line 587
            ldc "Client/Server mode not yet set."
         4: .line 586
            invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
            athrow
         5: .line 589
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual sun.security.ssl.SSLEngineImpl.initHandshaker:()V
         6: .line 590
            goto 21
         7: .line 594
      StackMap locals:
      StackMap stack:
            goto 21
         8: .line 597
      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 598
            new javax.net.ssl.SSLHandshakeException
            dup
        10: .line 599
            ldc "Insecure renegotiation is not allowed"
        11: .line 598
            invokespecial javax.net.ssl.SSLHandshakeException.<init>:(Ljava/lang/String;)V
            athrow
        12: .line 602
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.secureRenegotiation:Z
            ifne 17
        13: .line 603
            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 604
            getstatic java.lang.System.out:Ljava/io/PrintStream;
        15: .line 605
            ldc "Warning: Using insecure renegotiation"
        16: .line 604
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
        17: .line 610
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual sun.security.ssl.SSLEngineImpl.initHandshaker:()V
        18: .line 611
            goto 21
        19: .line 615
      StackMap locals:
      StackMap stack:
            return
        20: .line 619
      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 625
      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 31
        22: .line 627
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.connectionState:I
            iconst_3
            if_icmpne 25
        23: .line 629
            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 630
            goto 26
        25: .line 631
      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 634
      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 636
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.handshaker:Lsun/security/ssl/Handshaker;
            invokevirtual sun.security.ssl.Handshaker.kickstart:()V
        28: .line 637
            goto 31
        29: .line 638
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.connectionState:I
            iconst_1
            if_icmpeq 31
        30: .line 642
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.handshaker:Lsun/security/ssl/Handshaker;
            invokevirtual sun.security.ssl.Handshaker.kickstart:()V
        31: .line 646
      StackMap locals:
      StackMap stack:
            return
        end local 0 // sun.security.ssl.SSLEngineImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   32     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 654
            aload 0 /* this */
            invokevirtual sun.security.ssl.SSLEngineImpl.kickstartHandshake:()V
         1: .line 655
            goto 6
      StackMap locals:
      StackMap stack: java.lang.Exception
         2: astore 1 /* e */
        start local 1 // java.lang.Exception e
         3: .line 656
            aload 0 /* this */
            bipush 40
         4: .line 657
            ldc "Couldn't kickstart handshaking"
            aload 1 /* e */
         5: .line 656
            invokevirtual sun.security.ssl.SSLEngineImpl.fatal:(BLjava/lang/String;Ljava/lang/Throwable;)V
        end local 1 // java.lang.Exception e
         6: .line 659
      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=5, locals=6, 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 676
            aload 1 /* netData */
            aload 2 /* appData */
            iload 3 /* offset */
            iload 4 /* length */
            iconst_0
            invokestatic sun.security.ssl.SSLEngineImpl.checkEngineParas:(Ljava/nio/ByteBuffer;[Ljava/nio/ByteBuffer;IIZ)V
         1: .line 679
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.unwrapLock:Ljava/lang/Object;
            dup
            astore 5
            monitorenter
         2: .line 680
            aload 0 /* this */
            aload 1 /* netData */
            aload 2 /* appData */
            iload 3 /* offset */
            iload 4 /* length */
            invokevirtual sun.security.ssl.SSLEngineImpl.readNetRecord:(Ljava/nio/ByteBuffer;[Ljava/nio/ByteBuffer;II)Ljavax/net/ssl/SSLEngineResult;
            aload 5
            monitorexit
         3: areturn
         4: .line 679
      StackMap locals: sun.security.ssl.SSLEngineImpl java.nio.ByteBuffer java.nio.ByteBuffer[] int int java.lang.Object
      StackMap stack: java.lang.Throwable
            aload 5
            monitorexit
         5: athrow
         6: .line 682
      StackMap locals: sun.security.ssl.SSLEngineImpl java.nio.ByteBuffer java.nio.ByteBuffer[] int int
      StackMap stack: javax.net.ssl.SSLProtocolException
            astore 5 /* spe */
        start local 5 // javax.net.ssl.SSLProtocolException spe
         7: .line 684
            aload 0 /* this */
            bipush 10
            aload 5 /* spe */
            invokevirtual javax.net.ssl.SSLProtocolException.getMessage:()Ljava/lang/String;
            aload 5 /* spe */
            invokevirtual sun.security.ssl.SSLEngineImpl.fatal:(BLjava/lang/String;Ljava/lang/Throwable;)V
         8: .line 685
            aconst_null
            areturn
        end local 5 // javax.net.ssl.SSLProtocolException spe
         9: .line 686
      StackMap locals:
      StackMap stack: java.lang.Exception
            astore 5 /* e */
        start local 5 // java.lang.Exception e
        10: .line 693
            aload 0 /* this */
            bipush 80
        11: .line 694
            ldc "problem unwrapping net record"
            aload 5 /* e */
        12: .line 693
            invokevirtual sun.security.ssl.SSLEngineImpl.fatal:(BLjava/lang/String;Ljava/lang/Throwable;)V
        13: .line 695
            aconst_null
            areturn
        end local 5 // java.lang.Exception e
        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   14     0     this  Lsun/security/ssl/SSLEngineImpl;
            0   14     1  netData  Ljava/nio/ByteBuffer;
            0   14     2  appData  [Ljava/nio/ByteBuffer;
            0   14     3   offset  I
            0   14     4   length  I
            7    9     5      spe  Ljavax/net/ssl/SSLProtocolException;
           10   14     5        e  Ljava/lang/Exception;
      Exception table:
        from    to  target  type
           2     3       4  any
           4     5       4  any
           1     3       6  Class javax.net.ssl.SSLProtocolException
           4     6       6  Class javax.net.ssl.SSLProtocolException
           1     3       9  Class java.lang.Exception
           4     6       9  Class java.lang.Exception
    Exceptions:
      throws javax.net.ssl.SSLException
    MethodParameters:
         Name  Flags
      netData  
      appData  
      offset   
      length   

  private static void checkEngineParas(java.nio.ByteBuffer, java.nio.ByteBuffer[], int, int, boolean);
    descriptor: (Ljava/nio/ByteBuffer;[Ljava/nio/ByteBuffer;IIZ)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=5, locals=6, args_size=5
        start local 0 // java.nio.ByteBuffer netData
        start local 1 // java.nio.ByteBuffer[] appData
        start local 2 // int offset
        start local 3 // int len
        start local 4 // boolean isForWrap
         0: .line 702
            aload 0 /* netData */
            ifnull 1
            aload 1 /* appData */
            ifnonnull 2
         1: .line 703
      StackMap locals:
      StackMap stack:
            new java.lang.IllegalArgumentException
            dup
            ldc "src/dst is null"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 706
      StackMap locals:
      StackMap stack:
            iload 2 /* offset */
            iflt 3
            iload 3 /* len */
            iflt 3
            iload 2 /* offset */
            aload 1 /* appData */
            arraylength
            iload 3 /* len */
            isub
            if_icmple 4
         3: .line 707
      StackMap locals:
      StackMap stack:
            new java.lang.IndexOutOfBoundsException
            dup
            invokespecial java.lang.IndexOutOfBoundsException.<init>:()V
            athrow
         4: .line 713
      StackMap locals:
      StackMap stack:
            iload 4 /* isForWrap */
            ifeq 6
            aload 0 /* netData */
            invokevirtual java.nio.ByteBuffer.isReadOnly:()Z
            ifeq 6
         5: .line 714
            new java.nio.ReadOnlyBufferException
            dup
            invokespecial java.nio.ReadOnlyBufferException.<init>:()V
            athrow
         6: .line 717
      StackMap locals:
      StackMap stack:
            iload 2 /* offset */
            istore 5 /* i */
        start local 5 // int i
         7: goto 15
         8: .line 718
      StackMap locals: int
      StackMap stack:
            aload 1 /* appData */
            iload 5 /* i */
            aaload
            ifnonnull 12
         9: .line 719
            new java.lang.IllegalArgumentException
            dup
        10: .line 720
            new java.lang.StringBuilder
            dup
            ldc "appData["
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            iload 5 /* i */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            ldc "] == null"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        11: .line 719
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
        12: .line 726
      StackMap locals:
      StackMap stack:
            iload 4 /* isForWrap */
            ifne 14
            aload 1 /* appData */
            iload 5 /* i */
            aaload
            invokevirtual java.nio.ByteBuffer.isReadOnly:()Z
            ifeq 14
        13: .line 727
            new java.nio.ReadOnlyBufferException
            dup
            invokespecial java.nio.ReadOnlyBufferException.<init>:()V
            athrow
        14: .line 717
      StackMap locals:
      StackMap stack:
            iinc 5 /* i */ 1
      StackMap locals:
      StackMap stack:
        15: iload 5 /* i */
            iload 2 /* offset */
            iload 3 /* len */
            iadd
            if_icmplt 8
        end local 5 // int i
        16: .line 730
            return
        end local 4 // boolean isForWrap
        end local 3 // int len
        end local 2 // int offset
        end local 1 // java.nio.ByteBuffer[] appData
        end local 0 // java.nio.ByteBuffer netData
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   17     0    netData  Ljava/nio/ByteBuffer;
            0   17     1    appData  [Ljava/nio/ByteBuffer;
            0   17     2     offset  I
            0   17     3        len  I
            0   17     4  isForWrap  Z
            7   16     5          i  I
    MethodParameters:
           Name  Flags
      netData    
      appData    
      offset     
      len        
      isForWrap  

  private javax.net.ssl.SSLEngineResult readNetRecord(java.nio.ByteBuffer, java.nio.ByteBuffer[], int, int);
    descriptor: (Ljava/nio/ByteBuffer;[Ljava/nio/ByteBuffer;II)Ljavax/net/ssl/SSLEngineResult;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=8, locals=14, 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 739
            aconst_null
            astore 5 /* status */
        start local 5 // javax.net.ssl.SSLEngineResult$Status status
         1: .line 740
            aconst_null
            astore 6 /* hsStatus */
        start local 6 // javax.net.ssl.SSLEngineResult$HandshakeStatus hsStatus
         2: .line 745
            aload 0 /* this */
            invokevirtual sun.security.ssl.SSLEngineImpl.checkTaskThrown:()V
         3: .line 750
            aload 0 /* this */
            invokevirtual sun.security.ssl.SSLEngineImpl.isInboundDone:()Z
            ifeq 5
         4: .line 751
            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 758
      StackMap locals: javax.net.ssl.SSLEngineResult$Status javax.net.ssl.SSLEngineResult$HandshakeStatus
      StackMap stack:
            aload 0 /* this */
            dup
            astore 7
            monitorenter
         6: .line 759
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.connectionState:I
            iconst_1
            if_icmpeq 8
         7: .line 760
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.connectionState:I
            ifne 13
         8: .line 761
      StackMap locals: sun.security.ssl.SSLEngineImpl
      StackMap stack:
            aload 0 /* this */
            invokevirtual sun.security.ssl.SSLEngineImpl.kickstartHandshake:()V
         9: .line 767
            aload 0 /* this */
            aconst_null
            invokevirtual sun.security.ssl.SSLEngineImpl.getHSStatus:(Ljavax/net/ssl/SSLEngineResult$HandshakeStatus;)Ljavax/net/ssl/SSLEngineResult$HandshakeStatus;
            astore 6 /* hsStatus */
        10: .line 769
            aload 6 /* hsStatus */
            getstatic javax.net.ssl.SSLEngineResult$HandshakeStatus.NEED_WRAP:Ljavax/net/ssl/SSLEngineResult$HandshakeStatus;
            if_acmpne 13
        11: .line 770
            new javax.net.ssl.SSLEngineResult
            dup
            getstatic javax.net.ssl.SSLEngineResult$Status.OK:Ljavax/net/ssl/SSLEngineResult$Status;
            aload 6 /* hsStatus */
            iconst_0
            iconst_0
            invokespecial javax.net.ssl.SSLEngineResult.<init>:(Ljavax/net/ssl/SSLEngineResult$Status;Ljavax/net/ssl/SSLEngineResult$HandshakeStatus;II)V
            aload 7
            monitorexit
        12: areturn
        13: .line 758
      StackMap locals:
      StackMap stack:
            aload 7
            monitorexit
        14: goto 17
      StackMap locals:
      StackMap stack: java.lang.Throwable
        15: aload 7
            monitorexit
        16: athrow
        17: .line 781
      StackMap locals:
      StackMap stack:
            aload 6 /* hsStatus */
            ifnonnull 19
        18: .line 782
            aload 0 /* this */
            aconst_null
            invokevirtual sun.security.ssl.SSLEngineImpl.getHSStatus:(Ljavax/net/ssl/SSLEngineResult$HandshakeStatus;)Ljavax/net/ssl/SSLEngineResult$HandshakeStatus;
            astore 6 /* hsStatus */
        19: .line 791
      StackMap locals:
      StackMap stack:
            aload 6 /* hsStatus */
            getstatic javax.net.ssl.SSLEngineResult$HandshakeStatus.NEED_TASK:Ljavax/net/ssl/SSLEngineResult$HandshakeStatus;
            if_acmpne 21
        20: .line 792
            new javax.net.ssl.SSLEngineResult
            dup
            getstatic javax.net.ssl.SSLEngineResult$Status.OK:Ljavax/net/ssl/SSLEngineResult$Status;
            aload 6 /* hsStatus */
            iconst_0
            iconst_0
            invokespecial javax.net.ssl.SSLEngineResult.<init>:(Ljavax/net/ssl/SSLEngineResult$Status;Ljavax/net/ssl/SSLEngineResult$HandshakeStatus;II)V
            areturn
        21: .line 795
      StackMap locals:
      StackMap stack:
            aload 6 /* hsStatus */
            getstatic javax.net.ssl.SSLEngineResult$HandshakeStatus.NEED_UNWRAP_AGAIN:Ljavax/net/ssl/SSLEngineResult$HandshakeStatus;
            if_acmpne 36
        22: .line 796
            aconst_null
            astore 7 /* plainText */
        start local 7 // sun.security.ssl.Plaintext plainText
        23: .line 798
            aload 0 /* this */
            aconst_null
            aconst_null
            iconst_0
            iconst_0
            invokevirtual sun.security.ssl.SSLEngineImpl.readRecord:(Ljava/nio/ByteBuffer;[Ljava/nio/ByteBuffer;II)Lsun/security/ssl/Plaintext;
            astore 7 /* plainText */
        24: .line 799
            goto 29
      StackMap locals: sun.security.ssl.SSLEngineImpl java.nio.ByteBuffer java.nio.ByteBuffer[] int int javax.net.ssl.SSLEngineResult$Status javax.net.ssl.SSLEngineResult$HandshakeStatus sun.security.ssl.Plaintext
      StackMap stack: javax.net.ssl.SSLException
        25: astore 8 /* e */
        start local 8 // javax.net.ssl.SSLException e
        26: .line 800
            aload 8 /* e */
            athrow
        end local 8 // javax.net.ssl.SSLException e
        27: .line 801
      StackMap locals:
      StackMap stack: java.io.IOException
            astore 8 /* e */
        start local 8 // java.io.IOException e
        28: .line 802
            new javax.net.ssl.SSLException
            dup
            ldc "readRecord"
            aload 8 /* e */
            invokespecial javax.net.ssl.SSLException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
            athrow
        end local 8 // java.io.IOException e
        29: .line 805
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual sun.security.ssl.SSLEngineImpl.isInboundDone:()Z
            ifeq 30
            getstatic javax.net.ssl.SSLEngineResult$Status.CLOSED:Ljavax/net/ssl/SSLEngineResult$Status;
            goto 31
      StackMap locals:
      StackMap stack:
        30: getstatic javax.net.ssl.SSLEngineResult$Status.OK:Ljavax/net/ssl/SSLEngineResult$Status;
      StackMap locals:
      StackMap stack: javax.net.ssl.SSLEngineResult$Status
        31: astore 5 /* status */
        32: .line 806
            aload 0 /* this */
            aload 7 /* plainText */
            getfield sun.security.ssl.Plaintext.handshakeStatus:Ljavax/net/ssl/SSLEngineResult$HandshakeStatus;
            invokevirtual sun.security.ssl.SSLEngineImpl.getHSStatus:(Ljavax/net/ssl/SSLEngineResult$HandshakeStatus;)Ljavax/net/ssl/SSLEngineResult$HandshakeStatus;
            astore 6 /* hsStatus */
        33: .line 808
            new javax.net.ssl.SSLEngineResult
            dup
        34: .line 809
            aload 5 /* status */
            aload 6 /* hsStatus */
            iconst_0
            iconst_0
            aload 7 /* plainText */
            getfield sun.security.ssl.Plaintext.recordSN:J
        35: .line 808
            invokespecial javax.net.ssl.SSLEngineResult.<init>:(Ljavax/net/ssl/SSLEngineResult$Status;Ljavax/net/ssl/SSLEngineResult$HandshakeStatus;IIJ)V
            areturn
        end local 7 // sun.security.ssl.Plaintext plainText
        36: .line 816
      StackMap locals:
      StackMap stack:
            iconst_0
            istore 7 /* packetLen */
        start local 7 // int packetLen
        37: .line 818
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.inputRecord:Lsun/security/ssl/InputRecord;
            aload 1 /* netData */
            invokevirtual sun.security.ssl.InputRecord.bytesInCompletePacket:(Ljava/nio/ByteBuffer;)I
            istore 7 /* packetLen */
        38: .line 819
            goto 55
      StackMap locals: sun.security.ssl.SSLEngineImpl java.nio.ByteBuffer java.nio.ByteBuffer[] int int javax.net.ssl.SSLEngineResult$Status javax.net.ssl.SSLEngineResult$HandshakeStatus int
      StackMap stack: javax.net.ssl.SSLException
        39: astore 8 /* ssle */
        start local 8 // javax.net.ssl.SSLException ssle
        40: .line 821
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.isDTLS:Z
            ifeq 54
        41: .line 822
            getstatic sun.security.ssl.SSLEngineImpl.debug:Lsun/security/ssl/Debug;
            ifnull 47
            ldc "ssl"
            invokestatic sun.security.ssl.Debug.isOn:(Ljava/lang/String;)Z
            ifeq 47
        42: .line 823
            getstatic java.lang.System.out:Ljava/io/PrintStream;
        43: .line 824
            new java.lang.StringBuilder
            dup
            invokestatic java.lang.Thread.currentThread:()Ljava/lang/Thread;
            invokevirtual java.lang.Thread.getName:()Ljava/lang/String;
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
        44: .line 825
            ldc " discard invalid record: "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 8 /* ssle */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
        45: .line 824
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        46: .line 823
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
        47: .line 829
      StackMap locals: javax.net.ssl.SSLException
      StackMap stack:
            aload 1 /* netData */
            invokevirtual java.nio.ByteBuffer.remaining:()I
            istore 9 /* deltaNet */
        start local 9 // int deltaNet
        48: .line 830
            aload 1 /* netData */
            aload 1 /* netData */
            invokevirtual java.nio.ByteBuffer.limit:()I
            invokevirtual java.nio.ByteBuffer.position:(I)Ljava/nio/ByteBuffer;
            pop
        49: .line 832
            aload 0 /* this */
            invokevirtual sun.security.ssl.SSLEngineImpl.isInboundDone:()Z
            ifeq 50
            getstatic javax.net.ssl.SSLEngineResult$Status.CLOSED:Ljavax/net/ssl/SSLEngineResult$Status;
            goto 51
      StackMap locals: int
      StackMap stack:
        50: getstatic javax.net.ssl.SSLEngineResult$Status.OK:Ljavax/net/ssl/SSLEngineResult$Status;
      StackMap locals:
      StackMap stack: javax.net.ssl.SSLEngineResult$Status
        51: astore 5 /* status */
        52: .line 833
            aload 0 /* this */
            aload 6 /* hsStatus */
            invokevirtual sun.security.ssl.SSLEngineImpl.getHSStatus:(Ljavax/net/ssl/SSLEngineResult$HandshakeStatus;)Ljavax/net/ssl/SSLEngineResult$HandshakeStatus;
            astore 6 /* hsStatus */
        53: .line 835
            new javax.net.ssl.SSLEngineResult
            dup
            aload 5 /* status */
            aload 6 /* hsStatus */
            iload 9 /* deltaNet */
            iconst_0
            ldc -1
            invokespecial javax.net.ssl.SSLEngineResult.<init>:(Ljavax/net/ssl/SSLEngineResult$Status;Ljavax/net/ssl/SSLEngineResult$HandshakeStatus;IIJ)V
            areturn
        end local 9 // int deltaNet
        54: .line 837
      StackMap locals:
      StackMap stack:
            aload 8 /* ssle */
            athrow
        end local 8 // javax.net.ssl.SSLException ssle
        55: .line 842
      StackMap locals:
      StackMap stack:
            iload 7 /* packetLen */
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.sess:Lsun/security/ssl/SSLSessionImpl;
            invokevirtual sun.security.ssl.SSLSessionImpl.getPacketBufferSize:()I
            if_icmple 69
        56: .line 843
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.isDTLS:Z
            ifeq 58
        57: .line 844
            sipush 16717
            goto 59
      StackMap locals:
      StackMap stack:
        58: ldc 33093
        59: .line 843
      StackMap locals:
      StackMap stack: int
            istore 8 /* largestRecordSize */
        start local 8 // int largestRecordSize
        60: .line 845
            iload 7 /* packetLen */
            iload 8 /* largestRecordSize */
            if_icmpgt 62
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.isDTLS:Z
            ifne 62
        61: .line 853
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.sess:Lsun/security/ssl/SSLSessionImpl;
            invokevirtual sun.security.ssl.SSLSessionImpl.expandBufferSizes:()V
        62: .line 857
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.sess:Lsun/security/ssl/SSLSessionImpl;
            invokevirtual sun.security.ssl.SSLSessionImpl.getPacketBufferSize:()I
            istore 8 /* largestRecordSize */
        63: .line 858
            iload 7 /* packetLen */
            iload 8 /* largestRecordSize */
            if_icmple 69
        64: .line 859
            new javax.net.ssl.SSLProtocolException
            dup
        65: .line 860
            new java.lang.StringBuilder
            dup
            ldc "Input record too big: max = "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
        66: .line 861
            iload 8 /* largestRecordSize */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            ldc " len = "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            iload 7 /* packetLen */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
        67: .line 860
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        68: .line 859
            invokespecial javax.net.ssl.SSLProtocolException.<init>:(Ljava/lang/String;)V
            athrow
        end local 8 // int largestRecordSize
        69: .line 865
      StackMap locals:
      StackMap stack:
            aload 1 /* netData */
            invokevirtual java.nio.ByteBuffer.position:()I
            istore 8 /* netPos */
        start local 8 // int netPos
        70: .line 866
            iconst_0
            istore 9 /* appRemains */
        start local 9 // int appRemains
        71: .line 867
            iload 3 /* offset */
            istore 10 /* i */
        start local 10 // int i
        72: goto 79
        73: .line 868
      StackMap locals: int int int
      StackMap stack:
            aload 2 /* appData */
            iload 10 /* i */
            aaload
            ifnonnull 77
        74: .line 869
            new java.lang.IllegalArgumentException
            dup
        75: .line 870
            new java.lang.StringBuilder
            dup
            ldc "appData["
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            iload 10 /* i */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            ldc "] == null"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        76: .line 869
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
        77: .line 872
      StackMap locals:
      StackMap stack:
            iload 9 /* appRemains */
            aload 2 /* appData */
            iload 10 /* i */
            aaload
            invokevirtual java.nio.ByteBuffer.remaining:()I
            iadd
            istore 9 /* appRemains */
        78: .line 867
            iinc 10 /* i */ 1
      StackMap locals:
      StackMap stack:
        79: iload 10 /* i */
            iload 3 /* offset */
            iload 4 /* length */
            iadd
            if_icmplt 73
        end local 10 // int i
        80: .line 882
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.connectionState:I
            iconst_2
            if_icmpeq 82
        81: .line 883
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.connectionState:I
            iconst_3
            if_icmpne 87
        82: .line 885
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.inputRecord:Lsun/security/ssl/InputRecord;
            iload 7 /* packetLen */
            invokevirtual sun.security.ssl.InputRecord.estimateFragmentSize:(I)I
            istore 10 /* FragLen */
        start local 10 // int FragLen
        83: .line 886
            iload 10 /* FragLen */
            iload 9 /* appRemains */
            if_icmple 87
        84: .line 887
            new javax.net.ssl.SSLEngineResult
            dup
        85: .line 888
            getstatic javax.net.ssl.SSLEngineResult$Status.BUFFER_OVERFLOW:Ljavax/net/ssl/SSLEngineResult$Status;
            aload 6 /* hsStatus */
            iconst_0
            iconst_0
        86: .line 887
            invokespecial javax.net.ssl.SSLEngineResult.<init>:(Ljavax/net/ssl/SSLEngineResult$Status;Ljavax/net/ssl/SSLEngineResult$HandshakeStatus;II)V
            areturn
        end local 10 // int FragLen
        87: .line 893
      StackMap locals:
      StackMap stack:
            iload 7 /* packetLen */
            iconst_m1
            if_icmpeq 88
            aload 1 /* netData */
            invokevirtual java.nio.ByteBuffer.remaining:()I
            iload 7 /* packetLen */
            if_icmpge 89
        88: .line 894
      StackMap locals:
      StackMap stack:
            new javax.net.ssl.SSLEngineResult
            dup
            getstatic javax.net.ssl.SSLEngineResult$Status.BUFFER_UNDERFLOW:Ljavax/net/ssl/SSLEngineResult$Status;
            aload 6 /* hsStatus */
            iconst_0
            iconst_0
            invokespecial javax.net.ssl.SSLEngineResult.<init>:(Ljavax/net/ssl/SSLEngineResult$Status;Ljavax/net/ssl/SSLEngineResult$HandshakeStatus;II)V
            areturn
        89: .line 900
      StackMap locals:
      StackMap stack:
            aconst_null
            astore 10 /* plainText */
        start local 10 // sun.security.ssl.Plaintext plainText
        90: .line 902
            aload 0 /* this */
            aload 1 /* netData */
            aload 2 /* appData */
            iload 3 /* offset */
            iload 4 /* length */
            invokevirtual sun.security.ssl.SSLEngineImpl.readRecord:(Ljava/nio/ByteBuffer;[Ljava/nio/ByteBuffer;II)Lsun/security/ssl/Plaintext;
            astore 10 /* plainText */
        91: .line 903
            goto 96
      StackMap locals: sun.security.ssl.SSLEngineImpl java.nio.ByteBuffer java.nio.ByteBuffer[] int int javax.net.ssl.SSLEngineResult$Status javax.net.ssl.SSLEngineResult$HandshakeStatus int int int sun.security.ssl.Plaintext
      StackMap stack: javax.net.ssl.SSLException
        92: astore 11 /* e */
        start local 11 // javax.net.ssl.SSLException e
        93: .line 904
            aload 11 /* e */
            athrow
        end local 11 // javax.net.ssl.SSLException e
        94: .line 905
      StackMap locals:
      StackMap stack: java.io.IOException
            astore 11 /* e */
        start local 11 // java.io.IOException e
        95: .line 906
            new javax.net.ssl.SSLException
            dup
            ldc "readRecord"
            aload 11 /* e */
            invokespecial javax.net.ssl.SSLException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
            athrow
        end local 11 // java.io.IOException e
        96: .line 919
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual sun.security.ssl.SSLEngineImpl.isInboundDone:()Z
            ifeq 97
            getstatic javax.net.ssl.SSLEngineResult$Status.CLOSED:Ljavax/net/ssl/SSLEngineResult$Status;
            goto 98
      StackMap locals:
      StackMap stack:
        97: getstatic javax.net.ssl.SSLEngineResult$Status.OK:Ljavax/net/ssl/SSLEngineResult$Status;
      StackMap locals:
      StackMap stack: javax.net.ssl.SSLEngineResult$Status
        98: astore 5 /* status */
        99: .line 920
            aload 0 /* this */
            aload 10 /* plainText */
            getfield sun.security.ssl.Plaintext.handshakeStatus:Ljavax/net/ssl/SSLEngineResult$HandshakeStatus;
            invokevirtual sun.security.ssl.SSLEngineImpl.getHSStatus:(Ljavax/net/ssl/SSLEngineResult$HandshakeStatus;)Ljavax/net/ssl/SSLEngineResult$HandshakeStatus;
            astore 6 /* hsStatus */
       100: .line 922
            aload 1 /* netData */
            invokevirtual java.nio.ByteBuffer.position:()I
            iload 8 /* netPos */
            isub
            istore 11 /* deltaNet */
        start local 11 // int deltaNet
       101: .line 923
            iload 9 /* appRemains */
            istore 12 /* deltaApp */
        start local 12 // int deltaApp
       102: .line 924
            iload 3 /* offset */
            istore 13 /* i */
        start local 13 // int i
       103: goto 106
       104: .line 925
      StackMap locals: int int int
      StackMap stack:
            iload 12 /* deltaApp */
            aload 2 /* appData */
            iload 13 /* i */
            aaload
            invokevirtual java.nio.ByteBuffer.remaining:()I
            isub
            istore 12 /* deltaApp */
       105: .line 924
            iinc 13 /* i */ 1
      StackMap locals:
      StackMap stack:
       106: iload 13 /* i */
            iload 3 /* offset */
            iload 4 /* length */
            iadd
            if_icmplt 104
        end local 13 // int i
       107: .line 928
            new javax.net.ssl.SSLEngineResult
            dup
       108: .line 929
            aload 5 /* status */
            aload 6 /* hsStatus */
            iload 11 /* deltaNet */
            iload 12 /* deltaApp */
            aload 10 /* plainText */
            getfield sun.security.ssl.Plaintext.recordSN:J
       109: .line 928
            invokespecial javax.net.ssl.SSLEngineResult.<init>:(Ljavax/net/ssl/SSLEngineResult$Status;Ljavax/net/ssl/SSLEngineResult$HandshakeStatus;IIJ)V
            areturn
        end local 12 // int deltaApp
        end local 11 // int deltaNet
        end local 10 // sun.security.ssl.Plaintext plainText
        end local 9 // int appRemains
        end local 8 // int netPos
        end local 7 // int packetLen
        end local 6 // javax.net.ssl.SSLEngineResult$HandshakeStatus hsStatus
        end local 5 // javax.net.ssl.SSLEngineResult$Status status
        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  110     0               this  Lsun/security/ssl/SSLEngineImpl;
            0  110     1            netData  Ljava/nio/ByteBuffer;
            0  110     2            appData  [Ljava/nio/ByteBuffer;
            0  110     3             offset  I
            0  110     4             length  I
            1  110     5             status  Ljavax/net/ssl/SSLEngineResult$Status;
            2  110     6           hsStatus  Ljavax/net/ssl/SSLEngineResult$HandshakeStatus;
           23   36     7          plainText  Lsun/security/ssl/Plaintext;
           26   27     8                  e  Ljavax/net/ssl/SSLException;
           28   29     8                  e  Ljava/io/IOException;
           37  110     7          packetLen  I
           40   55     8               ssle  Ljavax/net/ssl/SSLException;
           48   54     9           deltaNet  I
           60   69     8  largestRecordSize  I
           70  110     8             netPos  I
           71  110     9         appRemains  I
           72   80    10                  i  I
           83   87    10            FragLen  I
           90  110    10          plainText  Lsun/security/ssl/Plaintext;
           93   94    11                  e  Ljavax/net/ssl/SSLException;
           95   96    11                  e  Ljava/io/IOException;
          101  110    11           deltaNet  I
          102  110    12           deltaApp  I
          103  107    13                  i  I
      Exception table:
        from    to  target  type
           6    12      15  any
          13    14      15  any
          15    16      15  any
          23    24      25  Class javax.net.ssl.SSLException
          23    24      27  Class java.io.IOException
          37    38      39  Class javax.net.ssl.SSLException
          90    91      92  Class javax.net.ssl.SSLException
          90    91      94  Class java.io.IOException
    Exceptions:
      throws java.io.IOException
    MethodParameters:
         Name  Flags
      netData  
      appData  
      offset   
      length   

  void expectingFinishFlight();
    descriptor: ()V
    flags: (0x0000) 
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // sun.security.ssl.SSLEngineImpl this
         0: .line 934
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.inputRecord:Lsun/security/ssl/InputRecord;
            invokevirtual sun.security.ssl.InputRecord.expectingFinishFlight:()V
         1: .line 935
            return
        end local 0 // sun.security.ssl.SSLEngineImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lsun/security/ssl/SSLEngineImpl;

  private sun.security.ssl.Plaintext readRecord(java.nio.ByteBuffer, java.nio.ByteBuffer[], int, int);
    descriptor: (Ljava/nio/ByteBuffer;[Ljava/nio/ByteBuffer;II)Lsun/security/ssl/Plaintext;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=8, 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 956
            aconst_null
            astore 5 /* plainText */
        start local 5 // sun.security.ssl.Plaintext plainText
         1: .line 958
            aload 0 /* this */
            invokevirtual sun.security.ssl.SSLEngineImpl.getConnectionState:()I
            iconst_4
            if_icmpne 3
         2: .line 959
            getstatic sun.security.ssl.Plaintext.PLAINTEXT_NULL:Lsun/security/ssl/Plaintext;
            areturn
         3: .line 968
      StackMap locals: sun.security.ssl.Plaintext
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.isDTLS:Z
            ifeq 5
         4: .line 971
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.inputRecord:Lsun/security/ssl/InputRecord;
            invokevirtual sun.security.ssl.InputRecord.acquirePlaintext:()Lsun/security/ssl/Plaintext;
            astore 5 /* plainText */
         5: .line 974
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.isDTLS:Z
            ifeq 6
            aload 5 /* plainText */
            ifnonnull 26
      StackMap locals:
      StackMap stack:
         6: aload 1 /* netData */
            ifnull 26
         7: .line 975
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.inputRecord:Lsun/security/ssl/InputRecord;
            aload 1 /* netData */
            invokevirtual sun.security.ssl.InputRecord.decode:(Ljava/nio/ByteBuffer;)Lsun/security/ssl/Plaintext;
            astore 5 /* plainText */
         8: .line 977
            goto 26
      StackMap locals:
      StackMap stack: java.lang.UnsupportedOperationException
         9: astore 6 /* unsoe */
        start local 6 // java.lang.UnsupportedOperationException unsoe
        10: .line 979
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.isDTLS:Z
            ifne 12
        11: .line 980
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.outputRecord:Lsun/security/ssl/OutputRecord;
            invokevirtual sun.security.ssl.OutputRecord.encodeV2NoCipher:()V
        12: .line 983
      StackMap locals: java.lang.UnsupportedOperationException
      StackMap stack:
            aload 0 /* this */
            bipush 10
            aload 6 /* unsoe */
            invokevirtual sun.security.ssl.SSLEngineImpl.fatal:(BLjava/lang/Throwable;)V
        end local 6 // java.lang.UnsupportedOperationException unsoe
        13: goto 26
        14: .line 984
      StackMap locals: sun.security.ssl.SSLEngineImpl java.nio.ByteBuffer java.nio.ByteBuffer[] int int sun.security.ssl.Plaintext
      StackMap stack: javax.crypto.BadPaddingException
            astore 6 /* e */
        start local 6 // javax.crypto.BadPaddingException e
        15: .line 991
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.connectionState:I
            iconst_2
            if_icmpeq 17
        16: .line 992
            bipush 40
            goto 18
        17: .line 993
      StackMap locals: javax.crypto.BadPaddingException
      StackMap stack:
            bipush 20
        18: .line 991
      StackMap locals:
      StackMap stack: int
            istore 7 /* alertType */
        start local 7 // byte alertType
        19: .line 994
            aload 0 /* this */
            iload 7 /* alertType */
            aload 6 /* e */
            invokevirtual javax.crypto.BadPaddingException.getMessage:()Ljava/lang/String;
            aload 6 /* e */
            invokevirtual sun.security.ssl.SSLEngineImpl.fatal:(BLjava/lang/String;Ljava/lang/Throwable;)V
        end local 7 // byte alertType
        end local 6 // javax.crypto.BadPaddingException e
        20: goto 26
        21: .line 995
      StackMap locals: sun.security.ssl.SSLEngineImpl java.nio.ByteBuffer java.nio.ByteBuffer[] int int sun.security.ssl.Plaintext
      StackMap stack: javax.net.ssl.SSLHandshakeException
            astore 6 /* she */
        start local 6 // javax.net.ssl.SSLHandshakeException she
        22: .line 997
            aload 0 /* this */
            bipush 40
            aload 6 /* she */
            invokevirtual sun.security.ssl.SSLEngineImpl.fatal:(BLjava/lang/Throwable;)V
        end local 6 // javax.net.ssl.SSLHandshakeException she
        23: goto 26
        24: .line 998
      StackMap locals:
      StackMap stack: java.io.IOException
            astore 6 /* ioe */
        start local 6 // java.io.IOException ioe
        25: .line 999
            aload 0 /* this */
            bipush 10
            aload 6 /* ioe */
            invokevirtual sun.security.ssl.SSLEngineImpl.fatal:(BLjava/lang/Throwable;)V
        end local 6 // java.io.IOException ioe
        26: .line 1003
      StackMap locals:
      StackMap stack:
            aconst_null
            astore 6 /* hsStatus */
        start local 6 // javax.net.ssl.SSLEngineResult$HandshakeStatus hsStatus
        27: .line 1004
            aload 5 /* plainText */
            getstatic sun.security.ssl.Plaintext.PLAINTEXT_NULL:Lsun/security/ssl/Plaintext;
            if_acmpne 38
        28: .line 1009
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.enableRetransmissions:Z
            ifeq 40
        29: .line 1010
            getstatic sun.security.ssl.SSLEngineImpl.debug:Lsun/security/ssl/Debug;
            ifnull 32
            ldc "verbose"
            invokestatic sun.security.ssl.Debug.isOn:(Ljava/lang/String;)Z
            ifeq 32
        30: .line 1012
            ldc "Retransmit the previous handshake flight messages."
        31: .line 1011
            invokestatic sun.security.ssl.Debug.log:(Ljava/lang/String;)V
        32: .line 1015
      StackMap locals: javax.net.ssl.SSLEngineResult$HandshakeStatus
      StackMap stack:
            aload 0 /* this */
            dup
            astore 7
            monitorenter
        33: .line 1016
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.outputRecord:Lsun/security/ssl/OutputRecord;
            invokevirtual sun.security.ssl.OutputRecord.launchRetransmission:()V
        34: .line 1015
            aload 7
            monitorexit
        35: goto 40
      StackMap locals: sun.security.ssl.SSLEngineImpl java.nio.ByteBuffer java.nio.ByteBuffer[] int int sun.security.ssl.Plaintext javax.net.ssl.SSLEngineResult$HandshakeStatus sun.security.ssl.SSLEngineImpl
      StackMap stack: java.lang.Throwable
        36: aload 7
            monitorexit
        37: athrow
        38: .line 1019
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.isDTLS:Z
            ifeq 39
            aload 5 /* plainText */
            ifnull 40
        39: .line 1020
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 5 /* plainText */
            aload 2 /* appData */
            iload 3 /* offset */
            iload 4 /* length */
            invokevirtual sun.security.ssl.SSLEngineImpl.processInputRecord:(Lsun/security/ssl/Plaintext;[Ljava/nio/ByteBuffer;II)Ljavax/net/ssl/SSLEngineResult$HandshakeStatus;
            astore 6 /* hsStatus */
        40: .line 1023
      StackMap locals:
      StackMap stack:
            aload 6 /* hsStatus */
            ifnonnull 42
        41: .line 1024
            aload 0 /* this */
            aconst_null
            invokevirtual sun.security.ssl.SSLEngineImpl.getHSStatus:(Ljavax/net/ssl/SSLEngineResult$HandshakeStatus;)Ljavax/net/ssl/SSLEngineResult$HandshakeStatus;
            astore 6 /* hsStatus */
        42: .line 1027
      StackMap locals:
      StackMap stack:
            aload 5 /* plainText */
            ifnonnull 44
        43: .line 1028
            getstatic sun.security.ssl.Plaintext.PLAINTEXT_NULL:Lsun/security/ssl/Plaintext;
            astore 5 /* plainText */
        44: .line 1030
      StackMap locals:
      StackMap stack:
            aload 5 /* plainText */
            aload 6 /* hsStatus */
            putfield sun.security.ssl.Plaintext.handshakeStatus:Ljavax/net/ssl/SSLEngineResult$HandshakeStatus;
        45: .line 1032
            aload 5 /* plainText */
            areturn
        end local 6 // javax.net.ssl.SSLEngineResult$HandshakeStatus hsStatus
        end local 5 // sun.security.ssl.Plaintext plainText
        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   46     0       this  Lsun/security/ssl/SSLEngineImpl;
            0   46     1    netData  Ljava/nio/ByteBuffer;
            0   46     2    appData  [Ljava/nio/ByteBuffer;
            0   46     3     offset  I
            0   46     4     length  I
            1   46     5  plainText  Lsun/security/ssl/Plaintext;
           10   13     6      unsoe  Ljava/lang/UnsupportedOperationException;
           15   20     6          e  Ljavax/crypto/BadPaddingException;
           19   20     7  alertType  B
           22   23     6        she  Ljavax/net/ssl/SSLHandshakeException;
           25   26     6        ioe  Ljava/io/IOException;
           27   46     6   hsStatus  Ljavax/net/ssl/SSLEngineResult$HandshakeStatus;
      Exception table:
        from    to  target  type
           3     8       9  Class java.lang.UnsupportedOperationException
           3     8      14  Class javax.crypto.BadPaddingException
           3     8      21  Class javax.net.ssl.SSLHandshakeException
           3     8      24  Class java.io.IOException
          33    35      36  any
          36    37      36  any
    Exceptions:
      throws java.io.IOException
    MethodParameters:
         Name  Flags
      netData  
      appData  
      offset   
      length   

  private synchronized javax.net.ssl.SSLEngineResult$HandshakeStatus processInputRecord(sun.security.ssl.Plaintext, java.nio.ByteBuffer[], int, int);
    descriptor: (Lsun/security/ssl/Plaintext;[Ljava/nio/ByteBuffer;II)Ljavax/net/ssl/SSLEngineResult$HandshakeStatus;
    flags: (0x0022) ACC_PRIVATE, ACC_SYNCHRONIZED
    Code:
      stack=5, locals=10, args_size=5
        start local 0 // sun.security.ssl.SSLEngineImpl this
        start local 1 // sun.security.ssl.Plaintext plainText
        start local 2 // java.nio.ByteBuffer[] appData
        start local 3 // int offset
        start local 4 // int length
         0: .line 1042
            aconst_null
            astore 5 /* hsStatus */
        start local 5 // javax.net.ssl.SSLEngineResult$HandshakeStatus hsStatus
         1: .line 1043
            aload 1 /* plainText */
            getfield sun.security.ssl.Plaintext.contentType:B
            tableswitch { // 20 - 23
                   20: 60
                   21: 58
                   22: 2
                   23: 33
              default: 82
          }
         2: .line 1056
      StackMap locals: javax.net.ssl.SSLEngineResult$HandshakeStatus
      StackMap stack:
            aload 0 /* this */
            invokevirtual sun.security.ssl.SSLEngineImpl.initHandshaker:()V
         3: .line 1057
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.handshaker:Lsun/security/ssl/Handshaker;
            invokevirtual sun.security.ssl.Handshaker.activated:()Z
            ifne 8
         4: .line 1059
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.connectionState:I
            iconst_3
            if_icmpne 7
         5: .line 1061
            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
         6: .line 1062
            goto 8
         7: .line 1063
      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
         8: .line 1074
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.handshaker:Lsun/security/ssl/Handshaker;
            aload 1 /* plainText */
            getfield sun.security.ssl.Plaintext.fragment:Ljava/nio/ByteBuffer;
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.expectingFinished:Z
            invokevirtual sun.security.ssl.Handshaker.processRecord:(Ljava/nio/ByteBuffer;Z)V
         9: .line 1075
            aload 0 /* this */
            iconst_0
            putfield sun.security.ssl.SSLEngineImpl.expectingFinished:Z
        10: .line 1077
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.handshaker:Lsun/security/ssl/Handshaker;
            getfield sun.security.ssl.Handshaker.invalidated:Z
            ifeq 15
        11: .line 1078
            aload 0 /* this */
            invokevirtual sun.security.ssl.SSLEngineImpl.finishHandshake:()Ljavax/net/ssl/SSLEngineResult$HandshakeStatus;
            pop
        12: .line 1081
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.connectionState:I
            iconst_3
            if_icmpne 86
        13: .line 1082
            aload 0 /* this */
            iconst_2
            putfield sun.security.ssl.SSLEngineImpl.connectionState:I
        14: .line 1084
            goto 86
      StackMap locals:
      StackMap stack:
        15: aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.handshaker:Lsun/security/ssl/Handshaker;
            invokevirtual sun.security.ssl.Handshaker.isDone:()Z
            ifeq 30
        16: .line 1086
            aload 0 /* this */
        17: .line 1087
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.handshaker:Lsun/security/ssl/Handshaker;
            invokevirtual sun.security.ssl.Handshaker.isSecureRenegotiation:()Z
        18: .line 1086
            putfield sun.security.ssl.SSLEngineImpl.secureRenegotiation:Z
        19: .line 1088
            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
        20: .line 1089
            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
        21: .line 1091
            aload 0 /* this */
        22: .line 1092
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.handshaker:Lsun/security/ssl/Handshaker;
            invokevirtual sun.security.ssl.Handshaker.getHandshakeApplicationProtocol:()Ljava/lang/String;
        23: .line 1091
            putfield sun.security.ssl.SSLEngineImpl.applicationProtocol:Ljava/lang/String;
        24: .line 1094
            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;
        25: .line 1095
            aload 0 /* this */
            aconst_null
            putfield sun.security.ssl.SSLEngineImpl.handshakeSession:Lsun/security/ssl/SSLSessionImpl;
        26: .line 1096
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.outputRecord:Lsun/security/ssl/OutputRecord;
            invokevirtual sun.security.ssl.OutputRecord.isEmpty:()Z
            ifeq 86
        27: .line 1097
            aload 0 /* this */
            invokevirtual sun.security.ssl.SSLEngineImpl.finishHandshake:()Ljavax/net/ssl/SSLEngineResult$HandshakeStatus;
            astore 5 /* hsStatus */
        28: .line 1098
            aload 0 /* this */
            iconst_2
            putfield sun.security.ssl.SSLEngineImpl.connectionState:I
        29: .line 1103
            goto 86
      StackMap locals:
      StackMap stack:
        30: aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.handshaker:Lsun/security/ssl/Handshaker;
            invokevirtual sun.security.ssl.Handshaker.taskOutstanding:()Z
            ifeq 86
        31: .line 1104
            getstatic javax.net.ssl.SSLEngineResult$HandshakeStatus.NEED_TASK:Ljavax/net/ssl/SSLEngineResult$HandshakeStatus;
            astore 5 /* hsStatus */
        32: .line 1106
            goto 86
        33: .line 1110
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.connectionState:I
            iconst_2
            if_icmpeq 41
        34: .line 1111
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.connectionState:I
            iconst_3
            if_icmpeq 41
        35: .line 1112
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.connectionState:I
            bipush 6
            if_icmpeq 41
        36: .line 1113
            new javax.net.ssl.SSLProtocolException
            dup
        37: .line 1114
            new java.lang.StringBuilder
            dup
            ldc "Data received in non-data state: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
        38: .line 1115
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.connectionState:I
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
        39: .line 1114
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        40: .line 1113
            invokespecial javax.net.ssl.SSLProtocolException.<init>:(Ljava/lang/String;)V
            athrow
        41: .line 1118
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.expectingFinished:Z
            ifeq 45
        42: .line 1119
            new javax.net.ssl.SSLProtocolException
            dup
        43: .line 1120
            ldc "Expecting finished message, received data"
        44: .line 1119
            invokespecial javax.net.ssl.SSLProtocolException.<init>:(Ljava/lang/String;)V
            athrow
        45: .line 1123
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.inboundDone:Z
            ifne 86
        46: .line 1124
            aload 1 /* plainText */
            getfield sun.security.ssl.Plaintext.fragment:Ljava/nio/ByteBuffer;
            astore 6 /* fragment */
        start local 6 // java.nio.ByteBuffer fragment
        47: .line 1125
            aload 6 /* fragment */
            invokevirtual java.nio.ByteBuffer.remaining:()I
            istore 7 /* remains */
        start local 7 // int remains
        48: .line 1128
            iload 3 /* offset */
            istore 8 /* i */
        start local 8 // int i
        49: .line 1129
            goto 55
        50: .line 1130
      StackMap locals: java.nio.ByteBuffer int int
      StackMap stack:
            aload 2 /* appData */
            iload 8 /* i */
            aaload
            invokevirtual java.nio.ByteBuffer.remaining:()I
            iload 7 /* remains */
            invokestatic java.lang.Math.min:(II)I
            istore 9 /* amount */
        start local 9 // int amount
        51: .line 1131
            aload 6 /* fragment */
            aload 6 /* fragment */
            invokevirtual java.nio.ByteBuffer.position:()I
            iload 9 /* amount */
            iadd
            invokevirtual java.nio.ByteBuffer.limit:(I)Ljava/nio/ByteBuffer;
            pop
        52: .line 1132
            aload 2 /* appData */
            iload 8 /* i */
            aaload
            aload 6 /* fragment */
            invokevirtual java.nio.ByteBuffer.put:(Ljava/nio/ByteBuffer;)Ljava/nio/ByteBuffer;
            pop
        53: .line 1133
            iload 7 /* remains */
            iload 9 /* amount */
            isub
            istore 7 /* remains */
        end local 9 // int amount
        54: .line 1129
            iinc 8 /* i */ 1
      StackMap locals:
      StackMap stack:
        55: iload 8 /* i */
            iload 3 /* offset */
            iload 4 /* length */
            iadd
            if_icmpge 86
            iload 7 /* remains */
        56: .line 1128
            ifgt 50
        end local 8 // int i
        end local 7 // int remains
        end local 6 // java.nio.ByteBuffer fragment
        57: .line 1137
            goto 86
        58: .line 1140
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* plainText */
            getfield sun.security.ssl.Plaintext.fragment:Ljava/nio/ByteBuffer;
            invokevirtual sun.security.ssl.SSLEngineImpl.recvAlert:(Ljava/nio/ByteBuffer;)V
        59: .line 1141
            goto 86
        60: .line 1144
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.connectionState:I
            iconst_1
            if_icmpeq 68
        61: .line 1145
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.connectionState:I
            iconst_3
            if_icmpeq 68
        62: .line 1147
            aload 0 /* this */
            bipush 10
        63: .line 1148
            new java.lang.StringBuilder
            dup
            ldc "illegal change cipher spec msg, conn state = "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
        64: .line 1149
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.connectionState:I
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
        65: .line 1148
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        66: .line 1147
            invokevirtual sun.security.ssl.SSLEngineImpl.fatal:(BLjava/lang/String;)V
        67: .line 1150
            goto 73
      StackMap locals:
      StackMap stack:
        68: aload 1 /* plainText */
            getfield sun.security.ssl.Plaintext.fragment:Ljava/nio/ByteBuffer;
            invokevirtual java.nio.ByteBuffer.remaining:()I
            iconst_1
            if_icmpne 70
        69: .line 1151
            aload 1 /* plainText */
            getfield sun.security.ssl.Plaintext.fragment:Ljava/nio/ByteBuffer;
            invokevirtual java.nio.ByteBuffer.get:()B
            iconst_1
            if_icmpeq 73
        70: .line 1153
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            bipush 10
        71: .line 1154
            ldc "Malformed change cipher spec msg"
        72: .line 1153
            invokevirtual sun.security.ssl.SSLEngineImpl.fatal:(BLjava/lang/String;)V
        73: .line 1164
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.handshaker:Lsun/security/ssl/Handshaker;
            invokevirtual sun.security.ssl.Handshaker.receiveChangeCipherSpec:()V
        74: .line 1169
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.handshaker:Lsun/security/ssl/Handshaker;
            invokevirtual sun.security.ssl.Handshaker.newReadCipher:()Lsun/security/ssl/CipherBox;
            astore 6 /* readCipher */
        start local 6 // sun.security.ssl.CipherBox readCipher
        75: .line 1170
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.handshaker:Lsun/security/ssl/Handshaker;
            invokevirtual sun.security.ssl.Handshaker.newReadAuthenticator:()Lsun/security/ssl/Authenticator;
            astore 7 /* readAuthenticator */
        start local 7 // sun.security.ssl.Authenticator readAuthenticator
        76: .line 1171
            goto 79
        end local 7 // sun.security.ssl.Authenticator readAuthenticator
        end local 6 // sun.security.ssl.CipherBox readCipher
      StackMap locals:
      StackMap stack: java.security.GeneralSecurityException
        77: astore 8 /* e */
        start local 8 // java.security.GeneralSecurityException e
        78: .line 1173
            new javax.net.ssl.SSLException
            dup
            ldc "Algorithm missing:  "
            aload 8 /* e */
            invokespecial javax.net.ssl.SSLException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
            athrow
        end local 8 // java.security.GeneralSecurityException e
        start local 6 // sun.security.ssl.CipherBox readCipher
        start local 7 // sun.security.ssl.Authenticator readAuthenticator
        79: .line 1175
      StackMap locals: sun.security.ssl.CipherBox sun.security.ssl.Authenticator
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.inputRecord:Lsun/security/ssl/InputRecord;
            aload 7 /* readAuthenticator */
            aload 6 /* readCipher */
            invokevirtual sun.security.ssl.InputRecord.changeReadCiphers:(Lsun/security/ssl/Authenticator;Lsun/security/ssl/CipherBox;)V
        80: .line 1178
            aload 0 /* this */
            iconst_1
            putfield sun.security.ssl.SSLEngineImpl.expectingFinished:Z
        81: .line 1179
            goto 86
        end local 7 // sun.security.ssl.Authenticator readAuthenticator
        end local 6 // sun.security.ssl.CipherBox readCipher
        82: .line 1185
      StackMap locals:
      StackMap stack:
            getstatic sun.security.ssl.SSLEngineImpl.debug:Lsun/security/ssl/Debug;
            ifnull 86
            ldc "ssl"
            invokestatic sun.security.ssl.Debug.isOn:(Ljava/lang/String;)Z
            ifeq 86
        83: .line 1186
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            new java.lang.StringBuilder
            dup
            invokestatic java.lang.Thread.currentThread:()Ljava/lang/Thread;
            invokevirtual java.lang.Thread.getName:()Ljava/lang/String;
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
        84: .line 1187
            ldc ", Received record type: "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 1 /* plainText */
            getfield sun.security.ssl.Plaintext.contentType:B
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        85: .line 1186
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
        86: .line 1204
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 5 /* hsStatus */
            invokevirtual sun.security.ssl.SSLEngineImpl.getHSStatus:(Ljavax/net/ssl/SSLEngineResult$HandshakeStatus;)Ljavax/net/ssl/SSLEngineResult$HandshakeStatus;
            astore 5 /* hsStatus */
        87: .line 1205
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.connectionState:I
            iconst_4
            if_icmpge 97
            aload 0 /* this */
            invokevirtual sun.security.ssl.SSLEngineImpl.isInboundDone:()Z
            ifne 97
        88: .line 1206
            aload 5 /* hsStatus */
            getstatic javax.net.ssl.SSLEngineResult$HandshakeStatus.NOT_HANDSHAKING:Ljavax/net/ssl/SSLEngineResult$HandshakeStatus;
            if_acmpne 97
        89: .line 1207
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.inputRecord:Lsun/security/ssl/InputRecord;
            invokevirtual sun.security.ssl.InputRecord.seqNumIsHuge:()Z
            ifeq 97
        90: .line 1214
            getstatic sun.security.ssl.SSLEngineImpl.debug:Lsun/security/ssl/Debug;
            ifnull 95
            ldc "ssl"
            invokestatic sun.security.ssl.Debug.isOn:(Ljava/lang/String;)Z
            ifeq 95
        91: .line 1215
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            new java.lang.StringBuilder
            dup
            invokestatic java.lang.Thread.currentThread:()Ljava/lang/Thread;
            invokevirtual java.lang.Thread.getName:()Ljava/lang/String;
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
        92: .line 1216
            ldc ", request renegotiation "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        93: .line 1217
            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;
        94: .line 1215
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
        95: .line 1220
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual sun.security.ssl.SSLEngineImpl.beginHandshake:()V
        96: .line 1222
            aload 0 /* this */
            aconst_null
            invokevirtual sun.security.ssl.SSLEngineImpl.getHSStatus:(Ljavax/net/ssl/SSLEngineResult$HandshakeStatus;)Ljavax/net/ssl/SSLEngineResult$HandshakeStatus;
            astore 5 /* hsStatus */
        97: .line 1225
      StackMap locals:
      StackMap stack:
            aload 5 /* hsStatus */
            areturn
        end local 5 // javax.net.ssl.SSLEngineResult$HandshakeStatus hsStatus
        end local 4 // int length
        end local 3 // int offset
        end local 2 // java.nio.ByteBuffer[] appData
        end local 1 // sun.security.ssl.Plaintext plainText
        end local 0 // sun.security.ssl.SSLEngineImpl this
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0   98     0               this  Lsun/security/ssl/SSLEngineImpl;
            0   98     1          plainText  Lsun/security/ssl/Plaintext;
            0   98     2            appData  [Ljava/nio/ByteBuffer;
            0   98     3             offset  I
            0   98     4             length  I
            1   98     5           hsStatus  Ljavax/net/ssl/SSLEngineResult$HandshakeStatus;
           47   57     6           fragment  Ljava/nio/ByteBuffer;
           48   57     7            remains  I
           49   57     8                  i  I
           51   54     9             amount  I
           75   77     6         readCipher  Lsun/security/ssl/CipherBox;
           79   82     6         readCipher  Lsun/security/ssl/CipherBox;
           76   77     7  readAuthenticator  Lsun/security/ssl/Authenticator;
           79   82     7  readAuthenticator  Lsun/security/ssl/Authenticator;
           78   79     8                  e  Ljava/security/GeneralSecurityException;
      Exception table:
        from    to  target  type
          74    76      77  Class java.security.GeneralSecurityException
    Exceptions:
      throws java.io.IOException
    MethodParameters:
           Name  Flags
      plainText  
      appData    
      offset     
      length     

  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=6, 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 1243
            aload 4 /* netData */
            aload 1 /* appData */
            iload 2 /* offset */
            iload 3 /* length */
            iconst_1
            invokestatic sun.security.ssl.SSLEngineImpl.checkEngineParas:(Ljava/nio/ByteBuffer;[Ljava/nio/ByteBuffer;IIZ)V
         1: .line 1249
            aload 4 /* netData */
            invokevirtual java.nio.ByteBuffer.remaining:()I
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.sess:Lsun/security/ssl/SSLSessionImpl;
            invokevirtual sun.security.ssl.SSLSessionImpl.getPacketBufferSize:()I
            if_icmpge 5
         2: .line 1250
            new javax.net.ssl.SSLEngineResult
            dup
         3: .line 1251
            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 1250
            invokespecial javax.net.ssl.SSLEngineResult.<init>:(Ljavax/net/ssl/SSLEngineResult$Status;Ljavax/net/ssl/SSLEngineResult$HandshakeStatus;II)V
            areturn
         5: .line 1255
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.wrapLock:Ljava/lang/Object;
            dup
            astore 5
            monitorenter
         6: .line 1256
            aload 0 /* this */
            aload 1 /* appData */
            iload 2 /* offset */
            iload 3 /* length */
            aload 4 /* netData */
            invokevirtual sun.security.ssl.SSLEngineImpl.writeAppRecord:([Ljava/nio/ByteBuffer;IILjava/nio/ByteBuffer;)Ljavax/net/ssl/SSLEngineResult;
            aload 5
            monitorexit
         7: areturn
         8: .line 1255
      StackMap locals: sun.security.ssl.SSLEngineImpl java.nio.ByteBuffer[] int int java.nio.ByteBuffer java.lang.Object
      StackMap stack: java.lang.Throwable
            aload 5
            monitorexit
         9: athrow
        10: .line 1258
      StackMap locals: sun.security.ssl.SSLEngineImpl java.nio.ByteBuffer[] int int java.nio.ByteBuffer
      StackMap stack: javax.net.ssl.SSLProtocolException
            astore 5 /* spe */
        start local 5 // javax.net.ssl.SSLProtocolException spe
        11: .line 1260
            aload 0 /* this */
            bipush 10
            aload 5 /* spe */
            invokevirtual javax.net.ssl.SSLProtocolException.getMessage:()Ljava/lang/String;
            aload 5 /* spe */
            invokevirtual sun.security.ssl.SSLEngineImpl.fatal:(BLjava/lang/String;Ljava/lang/Throwable;)V
        12: .line 1261
            aconst_null
            areturn
        end local 5 // javax.net.ssl.SSLProtocolException spe
        13: .line 1262
      StackMap locals:
      StackMap stack: java.lang.Exception
            astore 5 /* e */
        start local 5 // java.lang.Exception e
        14: .line 1263
            aload 0 /* this */
            bipush 80
        15: .line 1264
            ldc "problem wrapping app data"
            aload 5 /* e */
        16: .line 1263
            invokevirtual sun.security.ssl.SSLEngineImpl.fatal:(BLjava/lang/String;Ljava/lang/Throwable;)V
        17: .line 1265
            aconst_null
            areturn
        end local 5 // java.lang.Exception e
        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   18     0     this  Lsun/security/ssl/SSLEngineImpl;
            0   18     1  appData  [Ljava/nio/ByteBuffer;
            0   18     2   offset  I
            0   18     3   length  I
            0   18     4  netData  Ljava/nio/ByteBuffer;
           11   13     5      spe  Ljavax/net/ssl/SSLProtocolException;
           14   18     5        e  Ljava/lang/Exception;
      Exception table:
        from    to  target  type
           6     7       8  any
           8     9       8  any
           5     7      10  Class javax.net.ssl.SSLProtocolException
           8    10      10  Class javax.net.ssl.SSLProtocolException
           5     7      13  Class java.lang.Exception
           8    10      13  Class java.lang.Exception
    Exceptions:
      throws javax.net.ssl.SSLException
    MethodParameters:
         Name  Flags
      appData  
      offset   
      length   
      netData  

  private javax.net.ssl.SSLEngineResult writeAppRecord(java.nio.ByteBuffer[], int, int, java.nio.ByteBuffer);
    descriptor: ([Ljava/nio/ByteBuffer;IILjava/nio/ByteBuffer;)Ljavax/net/ssl/SSLEngineResult;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=8, locals=13, 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 1276
            aconst_null
            astore 5 /* status */
        start local 5 // javax.net.ssl.SSLEngineResult$Status status
         1: .line 1277
            aconst_null
            astore 6 /* hsStatus */
        start local 6 // javax.net.ssl.SSLEngineResult$HandshakeStatus hsStatus
         2: .line 1282
            aload 0 /* this */
            invokevirtual sun.security.ssl.SSLEngineImpl.checkTaskThrown:()V
         3: .line 1287
            aload 0 /* this */
            invokevirtual sun.security.ssl.SSLEngineImpl.isOutboundDone:()Z
            ifeq 5
         4: .line 1288
            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 1295
      StackMap locals: javax.net.ssl.SSLEngineResult$Status javax.net.ssl.SSLEngineResult$HandshakeStatus
      StackMap stack:
            aload 0 /* this */
            dup
            astore 7
            monitorenter
         6: .line 1296
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.connectionState:I
            iconst_1
            if_icmpeq 8
         7: .line 1297
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.connectionState:I
            ifne 15
         8: .line 1299
      StackMap locals: sun.security.ssl.SSLEngineImpl
      StackMap stack:
            aload 0 /* this */
            invokevirtual sun.security.ssl.SSLEngineImpl.kickstartHandshake:()V
         9: .line 1305
            aload 0 /* this */
            aconst_null
            invokevirtual sun.security.ssl.SSLEngineImpl.getHSStatus:(Ljavax/net/ssl/SSLEngineResult$HandshakeStatus;)Ljavax/net/ssl/SSLEngineResult$HandshakeStatus;
            astore 6 /* hsStatus */
        10: .line 1306
            aload 6 /* hsStatus */
            getstatic javax.net.ssl.SSLEngineResult$HandshakeStatus.NEED_UNWRAP:Ljavax/net/ssl/SSLEngineResult$HandshakeStatus;
            if_acmpne 15
        11: .line 1313
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.isDTLS:Z
            ifeq 13
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.enableRetransmissions:Z
            ifeq 13
        12: .line 1314
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.handshaker:Lsun/security/ssl/Handshaker;
            ifnull 13
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.outputRecord:Lsun/security/ssl/OutputRecord;
            getfield sun.security.ssl.OutputRecord.firstMessage:Z
            ifeq 15
        13: .line 1316
      StackMap locals:
      StackMap stack:
            new javax.net.ssl.SSLEngineResult
            dup
            getstatic javax.net.ssl.SSLEngineResult$Status.OK:Ljavax/net/ssl/SSLEngineResult$Status;
            aload 6 /* hsStatus */
            iconst_0
            iconst_0
            invokespecial javax.net.ssl.SSLEngineResult.<init>:(Ljavax/net/ssl/SSLEngineResult$Status;Ljavax/net/ssl/SSLEngineResult$HandshakeStatus;II)V
            aload 7
            monitorexit
        14: areturn
        15: .line 1295
      StackMap locals:
      StackMap stack:
            aload 7
            monitorexit
        16: goto 19
      StackMap locals:
      StackMap stack: java.lang.Throwable
        17: aload 7
            monitorexit
        18: athrow
        19: .line 1328
      StackMap locals:
      StackMap stack:
            aload 6 /* hsStatus */
            ifnonnull 21
        20: .line 1329
            aload 0 /* this */
            aconst_null
            invokevirtual sun.security.ssl.SSLEngineImpl.getHSStatus:(Ljavax/net/ssl/SSLEngineResult$HandshakeStatus;)Ljavax/net/ssl/SSLEngineResult$HandshakeStatus;
            astore 6 /* hsStatus */
        21: .line 1338
      StackMap locals:
      StackMap stack:
            aload 6 /* hsStatus */
            getstatic javax.net.ssl.SSLEngineResult$HandshakeStatus.NEED_TASK:Ljavax/net/ssl/SSLEngineResult$HandshakeStatus;
            if_acmpne 23
        22: .line 1339
            new javax.net.ssl.SSLEngineResult
            dup
            getstatic javax.net.ssl.SSLEngineResult$Status.OK:Ljavax/net/ssl/SSLEngineResult$Status;
            aload 6 /* hsStatus */
            iconst_0
            iconst_0
            invokespecial javax.net.ssl.SSLEngineResult.<init>:(Ljavax/net/ssl/SSLEngineResult$Status;Ljavax/net/ssl/SSLEngineResult$HandshakeStatus;II)V
            areturn
        23: .line 1346
      StackMap locals:
      StackMap stack:
            aload 4 /* netData */
            invokevirtual java.nio.ByteBuffer.position:()I
            istore 7 /* netPos */
        start local 7 // int netPos
        24: .line 1347
            iconst_0
            istore 8 /* appRemains */
        start local 8 // int appRemains
        25: .line 1348
            iload 2 /* offset */
            istore 9 /* i */
        start local 9 // int i
        26: goto 33
        27: .line 1349
      StackMap locals: int int int
      StackMap stack:
            aload 1 /* appData */
            iload 9 /* i */
            aaload
            ifnonnull 31
        28: .line 1350
            new java.lang.IllegalArgumentException
            dup
        29: .line 1351
            new java.lang.StringBuilder
            dup
            ldc "appData["
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            iload 9 /* i */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            ldc "] == null"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        30: .line 1350
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
        31: .line 1353
      StackMap locals:
      StackMap stack:
            iload 8 /* appRemains */
            aload 1 /* appData */
            iload 9 /* i */
            aaload
            invokevirtual java.nio.ByteBuffer.remaining:()I
            iadd
            istore 8 /* appRemains */
        32: .line 1348
            iinc 9 /* i */ 1
      StackMap locals:
      StackMap stack:
        33: iload 9 /* i */
            iload 2 /* offset */
            iload 3 /* length */
            iadd
            if_icmplt 27
        end local 9 // int i
        34: .line 1356
            aconst_null
            astore 9 /* ciphertext */
        start local 9 // sun.security.ssl.Ciphertext ciphertext
        35: .line 1358
            iload 8 /* appRemains */
            ifeq 42
        36: .line 1359
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.writeLock:Ljava/lang/Object;
            dup
            astore 10
            monitorenter
        37: .line 1360
            aload 0 /* this */
            aload 1 /* appData */
            iload 2 /* offset */
            iload 3 /* length */
            aload 4 /* netData */
            invokevirtual sun.security.ssl.SSLEngineImpl.writeRecord:([Ljava/nio/ByteBuffer;IILjava/nio/ByteBuffer;)Lsun/security/ssl/Ciphertext;
            astore 9 /* ciphertext */
        38: .line 1359
            aload 10
            monitorexit
        39: goto 52
      StackMap locals: sun.security.ssl.SSLEngineImpl java.nio.ByteBuffer[] int int java.nio.ByteBuffer javax.net.ssl.SSLEngineResult$Status javax.net.ssl.SSLEngineResult$HandshakeStatus int int sun.security.ssl.Ciphertext java.lang.Object
      StackMap stack: java.lang.Throwable
        40: aload 10
            monitorexit
        41: athrow
        42: .line 1363
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.writeLock:Ljava/lang/Object;
            dup
            astore 10
            monitorenter
        43: .line 1364
            aload 0 /* this */
            aconst_null
            iconst_0
            iconst_0
            aload 4 /* netData */
            invokevirtual sun.security.ssl.SSLEngineImpl.writeRecord:([Ljava/nio/ByteBuffer;IILjava/nio/ByteBuffer;)Lsun/security/ssl/Ciphertext;
            astore 9 /* ciphertext */
        44: .line 1363
            aload 10
            monitorexit
        45: goto 52
      StackMap locals: sun.security.ssl.SSLEngineImpl java.nio.ByteBuffer[] int int java.nio.ByteBuffer javax.net.ssl.SSLEngineResult$Status javax.net.ssl.SSLEngineResult$HandshakeStatus int int sun.security.ssl.Ciphertext java.lang.Object
      StackMap stack: java.lang.Throwable
        46: aload 10
            monitorexit
        47: athrow
        48: .line 1367
      StackMap locals: sun.security.ssl.SSLEngineImpl java.nio.ByteBuffer[] int int java.nio.ByteBuffer javax.net.ssl.SSLEngineResult$Status javax.net.ssl.SSLEngineResult$HandshakeStatus int int sun.security.ssl.Ciphertext
      StackMap stack: javax.net.ssl.SSLException
            astore 10 /* e */
        start local 10 // javax.net.ssl.SSLException e
        49: .line 1368
            aload 10 /* e */
            athrow
        end local 10 // javax.net.ssl.SSLException e
        50: .line 1369
      StackMap locals:
      StackMap stack: java.io.IOException
            astore 10 /* e */
        start local 10 // java.io.IOException e
        51: .line 1370
            new javax.net.ssl.SSLException
            dup
            ldc "Write problems"
            aload 10 /* e */
            invokespecial javax.net.ssl.SSLException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
            athrow
        end local 10 // java.io.IOException e
        52: .line 1379
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual sun.security.ssl.SSLEngineImpl.isOutboundDone:()Z
            ifeq 53
            getstatic javax.net.ssl.SSLEngineResult$Status.CLOSED:Ljavax/net/ssl/SSLEngineResult$Status;
            goto 54
      StackMap locals:
      StackMap stack:
        53: getstatic javax.net.ssl.SSLEngineResult$Status.OK:Ljavax/net/ssl/SSLEngineResult$Status;
      StackMap locals:
      StackMap stack: javax.net.ssl.SSLEngineResult$Status
        54: astore 5 /* status */
        55: .line 1380
            aload 0 /* this */
            aload 9 /* ciphertext */
            getfield sun.security.ssl.Ciphertext.handshakeStatus:Ljavax/net/ssl/SSLEngineResult$HandshakeStatus;
            invokevirtual sun.security.ssl.SSLEngineImpl.getHSStatus:(Ljavax/net/ssl/SSLEngineResult$HandshakeStatus;)Ljavax/net/ssl/SSLEngineResult$HandshakeStatus;
            astore 6 /* hsStatus */
        56: .line 1382
            aload 4 /* netData */
            invokevirtual java.nio.ByteBuffer.position:()I
            iload 7 /* netPos */
            isub
            istore 10 /* deltaNet */
        start local 10 // int deltaNet
        57: .line 1383
            iload 8 /* appRemains */
            istore 11 /* deltaApp */
        start local 11 // int deltaApp
        58: .line 1384
            iload 2 /* offset */
            istore 12 /* i */
        start local 12 // int i
        59: goto 62
        60: .line 1385
      StackMap locals: int int int
      StackMap stack:
            iload 11 /* deltaApp */
            aload 1 /* appData */
            iload 12 /* i */
            aaload
            invokevirtual java.nio.ByteBuffer.remaining:()I
            isub
            istore 11 /* deltaApp */
        61: .line 1384
            iinc 12 /* i */ 1
      StackMap locals:
      StackMap stack:
        62: iload 12 /* i */
            iload 2 /* offset */
            iload 3 /* length */
            iadd
            if_icmplt 60
        end local 12 // int i
        63: .line 1388
            new javax.net.ssl.SSLEngineResult
            dup
        64: .line 1389
            aload 5 /* status */
            aload 6 /* hsStatus */
            iload 11 /* deltaApp */
            iload 10 /* deltaNet */
            aload 9 /* ciphertext */
            getfield sun.security.ssl.Ciphertext.recordSN:J
        65: .line 1388
            invokespecial javax.net.ssl.SSLEngineResult.<init>:(Ljavax/net/ssl/SSLEngineResult$Status;Ljavax/net/ssl/SSLEngineResult$HandshakeStatus;IIJ)V
            areturn
        end local 11 // int deltaApp
        end local 10 // int deltaNet
        end local 9 // sun.security.ssl.Ciphertext ciphertext
        end local 8 // int appRemains
        end local 7 // int netPos
        end local 6 // javax.net.ssl.SSLEngineResult$HandshakeStatus hsStatus
        end local 5 // javax.net.ssl.SSLEngineResult$Status status
        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   66     0        this  Lsun/security/ssl/SSLEngineImpl;
            0   66     1     appData  [Ljava/nio/ByteBuffer;
            0   66     2      offset  I
            0   66     3      length  I
            0   66     4     netData  Ljava/nio/ByteBuffer;
            1   66     5      status  Ljavax/net/ssl/SSLEngineResult$Status;
            2   66     6    hsStatus  Ljavax/net/ssl/SSLEngineResult$HandshakeStatus;
           24   66     7      netPos  I
           25   66     8  appRemains  I
           26   34     9           i  I
           35   66     9  ciphertext  Lsun/security/ssl/Ciphertext;
           49   50    10           e  Ljavax/net/ssl/SSLException;
           51   52    10           e  Ljava/io/IOException;
           57   66    10    deltaNet  I
           58   66    11    deltaApp  I
           59   63    12           i  I
      Exception table:
        from    to  target  type
           6    14      17  any
          15    16      17  any
          17    18      17  any
          37    39      40  any
          40    41      40  any
          43    45      46  any
          46    47      46  any
          35    48      48  Class javax.net.ssl.SSLException
          35    48      50  Class java.io.IOException
    Exceptions:
      throws java.io.IOException
    MethodParameters:
         Name  Flags
      appData  
      offset   
      length   
      netData  

  private sun.security.ssl.Ciphertext writeRecord(java.nio.ByteBuffer[], int, int, java.nio.ByteBuffer);
    descriptor: ([Ljava/nio/ByteBuffer;IILjava/nio/ByteBuffer;)Lsun/security/ssl/Ciphertext;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, 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 1398
            aconst_null
            astore 5 /* ciphertext */
        start local 5 // sun.security.ssl.Ciphertext ciphertext
         1: .line 1403
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.outputRecord:Lsun/security/ssl/OutputRecord;
            invokevirtual sun.security.ssl.OutputRecord.isEmpty:()Z
            ifeq 3
         2: .line 1404
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.enableRetransmissions:Z
            ifeq 4
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.handshaker:Lsun/security/ssl/Handshaker;
            ifnull 4
         3: .line 1405
      StackMap locals: sun.security.ssl.Ciphertext
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.outputRecord:Lsun/security/ssl/OutputRecord;
            aload 4 /* netData */
            invokevirtual sun.security.ssl.OutputRecord.acquireCiphertext:(Ljava/nio/ByteBuffer;)Lsun/security/ssl/Ciphertext;
            astore 5 /* ciphertext */
         4: .line 1408
      StackMap locals:
      StackMap stack:
            aload 5 /* ciphertext */
            ifnonnull 15
            aload 1 /* appData */
            ifnull 15
         5: .line 1409
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.outputRecord:Lsun/security/ssl/OutputRecord;
         6: .line 1410
            aload 1 /* appData */
            iload 2 /* offset */
            iload 3 /* length */
            aload 4 /* netData */
         7: .line 1409
            invokevirtual sun.security.ssl.OutputRecord.encode:([Ljava/nio/ByteBuffer;IILjava/nio/ByteBuffer;)Lsun/security/ssl/Ciphertext;
            astore 5 /* ciphertext */
         8: .line 1412
            goto 15
      StackMap locals:
      StackMap stack: javax.net.ssl.SSLHandshakeException
         9: astore 6 /* she */
        start local 6 // javax.net.ssl.SSLHandshakeException she
        10: .line 1414
            aload 0 /* this */
            bipush 40
            aload 6 /* she */
            invokevirtual sun.security.ssl.SSLEngineImpl.fatal:(BLjava/lang/Throwable;)V
        11: .line 1416
            getstatic sun.security.ssl.Ciphertext.CIPHERTEXT_NULL:Lsun/security/ssl/Ciphertext;
            areturn
        end local 6 // javax.net.ssl.SSLHandshakeException she
        12: .line 1417
      StackMap locals:
      StackMap stack: java.io.IOException
            astore 6 /* e */
        start local 6 // java.io.IOException e
        13: .line 1418
            aload 0 /* this */
            bipush 10
            aload 6 /* e */
            invokevirtual sun.security.ssl.SSLEngineImpl.fatal:(BLjava/lang/Throwable;)V
        14: .line 1420
            getstatic sun.security.ssl.Ciphertext.CIPHERTEXT_NULL:Lsun/security/ssl/Ciphertext;
            areturn
        end local 6 // java.io.IOException e
        15: .line 1423
      StackMap locals:
      StackMap stack:
            aload 5 /* ciphertext */
            ifnonnull 17
        16: .line 1424
            getstatic sun.security.ssl.Ciphertext.CIPHERTEXT_NULL:Lsun/security/ssl/Ciphertext;
            areturn
        17: .line 1427
      StackMap locals:
      StackMap stack:
            aconst_null
            astore 6 /* hsStatus */
        start local 6 // javax.net.ssl.SSLEngineResult$HandshakeStatus hsStatus
        18: .line 1428
            aload 5 /* ciphertext */
            getfield sun.security.ssl.Ciphertext.recordType:Lsun/security/ssl/Ciphertext$RecordType;
            astore 7 /* recordType */
        start local 7 // sun.security.ssl.Ciphertext$RecordType recordType
        19: .line 1429
            aload 7 /* recordType */
            getfield sun.security.ssl.Ciphertext$RecordType.contentType:B
            bipush 22
            if_icmpne 39
        20: .line 1430
            aload 7 /* recordType */
            getfield sun.security.ssl.Ciphertext$RecordType.handshakeType:B
            bipush 20
            if_icmpne 39
        21: .line 1431
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.outputRecord:Lsun/security/ssl/OutputRecord;
            invokevirtual sun.security.ssl.OutputRecord.isEmpty:()Z
            ifeq 39
        22: .line 1433
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.handshaker:Lsun/security/ssl/Handshaker;
            ifnonnull 25
        23: .line 1434
            getstatic javax.net.ssl.SSLEngineResult$HandshakeStatus.FINISHED:Ljavax/net/ssl/SSLEngineResult$HandshakeStatus;
            astore 6 /* hsStatus */
        24: .line 1435
            goto 39
      StackMap locals: javax.net.ssl.SSLEngineResult$HandshakeStatus sun.security.ssl.Ciphertext$RecordType
      StackMap stack:
        25: aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.handshaker:Lsun/security/ssl/Handshaker;
            invokevirtual sun.security.ssl.Handshaker.isDone:()Z
            ifeq 39
        26: .line 1436
            aload 0 /* this */
            invokevirtual sun.security.ssl.SSLEngineImpl.finishHandshake:()Ljavax/net/ssl/SSLEngineResult$HandshakeStatus;
            astore 6 /* hsStatus */
        27: .line 1437
            aload 0 /* this */
            iconst_2
            putfield sun.security.ssl.SSLEngineImpl.connectionState:I
        28: .line 1446
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.isDTLS:Z
            ifeq 39
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.enableRetransmissions:Z
            ifeq 39
        29: .line 1447
            getstatic sun.security.ssl.SSLEngineImpl.debug:Lsun/security/ssl/Debug;
            ifnull 32
            ldc "verbose"
            invokestatic sun.security.ssl.Debug.isOn:(Ljava/lang/String;)Z
            ifeq 32
        30: .line 1449
            ldc "Retransmit the last flight messages."
        31: .line 1448
            invokestatic sun.security.ssl.Debug.log:(Ljava/lang/String;)V
        32: .line 1452
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            dup
            astore 8
            monitorenter
        33: .line 1453
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.outputRecord:Lsun/security/ssl/OutputRecord;
            invokevirtual sun.security.ssl.OutputRecord.launchRetransmission:()V
        34: .line 1452
            aload 8
            monitorexit
        35: goto 38
      StackMap locals: sun.security.ssl.SSLEngineImpl java.nio.ByteBuffer[] int int java.nio.ByteBuffer sun.security.ssl.Ciphertext javax.net.ssl.SSLEngineResult$HandshakeStatus sun.security.ssl.Ciphertext$RecordType sun.security.ssl.SSLEngineImpl
      StackMap stack: java.lang.Throwable
        36: aload 8
            monitorexit
        37: athrow
        38: .line 1456
      StackMap locals:
      StackMap stack:
            getstatic javax.net.ssl.SSLEngineResult$HandshakeStatus.NEED_WRAP:Ljavax/net/ssl/SSLEngineResult$HandshakeStatus;
            astore 6 /* hsStatus */
        39: .line 1473
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 6 /* hsStatus */
            invokevirtual sun.security.ssl.SSLEngineImpl.getHSStatus:(Ljavax/net/ssl/SSLEngineResult$HandshakeStatus;)Ljavax/net/ssl/SSLEngineResult$HandshakeStatus;
            astore 6 /* hsStatus */
        40: .line 1474
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.connectionState:I
            iconst_4
            if_icmpge 50
            aload 0 /* this */
            invokevirtual sun.security.ssl.SSLEngineImpl.isOutboundDone:()Z
            ifne 50
        41: .line 1475
            aload 6 /* hsStatus */
            getstatic javax.net.ssl.SSLEngineResult$HandshakeStatus.NOT_HANDSHAKING:Ljavax/net/ssl/SSLEngineResult$HandshakeStatus;
            if_acmpne 50
        42: .line 1476
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.outputRecord:Lsun/security/ssl/OutputRecord;
            invokevirtual sun.security.ssl.OutputRecord.seqNumIsHuge:()Z
            ifeq 50
        43: .line 1483
            getstatic sun.security.ssl.SSLEngineImpl.debug:Lsun/security/ssl/Debug;
            ifnull 48
            ldc "ssl"
            invokestatic sun.security.ssl.Debug.isOn:(Ljava/lang/String;)Z
            ifeq 48
        44: .line 1484
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            new java.lang.StringBuilder
            dup
            invokestatic java.lang.Thread.currentThread:()Ljava/lang/Thread;
            invokevirtual java.lang.Thread.getName:()Ljava/lang/String;
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
        45: .line 1485
            ldc ", request renegotiation "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        46: .line 1486
            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;
        47: .line 1484
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
        48: .line 1489
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual sun.security.ssl.SSLEngineImpl.beginHandshake:()V
        49: .line 1491
            aload 0 /* this */
            aconst_null
            invokevirtual sun.security.ssl.SSLEngineImpl.getHSStatus:(Ljavax/net/ssl/SSLEngineResult$HandshakeStatus;)Ljavax/net/ssl/SSLEngineResult$HandshakeStatus;
            astore 6 /* hsStatus */
        50: .line 1493
      StackMap locals:
      StackMap stack:
            aload 5 /* ciphertext */
            aload 6 /* hsStatus */
            putfield sun.security.ssl.Ciphertext.handshakeStatus:Ljavax/net/ssl/SSLEngineResult$HandshakeStatus;
        51: .line 1495
            aload 5 /* ciphertext */
            areturn
        end local 7 // sun.security.ssl.Ciphertext$RecordType recordType
        end local 6 // javax.net.ssl.SSLEngineResult$HandshakeStatus hsStatus
        end local 5 // sun.security.ssl.Ciphertext ciphertext
        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   52     0        this  Lsun/security/ssl/SSLEngineImpl;
            0   52     1     appData  [Ljava/nio/ByteBuffer;
            0   52     2      offset  I
            0   52     3      length  I
            0   52     4     netData  Ljava/nio/ByteBuffer;
            1   52     5  ciphertext  Lsun/security/ssl/Ciphertext;
           10   12     6         she  Ljavax/net/ssl/SSLHandshakeException;
           13   15     6           e  Ljava/io/IOException;
           18   52     6    hsStatus  Ljavax/net/ssl/SSLEngineResult$HandshakeStatus;
           19   52     7  recordType  Lsun/security/ssl/Ciphertext$RecordType;
      Exception table:
        from    to  target  type
           1     8       9  Class javax.net.ssl.SSLHandshakeException
           1     8      12  Class java.io.IOException
          33    35      36  any
          36    37      36  any
    Exceptions:
      throws java.io.IOException
    MethodParameters:
         Name  Flags
      appData  
      offset   
      length   
      netData  

  private javax.net.ssl.SSLEngineResult$HandshakeStatus finishHandshake();
    descriptor: ()Ljavax/net/ssl/SSLEngineResult$HandshakeStatus;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // sun.security.ssl.SSLEngineImpl this
         0: .line 1499
            aload 0 /* this */
            aconst_null
            putfield sun.security.ssl.SSLEngineImpl.handshaker:Lsun/security/ssl/Handshaker;
         1: .line 1500
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.inputRecord:Lsun/security/ssl/InputRecord;
            aconst_null
            invokevirtual sun.security.ssl.InputRecord.setHandshakeHash:(Lsun/security/ssl/HandshakeHash;)V
         2: .line 1501
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.outputRecord:Lsun/security/ssl/OutputRecord;
            aconst_null
            invokevirtual sun.security.ssl.OutputRecord.setHandshakeHash:(Lsun/security/ssl/HandshakeHash;)V
         3: .line 1502
            aload 0 /* this */
            iconst_2
            putfield sun.security.ssl.SSLEngineImpl.connectionState:I
         4: .line 1504
            getstatic javax.net.ssl.SSLEngineResult$HandshakeStatus.FINISHED:Ljavax/net/ssl/SSLEngineResult$HandshakeStatus;
            areturn
        end local 0 // sun.security.ssl.SSLEngineImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0  this  Lsun/security/ssl/SSLEngineImpl;

  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 1517
            getstatic sun.security.ssl.SSLEngineImpl.debug:Lsun/security/ssl/Debug;
            ifnull 4
            ldc "ssl"
            invokestatic sun.security.ssl.Debug.isOn:(Ljava/lang/String;)Z
            ifeq 4
         1: .line 1518
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            new java.lang.StringBuilder
            dup
            invokestatic java.lang.Thread.currentThread:()Ljava/lang/Thread;
            invokevirtual java.lang.Thread.getName:()Ljava/lang/String;
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
         2: .line 1519
            ldc ", closeOutboundInternal()"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
         3: .line 1518
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
         4: .line 1525
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.outboundDone:Z
            ifeq 6
         5: .line 1526
            return
         6: .line 1529
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.connectionState:I
            tableswitch { // 0 - 6
                    0: 7
                    1: 17
                    2: 17
                    3: 17
                    4: 16
                    5: 17
                    6: 16
              default: 17
          }
         7: .line 1536
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.outputRecord:Lsun/security/ssl/OutputRecord;
            invokevirtual sun.security.ssl.OutputRecord.close:()V
         8: .line 1537
            goto 10
      StackMap locals:
      StackMap stack: java.io.IOException
         9: pop
        10: .line 1540
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iconst_1
            putfield sun.security.ssl.SSLEngineImpl.outboundDone:Z
        11: .line 1543
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.inputRecord:Lsun/security/ssl/InputRecord;
            invokevirtual sun.security.ssl.InputRecord.close:()V
        12: .line 1544
            goto 14
      StackMap locals:
      StackMap stack: java.io.IOException
        13: pop
        14: .line 1547
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iconst_1
            putfield sun.security.ssl.SSLEngineImpl.inboundDone:Z
        15: .line 1548
            goto 22
        16: .line 1552
      StackMap locals:
      StackMap stack:
            goto 22
        17: .line 1561
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iconst_0
            invokevirtual sun.security.ssl.SSLEngineImpl.warning:(B)V
        18: .line 1563
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.outputRecord:Lsun/security/ssl/OutputRecord;
            invokevirtual sun.security.ssl.OutputRecord.close:()V
        19: .line 1564
            goto 21
      StackMap locals:
      StackMap stack: java.io.IOException
        20: pop
        21: .line 1567
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iconst_1
            putfield sun.security.ssl.SSLEngineImpl.outboundDone:Z
        22: .line 1571
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            bipush 6
            putfield sun.security.ssl.SSLEngineImpl.connectionState:I
        23: .line 1572
            return
        end local 0 // sun.security.ssl.SSLEngineImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   24     0  this  Lsun/security/ssl/SSLEngineImpl;
      Exception table:
        from    to  target  type
           7     8       9  Class java.io.IOException
          11    12      13  Class java.io.IOException
          18    19      20  Class java.io.IOException

  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 1579
            getstatic sun.security.ssl.SSLEngineImpl.debug:Lsun/security/ssl/Debug;
            ifnull 4
            ldc "ssl"
            invokestatic sun.security.ssl.Debug.isOn:(Ljava/lang/String;)Z
            ifeq 4
         1: .line 1580
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            new java.lang.StringBuilder
            dup
            invokestatic java.lang.Thread.currentThread:()Ljava/lang/Thread;
            invokevirtual java.lang.Thread.getName:()Ljava/lang/String;
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
         2: .line 1581
            ldc ", called closeOutbound()"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
         3: .line 1580
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
         4: .line 1584
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual sun.security.ssl.SSLEngineImpl.closeOutboundInternal:()V
         5: .line 1585
            return
        end local 0 // sun.security.ssl.SSLEngineImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    6     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 1592
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.outboundDone:Z
            ifeq 1
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.outputRecord:Lsun/security/ssl/OutputRecord;
            invokevirtual sun.security.ssl.OutputRecord.isEmpty:()Z
            ifeq 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;

  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 1601
            getstatic sun.security.ssl.SSLEngineImpl.debug:Lsun/security/ssl/Debug;
            ifnull 4
            ldc "ssl"
            invokestatic sun.security.ssl.Debug.isOn:(Ljava/lang/String;)Z
            ifeq 4
         1: .line 1602
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            new java.lang.StringBuilder
            dup
            invokestatic java.lang.Thread.currentThread:()Ljava/lang/Thread;
            invokevirtual java.lang.Thread.getName:()Ljava/lang/String;
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
         2: .line 1603
            ldc ", closeInboundInternal()"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
         3: .line 1602
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
         4: .line 1609
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.inboundDone:Z
            ifeq 6
         5: .line 1610
            return
         6: .line 1613
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual sun.security.ssl.SSLEngineImpl.closeOutboundInternal:()V
         7: .line 1616
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.inputRecord:Lsun/security/ssl/InputRecord;
            invokevirtual sun.security.ssl.InputRecord.close:()V
         8: .line 1617
            goto 10
      StackMap locals:
      StackMap stack: java.io.IOException
         9: pop
        10: .line 1620
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iconst_1
            putfield sun.security.ssl.SSLEngineImpl.inboundDone:Z
        11: .line 1622
            aload 0 /* this */
            bipush 6
            putfield sun.security.ssl.SSLEngineImpl.connectionState:I
        12: .line 1623
            return
        end local 0 // sun.security.ssl.SSLEngineImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   13     0  this  Lsun/security/ssl/SSLEngineImpl;
      Exception table:
        from    to  target  type
           7     8       9  Class java.io.IOException

  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 1638
            getstatic sun.security.ssl.SSLEngineImpl.debug:Lsun/security/ssl/Debug;
            ifnull 4
            ldc "ssl"
            invokestatic sun.security.ssl.Debug.isOn:(Ljava/lang/String;)Z
            ifeq 4
         1: .line 1639
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            new java.lang.StringBuilder
            dup
            invokestatic java.lang.Thread.currentThread:()Ljava/lang/Thread;
            invokevirtual java.lang.Thread.getName:()Ljava/lang/String;
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
         2: .line 1640
            ldc ", called closeInbound()"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
         3: .line 1639
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
         4: .line 1646
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.connectionState:I
            ifeq 10
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.recvCN:Z
            ifne 10
         5: .line 1647
            aload 0 /* this */
            iconst_1
            putfield sun.security.ssl.SSLEngineImpl.recvCN:Z
         6: .line 1648
            aload 0 /* this */
            bipush 80
         7: .line 1649
            ldc "Inbound closed before receiving peer's close_notify: possible truncation attack?"
         8: .line 1648
            invokevirtual sun.security.ssl.SSLEngineImpl.fatal:(BLjava/lang/String;)V
         9: .line 1651
            goto 11
        10: .line 1656
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual sun.security.ssl.SSLEngineImpl.closeInboundInternal:()V
        11: .line 1658
      StackMap locals:
      StackMap stack:
            return
        end local 0 // sun.security.ssl.SSLEngineImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   12     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 1665
            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 1683
            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 javax.net.ssl.SSLSession getHandshakeSession();
    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 1688
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.handshakeSession: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;

  synchronized void setHandshakeSession(sun.security.ssl.SSLSessionImpl);
    descriptor: (Lsun/security/ssl/SSLSessionImpl;)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.SSLSessionImpl session
         0: .line 1693
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.inputRecord:Lsun/security/ssl/InputRecord;
            aload 1 /* session */
            invokevirtual sun.security.ssl.SSLSessionImpl.getNegotiatedMaxFragSize:()I
            invokevirtual sun.security.ssl.InputRecord.changeFragmentSize:(I)V
         1: .line 1694
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.outputRecord:Lsun/security/ssl/OutputRecord;
            aload 1 /* session */
            invokevirtual sun.security.ssl.SSLSessionImpl.getNegotiatedMaxFragSize:()I
            invokevirtual sun.security.ssl.OutputRecord.changeFragmentSize:(I)V
         2: .line 1696
            aload 0 /* this */
            aload 1 /* session */
            putfield sun.security.ssl.SSLEngineImpl.handshakeSession:Lsun/security/ssl/SSLSessionImpl;
         3: .line 1697
            return
        end local 1 // sun.security.ssl.SSLSessionImpl session
        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  session  Lsun/security/ssl/SSLSessionImpl;
    MethodParameters:
         Name  Flags
      session  

  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 1705
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.handshaker:Lsun/security/ssl/Handshaker;
            ifnull 2
         1: .line 1706
            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 1708
      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 1720
            aload 0 /* this */
            iconst_1
            iload 1 /* description */
            invokevirtual sun.security.ssl.SSLEngineImpl.sendAlert:(BB)V
         1: .line 1721
            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=5, 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 1725
            aload 0 /* this */
            iload 1 /* description */
            aload 2 /* diagnostic */
            aconst_null
            iconst_0
            invokevirtual sun.security.ssl.SSLEngineImpl.fatal:(BLjava/lang/String;Ljava/lang/Throwable;Z)V
         1: .line 1726
            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=5, 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 1730
            aload 0 /* this */
            iload 1 /* description */
            aconst_null
            aload 2 /* cause */
            iconst_0
            invokevirtual sun.security.ssl.SSLEngineImpl.fatal:(BLjava/lang/String;Ljava/lang/Throwable;Z)V
         1: .line 1731
            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=5, locals=4, 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 1735
            aload 0 /* this */
            iload 1 /* description */
            aload 2 /* diagnostic */
            aload 3 /* cause */
            iconst_0
            invokevirtual sun.security.ssl.SSLEngineImpl.fatal:(BLjava/lang/String;Ljava/lang/Throwable;Z)V
         1: .line 1736
            return
        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    2     0         this  Lsun/security/ssl/SSLEngineImpl;
            0    2     1  description  B
            0    2     2   diagnostic  Ljava/lang/String;
            0    2     3        cause  Ljava/lang/Throwable;
    Exceptions:
      throws javax.net.ssl.SSLException
    MethodParameters:
             Name  Flags
      description  
      diagnostic   
      cause        

  synchronized void fatal(byte, java.lang.String, java.lang.Throwable, boolean);
    descriptor: (BLjava/lang/String;Ljava/lang/Throwable;Z)V
    flags: (0x0020) ACC_SYNCHRONIZED
    Code:
      stack=4, locals=6, args_size=5
        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
        start local 4 // boolean recvFatalAlert
         0: .line 1758
            aload 2 /* diagnostic */
            ifnonnull 2
         1: .line 1759
            ldc "General SSLEngine problem"
            astore 2 /* diagnostic */
         2: .line 1761
      StackMap locals:
      StackMap stack:
            aload 3 /* cause */
            ifnonnull 4
         3: .line 1762
            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 1773
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.closeReason:Ljavax/net/ssl/SSLException;
            ifnull 16
         5: .line 1774
            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 1775
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            new java.lang.StringBuilder
            dup
            invokestatic java.lang.Thread.currentThread:()Ljava/lang/Thread;
            invokevirtual java.lang.Thread.getName:()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 1776
            ldc ", fatal: engine already closed.  Rethrowing "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
         8: .line 1777
            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 1775
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
        10: .line 1779
      StackMap locals:
      StackMap stack:
            aload 3 /* cause */
            instanceof java.lang.RuntimeException
            ifeq 12
        11: .line 1780
            aload 3 /* cause */
            checkcast java.lang.RuntimeException
            athrow
        12: .line 1781
      StackMap locals:
      StackMap stack:
            aload 3 /* cause */
            instanceof javax.net.ssl.SSLException
            ifeq 14
        13: .line 1782
            aload 3 /* cause */
            checkcast javax.net.ssl.SSLException
            athrow
        14: .line 1783
      StackMap locals:
      StackMap stack:
            aload 3 /* cause */
            instanceof java.lang.Exception
            ifeq 16
        15: .line 1784
            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 1788
      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 1789
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            new java.lang.StringBuilder
            dup
            invokestatic java.lang.Thread.currentThread:()Ljava/lang/Thread;
            invokevirtual java.lang.Thread.getName:()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 1790
            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 1791
            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 1789
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
        21: .line 1797
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.connectionState:I
            istore 5 /* oldState */
        start local 5 // int oldState
        22: .line 1798
            aload 0 /* this */
            iconst_4
            putfield sun.security.ssl.SSLEngineImpl.connectionState:I
        23: .line 1801
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.inputRecord:Lsun/security/ssl/InputRecord;
            invokevirtual sun.security.ssl.InputRecord.close:()V
        24: .line 1802
            goto 26
      StackMap locals: sun.security.ssl.SSLEngineImpl int java.lang.String java.lang.Throwable int int
      StackMap stack: java.io.IOException
        25: pop
        26: .line 1805
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iconst_1
            putfield sun.security.ssl.SSLEngineImpl.inboundDone:Z
        27: .line 1807
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.sess:Lsun/security/ssl/SSLSessionImpl;
            invokevirtual sun.security.ssl.SSLSessionImpl.invalidate:()V
        28: .line 1808
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.handshakeSession:Lsun/security/ssl/SSLSessionImpl;
            ifnull 30
        29: .line 1809
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.handshakeSession:Lsun/security/ssl/SSLSessionImpl;
            invokevirtual sun.security.ssl.SSLSessionImpl.invalidate:()V
        30: .line 1817
      StackMap locals:
      StackMap stack:
            iload 5 /* oldState */
            ifeq 32
            iload 4 /* recvFatalAlert */
            ifne 32
        31: .line 1818
            aload 0 /* this */
            iconst_2
            iload 1 /* description */
            invokevirtual sun.security.ssl.SSLEngineImpl.sendAlert:(BB)V
        32: .line 1821
      StackMap locals:
      StackMap stack:
            aload 3 /* cause */
            instanceof javax.net.ssl.SSLException
            ifeq 35
        33: .line 1822
            aload 0 /* this */
            aload 3 /* cause */
            checkcast javax.net.ssl.SSLException
            putfield sun.security.ssl.SSLEngineImpl.closeReason:Ljavax/net/ssl/SSLException;
        34: .line 1823
            goto 38
        35: .line 1829
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
        36: .line 1830
            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;
        37: .line 1829
            putfield sun.security.ssl.SSLEngineImpl.closeReason:Ljavax/net/ssl/SSLException;
        38: .line 1834
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.outputRecord:Lsun/security/ssl/OutputRecord;
            invokevirtual sun.security.ssl.OutputRecord.close:()V
        39: .line 1835
            goto 41
      StackMap locals:
      StackMap stack: java.io.IOException
        40: pop
        41: .line 1838
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iconst_1
            putfield sun.security.ssl.SSLEngineImpl.outboundDone:Z
        42: .line 1840
            aload 0 /* this */
            bipush 6
            putfield sun.security.ssl.SSLEngineImpl.connectionState:I
        43: .line 1842
            aload 3 /* cause */
            instanceof java.lang.RuntimeException
            ifeq 45
        44: .line 1843
            aload 3 /* cause */
            checkcast java.lang.RuntimeException
            athrow
        45: .line 1845
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.closeReason:Ljavax/net/ssl/SSLException;
            athrow
        end local 5 // int oldState
        end local 4 // boolean recvFatalAlert
        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   46     0            this  Lsun/security/ssl/SSLEngineImpl;
            0   46     1     description  B
            0   46     2      diagnostic  Ljava/lang/String;
            0   46     3           cause  Ljava/lang/Throwable;
            0   46     4  recvFatalAlert  Z
           22   46     5        oldState  I
      Exception table:
        from    to  target  type
          23    24      25  Class java.io.IOException
          38    39      40  Class java.io.IOException
    Exceptions:
      throws javax.net.ssl.SSLException
    MethodParameters:
                Name  Flags
      description     
      diagnostic      
      cause           
      recvFatalAlert  

  private void recvAlert(java.nio.ByteBuffer);
    descriptor: (Ljava/nio/ByteBuffer;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=6, args_size=2
        start local 0 // sun.security.ssl.SSLEngineImpl this
        start local 1 // java.nio.ByteBuffer fragment
         0: .line 1854
            aload 1 /* fragment */
            invokevirtual java.nio.ByteBuffer.get:()B
            istore 2 /* level */
        start local 2 // byte level
         1: .line 1855
            aload 1 /* fragment */
            invokevirtual java.nio.ByteBuffer.get:()B
            istore 3 /* description */
        start local 3 // byte description
         2: .line 1857
            getstatic sun.security.ssl.SSLEngineImpl.debug:Lsun/security/ssl/Debug;
            ifnull 19
            ldc "record"
            invokestatic sun.security.ssl.Debug.isOn:(Ljava/lang/String;)Z
            ifne 4
         3: .line 1858
            ldc "handshake"
            invokestatic sun.security.ssl.Debug.isOn:(Ljava/lang/String;)Z
            ifeq 19
         4: .line 1859
      StackMap locals: int int
      StackMap stack:
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            dup
            astore 4
            monitorenter
         5: .line 1860
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            invokestatic java.lang.Thread.currentThread:()Ljava/lang/Thread;
            invokevirtual java.lang.Thread.getName:()Ljava/lang/String;
            invokevirtual java.io.PrintStream.print:(Ljava/lang/String;)V
         6: .line 1861
            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
         7: .line 1862
            iload 2 /* level */
            iconst_2
            if_icmpne 10
         8: .line 1863
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            ldc "fatal, "
            invokevirtual java.io.PrintStream.print:(Ljava/lang/String;)V
         9: .line 1864
            goto 14
      StackMap locals: java.io.PrintStream
      StackMap stack:
        10: iload 2 /* level */
            iconst_1
            if_icmpne 13
        11: .line 1865
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            ldc "warning, "
            invokevirtual java.io.PrintStream.print:(Ljava/lang/String;)V
        12: .line 1866
            goto 14
        13: .line 1867
      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 2 /* 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
        14: .line 1869
      StackMap locals:
      StackMap stack:
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            iload 3 /* description */
            invokestatic sun.security.ssl.Alerts.alertDescription:(B)Ljava/lang/String;
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
        15: .line 1859
            aload 4
            monitorexit
        16: goto 19
      StackMap locals:
      StackMap stack: java.lang.Throwable
        17: aload 4
            monitorexit
        18: athrow
        19: .line 1873
      StackMap locals:
      StackMap stack:
            iload 2 /* level */
            iconst_1
            if_icmpne 35
        20: .line 1874
            iload 3 /* description */
            iconst_m1
            if_icmpne 23
        21: .line 1875
            aload 0 /* this */
            bipush 47
            ldc "Short alert message"
            invokevirtual sun.security.ssl.SSLEngineImpl.fatal:(BLjava/lang/String;)V
        22: .line 1876
            goto 41
      StackMap locals:
      StackMap stack:
        23: iload 3 /* description */
            ifne 32
        24: .line 1877
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.connectionState:I
            iconst_1
            if_icmpne 29
        25: .line 1878
            aload 0 /* this */
            bipush 10
        26: .line 1879
            ldc "Received close_notify during handshake"
        27: .line 1878
            invokevirtual sun.security.ssl.SSLEngineImpl.fatal:(BLjava/lang/String;)V
        28: .line 1880
            goto 41
        29: .line 1881
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iconst_1
            putfield sun.security.ssl.SSLEngineImpl.recvCN:Z
        30: .line 1882
            aload 0 /* this */
            invokevirtual sun.security.ssl.SSLEngineImpl.closeInboundInternal:()V
        31: .line 1884
            goto 41
        32: .line 1892
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.handshaker:Lsun/security/ssl/Handshaker;
            ifnull 41
        33: .line 1893
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.handshaker:Lsun/security/ssl/Handshaker;
            iload 3 /* description */
            invokevirtual sun.security.ssl.Handshaker.handshakeAlert:(B)V
        34: .line 1896
            goto 41
        35: .line 1897
      StackMap locals:
      StackMap stack:
            new java.lang.StringBuilder
            dup
            ldc "Received fatal alert: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
        36: .line 1898
            iload 3 /* description */
            invokestatic sun.security.ssl.Alerts.alertDescription:(B)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        37: .line 1897
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 4 /* reason */
        start local 4 // java.lang.String reason
        38: .line 1904
            aload 0 /* this */
            aconst_null
            putfield sun.security.ssl.SSLEngineImpl.handshaker:Lsun/security/ssl/Handshaker;
        39: .line 1905
            iload 3 /* description */
            aload 4 /* reason */
            invokestatic sun.security.ssl.Alerts.getSSLException:(BLjava/lang/String;)Ljavax/net/ssl/SSLException;
            astore 5 /* cause */
        start local 5 // java.lang.Throwable cause
        40: .line 1906
            aload 0 /* this */
            iload 3 /* description */
            aconst_null
            aload 5 /* cause */
            iconst_1
            invokevirtual sun.security.ssl.SSLEngineImpl.fatal:(BLjava/lang/String;Ljava/lang/Throwable;Z)V
        end local 5 // java.lang.Throwable cause
        end local 4 // java.lang.String reason
        41: .line 1908
      StackMap locals:
      StackMap stack:
            return
        end local 3 // byte description
        end local 2 // byte level
        end local 1 // java.nio.ByteBuffer fragment
        end local 0 // sun.security.ssl.SSLEngineImpl this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   42     0         this  Lsun/security/ssl/SSLEngineImpl;
            0   42     1     fragment  Ljava/nio/ByteBuffer;
            1   42     2        level  B
            2   42     3  description  B
           38   41     4       reason  Ljava/lang/String;
           40   41     5        cause  Ljava/lang/Throwable;
      Exception table:
        from    to  target  type
           5    16      17  any
          17    18      17  any
    Exceptions:
      throws java.io.IOException
    MethodParameters:
          Name  Flags
      fragment  

  private void sendAlert(byte, byte);
    descriptor: (BB)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // sun.security.ssl.SSLEngineImpl this
        start local 1 // byte level
        start local 2 // byte description
         0: .line 1916
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.connectionState:I
            bipush 6
            if_icmplt 2
         1: .line 1917
            return
         2: .line 1924
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.connectionState:I
            iconst_1
            if_icmpgt 6
         3: .line 1925
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.handshaker:Lsun/security/ssl/Handshaker;
            ifnull 5
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.handshaker:Lsun/security/ssl/Handshaker;
            invokevirtual sun.security.ssl.Handshaker.started:()Z
            ifeq 5
         4: .line 1926
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.handshaker:Lsun/security/ssl/Handshaker;
            invokevirtual sun.security.ssl.Handshaker.activated:()Z
            ifne 6
         5: .line 1927
      StackMap locals:
      StackMap stack:
            return
         6: .line 1931
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.outputRecord:Lsun/security/ssl/OutputRecord;
            iload 1 /* level */
            iload 2 /* description */
            invokevirtual sun.security.ssl.OutputRecord.encodeAlert:(BB)V
         7: .line 1932
            goto 9
      StackMap locals:
      StackMap stack: java.io.IOException
         8: pop
         9: .line 1935
      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   10     0         this  Lsun/security/ssl/SSLEngineImpl;
            0   10     1        level  B
            0   10     2  description  B
      Exception table:
        from    to  target  type
           6     7       8  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 1953
            aload 0 /* this */
            iload 1 /* flag */
            putfield sun.security.ssl.SSLEngineImpl.enableSessionCreation:Z
         1: .line 1955
            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 1956
            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 1958
      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 1966
            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 1980
            aload 0 /* this */
            iload 1 /* flag */
            ifeq 2
         1: .line 1981
            getstatic sun.security.ssl.ClientAuthType.CLIENT_AUTH_REQUIRED:Lsun/security/ssl/ClientAuthType;
            goto 3
         2: .line 1982
      StackMap locals:
      StackMap stack: sun.security.ssl.SSLEngineImpl
            getstatic sun.security.ssl.ClientAuthType.CLIENT_AUTH_NONE:Lsun/security/ssl/ClientAuthType;
         3: .line 1980
      StackMap locals: sun.security.ssl.SSLEngineImpl int
      StackMap stack: sun.security.ssl.SSLEngineImpl sun.security.ssl.ClientAuthType
            putfield sun.security.ssl.SSLEngineImpl.doClientAuth:Lsun/security/ssl/ClientAuthType;
         4: .line 1984
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.handshaker:Lsun/security/ssl/Handshaker;
            ifnull 8
         5: .line 1985
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.handshaker:Lsun/security/ssl/Handshaker;
            instanceof sun.security.ssl.ServerHandshaker
            ifeq 8
         6: .line 1986
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.handshaker:Lsun/security/ssl/Handshaker;
            invokevirtual sun.security.ssl.Handshaker.activated:()Z
            ifne 8
         7: .line 1987
            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:Lsun/security/ssl/ClientAuthType;
            invokevirtual sun.security.ssl.ServerHandshaker.setClientAuth:(Lsun/security/ssl/ClientAuthType;)V
         8: .line 1989
      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 1993
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.doClientAuth:Lsun/security/ssl/ClientAuthType;
            getstatic sun.security.ssl.ClientAuthType.CLIENT_AUTH_REQUIRED:Lsun/security/ssl/ClientAuthType;
            if_acmpne 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 2006
            aload 0 /* this */
            iload 1 /* flag */
            ifeq 2
         1: .line 2007
            getstatic sun.security.ssl.ClientAuthType.CLIENT_AUTH_REQUESTED:Lsun/security/ssl/ClientAuthType;
            goto 3
         2: .line 2008
      StackMap locals:
      StackMap stack: sun.security.ssl.SSLEngineImpl
            getstatic sun.security.ssl.ClientAuthType.CLIENT_AUTH_NONE:Lsun/security/ssl/ClientAuthType;
         3: .line 2006
      StackMap locals: sun.security.ssl.SSLEngineImpl int
      StackMap stack: sun.security.ssl.SSLEngineImpl sun.security.ssl.ClientAuthType
            putfield sun.security.ssl.SSLEngineImpl.doClientAuth:Lsun/security/ssl/ClientAuthType;
         4: .line 2010
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.handshaker:Lsun/security/ssl/Handshaker;
            ifnull 8
         5: .line 2011
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.handshaker:Lsun/security/ssl/Handshaker;
            instanceof sun.security.ssl.ServerHandshaker
            ifeq 8
         6: .line 2012
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.handshaker:Lsun/security/ssl/Handshaker;
            invokevirtual sun.security.ssl.Handshaker.activated:()Z
            ifne 8
         7: .line 2013
            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:Lsun/security/ssl/ClientAuthType;
            invokevirtual sun.security.ssl.ServerHandshaker.setClientAuth:(Lsun/security/ssl/ClientAuthType;)V
         8: .line 2015
      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 2019
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.doClientAuth:Lsun/security/ssl/ClientAuthType;
            getstatic sun.security.ssl.ClientAuthType.CLIENT_AUTH_REQUESTED:Lsun/security/ssl/ClientAuthType;
            if_acmpne 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 2031
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.connectionState:I
            tableswitch { // 0 - 1
                    0: 1
                    1: 21
              default: 47
          }
         1: .line 2040
      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 16
         4: .line 2041
            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 10
         5: .line 2042
            aload 0 /* this */
         6: .line 2043
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.sslContext:Lsun/security/ssl/SSLContextImpl;
            iload 1 /* flag */
            ifeq 7
            iconst_0
            goto 8
      StackMap locals: sun.security.ssl.SSLEngineImpl int
      StackMap stack: sun.security.ssl.SSLEngineImpl sun.security.ssl.SSLContextImpl
         7: iconst_1
      StackMap locals: sun.security.ssl.SSLEngineImpl int
      StackMap stack: sun.security.ssl.SSLEngineImpl sun.security.ssl.SSLContextImpl int
         8: invokevirtual sun.security.ssl.SSLContextImpl.getDefaultProtocolList:(Z)Lsun/security/ssl/ProtocolList;
         9: .line 2042
            putfield sun.security.ssl.SSLEngineImpl.enabledProtocols:Lsun/security/ssl/ProtocolList;
        10: .line 2046
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.sslContext:Lsun/security/ssl/SSLContextImpl;
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.enabledCipherSuites:Lsun/security/ssl/CipherSuiteList;
            invokevirtual sun.security.ssl.SSLContextImpl.isDefaultCipherSuiteList:(Lsun/security/ssl/CipherSuiteList;)Z
            ifeq 16
        11: .line 2047
            aload 0 /* this */
        12: .line 2048
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.sslContext:Lsun/security/ssl/SSLContextImpl;
            iload 1 /* flag */
            ifeq 13
            iconst_0
            goto 14
      StackMap locals: sun.security.ssl.SSLEngineImpl int
      StackMap stack: sun.security.ssl.SSLEngineImpl sun.security.ssl.SSLContextImpl
        13: iconst_1
      StackMap locals: sun.security.ssl.SSLEngineImpl int
      StackMap stack: sun.security.ssl.SSLEngineImpl sun.security.ssl.SSLContextImpl int
        14: invokevirtual sun.security.ssl.SSLContextImpl.getDefaultCipherSuiteList:(Z)Lsun/security/ssl/CipherSuiteList;
        15: .line 2047
            putfield sun.security.ssl.SSLEngineImpl.enabledCipherSuites:Lsun/security/ssl/CipherSuiteList;
        16: .line 2052
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iload 1 /* flag */
            ifeq 17
            iconst_0
            goto 18
      StackMap locals:
      StackMap stack: sun.security.ssl.SSLEngineImpl
        17: iconst_1
      StackMap locals: sun.security.ssl.SSLEngineImpl int
      StackMap stack: sun.security.ssl.SSLEngineImpl int
        18: putfield sun.security.ssl.SSLEngineImpl.roleIsServer:Z
        19: .line 2053
            aload 0 /* this */
            iconst_1
            putfield sun.security.ssl.SSLEngineImpl.serverModeSet:Z
        20: .line 2054
            goto 55
        21: .line 2064
      StackMap locals:
      StackMap stack:
            getstatic sun.security.ssl.SSLEngineImpl.$assertionsDisabled:Z
            ifne 22
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.handshaker:Lsun/security/ssl/Handshaker;
            ifnonnull 22
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
        22: .line 2065
      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 47
        23: .line 2072
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.roleIsServer:Z
            iload 1 /* flag */
            ifeq 24
            iconst_0
            goto 25
      StackMap locals:
      StackMap stack: int
        24: iconst_1
      StackMap locals: sun.security.ssl.SSLEngineImpl int
      StackMap stack: int int
        25: if_icmpeq 41
        26: .line 2073
            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 32
        27: .line 2074
            aload 0 /* this */
        28: .line 2075
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.sslContext:Lsun/security/ssl/SSLContextImpl;
            iload 1 /* flag */
            ifeq 29
            iconst_0
            goto 30
      StackMap locals: sun.security.ssl.SSLEngineImpl int
      StackMap stack: sun.security.ssl.SSLEngineImpl sun.security.ssl.SSLContextImpl
        29: iconst_1
      StackMap locals: sun.security.ssl.SSLEngineImpl int
      StackMap stack: sun.security.ssl.SSLEngineImpl sun.security.ssl.SSLContextImpl int
        30: invokevirtual sun.security.ssl.SSLContextImpl.getDefaultProtocolList:(Z)Lsun/security/ssl/ProtocolList;
        31: .line 2074
            putfield sun.security.ssl.SSLEngineImpl.enabledProtocols:Lsun/security/ssl/ProtocolList;
        32: .line 2078
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.sslContext:Lsun/security/ssl/SSLContextImpl;
        33: .line 2079
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.enabledCipherSuites:Lsun/security/ssl/CipherSuiteList;
        34: .line 2078
            invokevirtual sun.security.ssl.SSLContextImpl.isDefaultCipherSuiteList:(Lsun/security/ssl/CipherSuiteList;)Z
        35: .line 2079
            ifeq 41
        36: .line 2080
            aload 0 /* this */
        37: .line 2081
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.sslContext:Lsun/security/ssl/SSLContextImpl;
            iload 1 /* flag */
            ifeq 38
            iconst_0
            goto 39
      StackMap locals: sun.security.ssl.SSLEngineImpl int
      StackMap stack: sun.security.ssl.SSLEngineImpl sun.security.ssl.SSLContextImpl
        38: iconst_1
      StackMap locals: sun.security.ssl.SSLEngineImpl int
      StackMap stack: sun.security.ssl.SSLEngineImpl sun.security.ssl.SSLContextImpl int
        39: invokevirtual sun.security.ssl.SSLContextImpl.getDefaultCipherSuiteList:(Z)Lsun/security/ssl/CipherSuiteList;
        40: .line 2080
            putfield sun.security.ssl.SSLEngineImpl.enabledCipherSuites:Lsun/security/ssl/CipherSuiteList;
        41: .line 2085
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iload 1 /* flag */
            ifeq 42
            iconst_0
            goto 43
      StackMap locals:
      StackMap stack: sun.security.ssl.SSLEngineImpl
        42: iconst_1
      StackMap locals: sun.security.ssl.SSLEngineImpl int
      StackMap stack: sun.security.ssl.SSLEngineImpl int
        43: putfield sun.security.ssl.SSLEngineImpl.roleIsServer:Z
        44: .line 2086
            aload 0 /* this */
            iconst_0
            putfield sun.security.ssl.SSLEngineImpl.connectionState:I
        45: .line 2087
            aload 0 /* this */
            invokevirtual sun.security.ssl.SSLEngineImpl.initHandshaker:()V
        46: .line 2088
            goto 55
        47: .line 2094
      StackMap locals:
      StackMap stack:
            getstatic sun.security.ssl.SSLEngineImpl.debug:Lsun/security/ssl/Debug;
            ifnull 52
            ldc "ssl"
            invokestatic sun.security.ssl.Debug.isOn:(Ljava/lang/String;)Z
            ifeq 52
        48: .line 2095
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            new java.lang.StringBuilder
            dup
            invokestatic java.lang.Thread.currentThread:()Ljava/lang/Thread;
            invokevirtual java.lang.Thread.getName:()Ljava/lang/String;
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
        49: .line 2096
            ldc ", setUseClientMode() invoked in state = "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        50: .line 2097
            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;
        51: .line 2095
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
        52: .line 2104
      StackMap locals:
      StackMap stack:
            new java.lang.IllegalArgumentException
            dup
        53: .line 2105
            ldc "Cannot change mode after SSL traffic has started"
        54: .line 2104
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
        55: .line 2107
      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   56     0  this  Lsun/security/ssl/SSLEngineImpl;
            0   56     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 2111
            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 2127
            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 2141
            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 2142
            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 2143
            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 2145
      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 2159
            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 2170
            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 2184
            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 2185
            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 2186
            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 2188
      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 2192
            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 javax.net.ssl.SSLParameters getSSLParameters();
    descriptor: ()Ljavax/net/ssl/SSLParameters;
    flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
    Code:
      stack=2, locals=2, args_size=1
        start local 0 // sun.security.ssl.SSLEngineImpl this
         0: .line 2200
            aload 0 /* this */
            invokespecial javax.net.ssl.SSLEngine.getSSLParameters:()Ljavax/net/ssl/SSLParameters;
            astore 1 /* params */
        start local 1 // javax.net.ssl.SSLParameters params
         1: .line 2203
            aload 1 /* params */
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.identificationProtocol:Ljava/lang/String;
            invokevirtual javax.net.ssl.SSLParameters.setEndpointIdentificationAlgorithm:(Ljava/lang/String;)V
         2: .line 2204
            aload 1 /* params */
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.algorithmConstraints:Ljava/security/AlgorithmConstraints;
            invokevirtual javax.net.ssl.SSLParameters.setAlgorithmConstraints:(Ljava/security/AlgorithmConstraints;)V
         3: .line 2205
            aload 1 /* params */
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.sniMatchers:Ljava/util/Collection;
            invokevirtual javax.net.ssl.SSLParameters.setSNIMatchers:(Ljava/util/Collection;)V
         4: .line 2206
            aload 1 /* params */
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.serverNames:Ljava/util/List;
            invokevirtual javax.net.ssl.SSLParameters.setServerNames:(Ljava/util/List;)V
         5: .line 2207
            aload 1 /* params */
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.preferLocalCipherSuites:Z
            invokevirtual javax.net.ssl.SSLParameters.setUseCipherSuitesOrder:(Z)V
         6: .line 2208
            aload 1 /* params */
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.enableRetransmissions:Z
            invokevirtual javax.net.ssl.SSLParameters.setEnableRetransmissions:(Z)V
         7: .line 2209
            aload 1 /* params */
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.maximumPacketSize:I
            invokevirtual javax.net.ssl.SSLParameters.setMaximumPacketSize:(I)V
         8: .line 2210
            aload 1 /* params */
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.applicationProtocols:[Ljava/lang/String;
            invokevirtual javax.net.ssl.SSLParameters.setApplicationProtocols:([Ljava/lang/String;)V
         9: .line 2212
            aload 1 /* params */
            areturn
        end local 1 // javax.net.ssl.SSLParameters params
        end local 0 // sun.security.ssl.SSLEngineImpl this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   10     0    this  Lsun/security/ssl/SSLEngineImpl;
            1   10     1  params  Ljavax/net/ssl/SSLParameters;

  public synchronized void setSSLParameters(javax.net.ssl.SSLParameters);
    descriptor: (Ljavax/net/ssl/SSLParameters;)V
    flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
    Code:
      stack=2, locals=4, args_size=2
        start local 0 // sun.security.ssl.SSLEngineImpl this
        start local 1 // javax.net.ssl.SSLParameters params
         0: .line 2220
            aload 0 /* this */
            aload 1 /* params */
            invokespecial javax.net.ssl.SSLEngine.setSSLParameters:(Ljavax/net/ssl/SSLParameters;)V
         1: .line 2223
            aload 0 /* this */
            aload 1 /* params */
            invokevirtual javax.net.ssl.SSLParameters.getEndpointIdentificationAlgorithm:()Ljava/lang/String;
            putfield sun.security.ssl.SSLEngineImpl.identificationProtocol:Ljava/lang/String;
         2: .line 2224
            aload 0 /* this */
            aload 1 /* params */
            invokevirtual javax.net.ssl.SSLParameters.getAlgorithmConstraints:()Ljava/security/AlgorithmConstraints;
            putfield sun.security.ssl.SSLEngineImpl.algorithmConstraints:Ljava/security/AlgorithmConstraints;
         3: .line 2225
            aload 0 /* this */
            aload 1 /* params */
            invokevirtual javax.net.ssl.SSLParameters.getUseCipherSuitesOrder:()Z
            putfield sun.security.ssl.SSLEngineImpl.preferLocalCipherSuites:Z
         4: .line 2226
            aload 0 /* this */
            aload 1 /* params */
            invokevirtual javax.net.ssl.SSLParameters.getEnableRetransmissions:()Z
            putfield sun.security.ssl.SSLEngineImpl.enableRetransmissions:Z
         5: .line 2227
            aload 0 /* this */
            aload 1 /* params */
            invokevirtual javax.net.ssl.SSLParameters.getMaximumPacketSize:()I
            putfield sun.security.ssl.SSLEngineImpl.maximumPacketSize:I
         6: .line 2229
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.maximumPacketSize:I
            ifeq 9
         7: .line 2230
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.outputRecord:Lsun/security/ssl/OutputRecord;
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.maximumPacketSize:I
            invokevirtual sun.security.ssl.OutputRecord.changePacketSize:(I)V
         8: .line 2231
            goto 10
         9: .line 2233
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.outputRecord:Lsun/security/ssl/OutputRecord;
            invokevirtual sun.security.ssl.OutputRecord.getMaxPacketSize:()I
            putfield sun.security.ssl.SSLEngineImpl.maximumPacketSize:I
        10: .line 2236
      StackMap locals:
      StackMap stack:
            aload 1 /* params */
            invokevirtual javax.net.ssl.SSLParameters.getServerNames:()Ljava/util/List;
            astore 2 /* sniNames */
        start local 2 // java.util.List sniNames
        11: .line 2237
            aload 2 /* sniNames */
            ifnull 13
        12: .line 2238
            aload 0 /* this */
            aload 2 /* sniNames */
            putfield sun.security.ssl.SSLEngineImpl.serverNames:Ljava/util/List;
        13: .line 2241
      StackMap locals: java.util.List
      StackMap stack:
            aload 1 /* params */
            invokevirtual javax.net.ssl.SSLParameters.getSNIMatchers:()Ljava/util/Collection;
            astore 3 /* matchers */
        start local 3 // java.util.Collection matchers
        14: .line 2242
            aload 3 /* matchers */
            ifnull 16
        15: .line 2243
            aload 0 /* this */
            aload 3 /* matchers */
            putfield sun.security.ssl.SSLEngineImpl.sniMatchers:Ljava/util/Collection;
        16: .line 2245
      StackMap locals: java.util.Collection
      StackMap stack:
            aload 0 /* this */
            aload 1 /* params */
            invokevirtual javax.net.ssl.SSLParameters.getApplicationProtocols:()[Ljava/lang/String;
            putfield sun.security.ssl.SSLEngineImpl.applicationProtocols:[Ljava/lang/String;
        17: .line 2247
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.handshaker:Lsun/security/ssl/Handshaker;
            ifnull 27
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.handshaker:Lsun/security/ssl/Handshaker;
            invokevirtual sun.security.ssl.Handshaker.activated:()Z
            ifne 27
        18: .line 2248
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.handshaker:Lsun/security/ssl/Handshaker;
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.identificationProtocol:Ljava/lang/String;
            invokevirtual sun.security.ssl.Handshaker.setIdentificationProtocol:(Ljava/lang/String;)V
        19: .line 2249
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.handshaker:Lsun/security/ssl/Handshaker;
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.algorithmConstraints:Ljava/security/AlgorithmConstraints;
            invokevirtual sun.security.ssl.Handshaker.setAlgorithmConstraints:(Ljava/security/AlgorithmConstraints;)V
        20: .line 2250
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.handshaker:Lsun/security/ssl/Handshaker;
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.maximumPacketSize:I
            invokevirtual sun.security.ssl.Handshaker.setMaximumPacketSize:(I)V
        21: .line 2251
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.handshaker:Lsun/security/ssl/Handshaker;
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.applicationProtocols:[Ljava/lang/String;
            invokevirtual sun.security.ssl.Handshaker.setApplicationProtocols:([Ljava/lang/String;)V
        22: .line 2252
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.roleIsServer:Z
            ifeq 26
        23: .line 2253
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.handshaker:Lsun/security/ssl/Handshaker;
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.sniMatchers:Ljava/util/Collection;
            invokevirtual sun.security.ssl.Handshaker.setSNIMatchers:(Ljava/util/Collection;)V
        24: .line 2254
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.handshaker:Lsun/security/ssl/Handshaker;
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.preferLocalCipherSuites:Z
            invokevirtual sun.security.ssl.Handshaker.setUseCipherSuitesOrder:(Z)V
        25: .line 2255
            goto 27
        26: .line 2256
      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.serverNames:Ljava/util/List;
            invokevirtual sun.security.ssl.Handshaker.setSNIServerNames:(Ljava/util/List;)V
        27: .line 2259
      StackMap locals:
      StackMap stack:
            return
        end local 3 // java.util.Collection matchers
        end local 2 // java.util.List sniNames
        end local 1 // javax.net.ssl.SSLParameters params
        end local 0 // sun.security.ssl.SSLEngineImpl this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   28     0      this  Lsun/security/ssl/SSLEngineImpl;
            0   28     1    params  Ljavax/net/ssl/SSLParameters;
           11   28     2  sniNames  Ljava/util/List<Ljavax/net/ssl/SNIServerName;>;
           14   28     3  matchers  Ljava/util/Collection<Ljavax/net/ssl/SNIMatcher;>;
    MethodParameters:
        Name  Flags
      params  

  public synchronized java.lang.String getApplicationProtocol();
    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 2263
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.applicationProtocol: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 java.lang.String getHandshakeApplicationProtocol();
    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 2268
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.handshaker:Lsun/security/ssl/Handshaker;
            ifnull 2
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.handshaker:Lsun/security/ssl/Handshaker;
            invokevirtual sun.security.ssl.Handshaker.started:()Z
            ifeq 2
         1: .line 2269
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.handshaker:Lsun/security/ssl/Handshaker;
            invokevirtual sun.security.ssl.Handshaker.getHandshakeApplicationProtocol:()Ljava/lang/String;
            areturn
         2: .line 2271
      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;

  public synchronized void setHandshakeApplicationProtocolSelector(java.util.function.BiFunction<javax.net.ssl.SSLEngine, java.util.List<java.lang.String>, java.lang.String>);
    descriptor: (Ljava/util/function/BiFunction;)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 // java.util.function.BiFunction selector
         0: .line 2277
            aload 0 /* this */
            aload 1 /* selector */
            putfield sun.security.ssl.SSLEngineImpl.applicationProtocolSelector:Ljava/util/function/BiFunction;
         1: .line 2278
            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 2279
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.handshaker:Lsun/security/ssl/Handshaker;
            aload 1 /* selector */
            invokevirtual sun.security.ssl.Handshaker.setApplicationProtocolSelectorSSLEngine:(Ljava/util/function/BiFunction;)V
         3: .line 2281
      StackMap locals:
      StackMap stack:
            return
        end local 1 // java.util.function.BiFunction selector
        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  selector  Ljava/util/function/BiFunction<Ljavax/net/ssl/SSLEngine;Ljava/util/List<Ljava/lang/String;>;Ljava/lang/String;>;
    Signature: (Ljava/util/function/BiFunction<Ljavax/net/ssl/SSLEngine;Ljava/util/List<Ljava/lang/String;>;Ljava/lang/String;>;)V
    MethodParameters:
          Name  Flags
      selector  

  public synchronized java.util.function.BiFunction<javax.net.ssl.SSLEngine, java.util.List<java.lang.String>, java.lang.String> getHandshakeApplicationProtocolSelector();
    descriptor: ()Ljava/util/function/BiFunction;
    flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // sun.security.ssl.SSLEngineImpl this
         0: .line 2286
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.applicationProtocolSelector:Ljava/util/function/BiFunction;
            areturn
        end local 0 // sun.security.ssl.SSLEngineImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lsun/security/ssl/SSLEngineImpl;
    Signature: ()Ljava/util/function/BiFunction<Ljavax/net/ssl/SSLEngine;Ljava/util/List<Ljava/lang/String;>;Ljava/lang/String;>;

  public java.lang.String toString();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=3, args_size=1
        start local 0 // sun.security.ssl.SSLEngineImpl this
         0: .line 2294
            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 2296
            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 2297
            aload 1 /* retval */
            ldc "["
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
         3: .line 2298
            aload 1 /* retval */
            ldc "SSLEngine[hostname="
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
         4: .line 2299
            aload 0 /* this */
            invokevirtual sun.security.ssl.SSLEngineImpl.getPeerHost:()Ljava/lang/String;
            astore 2 /* host */
        start local 2 // java.lang.String host
         5: .line 2300
            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 2301
            aload 1 /* retval */
            ldc " port="
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
         9: .line 2302
            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 2303
            aload 1 /* retval */
            new java.lang.StringBuilder
            dup
            ldc " role="
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.roleIsServer:Z
            ifeq 11
            ldc "Server"
            goto 12
      StackMap locals: sun.security.ssl.SSLEngineImpl java.lang.StringBuilder java.lang.String
      StackMap stack: java.lang.StringBuilder java.lang.StringBuilder
        11: ldc "Client"
      StackMap locals: sun.security.ssl.SSLEngineImpl java.lang.StringBuilder java.lang.String
      StackMap stack: java.lang.StringBuilder java.lang.StringBuilder java.lang.String
        12: invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        13: .line 2304
            aload 1 /* retval */
            ldc "] "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        14: .line 2305
            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
        15: .line 2306
            aload 1 /* retval */
            ldc "]"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        16: .line 2308
            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   17     0    this  Lsun/security/ssl/SSLEngineImpl;
            1   17     1  retval  Ljava/lang/StringBuilder;
            5   17     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
  final RecordType = sun.security.ssl.Ciphertext$RecordType of sun.security.ssl.Ciphertext
  DelegatedTask = sun.security.ssl.Handshaker$DelegatedTask of sun.security.ssl.Handshaker