public final class sun.security.ssl.SSLSocketImpl extends sun.security.ssl.BaseSSLSocketImpl
  minor version: 0
  major version: 59
  flags: flags: (0x0031) ACC_PUBLIC, ACC_FINAL, ACC_SUPER
  this_class: sun.security.ssl.SSLSocketImpl
  super_class: sun.security.ssl.BaseSSLSocketImpl
{
  private static final int cs_START;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 0

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  private java.util.HashMap<javax.net.ssl.HandshakeCompletedListener, java.security.AccessControlContext> handshakeListeners;
    descriptor: Ljava/util/HashMap;
    flags: (0x0002) ACC_PRIVATE
    Signature: Ljava/util/HashMap<Ljavax/net/ssl/HandshakeCompletedListener;Ljava/security/AccessControlContext;>;

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

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

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

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

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

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

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

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

  private java.io.ByteArrayOutputStream heldRecordBuffer;
    descriptor: Ljava/io/ByteArrayOutputStream;
    flags: (0x0002) ACC_PRIVATE

  static final boolean trustNameService;
    descriptor: Z
    flags: (0x0018) ACC_STATIC, ACC_FINAL

  static final boolean $assertionsDisabled;
    descriptor: Z
    flags: (0x1018) ACC_STATIC, ACC_FINAL, ACC_SYNTHETIC

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=2, locals=0, args_size=0
         0: .line 67
            ldc Lsun/security/ssl/SSLSocketImpl;
            invokevirtual java.lang.Class.desiredAssertionStatus:()Z
            ifne 1
            iconst_1
            goto 2
      StackMap locals:
      StackMap stack:
         1: iconst_0
      StackMap locals:
      StackMap stack: int
         2: putstatic sun.security.ssl.SSLSocketImpl.$assertionsDisabled:Z
         3: .line 370
            ldc "ssl"
            invokestatic sun.security.ssl.Debug.getInstance:(Ljava/lang/String;)Lsun/security/ssl/Debug;
            putstatic sun.security.ssl.SSLSocketImpl.debug:Lsun/security/ssl/Debug;
         4: .line 390
            ldc "jdk.tls.trustNameService"
            iconst_0
            invokestatic sun.security.ssl.Debug.getBooleanProperty:(Ljava/lang/String;Z)Z
         5: .line 389
            putstatic sun.security.ssl.SSLSocketImpl.trustNameService:Z
         6: .line 390
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  void <init>(sun.security.ssl.SSLContextImpl, java.lang.String, int);
    descriptor: (Lsun/security/ssl/SSLContextImpl;Ljava/lang/String;I)V
    flags: (0x0000) 
    Code:
      stack=4, locals=5, args_size=4
        start local 0 // sun.security.ssl.SSLSocketImpl this
        start local 1 // sun.security.ssl.SSLContextImpl context
        start local 2 // java.lang.String host
        start local 3 // int port
         0: .line 407
            aload 0 /* this */
            invokespecial sun.security.ssl.BaseSSLSocketImpl.<init>:()V
         1: .line 206
            aload 0 /* this */
            iconst_1
            putfield sun.security.ssl.SSLSocketImpl.enableSessionCreation:Z
         2: .line 208
            aload 0 /* this */
            iconst_1
            putfield sun.security.ssl.SSLSocketImpl.autoClose:Z
         3: .line 216
            aload 0 /* this */
            aconst_null
            putfield sun.security.ssl.SSLSocketImpl.identificationAlg:Ljava/lang/String;
         4: .line 289
            aload 0 /* this */
            new java.lang.Object
            dup
            invokespecial java.lang.Object.<init>:()V
            putfield sun.security.ssl.SSLSocketImpl.handshakeLock:Ljava/lang/Object;
         5: .line 290
            aload 0 /* this */
            new java.util.concurrent.locks.ReentrantLock
            dup
            invokespecial java.util.concurrent.locks.ReentrantLock.<init>:()V
            putfield sun.security.ssl.SSLSocketImpl.writeLock:Ljava/util/concurrent/locks/ReentrantLock;
         6: .line 291
            aload 0 /* this */
            new java.lang.Object
            dup
            invokespecial java.lang.Object.<init>:()V
            putfield sun.security.ssl.SSLSocketImpl.readLock:Ljava/lang/Object;
         7: .line 367
            aload 0 /* this */
            getstatic sun.security.ssl.ProtocolVersion.DEFAULT:Lsun/security/ssl/ProtocolVersion;
            putfield sun.security.ssl.SSLSocketImpl.protocolVersion:Lsun/security/ssl/ProtocolVersion;
         8: .line 375
            aload 0 /* this */
            iconst_1
            putfield sun.security.ssl.SSLSocketImpl.isFirstAppOutputRecord:Z
         9: .line 381
            aload 0 /* this */
            aconst_null
            putfield sun.security.ssl.SSLSocketImpl.heldRecordBuffer:Ljava/io/ByteArrayOutputStream;
        10: .line 408
            aload 0 /* this */
            aload 2 /* host */
            putfield sun.security.ssl.SSLSocketImpl.host:Ljava/lang/String;
        11: .line 409
            aload 0 /* this */
            aload 1 /* context */
            iconst_0
            invokevirtual sun.security.ssl.SSLSocketImpl.init:(Lsun/security/ssl/SSLContextImpl;Z)V
        12: .line 410
            new java.net.InetSocketAddress
            dup
            aload 2 /* host */
            iload 3 /* port */
            invokespecial java.net.InetSocketAddress.<init>:(Ljava/lang/String;I)V
            astore 4 /* socketAddress */
        start local 4 // java.net.SocketAddress socketAddress
        13: .line 411
            aload 0 /* this */
            aload 4 /* socketAddress */
            iconst_0
            invokevirtual sun.security.ssl.SSLSocketImpl.connect:(Ljava/net/SocketAddress;I)V
        14: .line 412
            return
        end local 4 // java.net.SocketAddress socketAddress
        end local 3 // int port
        end local 2 // java.lang.String host
        end local 1 // sun.security.ssl.SSLContextImpl context
        end local 0 // sun.security.ssl.SSLSocketImpl this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0   15     0           this  Lsun/security/ssl/SSLSocketImpl;
            0   15     1        context  Lsun/security/ssl/SSLContextImpl;
            0   15     2           host  Ljava/lang/String;
            0   15     3           port  I
           13   15     4  socketAddress  Ljava/net/SocketAddress;
    Exceptions:
      throws java.io.IOException, java.net.UnknownHostException
    MethodParameters:
         Name  Flags
      context  
      host     
      port     

  void <init>(sun.security.ssl.SSLContextImpl, java.net.InetAddress, int);
    descriptor: (Lsun/security/ssl/SSLContextImpl;Ljava/net/InetAddress;I)V
    flags: (0x0000) 
    Code:
      stack=4, locals=5, args_size=4
        start local 0 // sun.security.ssl.SSLSocketImpl this
        start local 1 // sun.security.ssl.SSLContextImpl context
        start local 2 // java.net.InetAddress host
        start local 3 // int port
         0: .line 427
            aload 0 /* this */
            invokespecial sun.security.ssl.BaseSSLSocketImpl.<init>:()V
         1: .line 206
            aload 0 /* this */
            iconst_1
            putfield sun.security.ssl.SSLSocketImpl.enableSessionCreation:Z
         2: .line 208
            aload 0 /* this */
            iconst_1
            putfield sun.security.ssl.SSLSocketImpl.autoClose:Z
         3: .line 216
            aload 0 /* this */
            aconst_null
            putfield sun.security.ssl.SSLSocketImpl.identificationAlg:Ljava/lang/String;
         4: .line 289
            aload 0 /* this */
            new java.lang.Object
            dup
            invokespecial java.lang.Object.<init>:()V
            putfield sun.security.ssl.SSLSocketImpl.handshakeLock:Ljava/lang/Object;
         5: .line 290
            aload 0 /* this */
            new java.util.concurrent.locks.ReentrantLock
            dup
            invokespecial java.util.concurrent.locks.ReentrantLock.<init>:()V
            putfield sun.security.ssl.SSLSocketImpl.writeLock:Ljava/util/concurrent/locks/ReentrantLock;
         6: .line 291
            aload 0 /* this */
            new java.lang.Object
            dup
            invokespecial java.lang.Object.<init>:()V
            putfield sun.security.ssl.SSLSocketImpl.readLock:Ljava/lang/Object;
         7: .line 367
            aload 0 /* this */
            getstatic sun.security.ssl.ProtocolVersion.DEFAULT:Lsun/security/ssl/ProtocolVersion;
            putfield sun.security.ssl.SSLSocketImpl.protocolVersion:Lsun/security/ssl/ProtocolVersion;
         8: .line 375
            aload 0 /* this */
            iconst_1
            putfield sun.security.ssl.SSLSocketImpl.isFirstAppOutputRecord:Z
         9: .line 381
            aload 0 /* this */
            aconst_null
            putfield sun.security.ssl.SSLSocketImpl.heldRecordBuffer:Ljava/io/ByteArrayOutputStream;
        10: .line 428
            aload 0 /* this */
            aload 1 /* context */
            iconst_0
            invokevirtual sun.security.ssl.SSLSocketImpl.init:(Lsun/security/ssl/SSLContextImpl;Z)V
        11: .line 429
            new java.net.InetSocketAddress
            dup
            aload 2 /* host */
            iload 3 /* port */
            invokespecial java.net.InetSocketAddress.<init>:(Ljava/net/InetAddress;I)V
            astore 4 /* socketAddress */
        start local 4 // java.net.SocketAddress socketAddress
        12: .line 430
            aload 0 /* this */
            aload 4 /* socketAddress */
            iconst_0
            invokevirtual sun.security.ssl.SSLSocketImpl.connect:(Ljava/net/SocketAddress;I)V
        13: .line 431
            return
        end local 4 // java.net.SocketAddress socketAddress
        end local 3 // int port
        end local 2 // java.net.InetAddress host
        end local 1 // sun.security.ssl.SSLContextImpl context
        end local 0 // sun.security.ssl.SSLSocketImpl this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0   14     0           this  Lsun/security/ssl/SSLSocketImpl;
            0   14     1        context  Lsun/security/ssl/SSLContextImpl;
            0   14     2           host  Ljava/net/InetAddress;
            0   14     3           port  I
           12   14     4  socketAddress  Ljava/net/SocketAddress;
    Exceptions:
      throws java.io.IOException
    MethodParameters:
         Name  Flags
      context  
      host     
      port     

  void <init>(sun.security.ssl.SSLContextImpl, java.lang.String, int, java.net.InetAddress, int);
    descriptor: (Lsun/security/ssl/SSLContextImpl;Ljava/lang/String;ILjava/net/InetAddress;I)V
    flags: (0x0000) 
    Code:
      stack=5, locals=7, args_size=6
        start local 0 // sun.security.ssl.SSLSocketImpl this
        start local 1 // sun.security.ssl.SSLContextImpl context
        start local 2 // java.lang.String host
        start local 3 // int port
        start local 4 // java.net.InetAddress localAddr
        start local 5 // int localPort
         0: .line 447
            aload 0 /* this */
            invokespecial sun.security.ssl.BaseSSLSocketImpl.<init>:()V
         1: .line 206
            aload 0 /* this */
            iconst_1
            putfield sun.security.ssl.SSLSocketImpl.enableSessionCreation:Z
         2: .line 208
            aload 0 /* this */
            iconst_1
            putfield sun.security.ssl.SSLSocketImpl.autoClose:Z
         3: .line 216
            aload 0 /* this */
            aconst_null
            putfield sun.security.ssl.SSLSocketImpl.identificationAlg:Ljava/lang/String;
         4: .line 289
            aload 0 /* this */
            new java.lang.Object
            dup
            invokespecial java.lang.Object.<init>:()V
            putfield sun.security.ssl.SSLSocketImpl.handshakeLock:Ljava/lang/Object;
         5: .line 290
            aload 0 /* this */
            new java.util.concurrent.locks.ReentrantLock
            dup
            invokespecial java.util.concurrent.locks.ReentrantLock.<init>:()V
            putfield sun.security.ssl.SSLSocketImpl.writeLock:Ljava/util/concurrent/locks/ReentrantLock;
         6: .line 291
            aload 0 /* this */
            new java.lang.Object
            dup
            invokespecial java.lang.Object.<init>:()V
            putfield sun.security.ssl.SSLSocketImpl.readLock:Ljava/lang/Object;
         7: .line 367
            aload 0 /* this */
            getstatic sun.security.ssl.ProtocolVersion.DEFAULT:Lsun/security/ssl/ProtocolVersion;
            putfield sun.security.ssl.SSLSocketImpl.protocolVersion:Lsun/security/ssl/ProtocolVersion;
         8: .line 375
            aload 0 /* this */
            iconst_1
            putfield sun.security.ssl.SSLSocketImpl.isFirstAppOutputRecord:Z
         9: .line 381
            aload 0 /* this */
            aconst_null
            putfield sun.security.ssl.SSLSocketImpl.heldRecordBuffer:Ljava/io/ByteArrayOutputStream;
        10: .line 448
            aload 0 /* this */
            aload 2 /* host */
            putfield sun.security.ssl.SSLSocketImpl.host:Ljava/lang/String;
        11: .line 449
            aload 0 /* this */
            aload 1 /* context */
            iconst_0
            invokevirtual sun.security.ssl.SSLSocketImpl.init:(Lsun/security/ssl/SSLContextImpl;Z)V
        12: .line 450
            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 451
            new java.net.InetSocketAddress
            dup
            aload 2 /* host */
            iload 3 /* port */
            invokespecial java.net.InetSocketAddress.<init>:(Ljava/lang/String;I)V
            astore 6 /* socketAddress */
        start local 6 // java.net.SocketAddress socketAddress
        14: .line 452
            aload 0 /* this */
            aload 6 /* socketAddress */
            iconst_0
            invokevirtual sun.security.ssl.SSLSocketImpl.connect:(Ljava/net/SocketAddress;I)V
        15: .line 453
            return
        end local 6 // java.net.SocketAddress socketAddress
        end local 5 // int localPort
        end local 4 // java.net.InetAddress localAddr
        end local 3 // int port
        end local 2 // java.lang.String host
        end local 1 // sun.security.ssl.SSLContextImpl context
        end local 0 // sun.security.ssl.SSLSocketImpl this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0   16     0           this  Lsun/security/ssl/SSLSocketImpl;
            0   16     1        context  Lsun/security/ssl/SSLContextImpl;
            0   16     2           host  Ljava/lang/String;
            0   16     3           port  I
            0   16     4      localAddr  Ljava/net/InetAddress;
            0   16     5      localPort  I
           14   16     6  socketAddress  Ljava/net/SocketAddress;
    Exceptions:
      throws java.io.IOException, java.net.UnknownHostException
    MethodParameters:
           Name  Flags
      context    
      host       
      port       
      localAddr  
      localPort  

  void <init>(sun.security.ssl.SSLContextImpl, java.net.InetAddress, int, java.net.InetAddress, int);
    descriptor: (Lsun/security/ssl/SSLContextImpl;Ljava/net/InetAddress;ILjava/net/InetAddress;I)V
    flags: (0x0000) 
    Code:
      stack=5, locals=7, args_size=6
        start local 0 // sun.security.ssl.SSLSocketImpl this
        start local 1 // sun.security.ssl.SSLContextImpl context
        start local 2 // java.net.InetAddress host
        start local 3 // int port
        start local 4 // java.net.InetAddress localAddr
        start local 5 // int localPort
         0: .line 471
            aload 0 /* this */
            invokespecial sun.security.ssl.BaseSSLSocketImpl.<init>:()V
         1: .line 206
            aload 0 /* this */
            iconst_1
            putfield sun.security.ssl.SSLSocketImpl.enableSessionCreation:Z
         2: .line 208
            aload 0 /* this */
            iconst_1
            putfield sun.security.ssl.SSLSocketImpl.autoClose:Z
         3: .line 216
            aload 0 /* this */
            aconst_null
            putfield sun.security.ssl.SSLSocketImpl.identificationAlg:Ljava/lang/String;
         4: .line 289
            aload 0 /* this */
            new java.lang.Object
            dup
            invokespecial java.lang.Object.<init>:()V
            putfield sun.security.ssl.SSLSocketImpl.handshakeLock:Ljava/lang/Object;
         5: .line 290
            aload 0 /* this */
            new java.util.concurrent.locks.ReentrantLock
            dup
            invokespecial java.util.concurrent.locks.ReentrantLock.<init>:()V
            putfield sun.security.ssl.SSLSocketImpl.writeLock:Ljava/util/concurrent/locks/ReentrantLock;
         6: .line 291
            aload 0 /* this */
            new java.lang.Object
            dup
            invokespecial java.lang.Object.<init>:()V
            putfield sun.security.ssl.SSLSocketImpl.readLock:Ljava/lang/Object;
         7: .line 367
            aload 0 /* this */
            getstatic sun.security.ssl.ProtocolVersion.DEFAULT:Lsun/security/ssl/ProtocolVersion;
            putfield sun.security.ssl.SSLSocketImpl.protocolVersion:Lsun/security/ssl/ProtocolVersion;
         8: .line 375
            aload 0 /* this */
            iconst_1
            putfield sun.security.ssl.SSLSocketImpl.isFirstAppOutputRecord:Z
         9: .line 381
            aload 0 /* this */
            aconst_null
            putfield sun.security.ssl.SSLSocketImpl.heldRecordBuffer:Ljava/io/ByteArrayOutputStream;
        10: .line 472
            aload 0 /* this */
            aload 1 /* context */
            iconst_0
            invokevirtual sun.security.ssl.SSLSocketImpl.init:(Lsun/security/ssl/SSLContextImpl;Z)V
        11: .line 473
            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 474
            new java.net.InetSocketAddress
            dup
            aload 2 /* host */
            iload 3 /* port */
            invokespecial java.net.InetSocketAddress.<init>:(Ljava/net/InetAddress;I)V
            astore 6 /* socketAddress */
        start local 6 // java.net.SocketAddress socketAddress
        13: .line 475
            aload 0 /* this */
            aload 6 /* socketAddress */
            iconst_0
            invokevirtual sun.security.ssl.SSLSocketImpl.connect:(Ljava/net/SocketAddress;I)V
        14: .line 476
            return
        end local 6 // java.net.SocketAddress socketAddress
        end local 5 // int localPort
        end local 4 // java.net.InetAddress localAddr
        end local 3 // int port
        end local 2 // java.net.InetAddress host
        end local 1 // sun.security.ssl.SSLContextImpl context
        end local 0 // sun.security.ssl.SSLSocketImpl this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0   15     0           this  Lsun/security/ssl/SSLSocketImpl;
            0   15     1        context  Lsun/security/ssl/SSLContextImpl;
            0   15     2           host  Ljava/net/InetAddress;
            0   15     3           port  I
            0   15     4      localAddr  Ljava/net/InetAddress;
            0   15     5      localPort  I
           13   15     6  socketAddress  Ljava/net/SocketAddress;
    Exceptions:
      throws java.io.IOException
    MethodParameters:
           Name  Flags
      context    
      host       
      port       
      localAddr  
      localPort  

  void <init>(sun.security.ssl.SSLContextImpl, boolean, sun.security.ssl.CipherSuiteList, byte, boolean, sun.security.ssl.ProtocolList);
    descriptor: (Lsun/security/ssl/SSLContextImpl;ZLsun/security/ssl/CipherSuiteList;BZLsun/security/ssl/ProtocolList;)V
    flags: (0x0000) 
    Code:
      stack=3, locals=7, args_size=7
        start local 0 // sun.security.ssl.SSLSocketImpl this
        start local 1 // sun.security.ssl.SSLContextImpl context
        start local 2 // boolean serverMode
        start local 3 // sun.security.ssl.CipherSuiteList suites
        start local 4 // byte clientAuth
        start local 5 // boolean sessionCreation
        start local 6 // sun.security.ssl.ProtocolList protocols
         0: .line 488
            aload 0 /* this */
            invokespecial sun.security.ssl.BaseSSLSocketImpl.<init>:()V
         1: .line 206
            aload 0 /* this */
            iconst_1
            putfield sun.security.ssl.SSLSocketImpl.enableSessionCreation:Z
         2: .line 208
            aload 0 /* this */
            iconst_1
            putfield sun.security.ssl.SSLSocketImpl.autoClose:Z
         3: .line 216
            aload 0 /* this */
            aconst_null
            putfield sun.security.ssl.SSLSocketImpl.identificationAlg:Ljava/lang/String;
         4: .line 289
            aload 0 /* this */
            new java.lang.Object
            dup
            invokespecial java.lang.Object.<init>:()V
            putfield sun.security.ssl.SSLSocketImpl.handshakeLock:Ljava/lang/Object;
         5: .line 290
            aload 0 /* this */
            new java.util.concurrent.locks.ReentrantLock
            dup
            invokespecial java.util.concurrent.locks.ReentrantLock.<init>:()V
            putfield sun.security.ssl.SSLSocketImpl.writeLock:Ljava/util/concurrent/locks/ReentrantLock;
         6: .line 291
            aload 0 /* this */
            new java.lang.Object
            dup
            invokespecial java.lang.Object.<init>:()V
            putfield sun.security.ssl.SSLSocketImpl.readLock:Ljava/lang/Object;
         7: .line 367
            aload 0 /* this */
            getstatic sun.security.ssl.ProtocolVersion.DEFAULT:Lsun/security/ssl/ProtocolVersion;
            putfield sun.security.ssl.SSLSocketImpl.protocolVersion:Lsun/security/ssl/ProtocolVersion;
         8: .line 375
            aload 0 /* this */
            iconst_1
            putfield sun.security.ssl.SSLSocketImpl.isFirstAppOutputRecord:Z
         9: .line 381
            aload 0 /* this */
            aconst_null
            putfield sun.security.ssl.SSLSocketImpl.heldRecordBuffer:Ljava/io/ByteArrayOutputStream;
        10: .line 489
            aload 0 /* this */
            iload 4 /* clientAuth */
            putfield sun.security.ssl.SSLSocketImpl.doClientAuth:B
        11: .line 490
            aload 0 /* this */
            iload 5 /* sessionCreation */
            putfield sun.security.ssl.SSLSocketImpl.enableSessionCreation:Z
        12: .line 491
            aload 0 /* this */
            aload 1 /* context */
            iload 2 /* serverMode */
            invokevirtual sun.security.ssl.SSLSocketImpl.init:(Lsun/security/ssl/SSLContextImpl;Z)V
        13: .line 496
            aload 0 /* this */
            aload 3 /* suites */
            putfield sun.security.ssl.SSLSocketImpl.enabledCipherSuites:Lsun/security/ssl/CipherSuiteList;
        14: .line 497
            aload 0 /* this */
            aload 6 /* protocols */
            putfield sun.security.ssl.SSLSocketImpl.enabledProtocols:Lsun/security/ssl/ProtocolList;
        15: .line 498
            return
        end local 6 // sun.security.ssl.ProtocolList protocols
        end local 5 // boolean sessionCreation
        end local 4 // byte clientAuth
        end local 3 // sun.security.ssl.CipherSuiteList suites
        end local 2 // boolean serverMode
        end local 1 // sun.security.ssl.SSLContextImpl context
        end local 0 // sun.security.ssl.SSLSocketImpl this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0   16     0             this  Lsun/security/ssl/SSLSocketImpl;
            0   16     1          context  Lsun/security/ssl/SSLContextImpl;
            0   16     2       serverMode  Z
            0   16     3           suites  Lsun/security/ssl/CipherSuiteList;
            0   16     4       clientAuth  B
            0   16     5  sessionCreation  Z
            0   16     6        protocols  Lsun/security/ssl/ProtocolList;
    Exceptions:
      throws java.io.IOException
    MethodParameters:
                 Name  Flags
      context          
      serverMode       
      suites           
      clientAuth       
      sessionCreation  
      protocols        

  void <init>(sun.security.ssl.SSLContextImpl);
    descriptor: (Lsun/security/ssl/SSLContextImpl;)V
    flags: (0x0000) 
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // sun.security.ssl.SSLSocketImpl this
        start local 1 // sun.security.ssl.SSLContextImpl context
         0: .line 508
            aload 0 /* this */
            invokespecial sun.security.ssl.BaseSSLSocketImpl.<init>:()V
         1: .line 206
            aload 0 /* this */
            iconst_1
            putfield sun.security.ssl.SSLSocketImpl.enableSessionCreation:Z
         2: .line 208
            aload 0 /* this */
            iconst_1
            putfield sun.security.ssl.SSLSocketImpl.autoClose:Z
         3: .line 216
            aload 0 /* this */
            aconst_null
            putfield sun.security.ssl.SSLSocketImpl.identificationAlg:Ljava/lang/String;
         4: .line 289
            aload 0 /* this */
            new java.lang.Object
            dup
            invokespecial java.lang.Object.<init>:()V
            putfield sun.security.ssl.SSLSocketImpl.handshakeLock:Ljava/lang/Object;
         5: .line 290
            aload 0 /* this */
            new java.util.concurrent.locks.ReentrantLock
            dup
            invokespecial java.util.concurrent.locks.ReentrantLock.<init>:()V
            putfield sun.security.ssl.SSLSocketImpl.writeLock:Ljava/util/concurrent/locks/ReentrantLock;
         6: .line 291
            aload 0 /* this */
            new java.lang.Object
            dup
            invokespecial java.lang.Object.<init>:()V
            putfield sun.security.ssl.SSLSocketImpl.readLock:Ljava/lang/Object;
         7: .line 367
            aload 0 /* this */
            getstatic sun.security.ssl.ProtocolVersion.DEFAULT:Lsun/security/ssl/ProtocolVersion;
            putfield sun.security.ssl.SSLSocketImpl.protocolVersion:Lsun/security/ssl/ProtocolVersion;
         8: .line 375
            aload 0 /* this */
            iconst_1
            putfield sun.security.ssl.SSLSocketImpl.isFirstAppOutputRecord:Z
         9: .line 381
            aload 0 /* this */
            aconst_null
            putfield sun.security.ssl.SSLSocketImpl.heldRecordBuffer:Ljava/io/ByteArrayOutputStream;
        10: .line 509
            aload 0 /* this */
            aload 1 /* context */
            iconst_0
            invokevirtual sun.security.ssl.SSLSocketImpl.init:(Lsun/security/ssl/SSLContextImpl;Z)V
        11: .line 510
            return
        end local 1 // sun.security.ssl.SSLContextImpl context
        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  context  Lsun/security/ssl/SSLContextImpl;
    MethodParameters:
         Name  Flags
      context  

  void <init>(sun.security.ssl.SSLContextImpl, java.net.Socket, java.lang.String, int, boolean);
    descriptor: (Lsun/security/ssl/SSLContextImpl;Ljava/net/Socket;Ljava/lang/String;IZ)V
    flags: (0x0000) 
    Code:
      stack=3, locals=6, args_size=6
        start local 0 // sun.security.ssl.SSLSocketImpl this
        start local 1 // sun.security.ssl.SSLContextImpl context
        start local 2 // java.net.Socket sock
        start local 3 // java.lang.String host
        start local 4 // int port
        start local 5 // boolean autoClose
         0: .line 531
            aload 0 /* this */
            aload 2 /* sock */
            invokespecial sun.security.ssl.BaseSSLSocketImpl.<init>:(Ljava/net/Socket;)V
         1: .line 206
            aload 0 /* this */
            iconst_1
            putfield sun.security.ssl.SSLSocketImpl.enableSessionCreation:Z
         2: .line 208
            aload 0 /* this */
            iconst_1
            putfield sun.security.ssl.SSLSocketImpl.autoClose:Z
         3: .line 216
            aload 0 /* this */
            aconst_null
            putfield sun.security.ssl.SSLSocketImpl.identificationAlg:Ljava/lang/String;
         4: .line 289
            aload 0 /* this */
            new java.lang.Object
            dup
            invokespecial java.lang.Object.<init>:()V
            putfield sun.security.ssl.SSLSocketImpl.handshakeLock:Ljava/lang/Object;
         5: .line 290
            aload 0 /* this */
            new java.util.concurrent.locks.ReentrantLock
            dup
            invokespecial java.util.concurrent.locks.ReentrantLock.<init>:()V
            putfield sun.security.ssl.SSLSocketImpl.writeLock:Ljava/util/concurrent/locks/ReentrantLock;
         6: .line 291
            aload 0 /* this */
            new java.lang.Object
            dup
            invokespecial java.lang.Object.<init>:()V
            putfield sun.security.ssl.SSLSocketImpl.readLock:Ljava/lang/Object;
         7: .line 367
            aload 0 /* this */
            getstatic sun.security.ssl.ProtocolVersion.DEFAULT:Lsun/security/ssl/ProtocolVersion;
            putfield sun.security.ssl.SSLSocketImpl.protocolVersion:Lsun/security/ssl/ProtocolVersion;
         8: .line 375
            aload 0 /* this */
            iconst_1
            putfield sun.security.ssl.SSLSocketImpl.isFirstAppOutputRecord:Z
         9: .line 381
            aload 0 /* this */
            aconst_null
            putfield sun.security.ssl.SSLSocketImpl.heldRecordBuffer:Ljava/io/ByteArrayOutputStream;
        10: .line 533
            aload 2 /* sock */
            invokevirtual java.net.Socket.isConnected:()Z
            ifne 12
        11: .line 534
            new java.net.SocketException
            dup
            ldc "Underlying socket is not connected"
            invokespecial java.net.SocketException.<init>:(Ljava/lang/String;)V
            athrow
        12: .line 536
      StackMap locals: sun.security.ssl.SSLSocketImpl sun.security.ssl.SSLContextImpl java.net.Socket java.lang.String int int
      StackMap stack:
            aload 0 /* this */
            aload 3 /* host */
            putfield sun.security.ssl.SSLSocketImpl.host:Ljava/lang/String;
        13: .line 537
            aload 0 /* this */
            aload 1 /* context */
            iconst_0
            invokevirtual sun.security.ssl.SSLSocketImpl.init:(Lsun/security/ssl/SSLContextImpl;Z)V
        14: .line 538
            aload 0 /* this */
            iload 5 /* autoClose */
            putfield sun.security.ssl.SSLSocketImpl.autoClose:Z
        15: .line 539
            aload 0 /* this */
            invokevirtual sun.security.ssl.SSLSocketImpl.doneConnect:()V
        16: .line 540
            return
        end local 5 // boolean autoClose
        end local 4 // int port
        end local 3 // java.lang.String host
        end local 2 // java.net.Socket sock
        end local 1 // sun.security.ssl.SSLContextImpl context
        end local 0 // sun.security.ssl.SSLSocketImpl this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   17     0       this  Lsun/security/ssl/SSLSocketImpl;
            0   17     1    context  Lsun/security/ssl/SSLContextImpl;
            0   17     2       sock  Ljava/net/Socket;
            0   17     3       host  Ljava/lang/String;
            0   17     4       port  I
            0   17     5  autoClose  Z
    Exceptions:
      throws java.io.IOException
    MethodParameters:
           Name  Flags
      context    
      sock       
      host       
      port       
      autoClose  

  private void init(sun.security.ssl.SSLContextImpl, boolean);
    descriptor: (Lsun/security/ssl/SSLContextImpl;Z)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // sun.security.ssl.SSLSocketImpl this
        start local 1 // sun.security.ssl.SSLContextImpl context
        start local 2 // boolean isServer
         0: .line 546
            aload 0 /* this */
            aload 1 /* context */
            putfield sun.security.ssl.SSLSocketImpl.sslContext:Lsun/security/ssl/SSLContextImpl;
         1: .line 547
            aload 0 /* this */
            getstatic sun.security.ssl.SSLSessionImpl.nullSession:Lsun/security/ssl/SSLSessionImpl;
            putfield sun.security.ssl.SSLSocketImpl.sess:Lsun/security/ssl/SSLSessionImpl;
         2: .line 553
            aload 0 /* this */
            iload 2 /* isServer */
            putfield sun.security.ssl.SSLSocketImpl.roleIsServer:Z
         3: .line 554
            aload 0 /* this */
            iconst_0
            putfield sun.security.ssl.SSLSocketImpl.connectionState:I
         4: .line 555
            aload 0 /* this */
            iconst_0
            putfield sun.security.ssl.SSLSocketImpl.receivedCCS:Z
         5: .line 562
            aload 0 /* this */
            getstatic sun.security.ssl.CipherBox.NULL:Lsun/security/ssl/CipherBox;
            putfield sun.security.ssl.SSLSocketImpl.readCipher:Lsun/security/ssl/CipherBox;
         6: .line 563
            aload 0 /* this */
            getstatic sun.security.ssl.MAC.NULL:Lsun/security/ssl/MAC;
            putfield sun.security.ssl.SSLSocketImpl.readMAC:Lsun/security/ssl/MAC;
         7: .line 564
            aload 0 /* this */
            getstatic sun.security.ssl.CipherBox.NULL:Lsun/security/ssl/CipherBox;
            putfield sun.security.ssl.SSLSocketImpl.writeCipher:Lsun/security/ssl/CipherBox;
         8: .line 565
            aload 0 /* this */
            getstatic sun.security.ssl.MAC.NULL:Lsun/security/ssl/MAC;
            putfield sun.security.ssl.SSLSocketImpl.writeMAC:Lsun/security/ssl/MAC;
         9: .line 568
            aload 0 /* this */
            iconst_0
            putfield sun.security.ssl.SSLSocketImpl.secureRenegotiation:Z
        10: .line 569
            aload 0 /* this */
            iconst_0
            newarray 8
            putfield sun.security.ssl.SSLSocketImpl.clientVerifyData:[B
        11: .line 570
            aload 0 /* this */
            iconst_0
            newarray 8
            putfield sun.security.ssl.SSLSocketImpl.serverVerifyData:[B
        12: .line 572
            aload 0 /* this */
        13: .line 573
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.sslContext:Lsun/security/ssl/SSLContextImpl;
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.roleIsServer:Z
            invokevirtual sun.security.ssl.SSLContextImpl.getDefaultCipherSuiteList:(Z)Lsun/security/ssl/CipherSuiteList;
        14: .line 572
            putfield sun.security.ssl.SSLSocketImpl.enabledCipherSuites:Lsun/security/ssl/CipherSuiteList;
        15: .line 574
            aload 0 /* this */
        16: .line 575
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.sslContext:Lsun/security/ssl/SSLContextImpl;
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.roleIsServer:Z
            invokevirtual sun.security.ssl.SSLContextImpl.getDefaultProtocolList:(Z)Lsun/security/ssl/ProtocolList;
        17: .line 574
            putfield sun.security.ssl.SSLSocketImpl.enabledProtocols:Lsun/security/ssl/ProtocolList;
        18: .line 577
            aload 0 /* this */
            aconst_null
            putfield sun.security.ssl.SSLSocketImpl.inrec:Lsun/security/ssl/InputRecord;
        19: .line 580
            aload 0 /* this */
            invokestatic java.security.AccessController.getContext:()Ljava/security/AccessControlContext;
            putfield sun.security.ssl.SSLSocketImpl.acc:Ljava/security/AccessControlContext;
        20: .line 582
            aload 0 /* this */
            new sun.security.ssl.AppInputStream
            dup
            aload 0 /* this */
            invokespecial sun.security.ssl.AppInputStream.<init>:(Lsun/security/ssl/SSLSocketImpl;)V
            putfield sun.security.ssl.SSLSocketImpl.input:Lsun/security/ssl/AppInputStream;
        21: .line 583
            aload 0 /* this */
            new sun.security.ssl.AppOutputStream
            dup
            aload 0 /* this */
            invokespecial sun.security.ssl.AppOutputStream.<init>:(Lsun/security/ssl/SSLSocketImpl;)V
            putfield sun.security.ssl.SSLSocketImpl.output:Lsun/security/ssl/AppOutputStream;
        22: .line 584
            return
        end local 2 // boolean isServer
        end local 1 // sun.security.ssl.SSLContextImpl context
        end local 0 // sun.security.ssl.SSLSocketImpl this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   23     0      this  Lsun/security/ssl/SSLSocketImpl;
            0   23     1   context  Lsun/security/ssl/SSLContextImpl;
            0   23     2  isServer  Z
    MethodParameters:
          Name  Flags
      context   
      isServer  

  public void connect(java.net.SocketAddress, int);
    descriptor: (Ljava/net/SocketAddress;I)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // sun.security.ssl.SSLSocketImpl this
        start local 1 // java.net.SocketAddress endpoint
        start local 2 // int timeout
         0: .line 605
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.self:Ljava/net/Socket;
            aload 0 /* this */
            if_acmpeq 2
         1: .line 606
            new java.net.SocketException
            dup
            ldc "Already connected"
            invokespecial java.net.SocketException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 609
      StackMap locals:
      StackMap stack:
            aload 1 /* endpoint */
            instanceof java.net.InetSocketAddress
            ifne 6
         3: .line 610
            new java.net.SocketException
            dup
         4: .line 611
            ldc "Cannot handle non-Inet socket addresses."
         5: .line 610
            invokespecial java.net.SocketException.<init>:(Ljava/lang/String;)V
            athrow
         6: .line 614
      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 615
            aload 0 /* this */
            invokevirtual sun.security.ssl.SSLSocketImpl.doneConnect:()V
         8: .line 616
            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   

  void doneConnect();
    descriptor: ()V
    flags: (0x0000) 
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // sun.security.ssl.SSLSocketImpl this
         0: .line 629
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.self:Ljava/net/Socket;
            aload 0 /* this */
            if_acmpne 4
         1: .line 630
            aload 0 /* this */
            aload 0 /* this */
            invokespecial sun.security.ssl.BaseSSLSocketImpl.getInputStream:()Ljava/io/InputStream;
            putfield sun.security.ssl.SSLSocketImpl.sockInput:Ljava/io/InputStream;
         2: .line 631
            aload 0 /* this */
            aload 0 /* this */
            invokespecial sun.security.ssl.BaseSSLSocketImpl.getOutputStream:()Ljava/io/OutputStream;
            putfield sun.security.ssl.SSLSocketImpl.sockOutput:Ljava/io/OutputStream;
         3: .line 632
            goto 6
         4: .line 633
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.self:Ljava/net/Socket;
            invokevirtual java.net.Socket.getInputStream:()Ljava/io/InputStream;
            putfield sun.security.ssl.SSLSocketImpl.sockInput:Ljava/io/InputStream;
         5: .line 634
            aload 0 /* this */
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.self:Ljava/net/Socket;
            invokevirtual java.net.Socket.getOutputStream:()Ljava/io/OutputStream;
            putfield sun.security.ssl.SSLSocketImpl.sockOutput:Ljava/io/OutputStream;
         6: .line 641
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual sun.security.ssl.SSLSocketImpl.initHandshaker:()V
         7: .line 642
            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

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

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

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

  void writeRecord(sun.security.ssl.OutputRecord);
    descriptor: (Lsun/security/ssl/OutputRecord;)V
    flags: (0x0000) 
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // sun.security.ssl.SSLSocketImpl this
        start local 1 // sun.security.ssl.OutputRecord r
         0: .line 668
            aload 0 /* this */
            aload 1 /* r */
            iconst_0
            invokevirtual sun.security.ssl.SSLSocketImpl.writeRecord:(Lsun/security/ssl/OutputRecord;Z)V
         1: .line 669
            return
        end local 1 // sun.security.ssl.OutputRecord r
        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     r  Lsun/security/ssl/OutputRecord;
    Exceptions:
      throws java.io.IOException
    MethodParameters:
      Name  Flags
      r     

  void writeRecord(sun.security.ssl.OutputRecord, boolean);
    descriptor: (Lsun/security/ssl/OutputRecord;Z)V
    flags: (0x0000) 
    Code:
      stack=4, locals=5, args_size=3
        start local 0 // sun.security.ssl.SSLSocketImpl this
        start local 1 // sun.security.ssl.OutputRecord r
        start local 2 // boolean holdRecord
         0: .line 683
            goto 13
         1: .line 689
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual sun.security.ssl.SSLSocketImpl.getConnectionState:()I
            tableswitch { // 1 - 7
                    1: 2
                    2: 4
                    3: 4
                    4: 5
                    5: 9
                    6: 9
                    7: 9
              default: 12
          }
         2: .line 698
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual sun.security.ssl.SSLSocketImpl.performInitialHandshake:()V
         3: .line 699
            goto 13
         4: .line 703
      StackMap locals:
      StackMap stack:
            goto 14
         5: .line 706
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iconst_0
         6: .line 707
            ldc "error while writing to socket"
         7: .line 706
            invokevirtual sun.security.ssl.SSLSocketImpl.fatal:(BLjava/lang/String;)V
         8: .line 708
            goto 13
         9: .line 715
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.closeReason:Ljavax/net/ssl/SSLException;
            ifnull 11
        10: .line 716
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.closeReason:Ljavax/net/ssl/SSLException;
            athrow
        11: .line 718
      StackMap locals:
      StackMap stack:
            new java.net.SocketException
            dup
            ldc "Socket closed"
            invokespecial java.net.SocketException.<init>:(Ljava/lang/String;)V
            athrow
        12: .line 725
      StackMap locals:
      StackMap stack:
            new javax.net.ssl.SSLProtocolException
            dup
            ldc "State error, send app data"
            invokespecial javax.net.ssl.SSLProtocolException.<init>:(Ljava/lang/String;)V
            athrow
        13: .line 683
      StackMap locals:
      StackMap stack:
            aload 1 /* r */
            invokevirtual sun.security.ssl.OutputRecord.contentType:()B
            bipush 23
            if_icmpeq 1
        14: .line 737
      StackMap locals:
      StackMap stack:
            aload 1 /* r */
            invokevirtual sun.security.ssl.OutputRecord.isEmpty:()Z
            ifne 49
        15: .line 742
            aload 1 /* r */
            iconst_0
            invokevirtual sun.security.ssl.OutputRecord.isAlert:(B)Z
            ifeq 42
            aload 0 /* this */
            invokevirtual sun.security.ssl.SSLSocketImpl.getSoLinger:()I
            iflt 42
        16: .line 745
            invokestatic java.lang.Thread.interrupted:()Z
            istore 3 /* interrupted */
        start local 3 // boolean interrupted
        17: .line 747
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.writeLock:Ljava/util/concurrent/locks/ReentrantLock;
            aload 0 /* this */
            invokevirtual sun.security.ssl.SSLSocketImpl.getSoLinger:()I
            i2l
            getstatic java.util.concurrent.TimeUnit.SECONDS:Ljava/util/concurrent/TimeUnit;
            invokevirtual java.util.concurrent.locks.ReentrantLock.tryLock:(JLjava/util/concurrent/TimeUnit;)Z
            ifeq 25
        18: .line 749
            aload 0 /* this */
            aload 1 /* r */
            iload 2 /* holdRecord */
            invokevirtual sun.security.ssl.SSLSocketImpl.writeRecordInternal:(Lsun/security/ssl/OutputRecord;Z)V
        19: .line 750
            goto 23
      StackMap locals: sun.security.ssl.SSLSocketImpl sun.security.ssl.OutputRecord int int
      StackMap stack: java.lang.Throwable
        20: astore 4
        21: .line 751
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.writeLock:Ljava/util/concurrent/locks/ReentrantLock;
            invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
        22: .line 752
            aload 4
            athrow
        23: .line 751
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.writeLock:Ljava/util/concurrent/locks/ReentrantLock;
            invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
        24: .line 753
            goto 39
        25: .line 754
      StackMap locals:
      StackMap stack:
            new javax.net.ssl.SSLException
            dup
        26: .line 755
            ldc "SO_LINGER timeout, close_notify message cannot be sent."
        27: .line 754
            invokespecial javax.net.ssl.SSLException.<init>:(Ljava/lang/String;)V
            astore 4 /* ssle */
        start local 4 // javax.net.ssl.SSLException ssle
        28: .line 762
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.self:Ljava/net/Socket;
            aload 0 /* this */
            if_acmpeq 31
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.autoClose:Z
            ifne 31
        29: .line 766
            aload 0 /* this */
            iconst_m1
            aload 4 /* ssle */
            invokevirtual sun.security.ssl.SSLSocketImpl.fatal:(BLjava/lang/Throwable;)V
        30: .line 767
            goto 35
      StackMap locals: javax.net.ssl.SSLException
      StackMap stack:
        31: getstatic sun.security.ssl.SSLSocketImpl.debug:Lsun/security/ssl/Debug;
            ifnull 35
            ldc "ssl"
            invokestatic sun.security.ssl.Debug.isOn:(Ljava/lang/String;)Z
            ifeq 35
        32: .line 768
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            new java.lang.StringBuilder
            dup
            invokestatic sun.security.ssl.SSLSocketImpl.threadName:()Ljava/lang/String;
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
        33: .line 769
            ldc ", received Exception: "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 4 /* ssle */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        34: .line 768
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
        35: .line 783
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.sess:Lsun/security/ssl/SSLSessionImpl;
            invokevirtual sun.security.ssl.SSLSessionImpl.invalidate:()V
        end local 4 // javax.net.ssl.SSLException ssle
        36: .line 785
            goto 39
      StackMap locals: sun.security.ssl.SSLSocketImpl sun.security.ssl.OutputRecord int int
      StackMap stack: java.lang.InterruptedException
        37: pop
        38: .line 787
            iconst_1
            istore 3 /* interrupted */
        39: .line 791
      StackMap locals:
      StackMap stack:
            iload 3 /* interrupted */
            ifeq 49
        40: .line 792
            invokestatic java.lang.Thread.currentThread:()Ljava/lang/Thread;
            invokevirtual java.lang.Thread.interrupt:()V
        end local 3 // boolean interrupted
        41: .line 794
            goto 49
        42: .line 795
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.writeLock:Ljava/util/concurrent/locks/ReentrantLock;
            invokevirtual java.util.concurrent.locks.ReentrantLock.lock:()V
        43: .line 797
            aload 0 /* this */
            aload 1 /* r */
            iload 2 /* holdRecord */
            invokevirtual sun.security.ssl.SSLSocketImpl.writeRecordInternal:(Lsun/security/ssl/OutputRecord;Z)V
        44: .line 798
            goto 48
      StackMap locals:
      StackMap stack: java.lang.Throwable
        45: astore 3
        46: .line 799
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.writeLock:Ljava/util/concurrent/locks/ReentrantLock;
            invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
        47: .line 800
            aload 3
            athrow
        48: .line 799
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.writeLock:Ljava/util/concurrent/locks/ReentrantLock;
            invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
        49: .line 803
      StackMap locals:
      StackMap stack:
            return
        end local 2 // boolean holdRecord
        end local 1 // sun.security.ssl.OutputRecord r
        end local 0 // sun.security.ssl.SSLSocketImpl this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   50     0         this  Lsun/security/ssl/SSLSocketImpl;
            0   50     1            r  Lsun/security/ssl/OutputRecord;
            0   50     2   holdRecord  Z
           17   41     3  interrupted  Z
           28   36     4         ssle  Ljavax/net/ssl/SSLException;
      Exception table:
        from    to  target  type
          18    20      20  any
          17    36      37  Class java.lang.InterruptedException
          43    45      45  any
    Exceptions:
      throws java.io.IOException
    MethodParameters:
            Name  Flags
      r           
      holdRecord  

  private void writeRecordInternal(sun.security.ssl.OutputRecord, boolean);
    descriptor: (Lsun/security/ssl/OutputRecord;Z)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // sun.security.ssl.SSLSocketImpl this
        start local 1 // sun.security.ssl.OutputRecord r
        start local 2 // boolean holdRecord
         0: .line 808
            aload 1 /* r */
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.writeMAC:Lsun/security/ssl/MAC;
            invokevirtual sun.security.ssl.OutputRecord.addMAC:(Lsun/security/ssl/MAC;)V
         1: .line 809
            aload 1 /* r */
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.writeCipher:Lsun/security/ssl/CipherBox;
            invokevirtual sun.security.ssl.OutputRecord.encrypt:(Lsun/security/ssl/CipherBox;)V
         2: .line 810
            iload 2 /* holdRecord */
            ifeq 8
         3: .line 814
            aload 0 /* this */
            invokevirtual sun.security.ssl.SSLSocketImpl.getTcpNoDelay:()Z
            ifeq 6
         4: .line 815
            iconst_0
            istore 2 /* holdRecord */
         5: .line 816
            goto 8
         6: .line 819
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.heldRecordBuffer:Ljava/io/ByteArrayOutputStream;
            ifnonnull 8
         7: .line 821
            aload 0 /* this */
            new java.io.ByteArrayOutputStream
            dup
            bipush 40
            invokespecial java.io.ByteArrayOutputStream.<init>:(I)V
            putfield sun.security.ssl.SSLSocketImpl.heldRecordBuffer:Ljava/io/ByteArrayOutputStream;
         8: .line 825
      StackMap locals:
      StackMap stack:
            aload 1 /* r */
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.sockOutput:Ljava/io/OutputStream;
            iload 2 /* holdRecord */
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.heldRecordBuffer:Ljava/io/ByteArrayOutputStream;
            invokevirtual sun.security.ssl.OutputRecord.write:(Ljava/io/OutputStream;ZLjava/io/ByteArrayOutputStream;)V
         9: .line 838
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.connectionState:I
            iconst_4
            if_icmpge 11
        10: .line 839
            aload 0 /* this */
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.writeMAC:Lsun/security/ssl/MAC;
            aload 1 /* r */
            invokevirtual sun.security.ssl.OutputRecord.contentType:()B
            invokevirtual sun.security.ssl.SSLSocketImpl.checkSequenceNumber:(Lsun/security/ssl/MAC;B)V
        11: .line 843
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.isFirstAppOutputRecord:Z
            ifeq 14
        12: .line 844
            aload 1 /* r */
            invokevirtual sun.security.ssl.OutputRecord.contentType:()B
            bipush 23
            if_icmpne 14
        13: .line 845
            aload 0 /* this */
            iconst_0
            putfield sun.security.ssl.SSLSocketImpl.isFirstAppOutputRecord:Z
        14: .line 847
      StackMap locals:
      StackMap stack:
            return
        end local 2 // boolean holdRecord
        end local 1 // sun.security.ssl.OutputRecord r
        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           r  Lsun/security/ssl/OutputRecord;
            0   15     2  holdRecord  Z
    Exceptions:
      throws java.io.IOException
    MethodParameters:
            Name  Flags
      r           
      holdRecord  

  boolean needToSplitPayload();
    descriptor: ()Z
    flags: (0x0000) 
    Code:
      stack=2, locals=3, args_size=1
        start local 0 // sun.security.ssl.SSLSocketImpl this
         0: .line 861
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.writeLock:Ljava/util/concurrent/locks/ReentrantLock;
            invokevirtual java.util.concurrent.locks.ReentrantLock.lock:()V
         1: .line 863
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.protocolVersion:Lsun/security/ssl/ProtocolVersion;
            getfield sun.security.ssl.ProtocolVersion.v:I
            getstatic sun.security.ssl.ProtocolVersion.TLS10:Lsun/security/ssl/ProtocolVersion;
            getfield sun.security.ssl.ProtocolVersion.v:I
            if_icmpgt 4
         2: .line 864
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.writeCipher:Lsun/security/ssl/CipherBox;
            invokevirtual sun.security.ssl.CipherBox.isCBCMode:()Z
            ifeq 4
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.isFirstAppOutputRecord:Z
            ifne 4
         3: .line 865
            getstatic sun.security.ssl.Record.enableCBCProtection:Z
            ifeq 4
            iconst_1
            goto 5
      StackMap locals:
      StackMap stack:
         4: iconst_0
      StackMap locals:
      StackMap stack: int
         5: istore 2
         6: .line 867
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.writeLock:Ljava/util/concurrent/locks/ReentrantLock;
            invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
         7: .line 863
            iload 2
            ireturn
         8: .line 866
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 1
         9: .line 867
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.writeLock:Ljava/util/concurrent/locks/ReentrantLock;
            invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
        10: .line 868
            aload 1
            athrow
        end local 0 // sun.security.ssl.SSLSocketImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   11     0  this  Lsun/security/ssl/SSLSocketImpl;
      Exception table:
        from    to  target  type
           1     6       8  any

  void readDataRecord(sun.security.ssl.InputRecord);
    descriptor: (Lsun/security/ssl/InputRecord;)V
    flags: (0x0000) 
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // sun.security.ssl.SSLSocketImpl this
        start local 1 // sun.security.ssl.InputRecord r
         0: .line 876
            aload 0 /* this */
            invokevirtual sun.security.ssl.SSLSocketImpl.getConnectionState:()I
            iconst_1
            if_icmpne 2
         1: .line 877
            aload 0 /* this */
            invokevirtual sun.security.ssl.SSLSocketImpl.performInitialHandshake:()V
         2: .line 879
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* r */
            iconst_1
            invokevirtual sun.security.ssl.SSLSocketImpl.readRecord:(Lsun/security/ssl/InputRecord;Z)V
         3: .line 880
            return
        end local 1 // sun.security.ssl.InputRecord r
        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     r  Lsun/security/ssl/InputRecord;
    Exceptions:
      throws java.io.IOException
    MethodParameters:
      Name  Flags
      r     

  private void readRecord(sun.security.ssl.InputRecord, boolean);
    descriptor: (Lsun/security/ssl/InputRecord;Z)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=9, args_size=3
        start local 0 // sun.security.ssl.SSLSocketImpl this
        start local 1 // sun.security.ssl.InputRecord r
        start local 2 // boolean needAppData
         0: .line 907
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.readLock:Ljava/lang/Object;
            dup
            astore 4
            monitorenter
         1: .line 913
            goto 134
        start local 3 // int state
         2: .line 921
      StackMap locals: int java.lang.Object
      StackMap stack:
            aload 1 /* r */
            iconst_0
            invokevirtual sun.security.ssl.InputRecord.setAppDataValid:(Z)V
         3: .line 922
            aload 1 /* r */
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.sockInput:Ljava/io/InputStream;
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.sockOutput:Ljava/io/OutputStream;
            invokevirtual sun.security.ssl.InputRecord.read:(Ljava/io/InputStream;Ljava/io/OutputStream;)V
         4: .line 923
            goto 37
      StackMap locals:
      StackMap stack: javax.net.ssl.SSLProtocolException
         5: astore 5 /* e */
        start local 5 // javax.net.ssl.SSLProtocolException e
         6: .line 925
            aload 0 /* this */
            bipush 10
            aload 5 /* e */
            invokevirtual sun.security.ssl.SSLSocketImpl.fatal:(BLjava/lang/Throwable;)V
         7: .line 926
            goto 9
      StackMap locals: sun.security.ssl.SSLSocketImpl sun.security.ssl.InputRecord int int java.lang.Object javax.net.ssl.SSLProtocolException
      StackMap stack: java.io.IOException
         8: pop
         9: .line 929
      StackMap locals:
      StackMap stack:
            aload 5 /* e */
            athrow
        end local 5 // javax.net.ssl.SSLProtocolException e
        10: .line 930
      StackMap locals: sun.security.ssl.SSLSocketImpl sun.security.ssl.InputRecord int int java.lang.Object
      StackMap stack: java.io.EOFException
            astore 5 /* eof */
        start local 5 // java.io.EOFException eof
        11: .line 931
            aload 0 /* this */
            invokevirtual sun.security.ssl.SSLSocketImpl.getConnectionState:()I
            iconst_1
            if_icmpgt 12
            iconst_1
            goto 13
      StackMap locals: java.io.EOFException
      StackMap stack:
        12: iconst_0
      StackMap locals:
      StackMap stack: int
        13: istore 6 /* handshaking */
        start local 6 // boolean handshaking
        14: .line 932
            getstatic sun.security.ssl.SSLSocketImpl.requireCloseNotify:Z
            ifne 15
            iload 6 /* handshaking */
            ifne 15
            iconst_0
            goto 16
      StackMap locals: int
      StackMap stack:
        15: iconst_1
      StackMap locals:
      StackMap stack: int
        16: istore 7 /* rethrow */
        start local 7 // boolean rethrow
        17: .line 933
            getstatic sun.security.ssl.SSLSocketImpl.debug:Lsun/security/ssl/Debug;
            ifnull 24
            ldc "ssl"
            invokestatic sun.security.ssl.Debug.isOn:(Ljava/lang/String;)Z
            ifeq 24
        18: .line 934
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            new java.lang.StringBuilder
            dup
            invokestatic sun.security.ssl.SSLSocketImpl.threadName:()Ljava/lang/String;
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
        19: .line 935
            ldc ", received EOFException: "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        20: .line 936
            iload 7 /* rethrow */
            ifeq 21
            ldc "error"
            goto 22
      StackMap locals: sun.security.ssl.SSLSocketImpl sun.security.ssl.InputRecord int int java.lang.Object java.io.EOFException int int
      StackMap stack: java.io.PrintStream java.lang.StringBuilder
        21: ldc "ignored"
      StackMap locals: sun.security.ssl.SSLSocketImpl sun.security.ssl.InputRecord int int java.lang.Object java.io.EOFException int int
      StackMap stack: java.io.PrintStream java.lang.StringBuilder java.lang.String
        22: invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        23: .line 934
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
        24: .line 938
      StackMap locals:
      StackMap stack:
            iload 7 /* rethrow */
            ifeq 35
        25: .line 940
            iload 6 /* handshaking */
            ifeq 30
        26: .line 941
            new javax.net.ssl.SSLHandshakeException
            dup
        27: .line 942
            ldc "Remote host closed connection during handshake"
        28: .line 941
            invokespecial javax.net.ssl.SSLHandshakeException.<init>:(Ljava/lang/String;)V
            astore 8 /* e */
        start local 8 // javax.net.ssl.SSLException e
        29: .line 943
            goto 33
        end local 8 // javax.net.ssl.SSLException e
        30: .line 944
      StackMap locals:
      StackMap stack:
            new javax.net.ssl.SSLProtocolException
            dup
        31: .line 945
            ldc "Remote host closed connection incorrectly"
        32: .line 944
            invokespecial javax.net.ssl.SSLProtocolException.<init>:(Ljava/lang/String;)V
            astore 8 /* e */
        start local 8 // javax.net.ssl.SSLException e
        33: .line 947
      StackMap locals: javax.net.ssl.SSLException
      StackMap stack:
            aload 8 /* e */
            aload 5 /* eof */
            invokevirtual javax.net.ssl.SSLException.initCause:(Ljava/lang/Throwable;)Ljava/lang/Throwable;
            pop
        34: .line 948
            aload 8 /* e */
            athrow
        end local 8 // javax.net.ssl.SSLException e
        35: .line 951
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iconst_0
            invokevirtual sun.security.ssl.SSLSocketImpl.closeInternal:(Z)V
        36: .line 952
            goto 134
        end local 7 // boolean rethrow
        end local 6 // boolean handshaking
        end local 5 // java.io.EOFException eof
        37: .line 964
      StackMap locals:
      StackMap stack:
            aload 1 /* r */
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.readMAC:Lsun/security/ssl/MAC;
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.readCipher:Lsun/security/ssl/CipherBox;
            invokevirtual sun.security.ssl.InputRecord.decrypt:(Lsun/security/ssl/MAC;Lsun/security/ssl/CipherBox;)V
        38: .line 965
            goto 45
      StackMap locals:
      StackMap stack: javax.crypto.BadPaddingException
        39: astore 5 /* e */
        start local 5 // javax.crypto.BadPaddingException e
        40: .line 966
            aload 1 /* r */
            invokevirtual sun.security.ssl.InputRecord.contentType:()B
            bipush 22
            if_icmpne 42
        41: .line 967
            bipush 40
            goto 43
        42: .line 968
      StackMap locals: javax.crypto.BadPaddingException
      StackMap stack:
            bipush 20
        43: .line 966
      StackMap locals:
      StackMap stack: int
            istore 6 /* alertType */
        start local 6 // byte alertType
        44: .line 969
            aload 0 /* this */
            iload 6 /* alertType */
            aload 5 /* e */
            invokevirtual javax.crypto.BadPaddingException.getMessage:()Ljava/lang/String;
            aload 5 /* e */
            invokevirtual sun.security.ssl.SSLSocketImpl.fatal:(BLjava/lang/String;Ljava/lang/Throwable;)V
        end local 6 // byte alertType
        end local 5 // javax.crypto.BadPaddingException e
        45: .line 980
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            dup
            astore 5
            monitorenter
        46: .line 981
            aload 1 /* r */
            invokevirtual sun.security.ssl.InputRecord.contentType:()B
            tableswitch { // 20 - 23
                   20: 100
                   21: 97
                   22: 47
                   23: 81
              default: 120
          }
        47: .line 994
      StackMap locals: sun.security.ssl.SSLSocketImpl
      StackMap stack:
            aload 0 /* this */
            invokevirtual sun.security.ssl.SSLSocketImpl.initHandshaker:()V
        48: .line 995
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.handshaker:Lsun/security/ssl/Handshaker;
            invokevirtual sun.security.ssl.Handshaker.activated:()Z
            ifne 53
        49: .line 997
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.connectionState:I
            iconst_3
            if_icmpne 52
        50: .line 999
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.handshaker:Lsun/security/ssl/Handshaker;
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.protocolVersion:Lsun/security/ssl/ProtocolVersion;
            invokevirtual sun.security.ssl.Handshaker.activate:(Lsun/security/ssl/ProtocolVersion;)V
        51: .line 1000
            goto 53
        52: .line 1001
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.handshaker:Lsun/security/ssl/Handshaker;
            aconst_null
            invokevirtual sun.security.ssl.Handshaker.activate:(Lsun/security/ssl/ProtocolVersion;)V
        53: .line 1012
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.handshaker:Lsun/security/ssl/Handshaker;
            aload 1 /* r */
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.expectingFinished:Z
            invokevirtual sun.security.ssl.Handshaker.process_record:(Lsun/security/ssl/InputRecord;Z)V
        54: .line 1013
            aload 0 /* this */
            iconst_0
            putfield sun.security.ssl.SSLSocketImpl.expectingFinished:Z
        55: .line 1015
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.handshaker:Lsun/security/ssl/Handshaker;
            getfield sun.security.ssl.Handshaker.invalidated:Z
            ifeq 61
        56: .line 1016
            aload 0 /* this */
            aconst_null
            putfield sun.security.ssl.SSLSocketImpl.handshaker:Lsun/security/ssl/Handshaker;
        57: .line 1017
            aload 0 /* this */
            iconst_0
            putfield sun.security.ssl.SSLSocketImpl.receivedCCS:Z
        58: .line 1019
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.connectionState:I
            iconst_3
            if_icmpne 78
        59: .line 1020
            aload 0 /* this */
            iconst_2
            putfield sun.security.ssl.SSLSocketImpl.connectionState:I
        60: .line 1022
            goto 78
      StackMap locals:
      StackMap stack:
        61: aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.handshaker:Lsun/security/ssl/Handshaker;
            invokevirtual sun.security.ssl.Handshaker.isDone:()Z
            ifeq 78
        62: .line 1024
            aload 0 /* this */
        63: .line 1025
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.handshaker:Lsun/security/ssl/Handshaker;
            invokevirtual sun.security.ssl.Handshaker.isSecureRenegotiation:()Z
        64: .line 1024
            putfield sun.security.ssl.SSLSocketImpl.secureRenegotiation:Z
        65: .line 1026
            aload 0 /* this */
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.handshaker:Lsun/security/ssl/Handshaker;
            invokevirtual sun.security.ssl.Handshaker.getClientVerifyData:()[B
            putfield sun.security.ssl.SSLSocketImpl.clientVerifyData:[B
        66: .line 1027
            aload 0 /* this */
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.handshaker:Lsun/security/ssl/Handshaker;
            invokevirtual sun.security.ssl.Handshaker.getServerVerifyData:()[B
            putfield sun.security.ssl.SSLSocketImpl.serverVerifyData:[B
        67: .line 1029
            aload 0 /* this */
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.handshaker:Lsun/security/ssl/Handshaker;
            invokevirtual sun.security.ssl.Handshaker.getSession:()Lsun/security/ssl/SSLSessionImpl;
            putfield sun.security.ssl.SSLSocketImpl.sess:Lsun/security/ssl/SSLSessionImpl;
        68: .line 1030
            aload 0 /* this */
            aconst_null
            putfield sun.security.ssl.SSLSocketImpl.handshaker:Lsun/security/ssl/Handshaker;
        69: .line 1031
            aload 0 /* this */
            iconst_2
            putfield sun.security.ssl.SSLSocketImpl.connectionState:I
        70: .line 1032
            aload 0 /* this */
            iconst_0
            putfield sun.security.ssl.SSLSocketImpl.receivedCCS:Z
        71: .line 1038
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.handshakeListeners:Ljava/util/HashMap;
            ifnull 78
        72: .line 1040
            new javax.net.ssl.HandshakeCompletedEvent
            dup
            aload 0 /* this */
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.sess:Lsun/security/ssl/SSLSessionImpl;
            invokespecial javax.net.ssl.HandshakeCompletedEvent.<init>:(Ljavax/net/ssl/SSLSocket;Ljavax/net/ssl/SSLSession;)V
        73: .line 1039
            astore 6 /* event */
        start local 6 // javax.net.ssl.HandshakeCompletedEvent event
        74: .line 1042
            new sun.security.ssl.SSLSocketImpl$NotifyHandshakeThread
            dup
        75: .line 1043
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.handshakeListeners:Ljava/util/HashMap;
            invokevirtual java.util.HashMap.entrySet:()Ljava/util/Set;
            aload 6 /* event */
        76: .line 1042
            invokespecial sun.security.ssl.SSLSocketImpl$NotifyHandshakeThread.<init>:(Ljava/util/Set;Ljavax/net/ssl/HandshakeCompletedEvent;)V
            astore 7 /* t */
        start local 7 // java.lang.Thread t
        77: .line 1044
            aload 7 /* t */
            invokevirtual java.lang.Thread.start:()V
        end local 7 // java.lang.Thread t
        end local 6 // javax.net.ssl.HandshakeCompletedEvent event
        78: .line 1048
      StackMap locals:
      StackMap stack:
            iload 2 /* needAppData */
            ifne 79
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.connectionState:I
            iconst_2
            if_icmpeq 127
        79: .line 1049
      StackMap locals:
      StackMap stack:
            aload 5
            monitorexit
        80: goto 134
        81: .line 1055
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.connectionState:I
            iconst_2
            if_icmpeq 89
        82: .line 1056
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.connectionState:I
            iconst_3
            if_icmpeq 89
        83: .line 1057
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.connectionState:I
            iconst_5
            if_icmpeq 89
        84: .line 1058
            new javax.net.ssl.SSLProtocolException
            dup
        85: .line 1059
            new java.lang.StringBuilder
            dup
            ldc "Data received in non-data state: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
        86: .line 1060
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.connectionState:I
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
        87: .line 1059
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        88: .line 1058
            invokespecial javax.net.ssl.SSLProtocolException.<init>:(Ljava/lang/String;)V
            athrow
        89: .line 1062
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.expectingFinished:Z
            ifeq 93
        90: .line 1063
            new javax.net.ssl.SSLProtocolException
            dup
        91: .line 1064
            ldc "Expecting finished message, received data"
        92: .line 1063
            invokespecial javax.net.ssl.SSLProtocolException.<init>:(Ljava/lang/String;)V
            athrow
        93: .line 1066
      StackMap locals:
      StackMap stack:
            iload 2 /* needAppData */
            ifne 95
        94: .line 1067
            new javax.net.ssl.SSLException
            dup
            ldc "Discarding app data"
            invokespecial javax.net.ssl.SSLException.<init>:(Ljava/lang/String;)V
            athrow
        95: .line 1070
      StackMap locals:
      StackMap stack:
            aload 1 /* r */
            iconst_1
            invokevirtual sun.security.ssl.InputRecord.setAppDataValid:(Z)V
        96: .line 1071
            goto 127
        97: .line 1074
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* r */
            invokevirtual sun.security.ssl.SSLSocketImpl.recvAlert:(Lsun/security/ssl/InputRecord;)V
        98: .line 1075
            aload 5
            monitorexit
        99: goto 134
       100: .line 1078
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.connectionState:I
            iconst_1
            if_icmpeq 102
       101: .line 1079
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.connectionState:I
            iconst_3
            if_icmpne 104
       102: .line 1080
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.handshaker:Lsun/security/ssl/Handshaker;
            invokevirtual sun.security.ssl.Handshaker.sessionKeysCalculated:()Z
            ifeq 104
       103: .line 1081
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.receivedCCS:Z
            ifeq 111
       104: .line 1083
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            bipush 10
       105: .line 1084
            new java.lang.StringBuilder
            dup
            ldc "illegal change cipher spec msg, conn state = "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
       106: .line 1085
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.connectionState:I
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            ldc ", handshake state = "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
       107: .line 1086
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.handshaker:Lsun/security/ssl/Handshaker;
            getfield sun.security.ssl.Handshaker.state:I
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
       108: .line 1084
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
       109: .line 1083
            invokevirtual sun.security.ssl.SSLSocketImpl.fatal:(BLjava/lang/String;)V
       110: .line 1087
            goto 115
      StackMap locals:
      StackMap stack:
       111: aload 1 /* r */
            invokevirtual sun.security.ssl.InputRecord.available:()I
            iconst_1
            if_icmpne 112
            aload 1 /* r */
            invokevirtual sun.security.ssl.InputRecord.read:()I
            iconst_1
            if_icmpeq 115
       112: .line 1089
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            bipush 10
       113: .line 1090
            ldc "Malformed change cipher spec msg"
       114: .line 1089
            invokevirtual sun.security.ssl.SSLSocketImpl.fatal:(BLjava/lang/String;)V
       115: .line 1096
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iconst_1
            putfield sun.security.ssl.SSLSocketImpl.receivedCCS:Z
       116: .line 1105
            aload 0 /* this */
            invokevirtual sun.security.ssl.SSLSocketImpl.changeReadCiphers:()V
       117: .line 1107
            aload 0 /* this */
            iconst_1
            putfield sun.security.ssl.SSLSocketImpl.expectingFinished:Z
       118: .line 1108
            aload 5
            monitorexit
       119: goto 134
       120: .line 1114
      StackMap locals:
      StackMap stack:
            getstatic sun.security.ssl.SSLSocketImpl.debug:Lsun/security/ssl/Debug;
            ifnull 125
            ldc "ssl"
            invokestatic sun.security.ssl.Debug.isOn:(Ljava/lang/String;)Z
            ifeq 125
       121: .line 1115
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            new java.lang.StringBuilder
            dup
            invokestatic sun.security.ssl.SSLSocketImpl.threadName:()Ljava/lang/String;
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
       122: .line 1116
            ldc ", Received record type: "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
       123: .line 1117
            aload 1 /* r */
            invokevirtual sun.security.ssl.InputRecord.contentType:()B
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
       124: .line 1115
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
       125: .line 1119
      StackMap locals:
      StackMap stack:
            aload 5
            monitorexit
       126: goto 134
       127: .line 1133
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.connectionState:I
            iconst_4
            if_icmpge 129
       128: .line 1134
            aload 0 /* this */
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.readMAC:Lsun/security/ssl/MAC;
            aload 1 /* r */
            invokevirtual sun.security.ssl.InputRecord.contentType:()B
            invokevirtual sun.security.ssl.SSLSocketImpl.checkSequenceNumber:(Lsun/security/ssl/MAC;B)V
       129: .line 1137
      StackMap locals:
      StackMap stack:
            aload 5
            monitorexit
       130: aload 4
            monitorexit
       131: return
       132: .line 980
      StackMap locals:
      StackMap stack: java.lang.Throwable
            aload 5
            monitorexit
       133: athrow
        end local 3 // int state
       134: .line 913
      StackMap locals: sun.security.ssl.SSLSocketImpl sun.security.ssl.InputRecord int top java.lang.Object
      StackMap stack:
            aload 0 /* this */
            invokevirtual sun.security.ssl.SSLSocketImpl.getConnectionState:()I
            dup
            istore 3 /* state */
        start local 3 // int state
       135: bipush 6
            if_icmpeq 137
       136: .line 914
            iload 3 /* state */
            iconst_4
            if_icmpeq 137
            iload 3 /* state */
            bipush 7
            if_icmpne 2
       137: .line 1144
      StackMap locals: sun.security.ssl.SSLSocketImpl sun.security.ssl.InputRecord int int java.lang.Object
      StackMap stack:
            aload 1 /* r */
            invokevirtual sun.security.ssl.InputRecord.close:()V
       138: .line 1145
            aload 4
            monitorexit
       139: return
        end local 3 // int state
       140: .line 907
      StackMap locals: sun.security.ssl.SSLSocketImpl sun.security.ssl.InputRecord int top java.lang.Object
      StackMap stack: java.lang.Throwable
            aload 4
            monitorexit
       141: athrow
        end local 2 // boolean needAppData
        end local 1 // sun.security.ssl.InputRecord r
        end local 0 // sun.security.ssl.SSLSocketImpl this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0  142     0         this  Lsun/security/ssl/SSLSocketImpl;
            0  142     1            r  Lsun/security/ssl/InputRecord;
            0  142     2  needAppData  Z
            2  134     3        state  I
          135  140     3        state  I
            6   10     5            e  Ljavax/net/ssl/SSLProtocolException;
           11   37     5          eof  Ljava/io/EOFException;
           14   37     6  handshaking  Z
           17   37     7      rethrow  Z
           29   30     8            e  Ljavax/net/ssl/SSLException;
           33   35     8            e  Ljavax/net/ssl/SSLException;
           40   45     5            e  Ljavax/crypto/BadPaddingException;
           44   45     6    alertType  B
           74   78     6        event  Ljavax/net/ssl/HandshakeCompletedEvent;
           77   78     7            t  Ljava/lang/Thread;
      Exception table:
        from    to  target  type
           2     4       5  Class javax.net.ssl.SSLProtocolException
           6     7       8  Class java.io.IOException
           2     4      10  Class java.io.EOFException
          37    38      39  Class javax.crypto.BadPaddingException
          46    80     132  any
          81    99     132  any
         100   119     132  any
         120   126     132  any
         127   130     132  any
         132   133     132  any
           1   131     140  any
         132   139     140  any
         140   141     140  any
    Exceptions:
      throws java.io.IOException
    MethodParameters:
             Name  Flags
      r            
      needAppData  

  private void checkSequenceNumber(sun.security.ssl.MAC, byte);
    descriptor: (Lsun/security/ssl/MAC;B)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // sun.security.ssl.SSLSocketImpl this
        start local 1 // sun.security.ssl.MAC mac
        start local 2 // byte type
         0: .line 1164
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.connectionState:I
            iconst_4
            if_icmpge 1
            aload 1 /* mac */
            getstatic sun.security.ssl.MAC.NULL:Lsun/security/ssl/MAC;
            if_acmpne 2
         1: .line 1165
      StackMap locals:
      StackMap stack:
            return
         2: .line 1172
      StackMap locals:
      StackMap stack:
            aload 1 /* mac */
            invokevirtual sun.security.ssl.MAC.seqNumOverflow:()Z
            ifeq 9
         3: .line 1178
            getstatic sun.security.ssl.SSLSocketImpl.debug:Lsun/security/ssl/Debug;
            ifnull 8
            ldc "ssl"
            invokestatic sun.security.ssl.Debug.isOn:(Ljava/lang/String;)Z
            ifeq 8
         4: .line 1179
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            new java.lang.StringBuilder
            dup
            invokestatic sun.security.ssl.SSLSocketImpl.threadName:()Ljava/lang/String;
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
         5: .line 1180
            ldc ", sequence number extremely close to overflow "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
         6: .line 1181
            ldc "(2^64-1 packets). Closing connection."
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
         7: .line 1179
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
         8: .line 1185
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            bipush 40
            ldc "sequence number overflow"
            invokevirtual sun.security.ssl.SSLSocketImpl.fatal:(BLjava/lang/String;)V
         9: .line 1194
      StackMap locals:
      StackMap stack:
            iload 2 /* type */
            bipush 22
            if_icmpeq 15
            aload 1 /* mac */
            invokevirtual sun.security.ssl.MAC.seqNumIsHuge:()Z
            ifeq 15
        10: .line 1195
            getstatic sun.security.ssl.SSLSocketImpl.debug:Lsun/security/ssl/Debug;
            ifnull 14
            ldc "ssl"
            invokestatic sun.security.ssl.Debug.isOn:(Ljava/lang/String;)Z
            ifeq 14
        11: .line 1196
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            new java.lang.StringBuilder
            dup
            invokestatic sun.security.ssl.SSLSocketImpl.threadName:()Ljava/lang/String;
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc ", request renegotiation "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        12: .line 1197
            ldc "to avoid sequence number overflow"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        13: .line 1196
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
        14: .line 1200
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual sun.security.ssl.SSLSocketImpl.startHandshake:()V
        15: .line 1202
      StackMap locals:
      StackMap stack:
            return
        end local 2 // byte type
        end local 1 // sun.security.ssl.MAC mac
        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   mac  Lsun/security/ssl/MAC;
            0   16     2  type  B
    Exceptions:
      throws java.io.IOException
    MethodParameters:
      Name  Flags
      mac   
      type  

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

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

  private void initHandshaker();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=12, locals=1, args_size=1
        start local 0 // sun.security.ssl.SSLSocketImpl this
         0: .line 1239
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.connectionState:I
            tableswitch { // 0 - 3
                    0: 1
                    1: 2
                    2: 1
                    3: 2
              default: 3
          }
         1: .line 1246
      StackMap locals:
      StackMap stack:
            goto 4
         2: .line 1253
      StackMap locals:
      StackMap stack:
            return
         3: .line 1260
      StackMap locals:
      StackMap stack:
            new java.lang.IllegalStateException
            dup
            ldc "Internal error"
            invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
            athrow
         4: .line 1264
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.connectionState:I
            ifne 7
         5: .line 1265
            aload 0 /* this */
            iconst_1
            putfield sun.security.ssl.SSLSocketImpl.connectionState:I
         6: .line 1266
            goto 8
         7: .line 1267
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iconst_3
            putfield sun.security.ssl.SSLSocketImpl.connectionState:I
         8: .line 1269
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.roleIsServer:Z
            ifeq 17
         9: .line 1270
            aload 0 /* this */
        10: new sun.security.ssl.ServerHandshaker
            dup
            aload 0 /* this */
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.sslContext:Lsun/security/ssl/SSLContextImpl;
        11: .line 1271
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.enabledProtocols:Lsun/security/ssl/ProtocolList;
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.doClientAuth:B
        12: .line 1272
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.protocolVersion:Lsun/security/ssl/ProtocolVersion;
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.connectionState:I
            iconst_1
            if_icmpne 13
            iconst_1
            goto 14
      StackMap locals: sun.security.ssl.SSLSocketImpl
      StackMap stack: sun.security.ssl.SSLSocketImpl new 10 new 10 sun.security.ssl.SSLSocketImpl sun.security.ssl.SSLContextImpl sun.security.ssl.ProtocolList int sun.security.ssl.ProtocolVersion
        13: iconst_0
        14: .line 1273
      StackMap locals: sun.security.ssl.SSLSocketImpl
      StackMap stack: sun.security.ssl.SSLSocketImpl new 10 new 10 sun.security.ssl.SSLSocketImpl sun.security.ssl.SSLContextImpl sun.security.ssl.ProtocolList int sun.security.ssl.ProtocolVersion int
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.secureRenegotiation:Z
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.clientVerifyData:[B
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.serverVerifyData:[B
            invokespecial sun.security.ssl.ServerHandshaker.<init>:(Lsun/security/ssl/SSLSocketImpl;Lsun/security/ssl/SSLContextImpl;Lsun/security/ssl/ProtocolList;BLsun/security/ssl/ProtocolVersion;ZZ[B[B)V
        15: .line 1270
            putfield sun.security.ssl.SSLSocketImpl.handshaker:Lsun/security/ssl/Handshaker;
        16: .line 1274
            goto 24
        17: .line 1275
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
        18: new sun.security.ssl.ClientHandshaker
            dup
            aload 0 /* this */
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.sslContext:Lsun/security/ssl/SSLContextImpl;
        19: .line 1276
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.enabledProtocols:Lsun/security/ssl/ProtocolList;
        20: .line 1277
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.protocolVersion:Lsun/security/ssl/ProtocolVersion;
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.connectionState:I
            iconst_1
            if_icmpne 21
            iconst_1
            goto 22
      StackMap locals: sun.security.ssl.SSLSocketImpl
      StackMap stack: sun.security.ssl.SSLSocketImpl new 18 new 18 sun.security.ssl.SSLSocketImpl sun.security.ssl.SSLContextImpl sun.security.ssl.ProtocolList sun.security.ssl.ProtocolVersion
        21: iconst_0
        22: .line 1278
      StackMap locals: sun.security.ssl.SSLSocketImpl
      StackMap stack: sun.security.ssl.SSLSocketImpl new 18 new 18 sun.security.ssl.SSLSocketImpl sun.security.ssl.SSLContextImpl sun.security.ssl.ProtocolList sun.security.ssl.ProtocolVersion int
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.secureRenegotiation:Z
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.clientVerifyData:[B
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.serverVerifyData:[B
            invokespecial sun.security.ssl.ClientHandshaker.<init>:(Lsun/security/ssl/SSLSocketImpl;Lsun/security/ssl/SSLContextImpl;Lsun/security/ssl/ProtocolList;Lsun/security/ssl/ProtocolVersion;ZZ[B[B)V
        23: .line 1275
            putfield sun.security.ssl.SSLSocketImpl.handshaker:Lsun/security/ssl/Handshaker;
        24: .line 1280
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.handshaker:Lsun/security/ssl/Handshaker;
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.enabledCipherSuites:Lsun/security/ssl/CipherSuiteList;
            invokevirtual sun.security.ssl.Handshaker.setEnabledCipherSuites:(Lsun/security/ssl/CipherSuiteList;)V
        25: .line 1281
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.handshaker:Lsun/security/ssl/Handshaker;
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.enableSessionCreation:Z
            invokevirtual sun.security.ssl.Handshaker.setEnableSessionCreation:(Z)V
        26: .line 1282
            return
        end local 0 // sun.security.ssl.SSLSocketImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   27     0  this  Lsun/security/ssl/SSLSocketImpl;

  private void performInitialHandshake();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=2, args_size=1
        start local 0 // sun.security.ssl.SSLSocketImpl this
         0: .line 1294
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.handshakeLock:Ljava/lang/Object;
            dup
            astore 1
            monitorenter
         1: .line 1295
            aload 0 /* this */
            invokevirtual sun.security.ssl.SSLSocketImpl.getConnectionState:()I
            iconst_1
            if_icmpne 10
         2: .line 1296
            aload 0 /* this */
            invokevirtual sun.security.ssl.SSLSocketImpl.kickstartHandshake:()V
         3: .line 1307
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.inrec:Lsun/security/ssl/InputRecord;
            ifnonnull 8
         4: .line 1308
            aload 0 /* this */
            new sun.security.ssl.InputRecord
            dup
            invokespecial sun.security.ssl.InputRecord.<init>:()V
            putfield sun.security.ssl.SSLSocketImpl.inrec:Lsun/security/ssl/InputRecord;
         5: .line 1315
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.inrec:Lsun/security/ssl/InputRecord;
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.input:Lsun/security/ssl/AppInputStream;
            getfield sun.security.ssl.AppInputStream.r:Lsun/security/ssl/InputRecord;
            invokevirtual sun.security.ssl.InputRecord.getHandshakeHash:()Lsun/security/ssl/HandshakeHash;
            invokevirtual sun.security.ssl.InputRecord.setHandshakeHash:(Lsun/security/ssl/HandshakeHash;)V
         6: .line 1316
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.inrec:Lsun/security/ssl/InputRecord;
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.input:Lsun/security/ssl/AppInputStream;
            getfield sun.security.ssl.AppInputStream.r:Lsun/security/ssl/InputRecord;
            invokevirtual sun.security.ssl.InputRecord.getHelloVersion:()Lsun/security/ssl/ProtocolVersion;
            invokevirtual sun.security.ssl.InputRecord.setHelloVersion:(Lsun/security/ssl/ProtocolVersion;)V
         7: .line 1317
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.inrec:Lsun/security/ssl/InputRecord;
            invokevirtual sun.security.ssl.InputRecord.enableFormatChecks:()V
         8: .line 1320
      StackMap locals: java.lang.Object
      StackMap stack:
            aload 0 /* this */
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.inrec:Lsun/security/ssl/InputRecord;
            iconst_0
            invokevirtual sun.security.ssl.SSLSocketImpl.readRecord:(Lsun/security/ssl/InputRecord;Z)V
         9: .line 1321
            aload 0 /* this */
            aconst_null
            putfield sun.security.ssl.SSLSocketImpl.inrec:Lsun/security/ssl/InputRecord;
        10: .line 1294
      StackMap locals:
      StackMap stack:
            aload 1
            monitorexit
        11: goto 14
      StackMap locals:
      StackMap stack: java.lang.Throwable
        12: aload 1
            monitorexit
        13: athrow
        14: .line 1324
      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
           1    11      12  any
          12    13      12  any
    Exceptions:
      throws java.io.IOException

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

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

  private synchronized void kickstartHandshake();
    descriptor: ()V
    flags: (0x0022) ACC_PRIVATE, ACC_SYNCHRONIZED
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // sun.security.ssl.SSLSocketImpl this
         0: .line 1374
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.connectionState:I
            tableswitch { // 0 - 3
                    0: 14
                    1: 1
                    2: 2
                    3: 13
              default: 17
          }
         1: .line 1378
      StackMap locals:
      StackMap stack:
            goto 18
         2: .line 1381
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.secureRenegotiation:Z
            ifne 6
            getstatic sun.security.ssl.Handshaker.allowUnsafeRenegotiation:Z
            ifne 6
         3: .line 1382
            new javax.net.ssl.SSLHandshakeException
            dup
         4: .line 1383
            ldc "Insecure renegotiation is not allowed"
         5: .line 1382
            invokespecial javax.net.ssl.SSLHandshakeException.<init>:(Ljava/lang/String;)V
            athrow
         6: .line 1386
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.secureRenegotiation:Z
            ifne 11
         7: .line 1387
            getstatic sun.security.ssl.SSLSocketImpl.debug:Lsun/security/ssl/Debug;
            ifnull 11
            ldc "handshake"
            invokestatic sun.security.ssl.Debug.isOn:(Ljava/lang/String;)Z
            ifeq 11
         8: .line 1388
            getstatic java.lang.System.out:Ljava/io/PrintStream;
         9: .line 1389
            ldc "Warning: Using insecure renegotiation"
        10: .line 1388
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
        11: .line 1394
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual sun.security.ssl.SSLSocketImpl.initHandshaker:()V
        12: .line 1395
            goto 18
        13: .line 1399
      StackMap locals:
      StackMap stack:
            return
        14: .line 1406
      StackMap locals:
      StackMap stack:
            new java.net.SocketException
            dup
        15: .line 1407
            ldc "handshaking attempted on unconnected socket"
        16: .line 1406
            invokespecial java.net.SocketException.<init>:(Ljava/lang/String;)V
            athrow
        17: .line 1410
      StackMap locals:
      StackMap stack:
            new java.net.SocketException
            dup
            ldc "connection is closed"
            invokespecial java.net.SocketException.<init>:(Ljava/lang/String;)V
            athrow
        18: .line 1420
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.handshaker:Lsun/security/ssl/Handshaker;
            invokevirtual sun.security.ssl.Handshaker.activated:()Z
            ifne 29
        19: .line 1422
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.connectionState:I
            iconst_3
            if_icmpne 22
        20: .line 1424
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.handshaker:Lsun/security/ssl/Handshaker;
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.protocolVersion:Lsun/security/ssl/ProtocolVersion;
            invokevirtual sun.security.ssl.Handshaker.activate:(Lsun/security/ssl/ProtocolVersion;)V
        21: .line 1425
            goto 23
        22: .line 1426
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.handshaker:Lsun/security/ssl/Handshaker;
            aconst_null
            invokevirtual sun.security.ssl.Handshaker.activate:(Lsun/security/ssl/ProtocolVersion;)V
        23: .line 1429
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.handshaker:Lsun/security/ssl/Handshaker;
            instanceof sun.security.ssl.ClientHandshaker
            ifeq 26
        24: .line 1431
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.handshaker:Lsun/security/ssl/Handshaker;
            invokevirtual sun.security.ssl.Handshaker.kickstart:()V
        25: .line 1432
            goto 29
        26: .line 1433
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.connectionState:I
            iconst_1
            if_icmpeq 29
        27: .line 1437
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.handshaker:Lsun/security/ssl/Handshaker;
            invokevirtual sun.security.ssl.Handshaker.kickstart:()V
        28: .line 1440
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.handshaker:Lsun/security/ssl/Handshaker;
            getfield sun.security.ssl.Handshaker.handshakeHash:Lsun/security/ssl/HandshakeHash;
            invokevirtual sun.security.ssl.HandshakeHash.reset:()V
        29: .line 1444
      StackMap locals:
      StackMap stack:
            return
        end local 0 // sun.security.ssl.SSLSocketImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   30     0  this  Lsun/security/ssl/SSLSocketImpl;
    Exceptions:
      throws java.io.IOException

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

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

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

  protected void closeSocket();
    descriptor: ()V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=4, locals=1, args_size=1
        start local 0 // sun.security.ssl.SSLSocketImpl this
         0: .line 1503
            getstatic sun.security.ssl.SSLSocketImpl.debug:Lsun/security/ssl/Debug;
            ifnull 2
            ldc "ssl"
            invokestatic sun.security.ssl.Debug.isOn:(Ljava/lang/String;)Z
            ifeq 2
         1: .line 1504
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            new java.lang.StringBuilder
            dup
            invokestatic sun.security.ssl.SSLSocketImpl.threadName:()Ljava/lang/String;
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc ", called closeSocket()"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
         2: .line 1506
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.self:Ljava/net/Socket;
            aload 0 /* this */
            if_acmpne 5
         3: .line 1507
            aload 0 /* this */
            invokespecial sun.security.ssl.BaseSSLSocketImpl.close:()V
         4: .line 1508
            goto 6
         5: .line 1509
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.self:Ljava/net/Socket;
            invokevirtual java.net.Socket.close:()V
         6: .line 1511
      StackMap locals:
      StackMap stack:
            return
        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 void close();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=1, args_size=1
        start local 0 // sun.security.ssl.SSLSocketImpl this
         0: .line 1527
            getstatic sun.security.ssl.SSLSocketImpl.debug:Lsun/security/ssl/Debug;
            ifnull 2
            ldc "ssl"
            invokestatic sun.security.ssl.Debug.isOn:(Ljava/lang/String;)Z
            ifeq 2
         1: .line 1528
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            new java.lang.StringBuilder
            dup
            invokestatic sun.security.ssl.SSLSocketImpl.threadName:()Ljava/lang/String;
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc ", called close()"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
         2: .line 1530
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iconst_1
            invokevirtual sun.security.ssl.SSLSocketImpl.closeInternal:(Z)V
         3: .line 1531
            aload 0 /* this */
            bipush 7
            invokevirtual sun.security.ssl.SSLSocketImpl.setConnectionState:(I)V
         4: .line 1532
            return
        end local 0 // sun.security.ssl.SSLSocketImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0  this  Lsun/security/ssl/SSLSocketImpl;
    Exceptions:
      throws java.io.IOException

  private void closeInternal(boolean);
    descriptor: (Z)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=6, args_size=2
        start local 0 // sun.security.ssl.SSLSocketImpl this
        start local 1 // boolean selfInitiated
         0: .line 1545
            getstatic sun.security.ssl.SSLSocketImpl.debug:Lsun/security/ssl/Debug;
            ifnull 4
            ldc "ssl"
            invokestatic sun.security.ssl.Debug.isOn:(Ljava/lang/String;)Z
            ifeq 4
         1: .line 1546
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            new java.lang.StringBuilder
            dup
            invokestatic sun.security.ssl.SSLSocketImpl.threadName:()Ljava/lang/String;
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc ", called closeInternal("
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
         2: .line 1547
            iload 1 /* selfInitiated */
            invokevirtual java.lang.StringBuilder.append:(Z)Ljava/lang/StringBuilder;
            ldc ")"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
         3: .line 1546
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
         4: .line 1550
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual sun.security.ssl.SSLSocketImpl.getConnectionState:()I
            istore 2 /* state */
        start local 2 // int state
         5: .line 1552
            iload 2 /* state */
            tableswitch { // 0 - 7
                    0: 6
                    1: 10
                    2: 10
                    3: 10
                    4: 7
                    5: 10
                    6: 9
                    7: 9
              default: 10
          }
         6: .line 1558
      StackMap locals: int
      StackMap stack:
            goto 97
         7: .line 1567
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual sun.security.ssl.SSLSocketImpl.closeSocket:()V
         8: .line 1568
            goto 97
         9: .line 1575
      StackMap locals:
      StackMap stack:
            goto 97
        10: .line 1585
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            dup
            astore 3
            monitorenter
        11: .line 1586
            aload 0 /* this */
            invokevirtual sun.security.ssl.SSLSocketImpl.getConnectionState:()I
            dup
            istore 2 /* state */
            bipush 6
            if_icmpeq 13
        12: .line 1587
            iload 2 /* state */
            iconst_4
            if_icmpeq 13
            iload 2 /* state */
            bipush 7
            if_icmpne 25
        13: .line 1588
      StackMap locals: sun.security.ssl.SSLSocketImpl
      StackMap stack:
            aload 3
            monitorexit
        14: .line 1644
            aload 0 /* this */
            dup
            astore 5
            monitorenter
        15: .line 1646
            aload 0 /* this */
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.connectionState:I
            bipush 7
            if_icmpne 17
        16: .line 1647
            bipush 7
            goto 18
      StackMap locals: sun.security.ssl.SSLSocketImpl int int sun.security.ssl.SSLSocketImpl top sun.security.ssl.SSLSocketImpl
      StackMap stack: sun.security.ssl.SSLSocketImpl
        17: bipush 6
        18: .line 1646
      StackMap locals: sun.security.ssl.SSLSocketImpl int int sun.security.ssl.SSLSocketImpl top sun.security.ssl.SSLSocketImpl
      StackMap stack: sun.security.ssl.SSLSocketImpl int
            putfield sun.security.ssl.SSLSocketImpl.connectionState:I
        19: .line 1649
            aload 0 /* this */
            invokevirtual java.lang.Object.notifyAll:()V
        20: .line 1644
            aload 5
            monitorexit
        21: goto 24
      StackMap locals:
      StackMap stack: java.lang.Throwable
        22: aload 5
            monitorexit
        23: athrow
      StackMap locals: sun.security.ssl.SSLSocketImpl int int sun.security.ssl.SSLSocketImpl
      StackMap stack:
        24: return
        25: .line 1590
      StackMap locals:
      StackMap stack:
            iload 2 /* state */
            iconst_5
            if_icmpeq 28
        26: .line 1591
            aload 0 /* this */
            iconst_0
            invokevirtual sun.security.ssl.SSLSocketImpl.warning:(B)V
        27: .line 1592
            aload 0 /* this */
            iconst_5
            putfield sun.security.ssl.SSLSocketImpl.connectionState:I
        28: .line 1585
      StackMap locals:
      StackMap stack:
            aload 3
            monitorexit
        29: goto 32
      StackMap locals:
      StackMap stack: java.lang.Throwable
        30: aload 3
            monitorexit
        31: athrow
        32: .line 1597
      StackMap locals:
      StackMap stack:
            iload 2 /* state */
            iconst_5
            if_icmpne 76
        33: .line 1598
            getstatic sun.security.ssl.SSLSocketImpl.debug:Lsun/security/ssl/Debug;
            ifnull 38
            ldc "ssl"
            invokestatic sun.security.ssl.Debug.isOn:(Ljava/lang/String;)Z
            ifeq 38
        34: .line 1599
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            new java.lang.StringBuilder
            dup
            invokestatic sun.security.ssl.SSLSocketImpl.threadName:()Ljava/lang/String;
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
        35: .line 1600
            ldc ", close invoked again; state = "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        36: .line 1601
            aload 0 /* this */
            invokevirtual sun.security.ssl.SSLSocketImpl.getConnectionState:()I
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        37: .line 1599
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
        38: .line 1603
      StackMap locals:
      StackMap stack:
            iload 1 /* selfInitiated */
            ifne 50
        39: .line 1644
            aload 0 /* this */
            dup
            astore 5
            monitorenter
        40: .line 1646
            aload 0 /* this */
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.connectionState:I
            bipush 7
            if_icmpne 42
        41: .line 1647
            bipush 7
            goto 43
      StackMap locals: sun.security.ssl.SSLSocketImpl int int top top sun.security.ssl.SSLSocketImpl
      StackMap stack: sun.security.ssl.SSLSocketImpl
        42: bipush 6
        43: .line 1646
      StackMap locals: sun.security.ssl.SSLSocketImpl int int top top sun.security.ssl.SSLSocketImpl
      StackMap stack: sun.security.ssl.SSLSocketImpl int
            putfield sun.security.ssl.SSLSocketImpl.connectionState:I
        44: .line 1649
            aload 0 /* this */
            invokevirtual java.lang.Object.notifyAll:()V
        45: .line 1644
            aload 5
            monitorexit
        46: goto 49
      StackMap locals:
      StackMap stack: java.lang.Throwable
        47: aload 5
            monitorexit
        48: athrow
        49: .line 1608
      StackMap locals: sun.security.ssl.SSLSocketImpl int int
      StackMap stack:
            return
        50: .line 1612
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            dup
            astore 3
            monitorenter
        51: .line 1613
            goto 55
        52: .line 1615
      StackMap locals: sun.security.ssl.SSLSocketImpl
      StackMap stack:
            aload 0 /* this */
            invokevirtual java.lang.Object.wait:()V
        53: .line 1616
            goto 55
      StackMap locals:
      StackMap stack: java.lang.InterruptedException
        54: pop
        55: .line 1613
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.connectionState:I
            bipush 6
            if_icmplt 52
        56: .line 1612
            aload 3
            monitorexit
        57: goto 60
      StackMap locals:
      StackMap stack: java.lang.Throwable
        58: aload 3
            monitorexit
        59: athrow
        60: .line 1621
      StackMap locals:
      StackMap stack:
            getstatic sun.security.ssl.SSLSocketImpl.debug:Lsun/security/ssl/Debug;
            ifnull 65
            ldc "ssl"
            invokestatic sun.security.ssl.Debug.isOn:(Ljava/lang/String;)Z
            ifeq 65
        61: .line 1622
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            new java.lang.StringBuilder
            dup
            invokestatic sun.security.ssl.SSLSocketImpl.threadName:()Ljava/lang/String;
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
        62: .line 1623
            ldc ", after primary close; state = "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        63: .line 1624
            aload 0 /* this */
            invokevirtual sun.security.ssl.SSLSocketImpl.getConnectionState:()I
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        64: .line 1622
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
        65: .line 1644
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            dup
            astore 5
            monitorenter
        66: .line 1646
            aload 0 /* this */
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.connectionState:I
            bipush 7
            if_icmpne 68
        67: .line 1647
            bipush 7
            goto 69
      StackMap locals: sun.security.ssl.SSLSocketImpl int int top top sun.security.ssl.SSLSocketImpl
      StackMap stack: sun.security.ssl.SSLSocketImpl
        68: bipush 6
        69: .line 1646
      StackMap locals: sun.security.ssl.SSLSocketImpl int int top top sun.security.ssl.SSLSocketImpl
      StackMap stack: sun.security.ssl.SSLSocketImpl int
            putfield sun.security.ssl.SSLSocketImpl.connectionState:I
        70: .line 1649
            aload 0 /* this */
            invokevirtual java.lang.Object.notifyAll:()V
        71: .line 1644
            aload 5
            monitorexit
        72: goto 75
      StackMap locals:
      StackMap stack: java.lang.Throwable
        73: aload 5
            monitorexit
        74: athrow
        75: .line 1626
      StackMap locals: sun.security.ssl.SSLSocketImpl int int
      StackMap stack:
            return
        76: .line 1629
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.self:Ljava/net/Socket;
            aload 0 /* this */
            if_acmpne 79
        77: .line 1630
            aload 0 /* this */
            invokespecial sun.security.ssl.BaseSSLSocketImpl.close:()V
        78: .line 1631
            goto 97
      StackMap locals:
      StackMap stack:
        79: aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.autoClose:Z
            ifeq 82
        80: .line 1632
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.self:Ljava/net/Socket;
            invokevirtual java.net.Socket.close:()V
        81: .line 1633
            goto 97
      StackMap locals:
      StackMap stack:
        82: iload 1 /* selfInitiated */
            ifeq 97
        83: .line 1636
            aload 0 /* this */
            iconst_0
            invokevirtual sun.security.ssl.SSLSocketImpl.waitForClose:(Z)V
        84: .line 1643
            goto 97
      StackMap locals:
      StackMap stack: java.lang.Throwable
        85: astore 4
        86: .line 1644
            aload 0 /* this */
            dup
            astore 5
            monitorenter
        87: .line 1646
            aload 0 /* this */
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.connectionState:I
            bipush 7
            if_icmpne 89
        88: .line 1647
            bipush 7
            goto 90
      StackMap locals: sun.security.ssl.SSLSocketImpl int int top java.lang.Throwable sun.security.ssl.SSLSocketImpl
      StackMap stack: sun.security.ssl.SSLSocketImpl
        89: bipush 6
        90: .line 1646
      StackMap locals: sun.security.ssl.SSLSocketImpl int int top java.lang.Throwable sun.security.ssl.SSLSocketImpl
      StackMap stack: sun.security.ssl.SSLSocketImpl int
            putfield sun.security.ssl.SSLSocketImpl.connectionState:I
        91: .line 1649
            aload 0 /* this */
            invokevirtual java.lang.Object.notifyAll:()V
        92: .line 1644
            aload 5
            monitorexit
        93: goto 96
      StackMap locals:
      StackMap stack: java.lang.Throwable
        94: aload 5
            monitorexit
        95: athrow
        96: .line 1651
      StackMap locals:
      StackMap stack:
            aload 4
            athrow
        97: .line 1644
      StackMap locals: sun.security.ssl.SSLSocketImpl int int
      StackMap stack:
            aload 0 /* this */
            dup
            astore 5
            monitorenter
        98: .line 1646
            aload 0 /* this */
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.connectionState:I
            bipush 7
            if_icmpne 100
        99: .line 1647
            bipush 7
            goto 101
      StackMap locals: sun.security.ssl.SSLSocketImpl int int top top sun.security.ssl.SSLSocketImpl
      StackMap stack: sun.security.ssl.SSLSocketImpl
       100: bipush 6
       101: .line 1646
      StackMap locals: sun.security.ssl.SSLSocketImpl int int top top sun.security.ssl.SSLSocketImpl
      StackMap stack: sun.security.ssl.SSLSocketImpl int
            putfield sun.security.ssl.SSLSocketImpl.connectionState:I
       102: .line 1649
            aload 0 /* this */
            invokevirtual java.lang.Object.notifyAll:()V
       103: .line 1644
            aload 5
            monitorexit
       104: goto 107
      StackMap locals:
      StackMap stack: java.lang.Throwable
       105: aload 5
            monitorexit
       106: athrow
       107: .line 1652
      StackMap locals: sun.security.ssl.SSLSocketImpl int int
      StackMap stack:
            return
        end local 2 // int state
        end local 1 // boolean selfInitiated
        end local 0 // sun.security.ssl.SSLSocketImpl this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0  108     0           this  Lsun/security/ssl/SSLSocketImpl;
            0  108     1  selfInitiated  Z
            5  108     2          state  I
      Exception table:
        from    to  target  type
          15    21      22  any
          22    23      22  any
          11    14      30  any
          25    29      30  any
          30    31      30  any
          40    46      47  any
          47    48      47  any
          52    53      54  Class java.lang.InterruptedException
          51    57      58  any
          58    59      58  any
          66    72      73  any
          73    74      73  any
           5    14      85  any
          25    39      85  any
          50    65      85  any
          76    85      85  any
          87    93      94  any
          94    95      94  any
          98   104     105  any
         105   106     105  any
    Exceptions:
      throws java.io.IOException
    MethodParameters:
               Name  Flags
      selfInitiated  

  void waitForClose(boolean);
    descriptor: (Z)V
    flags: (0x0000) 
    Code:
      stack=4, locals=3, args_size=2
        start local 0 // sun.security.ssl.SSLSocketImpl this
        start local 1 // boolean rethrow
         0: .line 1662
            getstatic sun.security.ssl.SSLSocketImpl.debug:Lsun/security/ssl/Debug;
            ifnull 11
            ldc "ssl"
            invokestatic sun.security.ssl.Debug.isOn:(Ljava/lang/String;)Z
            ifeq 11
         1: .line 1663
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            new java.lang.StringBuilder
            dup
            invokestatic sun.security.ssl.SSLSocketImpl.threadName:()Ljava/lang/String;
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
         2: .line 1664
            ldc ", waiting for close_notify or alert: state "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
         3: .line 1665
            aload 0 /* this */
            invokevirtual sun.security.ssl.SSLSocketImpl.getConnectionState:()I
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
         4: .line 1663
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
         5: .line 1671
            goto 11
        start local 2 // int state
         6: .line 1674
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.inrec:Lsun/security/ssl/InputRecord;
            ifnonnull 8
         7: .line 1675
            aload 0 /* this */
            new sun.security.ssl.InputRecord
            dup
            invokespecial sun.security.ssl.InputRecord.<init>:()V
            putfield sun.security.ssl.SSLSocketImpl.inrec:Lsun/security/ssl/InputRecord;
         8: .line 1680
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.inrec:Lsun/security/ssl/InputRecord;
            iconst_1
            invokevirtual sun.security.ssl.SSLSocketImpl.readRecord:(Lsun/security/ssl/InputRecord;Z)V
         9: .line 1681
            goto 11
      StackMap locals:
      StackMap stack: java.net.SocketTimeoutException
        10: pop
        end local 2 // int state
        11: .line 1671
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual sun.security.ssl.SSLSocketImpl.getConnectionState:()I
            dup
            istore 2 /* state */
        start local 2 // int state
        12: bipush 6
            if_icmpeq 14
        13: .line 1672
            iload 2 /* state */
            iconst_4
            if_icmpeq 14
            iload 2 /* state */
            bipush 7
            if_icmpne 6
        14: .line 1685
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            aconst_null
            putfield sun.security.ssl.SSLSocketImpl.inrec:Lsun/security/ssl/InputRecord;
        end local 2 // int state
        15: .line 1686
            goto 23
      StackMap locals: sun.security.ssl.SSLSocketImpl int
      StackMap stack: java.io.IOException
        16: astore 2 /* e */
        start local 2 // java.io.IOException e
        17: .line 1687
            getstatic sun.security.ssl.SSLSocketImpl.debug:Lsun/security/ssl/Debug;
            ifnull 21
            ldc "ssl"
            invokestatic sun.security.ssl.Debug.isOn:(Ljava/lang/String;)Z
            ifeq 21
        18: .line 1688
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            new java.lang.StringBuilder
            dup
            invokestatic sun.security.ssl.SSLSocketImpl.threadName:()Ljava/lang/String;
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
        19: .line 1689
            ldc ", Exception while waiting for close "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 2 /* e */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        20: .line 1688
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
        21: .line 1691
      StackMap locals: java.io.IOException
      StackMap stack:
            iload 1 /* rethrow */
            ifeq 23
        22: .line 1692
            aload 2 /* e */
            athrow
        end local 2 // java.io.IOException e
        23: .line 1695
      StackMap locals:
      StackMap stack:
            return
        end local 1 // boolean rethrow
        end local 0 // sun.security.ssl.SSLSocketImpl this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   24     0     this  Lsun/security/ssl/SSLSocketImpl;
            0   24     1  rethrow  Z
            6   11     2    state  I
           12   15     2    state  I
           17   23     2        e  Ljava/io/IOException;
      Exception table:
        from    to  target  type
           8     9      10  Class java.net.SocketTimeoutException
           5    15      16  Class java.io.IOException
    Exceptions:
      throws java.io.IOException
    MethodParameters:
         Name  Flags
      rethrow  

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

  private synchronized void handleException(java.lang.Exception, boolean);
    descriptor: (Ljava/lang/Exception;Z)V
    flags: (0x0022) ACC_PRIVATE, ACC_SYNCHRONIZED
    Code:
      stack=4, locals=5, args_size=3
        start local 0 // sun.security.ssl.SSLSocketImpl this
        start local 1 // java.lang.Exception e
        start local 2 // boolean resumable
         0: .line 1731
            getstatic sun.security.ssl.SSLSocketImpl.debug:Lsun/security/ssl/Debug;
            ifnull 4
            ldc "ssl"
            invokestatic sun.security.ssl.Debug.isOn:(Ljava/lang/String;)Z
            ifeq 4
         1: .line 1732
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            new java.lang.StringBuilder
            dup
            invokestatic sun.security.ssl.SSLSocketImpl.threadName:()Ljava/lang/String;
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
         2: .line 1733
            ldc ", handling exception: "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 1 /* e */
            invokevirtual java.lang.Exception.toString:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
         3: .line 1732
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
         4: .line 1738
      StackMap locals:
      StackMap stack:
            aload 1 /* e */
            instanceof java.io.InterruptedIOException
            ifeq 6
            iload 2 /* resumable */
            ifeq 6
         5: .line 1739
            aload 1 /* e */
            checkcast java.io.IOException
            athrow
         6: .line 1744
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.closeReason:Ljavax/net/ssl/SSLException;
            ifnull 12
         7: .line 1745
            aload 1 /* e */
            instanceof java.io.IOException
            ifeq 9
         8: .line 1746
            aload 1 /* e */
            checkcast java.io.IOException
            athrow
         9: .line 1751
      StackMap locals:
      StackMap stack:
            bipush 80
            aload 1 /* e */
        10: .line 1752
            ldc "Unexpected exception"
        11: .line 1751
            invokestatic sun.security.ssl.Alerts.getSSLException:(BLjava/lang/Throwable;Ljava/lang/String;)Ljavax/net/ssl/SSLException;
            athrow
        12: .line 1757
      StackMap locals:
      StackMap stack:
            aload 1 /* e */
            instanceof javax.net.ssl.SSLException
            istore 3 /* isSSLException */
        start local 3 // boolean isSSLException
        13: .line 1758
            iload 3 /* isSSLException */
            ifne 18
            aload 1 /* e */
            instanceof java.io.IOException
            ifeq 18
        14: .line 1763
            aload 0 /* this */
            bipush 10
            aload 1 /* e */
            invokevirtual sun.security.ssl.SSLSocketImpl.fatal:(BLjava/lang/Throwable;)V
        15: .line 1764
            goto 17
      StackMap locals: sun.security.ssl.SSLSocketImpl java.lang.Exception int int
      StackMap stack: java.io.IOException
        16: pop
        17: .line 1768
      StackMap locals:
      StackMap stack:
            aload 1 /* e */
            checkcast java.io.IOException
            athrow
        18: .line 1773
      StackMap locals:
      StackMap stack:
            iload 3 /* isSSLException */
            ifeq 24
        19: .line 1774
            aload 1 /* e */
            instanceof javax.net.ssl.SSLHandshakeException
            ifeq 22
        20: .line 1775
            bipush 40
            istore 4 /* alertType */
        start local 4 // byte alertType
        21: .line 1776
            goto 25
        end local 4 // byte alertType
        22: .line 1777
      StackMap locals:
      StackMap stack:
            bipush 10
            istore 4 /* alertType */
        start local 4 // byte alertType
        23: .line 1779
            goto 25
        end local 4 // byte alertType
        24: .line 1780
      StackMap locals:
      StackMap stack:
            bipush 80
            istore 4 /* alertType */
        start local 4 // byte alertType
        25: .line 1782
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            iload 4 /* alertType */
            aload 1 /* e */
            invokevirtual sun.security.ssl.SSLSocketImpl.fatal:(BLjava/lang/Throwable;)V
        26: .line 1783
            return
        end local 4 // byte alertType
        end local 3 // boolean isSSLException
        end local 2 // boolean resumable
        end local 1 // java.lang.Exception e
        end local 0 // sun.security.ssl.SSLSocketImpl this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   27     0            this  Lsun/security/ssl/SSLSocketImpl;
            0   27     1               e  Ljava/lang/Exception;
            0   27     2       resumable  Z
           13   27     3  isSSLException  Z
           21   22     4       alertType  B
           23   24     4       alertType  B
           25   27     4       alertType  B
      Exception table:
        from    to  target  type
          14    15      16  Class java.io.IOException
    Exceptions:
      throws java.io.IOException
    MethodParameters:
           Name  Flags
      e          
      resumable  

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

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

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

  synchronized void fatal(byte, java.lang.String, java.lang.Throwable);
    descriptor: (BLjava/lang/String;Ljava/lang/Throwable;)V
    flags: (0x0020) ACC_SYNCHRONIZED
    Code:
      stack=4, locals=5, args_size=4
        start local 0 // sun.security.ssl.SSLSocketImpl this
        start local 1 // byte description
        start local 2 // java.lang.String diagnostic
        start local 3 // java.lang.Throwable cause
         0: .line 1808
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.input:Lsun/security/ssl/AppInputStream;
            ifnull 2
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.input:Lsun/security/ssl/AppInputStream;
            getfield sun.security.ssl.AppInputStream.r:Lsun/security/ssl/InputRecord;
            ifnull 2
         1: .line 1809
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.input:Lsun/security/ssl/AppInputStream;
            getfield sun.security.ssl.AppInputStream.r:Lsun/security/ssl/InputRecord;
            invokevirtual sun.security.ssl.InputRecord.close:()V
         2: .line 1811
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.sess:Lsun/security/ssl/SSLSessionImpl;
            invokevirtual sun.security.ssl.SSLSessionImpl.invalidate:()V
         3: .line 1813
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.connectionState:I
            istore 4 /* oldState */
        start local 4 // int oldState
         4: .line 1814
            aload 0 /* this */
            iconst_4
            putfield sun.security.ssl.SSLSocketImpl.connectionState:I
         5: .line 1821
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.closeReason:Ljavax/net/ssl/SSLException;
            ifnonnull 16
         6: .line 1825
            iload 4 /* oldState */
            iconst_1
            if_icmpne 8
         7: .line 1826
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.sockInput:Ljava/io/InputStream;
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.sockInput:Ljava/io/InputStream;
            invokevirtual java.io.InputStream.available:()I
            i2l
            invokevirtual java.io.InputStream.skip:(J)J
            pop2
         8: .line 1830
      StackMap locals: int
      StackMap stack:
            iload 1 /* description */
            iconst_m1
            if_icmpeq 10
         9: .line 1831
            aload 0 /* this */
            iconst_2
            iload 1 /* description */
            invokevirtual sun.security.ssl.SSLSocketImpl.sendAlert:(BB)V
        10: .line 1833
      StackMap locals:
      StackMap stack:
            aload 3 /* cause */
            instanceof javax.net.ssl.SSLException
            ifeq 13
        11: .line 1834
            aload 0 /* this */
            aload 3 /* cause */
            checkcast javax.net.ssl.SSLException
            putfield sun.security.ssl.SSLSocketImpl.closeReason:Ljavax/net/ssl/SSLException;
        12: .line 1835
            goto 16
        13: .line 1836
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
        14: .line 1837
            iload 1 /* description */
            aload 3 /* cause */
            aload 2 /* diagnostic */
            invokestatic sun.security.ssl.Alerts.getSSLException:(BLjava/lang/Throwable;Ljava/lang/String;)Ljavax/net/ssl/SSLException;
        15: .line 1836
            putfield sun.security.ssl.SSLSocketImpl.closeReason:Ljavax/net/ssl/SSLException;
        16: .line 1844
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual sun.security.ssl.SSLSocketImpl.closeSocket:()V
        17: .line 1845
            aload 0 /* this */
            iload 4 /* oldState */
            bipush 7
            if_icmpne 18
            bipush 7
            goto 19
        18: .line 1846
      StackMap locals:
      StackMap stack: sun.security.ssl.SSLSocketImpl
            bipush 6
        19: .line 1845
      StackMap locals: sun.security.ssl.SSLSocketImpl int java.lang.String java.lang.Throwable int
      StackMap stack: sun.security.ssl.SSLSocketImpl int
            putfield sun.security.ssl.SSLSocketImpl.connectionState:I
        20: .line 1847
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.closeReason:Ljavax/net/ssl/SSLException;
            athrow
        end local 4 // int oldState
        end local 3 // java.lang.Throwable cause
        end local 2 // java.lang.String diagnostic
        end local 1 // byte description
        end local 0 // sun.security.ssl.SSLSocketImpl this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   21     0         this  Lsun/security/ssl/SSLSocketImpl;
            0   21     1  description  B
            0   21     2   diagnostic  Ljava/lang/String;
            0   21     3        cause  Ljava/lang/Throwable;
            4   21     4     oldState  I
    Exceptions:
      throws java.io.IOException
    MethodParameters:
             Name  Flags
      description  
      diagnostic   
      cause        

  private void recvAlert(sun.security.ssl.InputRecord);
    descriptor: (Lsun/security/ssl/InputRecord;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=5, args_size=2
        start local 0 // sun.security.ssl.SSLSocketImpl this
        start local 1 // sun.security.ssl.InputRecord r
         0: .line 1856
            aload 1 /* r */
            invokevirtual sun.security.ssl.InputRecord.read:()I
            i2b
            istore 2 /* level */
        start local 2 // byte level
         1: .line 1857
            aload 1 /* r */
            invokevirtual sun.security.ssl.InputRecord.read:()I
            i2b
            istore 3 /* description */
        start local 3 // byte description
         2: .line 1858
            iload 3 /* description */
            iconst_m1
            if_icmpne 4
         3: .line 1859
            aload 0 /* this */
            bipush 47
            ldc "Short alert message"
            invokevirtual sun.security.ssl.SSLSocketImpl.fatal:(BLjava/lang/String;)V
         4: .line 1862
      StackMap locals: int int
      StackMap stack:
            getstatic sun.security.ssl.SSLSocketImpl.debug:Lsun/security/ssl/Debug;
            ifnull 21
            ldc "record"
            invokestatic sun.security.ssl.Debug.isOn:(Ljava/lang/String;)Z
            ifne 6
         5: .line 1863
            ldc "handshake"
            invokestatic sun.security.ssl.Debug.isOn:(Ljava/lang/String;)Z
            ifeq 21
         6: .line 1864
      StackMap locals:
      StackMap stack:
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            dup
            astore 4
            monitorenter
         7: .line 1865
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            invokestatic sun.security.ssl.SSLSocketImpl.threadName:()Ljava/lang/String;
            invokevirtual java.io.PrintStream.print:(Ljava/lang/String;)V
         8: .line 1866
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            new java.lang.StringBuilder
            dup
            ldc ", RECV "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.protocolVersion:Lsun/security/ssl/ProtocolVersion;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            ldc " ALERT:  "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual java.io.PrintStream.print:(Ljava/lang/String;)V
         9: .line 1867
            iload 2 /* level */
            iconst_2
            if_icmpne 12
        10: .line 1868
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            ldc "fatal, "
            invokevirtual java.io.PrintStream.print:(Ljava/lang/String;)V
        11: .line 1869
            goto 16
      StackMap locals: java.io.PrintStream
      StackMap stack:
        12: iload 2 /* level */
            iconst_1
            if_icmpne 15
        13: .line 1870
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            ldc "warning, "
            invokevirtual java.io.PrintStream.print:(Ljava/lang/String;)V
        14: .line 1871
            goto 16
        15: .line 1872
      StackMap locals:
      StackMap stack:
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            new java.lang.StringBuilder
            dup
            ldc "<level "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            sipush 255
            iload 2 /* level */
            iand
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            ldc ">, "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual java.io.PrintStream.print:(Ljava/lang/String;)V
        16: .line 1874
      StackMap locals:
      StackMap stack:
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            iload 3 /* description */
            invokestatic sun.security.ssl.Alerts.alertDescription:(B)Ljava/lang/String;
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
        17: .line 1864
            aload 4
            monitorexit
        18: goto 21
      StackMap locals:
      StackMap stack: java.lang.Throwable
        19: aload 4
            monitorexit
        20: athrow
        21: .line 1878
      StackMap locals:
      StackMap stack:
            iload 2 /* level */
            iconst_1
            if_icmpne 33
        22: .line 1879
            iload 3 /* description */
            ifne 30
        23: .line 1880
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.connectionState:I
            iconst_1
            if_icmpne 28
        24: .line 1881
            aload 0 /* this */
            bipush 10
        25: .line 1882
            ldc "Received close_notify during handshake"
        26: .line 1881
            invokevirtual sun.security.ssl.SSLSocketImpl.fatal:(BLjava/lang/String;)V
        27: .line 1883
            goto 39
        28: .line 1884
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iconst_0
            invokevirtual sun.security.ssl.SSLSocketImpl.closeInternal:(Z)V
        29: .line 1886
            goto 39
        30: .line 1894
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.handshaker:Lsun/security/ssl/Handshaker;
            ifnull 39
        31: .line 1895
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.handshaker:Lsun/security/ssl/Handshaker;
            iload 3 /* description */
            invokevirtual sun.security.ssl.Handshaker.handshakeAlert:(B)V
        32: .line 1898
            goto 39
        33: .line 1899
      StackMap locals:
      StackMap stack:
            new java.lang.StringBuilder
            dup
            ldc "Received fatal alert: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
        34: .line 1900
            iload 3 /* description */
            invokestatic sun.security.ssl.Alerts.alertDescription:(B)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        35: .line 1899
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 4 /* reason */
        start local 4 // java.lang.String reason
        36: .line 1901
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.closeReason:Ljavax/net/ssl/SSLException;
            ifnonnull 38
        37: .line 1902
            aload 0 /* this */
            iload 3 /* description */
            aload 4 /* reason */
            invokestatic sun.security.ssl.Alerts.getSSLException:(BLjava/lang/String;)Ljavax/net/ssl/SSLException;
            putfield sun.security.ssl.SSLSocketImpl.closeReason:Ljavax/net/ssl/SSLException;
        38: .line 1904
      StackMap locals: java.lang.String
      StackMap stack:
            aload 0 /* this */
            bipush 10
            aload 4 /* reason */
            invokevirtual sun.security.ssl.SSLSocketImpl.fatal:(BLjava/lang/String;)V
        end local 4 // java.lang.String reason
        39: .line 1906
      StackMap locals:
      StackMap stack:
            return
        end local 3 // byte description
        end local 2 // byte level
        end local 1 // sun.security.ssl.InputRecord r
        end local 0 // sun.security.ssl.SSLSocketImpl this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   40     0         this  Lsun/security/ssl/SSLSocketImpl;
            0   40     1            r  Lsun/security/ssl/InputRecord;
            1   40     2        level  B
            2   40     3  description  B
           36   39     4       reason  Ljava/lang/String;
      Exception table:
        from    to  target  type
           7    18      19  any
          19    20      19  any
    Exceptions:
      throws java.io.IOException
    MethodParameters:
      Name  Flags
      r     

  private void sendAlert(byte, byte);
    descriptor: (BB)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=6, args_size=3
        start local 0 // sun.security.ssl.SSLSocketImpl this
        start local 1 // byte level
        start local 2 // byte description
         0: .line 1914
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.connectionState:I
            iconst_5
            if_icmplt 2
         1: .line 1915
            return
         2: .line 1920
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.connectionState:I
            iconst_1
            if_icmpne 5
         3: .line 1921
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.handshaker:Lsun/security/ssl/Handshaker;
            ifnull 4
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.handshaker:Lsun/security/ssl/Handshaker;
            invokevirtual sun.security.ssl.Handshaker.started:()Z
            ifne 5
         4: .line 1922
      StackMap locals:
      StackMap stack:
            return
         5: .line 1925
      StackMap locals:
      StackMap stack:
            new sun.security.ssl.OutputRecord
            dup
            bipush 21
            invokespecial sun.security.ssl.OutputRecord.<init>:(B)V
            astore 3 /* r */
        start local 3 // sun.security.ssl.OutputRecord r
         6: .line 1926
            aload 3 /* r */
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.protocolVersion:Lsun/security/ssl/ProtocolVersion;
            invokevirtual sun.security.ssl.OutputRecord.setVersion:(Lsun/security/ssl/ProtocolVersion;)V
         7: .line 1928
            getstatic sun.security.ssl.SSLSocketImpl.debug:Lsun/security/ssl/Debug;
            ifnull 8
            ldc "ssl"
            invokestatic sun.security.ssl.Debug.isOn:(Ljava/lang/String;)Z
            ifeq 8
            iconst_1
            goto 9
      StackMap locals: sun.security.ssl.OutputRecord
      StackMap stack:
         8: iconst_0
      StackMap locals:
      StackMap stack: int
         9: istore 4 /* useDebug */
        start local 4 // boolean useDebug
        10: .line 1929
            iload 4 /* useDebug */
            ifeq 28
        11: .line 1930
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            dup
            astore 5
            monitorenter
        12: .line 1931
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            invokestatic sun.security.ssl.SSLSocketImpl.threadName:()Ljava/lang/String;
            invokevirtual java.io.PrintStream.print:(Ljava/lang/String;)V
        13: .line 1932
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            new java.lang.StringBuilder
            dup
            ldc ", SEND "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.protocolVersion:Lsun/security/ssl/ProtocolVersion;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            ldc " ALERT:  "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual java.io.PrintStream.print:(Ljava/lang/String;)V
        14: .line 1933
            iload 1 /* level */
            iconst_2
            if_icmpne 17
        15: .line 1934
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            ldc "fatal, "
            invokevirtual java.io.PrintStream.print:(Ljava/lang/String;)V
        16: .line 1935
            goto 21
      StackMap locals: int java.io.PrintStream
      StackMap stack:
        17: iload 1 /* level */
            iconst_1
            if_icmpne 20
        18: .line 1936
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            ldc "warning, "
            invokevirtual java.io.PrintStream.print:(Ljava/lang/String;)V
        19: .line 1937
            goto 21
        20: .line 1938
      StackMap locals:
      StackMap stack:
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            new java.lang.StringBuilder
            dup
            ldc "<level = "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            sipush 255
            iload 1 /* level */
            iand
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            ldc ">, "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual java.io.PrintStream.print:(Ljava/lang/String;)V
        21: .line 1940
      StackMap locals:
      StackMap stack:
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            new java.lang.StringBuilder
            dup
            ldc "description = "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
        22: .line 1941
            iload 2 /* description */
            invokestatic sun.security.ssl.Alerts.alertDescription:(B)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        23: .line 1940
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
        24: .line 1930
            aload 5
            monitorexit
        25: goto 28
      StackMap locals:
      StackMap stack: java.lang.Throwable
        26: aload 5
            monitorexit
        27: athrow
        28: .line 1945
      StackMap locals:
      StackMap stack:
            aload 3 /* r */
            iload 1 /* level */
            invokevirtual sun.security.ssl.OutputRecord.write:(I)V
        29: .line 1946
            aload 3 /* r */
            iload 2 /* description */
            invokevirtual sun.security.ssl.OutputRecord.write:(I)V
        30: .line 1948
            aload 0 /* this */
            aload 3 /* r */
            invokevirtual sun.security.ssl.SSLSocketImpl.writeRecord:(Lsun/security/ssl/OutputRecord;)V
        31: .line 1949
            goto 37
      StackMap locals:
      StackMap stack: java.io.IOException
        32: astore 5 /* e */
        start local 5 // java.io.IOException e
        33: .line 1950
            iload 4 /* useDebug */
            ifeq 37
        34: .line 1951
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            new java.lang.StringBuilder
            dup
            invokestatic sun.security.ssl.SSLSocketImpl.threadName:()Ljava/lang/String;
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
        35: .line 1952
            ldc ", Exception sending alert: "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 5 /* e */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        36: .line 1951
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
        end local 5 // java.io.IOException e
        37: .line 1955
      StackMap locals:
      StackMap stack:
            return
        end local 4 // boolean useDebug
        end local 3 // sun.security.ssl.OutputRecord r
        end local 2 // byte description
        end local 1 // byte level
        end local 0 // sun.security.ssl.SSLSocketImpl this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   38     0         this  Lsun/security/ssl/SSLSocketImpl;
            0   38     1        level  B
            0   38     2  description  B
            6   38     3            r  Lsun/security/ssl/OutputRecord;
           10   38     4     useDebug  Z
           33   37     5            e  Ljava/io/IOException;
      Exception table:
        from    to  target  type
          12    25      26  any
          26    27      26  any
          30    31      32  Class java.io.IOException
    MethodParameters:
             Name  Flags
      level        
      description  

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

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

  synchronized void setVersion(sun.security.ssl.ProtocolVersion);
    descriptor: (Lsun/security/ssl/ProtocolVersion;)V
    flags: (0x0020) ACC_SYNCHRONIZED
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // sun.security.ssl.SSLSocketImpl this
        start local 1 // sun.security.ssl.ProtocolVersion protocolVersion
         0: .line 2019
            aload 0 /* this */
            aload 1 /* protocolVersion */
            putfield sun.security.ssl.SSLSocketImpl.protocolVersion:Lsun/security/ssl/ProtocolVersion;
         1: .line 2020
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.output:Lsun/security/ssl/AppOutputStream;
            getfield sun.security.ssl.AppOutputStream.r:Lsun/security/ssl/OutputRecord;
            aload 1 /* protocolVersion */
            invokevirtual sun.security.ssl.OutputRecord.setVersion:(Lsun/security/ssl/ProtocolVersion;)V
         2: .line 2021
            return
        end local 1 // sun.security.ssl.ProtocolVersion protocolVersion
        end local 0 // sun.security.ssl.SSLSocketImpl this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0    3     0             this  Lsun/security/ssl/SSLSocketImpl;
            0    3     1  protocolVersion  Lsun/security/ssl/ProtocolVersion;
    MethodParameters:
                 Name  Flags
      protocolVersion  

  synchronized java.lang.String getHost();
    descriptor: ()Ljava/lang/String;
    flags: (0x0020) ACC_SYNCHRONIZED
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // sun.security.ssl.SSLSocketImpl this
         0: .line 2024
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.host:Ljava/lang/String;
            ifnonnull 5
         1: .line 2025
            getstatic sun.security.ssl.SSLSocketImpl.trustNameService:Z
            ifne 4
         2: .line 2030
            aload 0 /* this */
            aload 0 /* this */
            invokevirtual sun.security.ssl.SSLSocketImpl.getInetAddress:()Ljava/net/InetAddress;
            invokestatic sun.security.ssl.SSLSocketImpl.getOriginalHostname:(Ljava/net/InetAddress;)Ljava/lang/String;
            putfield sun.security.ssl.SSLSocketImpl.host:Ljava/lang/String;
         3: .line 2031
            goto 5
         4: .line 2032
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 0 /* this */
            invokevirtual sun.security.ssl.SSLSocketImpl.getInetAddress:()Ljava/net/InetAddress;
            invokevirtual java.net.InetAddress.getHostName:()Ljava/lang/String;
            putfield sun.security.ssl.SSLSocketImpl.host:Ljava/lang/String;
         5: .line 2035
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.host:Ljava/lang/String;
            areturn
        end local 0 // sun.security.ssl.SSLSocketImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    6     0  this  Lsun/security/ssl/SSLSocketImpl;

  private static java.lang.String getOriginalHostname(java.net.InetAddress);
    descriptor: (Ljava/net/InetAddress;)Ljava/lang/String;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=3, args_size=1
        start local 0 // java.net.InetAddress inetAddress
         0: .line 2045
            invokestatic sun.misc.SharedSecrets.getJavaNetAccess:()Lsun/misc/JavaNetAccess;
            astore 1 /* jna */
        start local 1 // sun.misc.JavaNetAccess jna
         1: .line 2046
            aload 1 /* jna */
            aload 0 /* inetAddress */
            invokeinterface sun.misc.JavaNetAccess.getOriginalHostName:(Ljava/net/InetAddress;)Ljava/lang/String;
            astore 2 /* originalHostname */
        start local 2 // java.lang.String originalHostname
         2: .line 2051
            aload 2 /* originalHostname */
            ifnull 3
            aload 2 /* originalHostname */
            invokevirtual java.lang.String.length:()I
            ifne 4
         3: .line 2052
      StackMap locals: sun.misc.JavaNetAccess java.lang.String
      StackMap stack:
            aload 0 /* inetAddress */
            invokevirtual java.net.InetAddress.getHostAddress:()Ljava/lang/String;
            astore 2 /* originalHostname */
         4: .line 2055
      StackMap locals:
      StackMap stack:
            aload 2 /* originalHostname */
            areturn
        end local 2 // java.lang.String originalHostname
        end local 1 // sun.misc.JavaNetAccess jna
        end local 0 // java.net.InetAddress inetAddress
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0    5     0       inetAddress  Ljava/net/InetAddress;
            1    5     1               jna  Lsun/misc/JavaNetAccess;
            2    5     2  originalHostname  Ljava/lang/String;
    MethodParameters:
             Name  Flags
      inetAddress  

  public synchronized void setHost(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 host
         0: .line 2061
            aload 0 /* this */
            aload 1 /* host */
            putfield sun.security.ssl.SSLSocketImpl.host:Ljava/lang/String;
         1: .line 2062
            return
        end local 1 // java.lang.String host
        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  host  Ljava/lang/String;
    MethodParameters:
      Name  Flags
      host  

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

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

  public javax.net.ssl.SSLSession getSession();
    descriptor: ()Ljavax/net/ssl/SSLSession;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=2, args_size=1
        start local 0 // sun.security.ssl.SSLSocketImpl this
         0: .line 2115
            aload 0 /* this */
            invokevirtual sun.security.ssl.SSLSocketImpl.getConnectionState:()I
            iconst_1
            if_icmpne 8
         1: .line 2118
            aload 0 /* this */
            iconst_0
            invokevirtual sun.security.ssl.SSLSocketImpl.startHandshake:(Z)V
         2: .line 2119
            goto 8
      StackMap locals:
      StackMap stack: java.io.IOException
         3: astore 1 /* e */
        start local 1 // java.io.IOException e
         4: .line 2121
            getstatic sun.security.ssl.SSLSocketImpl.debug:Lsun/security/ssl/Debug;
            ifnull 8
            ldc "handshake"
            invokestatic sun.security.ssl.Debug.isOn:(Ljava/lang/String;)Z
            ifeq 8
         5: .line 2122
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            new java.lang.StringBuilder
            dup
            invokestatic sun.security.ssl.SSLSocketImpl.threadName:()Ljava/lang/String;
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
         6: .line 2123
            ldc ", IOException in getSession():  "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 1 /* e */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
         7: .line 2122
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
        end local 1 // java.io.IOException e
         8: .line 2127
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            dup
            astore 1
            monitorenter
         9: .line 2128
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.sess:Lsun/security/ssl/SSLSessionImpl;
            aload 1
            monitorexit
        10: areturn
        11: .line 2127
      StackMap locals: sun.security.ssl.SSLSocketImpl sun.security.ssl.SSLSocketImpl
      StackMap stack: java.lang.Throwable
            aload 1
            monitorexit
        12: athrow
        end local 0 // sun.security.ssl.SSLSocketImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   13     0  this  Lsun/security/ssl/SSLSocketImpl;
            4    8     1     e  Ljava/io/IOException;
      Exception table:
        from    to  target  type
           1     2       3  Class java.io.IOException
           9    10      11  any
          11    12      11  any

  public synchronized 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 2141
            aload 0 /* this */
            iload 1 /* flag */
            putfield sun.security.ssl.SSLSocketImpl.enableSessionCreation:Z
         1: .line 2143
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.handshaker:Lsun/security/ssl/Handshaker;
            ifnull 3
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.handshaker:Lsun/security/ssl/Handshaker;
            invokevirtual sun.security.ssl.Handshaker.activated:()Z
            ifne 3
         2: .line 2144
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.handshaker:Lsun/security/ssl/Handshaker;
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.enableSessionCreation:Z
            invokevirtual sun.security.ssl.Handshaker.setEnableSessionCreation:(Z)V
         3: .line 2146
      StackMap locals:
      StackMap stack:
            return
        end local 1 // boolean flag
        end local 0 // sun.security.ssl.SSLSocketImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Lsun/security/ssl/SSLSocketImpl;
            0    4     1  flag  Z
    MethodParameters:
      Name  Flags
      flag  

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

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

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

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

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

  public synchronized void setUseClientMode(boolean);
    descriptor: (Z)V
    flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // sun.security.ssl.SSLSocketImpl this
        start local 1 // boolean flag
         0: .line 2211
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.connectionState:I
            tableswitch { // 0 - 1
                    0: 1
                    1: 12
              default: 27
          }
         1: .line 2219
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.roleIsServer:Z
            iload 1 /* flag */
            ifeq 2
            iconst_0
            goto 3
      StackMap locals:
      StackMap stack: int
         2: iconst_1
      StackMap locals: sun.security.ssl.SSLSocketImpl int
      StackMap stack: int int
         3: if_icmpeq 8
         4: .line 2220
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.sslContext:Lsun/security/ssl/SSLContextImpl;
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.enabledProtocols:Lsun/security/ssl/ProtocolList;
            invokevirtual sun.security.ssl.SSLContextImpl.isDefaultProtocolList:(Lsun/security/ssl/ProtocolList;)Z
            ifeq 8
         5: .line 2221
            aload 0 /* this */
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.sslContext:Lsun/security/ssl/SSLContextImpl;
            iload 1 /* flag */
            ifeq 6
            iconst_0
            goto 7
      StackMap locals: sun.security.ssl.SSLSocketImpl int
      StackMap stack: sun.security.ssl.SSLSocketImpl sun.security.ssl.SSLContextImpl
         6: iconst_1
      StackMap locals: sun.security.ssl.SSLSocketImpl int
      StackMap stack: sun.security.ssl.SSLSocketImpl sun.security.ssl.SSLContextImpl int
         7: invokevirtual sun.security.ssl.SSLContextImpl.getDefaultProtocolList:(Z)Lsun/security/ssl/ProtocolList;
            putfield sun.security.ssl.SSLSocketImpl.enabledProtocols:Lsun/security/ssl/ProtocolList;
         8: .line 2223
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iload 1 /* flag */
            ifeq 9
            iconst_0
            goto 10
      StackMap locals:
      StackMap stack: sun.security.ssl.SSLSocketImpl
         9: iconst_1
      StackMap locals: sun.security.ssl.SSLSocketImpl int
      StackMap stack: sun.security.ssl.SSLSocketImpl int
        10: putfield sun.security.ssl.SSLSocketImpl.roleIsServer:Z
        11: .line 2224
            goto 35
        12: .line 2234
      StackMap locals:
      StackMap stack:
            getstatic sun.security.ssl.SSLSocketImpl.$assertionsDisabled:Z
            ifne 13
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.handshaker:Lsun/security/ssl/Handshaker;
            ifnonnull 13
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
        13: .line 2235
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.handshaker:Lsun/security/ssl/Handshaker;
            invokevirtual sun.security.ssl.Handshaker.activated:()Z
            ifne 27
        14: .line 2241
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.roleIsServer:Z
            iload 1 /* flag */
            ifeq 15
            iconst_0
            goto 16
      StackMap locals:
      StackMap stack: int
        15: iconst_1
      StackMap locals: sun.security.ssl.SSLSocketImpl int
      StackMap stack: int int
        16: if_icmpeq 21
        17: .line 2242
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.sslContext:Lsun/security/ssl/SSLContextImpl;
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.enabledProtocols:Lsun/security/ssl/ProtocolList;
            invokevirtual sun.security.ssl.SSLContextImpl.isDefaultProtocolList:(Lsun/security/ssl/ProtocolList;)Z
            ifeq 21
        18: .line 2243
            aload 0 /* this */
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.sslContext:Lsun/security/ssl/SSLContextImpl;
            iload 1 /* flag */
            ifeq 19
            iconst_0
            goto 20
      StackMap locals: sun.security.ssl.SSLSocketImpl int
      StackMap stack: sun.security.ssl.SSLSocketImpl sun.security.ssl.SSLContextImpl
        19: iconst_1
      StackMap locals: sun.security.ssl.SSLSocketImpl int
      StackMap stack: sun.security.ssl.SSLSocketImpl sun.security.ssl.SSLContextImpl int
        20: invokevirtual sun.security.ssl.SSLContextImpl.getDefaultProtocolList:(Z)Lsun/security/ssl/ProtocolList;
            putfield sun.security.ssl.SSLSocketImpl.enabledProtocols:Lsun/security/ssl/ProtocolList;
        21: .line 2245
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iload 1 /* flag */
            ifeq 22
            iconst_0
            goto 23
      StackMap locals:
      StackMap stack: sun.security.ssl.SSLSocketImpl
        22: iconst_1
      StackMap locals: sun.security.ssl.SSLSocketImpl int
      StackMap stack: sun.security.ssl.SSLSocketImpl int
        23: putfield sun.security.ssl.SSLSocketImpl.roleIsServer:Z
        24: .line 2246
            aload 0 /* this */
            iconst_0
            putfield sun.security.ssl.SSLSocketImpl.connectionState:I
        25: .line 2247
            aload 0 /* this */
            invokevirtual sun.security.ssl.SSLSocketImpl.initHandshaker:()V
        26: .line 2248
            goto 35
        27: .line 2254
      StackMap locals:
      StackMap stack:
            getstatic sun.security.ssl.SSLSocketImpl.debug:Lsun/security/ssl/Debug;
            ifnull 32
            ldc "ssl"
            invokestatic sun.security.ssl.Debug.isOn:(Ljava/lang/String;)Z
            ifeq 32
        28: .line 2255
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            new java.lang.StringBuilder
            dup
            invokestatic sun.security.ssl.SSLSocketImpl.threadName:()Ljava/lang/String;
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
        29: .line 2256
            ldc ", setUseClientMode() invoked in state = "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        30: .line 2257
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.connectionState:I
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        31: .line 2255
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
        32: .line 2259
      StackMap locals:
      StackMap stack:
            new java.lang.IllegalArgumentException
            dup
        33: .line 2260
            ldc "Cannot change mode after SSL traffic has started"
        34: .line 2259
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
        35: .line 2262
      StackMap locals:
      StackMap stack:
            return
        end local 1 // boolean flag
        end local 0 // sun.security.ssl.SSLSocketImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   36     0  this  Lsun/security/ssl/SSLSocketImpl;
            0   36     1  flag  Z
    MethodParameters:
      Name  Flags
      flag  

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

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

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

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

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

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

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

  public void setSoTimeout(int);
    descriptor: (I)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // sun.security.ssl.SSLSocketImpl this
        start local 1 // int timeout
         0: .line 2348
            getstatic sun.security.ssl.SSLSocketImpl.debug:Lsun/security/ssl/Debug;
            ifnull 4
            ldc "ssl"
            invokestatic sun.security.ssl.Debug.isOn:(Ljava/lang/String;)Z
            ifeq 4
         1: .line 2349
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            new java.lang.StringBuilder
            dup
            invokestatic sun.security.ssl.SSLSocketImpl.threadName:()Ljava/lang/String;
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
         2: .line 2350
            ldc ", setSoTimeout("
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            iload 1 /* timeout */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            ldc ") called"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
         3: .line 2349
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
         4: .line 2352
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.self:Ljava/net/Socket;
            aload 0 /* this */
            if_acmpne 7
         5: .line 2353
            aload 0 /* this */
            iload 1 /* timeout */
            invokespecial sun.security.ssl.BaseSSLSocketImpl.setSoTimeout:(I)V
         6: .line 2354
            goto 8
         7: .line 2355
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.self:Ljava/net/Socket;
            iload 1 /* timeout */
            invokevirtual java.net.Socket.setSoTimeout:(I)V
         8: .line 2357
      StackMap locals:
      StackMap stack:
            return
        end local 1 // int timeout
        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  timeout  I
    Exceptions:
      throws java.net.SocketException
    MethodParameters:
         Name  Flags
      timeout  

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

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

  public synchronized boolean trySetHostnameVerification(java.lang.String);
    descriptor: (Ljava/lang/String;)Z
    flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // sun.security.ssl.SSLSocketImpl this
        start local 1 // java.lang.String identificationAlgorithm
         0: .line 2401
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.sslContext:Lsun/security/ssl/SSLContextImpl;
            invokevirtual sun.security.ssl.SSLContextImpl.getX509TrustManager:()Ljavax/net/ssl/X509TrustManager;
            instanceof com.sun.net.ssl.internal.ssl.X509ExtendedTrustManager
         1: .line 2402
            ifeq 4
         2: .line 2403
            aload 0 /* this */
            aload 1 /* identificationAlgorithm */
            putfield sun.security.ssl.SSLSocketImpl.identificationAlg:Ljava/lang/String;
         3: .line 2404
            iconst_1
            ireturn
         4: .line 2406
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
        end local 1 // java.lang.String identificationAlgorithm
        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  identificationAlgorithm  Ljava/lang/String;
    MethodParameters:
                         Name  Flags
      identificationAlgorithm  

  public synchronized java.lang.String getHostnameVerification();
    descriptor: ()Ljava/lang/String;
    flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // sun.security.ssl.SSLSocketImpl this
         0: .line 2414
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.identificationAlg: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;

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

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

  public java.lang.String toString();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=1
        start local 0 // sun.security.ssl.SSLSocketImpl this
         0: .line 2472
            new java.lang.StringBuffer
            dup
            bipush 80
            invokespecial java.lang.StringBuffer.<init>:(I)V
            astore 1 /* retval */
        start local 1 // java.lang.StringBuffer retval
         1: .line 2474
            aload 1 /* retval */
            aload 0 /* this */
            invokevirtual java.lang.Object.hashCode:()I
            invokestatic java.lang.Integer.toHexString:(I)Ljava/lang/String;
            invokevirtual java.lang.StringBuffer.append:(Ljava/lang/String;)Ljava/lang/StringBuffer;
            pop
         2: .line 2475
            aload 1 /* retval */
            ldc "["
            invokevirtual java.lang.StringBuffer.append:(Ljava/lang/String;)Ljava/lang/StringBuffer;
            pop
         3: .line 2476
            aload 1 /* retval */
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.sess:Lsun/security/ssl/SSLSessionImpl;
            invokevirtual sun.security.ssl.SSLSessionImpl.getCipherSuite:()Ljava/lang/String;
            invokevirtual java.lang.StringBuffer.append:(Ljava/lang/String;)Ljava/lang/StringBuffer;
            pop
         4: .line 2477
            aload 1 /* retval */
            ldc ": "
            invokevirtual java.lang.StringBuffer.append:(Ljava/lang/String;)Ljava/lang/StringBuffer;
            pop
         5: .line 2479
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.self:Ljava/net/Socket;
            aload 0 /* this */
            if_acmpne 8
         6: .line 2480
            aload 1 /* retval */
            aload 0 /* this */
            invokespecial sun.security.ssl.BaseSSLSocketImpl.toString:()Ljava/lang/String;
            invokevirtual java.lang.StringBuffer.append:(Ljava/lang/String;)Ljava/lang/StringBuffer;
            pop
         7: .line 2481
            goto 9
         8: .line 2482
      StackMap locals: java.lang.StringBuffer
      StackMap stack:
            aload 1 /* retval */
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.self:Ljava/net/Socket;
            invokevirtual java.net.Socket.toString:()Ljava/lang/String;
            invokevirtual java.lang.StringBuffer.append:(Ljava/lang/String;)Ljava/lang/StringBuffer;
            pop
         9: .line 2484
      StackMap locals:
      StackMap stack:
            aload 1 /* retval */
            ldc "]"
            invokevirtual java.lang.StringBuffer.append:(Ljava/lang/String;)Ljava/lang/StringBuffer;
            pop
        10: .line 2486
            aload 1 /* retval */
            invokevirtual java.lang.StringBuffer.toString:()Ljava/lang/String;
            areturn
        end local 1 // java.lang.StringBuffer retval
        end local 0 // sun.security.ssl.SSLSocketImpl this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   11     0    this  Lsun/security/ssl/SSLSocketImpl;
            1   11     1  retval  Ljava/lang/StringBuffer;

  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.net.SocketAddress getLocalSocketAddress();
    descriptor: ()Ljava/net/SocketAddress;
    flags: (0x1041) ACC_PUBLIC, ACC_BRIDGE, ACC_SYNTHETIC
    Code:
      stack=1, locals=1, args_size=1
         0: .line 1
            aload 0
            invokespecial sun.security.ssl.BaseSSLSocketImpl.getLocalSocketAddress:()Ljava/net/SocketAddress;
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature

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

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