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

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

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

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

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

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

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

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

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

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

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

  private 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 java.lang.String rawHostname;
    descriptor: Ljava/lang/String;
    flags: (0x0002) ACC_PRIVATE

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  private boolean 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 66
            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 373
            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 393
            ldc "jdk.tls.trustNameService"
            iconst_0
            invokestatic sun.security.ssl.Debug.getBooleanProperty:(Ljava/lang/String;Z)Z
         5: .line 392
            putstatic sun.security.ssl.SSLSocketImpl.trustNameService:Z
         6: .line 393
            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 410
            aload 0 /* this */
            invokespecial sun.security.ssl.BaseSSLSocketImpl.<init>:()V
         1: .line 199
            aload 0 /* this */
            iconst_1
            putfield sun.security.ssl.SSLSocketImpl.enableSessionCreation:Z
         2: .line 201
            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.identificationProtocol:Ljava/lang/String;
         4: .line 219
            aload 0 /* this */
            aconst_null
            putfield sun.security.ssl.SSLSocketImpl.algorithmConstraints:Ljava/security/AlgorithmConstraints;
         5: .line 292
            aload 0 /* this */
            new java.lang.Object
            dup
            invokespecial java.lang.Object.<init>:()V
            putfield sun.security.ssl.SSLSocketImpl.handshakeLock:Ljava/lang/Object;
         6: .line 293
            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;
         7: .line 294
            aload 0 /* this */
            new java.lang.Object
            dup
            invokespecial java.lang.Object.<init>:()V
            putfield sun.security.ssl.SSLSocketImpl.readLock:Ljava/lang/Object;
         8: .line 370
            aload 0 /* this */
            getstatic sun.security.ssl.ProtocolVersion.DEFAULT:Lsun/security/ssl/ProtocolVersion;
            putfield sun.security.ssl.SSLSocketImpl.protocolVersion:Lsun/security/ssl/ProtocolVersion;
         9: .line 378
            aload 0 /* this */
            iconst_1
            putfield sun.security.ssl.SSLSocketImpl.isFirstAppOutputRecord:Z
        10: .line 384
            aload 0 /* this */
            aconst_null
            putfield sun.security.ssl.SSLSocketImpl.heldRecordBuffer:Ljava/io/ByteArrayOutputStream;
        11: .line 411
            aload 0 /* this */
            aload 2 /* host */
            putfield sun.security.ssl.SSLSocketImpl.host:Ljava/lang/String;
        12: .line 412
            aload 0 /* this */
            aload 2 /* host */
            putfield sun.security.ssl.SSLSocketImpl.rawHostname:Ljava/lang/String;
        13: .line 413
            aload 0 /* this */
            aload 1 /* context */
            iconst_0
            invokevirtual sun.security.ssl.SSLSocketImpl.init:(Lsun/security/ssl/SSLContextImpl;Z)V
        14: .line 415
            aload 2 /* host */
            ifnull 15
            new java.net.InetSocketAddress
            dup
            aload 2 /* host */
            iload 3 /* port */
            invokespecial java.net.InetSocketAddress.<init>:(Ljava/lang/String;I)V
            goto 16
        15: .line 416
      StackMap locals: sun.security.ssl.SSLSocketImpl sun.security.ssl.SSLContextImpl java.lang.String int
      StackMap stack:
            new java.net.InetSocketAddress
            dup
            aconst_null
            invokestatic java.net.InetAddress.getByName:(Ljava/lang/String;)Ljava/net/InetAddress;
            iload 3 /* port */
            invokespecial java.net.InetSocketAddress.<init>:(Ljava/net/InetAddress;I)V
        16: .line 414
      StackMap locals:
      StackMap stack: java.net.InetSocketAddress
            astore 4 /* socketAddress */
        start local 4 // java.net.SocketAddress socketAddress
        17: .line 417
            aload 0 /* this */
            aload 4 /* socketAddress */
            iconst_0
            invokevirtual sun.security.ssl.SSLSocketImpl.connect:(Ljava/net/SocketAddress;I)V
        18: .line 418
            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   19     0           this  Lsun/security/ssl/SSLSocketImpl;
            0   19     1        context  Lsun/security/ssl/SSLContextImpl;
            0   19     2           host  Ljava/lang/String;
            0   19     3           port  I
           17   19     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 433
            aload 0 /* this */
            invokespecial sun.security.ssl.BaseSSLSocketImpl.<init>:()V
         1: .line 199
            aload 0 /* this */
            iconst_1
            putfield sun.security.ssl.SSLSocketImpl.enableSessionCreation:Z
         2: .line 201
            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.identificationProtocol:Ljava/lang/String;
         4: .line 219
            aload 0 /* this */
            aconst_null
            putfield sun.security.ssl.SSLSocketImpl.algorithmConstraints:Ljava/security/AlgorithmConstraints;
         5: .line 292
            aload 0 /* this */
            new java.lang.Object
            dup
            invokespecial java.lang.Object.<init>:()V
            putfield sun.security.ssl.SSLSocketImpl.handshakeLock:Ljava/lang/Object;
         6: .line 293
            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;
         7: .line 294
            aload 0 /* this */
            new java.lang.Object
            dup
            invokespecial java.lang.Object.<init>:()V
            putfield sun.security.ssl.SSLSocketImpl.readLock:Ljava/lang/Object;
         8: .line 370
            aload 0 /* this */
            getstatic sun.security.ssl.ProtocolVersion.DEFAULT:Lsun/security/ssl/ProtocolVersion;
            putfield sun.security.ssl.SSLSocketImpl.protocolVersion:Lsun/security/ssl/ProtocolVersion;
         9: .line 378
            aload 0 /* this */
            iconst_1
            putfield sun.security.ssl.SSLSocketImpl.isFirstAppOutputRecord:Z
        10: .line 384
            aload 0 /* this */
            aconst_null
            putfield sun.security.ssl.SSLSocketImpl.heldRecordBuffer:Ljava/io/ByteArrayOutputStream;
        11: .line 434
            aload 0 /* this */
            aload 1 /* context */
            iconst_0
            invokevirtual sun.security.ssl.SSLSocketImpl.init:(Lsun/security/ssl/SSLContextImpl;Z)V
        12: .line 435
            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
        13: .line 436
            aload 0 /* this */
            aload 4 /* socketAddress */
            iconst_0
            invokevirtual sun.security.ssl.SSLSocketImpl.connect:(Ljava/net/SocketAddress;I)V
        14: .line 437
            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   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
           13   15     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 453
            aload 0 /* this */
            invokespecial sun.security.ssl.BaseSSLSocketImpl.<init>:()V
         1: .line 199
            aload 0 /* this */
            iconst_1
            putfield sun.security.ssl.SSLSocketImpl.enableSessionCreation:Z
         2: .line 201
            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.identificationProtocol:Ljava/lang/String;
         4: .line 219
            aload 0 /* this */
            aconst_null
            putfield sun.security.ssl.SSLSocketImpl.algorithmConstraints:Ljava/security/AlgorithmConstraints;
         5: .line 292
            aload 0 /* this */
            new java.lang.Object
            dup
            invokespecial java.lang.Object.<init>:()V
            putfield sun.security.ssl.SSLSocketImpl.handshakeLock:Ljava/lang/Object;
         6: .line 293
            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;
         7: .line 294
            aload 0 /* this */
            new java.lang.Object
            dup
            invokespecial java.lang.Object.<init>:()V
            putfield sun.security.ssl.SSLSocketImpl.readLock:Ljava/lang/Object;
         8: .line 370
            aload 0 /* this */
            getstatic sun.security.ssl.ProtocolVersion.DEFAULT:Lsun/security/ssl/ProtocolVersion;
            putfield sun.security.ssl.SSLSocketImpl.protocolVersion:Lsun/security/ssl/ProtocolVersion;
         9: .line 378
            aload 0 /* this */
            iconst_1
            putfield sun.security.ssl.SSLSocketImpl.isFirstAppOutputRecord:Z
        10: .line 384
            aload 0 /* this */
            aconst_null
            putfield sun.security.ssl.SSLSocketImpl.heldRecordBuffer:Ljava/io/ByteArrayOutputStream;
        11: .line 454
            aload 0 /* this */
            aload 2 /* host */
            putfield sun.security.ssl.SSLSocketImpl.host:Ljava/lang/String;
        12: .line 455
            aload 0 /* this */
            aload 2 /* host */
            putfield sun.security.ssl.SSLSocketImpl.rawHostname:Ljava/lang/String;
        13: .line 456
            aload 0 /* this */
            aload 1 /* context */
            iconst_0
            invokevirtual sun.security.ssl.SSLSocketImpl.init:(Lsun/security/ssl/SSLContextImpl;Z)V
        14: .line 457
            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
        15: .line 459
            aload 2 /* host */
            ifnull 16
            new java.net.InetSocketAddress
            dup
            aload 2 /* host */
            iload 3 /* port */
            invokespecial java.net.InetSocketAddress.<init>:(Ljava/lang/String;I)V
            goto 17
        16: .line 460
      StackMap locals: sun.security.ssl.SSLSocketImpl sun.security.ssl.SSLContextImpl java.lang.String int java.net.InetAddress int
      StackMap stack:
            new java.net.InetSocketAddress
            dup
            aconst_null
            invokestatic java.net.InetAddress.getByName:(Ljava/lang/String;)Ljava/net/InetAddress;
            iload 3 /* port */
            invokespecial java.net.InetSocketAddress.<init>:(Ljava/net/InetAddress;I)V
        17: .line 458
      StackMap locals:
      StackMap stack: java.net.InetSocketAddress
            astore 6 /* socketAddress */
        start local 6 // java.net.SocketAddress socketAddress
        18: .line 461
            aload 0 /* this */
            aload 6 /* socketAddress */
            iconst_0
            invokevirtual sun.security.ssl.SSLSocketImpl.connect:(Ljava/net/SocketAddress;I)V
        19: .line 462
            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   20     0           this  Lsun/security/ssl/SSLSocketImpl;
            0   20     1        context  Lsun/security/ssl/SSLContextImpl;
            0   20     2           host  Ljava/lang/String;
            0   20     3           port  I
            0   20     4      localAddr  Ljava/net/InetAddress;
            0   20     5      localPort  I
           18   20     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 480
            aload 0 /* this */
            invokespecial sun.security.ssl.BaseSSLSocketImpl.<init>:()V
         1: .line 199
            aload 0 /* this */
            iconst_1
            putfield sun.security.ssl.SSLSocketImpl.enableSessionCreation:Z
         2: .line 201
            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.identificationProtocol:Ljava/lang/String;
         4: .line 219
            aload 0 /* this */
            aconst_null
            putfield sun.security.ssl.SSLSocketImpl.algorithmConstraints:Ljava/security/AlgorithmConstraints;
         5: .line 292
            aload 0 /* this */
            new java.lang.Object
            dup
            invokespecial java.lang.Object.<init>:()V
            putfield sun.security.ssl.SSLSocketImpl.handshakeLock:Ljava/lang/Object;
         6: .line 293
            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;
         7: .line 294
            aload 0 /* this */
            new java.lang.Object
            dup
            invokespecial java.lang.Object.<init>:()V
            putfield sun.security.ssl.SSLSocketImpl.readLock:Ljava/lang/Object;
         8: .line 370
            aload 0 /* this */
            getstatic sun.security.ssl.ProtocolVersion.DEFAULT:Lsun/security/ssl/ProtocolVersion;
            putfield sun.security.ssl.SSLSocketImpl.protocolVersion:Lsun/security/ssl/ProtocolVersion;
         9: .line 378
            aload 0 /* this */
            iconst_1
            putfield sun.security.ssl.SSLSocketImpl.isFirstAppOutputRecord:Z
        10: .line 384
            aload 0 /* this */
            aconst_null
            putfield sun.security.ssl.SSLSocketImpl.heldRecordBuffer:Ljava/io/ByteArrayOutputStream;
        11: .line 481
            aload 0 /* this */
            aload 1 /* context */
            iconst_0
            invokevirtual sun.security.ssl.SSLSocketImpl.init:(Lsun/security/ssl/SSLContextImpl;Z)V
        12: .line 482
            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 483
            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
        14: .line 484
            aload 0 /* this */
            aload 6 /* socketAddress */
            iconst_0
            invokevirtual sun.security.ssl.SSLSocketImpl.connect:(Ljava/net/SocketAddress;I)V
        15: .line 485
            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   16     0           this  Lsun/security/ssl/SSLSocketImpl;
            0   16     1        context  Lsun/security/ssl/SSLContextImpl;
            0   16     2           host  Ljava/net/InetAddress;
            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
    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, java.lang.String, java.security.AlgorithmConstraints);
    descriptor: (Lsun/security/ssl/SSLContextImpl;ZLsun/security/ssl/CipherSuiteList;BZLsun/security/ssl/ProtocolList;Ljava/lang/String;Ljava/security/AlgorithmConstraints;)V
    flags: (0x0000) 
    Code:
      stack=3, locals=9, args_size=9
        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
        start local 7 // java.lang.String identificationProtocol
        start local 8 // java.security.AlgorithmConstraints algorithmConstraints
         0: .line 499
            aload 0 /* this */
            invokespecial sun.security.ssl.BaseSSLSocketImpl.<init>:()V
         1: .line 199
            aload 0 /* this */
            iconst_1
            putfield sun.security.ssl.SSLSocketImpl.enableSessionCreation:Z
         2: .line 201
            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.identificationProtocol:Ljava/lang/String;
         4: .line 219
            aload 0 /* this */
            aconst_null
            putfield sun.security.ssl.SSLSocketImpl.algorithmConstraints:Ljava/security/AlgorithmConstraints;
         5: .line 292
            aload 0 /* this */
            new java.lang.Object
            dup
            invokespecial java.lang.Object.<init>:()V
            putfield sun.security.ssl.SSLSocketImpl.handshakeLock:Ljava/lang/Object;
         6: .line 293
            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;
         7: .line 294
            aload 0 /* this */
            new java.lang.Object
            dup
            invokespecial java.lang.Object.<init>:()V
            putfield sun.security.ssl.SSLSocketImpl.readLock:Ljava/lang/Object;
         8: .line 370
            aload 0 /* this */
            getstatic sun.security.ssl.ProtocolVersion.DEFAULT:Lsun/security/ssl/ProtocolVersion;
            putfield sun.security.ssl.SSLSocketImpl.protocolVersion:Lsun/security/ssl/ProtocolVersion;
         9: .line 378
            aload 0 /* this */
            iconst_1
            putfield sun.security.ssl.SSLSocketImpl.isFirstAppOutputRecord:Z
        10: .line 384
            aload 0 /* this */
            aconst_null
            putfield sun.security.ssl.SSLSocketImpl.heldRecordBuffer:Ljava/io/ByteArrayOutputStream;
        11: .line 500
            aload 0 /* this */
            iload 4 /* clientAuth */
            putfield sun.security.ssl.SSLSocketImpl.doClientAuth:B
        12: .line 501
            aload 0 /* this */
            iload 5 /* sessionCreation */
            putfield sun.security.ssl.SSLSocketImpl.enableSessionCreation:Z
        13: .line 502
            aload 0 /* this */
            aload 7 /* identificationProtocol */
            putfield sun.security.ssl.SSLSocketImpl.identificationProtocol:Ljava/lang/String;
        14: .line 503
            aload 0 /* this */
            aload 8 /* algorithmConstraints */
            putfield sun.security.ssl.SSLSocketImpl.algorithmConstraints:Ljava/security/AlgorithmConstraints;
        15: .line 504
            aload 0 /* this */
            aload 1 /* context */
            iload 2 /* serverMode */
            invokevirtual sun.security.ssl.SSLSocketImpl.init:(Lsun/security/ssl/SSLContextImpl;Z)V
        16: .line 509
            aload 0 /* this */
            aload 3 /* suites */
            putfield sun.security.ssl.SSLSocketImpl.enabledCipherSuites:Lsun/security/ssl/CipherSuiteList;
        17: .line 510
            aload 0 /* this */
            aload 6 /* protocols */
            putfield sun.security.ssl.SSLSocketImpl.enabledProtocols:Lsun/security/ssl/ProtocolList;
        18: .line 511
            return
        end local 8 // java.security.AlgorithmConstraints algorithmConstraints
        end local 7 // java.lang.String identificationProtocol
        end local 6 // sun.security.ssl.ProtocolList protocols
        end local 5 // boolean sessionCreation
        end local 4 // 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   19     0                    this  Lsun/security/ssl/SSLSocketImpl;
            0   19     1                 context  Lsun/security/ssl/SSLContextImpl;
            0   19     2              serverMode  Z
            0   19     3                  suites  Lsun/security/ssl/CipherSuiteList;
            0   19     4              clientAuth  B
            0   19     5         sessionCreation  Z
            0   19     6               protocols  Lsun/security/ssl/ProtocolList;
            0   19     7  identificationProtocol  Ljava/lang/String;
            0   19     8    algorithmConstraints  Ljava/security/AlgorithmConstraints;
    Exceptions:
      throws java.io.IOException
    MethodParameters:
                        Name  Flags
      context                 
      serverMode              
      suites                  
      clientAuth              
      sessionCreation         
      protocols               
      identificationProtocol  
      algorithmConstraints    

  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 521
            aload 0 /* this */
            invokespecial sun.security.ssl.BaseSSLSocketImpl.<init>:()V
         1: .line 199
            aload 0 /* this */
            iconst_1
            putfield sun.security.ssl.SSLSocketImpl.enableSessionCreation:Z
         2: .line 201
            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.identificationProtocol:Ljava/lang/String;
         4: .line 219
            aload 0 /* this */
            aconst_null
            putfield sun.security.ssl.SSLSocketImpl.algorithmConstraints:Ljava/security/AlgorithmConstraints;
         5: .line 292
            aload 0 /* this */
            new java.lang.Object
            dup
            invokespecial java.lang.Object.<init>:()V
            putfield sun.security.ssl.SSLSocketImpl.handshakeLock:Ljava/lang/Object;
         6: .line 293
            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;
         7: .line 294
            aload 0 /* this */
            new java.lang.Object
            dup
            invokespecial java.lang.Object.<init>:()V
            putfield sun.security.ssl.SSLSocketImpl.readLock:Ljava/lang/Object;
         8: .line 370
            aload 0 /* this */
            getstatic sun.security.ssl.ProtocolVersion.DEFAULT:Lsun/security/ssl/ProtocolVersion;
            putfield sun.security.ssl.SSLSocketImpl.protocolVersion:Lsun/security/ssl/ProtocolVersion;
         9: .line 378
            aload 0 /* this */
            iconst_1
            putfield sun.security.ssl.SSLSocketImpl.isFirstAppOutputRecord:Z
        10: .line 384
            aload 0 /* this */
            aconst_null
            putfield sun.security.ssl.SSLSocketImpl.heldRecordBuffer:Ljava/io/ByteArrayOutputStream;
        11: .line 522
            aload 0 /* this */
            aload 1 /* context */
            iconst_0
            invokevirtual sun.security.ssl.SSLSocketImpl.init:(Lsun/security/ssl/SSLContextImpl;Z)V
        12: .line 523
            return
        end local 1 // sun.security.ssl.SSLContextImpl context
        end local 0 // sun.security.ssl.SSLSocketImpl this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   13     0     this  Lsun/security/ssl/SSLSocketImpl;
            0   13     1  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 544
            aload 0 /* this */
            aload 2 /* sock */
            invokespecial sun.security.ssl.BaseSSLSocketImpl.<init>:(Ljava/net/Socket;)V
         1: .line 199
            aload 0 /* this */
            iconst_1
            putfield sun.security.ssl.SSLSocketImpl.enableSessionCreation:Z
         2: .line 201
            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.identificationProtocol:Ljava/lang/String;
         4: .line 219
            aload 0 /* this */
            aconst_null
            putfield sun.security.ssl.SSLSocketImpl.algorithmConstraints:Ljava/security/AlgorithmConstraints;
         5: .line 292
            aload 0 /* this */
            new java.lang.Object
            dup
            invokespecial java.lang.Object.<init>:()V
            putfield sun.security.ssl.SSLSocketImpl.handshakeLock:Ljava/lang/Object;
         6: .line 293
            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;
         7: .line 294
            aload 0 /* this */
            new java.lang.Object
            dup
            invokespecial java.lang.Object.<init>:()V
            putfield sun.security.ssl.SSLSocketImpl.readLock:Ljava/lang/Object;
         8: .line 370
            aload 0 /* this */
            getstatic sun.security.ssl.ProtocolVersion.DEFAULT:Lsun/security/ssl/ProtocolVersion;
            putfield sun.security.ssl.SSLSocketImpl.protocolVersion:Lsun/security/ssl/ProtocolVersion;
         9: .line 378
            aload 0 /* this */
            iconst_1
            putfield sun.security.ssl.SSLSocketImpl.isFirstAppOutputRecord:Z
        10: .line 384
            aload 0 /* this */
            aconst_null
            putfield sun.security.ssl.SSLSocketImpl.heldRecordBuffer:Ljava/io/ByteArrayOutputStream;
        11: .line 546
            aload 2 /* sock */
            invokevirtual java.net.Socket.isConnected:()Z
            ifne 13
        12: .line 547
            new java.net.SocketException
            dup
            ldc "Underlying socket is not connected"
            invokespecial java.net.SocketException.<init>:(Ljava/lang/String;)V
            athrow
        13: .line 549
      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;
        14: .line 550
            aload 0 /* this */
            aload 3 /* host */
            putfield sun.security.ssl.SSLSocketImpl.rawHostname:Ljava/lang/String;
        15: .line 551
            aload 0 /* this */
            aload 1 /* context */
            iconst_0
            invokevirtual sun.security.ssl.SSLSocketImpl.init:(Lsun/security/ssl/SSLContextImpl;Z)V
        16: .line 552
            aload 0 /* this */
            iload 5 /* autoClose */
            putfield sun.security.ssl.SSLSocketImpl.autoClose:Z
        17: .line 553
            aload 0 /* this */
            invokevirtual sun.security.ssl.SSLSocketImpl.doneConnect:()V
        18: .line 554
            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   19     0       this  Lsun/security/ssl/SSLSocketImpl;
            0   19     1    context  Lsun/security/ssl/SSLContextImpl;
            0   19     2       sock  Ljava/net/Socket;
            0   19     3       host  Ljava/lang/String;
            0   19     4       port  I
            0   19     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 560
            aload 0 /* this */
            aload 1 /* context */
            putfield sun.security.ssl.SSLSocketImpl.sslContext:Lsun/security/ssl/SSLContextImpl;
         1: .line 561
            aload 0 /* this */
            new sun.security.ssl.SSLSessionImpl
            dup
            invokespecial sun.security.ssl.SSLSessionImpl.<init>:()V
            putfield sun.security.ssl.SSLSocketImpl.sess:Lsun/security/ssl/SSLSessionImpl;
         2: .line 562
            aload 0 /* this */
            aconst_null
            putfield sun.security.ssl.SSLSocketImpl.handshakeSession:Lsun/security/ssl/SSLSessionImpl;
         3: .line 568
            aload 0 /* this */
            iload 2 /* isServer */
            putfield sun.security.ssl.SSLSocketImpl.roleIsServer:Z
         4: .line 569
            aload 0 /* this */
            iconst_0
            putfield sun.security.ssl.SSLSocketImpl.connectionState:I
         5: .line 576
            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 577
            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 578
            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 579
            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 582
            aload 0 /* this */
            iconst_0
            putfield sun.security.ssl.SSLSocketImpl.secureRenegotiation:Z
        10: .line 583
            aload 0 /* this */
            iconst_0
            newarray 8
            putfield sun.security.ssl.SSLSocketImpl.clientVerifyData:[B
        11: .line 584
            aload 0 /* this */
            iconst_0
            newarray 8
            putfield sun.security.ssl.SSLSocketImpl.serverVerifyData:[B
        12: .line 586
            aload 0 /* this */
        13: .line 587
            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 586
            putfield sun.security.ssl.SSLSocketImpl.enabledCipherSuites:Lsun/security/ssl/CipherSuiteList;
        15: .line 588
            aload 0 /* this */
        16: .line 589
            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 588
            putfield sun.security.ssl.SSLSocketImpl.enabledProtocols:Lsun/security/ssl/ProtocolList;
        18: .line 591
            aload 0 /* this */
            aconst_null
            putfield sun.security.ssl.SSLSocketImpl.inrec:Lsun/security/ssl/InputRecord;
        19: .line 594
            aload 0 /* this */
            invokestatic java.security.AccessController.getContext:()Ljava/security/AccessControlContext;
            putfield sun.security.ssl.SSLSocketImpl.acc:Ljava/security/AccessControlContext;
        20: .line 596
            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 597
            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 598
            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 619
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.self:Ljava/net/Socket;
            aload 0 /* this */
            if_acmpeq 2
         1: .line 620
            new java.net.SocketException
            dup
            ldc "Already connected"
            invokespecial java.net.SocketException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 623
      StackMap locals:
      StackMap stack:
            aload 1 /* endpoint */
            instanceof java.net.InetSocketAddress
            ifne 6
         3: .line 624
            new java.net.SocketException
            dup
         4: .line 625
            ldc "Cannot handle non-Inet socket addresses."
         5: .line 624
            invokespecial java.net.SocketException.<init>:(Ljava/lang/String;)V
            athrow
         6: .line 628
      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 629
            aload 0 /* this */
            invokevirtual sun.security.ssl.SSLSocketImpl.doneConnect:()V
         8: .line 630
            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 643
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.self:Ljava/net/Socket;
            aload 0 /* this */
            if_acmpne 4
         1: .line 644
            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 645
            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 646
            goto 6
         4: .line 647
      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 648
            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 655
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual sun.security.ssl.SSLSocketImpl.initHandshaker:()V
         7: .line 656
            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 659
            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 663
            aload 0 /* this */
            iload 1 /* state */
            putfield sun.security.ssl.SSLSocketImpl.connectionState:I
         1: .line 664
            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 667
            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 682
            aload 0 /* this */
            aload 1 /* r */
            iconst_0
            invokevirtual sun.security.ssl.SSLSocketImpl.writeRecord:(Lsun/security/ssl/OutputRecord;Z)V
         1: .line 683
            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 697
            goto 13
         1: .line 703
      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 712
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual sun.security.ssl.SSLSocketImpl.performInitialHandshake:()V
         3: .line 713
            goto 13
         4: .line 717
      StackMap locals:
      StackMap stack:
            goto 14
         5: .line 720
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iconst_0
         6: .line 721
            ldc "error while writing to socket"
         7: .line 720
            invokevirtual sun.security.ssl.SSLSocketImpl.fatal:(BLjava/lang/String;)V
         8: .line 722
            goto 13
         9: .line 729
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.closeReason:Ljavax/net/ssl/SSLException;
            ifnull 11
        10: .line 730
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.closeReason:Ljavax/net/ssl/SSLException;
            athrow
        11: .line 732
      StackMap locals:
      StackMap stack:
            new java.net.SocketException
            dup
            ldc "Socket closed"
            invokespecial java.net.SocketException.<init>:(Ljava/lang/String;)V
            athrow
        12: .line 739
      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 697
      StackMap locals:
      StackMap stack:
            aload 1 /* r */
            invokevirtual sun.security.ssl.OutputRecord.contentType:()B
            bipush 23
            if_icmpeq 1
        14: .line 751
      StackMap locals:
      StackMap stack:
            aload 1 /* r */
            invokevirtual sun.security.ssl.OutputRecord.isEmpty:()Z
            ifne 49
        15: .line 756
            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 759
            invokestatic java.lang.Thread.interrupted:()Z
            istore 3 /* interrupted */
        start local 3 // boolean interrupted
        17: .line 761
            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 763
            aload 0 /* this */
            aload 1 /* r */
            iload 2 /* holdRecord */
            invokevirtual sun.security.ssl.SSLSocketImpl.writeRecordInternal:(Lsun/security/ssl/OutputRecord;Z)V
        19: .line 764
            goto 23
      StackMap locals: sun.security.ssl.SSLSocketImpl sun.security.ssl.OutputRecord int int
      StackMap stack: java.lang.Throwable
        20: astore 4
        21: .line 765
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.writeLock:Ljava/util/concurrent/locks/ReentrantLock;
            invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
        22: .line 766
            aload 4
            athrow
        23: .line 765
      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 767
            goto 39
        25: .line 768
      StackMap locals:
      StackMap stack:
            new javax.net.ssl.SSLException
            dup
        26: .line 769
            ldc "SO_LINGER timeout, close_notify message cannot be sent."
        27: .line 768
            invokespecial javax.net.ssl.SSLException.<init>:(Ljava/lang/String;)V
            astore 4 /* ssle */
        start local 4 // javax.net.ssl.SSLException ssle
        28: .line 776
            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 780
            aload 0 /* this */
            iconst_m1
            aload 4 /* ssle */
            invokevirtual sun.security.ssl.SSLSocketImpl.fatal:(BLjava/lang/Throwable;)V
        30: .line 781
            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 782
            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 783
            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 782
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
        35: .line 797
      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 799
            goto 39
      StackMap locals: sun.security.ssl.SSLSocketImpl sun.security.ssl.OutputRecord int int
      StackMap stack: java.lang.InterruptedException
        37: pop
        38: .line 801
            iconst_1
            istore 3 /* interrupted */
        39: .line 805
      StackMap locals:
      StackMap stack:
            iload 3 /* interrupted */
            ifeq 49
        40: .line 806
            invokestatic java.lang.Thread.currentThread:()Ljava/lang/Thread;
            invokevirtual java.lang.Thread.interrupt:()V
        end local 3 // boolean interrupted
        41: .line 808
            goto 49
        42: .line 809
      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 811
            aload 0 /* this */
            aload 1 /* r */
            iload 2 /* holdRecord */
            invokevirtual sun.security.ssl.SSLSocketImpl.writeRecordInternal:(Lsun/security/ssl/OutputRecord;Z)V
        44: .line 812
            goto 48
      StackMap locals:
      StackMap stack: java.lang.Throwable
        45: astore 3
        46: .line 813
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.writeLock:Ljava/util/concurrent/locks/ReentrantLock;
            invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
        47: .line 814
            aload 3
            athrow
        48: .line 813
      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 817
      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 822
            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 823
            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 825
            iload 2 /* holdRecord */
            ifeq 8
         3: .line 829
            aload 0 /* this */
            invokevirtual sun.security.ssl.SSLSocketImpl.getTcpNoDelay:()Z
            ifeq 6
         4: .line 830
            iconst_0
            istore 2 /* holdRecord */
         5: .line 831
            goto 8
         6: .line 834
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.heldRecordBuffer:Ljava/io/ByteArrayOutputStream;
            ifnonnull 8
         7: .line 836
            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 840
      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 853
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.connectionState:I
            iconst_4
            if_icmpge 11
        10: .line 854
            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 858
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.isFirstAppOutputRecord:Z
            ifeq 14
        12: .line 859
            aload 1 /* r */
            invokevirtual sun.security.ssl.OutputRecord.contentType:()B
            bipush 23
            if_icmpne 14
        13: .line 860
            aload 0 /* this */
            iconst_0
            putfield sun.security.ssl.SSLSocketImpl.isFirstAppOutputRecord:Z
        14: .line 862
      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 876
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.writeLock:Ljava/util/concurrent/locks/ReentrantLock;
            invokevirtual java.util.concurrent.locks.ReentrantLock.lock:()V
         1: .line 878
            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 879
            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 880
            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 882
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.writeLock:Ljava/util/concurrent/locks/ReentrantLock;
            invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
         7: .line 878
            iload 2
            ireturn
         8: .line 881
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 1
         9: .line 882
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.writeLock:Ljava/util/concurrent/locks/ReentrantLock;
            invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
        10: .line 883
            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 891
            aload 0 /* this */
            invokevirtual sun.security.ssl.SSLSocketImpl.getConnectionState:()I
            iconst_1
            if_icmpne 2
         1: .line 892
            aload 0 /* this */
            invokevirtual sun.security.ssl.SSLSocketImpl.performInitialHandshake:()V
         2: .line 894
      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 895
            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 921
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.readLock:Ljava/lang/Object;
            dup
            astore 4
            monitorenter
         1: .line 927
            goto 131
        start local 3 // int state
         2: .line 935
      StackMap locals: int java.lang.Object
      StackMap stack:
            aload 1 /* r */
            iconst_0
            invokevirtual sun.security.ssl.InputRecord.setAppDataValid:(Z)V
         3: .line 936
            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 937
            goto 37
      StackMap locals:
      StackMap stack: javax.net.ssl.SSLProtocolException
         5: astore 5 /* e */
        start local 5 // javax.net.ssl.SSLProtocolException e
         6: .line 939
            aload 0 /* this */
            bipush 10
            aload 5 /* e */
            invokevirtual sun.security.ssl.SSLSocketImpl.fatal:(BLjava/lang/Throwable;)V
         7: .line 940
            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 943
      StackMap locals:
      StackMap stack:
            aload 5 /* e */
            athrow
        end local 5 // javax.net.ssl.SSLProtocolException e
        10: .line 944
      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 945
            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 946
            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 947
            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 948
            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 949
            ldc ", received EOFException: "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        20: .line 950
            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 948
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
        24: .line 952
      StackMap locals:
      StackMap stack:
            iload 7 /* rethrow */
            ifeq 35
        25: .line 954
            iload 6 /* handshaking */
            ifeq 30
        26: .line 955
            new javax.net.ssl.SSLHandshakeException
            dup
        27: .line 956
            ldc "Remote host closed connection during handshake"
        28: .line 955
            invokespecial javax.net.ssl.SSLHandshakeException.<init>:(Ljava/lang/String;)V
            astore 8 /* e */
        start local 8 // javax.net.ssl.SSLException e
        29: .line 957
            goto 33
        end local 8 // javax.net.ssl.SSLException e
        30: .line 958
      StackMap locals:
      StackMap stack:
            new javax.net.ssl.SSLProtocolException
            dup
        31: .line 959
            ldc "Remote host closed connection incorrectly"
        32: .line 958
            invokespecial javax.net.ssl.SSLProtocolException.<init>:(Ljava/lang/String;)V
            astore 8 /* e */
        start local 8 // javax.net.ssl.SSLException e
        33: .line 961
      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 962
            aload 8 /* e */
            athrow
        end local 8 // javax.net.ssl.SSLException e
        35: .line 965
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iconst_0
            invokevirtual sun.security.ssl.SSLSocketImpl.closeInternal:(Z)V
        36: .line 966
            goto 131
        end local 7 // boolean rethrow
        end local 6 // boolean handshaking
        end local 5 // java.io.EOFException eof
        37: .line 978
      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 979
            goto 45
      StackMap locals:
      StackMap stack: javax.crypto.BadPaddingException
        39: astore 5 /* e */
        start local 5 // javax.crypto.BadPaddingException e
        40: .line 980
            aload 1 /* r */
            invokevirtual sun.security.ssl.InputRecord.contentType:()B
            bipush 22
            if_icmpne 42
        41: .line 981
            bipush 40
            goto 43
        42: .line 982
      StackMap locals: javax.crypto.BadPaddingException
      StackMap stack:
            bipush 20
        43: .line 980
      StackMap locals:
      StackMap stack: int
            istore 6 /* alertType */
        start local 6 // byte alertType
        44: .line 983
            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 993
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            dup
            astore 5
            monitorenter
        46: .line 994
            aload 1 /* r */
            invokevirtual sun.security.ssl.InputRecord.contentType:()B
            tableswitch { // 20 - 23
                   20: 100
                   21: 97
                   22: 47
                   23: 81
              default: 117
          }
        47: .line 1007
      StackMap locals: sun.security.ssl.SSLSocketImpl
      StackMap stack:
            aload 0 /* this */
            invokevirtual sun.security.ssl.SSLSocketImpl.initHandshaker:()V
        48: .line 1008
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.handshaker:Lsun/security/ssl/Handshaker;
            invokevirtual sun.security.ssl.Handshaker.activated:()Z
            ifne 53
        49: .line 1010
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.connectionState:I
            iconst_3
            if_icmpne 52
        50: .line 1012
            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 1013
            goto 53
        52: .line 1014
      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 1025
      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 1026
            aload 0 /* this */
            iconst_0
            putfield sun.security.ssl.SSLSocketImpl.expectingFinished:Z
        55: .line 1028
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.handshaker:Lsun/security/ssl/Handshaker;
            getfield sun.security.ssl.Handshaker.invalidated:Z
            ifeq 61
        56: .line 1029
            aload 0 /* this */
            aconst_null
            putfield sun.security.ssl.SSLSocketImpl.handshaker:Lsun/security/ssl/Handshaker;
        57: .line 1030
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.inrec:Lsun/security/ssl/InputRecord;
            aconst_null
            invokevirtual sun.security.ssl.InputRecord.setHandshakeHash:(Lsun/security/ssl/HandshakeHash;)V
        58: .line 1033
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.connectionState:I
            iconst_3
            if_icmpne 78
        59: .line 1034
            aload 0 /* this */
            iconst_2
            putfield sun.security.ssl.SSLSocketImpl.connectionState:I
        60: .line 1036
            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 1038
            aload 0 /* this */
        63: .line 1039
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.handshaker:Lsun/security/ssl/Handshaker;
            invokevirtual sun.security.ssl.Handshaker.isSecureRenegotiation:()Z
        64: .line 1038
            putfield sun.security.ssl.SSLSocketImpl.secureRenegotiation:Z
        65: .line 1040
            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 1041
            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 1043
            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 1044
            aload 0 /* this */
            aconst_null
            putfield sun.security.ssl.SSLSocketImpl.handshakeSession:Lsun/security/ssl/SSLSessionImpl;
        69: .line 1045
            aload 0 /* this */
            aconst_null
            putfield sun.security.ssl.SSLSocketImpl.handshaker:Lsun/security/ssl/Handshaker;
        70: .line 1046
            aload 0 /* this */
            iconst_2
            putfield sun.security.ssl.SSLSocketImpl.connectionState:I
        71: .line 1052
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.handshakeListeners:Ljava/util/HashMap;
            ifnull 78
        72: .line 1054
            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 1053
            astore 6 /* event */
        start local 6 // javax.net.ssl.HandshakeCompletedEvent event
        74: .line 1056
            new sun.security.ssl.SSLSocketImpl$NotifyHandshakeThread
            dup
        75: .line 1057
            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 1056
            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 1058
            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 1062
      StackMap locals:
      StackMap stack:
            iload 2 /* needAppData */
            ifne 79
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.connectionState:I
            iconst_2
            if_icmpeq 124
        79: .line 1063
      StackMap locals:
      StackMap stack:
            aload 5
            monitorexit
        80: goto 131
        81: .line 1069
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.connectionState:I
            iconst_2
            if_icmpeq 89
        82: .line 1070
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.connectionState:I
            iconst_3
            if_icmpeq 89
        83: .line 1071
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.connectionState:I
            iconst_5
            if_icmpeq 89
        84: .line 1072
            new javax.net.ssl.SSLProtocolException
            dup
        85: .line 1073
            new java.lang.StringBuilder
            dup
            ldc "Data received in non-data state: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
        86: .line 1074
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.connectionState:I
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
        87: .line 1073
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        88: .line 1072
            invokespecial javax.net.ssl.SSLProtocolException.<init>:(Ljava/lang/String;)V
            athrow
        89: .line 1076
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.expectingFinished:Z
            ifeq 93
        90: .line 1077
            new javax.net.ssl.SSLProtocolException
            dup
        91: .line 1078
            ldc "Expecting finished message, received data"
        92: .line 1077
            invokespecial javax.net.ssl.SSLProtocolException.<init>:(Ljava/lang/String;)V
            athrow
        93: .line 1080
      StackMap locals:
      StackMap stack:
            iload 2 /* needAppData */
            ifne 95
        94: .line 1081
            new javax.net.ssl.SSLException
            dup
            ldc "Discarding app data"
            invokespecial javax.net.ssl.SSLException.<init>:(Ljava/lang/String;)V
            athrow
        95: .line 1084
      StackMap locals:
      StackMap stack:
            aload 1 /* r */
            iconst_1
            invokevirtual sun.security.ssl.InputRecord.setAppDataValid:(Z)V
        96: .line 1085
            goto 124
        97: .line 1088
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* r */
            invokevirtual sun.security.ssl.SSLSocketImpl.recvAlert:(Lsun/security/ssl/InputRecord;)V
        98: .line 1089
            aload 5
            monitorexit
        99: goto 131
       100: .line 1092
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.connectionState:I
            iconst_1
            if_icmpeq 108
       101: .line 1093
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.connectionState:I
            iconst_3
            if_icmpeq 108
       102: .line 1095
            aload 0 /* this */
            bipush 10
       103: .line 1096
            new java.lang.StringBuilder
            dup
            ldc "illegal change cipher spec msg, conn state = "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
       104: .line 1097
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.connectionState:I
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
       105: .line 1096
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
       106: .line 1095
            invokevirtual sun.security.ssl.SSLSocketImpl.fatal:(BLjava/lang/String;)V
       107: .line 1098
            goto 112
      StackMap locals:
      StackMap stack:
       108: aload 1 /* r */
            invokevirtual sun.security.ssl.InputRecord.available:()I
            iconst_1
            if_icmpne 109
            aload 1 /* r */
            invokevirtual sun.security.ssl.InputRecord.read:()I
            iconst_1
            if_icmpeq 112
       109: .line 1100
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            bipush 10
       110: .line 1101
            ldc "Malformed change cipher spec msg"
       111: .line 1100
            invokevirtual sun.security.ssl.SSLSocketImpl.fatal:(BLjava/lang/String;)V
       112: .line 1111
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.handshaker:Lsun/security/ssl/Handshaker;
            invokevirtual sun.security.ssl.Handshaker.receiveChangeCipherSpec:()V
       113: .line 1112
            aload 0 /* this */
            invokevirtual sun.security.ssl.SSLSocketImpl.changeReadCiphers:()V
       114: .line 1114
            aload 0 /* this */
            iconst_1
            putfield sun.security.ssl.SSLSocketImpl.expectingFinished:Z
       115: .line 1115
            aload 5
            monitorexit
       116: goto 131
       117: .line 1121
      StackMap locals:
      StackMap stack:
            getstatic sun.security.ssl.SSLSocketImpl.debug:Lsun/security/ssl/Debug;
            ifnull 122
            ldc "ssl"
            invokestatic sun.security.ssl.Debug.isOn:(Ljava/lang/String;)Z
            ifeq 122
       118: .line 1122
            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
       119: .line 1123
            ldc ", Received record type: "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
       120: .line 1124
            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;
       121: .line 1122
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
       122: .line 1126
      StackMap locals:
      StackMap stack:
            aload 5
            monitorexit
       123: goto 131
       124: .line 1140
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.connectionState:I
            iconst_4
            if_icmpge 126
       125: .line 1141
            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
       126: .line 1144
      StackMap locals:
      StackMap stack:
            aload 5
            monitorexit
       127: aload 4
            monitorexit
       128: return
       129: .line 993
      StackMap locals:
      StackMap stack: java.lang.Throwable
            aload 5
            monitorexit
       130: athrow
        end local 3 // int state
       131: .line 927
      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
       132: bipush 6
            if_icmpeq 134
       133: .line 928
            iload 3 /* state */
            iconst_4
            if_icmpeq 134
            iload 3 /* state */
            bipush 7
            if_icmpne 2
       134: .line 1151
      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
       135: .line 1152
            aload 4
            monitorexit
       136: return
        end local 3 // int state
       137: .line 921
      StackMap locals: sun.security.ssl.SSLSocketImpl sun.security.ssl.InputRecord int top java.lang.Object
      StackMap stack: java.lang.Throwable
            aload 4
            monitorexit
       138: 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  139     0         this  Lsun/security/ssl/SSLSocketImpl;
            0  139     1            r  Lsun/security/ssl/InputRecord;
            0  139     2  needAppData  Z
            2  131     3        state  I
          132  137     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     129  any
          81    99     129  any
         100   116     129  any
         117   123     129  any
         124   127     129  any
         129   130     129  any
           1   128     137  any
         129   136     137  any
         137   138     137  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 1171
            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 1172
      StackMap locals:
      StackMap stack:
            return
         2: .line 1179
      StackMap locals:
      StackMap stack:
            aload 1 /* mac */
            invokevirtual sun.security.ssl.MAC.seqNumOverflow:()Z
            ifeq 9
         3: .line 1185
            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 1186
            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 1187
            ldc ", sequence number extremely close to overflow "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
         6: .line 1188
            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 1186
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
         8: .line 1192
      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 1201
      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 1202
            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 1203
            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 1204
            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 1203
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
        14: .line 1207
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual sun.security.ssl.SSLSocketImpl.startHandshake:()V
        15: .line 1209
      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 1219
            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 1226
            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 1246
            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 1253
      StackMap locals:
      StackMap stack:
            goto 4
         2: .line 1260
      StackMap locals:
      StackMap stack:
            return
         3: .line 1267
      StackMap locals:
      StackMap stack:
            new java.lang.IllegalStateException
            dup
            ldc "Internal error"
            invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
            athrow
         4: .line 1271
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.connectionState:I
            ifne 7
         5: .line 1272
            aload 0 /* this */
            iconst_1
            putfield sun.security.ssl.SSLSocketImpl.connectionState:I
         6: .line 1273
            goto 8
         7: .line 1274
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iconst_3
            putfield sun.security.ssl.SSLSocketImpl.connectionState:I
         8: .line 1276
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.roleIsServer:Z
            ifeq 17
         9: .line 1277
            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 1278
            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 1279
            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 1280
      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 1277
            putfield sun.security.ssl.SSLSocketImpl.handshaker:Lsun/security/ssl/Handshaker;
        16: .line 1281
            goto 24
        17: .line 1282
      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 1283
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.enabledProtocols:Lsun/security/ssl/ProtocolList;
        20: .line 1284
            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 1285
      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 1282
            putfield sun.security.ssl.SSLSocketImpl.handshaker:Lsun/security/ssl/Handshaker;
        24: .line 1287
      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 1288
            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 1289
            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 1301
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.handshakeLock:Ljava/lang/Object;
            dup
            astore 1
            monitorenter
         1: .line 1302
            aload 0 /* this */
            invokevirtual sun.security.ssl.SSLSocketImpl.getConnectionState:()I
            iconst_1
            if_icmpne 10
         2: .line 1303
            aload 0 /* this */
            invokevirtual sun.security.ssl.SSLSocketImpl.kickstartHandshake:()V
         3: .line 1311
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.inrec:Lsun/security/ssl/InputRecord;
            ifnonnull 8
         4: .line 1312
            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 1319
            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 1320
            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 1321
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.inrec:Lsun/security/ssl/InputRecord;
            invokevirtual sun.security.ssl.InputRecord.enableFormatChecks:()V
         8: .line 1324
      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 1325
            aload 0 /* this */
            aconst_null
            putfield sun.security.ssl.SSLSocketImpl.inrec:Lsun/security/ssl/InputRecord;
        10: .line 1301
      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 1328
      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 1335
            aload 0 /* this */
            iconst_1
            invokevirtual sun.security.ssl.SSLSocketImpl.startHandshake:(Z)V
         1: .line 1336
            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 1347
            aload 0 /* this */
            invokevirtual sun.security.ssl.SSLSocketImpl.checkWrite:()V
         1: .line 1349
            aload 0 /* this */
            invokevirtual sun.security.ssl.SSLSocketImpl.getConnectionState:()I
            iconst_1
            if_icmpne 4
         2: .line 1351
            aload 0 /* this */
            invokevirtual sun.security.ssl.SSLSocketImpl.performInitialHandshake:()V
         3: .line 1352
            goto 8
         4: .line 1354
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual sun.security.ssl.SSLSocketImpl.kickstartHandshake:()V
         5: .line 1356
            goto 8
      StackMap locals:
      StackMap stack: java.lang.Exception
         6: astore 2 /* e */
        start local 2 // java.lang.Exception e
         7: .line 1358
            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 1360
      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 1378
            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 1382
      StackMap locals:
      StackMap stack:
            goto 18
         2: .line 1385
      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 1386
            new javax.net.ssl.SSLHandshakeException
            dup
         4: .line 1387
            ldc "Insecure renegotiation is not allowed"
         5: .line 1386
            invokespecial javax.net.ssl.SSLHandshakeException.<init>:(Ljava/lang/String;)V
            athrow
         6: .line 1390
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.secureRenegotiation:Z
            ifne 11
         7: .line 1391
            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 1392
            getstatic java.lang.System.out:Ljava/io/PrintStream;
         9: .line 1393
            ldc "Warning: Using insecure renegotiation"
        10: .line 1392
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
        11: .line 1398
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual sun.security.ssl.SSLSocketImpl.initHandshaker:()V
        12: .line 1399
            goto 18
        13: .line 1403
      StackMap locals:
      StackMap stack:
            return
        14: .line 1410
      StackMap locals:
      StackMap stack:
            new java.net.SocketException
            dup
        15: .line 1411
            ldc "handshaking attempted on unconnected socket"
        16: .line 1410
            invokespecial java.net.SocketException.<init>:(Ljava/lang/String;)V
            athrow
        17: .line 1414
      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 1424
      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 1426
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.connectionState:I
            iconst_3
            if_icmpne 22
        20: .line 1428
            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 1429
            goto 23
        22: .line 1430
      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 1433
      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 1435
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.handshaker:Lsun/security/ssl/Handshaker;
            invokevirtual sun.security.ssl.Handshaker.kickstart:()V
        25: .line 1436
            goto 29
        26: .line 1437
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.connectionState:I
            iconst_1
            if_icmpeq 29
        27: .line 1441
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.handshaker:Lsun/security/ssl/Handshaker;
            invokevirtual sun.security.ssl.Handshaker.kickstart:()V
        28: .line 1444
            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 1448
      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 1458
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.connectionState:I
            bipush 7
            if_icmpne 1
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         1: iconst_0
            ireturn
        end local 0 // sun.security.ssl.SSLSocketImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lsun/security/ssl/SSLSocketImpl;

  boolean checkEOF();
    descriptor: ()Z
    flags: (0x0000) 
    Code:
      stack=5, locals=2, args_size=1
        start local 0 // sun.security.ssl.SSLSocketImpl this
         0: .line 1468
            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 1470
      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 1476
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
         3: .line 1479
      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 1485
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.closeReason:Ljavax/net/ssl/SSLException;
            ifnonnull 6
         5: .line 1486
            iconst_1
            ireturn
         6: .line 1488
      StackMap locals:
      StackMap stack:
            new javax.net.ssl.SSLException
            dup
         7: .line 1489
            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 1488
            invokespecial javax.net.ssl.SSLException.<init>:(Ljava/lang/String;)V
            astore 1 /* e */
        start local 1 // java.io.IOException e
         9: .line 1490
            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 1491
            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 1500
            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 1502
      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 1504
      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 1508
            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 1509
            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 1511
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.self:Ljava/net/Socket;
            aload 0 /* this */
            if_acmpne 5
         3: .line 1512
            aload 0 /* this */
            invokespecial sun.security.ssl.BaseSSLSocketImpl.close:()V
         4: .line 1513
            goto 6
         5: .line 1514
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.self:Ljava/net/Socket;
            invokevirtual java.net.Socket.close:()V
         6: .line 1516
      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

  private void closeSocket(boolean);
    descriptor: (Z)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // sun.security.ssl.SSLSocketImpl this
        start local 1 // boolean selfInitiated
         0: .line 1519
            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 1520
            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(selfInitiated)"
            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 1522
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.self:Ljava/net/Socket;
            aload 0 /* this */
            if_acmpne 5
         3: .line 1523
            aload 0 /* this */
            invokespecial sun.security.ssl.BaseSSLSocketImpl.close:()V
         4: .line 1524
            goto 10
      StackMap locals:
      StackMap stack:
         5: aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.autoClose:Z
            ifeq 8
         6: .line 1525
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.self:Ljava/net/Socket;
            invokevirtual java.net.Socket.close:()V
         7: .line 1526
            goto 10
      StackMap locals:
      StackMap stack:
         8: iload 1 /* selfInitiated */
            ifeq 10
         9: .line 1529
            aload 0 /* this */
            iconst_0
            invokevirtual sun.security.ssl.SSLSocketImpl.waitForClose:(Z)V
        10: .line 1531
      StackMap locals:
      StackMap stack:
            return
        end local 1 // boolean selfInitiated
        end local 0 // sun.security.ssl.SSLSocketImpl this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0   11     0           this  Lsun/security/ssl/SSLSocketImpl;
            0   11     1  selfInitiated  Z
    Exceptions:
      throws java.io.IOException
    MethodParameters:
               Name  Flags
      selfInitiated  

  public void close();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=1, args_size=1
        start local 0 // sun.security.ssl.SSLSocketImpl this
         0: .line 1547
            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 1548
            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 1550
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iconst_1
            invokevirtual sun.security.ssl.SSLSocketImpl.closeInternal:(Z)V
         3: .line 1551
            aload 0 /* this */
            bipush 7
            invokevirtual sun.security.ssl.SSLSocketImpl.setConnectionState:(I)V
         4: .line 1552
            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=9, args_size=2
        start local 0 // sun.security.ssl.SSLSocketImpl this
        start local 1 // boolean selfInitiated
         0: .line 1565
            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 1566
            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 1567
            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 1566
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
         4: .line 1570
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual sun.security.ssl.SSLSocketImpl.getConnectionState:()I
            istore 2 /* state */
        start local 2 // int state
         5: .line 1571
            iconst_0
            istore 3 /* closeSocketCalled */
        start local 3 // boolean closeSocketCalled
         6: .line 1572
            aconst_null
            astore 4 /* cachedThrowable */
        start local 4 // java.lang.Throwable cachedThrowable
         7: .line 1574
            iload 2 /* state */
            tableswitch { // 0 - 7
                    0: 8
                    1: 13
                    2: 13
                    3: 13
                    4: 10
                    5: 13
                    6: 12
                    7: 12
              default: 13
          }
         8: .line 1577
      StackMap locals: int int java.lang.Throwable
      StackMap stack:
            aload 0 /* this */
            iload 1 /* selfInitiated */
            invokevirtual sun.security.ssl.SSLSocketImpl.closeSocket:(Z)V
         9: .line 1578
            goto 129
        10: .line 1587
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual sun.security.ssl.SSLSocketImpl.closeSocket:()V
        11: .line 1588
            goto 129
        12: .line 1595
      StackMap locals:
      StackMap stack:
            goto 129
        13: .line 1605
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            dup
            astore 5
            monitorenter
        14: .line 1606
            aload 0 /* this */
            invokevirtual sun.security.ssl.SSLSocketImpl.getConnectionState:()I
            dup
            istore 2 /* state */
            bipush 6
            if_icmpeq 16
        15: .line 1607
            iload 2 /* state */
            iconst_4
            if_icmpeq 16
            iload 2 /* state */
            bipush 7
            if_icmpne 35
        16: .line 1608
      StackMap locals: sun.security.ssl.SSLSocketImpl
      StackMap stack:
            aload 5
            monitorexit
        17: .line 1667
            aload 0 /* this */
            dup
            astore 8
            monitorenter
        18: .line 1669
            aload 0 /* this */
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.connectionState:I
            bipush 7
            if_icmpne 20
        19: .line 1670
            bipush 7
            goto 21
      StackMap locals: sun.security.ssl.SSLSocketImpl int int int java.lang.Throwable sun.security.ssl.SSLSocketImpl top top sun.security.ssl.SSLSocketImpl
      StackMap stack: sun.security.ssl.SSLSocketImpl
        20: bipush 6
        21: .line 1669
      StackMap locals: sun.security.ssl.SSLSocketImpl int int int java.lang.Throwable sun.security.ssl.SSLSocketImpl top top sun.security.ssl.SSLSocketImpl
      StackMap stack: sun.security.ssl.SSLSocketImpl int
            putfield sun.security.ssl.SSLSocketImpl.connectionState:I
        22: .line 1672
            aload 0 /* this */
            invokevirtual java.lang.Object.notifyAll:()V
        23: .line 1667
            aload 8
            monitorexit
        24: goto 27
      StackMap locals:
      StackMap stack: java.lang.Throwable
        25: aload 8
            monitorexit
        26: athrow
        27: .line 1674
      StackMap locals: sun.security.ssl.SSLSocketImpl int int int java.lang.Throwable sun.security.ssl.SSLSocketImpl
      StackMap stack:
            iload 3 /* closeSocketCalled */
            ifeq 29
        28: .line 1676
            aload 0 /* this */
            invokevirtual sun.security.ssl.SSLSocketImpl.disposeCiphers:()V
        29: .line 1678
      StackMap locals:
      StackMap stack:
            aload 4 /* cachedThrowable */
            ifnull 34
        30: .line 1683
            aload 4 /* cachedThrowable */
            instanceof java.lang.Error
            ifeq 32
        31: .line 1684
            aload 4 /* cachedThrowable */
            checkcast java.lang.Error
            athrow
        32: .line 1685
      StackMap locals:
      StackMap stack:
            aload 4 /* cachedThrowable */
            instanceof java.lang.RuntimeException
            ifeq 34
        33: .line 1686
            aload 4 /* cachedThrowable */
            checkcast java.lang.RuntimeException
            athrow
      StackMap locals:
      StackMap stack:
        34: return
        35: .line 1610
      StackMap locals:
      StackMap stack:
            iload 2 /* state */
            iconst_5
            if_icmpeq 44
        36: .line 1612
            aload 0 /* this */
            iconst_0
            invokevirtual sun.security.ssl.SSLSocketImpl.warning:(B)V
        37: .line 1613
            aload 0 /* this */
            iconst_5
            putfield sun.security.ssl.SSLSocketImpl.connectionState:I
        38: .line 1614
            goto 44
      StackMap locals:
      StackMap stack: java.lang.Throwable
        39: astore 6 /* th */
        start local 6 // java.lang.Throwable th
        40: .line 1617
            aload 0 /* this */
            iconst_4
            putfield sun.security.ssl.SSLSocketImpl.connectionState:I
        41: .line 1619
            aload 6 /* th */
            astore 4 /* cachedThrowable */
        42: .line 1620
            iconst_1
            istore 3 /* closeSocketCalled */
        43: .line 1621
            aload 0 /* this */
            iload 1 /* selfInitiated */
            invokevirtual sun.security.ssl.SSLSocketImpl.closeSocket:(Z)V
        end local 6 // java.lang.Throwable th
        44: .line 1605
      StackMap locals:
      StackMap stack:
            aload 5
            monitorexit
        45: goto 48
      StackMap locals:
      StackMap stack: java.lang.Throwable
        46: aload 5
            monitorexit
        47: athrow
        48: .line 1627
      StackMap locals:
      StackMap stack:
            iload 2 /* state */
            iconst_5
            if_icmpne 106
        49: .line 1628
            getstatic sun.security.ssl.SSLSocketImpl.debug:Lsun/security/ssl/Debug;
            ifnull 54
            ldc "ssl"
            invokestatic sun.security.ssl.Debug.isOn:(Ljava/lang/String;)Z
            ifeq 54
        50: .line 1629
            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
        51: .line 1630
            ldc ", close invoked again; state = "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        52: .line 1631
            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;
        53: .line 1629
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
        54: .line 1633
      StackMap locals:
      StackMap stack:
            iload 1 /* selfInitiated */
            ifne 73
        55: .line 1667
            aload 0 /* this */
            dup
            astore 8
            monitorenter
        56: .line 1669
            aload 0 /* this */
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.connectionState:I
            bipush 7
            if_icmpne 58
        57: .line 1670
            bipush 7
            goto 59
      StackMap locals: sun.security.ssl.SSLSocketImpl int int int java.lang.Throwable top top top sun.security.ssl.SSLSocketImpl
      StackMap stack: sun.security.ssl.SSLSocketImpl
        58: bipush 6
        59: .line 1669
      StackMap locals: sun.security.ssl.SSLSocketImpl int int int java.lang.Throwable top top top sun.security.ssl.SSLSocketImpl
      StackMap stack: sun.security.ssl.SSLSocketImpl int
            putfield sun.security.ssl.SSLSocketImpl.connectionState:I
        60: .line 1672
            aload 0 /* this */
            invokevirtual java.lang.Object.notifyAll:()V
        61: .line 1667
            aload 8
            monitorexit
        62: goto 65
      StackMap locals:
      StackMap stack: java.lang.Throwable
        63: aload 8
            monitorexit
        64: athrow
        65: .line 1674
      StackMap locals: sun.security.ssl.SSLSocketImpl int int int java.lang.Throwable
      StackMap stack:
            iload 3 /* closeSocketCalled */
            ifeq 67
        66: .line 1676
            aload 0 /* this */
            invokevirtual sun.security.ssl.SSLSocketImpl.disposeCiphers:()V
        67: .line 1678
      StackMap locals:
      StackMap stack:
            aload 4 /* cachedThrowable */
            ifnull 72
        68: .line 1683
            aload 4 /* cachedThrowable */
            instanceof java.lang.Error
            ifeq 70
        69: .line 1684
            aload 4 /* cachedThrowable */
            checkcast java.lang.Error
            athrow
        70: .line 1685
      StackMap locals:
      StackMap stack:
            aload 4 /* cachedThrowable */
            instanceof java.lang.RuntimeException
            ifeq 72
        71: .line 1686
            aload 4 /* cachedThrowable */
            checkcast java.lang.RuntimeException
            athrow
        72: .line 1638
      StackMap locals:
      StackMap stack:
            return
        73: .line 1642
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            dup
            astore 5
            monitorenter
        74: .line 1643
            goto 78
        75: .line 1645
      StackMap locals: sun.security.ssl.SSLSocketImpl
      StackMap stack:
            aload 0 /* this */
            invokevirtual java.lang.Object.wait:()V
        76: .line 1646
            goto 78
      StackMap locals:
      StackMap stack: java.lang.InterruptedException
        77: pop
        78: .line 1643
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.connectionState:I
            bipush 6
            if_icmplt 75
        79: .line 1642
            aload 5
            monitorexit
        80: goto 83
      StackMap locals:
      StackMap stack: java.lang.Throwable
        81: aload 5
            monitorexit
        82: athrow
        83: .line 1651
      StackMap locals:
      StackMap stack:
            getstatic sun.security.ssl.SSLSocketImpl.debug:Lsun/security/ssl/Debug;
            ifnull 88
            ldc "ssl"
            invokestatic sun.security.ssl.Debug.isOn:(Ljava/lang/String;)Z
            ifeq 88
        84: .line 1652
            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
        85: .line 1653
            ldc ", after primary close; state = "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        86: .line 1654
            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;
        87: .line 1652
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
        88: .line 1667
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            dup
            astore 8
            monitorenter
        89: .line 1669
            aload 0 /* this */
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.connectionState:I
            bipush 7
            if_icmpne 91
        90: .line 1670
            bipush 7
            goto 92
      StackMap locals: sun.security.ssl.SSLSocketImpl int int int java.lang.Throwable top top top sun.security.ssl.SSLSocketImpl
      StackMap stack: sun.security.ssl.SSLSocketImpl
        91: bipush 6
        92: .line 1669
      StackMap locals: sun.security.ssl.SSLSocketImpl int int int java.lang.Throwable top top top sun.security.ssl.SSLSocketImpl
      StackMap stack: sun.security.ssl.SSLSocketImpl int
            putfield sun.security.ssl.SSLSocketImpl.connectionState:I
        93: .line 1672
            aload 0 /* this */
            invokevirtual java.lang.Object.notifyAll:()V
        94: .line 1667
            aload 8
            monitorexit
        95: goto 98
      StackMap locals:
      StackMap stack: java.lang.Throwable
        96: aload 8
            monitorexit
        97: athrow
        98: .line 1674
      StackMap locals: sun.security.ssl.SSLSocketImpl int int int java.lang.Throwable
      StackMap stack:
            iload 3 /* closeSocketCalled */
            ifeq 100
        99: .line 1676
            aload 0 /* this */
            invokevirtual sun.security.ssl.SSLSocketImpl.disposeCiphers:()V
       100: .line 1678
      StackMap locals:
      StackMap stack:
            aload 4 /* cachedThrowable */
            ifnull 105
       101: .line 1683
            aload 4 /* cachedThrowable */
            instanceof java.lang.Error
            ifeq 103
       102: .line 1684
            aload 4 /* cachedThrowable */
            checkcast java.lang.Error
            athrow
       103: .line 1685
      StackMap locals:
      StackMap stack:
            aload 4 /* cachedThrowable */
            instanceof java.lang.RuntimeException
            ifeq 105
       104: .line 1686
            aload 4 /* cachedThrowable */
            checkcast java.lang.RuntimeException
            athrow
       105: .line 1656
      StackMap locals:
      StackMap stack:
            return
       106: .line 1659
      StackMap locals:
      StackMap stack:
            iload 3 /* closeSocketCalled */
            ifne 129
       107: .line 1660
            iconst_1
            istore 3 /* closeSocketCalled */
       108: .line 1661
            aload 0 /* this */
            iload 1 /* selfInitiated */
            invokevirtual sun.security.ssl.SSLSocketImpl.closeSocket:(Z)V
       109: .line 1666
            goto 129
      StackMap locals:
      StackMap stack: java.lang.Throwable
       110: astore 7
       111: .line 1667
            aload 0 /* this */
            dup
            astore 8
            monitorenter
       112: .line 1669
            aload 0 /* this */
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.connectionState:I
            bipush 7
            if_icmpne 114
       113: .line 1670
            bipush 7
            goto 115
      StackMap locals: sun.security.ssl.SSLSocketImpl int int int java.lang.Throwable top top java.lang.Throwable sun.security.ssl.SSLSocketImpl
      StackMap stack: sun.security.ssl.SSLSocketImpl
       114: bipush 6
       115: .line 1669
      StackMap locals: sun.security.ssl.SSLSocketImpl int int int java.lang.Throwable top top java.lang.Throwable sun.security.ssl.SSLSocketImpl
      StackMap stack: sun.security.ssl.SSLSocketImpl int
            putfield sun.security.ssl.SSLSocketImpl.connectionState:I
       116: .line 1672
            aload 0 /* this */
            invokevirtual java.lang.Object.notifyAll:()V
       117: .line 1667
            aload 8
            monitorexit
       118: goto 121
      StackMap locals:
      StackMap stack: java.lang.Throwable
       119: aload 8
            monitorexit
       120: athrow
       121: .line 1674
      StackMap locals:
      StackMap stack:
            iload 3 /* closeSocketCalled */
            ifeq 123
       122: .line 1676
            aload 0 /* this */
            invokevirtual sun.security.ssl.SSLSocketImpl.disposeCiphers:()V
       123: .line 1678
      StackMap locals:
      StackMap stack:
            aload 4 /* cachedThrowable */
            ifnull 128
       124: .line 1683
            aload 4 /* cachedThrowable */
            instanceof java.lang.Error
            ifeq 126
       125: .line 1684
            aload 4 /* cachedThrowable */
            checkcast java.lang.Error
            athrow
       126: .line 1685
      StackMap locals:
      StackMap stack:
            aload 4 /* cachedThrowable */
            instanceof java.lang.RuntimeException
            ifeq 128
       127: .line 1686
            aload 4 /* cachedThrowable */
            checkcast java.lang.RuntimeException
            athrow
       128: .line 1688
      StackMap locals:
      StackMap stack:
            aload 7
            athrow
       129: .line 1667
      StackMap locals: sun.security.ssl.SSLSocketImpl int int int java.lang.Throwable
      StackMap stack:
            aload 0 /* this */
            dup
            astore 8
            monitorenter
       130: .line 1669
            aload 0 /* this */
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.connectionState:I
            bipush 7
            if_icmpne 132
       131: .line 1670
            bipush 7
            goto 133
      StackMap locals: sun.security.ssl.SSLSocketImpl int int int java.lang.Throwable top top top sun.security.ssl.SSLSocketImpl
      StackMap stack: sun.security.ssl.SSLSocketImpl
       132: bipush 6
       133: .line 1669
      StackMap locals: sun.security.ssl.SSLSocketImpl int int int java.lang.Throwable top top top sun.security.ssl.SSLSocketImpl
      StackMap stack: sun.security.ssl.SSLSocketImpl int
            putfield sun.security.ssl.SSLSocketImpl.connectionState:I
       134: .line 1672
            aload 0 /* this */
            invokevirtual java.lang.Object.notifyAll:()V
       135: .line 1667
            aload 8
            monitorexit
       136: goto 139
      StackMap locals:
      StackMap stack: java.lang.Throwable
       137: aload 8
            monitorexit
       138: athrow
       139: .line 1674
      StackMap locals: sun.security.ssl.SSLSocketImpl int int int java.lang.Throwable
      StackMap stack:
            iload 3 /* closeSocketCalled */
            ifeq 141
       140: .line 1676
            aload 0 /* this */
            invokevirtual sun.security.ssl.SSLSocketImpl.disposeCiphers:()V
       141: .line 1678
      StackMap locals:
      StackMap stack:
            aload 4 /* cachedThrowable */
            ifnull 146
       142: .line 1683
            aload 4 /* cachedThrowable */
            instanceof java.lang.Error
            ifeq 144
       143: .line 1684
            aload 4 /* cachedThrowable */
            checkcast java.lang.Error
            athrow
       144: .line 1685
      StackMap locals:
      StackMap stack:
            aload 4 /* cachedThrowable */
            instanceof java.lang.RuntimeException
            ifeq 146
       145: .line 1686
            aload 4 /* cachedThrowable */
            checkcast java.lang.RuntimeException
            athrow
       146: .line 1689
      StackMap locals:
      StackMap stack:
            return
        end local 4 // java.lang.Throwable cachedThrowable
        end local 3 // boolean closeSocketCalled
        end local 2 // int state
        end local 1 // boolean selfInitiated
        end local 0 // sun.security.ssl.SSLSocketImpl this
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0  147     0               this  Lsun/security/ssl/SSLSocketImpl;
            0  147     1      selfInitiated  Z
            5  147     2              state  I
            6  147     3  closeSocketCalled  Z
            7  147     4    cachedThrowable  Ljava/lang/Throwable;
           40   44     6                 th  Ljava/lang/Throwable;
      Exception table:
        from    to  target  type
          18    24      25  any
          25    26      25  any
          36    38      39  Class java.lang.Throwable
          14    17      46  any
          35    45      46  any
          46    47      46  any
          56    62      63  any
          63    64      63  any
          75    76      77  Class java.lang.InterruptedException
          74    80      81  any
          81    82      81  any
          89    95      96  any
          96    97      96  any
           7    17     110  any
          35    55     110  any
          73    88     110  any
         106   110     110  any
         112   118     119  any
         119   120     119  any
         130   136     137  any
         137   138     137  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 1699
            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 1700
            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 1701
            ldc ", waiting for close_notify or alert: state "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
         3: .line 1702
            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 1700
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
         5: .line 1708
            goto 11
        start local 2 // int state
         6: .line 1711
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.inrec:Lsun/security/ssl/InputRecord;
            ifnonnull 8
         7: .line 1712
            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 1717
      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 1718
            goto 11
      StackMap locals:
      StackMap stack: java.net.SocketTimeoutException
        10: pop
        end local 2 // int state
        11: .line 1708
      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 1709
            iload 2 /* state */
            iconst_4
            if_icmpeq 14
            iload 2 /* state */
            bipush 7
            if_icmpne 6
        14: .line 1722
      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 1723
            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 1724
            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 1725
            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 1726
            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 1725
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
        21: .line 1728
      StackMap locals: java.io.IOException
      StackMap stack:
            iload 1 /* rethrow */
            ifeq 23
        22: .line 1729
            aload 2 /* e */
            athrow
        end local 2 // java.io.IOException e
        23: .line 1732
      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  

  private void disposeCiphers();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=2, args_size=1
        start local 0 // sun.security.ssl.SSLSocketImpl this
         0: .line 1740
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.readLock:Ljava/lang/Object;
            dup
            astore 1
            monitorenter
         1: .line 1741
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.readCipher:Lsun/security/ssl/CipherBox;
            invokevirtual sun.security.ssl.CipherBox.dispose:()V
         2: .line 1740
            aload 1
            monitorexit
         3: goto 6
      StackMap locals: sun.security.ssl.SSLSocketImpl java.lang.Object
      StackMap stack: java.lang.Throwable
         4: aload 1
            monitorexit
         5: athrow
         6: .line 1744
      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
         7: .line 1746
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.writeCipher:Lsun/security/ssl/CipherBox;
            invokevirtual sun.security.ssl.CipherBox.dispose:()V
         8: .line 1747
            goto 12
      StackMap locals:
      StackMap stack: java.lang.Throwable
         9: astore 1
        10: .line 1748
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.writeLock:Ljava/util/concurrent/locks/ReentrantLock;
            invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
        11: .line 1749
            aload 1
            athrow
        12: .line 1748
      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
        13: .line 1750
            return
        end local 0 // sun.security.ssl.SSLSocketImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   14     0  this  Lsun/security/ssl/SSLSocketImpl;
      Exception table:
        from    to  target  type
           1     3       4  any
           4     5       4  any
           7     9       9  any

  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 1763
            aload 0 /* this */
            aload 1 /* e */
            iconst_1
            invokevirtual sun.security.ssl.SSLSocketImpl.handleException:(Ljava/lang/Exception;Z)V
         1: .line 1764
            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 1786
            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 1787
            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 1788
            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 1787
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
         4: .line 1793
      StackMap locals:
      StackMap stack:
            aload 1 /* e */
            instanceof java.io.InterruptedIOException
            ifeq 6
            iload 2 /* resumable */
            ifeq 6
         5: .line 1794
            aload 1 /* e */
            checkcast java.io.IOException
            athrow
         6: .line 1799
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.closeReason:Ljavax/net/ssl/SSLException;
            ifnull 12
         7: .line 1800
            aload 1 /* e */
            instanceof java.io.IOException
            ifeq 9
         8: .line 1801
            aload 1 /* e */
            checkcast java.io.IOException
            athrow
         9: .line 1806
      StackMap locals:
      StackMap stack:
            bipush 80
            aload 1 /* e */
        10: .line 1807
            ldc "Unexpected exception"
        11: .line 1806
            invokestatic sun.security.ssl.Alerts.getSSLException:(BLjava/lang/Throwable;Ljava/lang/String;)Ljavax/net/ssl/SSLException;
            athrow
        12: .line 1812
      StackMap locals:
      StackMap stack:
            aload 1 /* e */
            instanceof javax.net.ssl.SSLException
            istore 3 /* isSSLException */
        start local 3 // boolean isSSLException
        13: .line 1813
            iload 3 /* isSSLException */
            ifne 18
            aload 1 /* e */
            instanceof java.io.IOException
            ifeq 18
        14: .line 1818
            aload 0 /* this */
            bipush 10
            aload 1 /* e */
            invokevirtual sun.security.ssl.SSLSocketImpl.fatal:(BLjava/lang/Throwable;)V
        15: .line 1819
            goto 17
      StackMap locals: sun.security.ssl.SSLSocketImpl java.lang.Exception int int
      StackMap stack: java.io.IOException
        16: pop
        17: .line 1823
      StackMap locals:
      StackMap stack:
            aload 1 /* e */
            checkcast java.io.IOException
            athrow
        18: .line 1828
      StackMap locals:
      StackMap stack:
            iload 3 /* isSSLException */
            ifeq 24
        19: .line 1829
            aload 1 /* e */
            instanceof javax.net.ssl.SSLHandshakeException
            ifeq 22
        20: .line 1830
            bipush 40
            istore 4 /* alertType */
        start local 4 // byte alertType
        21: .line 1831
            goto 25
        end local 4 // byte alertType
        22: .line 1832
      StackMap locals:
      StackMap stack:
            bipush 10
            istore 4 /* alertType */
        start local 4 // byte alertType
        23: .line 1834
            goto 25
        end local 4 // byte alertType
        24: .line 1835
      StackMap locals:
      StackMap stack:
            bipush 80
            istore 4 /* alertType */
        start local 4 // byte alertType
        25: .line 1837
      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 1838
            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 1844
            aload 0 /* this */
            iconst_1
            iload 1 /* description */
            invokevirtual sun.security.ssl.SSLSocketImpl.sendAlert:(BB)V
         1: .line 1845
            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 1849
            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 1850
            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 1854
            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 1855
            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 1863
            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 1864
            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 1866
      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 1867
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.handshakeSession:Lsun/security/ssl/SSLSessionImpl;
            ifnull 5
         4: .line 1868
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.handshakeSession:Lsun/security/ssl/SSLSessionImpl;
            invokevirtual sun.security.ssl.SSLSessionImpl.invalidate:()V
         5: .line 1871
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.connectionState:I
            istore 4 /* oldState */
        start local 4 // int oldState
         6: .line 1872
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.connectionState:I
            iconst_4
            if_icmpge 8
         7: .line 1873
            aload 0 /* this */
            iconst_4
            putfield sun.security.ssl.SSLSocketImpl.connectionState:I
         8: .line 1881
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.closeReason:Ljavax/net/ssl/SSLException;
            ifnonnull 19
         9: .line 1885
            iload 4 /* oldState */
            iconst_1
            if_icmpne 11
        10: .line 1886
            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
        11: .line 1890
      StackMap locals:
      StackMap stack:
            iload 1 /* description */
            iconst_m1
            if_icmpeq 13
        12: .line 1891
            aload 0 /* this */
            iconst_2
            iload 1 /* description */
            invokevirtual sun.security.ssl.SSLSocketImpl.sendAlert:(BB)V
        13: .line 1893
      StackMap locals:
      StackMap stack:
            aload 3 /* cause */
            instanceof javax.net.ssl.SSLException
            ifeq 16
        14: .line 1894
            aload 0 /* this */
            aload 3 /* cause */
            checkcast javax.net.ssl.SSLException
            putfield sun.security.ssl.SSLSocketImpl.closeReason:Ljavax/net/ssl/SSLException;
        15: .line 1895
            goto 19
        16: .line 1896
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
        17: .line 1897
            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;
        18: .line 1896
            putfield sun.security.ssl.SSLSocketImpl.closeReason:Ljavax/net/ssl/SSLException;
        19: .line 1904
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual sun.security.ssl.SSLSocketImpl.closeSocket:()V
        20: .line 1906
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.connectionState:I
            bipush 6
            if_icmpge 26
        21: .line 1907
            aload 0 /* this */
            iload 4 /* oldState */
            bipush 7
            if_icmpne 22
            bipush 7
            goto 23
        22: .line 1908
      StackMap locals:
      StackMap stack: sun.security.ssl.SSLSocketImpl
            bipush 6
        23: .line 1907
      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
        24: .line 1912
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.readCipher:Lsun/security/ssl/CipherBox;
            invokevirtual sun.security.ssl.CipherBox.dispose:()V
        25: .line 1913
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.writeCipher:Lsun/security/ssl/CipherBox;
            invokevirtual sun.security.ssl.CipherBox.dispose:()V
        26: .line 1916
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.closeReason:Ljavax/net/ssl/SSLException;
            athrow
        end local 4 // int oldState
        end local 3 // java.lang.Throwable cause
        end local 2 // java.lang.String diagnostic
        end local 1 // byte description
        end local 0 // sun.security.ssl.SSLSocketImpl this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   27     0         this  Lsun/security/ssl/SSLSocketImpl;
            0   27     1  description  B
            0   27     2   diagnostic  Ljava/lang/String;
            0   27     3        cause  Ljava/lang/Throwable;
            6   27     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 1925
            aload 1 /* r */
            invokevirtual sun.security.ssl.InputRecord.read:()I
            i2b
            istore 2 /* level */
        start local 2 // byte level
         1: .line 1926
            aload 1 /* r */
            invokevirtual sun.security.ssl.InputRecord.read:()I
            i2b
            istore 3 /* description */
        start local 3 // byte description
         2: .line 1927
            iload 3 /* description */
            iconst_m1
            if_icmpne 4
         3: .line 1928
            aload 0 /* this */
            bipush 47
            ldc "Short alert message"
            invokevirtual sun.security.ssl.SSLSocketImpl.fatal:(BLjava/lang/String;)V
         4: .line 1931
      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 1932
            ldc "handshake"
            invokestatic sun.security.ssl.Debug.isOn:(Ljava/lang/String;)Z
            ifeq 21
         6: .line 1933
      StackMap locals:
      StackMap stack:
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            dup
            astore 4
            monitorenter
         7: .line 1934
            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 1935
            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 1936
            iload 2 /* level */
            iconst_2
            if_icmpne 12
        10: .line 1937
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            ldc "fatal, "
            invokevirtual java.io.PrintStream.print:(Ljava/lang/String;)V
        11: .line 1938
            goto 16
      StackMap locals: java.io.PrintStream
      StackMap stack:
        12: iload 2 /* level */
            iconst_1
            if_icmpne 15
        13: .line 1939
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            ldc "warning, "
            invokevirtual java.io.PrintStream.print:(Ljava/lang/String;)V
        14: .line 1940
            goto 16
        15: .line 1941
      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 1943
      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 1933
            aload 4
            monitorexit
        18: goto 21
      StackMap locals:
      StackMap stack: java.lang.Throwable
        19: aload 4
            monitorexit
        20: athrow
        21: .line 1947
      StackMap locals:
      StackMap stack:
            iload 2 /* level */
            iconst_1
            if_icmpne 33
        22: .line 1948
            iload 3 /* description */
            ifne 30
        23: .line 1949
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.connectionState:I
            iconst_1
            if_icmpne 28
        24: .line 1950
            aload 0 /* this */
            bipush 10
        25: .line 1951
            ldc "Received close_notify during handshake"
        26: .line 1950
            invokevirtual sun.security.ssl.SSLSocketImpl.fatal:(BLjava/lang/String;)V
        27: .line 1952
            goto 39
        28: .line 1953
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iconst_0
            invokevirtual sun.security.ssl.SSLSocketImpl.closeInternal:(Z)V
        29: .line 1955
            goto 39
        30: .line 1963
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.handshaker:Lsun/security/ssl/Handshaker;
            ifnull 39
        31: .line 1964
            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 1967
            goto 39
        33: .line 1968
      StackMap locals:
      StackMap stack:
            new java.lang.StringBuilder
            dup
            ldc "Received fatal alert: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
        34: .line 1969
            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 1968
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 4 /* reason */
        start local 4 // java.lang.String reason
        36: .line 1970
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.closeReason:Ljavax/net/ssl/SSLException;
            ifnonnull 38
        37: .line 1971
            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 1973
      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 1975
      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 1983
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.connectionState:I
            iconst_5
            if_icmplt 2
         1: .line 1984
            return
         2: .line 1989
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.connectionState:I
            iconst_1
            if_icmpne 5
         3: .line 1990
            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 1991
      StackMap locals:
      StackMap stack:
            return
         5: .line 1994
      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 1995
            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 1997
            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 1998
            iload 4 /* useDebug */
            ifeq 28
        11: .line 1999
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            dup
            astore 5
            monitorenter
        12: .line 2000
            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 2001
            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 2002
            iload 1 /* level */
            iconst_2
            if_icmpne 17
        15: .line 2003
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            ldc "fatal, "
            invokevirtual java.io.PrintStream.print:(Ljava/lang/String;)V
        16: .line 2004
            goto 21
      StackMap locals: int java.io.PrintStream
      StackMap stack:
        17: iload 1 /* level */
            iconst_1
            if_icmpne 20
        18: .line 2005
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            ldc "warning, "
            invokevirtual java.io.PrintStream.print:(Ljava/lang/String;)V
        19: .line 2006
            goto 21
        20: .line 2007
      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 2009
      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 2010
            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 2009
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
        24: .line 1999
            aload 5
            monitorexit
        25: goto 28
      StackMap locals:
      StackMap stack: java.lang.Throwable
        26: aload 5
            monitorexit
        27: athrow
        28: .line 2014
      StackMap locals:
      StackMap stack:
            aload 3 /* r */
            iload 1 /* level */
            invokevirtual sun.security.ssl.OutputRecord.write:(I)V
        29: .line 2015
            aload 3 /* r */
            iload 2 /* description */
            invokevirtual sun.security.ssl.OutputRecord.write:(I)V
        30: .line 2017
            aload 0 /* this */
            aload 3 /* r */
            invokevirtual sun.security.ssl.SSLSocketImpl.writeRecord:(Lsun/security/ssl/OutputRecord;)V
        31: .line 2018
            goto 37
      StackMap locals:
      StackMap stack: java.io.IOException
        32: astore 5 /* e */
        start local 5 // java.io.IOException e
        33: .line 2019
            iload 4 /* useDebug */
            ifeq 37
        34: .line 2020
            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 2021
            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 2020
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
        end local 5 // java.io.IOException e
        37: .line 2024
      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=3, args_size=1
        start local 0 // sun.security.ssl.SSLSocketImpl this
         0: .line 2044
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.connectionState:I
            iconst_1
            if_icmpeq 5
         1: .line 2045
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.connectionState:I
            iconst_3
            if_icmpeq 5
         2: .line 2046
            new javax.net.ssl.SSLProtocolException
            dup
         3: .line 2047
            ldc "State error, change cipher specs"
         4: .line 2046
            invokespecial javax.net.ssl.SSLProtocolException.<init>:(Ljava/lang/String;)V
            athrow
         5: .line 2052
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.readCipher:Lsun/security/ssl/CipherBox;
            astore 1 /* oldCipher */
        start local 1 // sun.security.ssl.CipherBox oldCipher
         6: .line 2055
            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;
         7: .line 2056
            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;
         8: .line 2057
            goto 11
      StackMap locals: sun.security.ssl.SSLSocketImpl sun.security.ssl.CipherBox
      StackMap stack: java.security.GeneralSecurityException
         9: astore 2 /* e */
        start local 2 // java.security.GeneralSecurityException e
        10: .line 2059
            new javax.net.ssl.SSLException
            dup
            ldc "Algorithm missing:  "
            aload 2 /* e */
            invokespecial javax.net.ssl.SSLException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
            athrow
        end local 2 // java.security.GeneralSecurityException e
        11: .line 2070
      StackMap locals:
      StackMap stack:
            aload 1 /* oldCipher */
            invokevirtual sun.security.ssl.CipherBox.dispose:()V
        12: .line 2071
            return
        end local 1 // sun.security.ssl.CipherBox oldCipher
        end local 0 // sun.security.ssl.SSLSocketImpl this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   13     0       this  Lsun/security/ssl/SSLSocketImpl;
            6   13     1  oldCipher  Lsun/security/ssl/CipherBox;
           10   11     2          e  Ljava/security/GeneralSecurityException;
      Exception table:
        from    to  target  type
           6     8       9  Class java.security.GeneralSecurityException
    Exceptions:
      throws javax.net.ssl.SSLException

  void changeWriteCiphers();
    descriptor: ()V
    flags: (0x0000) 
    Code:
      stack=4, locals=3, args_size=1
        start local 0 // sun.security.ssl.SSLSocketImpl this
         0: .line 2075
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.connectionState:I
            iconst_1
            if_icmpeq 5
         1: .line 2076
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.connectionState:I
            iconst_3
            if_icmpeq 5
         2: .line 2077
            new javax.net.ssl.SSLProtocolException
            dup
         3: .line 2078
            ldc "State error, change cipher specs"
         4: .line 2077
            invokespecial javax.net.ssl.SSLProtocolException.<init>:(Ljava/lang/String;)V
            athrow
         5: .line 2083
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.writeCipher:Lsun/security/ssl/CipherBox;
            astore 1 /* oldCipher */
        start local 1 // sun.security.ssl.CipherBox oldCipher
         6: .line 2086
            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;
         7: .line 2087
            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;
         8: .line 2088
            goto 11
      StackMap locals: sun.security.ssl.SSLSocketImpl sun.security.ssl.CipherBox
      StackMap stack: java.security.GeneralSecurityException
         9: astore 2 /* e */
        start local 2 // java.security.GeneralSecurityException e
        10: .line 2090
            new javax.net.ssl.SSLException
            dup
            ldc "Algorithm missing:  "
            aload 2 /* e */
            invokespecial javax.net.ssl.SSLException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
            athrow
        end local 2 // java.security.GeneralSecurityException e
        11: .line 2094
      StackMap locals:
      StackMap stack:
            aload 1 /* oldCipher */
            invokevirtual sun.security.ssl.CipherBox.dispose:()V
        12: .line 2097
            aload 0 /* this */
            iconst_1
            putfield sun.security.ssl.SSLSocketImpl.isFirstAppOutputRecord:Z
        13: .line 2098
            return
        end local 1 // sun.security.ssl.CipherBox oldCipher
        end local 0 // sun.security.ssl.SSLSocketImpl this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   14     0       this  Lsun/security/ssl/SSLSocketImpl;
            6   14     1  oldCipher  Lsun/security/ssl/CipherBox;
           10   11     2          e  Ljava/security/GeneralSecurityException;
      Exception table:
        from    to  target  type
           6     8       9  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 2105
            aload 0 /* this */
            aload 1 /* protocolVersion */
            putfield sun.security.ssl.SSLSocketImpl.protocolVersion:Lsun/security/ssl/ProtocolVersion;
         1: .line 2106
            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 2107
            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 2111
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.host:Ljava/lang/String;
            ifnull 1
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.host:Ljava/lang/String;
            invokevirtual java.lang.String.length:()I
            ifne 5
         1: .line 2112
      StackMap locals:
      StackMap stack:
            getstatic sun.security.ssl.SSLSocketImpl.trustNameService:Z
            ifne 4
         2: .line 2117
            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 2118
            goto 5
         4: .line 2119
      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 2123
      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 2133
            invokestatic sun.misc.SharedSecrets.getJavaNetAccess:()Lsun/misc/JavaNetAccess;
            astore 1 /* jna */
        start local 1 // sun.misc.JavaNetAccess jna
         1: .line 2134
            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 2139
            aload 2 /* originalHostname */
            ifnull 3
            aload 2 /* originalHostname */
            invokevirtual java.lang.String.length:()I
            ifne 4
         3: .line 2140
      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 2143
      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  

  synchronized java.lang.String getRawHostname();
    descriptor: ()Ljava/lang/String;
    flags: (0x0020) ACC_SYNCHRONIZED
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // sun.security.ssl.SSLSocketImpl this
         0: .line 2148
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.rawHostname: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 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 2153
            aload 0 /* this */
            aload 1 /* host */
            putfield sun.security.ssl.SSLSocketImpl.host:Ljava/lang/String;
         1: .line 2154
            aload 0 /* this */
            aload 1 /* host */
            putfield sun.security.ssl.SSLSocketImpl.rawHostname:Ljava/lang/String;
         2: .line 2155
            return
        end local 1 // java.lang.String host
        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  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 2163
            aload 0 /* this */
            invokevirtual sun.security.ssl.SSLSocketImpl.isClosed:()Z
            ifeq 2
         1: .line 2164
            new java.net.SocketException
            dup
            ldc "Socket is closed"
            invokespecial java.net.SocketException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 2171
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.connectionState:I
            ifne 4
         3: .line 2172
            new java.net.SocketException
            dup
            ldc "Socket is not connected"
            invokespecial java.net.SocketException.<init>:(Ljava/lang/String;)V
            athrow
         4: .line 2175
      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 2184
            aload 0 /* this */
            invokevirtual sun.security.ssl.SSLSocketImpl.isClosed:()Z
            ifeq 2
         1: .line 2185
            new java.net.SocketException
            dup
            ldc "Socket is closed"
            invokespecial java.net.SocketException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 2192
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.connectionState:I
            ifne 4
         3: .line 2193
            new java.net.SocketException
            dup
            ldc "Socket is not connected"
            invokespecial java.net.SocketException.<init>:(Ljava/lang/String;)V
            athrow
         4: .line 2196
      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 2208
            aload 0 /* this */
            invokevirtual sun.security.ssl.SSLSocketImpl.getConnectionState:()I
            iconst_1
            if_icmpne 8
         1: .line 2211
            aload 0 /* this */
            iconst_0
            invokevirtual sun.security.ssl.SSLSocketImpl.startHandshake:(Z)V
         2: .line 2212
            goto 8
      StackMap locals:
      StackMap stack: java.io.IOException
         3: astore 1 /* e */
        start local 1 // java.io.IOException e
         4: .line 2214
            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 2215
            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 2216
            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 2215
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
        end local 1 // java.io.IOException e
         8: .line 2220
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            dup
            astore 1
            monitorenter
         9: .line 2221
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.sess:Lsun/security/ssl/SSLSessionImpl;
            aload 1
            monitorexit
        10: areturn
        11: .line 2220
      StackMap locals: sun.security.ssl.SSLSocketImpl sun.security.ssl.SSLSocketImpl
      StackMap stack: java.lang.Throwable
            aload 1
            monitorexit
        12: athrow
        end local 0 // sun.security.ssl.SSLSocketImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   13     0  this  Lsun/security/ssl/SSLSocketImpl;
            4    8     1     e  Ljava/io/IOException;
      Exception table:
        from    to  target  type
           1     2       3  Class java.io.IOException
           9    10      11  any
          11    12      11  any

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

  synchronized void setHandshakeSession(sun.security.ssl.SSLSessionImpl);
    descriptor: (Lsun/security/ssl/SSLSessionImpl;)V
    flags: (0x0020) ACC_SYNCHRONIZED
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // sun.security.ssl.SSLSocketImpl this
        start local 1 // sun.security.ssl.SSLSessionImpl session
         0: .line 2231
            aload 0 /* this */
            aload 1 /* session */
            putfield sun.security.ssl.SSLSocketImpl.handshakeSession:Lsun/security/ssl/SSLSessionImpl;
         1: .line 2232
            return
        end local 1 // sun.security.ssl.SSLSessionImpl session
        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  session  Lsun/security/ssl/SSLSessionImpl;
    MethodParameters:
         Name  Flags
      session  

  public synchronized void setEnableSessionCreation(boolean);
    descriptor: (Z)V
    flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // sun.security.ssl.SSLSocketImpl this
        start local 1 // boolean flag
         0: .line 2243
            aload 0 /* this */
            iload 1 /* flag */
            putfield sun.security.ssl.SSLSocketImpl.enableSessionCreation:Z
         1: .line 2245
            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 2246
            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 2248
      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 2255
            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 2268
            aload 0 /* this */
            iload 1 /* flag */
            ifeq 2
         1: .line 2269
            iconst_2
            goto 3
      StackMap locals:
      StackMap stack: sun.security.ssl.SSLSocketImpl
         2: iconst_0
         3: .line 2268
      StackMap locals: sun.security.ssl.SSLSocketImpl int
      StackMap stack: sun.security.ssl.SSLSocketImpl int
            putfield sun.security.ssl.SSLSocketImpl.doClientAuth:B
         4: .line 2271
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.handshaker:Lsun/security/ssl/Handshaker;
            ifnull 8
         5: .line 2272
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.handshaker:Lsun/security/ssl/Handshaker;
            instanceof sun.security.ssl.ServerHandshaker
            ifeq 8
         6: .line 2273
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.handshaker:Lsun/security/ssl/Handshaker;
            invokevirtual sun.security.ssl.Handshaker.activated:()Z
            ifne 8
         7: .line 2274
            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 2276
      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 2279
            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 2291
            aload 0 /* this */
            iload 1 /* flag */
            ifeq 2
         1: .line 2292
            iconst_1
            goto 3
      StackMap locals:
      StackMap stack: sun.security.ssl.SSLSocketImpl
         2: iconst_0
         3: .line 2291
      StackMap locals: sun.security.ssl.SSLSocketImpl int
      StackMap stack: sun.security.ssl.SSLSocketImpl int
            putfield sun.security.ssl.SSLSocketImpl.doClientAuth:B
         4: .line 2294
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.handshaker:Lsun/security/ssl/Handshaker;
            ifnull 8
         5: .line 2295
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.handshaker:Lsun/security/ssl/Handshaker;
            instanceof sun.security.ssl.ServerHandshaker
            ifeq 8
         6: .line 2296
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.handshaker:Lsun/security/ssl/Handshaker;
            invokevirtual sun.security.ssl.Handshaker.activated:()Z
            ifne 8
         7: .line 2297
            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 2299
      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 2302
            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 2313
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.connectionState:I
            tableswitch { // 0 - 1
                    0: 1
                    1: 20
              default: 35
          }
         1: .line 2322
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.roleIsServer:Z
            iload 1 /* flag */
            ifeq 2
            iconst_0
            goto 3
      StackMap locals:
      StackMap stack: int
         2: iconst_1
      StackMap locals: sun.security.ssl.SSLSocketImpl int
      StackMap stack: int int
         3: if_icmpeq 16
         4: .line 2323
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.sslContext:Lsun/security/ssl/SSLContextImpl;
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.enabledProtocols:Lsun/security/ssl/ProtocolList;
            invokevirtual sun.security.ssl.SSLContextImpl.isDefaultProtocolList:(Lsun/security/ssl/ProtocolList;)Z
            ifeq 10
         5: .line 2324
            aload 0 /* this */
         6: .line 2325
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.sslContext:Lsun/security/ssl/SSLContextImpl;
            iload 1 /* flag */
            ifeq 7
            iconst_0
            goto 8
      StackMap locals: sun.security.ssl.SSLSocketImpl int
      StackMap stack: sun.security.ssl.SSLSocketImpl sun.security.ssl.SSLContextImpl
         7: iconst_1
      StackMap locals: sun.security.ssl.SSLSocketImpl int
      StackMap stack: sun.security.ssl.SSLSocketImpl sun.security.ssl.SSLContextImpl int
         8: invokevirtual sun.security.ssl.SSLContextImpl.getDefaultProtocolList:(Z)Lsun/security/ssl/ProtocolList;
         9: .line 2324
            putfield sun.security.ssl.SSLSocketImpl.enabledProtocols:Lsun/security/ssl/ProtocolList;
        10: .line 2328
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.sslContext:Lsun/security/ssl/SSLContextImpl;
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.enabledCipherSuites:Lsun/security/ssl/CipherSuiteList;
            invokevirtual sun.security.ssl.SSLContextImpl.isDefaultCipherSuiteList:(Lsun/security/ssl/CipherSuiteList;)Z
            ifeq 16
        11: .line 2329
            aload 0 /* this */
        12: .line 2330
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.sslContext:Lsun/security/ssl/SSLContextImpl;
            iload 1 /* flag */
            ifeq 13
            iconst_0
            goto 14
      StackMap locals: sun.security.ssl.SSLSocketImpl int
      StackMap stack: sun.security.ssl.SSLSocketImpl sun.security.ssl.SSLContextImpl
        13: iconst_1
      StackMap locals: sun.security.ssl.SSLSocketImpl int
      StackMap stack: sun.security.ssl.SSLSocketImpl sun.security.ssl.SSLContextImpl int
        14: invokevirtual sun.security.ssl.SSLContextImpl.getDefaultCipherSuiteList:(Z)Lsun/security/ssl/CipherSuiteList;
        15: .line 2329
            putfield sun.security.ssl.SSLSocketImpl.enabledCipherSuites:Lsun/security/ssl/CipherSuiteList;
        16: .line 2334
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iload 1 /* flag */
            ifeq 17
            iconst_0
            goto 18
      StackMap locals:
      StackMap stack: sun.security.ssl.SSLSocketImpl
        17: iconst_1
      StackMap locals: sun.security.ssl.SSLSocketImpl int
      StackMap stack: sun.security.ssl.SSLSocketImpl int
        18: putfield sun.security.ssl.SSLSocketImpl.roleIsServer:Z
        19: .line 2335
            goto 43
        20: .line 2345
      StackMap locals:
      StackMap stack:
            getstatic sun.security.ssl.SSLSocketImpl.$assertionsDisabled:Z
            ifne 21
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.handshaker:Lsun/security/ssl/Handshaker;
            ifnonnull 21
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
        21: .line 2346
      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 35
        22: .line 2352
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.roleIsServer:Z
            iload 1 /* flag */
            ifeq 23
            iconst_0
            goto 24
      StackMap locals:
      StackMap stack: int
        23: iconst_1
      StackMap locals: sun.security.ssl.SSLSocketImpl int
      StackMap stack: int int
        24: if_icmpeq 29
        25: .line 2353
            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 29
        26: .line 2354
            aload 0 /* this */
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.sslContext:Lsun/security/ssl/SSLContextImpl;
            iload 1 /* flag */
            ifeq 27
            iconst_0
            goto 28
      StackMap locals: sun.security.ssl.SSLSocketImpl int
      StackMap stack: sun.security.ssl.SSLSocketImpl sun.security.ssl.SSLContextImpl
        27: iconst_1
      StackMap locals: sun.security.ssl.SSLSocketImpl int
      StackMap stack: sun.security.ssl.SSLSocketImpl sun.security.ssl.SSLContextImpl int
        28: invokevirtual sun.security.ssl.SSLContextImpl.getDefaultProtocolList:(Z)Lsun/security/ssl/ProtocolList;
            putfield sun.security.ssl.SSLSocketImpl.enabledProtocols:Lsun/security/ssl/ProtocolList;
        29: .line 2356
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iload 1 /* flag */
            ifeq 30
            iconst_0
            goto 31
      StackMap locals:
      StackMap stack: sun.security.ssl.SSLSocketImpl
        30: iconst_1
      StackMap locals: sun.security.ssl.SSLSocketImpl int
      StackMap stack: sun.security.ssl.SSLSocketImpl int
        31: putfield sun.security.ssl.SSLSocketImpl.roleIsServer:Z
        32: .line 2357
            aload 0 /* this */
            iconst_0
            putfield sun.security.ssl.SSLSocketImpl.connectionState:I
        33: .line 2358
            aload 0 /* this */
            invokevirtual sun.security.ssl.SSLSocketImpl.initHandshaker:()V
        34: .line 2359
            goto 43
        35: .line 2365
      StackMap locals:
      StackMap stack:
            getstatic sun.security.ssl.SSLSocketImpl.debug:Lsun/security/ssl/Debug;
            ifnull 40
            ldc "ssl"
            invokestatic sun.security.ssl.Debug.isOn:(Ljava/lang/String;)Z
            ifeq 40
        36: .line 2366
            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
        37: .line 2367
            ldc ", setUseClientMode() invoked in state = "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        38: .line 2368
            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;
        39: .line 2366
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
        40: .line 2370
      StackMap locals:
      StackMap stack:
            new java.lang.IllegalArgumentException
            dup
        41: .line 2371
            ldc "Cannot change mode after SSL traffic has started"
        42: .line 2370
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
        43: .line 2373
      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   44     0  this  Lsun/security/ssl/SSLSocketImpl;
            0   44     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 2376
            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 2391
            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 2404
            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 2405
            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 2406
            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 2408
      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 2421
            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 2431
            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 2444
            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 2445
            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 2446
            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 2448
      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 2451
            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 2459
            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 2460
            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 2461
            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 2460
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
         4: .line 2463
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.self:Ljava/net/Socket;
            aload 0 /* this */
            if_acmpne 7
         5: .line 2464
            aload 0 /* this */
            iload 1 /* timeout */
            invokespecial sun.security.ssl.BaseSSLSocketImpl.setSoTimeout:(I)V
         6: .line 2465
            goto 8
         7: .line 2466
      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 2468
      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 2476
            aload 1 /* listener */
            ifnonnull 2
         1: .line 2477
            new java.lang.IllegalArgumentException
            dup
            ldc "listener is null"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 2479
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.handshakeListeners:Ljava/util/HashMap;
            ifnonnull 6
         3: .line 2480
            aload 0 /* this */
         4: .line 2481
            new java.util.HashMap
            dup
            iconst_4
         5: .line 2480
            invokespecial java.util.HashMap.<init>:(I)V
            putfield sun.security.ssl.SSLSocketImpl.handshakeListeners:Ljava/util/HashMap;
         6: .line 2483
      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 2484
            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 2492
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.handshakeListeners:Ljava/util/HashMap;
            ifnonnull 2
         1: .line 2493
            new java.lang.IllegalArgumentException
            dup
            ldc "no listeners"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 2495
      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 2496
            new java.lang.IllegalArgumentException
            dup
            ldc "listener not registered"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         4: .line 2498
      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 2499
            aload 0 /* this */
            aconst_null
            putfield sun.security.ssl.SSLSocketImpl.handshakeListeners:Ljava/util/HashMap;
         6: .line 2501
      StackMap locals:
      StackMap stack:
            return
        end local 1 // javax.net.ssl.HandshakeCompletedListener listener
        end local 0 // sun.security.ssl.SSLSocketImpl this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    7     0      this  Lsun/security/ssl/SSLSocketImpl;
            0    7     1  listener  Ljavax/net/ssl/HandshakeCompletedListener;
    MethodParameters:
          Name  Flags
      listener  

  public synchronized javax.net.ssl.SSLParameters getSSLParameters();
    descriptor: ()Ljavax/net/ssl/SSLParameters;
    flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
    Code:
      stack=2, locals=2, args_size=1
        start local 0 // sun.security.ssl.SSLSocketImpl this
         0: .line 2507
            aload 0 /* this */
            invokespecial sun.security.ssl.BaseSSLSocketImpl.getSSLParameters:()Ljavax/net/ssl/SSLParameters;
            astore 1 /* params */
        start local 1 // javax.net.ssl.SSLParameters params
         1: .line 2510
            aload 1 /* params */
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.identificationProtocol:Ljava/lang/String;
            invokevirtual javax.net.ssl.SSLParameters.setEndpointIdentificationAlgorithm:(Ljava/lang/String;)V
         2: .line 2511
            aload 1 /* params */
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.algorithmConstraints:Ljava/security/AlgorithmConstraints;
            invokevirtual javax.net.ssl.SSLParameters.setAlgorithmConstraints:(Ljava/security/AlgorithmConstraints;)V
         3: .line 2513
            aload 1 /* params */
            areturn
        end local 1 // javax.net.ssl.SSLParameters params
        end local 0 // sun.security.ssl.SSLSocketImpl this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    4     0    this  Lsun/security/ssl/SSLSocketImpl;
            1    4     1  params  Ljavax/net/ssl/SSLParameters;

  public synchronized void setSSLParameters(javax.net.ssl.SSLParameters);
    descriptor: (Ljavax/net/ssl/SSLParameters;)V
    flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // sun.security.ssl.SSLSocketImpl this
        start local 1 // javax.net.ssl.SSLParameters params
         0: .line 2520
            aload 0 /* this */
            aload 1 /* params */
            invokespecial sun.security.ssl.BaseSSLSocketImpl.setSSLParameters:(Ljavax/net/ssl/SSLParameters;)V
         1: .line 2523
            aload 0 /* this */
            aload 1 /* params */
            invokevirtual javax.net.ssl.SSLParameters.getEndpointIdentificationAlgorithm:()Ljava/lang/String;
            putfield sun.security.ssl.SSLSocketImpl.identificationProtocol:Ljava/lang/String;
         2: .line 2524
            aload 0 /* this */
            aload 1 /* params */
            invokevirtual javax.net.ssl.SSLParameters.getAlgorithmConstraints:()Ljava/security/AlgorithmConstraints;
            putfield sun.security.ssl.SSLSocketImpl.algorithmConstraints:Ljava/security/AlgorithmConstraints;
         3: .line 2525
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.handshaker:Lsun/security/ssl/Handshaker;
            ifnull 6
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.handshaker:Lsun/security/ssl/Handshaker;
            invokevirtual sun.security.ssl.Handshaker.started:()Z
            ifne 6
         4: .line 2526
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.handshaker:Lsun/security/ssl/Handshaker;
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.identificationProtocol:Ljava/lang/String;
            invokevirtual sun.security.ssl.Handshaker.setIdentificationProtocol:(Ljava/lang/String;)V
         5: .line 2527
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.handshaker:Lsun/security/ssl/Handshaker;
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.algorithmConstraints:Ljava/security/AlgorithmConstraints;
            invokevirtual sun.security.ssl.Handshaker.setAlgorithmConstraints:(Ljava/security/AlgorithmConstraints;)V
         6: .line 2529
      StackMap locals:
      StackMap stack:
            return
        end local 1 // javax.net.ssl.SSLParameters params
        end local 0 // sun.security.ssl.SSLSocketImpl this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    7     0    this  Lsun/security/ssl/SSLSocketImpl;
            0    7     1  params  Ljavax/net/ssl/SSLParameters;
    MethodParameters:
        Name  Flags
      params  

  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 2572
            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 2579
            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 2581
            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 2582
            aload 1 /* retval */
            ldc "["
            invokevirtual java.lang.StringBuffer.append:(Ljava/lang/String;)Ljava/lang/StringBuffer;
            pop
         3: .line 2583
            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 2584
            aload 1 /* retval */
            ldc ": "
            invokevirtual java.lang.StringBuffer.append:(Ljava/lang/String;)Ljava/lang/StringBuffer;
            pop
         5: .line 2586
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.self:Ljava/net/Socket;
            aload 0 /* this */
            if_acmpne 8
         6: .line 2587
            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 2588
            goto 9
         8: .line 2589
      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 2591
      StackMap locals:
      StackMap stack:
            aload 1 /* retval */
            ldc "]"
            invokevirtual java.lang.StringBuffer.append:(Ljava/lang/String;)Ljava/lang/StringBuffer;
            pop
        10: .line 2593
            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