public final class sun.security.ssl.SSLSocketImpl extends sun.security.ssl.BaseSSLSocketImpl
  minor version: 0
  major version: 59
  flags: flags: (0x0031) ACC_PUBLIC, ACC_FINAL, ACC_SUPER
  this_class: sun.security.ssl.SSLSocketImpl
  super_class: sun.security.ssl.BaseSSLSocketImpl
{
  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_SENT_CLOSE;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 5

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

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

  private volatile int connectionState;
    descriptor: I
    flags: (0x0042) ACC_PRIVATE, ACC_VOLATILE

  private boolean expectingFinished;
    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 roleIsServer;
    descriptor: Z
    flags: (0x0002) ACC_PRIVATE

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

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

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

  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;>;

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

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

  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.SSLSocket, 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/SSLSocket;Ljava/util/List<Ljava/lang/String;>;Ljava/lang/String;>;

  private final java.lang.Object handshakeLock;
    descriptor: Ljava/lang/Object;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  final java.util.concurrent.locks.ReentrantLock writeLock;
    descriptor: Ljava/util/concurrent/locks/ReentrantLock;
    flags: (0x0010) ACC_FINAL

  private final java.lang.Object readLock;
    descriptor: Ljava/lang/Object;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  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 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 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 java.util.HashMap<javax.net.ssl.HandshakeCompletedListener, java.security.AccessControlContext> handshakeListeners;
    descriptor: Ljava/util/HashMap;
    flags: (0x0002) ACC_PRIVATE
    Signature: Ljava/util/HashMap<Ljavax/net/ssl/HandshakeCompletedListener;Ljava/security/AccessControlContext;>;

  private java.io.InputStream sockInput;
    descriptor: Ljava/io/InputStream;
    flags: (0x0002) ACC_PRIVATE

  private java.io.OutputStream sockOutput;
    descriptor: Ljava/io/OutputStream;
    flags: (0x0002) ACC_PRIVATE

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

  private sun.security.ssl.AppOutputStream output;
    descriptor: Lsun/security/ssl/AppOutputStream;
    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 static final sun.security.ssl.Debug debug;
    descriptor: Lsun/security/ssl/Debug;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

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

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

  static final boolean trustNameService;
    descriptor: Z
    flags: (0x0018) 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=2, locals=0, args_size=0
         0: .line 67
            ldc Lsun/security/ssl/SSLSocketImpl;
            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.SSLSocketImpl.$assertionsDisabled:Z
         3: .line 377
            ldc "ssl"
            invokestatic sun.security.ssl.Debug.getInstance:(Ljava/lang/String;)Lsun/security/ssl/Debug;
            putstatic sun.security.ssl.SSLSocketImpl.debug:Lsun/security/ssl/Debug;
         4: .line 397
            ldc "jdk.tls.trustNameService"
            iconst_0
            invokestatic sun.security.ssl.Debug.getBooleanProperty:(Ljava/lang/String;Z)Z
         5: .line 396
            putstatic sun.security.ssl.SSLSocketImpl.trustNameService:Z
         6: .line 397
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  void <init>(sun.security.ssl.SSLContextImpl, java.lang.String, int);
    descriptor: (Lsun/security/ssl/SSLContextImpl;Ljava/lang/String;I)V
    flags: (0x0000) 
    Code:
      stack=4, locals=5, args_size=4
        start local 0 // sun.security.ssl.SSLSocketImpl this
        start local 1 // sun.security.ssl.SSLContextImpl context
        start local 2 // java.lang.String host
        start local 3 // int port
         0: .line 414
            aload 0 /* this */
            invokespecial sun.security.ssl.BaseSSLSocketImpl.<init>:()V
         1: .line 190
            aload 0 /* this */
         2: .line 191
            getstatic sun.security.ssl.ClientAuthType.CLIENT_AUTH_NONE:Lsun/security/ssl/ClientAuthType;
            putfield sun.security.ssl.SSLSocketImpl.doClientAuth:Lsun/security/ssl/ClientAuthType;
         3: .line 193
            aload 0 /* this */
            iconst_1
            putfield sun.security.ssl.SSLSocketImpl.enableSessionCreation:Z
         4: .line 195
            aload 0 /* this */
            iconst_1
            putfield sun.security.ssl.SSLSocketImpl.autoClose:Z
         5: .line 202
            aload 0 /* this */
            aconst_null
            putfield sun.security.ssl.SSLSocketImpl.identificationProtocol:Ljava/lang/String;
         6: .line 205
            aload 0 /* this */
            aconst_null
            putfield sun.security.ssl.SSLSocketImpl.algorithmConstraints:Ljava/security/AlgorithmConstraints;
         7: .line 208
            aload 0 /* this */
         8: .line 209
            invokestatic java.util.Collections.emptyList:()Ljava/util/List;
            putfield sun.security.ssl.SSLSocketImpl.serverNames:Ljava/util/List;
         9: .line 210
            aload 0 /* this */
        10: .line 211
            invokestatic java.util.Collections.emptyList:()Ljava/util/List;
            putfield sun.security.ssl.SSLSocketImpl.sniMatchers:Ljava/util/Collection;
        11: .line 214
            aload 0 /* this */
            iconst_0
            putfield sun.security.ssl.SSLSocketImpl.noSniExtension:Z
        12: .line 217
            aload 0 /* this */
            iconst_0
            putfield sun.security.ssl.SSLSocketImpl.noSniMatcher:Z
        13: .line 220
            aload 0 /* this */
            iconst_0
            anewarray java.lang.String
            putfield sun.security.ssl.SSLSocketImpl.applicationProtocols:[Ljava/lang/String;
        14: .line 225
            aload 0 /* this */
            aconst_null
            putfield sun.security.ssl.SSLSocketImpl.applicationProtocol:Ljava/lang/String;
        15: .line 302
            aload 0 /* this */
            new java.lang.Object
            dup
            invokespecial java.lang.Object.<init>:()V
            putfield sun.security.ssl.SSLSocketImpl.handshakeLock:Ljava/lang/Object;
        16: .line 303
            aload 0 /* this */
            new java.util.concurrent.locks.ReentrantLock
            dup
            invokespecial java.util.concurrent.locks.ReentrantLock.<init>:()V
            putfield sun.security.ssl.SSLSocketImpl.writeLock:Ljava/util/concurrent/locks/ReentrantLock;
        17: .line 304
            aload 0 /* this */
            new java.lang.Object
            dup
            invokespecial java.lang.Object.<init>:()V
            putfield sun.security.ssl.SSLSocketImpl.readLock:Ljava/lang/Object;
        18: .line 374
            aload 0 /* this */
            getstatic sun.security.ssl.ProtocolVersion.DEFAULT_TLS:Lsun/security/ssl/ProtocolVersion;
            putfield sun.security.ssl.SSLSocketImpl.protocolVersion:Lsun/security/ssl/ProtocolVersion;
        19: .line 383
            aload 0 /* this */
            iconst_0
            putfield sun.security.ssl.SSLSocketImpl.preferLocalCipherSuites:Z
        20: .line 388
            aload 0 /* this */
            iconst_0
            putfield sun.security.ssl.SSLSocketImpl.maximumPacketSize:I
        21: .line 415
            aload 0 /* this */
            aload 2 /* host */
            putfield sun.security.ssl.SSLSocketImpl.host:Ljava/lang/String;
        22: .line 416
            aload 0 /* this */
        23: .line 417
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.serverNames:Ljava/util/List;
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.host:Ljava/lang/String;
            invokestatic sun.security.ssl.Utilities.addToSNIServerNameList:(Ljava/util/List;Ljava/lang/String;)Ljava/util/List;
        24: .line 416
            putfield sun.security.ssl.SSLSocketImpl.serverNames:Ljava/util/List;
        25: .line 418
            aload 0 /* this */
            aload 1 /* context */
            iconst_0
            invokevirtual sun.security.ssl.SSLSocketImpl.init:(Lsun/security/ssl/SSLContextImpl;Z)V
        26: .line 420
            aload 2 /* host */
            ifnull 27
            new java.net.InetSocketAddress
            dup
            aload 2 /* host */
            iload 3 /* port */
            invokespecial java.net.InetSocketAddress.<init>:(Ljava/lang/String;I)V
            goto 28
        27: .line 421
      StackMap locals: sun.security.ssl.SSLSocketImpl sun.security.ssl.SSLContextImpl java.lang.String int
      StackMap stack:
            new java.net.InetSocketAddress
            dup
            aconst_null
            invokestatic java.net.InetAddress.getByName:(Ljava/lang/String;)Ljava/net/InetAddress;
            iload 3 /* port */
            invokespecial java.net.InetSocketAddress.<init>:(Ljava/net/InetAddress;I)V
        28: .line 419
      StackMap locals:
      StackMap stack: java.net.InetSocketAddress
            astore 4 /* socketAddress */
        start local 4 // java.net.SocketAddress socketAddress
        29: .line 422
            aload 0 /* this */
            aload 4 /* socketAddress */
            iconst_0
            invokevirtual sun.security.ssl.SSLSocketImpl.connect:(Ljava/net/SocketAddress;I)V
        30: .line 423
            return
        end local 4 // java.net.SocketAddress socketAddress
        end local 3 // int port
        end local 2 // java.lang.String host
        end local 1 // sun.security.ssl.SSLContextImpl context
        end local 0 // sun.security.ssl.SSLSocketImpl this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0   31     0           this  Lsun/security/ssl/SSLSocketImpl;
            0   31     1        context  Lsun/security/ssl/SSLContextImpl;
            0   31     2           host  Ljava/lang/String;
            0   31     3           port  I
           29   31     4  socketAddress  Ljava/net/SocketAddress;
    Exceptions:
      throws java.io.IOException, java.net.UnknownHostException
    MethodParameters:
         Name  Flags
      context  
      host     
      port     

  void <init>(sun.security.ssl.SSLContextImpl, java.net.InetAddress, int);
    descriptor: (Lsun/security/ssl/SSLContextImpl;Ljava/net/InetAddress;I)V
    flags: (0x0000) 
    Code:
      stack=4, locals=5, args_size=4
        start local 0 // sun.security.ssl.SSLSocketImpl this
        start local 1 // sun.security.ssl.SSLContextImpl context
        start local 2 // java.net.InetAddress host
        start local 3 // int port
         0: .line 438
            aload 0 /* this */
            invokespecial sun.security.ssl.BaseSSLSocketImpl.<init>:()V
         1: .line 190
            aload 0 /* this */
         2: .line 191
            getstatic sun.security.ssl.ClientAuthType.CLIENT_AUTH_NONE:Lsun/security/ssl/ClientAuthType;
            putfield sun.security.ssl.SSLSocketImpl.doClientAuth:Lsun/security/ssl/ClientAuthType;
         3: .line 193
            aload 0 /* this */
            iconst_1
            putfield sun.security.ssl.SSLSocketImpl.enableSessionCreation:Z
         4: .line 195
            aload 0 /* this */
            iconst_1
            putfield sun.security.ssl.SSLSocketImpl.autoClose:Z
         5: .line 202
            aload 0 /* this */
            aconst_null
            putfield sun.security.ssl.SSLSocketImpl.identificationProtocol:Ljava/lang/String;
         6: .line 205
            aload 0 /* this */
            aconst_null
            putfield sun.security.ssl.SSLSocketImpl.algorithmConstraints:Ljava/security/AlgorithmConstraints;
         7: .line 208
            aload 0 /* this */
         8: .line 209
            invokestatic java.util.Collections.emptyList:()Ljava/util/List;
            putfield sun.security.ssl.SSLSocketImpl.serverNames:Ljava/util/List;
         9: .line 210
            aload 0 /* this */
        10: .line 211
            invokestatic java.util.Collections.emptyList:()Ljava/util/List;
            putfield sun.security.ssl.SSLSocketImpl.sniMatchers:Ljava/util/Collection;
        11: .line 214
            aload 0 /* this */
            iconst_0
            putfield sun.security.ssl.SSLSocketImpl.noSniExtension:Z
        12: .line 217
            aload 0 /* this */
            iconst_0
            putfield sun.security.ssl.SSLSocketImpl.noSniMatcher:Z
        13: .line 220
            aload 0 /* this */
            iconst_0
            anewarray java.lang.String
            putfield sun.security.ssl.SSLSocketImpl.applicationProtocols:[Ljava/lang/String;
        14: .line 225
            aload 0 /* this */
            aconst_null
            putfield sun.security.ssl.SSLSocketImpl.applicationProtocol:Ljava/lang/String;
        15: .line 302
            aload 0 /* this */
            new java.lang.Object
            dup
            invokespecial java.lang.Object.<init>:()V
            putfield sun.security.ssl.SSLSocketImpl.handshakeLock:Ljava/lang/Object;
        16: .line 303
            aload 0 /* this */
            new java.util.concurrent.locks.ReentrantLock
            dup
            invokespecial java.util.concurrent.locks.ReentrantLock.<init>:()V
            putfield sun.security.ssl.SSLSocketImpl.writeLock:Ljava/util/concurrent/locks/ReentrantLock;
        17: .line 304
            aload 0 /* this */
            new java.lang.Object
            dup
            invokespecial java.lang.Object.<init>:()V
            putfield sun.security.ssl.SSLSocketImpl.readLock:Ljava/lang/Object;
        18: .line 374
            aload 0 /* this */
            getstatic sun.security.ssl.ProtocolVersion.DEFAULT_TLS:Lsun/security/ssl/ProtocolVersion;
            putfield sun.security.ssl.SSLSocketImpl.protocolVersion:Lsun/security/ssl/ProtocolVersion;
        19: .line 383
            aload 0 /* this */
            iconst_0
            putfield sun.security.ssl.SSLSocketImpl.preferLocalCipherSuites:Z
        20: .line 388
            aload 0 /* this */
            iconst_0
            putfield sun.security.ssl.SSLSocketImpl.maximumPacketSize:I
        21: .line 439
            aload 0 /* this */
            aload 1 /* context */
            iconst_0
            invokevirtual sun.security.ssl.SSLSocketImpl.init:(Lsun/security/ssl/SSLContextImpl;Z)V
        22: .line 440
            new java.net.InetSocketAddress
            dup
            aload 2 /* host */
            iload 3 /* port */
            invokespecial java.net.InetSocketAddress.<init>:(Ljava/net/InetAddress;I)V
            astore 4 /* socketAddress */
        start local 4 // java.net.SocketAddress socketAddress
        23: .line 441
            aload 0 /* this */
            aload 4 /* socketAddress */
            iconst_0
            invokevirtual sun.security.ssl.SSLSocketImpl.connect:(Ljava/net/SocketAddress;I)V
        24: .line 442
            return
        end local 4 // java.net.SocketAddress socketAddress
        end local 3 // int port
        end local 2 // java.net.InetAddress host
        end local 1 // sun.security.ssl.SSLContextImpl context
        end local 0 // sun.security.ssl.SSLSocketImpl this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0   25     0           this  Lsun/security/ssl/SSLSocketImpl;
            0   25     1        context  Lsun/security/ssl/SSLContextImpl;
            0   25     2           host  Ljava/net/InetAddress;
            0   25     3           port  I
           23   25     4  socketAddress  Ljava/net/SocketAddress;
    Exceptions:
      throws java.io.IOException
    MethodParameters:
         Name  Flags
      context  
      host     
      port     

  void <init>(sun.security.ssl.SSLContextImpl, java.lang.String, int, java.net.InetAddress, int);
    descriptor: (Lsun/security/ssl/SSLContextImpl;Ljava/lang/String;ILjava/net/InetAddress;I)V
    flags: (0x0000) 
    Code:
      stack=5, locals=7, args_size=6
        start local 0 // sun.security.ssl.SSLSocketImpl this
        start local 1 // sun.security.ssl.SSLContextImpl context
        start local 2 // java.lang.String host
        start local 3 // int port
        start local 4 // java.net.InetAddress localAddr
        start local 5 // int localPort
         0: .line 458
            aload 0 /* this */
            invokespecial sun.security.ssl.BaseSSLSocketImpl.<init>:()V
         1: .line 190
            aload 0 /* this */
         2: .line 191
            getstatic sun.security.ssl.ClientAuthType.CLIENT_AUTH_NONE:Lsun/security/ssl/ClientAuthType;
            putfield sun.security.ssl.SSLSocketImpl.doClientAuth:Lsun/security/ssl/ClientAuthType;
         3: .line 193
            aload 0 /* this */
            iconst_1
            putfield sun.security.ssl.SSLSocketImpl.enableSessionCreation:Z
         4: .line 195
            aload 0 /* this */
            iconst_1
            putfield sun.security.ssl.SSLSocketImpl.autoClose:Z
         5: .line 202
            aload 0 /* this */
            aconst_null
            putfield sun.security.ssl.SSLSocketImpl.identificationProtocol:Ljava/lang/String;
         6: .line 205
            aload 0 /* this */
            aconst_null
            putfield sun.security.ssl.SSLSocketImpl.algorithmConstraints:Ljava/security/AlgorithmConstraints;
         7: .line 208
            aload 0 /* this */
         8: .line 209
            invokestatic java.util.Collections.emptyList:()Ljava/util/List;
            putfield sun.security.ssl.SSLSocketImpl.serverNames:Ljava/util/List;
         9: .line 210
            aload 0 /* this */
        10: .line 211
            invokestatic java.util.Collections.emptyList:()Ljava/util/List;
            putfield sun.security.ssl.SSLSocketImpl.sniMatchers:Ljava/util/Collection;
        11: .line 214
            aload 0 /* this */
            iconst_0
            putfield sun.security.ssl.SSLSocketImpl.noSniExtension:Z
        12: .line 217
            aload 0 /* this */
            iconst_0
            putfield sun.security.ssl.SSLSocketImpl.noSniMatcher:Z
        13: .line 220
            aload 0 /* this */
            iconst_0
            anewarray java.lang.String
            putfield sun.security.ssl.SSLSocketImpl.applicationProtocols:[Ljava/lang/String;
        14: .line 225
            aload 0 /* this */
            aconst_null
            putfield sun.security.ssl.SSLSocketImpl.applicationProtocol:Ljava/lang/String;
        15: .line 302
            aload 0 /* this */
            new java.lang.Object
            dup
            invokespecial java.lang.Object.<init>:()V
            putfield sun.security.ssl.SSLSocketImpl.handshakeLock:Ljava/lang/Object;
        16: .line 303
            aload 0 /* this */
            new java.util.concurrent.locks.ReentrantLock
            dup
            invokespecial java.util.concurrent.locks.ReentrantLock.<init>:()V
            putfield sun.security.ssl.SSLSocketImpl.writeLock:Ljava/util/concurrent/locks/ReentrantLock;
        17: .line 304
            aload 0 /* this */
            new java.lang.Object
            dup
            invokespecial java.lang.Object.<init>:()V
            putfield sun.security.ssl.SSLSocketImpl.readLock:Ljava/lang/Object;
        18: .line 374
            aload 0 /* this */
            getstatic sun.security.ssl.ProtocolVersion.DEFAULT_TLS:Lsun/security/ssl/ProtocolVersion;
            putfield sun.security.ssl.SSLSocketImpl.protocolVersion:Lsun/security/ssl/ProtocolVersion;
        19: .line 383
            aload 0 /* this */
            iconst_0
            putfield sun.security.ssl.SSLSocketImpl.preferLocalCipherSuites:Z
        20: .line 388
            aload 0 /* this */
            iconst_0
            putfield sun.security.ssl.SSLSocketImpl.maximumPacketSize:I
        21: .line 459
            aload 0 /* this */
            aload 2 /* host */
            putfield sun.security.ssl.SSLSocketImpl.host:Ljava/lang/String;
        22: .line 460
            aload 0 /* this */
        23: .line 461
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.serverNames:Ljava/util/List;
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.host:Ljava/lang/String;
            invokestatic sun.security.ssl.Utilities.addToSNIServerNameList:(Ljava/util/List;Ljava/lang/String;)Ljava/util/List;
        24: .line 460
            putfield sun.security.ssl.SSLSocketImpl.serverNames:Ljava/util/List;
        25: .line 462
            aload 0 /* this */
            aload 1 /* context */
            iconst_0
            invokevirtual sun.security.ssl.SSLSocketImpl.init:(Lsun/security/ssl/SSLContextImpl;Z)V
        26: .line 463
            aload 0 /* this */
            new java.net.InetSocketAddress
            dup
            aload 4 /* localAddr */
            iload 5 /* localPort */
            invokespecial java.net.InetSocketAddress.<init>:(Ljava/net/InetAddress;I)V
            invokevirtual sun.security.ssl.SSLSocketImpl.bind:(Ljava/net/SocketAddress;)V
        27: .line 465
            aload 2 /* host */
            ifnull 28
            new java.net.InetSocketAddress
            dup
            aload 2 /* host */
            iload 3 /* port */
            invokespecial java.net.InetSocketAddress.<init>:(Ljava/lang/String;I)V
            goto 29
        28: .line 466
      StackMap locals: sun.security.ssl.SSLSocketImpl sun.security.ssl.SSLContextImpl java.lang.String int java.net.InetAddress int
      StackMap stack:
            new java.net.InetSocketAddress
            dup
            aconst_null
            invokestatic java.net.InetAddress.getByName:(Ljava/lang/String;)Ljava/net/InetAddress;
            iload 3 /* port */
            invokespecial java.net.InetSocketAddress.<init>:(Ljava/net/InetAddress;I)V
        29: .line 464
      StackMap locals:
      StackMap stack: java.net.InetSocketAddress
            astore 6 /* socketAddress */
        start local 6 // java.net.SocketAddress socketAddress
        30: .line 467
            aload 0 /* this */
            aload 6 /* socketAddress */
            iconst_0
            invokevirtual sun.security.ssl.SSLSocketImpl.connect:(Ljava/net/SocketAddress;I)V
        31: .line 468
            return
        end local 6 // java.net.SocketAddress socketAddress
        end local 5 // int localPort
        end local 4 // java.net.InetAddress localAddr
        end local 3 // int port
        end local 2 // java.lang.String host
        end local 1 // sun.security.ssl.SSLContextImpl context
        end local 0 // sun.security.ssl.SSLSocketImpl this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0   32     0           this  Lsun/security/ssl/SSLSocketImpl;
            0   32     1        context  Lsun/security/ssl/SSLContextImpl;
            0   32     2           host  Ljava/lang/String;
            0   32     3           port  I
            0   32     4      localAddr  Ljava/net/InetAddress;
            0   32     5      localPort  I
           30   32     6  socketAddress  Ljava/net/SocketAddress;
    Exceptions:
      throws java.io.IOException, java.net.UnknownHostException
    MethodParameters:
           Name  Flags
      context    
      host       
      port       
      localAddr  
      localPort  

  void <init>(sun.security.ssl.SSLContextImpl, java.net.InetAddress, int, java.net.InetAddress, int);
    descriptor: (Lsun/security/ssl/SSLContextImpl;Ljava/net/InetAddress;ILjava/net/InetAddress;I)V
    flags: (0x0000) 
    Code:
      stack=5, locals=7, args_size=6
        start local 0 // sun.security.ssl.SSLSocketImpl this
        start local 1 // sun.security.ssl.SSLContextImpl context
        start local 2 // java.net.InetAddress host
        start local 3 // int port
        start local 4 // java.net.InetAddress localAddr
        start local 5 // int localPort
         0: .line 486
            aload 0 /* this */
            invokespecial sun.security.ssl.BaseSSLSocketImpl.<init>:()V
         1: .line 190
            aload 0 /* this */
         2: .line 191
            getstatic sun.security.ssl.ClientAuthType.CLIENT_AUTH_NONE:Lsun/security/ssl/ClientAuthType;
            putfield sun.security.ssl.SSLSocketImpl.doClientAuth:Lsun/security/ssl/ClientAuthType;
         3: .line 193
            aload 0 /* this */
            iconst_1
            putfield sun.security.ssl.SSLSocketImpl.enableSessionCreation:Z
         4: .line 195
            aload 0 /* this */
            iconst_1
            putfield sun.security.ssl.SSLSocketImpl.autoClose:Z
         5: .line 202
            aload 0 /* this */
            aconst_null
            putfield sun.security.ssl.SSLSocketImpl.identificationProtocol:Ljava/lang/String;
         6: .line 205
            aload 0 /* this */
            aconst_null
            putfield sun.security.ssl.SSLSocketImpl.algorithmConstraints:Ljava/security/AlgorithmConstraints;
         7: .line 208
            aload 0 /* this */
         8: .line 209
            invokestatic java.util.Collections.emptyList:()Ljava/util/List;
            putfield sun.security.ssl.SSLSocketImpl.serverNames:Ljava/util/List;
         9: .line 210
            aload 0 /* this */
        10: .line 211
            invokestatic java.util.Collections.emptyList:()Ljava/util/List;
            putfield sun.security.ssl.SSLSocketImpl.sniMatchers:Ljava/util/Collection;
        11: .line 214
            aload 0 /* this */
            iconst_0
            putfield sun.security.ssl.SSLSocketImpl.noSniExtension:Z
        12: .line 217
            aload 0 /* this */
            iconst_0
            putfield sun.security.ssl.SSLSocketImpl.noSniMatcher:Z
        13: .line 220
            aload 0 /* this */
            iconst_0
            anewarray java.lang.String
            putfield sun.security.ssl.SSLSocketImpl.applicationProtocols:[Ljava/lang/String;
        14: .line 225
            aload 0 /* this */
            aconst_null
            putfield sun.security.ssl.SSLSocketImpl.applicationProtocol:Ljava/lang/String;
        15: .line 302
            aload 0 /* this */
            new java.lang.Object
            dup
            invokespecial java.lang.Object.<init>:()V
            putfield sun.security.ssl.SSLSocketImpl.handshakeLock:Ljava/lang/Object;
        16: .line 303
            aload 0 /* this */
            new java.util.concurrent.locks.ReentrantLock
            dup
            invokespecial java.util.concurrent.locks.ReentrantLock.<init>:()V
            putfield sun.security.ssl.SSLSocketImpl.writeLock:Ljava/util/concurrent/locks/ReentrantLock;
        17: .line 304
            aload 0 /* this */
            new java.lang.Object
            dup
            invokespecial java.lang.Object.<init>:()V
            putfield sun.security.ssl.SSLSocketImpl.readLock:Ljava/lang/Object;
        18: .line 374
            aload 0 /* this */
            getstatic sun.security.ssl.ProtocolVersion.DEFAULT_TLS:Lsun/security/ssl/ProtocolVersion;
            putfield sun.security.ssl.SSLSocketImpl.protocolVersion:Lsun/security/ssl/ProtocolVersion;
        19: .line 383
            aload 0 /* this */
            iconst_0
            putfield sun.security.ssl.SSLSocketImpl.preferLocalCipherSuites:Z
        20: .line 388
            aload 0 /* this */
            iconst_0
            putfield sun.security.ssl.SSLSocketImpl.maximumPacketSize:I
        21: .line 487
            aload 0 /* this */
            aload 1 /* context */
            iconst_0
            invokevirtual sun.security.ssl.SSLSocketImpl.init:(Lsun/security/ssl/SSLContextImpl;Z)V
        22: .line 488
            aload 0 /* this */
            new java.net.InetSocketAddress
            dup
            aload 4 /* localAddr */
            iload 5 /* localPort */
            invokespecial java.net.InetSocketAddress.<init>:(Ljava/net/InetAddress;I)V
            invokevirtual sun.security.ssl.SSLSocketImpl.bind:(Ljava/net/SocketAddress;)V
        23: .line 489
            new java.net.InetSocketAddress
            dup
            aload 2 /* host */
            iload 3 /* port */
            invokespecial java.net.InetSocketAddress.<init>:(Ljava/net/InetAddress;I)V
            astore 6 /* socketAddress */
        start local 6 // java.net.SocketAddress socketAddress
        24: .line 490
            aload 0 /* this */
            aload 6 /* socketAddress */
            iconst_0
            invokevirtual sun.security.ssl.SSLSocketImpl.connect:(Ljava/net/SocketAddress;I)V
        25: .line 491
            return
        end local 6 // java.net.SocketAddress socketAddress
        end local 5 // int localPort
        end local 4 // java.net.InetAddress localAddr
        end local 3 // int port
        end local 2 // java.net.InetAddress host
        end local 1 // sun.security.ssl.SSLContextImpl context
        end local 0 // sun.security.ssl.SSLSocketImpl this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0   26     0           this  Lsun/security/ssl/SSLSocketImpl;
            0   26     1        context  Lsun/security/ssl/SSLContextImpl;
            0   26     2           host  Ljava/net/InetAddress;
            0   26     3           port  I
            0   26     4      localAddr  Ljava/net/InetAddress;
            0   26     5      localPort  I
           24   26     6  socketAddress  Ljava/net/SocketAddress;
    Exceptions:
      throws java.io.IOException
    MethodParameters:
           Name  Flags
      context    
      host       
      port       
      localAddr  
      localPort  

  void <init>(sun.security.ssl.SSLContextImpl, boolean, sun.security.ssl.CipherSuiteList, sun.security.ssl.ClientAuthType, boolean, sun.security.ssl.ProtocolList, java.lang.String, java.security.AlgorithmConstraints, java.util.Collection<javax.net.ssl.SNIMatcher>, boolean, java.lang.String[]);
    descriptor: (Lsun/security/ssl/SSLContextImpl;ZLsun/security/ssl/CipherSuiteList;Lsun/security/ssl/ClientAuthType;ZLsun/security/ssl/ProtocolList;Ljava/lang/String;Ljava/security/AlgorithmConstraints;Ljava/util/Collection;Z[Ljava/lang/String;)V
    flags: (0x0000) 
    Code:
      stack=3, locals=12, args_size=12
        start local 0 // sun.security.ssl.SSLSocketImpl this
        start local 1 // sun.security.ssl.SSLContextImpl context
        start local 2 // boolean serverMode
        start local 3 // sun.security.ssl.CipherSuiteList suites
        start local 4 // sun.security.ssl.ClientAuthType clientAuth
        start local 5 // boolean sessionCreation
        start local 6 // sun.security.ssl.ProtocolList protocols
        start local 7 // java.lang.String identificationProtocol
        start local 8 // java.security.AlgorithmConstraints algorithmConstraints
        start local 9 // java.util.Collection sniMatchers
        start local 10 // boolean preferLocalCipherSuites
        start local 11 // java.lang.String[] applicationProtocols
         0: .line 508
            aload 0 /* this */
            invokespecial sun.security.ssl.BaseSSLSocketImpl.<init>:()V
         1: .line 190
            aload 0 /* this */
         2: .line 191
            getstatic sun.security.ssl.ClientAuthType.CLIENT_AUTH_NONE:Lsun/security/ssl/ClientAuthType;
            putfield sun.security.ssl.SSLSocketImpl.doClientAuth:Lsun/security/ssl/ClientAuthType;
         3: .line 193
            aload 0 /* this */
            iconst_1
            putfield sun.security.ssl.SSLSocketImpl.enableSessionCreation:Z
         4: .line 195
            aload 0 /* this */
            iconst_1
            putfield sun.security.ssl.SSLSocketImpl.autoClose:Z
         5: .line 202
            aload 0 /* this */
            aconst_null
            putfield sun.security.ssl.SSLSocketImpl.identificationProtocol:Ljava/lang/String;
         6: .line 205
            aload 0 /* this */
            aconst_null
            putfield sun.security.ssl.SSLSocketImpl.algorithmConstraints:Ljava/security/AlgorithmConstraints;
         7: .line 208
            aload 0 /* this */
         8: .line 209
            invokestatic java.util.Collections.emptyList:()Ljava/util/List;
            putfield sun.security.ssl.SSLSocketImpl.serverNames:Ljava/util/List;
         9: .line 210
            aload 0 /* this */
        10: .line 211
            invokestatic java.util.Collections.emptyList:()Ljava/util/List;
            putfield sun.security.ssl.SSLSocketImpl.sniMatchers:Ljava/util/Collection;
        11: .line 214
            aload 0 /* this */
            iconst_0
            putfield sun.security.ssl.SSLSocketImpl.noSniExtension:Z
        12: .line 217
            aload 0 /* this */
            iconst_0
            putfield sun.security.ssl.SSLSocketImpl.noSniMatcher:Z
        13: .line 220
            aload 0 /* this */
            iconst_0
            anewarray java.lang.String
            putfield sun.security.ssl.SSLSocketImpl.applicationProtocols:[Ljava/lang/String;
        14: .line 225
            aload 0 /* this */
            aconst_null
            putfield sun.security.ssl.SSLSocketImpl.applicationProtocol:Ljava/lang/String;
        15: .line 302
            aload 0 /* this */
            new java.lang.Object
            dup
            invokespecial java.lang.Object.<init>:()V
            putfield sun.security.ssl.SSLSocketImpl.handshakeLock:Ljava/lang/Object;
        16: .line 303
            aload 0 /* this */
            new java.util.concurrent.locks.ReentrantLock
            dup
            invokespecial java.util.concurrent.locks.ReentrantLock.<init>:()V
            putfield sun.security.ssl.SSLSocketImpl.writeLock:Ljava/util/concurrent/locks/ReentrantLock;
        17: .line 304
            aload 0 /* this */
            new java.lang.Object
            dup
            invokespecial java.lang.Object.<init>:()V
            putfield sun.security.ssl.SSLSocketImpl.readLock:Ljava/lang/Object;
        18: .line 374
            aload 0 /* this */
            getstatic sun.security.ssl.ProtocolVersion.DEFAULT_TLS:Lsun/security/ssl/ProtocolVersion;
            putfield sun.security.ssl.SSLSocketImpl.protocolVersion:Lsun/security/ssl/ProtocolVersion;
        19: .line 383
            aload 0 /* this */
            iconst_0
            putfield sun.security.ssl.SSLSocketImpl.preferLocalCipherSuites:Z
        20: .line 388
            aload 0 /* this */
            iconst_0
            putfield sun.security.ssl.SSLSocketImpl.maximumPacketSize:I
        21: .line 509
            aload 0 /* this */
            aload 4 /* clientAuth */
            putfield sun.security.ssl.SSLSocketImpl.doClientAuth:Lsun/security/ssl/ClientAuthType;
        22: .line 510
            aload 0 /* this */
            iload 5 /* sessionCreation */
            putfield sun.security.ssl.SSLSocketImpl.enableSessionCreation:Z
        23: .line 511
            aload 0 /* this */
            aload 7 /* identificationProtocol */
            putfield sun.security.ssl.SSLSocketImpl.identificationProtocol:Ljava/lang/String;
        24: .line 512
            aload 0 /* this */
            aload 8 /* algorithmConstraints */
            putfield sun.security.ssl.SSLSocketImpl.algorithmConstraints:Ljava/security/AlgorithmConstraints;
        25: .line 513
            aload 0 /* this */
            aload 9 /* sniMatchers */
            putfield sun.security.ssl.SSLSocketImpl.sniMatchers:Ljava/util/Collection;
        26: .line 514
            aload 0 /* this */
            iload 10 /* preferLocalCipherSuites */
            putfield sun.security.ssl.SSLSocketImpl.preferLocalCipherSuites:Z
        27: .line 515
            aload 0 /* this */
            aload 11 /* applicationProtocols */
            putfield sun.security.ssl.SSLSocketImpl.applicationProtocols:[Ljava/lang/String;
        28: .line 516
            aload 0 /* this */
            aload 1 /* context */
            iload 2 /* serverMode */
            invokevirtual sun.security.ssl.SSLSocketImpl.init:(Lsun/security/ssl/SSLContextImpl;Z)V
        29: .line 521
            aload 0 /* this */
            aload 3 /* suites */
            putfield sun.security.ssl.SSLSocketImpl.enabledCipherSuites:Lsun/security/ssl/CipherSuiteList;
        30: .line 522
            aload 0 /* this */
            aload 6 /* protocols */
            putfield sun.security.ssl.SSLSocketImpl.enabledProtocols:Lsun/security/ssl/ProtocolList;
        31: .line 523
            return
        end local 11 // java.lang.String[] applicationProtocols
        end local 10 // boolean preferLocalCipherSuites
        end local 9 // java.util.Collection sniMatchers
        end local 8 // java.security.AlgorithmConstraints algorithmConstraints
        end local 7 // java.lang.String identificationProtocol
        end local 6 // sun.security.ssl.ProtocolList protocols
        end local 5 // boolean sessionCreation
        end local 4 // sun.security.ssl.ClientAuthType clientAuth
        end local 3 // sun.security.ssl.CipherSuiteList suites
        end local 2 // boolean serverMode
        end local 1 // sun.security.ssl.SSLContextImpl context
        end local 0 // sun.security.ssl.SSLSocketImpl this
      LocalVariableTable:
        Start  End  Slot                     Name  Signature
            0   32     0                     this  Lsun/security/ssl/SSLSocketImpl;
            0   32     1                  context  Lsun/security/ssl/SSLContextImpl;
            0   32     2               serverMode  Z
            0   32     3                   suites  Lsun/security/ssl/CipherSuiteList;
            0   32     4               clientAuth  Lsun/security/ssl/ClientAuthType;
            0   32     5          sessionCreation  Z
            0   32     6                protocols  Lsun/security/ssl/ProtocolList;
            0   32     7   identificationProtocol  Ljava/lang/String;
            0   32     8     algorithmConstraints  Ljava/security/AlgorithmConstraints;
            0   32     9              sniMatchers  Ljava/util/Collection<Ljavax/net/ssl/SNIMatcher;>;
            0   32    10  preferLocalCipherSuites  Z
            0   32    11     applicationProtocols  [Ljava/lang/String;
    Exceptions:
      throws java.io.IOException
    Signature: (Lsun/security/ssl/SSLContextImpl;ZLsun/security/ssl/CipherSuiteList;Lsun/security/ssl/ClientAuthType;ZLsun/security/ssl/ProtocolList;Ljava/lang/String;Ljava/security/AlgorithmConstraints;Ljava/util/Collection<Ljavax/net/ssl/SNIMatcher;>;Z[Ljava/lang/String;)V
    MethodParameters:
                         Name  Flags
      context                  
      serverMode               
      suites                   
      clientAuth               
      sessionCreation          
      protocols                
      identificationProtocol   
      algorithmConstraints     
      sniMatchers              
      preferLocalCipherSuites  
      applicationProtocols     

  void <init>(sun.security.ssl.SSLContextImpl);
    descriptor: (Lsun/security/ssl/SSLContextImpl;)V
    flags: (0x0000) 
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // sun.security.ssl.SSLSocketImpl this
        start local 1 // sun.security.ssl.SSLContextImpl context
         0: .line 533
            aload 0 /* this */
            invokespecial sun.security.ssl.BaseSSLSocketImpl.<init>:()V
         1: .line 190
            aload 0 /* this */
         2: .line 191
            getstatic sun.security.ssl.ClientAuthType.CLIENT_AUTH_NONE:Lsun/security/ssl/ClientAuthType;
            putfield sun.security.ssl.SSLSocketImpl.doClientAuth:Lsun/security/ssl/ClientAuthType;
         3: .line 193
            aload 0 /* this */
            iconst_1
            putfield sun.security.ssl.SSLSocketImpl.enableSessionCreation:Z
         4: .line 195
            aload 0 /* this */
            iconst_1
            putfield sun.security.ssl.SSLSocketImpl.autoClose:Z
         5: .line 202
            aload 0 /* this */
            aconst_null
            putfield sun.security.ssl.SSLSocketImpl.identificationProtocol:Ljava/lang/String;
         6: .line 205
            aload 0 /* this */
            aconst_null
            putfield sun.security.ssl.SSLSocketImpl.algorithmConstraints:Ljava/security/AlgorithmConstraints;
         7: .line 208
            aload 0 /* this */
         8: .line 209
            invokestatic java.util.Collections.emptyList:()Ljava/util/List;
            putfield sun.security.ssl.SSLSocketImpl.serverNames:Ljava/util/List;
         9: .line 210
            aload 0 /* this */
        10: .line 211
            invokestatic java.util.Collections.emptyList:()Ljava/util/List;
            putfield sun.security.ssl.SSLSocketImpl.sniMatchers:Ljava/util/Collection;
        11: .line 214
            aload 0 /* this */
            iconst_0
            putfield sun.security.ssl.SSLSocketImpl.noSniExtension:Z
        12: .line 217
            aload 0 /* this */
            iconst_0
            putfield sun.security.ssl.SSLSocketImpl.noSniMatcher:Z
        13: .line 220
            aload 0 /* this */
            iconst_0
            anewarray java.lang.String
            putfield sun.security.ssl.SSLSocketImpl.applicationProtocols:[Ljava/lang/String;
        14: .line 225
            aload 0 /* this */
            aconst_null
            putfield sun.security.ssl.SSLSocketImpl.applicationProtocol:Ljava/lang/String;
        15: .line 302
            aload 0 /* this */
            new java.lang.Object
            dup
            invokespecial java.lang.Object.<init>:()V
            putfield sun.security.ssl.SSLSocketImpl.handshakeLock:Ljava/lang/Object;
        16: .line 303
            aload 0 /* this */
            new java.util.concurrent.locks.ReentrantLock
            dup
            invokespecial java.util.concurrent.locks.ReentrantLock.<init>:()V
            putfield sun.security.ssl.SSLSocketImpl.writeLock:Ljava/util/concurrent/locks/ReentrantLock;
        17: .line 304
            aload 0 /* this */
            new java.lang.Object
            dup
            invokespecial java.lang.Object.<init>:()V
            putfield sun.security.ssl.SSLSocketImpl.readLock:Ljava/lang/Object;
        18: .line 374
            aload 0 /* this */
            getstatic sun.security.ssl.ProtocolVersion.DEFAULT_TLS:Lsun/security/ssl/ProtocolVersion;
            putfield sun.security.ssl.SSLSocketImpl.protocolVersion:Lsun/security/ssl/ProtocolVersion;
        19: .line 383
            aload 0 /* this */
            iconst_0
            putfield sun.security.ssl.SSLSocketImpl.preferLocalCipherSuites:Z
        20: .line 388
            aload 0 /* this */
            iconst_0
            putfield sun.security.ssl.SSLSocketImpl.maximumPacketSize:I
        21: .line 534
            aload 0 /* this */
            aload 1 /* context */
            iconst_0
            invokevirtual sun.security.ssl.SSLSocketImpl.init:(Lsun/security/ssl/SSLContextImpl;Z)V
        22: .line 535
            return
        end local 1 // sun.security.ssl.SSLContextImpl context
        end local 0 // sun.security.ssl.SSLSocketImpl this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   23     0     this  Lsun/security/ssl/SSLSocketImpl;
            0   23     1  context  Lsun/security/ssl/SSLContextImpl;
    MethodParameters:
         Name  Flags
      context  

  void <init>(sun.security.ssl.SSLContextImpl, java.net.Socket, java.lang.String, int, boolean);
    descriptor: (Lsun/security/ssl/SSLContextImpl;Ljava/net/Socket;Ljava/lang/String;IZ)V
    flags: (0x0000) 
    Code:
      stack=3, locals=6, args_size=6
        start local 0 // sun.security.ssl.SSLSocketImpl this
        start local 1 // sun.security.ssl.SSLContextImpl context
        start local 2 // java.net.Socket sock
        start local 3 // java.lang.String host
        start local 4 // int port
        start local 5 // boolean autoClose
         0: .line 556
            aload 0 /* this */
            aload 2 /* sock */
            invokespecial sun.security.ssl.BaseSSLSocketImpl.<init>:(Ljava/net/Socket;)V
         1: .line 190
            aload 0 /* this */
         2: .line 191
            getstatic sun.security.ssl.ClientAuthType.CLIENT_AUTH_NONE:Lsun/security/ssl/ClientAuthType;
            putfield sun.security.ssl.SSLSocketImpl.doClientAuth:Lsun/security/ssl/ClientAuthType;
         3: .line 193
            aload 0 /* this */
            iconst_1
            putfield sun.security.ssl.SSLSocketImpl.enableSessionCreation:Z
         4: .line 195
            aload 0 /* this */
            iconst_1
            putfield sun.security.ssl.SSLSocketImpl.autoClose:Z
         5: .line 202
            aload 0 /* this */
            aconst_null
            putfield sun.security.ssl.SSLSocketImpl.identificationProtocol:Ljava/lang/String;
         6: .line 205
            aload 0 /* this */
            aconst_null
            putfield sun.security.ssl.SSLSocketImpl.algorithmConstraints:Ljava/security/AlgorithmConstraints;
         7: .line 208
            aload 0 /* this */
         8: .line 209
            invokestatic java.util.Collections.emptyList:()Ljava/util/List;
            putfield sun.security.ssl.SSLSocketImpl.serverNames:Ljava/util/List;
         9: .line 210
            aload 0 /* this */
        10: .line 211
            invokestatic java.util.Collections.emptyList:()Ljava/util/List;
            putfield sun.security.ssl.SSLSocketImpl.sniMatchers:Ljava/util/Collection;
        11: .line 214
            aload 0 /* this */
            iconst_0
            putfield sun.security.ssl.SSLSocketImpl.noSniExtension:Z
        12: .line 217
            aload 0 /* this */
            iconst_0
            putfield sun.security.ssl.SSLSocketImpl.noSniMatcher:Z
        13: .line 220
            aload 0 /* this */
            iconst_0
            anewarray java.lang.String
            putfield sun.security.ssl.SSLSocketImpl.applicationProtocols:[Ljava/lang/String;
        14: .line 225
            aload 0 /* this */
            aconst_null
            putfield sun.security.ssl.SSLSocketImpl.applicationProtocol:Ljava/lang/String;
        15: .line 302
            aload 0 /* this */
            new java.lang.Object
            dup
            invokespecial java.lang.Object.<init>:()V
            putfield sun.security.ssl.SSLSocketImpl.handshakeLock:Ljava/lang/Object;
        16: .line 303
            aload 0 /* this */
            new java.util.concurrent.locks.ReentrantLock
            dup
            invokespecial java.util.concurrent.locks.ReentrantLock.<init>:()V
            putfield sun.security.ssl.SSLSocketImpl.writeLock:Ljava/util/concurrent/locks/ReentrantLock;
        17: .line 304
            aload 0 /* this */
            new java.lang.Object
            dup
            invokespecial java.lang.Object.<init>:()V
            putfield sun.security.ssl.SSLSocketImpl.readLock:Ljava/lang/Object;
        18: .line 374
            aload 0 /* this */
            getstatic sun.security.ssl.ProtocolVersion.DEFAULT_TLS:Lsun/security/ssl/ProtocolVersion;
            putfield sun.security.ssl.SSLSocketImpl.protocolVersion:Lsun/security/ssl/ProtocolVersion;
        19: .line 383
            aload 0 /* this */
            iconst_0
            putfield sun.security.ssl.SSLSocketImpl.preferLocalCipherSuites:Z
        20: .line 388
            aload 0 /* this */
            iconst_0
            putfield sun.security.ssl.SSLSocketImpl.maximumPacketSize:I
        21: .line 558
            aload 2 /* sock */
            invokevirtual java.net.Socket.isConnected:()Z
            ifne 23
        22: .line 559
            new java.net.SocketException
            dup
            ldc "Underlying socket is not connected"
            invokespecial java.net.SocketException.<init>:(Ljava/lang/String;)V
            athrow
        23: .line 561
      StackMap locals: sun.security.ssl.SSLSocketImpl sun.security.ssl.SSLContextImpl java.net.Socket java.lang.String int int
      StackMap stack:
            aload 0 /* this */
            aload 3 /* host */
            putfield sun.security.ssl.SSLSocketImpl.host:Ljava/lang/String;
        24: .line 562
            aload 0 /* this */
        25: .line 563
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.serverNames:Ljava/util/List;
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.host:Ljava/lang/String;
            invokestatic sun.security.ssl.Utilities.addToSNIServerNameList:(Ljava/util/List;Ljava/lang/String;)Ljava/util/List;
        26: .line 562
            putfield sun.security.ssl.SSLSocketImpl.serverNames:Ljava/util/List;
        27: .line 564
            aload 0 /* this */
            aload 1 /* context */
            iconst_0
            invokevirtual sun.security.ssl.SSLSocketImpl.init:(Lsun/security/ssl/SSLContextImpl;Z)V
        28: .line 565
            aload 0 /* this */
            iload 5 /* autoClose */
            putfield sun.security.ssl.SSLSocketImpl.autoClose:Z
        29: .line 566
            aload 0 /* this */
            invokevirtual sun.security.ssl.SSLSocketImpl.doneConnect:()V
        30: .line 567
            return
        end local 5 // boolean autoClose
        end local 4 // int port
        end local 3 // java.lang.String host
        end local 2 // java.net.Socket sock
        end local 1 // sun.security.ssl.SSLContextImpl context
        end local 0 // sun.security.ssl.SSLSocketImpl this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   31     0       this  Lsun/security/ssl/SSLSocketImpl;
            0   31     1    context  Lsun/security/ssl/SSLContextImpl;
            0   31     2       sock  Ljava/net/Socket;
            0   31     3       host  Ljava/lang/String;
            0   31     4       port  I
            0   31     5  autoClose  Z
    Exceptions:
      throws java.io.IOException
    MethodParameters:
           Name  Flags
      context    
      sock       
      host       
      port       
      autoClose  

  void <init>(sun.security.ssl.SSLContextImpl, java.net.Socket, java.io.InputStream, boolean);
    descriptor: (Lsun/security/ssl/SSLContextImpl;Ljava/net/Socket;Ljava/io/InputStream;Z)V
    flags: (0x0000) 
    Code:
      stack=3, locals=5, args_size=5
        start local 0 // sun.security.ssl.SSLSocketImpl this
        start local 1 // sun.security.ssl.SSLContextImpl context
        start local 2 // java.net.Socket sock
        start local 3 // java.io.InputStream consumed
        start local 4 // boolean autoClose
         0: .line 577
            aload 0 /* this */
            aload 2 /* sock */
            aload 3 /* consumed */
            invokespecial sun.security.ssl.BaseSSLSocketImpl.<init>:(Ljava/net/Socket;Ljava/io/InputStream;)V
         1: .line 190
            aload 0 /* this */
         2: .line 191
            getstatic sun.security.ssl.ClientAuthType.CLIENT_AUTH_NONE:Lsun/security/ssl/ClientAuthType;
            putfield sun.security.ssl.SSLSocketImpl.doClientAuth:Lsun/security/ssl/ClientAuthType;
         3: .line 193
            aload 0 /* this */
            iconst_1
            putfield sun.security.ssl.SSLSocketImpl.enableSessionCreation:Z
         4: .line 195
            aload 0 /* this */
            iconst_1
            putfield sun.security.ssl.SSLSocketImpl.autoClose:Z
         5: .line 202
            aload 0 /* this */
            aconst_null
            putfield sun.security.ssl.SSLSocketImpl.identificationProtocol:Ljava/lang/String;
         6: .line 205
            aload 0 /* this */
            aconst_null
            putfield sun.security.ssl.SSLSocketImpl.algorithmConstraints:Ljava/security/AlgorithmConstraints;
         7: .line 208
            aload 0 /* this */
         8: .line 209
            invokestatic java.util.Collections.emptyList:()Ljava/util/List;
            putfield sun.security.ssl.SSLSocketImpl.serverNames:Ljava/util/List;
         9: .line 210
            aload 0 /* this */
        10: .line 211
            invokestatic java.util.Collections.emptyList:()Ljava/util/List;
            putfield sun.security.ssl.SSLSocketImpl.sniMatchers:Ljava/util/Collection;
        11: .line 214
            aload 0 /* this */
            iconst_0
            putfield sun.security.ssl.SSLSocketImpl.noSniExtension:Z
        12: .line 217
            aload 0 /* this */
            iconst_0
            putfield sun.security.ssl.SSLSocketImpl.noSniMatcher:Z
        13: .line 220
            aload 0 /* this */
            iconst_0
            anewarray java.lang.String
            putfield sun.security.ssl.SSLSocketImpl.applicationProtocols:[Ljava/lang/String;
        14: .line 225
            aload 0 /* this */
            aconst_null
            putfield sun.security.ssl.SSLSocketImpl.applicationProtocol:Ljava/lang/String;
        15: .line 302
            aload 0 /* this */
            new java.lang.Object
            dup
            invokespecial java.lang.Object.<init>:()V
            putfield sun.security.ssl.SSLSocketImpl.handshakeLock:Ljava/lang/Object;
        16: .line 303
            aload 0 /* this */
            new java.util.concurrent.locks.ReentrantLock
            dup
            invokespecial java.util.concurrent.locks.ReentrantLock.<init>:()V
            putfield sun.security.ssl.SSLSocketImpl.writeLock:Ljava/util/concurrent/locks/ReentrantLock;
        17: .line 304
            aload 0 /* this */
            new java.lang.Object
            dup
            invokespecial java.lang.Object.<init>:()V
            putfield sun.security.ssl.SSLSocketImpl.readLock:Ljava/lang/Object;
        18: .line 374
            aload 0 /* this */
            getstatic sun.security.ssl.ProtocolVersion.DEFAULT_TLS:Lsun/security/ssl/ProtocolVersion;
            putfield sun.security.ssl.SSLSocketImpl.protocolVersion:Lsun/security/ssl/ProtocolVersion;
        19: .line 383
            aload 0 /* this */
            iconst_0
            putfield sun.security.ssl.SSLSocketImpl.preferLocalCipherSuites:Z
        20: .line 388
            aload 0 /* this */
            iconst_0
            putfield sun.security.ssl.SSLSocketImpl.maximumPacketSize:I
        21: .line 579
            aload 2 /* sock */
            invokevirtual java.net.Socket.isConnected:()Z
            ifne 23
        22: .line 580
            new java.net.SocketException
            dup
            ldc "Underlying socket is not connected"
            invokespecial java.net.SocketException.<init>:(Ljava/lang/String;)V
            athrow
        23: .line 586
      StackMap locals: sun.security.ssl.SSLSocketImpl sun.security.ssl.SSLContextImpl java.net.Socket java.io.InputStream int
      StackMap stack:
            aload 0 /* this */
            aload 1 /* context */
            iconst_1
            invokevirtual sun.security.ssl.SSLSocketImpl.init:(Lsun/security/ssl/SSLContextImpl;Z)V
        24: .line 587
            aload 0 /* this */
            iload 4 /* autoClose */
            putfield sun.security.ssl.SSLSocketImpl.autoClose:Z
        25: .line 588
            aload 0 /* this */
            invokevirtual sun.security.ssl.SSLSocketImpl.doneConnect:()V
        26: .line 589
            return
        end local 4 // boolean autoClose
        end local 3 // java.io.InputStream consumed
        end local 2 // java.net.Socket sock
        end local 1 // sun.security.ssl.SSLContextImpl context
        end local 0 // sun.security.ssl.SSLSocketImpl this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   27     0       this  Lsun/security/ssl/SSLSocketImpl;
            0   27     1    context  Lsun/security/ssl/SSLContextImpl;
            0   27     2       sock  Ljava/net/Socket;
            0   27     3   consumed  Ljava/io/InputStream;
            0   27     4  autoClose  Z
    Exceptions:
      throws java.io.IOException
    MethodParameters:
           Name  Flags
      context    
      sock       
      consumed   
      autoClose  

  private void init(sun.security.ssl.SSLContextImpl, boolean);
    descriptor: (Lsun/security/ssl/SSLContextImpl;Z)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // sun.security.ssl.SSLSocketImpl this
        start local 1 // sun.security.ssl.SSLContextImpl context
        start local 2 // boolean isServer
         0: .line 595
            aload 0 /* this */
            aload 1 /* context */
            putfield sun.security.ssl.SSLSocketImpl.sslContext:Lsun/security/ssl/SSLContextImpl;
         1: .line 596
            aload 0 /* this */
            getstatic sun.security.ssl.SSLSessionImpl.nullSession:Lsun/security/ssl/SSLSessionImpl;
            putfield sun.security.ssl.SSLSocketImpl.sess:Lsun/security/ssl/SSLSessionImpl;
         2: .line 597
            aload 0 /* this */
            aconst_null
            putfield sun.security.ssl.SSLSocketImpl.handshakeSession:Lsun/security/ssl/SSLSessionImpl;
         3: .line 603
            aload 0 /* this */
            iload 2 /* isServer */
            putfield sun.security.ssl.SSLSocketImpl.roleIsServer:Z
         4: .line 604
            aload 0 /* this */
            iconst_0
            putfield sun.security.ssl.SSLSocketImpl.connectionState:I
         5: .line 607
            aload 0 /* this */
            iconst_0
            putfield sun.security.ssl.SSLSocketImpl.secureRenegotiation:Z
         6: .line 608
            aload 0 /* this */
            iconst_0
            newarray 8
            putfield sun.security.ssl.SSLSocketImpl.clientVerifyData:[B
         7: .line 609
            aload 0 /* this */
            iconst_0
            newarray 8
            putfield sun.security.ssl.SSLSocketImpl.serverVerifyData:[B
         8: .line 611
            aload 0 /* this */
         9: .line 612
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.sslContext:Lsun/security/ssl/SSLContextImpl;
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.roleIsServer:Z
            invokevirtual sun.security.ssl.SSLContextImpl.getDefaultCipherSuiteList:(Z)Lsun/security/ssl/CipherSuiteList;
        10: .line 611
            putfield sun.security.ssl.SSLSocketImpl.enabledCipherSuites:Lsun/security/ssl/CipherSuiteList;
        11: .line 613
            aload 0 /* this */
        12: .line 614
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.sslContext:Lsun/security/ssl/SSLContextImpl;
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.roleIsServer:Z
            invokevirtual sun.security.ssl.SSLContextImpl.getDefaultProtocolList:(Z)Lsun/security/ssl/ProtocolList;
        13: .line 613
            putfield sun.security.ssl.SSLSocketImpl.enabledProtocols:Lsun/security/ssl/ProtocolList;
        14: .line 616
            aload 0 /* this */
            new sun.security.ssl.SSLSocketInputRecord
            dup
            invokespecial sun.security.ssl.SSLSocketInputRecord.<init>:()V
            putfield sun.security.ssl.SSLSocketImpl.inputRecord:Lsun/security/ssl/InputRecord;
        15: .line 617
            aload 0 /* this */
            new sun.security.ssl.SSLSocketOutputRecord
            dup
            invokespecial sun.security.ssl.SSLSocketOutputRecord.<init>:()V
            putfield sun.security.ssl.SSLSocketImpl.outputRecord:Lsun/security/ssl/OutputRecord;
        16: .line 619
            aload 0 /* this */
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.outputRecord:Lsun/security/ssl/OutputRecord;
            invokevirtual sun.security.ssl.OutputRecord.getMaxPacketSize:()I
            putfield sun.security.ssl.SSLSocketImpl.maximumPacketSize:I
        17: .line 622
            aload 0 /* this */
            invokestatic java.security.AccessController.getContext:()Ljava/security/AccessControlContext;
            putfield sun.security.ssl.SSLSocketImpl.acc:Ljava/security/AccessControlContext;
        18: .line 624
            aload 0 /* this */
            new sun.security.ssl.AppInputStream
            dup
            aload 0 /* this */
            invokespecial sun.security.ssl.AppInputStream.<init>:(Lsun/security/ssl/SSLSocketImpl;)V
            putfield sun.security.ssl.SSLSocketImpl.input:Lsun/security/ssl/AppInputStream;
        19: .line 625
            aload 0 /* this */
            new sun.security.ssl.AppOutputStream
            dup
            aload 0 /* this */
            invokespecial sun.security.ssl.AppOutputStream.<init>:(Lsun/security/ssl/SSLSocketImpl;)V
            putfield sun.security.ssl.SSLSocketImpl.output:Lsun/security/ssl/AppOutputStream;
        20: .line 626
            return
        end local 2 // boolean isServer
        end local 1 // sun.security.ssl.SSLContextImpl context
        end local 0 // sun.security.ssl.SSLSocketImpl this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   21     0      this  Lsun/security/ssl/SSLSocketImpl;
            0   21     1   context  Lsun/security/ssl/SSLContextImpl;
            0   21     2  isServer  Z
    MethodParameters:
          Name  Flags
      context   
      isServer  

  public void connect(java.net.SocketAddress, int);
    descriptor: (Ljava/net/SocketAddress;I)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // sun.security.ssl.SSLSocketImpl this
        start local 1 // java.net.SocketAddress endpoint
        start local 2 // int timeout
         0: .line 648
            aload 0 /* this */
            invokevirtual sun.security.ssl.SSLSocketImpl.isLayered:()Z
            ifeq 2
         1: .line 649
            new java.net.SocketException
            dup
            ldc "Already connected"
            invokespecial java.net.SocketException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 652
      StackMap locals:
      StackMap stack:
            aload 1 /* endpoint */
            instanceof java.net.InetSocketAddress
            ifne 6
         3: .line 653
            new java.net.SocketException
            dup
         4: .line 654
            ldc "Cannot handle non-Inet socket addresses."
         5: .line 653
            invokespecial java.net.SocketException.<init>:(Ljava/lang/String;)V
            athrow
         6: .line 657
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* endpoint */
            iload 2 /* timeout */
            invokespecial sun.security.ssl.BaseSSLSocketImpl.connect:(Ljava/net/SocketAddress;I)V
         7: .line 659
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.host:Ljava/lang/String;
            ifnull 8
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.host:Ljava/lang/String;
            invokevirtual java.lang.String.length:()I
            ifne 9
         8: .line 660
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iconst_0
            invokevirtual sun.security.ssl.SSLSocketImpl.useImplicitHost:(Z)V
         9: .line 663
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual sun.security.ssl.SSLSocketImpl.doneConnect:()V
        10: .line 664
            return
        end local 2 // int timeout
        end local 1 // java.net.SocketAddress endpoint
        end local 0 // sun.security.ssl.SSLSocketImpl this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   11     0      this  Lsun/security/ssl/SSLSocketImpl;
            0   11     1  endpoint  Ljava/net/SocketAddress;
            0   11     2   timeout  I
    Exceptions:
      throws java.io.IOException
    MethodParameters:
          Name  Flags
      endpoint  
      timeout   

  void doneConnect();
    descriptor: ()V
    flags: (0x0000) 
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // sun.security.ssl.SSLSocketImpl this
         0: .line 677
            aload 0 /* this */
            aload 0 /* this */
            invokespecial sun.security.ssl.BaseSSLSocketImpl.getInputStream:()Ljava/io/InputStream;
            putfield sun.security.ssl.SSLSocketImpl.sockInput:Ljava/io/InputStream;
         1: .line 678
            aload 0 /* this */
            aload 0 /* this */
            invokespecial sun.security.ssl.BaseSSLSocketImpl.getOutputStream:()Ljava/io/OutputStream;
            putfield sun.security.ssl.SSLSocketImpl.sockOutput:Ljava/io/OutputStream;
         2: .line 680
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.inputRecord:Lsun/security/ssl/InputRecord;
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.sockOutput:Ljava/io/OutputStream;
            invokevirtual sun.security.ssl.InputRecord.setDeliverStream:(Ljava/io/OutputStream;)V
         3: .line 681
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.outputRecord:Lsun/security/ssl/OutputRecord;
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.sockOutput:Ljava/io/OutputStream;
            invokevirtual sun.security.ssl.OutputRecord.setDeliverStream:(Ljava/io/OutputStream;)V
         4: .line 687
            aload 0 /* this */
            invokevirtual sun.security.ssl.SSLSocketImpl.initHandshaker:()V
         5: .line 688
            return
        end local 0 // sun.security.ssl.SSLSocketImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    6     0  this  Lsun/security/ssl/SSLSocketImpl;
    Exceptions:
      throws java.io.IOException

  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.SSLSocketImpl this
         0: .line 691
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.connectionState:I
            ireturn
        end local 0 // sun.security.ssl.SSLSocketImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lsun/security/ssl/SSLSocketImpl;

  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.SSLSocketImpl this
        start local 1 // int state
         0: .line 695
            aload 0 /* this */
            iload 1 /* state */
            putfield sun.security.ssl.SSLSocketImpl.connectionState:I
         1: .line 696
            return
        end local 1 // int state
        end local 0 // sun.security.ssl.SSLSocketImpl this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    2     0   this  Lsun/security/ssl/SSLSocketImpl;
            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.SSLSocketImpl this
         0: .line 699
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.acc:Ljava/security/AccessControlContext;
            areturn
        end local 0 // sun.security.ssl.SSLSocketImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lsun/security/ssl/SSLSocketImpl;

  void writeRecord(byte[], int, int);
    descriptor: ([BII)V
    flags: (0x0000) 
    Code:
      stack=4, locals=8, args_size=4
        start local 0 // sun.security.ssl.SSLSocketImpl this
        start local 1 // byte[] source
        start local 2 // int offset
        start local 3 // int length
         0: .line 718
            iconst_0
            istore 4 /* readyForApp */
        start local 4 // boolean readyForApp
         1: goto 17
         2: .line 724
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            invokevirtual sun.security.ssl.SSLSocketImpl.getConnectionState:()I
            tableswitch { // 1 - 7
                    1: 3
                    2: 5
                    3: 5
                    4: 7
                    5: 11
                    6: 11
                    7: 11
              default: 14
          }
         3: .line 733
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual sun.security.ssl.SSLSocketImpl.performInitialHandshake:()V
         4: .line 734
            goto 17
         5: .line 738
      StackMap locals:
      StackMap stack:
            iconst_1
            istore 4 /* readyForApp */
         6: .line 739
            goto 17
         7: .line 742
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iconst_0
         8: .line 743
            ldc "error while writing to socket"
         9: .line 742
            invokevirtual sun.security.ssl.SSLSocketImpl.fatal:(BLjava/lang/String;)V
        10: .line 744
            goto 17
        11: .line 751
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.closeReason:Ljavax/net/ssl/SSLException;
            ifnull 13
        12: .line 752
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.closeReason:Ljavax/net/ssl/SSLException;
            athrow
        13: .line 754
      StackMap locals:
      StackMap stack:
            new java.net.SocketException
            dup
            ldc "Socket closed"
            invokespecial java.net.SocketException.<init>:(Ljava/lang/String;)V
            athrow
        14: .line 761
      StackMap locals:
      StackMap stack:
            new javax.net.ssl.SSLProtocolException
            dup
        15: .line 762
            ldc "State error, send app data"
        16: .line 761
            invokespecial javax.net.ssl.SSLProtocolException.<init>:(Ljava/lang/String;)V
            athrow
        17: .line 718
      StackMap locals:
      StackMap stack:
            iload 4 /* readyForApp */
            ifeq 2
        end local 4 // boolean readyForApp
        18: .line 774
            iload 3 /* length */
            ifle 38
        19: .line 775
            aconst_null
            astore 4 /* ioe */
        start local 4 // java.io.IOException ioe
        20: .line 776
            iconst_0
            istore 5 /* description */
        start local 5 // byte description
        21: .line 777
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.writeLock:Ljava/util/concurrent/locks/ReentrantLock;
            invokevirtual java.util.concurrent.locks.ReentrantLock.lock:()V
        22: .line 779
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.outputRecord:Lsun/security/ssl/OutputRecord;
            aload 1 /* source */
            iload 2 /* offset */
            iload 3 /* length */
            invokevirtual sun.security.ssl.OutputRecord.deliver:([BII)V
        23: .line 780
            goto 35
      StackMap locals: sun.security.ssl.SSLSocketImpl byte[] int int java.io.IOException int
      StackMap stack: javax.net.ssl.SSLHandshakeException
        24: astore 6 /* she */
        start local 6 // javax.net.ssl.SSLHandshakeException she
        25: .line 782
            bipush 40
            istore 5 /* description */
        26: .line 783
            aload 6 /* she */
            astore 4 /* ioe */
        end local 6 // javax.net.ssl.SSLHandshakeException she
        27: .line 788
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.writeLock:Ljava/util/concurrent/locks/ReentrantLock;
            invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
            goto 36
        28: .line 784
      StackMap locals:
      StackMap stack: java.io.IOException
            astore 6 /* e */
        start local 6 // java.io.IOException e
        29: .line 785
            bipush 10
            istore 5 /* description */
        30: .line 786
            aload 6 /* e */
            astore 4 /* ioe */
        end local 6 // java.io.IOException e
        31: .line 788
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.writeLock:Ljava/util/concurrent/locks/ReentrantLock;
            invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
            goto 36
        32: .line 787
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 7
        33: .line 788
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.writeLock:Ljava/util/concurrent/locks/ReentrantLock;
            invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
        34: .line 789
            aload 7
            athrow
        35: .line 788
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.writeLock:Ljava/util/concurrent/locks/ReentrantLock;
            invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
        36: .line 793
      StackMap locals:
      StackMap stack:
            aload 4 /* ioe */
            ifnull 38
        37: .line 794
            aload 0 /* this */
            iload 5 /* description */
            aload 4 /* ioe */
            invokevirtual sun.security.ssl.SSLSocketImpl.fatal:(BLjava/lang/Throwable;)V
        end local 5 // byte description
        end local 4 // java.io.IOException ioe
        38: .line 812
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.connectionState:I
            iconst_2
            if_icmpne 45
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.outputRecord:Lsun/security/ssl/OutputRecord;
            invokevirtual sun.security.ssl.OutputRecord.seqNumIsHuge:()Z
            ifeq 45
        39: .line 819
            getstatic sun.security.ssl.SSLSocketImpl.debug:Lsun/security/ssl/Debug;
            ifnull 44
            ldc "ssl"
            invokestatic sun.security.ssl.Debug.isOn:(Ljava/lang/String;)Z
            ifeq 44
        40: .line 820
            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
        41: .line 821
            ldc ", request renegotiation "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        42: .line 822
            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;
        43: .line 820
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
        44: .line 825
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual sun.security.ssl.SSLSocketImpl.startHandshake:()V
        45: .line 827
      StackMap locals:
      StackMap stack:
            return
        end local 3 // int length
        end local 2 // int offset
        end local 1 // byte[] source
        end local 0 // sun.security.ssl.SSLSocketImpl this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   46     0         this  Lsun/security/ssl/SSLSocketImpl;
            0   46     1       source  [B
            0   46     2       offset  I
            0   46     3       length  I
            1   18     4  readyForApp  Z
           20   38     4          ioe  Ljava/io/IOException;
           21   38     5  description  B
           25   27     6          she  Ljavax/net/ssl/SSLHandshakeException;
           29   31     6            e  Ljava/io/IOException;
      Exception table:
        from    to  target  type
          22    23      24  Class javax.net.ssl.SSLHandshakeException
          22    23      28  Class java.io.IOException
          22    27      32  any
          28    31      32  any
    Exceptions:
      throws java.io.IOException
    MethodParameters:
        Name  Flags
      source  
      offset  
      length  

  void writeAlert(byte, byte);
    descriptor: (BB)V
    flags: (0x0000) 
    Code:
      stack=4, locals=5, args_size=3
        start local 0 // sun.security.ssl.SSLSocketImpl this
        start local 1 // byte level
        start local 2 // byte description
         0: .line 837
            iload 2 /* description */
            ifne 29
            aload 0 /* this */
            invokevirtual sun.security.ssl.SSLSocketImpl.getSoLinger:()I
            iflt 29
         1: .line 840
            invokestatic java.lang.Thread.interrupted:()Z
            istore 3 /* interrupted */
        start local 3 // boolean interrupted
         2: .line 842
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.writeLock:Ljava/util/concurrent/locks/ReentrantLock;
            aload 0 /* this */
            invokevirtual sun.security.ssl.SSLSocketImpl.getSoLinger:()I
            i2l
            getstatic java.util.concurrent.TimeUnit.SECONDS:Ljava/util/concurrent/TimeUnit;
            invokevirtual java.util.concurrent.locks.ReentrantLock.tryLock:(JLjava/util/concurrent/TimeUnit;)Z
            ifeq 10
         3: .line 844
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.outputRecord:Lsun/security/ssl/OutputRecord;
            iload 1 /* level */
            iload 2 /* description */
            invokevirtual sun.security.ssl.OutputRecord.encodeAlert:(BB)V
         4: .line 845
            goto 8
      StackMap locals: sun.security.ssl.SSLSocketImpl int int int
      StackMap stack: java.lang.Throwable
         5: astore 4
         6: .line 846
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.writeLock:Ljava/util/concurrent/locks/ReentrantLock;
            invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
         7: .line 847
            aload 4
            athrow
         8: .line 846
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.writeLock:Ljava/util/concurrent/locks/ReentrantLock;
            invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
         9: .line 848
            goto 26
        10: .line 849
      StackMap locals:
      StackMap stack:
            new javax.net.ssl.SSLException
            dup
        11: .line 850
            ldc "SO_LINGER timeout, close_notify message cannot be sent."
        12: .line 849
            invokespecial javax.net.ssl.SSLException.<init>:(Ljava/lang/String;)V
            astore 4 /* ssle */
        start local 4 // javax.net.ssl.SSLException ssle
        13: .line 857
            aload 0 /* this */
            invokevirtual sun.security.ssl.SSLSocketImpl.isLayered:()Z
            ifeq 16
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.autoClose:Z
            ifne 16
        14: .line 861
            aload 0 /* this */
            iconst_m1
            aload 4 /* ssle */
            invokevirtual sun.security.ssl.SSLSocketImpl.fatal:(BLjava/lang/Throwable;)V
        15: .line 862
            goto 22
      StackMap locals: javax.net.ssl.SSLException
      StackMap stack:
        16: getstatic sun.security.ssl.SSLSocketImpl.debug:Lsun/security/ssl/Debug;
            ifnull 22
            ldc "ssl"
            invokestatic sun.security.ssl.Debug.isOn:(Ljava/lang/String;)Z
            ifeq 22
        17: .line 863
            getstatic java.lang.System.out:Ljava/io/PrintStream;
        18: .line 864
            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
        19: .line 865
            ldc ", received Exception: "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 4 /* ssle */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
        20: .line 864
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        21: .line 863
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
        22: .line 879
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.sess:Lsun/security/ssl/SSLSessionImpl;
            invokevirtual sun.security.ssl.SSLSessionImpl.invalidate:()V
        end local 4 // javax.net.ssl.SSLException ssle
        23: .line 881
            goto 26
      StackMap locals: sun.security.ssl.SSLSocketImpl int int int
      StackMap stack: java.lang.InterruptedException
        24: pop
        25: .line 883
            iconst_1
            istore 3 /* interrupted */
        26: .line 887
      StackMap locals:
      StackMap stack:
            iload 3 /* interrupted */
            ifeq 36
        27: .line 888
            invokestatic java.lang.Thread.currentThread:()Ljava/lang/Thread;
            invokevirtual java.lang.Thread.interrupt:()V
        end local 3 // boolean interrupted
        28: .line 890
            goto 36
        29: .line 891
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.writeLock:Ljava/util/concurrent/locks/ReentrantLock;
            invokevirtual java.util.concurrent.locks.ReentrantLock.lock:()V
        30: .line 893
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.outputRecord:Lsun/security/ssl/OutputRecord;
            iload 1 /* level */
            iload 2 /* description */
            invokevirtual sun.security.ssl.OutputRecord.encodeAlert:(BB)V
        31: .line 894
            goto 35
      StackMap locals:
      StackMap stack: java.lang.Throwable
        32: astore 3
        33: .line 895
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.writeLock:Ljava/util/concurrent/locks/ReentrantLock;
            invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
        34: .line 896
            aload 3
            athrow
        35: .line 895
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.writeLock:Ljava/util/concurrent/locks/ReentrantLock;
            invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
        36: .line 902
      StackMap locals:
      StackMap stack:
            return
        end local 2 // byte description
        end local 1 // byte level
        end local 0 // sun.security.ssl.SSLSocketImpl this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   37     0         this  Lsun/security/ssl/SSLSocketImpl;
            0   37     1        level  B
            0   37     2  description  B
            2   28     3  interrupted  Z
           13   23     4         ssle  Ljavax/net/ssl/SSLException;
      Exception table:
        from    to  target  type
           3     5       5  any
           2    23      24  Class java.lang.InterruptedException
          30    32      32  any
    Exceptions:
      throws java.io.IOException
    MethodParameters:
             Name  Flags
      level        
      description  

  int bytesInCompletePacket();
    descriptor: ()I
    flags: (0x0000) 
    Code:
      stack=4, locals=7, args_size=1
        start local 0 // sun.security.ssl.SSLSocketImpl this
         0: .line 906
            aload 0 /* this */
            invokevirtual sun.security.ssl.SSLSocketImpl.getConnectionState:()I
            iconst_1
            if_icmpne 2
         1: .line 907
            aload 0 /* this */
            invokevirtual sun.security.ssl.SSLSocketImpl.performInitialHandshake:()V
         2: .line 910
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.readLock:Ljava/lang/Object;
            dup
            astore 1
            monitorenter
         3: .line 911
            aload 0 /* this */
            invokevirtual sun.security.ssl.SSLSocketImpl.getConnectionState:()I
            istore 2 /* state */
        start local 2 // int state
         4: .line 912
            iload 2 /* state */
            bipush 6
            if_icmpeq 6
         5: .line 913
            iload 2 /* state */
            iconst_4
            if_icmpeq 6
            iload 2 /* state */
            bipush 7
            if_icmpne 8
         6: .line 914
      StackMap locals: java.lang.Object int
      StackMap stack:
            aload 1
            monitorexit
         7: iconst_m1
            ireturn
         8: .line 918
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.inputRecord:Lsun/security/ssl/InputRecord;
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.sockInput:Ljava/io/InputStream;
            invokevirtual sun.security.ssl.InputRecord.bytesInCompletePacket:(Ljava/io/InputStream;)I
         9: aload 1
            monitorexit
        10: ireturn
        11: .line 919
      StackMap locals:
      StackMap stack: java.io.EOFException
            astore 3 /* eofe */
        start local 3 // java.io.EOFException eofe
        12: .line 920
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.connectionState:I
            iconst_1
            if_icmpgt 13
            iconst_1
            goto 14
      StackMap locals: java.io.EOFException
      StackMap stack:
        13: iconst_0
      StackMap locals:
      StackMap stack: int
        14: istore 4 /* handshaking */
        start local 4 // boolean handshaking
        15: .line 921
            getstatic sun.security.ssl.SSLSocketImpl.requireCloseNotify:Z
            ifne 16
            iload 4 /* handshaking */
            ifne 16
            iconst_0
            goto 17
      StackMap locals: int
      StackMap stack:
        16: iconst_1
      StackMap locals:
      StackMap stack: int
        17: istore 5 /* rethrow */
        start local 5 // boolean rethrow
        18: .line 922
            getstatic sun.security.ssl.SSLSocketImpl.debug:Lsun/security/ssl/Debug;
            ifnull 25
            ldc "ssl"
            invokestatic sun.security.ssl.Debug.isOn:(Ljava/lang/String;)Z
            ifeq 25
        19: .line 923
            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
        20: .line 924
            ldc ", received EOFException: "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        21: .line 925
            iload 5 /* rethrow */
            ifeq 22
            ldc "error"
            goto 23
      StackMap locals: sun.security.ssl.SSLSocketImpl java.lang.Object int java.io.EOFException int int
      StackMap stack: java.io.PrintStream java.lang.StringBuilder
        22: ldc "ignored"
      StackMap locals: sun.security.ssl.SSLSocketImpl java.lang.Object int java.io.EOFException int int
      StackMap stack: java.io.PrintStream java.lang.StringBuilder java.lang.String
        23: invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        24: .line 923
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
        25: .line 928
      StackMap locals:
      StackMap stack:
            iload 5 /* rethrow */
            ifne 28
        26: .line 930
            aload 0 /* this */
            iconst_0
            invokevirtual sun.security.ssl.SSLSocketImpl.closeInternal:(Z)V
        27: .line 931
            goto 38
        28: .line 933
      StackMap locals:
      StackMap stack:
            iload 4 /* handshaking */
            ifeq 33
        29: .line 934
            new javax.net.ssl.SSLHandshakeException
            dup
        30: .line 935
            ldc "Remote host terminated the handshake"
        31: .line 934
            invokespecial javax.net.ssl.SSLHandshakeException.<init>:(Ljava/lang/String;)V
            astore 6 /* e */
        start local 6 // javax.net.ssl.SSLException e
        32: .line 936
            goto 36
        end local 6 // javax.net.ssl.SSLException e
        33: .line 937
      StackMap locals:
      StackMap stack:
            new javax.net.ssl.SSLProtocolException
            dup
        34: .line 938
            ldc "Remote host terminated the handshake"
        35: .line 937
            invokespecial javax.net.ssl.SSLProtocolException.<init>:(Ljava/lang/String;)V
            astore 6 /* e */
        start local 6 // javax.net.ssl.SSLException e
        36: .line 940
      StackMap locals: javax.net.ssl.SSLException
      StackMap stack:
            aload 6 /* e */
            aload 3 /* eofe */
            invokevirtual javax.net.ssl.SSLException.initCause:(Ljava/lang/Throwable;)Ljava/lang/Throwable;
            pop
        37: .line 941
            aload 6 /* e */
            athrow
        end local 6 // javax.net.ssl.SSLException e
        end local 5 // boolean rethrow
        end local 4 // boolean handshaking
        end local 3 // java.io.EOFException eofe
        38: .line 945
      StackMap locals: sun.security.ssl.SSLSocketImpl java.lang.Object int
      StackMap stack:
            aload 1
            monitorexit
        39: iconst_m1
            ireturn
        end local 2 // int state
        40: .line 910
      StackMap locals: sun.security.ssl.SSLSocketImpl java.lang.Object
      StackMap stack: java.lang.Throwable
            aload 1
            monitorexit
        41: athrow
        end local 0 // sun.security.ssl.SSLSocketImpl this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   42     0         this  Lsun/security/ssl/SSLSocketImpl;
            4   40     2        state  I
           12   38     3         eofe  Ljava/io/EOFException;
           15   38     4  handshaking  Z
           18   38     5      rethrow  Z
           32   33     6            e  Ljavax/net/ssl/SSLException;
           36   38     6            e  Ljavax/net/ssl/SSLException;
      Exception table:
        from    to  target  type
           8     9      11  Class java.io.EOFException
           3     7      40  any
           8    10      40  any
          11    39      40  any
          40    41      40  any
    Exceptions:
      throws java.io.IOException

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

  int readRecord(java.nio.ByteBuffer);
    descriptor: (Ljava/nio/ByteBuffer;)I
    flags: (0x0000) 
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // sun.security.ssl.SSLSocketImpl this
        start local 1 // java.nio.ByteBuffer buffer
         0: .line 960
            aload 0 /* this */
            invokevirtual sun.security.ssl.SSLSocketImpl.getConnectionState:()I
            iconst_1
            if_icmpne 2
         1: .line 961
            aload 0 /* this */
            invokevirtual sun.security.ssl.SSLSocketImpl.performInitialHandshake:()V
         2: .line 964
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* buffer */
            iconst_1
            invokevirtual sun.security.ssl.SSLSocketImpl.readRecord:(Ljava/nio/ByteBuffer;Z)I
            ireturn
        end local 1 // java.nio.ByteBuffer buffer
        end local 0 // sun.security.ssl.SSLSocketImpl this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    3     0    this  Lsun/security/ssl/SSLSocketImpl;
            0    3     1  buffer  Ljava/nio/ByteBuffer;
    Exceptions:
      throws java.io.IOException
    MethodParameters:
        Name  Flags
      buffer  

  int readRecord(boolean);
    descriptor: (Z)I
    flags: (0x0000) 
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // sun.security.ssl.SSLSocketImpl this
        start local 1 // boolean needAppData
         0: .line 973
            aload 0 /* this */
            aconst_null
            iload 1 /* needAppData */
            invokevirtual sun.security.ssl.SSLSocketImpl.readRecord:(Ljava/nio/ByteBuffer;Z)I
            ireturn
        end local 1 // boolean needAppData
        end local 0 // sun.security.ssl.SSLSocketImpl this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    1     0         this  Lsun/security/ssl/SSLSocketImpl;
            0    1     1  needAppData  Z
    Exceptions:
      throws java.io.IOException
    MethodParameters:
             Name  Flags
      needAppData  

  private int readRecord(java.nio.ByteBuffer, boolean);
    descriptor: (Ljava/nio/ByteBuffer;Z)I
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=10, args_size=3
        start local 0 // sun.security.ssl.SSLSocketImpl this
        start local 1 // java.nio.ByteBuffer buffer
        start local 2 // boolean needAppData
         0: .line 1000
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.readLock:Ljava/lang/Object;
            dup
            astore 4
            monitorenter
         1: .line 1005
            aconst_null
            astore 5 /* plainText */
        start local 5 // sun.security.ssl.Plaintext plainText
         2: .line 1006
            goto 61
        start local 3 // int state
         3: .line 1016
      StackMap locals: int java.lang.Object sun.security.ssl.Plaintext
      StackMap stack:
            aload 1 /* buffer */
            ifnull 9
         4: .line 1017
            aload 1 /* buffer */
            invokevirtual java.nio.ByteBuffer.clear:()Ljava/nio/ByteBuffer;
            pop
         5: .line 1019
            aload 1 /* buffer */
            invokevirtual java.nio.ByteBuffer.remaining:()I
         6: .line 1020
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.inputRecord:Lsun/security/ssl/InputRecord;
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.sockInput:Ljava/io/InputStream;
            invokevirtual sun.security.ssl.InputRecord.bytesInCompletePacket:(Ljava/io/InputStream;)I
            if_icmpge 9
         7: .line 1021
            aload 4
            monitorexit
         8: iconst_0
            ireturn
         9: .line 1031
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.inputRecord:Lsun/security/ssl/InputRecord;
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.sockInput:Ljava/io/InputStream;
            aload 1 /* buffer */
            invokevirtual sun.security.ssl.InputRecord.decode:(Ljava/io/InputStream;Ljava/nio/ByteBuffer;)Lsun/security/ssl/Plaintext;
            astore 5 /* plainText */
        10: .line 1032
            goto 53
      StackMap locals:
      StackMap stack: javax.crypto.BadPaddingException
        11: astore 6 /* bpe */
        start local 6 // javax.crypto.BadPaddingException bpe
        12: .line 1033
            iload 3 /* state */
            iconst_2
            if_icmpeq 14
        13: .line 1034
            bipush 40
            goto 15
        14: .line 1035
      StackMap locals: javax.crypto.BadPaddingException
      StackMap stack:
            bipush 20
        15: .line 1033
      StackMap locals:
      StackMap stack: int
            istore 7 /* alertType */
        start local 7 // byte alertType
        16: .line 1036
            aload 0 /* this */
            iload 7 /* alertType */
            aload 6 /* bpe */
            invokevirtual javax.crypto.BadPaddingException.getMessage:()Ljava/lang/String;
            aload 6 /* bpe */
            invokevirtual sun.security.ssl.SSLSocketImpl.fatal:(BLjava/lang/String;Ljava/lang/Throwable;)V
        end local 7 // byte alertType
        end local 6 // javax.crypto.BadPaddingException bpe
        17: goto 53
        18: .line 1037
      StackMap locals: sun.security.ssl.SSLSocketImpl java.nio.ByteBuffer int int java.lang.Object sun.security.ssl.Plaintext
      StackMap stack: javax.net.ssl.SSLProtocolException
            astore 6 /* spe */
        start local 6 // javax.net.ssl.SSLProtocolException spe
        19: .line 1039
            aload 0 /* this */
            bipush 10
            aload 6 /* spe */
            invokevirtual sun.security.ssl.SSLSocketImpl.fatal:(BLjava/lang/Throwable;)V
        20: .line 1040
            goto 22
      StackMap locals: sun.security.ssl.SSLSocketImpl java.nio.ByteBuffer int int java.lang.Object sun.security.ssl.Plaintext javax.net.ssl.SSLProtocolException
      StackMap stack: java.io.IOException
        21: pop
        22: .line 1043
      StackMap locals:
      StackMap stack:
            aload 6 /* spe */
            athrow
        end local 6 // javax.net.ssl.SSLProtocolException spe
        23: .line 1044
      StackMap locals: sun.security.ssl.SSLSocketImpl java.nio.ByteBuffer int int java.lang.Object sun.security.ssl.Plaintext
      StackMap stack: javax.net.ssl.SSLHandshakeException
            astore 6 /* she */
        start local 6 // javax.net.ssl.SSLHandshakeException she
        24: .line 1046
            aload 0 /* this */
            bipush 40
            aload 6 /* she */
            invokevirtual sun.security.ssl.SSLSocketImpl.fatal:(BLjava/lang/Throwable;)V
        end local 6 // javax.net.ssl.SSLHandshakeException she
        25: goto 53
        26: .line 1047
      StackMap locals:
      StackMap stack: java.io.EOFException
            astore 6 /* eof */
        start local 6 // java.io.EOFException eof
        27: .line 1048
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.connectionState:I
            iconst_1
            if_icmpgt 28
            iconst_1
            goto 29
      StackMap locals: java.io.EOFException
      StackMap stack:
        28: iconst_0
      StackMap locals:
      StackMap stack: int
        29: istore 7 /* handshaking */
        start local 7 // boolean handshaking
        30: .line 1049
            getstatic sun.security.ssl.SSLSocketImpl.requireCloseNotify:Z
            ifne 31
            iload 7 /* handshaking */
            ifne 31
            iconst_0
            goto 32
      StackMap locals: int
      StackMap stack:
        31: iconst_1
      StackMap locals:
      StackMap stack: int
        32: istore 8 /* rethrow */
        start local 8 // boolean rethrow
        33: .line 1050
            getstatic sun.security.ssl.SSLSocketImpl.debug:Lsun/security/ssl/Debug;
            ifnull 40
            ldc "ssl"
            invokestatic sun.security.ssl.Debug.isOn:(Ljava/lang/String;)Z
            ifeq 40
        34: .line 1051
            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
        35: .line 1052
            ldc ", received EOFException: "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        36: .line 1053
            iload 8 /* rethrow */
            ifeq 37
            ldc "error"
            goto 38
      StackMap locals: sun.security.ssl.SSLSocketImpl java.nio.ByteBuffer int int java.lang.Object sun.security.ssl.Plaintext java.io.EOFException int int
      StackMap stack: java.io.PrintStream java.lang.StringBuilder
        37: ldc "ignored"
      StackMap locals: sun.security.ssl.SSLSocketImpl java.nio.ByteBuffer int int java.lang.Object sun.security.ssl.Plaintext java.io.EOFException int int
      StackMap stack: java.io.PrintStream java.lang.StringBuilder java.lang.String
        38: invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        39: .line 1051
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
        40: .line 1055
      StackMap locals:
      StackMap stack:
            iload 8 /* rethrow */
            ifeq 51
        41: .line 1057
            iload 7 /* handshaking */
            ifeq 46
        42: .line 1058
            new javax.net.ssl.SSLHandshakeException
            dup
        43: .line 1059
            ldc "Remote host terminated the handshake"
        44: .line 1058
            invokespecial javax.net.ssl.SSLHandshakeException.<init>:(Ljava/lang/String;)V
            astore 9 /* e */
        start local 9 // javax.net.ssl.SSLException e
        45: .line 1060
            goto 49
        end local 9 // javax.net.ssl.SSLException e
        46: .line 1061
      StackMap locals:
      StackMap stack:
            new javax.net.ssl.SSLProtocolException
            dup
        47: .line 1062
            ldc "Remote host terminated the connection"
        48: .line 1061
            invokespecial javax.net.ssl.SSLProtocolException.<init>:(Ljava/lang/String;)V
            astore 9 /* e */
        start local 9 // javax.net.ssl.SSLException e
        49: .line 1064
      StackMap locals: javax.net.ssl.SSLException
      StackMap stack:
            aload 9 /* e */
            aload 6 /* eof */
            invokevirtual javax.net.ssl.SSLException.initCause:(Ljava/lang/Throwable;)Ljava/lang/Throwable;
            pop
        50: .line 1065
            aload 9 /* e */
            athrow
        end local 9 // javax.net.ssl.SSLException e
        51: .line 1068
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iconst_0
            invokevirtual sun.security.ssl.SSLSocketImpl.closeInternal:(Z)V
        52: .line 1069
            goto 61
        end local 8 // boolean rethrow
        end local 7 // boolean handshaking
        end local 6 // java.io.EOFException eof
        53: .line 1074
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 5 /* plainText */
            iload 2 /* needAppData */
            invokevirtual sun.security.ssl.SSLSocketImpl.processInputRecord:(Lsun/security/ssl/Plaintext;Z)I
            istore 6 /* volume */
        start local 6 // int volume
        54: .line 1076
            aload 5 /* plainText */
            getfield sun.security.ssl.Plaintext.contentType:B
            bipush 23
            if_icmpne 57
        55: .line 1077
            iload 6 /* volume */
            aload 4
            monitorexit
        56: ireturn
        57: .line 1080
      StackMap locals: int
      StackMap stack:
            aload 5 /* plainText */
            getfield sun.security.ssl.Plaintext.contentType:B
            bipush 22
            if_icmpne 61
        58: .line 1081
            iload 2 /* needAppData */
            ifne 61
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.connectionState:I
            iconst_2
            if_icmpne 61
        59: .line 1082
            iload 6 /* volume */
            aload 4
            monitorexit
        60: ireturn
        end local 6 // int volume
        end local 3 // int state
        61: .line 1006
      StackMap locals: sun.security.ssl.SSLSocketImpl java.nio.ByteBuffer int top java.lang.Object sun.security.ssl.Plaintext
      StackMap stack:
            aload 0 /* this */
            invokevirtual sun.security.ssl.SSLSocketImpl.getConnectionState:()I
            dup
            istore 3 /* state */
        start local 3 // int state
        62: bipush 6
            if_icmpeq 64
        63: .line 1007
            iload 3 /* state */
            iconst_4
            if_icmpeq 64
            iload 3 /* state */
            bipush 7
            if_icmpne 3
        64: .line 1092
      StackMap locals: sun.security.ssl.SSLSocketImpl java.nio.ByteBuffer int int java.lang.Object sun.security.ssl.Plaintext
      StackMap stack:
            aload 4
            monitorexit
        65: iconst_m1
            ireturn
        end local 5 // sun.security.ssl.Plaintext plainText
        end local 3 // int state
        66: .line 1000
      StackMap locals: sun.security.ssl.SSLSocketImpl java.nio.ByteBuffer int top java.lang.Object
      StackMap stack: java.lang.Throwable
            aload 4
            monitorexit
        67: athrow
        end local 2 // boolean needAppData
        end local 1 // java.nio.ByteBuffer buffer
        end local 0 // sun.security.ssl.SSLSocketImpl this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   68     0         this  Lsun/security/ssl/SSLSocketImpl;
            0   68     1       buffer  Ljava/nio/ByteBuffer;
            0   68     2  needAppData  Z
            3   61     3        state  I
           62   66     3        state  I
            2   66     5    plainText  Lsun/security/ssl/Plaintext;
           12   17     6          bpe  Ljavax/crypto/BadPaddingException;
           16   17     7    alertType  B
           19   23     6          spe  Ljavax/net/ssl/SSLProtocolException;
           24   25     6          she  Ljavax/net/ssl/SSLHandshakeException;
           27   53     6          eof  Ljava/io/EOFException;
           30   53     7  handshaking  Z
           33   53     8      rethrow  Z
           45   46     9            e  Ljavax/net/ssl/SSLException;
           49   51     9            e  Ljavax/net/ssl/SSLException;
           54   61     6       volume  I
      Exception table:
        from    to  target  type
           9    10      11  Class javax.crypto.BadPaddingException
           9    10      18  Class javax.net.ssl.SSLProtocolException
          19    20      21  Class java.io.IOException
           9    10      23  Class javax.net.ssl.SSLHandshakeException
           9    10      26  Class java.io.EOFException
           1     8      66  any
           9    56      66  any
          57    60      66  any
          61    65      66  any
          66    67      66  any
    Exceptions:
      throws java.io.IOException
    MethodParameters:
             Name  Flags
      buffer       
      needAppData  

  private synchronized int processInputRecord(sun.security.ssl.Plaintext, boolean);
    descriptor: (Lsun/security/ssl/Plaintext;Z)I
    flags: (0x0022) ACC_PRIVATE, ACC_SYNCHRONIZED
    Code:
      stack=8, locals=7, args_size=3
        start local 0 // sun.security.ssl.SSLSocketImpl this
        start local 1 // sun.security.ssl.Plaintext plainText
        start local 2 // boolean needAppData
         0: .line 1105
            iconst_0
            istore 3 /* volume */
        start local 3 // int volume
         1: .line 1106
            aload 1 /* plainText */
            getfield sun.security.ssl.Plaintext.contentType:B
            tableswitch { // 20 - 23
                   20: 64
                   21: 62
                   22: 2
                   23: 46
              default: 86
          }
         2: .line 1119
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            invokevirtual sun.security.ssl.SSLSocketImpl.initHandshaker:()V
         3: .line 1120
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.handshaker:Lsun/security/ssl/Handshaker;
            invokevirtual sun.security.ssl.Handshaker.activated:()Z
            ifne 8
         4: .line 1122
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.connectionState:I
            iconst_3
            if_icmpne 7
         5: .line 1124
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.handshaker:Lsun/security/ssl/Handshaker;
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.protocolVersion:Lsun/security/ssl/ProtocolVersion;
            invokevirtual sun.security.ssl.Handshaker.activate:(Lsun/security/ssl/ProtocolVersion;)V
         6: .line 1125
            goto 8
         7: .line 1126
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.handshaker:Lsun/security/ssl/Handshaker;
            aconst_null
            invokevirtual sun.security.ssl.Handshaker.activate:(Lsun/security/ssl/ProtocolVersion;)V
         8: .line 1137
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.handshaker:Lsun/security/ssl/Handshaker;
            aload 1 /* plainText */
            getfield sun.security.ssl.Plaintext.fragment:Ljava/nio/ByteBuffer;
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.expectingFinished:Z
            invokevirtual sun.security.ssl.Handshaker.processRecord:(Ljava/nio/ByteBuffer;Z)V
         9: .line 1138
            aload 0 /* this */
            iconst_0
            putfield sun.security.ssl.SSLSocketImpl.expectingFinished:Z
        10: .line 1140
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.handshaker:Lsun/security/ssl/Handshaker;
            getfield sun.security.ssl.Handshaker.invalidated:Z
            ifeq 17
        11: .line 1141
            aload 0 /* this */
            aconst_null
            putfield sun.security.ssl.SSLSocketImpl.handshaker:Lsun/security/ssl/Handshaker;
        12: .line 1142
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.inputRecord:Lsun/security/ssl/InputRecord;
            aconst_null
            invokevirtual sun.security.ssl.InputRecord.setHandshakeHash:(Lsun/security/ssl/HandshakeHash;)V
        13: .line 1143
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.outputRecord:Lsun/security/ssl/OutputRecord;
            aconst_null
            invokevirtual sun.security.ssl.OutputRecord.setHandshakeHash:(Lsun/security/ssl/HandshakeHash;)V
        14: .line 1146
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.connectionState:I
            iconst_3
            if_icmpne 90
        15: .line 1147
            aload 0 /* this */
            iconst_2
            putfield sun.security.ssl.SSLSocketImpl.connectionState:I
        16: .line 1149
            goto 90
      StackMap locals:
      StackMap stack:
        17: aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.handshaker:Lsun/security/ssl/Handshaker;
            invokevirtual sun.security.ssl.Handshaker.isDone:()Z
            ifeq 90
        18: .line 1151
            aload 0 /* this */
        19: .line 1152
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.handshaker:Lsun/security/ssl/Handshaker;
            invokevirtual sun.security.ssl.Handshaker.isSecureRenegotiation:()Z
        20: .line 1151
            putfield sun.security.ssl.SSLSocketImpl.secureRenegotiation:Z
        21: .line 1153
            aload 0 /* this */
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.handshaker:Lsun/security/ssl/Handshaker;
            invokevirtual sun.security.ssl.Handshaker.getClientVerifyData:()[B
            putfield sun.security.ssl.SSLSocketImpl.clientVerifyData:[B
        22: .line 1154
            aload 0 /* this */
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.handshaker:Lsun/security/ssl/Handshaker;
            invokevirtual sun.security.ssl.Handshaker.getServerVerifyData:()[B
            putfield sun.security.ssl.SSLSocketImpl.serverVerifyData:[B
        23: .line 1156
            aload 0 /* this */
        24: .line 1157
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.handshaker:Lsun/security/ssl/Handshaker;
            invokevirtual sun.security.ssl.Handshaker.getHandshakeApplicationProtocol:()Ljava/lang/String;
        25: .line 1156
            putfield sun.security.ssl.SSLSocketImpl.applicationProtocol:Ljava/lang/String;
        26: .line 1159
            aload 0 /* this */
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.handshaker:Lsun/security/ssl/Handshaker;
            invokevirtual sun.security.ssl.Handshaker.getSession:()Lsun/security/ssl/SSLSessionImpl;
            putfield sun.security.ssl.SSLSocketImpl.sess:Lsun/security/ssl/SSLSessionImpl;
        27: .line 1160
            aload 0 /* this */
            aconst_null
            putfield sun.security.ssl.SSLSocketImpl.handshakeSession:Lsun/security/ssl/SSLSessionImpl;
        28: .line 1161
            aload 0 /* this */
            aconst_null
            putfield sun.security.ssl.SSLSocketImpl.handshaker:Lsun/security/ssl/Handshaker;
        29: .line 1162
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.inputRecord:Lsun/security/ssl/InputRecord;
            aconst_null
            invokevirtual sun.security.ssl.InputRecord.setHandshakeHash:(Lsun/security/ssl/HandshakeHash;)V
        30: .line 1163
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.outputRecord:Lsun/security/ssl/OutputRecord;
            aconst_null
            invokevirtual sun.security.ssl.OutputRecord.setHandshakeHash:(Lsun/security/ssl/HandshakeHash;)V
        31: .line 1164
            aload 0 /* this */
            iconst_2
            putfield sun.security.ssl.SSLSocketImpl.connectionState:I
        32: .line 1170
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.handshakeListeners:Ljava/util/HashMap;
            ifnull 90
        33: .line 1172
            new javax.net.ssl.HandshakeCompletedEvent
            dup
            aload 0 /* this */
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.sess:Lsun/security/ssl/SSLSessionImpl;
            invokespecial javax.net.ssl.HandshakeCompletedEvent.<init>:(Ljavax/net/ssl/SSLSocket;Ljavax/net/ssl/SSLSession;)V
        34: .line 1171
            astore 4 /* event */
        start local 4 // javax.net.ssl.HandshakeCompletedEvent event
        35: .line 1174
            new java.lang.Thread
            dup
        36: .line 1175
            aconst_null
        37: .line 1176
            new sun.security.ssl.SSLSocketImpl$NotifyHandshake
            dup
        38: .line 1177
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.handshakeListeners:Ljava/util/HashMap;
            invokevirtual java.util.HashMap.entrySet:()Ljava/util/Set;
            aload 4 /* event */
        39: .line 1176
            invokespecial sun.security.ssl.SSLSocketImpl$NotifyHandshake.<init>:(Ljava/util/Set;Ljavax/net/ssl/HandshakeCompletedEvent;)V
        40: .line 1178
            ldc "HandshakeCompletedNotify-Thread"
        41: .line 1179
            lconst_0
        42: .line 1180
            iconst_0
        43: .line 1174
            invokespecial java.lang.Thread.<init>:(Ljava/lang/ThreadGroup;Ljava/lang/Runnable;Ljava/lang/String;JZ)V
            astore 5 /* thread */
        start local 5 // java.lang.Thread thread
        44: .line 1181
            aload 5 /* thread */
            invokevirtual java.lang.Thread.start:()V
        end local 5 // java.lang.Thread thread
        end local 4 // javax.net.ssl.HandshakeCompletedEvent event
        45: .line 1185
            goto 90
        46: .line 1188
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.connectionState:I
            iconst_2
            if_icmpeq 54
        47: .line 1189
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.connectionState:I
            iconst_3
            if_icmpeq 54
        48: .line 1190
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.connectionState:I
            iconst_5
            if_icmpeq 54
        49: .line 1191
            new javax.net.ssl.SSLProtocolException
            dup
        50: .line 1192
            new java.lang.StringBuilder
            dup
            ldc "Data received in non-data state: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
        51: .line 1193
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.connectionState:I
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
        52: .line 1192
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        53: .line 1191
            invokespecial javax.net.ssl.SSLProtocolException.<init>:(Ljava/lang/String;)V
            athrow
        54: .line 1195
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.expectingFinished:Z
            ifeq 58
        55: .line 1196
            new javax.net.ssl.SSLProtocolException
            dup
        56: .line 1197
            ldc "Expecting finished message, received data"
        57: .line 1196
            invokespecial javax.net.ssl.SSLProtocolException.<init>:(Ljava/lang/String;)V
            athrow
        58: .line 1199
      StackMap locals:
      StackMap stack:
            iload 2 /* needAppData */
            ifne 60
        59: .line 1200
            new javax.net.ssl.SSLException
            dup
            ldc "Discarding app data"
            invokespecial javax.net.ssl.SSLException.<init>:(Ljava/lang/String;)V
            athrow
        60: .line 1203
      StackMap locals:
      StackMap stack:
            aload 1 /* plainText */
            getfield sun.security.ssl.Plaintext.fragment:Ljava/nio/ByteBuffer;
            invokevirtual java.nio.ByteBuffer.remaining:()I
            istore 3 /* volume */
        61: .line 1204
            goto 90
        62: .line 1207
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* plainText */
            getfield sun.security.ssl.Plaintext.fragment:Ljava/nio/ByteBuffer;
            invokevirtual sun.security.ssl.SSLSocketImpl.recvAlert:(Ljava/nio/ByteBuffer;)V
        63: .line 1208
            goto 90
        64: .line 1211
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.connectionState:I
            iconst_1
            if_icmpeq 72
        65: .line 1212
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.connectionState:I
            iconst_3
            if_icmpeq 72
        66: .line 1214
            aload 0 /* this */
            bipush 10
        67: .line 1215
            new java.lang.StringBuilder
            dup
            ldc "illegal change cipher spec msg, conn state = "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
        68: .line 1216
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.connectionState:I
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
        69: .line 1215
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        70: .line 1214
            invokevirtual sun.security.ssl.SSLSocketImpl.fatal:(BLjava/lang/String;)V
        71: .line 1217
            goto 77
      StackMap locals:
      StackMap stack:
        72: aload 1 /* plainText */
            getfield sun.security.ssl.Plaintext.fragment:Ljava/nio/ByteBuffer;
            invokevirtual java.nio.ByteBuffer.remaining:()I
            iconst_1
            if_icmpne 74
        73: .line 1218
            aload 1 /* plainText */
            getfield sun.security.ssl.Plaintext.fragment:Ljava/nio/ByteBuffer;
            invokevirtual java.nio.ByteBuffer.get:()B
            iconst_1
            if_icmpeq 77
        74: .line 1220
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            bipush 10
        75: .line 1221
            ldc "Malformed change cipher spec msg"
        76: .line 1220
            invokevirtual sun.security.ssl.SSLSocketImpl.fatal:(BLjava/lang/String;)V
        77: .line 1231
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.handshaker:Lsun/security/ssl/Handshaker;
            invokevirtual sun.security.ssl.Handshaker.receiveChangeCipherSpec:()V
        78: .line 1236
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.handshaker:Lsun/security/ssl/Handshaker;
            invokevirtual sun.security.ssl.Handshaker.newReadCipher:()Lsun/security/ssl/CipherBox;
            astore 4 /* readCipher */
        start local 4 // sun.security.ssl.CipherBox readCipher
        79: .line 1237
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.handshaker:Lsun/security/ssl/Handshaker;
            invokevirtual sun.security.ssl.Handshaker.newReadAuthenticator:()Lsun/security/ssl/Authenticator;
            astore 5 /* readAuthenticator */
        start local 5 // sun.security.ssl.Authenticator readAuthenticator
        80: .line 1238
            goto 83
        end local 5 // sun.security.ssl.Authenticator readAuthenticator
        end local 4 // sun.security.ssl.CipherBox readCipher
      StackMap locals:
      StackMap stack: java.security.GeneralSecurityException
        81: astore 6 /* e */
        start local 6 // java.security.GeneralSecurityException e
        82: .line 1240
            new javax.net.ssl.SSLException
            dup
            ldc "Algorithm missing:  "
            aload 6 /* e */
            invokespecial javax.net.ssl.SSLException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
            athrow
        end local 6 // java.security.GeneralSecurityException e
        start local 4 // sun.security.ssl.CipherBox readCipher
        start local 5 // sun.security.ssl.Authenticator readAuthenticator
        83: .line 1242
      StackMap locals: sun.security.ssl.CipherBox sun.security.ssl.Authenticator
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.inputRecord:Lsun/security/ssl/InputRecord;
            aload 5 /* readAuthenticator */
            aload 4 /* readCipher */
            invokevirtual sun.security.ssl.InputRecord.changeReadCiphers:(Lsun/security/ssl/Authenticator;Lsun/security/ssl/CipherBox;)V
        84: .line 1245
            aload 0 /* this */
            iconst_1
            putfield sun.security.ssl.SSLSocketImpl.expectingFinished:Z
        85: .line 1247
            goto 90
        end local 5 // sun.security.ssl.Authenticator readAuthenticator
        end local 4 // sun.security.ssl.CipherBox readCipher
        86: .line 1253
      StackMap locals:
      StackMap stack:
            getstatic sun.security.ssl.SSLSocketImpl.debug:Lsun/security/ssl/Debug;
            ifnull 90
            ldc "ssl"
            invokestatic sun.security.ssl.Debug.isOn:(Ljava/lang/String;)Z
            ifeq 90
        87: .line 1254
            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
        88: .line 1255
            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;
        89: .line 1254
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
        90: .line 1274
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.connectionState:I
            iconst_2
            if_icmpne 97
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.inputRecord:Lsun/security/ssl/InputRecord;
            invokevirtual sun.security.ssl.InputRecord.seqNumIsHuge:()Z
            ifeq 97
        91: .line 1281
            getstatic sun.security.ssl.SSLSocketImpl.debug:Lsun/security/ssl/Debug;
            ifnull 96
            ldc "ssl"
            invokestatic sun.security.ssl.Debug.isOn:(Ljava/lang/String;)Z
            ifeq 96
        92: .line 1282
            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
        93: .line 1283
            ldc ", request renegotiation "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        94: .line 1284
            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;
        95: .line 1282
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
        96: .line 1287
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual sun.security.ssl.SSLSocketImpl.startHandshake:()V
        97: .line 1290
      StackMap locals:
      StackMap stack:
            iload 3 /* volume */
            ireturn
        end local 3 // int volume
        end local 2 // boolean needAppData
        end local 1 // sun.security.ssl.Plaintext plainText
        end local 0 // sun.security.ssl.SSLSocketImpl this
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0   98     0               this  Lsun/security/ssl/SSLSocketImpl;
            0   98     1          plainText  Lsun/security/ssl/Plaintext;
            0   98     2        needAppData  Z
            1   98     3             volume  I
           35   45     4              event  Ljavax/net/ssl/HandshakeCompletedEvent;
           44   45     5             thread  Ljava/lang/Thread;
           79   81     4         readCipher  Lsun/security/ssl/CipherBox;
           83   86     4         readCipher  Lsun/security/ssl/CipherBox;
           80   81     5  readAuthenticator  Lsun/security/ssl/Authenticator;
           83   86     5  readAuthenticator  Lsun/security/ssl/Authenticator;
           82   83     6                  e  Ljava/security/GeneralSecurityException;
      Exception table:
        from    to  target  type
          78    80      81  Class java.security.GeneralSecurityException
    Exceptions:
      throws java.io.IOException
    MethodParameters:
             Name  Flags
      plainText    
      needAppData  

  sun.security.ssl.AppInputStream getAppInputStream();
    descriptor: ()Lsun/security/ssl/AppInputStream;
    flags: (0x0000) 
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // sun.security.ssl.SSLSocketImpl this
         0: .line 1302
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.input:Lsun/security/ssl/AppInputStream;
            areturn
        end local 0 // sun.security.ssl.SSLSocketImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lsun/security/ssl/SSLSocketImpl;

  sun.security.ssl.AppOutputStream getAppOutputStream();
    descriptor: ()Lsun/security/ssl/AppOutputStream;
    flags: (0x0000) 
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // sun.security.ssl.SSLSocketImpl this
         0: .line 1309
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.output:Lsun/security/ssl/AppOutputStream;
            areturn
        end local 0 // sun.security.ssl.SSLSocketImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lsun/security/ssl/SSLSocketImpl;

  private void initHandshaker();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=12, locals=1, args_size=1
        start local 0 // sun.security.ssl.SSLSocketImpl this
         0: .line 1329
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.connectionState:I
            tableswitch { // 0 - 3
                    0: 1
                    1: 2
                    2: 1
                    3: 2
              default: 3
          }
         1: .line 1336
      StackMap locals:
      StackMap stack:
            goto 4
         2: .line 1343
      StackMap locals:
      StackMap stack:
            return
         3: .line 1350
      StackMap locals:
      StackMap stack:
            new java.lang.IllegalStateException
            dup
            ldc "Internal error"
            invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
            athrow
         4: .line 1354
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.connectionState:I
            ifne 7
         5: .line 1355
            aload 0 /* this */
            iconst_1
            putfield sun.security.ssl.SSLSocketImpl.connectionState:I
         6: .line 1356
            goto 8
         7: .line 1357
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iconst_3
            putfield sun.security.ssl.SSLSocketImpl.connectionState:I
         8: .line 1360
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.roleIsServer:Z
            ifeq 19
         9: .line 1361
            aload 0 /* this */
        10: new sun.security.ssl.ServerHandshaker
            dup
            aload 0 /* this */
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.sslContext:Lsun/security/ssl/SSLContextImpl;
        11: .line 1362
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.enabledProtocols:Lsun/security/ssl/ProtocolList;
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.doClientAuth:Lsun/security/ssl/ClientAuthType;
        12: .line 1363
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.protocolVersion:Lsun/security/ssl/ProtocolVersion;
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.connectionState:I
            iconst_1
            if_icmpne 13
            iconst_1
            goto 14
      StackMap locals: sun.security.ssl.SSLSocketImpl
      StackMap stack: sun.security.ssl.SSLSocketImpl new 10 new 10 sun.security.ssl.SSLSocketImpl sun.security.ssl.SSLContextImpl sun.security.ssl.ProtocolList sun.security.ssl.ClientAuthType sun.security.ssl.ProtocolVersion
        13: iconst_0
        14: .line 1364
      StackMap locals: sun.security.ssl.SSLSocketImpl
      StackMap stack: sun.security.ssl.SSLSocketImpl new 10 new 10 sun.security.ssl.SSLSocketImpl sun.security.ssl.SSLContextImpl sun.security.ssl.ProtocolList sun.security.ssl.ClientAuthType sun.security.ssl.ProtocolVersion int
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.secureRenegotiation:Z
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.clientVerifyData:[B
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.serverVerifyData:[B
            invokespecial sun.security.ssl.ServerHandshaker.<init>:(Lsun/security/ssl/SSLSocketImpl;Lsun/security/ssl/SSLContextImpl;Lsun/security/ssl/ProtocolList;Lsun/security/ssl/ClientAuthType;Lsun/security/ssl/ProtocolVersion;ZZ[B[B)V
        15: .line 1361
            putfield sun.security.ssl.SSLSocketImpl.handshaker:Lsun/security/ssl/Handshaker;
        16: .line 1365
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.handshaker:Lsun/security/ssl/Handshaker;
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.sniMatchers:Ljava/util/Collection;
            invokevirtual sun.security.ssl.Handshaker.setSNIMatchers:(Ljava/util/Collection;)V
        17: .line 1366
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.handshaker:Lsun/security/ssl/Handshaker;
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.preferLocalCipherSuites:Z
            invokevirtual sun.security.ssl.Handshaker.setUseCipherSuitesOrder:(Z)V
        18: .line 1367
            goto 27
        19: .line 1368
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
        20: new sun.security.ssl.ClientHandshaker
            dup
            aload 0 /* this */
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.sslContext:Lsun/security/ssl/SSLContextImpl;
        21: .line 1369
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.enabledProtocols:Lsun/security/ssl/ProtocolList;
        22: .line 1370
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.protocolVersion:Lsun/security/ssl/ProtocolVersion;
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.connectionState:I
            iconst_1
            if_icmpne 23
            iconst_1
            goto 24
      StackMap locals: sun.security.ssl.SSLSocketImpl
      StackMap stack: sun.security.ssl.SSLSocketImpl new 20 new 20 sun.security.ssl.SSLSocketImpl sun.security.ssl.SSLContextImpl sun.security.ssl.ProtocolList sun.security.ssl.ProtocolVersion
        23: iconst_0
        24: .line 1371
      StackMap locals: sun.security.ssl.SSLSocketImpl
      StackMap stack: sun.security.ssl.SSLSocketImpl new 20 new 20 sun.security.ssl.SSLSocketImpl sun.security.ssl.SSLContextImpl sun.security.ssl.ProtocolList sun.security.ssl.ProtocolVersion int
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.secureRenegotiation:Z
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.clientVerifyData:[B
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.serverVerifyData:[B
            invokespecial sun.security.ssl.ClientHandshaker.<init>:(Lsun/security/ssl/SSLSocketImpl;Lsun/security/ssl/SSLContextImpl;Lsun/security/ssl/ProtocolList;Lsun/security/ssl/ProtocolVersion;ZZ[B[B)V
        25: .line 1368
            putfield sun.security.ssl.SSLSocketImpl.handshaker:Lsun/security/ssl/Handshaker;
        26: .line 1372
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.handshaker:Lsun/security/ssl/Handshaker;
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.serverNames:Ljava/util/List;
            invokevirtual sun.security.ssl.Handshaker.setSNIServerNames:(Ljava/util/List;)V
        27: .line 1374
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.handshaker:Lsun/security/ssl/Handshaker;
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.maximumPacketSize:I
            invokevirtual sun.security.ssl.Handshaker.setMaximumPacketSize:(I)V
        28: .line 1375
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.handshaker:Lsun/security/ssl/Handshaker;
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.enabledCipherSuites:Lsun/security/ssl/CipherSuiteList;
            invokevirtual sun.security.ssl.Handshaker.setEnabledCipherSuites:(Lsun/security/ssl/CipherSuiteList;)V
        29: .line 1376
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.handshaker:Lsun/security/ssl/Handshaker;
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.enableSessionCreation:Z
            invokevirtual sun.security.ssl.Handshaker.setEnableSessionCreation:(Z)V
        30: .line 1377
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.handshaker:Lsun/security/ssl/Handshaker;
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.applicationProtocols:[Ljava/lang/String;
            invokevirtual sun.security.ssl.Handshaker.setApplicationProtocols:([Ljava/lang/String;)V
        31: .line 1378
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.handshaker:Lsun/security/ssl/Handshaker;
        32: .line 1379
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.applicationProtocolSelector:Ljava/util/function/BiFunction;
        33: .line 1378
            invokevirtual sun.security.ssl.Handshaker.setApplicationProtocolSelectorSSLSocket:(Ljava/util/function/BiFunction;)V
        34: .line 1380
            return
        end local 0 // sun.security.ssl.SSLSocketImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   35     0  this  Lsun/security/ssl/SSLSocketImpl;

  private void performInitialHandshake();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=2, args_size=1
        start local 0 // sun.security.ssl.SSLSocketImpl this
         0: .line 1392
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.handshakeLock:Ljava/lang/Object;
            dup
            astore 1
            monitorenter
         1: .line 1393
            aload 0 /* this */
            invokevirtual sun.security.ssl.SSLSocketImpl.getConnectionState:()I
            iconst_1
            if_icmpne 4
         2: .line 1394
            aload 0 /* this */
            invokevirtual sun.security.ssl.SSLSocketImpl.kickstartHandshake:()V
         3: .line 1402
            aload 0 /* this */
            iconst_0
            invokevirtual sun.security.ssl.SSLSocketImpl.readRecord:(Z)I
            pop
         4: .line 1392
      StackMap locals: java.lang.Object
      StackMap stack:
            aload 1
            monitorexit
         5: goto 8
      StackMap locals:
      StackMap stack: java.lang.Throwable
         6: aload 1
            monitorexit
         7: athrow
         8: .line 1405
      StackMap locals:
      StackMap stack:
            return
        end local 0 // sun.security.ssl.SSLSocketImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    9     0  this  Lsun/security/ssl/SSLSocketImpl;
      Exception table:
        from    to  target  type
           1     5       6  any
           6     7       6  any
    Exceptions:
      throws java.io.IOException

  public void startHandshake();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // sun.security.ssl.SSLSocketImpl this
         0: .line 1413
            aload 0 /* this */
            iconst_1
            invokevirtual sun.security.ssl.SSLSocketImpl.startHandshake:(Z)V
         1: .line 1414
            return
        end local 0 // sun.security.ssl.SSLSocketImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lsun/security/ssl/SSLSocketImpl;
    Exceptions:
      throws java.io.IOException

  private void startHandshake(boolean);
    descriptor: (Z)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // sun.security.ssl.SSLSocketImpl this
        start local 1 // boolean resumable
         0: .line 1425
            aload 0 /* this */
            invokevirtual sun.security.ssl.SSLSocketImpl.checkWrite:()V
         1: .line 1427
            aload 0 /* this */
            invokevirtual sun.security.ssl.SSLSocketImpl.getConnectionState:()I
            iconst_1
            if_icmpne 4
         2: .line 1429
            aload 0 /* this */
            invokevirtual sun.security.ssl.SSLSocketImpl.performInitialHandshake:()V
         3: .line 1430
            goto 8
         4: .line 1432
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual sun.security.ssl.SSLSocketImpl.kickstartHandshake:()V
         5: .line 1434
            goto 8
      StackMap locals:
      StackMap stack: java.lang.Exception
         6: astore 2 /* e */
        start local 2 // java.lang.Exception e
         7: .line 1436
            aload 0 /* this */
            aload 2 /* e */
            iload 1 /* resumable */
            invokevirtual sun.security.ssl.SSLSocketImpl.handleException:(Ljava/lang/Exception;Z)V
        end local 2 // java.lang.Exception e
         8: .line 1438
      StackMap locals:
      StackMap stack:
            return
        end local 1 // boolean resumable
        end local 0 // sun.security.ssl.SSLSocketImpl this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    9     0       this  Lsun/security/ssl/SSLSocketImpl;
            0    9     1  resumable  Z
            7    8     2          e  Ljava/lang/Exception;
      Exception table:
        from    to  target  type
           1     5       6  Class java.lang.Exception
    Exceptions:
      throws java.io.IOException
    MethodParameters:
           Name  Flags
      resumable  

  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.SSLSocketImpl this
         0: .line 1456
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.connectionState:I
            tableswitch { // 0 - 3
                    0: 14
                    1: 1
                    2: 2
                    3: 13
              default: 17
          }
         1: .line 1460
      StackMap locals:
      StackMap stack:
            goto 18
         2: .line 1463
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.secureRenegotiation:Z
            ifne 6
            getstatic sun.security.ssl.Handshaker.allowUnsafeRenegotiation:Z
            ifne 6
         3: .line 1464
            new javax.net.ssl.SSLHandshakeException
            dup
         4: .line 1465
            ldc "Insecure renegotiation is not allowed"
         5: .line 1464
            invokespecial javax.net.ssl.SSLHandshakeException.<init>:(Ljava/lang/String;)V
            athrow
         6: .line 1468
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.secureRenegotiation:Z
            ifne 11
         7: .line 1469
            getstatic sun.security.ssl.SSLSocketImpl.debug:Lsun/security/ssl/Debug;
            ifnull 11
            ldc "handshake"
            invokestatic sun.security.ssl.Debug.isOn:(Ljava/lang/String;)Z
            ifeq 11
         8: .line 1470
            getstatic java.lang.System.out:Ljava/io/PrintStream;
         9: .line 1471
            ldc "Warning: Using insecure renegotiation"
        10: .line 1470
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
        11: .line 1476
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual sun.security.ssl.SSLSocketImpl.initHandshaker:()V
        12: .line 1477
            goto 18
        13: .line 1481
      StackMap locals:
      StackMap stack:
            return
        14: .line 1488
      StackMap locals:
      StackMap stack:
            new java.net.SocketException
            dup
        15: .line 1489
            ldc "handshaking attempted on unconnected socket"
        16: .line 1488
            invokespecial java.net.SocketException.<init>:(Ljava/lang/String;)V
            athrow
        17: .line 1492
      StackMap locals:
      StackMap stack:
            new java.net.SocketException
            dup
            ldc "connection is closed"
            invokespecial java.net.SocketException.<init>:(Ljava/lang/String;)V
            athrow
        18: .line 1502
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.handshaker:Lsun/security/ssl/Handshaker;
            invokevirtual sun.security.ssl.Handshaker.activated:()Z
            ifne 28
        19: .line 1504
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.connectionState:I
            iconst_3
            if_icmpne 22
        20: .line 1506
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.handshaker:Lsun/security/ssl/Handshaker;
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.protocolVersion:Lsun/security/ssl/ProtocolVersion;
            invokevirtual sun.security.ssl.Handshaker.activate:(Lsun/security/ssl/ProtocolVersion;)V
        21: .line 1507
            goto 23
        22: .line 1508
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.handshaker:Lsun/security/ssl/Handshaker;
            aconst_null
            invokevirtual sun.security.ssl.Handshaker.activate:(Lsun/security/ssl/ProtocolVersion;)V
        23: .line 1511
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.handshaker:Lsun/security/ssl/Handshaker;
            instanceof sun.security.ssl.ClientHandshaker
            ifeq 26
        24: .line 1513
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.handshaker:Lsun/security/ssl/Handshaker;
            invokevirtual sun.security.ssl.Handshaker.kickstart:()V
        25: .line 1514
            goto 28
        26: .line 1515
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.connectionState:I
            iconst_1
            if_icmpeq 28
        27: .line 1519
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.handshaker:Lsun/security/ssl/Handshaker;
            invokevirtual sun.security.ssl.Handshaker.kickstart:()V
        28: .line 1523
      StackMap locals:
      StackMap stack:
            return
        end local 0 // sun.security.ssl.SSLSocketImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   29     0  this  Lsun/security/ssl/SSLSocketImpl;
    Exceptions:
      throws java.io.IOException

  public boolean isClosed();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // sun.security.ssl.SSLSocketImpl this
         0: .line 1534
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.connectionState:I
            bipush 7
            if_icmpne 1
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         1: iconst_0
            ireturn
        end local 0 // sun.security.ssl.SSLSocketImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lsun/security/ssl/SSLSocketImpl;

  boolean checkEOF();
    descriptor: ()Z
    flags: (0x0000) 
    Code:
      stack=5, locals=2, args_size=1
        start local 0 // sun.security.ssl.SSLSocketImpl this
         0: .line 1544
            aload 0 /* this */
            invokevirtual sun.security.ssl.SSLSocketImpl.getConnectionState:()I
            tableswitch { // 0 - 7
                    0: 1
                    1: 2
                    2: 2
                    3: 2
                    4: 4
                    5: 2
                    6: 4
                    7: 3
              default: 4
          }
         1: .line 1546
      StackMap locals:
      StackMap stack:
            new java.net.SocketException
            dup
            ldc "Socket is not connected"
            invokespecial java.net.SocketException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 1552
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
         3: .line 1555
      StackMap locals:
      StackMap stack:
            new java.net.SocketException
            dup
            ldc "Socket is closed"
            invokespecial java.net.SocketException.<init>:(Ljava/lang/String;)V
            athrow
         4: .line 1561
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.closeReason:Ljavax/net/ssl/SSLException;
            ifnonnull 6
         5: .line 1562
            iconst_1
            ireturn
         6: .line 1564
      StackMap locals:
      StackMap stack:
            new javax.net.ssl.SSLException
            dup
         7: .line 1565
            new java.lang.StringBuilder
            dup
            ldc "Connection has been shutdown: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.closeReason:Ljavax/net/ssl/SSLException;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
         8: .line 1564
            invokespecial javax.net.ssl.SSLException.<init>:(Ljava/lang/String;)V
            astore 1 /* e */
        start local 1 // java.io.IOException e
         9: .line 1566
            aload 1 /* e */
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.closeReason:Ljavax/net/ssl/SSLException;
            invokevirtual java.io.IOException.initCause:(Ljava/lang/Throwable;)Ljava/lang/Throwable;
            pop
        10: .line 1567
            aload 1 /* e */
            athrow
        end local 1 // java.io.IOException e
        end local 0 // sun.security.ssl.SSLSocketImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   11     0  this  Lsun/security/ssl/SSLSocketImpl;
            9   11     1     e  Ljava/io/IOException;
    Exceptions:
      throws java.io.IOException

  void checkWrite();
    descriptor: ()V
    flags: (0x0000) 
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // sun.security.ssl.SSLSocketImpl this
         0: .line 1576
            aload 0 /* this */
            invokevirtual sun.security.ssl.SSLSocketImpl.checkEOF:()Z
            ifne 1
            aload 0 /* this */
            invokevirtual sun.security.ssl.SSLSocketImpl.getConnectionState:()I
            iconst_5
            if_icmpne 2
         1: .line 1578
      StackMap locals:
      StackMap stack:
            new java.net.SocketException
            dup
            ldc "Connection closed by remote host"
            invokespecial java.net.SocketException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 1580
      StackMap locals:
      StackMap stack:
            return
        end local 0 // sun.security.ssl.SSLSocketImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lsun/security/ssl/SSLSocketImpl;
    Exceptions:
      throws java.io.IOException

  private void closeSocket();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=1, args_size=1
        start local 0 // sun.security.ssl.SSLSocketImpl this
         0: .line 1584
            getstatic sun.security.ssl.SSLSocketImpl.debug:Lsun/security/ssl/Debug;
            ifnull 4
            ldc "ssl"
            invokestatic sun.security.ssl.Debug.isOn:(Ljava/lang/String;)Z
            ifeq 4
         1: .line 1585
            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 1586
            ldc ", called closeSocket()"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
         3: .line 1585
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
         4: .line 1589
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokespecial sun.security.ssl.BaseSSLSocketImpl.close:()V
         5: .line 1590
            return
        end local 0 // sun.security.ssl.SSLSocketImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    6     0  this  Lsun/security/ssl/SSLSocketImpl;
    Exceptions:
      throws java.io.IOException

  private void closeSocket(boolean);
    descriptor: (Z)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // sun.security.ssl.SSLSocketImpl this
        start local 1 // boolean selfInitiated
         0: .line 1593
            getstatic sun.security.ssl.SSLSocketImpl.debug:Lsun/security/ssl/Debug;
            ifnull 4
            ldc "ssl"
            invokestatic sun.security.ssl.Debug.isOn:(Ljava/lang/String;)Z
            ifeq 4
         1: .line 1594
            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 1595
            ldc ", called closeSocket("
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            iload 1 /* selfInitiated */
            invokevirtual java.lang.StringBuilder.append:(Z)Ljava/lang/StringBuilder;
            ldc ")"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
         3: .line 1594
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
         4: .line 1597
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual sun.security.ssl.SSLSocketImpl.isLayered:()Z
            ifeq 5
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.autoClose:Z
            ifeq 7
         5: .line 1598
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokespecial sun.security.ssl.BaseSSLSocketImpl.close:()V
         6: .line 1599
            goto 9
      StackMap locals:
      StackMap stack:
         7: iload 1 /* selfInitiated */
            ifeq 9
         8: .line 1602
            aload 0 /* this */
            iconst_0
            invokevirtual sun.security.ssl.SSLSocketImpl.waitForClose:(Z)V
         9: .line 1604
      StackMap locals:
      StackMap stack:
            return
        end local 1 // boolean selfInitiated
        end local 0 // sun.security.ssl.SSLSocketImpl this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0   10     0           this  Lsun/security/ssl/SSLSocketImpl;
            0   10     1  selfInitiated  Z
    Exceptions:
      throws java.io.IOException
    MethodParameters:
               Name  Flags
      selfInitiated  

  public void close();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=2, args_size=1
        start local 0 // sun.security.ssl.SSLSocketImpl this
         0: .line 1621
            getstatic sun.security.ssl.SSLSocketImpl.debug:Lsun/security/ssl/Debug;
            ifnull 4
            ldc "ssl"
            invokestatic sun.security.ssl.Debug.isOn:(Ljava/lang/String;)Z
            ifeq 4
         1: .line 1622
            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 1623
            ldc ", called close()"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
         3: .line 1622
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
         4: .line 1625
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iconst_1
            invokevirtual sun.security.ssl.SSLSocketImpl.closeInternal:(Z)V
         5: .line 1629
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.readLock:Ljava/lang/Object;
            dup
            astore 1
            monitorenter
         6: .line 1630
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.inputRecord:Lsun/security/ssl/InputRecord;
            invokevirtual sun.security.ssl.InputRecord.close:()V
         7: .line 1629
            aload 1
            monitorexit
         8: goto 11
      StackMap locals: sun.security.ssl.SSLSocketImpl java.lang.Object
      StackMap stack: java.lang.Throwable
         9: aload 1
            monitorexit
        10: athrow
        11: .line 1633
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.writeLock:Ljava/util/concurrent/locks/ReentrantLock;
            invokevirtual java.util.concurrent.locks.ReentrantLock.lock:()V
        12: .line 1635
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.outputRecord:Lsun/security/ssl/OutputRecord;
            invokevirtual sun.security.ssl.OutputRecord.close:()V
        13: .line 1636
            goto 17
      StackMap locals:
      StackMap stack: java.lang.Throwable
        14: astore 1
        15: .line 1637
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.writeLock:Ljava/util/concurrent/locks/ReentrantLock;
            invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
        16: .line 1638
            aload 1
            athrow
        17: .line 1637
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.writeLock:Ljava/util/concurrent/locks/ReentrantLock;
            invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
        18: .line 1639
            goto 20
      StackMap locals:
      StackMap stack: java.io.IOException
        19: pop
        20: .line 1643
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            bipush 7
            invokevirtual sun.security.ssl.SSLSocketImpl.setConnectionState:(I)V
        21: .line 1644
            return
        end local 0 // sun.security.ssl.SSLSocketImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   22     0  this  Lsun/security/ssl/SSLSocketImpl;
      Exception table:
        from    to  target  type
           6     8       9  any
           9    10       9  any
          12    14      14  any
           5    18      19  Class java.io.IOException
    Exceptions:
      throws java.io.IOException

  private void closeInternal(boolean);
    descriptor: (Z)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=9, args_size=2
        start local 0 // sun.security.ssl.SSLSocketImpl this
        start local 1 // boolean selfInitiated
         0: .line 1657
            getstatic sun.security.ssl.SSLSocketImpl.debug:Lsun/security/ssl/Debug;
            ifnull 4
            ldc "ssl"
            invokestatic sun.security.ssl.Debug.isOn:(Ljava/lang/String;)Z
            ifeq 4
         1: .line 1658
            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 1659
            ldc ", called closeInternal("
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            iload 1 /* selfInitiated */
            invokevirtual java.lang.StringBuilder.append:(Z)Ljava/lang/StringBuilder;
            ldc ")"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
         3: .line 1658
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
         4: .line 1662
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual sun.security.ssl.SSLSocketImpl.getConnectionState:()I
            istore 2 /* state */
        start local 2 // int state
         5: .line 1663
            iconst_0
            istore 3 /* closeSocketCalled */
        start local 3 // boolean closeSocketCalled
         6: .line 1664
            aconst_null
            astore 4 /* cachedThrowable */
        start local 4 // java.lang.Throwable cachedThrowable
         7: .line 1666
            iload 2 /* state */
            tableswitch { // 0 - 7
                    0: 8
                    1: 13
                    2: 13
                    3: 13
                    4: 10
                    5: 13
                    6: 12
                    7: 12
              default: 13
          }
         8: .line 1669
      StackMap locals: int int java.lang.Throwable
      StackMap stack:
            aload 0 /* this */
            iload 1 /* selfInitiated */
            invokevirtual sun.security.ssl.SSLSocketImpl.closeSocket:(Z)V
         9: .line 1670
            goto 121
        10: .line 1679
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual sun.security.ssl.SSLSocketImpl.closeSocket:()V
        11: .line 1680
            goto 121
        12: .line 1687
      StackMap locals:
      StackMap stack:
            goto 121
        13: .line 1697
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            dup
            astore 5
            monitorenter
        14: .line 1698
            aload 0 /* this */
            invokevirtual sun.security.ssl.SSLSocketImpl.getConnectionState:()I
            dup
            istore 2 /* state */
            bipush 6
            if_icmpeq 16
        15: .line 1699
            iload 2 /* state */
            iconst_4
            if_icmpeq 16
            iload 2 /* state */
            bipush 7
            if_icmpne 33
        16: .line 1700
      StackMap locals: sun.security.ssl.SSLSocketImpl
      StackMap stack:
            aload 5
            monitorexit
        17: .line 1759
            aload 0 /* this */
            dup
            astore 8
            monitorenter
        18: .line 1761
            aload 0 /* this */
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.connectionState:I
            bipush 7
            if_icmpne 20
        19: .line 1762
            bipush 7
            goto 21
      StackMap locals: sun.security.ssl.SSLSocketImpl int int int java.lang.Throwable sun.security.ssl.SSLSocketImpl top top sun.security.ssl.SSLSocketImpl
      StackMap stack: sun.security.ssl.SSLSocketImpl
        20: bipush 6
        21: .line 1761
      StackMap locals: sun.security.ssl.SSLSocketImpl int int int java.lang.Throwable sun.security.ssl.SSLSocketImpl top top sun.security.ssl.SSLSocketImpl
      StackMap stack: sun.security.ssl.SSLSocketImpl int
            putfield sun.security.ssl.SSLSocketImpl.connectionState:I
        22: .line 1764
            aload 0 /* this */
            invokevirtual java.lang.Object.notifyAll:()V
        23: .line 1759
            aload 8
            monitorexit
        24: goto 27
      StackMap locals:
      StackMap stack: java.lang.Throwable
        25: aload 8
            monitorexit
        26: athrow
        27: .line 1767
      StackMap locals: sun.security.ssl.SSLSocketImpl int int int java.lang.Throwable sun.security.ssl.SSLSocketImpl
      StackMap stack:
            aload 4 /* cachedThrowable */
            ifnull 32
        28: .line 1772
            aload 4 /* cachedThrowable */
            instanceof java.lang.Error
            ifeq 30
        29: .line 1773
            aload 4 /* cachedThrowable */
            checkcast java.lang.Error
            athrow
        30: .line 1774
      StackMap locals:
      StackMap stack:
            aload 4 /* cachedThrowable */
            instanceof java.lang.RuntimeException
            ifeq 32
        31: .line 1775
            aload 4 /* cachedThrowable */
            checkcast java.lang.RuntimeException
            athrow
      StackMap locals:
      StackMap stack:
        32: return
        33: .line 1702
      StackMap locals:
      StackMap stack:
            iload 2 /* state */
            iconst_5
            if_icmpeq 42
        34: .line 1704
            aload 0 /* this */
            iconst_0
            invokevirtual sun.security.ssl.SSLSocketImpl.warning:(B)V
        35: .line 1705
            aload 0 /* this */
            iconst_5
            putfield sun.security.ssl.SSLSocketImpl.connectionState:I
        36: .line 1706
            goto 42
      StackMap locals:
      StackMap stack: java.lang.Throwable
        37: astore 6 /* th */
        start local 6 // java.lang.Throwable th
        38: .line 1709
            aload 0 /* this */
            iconst_4
            putfield sun.security.ssl.SSLSocketImpl.connectionState:I
        39: .line 1711
            aload 6 /* th */
            astore 4 /* cachedThrowable */
        40: .line 1712
            iconst_1
            istore 3 /* closeSocketCalled */
        41: .line 1713
            aload 0 /* this */
            iload 1 /* selfInitiated */
            invokevirtual sun.security.ssl.SSLSocketImpl.closeSocket:(Z)V
        end local 6 // java.lang.Throwable th
        42: .line 1697
      StackMap locals:
      StackMap stack:
            aload 5
            monitorexit
        43: goto 46
      StackMap locals:
      StackMap stack: java.lang.Throwable
        44: aload 5
            monitorexit
        45: athrow
        46: .line 1719
      StackMap locals:
      StackMap stack:
            iload 2 /* state */
            iconst_5
            if_icmpne 100
        47: .line 1720
            getstatic sun.security.ssl.SSLSocketImpl.debug:Lsun/security/ssl/Debug;
            ifnull 52
            ldc "ssl"
            invokestatic sun.security.ssl.Debug.isOn:(Ljava/lang/String;)Z
            ifeq 52
        48: .line 1721
            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 1722
            ldc ", close invoked again; state = "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        50: .line 1723
            aload 0 /* this */
            invokevirtual sun.security.ssl.SSLSocketImpl.getConnectionState:()I
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        51: .line 1721
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
        52: .line 1725
      StackMap locals:
      StackMap stack:
            iload 1 /* selfInitiated */
            ifne 69
        53: .line 1759
            aload 0 /* this */
            dup
            astore 8
            monitorenter
        54: .line 1761
            aload 0 /* this */
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.connectionState:I
            bipush 7
            if_icmpne 56
        55: .line 1762
            bipush 7
            goto 57
      StackMap locals: sun.security.ssl.SSLSocketImpl int int int java.lang.Throwable top top top sun.security.ssl.SSLSocketImpl
      StackMap stack: sun.security.ssl.SSLSocketImpl
        56: bipush 6
        57: .line 1761
      StackMap locals: sun.security.ssl.SSLSocketImpl int int int java.lang.Throwable top top top sun.security.ssl.SSLSocketImpl
      StackMap stack: sun.security.ssl.SSLSocketImpl int
            putfield sun.security.ssl.SSLSocketImpl.connectionState:I
        58: .line 1764
            aload 0 /* this */
            invokevirtual java.lang.Object.notifyAll:()V
        59: .line 1759
            aload 8
            monitorexit
        60: goto 63
      StackMap locals:
      StackMap stack: java.lang.Throwable
        61: aload 8
            monitorexit
        62: athrow
        63: .line 1767
      StackMap locals: sun.security.ssl.SSLSocketImpl int int int java.lang.Throwable
      StackMap stack:
            aload 4 /* cachedThrowable */
            ifnull 68
        64: .line 1772
            aload 4 /* cachedThrowable */
            instanceof java.lang.Error
            ifeq 66
        65: .line 1773
            aload 4 /* cachedThrowable */
            checkcast java.lang.Error
            athrow
        66: .line 1774
      StackMap locals:
      StackMap stack:
            aload 4 /* cachedThrowable */
            instanceof java.lang.RuntimeException
            ifeq 68
        67: .line 1775
            aload 4 /* cachedThrowable */
            checkcast java.lang.RuntimeException
            athrow
        68: .line 1730
      StackMap locals:
      StackMap stack:
            return
        69: .line 1734
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            dup
            astore 5
            monitorenter
        70: .line 1735
            goto 74
        71: .line 1737
      StackMap locals: sun.security.ssl.SSLSocketImpl
      StackMap stack:
            aload 0 /* this */
            invokevirtual java.lang.Object.wait:()V
        72: .line 1738
            goto 74
      StackMap locals:
      StackMap stack: java.lang.InterruptedException
        73: pop
        74: .line 1735
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.connectionState:I
            bipush 6
            if_icmplt 71
        75: .line 1734
            aload 5
            monitorexit
        76: goto 79
      StackMap locals:
      StackMap stack: java.lang.Throwable
        77: aload 5
            monitorexit
        78: athrow
        79: .line 1743
      StackMap locals:
      StackMap stack:
            getstatic sun.security.ssl.SSLSocketImpl.debug:Lsun/security/ssl/Debug;
            ifnull 84
            ldc "ssl"
            invokestatic sun.security.ssl.Debug.isOn:(Ljava/lang/String;)Z
            ifeq 84
        80: .line 1744
            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
        81: .line 1745
            ldc ", after primary close; state = "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        82: .line 1746
            aload 0 /* this */
            invokevirtual sun.security.ssl.SSLSocketImpl.getConnectionState:()I
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        83: .line 1744
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
        84: .line 1759
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            dup
            astore 8
            monitorenter
        85: .line 1761
            aload 0 /* this */
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.connectionState:I
            bipush 7
            if_icmpne 87
        86: .line 1762
            bipush 7
            goto 88
      StackMap locals: sun.security.ssl.SSLSocketImpl int int int java.lang.Throwable top top top sun.security.ssl.SSLSocketImpl
      StackMap stack: sun.security.ssl.SSLSocketImpl
        87: bipush 6
        88: .line 1761
      StackMap locals: sun.security.ssl.SSLSocketImpl int int int java.lang.Throwable top top top sun.security.ssl.SSLSocketImpl
      StackMap stack: sun.security.ssl.SSLSocketImpl int
            putfield sun.security.ssl.SSLSocketImpl.connectionState:I
        89: .line 1764
            aload 0 /* this */
            invokevirtual java.lang.Object.notifyAll:()V
        90: .line 1759
            aload 8
            monitorexit
        91: goto 94
      StackMap locals:
      StackMap stack: java.lang.Throwable
        92: aload 8
            monitorexit
        93: athrow
        94: .line 1767
      StackMap locals: sun.security.ssl.SSLSocketImpl int int int java.lang.Throwable
      StackMap stack:
            aload 4 /* cachedThrowable */
            ifnull 99
        95: .line 1772
            aload 4 /* cachedThrowable */
            instanceof java.lang.Error
            ifeq 97
        96: .line 1773
            aload 4 /* cachedThrowable */
            checkcast java.lang.Error
            athrow
        97: .line 1774
      StackMap locals:
      StackMap stack:
            aload 4 /* cachedThrowable */
            instanceof java.lang.RuntimeException
            ifeq 99
        98: .line 1775
            aload 4 /* cachedThrowable */
            checkcast java.lang.RuntimeException
            athrow
        99: .line 1748
      StackMap locals:
      StackMap stack:
            return
       100: .line 1751
      StackMap locals:
      StackMap stack:
            iload 3 /* closeSocketCalled */
            ifne 121
       101: .line 1752
            iconst_1
            istore 3 /* closeSocketCalled */
       102: .line 1753
            aload 0 /* this */
            iload 1 /* selfInitiated */
            invokevirtual sun.security.ssl.SSLSocketImpl.closeSocket:(Z)V
       103: .line 1758
            goto 121
      StackMap locals:
      StackMap stack: java.lang.Throwable
       104: astore 7
       105: .line 1759
            aload 0 /* this */
            dup
            astore 8
            monitorenter
       106: .line 1761
            aload 0 /* this */
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.connectionState:I
            bipush 7
            if_icmpne 108
       107: .line 1762
            bipush 7
            goto 109
      StackMap locals: sun.security.ssl.SSLSocketImpl int int int java.lang.Throwable top top java.lang.Throwable sun.security.ssl.SSLSocketImpl
      StackMap stack: sun.security.ssl.SSLSocketImpl
       108: bipush 6
       109: .line 1761
      StackMap locals: sun.security.ssl.SSLSocketImpl int int int java.lang.Throwable top top java.lang.Throwable sun.security.ssl.SSLSocketImpl
      StackMap stack: sun.security.ssl.SSLSocketImpl int
            putfield sun.security.ssl.SSLSocketImpl.connectionState:I
       110: .line 1764
            aload 0 /* this */
            invokevirtual java.lang.Object.notifyAll:()V
       111: .line 1759
            aload 8
            monitorexit
       112: goto 115
      StackMap locals:
      StackMap stack: java.lang.Throwable
       113: aload 8
            monitorexit
       114: athrow
       115: .line 1767
      StackMap locals:
      StackMap stack:
            aload 4 /* cachedThrowable */
            ifnull 120
       116: .line 1772
            aload 4 /* cachedThrowable */
            instanceof java.lang.Error
            ifeq 118
       117: .line 1773
            aload 4 /* cachedThrowable */
            checkcast java.lang.Error
            athrow
       118: .line 1774
      StackMap locals:
      StackMap stack:
            aload 4 /* cachedThrowable */
            instanceof java.lang.RuntimeException
            ifeq 120
       119: .line 1775
            aload 4 /* cachedThrowable */
            checkcast java.lang.RuntimeException
            athrow
       120: .line 1778
      StackMap locals:
      StackMap stack:
            aload 7
            athrow
       121: .line 1759
      StackMap locals: sun.security.ssl.SSLSocketImpl int int int java.lang.Throwable
      StackMap stack:
            aload 0 /* this */
            dup
            astore 8
            monitorenter
       122: .line 1761
            aload 0 /* this */
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.connectionState:I
            bipush 7
            if_icmpne 124
       123: .line 1762
            bipush 7
            goto 125
      StackMap locals: sun.security.ssl.SSLSocketImpl int int int java.lang.Throwable top top top sun.security.ssl.SSLSocketImpl
      StackMap stack: sun.security.ssl.SSLSocketImpl
       124: bipush 6
       125: .line 1761
      StackMap locals: sun.security.ssl.SSLSocketImpl int int int java.lang.Throwable top top top sun.security.ssl.SSLSocketImpl
      StackMap stack: sun.security.ssl.SSLSocketImpl int
            putfield sun.security.ssl.SSLSocketImpl.connectionState:I
       126: .line 1764
            aload 0 /* this */
            invokevirtual java.lang.Object.notifyAll:()V
       127: .line 1759
            aload 8
            monitorexit
       128: goto 131
      StackMap locals:
      StackMap stack: java.lang.Throwable
       129: aload 8
            monitorexit
       130: athrow
       131: .line 1767
      StackMap locals: sun.security.ssl.SSLSocketImpl int int int java.lang.Throwable
      StackMap stack:
            aload 4 /* cachedThrowable */
            ifnull 136
       132: .line 1772
            aload 4 /* cachedThrowable */
            instanceof java.lang.Error
            ifeq 134
       133: .line 1773
            aload 4 /* cachedThrowable */
            checkcast java.lang.Error
            athrow
       134: .line 1774
      StackMap locals:
      StackMap stack:
            aload 4 /* cachedThrowable */
            instanceof java.lang.RuntimeException
            ifeq 136
       135: .line 1775
            aload 4 /* cachedThrowable */
            checkcast java.lang.RuntimeException
            athrow
       136: .line 1779
      StackMap locals:
      StackMap stack:
            return
        end local 4 // java.lang.Throwable cachedThrowable
        end local 3 // boolean closeSocketCalled
        end local 2 // int state
        end local 1 // boolean selfInitiated
        end local 0 // sun.security.ssl.SSLSocketImpl this
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0  137     0               this  Lsun/security/ssl/SSLSocketImpl;
            0  137     1      selfInitiated  Z
            5  137     2              state  I
            6  137     3  closeSocketCalled  Z
            7  137     4    cachedThrowable  Ljava/lang/Throwable;
           38   42     6                 th  Ljava/lang/Throwable;
      Exception table:
        from    to  target  type
          18    24      25  any
          25    26      25  any
          34    36      37  Class java.lang.Throwable
          14    17      44  any
          33    43      44  any
          44    45      44  any
          54    60      61  any
          61    62      61  any
          71    72      73  Class java.lang.InterruptedException
          70    76      77  any
          77    78      77  any
          85    91      92  any
          92    93      92  any
           7    17     104  any
          33    53     104  any
          69    84     104  any
         100   104     104  any
         106   112     113  any
         113   114     113  any
         122   128     129  any
         129   130     129  any
    Exceptions:
      throws java.io.IOException
    MethodParameters:
               Name  Flags
      selfInitiated  

  void waitForClose(boolean);
    descriptor: (Z)V
    flags: (0x0000) 
    Code:
      stack=4, locals=4, args_size=2
        start local 0 // sun.security.ssl.SSLSocketImpl this
        start local 1 // boolean rethrow
         0: .line 1789
            getstatic sun.security.ssl.SSLSocketImpl.debug:Lsun/security/ssl/Debug;
            ifnull 16
            ldc "ssl"
            invokestatic sun.security.ssl.Debug.isOn:(Ljava/lang/String;)Z
            ifeq 16
         1: .line 1790
            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 1791
            ldc ", waiting for close_notify or alert: state "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
         3: .line 1792
            aload 0 /* this */
            invokevirtual sun.security.ssl.SSLSocketImpl.getConnectionState:()I
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
         4: .line 1790
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
         5: .line 1798
            goto 16
        start local 2 // int state
         6: .line 1803
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            iconst_1
            invokevirtual sun.security.ssl.SSLSocketImpl.readRecord:(Z)I
            pop
         7: .line 1804
            goto 16
      StackMap locals:
      StackMap stack: java.net.SocketTimeoutException
         8: astore 3 /* e */
        start local 3 // java.net.SocketTimeoutException e
         9: .line 1805
            getstatic sun.security.ssl.SSLSocketImpl.debug:Lsun/security/ssl/Debug;
            ifnull 15
            ldc "ssl"
            invokestatic sun.security.ssl.Debug.isOn:(Ljava/lang/String;)Z
            ifeq 15
        10: .line 1806
            getstatic java.lang.System.out:Ljava/io/PrintStream;
        11: .line 1807
            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
        12: .line 1808
            ldc ", received Exception: "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 3 /* e */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
        13: .line 1807
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        14: .line 1806
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
        15: .line 1810
      StackMap locals: java.net.SocketTimeoutException
      StackMap stack:
            aload 0 /* this */
            iconst_m1
            ldc "Did not receive close_notify from peer"
            aload 3 /* e */
            invokevirtual sun.security.ssl.SSLSocketImpl.fatal:(BLjava/lang/String;Ljava/lang/Throwable;)V
        end local 3 // java.net.SocketTimeoutException e
        end local 2 // int state
        16: .line 1798
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual sun.security.ssl.SSLSocketImpl.getConnectionState:()I
            dup
            istore 2 /* state */
        start local 2 // int state
        17: bipush 6
            if_icmpeq 27
        18: .line 1799
            iload 2 /* state */
            iconst_4
            if_icmpeq 27
            iload 2 /* state */
            bipush 7
            if_icmpne 6
        end local 2 // int state
        19: .line 1813
            goto 27
      StackMap locals:
      StackMap stack: java.io.IOException
        20: astore 2 /* e */
        start local 2 // java.io.IOException e
        21: .line 1814
            getstatic sun.security.ssl.SSLSocketImpl.debug:Lsun/security/ssl/Debug;
            ifnull 25
            ldc "ssl"
            invokestatic sun.security.ssl.Debug.isOn:(Ljava/lang/String;)Z
            ifeq 25
        22: .line 1815
            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
        23: .line 1816
            ldc ", Exception while waiting for close "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 2 /* e */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        24: .line 1815
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
        25: .line 1818
      StackMap locals: java.io.IOException
      StackMap stack:
            iload 1 /* rethrow */
            ifeq 27
        26: .line 1819
            aload 2 /* e */
            athrow
        end local 2 // java.io.IOException e
        27: .line 1822
      StackMap locals:
      StackMap stack:
            return
        end local 1 // boolean rethrow
        end local 0 // sun.security.ssl.SSLSocketImpl this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   28     0     this  Lsun/security/ssl/SSLSocketImpl;
            0   28     1  rethrow  Z
            6   16     2    state  I
           17   19     2    state  I
            9   16     3        e  Ljava/net/SocketTimeoutException;
           21   27     2        e  Ljava/io/IOException;
      Exception table:
        from    to  target  type
           6     7       8  Class java.net.SocketTimeoutException
           5    19      20  Class java.io.IOException
    Exceptions:
      throws java.io.IOException
    MethodParameters:
         Name  Flags
      rethrow  

  void handleException(java.lang.Exception);
    descriptor: (Ljava/lang/Exception;)V
    flags: (0x0000) 
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // sun.security.ssl.SSLSocketImpl this
        start local 1 // java.lang.Exception e
         0: .line 1835
            aload 0 /* this */
            aload 1 /* e */
            iconst_1
            invokevirtual sun.security.ssl.SSLSocketImpl.handleException:(Ljava/lang/Exception;Z)V
         1: .line 1836
            return
        end local 1 // java.lang.Exception e
        end local 0 // sun.security.ssl.SSLSocketImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lsun/security/ssl/SSLSocketImpl;
            0    2     1     e  Ljava/lang/Exception;
    Exceptions:
      throws java.io.IOException
    MethodParameters:
      Name  Flags
      e     

  private synchronized void handleException(java.lang.Exception, boolean);
    descriptor: (Ljava/lang/Exception;Z)V
    flags: (0x0022) ACC_PRIVATE, ACC_SYNCHRONIZED
    Code:
      stack=4, locals=5, args_size=3
        start local 0 // sun.security.ssl.SSLSocketImpl this
        start local 1 // java.lang.Exception e
        start local 2 // boolean resumable
         0: .line 1858
            getstatic sun.security.ssl.SSLSocketImpl.debug:Lsun/security/ssl/Debug;
            ifnull 4
            ldc "ssl"
            invokestatic sun.security.ssl.Debug.isOn:(Ljava/lang/String;)Z
            ifeq 4
         1: .line 1859
            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 1860
            ldc ", handling exception: "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 1 /* e */
            invokevirtual java.lang.Exception.toString:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
         3: .line 1859
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
         4: .line 1865
      StackMap locals:
      StackMap stack:
            aload 1 /* e */
            instanceof java.io.InterruptedIOException
            ifeq 6
            iload 2 /* resumable */
            ifeq 6
         5: .line 1866
            aload 1 /* e */
            checkcast java.io.IOException
            athrow
         6: .line 1871
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.closeReason:Ljavax/net/ssl/SSLException;
            ifnull 12
         7: .line 1872
            aload 1 /* e */
            instanceof java.io.IOException
            ifeq 9
         8: .line 1873
            aload 1 /* e */
            checkcast java.io.IOException
            athrow
         9: .line 1878
      StackMap locals:
      StackMap stack:
            bipush 80
            aload 1 /* e */
        10: .line 1879
            ldc "Unexpected exception"
        11: .line 1878
            invokestatic sun.security.ssl.Alerts.getSSLException:(BLjava/lang/Throwable;Ljava/lang/String;)Ljavax/net/ssl/SSLException;
            athrow
        12: .line 1884
      StackMap locals:
      StackMap stack:
            aload 1 /* e */
            instanceof javax.net.ssl.SSLException
            istore 3 /* isSSLException */
        start local 3 // boolean isSSLException
        13: .line 1885
            iload 3 /* isSSLException */
            ifne 18
            aload 1 /* e */
            instanceof java.io.IOException
            ifeq 18
        14: .line 1890
            aload 0 /* this */
            bipush 10
            aload 1 /* e */
            invokevirtual sun.security.ssl.SSLSocketImpl.fatal:(BLjava/lang/Throwable;)V
        15: .line 1891
            goto 17
      StackMap locals: sun.security.ssl.SSLSocketImpl java.lang.Exception int int
      StackMap stack: java.io.IOException
        16: pop
        17: .line 1895
      StackMap locals:
      StackMap stack:
            aload 1 /* e */
            checkcast java.io.IOException
            athrow
        18: .line 1900
      StackMap locals:
      StackMap stack:
            iload 3 /* isSSLException */
            ifeq 24
        19: .line 1901
            aload 1 /* e */
            instanceof javax.net.ssl.SSLHandshakeException
            ifeq 22
        20: .line 1902
            bipush 40
            istore 4 /* alertType */
        start local 4 // byte alertType
        21: .line 1903
            goto 25
        end local 4 // byte alertType
        22: .line 1904
      StackMap locals:
      StackMap stack:
            bipush 10
            istore 4 /* alertType */
        start local 4 // byte alertType
        23: .line 1906
            goto 25
        end local 4 // byte alertType
        24: .line 1907
      StackMap locals:
      StackMap stack:
            bipush 80
            istore 4 /* alertType */
        start local 4 // byte alertType
        25: .line 1909
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            iload 4 /* alertType */
            aload 1 /* e */
            invokevirtual sun.security.ssl.SSLSocketImpl.fatal:(BLjava/lang/Throwable;)V
        26: .line 1910
            return
        end local 4 // byte alertType
        end local 3 // boolean isSSLException
        end local 2 // boolean resumable
        end local 1 // java.lang.Exception e
        end local 0 // sun.security.ssl.SSLSocketImpl this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   27     0            this  Lsun/security/ssl/SSLSocketImpl;
            0   27     1               e  Ljava/lang/Exception;
            0   27     2       resumable  Z
           13   27     3  isSSLException  Z
           21   22     4       alertType  B
           23   24     4       alertType  B
           25   27     4       alertType  B
      Exception table:
        from    to  target  type
          14    15      16  Class java.io.IOException
    Exceptions:
      throws java.io.IOException
    MethodParameters:
           Name  Flags
      e          
      resumable  

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

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

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

  synchronized void fatal(byte, java.lang.String, java.lang.Throwable);
    descriptor: (BLjava/lang/String;Ljava/lang/Throwable;)V
    flags: (0x0020) ACC_SYNCHRONIZED
    Code:
      stack=4, locals=5, args_size=4
        start local 0 // sun.security.ssl.SSLSocketImpl this
        start local 1 // byte description
        start local 2 // java.lang.String diagnostic
        start local 3 // java.lang.Throwable cause
         0: .line 1938
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.inputRecord:Lsun/security/ssl/InputRecord;
            invokevirtual sun.security.ssl.InputRecord.close:()V
         1: .line 1939
            goto 3
      StackMap locals:
      StackMap stack: java.io.IOException
         2: pop
         3: .line 1943
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.sess:Lsun/security/ssl/SSLSessionImpl;
            invokevirtual sun.security.ssl.SSLSessionImpl.invalidate:()V
         4: .line 1944
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.handshakeSession:Lsun/security/ssl/SSLSessionImpl;
            ifnull 6
         5: .line 1945
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.handshakeSession:Lsun/security/ssl/SSLSessionImpl;
            invokevirtual sun.security.ssl.SSLSessionImpl.invalidate:()V
         6: .line 1948
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.connectionState:I
            istore 4 /* oldState */
        start local 4 // int oldState
         7: .line 1949
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.connectionState:I
            iconst_4
            if_icmpge 9
         8: .line 1950
            aload 0 /* this */
            iconst_4
            putfield sun.security.ssl.SSLSocketImpl.connectionState:I
         9: .line 1958
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.closeReason:Ljavax/net/ssl/SSLException;
            ifnonnull 20
        10: .line 1962
            iload 4 /* oldState */
            iconst_1
            if_icmpne 12
        11: .line 1963
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.sockInput:Ljava/io/InputStream;
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.sockInput:Ljava/io/InputStream;
            invokevirtual java.io.InputStream.available:()I
            i2l
            invokevirtual java.io.InputStream.skip:(J)J
            pop2
        12: .line 1967
      StackMap locals:
      StackMap stack:
            iload 1 /* description */
            iconst_m1
            if_icmpeq 14
        13: .line 1968
            aload 0 /* this */
            iconst_2
            iload 1 /* description */
            invokevirtual sun.security.ssl.SSLSocketImpl.sendAlert:(BB)V
        14: .line 1970
      StackMap locals:
      StackMap stack:
            aload 3 /* cause */
            instanceof javax.net.ssl.SSLException
            ifeq 17
        15: .line 1971
            aload 0 /* this */
            aload 3 /* cause */
            checkcast javax.net.ssl.SSLException
            putfield sun.security.ssl.SSLSocketImpl.closeReason:Ljavax/net/ssl/SSLException;
        16: .line 1972
            goto 20
        17: .line 1973
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
        18: .line 1974
            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;
        19: .line 1973
            putfield sun.security.ssl.SSLSocketImpl.closeReason:Ljavax/net/ssl/SSLException;
        20: .line 1981
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual sun.security.ssl.SSLSocketImpl.closeSocket:()V
        21: .line 1985
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.outputRecord:Lsun/security/ssl/OutputRecord;
            invokevirtual sun.security.ssl.OutputRecord.close:()V
        22: .line 1986
            goto 24
      StackMap locals:
      StackMap stack: java.io.IOException
        23: pop
        24: .line 1990
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.closeReason:Ljavax/net/ssl/SSLException;
            athrow
        end local 4 // int oldState
        end local 3 // java.lang.Throwable cause
        end local 2 // java.lang.String diagnostic
        end local 1 // byte description
        end local 0 // sun.security.ssl.SSLSocketImpl this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   25     0         this  Lsun/security/ssl/SSLSocketImpl;
            0   25     1  description  B
            0   25     2   diagnostic  Ljava/lang/String;
            0   25     3        cause  Ljava/lang/Throwable;
            7   25     4     oldState  I
      Exception table:
        from    to  target  type
           0     1       2  Class java.io.IOException
          21    22      23  Class java.io.IOException
    Exceptions:
      throws java.io.IOException
    MethodParameters:
             Name  Flags
      description  
      diagnostic   
      cause        

  private void recvAlert(java.nio.ByteBuffer);
    descriptor: (Ljava/nio/ByteBuffer;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=5, args_size=2
        start local 0 // sun.security.ssl.SSLSocketImpl this
        start local 1 // java.nio.ByteBuffer fragment
         0: .line 1999
            aload 1 /* fragment */
            invokevirtual java.nio.ByteBuffer.get:()B
            istore 2 /* level */
        start local 2 // byte level
         1: .line 2000
            aload 1 /* fragment */
            invokevirtual java.nio.ByteBuffer.get:()B
            istore 3 /* description */
        start local 3 // byte description
         2: .line 2002
            iload 3 /* description */
            iconst_m1
            if_icmpne 4
         3: .line 2003
            aload 0 /* this */
            bipush 47
            ldc "Short alert message"
            invokevirtual sun.security.ssl.SSLSocketImpl.fatal:(BLjava/lang/String;)V
         4: .line 2006
      StackMap locals: int int
      StackMap stack:
            getstatic sun.security.ssl.SSLSocketImpl.debug:Lsun/security/ssl/Debug;
            ifnull 21
            ldc "record"
            invokestatic sun.security.ssl.Debug.isOn:(Ljava/lang/String;)Z
            ifne 6
         5: .line 2007
            ldc "handshake"
            invokestatic sun.security.ssl.Debug.isOn:(Ljava/lang/String;)Z
            ifeq 21
         6: .line 2008
      StackMap locals:
      StackMap stack:
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            dup
            astore 4
            monitorenter
         7: .line 2009
            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
         8: .line 2010
            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.SSLSocketImpl.protocolVersion:Lsun/security/ssl/ProtocolVersion;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            ldc " ALERT:  "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual java.io.PrintStream.print:(Ljava/lang/String;)V
         9: .line 2011
            iload 2 /* level */
            iconst_2
            if_icmpne 12
        10: .line 2012
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            ldc "fatal, "
            invokevirtual java.io.PrintStream.print:(Ljava/lang/String;)V
        11: .line 2013
            goto 16
      StackMap locals: java.io.PrintStream
      StackMap stack:
        12: iload 2 /* level */
            iconst_1
            if_icmpne 15
        13: .line 2014
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            ldc "warning, "
            invokevirtual java.io.PrintStream.print:(Ljava/lang/String;)V
        14: .line 2015
            goto 16
        15: .line 2016
      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
        16: .line 2018
      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
        17: .line 2008
            aload 4
            monitorexit
        18: goto 21
      StackMap locals:
      StackMap stack: java.lang.Throwable
        19: aload 4
            monitorexit
        20: athrow
        21: .line 2022
      StackMap locals:
      StackMap stack:
            iload 2 /* level */
            iconst_1
            if_icmpne 33
        22: .line 2023
            iload 3 /* description */
            ifne 30
        23: .line 2024
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.connectionState:I
            iconst_1
            if_icmpne 28
        24: .line 2025
            aload 0 /* this */
            bipush 10
        25: .line 2026
            ldc "Received close_notify during handshake"
        26: .line 2025
            invokevirtual sun.security.ssl.SSLSocketImpl.fatal:(BLjava/lang/String;)V
        27: .line 2027
            goto 39
        28: .line 2028
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iconst_0
            invokevirtual sun.security.ssl.SSLSocketImpl.closeInternal:(Z)V
        29: .line 2030
            goto 39
        30: .line 2038
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.handshaker:Lsun/security/ssl/Handshaker;
            ifnull 39
        31: .line 2039
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.handshaker:Lsun/security/ssl/Handshaker;
            iload 3 /* description */
            invokevirtual sun.security.ssl.Handshaker.handshakeAlert:(B)V
        32: .line 2042
            goto 39
        33: .line 2043
      StackMap locals:
      StackMap stack:
            new java.lang.StringBuilder
            dup
            ldc "Received fatal alert: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
        34: .line 2044
            iload 3 /* description */
            invokestatic sun.security.ssl.Alerts.alertDescription:(B)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        35: .line 2043
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 4 /* reason */
        start local 4 // java.lang.String reason
        36: .line 2045
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.closeReason:Ljavax/net/ssl/SSLException;
            ifnonnull 38
        37: .line 2046
            aload 0 /* this */
            iload 3 /* description */
            aload 4 /* reason */
            invokestatic sun.security.ssl.Alerts.getSSLException:(BLjava/lang/String;)Ljavax/net/ssl/SSLException;
            putfield sun.security.ssl.SSLSocketImpl.closeReason:Ljavax/net/ssl/SSLException;
        38: .line 2048
      StackMap locals: java.lang.String
      StackMap stack:
            aload 0 /* this */
            bipush 10
            aload 4 /* reason */
            invokevirtual sun.security.ssl.SSLSocketImpl.fatal:(BLjava/lang/String;)V
        end local 4 // java.lang.String reason
        39: .line 2050
      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.SSLSocketImpl this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   40     0         this  Lsun/security/ssl/SSLSocketImpl;
            0   40     1     fragment  Ljava/nio/ByteBuffer;
            1   40     2        level  B
            2   40     3  description  B
           36   39     4       reason  Ljava/lang/String;
      Exception table:
        from    to  target  type
           7    18      19  any
          19    20      19  any
    Exceptions:
      throws java.io.IOException
    MethodParameters:
          Name  Flags
      fragment  

  private void sendAlert(byte, byte);
    descriptor: (BB)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=5, args_size=3
        start local 0 // sun.security.ssl.SSLSocketImpl this
        start local 1 // byte level
        start local 2 // byte description
         0: .line 2058
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.connectionState:I
            iconst_5
            if_icmplt 2
         1: .line 2059
            return
         2: .line 2066
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.connectionState:I
            iconst_1
            if_icmpgt 6
         3: .line 2067
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.handshaker:Lsun/security/ssl/Handshaker;
            ifnull 5
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.handshaker:Lsun/security/ssl/Handshaker;
            invokevirtual sun.security.ssl.Handshaker.started:()Z
            ifeq 5
         4: .line 2068
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.handshaker:Lsun/security/ssl/Handshaker;
            invokevirtual sun.security.ssl.Handshaker.activated:()Z
            ifne 6
         5: .line 2069
      StackMap locals:
      StackMap stack:
            return
         6: .line 2072
      StackMap locals:
      StackMap stack:
            getstatic sun.security.ssl.SSLSocketImpl.debug:Lsun/security/ssl/Debug;
            ifnull 7
            ldc "ssl"
            invokestatic sun.security.ssl.Debug.isOn:(Ljava/lang/String;)Z
            ifeq 7
            iconst_1
            goto 8
      StackMap locals:
      StackMap stack:
         7: iconst_0
      StackMap locals:
      StackMap stack: int
         8: istore 3 /* useDebug */
        start local 3 // boolean useDebug
         9: .line 2073
            iload 3 /* useDebug */
            ifeq 27
        10: .line 2074
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            dup
            astore 4
            monitorenter
        11: .line 2075
            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
        12: .line 2076
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            new java.lang.StringBuilder
            dup
            ldc ", SEND "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.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
        13: .line 2077
            iload 1 /* level */
            iconst_2
            if_icmpne 16
        14: .line 2078
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            ldc "fatal, "
            invokevirtual java.io.PrintStream.print:(Ljava/lang/String;)V
        15: .line 2079
            goto 20
      StackMap locals: int java.io.PrintStream
      StackMap stack:
        16: iload 1 /* level */
            iconst_1
            if_icmpne 19
        17: .line 2080
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            ldc "warning, "
            invokevirtual java.io.PrintStream.print:(Ljava/lang/String;)V
        18: .line 2081
            goto 20
        19: .line 2082
      StackMap locals:
      StackMap stack:
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            new java.lang.StringBuilder
            dup
            ldc "<level = "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            sipush 255
            iload 1 /* level */
            iand
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            ldc ">, "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual java.io.PrintStream.print:(Ljava/lang/String;)V
        20: .line 2084
      StackMap locals:
      StackMap stack:
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            new java.lang.StringBuilder
            dup
            ldc "description = "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
        21: .line 2085
            iload 2 /* description */
            invokestatic sun.security.ssl.Alerts.alertDescription:(B)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        22: .line 2084
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
        23: .line 2074
            aload 4
            monitorexit
        24: goto 27
      StackMap locals:
      StackMap stack: java.lang.Throwable
        25: aload 4
            monitorexit
        26: athrow
        27: .line 2090
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iload 1 /* level */
            iload 2 /* description */
            invokevirtual sun.security.ssl.SSLSocketImpl.writeAlert:(BB)V
        28: .line 2091
            goto 34
      StackMap locals:
      StackMap stack: java.io.IOException
        29: astore 4 /* e */
        start local 4 // java.io.IOException e
        30: .line 2092
            iload 3 /* useDebug */
            ifeq 34
        31: .line 2093
            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
        32: .line 2094
            ldc ", Exception sending alert: "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 4 /* e */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        33: .line 2093
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
        end local 4 // java.io.IOException e
        34: .line 2097
      StackMap locals:
      StackMap stack:
            return
        end local 3 // boolean useDebug
        end local 2 // byte description
        end local 1 // byte level
        end local 0 // sun.security.ssl.SSLSocketImpl this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   35     0         this  Lsun/security/ssl/SSLSocketImpl;
            0   35     1        level  B
            0   35     2  description  B
            9   35     3     useDebug  Z
           30   34     4            e  Ljava/io/IOException;
      Exception table:
        from    to  target  type
          11    24      25  any
          25    26      25  any
          27    28      29  Class java.io.IOException
    MethodParameters:
             Name  Flags
      level        
      description  

  void changeWriteCiphers();
    descriptor: ()V
    flags: (0x0000) 
    Code:
      stack=4, locals=4, args_size=1
        start local 0 // sun.security.ssl.SSLSocketImpl this
         0: .line 2108
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.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 2109
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.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 2110
            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 2112
            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 2114
      StackMap locals: sun.security.ssl.Authenticator sun.security.ssl.CipherBox
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.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 2115
            return
        end local 2 // sun.security.ssl.CipherBox writeCipher
        end local 1 // sun.security.ssl.Authenticator writeAuthenticator
        end local 0 // sun.security.ssl.SSLSocketImpl this
      LocalVariableTable:
        Start  End  Slot                Name  Signature
            0    7     0                this  Lsun/security/ssl/SSLSocketImpl;
            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.SSLSocketImpl this
        start local 1 // sun.security.ssl.ProtocolVersion protocolVersion
         0: .line 2122
            aload 0 /* this */
            aload 1 /* protocolVersion */
            putfield sun.security.ssl.SSLSocketImpl.protocolVersion:Lsun/security/ssl/ProtocolVersion;
         1: .line 2123
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.outputRecord:Lsun/security/ssl/OutputRecord;
            aload 1 /* protocolVersion */
            invokevirtual sun.security.ssl.OutputRecord.setVersion:(Lsun/security/ssl/ProtocolVersion;)V
         2: .line 2124
            return
        end local 1 // sun.security.ssl.ProtocolVersion protocolVersion
        end local 0 // sun.security.ssl.SSLSocketImpl this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0    3     0             this  Lsun/security/ssl/SSLSocketImpl;
            0    3     1  protocolVersion  Lsun/security/ssl/ProtocolVersion;
    MethodParameters:
                 Name  Flags
      protocolVersion  

  synchronized java.lang.String getHost();
    descriptor: ()Ljava/lang/String;
    flags: (0x0020) ACC_SYNCHRONIZED
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // sun.security.ssl.SSLSocketImpl this
         0: .line 2131
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.host:Ljava/lang/String;
            ifnull 1
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.host:Ljava/lang/String;
            invokevirtual java.lang.String.length:()I
            ifne 2
         1: .line 2132
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iconst_1
            invokevirtual sun.security.ssl.SSLSocketImpl.useImplicitHost:(Z)V
         2: .line 2135
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.host:Ljava/lang/String;
            areturn
        end local 0 // sun.security.ssl.SSLSocketImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lsun/security/ssl/SSLSocketImpl;

  private synchronized void useImplicitHost(boolean);
    descriptor: (Z)V
    flags: (0x0022) ACC_PRIVATE, ACC_SYNCHRONIZED
    Code:
      stack=3, locals=5, args_size=2
        start local 0 // sun.security.ssl.SSLSocketImpl this
        start local 1 // boolean noSniUpdate
         0: .line 2149
            aload 0 /* this */
            invokevirtual sun.security.ssl.SSLSocketImpl.getInetAddress:()Ljava/net/InetAddress;
            astore 2 /* inetAddress */
        start local 2 // java.net.InetAddress inetAddress
         1: .line 2150
            aload 2 /* inetAddress */
            ifnonnull 3
         2: .line 2151
            return
         3: .line 2155
      StackMap locals: java.net.InetAddress
      StackMap stack:
            invokestatic jdk.internal.misc.SharedSecrets.getJavaNetInetAddressAccess:()Ljdk/internal/misc/JavaNetInetAddressAccess;
         4: .line 2154
            astore 3 /* jna */
        start local 3 // jdk.internal.misc.JavaNetInetAddressAccess jna
         5: .line 2156
            aload 3 /* jna */
            aload 2 /* inetAddress */
            invokeinterface jdk.internal.misc.JavaNetInetAddressAccess.getOriginalHostName:(Ljava/net/InetAddress;)Ljava/lang/String;
            astore 4 /* originalHostname */
        start local 4 // java.lang.String originalHostname
         6: .line 2157
            aload 4 /* originalHostname */
            ifnull 17
         7: .line 2158
            aload 4 /* originalHostname */
            invokevirtual java.lang.String.length:()I
            ifeq 17
         8: .line 2160
            aload 0 /* this */
            aload 4 /* originalHostname */
            putfield sun.security.ssl.SSLSocketImpl.host:Ljava/lang/String;
         9: .line 2161
            iload 1 /* noSniUpdate */
            ifne 16
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.serverNames:Ljava/util/List;
            invokeinterface java.util.List.isEmpty:()Z
            ifeq 16
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.noSniExtension:Z
            ifne 16
        10: .line 2162
            aload 0 /* this */
        11: .line 2163
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.serverNames:Ljava/util/List;
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.host:Ljava/lang/String;
            invokestatic sun.security.ssl.Utilities.addToSNIServerNameList:(Ljava/util/List;Ljava/lang/String;)Ljava/util/List;
        12: .line 2162
            putfield sun.security.ssl.SSLSocketImpl.serverNames:Ljava/util/List;
        13: .line 2165
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.roleIsServer:Z
            ifne 16
        14: .line 2166
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.handshaker:Lsun/security/ssl/Handshaker;
            ifnull 16
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.handshaker:Lsun/security/ssl/Handshaker;
            invokevirtual sun.security.ssl.Handshaker.activated:()Z
            ifne 16
        15: .line 2167
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.handshaker:Lsun/security/ssl/Handshaker;
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.serverNames:Ljava/util/List;
            invokevirtual sun.security.ssl.Handshaker.setSNIServerNames:(Ljava/util/List;)V
        16: .line 2171
      StackMap locals: jdk.internal.misc.JavaNetInetAddressAccess java.lang.String
      StackMap stack:
            return
        17: .line 2175
      StackMap locals:
      StackMap stack:
            getstatic sun.security.ssl.SSLSocketImpl.trustNameService:Z
            ifne 20
        18: .line 2177
            aload 0 /* this */
            aload 2 /* inetAddress */
            invokevirtual java.net.InetAddress.getHostAddress:()Ljava/lang/String;
            putfield sun.security.ssl.SSLSocketImpl.host:Ljava/lang/String;
        19: .line 2178
            goto 21
        20: .line 2180
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 0 /* this */
            invokevirtual sun.security.ssl.SSLSocketImpl.getInetAddress:()Ljava/net/InetAddress;
            invokevirtual java.net.InetAddress.getHostName:()Ljava/lang/String;
            putfield sun.security.ssl.SSLSocketImpl.host:Ljava/lang/String;
        21: .line 2182
      StackMap locals:
      StackMap stack:
            return
        end local 4 // java.lang.String originalHostname
        end local 3 // jdk.internal.misc.JavaNetInetAddressAccess jna
        end local 2 // java.net.InetAddress inetAddress
        end local 1 // boolean noSniUpdate
        end local 0 // sun.security.ssl.SSLSocketImpl this
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0   22     0              this  Lsun/security/ssl/SSLSocketImpl;
            0   22     1       noSniUpdate  Z
            1   22     2       inetAddress  Ljava/net/InetAddress;
            5   22     3               jna  Ljdk/internal/misc/JavaNetInetAddressAccess;
            6   22     4  originalHostname  Ljava/lang/String;
    MethodParameters:
             Name  Flags
      noSniUpdate  

  public synchronized void setHost(java.lang.String);
    descriptor: (Ljava/lang/String;)V
    flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // sun.security.ssl.SSLSocketImpl this
        start local 1 // java.lang.String host
         0: .line 2190
            aload 0 /* this */
            aload 1 /* host */
            putfield sun.security.ssl.SSLSocketImpl.host:Ljava/lang/String;
         1: .line 2191
            aload 0 /* this */
         2: .line 2192
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.serverNames:Ljava/util/List;
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.host:Ljava/lang/String;
            invokestatic sun.security.ssl.Utilities.addToSNIServerNameList:(Ljava/util/List;Ljava/lang/String;)Ljava/util/List;
         3: .line 2191
            putfield sun.security.ssl.SSLSocketImpl.serverNames:Ljava/util/List;
         4: .line 2194
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.roleIsServer:Z
            ifne 6
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.handshaker:Lsun/security/ssl/Handshaker;
            ifnull 6
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.handshaker:Lsun/security/ssl/Handshaker;
            invokevirtual sun.security.ssl.Handshaker.activated:()Z
            ifne 6
         5: .line 2195
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.handshaker:Lsun/security/ssl/Handshaker;
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.serverNames:Ljava/util/List;
            invokevirtual sun.security.ssl.Handshaker.setSNIServerNames:(Ljava/util/List;)V
         6: .line 2197
      StackMap locals:
      StackMap stack:
            return
        end local 1 // java.lang.String host
        end local 0 // sun.security.ssl.SSLSocketImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    7     0  this  Lsun/security/ssl/SSLSocketImpl;
            0    7     1  host  Ljava/lang/String;
    MethodParameters:
      Name  Flags
      host  

  public synchronized java.io.InputStream getInputStream();
    descriptor: ()Ljava/io/InputStream;
    flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // sun.security.ssl.SSLSocketImpl this
         0: .line 2206
            aload 0 /* this */
            invokevirtual sun.security.ssl.SSLSocketImpl.isClosed:()Z
            ifeq 2
         1: .line 2207
            new java.net.SocketException
            dup
            ldc "Socket is closed"
            invokespecial java.net.SocketException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 2214
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.connectionState:I
            ifne 4
         3: .line 2215
            new java.net.SocketException
            dup
            ldc "Socket is not connected"
            invokespecial java.net.SocketException.<init>:(Ljava/lang/String;)V
            athrow
         4: .line 2218
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.input:Lsun/security/ssl/AppInputStream;
            areturn
        end local 0 // sun.security.ssl.SSLSocketImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0  this  Lsun/security/ssl/SSLSocketImpl;
    Exceptions:
      throws java.io.IOException

  public synchronized java.io.OutputStream getOutputStream();
    descriptor: ()Ljava/io/OutputStream;
    flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // sun.security.ssl.SSLSocketImpl this
         0: .line 2228
            aload 0 /* this */
            invokevirtual sun.security.ssl.SSLSocketImpl.isClosed:()Z
            ifeq 2
         1: .line 2229
            new java.net.SocketException
            dup
            ldc "Socket is closed"
            invokespecial java.net.SocketException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 2236
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.connectionState:I
            ifne 4
         3: .line 2237
            new java.net.SocketException
            dup
            ldc "Socket is not connected"
            invokespecial java.net.SocketException.<init>:(Ljava/lang/String;)V
            athrow
         4: .line 2240
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.output:Lsun/security/ssl/AppOutputStream;
            areturn
        end local 0 // sun.security.ssl.SSLSocketImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0  this  Lsun/security/ssl/SSLSocketImpl;
    Exceptions:
      throws java.io.IOException

  public javax.net.ssl.SSLSession getSession();
    descriptor: ()Ljavax/net/ssl/SSLSession;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=2, args_size=1
        start local 0 // sun.security.ssl.SSLSocketImpl this
         0: .line 2253
            aload 0 /* this */
            invokevirtual sun.security.ssl.SSLSocketImpl.getConnectionState:()I
            iconst_1
            if_icmpne 8
         1: .line 2256
            aload 0 /* this */
            iconst_0
            invokevirtual sun.security.ssl.SSLSocketImpl.startHandshake:(Z)V
         2: .line 2257
            goto 8
      StackMap locals:
      StackMap stack: java.io.IOException
         3: astore 1 /* e */
        start local 1 // java.io.IOException e
         4: .line 2259
            getstatic sun.security.ssl.SSLSocketImpl.debug:Lsun/security/ssl/Debug;
            ifnull 8
            ldc "handshake"
            invokestatic sun.security.ssl.Debug.isOn:(Ljava/lang/String;)Z
            ifeq 8
         5: .line 2260
            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
         6: .line 2261
            ldc ", IOException in getSession():  "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 1 /* e */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
         7: .line 2260
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
        end local 1 // java.io.IOException e
         8: .line 2265
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            dup
            astore 1
            monitorenter
         9: .line 2266
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.sess:Lsun/security/ssl/SSLSessionImpl;
            aload 1
            monitorexit
        10: areturn
        11: .line 2265
      StackMap locals: sun.security.ssl.SSLSocketImpl sun.security.ssl.SSLSocketImpl
      StackMap stack: java.lang.Throwable
            aload 1
            monitorexit
        12: athrow
        end local 0 // sun.security.ssl.SSLSocketImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   13     0  this  Lsun/security/ssl/SSLSocketImpl;
            4    8     1     e  Ljava/io/IOException;
      Exception table:
        from    to  target  type
           1     2       3  Class java.io.IOException
           9    10      11  any
          11    12      11  any

  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.SSLSocketImpl this
         0: .line 2272
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.handshakeSession:Lsun/security/ssl/SSLSessionImpl;
            areturn
        end local 0 // sun.security.ssl.SSLSocketImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lsun/security/ssl/SSLSocketImpl;

  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.SSLSocketImpl this
        start local 1 // sun.security.ssl.SSLSessionImpl session
         0: .line 2277
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.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 2278
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.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 2280
            aload 0 /* this */
            aload 1 /* session */
            putfield sun.security.ssl.SSLSocketImpl.handshakeSession:Lsun/security/ssl/SSLSessionImpl;
         3: .line 2281
            return
        end local 1 // sun.security.ssl.SSLSessionImpl session
        end local 0 // sun.security.ssl.SSLSocketImpl this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    4     0     this  Lsun/security/ssl/SSLSocketImpl;
            0    4     1  session  Lsun/security/ssl/SSLSessionImpl;
    MethodParameters:
         Name  Flags
      session  

  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.SSLSocketImpl this
        start local 1 // boolean flag
         0: .line 2293
            aload 0 /* this */
            iload 1 /* flag */
            putfield sun.security.ssl.SSLSocketImpl.enableSessionCreation:Z
         1: .line 2295
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.handshaker:Lsun/security/ssl/Handshaker;
            ifnull 3
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.handshaker:Lsun/security/ssl/Handshaker;
            invokevirtual sun.security.ssl.Handshaker.activated:()Z
            ifne 3
         2: .line 2296
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.handshaker:Lsun/security/ssl/Handshaker;
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.enableSessionCreation:Z
            invokevirtual sun.security.ssl.Handshaker.setEnableSessionCreation:(Z)V
         3: .line 2298
      StackMap locals:
      StackMap stack:
            return
        end local 1 // boolean flag
        end local 0 // sun.security.ssl.SSLSocketImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Lsun/security/ssl/SSLSocketImpl;
            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.SSLSocketImpl this
         0: .line 2306
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.enableSessionCreation:Z
            ireturn
        end local 0 // sun.security.ssl.SSLSocketImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lsun/security/ssl/SSLSocketImpl;

  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.SSLSocketImpl this
        start local 1 // boolean flag
         0: .line 2320
            aload 0 /* this */
            iload 1 /* flag */
            ifeq 1
            getstatic sun.security.ssl.ClientAuthType.CLIENT_AUTH_REQUIRED:Lsun/security/ssl/ClientAuthType;
            goto 2
         1: .line 2321
      StackMap locals:
      StackMap stack: sun.security.ssl.SSLSocketImpl
            getstatic sun.security.ssl.ClientAuthType.CLIENT_AUTH_NONE:Lsun/security/ssl/ClientAuthType;
         2: .line 2320
      StackMap locals: sun.security.ssl.SSLSocketImpl int
      StackMap stack: sun.security.ssl.SSLSocketImpl sun.security.ssl.ClientAuthType
            putfield sun.security.ssl.SSLSocketImpl.doClientAuth:Lsun/security/ssl/ClientAuthType;
         3: .line 2323
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.handshaker:Lsun/security/ssl/Handshaker;
            ifnull 7
         4: .line 2324
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.handshaker:Lsun/security/ssl/Handshaker;
            instanceof sun.security.ssl.ServerHandshaker
            ifeq 7
         5: .line 2325
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.handshaker:Lsun/security/ssl/Handshaker;
            invokevirtual sun.security.ssl.Handshaker.activated:()Z
            ifne 7
         6: .line 2326
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.handshaker:Lsun/security/ssl/Handshaker;
            checkcast sun.security.ssl.ServerHandshaker
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.doClientAuth:Lsun/security/ssl/ClientAuthType;
            invokevirtual sun.security.ssl.ServerHandshaker.setClientAuth:(Lsun/security/ssl/ClientAuthType;)V
         7: .line 2328
      StackMap locals:
      StackMap stack:
            return
        end local 1 // boolean flag
        end local 0 // sun.security.ssl.SSLSocketImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    8     0  this  Lsun/security/ssl/SSLSocketImpl;
            0    8     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.SSLSocketImpl this
         0: .line 2332
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.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.SSLSocketImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lsun/security/ssl/SSLSocketImpl;

  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.SSLSocketImpl this
        start local 1 // boolean flag
         0: .line 2345
            aload 0 /* this */
            iload 1 /* flag */
            ifeq 1
            getstatic sun.security.ssl.ClientAuthType.CLIENT_AUTH_REQUESTED:Lsun/security/ssl/ClientAuthType;
            goto 2
         1: .line 2346
      StackMap locals:
      StackMap stack: sun.security.ssl.SSLSocketImpl
            getstatic sun.security.ssl.ClientAuthType.CLIENT_AUTH_NONE:Lsun/security/ssl/ClientAuthType;
         2: .line 2345
      StackMap locals: sun.security.ssl.SSLSocketImpl int
      StackMap stack: sun.security.ssl.SSLSocketImpl sun.security.ssl.ClientAuthType
            putfield sun.security.ssl.SSLSocketImpl.doClientAuth:Lsun/security/ssl/ClientAuthType;
         3: .line 2348
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.handshaker:Lsun/security/ssl/Handshaker;
            ifnull 7
         4: .line 2349
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.handshaker:Lsun/security/ssl/Handshaker;
            instanceof sun.security.ssl.ServerHandshaker
            ifeq 7
         5: .line 2350
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.handshaker:Lsun/security/ssl/Handshaker;
            invokevirtual sun.security.ssl.Handshaker.activated:()Z
            ifne 7
         6: .line 2351
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.handshaker:Lsun/security/ssl/Handshaker;
            checkcast sun.security.ssl.ServerHandshaker
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.doClientAuth:Lsun/security/ssl/ClientAuthType;
            invokevirtual sun.security.ssl.ServerHandshaker.setClientAuth:(Lsun/security/ssl/ClientAuthType;)V
         7: .line 2353
      StackMap locals:
      StackMap stack:
            return
        end local 1 // boolean flag
        end local 0 // sun.security.ssl.SSLSocketImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    8     0  this  Lsun/security/ssl/SSLSocketImpl;
            0    8     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.SSLSocketImpl this
         0: .line 2357
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.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.SSLSocketImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lsun/security/ssl/SSLSocketImpl;

  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.SSLSocketImpl this
        start local 1 // boolean flag
         0: .line 2369
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.connectionState:I
            tableswitch { // 0 - 1
                    0: 1
                    1: 20
              default: 46
          }
         1: .line 2378
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.roleIsServer:Z
            iload 1 /* flag */
            ifeq 2
            iconst_0
            goto 3
      StackMap locals:
      StackMap stack: int
         2: iconst_1
      StackMap locals: sun.security.ssl.SSLSocketImpl int
      StackMap stack: int int
         3: if_icmpeq 16
         4: .line 2379
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.sslContext:Lsun/security/ssl/SSLContextImpl;
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.enabledProtocols:Lsun/security/ssl/ProtocolList;
            invokevirtual sun.security.ssl.SSLContextImpl.isDefaultProtocolList:(Lsun/security/ssl/ProtocolList;)Z
            ifeq 10
         5: .line 2380
            aload 0 /* this */
         6: .line 2381
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.sslContext:Lsun/security/ssl/SSLContextImpl;
            iload 1 /* flag */
            ifeq 7
            iconst_0
            goto 8
      StackMap locals: sun.security.ssl.SSLSocketImpl int
      StackMap stack: sun.security.ssl.SSLSocketImpl sun.security.ssl.SSLContextImpl
         7: iconst_1
      StackMap locals: sun.security.ssl.SSLSocketImpl int
      StackMap stack: sun.security.ssl.SSLSocketImpl sun.security.ssl.SSLContextImpl int
         8: invokevirtual sun.security.ssl.SSLContextImpl.getDefaultProtocolList:(Z)Lsun/security/ssl/ProtocolList;
         9: .line 2380
            putfield sun.security.ssl.SSLSocketImpl.enabledProtocols:Lsun/security/ssl/ProtocolList;
        10: .line 2384
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.sslContext:Lsun/security/ssl/SSLContextImpl;
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.enabledCipherSuites:Lsun/security/ssl/CipherSuiteList;
            invokevirtual sun.security.ssl.SSLContextImpl.isDefaultCipherSuiteList:(Lsun/security/ssl/CipherSuiteList;)Z
            ifeq 16
        11: .line 2385
            aload 0 /* this */
        12: .line 2386
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.sslContext:Lsun/security/ssl/SSLContextImpl;
            iload 1 /* flag */
            ifeq 13
            iconst_0
            goto 14
      StackMap locals: sun.security.ssl.SSLSocketImpl int
      StackMap stack: sun.security.ssl.SSLSocketImpl sun.security.ssl.SSLContextImpl
        13: iconst_1
      StackMap locals: sun.security.ssl.SSLSocketImpl int
      StackMap stack: sun.security.ssl.SSLSocketImpl sun.security.ssl.SSLContextImpl int
        14: invokevirtual sun.security.ssl.SSLContextImpl.getDefaultCipherSuiteList:(Z)Lsun/security/ssl/CipherSuiteList;
        15: .line 2385
            putfield sun.security.ssl.SSLSocketImpl.enabledCipherSuites:Lsun/security/ssl/CipherSuiteList;
        16: .line 2390
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iload 1 /* flag */
            ifeq 17
            iconst_0
            goto 18
      StackMap locals:
      StackMap stack: sun.security.ssl.SSLSocketImpl
        17: iconst_1
      StackMap locals: sun.security.ssl.SSLSocketImpl int
      StackMap stack: sun.security.ssl.SSLSocketImpl int
        18: putfield sun.security.ssl.SSLSocketImpl.roleIsServer:Z
        19: .line 2391
            goto 54
        20: .line 2401
      StackMap locals:
      StackMap stack:
            getstatic sun.security.ssl.SSLSocketImpl.$assertionsDisabled:Z
            ifne 21
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.handshaker:Lsun/security/ssl/Handshaker;
            ifnonnull 21
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
        21: .line 2402
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.handshaker:Lsun/security/ssl/Handshaker;
            invokevirtual sun.security.ssl.Handshaker.activated:()Z
            ifne 46
        22: .line 2409
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.roleIsServer:Z
            iload 1 /* flag */
            ifeq 23
            iconst_0
            goto 24
      StackMap locals:
      StackMap stack: int
        23: iconst_1
      StackMap locals: sun.security.ssl.SSLSocketImpl int
      StackMap stack: int int
        24: if_icmpeq 40
        25: .line 2410
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.sslContext:Lsun/security/ssl/SSLContextImpl;
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.enabledProtocols:Lsun/security/ssl/ProtocolList;
            invokevirtual sun.security.ssl.SSLContextImpl.isDefaultProtocolList:(Lsun/security/ssl/ProtocolList;)Z
            ifeq 31
        26: .line 2411
            aload 0 /* this */
        27: .line 2412
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.sslContext:Lsun/security/ssl/SSLContextImpl;
            iload 1 /* flag */
            ifeq 28
            iconst_0
            goto 29
      StackMap locals: sun.security.ssl.SSLSocketImpl int
      StackMap stack: sun.security.ssl.SSLSocketImpl sun.security.ssl.SSLContextImpl
        28: iconst_1
      StackMap locals: sun.security.ssl.SSLSocketImpl int
      StackMap stack: sun.security.ssl.SSLSocketImpl sun.security.ssl.SSLContextImpl int
        29: invokevirtual sun.security.ssl.SSLContextImpl.getDefaultProtocolList:(Z)Lsun/security/ssl/ProtocolList;
        30: .line 2411
            putfield sun.security.ssl.SSLSocketImpl.enabledProtocols:Lsun/security/ssl/ProtocolList;
        31: .line 2415
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.sslContext:Lsun/security/ssl/SSLContextImpl;
        32: .line 2416
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.enabledCipherSuites:Lsun/security/ssl/CipherSuiteList;
        33: .line 2415
            invokevirtual sun.security.ssl.SSLContextImpl.isDefaultCipherSuiteList:(Lsun/security/ssl/CipherSuiteList;)Z
        34: .line 2416
            ifeq 40
        35: .line 2417
            aload 0 /* this */
        36: .line 2418
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.sslContext:Lsun/security/ssl/SSLContextImpl;
            iload 1 /* flag */
            ifeq 37
            iconst_0
            goto 38
      StackMap locals: sun.security.ssl.SSLSocketImpl int
      StackMap stack: sun.security.ssl.SSLSocketImpl sun.security.ssl.SSLContextImpl
        37: iconst_1
      StackMap locals: sun.security.ssl.SSLSocketImpl int
      StackMap stack: sun.security.ssl.SSLSocketImpl sun.security.ssl.SSLContextImpl int
        38: invokevirtual sun.security.ssl.SSLContextImpl.getDefaultCipherSuiteList:(Z)Lsun/security/ssl/CipherSuiteList;
        39: .line 2417
            putfield sun.security.ssl.SSLSocketImpl.enabledCipherSuites:Lsun/security/ssl/CipherSuiteList;
        40: .line 2422
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iload 1 /* flag */
            ifeq 41
            iconst_0
            goto 42
      StackMap locals:
      StackMap stack: sun.security.ssl.SSLSocketImpl
        41: iconst_1
      StackMap locals: sun.security.ssl.SSLSocketImpl int
      StackMap stack: sun.security.ssl.SSLSocketImpl int
        42: putfield sun.security.ssl.SSLSocketImpl.roleIsServer:Z
        43: .line 2423
            aload 0 /* this */
            iconst_0
            putfield sun.security.ssl.SSLSocketImpl.connectionState:I
        44: .line 2424
            aload 0 /* this */
            invokevirtual sun.security.ssl.SSLSocketImpl.initHandshaker:()V
        45: .line 2425
            goto 54
        46: .line 2431
      StackMap locals:
      StackMap stack:
            getstatic sun.security.ssl.SSLSocketImpl.debug:Lsun/security/ssl/Debug;
            ifnull 51
            ldc "ssl"
            invokestatic sun.security.ssl.Debug.isOn:(Ljava/lang/String;)Z
            ifeq 51
        47: .line 2432
            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
        48: .line 2433
            ldc ", setUseClientMode() invoked in state = "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        49: .line 2434
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.connectionState:I
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        50: .line 2432
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
        51: .line 2436
      StackMap locals:
      StackMap stack:
            new java.lang.IllegalArgumentException
            dup
        52: .line 2437
            ldc "Cannot change mode after SSL traffic has started"
        53: .line 2436
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
        54: .line 2439
      StackMap locals:
      StackMap stack:
            return
        end local 1 // boolean flag
        end local 0 // sun.security.ssl.SSLSocketImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   55     0  this  Lsun/security/ssl/SSLSocketImpl;
            0   55     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.SSLSocketImpl this
         0: .line 2443
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.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.SSLSocketImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lsun/security/ssl/SSLSocketImpl;

  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.SSLSocketImpl this
         0: .line 2459
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.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.SSLSocketImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lsun/security/ssl/SSLSocketImpl;

  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.SSLSocketImpl this
        start local 1 // java.lang.String[] suites
         0: .line 2473
            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.SSLSocketImpl.enabledCipherSuites:Lsun/security/ssl/CipherSuiteList;
         1: .line 2474
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.handshaker:Lsun/security/ssl/Handshaker;
            ifnull 3
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.handshaker:Lsun/security/ssl/Handshaker;
            invokevirtual sun.security.ssl.Handshaker.activated:()Z
            ifne 3
         2: .line 2475
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.handshaker:Lsun/security/ssl/Handshaker;
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.enabledCipherSuites:Lsun/security/ssl/CipherSuiteList;
            invokevirtual sun.security.ssl.Handshaker.setEnabledCipherSuites:(Lsun/security/ssl/CipherSuiteList;)V
         3: .line 2477
      StackMap locals:
      StackMap stack:
            return
        end local 1 // java.lang.String[] suites
        end local 0 // sun.security.ssl.SSLSocketImpl this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    4     0    this  Lsun/security/ssl/SSLSocketImpl;
            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.SSLSocketImpl this
         0: .line 2491
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.enabledCipherSuites:Lsun/security/ssl/CipherSuiteList;
            invokevirtual sun.security.ssl.CipherSuiteList.toStringArray:()[Ljava/lang/String;
            areturn
        end local 0 // sun.security.ssl.SSLSocketImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lsun/security/ssl/SSLSocketImpl;

  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.SSLSocketImpl this
         0: .line 2502
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.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.SSLSocketImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lsun/security/ssl/SSLSocketImpl;

  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.SSLSocketImpl this
        start local 1 // java.lang.String[] protocols
         0: .line 2516
            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.SSLSocketImpl.enabledProtocols:Lsun/security/ssl/ProtocolList;
         1: .line 2517
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.handshaker:Lsun/security/ssl/Handshaker;
            ifnull 3
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.handshaker:Lsun/security/ssl/Handshaker;
            invokevirtual sun.security.ssl.Handshaker.activated:()Z
            ifne 3
         2: .line 2518
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.handshaker:Lsun/security/ssl/Handshaker;
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.enabledProtocols:Lsun/security/ssl/ProtocolList;
            invokevirtual sun.security.ssl.Handshaker.setEnabledProtocols:(Lsun/security/ssl/ProtocolList;)V
         3: .line 2520
      StackMap locals:
      StackMap stack:
            return
        end local 1 // java.lang.String[] protocols
        end local 0 // sun.security.ssl.SSLSocketImpl this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    4     0       this  Lsun/security/ssl/SSLSocketImpl;
            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.SSLSocketImpl this
         0: .line 2524
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.enabledProtocols:Lsun/security/ssl/ProtocolList;
            invokevirtual sun.security.ssl.ProtocolList.toStringArray:()[Ljava/lang/String;
            areturn
        end local 0 // sun.security.ssl.SSLSocketImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lsun/security/ssl/SSLSocketImpl;

  public void setSoTimeout(int);
    descriptor: (I)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // sun.security.ssl.SSLSocketImpl this
        start local 1 // int timeout
         0: .line 2533
            getstatic sun.security.ssl.SSLSocketImpl.debug:Lsun/security/ssl/Debug;
            ifnull 4
            ldc "ssl"
            invokestatic sun.security.ssl.Debug.isOn:(Ljava/lang/String;)Z
            ifeq 4
         1: .line 2534
            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 2535
            ldc ", setSoTimeout("
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            iload 1 /* timeout */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            ldc ") called"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
         3: .line 2534
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
         4: .line 2538
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iload 1 /* timeout */
            invokespecial sun.security.ssl.BaseSSLSocketImpl.setSoTimeout:(I)V
         5: .line 2539
            return
        end local 1 // int timeout
        end local 0 // sun.security.ssl.SSLSocketImpl this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    6     0     this  Lsun/security/ssl/SSLSocketImpl;
            0    6     1  timeout  I
    Exceptions:
      throws java.net.SocketException
    MethodParameters:
         Name  Flags
      timeout  

  public synchronized void addHandshakeCompletedListener(javax.net.ssl.HandshakeCompletedListener);
    descriptor: (Ljavax/net/ssl/HandshakeCompletedListener;)V
    flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // sun.security.ssl.SSLSocketImpl this
        start local 1 // javax.net.ssl.HandshakeCompletedListener listener
         0: .line 2548
            aload 1 /* listener */
            ifnonnull 2
         1: .line 2549
            new java.lang.IllegalArgumentException
            dup
            ldc "listener is null"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 2551
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.handshakeListeners:Ljava/util/HashMap;
            ifnonnull 6
         3: .line 2552
            aload 0 /* this */
         4: .line 2553
            new java.util.HashMap
            dup
            iconst_4
         5: .line 2552
            invokespecial java.util.HashMap.<init>:(I)V
            putfield sun.security.ssl.SSLSocketImpl.handshakeListeners:Ljava/util/HashMap;
         6: .line 2555
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.handshakeListeners:Ljava/util/HashMap;
            aload 1 /* listener */
            invokestatic java.security.AccessController.getContext:()Ljava/security/AccessControlContext;
            invokevirtual java.util.HashMap.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         7: .line 2556
            return
        end local 1 // javax.net.ssl.HandshakeCompletedListener listener
        end local 0 // sun.security.ssl.SSLSocketImpl this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    8     0      this  Lsun/security/ssl/SSLSocketImpl;
            0    8     1  listener  Ljavax/net/ssl/HandshakeCompletedListener;
    MethodParameters:
          Name  Flags
      listener  

  public synchronized void removeHandshakeCompletedListener(javax.net.ssl.HandshakeCompletedListener);
    descriptor: (Ljavax/net/ssl/HandshakeCompletedListener;)V
    flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // sun.security.ssl.SSLSocketImpl this
        start local 1 // javax.net.ssl.HandshakeCompletedListener listener
         0: .line 2565
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.handshakeListeners:Ljava/util/HashMap;
            ifnonnull 2
         1: .line 2566
            new java.lang.IllegalArgumentException
            dup
            ldc "no listeners"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 2568
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.handshakeListeners:Ljava/util/HashMap;
            aload 1 /* listener */
            invokevirtual java.util.HashMap.remove:(Ljava/lang/Object;)Ljava/lang/Object;
            ifnonnull 4
         3: .line 2569
            new java.lang.IllegalArgumentException
            dup
            ldc "listener not registered"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         4: .line 2571
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.handshakeListeners:Ljava/util/HashMap;
            invokevirtual java.util.HashMap.isEmpty:()Z
            ifeq 6
         5: .line 2572
            aload 0 /* this */
            aconst_null
            putfield sun.security.ssl.SSLSocketImpl.handshakeListeners:Ljava/util/HashMap;
         6: .line 2574
      StackMap locals:
      StackMap stack:
            return
        end local 1 // javax.net.ssl.HandshakeCompletedListener listener
        end local 0 // sun.security.ssl.SSLSocketImpl this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    7     0      this  Lsun/security/ssl/SSLSocketImpl;
            0    7     1  listener  Ljavax/net/ssl/HandshakeCompletedListener;
    MethodParameters:
          Name  Flags
      listener  

  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.SSLSocketImpl this
         0: .line 2581
            aload 0 /* this */
            invokespecial sun.security.ssl.BaseSSLSocketImpl.getSSLParameters:()Ljavax/net/ssl/SSLParameters;
            astore 1 /* params */
        start local 1 // javax.net.ssl.SSLParameters params
         1: .line 2584
            aload 1 /* params */
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.identificationProtocol:Ljava/lang/String;
            invokevirtual javax.net.ssl.SSLParameters.setEndpointIdentificationAlgorithm:(Ljava/lang/String;)V
         2: .line 2585
            aload 1 /* params */
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.algorithmConstraints:Ljava/security/AlgorithmConstraints;
            invokevirtual javax.net.ssl.SSLParameters.setAlgorithmConstraints:(Ljava/security/AlgorithmConstraints;)V
         3: .line 2587
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.sniMatchers:Ljava/util/Collection;
            invokeinterface java.util.Collection.isEmpty:()Z
            ifeq 6
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.noSniMatcher:Z
            ifne 6
         4: .line 2589
            aload 1 /* params */
            aconst_null
            invokevirtual javax.net.ssl.SSLParameters.setSNIMatchers:(Ljava/util/Collection;)V
         5: .line 2590
            goto 7
         6: .line 2591
      StackMap locals: javax.net.ssl.SSLParameters
      StackMap stack:
            aload 1 /* params */
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.sniMatchers:Ljava/util/Collection;
            invokevirtual javax.net.ssl.SSLParameters.setSNIMatchers:(Ljava/util/Collection;)V
         7: .line 2594
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.serverNames:Ljava/util/List;
            invokeinterface java.util.List.isEmpty:()Z
            ifeq 10
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.noSniExtension:Z
            ifne 10
         8: .line 2596
            aload 1 /* params */
            aconst_null
            invokevirtual javax.net.ssl.SSLParameters.setServerNames:(Ljava/util/List;)V
         9: .line 2597
            goto 11
        10: .line 2598
      StackMap locals:
      StackMap stack:
            aload 1 /* params */
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.serverNames:Ljava/util/List;
            invokevirtual javax.net.ssl.SSLParameters.setServerNames:(Ljava/util/List;)V
        11: .line 2601
      StackMap locals:
      StackMap stack:
            aload 1 /* params */
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.preferLocalCipherSuites:Z
            invokevirtual javax.net.ssl.SSLParameters.setUseCipherSuitesOrder:(Z)V
        12: .line 2602
            aload 1 /* params */
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.maximumPacketSize:I
            invokevirtual javax.net.ssl.SSLParameters.setMaximumPacketSize:(I)V
        13: .line 2603
            aload 1 /* params */
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.applicationProtocols:[Ljava/lang/String;
            invokevirtual javax.net.ssl.SSLParameters.setApplicationProtocols:([Ljava/lang/String;)V
        14: .line 2607
            aload 1 /* params */
            areturn
        end local 1 // javax.net.ssl.SSLParameters params
        end local 0 // sun.security.ssl.SSLSocketImpl this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   15     0    this  Lsun/security/ssl/SSLSocketImpl;
            1   15     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.SSLSocketImpl this
        start local 1 // javax.net.ssl.SSLParameters params
         0: .line 2615
            aload 0 /* this */
            aload 1 /* params */
            invokespecial sun.security.ssl.BaseSSLSocketImpl.setSSLParameters:(Ljavax/net/ssl/SSLParameters;)V
         1: .line 2618
            aload 0 /* this */
            aload 1 /* params */
            invokevirtual javax.net.ssl.SSLParameters.getEndpointIdentificationAlgorithm:()Ljava/lang/String;
            putfield sun.security.ssl.SSLSocketImpl.identificationProtocol:Ljava/lang/String;
         2: .line 2619
            aload 0 /* this */
            aload 1 /* params */
            invokevirtual javax.net.ssl.SSLParameters.getAlgorithmConstraints:()Ljava/security/AlgorithmConstraints;
            putfield sun.security.ssl.SSLSocketImpl.algorithmConstraints:Ljava/security/AlgorithmConstraints;
         3: .line 2620
            aload 0 /* this */
            aload 1 /* params */
            invokevirtual javax.net.ssl.SSLParameters.getUseCipherSuitesOrder:()Z
            putfield sun.security.ssl.SSLSocketImpl.preferLocalCipherSuites:Z
         4: .line 2621
            aload 0 /* this */
            aload 1 /* params */
            invokevirtual javax.net.ssl.SSLParameters.getMaximumPacketSize:()I
            putfield sun.security.ssl.SSLSocketImpl.maximumPacketSize:I
         5: .line 2625
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.maximumPacketSize:I
            ifeq 8
         6: .line 2626
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.outputRecord:Lsun/security/ssl/OutputRecord;
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.maximumPacketSize:I
            invokevirtual sun.security.ssl.OutputRecord.changePacketSize:(I)V
         7: .line 2627
            goto 9
         8: .line 2629
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.outputRecord:Lsun/security/ssl/OutputRecord;
            invokevirtual sun.security.ssl.OutputRecord.getMaxPacketSize:()I
            putfield sun.security.ssl.SSLSocketImpl.maximumPacketSize:I
         9: .line 2632
      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
        10: .line 2633
            aload 2 /* sniNames */
            ifnull 13
        11: .line 2634
            aload 0 /* this */
            aload 2 /* sniNames */
            invokeinterface java.util.List.isEmpty:()Z
            putfield sun.security.ssl.SSLSocketImpl.noSniExtension:Z
        12: .line 2635
            aload 0 /* this */
            aload 2 /* sniNames */
            putfield sun.security.ssl.SSLSocketImpl.serverNames:Ljava/util/List;
        13: .line 2638
      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 2639
            aload 3 /* matchers */
            ifnull 17
        15: .line 2640
            aload 0 /* this */
            aload 3 /* matchers */
            invokeinterface java.util.Collection.isEmpty:()Z
            putfield sun.security.ssl.SSLSocketImpl.noSniMatcher:Z
        16: .line 2641
            aload 0 /* this */
            aload 3 /* matchers */
            putfield sun.security.ssl.SSLSocketImpl.sniMatchers:Ljava/util/Collection;
        17: .line 2644
      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.SSLSocketImpl.applicationProtocols:[Ljava/lang/String;
        18: .line 2646
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.handshaker:Lsun/security/ssl/Handshaker;
            ifnull 28
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.handshaker:Lsun/security/ssl/Handshaker;
            invokevirtual sun.security.ssl.Handshaker.activated:()Z
            ifne 28
        19: .line 2647
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.handshaker:Lsun/security/ssl/Handshaker;
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.identificationProtocol:Ljava/lang/String;
            invokevirtual sun.security.ssl.Handshaker.setIdentificationProtocol:(Ljava/lang/String;)V
        20: .line 2648
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.handshaker:Lsun/security/ssl/Handshaker;
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.algorithmConstraints:Ljava/security/AlgorithmConstraints;
            invokevirtual sun.security.ssl.Handshaker.setAlgorithmConstraints:(Ljava/security/AlgorithmConstraints;)V
        21: .line 2649
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.handshaker:Lsun/security/ssl/Handshaker;
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.maximumPacketSize:I
            invokevirtual sun.security.ssl.Handshaker.setMaximumPacketSize:(I)V
        22: .line 2650
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.handshaker:Lsun/security/ssl/Handshaker;
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.applicationProtocols:[Ljava/lang/String;
            invokevirtual sun.security.ssl.Handshaker.setApplicationProtocols:([Ljava/lang/String;)V
        23: .line 2651
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.roleIsServer:Z
            ifeq 27
        24: .line 2652
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.handshaker:Lsun/security/ssl/Handshaker;
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.sniMatchers:Ljava/util/Collection;
            invokevirtual sun.security.ssl.Handshaker.setSNIMatchers:(Ljava/util/Collection;)V
        25: .line 2653
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.handshaker:Lsun/security/ssl/Handshaker;
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.preferLocalCipherSuites:Z
            invokevirtual sun.security.ssl.Handshaker.setUseCipherSuitesOrder:(Z)V
        26: .line 2654
            goto 28
        27: .line 2655
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.handshaker:Lsun/security/ssl/Handshaker;
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.serverNames:Ljava/util/List;
            invokevirtual sun.security.ssl.Handshaker.setSNIServerNames:(Ljava/util/List;)V
        28: .line 2658
      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.SSLSocketImpl this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   29     0      this  Lsun/security/ssl/SSLSocketImpl;
            0   29     1    params  Ljavax/net/ssl/SSLParameters;
           10   29     2  sniNames  Ljava/util/List<Ljavax/net/ssl/SNIServerName;>;
           14   29     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.SSLSocketImpl this
         0: .line 2662
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.applicationProtocol:Ljava/lang/String;
            areturn
        end local 0 // sun.security.ssl.SSLSocketImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lsun/security/ssl/SSLSocketImpl;

  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.SSLSocketImpl this
         0: .line 2667
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.handshaker:Lsun/security/ssl/Handshaker;
            ifnull 2
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.handshaker:Lsun/security/ssl/Handshaker;
            invokevirtual sun.security.ssl.Handshaker.started:()Z
            ifeq 2
         1: .line 2668
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.handshaker:Lsun/security/ssl/Handshaker;
            invokevirtual sun.security.ssl.Handshaker.getHandshakeApplicationProtocol:()Ljava/lang/String;
            areturn
         2: .line 2670
      StackMap locals:
      StackMap stack:
            aconst_null
            areturn
        end local 0 // sun.security.ssl.SSLSocketImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lsun/security/ssl/SSLSocketImpl;

  public synchronized void setHandshakeApplicationProtocolSelector(java.util.function.BiFunction<javax.net.ssl.SSLSocket, 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.SSLSocketImpl this
        start local 1 // java.util.function.BiFunction selector
         0: .line 2676
            aload 0 /* this */
            aload 1 /* selector */
            putfield sun.security.ssl.SSLSocketImpl.applicationProtocolSelector:Ljava/util/function/BiFunction;
         1: .line 2677
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.handshaker:Lsun/security/ssl/Handshaker;
            ifnull 3
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.handshaker:Lsun/security/ssl/Handshaker;
            invokevirtual sun.security.ssl.Handshaker.activated:()Z
            ifne 3
         2: .line 2678
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.handshaker:Lsun/security/ssl/Handshaker;
            aload 1 /* selector */
            invokevirtual sun.security.ssl.Handshaker.setApplicationProtocolSelectorSSLSocket:(Ljava/util/function/BiFunction;)V
         3: .line 2680
      StackMap locals:
      StackMap stack:
            return
        end local 1 // java.util.function.BiFunction selector
        end local 0 // sun.security.ssl.SSLSocketImpl this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    4     0      this  Lsun/security/ssl/SSLSocketImpl;
            0    4     1  selector  Ljava/util/function/BiFunction<Ljavax/net/ssl/SSLSocket;Ljava/util/List<Ljava/lang/String;>;Ljava/lang/String;>;
    Signature: (Ljava/util/function/BiFunction<Ljavax/net/ssl/SSLSocket;Ljava/util/List<Ljava/lang/String;>;Ljava/lang/String;>;)V
    MethodParameters:
          Name  Flags
      selector  

  public synchronized java.util.function.BiFunction<javax.net.ssl.SSLSocket, 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.SSLSocketImpl this
         0: .line 2685
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.applicationProtocolSelector:Ljava/util/function/BiFunction;
            areturn
        end local 0 // sun.security.ssl.SSLSocketImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lsun/security/ssl/SSLSocketImpl;
    Signature: ()Ljava/util/function/BiFunction<Ljavax/net/ssl/SSLSocket;Ljava/util/List<Ljava/lang/String;>;Ljava/lang/String;>;

  public java.lang.String toString();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=1
        start local 0 // sun.security.ssl.SSLSocketImpl this
         0: .line 2731
            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 2733
            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 2734
            aload 1 /* retval */
            ldc "["
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
         3: .line 2735
            aload 1 /* retval */
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.sess:Lsun/security/ssl/SSLSessionImpl;
            invokevirtual sun.security.ssl.SSLSessionImpl.getCipherSuite:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
         4: .line 2736
            aload 1 /* retval */
            ldc ": "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
         5: .line 2738
            aload 1 /* retval */
            aload 0 /* this */
            invokespecial sun.security.ssl.BaseSSLSocketImpl.toString:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
         6: .line 2739
            aload 1 /* retval */
            ldc "]"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
         7: .line 2741
            aload 1 /* retval */
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            areturn
        end local 1 // java.lang.StringBuilder retval
        end local 0 // sun.security.ssl.SSLSocketImpl this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    8     0    this  Lsun/security/ssl/SSLSocketImpl;
            1    8     1  retval  Ljava/lang/StringBuilder;

  public java.net.Socket setOption(java.net.SocketOption, java.lang.Object);
    descriptor: (Ljava/net/SocketOption;Ljava/lang/Object;)Ljava/net/Socket;
    flags: (0x1041) ACC_PUBLIC, ACC_BRIDGE, ACC_SYNTHETIC
    Code:
      stack=3, locals=3, args_size=3
         0: .line 1
            aload 0
            aload 1
            aload 2
            invokespecial sun.security.ssl.BaseSSLSocketImpl.setOption:(Ljava/net/SocketOption;Ljava/lang/Object;)Ljava/net/Socket;
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature
    Exceptions:
      throws java.io.IOException

  public void setPerformancePreferences(int, int, int);
    descriptor: (III)V
    flags: (0x1041) ACC_PUBLIC, ACC_BRIDGE, ACC_SYNTHETIC
    Code:
      stack=4, locals=4, args_size=4
         0: .line 1
            aload 0
            iload 1
            iload 2
            iload 3
            invokespecial sun.security.ssl.BaseSSLSocketImpl.setPerformancePreferences:(III)V
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public java.util.Set supportedOptions();
    descriptor: ()Ljava/util/Set;
    flags: (0x1041) ACC_PUBLIC, ACC_BRIDGE, ACC_SYNTHETIC
    Code:
      stack=1, locals=1, args_size=1
         0: .line 1
            aload 0
            invokespecial sun.security.ssl.BaseSSLSocketImpl.supportedOptions:()Ljava/util/Set;
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public java.lang.Object getOption(java.net.SocketOption);
    descriptor: (Ljava/net/SocketOption;)Ljava/lang/Object;
    flags: (0x1041) ACC_PUBLIC, ACC_BRIDGE, ACC_SYNTHETIC
    Code:
      stack=2, locals=2, args_size=2
         0: .line 1
            aload 0
            aload 1
            invokespecial sun.security.ssl.BaseSSLSocketImpl.getOption:(Ljava/net/SocketOption;)Ljava/lang/Object;
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature
    Exceptions:
      throws java.io.IOException

  public java.net.SocketAddress getLocalSocketAddress();
    descriptor: ()Ljava/net/SocketAddress;
    flags: (0x1041) ACC_PUBLIC, ACC_BRIDGE, ACC_SYNTHETIC
    Code:
      stack=1, locals=1, args_size=1
         0: .line 1
            aload 0
            invokespecial sun.security.ssl.BaseSSLSocketImpl.getLocalSocketAddress:()Ljava/net/SocketAddress;
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public void bind(java.net.SocketAddress);
    descriptor: (Ljava/net/SocketAddress;)V
    flags: (0x1041) ACC_PUBLIC, ACC_BRIDGE, ACC_SYNTHETIC
    Code:
      stack=2, locals=2, args_size=2
         0: .line 1
            aload 0
            aload 1
            invokespecial sun.security.ssl.BaseSSLSocketImpl.bind:(Ljava/net/SocketAddress;)V
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature
    Exceptions:
      throws java.io.IOException

  public java.net.SocketAddress getRemoteSocketAddress();
    descriptor: ()Ljava/net/SocketAddress;
    flags: (0x1041) ACC_PUBLIC, ACC_BRIDGE, ACC_SYNTHETIC
    Code:
      stack=1, locals=1, args_size=1
         0: .line 1
            aload 0
            invokespecial sun.security.ssl.BaseSSLSocketImpl.getRemoteSocketAddress:()Ljava/net/SocketAddress;
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature
}
SourceFile: "SSLSocketImpl.java"
NestMembers:
  sun.security.ssl.SSLSocketImpl$NotifyHandshake  sun.security.ssl.SSLSocketImpl$NotifyHandshake$1
InnerClasses:
  public abstract Entry = java.util.Map$Entry of java.util.Map
  private NotifyHandshake = sun.security.ssl.SSLSocketImpl$NotifyHandshake of sun.security.ssl.SSLSocketImpl