public final class sun.security.ssl.SSLSocketImpl extends sun.security.ssl.BaseSSLSocketImpl implements sun.security.ssl.SSLTransport
  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
{
  final sun.security.ssl.SSLContextImpl sslContext;
    descriptor: Lsun/security/ssl/SSLContextImpl;
    flags: (0x0010) ACC_FINAL

  final sun.security.ssl.TransportContext conContext;
    descriptor: Lsun/security/ssl/TransportContext;
    flags: (0x0010) ACC_FINAL

  private final sun.security.ssl.SSLSocketImpl$AppInputStream appInput;
    descriptor: Lsun/security/ssl/SSLSocketImpl$AppInputStream;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final sun.security.ssl.SSLSocketImpl$AppOutputStream appOutput;
    descriptor: Lsun/security/ssl/SSLSocketImpl$AppOutputStream;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

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

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

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

  private volatile boolean tlsIsClosed;
    descriptor: Z
    flags: (0x0042) ACC_PRIVATE, ACC_VOLATILE

  private static final boolean trustNameService;
    descriptor: Z
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=2, locals=0, args_size=0
         0: .line 94
            ldc "jdk.tls.trustNameService"
            iconst_0
            invokestatic sun.security.ssl.Utilities.getBooleanProperty:(Ljava/lang/String;Z)Z
         1: .line 93
            putstatic sun.security.ssl.SSLSocketImpl.trustNameService:Z
         2: .line 94
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  void <init>(sun.security.ssl.SSLContextImpl);
    descriptor: (Lsun/security/ssl/SSLContextImpl;)V
    flags: (0x0000) 
    Code:
      stack=9, locals=3, args_size=2
        start local 0 // sun.security.ssl.SSLSocketImpl this
        start local 1 // sun.security.ssl.SSLContextImpl sslContext
         0: .line 103
            aload 0 /* this */
            invokespecial sun.security.ssl.BaseSSLSocketImpl.<init>:()V
         1: .line 79
            aload 0 /* this */
            new sun.security.ssl.SSLSocketImpl$AppInputStream
            dup
            aload 0 /* this */
            invokespecial sun.security.ssl.SSLSocketImpl$AppInputStream.<init>:(Lsun/security/ssl/SSLSocketImpl;)V
            putfield sun.security.ssl.SSLSocketImpl.appInput:Lsun/security/ssl/SSLSocketImpl$AppInputStream;
         2: .line 80
            aload 0 /* this */
            new sun.security.ssl.SSLSocketImpl$AppOutputStream
            dup
            aload 0 /* this */
            invokespecial sun.security.ssl.SSLSocketImpl$AppOutputStream.<init>:(Lsun/security/ssl/SSLSocketImpl;)V
            putfield sun.security.ssl.SSLSocketImpl.appOutput:Lsun/security/ssl/SSLSocketImpl$AppOutputStream;
         3: .line 84
            aload 0 /* this */
            iconst_0
            putfield sun.security.ssl.SSLSocketImpl.isConnected:Z
         4: .line 85
            aload 0 /* this */
            iconst_0
            putfield sun.security.ssl.SSLSocketImpl.tlsIsClosed:Z
         5: .line 104
            aload 0 /* this */
            aload 1 /* sslContext */
            putfield sun.security.ssl.SSLSocketImpl.sslContext:Lsun/security/ssl/SSLContextImpl;
         6: .line 105
            new sun.security.ssl.HandshakeHash
            dup
            invokespecial sun.security.ssl.HandshakeHash.<init>:()V
            astore 2 /* handshakeHash */
        start local 2 // sun.security.ssl.HandshakeHash handshakeHash
         7: .line 106
            aload 0 /* this */
            new sun.security.ssl.TransportContext
            dup
            aload 1 /* sslContext */
            aload 0 /* this */
         8: .line 107
            new sun.security.ssl.SSLSocketInputRecord
            dup
            aload 2 /* handshakeHash */
            invokespecial sun.security.ssl.SSLSocketInputRecord.<init>:(Lsun/security/ssl/HandshakeHash;)V
         9: .line 108
            new sun.security.ssl.SSLSocketOutputRecord
            dup
            aload 2 /* handshakeHash */
            invokespecial sun.security.ssl.SSLSocketOutputRecord.<init>:(Lsun/security/ssl/HandshakeHash;)V
            iconst_1
            invokespecial sun.security.ssl.TransportContext.<init>:(Lsun/security/ssl/SSLContextImpl;Lsun/security/ssl/SSLTransport;Lsun/security/ssl/InputRecord;Lsun/security/ssl/OutputRecord;Z)V
        10: .line 106
            putfield sun.security.ssl.SSLSocketImpl.conContext:Lsun/security/ssl/TransportContext;
        11: .line 109
            return
        end local 2 // sun.security.ssl.HandshakeHash handshakeHash
        end local 1 // sun.security.ssl.SSLContextImpl sslContext
        end local 0 // sun.security.ssl.SSLSocketImpl this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0   12     0           this  Lsun/security/ssl/SSLSocketImpl;
            0   12     1     sslContext  Lsun/security/ssl/SSLContextImpl;
            7   12     2  handshakeHash  Lsun/security/ssl/HandshakeHash;
    MethodParameters:
            Name  Flags
      sslContext  

  void <init>(sun.security.ssl.SSLContextImpl, sun.security.ssl.SSLConfiguration);
    descriptor: (Lsun/security/ssl/SSLContextImpl;Lsun/security/ssl/SSLConfiguration;)V
    flags: (0x0000) 
    Code:
      stack=10, locals=4, args_size=3
        start local 0 // sun.security.ssl.SSLSocketImpl this
        start local 1 // sun.security.ssl.SSLContextImpl sslContext
        start local 2 // sun.security.ssl.SSLConfiguration sslConfig
         0: .line 117
            aload 0 /* this */
            invokespecial sun.security.ssl.BaseSSLSocketImpl.<init>:()V
         1: .line 79
            aload 0 /* this */
            new sun.security.ssl.SSLSocketImpl$AppInputStream
            dup
            aload 0 /* this */
            invokespecial sun.security.ssl.SSLSocketImpl$AppInputStream.<init>:(Lsun/security/ssl/SSLSocketImpl;)V
            putfield sun.security.ssl.SSLSocketImpl.appInput:Lsun/security/ssl/SSLSocketImpl$AppInputStream;
         2: .line 80
            aload 0 /* this */
            new sun.security.ssl.SSLSocketImpl$AppOutputStream
            dup
            aload 0 /* this */
            invokespecial sun.security.ssl.SSLSocketImpl$AppOutputStream.<init>:(Lsun/security/ssl/SSLSocketImpl;)V
            putfield sun.security.ssl.SSLSocketImpl.appOutput:Lsun/security/ssl/SSLSocketImpl$AppOutputStream;
         3: .line 84
            aload 0 /* this */
            iconst_0
            putfield sun.security.ssl.SSLSocketImpl.isConnected:Z
         4: .line 85
            aload 0 /* this */
            iconst_0
            putfield sun.security.ssl.SSLSocketImpl.tlsIsClosed:Z
         5: .line 118
            aload 0 /* this */
            aload 1 /* sslContext */
            putfield sun.security.ssl.SSLSocketImpl.sslContext:Lsun/security/ssl/SSLContextImpl;
         6: .line 119
            new sun.security.ssl.HandshakeHash
            dup
            invokespecial sun.security.ssl.HandshakeHash.<init>:()V
            astore 3 /* handshakeHash */
        start local 3 // sun.security.ssl.HandshakeHash handshakeHash
         7: .line 120
            aload 0 /* this */
            new sun.security.ssl.TransportContext
            dup
            aload 1 /* sslContext */
            aload 0 /* this */
            aload 2 /* sslConfig */
         8: .line 121
            new sun.security.ssl.SSLSocketInputRecord
            dup
            aload 3 /* handshakeHash */
            invokespecial sun.security.ssl.SSLSocketInputRecord.<init>:(Lsun/security/ssl/HandshakeHash;)V
         9: .line 122
            new sun.security.ssl.SSLSocketOutputRecord
            dup
            aload 3 /* handshakeHash */
            invokespecial sun.security.ssl.SSLSocketOutputRecord.<init>:(Lsun/security/ssl/HandshakeHash;)V
            invokespecial sun.security.ssl.TransportContext.<init>:(Lsun/security/ssl/SSLContextImpl;Lsun/security/ssl/SSLTransport;Lsun/security/ssl/SSLConfiguration;Lsun/security/ssl/InputRecord;Lsun/security/ssl/OutputRecord;)V
        10: .line 120
            putfield sun.security.ssl.SSLSocketImpl.conContext:Lsun/security/ssl/TransportContext;
        11: .line 123
            return
        end local 3 // sun.security.ssl.HandshakeHash handshakeHash
        end local 2 // sun.security.ssl.SSLConfiguration sslConfig
        end local 1 // sun.security.ssl.SSLContextImpl sslContext
        end local 0 // sun.security.ssl.SSLSocketImpl this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0   12     0           this  Lsun/security/ssl/SSLSocketImpl;
            0   12     1     sslContext  Lsun/security/ssl/SSLContextImpl;
            0   12     2      sslConfig  Lsun/security/ssl/SSLConfiguration;
            7   12     3  handshakeHash  Lsun/security/ssl/HandshakeHash;
    MethodParameters:
            Name  Flags
      sslContext  
      sslConfig   

  void <init>(sun.security.ssl.SSLContextImpl, java.lang.String, int);
    descriptor: (Lsun/security/ssl/SSLContextImpl;Ljava/lang/String;I)V
    flags: (0x0000) 
    Code:
      stack=9, locals=6, args_size=4
        start local 0 // sun.security.ssl.SSLSocketImpl this
        start local 1 // sun.security.ssl.SSLContextImpl sslContext
        start local 2 // java.lang.String peerHost
        start local 3 // int peerPort
         0: .line 134
            aload 0 /* this */
            invokespecial sun.security.ssl.BaseSSLSocketImpl.<init>:()V
         1: .line 79
            aload 0 /* this */
            new sun.security.ssl.SSLSocketImpl$AppInputStream
            dup
            aload 0 /* this */
            invokespecial sun.security.ssl.SSLSocketImpl$AppInputStream.<init>:(Lsun/security/ssl/SSLSocketImpl;)V
            putfield sun.security.ssl.SSLSocketImpl.appInput:Lsun/security/ssl/SSLSocketImpl$AppInputStream;
         2: .line 80
            aload 0 /* this */
            new sun.security.ssl.SSLSocketImpl$AppOutputStream
            dup
            aload 0 /* this */
            invokespecial sun.security.ssl.SSLSocketImpl$AppOutputStream.<init>:(Lsun/security/ssl/SSLSocketImpl;)V
            putfield sun.security.ssl.SSLSocketImpl.appOutput:Lsun/security/ssl/SSLSocketImpl$AppOutputStream;
         3: .line 84
            aload 0 /* this */
            iconst_0
            putfield sun.security.ssl.SSLSocketImpl.isConnected:Z
         4: .line 85
            aload 0 /* this */
            iconst_0
            putfield sun.security.ssl.SSLSocketImpl.tlsIsClosed:Z
         5: .line 135
            aload 0 /* this */
            aload 1 /* sslContext */
            putfield sun.security.ssl.SSLSocketImpl.sslContext:Lsun/security/ssl/SSLContextImpl;
         6: .line 136
            new sun.security.ssl.HandshakeHash
            dup
            invokespecial sun.security.ssl.HandshakeHash.<init>:()V
            astore 4 /* handshakeHash */
        start local 4 // sun.security.ssl.HandshakeHash handshakeHash
         7: .line 137
            aload 0 /* this */
            new sun.security.ssl.TransportContext
            dup
            aload 1 /* sslContext */
            aload 0 /* this */
         8: .line 138
            new sun.security.ssl.SSLSocketInputRecord
            dup
            aload 4 /* handshakeHash */
            invokespecial sun.security.ssl.SSLSocketInputRecord.<init>:(Lsun/security/ssl/HandshakeHash;)V
         9: .line 139
            new sun.security.ssl.SSLSocketOutputRecord
            dup
            aload 4 /* handshakeHash */
            invokespecial sun.security.ssl.SSLSocketOutputRecord.<init>:(Lsun/security/ssl/HandshakeHash;)V
            iconst_1
            invokespecial sun.security.ssl.TransportContext.<init>:(Lsun/security/ssl/SSLContextImpl;Lsun/security/ssl/SSLTransport;Lsun/security/ssl/InputRecord;Lsun/security/ssl/OutputRecord;Z)V
        10: .line 137
            putfield sun.security.ssl.SSLSocketImpl.conContext:Lsun/security/ssl/TransportContext;
        11: .line 140
            aload 0 /* this */
            aload 2 /* peerHost */
            putfield sun.security.ssl.SSLSocketImpl.peerHost:Ljava/lang/String;
        12: .line 142
            aload 2 /* peerHost */
            ifnull 13
            new java.net.InetSocketAddress
            dup
            aload 2 /* peerHost */
            iload 3 /* peerPort */
            invokespecial java.net.InetSocketAddress.<init>:(Ljava/lang/String;I)V
            goto 14
        13: .line 143
      StackMap locals: sun.security.ssl.SSLSocketImpl sun.security.ssl.SSLContextImpl java.lang.String int sun.security.ssl.HandshakeHash
      StackMap stack:
            new java.net.InetSocketAddress
            dup
            aconst_null
            invokestatic java.net.InetAddress.getByName:(Ljava/lang/String;)Ljava/net/InetAddress;
            iload 3 /* peerPort */
            invokespecial java.net.InetSocketAddress.<init>:(Ljava/net/InetAddress;I)V
        14: .line 141
      StackMap locals:
      StackMap stack: java.net.InetSocketAddress
            astore 5 /* socketAddress */
        start local 5 // java.net.SocketAddress socketAddress
        15: .line 144
            aload 0 /* this */
            aload 5 /* socketAddress */
            iconst_0
            invokevirtual sun.security.ssl.SSLSocketImpl.connect:(Ljava/net/SocketAddress;I)V
        16: .line 145
            return
        end local 5 // java.net.SocketAddress socketAddress
        end local 4 // sun.security.ssl.HandshakeHash handshakeHash
        end local 3 // int peerPort
        end local 2 // java.lang.String peerHost
        end local 1 // sun.security.ssl.SSLContextImpl sslContext
        end local 0 // sun.security.ssl.SSLSocketImpl this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0   17     0           this  Lsun/security/ssl/SSLSocketImpl;
            0   17     1     sslContext  Lsun/security/ssl/SSLContextImpl;
            0   17     2       peerHost  Ljava/lang/String;
            0   17     3       peerPort  I
            7   17     4  handshakeHash  Lsun/security/ssl/HandshakeHash;
           15   17     5  socketAddress  Ljava/net/SocketAddress;
    Exceptions:
      throws java.io.IOException, java.net.UnknownHostException
    MethodParameters:
            Name  Flags
      sslContext  
      peerHost    
      peerPort    

  void <init>(sun.security.ssl.SSLContextImpl, java.net.InetAddress, int);
    descriptor: (Lsun/security/ssl/SSLContextImpl;Ljava/net/InetAddress;I)V
    flags: (0x0000) 
    Code:
      stack=9, locals=6, args_size=4
        start local 0 // sun.security.ssl.SSLSocketImpl this
        start local 1 // sun.security.ssl.SSLContextImpl sslContext
        start local 2 // java.net.InetAddress address
        start local 3 // int peerPort
         0: .line 157
            aload 0 /* this */
            invokespecial sun.security.ssl.BaseSSLSocketImpl.<init>:()V
         1: .line 79
            aload 0 /* this */
            new sun.security.ssl.SSLSocketImpl$AppInputStream
            dup
            aload 0 /* this */
            invokespecial sun.security.ssl.SSLSocketImpl$AppInputStream.<init>:(Lsun/security/ssl/SSLSocketImpl;)V
            putfield sun.security.ssl.SSLSocketImpl.appInput:Lsun/security/ssl/SSLSocketImpl$AppInputStream;
         2: .line 80
            aload 0 /* this */
            new sun.security.ssl.SSLSocketImpl$AppOutputStream
            dup
            aload 0 /* this */
            invokespecial sun.security.ssl.SSLSocketImpl$AppOutputStream.<init>:(Lsun/security/ssl/SSLSocketImpl;)V
            putfield sun.security.ssl.SSLSocketImpl.appOutput:Lsun/security/ssl/SSLSocketImpl$AppOutputStream;
         3: .line 84
            aload 0 /* this */
            iconst_0
            putfield sun.security.ssl.SSLSocketImpl.isConnected:Z
         4: .line 85
            aload 0 /* this */
            iconst_0
            putfield sun.security.ssl.SSLSocketImpl.tlsIsClosed:Z
         5: .line 158
            aload 0 /* this */
            aload 1 /* sslContext */
            putfield sun.security.ssl.SSLSocketImpl.sslContext:Lsun/security/ssl/SSLContextImpl;
         6: .line 159
            new sun.security.ssl.HandshakeHash
            dup
            invokespecial sun.security.ssl.HandshakeHash.<init>:()V
            astore 4 /* handshakeHash */
        start local 4 // sun.security.ssl.HandshakeHash handshakeHash
         7: .line 160
            aload 0 /* this */
            new sun.security.ssl.TransportContext
            dup
            aload 1 /* sslContext */
            aload 0 /* this */
         8: .line 161
            new sun.security.ssl.SSLSocketInputRecord
            dup
            aload 4 /* handshakeHash */
            invokespecial sun.security.ssl.SSLSocketInputRecord.<init>:(Lsun/security/ssl/HandshakeHash;)V
         9: .line 162
            new sun.security.ssl.SSLSocketOutputRecord
            dup
            aload 4 /* handshakeHash */
            invokespecial sun.security.ssl.SSLSocketOutputRecord.<init>:(Lsun/security/ssl/HandshakeHash;)V
            iconst_1
            invokespecial sun.security.ssl.TransportContext.<init>:(Lsun/security/ssl/SSLContextImpl;Lsun/security/ssl/SSLTransport;Lsun/security/ssl/InputRecord;Lsun/security/ssl/OutputRecord;Z)V
        10: .line 160
            putfield sun.security.ssl.SSLSocketImpl.conContext:Lsun/security/ssl/TransportContext;
        11: .line 164
            new java.net.InetSocketAddress
            dup
            aload 2 /* address */
            iload 3 /* peerPort */
            invokespecial java.net.InetSocketAddress.<init>:(Ljava/net/InetAddress;I)V
            astore 5 /* socketAddress */
        start local 5 // java.net.SocketAddress socketAddress
        12: .line 165
            aload 0 /* this */
            aload 5 /* socketAddress */
            iconst_0
            invokevirtual sun.security.ssl.SSLSocketImpl.connect:(Ljava/net/SocketAddress;I)V
        13: .line 166
            return
        end local 5 // java.net.SocketAddress socketAddress
        end local 4 // sun.security.ssl.HandshakeHash handshakeHash
        end local 3 // int peerPort
        end local 2 // java.net.InetAddress address
        end local 1 // sun.security.ssl.SSLContextImpl sslContext
        end local 0 // sun.security.ssl.SSLSocketImpl this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0   14     0           this  Lsun/security/ssl/SSLSocketImpl;
            0   14     1     sslContext  Lsun/security/ssl/SSLContextImpl;
            0   14     2        address  Ljava/net/InetAddress;
            0   14     3       peerPort  I
            7   14     4  handshakeHash  Lsun/security/ssl/HandshakeHash;
           12   14     5  socketAddress  Ljava/net/SocketAddress;
    Exceptions:
      throws java.io.IOException
    MethodParameters:
            Name  Flags
      sslContext  
      address     
      peerPort    

  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=9, locals=8, args_size=6
        start local 0 // sun.security.ssl.SSLSocketImpl this
        start local 1 // sun.security.ssl.SSLContextImpl sslContext
        start local 2 // java.lang.String peerHost
        start local 3 // int peerPort
        start local 4 // java.net.InetAddress localAddr
        start local 5 // int localPort
         0: .line 178
            aload 0 /* this */
            invokespecial sun.security.ssl.BaseSSLSocketImpl.<init>:()V
         1: .line 79
            aload 0 /* this */
            new sun.security.ssl.SSLSocketImpl$AppInputStream
            dup
            aload 0 /* this */
            invokespecial sun.security.ssl.SSLSocketImpl$AppInputStream.<init>:(Lsun/security/ssl/SSLSocketImpl;)V
            putfield sun.security.ssl.SSLSocketImpl.appInput:Lsun/security/ssl/SSLSocketImpl$AppInputStream;
         2: .line 80
            aload 0 /* this */
            new sun.security.ssl.SSLSocketImpl$AppOutputStream
            dup
            aload 0 /* this */
            invokespecial sun.security.ssl.SSLSocketImpl$AppOutputStream.<init>:(Lsun/security/ssl/SSLSocketImpl;)V
            putfield sun.security.ssl.SSLSocketImpl.appOutput:Lsun/security/ssl/SSLSocketImpl$AppOutputStream;
         3: .line 84
            aload 0 /* this */
            iconst_0
            putfield sun.security.ssl.SSLSocketImpl.isConnected:Z
         4: .line 85
            aload 0 /* this */
            iconst_0
            putfield sun.security.ssl.SSLSocketImpl.tlsIsClosed:Z
         5: .line 179
            aload 0 /* this */
            aload 1 /* sslContext */
            putfield sun.security.ssl.SSLSocketImpl.sslContext:Lsun/security/ssl/SSLContextImpl;
         6: .line 180
            new sun.security.ssl.HandshakeHash
            dup
            invokespecial sun.security.ssl.HandshakeHash.<init>:()V
            astore 6 /* handshakeHash */
        start local 6 // sun.security.ssl.HandshakeHash handshakeHash
         7: .line 181
            aload 0 /* this */
            new sun.security.ssl.TransportContext
            dup
            aload 1 /* sslContext */
            aload 0 /* this */
         8: .line 182
            new sun.security.ssl.SSLSocketInputRecord
            dup
            aload 6 /* handshakeHash */
            invokespecial sun.security.ssl.SSLSocketInputRecord.<init>:(Lsun/security/ssl/HandshakeHash;)V
         9: .line 183
            new sun.security.ssl.SSLSocketOutputRecord
            dup
            aload 6 /* handshakeHash */
            invokespecial sun.security.ssl.SSLSocketOutputRecord.<init>:(Lsun/security/ssl/HandshakeHash;)V
            iconst_1
            invokespecial sun.security.ssl.TransportContext.<init>:(Lsun/security/ssl/SSLContextImpl;Lsun/security/ssl/SSLTransport;Lsun/security/ssl/InputRecord;Lsun/security/ssl/OutputRecord;Z)V
        10: .line 181
            putfield sun.security.ssl.SSLSocketImpl.conContext:Lsun/security/ssl/TransportContext;
        11: .line 184
            aload 0 /* this */
            aload 2 /* peerHost */
            putfield sun.security.ssl.SSLSocketImpl.peerHost:Ljava/lang/String;
        12: .line 186
            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
        13: .line 188
            aload 2 /* peerHost */
            ifnull 14
            new java.net.InetSocketAddress
            dup
            aload 2 /* peerHost */
            iload 3 /* peerPort */
            invokespecial java.net.InetSocketAddress.<init>:(Ljava/lang/String;I)V
            goto 15
        14: .line 189
      StackMap locals: sun.security.ssl.SSLSocketImpl sun.security.ssl.SSLContextImpl java.lang.String int java.net.InetAddress int sun.security.ssl.HandshakeHash
      StackMap stack:
            new java.net.InetSocketAddress
            dup
            aconst_null
            invokestatic java.net.InetAddress.getByName:(Ljava/lang/String;)Ljava/net/InetAddress;
            iload 3 /* peerPort */
            invokespecial java.net.InetSocketAddress.<init>:(Ljava/net/InetAddress;I)V
        15: .line 187
      StackMap locals:
      StackMap stack: java.net.InetSocketAddress
            astore 7 /* socketAddress */
        start local 7 // java.net.SocketAddress socketAddress
        16: .line 190
            aload 0 /* this */
            aload 7 /* socketAddress */
            iconst_0
            invokevirtual sun.security.ssl.SSLSocketImpl.connect:(Ljava/net/SocketAddress;I)V
        17: .line 191
            return
        end local 7 // java.net.SocketAddress socketAddress
        end local 6 // sun.security.ssl.HandshakeHash handshakeHash
        end local 5 // int localPort
        end local 4 // java.net.InetAddress localAddr
        end local 3 // int peerPort
        end local 2 // java.lang.String peerHost
        end local 1 // sun.security.ssl.SSLContextImpl sslContext
        end local 0 // sun.security.ssl.SSLSocketImpl this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0   18     0           this  Lsun/security/ssl/SSLSocketImpl;
            0   18     1     sslContext  Lsun/security/ssl/SSLContextImpl;
            0   18     2       peerHost  Ljava/lang/String;
            0   18     3       peerPort  I
            0   18     4      localAddr  Ljava/net/InetAddress;
            0   18     5      localPort  I
            7   18     6  handshakeHash  Lsun/security/ssl/HandshakeHash;
           16   18     7  socketAddress  Ljava/net/SocketAddress;
    Exceptions:
      throws java.io.IOException, java.net.UnknownHostException
    MethodParameters:
            Name  Flags
      sslContext  
      peerHost    
      peerPort    
      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=9, locals=8, args_size=6
        start local 0 // sun.security.ssl.SSLSocketImpl this
        start local 1 // sun.security.ssl.SSLContextImpl sslContext
        start local 2 // java.net.InetAddress peerAddr
        start local 3 // int peerPort
        start local 4 // java.net.InetAddress localAddr
        start local 5 // int localPort
         0: .line 204
            aload 0 /* this */
            invokespecial sun.security.ssl.BaseSSLSocketImpl.<init>:()V
         1: .line 79
            aload 0 /* this */
            new sun.security.ssl.SSLSocketImpl$AppInputStream
            dup
            aload 0 /* this */
            invokespecial sun.security.ssl.SSLSocketImpl$AppInputStream.<init>:(Lsun/security/ssl/SSLSocketImpl;)V
            putfield sun.security.ssl.SSLSocketImpl.appInput:Lsun/security/ssl/SSLSocketImpl$AppInputStream;
         2: .line 80
            aload 0 /* this */
            new sun.security.ssl.SSLSocketImpl$AppOutputStream
            dup
            aload 0 /* this */
            invokespecial sun.security.ssl.SSLSocketImpl$AppOutputStream.<init>:(Lsun/security/ssl/SSLSocketImpl;)V
            putfield sun.security.ssl.SSLSocketImpl.appOutput:Lsun/security/ssl/SSLSocketImpl$AppOutputStream;
         3: .line 84
            aload 0 /* this */
            iconst_0
            putfield sun.security.ssl.SSLSocketImpl.isConnected:Z
         4: .line 85
            aload 0 /* this */
            iconst_0
            putfield sun.security.ssl.SSLSocketImpl.tlsIsClosed:Z
         5: .line 205
            aload 0 /* this */
            aload 1 /* sslContext */
            putfield sun.security.ssl.SSLSocketImpl.sslContext:Lsun/security/ssl/SSLContextImpl;
         6: .line 206
            new sun.security.ssl.HandshakeHash
            dup
            invokespecial sun.security.ssl.HandshakeHash.<init>:()V
            astore 6 /* handshakeHash */
        start local 6 // sun.security.ssl.HandshakeHash handshakeHash
         7: .line 207
            aload 0 /* this */
            new sun.security.ssl.TransportContext
            dup
            aload 1 /* sslContext */
            aload 0 /* this */
         8: .line 208
            new sun.security.ssl.SSLSocketInputRecord
            dup
            aload 6 /* handshakeHash */
            invokespecial sun.security.ssl.SSLSocketInputRecord.<init>:(Lsun/security/ssl/HandshakeHash;)V
         9: .line 209
            new sun.security.ssl.SSLSocketOutputRecord
            dup
            aload 6 /* handshakeHash */
            invokespecial sun.security.ssl.SSLSocketOutputRecord.<init>:(Lsun/security/ssl/HandshakeHash;)V
            iconst_1
            invokespecial sun.security.ssl.TransportContext.<init>:(Lsun/security/ssl/SSLContextImpl;Lsun/security/ssl/SSLTransport;Lsun/security/ssl/InputRecord;Lsun/security/ssl/OutputRecord;Z)V
        10: .line 207
            putfield sun.security.ssl.SSLSocketImpl.conContext:Lsun/security/ssl/TransportContext;
        11: .line 211
            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
        12: .line 212
            new java.net.InetSocketAddress
            dup
            aload 2 /* peerAddr */
            iload 3 /* peerPort */
            invokespecial java.net.InetSocketAddress.<init>:(Ljava/net/InetAddress;I)V
            astore 7 /* socketAddress */
        start local 7 // java.net.SocketAddress socketAddress
        13: .line 213
            aload 0 /* this */
            aload 7 /* socketAddress */
            iconst_0
            invokevirtual sun.security.ssl.SSLSocketImpl.connect:(Ljava/net/SocketAddress;I)V
        14: .line 214
            return
        end local 7 // java.net.SocketAddress socketAddress
        end local 6 // sun.security.ssl.HandshakeHash handshakeHash
        end local 5 // int localPort
        end local 4 // java.net.InetAddress localAddr
        end local 3 // int peerPort
        end local 2 // java.net.InetAddress peerAddr
        end local 1 // sun.security.ssl.SSLContextImpl sslContext
        end local 0 // sun.security.ssl.SSLSocketImpl this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0   15     0           this  Lsun/security/ssl/SSLSocketImpl;
            0   15     1     sslContext  Lsun/security/ssl/SSLContextImpl;
            0   15     2       peerAddr  Ljava/net/InetAddress;
            0   15     3       peerPort  I
            0   15     4      localAddr  Ljava/net/InetAddress;
            0   15     5      localPort  I
            7   15     6  handshakeHash  Lsun/security/ssl/HandshakeHash;
           13   15     7  socketAddress  Ljava/net/SocketAddress;
    Exceptions:
      throws java.io.IOException
    MethodParameters:
            Name  Flags
      sslContext  
      peerAddr    
      peerPort    
      localAddr   
      localPort   

  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=9, locals=6, args_size=5
        start local 0 // sun.security.ssl.SSLSocketImpl this
        start local 1 // sun.security.ssl.SSLContextImpl sslContext
        start local 2 // java.net.Socket sock
        start local 3 // java.io.InputStream consumed
        start local 4 // boolean autoClose
         0: .line 224
            aload 0 /* this */
            aload 2 /* sock */
            aload 3 /* consumed */
            invokespecial sun.security.ssl.BaseSSLSocketImpl.<init>:(Ljava/net/Socket;Ljava/io/InputStream;)V
         1: .line 79
            aload 0 /* this */
            new sun.security.ssl.SSLSocketImpl$AppInputStream
            dup
            aload 0 /* this */
            invokespecial sun.security.ssl.SSLSocketImpl$AppInputStream.<init>:(Lsun/security/ssl/SSLSocketImpl;)V
            putfield sun.security.ssl.SSLSocketImpl.appInput:Lsun/security/ssl/SSLSocketImpl$AppInputStream;
         2: .line 80
            aload 0 /* this */
            new sun.security.ssl.SSLSocketImpl$AppOutputStream
            dup
            aload 0 /* this */
            invokespecial sun.security.ssl.SSLSocketImpl$AppOutputStream.<init>:(Lsun/security/ssl/SSLSocketImpl;)V
            putfield sun.security.ssl.SSLSocketImpl.appOutput:Lsun/security/ssl/SSLSocketImpl$AppOutputStream;
         3: .line 84
            aload 0 /* this */
            iconst_0
            putfield sun.security.ssl.SSLSocketImpl.isConnected:Z
         4: .line 85
            aload 0 /* this */
            iconst_0
            putfield sun.security.ssl.SSLSocketImpl.tlsIsClosed:Z
         5: .line 226
            aload 2 /* sock */
            invokevirtual java.net.Socket.isConnected:()Z
            ifne 7
         6: .line 227
            new java.net.SocketException
            dup
            ldc "Underlying socket is not connected"
            invokespecial java.net.SocketException.<init>:(Ljava/lang/String;)V
            athrow
         7: .line 230
      StackMap locals: sun.security.ssl.SSLSocketImpl sun.security.ssl.SSLContextImpl java.net.Socket java.io.InputStream int
      StackMap stack:
            aload 0 /* this */
            aload 1 /* sslContext */
            putfield sun.security.ssl.SSLSocketImpl.sslContext:Lsun/security/ssl/SSLContextImpl;
         8: .line 231
            new sun.security.ssl.HandshakeHash
            dup
            invokespecial sun.security.ssl.HandshakeHash.<init>:()V
            astore 5 /* handshakeHash */
        start local 5 // sun.security.ssl.HandshakeHash handshakeHash
         9: .line 232
            aload 0 /* this */
            new sun.security.ssl.TransportContext
            dup
            aload 1 /* sslContext */
            aload 0 /* this */
        10: .line 233
            new sun.security.ssl.SSLSocketInputRecord
            dup
            aload 5 /* handshakeHash */
            invokespecial sun.security.ssl.SSLSocketInputRecord.<init>:(Lsun/security/ssl/HandshakeHash;)V
        11: .line 234
            new sun.security.ssl.SSLSocketOutputRecord
            dup
            aload 5 /* handshakeHash */
            invokespecial sun.security.ssl.SSLSocketOutputRecord.<init>:(Lsun/security/ssl/HandshakeHash;)V
            iconst_0
            invokespecial sun.security.ssl.TransportContext.<init>:(Lsun/security/ssl/SSLContextImpl;Lsun/security/ssl/SSLTransport;Lsun/security/ssl/InputRecord;Lsun/security/ssl/OutputRecord;Z)V
        12: .line 232
            putfield sun.security.ssl.SSLSocketImpl.conContext:Lsun/security/ssl/TransportContext;
        13: .line 235
            aload 0 /* this */
            iload 4 /* autoClose */
            putfield sun.security.ssl.SSLSocketImpl.autoClose:Z
        14: .line 236
            aload 0 /* this */
            invokevirtual sun.security.ssl.SSLSocketImpl.doneConnect:()V
        15: .line 237
            return
        end local 5 // sun.security.ssl.HandshakeHash handshakeHash
        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 sslContext
        end local 0 // sun.security.ssl.SSLSocketImpl this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0   16     0           this  Lsun/security/ssl/SSLSocketImpl;
            0   16     1     sslContext  Lsun/security/ssl/SSLContextImpl;
            0   16     2           sock  Ljava/net/Socket;
            0   16     3       consumed  Ljava/io/InputStream;
            0   16     4      autoClose  Z
            9   16     5  handshakeHash  Lsun/security/ssl/HandshakeHash;
    Exceptions:
      throws java.io.IOException
    MethodParameters:
            Name  Flags
      sslContext  
      sock        
      consumed    
      autoClose   

  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=9, locals=7, args_size=6
        start local 0 // sun.security.ssl.SSLSocketImpl this
        start local 1 // sun.security.ssl.SSLContextImpl sslContext
        start local 2 // java.net.Socket sock
        start local 3 // java.lang.String peerHost
        start local 4 // int port
        start local 5 // boolean autoClose
         0: .line 256
            aload 0 /* this */
            aload 2 /* sock */
            invokespecial sun.security.ssl.BaseSSLSocketImpl.<init>:(Ljava/net/Socket;)V
         1: .line 79
            aload 0 /* this */
            new sun.security.ssl.SSLSocketImpl$AppInputStream
            dup
            aload 0 /* this */
            invokespecial sun.security.ssl.SSLSocketImpl$AppInputStream.<init>:(Lsun/security/ssl/SSLSocketImpl;)V
            putfield sun.security.ssl.SSLSocketImpl.appInput:Lsun/security/ssl/SSLSocketImpl$AppInputStream;
         2: .line 80
            aload 0 /* this */
            new sun.security.ssl.SSLSocketImpl$AppOutputStream
            dup
            aload 0 /* this */
            invokespecial sun.security.ssl.SSLSocketImpl$AppOutputStream.<init>:(Lsun/security/ssl/SSLSocketImpl;)V
            putfield sun.security.ssl.SSLSocketImpl.appOutput:Lsun/security/ssl/SSLSocketImpl$AppOutputStream;
         3: .line 84
            aload 0 /* this */
            iconst_0
            putfield sun.security.ssl.SSLSocketImpl.isConnected:Z
         4: .line 85
            aload 0 /* this */
            iconst_0
            putfield sun.security.ssl.SSLSocketImpl.tlsIsClosed:Z
         5: .line 258
            aload 2 /* sock */
            invokevirtual java.net.Socket.isConnected:()Z
            ifne 7
         6: .line 259
            new java.net.SocketException
            dup
            ldc "Underlying socket is not connected"
            invokespecial java.net.SocketException.<init>:(Ljava/lang/String;)V
            athrow
         7: .line 262
      StackMap locals: sun.security.ssl.SSLSocketImpl sun.security.ssl.SSLContextImpl java.net.Socket java.lang.String int int
      StackMap stack:
            aload 0 /* this */
            aload 1 /* sslContext */
            putfield sun.security.ssl.SSLSocketImpl.sslContext:Lsun/security/ssl/SSLContextImpl;
         8: .line 263
            new sun.security.ssl.HandshakeHash
            dup
            invokespecial sun.security.ssl.HandshakeHash.<init>:()V
            astore 6 /* handshakeHash */
        start local 6 // sun.security.ssl.HandshakeHash handshakeHash
         9: .line 264
            aload 0 /* this */
            new sun.security.ssl.TransportContext
            dup
            aload 1 /* sslContext */
            aload 0 /* this */
        10: .line 265
            new sun.security.ssl.SSLSocketInputRecord
            dup
            aload 6 /* handshakeHash */
            invokespecial sun.security.ssl.SSLSocketInputRecord.<init>:(Lsun/security/ssl/HandshakeHash;)V
        11: .line 266
            new sun.security.ssl.SSLSocketOutputRecord
            dup
            aload 6 /* handshakeHash */
            invokespecial sun.security.ssl.SSLSocketOutputRecord.<init>:(Lsun/security/ssl/HandshakeHash;)V
            iconst_1
            invokespecial sun.security.ssl.TransportContext.<init>:(Lsun/security/ssl/SSLContextImpl;Lsun/security/ssl/SSLTransport;Lsun/security/ssl/InputRecord;Lsun/security/ssl/OutputRecord;Z)V
        12: .line 264
            putfield sun.security.ssl.SSLSocketImpl.conContext:Lsun/security/ssl/TransportContext;
        13: .line 267
            aload 0 /* this */
            aload 3 /* peerHost */
            putfield sun.security.ssl.SSLSocketImpl.peerHost:Ljava/lang/String;
        14: .line 268
            aload 0 /* this */
            iload 5 /* autoClose */
            putfield sun.security.ssl.SSLSocketImpl.autoClose:Z
        15: .line 269
            aload 0 /* this */
            invokevirtual sun.security.ssl.SSLSocketImpl.doneConnect:()V
        16: .line 270
            return
        end local 6 // sun.security.ssl.HandshakeHash handshakeHash
        end local 5 // boolean autoClose
        end local 4 // int port
        end local 3 // java.lang.String peerHost
        end local 2 // java.net.Socket sock
        end local 1 // sun.security.ssl.SSLContextImpl sslContext
        end local 0 // sun.security.ssl.SSLSocketImpl this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0   17     0           this  Lsun/security/ssl/SSLSocketImpl;
            0   17     1     sslContext  Lsun/security/ssl/SSLContextImpl;
            0   17     2           sock  Ljava/net/Socket;
            0   17     3       peerHost  Ljava/lang/String;
            0   17     4           port  I
            0   17     5      autoClose  Z
            9   17     6  handshakeHash  Lsun/security/ssl/HandshakeHash;
    Exceptions:
      throws java.io.IOException
    MethodParameters:
            Name  Flags
      sslContext  
      sock        
      peerHost    
      port        
      autoClose   

  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 276
            aload 0 /* this */
            invokevirtual sun.security.ssl.SSLSocketImpl.isLayered:()Z
            ifeq 2
         1: .line 277
            new java.net.SocketException
            dup
            ldc "Already connected"
            invokespecial java.net.SocketException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 280
      StackMap locals:
      StackMap stack:
            aload 1 /* endpoint */
            instanceof java.net.InetSocketAddress
            ifne 6
         3: .line 281
            new java.net.SocketException
            dup
         4: .line 282
            ldc "Cannot handle non-Inet socket addresses."
         5: .line 281
            invokespecial java.net.SocketException.<init>:(Ljava/lang/String;)V
            athrow
         6: .line 285
      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 286
            aload 0 /* this */
            invokevirtual sun.security.ssl.SSLSocketImpl.doneConnect:()V
         8: .line 287
            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    9     0      this  Lsun/security/ssl/SSLSocketImpl;
            0    9     1  endpoint  Ljava/net/SocketAddress;
            0    9     2   timeout  I
    Exceptions:
      throws java.io.IOException
    MethodParameters:
          Name  Flags
      endpoint  
      timeout   

  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 291
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.sslContext:Lsun/security/ssl/SSLContextImpl;
            invokevirtual sun.security.ssl.SSLContextImpl.getSupportedCipherSuites:()Ljava/util/List;
            invokestatic sun.security.ssl.CipherSuite.namesOf:(Ljava/util/List;)[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[] 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 296
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.conContext:Lsun/security/ssl/TransportContext;
            getfield sun.security.ssl.TransportContext.sslConfig:Lsun/security/ssl/SSLConfiguration;
            getfield sun.security.ssl.SSLConfiguration.enabledCipherSuites:Ljava/util/List;
            invokestatic sun.security.ssl.CipherSuite.namesOf:(Ljava/util/List;)[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=2, locals=2, args_size=2
        start local 0 // sun.security.ssl.SSLSocketImpl this
        start local 1 // java.lang.String[] suites
         0: .line 301
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.conContext:Lsun/security/ssl/TransportContext;
            getfield sun.security.ssl.TransportContext.sslConfig:Lsun/security/ssl/SSLConfiguration;
         1: .line 302
            aload 1 /* suites */
            invokestatic sun.security.ssl.CipherSuite.validValuesOf:([Ljava/lang/String;)Ljava/util/List;
         2: .line 301
            putfield sun.security.ssl.SSLConfiguration.enabledCipherSuites:Ljava/util/List;
         3: .line 303
            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 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 308
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.sslContext:Lsun/security/ssl/SSLContextImpl;
            invokevirtual sun.security.ssl.SSLContextImpl.getSupportedProtocolVersions:()Ljava/util/List;
         1: .line 307
            invokestatic sun.security.ssl.ProtocolVersion.toStringArray:(Ljava/util/List;)[Ljava/lang/String;
            areturn
        end local 0 // sun.security.ssl.SSLSocketImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lsun/security/ssl/SSLSocketImpl;

  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 314
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.conContext:Lsun/security/ssl/TransportContext;
            getfield sun.security.ssl.TransportContext.sslConfig:Lsun/security/ssl/SSLConfiguration;
            getfield sun.security.ssl.SSLConfiguration.enabledProtocols:Ljava/util/List;
         1: .line 313
            invokestatic sun.security.ssl.ProtocolVersion.toStringArray:(Ljava/util/List;)[Ljava/lang/String;
            areturn
        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 setEnabledProtocols(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[] protocols
         0: .line 319
            aload 1 /* protocols */
            ifnonnull 2
         1: .line 320
            new java.lang.IllegalArgumentException
            dup
            ldc "Protocols cannot be null"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 323
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.conContext:Lsun/security/ssl/TransportContext;
            getfield sun.security.ssl.TransportContext.sslConfig:Lsun/security/ssl/SSLConfiguration;
         3: .line 324
            aload 1 /* protocols */
            invokestatic sun.security.ssl.ProtocolVersion.namesOf:([Ljava/lang/String;)Ljava/util/List;
         4: .line 323
            putfield sun.security.ssl.SSLConfiguration.enabledProtocols:Ljava/util/List;
         5: .line 325
            return
        end local 1 // java.lang.String[] protocols
        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  protocols  [Ljava/lang/String;
    MethodParameters:
           Name  Flags
      protocols  

  public javax.net.ssl.SSLSession getSession();
    descriptor: ()Ljavax/net/ssl/SSLSession;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=2, args_size=1
        start local 0 // sun.security.ssl.SSLSocketImpl this
         0: .line 331
            aload 0 /* this */
            invokevirtual sun.security.ssl.SSLSocketImpl.ensureNegotiated:()V
         1: .line 332
            goto 6
      StackMap locals:
      StackMap stack: java.io.IOException
         2: astore 1 /* ioe */
        start local 1 // java.io.IOException ioe
         3: .line 333
            getstatic sun.security.ssl.SSLLogger.isOn:Z
            ifeq 5
            ldc "handshake"
            invokestatic sun.security.ssl.SSLLogger.isOn:(Ljava/lang/String;)Z
            ifeq 5
         4: .line 334
            ldc "handshake failed"
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            aload 1 /* ioe */
            aastore
            invokestatic sun.security.ssl.SSLLogger.severe:(Ljava/lang/String;[Ljava/lang/Object;)V
         5: .line 337
      StackMap locals: java.io.IOException
      StackMap stack:
            getstatic sun.security.ssl.SSLSessionImpl.nullSession:Lsun/security/ssl/SSLSessionImpl;
            areturn
        end local 1 // java.io.IOException ioe
         6: .line 340
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.conContext:Lsun/security/ssl/TransportContext;
            getfield sun.security.ssl.TransportContext.conSession:Lsun/security/ssl/SSLSessionImpl;
            areturn
        end local 0 // sun.security.ssl.SSLSocketImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    7     0  this  Lsun/security/ssl/SSLSocketImpl;
            3    6     1   ioe  Ljava/io/IOException;
      Exception table:
        from    to  target  type
           0     1       2  Class java.io.IOException

  public synchronized javax.net.ssl.SSLSession getHandshakeSession();
    descriptor: ()Ljavax/net/ssl/SSLSession;
    flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
    Code:
      stack=2, locals=2, args_size=1
        start local 0 // sun.security.ssl.SSLSocketImpl this
         0: .line 345
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.conContext:Lsun/security/ssl/TransportContext;
            getfield sun.security.ssl.TransportContext.handshakeContext:Lsun/security/ssl/HandshakeContext;
            ifnull 9
         1: .line 346
            aload 0 /* this */
            dup
            astore 1
            monitorenter
         2: .line 347
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.conContext:Lsun/security/ssl/TransportContext;
            getfield sun.security.ssl.TransportContext.handshakeContext:Lsun/security/ssl/HandshakeContext;
            ifnull 5
         3: .line 348
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.conContext:Lsun/security/ssl/TransportContext;
            getfield sun.security.ssl.TransportContext.handshakeContext:Lsun/security/ssl/HandshakeContext;
            getfield sun.security.ssl.HandshakeContext.handshakeSession:Lsun/security/ssl/SSLSessionImpl;
            aload 1
            monitorexit
         4: areturn
         5: .line 346
      StackMap locals: sun.security.ssl.SSLSocketImpl
      StackMap stack:
            aload 1
            monitorexit
         6: goto 9
      StackMap locals:
      StackMap stack: java.lang.Throwable
         7: aload 1
            monitorexit
         8: athrow
         9: .line 353
      StackMap locals:
      StackMap stack:
            aconst_null
            areturn
        end local 0 // sun.security.ssl.SSLSocketImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   10     0  this  Lsun/security/ssl/SSLSocketImpl;
      Exception table:
        from    to  target  type
           2     4       7  any
           5     6       7  any
           7     8       7  any

  public synchronized void addHandshakeCompletedListener(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 359
            aload 1 /* listener */
            ifnonnull 2
         1: .line 360
            new java.lang.IllegalArgumentException
            dup
            ldc "listener is null"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 363
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.conContext:Lsun/security/ssl/TransportContext;
            getfield sun.security.ssl.TransportContext.sslConfig:Lsun/security/ssl/SSLConfiguration;
            aload 1 /* listener */
            invokevirtual sun.security.ssl.SSLConfiguration.addHandshakeCompletedListener:(Ljavax/net/ssl/HandshakeCompletedListener;)V
         3: .line 364
            return
        end local 1 // javax.net.ssl.HandshakeCompletedListener listener
        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  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 369
            aload 1 /* listener */
            ifnonnull 2
         1: .line 370
            new java.lang.IllegalArgumentException
            dup
            ldc "listener is null"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 373
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.conContext:Lsun/security/ssl/TransportContext;
            getfield sun.security.ssl.TransportContext.sslConfig:Lsun/security/ssl/SSLConfiguration;
            aload 1 /* listener */
            invokevirtual sun.security.ssl.SSLConfiguration.removeHandshakeCompletedListener:(Ljavax/net/ssl/HandshakeCompletedListener;)V
         3: .line 374
            return
        end local 1 // javax.net.ssl.HandshakeCompletedListener listener
        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  listener  Ljavax/net/ssl/HandshakeCompletedListener;
    MethodParameters:
          Name  Flags
      listener  

  public void startHandshake();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=3, args_size=1
        start local 0 // sun.security.ssl.SSLSocketImpl this
         0: .line 378
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.isConnected:Z
            ifne 2
         1: .line 379
            new java.net.SocketException
            dup
            ldc "Socket is not connected"
            invokespecial java.net.SocketException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 382
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.conContext:Lsun/security/ssl/TransportContext;
            getfield sun.security.ssl.TransportContext.isBroken:Z
            ifne 4
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.conContext:Lsun/security/ssl/TransportContext;
            invokevirtual sun.security.ssl.TransportContext.isInboundClosed:()Z
            ifne 4
         3: .line 383
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.conContext:Lsun/security/ssl/TransportContext;
            invokevirtual sun.security.ssl.TransportContext.isOutboundClosed:()Z
            ifeq 5
         4: .line 384
      StackMap locals:
      StackMap stack:
            new java.net.SocketException
            dup
            ldc "Socket has been closed or broken"
            invokespecial java.net.SocketException.<init>:(Ljava/lang/String;)V
            athrow
         5: .line 387
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.conContext:Lsun/security/ssl/TransportContext;
            dup
            astore 1
            monitorenter
         6: .line 389
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.conContext:Lsun/security/ssl/TransportContext;
            getfield sun.security.ssl.TransportContext.isBroken:Z
            ifne 8
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.conContext:Lsun/security/ssl/TransportContext;
            invokevirtual sun.security.ssl.TransportContext.isInboundClosed:()Z
            ifne 8
         7: .line 390
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.conContext:Lsun/security/ssl/TransportContext;
            invokevirtual sun.security.ssl.TransportContext.isOutboundClosed:()Z
            ifeq 9
         8: .line 391
      StackMap locals: sun.security.ssl.TransportContext
      StackMap stack:
            new java.net.SocketException
            dup
            ldc "Socket has been closed or broken"
            invokespecial java.net.SocketException.<init>:(Ljava/lang/String;)V
            athrow
         9: .line 395
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.conContext:Lsun/security/ssl/TransportContext;
            invokevirtual sun.security.ssl.TransportContext.kickstart:()V
        10: .line 401
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.conContext:Lsun/security/ssl/TransportContext;
            getfield sun.security.ssl.TransportContext.isNegotiated:Z
            ifne 19
        11: .line 402
            aload 0 /* this */
            invokevirtual sun.security.ssl.SSLSocketImpl.readHandshakeRecord:()I
            pop
        12: .line 404
            goto 19
      StackMap locals:
      StackMap stack: java.io.IOException
        13: astore 2 /* ioe */
        start local 2 // java.io.IOException ioe
        14: .line 405
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.conContext:Lsun/security/ssl/TransportContext;
            getstatic sun.security.ssl.Alert.HANDSHAKE_FAILURE:Lsun/security/ssl/Alert;
        15: .line 406
            ldc "Couldn't kickstart handshaking"
            aload 2 /* ioe */
        16: .line 405
            invokevirtual sun.security.ssl.TransportContext.fatal:(Lsun/security/ssl/Alert;Ljava/lang/String;Ljava/lang/Throwable;)Ljavax/net/ssl/SSLException;
            athrow
        end local 2 // java.io.IOException ioe
        17: .line 407
      StackMap locals:
      StackMap stack: java.lang.Exception
            astore 2 /* oe */
        start local 2 // java.lang.Exception oe
        18: .line 408
            aload 0 /* this */
            aload 2 /* oe */
            invokevirtual sun.security.ssl.SSLSocketImpl.handleException:(Ljava/lang/Exception;)V
        end local 2 // java.lang.Exception oe
        19: .line 387
      StackMap locals:
      StackMap stack:
            aload 1
            monitorexit
        20: goto 23
      StackMap locals:
      StackMap stack: java.lang.Throwable
        21: aload 1
            monitorexit
        22: athrow
        23: .line 411
      StackMap locals:
      StackMap stack:
            return
        end local 0 // sun.security.ssl.SSLSocketImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   24     0  this  Lsun/security/ssl/SSLSocketImpl;
           14   17     2   ioe  Ljava/io/IOException;
           18   19     2    oe  Ljava/lang/Exception;
      Exception table:
        from    to  target  type
           9    12      13  Class java.io.IOException
           9    12      17  Class java.lang.Exception
           6    20      21  any
          21    22      21  any
    Exceptions:
      throws java.io.IOException

  public synchronized void setUseClientMode(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 mode
         0: .line 415
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.conContext:Lsun/security/ssl/TransportContext;
            iload 1 /* mode */
            invokevirtual sun.security.ssl.TransportContext.setUseClientMode:(Z)V
         1: .line 416
            return
        end local 1 // boolean mode
        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  mode  Z
    MethodParameters:
      Name  Flags
      mode  

  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 420
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.conContext:Lsun/security/ssl/TransportContext;
            getfield sun.security.ssl.TransportContext.sslConfig:Lsun/security/ssl/SSLConfiguration;
            getfield sun.security.ssl.SSLConfiguration.isClientMode: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 need
         0: .line 425
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.conContext:Lsun/security/ssl/TransportContext;
            getfield sun.security.ssl.TransportContext.sslConfig:Lsun/security/ssl/SSLConfiguration;
         1: .line 426
            iload 1 /* need */
            ifeq 2
            getstatic sun.security.ssl.ClientAuthType.CLIENT_AUTH_REQUIRED:Lsun/security/ssl/ClientAuthType;
            goto 3
         2: .line 427
      StackMap locals:
      StackMap stack: sun.security.ssl.SSLConfiguration
            getstatic sun.security.ssl.ClientAuthType.CLIENT_AUTH_NONE:Lsun/security/ssl/ClientAuthType;
         3: .line 425
      StackMap locals: sun.security.ssl.SSLSocketImpl int
      StackMap stack: sun.security.ssl.SSLConfiguration sun.security.ssl.ClientAuthType
            putfield sun.security.ssl.SSLConfiguration.clientAuthType:Lsun/security/ssl/ClientAuthType;
         4: .line 428
            return
        end local 1 // boolean need
        end local 0 // sun.security.ssl.SSLSocketImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0  this  Lsun/security/ssl/SSLSocketImpl;
            0    5     1  need  Z
    MethodParameters:
      Name  Flags
      need  

  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 432
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.conContext:Lsun/security/ssl/TransportContext;
            getfield sun.security.ssl.TransportContext.sslConfig:Lsun/security/ssl/SSLConfiguration;
            getfield sun.security.ssl.SSLConfiguration.clientAuthType:Lsun/security/ssl/ClientAuthType;
         1: .line 433
            getstatic sun.security.ssl.ClientAuthType.CLIENT_AUTH_REQUIRED:Lsun/security/ssl/ClientAuthType;
         2: .line 432
            if_acmpne 3
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         3: iconst_0
            ireturn
        end local 0 // sun.security.ssl.SSLSocketImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     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 want
         0: .line 438
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.conContext:Lsun/security/ssl/TransportContext;
            getfield sun.security.ssl.TransportContext.sslConfig:Lsun/security/ssl/SSLConfiguration;
         1: .line 439
            iload 1 /* want */
            ifeq 2
            getstatic sun.security.ssl.ClientAuthType.CLIENT_AUTH_REQUESTED:Lsun/security/ssl/ClientAuthType;
            goto 3
         2: .line 440
      StackMap locals:
      StackMap stack: sun.security.ssl.SSLConfiguration
            getstatic sun.security.ssl.ClientAuthType.CLIENT_AUTH_NONE:Lsun/security/ssl/ClientAuthType;
         3: .line 438
      StackMap locals: sun.security.ssl.SSLSocketImpl int
      StackMap stack: sun.security.ssl.SSLConfiguration sun.security.ssl.ClientAuthType
            putfield sun.security.ssl.SSLConfiguration.clientAuthType:Lsun/security/ssl/ClientAuthType;
         4: .line 441
            return
        end local 1 // boolean want
        end local 0 // sun.security.ssl.SSLSocketImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0  this  Lsun/security/ssl/SSLSocketImpl;
            0    5     1  want  Z
    MethodParameters:
      Name  Flags
      want  

  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 445
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.conContext:Lsun/security/ssl/TransportContext;
            getfield sun.security.ssl.TransportContext.sslConfig:Lsun/security/ssl/SSLConfiguration;
            getfield sun.security.ssl.SSLConfiguration.clientAuthType:Lsun/security/ssl/ClientAuthType;
         1: .line 446
            getstatic sun.security.ssl.ClientAuthType.CLIENT_AUTH_REQUESTED:Lsun/security/ssl/ClientAuthType;
         2: .line 445
            if_acmpne 3
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         3: iconst_0
            ireturn
        end local 0 // sun.security.ssl.SSLSocketImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Lsun/security/ssl/SSLSocketImpl;

  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 451
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.conContext:Lsun/security/ssl/TransportContext;
            getfield sun.security.ssl.TransportContext.sslConfig:Lsun/security/ssl/SSLConfiguration;
            iload 1 /* flag */
            putfield sun.security.ssl.SSLConfiguration.enableSessionCreation:Z
         1: .line 452
            return
        end local 1 // boolean flag
        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  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 456
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.conContext:Lsun/security/ssl/TransportContext;
            getfield sun.security.ssl.TransportContext.sslConfig:Lsun/security/ssl/SSLConfiguration;
            getfield sun.security.ssl.SSLConfiguration.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 boolean isClosed();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // sun.security.ssl.SSLSocketImpl this
         0: .line 461
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.tlsIsClosed: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 void close();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=3, args_size=1
        start local 0 // sun.security.ssl.SSLSocketImpl this
         0: .line 468
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.tlsIsClosed:Z
            ifeq 2
         1: .line 469
            return
         2: .line 472
      StackMap locals:
      StackMap stack:
            getstatic sun.security.ssl.SSLLogger.isOn:Z
            ifeq 4
            ldc "ssl"
            invokestatic sun.security.ssl.SSLLogger.isOn:(Ljava/lang/String;)Z
            ifeq 4
         3: .line 473
            ldc "duplex close of SSLSocket"
            iconst_0
            anewarray java.lang.Object
            invokestatic sun.security.ssl.SSLLogger.fine:(Ljava/lang/String;[Ljava/lang/Object;)V
         4: .line 478
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual sun.security.ssl.SSLSocketImpl.isOutputShutdown:()Z
            ifne 6
         5: .line 479
            aload 0 /* this */
            invokevirtual sun.security.ssl.SSLSocketImpl.duplexCloseOutput:()V
         6: .line 483
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual sun.security.ssl.SSLSocketImpl.isInputShutdown:()Z
            ifne 8
         7: .line 484
            aload 0 /* this */
            invokevirtual sun.security.ssl.SSLSocketImpl.duplexCloseInput:()V
         8: .line 487
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual sun.security.ssl.SSLSocketImpl.isClosed:()Z
            ifne 18
         9: .line 489
            aload 0 /* this */
            iconst_0
            invokevirtual sun.security.ssl.SSLSocketImpl.closeSocket:(Z)V
        10: .line 491
            goto 18
      StackMap locals:
      StackMap stack: java.io.IOException
        11: astore 1 /* ioe */
        start local 1 // java.io.IOException ioe
        12: .line 493
            getstatic sun.security.ssl.SSLLogger.isOn:Z
            ifeq 14
            ldc "ssl"
            invokestatic sun.security.ssl.SSLLogger.isOn:(Ljava/lang/String;)Z
            ifeq 14
        13: .line 494
            ldc "SSLSocket duplex close failed"
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            aload 1 /* ioe */
            aastore
            invokestatic sun.security.ssl.SSLLogger.warning:(Ljava/lang/String;[Ljava/lang/Object;)V
        end local 1 // java.io.IOException ioe
        14: .line 497
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iconst_1
            putfield sun.security.ssl.SSLSocketImpl.tlsIsClosed:Z
            goto 19
        15: .line 496
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 2
        16: .line 497
            aload 0 /* this */
            iconst_1
            putfield sun.security.ssl.SSLSocketImpl.tlsIsClosed:Z
        17: .line 498
            aload 2
            athrow
        18: .line 497
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iconst_1
            putfield sun.security.ssl.SSLSocketImpl.tlsIsClosed:Z
        19: .line 499
      StackMap locals:
      StackMap stack:
            return
        end local 0 // sun.security.ssl.SSLSocketImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   20     0  this  Lsun/security/ssl/SSLSocketImpl;
           12   14     1   ioe  Ljava/io/IOException;
      Exception table:
        from    to  target  type
           4    10      11  Class java.io.IOException
           4    14      15  any
    Exceptions:
      throws java.io.IOException

  private void duplexCloseOutput();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=5, args_size=1
        start local 0 // sun.security.ssl.SSLSocketImpl this
         0: .line 523
            iconst_0
            istore 1 /* useUserCanceled */
        start local 1 // boolean useUserCanceled
         1: .line 524
            iconst_0
            istore 2 /* hasCloseReceipt */
        start local 2 // boolean hasCloseReceipt
         2: .line 525
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.conContext:Lsun/security/ssl/TransportContext;
            getfield sun.security.ssl.TransportContext.isNegotiated:Z
            ifeq 8
         3: .line 526
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.conContext:Lsun/security/ssl/TransportContext;
            getfield sun.security.ssl.TransportContext.protocolVersion:Lsun/security/ssl/ProtocolVersion;
            invokevirtual sun.security.ssl.ProtocolVersion.useTLS13PlusSpec:()Z
            ifne 6
         4: .line 527
            iconst_1
            istore 2 /* hasCloseReceipt */
         5: .line 528
            goto 13
         6: .line 530
      StackMap locals: int int
      StackMap stack:
            iconst_1
            istore 1 /* useUserCanceled */
         7: .line 532
            goto 13
      StackMap locals:
      StackMap stack:
         8: aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.conContext:Lsun/security/ssl/TransportContext;
            getfield sun.security.ssl.TransportContext.handshakeContext:Lsun/security/ssl/HandshakeContext;
            ifnull 13
         9: .line 534
            iconst_1
            istore 1 /* useUserCanceled */
        10: .line 537
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.conContext:Lsun/security/ssl/TransportContext;
            getfield sun.security.ssl.TransportContext.handshakeContext:Lsun/security/ssl/HandshakeContext;
            getfield sun.security.ssl.HandshakeContext.negotiatedProtocol:Lsun/security/ssl/ProtocolVersion;
            astore 3 /* pv */
        start local 3 // sun.security.ssl.ProtocolVersion pv
        11: .line 538
            aload 3 /* pv */
            ifnull 12
            aload 3 /* pv */
            invokevirtual sun.security.ssl.ProtocolVersion.useTLS13PlusSpec:()Z
            ifne 13
        12: .line 539
      StackMap locals: sun.security.ssl.ProtocolVersion
      StackMap stack:
            iconst_1
            istore 2 /* hasCloseReceipt */
        end local 3 // sun.security.ssl.ProtocolVersion pv
        13: .line 546
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.conContext:Lsun/security/ssl/TransportContext;
            getfield sun.security.ssl.TransportContext.outputRecord:Lsun/security/ssl/OutputRecord;
            dup
            astore 3
            monitorenter
        14: .line 548
            iload 1 /* useUserCanceled */
            ifeq 16
        15: .line 549
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.conContext:Lsun/security/ssl/TransportContext;
            getstatic sun.security.ssl.Alert.USER_CANCELED:Lsun/security/ssl/Alert;
            invokevirtual sun.security.ssl.TransportContext.warning:(Lsun/security/ssl/Alert;)V
        16: .line 553
      StackMap locals: sun.security.ssl.OutputRecord
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.conContext:Lsun/security/ssl/TransportContext;
            getstatic sun.security.ssl.Alert.CLOSE_NOTIFY:Lsun/security/ssl/Alert;
            invokevirtual sun.security.ssl.TransportContext.warning:(Lsun/security/ssl/Alert;)V
        17: .line 546
            aload 3
            monitorexit
        18: goto 28
      StackMap locals:
      StackMap stack: java.lang.Throwable
        19: aload 3
            monitorexit
        20: athrow
        21: .line 555
      StackMap locals: sun.security.ssl.SSLSocketImpl int int
      StackMap stack: java.lang.Throwable
            astore 4
        22: .line 556
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.conContext:Lsun/security/ssl/TransportContext;
            invokevirtual sun.security.ssl.TransportContext.isOutboundClosed:()Z
            ifne 24
        23: .line 557
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.conContext:Lsun/security/ssl/TransportContext;
            getfield sun.security.ssl.TransportContext.outputRecord:Lsun/security/ssl/OutputRecord;
            invokevirtual sun.security.ssl.OutputRecord.close:()V
        24: .line 560
      StackMap locals: sun.security.ssl.SSLSocketImpl int int top java.lang.Throwable
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.autoClose:Z
            ifne 25
            aload 0 /* this */
            invokevirtual sun.security.ssl.SSLSocketImpl.isLayered:()Z
            ifne 27
      StackMap locals:
      StackMap stack:
        25: aload 0 /* this */
            invokespecial sun.security.ssl.BaseSSLSocketImpl.isOutputShutdown:()Z
            ifne 27
        26: .line 561
            aload 0 /* this */
            invokespecial sun.security.ssl.BaseSSLSocketImpl.shutdownOutput:()V
        27: .line 563
      StackMap locals:
      StackMap stack:
            aload 4
            athrow
        28: .line 556
      StackMap locals: sun.security.ssl.SSLSocketImpl int int
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.conContext:Lsun/security/ssl/TransportContext;
            invokevirtual sun.security.ssl.TransportContext.isOutboundClosed:()Z
            ifne 30
        29: .line 557
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.conContext:Lsun/security/ssl/TransportContext;
            getfield sun.security.ssl.TransportContext.outputRecord:Lsun/security/ssl/OutputRecord;
            invokevirtual sun.security.ssl.OutputRecord.close:()V
        30: .line 560
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.autoClose:Z
            ifne 31
            aload 0 /* this */
            invokevirtual sun.security.ssl.SSLSocketImpl.isLayered:()Z
            ifne 33
      StackMap locals:
      StackMap stack:
        31: aload 0 /* this */
            invokespecial sun.security.ssl.BaseSSLSocketImpl.isOutputShutdown:()Z
            ifne 33
        32: .line 561
            aload 0 /* this */
            invokespecial sun.security.ssl.BaseSSLSocketImpl.shutdownOutput:()V
        33: .line 565
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual sun.security.ssl.SSLSocketImpl.isInputShutdown:()Z
            ifne 35
        34: .line 566
            aload 0 /* this */
            iload 2 /* hasCloseReceipt */
            invokevirtual sun.security.ssl.SSLSocketImpl.bruteForceCloseInput:(Z)V
        35: .line 568
      StackMap locals:
      StackMap stack:
            return
        end local 2 // boolean hasCloseReceipt
        end local 1 // boolean useUserCanceled
        end local 0 // sun.security.ssl.SSLSocketImpl this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0   36     0             this  Lsun/security/ssl/SSLSocketImpl;
            1   36     1  useUserCanceled  Z
            2   36     2  hasCloseReceipt  Z
           11   13     3               pv  Lsun/security/ssl/ProtocolVersion;
      Exception table:
        from    to  target  type
          14    18      19  any
          19    20      19  any
          13    21      21  any
    Exceptions:
      throws java.io.IOException

  private void duplexCloseInput();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=2, args_size=1
        start local 0 // sun.security.ssl.SSLSocketImpl this
         0: .line 577
            iconst_0
            istore 1 /* hasCloseReceipt */
        start local 1 // boolean hasCloseReceipt
         1: .line 578
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.conContext:Lsun/security/ssl/TransportContext;
            getfield sun.security.ssl.TransportContext.isNegotiated:Z
            ifeq 4
         2: .line 579
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.conContext:Lsun/security/ssl/TransportContext;
            getfield sun.security.ssl.TransportContext.protocolVersion:Lsun/security/ssl/ProtocolVersion;
            invokevirtual sun.security.ssl.ProtocolVersion.useTLS13PlusSpec:()Z
            ifne 4
         3: .line 580
            iconst_1
            istore 1 /* hasCloseReceipt */
         4: .line 583
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            iload 1 /* hasCloseReceipt */
            invokevirtual sun.security.ssl.SSLSocketImpl.bruteForceCloseInput:(Z)V
         5: .line 584
            return
        end local 1 // boolean hasCloseReceipt
        end local 0 // sun.security.ssl.SSLSocketImpl this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0    6     0             this  Lsun/security/ssl/SSLSocketImpl;
            1    6     1  hasCloseReceipt  Z
    Exceptions:
      throws java.io.IOException

  private void bruteForceCloseInput(boolean);
    descriptor: (Z)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=4, args_size=2
        start local 0 // sun.security.ssl.SSLSocketImpl this
        start local 1 // boolean hasCloseReceipt
         0: .line 594
            iload 1 /* hasCloseReceipt */
            ifeq 10
         1: .line 603
            aload 0 /* this */
            invokevirtual sun.security.ssl.SSLSocketImpl.shutdown:()V
         2: .line 604
            goto 7
      StackMap locals:
      StackMap stack: java.lang.Throwable
         3: astore 2
         4: .line 605
            aload 0 /* this */
            invokevirtual sun.security.ssl.SSLSocketImpl.isInputShutdown:()Z
            ifne 6
         5: .line 606
            aload 0 /* this */
            iconst_0
            invokevirtual sun.security.ssl.SSLSocketImpl.shutdownInput:(Z)V
         6: .line 608
      StackMap locals: java.lang.Throwable
      StackMap stack:
            aload 2
            athrow
         7: .line 605
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual sun.security.ssl.SSLSocketImpl.isInputShutdown:()Z
            ifne 26
         8: .line 606
            aload 0 /* this */
            iconst_0
            invokevirtual sun.security.ssl.SSLSocketImpl.shutdownInput:(Z)V
         9: .line 609
            goto 26
        10: .line 610
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.conContext:Lsun/security/ssl/TransportContext;
            invokevirtual sun.security.ssl.TransportContext.isInboundClosed:()Z
            ifne 23
        11: .line 611
            aconst_null
            astore 2
            aconst_null
            astore 3
        12: aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.conContext:Lsun/security/ssl/TransportContext;
            getfield sun.security.ssl.TransportContext.inputRecord:Lsun/security/ssl/InputRecord;
            pop
        13: .line 615
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.appInput:Lsun/security/ssl/SSLSocketImpl$AppInputStream;
            invokevirtual sun.security.ssl.SSLSocketImpl$AppInputStream.deplete:()V
        14: .line 611
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.conContext:Lsun/security/ssl/TransportContext;
            getfield sun.security.ssl.TransportContext.inputRecord:Lsun/security/ssl/InputRecord;
            ifnull 23
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.conContext:Lsun/security/ssl/TransportContext;
            getfield sun.security.ssl.TransportContext.inputRecord:Lsun/security/ssl/InputRecord;
        15: .line 616
            invokevirtual sun.security.ssl.InputRecord.close:()V
            goto 23
      StackMap locals: sun.security.ssl.SSLSocketImpl int java.lang.Throwable java.lang.Throwable
      StackMap stack: java.lang.Throwable
        16: astore 2
        17: .line 611
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.conContext:Lsun/security/ssl/TransportContext;
            getfield sun.security.ssl.TransportContext.inputRecord:Lsun/security/ssl/InputRecord;
            ifnull 19
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.conContext:Lsun/security/ssl/TransportContext;
            getfield sun.security.ssl.TransportContext.inputRecord:Lsun/security/ssl/InputRecord;
        18: .line 616
            invokevirtual sun.security.ssl.InputRecord.close:()V
      StackMap locals:
      StackMap stack:
        19: aload 2
            athrow
      StackMap locals:
      StackMap stack: java.lang.Throwable
        20: astore 3
            aload 2
            ifnonnull 21
            aload 3
            astore 2
            goto 22
      StackMap locals:
      StackMap stack:
        21: aload 2
            aload 3
            if_acmpeq 22
            aload 2
            aload 3
            invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
      StackMap locals:
      StackMap stack:
        22: aload 2
            athrow
        23: .line 619
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.autoClose:Z
            ifne 24
            aload 0 /* this */
            invokevirtual sun.security.ssl.SSLSocketImpl.isLayered:()Z
            ifne 26
      StackMap locals:
      StackMap stack:
        24: aload 0 /* this */
            invokespecial sun.security.ssl.BaseSSLSocketImpl.isInputShutdown:()Z
            ifne 26
        25: .line 620
            aload 0 /* this */
            invokespecial sun.security.ssl.BaseSSLSocketImpl.shutdownInput:()V
        26: .line 623
      StackMap locals:
      StackMap stack:
            return
        end local 1 // boolean hasCloseReceipt
        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  hasCloseReceipt  Z
      Exception table:
        from    to  target  type
           1     3       3  any
          13    14      16  any
          12    20      20  any
    Exceptions:
      throws java.io.IOException
    MethodParameters:
                 Name  Flags
      hasCloseReceipt  

  public void shutdownInput();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // sun.security.ssl.SSLSocketImpl this
         0: .line 629
            aload 0 /* this */
            iconst_1
            invokevirtual sun.security.ssl.SSLSocketImpl.shutdownInput:(Z)V
         1: .line 630
            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 shutdownInput(boolean);
    descriptor: (Z)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // sun.security.ssl.SSLSocketImpl this
        start local 1 // boolean checkCloseNotify
         0: .line 636
            aload 0 /* this */
            invokevirtual sun.security.ssl.SSLSocketImpl.isInputShutdown:()Z
            ifeq 2
         1: .line 637
            return
         2: .line 640
      StackMap locals:
      StackMap stack:
            getstatic sun.security.ssl.SSLLogger.isOn:Z
            ifeq 4
            ldc "ssl"
            invokestatic sun.security.ssl.SSLLogger.isOn:(Ljava/lang/String;)Z
            ifeq 4
         3: .line 641
            ldc "close inbound of SSLSocket"
            iconst_0
            anewarray java.lang.Object
            invokestatic sun.security.ssl.SSLLogger.fine:(Ljava/lang/String;[Ljava/lang/Object;)V
         4: .line 647
      StackMap locals:
      StackMap stack:
            iload 1 /* checkCloseNotify */
            ifeq 9
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.conContext:Lsun/security/ssl/TransportContext;
            getfield sun.security.ssl.TransportContext.isInputCloseNotified:Z
            ifne 9
         5: .line 648
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.conContext:Lsun/security/ssl/TransportContext;
            getfield sun.security.ssl.TransportContext.isNegotiated:Z
            ifne 6
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.conContext:Lsun/security/ssl/TransportContext;
            getfield sun.security.ssl.TransportContext.handshakeContext:Lsun/security/ssl/HandshakeContext;
            ifnull 9
         6: .line 650
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.conContext:Lsun/security/ssl/TransportContext;
            getstatic sun.security.ssl.Alert.INTERNAL_ERROR:Lsun/security/ssl/Alert;
         7: .line 651
            ldc "closing inbound before receiving peer's close_notify"
         8: .line 650
            invokevirtual sun.security.ssl.TransportContext.fatal:(Lsun/security/ssl/Alert;Ljava/lang/String;)Ljavax/net/ssl/SSLException;
            athrow
         9: .line 654
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.conContext:Lsun/security/ssl/TransportContext;
            invokevirtual sun.security.ssl.TransportContext.closeInbound:()V
        10: .line 655
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.autoClose:Z
            ifne 11
            aload 0 /* this */
            invokevirtual sun.security.ssl.SSLSocketImpl.isLayered:()Z
            ifne 13
      StackMap locals:
      StackMap stack:
        11: aload 0 /* this */
            invokespecial sun.security.ssl.BaseSSLSocketImpl.isInputShutdown:()Z
            ifne 13
        12: .line 656
            aload 0 /* this */
            invokespecial sun.security.ssl.BaseSSLSocketImpl.shutdownInput:()V
        13: .line 658
      StackMap locals:
      StackMap stack:
            return
        end local 1 // boolean checkCloseNotify
        end local 0 // sun.security.ssl.SSLSocketImpl this
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0   14     0              this  Lsun/security/ssl/SSLSocketImpl;
            0   14     1  checkCloseNotify  Z
    Exceptions:
      throws java.io.IOException
    MethodParameters:
                  Name  Flags
      checkCloseNotify  

  public boolean isInputShutdown();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // sun.security.ssl.SSLSocketImpl this
         0: .line 662
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.conContext:Lsun/security/ssl/TransportContext;
            invokevirtual sun.security.ssl.TransportContext.isInboundClosed:()Z
            ifeq 4
         1: .line 663
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.autoClose:Z
            ifne 2
            aload 0 /* this */
            invokevirtual sun.security.ssl.SSLSocketImpl.isLayered:()Z
            ifne 3
      StackMap locals:
      StackMap stack:
         2: aload 0 /* this */
            invokespecial sun.security.ssl.BaseSSLSocketImpl.isInputShutdown:()Z
            ifeq 4
         3: .line 662
      StackMap locals:
      StackMap stack:
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         4: iconst_0
            ireturn
        end local 0 // sun.security.ssl.SSLSocketImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0  this  Lsun/security/ssl/SSLSocketImpl;

  public void shutdownOutput();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // sun.security.ssl.SSLSocketImpl this
         0: .line 670
            aload 0 /* this */
            invokevirtual sun.security.ssl.SSLSocketImpl.isOutputShutdown:()Z
            ifeq 2
         1: .line 671
            return
         2: .line 674
      StackMap locals:
      StackMap stack:
            getstatic sun.security.ssl.SSLLogger.isOn:Z
            ifeq 4
            ldc "ssl"
            invokestatic sun.security.ssl.SSLLogger.isOn:(Ljava/lang/String;)Z
            ifeq 4
         3: .line 675
            ldc "close outbound of SSLSocket"
            iconst_0
            anewarray java.lang.Object
            invokestatic sun.security.ssl.SSLLogger.fine:(Ljava/lang/String;[Ljava/lang/Object;)V
         4: .line 677
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.conContext:Lsun/security/ssl/TransportContext;
            invokevirtual sun.security.ssl.TransportContext.closeOutbound:()V
         5: .line 679
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.autoClose:Z
            ifne 6
            aload 0 /* this */
            invokevirtual sun.security.ssl.SSLSocketImpl.isLayered:()Z
            ifne 8
      StackMap locals:
      StackMap stack:
         6: aload 0 /* this */
            invokespecial sun.security.ssl.BaseSSLSocketImpl.isOutputShutdown:()Z
            ifne 8
         7: .line 680
            aload 0 /* this */
            invokespecial sun.security.ssl.BaseSSLSocketImpl.shutdownOutput:()V
         8: .line 682
      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;
    Exceptions:
      throws java.io.IOException

  public boolean isOutputShutdown();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // sun.security.ssl.SSLSocketImpl this
         0: .line 686
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.conContext:Lsun/security/ssl/TransportContext;
            invokevirtual sun.security.ssl.TransportContext.isOutboundClosed:()Z
            ifeq 4
         1: .line 687
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.autoClose:Z
            ifne 2
            aload 0 /* this */
            invokevirtual sun.security.ssl.SSLSocketImpl.isLayered:()Z
            ifne 3
      StackMap locals:
      StackMap stack:
         2: aload 0 /* this */
            invokespecial sun.security.ssl.BaseSSLSocketImpl.isOutputShutdown:()Z
            ifeq 4
         3: .line 686
      StackMap locals:
      StackMap stack:
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         4: iconst_0
            ireturn
        end local 0 // sun.security.ssl.SSLSocketImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0  this  Lsun/security/ssl/SSLSocketImpl;

  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 692
            aload 0 /* this */
            invokevirtual sun.security.ssl.SSLSocketImpl.isClosed:()Z
            ifeq 2
         1: .line 693
            new java.net.SocketException
            dup
            ldc "Socket is closed"
            invokespecial java.net.SocketException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 696
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.isConnected:Z
            ifne 4
         3: .line 697
            new java.net.SocketException
            dup
            ldc "Socket is not connected"
            invokespecial java.net.SocketException.<init>:(Ljava/lang/String;)V
            athrow
         4: .line 700
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.conContext:Lsun/security/ssl/TransportContext;
            invokevirtual sun.security.ssl.TransportContext.isInboundClosed:()Z
            ifne 5
            aload 0 /* this */
            invokevirtual sun.security.ssl.SSLSocketImpl.isInputShutdown:()Z
            ifeq 6
         5: .line 701
      StackMap locals:
      StackMap stack:
            new java.net.SocketException
            dup
            ldc "Socket input is already shutdown"
            invokespecial java.net.SocketException.<init>:(Ljava/lang/String;)V
            athrow
         6: .line 704
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.appInput:Lsun/security/ssl/SSLSocketImpl$AppInputStream;
            areturn
        end local 0 // sun.security.ssl.SSLSocketImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    7     0  this  Lsun/security/ssl/SSLSocketImpl;
    Exceptions:
      throws java.io.IOException

  private void ensureNegotiated();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=2, args_size=1
        start local 0 // sun.security.ssl.SSLSocketImpl this
         0: .line 708
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.conContext:Lsun/security/ssl/TransportContext;
            getfield sun.security.ssl.TransportContext.isNegotiated:Z
            ifne 2
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.conContext:Lsun/security/ssl/TransportContext;
            getfield sun.security.ssl.TransportContext.isBroken:Z
            ifne 2
         1: .line 709
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.conContext:Lsun/security/ssl/TransportContext;
            invokevirtual sun.security.ssl.TransportContext.isInboundClosed:()Z
            ifne 2
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.conContext:Lsun/security/ssl/TransportContext;
            invokevirtual sun.security.ssl.TransportContext.isOutboundClosed:()Z
            ifeq 3
         2: .line 710
      StackMap locals:
      StackMap stack:
            return
         3: .line 713
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.conContext:Lsun/security/ssl/TransportContext;
            dup
            astore 1
            monitorenter
         4: .line 715
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.conContext:Lsun/security/ssl/TransportContext;
            getfield sun.security.ssl.TransportContext.isNegotiated:Z
            ifne 7
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.conContext:Lsun/security/ssl/TransportContext;
            getfield sun.security.ssl.TransportContext.isBroken:Z
            ifne 7
         5: .line 716
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.conContext:Lsun/security/ssl/TransportContext;
            invokevirtual sun.security.ssl.TransportContext.isInboundClosed:()Z
            ifne 7
         6: .line 717
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.conContext:Lsun/security/ssl/TransportContext;
            invokevirtual sun.security.ssl.TransportContext.isOutboundClosed:()Z
            ifeq 9
         7: .line 718
      StackMap locals: sun.security.ssl.TransportContext
      StackMap stack:
            aload 1
            monitorexit
         8: return
         9: .line 721
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual sun.security.ssl.SSLSocketImpl.startHandshake:()V
        10: .line 713
            aload 1
            monitorexit
        11: goto 14
      StackMap locals:
      StackMap stack: java.lang.Throwable
        12: aload 1
            monitorexit
        13: athrow
        14: .line 723
      StackMap locals:
      StackMap stack:
            return
        end local 0 // sun.security.ssl.SSLSocketImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   15     0  this  Lsun/security/ssl/SSLSocketImpl;
      Exception table:
        from    to  target  type
           4     8      12  any
           9    11      12  any
          12    13      12  any
    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 943
            aload 0 /* this */
            invokevirtual sun.security.ssl.SSLSocketImpl.isClosed:()Z
            ifeq 2
         1: .line 944
            new java.net.SocketException
            dup
            ldc "Socket is closed"
            invokespecial java.net.SocketException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 947
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.isConnected:Z
            ifne 4
         3: .line 948
            new java.net.SocketException
            dup
            ldc "Socket is not connected"
            invokespecial java.net.SocketException.<init>:(Ljava/lang/String;)V
            athrow
         4: .line 951
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.conContext:Lsun/security/ssl/TransportContext;
            invokevirtual sun.security.ssl.TransportContext.isOutboundDone:()Z
            ifne 5
            aload 0 /* this */
            invokevirtual sun.security.ssl.SSLSocketImpl.isOutputShutdown:()Z
            ifeq 6
         5: .line 952
      StackMap locals:
      StackMap stack:
            new java.net.SocketException
            dup
            ldc "Socket output is already shutdown"
            invokespecial java.net.SocketException.<init>:(Ljava/lang/String;)V
            athrow
         6: .line 955
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.appOutput:Lsun/security/ssl/SSLSocketImpl$AppOutputStream;
            areturn
        end local 0 // sun.security.ssl.SSLSocketImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    7     0  this  Lsun/security/ssl/SSLSocketImpl;
    Exceptions:
      throws java.io.IOException

  public synchronized javax.net.ssl.SSLParameters getSSLParameters();
    descriptor: ()Ljavax/net/ssl/SSLParameters;
    flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // sun.security.ssl.SSLSocketImpl this
         0: .line 1046
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.conContext:Lsun/security/ssl/TransportContext;
            getfield sun.security.ssl.TransportContext.sslConfig:Lsun/security/ssl/SSLConfiguration;
            invokevirtual sun.security.ssl.SSLConfiguration.getSSLParameters:()Ljavax/net/ssl/SSLParameters;
            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 setSSLParameters(javax.net.ssl.SSLParameters);
    descriptor: (Ljavax/net/ssl/SSLParameters;)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 // javax.net.ssl.SSLParameters params
         0: .line 1051
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.conContext:Lsun/security/ssl/TransportContext;
            getfield sun.security.ssl.TransportContext.sslConfig:Lsun/security/ssl/SSLConfiguration;
            aload 1 /* params */
            invokevirtual sun.security.ssl.SSLConfiguration.setSSLParameters:(Ljavax/net/ssl/SSLParameters;)V
         1: .line 1053
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.conContext:Lsun/security/ssl/TransportContext;
            getfield sun.security.ssl.TransportContext.sslConfig:Lsun/security/ssl/SSLConfiguration;
            getfield sun.security.ssl.SSLConfiguration.maximumPacketSize:I
            ifeq 5
         2: .line 1054
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.conContext:Lsun/security/ssl/TransportContext;
            getfield sun.security.ssl.TransportContext.outputRecord:Lsun/security/ssl/OutputRecord;
         3: .line 1055
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.conContext:Lsun/security/ssl/TransportContext;
            getfield sun.security.ssl.TransportContext.sslConfig:Lsun/security/ssl/SSLConfiguration;
            getfield sun.security.ssl.SSLConfiguration.maximumPacketSize:I
         4: .line 1054
            invokevirtual sun.security.ssl.OutputRecord.changePacketSize:(I)V
         5: .line 1057
      StackMap locals:
      StackMap stack:
            return
        end local 1 // javax.net.ssl.SSLParameters params
        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  params  Ljavax/net/ssl/SSLParameters;
    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 1061
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.conContext:Lsun/security/ssl/TransportContext;
            getfield sun.security.ssl.TransportContext.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 1066
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.conContext:Lsun/security/ssl/TransportContext;
            getfield sun.security.ssl.TransportContext.handshakeContext:Lsun/security/ssl/HandshakeContext;
            ifnull 2
         1: .line 1067
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.conContext:Lsun/security/ssl/TransportContext;
            getfield sun.security.ssl.TransportContext.handshakeContext:Lsun/security/ssl/HandshakeContext;
            getfield sun.security.ssl.HandshakeContext.applicationProtocol:Ljava/lang/String;
            areturn
         2: .line 1070
      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 1076
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.conContext:Lsun/security/ssl/TransportContext;
            getfield sun.security.ssl.TransportContext.sslConfig:Lsun/security/ssl/SSLConfiguration;
            aload 1 /* selector */
            putfield sun.security.ssl.SSLConfiguration.socketAPSelector:Ljava/util/function/BiFunction;
         1: .line 1077
            return
        end local 1 // java.util.function.BiFunction selector
        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  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 1082
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.conContext:Lsun/security/ssl/TransportContext;
            getfield sun.security.ssl.TransportContext.sslConfig:Lsun/security/ssl/SSLConfiguration;
            getfield sun.security.ssl.SSLConfiguration.socketAPSelector: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;>;

  private int readHandshakeRecord();
    descriptor: ()I
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=2, args_size=1
        start local 0 // sun.security.ssl.SSLSocketImpl this
         0: .line 1089
            goto 11
         1: .line 1091
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aconst_null
            invokevirtual sun.security.ssl.SSLSocketImpl.decode:(Ljava/nio/ByteBuffer;)Lsun/security/ssl/Plaintext;
            astore 1 /* plainText */
        start local 1 // sun.security.ssl.Plaintext plainText
         2: .line 1092
            aload 1 /* plainText */
            getfield sun.security.ssl.Plaintext.contentType:B
            getstatic sun.security.ssl.ContentType.HANDSHAKE:Lsun/security/ssl/ContentType;
            getfield sun.security.ssl.ContentType.id:B
            if_icmpne 11
         3: .line 1093
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.conContext:Lsun/security/ssl/TransportContext;
            getfield sun.security.ssl.TransportContext.isNegotiated:Z
            ifeq 11
         4: .line 1094
            iconst_0
            ireturn
        end local 1 // sun.security.ssl.Plaintext plainText
         5: .line 1096
      StackMap locals:
      StackMap stack: javax.net.ssl.SSLException
            astore 1 /* ssle */
        start local 1 // javax.net.ssl.SSLException ssle
         6: .line 1097
            aload 1 /* ssle */
            athrow
        end local 1 // javax.net.ssl.SSLException ssle
         7: .line 1098
      StackMap locals:
      StackMap stack: java.io.IOException
            astore 1 /* ioe */
        start local 1 // java.io.IOException ioe
         8: .line 1099
            aload 1 /* ioe */
            instanceof javax.net.ssl.SSLException
            ifne 10
         9: .line 1100
            new javax.net.ssl.SSLException
            dup
            ldc "readHandshakeRecord"
            aload 1 /* ioe */
            invokespecial javax.net.ssl.SSLException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
            athrow
        10: .line 1102
      StackMap locals: java.io.IOException
      StackMap stack:
            aload 1 /* ioe */
            athrow
        end local 1 // java.io.IOException ioe
        11: .line 1089
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.conContext:Lsun/security/ssl/TransportContext;
            invokevirtual sun.security.ssl.TransportContext.isInboundClosed:()Z
            ifeq 1
        12: .line 1107
            iconst_m1
            ireturn
        end local 0 // sun.security.ssl.SSLSocketImpl this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   13     0       this  Lsun/security/ssl/SSLSocketImpl;
            2    5     1  plainText  Lsun/security/ssl/Plaintext;
            6    7     1       ssle  Ljavax/net/ssl/SSLException;
            8   11     1        ioe  Ljava/io/IOException;
      Exception table:
        from    to  target  type
           1     4       5  Class javax.net.ssl.SSLException
           1     4       7  Class java.io.IOException
    Exceptions:
      throws java.io.IOException

  private java.nio.ByteBuffer readApplicationRecord(java.nio.ByteBuffer);
    descriptor: (Ljava/nio/ByteBuffer;)Ljava/nio/ByteBuffer;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=5, args_size=2
        start local 0 // sun.security.ssl.SSLSocketImpl this
        start local 1 // java.nio.ByteBuffer buffer
         0: .line 1123
            goto 28
         1: .line 1131
      StackMap locals:
      StackMap stack:
            aload 1 /* buffer */
            invokevirtual java.nio.ByteBuffer.clear:()Ljava/nio/ByteBuffer;
            pop
         2: .line 1132
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.conContext:Lsun/security/ssl/TransportContext;
            getfield sun.security.ssl.TransportContext.inputRecord:Lsun/security/ssl/InputRecord;
            invokevirtual sun.security.ssl.InputRecord.bytesInCompletePacket:()I
            istore 2 /* inLen */
        start local 2 // int inLen
         3: .line 1133
            iload 2 /* inLen */
            ifge 6
         4: .line 1134
            aload 0 /* this */
            aconst_null
            invokevirtual sun.security.ssl.SSLSocketImpl.handleEOF:(Ljava/io/EOFException;)Lsun/security/ssl/Plaintext;
            pop
         5: .line 1137
            aconst_null
            areturn
         6: .line 1141
      StackMap locals: int
      StackMap stack:
            iload 2 /* inLen */
            ldc 33093
            if_icmple 10
         7: .line 1142
            new javax.net.ssl.SSLProtocolException
            dup
         8: .line 1143
            new java.lang.StringBuilder
            dup
            ldc "Illegal packet size: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            iload 2 /* inLen */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
         9: .line 1142
            invokespecial javax.net.ssl.SSLProtocolException.<init>:(Ljava/lang/String;)V
            athrow
        10: .line 1146
      StackMap locals:
      StackMap stack:
            iload 2 /* inLen */
            aload 1 /* buffer */
            invokevirtual java.nio.ByteBuffer.remaining:()I
            if_icmple 12
        11: .line 1147
            iload 2 /* inLen */
            invokestatic java.nio.ByteBuffer.allocate:(I)Ljava/nio/ByteBuffer;
            astore 1 /* buffer */
        12: .line 1152
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            dup
            astore 4
            monitorenter
        13: .line 1153
            aload 0 /* this */
            aload 1 /* buffer */
            invokevirtual sun.security.ssl.SSLSocketImpl.decode:(Ljava/nio/ByteBuffer;)Lsun/security/ssl/Plaintext;
            astore 3 /* plainText */
        start local 3 // sun.security.ssl.Plaintext plainText
        14: .line 1152
            aload 4
            monitorexit
        15: goto 18
        end local 3 // sun.security.ssl.Plaintext plainText
      StackMap locals: sun.security.ssl.SSLSocketImpl java.nio.ByteBuffer int top sun.security.ssl.SSLSocketImpl
      StackMap stack: java.lang.Throwable
        16: aload 4
            monitorexit
        17: athrow
        start local 3 // sun.security.ssl.Plaintext plainText
        18: .line 1155
      StackMap locals: sun.security.ssl.SSLSocketImpl java.nio.ByteBuffer int sun.security.ssl.Plaintext
      StackMap stack:
            aload 3 /* plainText */
            getfield sun.security.ssl.Plaintext.contentType:B
            getstatic sun.security.ssl.ContentType.APPLICATION_DATA:Lsun/security/ssl/ContentType;
            getfield sun.security.ssl.ContentType.id:B
            if_icmpne 28
        19: .line 1156
            aload 1 /* buffer */
            invokevirtual java.nio.ByteBuffer.position:()I
            ifle 28
        20: .line 1157
            aload 1 /* buffer */
        21: areturn
        end local 3 // sun.security.ssl.Plaintext plainText
        22: .line 1159
      StackMap locals: sun.security.ssl.SSLSocketImpl java.nio.ByteBuffer int
      StackMap stack: javax.net.ssl.SSLException
            astore 3 /* ssle */
        start local 3 // javax.net.ssl.SSLException ssle
        23: .line 1160
            aload 3 /* ssle */
            athrow
        end local 3 // javax.net.ssl.SSLException ssle
        24: .line 1161
      StackMap locals:
      StackMap stack: java.io.IOException
            astore 3 /* ioe */
        start local 3 // java.io.IOException ioe
        25: .line 1162
            aload 3 /* ioe */
            instanceof javax.net.ssl.SSLException
            ifne 27
        26: .line 1163
            new javax.net.ssl.SSLException
            dup
            ldc "readApplicationRecord"
            aload 3 /* ioe */
            invokespecial javax.net.ssl.SSLException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
            athrow
        27: .line 1165
      StackMap locals: java.io.IOException
      StackMap stack:
            aload 3 /* ioe */
            athrow
        end local 3 // java.io.IOException ioe
        end local 2 // int inLen
        28: .line 1123
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.conContext:Lsun/security/ssl/TransportContext;
            invokevirtual sun.security.ssl.TransportContext.isInboundClosed:()Z
            ifeq 1
        29: .line 1173
            aconst_null
            areturn
        end local 1 // java.nio.ByteBuffer buffer
        end local 0 // sun.security.ssl.SSLSocketImpl this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   30     0       this  Lsun/security/ssl/SSLSocketImpl;
            0   30     1     buffer  Ljava/nio/ByteBuffer;
            3   28     2      inLen  I
           14   16     3  plainText  Lsun/security/ssl/Plaintext;
           18   22     3  plainText  Lsun/security/ssl/Plaintext;
           23   24     3       ssle  Ljavax/net/ssl/SSLException;
           25   28     3        ioe  Ljava/io/IOException;
      Exception table:
        from    to  target  type
          13    15      16  any
          16    17      16  any
          12    21      22  Class javax.net.ssl.SSLException
          12    21      24  Class java.io.IOException
    Exceptions:
      throws java.io.IOException
    MethodParameters:
        Name  Flags
      buffer  

  private sun.security.ssl.Plaintext decode(java.nio.ByteBuffer);
    descriptor: (Ljava/nio/ByteBuffer;)Lsun/security/ssl/Plaintext;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=8, locals=4, args_size=2
        start local 0 // sun.security.ssl.SSLSocketImpl this
        start local 1 // java.nio.ByteBuffer destination
         0: .line 1179
            aload 1 /* destination */
            ifnonnull 5
         1: .line 1180
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.conContext:Lsun/security/ssl/TransportContext;
         2: .line 1181
            aconst_null
            iconst_0
            iconst_0
            aconst_null
            iconst_0
            iconst_0
         3: .line 1180
            invokestatic sun.security.ssl.SSLTransport.decode:(Lsun/security/ssl/TransportContext;[Ljava/nio/ByteBuffer;II[Ljava/nio/ByteBuffer;II)Lsun/security/ssl/Plaintext;
            astore 2 /* plainText */
        start local 2 // sun.security.ssl.Plaintext plainText
         4: .line 1182
            goto 11
        end local 2 // sun.security.ssl.Plaintext plainText
         5: .line 1183
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.conContext:Lsun/security/ssl/TransportContext;
         6: .line 1184
            aconst_null
            iconst_0
            iconst_0
            iconst_1
            anewarray java.nio.ByteBuffer
            dup
            iconst_0
            aload 1 /* destination */
            aastore
            iconst_0
            iconst_1
         7: .line 1183
            invokestatic sun.security.ssl.SSLTransport.decode:(Lsun/security/ssl/TransportContext;[Ljava/nio/ByteBuffer;II[Ljava/nio/ByteBuffer;II)Lsun/security/ssl/Plaintext;
            astore 2 /* plainText */
        start local 2 // sun.security.ssl.Plaintext plainText
         8: .line 1186
            goto 11
        end local 2 // sun.security.ssl.Plaintext plainText
      StackMap locals:
      StackMap stack: java.io.EOFException
         9: astore 3 /* eofe */
        start local 3 // java.io.EOFException eofe
        10: .line 1188
            aload 0 /* this */
            aload 3 /* eofe */
            invokevirtual sun.security.ssl.SSLSocketImpl.handleEOF:(Ljava/io/EOFException;)Lsun/security/ssl/Plaintext;
            astore 2 /* plainText */
        end local 3 // java.io.EOFException eofe
        start local 2 // sun.security.ssl.Plaintext plainText
        11: .line 1192
      StackMap locals: sun.security.ssl.Plaintext
      StackMap stack:
            aload 2 /* plainText */
            getstatic sun.security.ssl.Plaintext.PLAINTEXT_NULL:Lsun/security/ssl/Plaintext;
            if_acmpeq 15
        12: .line 1193
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.conContext:Lsun/security/ssl/TransportContext;
            getfield sun.security.ssl.TransportContext.inputRecord:Lsun/security/ssl/InputRecord;
            invokevirtual sun.security.ssl.InputRecord.seqNumIsHuge:()Z
            ifne 14
        13: .line 1194
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.conContext:Lsun/security/ssl/TransportContext;
            getfield sun.security.ssl.TransportContext.inputRecord:Lsun/security/ssl/InputRecord;
            getfield sun.security.ssl.InputRecord.readCipher:Lsun/security/ssl/SSLCipher$SSLReadCipher;
            invokevirtual sun.security.ssl.SSLCipher$SSLReadCipher.atKeyLimit:()Z
            ifeq 15
        14: .line 1195
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual sun.security.ssl.SSLSocketImpl.tryKeyUpdate:()V
        15: .line 1198
      StackMap locals:
      StackMap stack:
            aload 2 /* plainText */
            areturn
        end local 2 // sun.security.ssl.Plaintext plainText
        end local 1 // java.nio.ByteBuffer destination
        end local 0 // sun.security.ssl.SSLSocketImpl this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   16     0         this  Lsun/security/ssl/SSLSocketImpl;
            0   16     1  destination  Ljava/nio/ByteBuffer;
            4    5     2    plainText  Lsun/security/ssl/Plaintext;
            8    9     2    plainText  Lsun/security/ssl/Plaintext;
           11   16     2    plainText  Lsun/security/ssl/Plaintext;
           10   11     3         eofe  Ljava/io/EOFException;
      Exception table:
        from    to  target  type
           0     8       9  Class java.io.EOFException
    Exceptions:
      throws java.io.IOException
    MethodParameters:
             Name  Flags
      destination  

  private void tryKeyUpdate();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // sun.security.ssl.SSLSocketImpl this
         0: .line 1216
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.conContext:Lsun/security/ssl/TransportContext;
            getfield sun.security.ssl.TransportContext.handshakeContext:Lsun/security/ssl/HandshakeContext;
            ifnonnull 7
         1: .line 1217
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.conContext:Lsun/security/ssl/TransportContext;
            invokevirtual sun.security.ssl.TransportContext.isOutboundClosed:()Z
            ifne 7
         2: .line 1218
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.conContext:Lsun/security/ssl/TransportContext;
            invokevirtual sun.security.ssl.TransportContext.isInboundClosed:()Z
            ifne 7
         3: .line 1219
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.conContext:Lsun/security/ssl/TransportContext;
            getfield sun.security.ssl.TransportContext.isBroken:Z
            ifne 7
         4: .line 1220
            getstatic sun.security.ssl.SSLLogger.isOn:Z
            ifeq 6
            ldc "ssl"
            invokestatic sun.security.ssl.SSLLogger.isOn:(Ljava/lang/String;)Z
            ifeq 6
         5: .line 1221
            ldc "trigger key update"
            iconst_0
            anewarray java.lang.Object
            invokestatic sun.security.ssl.SSLLogger.finest:(Ljava/lang/String;[Ljava/lang/Object;)V
         6: .line 1223
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual sun.security.ssl.SSLSocketImpl.startHandshake:()V
         7: .line 1225
      StackMap locals:
      StackMap stack:
            return
        end local 0 // sun.security.ssl.SSLSocketImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    8     0  this  Lsun/security/ssl/SSLSocketImpl;
    Exceptions:
      throws java.io.IOException

  synchronized void doneConnect();
    descriptor: ()V
    flags: (0x0020) ACC_SYNCHRONIZED
    Code:
      stack=3, locals=3, args_size=1
        start local 0 // sun.security.ssl.SSLSocketImpl this
         0: .line 1235
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.peerHost:Ljava/lang/String;
            ifnull 1
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.peerHost:Ljava/lang/String;
            invokevirtual java.lang.String.isEmpty:()Z
            ifeq 7
         1: .line 1237
      StackMap locals:
      StackMap stack:
            getstatic sun.security.ssl.SSLSocketImpl.trustNameService:Z
            ifeq 3
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.conContext:Lsun/security/ssl/TransportContext;
            getfield sun.security.ssl.TransportContext.sslConfig:Lsun/security/ssl/SSLConfiguration;
            getfield sun.security.ssl.SSLConfiguration.isClientMode:Z
            ifeq 3
         2: .line 1236
            iconst_1
            goto 4
      StackMap locals:
      StackMap stack:
         3: iconst_0
      StackMap locals:
      StackMap stack: int
         4: istore 1 /* useNameService */
        start local 1 // boolean useNameService
         5: .line 1238
            aload 0 /* this */
            iload 1 /* useNameService */
            invokevirtual sun.security.ssl.SSLSocketImpl.useImplicitHost:(Z)V
        end local 1 // boolean useNameService
         6: .line 1239
            goto 11
         7: .line 1240
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.conContext:Lsun/security/ssl/TransportContext;
            getfield sun.security.ssl.TransportContext.sslConfig:Lsun/security/ssl/SSLConfiguration;
         8: .line 1242
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.conContext:Lsun/security/ssl/TransportContext;
            getfield sun.security.ssl.TransportContext.sslConfig:Lsun/security/ssl/SSLConfiguration;
            getfield sun.security.ssl.SSLConfiguration.serverNames:Ljava/util/List;
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.peerHost:Ljava/lang/String;
         9: .line 1241
            invokestatic sun.security.ssl.Utilities.addToSNIServerNameList:(Ljava/util/List;Ljava/lang/String;)Ljava/util/List;
        10: .line 1240
            putfield sun.security.ssl.SSLConfiguration.serverNames:Ljava/util/List;
        11: .line 1245
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokespecial sun.security.ssl.BaseSSLSocketImpl.getInputStream:()Ljava/io/InputStream;
            astore 1 /* sockInput */
        start local 1 // java.io.InputStream sockInput
        12: .line 1246
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.conContext:Lsun/security/ssl/TransportContext;
            getfield sun.security.ssl.TransportContext.inputRecord:Lsun/security/ssl/InputRecord;
            aload 1 /* sockInput */
            invokevirtual sun.security.ssl.InputRecord.setReceiverStream:(Ljava/io/InputStream;)V
        13: .line 1248
            aload 0 /* this */
            invokespecial sun.security.ssl.BaseSSLSocketImpl.getOutputStream:()Ljava/io/OutputStream;
            astore 2 /* sockOutput */
        start local 2 // java.io.OutputStream sockOutput
        14: .line 1249
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.conContext:Lsun/security/ssl/TransportContext;
            getfield sun.security.ssl.TransportContext.inputRecord:Lsun/security/ssl/InputRecord;
            aload 2 /* sockOutput */
            invokevirtual sun.security.ssl.InputRecord.setDeliverStream:(Ljava/io/OutputStream;)V
        15: .line 1250
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.conContext:Lsun/security/ssl/TransportContext;
            getfield sun.security.ssl.TransportContext.outputRecord:Lsun/security/ssl/OutputRecord;
            aload 2 /* sockOutput */
            invokevirtual sun.security.ssl.OutputRecord.setDeliverStream:(Ljava/io/OutputStream;)V
        16: .line 1252
            aload 0 /* this */
            iconst_1
            putfield sun.security.ssl.SSLSocketImpl.isConnected:Z
        17: .line 1253
            return
        end local 2 // java.io.OutputStream sockOutput
        end local 1 // java.io.InputStream sockInput
        end local 0 // sun.security.ssl.SSLSocketImpl this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   18     0            this  Lsun/security/ssl/SSLSocketImpl;
            5    6     1  useNameService  Z
           12   18     1       sockInput  Ljava/io/InputStream;
           14   18     2      sockOutput  Ljava/io/OutputStream;
    Exceptions:
      throws java.io.IOException

  private void useImplicitHost(boolean);
    descriptor: (Z)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=5, args_size=2
        start local 0 // sun.security.ssl.SSLSocketImpl this
        start local 1 // boolean useNameService
         0: .line 1262
            aload 0 /* this */
            invokevirtual sun.security.ssl.SSLSocketImpl.getInetAddress:()Ljava/net/InetAddress;
            astore 2 /* inetAddress */
        start local 2 // java.net.InetAddress inetAddress
         1: .line 1263
            aload 2 /* inetAddress */
            ifnonnull 3
         2: .line 1264
            return
         3: .line 1268
      StackMap locals: java.net.InetAddress
      StackMap stack:
            invokestatic jdk.internal.access.SharedSecrets.getJavaNetInetAddressAccess:()Ljdk/internal/access/JavaNetInetAddressAccess;
         4: .line 1267
            astore 3 /* jna */
        start local 3 // jdk.internal.access.JavaNetInetAddressAccess jna
         5: .line 1269
            aload 3 /* jna */
            aload 2 /* inetAddress */
            invokeinterface jdk.internal.access.JavaNetInetAddressAccess.getOriginalHostName:(Ljava/net/InetAddress;)Ljava/lang/String;
            astore 4 /* originalHostname */
        start local 4 // java.lang.String originalHostname
         6: .line 1270
            aload 4 /* originalHostname */
            ifnull 15
            aload 4 /* originalHostname */
            invokevirtual java.lang.String.isEmpty:()Z
            ifne 15
         7: .line 1272
            aload 0 /* this */
            aload 4 /* originalHostname */
            putfield sun.security.ssl.SSLSocketImpl.peerHost:Ljava/lang/String;
         8: .line 1273
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.conContext:Lsun/security/ssl/TransportContext;
            getfield sun.security.ssl.TransportContext.sslConfig:Lsun/security/ssl/SSLConfiguration;
            getfield sun.security.ssl.SSLConfiguration.serverNames:Ljava/util/List;
            invokeinterface java.util.List.isEmpty:()Z
            ifeq 14
         9: .line 1274
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.conContext:Lsun/security/ssl/TransportContext;
            getfield sun.security.ssl.TransportContext.sslConfig:Lsun/security/ssl/SSLConfiguration;
            getfield sun.security.ssl.SSLConfiguration.noSniExtension:Z
            ifne 14
        10: .line 1275
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.conContext:Lsun/security/ssl/TransportContext;
            getfield sun.security.ssl.TransportContext.sslConfig:Lsun/security/ssl/SSLConfiguration;
        11: .line 1277
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.conContext:Lsun/security/ssl/TransportContext;
            getfield sun.security.ssl.TransportContext.sslConfig:Lsun/security/ssl/SSLConfiguration;
            getfield sun.security.ssl.SSLConfiguration.serverNames:Ljava/util/List;
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.peerHost:Ljava/lang/String;
        12: .line 1276
            invokestatic sun.security.ssl.Utilities.addToSNIServerNameList:(Ljava/util/List;Ljava/lang/String;)Ljava/util/List;
        13: .line 1275
            putfield sun.security.ssl.SSLConfiguration.serverNames:Ljava/util/List;
        14: .line 1280
      StackMap locals: jdk.internal.access.JavaNetInetAddressAccess java.lang.String
      StackMap stack:
            return
        15: .line 1284
      StackMap locals:
      StackMap stack:
            iload 1 /* useNameService */
            ifne 18
        16: .line 1286
            aload 0 /* this */
            aload 2 /* inetAddress */
            invokevirtual java.net.InetAddress.getHostAddress:()Ljava/lang/String;
            putfield sun.security.ssl.SSLSocketImpl.peerHost:Ljava/lang/String;
        17: .line 1287
            goto 19
        18: .line 1289
      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.peerHost:Ljava/lang/String;
        19: .line 1291
      StackMap locals:
      StackMap stack:
            return
        end local 4 // java.lang.String originalHostname
        end local 3 // jdk.internal.access.JavaNetInetAddressAccess jna
        end local 2 // java.net.InetAddress inetAddress
        end local 1 // boolean useNameService
        end local 0 // sun.security.ssl.SSLSocketImpl this
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0   20     0              this  Lsun/security/ssl/SSLSocketImpl;
            0   20     1    useNameService  Z
            1   20     2       inetAddress  Ljava/net/InetAddress;
            5   20     3               jna  Ljdk/internal/access/JavaNetInetAddressAccess;
            6   20     4  originalHostname  Ljava/lang/String;
    MethodParameters:
                Name  Flags
      useNameService  

  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 1299
            aload 0 /* this */
            aload 1 /* host */
            putfield sun.security.ssl.SSLSocketImpl.peerHost:Ljava/lang/String;
         1: .line 1300
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.conContext:Lsun/security/ssl/TransportContext;
            getfield sun.security.ssl.TransportContext.sslConfig:Lsun/security/ssl/SSLConfiguration;
         2: .line 1302
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.conContext:Lsun/security/ssl/TransportContext;
            getfield sun.security.ssl.TransportContext.sslConfig:Lsun/security/ssl/SSLConfiguration;
            getfield sun.security.ssl.SSLConfiguration.serverNames:Ljava/util/List;
            aload 1 /* host */
         3: .line 1301
            invokestatic sun.security.ssl.Utilities.addToSNIServerNameList:(Ljava/util/List;Ljava/lang/String;)Ljava/util/List;
         4: .line 1300
            putfield sun.security.ssl.SSLConfiguration.serverNames:Ljava/util/List;
         5: .line 1303
            return
        end local 1 // java.lang.String host
        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  host  Ljava/lang/String;
    MethodParameters:
      Name  Flags
      host  

  private void handleException(java.lang.Exception);
    descriptor: (Ljava/lang/Exception;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=4, args_size=2
        start local 0 // sun.security.ssl.SSLSocketImpl this
        start local 1 // java.lang.Exception cause
         0: .line 1315
            getstatic sun.security.ssl.SSLLogger.isOn:Z
            ifeq 2
            ldc "ssl"
            invokestatic sun.security.ssl.SSLLogger.isOn:(Ljava/lang/String;)Z
            ifeq 2
         1: .line 1316
            ldc "handling exception"
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            aload 1 /* cause */
            aastore
            invokestatic sun.security.ssl.SSLLogger.warning:(Ljava/lang/String;[Ljava/lang/Object;)V
         2: .line 1320
      StackMap locals:
      StackMap stack:
            aload 1 /* cause */
            instanceof java.io.InterruptedIOException
            ifeq 4
         3: .line 1321
            aload 1 /* cause */
            checkcast java.io.IOException
            athrow
         4: .line 1325
      StackMap locals:
      StackMap stack:
            aload 1 /* cause */
            instanceof javax.net.ssl.SSLException
            istore 2 /* isSSLException */
        start local 2 // boolean isSSLException
         5: .line 1327
            iload 2 /* isSSLException */
            ifeq 11
         6: .line 1328
            aload 1 /* cause */
            instanceof javax.net.ssl.SSLHandshakeException
            ifeq 9
         7: .line 1329
            getstatic sun.security.ssl.Alert.HANDSHAKE_FAILURE:Lsun/security/ssl/Alert;
            astore 3 /* alert */
        start local 3 // sun.security.ssl.Alert alert
         8: .line 1330
            goto 15
        end local 3 // sun.security.ssl.Alert alert
         9: .line 1331
      StackMap locals: int
      StackMap stack:
            getstatic sun.security.ssl.Alert.UNEXPECTED_MESSAGE:Lsun/security/ssl/Alert;
            astore 3 /* alert */
        start local 3 // sun.security.ssl.Alert alert
        10: .line 1333
            goto 15
        end local 3 // sun.security.ssl.Alert alert
        11: .line 1334
      StackMap locals:
      StackMap stack:
            aload 1 /* cause */
            instanceof java.io.IOException
            ifeq 14
        12: .line 1335
            getstatic sun.security.ssl.Alert.UNEXPECTED_MESSAGE:Lsun/security/ssl/Alert;
            astore 3 /* alert */
        start local 3 // sun.security.ssl.Alert alert
        13: .line 1336
            goto 15
        end local 3 // sun.security.ssl.Alert alert
        14: .line 1338
      StackMap locals:
      StackMap stack:
            getstatic sun.security.ssl.Alert.INTERNAL_ERROR:Lsun/security/ssl/Alert;
            astore 3 /* alert */
        start local 3 // sun.security.ssl.Alert alert
        15: .line 1342
      StackMap locals: sun.security.ssl.Alert
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.conContext:Lsun/security/ssl/TransportContext;
            aload 3 /* alert */
            aload 1 /* cause */
            invokevirtual sun.security.ssl.TransportContext.fatal:(Lsun/security/ssl/Alert;Ljava/lang/Throwable;)Ljavax/net/ssl/SSLException;
            athrow
        end local 3 // sun.security.ssl.Alert alert
        end local 2 // boolean isSSLException
        end local 1 // java.lang.Exception cause
        end local 0 // sun.security.ssl.SSLSocketImpl this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   16     0            this  Lsun/security/ssl/SSLSocketImpl;
            0   16     1           cause  Ljava/lang/Exception;
            5   16     2  isSSLException  Z
            8    9     3           alert  Lsun/security/ssl/Alert;
           10   11     3           alert  Lsun/security/ssl/Alert;
           13   14     3           alert  Lsun/security/ssl/Alert;
           15   16     3           alert  Lsun/security/ssl/Alert;
    Exceptions:
      throws java.io.IOException
    MethodParameters:
       Name  Flags
      cause  

  private sun.security.ssl.Plaintext handleEOF(java.io.EOFException);
    descriptor: (Ljava/io/EOFException;)Lsun/security/ssl/Plaintext;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // sun.security.ssl.SSLSocketImpl this
        start local 1 // java.io.EOFException eofe
         0: .line 1346
            getstatic sun.security.ssl.SSLSocketImpl.requireCloseNotify:Z
            ifne 1
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.conContext:Lsun/security/ssl/TransportContext;
            getfield sun.security.ssl.TransportContext.handshakeContext:Lsun/security/ssl/HandshakeContext;
            ifnull 12
         1: .line 1348
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.conContext:Lsun/security/ssl/TransportContext;
            getfield sun.security.ssl.TransportContext.handshakeContext:Lsun/security/ssl/HandshakeContext;
            ifnull 6
         2: .line 1349
            new javax.net.ssl.SSLHandshakeException
            dup
         3: .line 1350
            ldc "Remote host terminated the handshake"
         4: .line 1349
            invokespecial javax.net.ssl.SSLHandshakeException.<init>:(Ljava/lang/String;)V
            astore 2 /* ssle */
        start local 2 // javax.net.ssl.SSLException ssle
         5: .line 1351
            goto 9
        end local 2 // javax.net.ssl.SSLException ssle
         6: .line 1352
      StackMap locals:
      StackMap stack:
            new javax.net.ssl.SSLProtocolException
            dup
         7: .line 1353
            ldc "Remote host terminated the connection"
         8: .line 1352
            invokespecial javax.net.ssl.SSLProtocolException.<init>:(Ljava/lang/String;)V
            astore 2 /* ssle */
        start local 2 // javax.net.ssl.SSLException ssle
         9: .line 1356
      StackMap locals: javax.net.ssl.SSLException
      StackMap stack:
            aload 1 /* eofe */
            ifnull 11
        10: .line 1357
            aload 2 /* ssle */
            aload 1 /* eofe */
            invokevirtual javax.net.ssl.SSLException.initCause:(Ljava/lang/Throwable;)Ljava/lang/Throwable;
            pop
        11: .line 1359
      StackMap locals:
      StackMap stack:
            aload 2 /* ssle */
            athrow
        end local 2 // javax.net.ssl.SSLException ssle
        12: .line 1362
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.conContext:Lsun/security/ssl/TransportContext;
            iconst_1
            putfield sun.security.ssl.TransportContext.isInputCloseNotified:Z
        13: .line 1363
            aload 0 /* this */
            invokevirtual sun.security.ssl.SSLSocketImpl.shutdownInput:()V
        14: .line 1365
            getstatic sun.security.ssl.Plaintext.PLAINTEXT_NULL:Lsun/security/ssl/Plaintext;
            areturn
        end local 1 // java.io.EOFException eofe
        end local 0 // sun.security.ssl.SSLSocketImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   15     0  this  Lsun/security/ssl/SSLSocketImpl;
            0   15     1  eofe  Ljava/io/EOFException;
            5    6     2  ssle  Ljavax/net/ssl/SSLException;
            9   12     2  ssle  Ljavax/net/ssl/SSLException;
    Exceptions:
      throws java.io.IOException
    MethodParameters:
      Name  Flags
      eofe  

  public java.lang.String getPeerHost();
    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 1372
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.peerHost: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 int getPeerPort();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // sun.security.ssl.SSLSocketImpl this
         0: .line 1377
            aload 0 /* this */
            invokevirtual sun.security.ssl.SSLSocketImpl.getPort:()I
            ireturn
        end local 0 // sun.security.ssl.SSLSocketImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lsun/security/ssl/SSLSocketImpl;

  public boolean useDelegatedTask();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // sun.security.ssl.SSLSocketImpl this
         0: .line 1382
            iconst_0
            ireturn
        end local 0 // sun.security.ssl.SSLSocketImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lsun/security/ssl/SSLSocketImpl;

  public void shutdown();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=1
        start local 0 // sun.security.ssl.SSLSocketImpl this
         0: .line 1387
            aload 0 /* this */
            invokevirtual sun.security.ssl.SSLSocketImpl.isClosed:()Z
            ifne 12
         1: .line 1388
            getstatic sun.security.ssl.SSLLogger.isOn:Z
            ifeq 3
            ldc "ssl"
            invokestatic sun.security.ssl.SSLLogger.isOn:(Ljava/lang/String;)Z
            ifeq 3
         2: .line 1389
            ldc "close the underlying socket"
            iconst_0
            anewarray java.lang.Object
            invokestatic sun.security.ssl.SSLLogger.fine:(Ljava/lang/String;[Ljava/lang/Object;)V
         3: .line 1393
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.conContext:Lsun/security/ssl/TransportContext;
            getfield sun.security.ssl.TransportContext.isInputCloseNotified:Z
            ifeq 6
         4: .line 1395
            aload 0 /* this */
            iconst_0
            invokevirtual sun.security.ssl.SSLSocketImpl.closeSocket:(Z)V
         5: .line 1396
            goto 11
         6: .line 1398
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iconst_1
            invokevirtual sun.security.ssl.SSLSocketImpl.closeSocket:(Z)V
         7: .line 1400
            goto 11
      StackMap locals:
      StackMap stack: java.lang.Throwable
         8: astore 1
         9: .line 1401
            aload 0 /* this */
            iconst_1
            putfield sun.security.ssl.SSLSocketImpl.tlsIsClosed:Z
        10: .line 1402
            aload 1
            athrow
        11: .line 1401
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iconst_1
            putfield sun.security.ssl.SSLSocketImpl.tlsIsClosed:Z
        12: .line 1404
      StackMap locals:
      StackMap stack:
            return
        end local 0 // sun.security.ssl.SSLSocketImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   13     0  this  Lsun/security/ssl/SSLSocketImpl;
      Exception table:
        from    to  target  type
           3     8       8  any
    Exceptions:
      throws java.io.IOException

  private void closeSocket(boolean);
    descriptor: (Z)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // sun.security.ssl.SSLSocketImpl this
        start local 1 // boolean selfInitiated
         0: .line 1407
            getstatic sun.security.ssl.SSLLogger.isOn:Z
            ifeq 6
            ldc "ssl"
            invokestatic sun.security.ssl.SSLLogger.isOn:(Ljava/lang/String;)Z
            ifeq 6
         1: .line 1408
            new java.lang.StringBuilder
            dup
            ldc "close the SSL connection "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
         2: .line 1409
            iload 1 /* selfInitiated */
            ifeq 3
            ldc "(initiative)"
            goto 4
      StackMap locals:
      StackMap stack: java.lang.StringBuilder
         3: ldc "(passive)"
      StackMap locals: sun.security.ssl.SSLSocketImpl int
      StackMap stack: java.lang.StringBuilder java.lang.String
         4: invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
         5: .line 1408
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            iconst_0
            anewarray java.lang.Object
            invokestatic sun.security.ssl.SSLLogger.fine:(Ljava/lang/String;[Ljava/lang/Object;)V
         6: .line 1412
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.autoClose:Z
            ifne 7
            aload 0 /* this */
            invokevirtual sun.security.ssl.SSLSocketImpl.isLayered:()Z
            ifne 9
         7: .line 1413
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokespecial sun.security.ssl.BaseSSLSocketImpl.close:()V
         8: .line 1414
            goto 12
      StackMap locals:
      StackMap stack:
         9: iload 1 /* selfInitiated */
            ifeq 12
        10: .line 1415
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.conContext:Lsun/security/ssl/TransportContext;
            invokevirtual sun.security.ssl.TransportContext.isInboundClosed:()Z
            ifne 12
            aload 0 /* this */
            invokevirtual sun.security.ssl.SSLSocketImpl.isInputShutdown:()Z
            ifne 12
        11: .line 1417
            aload 0 /* this */
            invokevirtual sun.security.ssl.SSLSocketImpl.waitForClose:()V
        12: .line 1420
      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   13     0           this  Lsun/security/ssl/SSLSocketImpl;
            0   13     1  selfInitiated  Z
    Exceptions:
      throws java.io.IOException
    MethodParameters:
               Name  Flags
      selfInitiated  

  private void waitForClose();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=2, args_size=1
        start local 0 // sun.security.ssl.SSLSocketImpl this
         0: .line 1435
            getstatic sun.security.ssl.SSLLogger.isOn:Z
            ifeq 10
            ldc "ssl"
            invokestatic sun.security.ssl.SSLLogger.isOn:(Ljava/lang/String;)Z
            ifeq 10
         1: .line 1436
            ldc "wait for close_notify or alert"
            iconst_0
            anewarray java.lang.Object
            invokestatic sun.security.ssl.SSLLogger.fine:(Ljava/lang/String;[Ljava/lang/Object;)V
         2: .line 1439
            goto 10
         3: .line 1441
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aconst_null
            invokevirtual sun.security.ssl.SSLSocketImpl.decode:(Ljava/nio/ByteBuffer;)Lsun/security/ssl/Plaintext;
            astore 1 /* plainText */
        start local 1 // sun.security.ssl.Plaintext plainText
         4: .line 1443
            getstatic sun.security.ssl.SSLLogger.isOn:Z
            ifeq 10
            ldc "ssl"
            invokestatic sun.security.ssl.SSLLogger.isOn:(Ljava/lang/String;)Z
            ifeq 10
         5: .line 1445
            ldc "discard plaintext while waiting for close"
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            aload 1 /* plainText */
            aastore
         6: .line 1444
            invokestatic sun.security.ssl.SSLLogger.finest:(Ljava/lang/String;[Ljava/lang/Object;)V
        end local 1 // sun.security.ssl.Plaintext plainText
         7: .line 1447
            goto 10
      StackMap locals:
      StackMap stack: java.lang.Exception
         8: astore 1 /* e */
        start local 1 // java.lang.Exception e
         9: .line 1448
            aload 0 /* this */
            aload 1 /* e */
            invokevirtual sun.security.ssl.SSLSocketImpl.handleException:(Ljava/lang/Exception;)V
        end local 1 // java.lang.Exception e
        10: .line 1439
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.conContext:Lsun/security/ssl/TransportContext;
            invokevirtual sun.security.ssl.TransportContext.isInboundClosed:()Z
            ifeq 3
        11: .line 1451
            return
        end local 0 // sun.security.ssl.SSLSocketImpl this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   12     0       this  Lsun/security/ssl/SSLSocketImpl;
            4    7     1  plainText  Lsun/security/ssl/Plaintext;
            9   10     1          e  Ljava/lang/Exception;
      Exception table:
        from    to  target  type
           3     7       8  Class java.lang.Exception
    Exceptions:
      throws java.io.IOException

  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 setSoTimeout(int);
    descriptor: (I)V
    flags: (0x1041) ACC_PUBLIC, ACC_BRIDGE, ACC_SYNTHETIC
    Code:
      stack=2, locals=2, args_size=2
         0: .line 1
            aload 0
            iload 1
            invokespecial sun.security.ssl.BaseSSLSocketImpl.setSoTimeout:(I)V
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature
    Exceptions:
      throws java.net.SocketException

  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

  public java.lang.String toString();
    descriptor: ()Ljava/lang/String;
    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.toString:()Ljava/lang/String;
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature
}
SourceFile: "SSLSocketImpl.java"
NestMembers:
  sun.security.ssl.SSLSocketImpl$AppInputStream  sun.security.ssl.SSLSocketImpl$AppOutputStream
InnerClasses:
  abstract SSLReadCipher = sun.security.ssl.SSLCipher$SSLReadCipher of sun.security.ssl.SSLCipher
  private AppInputStream = sun.security.ssl.SSLSocketImpl$AppInputStream of sun.security.ssl.SSLSocketImpl
  private AppOutputStream = sun.security.ssl.SSLSocketImpl$AppOutputStream of sun.security.ssl.SSLSocketImpl