final class sun.security.ssl.ClientHandshaker extends sun.security.ssl.Handshaker
  minor version: 0
  major version: 59
  flags: flags: (0x0030) ACC_FINAL, ACC_SUPER
  this_class: sun.security.ssl.ClientHandshaker
  super_class: sun.security.ssl.Handshaker
{
  private java.security.PublicKey serverKey;
    descriptor: Ljava/security/PublicKey;
    flags: (0x0002) ACC_PRIVATE

  private java.security.PublicKey ephemeralServerKey;
    descriptor: Ljava/security/PublicKey;
    flags: (0x0002) ACC_PRIVATE

  private java.math.BigInteger serverDH;
    descriptor: Ljava/math/BigInteger;
    flags: (0x0002) ACC_PRIVATE

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

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

  private sun.security.ssl.HandshakeMessage$CertificateRequest certRequest;
    descriptor: Lsun/security/ssl/HandshakeMessage$CertificateRequest;
    flags: (0x0002) ACC_PRIVATE

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

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

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

  private java.security.cert.X509Certificate[] reservedServerCerts;
    descriptor: [Ljava/security/cert/X509Certificate;
    flags: (0x0002) ACC_PRIVATE

  private static volatile int[] $SWITCH_TABLE$sun$security$ssl$CipherSuite$KeyExchange;
    descriptor: [I
    flags: (0x104a) ACC_PRIVATE, ACC_STATIC, ACC_VOLATILE, ACC_SYNTHETIC

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

  void <init>(sun.security.ssl.SSLSocketImpl, sun.security.ssl.SSLContextImpl, sun.security.ssl.ProtocolList, sun.security.ssl.ProtocolVersion, boolean, boolean, byte[], byte[]);
    descriptor: (Lsun/security/ssl/SSLSocketImpl;Lsun/security/ssl/SSLContextImpl;Lsun/security/ssl/ProtocolList;Lsun/security/ssl/ProtocolVersion;ZZ[B[B)V
    flags: (0x0000) 
    Code:
      stack=11, locals=9, args_size=9
        start local 0 // sun.security.ssl.ClientHandshaker this
        start local 1 // sun.security.ssl.SSLSocketImpl socket
        start local 2 // sun.security.ssl.SSLContextImpl context
        start local 3 // sun.security.ssl.ProtocolList enabledProtocols
        start local 4 // sun.security.ssl.ProtocolVersion activeProtocolVersion
        start local 5 // boolean isInitialHandshake
        start local 6 // boolean secureRenegotiation
        start local 7 // byte[] clientVerifyData
        start local 8 // byte[] serverVerifyData
         0: .line 154
            aload 0 /* this */
            aload 1 /* socket */
            aload 2 /* context */
            aload 3 /* enabledProtocols */
            iconst_1
            iconst_1
         1: .line 155
            aload 4 /* activeProtocolVersion */
            iload 5 /* isInitialHandshake */
            iload 6 /* secureRenegotiation */
         2: .line 156
            aload 7 /* clientVerifyData */
            aload 8 /* serverVerifyData */
            invokespecial sun.security.ssl.Handshaker.<init>:(Lsun/security/ssl/SSLSocketImpl;Lsun/security/ssl/SSLContextImpl;Lsun/security/ssl/ProtocolList;ZZLsun/security/ssl/ProtocolVersion;ZZ[B[B)V
         3: .line 143
            aload 0 /* this */
            aconst_null
            putfield sun.security.ssl.ClientHandshaker.reservedServerCerts:[Ljava/security/cert/X509Certificate;
         4: .line 157
            return
        end local 8 // byte[] serverVerifyData
        end local 7 // byte[] clientVerifyData
        end local 6 // boolean secureRenegotiation
        end local 5 // boolean isInitialHandshake
        end local 4 // sun.security.ssl.ProtocolVersion activeProtocolVersion
        end local 3 // sun.security.ssl.ProtocolList enabledProtocols
        end local 2 // sun.security.ssl.SSLContextImpl context
        end local 1 // sun.security.ssl.SSLSocketImpl socket
        end local 0 // sun.security.ssl.ClientHandshaker this
      LocalVariableTable:
        Start  End  Slot                   Name  Signature
            0    5     0                   this  Lsun/security/ssl/ClientHandshaker;
            0    5     1                 socket  Lsun/security/ssl/SSLSocketImpl;
            0    5     2                context  Lsun/security/ssl/SSLContextImpl;
            0    5     3       enabledProtocols  Lsun/security/ssl/ProtocolList;
            0    5     4  activeProtocolVersion  Lsun/security/ssl/ProtocolVersion;
            0    5     5     isInitialHandshake  Z
            0    5     6    secureRenegotiation  Z
            0    5     7       clientVerifyData  [B
            0    5     8       serverVerifyData  [B
    MethodParameters:
                       Name  Flags
      socket                 
      context                
      enabledProtocols       
      activeProtocolVersion  
      isInitialHandshake     
      secureRenegotiation    
      clientVerifyData       
      serverVerifyData       

  void <init>(sun.security.ssl.SSLEngineImpl, sun.security.ssl.SSLContextImpl, sun.security.ssl.ProtocolList, sun.security.ssl.ProtocolVersion, boolean, boolean, byte[], byte[]);
    descriptor: (Lsun/security/ssl/SSLEngineImpl;Lsun/security/ssl/SSLContextImpl;Lsun/security/ssl/ProtocolList;Lsun/security/ssl/ProtocolVersion;ZZ[B[B)V
    flags: (0x0000) 
    Code:
      stack=11, locals=9, args_size=9
        start local 0 // sun.security.ssl.ClientHandshaker this
        start local 1 // sun.security.ssl.SSLEngineImpl engine
        start local 2 // sun.security.ssl.SSLContextImpl context
        start local 3 // sun.security.ssl.ProtocolList enabledProtocols
        start local 4 // sun.security.ssl.ProtocolVersion activeProtocolVersion
        start local 5 // boolean isInitialHandshake
        start local 6 // boolean secureRenegotiation
        start local 7 // byte[] clientVerifyData
        start local 8 // byte[] serverVerifyData
         0: .line 165
            aload 0 /* this */
            aload 1 /* engine */
            aload 2 /* context */
            aload 3 /* enabledProtocols */
            iconst_1
            iconst_1
         1: .line 166
            aload 4 /* activeProtocolVersion */
            iload 5 /* isInitialHandshake */
            iload 6 /* secureRenegotiation */
         2: .line 167
            aload 7 /* clientVerifyData */
            aload 8 /* serverVerifyData */
            invokespecial sun.security.ssl.Handshaker.<init>:(Lsun/security/ssl/SSLEngineImpl;Lsun/security/ssl/SSLContextImpl;Lsun/security/ssl/ProtocolList;ZZLsun/security/ssl/ProtocolVersion;ZZ[B[B)V
         3: .line 143
            aload 0 /* this */
            aconst_null
            putfield sun.security.ssl.ClientHandshaker.reservedServerCerts:[Ljava/security/cert/X509Certificate;
         4: .line 168
            return
        end local 8 // byte[] serverVerifyData
        end local 7 // byte[] clientVerifyData
        end local 6 // boolean secureRenegotiation
        end local 5 // boolean isInitialHandshake
        end local 4 // sun.security.ssl.ProtocolVersion activeProtocolVersion
        end local 3 // sun.security.ssl.ProtocolList enabledProtocols
        end local 2 // sun.security.ssl.SSLContextImpl context
        end local 1 // sun.security.ssl.SSLEngineImpl engine
        end local 0 // sun.security.ssl.ClientHandshaker this
      LocalVariableTable:
        Start  End  Slot                   Name  Signature
            0    5     0                   this  Lsun/security/ssl/ClientHandshaker;
            0    5     1                 engine  Lsun/security/ssl/SSLEngineImpl;
            0    5     2                context  Lsun/security/ssl/SSLContextImpl;
            0    5     3       enabledProtocols  Lsun/security/ssl/ProtocolList;
            0    5     4  activeProtocolVersion  Lsun/security/ssl/ProtocolVersion;
            0    5     5     isInitialHandshake  Z
            0    5     6    secureRenegotiation  Z
            0    5     7       clientVerifyData  [B
            0    5     8       serverVerifyData  [B
    MethodParameters:
                       Name  Flags
      engine                 
      context                
      enabledProtocols       
      activeProtocolVersion  
      isInitialHandshake     
      secureRenegotiation    
      clientVerifyData       
      serverVerifyData       

  void processMessage(byte, int);
    descriptor: (BI)V
    flags: (0x0000) 
    Code:
      stack=8, locals=4, args_size=3
        start local 0 // sun.security.ssl.ClientHandshaker this
        start local 1 // byte type
        start local 2 // int messageLen
         0: .line 181
            aload 0 /* this */
            getfield sun.security.ssl.ClientHandshaker.state:I
            iload 1 /* type */
            if_icmplt 5
         1: .line 182
            iload 1 /* type */
            ifeq 5
         2: .line 183
            new javax.net.ssl.SSLProtocolException
            dup
         3: .line 184
            new java.lang.StringBuilder
            dup
            ldc "Handshake message sequence violation, "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            iload 1 /* type */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
         4: .line 183
            invokespecial javax.net.ssl.SSLProtocolException.<init>:(Ljava/lang/String;)V
            athrow
         5: .line 187
      StackMap locals:
      StackMap stack:
            iload 1 /* type */
            lookupswitch { // 7
                    0: 6
                    2: 8
                   11: 10
                   12: 20
                   13: 72
                   14: 84
                   20: 86
              default: 92
          }
         6: .line 189
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            new sun.security.ssl.HandshakeMessage$HelloRequest
            dup
            aload 0 /* this */
            getfield sun.security.ssl.ClientHandshaker.input:Lsun/security/ssl/HandshakeInStream;
            invokespecial sun.security.ssl.HandshakeMessage$HelloRequest.<init>:(Lsun/security/ssl/HandshakeInStream;)V
            invokevirtual sun.security.ssl.ClientHandshaker.serverHelloRequest:(Lsun/security/ssl/HandshakeMessage$HelloRequest;)V
         7: .line 190
            goto 95
         8: .line 193
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            new sun.security.ssl.HandshakeMessage$ServerHello
            dup
            aload 0 /* this */
            getfield sun.security.ssl.ClientHandshaker.input:Lsun/security/ssl/HandshakeInStream;
            iload 2 /* messageLen */
            invokespecial sun.security.ssl.HandshakeMessage$ServerHello.<init>:(Lsun/security/ssl/HandshakeInStream;I)V
            invokevirtual sun.security.ssl.ClientHandshaker.serverHello:(Lsun/security/ssl/HandshakeMessage$ServerHello;)V
         9: .line 194
            goto 95
        10: .line 197
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.ClientHandshaker.keyExchange:Lsun/security/ssl/CipherSuite$KeyExchange;
            getstatic sun.security.ssl.CipherSuite$KeyExchange.K_DH_ANON:Lsun/security/ssl/CipherSuite$KeyExchange;
            if_acmpeq 12
            aload 0 /* this */
            getfield sun.security.ssl.ClientHandshaker.keyExchange:Lsun/security/ssl/CipherSuite$KeyExchange;
            getstatic sun.security.ssl.CipherSuite$KeyExchange.K_ECDH_ANON:Lsun/security/ssl/CipherSuite$KeyExchange;
            if_acmpeq 12
        11: .line 198
            aload 0 /* this */
            getfield sun.security.ssl.ClientHandshaker.keyExchange:Lsun/security/ssl/CipherSuite$KeyExchange;
            getstatic sun.security.ssl.CipherSuite$KeyExchange.K_KRB5:Lsun/security/ssl/CipherSuite$KeyExchange;
            if_acmpeq 12
            aload 0 /* this */
            getfield sun.security.ssl.ClientHandshaker.keyExchange:Lsun/security/ssl/CipherSuite$KeyExchange;
            getstatic sun.security.ssl.CipherSuite$KeyExchange.K_KRB5_EXPORT:Lsun/security/ssl/CipherSuite$KeyExchange;
            if_acmpne 15
        12: .line 199
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            bipush 10
        13: .line 200
            ldc "unexpected server cert chain"
        14: .line 199
            invokevirtual sun.security.ssl.ClientHandshaker.fatalSE:(BLjava/lang/String;)V
        15: .line 203
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            new sun.security.ssl.HandshakeMessage$CertificateMsg
            dup
            aload 0 /* this */
            getfield sun.security.ssl.ClientHandshaker.input:Lsun/security/ssl/HandshakeInStream;
            invokespecial sun.security.ssl.HandshakeMessage$CertificateMsg.<init>:(Lsun/security/ssl/HandshakeInStream;)V
            invokevirtual sun.security.ssl.ClientHandshaker.serverCertificate:(Lsun/security/ssl/HandshakeMessage$CertificateMsg;)V
        16: .line 204
            aload 0 /* this */
        17: .line 205
            aload 0 /* this */
            getfield sun.security.ssl.ClientHandshaker.session:Lsun/security/ssl/SSLSessionImpl;
            invokevirtual sun.security.ssl.SSLSessionImpl.getPeerCertificates:()[Ljava/security/cert/Certificate;
            iconst_0
            aaload
            invokevirtual java.security.cert.Certificate.getPublicKey:()Ljava/security/PublicKey;
        18: .line 204
            putfield sun.security.ssl.ClientHandshaker.serverKey:Ljava/security/PublicKey;
        19: .line 206
            goto 95
        20: .line 209
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iconst_1
            putfield sun.security.ssl.ClientHandshaker.serverKeyExchangeReceived:Z
        21: .line 210
            invokestatic sun.security.ssl.ClientHandshaker.$SWITCH_TABLE$sun$security$ssl$CipherSuite$KeyExchange:()[I
            aload 0 /* this */
            getfield sun.security.ssl.ClientHandshaker.keyExchange:Lsun/security/ssl/CipherSuite$KeyExchange;
            invokevirtual sun.security.ssl.CipherSuite$KeyExchange.ordinal:()I
            iaload
            tableswitch { // 2 - 15
                    2: 61
                    3: 22
                    4: 61
                    5: 61
                    6: 44
                    7: 44
                    8: 39
                    9: 61
                   10: 61
                   11: 53
                   12: 53
                   13: 53
                   14: 64
                   15: 64
              default: 67
          }
        22: .line 219
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.ClientHandshaker.serverKey:Ljava/security/PublicKey;
            ifnonnull 26
        23: .line 220
            new javax.net.ssl.SSLProtocolException
            dup
        24: .line 221
            ldc "Server did not send certificate message"
        25: .line 220
            invokespecial javax.net.ssl.SSLProtocolException.<init>:(Ljava/lang/String;)V
            athrow
        26: .line 224
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.ClientHandshaker.serverKey:Ljava/security/PublicKey;
            instanceof java.security.interfaces.RSAPublicKey
            ifne 28
        27: .line 225
            new javax.net.ssl.SSLProtocolException
            dup
            ldc "Protocol violation: the certificate type must be appropriate for the selected cipher suite's key exchange algorithm"
            invokespecial javax.net.ssl.SSLProtocolException.<init>:(Ljava/lang/String;)V
            athrow
        28: .line 230
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.ClientHandshaker.serverKey:Ljava/security/PublicKey;
            invokestatic sun.security.ssl.JsseJce.getRSAKeyLength:(Ljava/security/PublicKey;)I
            sipush 512
            if_icmpgt 34
        29: .line 231
            new javax.net.ssl.SSLProtocolException
            dup
            new java.lang.StringBuilder
            dup
            ldc "Protocol violation: server sent a server key exchange message for key exchange "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
        30: .line 233
            aload 0 /* this */
            getfield sun.security.ssl.ClientHandshaker.keyExchange:Lsun/security/ssl/CipherSuite$KeyExchange;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
        31: .line 234
            ldc " when the public key in the server certificate"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        32: .line 235
            ldc " is less than or equal to 512 bits in length"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        33: .line 231
            invokespecial javax.net.ssl.SSLProtocolException.<init>:(Ljava/lang/String;)V
            athrow
        34: .line 239
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            new sun.security.ssl.HandshakeMessage$RSA_ServerKeyExchange
            dup
            aload 0 /* this */
            getfield sun.security.ssl.ClientHandshaker.input:Lsun/security/ssl/HandshakeInStream;
            invokespecial sun.security.ssl.HandshakeMessage$RSA_ServerKeyExchange.<init>:(Lsun/security/ssl/HandshakeInStream;)V
            invokevirtual sun.security.ssl.ClientHandshaker.serverKeyExchange:(Lsun/security/ssl/HandshakeMessage$RSA_ServerKeyExchange;)V
        35: .line 240
            goto 95
      StackMap locals:
      StackMap stack: java.security.GeneralSecurityException
        36: astore 3 /* e */
        start local 3 // java.security.GeneralSecurityException e
        37: .line 241
            ldc "Server key"
            aload 3 /* e */
            invokestatic sun.security.ssl.ClientHandshaker.throwSSLException:(Ljava/lang/String;Ljava/lang/Throwable;)V
        end local 3 // java.security.GeneralSecurityException e
        38: .line 243
            goto 95
        39: .line 246
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            new sun.security.ssl.HandshakeMessage$DH_ServerKeyExchange
            dup
            aload 0 /* this */
            getfield sun.security.ssl.ClientHandshaker.input:Lsun/security/ssl/HandshakeInStream;
            invokespecial sun.security.ssl.HandshakeMessage$DH_ServerKeyExchange.<init>:(Lsun/security/ssl/HandshakeInStream;)V
            invokevirtual sun.security.ssl.ClientHandshaker.serverKeyExchange:(Lsun/security/ssl/HandshakeMessage$DH_ServerKeyExchange;)V
        40: .line 247
            goto 95
      StackMap locals:
      StackMap stack: java.security.GeneralSecurityException
        41: astore 3 /* e */
        start local 3 // java.security.GeneralSecurityException e
        42: .line 248
            ldc "Server key"
            aload 3 /* e */
            invokestatic sun.security.ssl.ClientHandshaker.throwSSLException:(Ljava/lang/String;Ljava/lang/Throwable;)V
        end local 3 // java.security.GeneralSecurityException e
        43: .line 250
            goto 95
        44: .line 254
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            new sun.security.ssl.HandshakeMessage$DH_ServerKeyExchange
            dup
        45: .line 255
            aload 0 /* this */
            getfield sun.security.ssl.ClientHandshaker.input:Lsun/security/ssl/HandshakeInStream;
            aload 0 /* this */
            getfield sun.security.ssl.ClientHandshaker.serverKey:Ljava/security/PublicKey;
        46: .line 256
            aload 0 /* this */
            getfield sun.security.ssl.ClientHandshaker.clnt_random:Lsun/security/ssl/RandomCookie;
            getfield sun.security.ssl.RandomCookie.random_bytes:[B
            aload 0 /* this */
            getfield sun.security.ssl.ClientHandshaker.svr_random:Lsun/security/ssl/RandomCookie;
            getfield sun.security.ssl.RandomCookie.random_bytes:[B
        47: .line 257
            iload 2 /* messageLen */
            invokespecial sun.security.ssl.HandshakeMessage$DH_ServerKeyExchange.<init>:(Lsun/security/ssl/HandshakeInStream;Ljava/security/PublicKey;[B[BI)V
        48: .line 254
            invokevirtual sun.security.ssl.ClientHandshaker.serverKeyExchange:(Lsun/security/ssl/HandshakeMessage$DH_ServerKeyExchange;)V
        49: .line 258
            goto 95
      StackMap locals:
      StackMap stack: java.security.GeneralSecurityException
        50: astore 3 /* e */
        start local 3 // java.security.GeneralSecurityException e
        51: .line 259
            ldc "Server key"
            aload 3 /* e */
            invokestatic sun.security.ssl.ClientHandshaker.throwSSLException:(Ljava/lang/String;Ljava/lang/Throwable;)V
        end local 3 // java.security.GeneralSecurityException e
        52: .line 261
            goto 95
        53: .line 266
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            new sun.security.ssl.HandshakeMessage$ECDH_ServerKeyExchange
            dup
        54: .line 267
            aload 0 /* this */
            getfield sun.security.ssl.ClientHandshaker.input:Lsun/security/ssl/HandshakeInStream;
            aload 0 /* this */
            getfield sun.security.ssl.ClientHandshaker.serverKey:Ljava/security/PublicKey;
            aload 0 /* this */
            getfield sun.security.ssl.ClientHandshaker.clnt_random:Lsun/security/ssl/RandomCookie;
            getfield sun.security.ssl.RandomCookie.random_bytes:[B
        55: .line 268
            aload 0 /* this */
            getfield sun.security.ssl.ClientHandshaker.svr_random:Lsun/security/ssl/RandomCookie;
            getfield sun.security.ssl.RandomCookie.random_bytes:[B
            invokespecial sun.security.ssl.HandshakeMessage$ECDH_ServerKeyExchange.<init>:(Lsun/security/ssl/HandshakeInStream;Ljava/security/PublicKey;[B[B)V
        56: .line 266
            invokevirtual sun.security.ssl.ClientHandshaker.serverKeyExchange:(Lsun/security/ssl/HandshakeMessage$ECDH_ServerKeyExchange;)V
        57: .line 269
            goto 95
      StackMap locals:
      StackMap stack: java.security.GeneralSecurityException
        58: astore 3 /* e */
        start local 3 // java.security.GeneralSecurityException e
        59: .line 270
            ldc "Server key"
            aload 3 /* e */
            invokestatic sun.security.ssl.ClientHandshaker.throwSSLException:(Ljava/lang/String;Ljava/lang/Throwable;)V
        end local 3 // java.security.GeneralSecurityException e
        60: .line 272
            goto 95
        61: .line 278
      StackMap locals:
      StackMap stack:
            new javax.net.ssl.SSLProtocolException
            dup
            new java.lang.StringBuilder
            dup
            ldc "Protocol violation: server sent a server key exchange message for key exchange "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
        62: .line 279
            aload 0 /* this */
            getfield sun.security.ssl.ClientHandshaker.keyExchange:Lsun/security/ssl/CipherSuite$KeyExchange;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        63: .line 278
            invokespecial javax.net.ssl.SSLProtocolException.<init>:(Ljava/lang/String;)V
            athrow
        64: .line 282
      StackMap locals:
      StackMap stack:
            new javax.net.ssl.SSLProtocolException
            dup
        65: .line 283
            ldc "unexpected receipt of server key exchange algorithm"
        66: .line 282
            invokespecial javax.net.ssl.SSLProtocolException.<init>:(Ljava/lang/String;)V
            athrow
        67: .line 285
      StackMap locals:
      StackMap stack:
            new javax.net.ssl.SSLProtocolException
            dup
        68: .line 286
            new java.lang.StringBuilder
            dup
            ldc "unsupported key exchange algorithm = "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
        69: .line 287
            aload 0 /* this */
            getfield sun.security.ssl.ClientHandshaker.keyExchange:Lsun/security/ssl/CipherSuite$KeyExchange;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
        70: .line 286
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        71: .line 285
            invokespecial javax.net.ssl.SSLProtocolException.<init>:(Ljava/lang/String;)V
            athrow
        72: .line 293
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.ClientHandshaker.keyExchange:Lsun/security/ssl/CipherSuite$KeyExchange;
            getstatic sun.security.ssl.CipherSuite$KeyExchange.K_DH_ANON:Lsun/security/ssl/CipherSuite$KeyExchange;
            if_acmpeq 73
            aload 0 /* this */
            getfield sun.security.ssl.ClientHandshaker.keyExchange:Lsun/security/ssl/CipherSuite$KeyExchange;
            getstatic sun.security.ssl.CipherSuite$KeyExchange.K_ECDH_ANON:Lsun/security/ssl/CipherSuite$KeyExchange;
            if_acmpne 76
        73: .line 294
      StackMap locals:
      StackMap stack:
            new javax.net.ssl.SSLHandshakeException
            dup
        74: .line 295
            ldc "Client authentication requested for anonymous cipher suite."
        75: .line 294
            invokespecial javax.net.ssl.SSLHandshakeException.<init>:(Ljava/lang/String;)V
            athrow
        76: .line 297
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.ClientHandshaker.keyExchange:Lsun/security/ssl/CipherSuite$KeyExchange;
            getstatic sun.security.ssl.CipherSuite$KeyExchange.K_KRB5:Lsun/security/ssl/CipherSuite$KeyExchange;
            if_acmpeq 77
            aload 0 /* this */
            getfield sun.security.ssl.ClientHandshaker.keyExchange:Lsun/security/ssl/CipherSuite$KeyExchange;
            getstatic sun.security.ssl.CipherSuite$KeyExchange.K_KRB5_EXPORT:Lsun/security/ssl/CipherSuite$KeyExchange;
            if_acmpne 80
        77: .line 298
      StackMap locals:
      StackMap stack:
            new javax.net.ssl.SSLHandshakeException
            dup
        78: .line 299
            ldc "Client certificate requested for kerberos cipher suite."
        79: .line 298
            invokespecial javax.net.ssl.SSLHandshakeException.<init>:(Ljava/lang/String;)V
            athrow
        80: .line 302
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            new sun.security.ssl.HandshakeMessage$CertificateRequest
            dup
            aload 0 /* this */
            getfield sun.security.ssl.ClientHandshaker.input:Lsun/security/ssl/HandshakeInStream;
            invokespecial sun.security.ssl.HandshakeMessage$CertificateRequest.<init>:(Lsun/security/ssl/HandshakeInStream;)V
            putfield sun.security.ssl.ClientHandshaker.certRequest:Lsun/security/ssl/HandshakeMessage$CertificateRequest;
        81: .line 303
            getstatic sun.security.ssl.ClientHandshaker.debug:Lsun/security/ssl/Debug;
            ifnull 95
            ldc "handshake"
            invokestatic sun.security.ssl.Debug.isOn:(Ljava/lang/String;)Z
            ifeq 95
        82: .line 304
            aload 0 /* this */
            getfield sun.security.ssl.ClientHandshaker.certRequest:Lsun/security/ssl/HandshakeMessage$CertificateRequest;
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            invokevirtual sun.security.ssl.HandshakeMessage$CertificateRequest.print:(Ljava/io/PrintStream;)V
        83: .line 306
            goto 95
        84: .line 309
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            new sun.security.ssl.HandshakeMessage$ServerHelloDone
            dup
            aload 0 /* this */
            getfield sun.security.ssl.ClientHandshaker.input:Lsun/security/ssl/HandshakeInStream;
            invokespecial sun.security.ssl.HandshakeMessage$ServerHelloDone.<init>:(Lsun/security/ssl/HandshakeInStream;)V
            invokevirtual sun.security.ssl.ClientHandshaker.serverHelloDone:(Lsun/security/ssl/HandshakeMessage$ServerHelloDone;)V
        85: .line 310
            goto 95
        86: .line 315
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual sun.security.ssl.ClientHandshaker.receivedChangeCipherSpec:()Z
            ifne 90
        87: .line 316
            aload 0 /* this */
            bipush 40
        88: .line 317
            ldc "Received Finished message before ChangeCipherSpec"
        89: .line 316
            invokevirtual sun.security.ssl.ClientHandshaker.fatalSE:(BLjava/lang/String;)V
        90: .line 320
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            new sun.security.ssl.HandshakeMessage$Finished
            dup
            aload 0 /* this */
            getfield sun.security.ssl.ClientHandshaker.protocolVersion:Lsun/security/ssl/ProtocolVersion;
            aload 0 /* this */
            getfield sun.security.ssl.ClientHandshaker.input:Lsun/security/ssl/HandshakeInStream;
            invokespecial sun.security.ssl.HandshakeMessage$Finished.<init>:(Lsun/security/ssl/ProtocolVersion;Lsun/security/ssl/HandshakeInStream;)V
            invokevirtual sun.security.ssl.ClientHandshaker.serverFinished:(Lsun/security/ssl/HandshakeMessage$Finished;)V
        91: .line 321
            goto 95
        92: .line 324
      StackMap locals:
      StackMap stack:
            new javax.net.ssl.SSLProtocolException
            dup
        93: .line 325
            new java.lang.StringBuilder
            dup
            ldc "Illegal client handshake msg, "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            iload 1 /* type */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        94: .line 324
            invokespecial javax.net.ssl.SSLProtocolException.<init>:(Ljava/lang/String;)V
            athrow
        95: .line 332
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.ClientHandshaker.state:I
            iload 1 /* type */
            if_icmpge 97
        96: .line 333
            aload 0 /* this */
            iload 1 /* type */
            putfield sun.security.ssl.ClientHandshaker.state:I
        97: .line 335
      StackMap locals:
      StackMap stack:
            return
        end local 2 // int messageLen
        end local 1 // byte type
        end local 0 // sun.security.ssl.ClientHandshaker this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   98     0        this  Lsun/security/ssl/ClientHandshaker;
            0   98     1        type  B
            0   98     2  messageLen  I
           37   38     3           e  Ljava/security/GeneralSecurityException;
           42   43     3           e  Ljava/security/GeneralSecurityException;
           51   52     3           e  Ljava/security/GeneralSecurityException;
           59   60     3           e  Ljava/security/GeneralSecurityException;
      Exception table:
        from    to  target  type
          34    35      36  Class java.security.GeneralSecurityException
          39    40      41  Class java.security.GeneralSecurityException
          44    49      50  Class java.security.GeneralSecurityException
          53    57      58  Class java.security.GeneralSecurityException
    Exceptions:
      throws java.io.IOException
    MethodParameters:
            Name  Flags
      type        
      messageLen  

  private void serverHelloRequest(sun.security.ssl.HandshakeMessage$HelloRequest);
    descriptor: (Lsun/security/ssl/HandshakeMessage$HelloRequest;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // sun.security.ssl.ClientHandshaker this
        start local 1 // sun.security.ssl.HandshakeMessage$HelloRequest mesg
         0: .line 344
            getstatic sun.security.ssl.ClientHandshaker.debug:Lsun/security/ssl/Debug;
            ifnull 2
            ldc "handshake"
            invokestatic sun.security.ssl.Debug.isOn:(Ljava/lang/String;)Z
            ifeq 2
         1: .line 345
            aload 1 /* mesg */
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            invokevirtual sun.security.ssl.HandshakeMessage$HelloRequest.print:(Ljava/io/PrintStream;)V
         2: .line 352
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.ClientHandshaker.state:I
            iconst_1
            if_icmpge 18
         3: .line 353
            aload 0 /* this */
            getfield sun.security.ssl.ClientHandshaker.secureRenegotiation:Z
            ifne 12
            getstatic sun.security.ssl.ClientHandshaker.allowUnsafeRenegotiation:Z
            ifne 12
         4: .line 355
            aload 0 /* this */
            getfield sun.security.ssl.ClientHandshaker.activeProtocolVersion: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_icmplt 8
         5: .line 357
            aload 0 /* this */
            bipush 100
            invokevirtual sun.security.ssl.ClientHandshaker.warningSE:(B)V
         6: .line 361
            aload 0 /* this */
            iconst_1
            putfield sun.security.ssl.ClientHandshaker.invalidated:Z
         7: .line 370
            goto 18
         8: .line 376
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            bipush 40
         9: .line 377
            ldc "Renegotiation is not allowed"
        10: .line 376
            invokevirtual sun.security.ssl.ClientHandshaker.fatalSE:(BLjava/lang/String;)V
        11: .line 379
            goto 18
        12: .line 380
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.ClientHandshaker.secureRenegotiation:Z
            ifne 17
        13: .line 381
            getstatic sun.security.ssl.ClientHandshaker.debug:Lsun/security/ssl/Debug;
            ifnull 17
            ldc "handshake"
            invokestatic sun.security.ssl.Debug.isOn:(Ljava/lang/String;)Z
            ifeq 17
        14: .line 382
            getstatic java.lang.System.out:Ljava/io/PrintStream;
        15: .line 383
            ldc "Warning: continue with insecure renegotiation"
        16: .line 382
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
        17: .line 386
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual sun.security.ssl.ClientHandshaker.kickstart:()V
        18: .line 389
      StackMap locals:
      StackMap stack:
            return
        end local 1 // sun.security.ssl.HandshakeMessage$HelloRequest mesg
        end local 0 // sun.security.ssl.ClientHandshaker this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   19     0  this  Lsun/security/ssl/ClientHandshaker;
            0   19     1  mesg  Lsun/security/ssl/HandshakeMessage$HelloRequest;
    Exceptions:
      throws java.io.IOException
    MethodParameters:
      Name  Flags
      mesg  

  private void serverHello(sun.security.ssl.HandshakeMessage$ServerHello);
    descriptor: (Lsun/security/ssl/HandshakeMessage$ServerHello;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=10, locals=9, args_size=2
        start local 0 // sun.security.ssl.ClientHandshaker this
        start local 1 // sun.security.ssl.HandshakeMessage$ServerHello mesg
         0: .line 404
            aload 0 /* this */
            iconst_0
            putfield sun.security.ssl.ClientHandshaker.serverKeyExchangeReceived:Z
         1: .line 405
            getstatic sun.security.ssl.ClientHandshaker.debug:Lsun/security/ssl/Debug;
            ifnull 3
            ldc "handshake"
            invokestatic sun.security.ssl.Debug.isOn:(Ljava/lang/String;)Z
            ifeq 3
         2: .line 406
            aload 1 /* mesg */
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            invokevirtual sun.security.ssl.HandshakeMessage$ServerHello.print:(Ljava/io/PrintStream;)V
         3: .line 410
      StackMap locals:
      StackMap stack:
            aload 1 /* mesg */
            getfield sun.security.ssl.HandshakeMessage$ServerHello.protocolVersion:Lsun/security/ssl/ProtocolVersion;
            astore 2 /* mesgVersion */
        start local 2 // sun.security.ssl.ProtocolVersion mesgVersion
         4: .line 411
            aload 0 /* this */
            aload 2 /* mesgVersion */
            invokevirtual sun.security.ssl.ClientHandshaker.isNegotiable:(Lsun/security/ssl/ProtocolVersion;)Z
            ifne 10
         5: .line 412
            new javax.net.ssl.SSLHandshakeException
            dup
         6: .line 413
            new java.lang.StringBuilder
            dup
            ldc "Server chose unsupported or disabled protocol: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
         7: .line 414
            aload 2 /* mesgVersion */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
         8: .line 413
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
         9: .line 412
            invokespecial javax.net.ssl.SSLHandshakeException.<init>:(Ljava/lang/String;)V
            athrow
        10: .line 419
      StackMap locals: sun.security.ssl.ProtocolVersion
      StackMap stack:
            aload 0 /* this */
            aload 2 /* mesgVersion */
            invokevirtual sun.security.ssl.ClientHandshaker.setVersion:(Lsun/security/ssl/ProtocolVersion;)V
        11: .line 423
            aload 1 /* mesg */
            getfield sun.security.ssl.HandshakeMessage$ServerHello.extensions:Lsun/security/ssl/HelloExtensions;
            getstatic sun.security.ssl.ExtensionType.EXT_RENEGOTIATION_INFO:Lsun/security/ssl/ExtensionType;
            invokevirtual sun.security.ssl.HelloExtensions.get:(Lsun/security/ssl/ExtensionType;)Lsun/security/ssl/HelloExtension;
        12: .line 422
            checkcast sun.security.ssl.RenegotiationInfoExtension
            astore 3 /* serverHelloRI */
        start local 3 // sun.security.ssl.RenegotiationInfoExtension serverHelloRI
        13: .line 424
            aload 3 /* serverHelloRI */
            ifnull 41
        14: .line 425
            aload 0 /* this */
            getfield sun.security.ssl.ClientHandshaker.isInitialHandshake:Z
            ifeq 21
        15: .line 427
            aload 3 /* serverHelloRI */
            invokevirtual sun.security.ssl.RenegotiationInfoExtension.isEmpty:()Z
            ifne 19
        16: .line 429
            aload 0 /* this */
            bipush 40
        17: .line 430
            ldc "The renegotiation_info field is not empty"
        18: .line 429
            invokevirtual sun.security.ssl.ClientHandshaker.fatalSE:(BLjava/lang/String;)V
        19: .line 433
      StackMap locals: sun.security.ssl.RenegotiationInfoExtension
      StackMap stack:
            aload 0 /* this */
            iconst_1
            putfield sun.security.ssl.ClientHandshaker.secureRenegotiation:Z
        20: .line 434
            goto 54
        21: .line 437
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.ClientHandshaker.secureRenegotiation:Z
            ifne 25
        22: .line 438
            aload 0 /* this */
            bipush 40
        23: .line 439
            ldc "Unexpected renegotiation indication extension"
        24: .line 438
            invokevirtual sun.security.ssl.ClientHandshaker.fatalSE:(BLjava/lang/String;)V
        25: .line 444
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.ClientHandshaker.clientVerifyData:[B
            arraylength
            aload 0 /* this */
            getfield sun.security.ssl.ClientHandshaker.serverVerifyData:[B
            arraylength
            iadd
            newarray 8
        26: .line 443
            astore 4 /* verifyData */
        start local 4 // byte[] verifyData
        27: .line 445
            aload 0 /* this */
            getfield sun.security.ssl.ClientHandshaker.clientVerifyData:[B
            iconst_0
            aload 4 /* verifyData */
        28: .line 446
            iconst_0
            aload 0 /* this */
            getfield sun.security.ssl.ClientHandshaker.clientVerifyData:[B
            arraylength
        29: .line 445
            invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
        30: .line 447
            aload 0 /* this */
            getfield sun.security.ssl.ClientHandshaker.serverVerifyData:[B
            iconst_0
            aload 4 /* verifyData */
        31: .line 448
            aload 0 /* this */
            getfield sun.security.ssl.ClientHandshaker.clientVerifyData:[B
            arraylength
            aload 0 /* this */
            getfield sun.security.ssl.ClientHandshaker.serverVerifyData:[B
            arraylength
        32: .line 447
            invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
        33: .line 449
            aload 4 /* verifyData */
        34: .line 450
            aload 3 /* serverHelloRI */
            invokevirtual sun.security.ssl.RenegotiationInfoExtension.getRenegotiatedConnection:()[B
        35: .line 449
            invokestatic java.security.MessageDigest.isEqual:([B[B)Z
        36: .line 450
            ifne 54
        37: .line 451
            aload 0 /* this */
            bipush 40
        38: .line 452
            ldc "Incorrect verify data in ServerHello renegotiation_info message"
        39: .line 451
            invokevirtual sun.security.ssl.ClientHandshaker.fatalSE:(BLjava/lang/String;)V
        end local 4 // byte[] verifyData
        40: .line 456
            goto 54
        41: .line 458
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.ClientHandshaker.isInitialHandshake:Z
            ifeq 50
        42: .line 459
            getstatic sun.security.ssl.ClientHandshaker.allowLegacyHelloMessages:Z
            ifne 46
        43: .line 461
            aload 0 /* this */
            bipush 40
        44: .line 462
            ldc "Failed to negotiate the use of secure renegotiation"
        45: .line 461
            invokevirtual sun.security.ssl.ClientHandshaker.fatalSE:(BLjava/lang/String;)V
        46: .line 465
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iconst_0
            putfield sun.security.ssl.ClientHandshaker.secureRenegotiation:Z
        47: .line 466
            getstatic sun.security.ssl.ClientHandshaker.debug:Lsun/security/ssl/Debug;
            ifnull 54
            ldc "handshake"
            invokestatic sun.security.ssl.Debug.isOn:(Ljava/lang/String;)Z
            ifeq 54
        48: .line 467
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            ldc "Warning: No renegotiation indication extension in ServerHello"
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
        49: .line 470
            goto 54
        50: .line 473
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.ClientHandshaker.secureRenegotiation:Z
            ifeq 54
        51: .line 474
            aload 0 /* this */
            bipush 40
        52: .line 475
            ldc "No renegotiation indication extension"
        53: .line 474
            invokevirtual sun.security.ssl.ClientHandshaker.fatalSE:(BLjava/lang/String;)V
        54: .line 488
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* mesg */
            getfield sun.security.ssl.HandshakeMessage$ServerHello.svr_random:Lsun/security/ssl/RandomCookie;
            putfield sun.security.ssl.ClientHandshaker.svr_random:Lsun/security/ssl/RandomCookie;
        55: .line 490
            aload 0 /* this */
            aload 1 /* mesg */
            getfield sun.security.ssl.HandshakeMessage$ServerHello.cipherSuite:Lsun/security/ssl/CipherSuite;
            invokevirtual sun.security.ssl.ClientHandshaker.isNegotiable:(Lsun/security/ssl/CipherSuite;)Z
            ifne 59
        56: .line 491
            aload 0 /* this */
            bipush 47
        57: .line 492
            new java.lang.StringBuilder
            dup
            ldc "Server selected improper ciphersuite "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* this */
            getfield sun.security.ssl.ClientHandshaker.cipherSuite:Lsun/security/ssl/CipherSuite;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        58: .line 491
            invokevirtual sun.security.ssl.ClientHandshaker.fatalSE:(BLjava/lang/String;)V
        59: .line 495
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* mesg */
            getfield sun.security.ssl.HandshakeMessage$ServerHello.cipherSuite:Lsun/security/ssl/CipherSuite;
            invokevirtual sun.security.ssl.ClientHandshaker.setCipherSuite:(Lsun/security/ssl/CipherSuite;)V
        60: .line 497
            aload 1 /* mesg */
            getfield sun.security.ssl.HandshakeMessage$ServerHello.compression_method:B
            ifeq 66
        61: .line 498
            aload 0 /* this */
            bipush 47
        62: .line 499
            new java.lang.StringBuilder
            dup
            ldc "compression type not supported, "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
        63: .line 500
            aload 1 /* mesg */
            getfield sun.security.ssl.HandshakeMessage$ServerHello.compression_method:B
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
        64: .line 499
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        65: .line 498
            invokevirtual sun.security.ssl.ClientHandshaker.fatalSE:(BLjava/lang/String;)V
        66: .line 505
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.ClientHandshaker.session:Lsun/security/ssl/SSLSessionImpl;
            ifnull 113
        67: .line 507
            aload 0 /* this */
            getfield sun.security.ssl.ClientHandshaker.session:Lsun/security/ssl/SSLSessionImpl;
            invokevirtual sun.security.ssl.SSLSessionImpl.getSessionId:()Lsun/security/ssl/SessionId;
            aload 1 /* mesg */
            getfield sun.security.ssl.HandshakeMessage$ServerHello.sessionId:Lsun/security/ssl/SessionId;
            invokevirtual sun.security.ssl.SessionId.equals:(Ljava/lang/Object;)Z
            ifeq 108
        68: .line 512
            aload 0 /* this */
            getfield sun.security.ssl.ClientHandshaker.session:Lsun/security/ssl/SSLSessionImpl;
            invokevirtual sun.security.ssl.SSLSessionImpl.getSuite:()Lsun/security/ssl/CipherSuite;
            astore 4 /* sessionSuite */
        start local 4 // sun.security.ssl.CipherSuite sessionSuite
        69: .line 513
            aload 0 /* this */
            getfield sun.security.ssl.ClientHandshaker.cipherSuite:Lsun/security/ssl/CipherSuite;
            aload 4 /* sessionSuite */
            if_acmpeq 73
        70: .line 514
            new javax.net.ssl.SSLProtocolException
            dup
        71: .line 515
            ldc "Server returned wrong cipher suite for session"
        72: .line 514
            invokespecial javax.net.ssl.SSLProtocolException.<init>:(Ljava/lang/String;)V
            athrow
        73: .line 519
      StackMap locals: sun.security.ssl.CipherSuite
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.ClientHandshaker.session:Lsun/security/ssl/SSLSessionImpl;
            invokevirtual sun.security.ssl.SSLSessionImpl.getProtocolVersion:()Lsun/security/ssl/ProtocolVersion;
            astore 5 /* sessionVersion */
        start local 5 // sun.security.ssl.ProtocolVersion sessionVersion
        74: .line 520
            aload 0 /* this */
            getfield sun.security.ssl.ClientHandshaker.protocolVersion:Lsun/security/ssl/ProtocolVersion;
            aload 5 /* sessionVersion */
            if_acmpeq 78
        75: .line 521
            new javax.net.ssl.SSLProtocolException
            dup
        76: .line 522
            ldc "Server resumed session with wrong protocol version"
        77: .line 521
            invokespecial javax.net.ssl.SSLProtocolException.<init>:(Ljava/lang/String;)V
            athrow
        78: .line 526
      StackMap locals: sun.security.ssl.ProtocolVersion
      StackMap stack:
            aload 4 /* sessionSuite */
            getfield sun.security.ssl.CipherSuite.keyExchange:Lsun/security/ssl/CipherSuite$KeyExchange;
            getstatic sun.security.ssl.CipherSuite$KeyExchange.K_KRB5:Lsun/security/ssl/CipherSuite$KeyExchange;
            if_acmpeq 80
        79: .line 527
            aload 4 /* sessionSuite */
            getfield sun.security.ssl.CipherSuite.keyExchange:Lsun/security/ssl/CipherSuite$KeyExchange;
            getstatic sun.security.ssl.CipherSuite$KeyExchange.K_KRB5_EXPORT:Lsun/security/ssl/CipherSuite$KeyExchange;
            if_acmpne 102
        80: .line 528
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.ClientHandshaker.session:Lsun/security/ssl/SSLSessionImpl;
            invokevirtual sun.security.ssl.SSLSessionImpl.getLocalPrincipal:()Ljava/security/Principal;
            astore 6 /* localPrincipal */
        start local 6 // java.security.Principal localPrincipal
        81: .line 530
            aconst_null
            astore 7 /* subject */
        start local 7 // javax.security.auth.Subject subject
        82: .line 533
            new sun.security.ssl.ClientHandshaker$1
            dup
            aload 0 /* this */
            invokespecial sun.security.ssl.ClientHandshaker$1.<init>:(Lsun/security/ssl/ClientHandshaker;)V
        83: .line 532
            invokestatic java.security.AccessController.doPrivileged:(Ljava/security/PrivilegedExceptionAction;)Ljava/lang/Object;
            checkcast javax.security.auth.Subject
            astore 7 /* subject */
        84: .line 539
            goto 89
      StackMap locals: sun.security.ssl.ClientHandshaker sun.security.ssl.HandshakeMessage$ServerHello sun.security.ssl.ProtocolVersion sun.security.ssl.RenegotiationInfoExtension sun.security.ssl.CipherSuite sun.security.ssl.ProtocolVersion java.security.Principal javax.security.auth.Subject
      StackMap stack: java.security.PrivilegedActionException
        85: pop
        86: .line 540
            aconst_null
            astore 7 /* subject */
        87: .line 541
            getstatic sun.security.ssl.ClientHandshaker.debug:Lsun/security/ssl/Debug;
            ifnull 89
            ldc "session"
            invokestatic sun.security.ssl.Debug.isOn:(Ljava/lang/String;)Z
            ifeq 89
        88: .line 542
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            ldc "Attempt to obtain subject failed!"
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
        89: .line 547
      StackMap locals:
      StackMap stack:
            aload 7 /* subject */
            ifnull 97
        90: .line 549
            aload 7 /* subject */
            ldc Ljavax/security/auth/kerberos/KerberosPrincipal;
            invokevirtual javax.security.auth.Subject.getPrincipals:(Ljava/lang/Class;)Ljava/util/Set;
        91: .line 548
            astore 8 /* principals */
        start local 8 // java.util.Set principals
        92: .line 550
            aload 8 /* principals */
            aload 6 /* localPrincipal */
            invokeinterface java.util.Set.contains:(Ljava/lang/Object;)Z
            ifne 94
        93: .line 551
            new javax.net.ssl.SSLProtocolException
            dup
            ldc "Server resumed session with wrong subject identity"
            invokespecial javax.net.ssl.SSLProtocolException.<init>:(Ljava/lang/String;)V
            athrow
        94: .line 554
      StackMap locals: java.util.Set
      StackMap stack:
            getstatic sun.security.ssl.ClientHandshaker.debug:Lsun/security/ssl/Debug;
            ifnull 102
            ldc "session"
            invokestatic sun.security.ssl.Debug.isOn:(Ljava/lang/String;)Z
            ifeq 102
        95: .line 555
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            ldc "Subject identity is same"
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
        end local 8 // java.util.Set principals
        96: .line 557
            goto 102
        97: .line 558
      StackMap locals:
      StackMap stack:
            getstatic sun.security.ssl.ClientHandshaker.debug:Lsun/security/ssl/Debug;
            ifnull 99
            ldc "session"
            invokestatic sun.security.ssl.Debug.isOn:(Ljava/lang/String;)Z
            ifeq 99
        98: .line 559
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            ldc "Kerberos credentials are not present in the current Subject; check if  javax.security.auth.useSubjectAsCreds system property has been set to false"
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
        99: .line 563
      StackMap locals:
      StackMap stack:
            new javax.net.ssl.SSLProtocolException
            dup
       100: .line 564
            ldc "Server resumed session with no subject"
       101: .line 563
            invokespecial javax.net.ssl.SSLProtocolException.<init>:(Ljava/lang/String;)V
            athrow
        end local 7 // javax.security.auth.Subject subject
        end local 6 // java.security.Principal localPrincipal
       102: .line 569
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iconst_1
            putfield sun.security.ssl.ClientHandshaker.resumingSession:Z
       103: .line 570
            aload 0 /* this */
            bipush 19
            putfield sun.security.ssl.ClientHandshaker.state:I
       104: .line 571
            aload 0 /* this */
            aload 0 /* this */
            getfield sun.security.ssl.ClientHandshaker.session:Lsun/security/ssl/SSLSessionImpl;
            invokevirtual sun.security.ssl.SSLSessionImpl.getMasterSecret:()Ljavax/crypto/SecretKey;
            invokevirtual sun.security.ssl.ClientHandshaker.calculateConnectionKeys:(Ljavax/crypto/SecretKey;)V
       105: .line 572
            getstatic sun.security.ssl.ClientHandshaker.debug:Lsun/security/ssl/Debug;
            ifnull 107
            ldc "session"
            invokestatic sun.security.ssl.Debug.isOn:(Ljava/lang/String;)Z
            ifeq 107
       106: .line 573
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            new java.lang.StringBuilder
            dup
            ldc "%% Server resumed "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* this */
            getfield sun.security.ssl.ClientHandshaker.session:Lsun/security/ssl/SSLSessionImpl;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
       107: .line 575
      StackMap locals:
      StackMap stack:
            return
        end local 5 // sun.security.ssl.ProtocolVersion sessionVersion
        end local 4 // sun.security.ssl.CipherSuite sessionSuite
       108: .line 581
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.ClientHandshaker.isInitialHandshake:Z
            ifeq 110
       109: .line 582
            aload 0 /* this */
            getfield sun.security.ssl.ClientHandshaker.session:Lsun/security/ssl/SSLSessionImpl;
            invokevirtual sun.security.ssl.SSLSessionImpl.invalidate:()V
       110: .line 584
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aconst_null
            putfield sun.security.ssl.ClientHandshaker.session:Lsun/security/ssl/SSLSessionImpl;
       111: .line 585
            aload 0 /* this */
            getfield sun.security.ssl.ClientHandshaker.enableNewSession:Z
            ifne 113
       112: .line 586
            new javax.net.ssl.SSLException
            dup
            ldc "New session creation is disabled"
            invokespecial javax.net.ssl.SSLException.<init>:(Ljava/lang/String;)V
            athrow
       113: .line 593
      StackMap locals:
      StackMap stack:
            aload 1 /* mesg */
            getfield sun.security.ssl.HandshakeMessage$ServerHello.extensions:Lsun/security/ssl/HelloExtensions;
       114: .line 594
            getstatic sun.security.ssl.ExtensionType.EXT_EXTENDED_MASTER_SECRET:Lsun/security/ssl/ExtensionType;
       115: .line 593
            invokevirtual sun.security.ssl.HelloExtensions.get:(Lsun/security/ssl/ExtensionType;)Lsun/security/ssl/HelloExtension;
            checkcast sun.security.ssl.ExtendedMasterSecretExtension
       116: .line 592
            astore 4 /* extendedMasterSecretExt */
        start local 4 // sun.security.ssl.ExtendedMasterSecretExtension extendedMasterSecretExt
       117: .line 595
            aload 4 /* extendedMasterSecretExt */
            ifnull 129
       118: .line 597
            getstatic sun.security.ssl.ClientHandshaker.useExtendedMasterSecret:Z
            ifeq 120
       119: .line 598
            aload 2 /* mesgVersion */
            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_icmplt 120
            aload 0 /* this */
            getfield sun.security.ssl.ClientHandshaker.requestedToUseEMS:Z
            ifne 123
       120: .line 599
      StackMap locals: sun.security.ssl.ExtendedMasterSecretExtension
      StackMap stack:
            aload 0 /* this */
            bipush 110
       121: .line 600
            ldc "Server sent the extended_master_secret extension improperly"
       122: .line 599
            invokevirtual sun.security.ssl.ClientHandshaker.fatalSE:(BLjava/lang/String;)V
       123: .line 607
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.ClientHandshaker.resumingSession:Z
            ifeq 143
            aload 0 /* this */
            getfield sun.security.ssl.ClientHandshaker.session:Lsun/security/ssl/SSLSessionImpl;
            ifnull 143
       124: .line 608
            aload 0 /* this */
            getfield sun.security.ssl.ClientHandshaker.session:Lsun/security/ssl/SSLSessionImpl;
            invokevirtual sun.security.ssl.SSLSessionImpl.getUseExtendedMasterSecret:()Z
            ifne 143
       125: .line 609
            aload 0 /* this */
            bipush 110
       126: .line 610
            ldc "Server sent an unexpected extended_master_secret extension on session resumption"
       127: .line 609
            invokevirtual sun.security.ssl.ClientHandshaker.fatalSE:(BLjava/lang/String;)V
       128: .line 613
            goto 143
       129: .line 614
      StackMap locals:
      StackMap stack:
            getstatic sun.security.ssl.ClientHandshaker.useExtendedMasterSecret:Z
            ifeq 133
            getstatic sun.security.ssl.ClientHandshaker.allowLegacyMasterSecret:Z
            ifne 133
       130: .line 618
            aload 0 /* this */
            bipush 40
       131: .line 619
            ldc "Extended Master Secret extension is required"
       132: .line 618
            invokevirtual sun.security.ssl.ClientHandshaker.fatalSE:(BLjava/lang/String;)V
       133: .line 622
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.ClientHandshaker.resumingSession:Z
            ifeq 143
            aload 0 /* this */
            getfield sun.security.ssl.ClientHandshaker.session:Lsun/security/ssl/SSLSessionImpl;
            ifnull 143
       134: .line 623
            aload 0 /* this */
            getfield sun.security.ssl.ClientHandshaker.session:Lsun/security/ssl/SSLSessionImpl;
            invokevirtual sun.security.ssl.SSLSessionImpl.getUseExtendedMasterSecret:()Z
            ifeq 139
       135: .line 628
            aload 0 /* this */
            bipush 40
       136: .line 629
            ldc "Missing Extended Master Secret extension on session resumption"
       137: .line 628
            invokevirtual sun.security.ssl.ClientHandshaker.fatalSE:(BLjava/lang/String;)V
       138: .line 631
            goto 143
      StackMap locals:
      StackMap stack:
       139: getstatic sun.security.ssl.ClientHandshaker.useExtendedMasterSecret:Z
            ifeq 143
            getstatic sun.security.ssl.ClientHandshaker.allowLegacyResumption:Z
            ifne 143
       140: .line 633
            aload 0 /* this */
            bipush 40
       141: .line 634
            ldc "Extended Master Secret extension is required"
       142: .line 633
            invokevirtual sun.security.ssl.ClientHandshaker.fatalSE:(BLjava/lang/String;)V
       143: .line 640
      StackMap locals:
      StackMap stack:
            aload 1 /* mesg */
            getfield sun.security.ssl.HandshakeMessage$ServerHello.extensions:Lsun/security/ssl/HelloExtensions;
            invokevirtual sun.security.ssl.HelloExtensions.list:()Ljava/util/List;
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 6
            goto 153
      StackMap locals: sun.security.ssl.ClientHandshaker sun.security.ssl.HandshakeMessage$ServerHello sun.security.ssl.ProtocolVersion sun.security.ssl.RenegotiationInfoExtension sun.security.ssl.ExtendedMasterSecretExtension top java.util.Iterator
      StackMap stack:
       144: aload 6
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast sun.security.ssl.HelloExtension
            astore 5 /* ext */
        start local 5 // sun.security.ssl.HelloExtension ext
       145: .line 641
            aload 5 /* ext */
            getfield sun.security.ssl.HelloExtension.type:Lsun/security/ssl/ExtensionType;
            astore 7 /* type */
        start local 7 // sun.security.ssl.ExtensionType type
       146: .line 642
            aload 7 /* type */
            getstatic sun.security.ssl.ExtensionType.EXT_ELLIPTIC_CURVES:Lsun/security/ssl/ExtensionType;
            if_acmpeq 153
       147: .line 643
            aload 7 /* type */
            getstatic sun.security.ssl.ExtensionType.EXT_EC_POINT_FORMATS:Lsun/security/ssl/ExtensionType;
            if_acmpeq 153
       148: .line 644
            aload 7 /* type */
            getstatic sun.security.ssl.ExtensionType.EXT_RENEGOTIATION_INFO:Lsun/security/ssl/ExtensionType;
            if_acmpeq 153
       149: .line 645
            aload 7 /* type */
            getstatic sun.security.ssl.ExtensionType.EXT_EXTENDED_MASTER_SECRET:Lsun/security/ssl/ExtensionType;
            if_acmpeq 153
       150: .line 646
            aload 0 /* this */
            bipush 110
       151: .line 647
            new java.lang.StringBuilder
            dup
            ldc "Server sent an unsupported extension: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 7 /* type */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
       152: .line 646
            invokevirtual sun.security.ssl.ClientHandshaker.fatalSE:(BLjava/lang/String;)V
        end local 7 // sun.security.ssl.ExtensionType type
        end local 5 // sun.security.ssl.HelloExtension ext
       153: .line 640
      StackMap locals:
      StackMap stack:
            aload 6
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 144
       154: .line 652
            aload 0 /* this */
       155: new sun.security.ssl.SSLSessionImpl
            dup
            aload 0 /* this */
            getfield sun.security.ssl.ClientHandshaker.protocolVersion:Lsun/security/ssl/ProtocolVersion;
            aload 0 /* this */
            getfield sun.security.ssl.ClientHandshaker.cipherSuite:Lsun/security/ssl/CipherSuite;
       156: .line 653
            aload 1 /* mesg */
            getfield sun.security.ssl.HandshakeMessage$ServerHello.sessionId:Lsun/security/ssl/SessionId;
            aload 0 /* this */
            invokevirtual sun.security.ssl.ClientHandshaker.getHostSE:()Ljava/lang/String;
            aload 0 /* this */
            invokevirtual sun.security.ssl.ClientHandshaker.getPortSE:()I
       157: .line 654
            aload 4 /* extendedMasterSecretExt */
            ifnull 158
            iconst_1
            goto 159
      StackMap locals: sun.security.ssl.ClientHandshaker sun.security.ssl.HandshakeMessage$ServerHello sun.security.ssl.ProtocolVersion sun.security.ssl.RenegotiationInfoExtension sun.security.ssl.ExtendedMasterSecretExtension
      StackMap stack: sun.security.ssl.ClientHandshaker new 155 new 155 sun.security.ssl.ProtocolVersion sun.security.ssl.CipherSuite sun.security.ssl.SessionId java.lang.String int
       158: iconst_0
       159: .line 655
      StackMap locals: sun.security.ssl.ClientHandshaker sun.security.ssl.HandshakeMessage$ServerHello sun.security.ssl.ProtocolVersion sun.security.ssl.RenegotiationInfoExtension sun.security.ssl.ExtendedMasterSecretExtension
      StackMap stack: sun.security.ssl.ClientHandshaker new 155 new 155 sun.security.ssl.ProtocolVersion sun.security.ssl.CipherSuite sun.security.ssl.SessionId java.lang.String int int
            aload 0 /* this */
            invokevirtual sun.security.ssl.ClientHandshaker.getEndpointIdentificationAlgorithmSE:()Ljava/lang/String;
            invokespecial sun.security.ssl.SSLSessionImpl.<init>:(Lsun/security/ssl/ProtocolVersion;Lsun/security/ssl/CipherSuite;Lsun/security/ssl/SessionId;Ljava/lang/String;IZLjava/lang/String;)V
       160: .line 652
            putfield sun.security.ssl.ClientHandshaker.session:Lsun/security/ssl/SSLSessionImpl;
       161: .line 656
            getstatic sun.security.ssl.ClientHandshaker.debug:Lsun/security/ssl/Debug;
            ifnull 163
            ldc "handshake"
            invokestatic sun.security.ssl.Debug.isOn:(Ljava/lang/String;)Z
            ifeq 163
       162: .line 657
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            new java.lang.StringBuilder
            dup
            ldc "** "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* this */
            getfield sun.security.ssl.ClientHandshaker.cipherSuite:Lsun/security/ssl/CipherSuite;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
       163: .line 659
      StackMap locals:
      StackMap stack:
            return
        end local 4 // sun.security.ssl.ExtendedMasterSecretExtension extendedMasterSecretExt
        end local 3 // sun.security.ssl.RenegotiationInfoExtension serverHelloRI
        end local 2 // sun.security.ssl.ProtocolVersion mesgVersion
        end local 1 // sun.security.ssl.HandshakeMessage$ServerHello mesg
        end local 0 // sun.security.ssl.ClientHandshaker this
      LocalVariableTable:
        Start  End  Slot                     Name  Signature
            0  164     0                     this  Lsun/security/ssl/ClientHandshaker;
            0  164     1                     mesg  Lsun/security/ssl/HandshakeMessage$ServerHello;
            4  164     2              mesgVersion  Lsun/security/ssl/ProtocolVersion;
           13  164     3            serverHelloRI  Lsun/security/ssl/RenegotiationInfoExtension;
           27   40     4               verifyData  [B
           69  108     4             sessionSuite  Lsun/security/ssl/CipherSuite;
           74  108     5           sessionVersion  Lsun/security/ssl/ProtocolVersion;
           81  102     6           localPrincipal  Ljava/security/Principal;
           82  102     7                  subject  Ljavax/security/auth/Subject;
           92   96     8               principals  Ljava/util/Set<Ljavax/security/auth/kerberos/KerberosPrincipal;>;
          117  164     4  extendedMasterSecretExt  Lsun/security/ssl/ExtendedMasterSecretExtension;
          145  153     5                      ext  Lsun/security/ssl/HelloExtension;
          146  153     7                     type  Lsun/security/ssl/ExtensionType;
      Exception table:
        from    to  target  type
          82    84      85  Class java.security.PrivilegedActionException
    Exceptions:
      throws java.io.IOException
    MethodParameters:
      Name  Flags
      mesg  

  private void serverKeyExchange(sun.security.ssl.HandshakeMessage$RSA_ServerKeyExchange);
    descriptor: (Lsun/security/ssl/HandshakeMessage$RSA_ServerKeyExchange;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // sun.security.ssl.ClientHandshaker this
        start local 1 // sun.security.ssl.HandshakeMessage$RSA_ServerKeyExchange mesg
         0: .line 668
            getstatic sun.security.ssl.ClientHandshaker.debug:Lsun/security/ssl/Debug;
            ifnull 2
            ldc "handshake"
            invokestatic sun.security.ssl.Debug.isOn:(Ljava/lang/String;)Z
            ifeq 2
         1: .line 669
            aload 1 /* mesg */
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            invokevirtual sun.security.ssl.HandshakeMessage$RSA_ServerKeyExchange.print:(Ljava/io/PrintStream;)V
         2: .line 671
      StackMap locals:
      StackMap stack:
            aload 1 /* mesg */
            aload 0 /* this */
            getfield sun.security.ssl.ClientHandshaker.serverKey:Ljava/security/PublicKey;
            aload 0 /* this */
            getfield sun.security.ssl.ClientHandshaker.clnt_random:Lsun/security/ssl/RandomCookie;
            aload 0 /* this */
            getfield sun.security.ssl.ClientHandshaker.svr_random:Lsun/security/ssl/RandomCookie;
            invokevirtual sun.security.ssl.HandshakeMessage$RSA_ServerKeyExchange.verify:(Ljava/security/PublicKey;Lsun/security/ssl/RandomCookie;Lsun/security/ssl/RandomCookie;)Z
            ifne 6
         3: .line 672
            aload 0 /* this */
            bipush 40
         4: .line 673
            ldc "server key exchange invalid"
         5: .line 672
            invokevirtual sun.security.ssl.ClientHandshaker.fatalSE:(BLjava/lang/String;)V
         6: .line 676
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* mesg */
            invokevirtual sun.security.ssl.HandshakeMessage$RSA_ServerKeyExchange.getPublicKey:()Ljava/security/PublicKey;
            putfield sun.security.ssl.ClientHandshaker.ephemeralServerKey:Ljava/security/PublicKey;
         7: .line 679
            aload 0 /* this */
            getfield sun.security.ssl.ClientHandshaker.algorithmConstraints:Lsun/security/util/AlgorithmConstraints;
         8: .line 680
            getstatic sun.security.util.CryptoPrimitive.KEY_AGREEMENT:Lsun/security/util/CryptoPrimitive;
            invokestatic java.util.EnumSet.of:(Ljava/lang/Enum;)Ljava/util/EnumSet;
            aload 0 /* this */
            getfield sun.security.ssl.ClientHandshaker.ephemeralServerKey:Ljava/security/PublicKey;
         9: .line 679
            invokeinterface sun.security.util.AlgorithmConstraints.permits:(Ljava/util/Set;Ljava/security/Key;)Z
        10: .line 680
            ifne 12
        11: .line 682
            new javax.net.ssl.SSLHandshakeException
            dup
            ldc "RSA ServerKeyExchange does not comply to algorithm constraints"
            invokespecial javax.net.ssl.SSLHandshakeException.<init>:(Ljava/lang/String;)V
            athrow
        12: .line 685
      StackMap locals:
      StackMap stack:
            return
        end local 1 // sun.security.ssl.HandshakeMessage$RSA_ServerKeyExchange mesg
        end local 0 // sun.security.ssl.ClientHandshaker this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   13     0  this  Lsun/security/ssl/ClientHandshaker;
            0   13     1  mesg  Lsun/security/ssl/HandshakeMessage$RSA_ServerKeyExchange;
    Exceptions:
      throws java.io.IOException, java.security.GeneralSecurityException
    MethodParameters:
      Name  Flags
      mesg  

  private void serverKeyExchange(sun.security.ssl.HandshakeMessage$DH_ServerKeyExchange);
    descriptor: (Lsun/security/ssl/HandshakeMessage$DH_ServerKeyExchange;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=6, locals=2, args_size=2
        start local 0 // sun.security.ssl.ClientHandshaker this
        start local 1 // sun.security.ssl.HandshakeMessage$DH_ServerKeyExchange mesg
         0: .line 696
            getstatic sun.security.ssl.ClientHandshaker.debug:Lsun/security/ssl/Debug;
            ifnull 2
            ldc "handshake"
            invokestatic sun.security.ssl.Debug.isOn:(Ljava/lang/String;)Z
            ifeq 2
         1: .line 697
            aload 1 /* mesg */
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            invokevirtual sun.security.ssl.HandshakeMessage$DH_ServerKeyExchange.print:(Ljava/io/PrintStream;)V
         2: .line 699
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            new sun.security.ssl.DHCrypt
            dup
            aload 1 /* mesg */
            invokevirtual sun.security.ssl.HandshakeMessage$DH_ServerKeyExchange.getModulus:()Ljava/math/BigInteger;
            aload 1 /* mesg */
            invokevirtual sun.security.ssl.HandshakeMessage$DH_ServerKeyExchange.getBase:()Ljava/math/BigInteger;
            aload 0 /* this */
            getfield sun.security.ssl.ClientHandshaker.sslContext:Lsun/security/ssl/SSLContextImpl;
            invokevirtual sun.security.ssl.SSLContextImpl.getSecureRandom:()Ljava/security/SecureRandom;
            invokespecial sun.security.ssl.DHCrypt.<init>:(Ljava/math/BigInteger;Ljava/math/BigInteger;Ljava/security/SecureRandom;)V
            putfield sun.security.ssl.ClientHandshaker.dh:Lsun/security/ssl/DHCrypt;
         3: .line 700
            aload 0 /* this */
            aload 1 /* mesg */
            invokevirtual sun.security.ssl.HandshakeMessage$DH_ServerKeyExchange.getServerPublicKey:()Ljava/math/BigInteger;
            putfield sun.security.ssl.ClientHandshaker.serverDH:Ljava/math/BigInteger;
         4: .line 703
            aload 0 /* this */
            getfield sun.security.ssl.ClientHandshaker.dh:Lsun/security/ssl/DHCrypt;
            aload 0 /* this */
            getfield sun.security.ssl.ClientHandshaker.algorithmConstraints:Lsun/security/util/AlgorithmConstraints;
            aload 0 /* this */
            getfield sun.security.ssl.ClientHandshaker.serverDH:Ljava/math/BigInteger;
            invokevirtual sun.security.ssl.DHCrypt.checkConstraints:(Lsun/security/util/AlgorithmConstraints;Ljava/math/BigInteger;)V
         5: .line 704
            return
        end local 1 // sun.security.ssl.HandshakeMessage$DH_ServerKeyExchange mesg
        end local 0 // sun.security.ssl.ClientHandshaker this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    6     0  this  Lsun/security/ssl/ClientHandshaker;
            0    6     1  mesg  Lsun/security/ssl/HandshakeMessage$DH_ServerKeyExchange;
    Exceptions:
      throws java.io.IOException
    MethodParameters:
      Name  Flags
      mesg  

  private void serverKeyExchange(sun.security.ssl.HandshakeMessage$ECDH_ServerKeyExchange);
    descriptor: (Lsun/security/ssl/HandshakeMessage$ECDH_ServerKeyExchange;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=3, args_size=2
        start local 0 // sun.security.ssl.ClientHandshaker this
        start local 1 // sun.security.ssl.HandshakeMessage$ECDH_ServerKeyExchange mesg
         0: .line 707
            getstatic sun.security.ssl.ClientHandshaker.debug:Lsun/security/ssl/Debug;
            ifnull 2
            ldc "handshake"
            invokestatic sun.security.ssl.Debug.isOn:(Ljava/lang/String;)Z
            ifeq 2
         1: .line 708
            aload 1 /* mesg */
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            invokevirtual sun.security.ssl.HandshakeMessage$ECDH_ServerKeyExchange.print:(Ljava/io/PrintStream;)V
         2: .line 710
      StackMap locals:
      StackMap stack:
            aload 1 /* mesg */
            invokevirtual sun.security.ssl.HandshakeMessage$ECDH_ServerKeyExchange.getPublicKey:()Ljava/security/interfaces/ECPublicKey;
            astore 2 /* key */
        start local 2 // java.security.interfaces.ECPublicKey key
         3: .line 711
            aload 0 /* this */
            new sun.security.ssl.ECDHCrypt
            dup
            aload 2 /* key */
            invokeinterface java.security.interfaces.ECPublicKey.getParams:()Ljava/security/spec/ECParameterSpec;
            aload 0 /* this */
            getfield sun.security.ssl.ClientHandshaker.sslContext:Lsun/security/ssl/SSLContextImpl;
            invokevirtual sun.security.ssl.SSLContextImpl.getSecureRandom:()Ljava/security/SecureRandom;
            invokespecial sun.security.ssl.ECDHCrypt.<init>:(Ljava/security/spec/ECParameterSpec;Ljava/security/SecureRandom;)V
            putfield sun.security.ssl.ClientHandshaker.ecdh:Lsun/security/ssl/ECDHCrypt;
         4: .line 712
            aload 0 /* this */
            aload 2 /* key */
            putfield sun.security.ssl.ClientHandshaker.ephemeralServerKey:Ljava/security/PublicKey;
         5: .line 715
            aload 0 /* this */
            getfield sun.security.ssl.ClientHandshaker.algorithmConstraints:Lsun/security/util/AlgorithmConstraints;
         6: .line 716
            getstatic sun.security.util.CryptoPrimitive.KEY_AGREEMENT:Lsun/security/util/CryptoPrimitive;
            invokestatic java.util.EnumSet.of:(Ljava/lang/Enum;)Ljava/util/EnumSet;
            aload 0 /* this */
            getfield sun.security.ssl.ClientHandshaker.ephemeralServerKey:Ljava/security/PublicKey;
         7: .line 715
            invokeinterface sun.security.util.AlgorithmConstraints.permits:(Ljava/util/Set;Ljava/security/Key;)Z
         8: .line 716
            ifne 10
         9: .line 718
            new javax.net.ssl.SSLHandshakeException
            dup
            ldc "ECDH ServerKeyExchange does not comply to algorithm constraints"
            invokespecial javax.net.ssl.SSLHandshakeException.<init>:(Ljava/lang/String;)V
            athrow
        10: .line 721
      StackMap locals: java.security.interfaces.ECPublicKey
      StackMap stack:
            return
        end local 2 // java.security.interfaces.ECPublicKey key
        end local 1 // sun.security.ssl.HandshakeMessage$ECDH_ServerKeyExchange mesg
        end local 0 // sun.security.ssl.ClientHandshaker this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   11     0  this  Lsun/security/ssl/ClientHandshaker;
            0   11     1  mesg  Lsun/security/ssl/HandshakeMessage$ECDH_ServerKeyExchange;
            3   11     2   key  Ljava/security/interfaces/ECPublicKey;
    Exceptions:
      throws java.io.IOException
    MethodParameters:
      Name  Flags
      mesg  

  private void serverHelloDone(sun.security.ssl.HandshakeMessage$ServerHelloDone);
    descriptor: (Lsun/security/ssl/HandshakeMessage$ServerHelloDone;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=7, locals=12, args_size=2
        start local 0 // sun.security.ssl.ClientHandshaker this
        start local 1 // sun.security.ssl.HandshakeMessage$ServerHelloDone mesg
         0: .line 728
            getstatic sun.security.ssl.ClientHandshaker.debug:Lsun/security/ssl/Debug;
            ifnull 2
            ldc "handshake"
            invokestatic sun.security.ssl.Debug.isOn:(Ljava/lang/String;)Z
            ifeq 2
         1: .line 729
            aload 1 /* mesg */
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            invokevirtual sun.security.ssl.HandshakeMessage$ServerHelloDone.print:(Ljava/io/PrintStream;)V
         2: .line 737
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.ClientHandshaker.input:Lsun/security/ssl/HandshakeInStream;
            invokevirtual sun.security.ssl.HandshakeInStream.digestNow:()V
         3: .line 744
            aconst_null
            astore 2 /* signingKey */
        start local 2 // java.security.PrivateKey signingKey
         4: .line 746
            aload 0 /* this */
            getfield sun.security.ssl.ClientHandshaker.certRequest:Lsun/security/ssl/HandshakeMessage$CertificateRequest;
            ifnull 60
         5: .line 747
            aload 0 /* this */
            getfield sun.security.ssl.ClientHandshaker.sslContext:Lsun/security/ssl/SSLContextImpl;
            invokevirtual sun.security.ssl.SSLContextImpl.getX509KeyManager:()Ljavax/net/ssl/X509ExtendedKeyManager;
            astore 3 /* km */
        start local 3 // javax.net.ssl.X509ExtendedKeyManager km
         6: .line 749
            new java.util.ArrayList
            dup
            iconst_4
            invokespecial java.util.ArrayList.<init>:(I)V
            astore 4 /* keytypesTmp */
        start local 4 // java.util.ArrayList keytypesTmp
         7: .line 751
            iconst_0
            istore 5 /* i */
        start local 5 // int i
         8: goto 22
         9: .line 754
      StackMap locals: sun.security.ssl.ClientHandshaker sun.security.ssl.HandshakeMessage$ServerHelloDone java.security.PrivateKey javax.net.ssl.X509ExtendedKeyManager java.util.ArrayList int
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.ClientHandshaker.certRequest:Lsun/security/ssl/HandshakeMessage$CertificateRequest;
            getfield sun.security.ssl.HandshakeMessage$CertificateRequest.types:[B
            iload 5 /* i */
            baload
            lookupswitch { // 3
                    1: 10
                    2: 12
                   64: 14
              default: 18
          }
        10: .line 756
      StackMap locals:
      StackMap stack:
            ldc "RSA"
            astore 6 /* typeName */
        start local 6 // java.lang.String typeName
        11: .line 757
            goto 19
        end local 6 // java.lang.String typeName
        12: .line 760
      StackMap locals:
      StackMap stack:
            ldc "DSA"
            astore 6 /* typeName */
        start local 6 // java.lang.String typeName
        13: .line 761
            goto 19
        end local 6 // java.lang.String typeName
        14: .line 765
      StackMap locals:
      StackMap stack:
            invokestatic sun.security.ssl.JsseJce.isEcAvailable:()Z
            ifeq 15
            ldc "EC"
            goto 16
      StackMap locals:
      StackMap stack:
        15: aconst_null
      StackMap locals:
      StackMap stack: java.lang.String
        16: astore 6 /* typeName */
        start local 6 // java.lang.String typeName
        17: .line 766
            goto 19
        end local 6 // java.lang.String typeName
        18: .line 780
      StackMap locals:
      StackMap stack:
            aconst_null
            astore 6 /* typeName */
        start local 6 // java.lang.String typeName
        19: .line 784
      StackMap locals: java.lang.String
      StackMap stack:
            aload 6 /* typeName */
            ifnull 21
            aload 4 /* keytypesTmp */
            aload 6 /* typeName */
            invokevirtual java.util.ArrayList.contains:(Ljava/lang/Object;)Z
            ifne 21
        20: .line 785
            aload 4 /* keytypesTmp */
            aload 6 /* typeName */
            invokevirtual java.util.ArrayList.add:(Ljava/lang/Object;)Z
            pop
        end local 6 // java.lang.String typeName
        21: .line 751
      StackMap locals:
      StackMap stack:
            iinc 5 /* i */ 1
      StackMap locals:
      StackMap stack:
        22: iload 5 /* i */
            aload 0 /* this */
            getfield sun.security.ssl.ClientHandshaker.certRequest:Lsun/security/ssl/HandshakeMessage$CertificateRequest;
            getfield sun.security.ssl.HandshakeMessage$CertificateRequest.types:[B
            arraylength
            if_icmplt 9
        end local 5 // int i
        23: .line 789
            aconst_null
            astore 5 /* alias */
        start local 5 // java.lang.String alias
        24: .line 790
            aload 4 /* keytypesTmp */
            invokevirtual java.util.ArrayList.size:()I
            istore 6 /* keytypesTmpSize */
        start local 6 // int keytypesTmpSize
        25: .line 791
            iload 6 /* keytypesTmpSize */
            ifeq 36
        26: .line 793
            aload 4 /* keytypesTmp */
            iload 6 /* keytypesTmpSize */
            anewarray java.lang.String
            invokevirtual java.util.ArrayList.toArray:([Ljava/lang/Object;)[Ljava/lang/Object;
            checkcast java.lang.String[]
        27: .line 792
            astore 7 /* keytypes */
        start local 7 // java.lang.String[] keytypes
        28: .line 795
            aload 0 /* this */
            getfield sun.security.ssl.ClientHandshaker.conn:Lsun/security/ssl/SSLSocketImpl;
            ifnull 33
        29: .line 796
            aload 3 /* km */
            aload 7 /* keytypes */
        30: .line 797
            aload 0 /* this */
            getfield sun.security.ssl.ClientHandshaker.certRequest:Lsun/security/ssl/HandshakeMessage$CertificateRequest;
            invokevirtual sun.security.ssl.HandshakeMessage$CertificateRequest.getAuthorities:()[Ljavax/security/auth/x500/X500Principal;
            aload 0 /* this */
            getfield sun.security.ssl.ClientHandshaker.conn:Lsun/security/ssl/SSLSocketImpl;
        31: .line 796
            invokevirtual javax.net.ssl.X509ExtendedKeyManager.chooseClientAlias:([Ljava/lang/String;[Ljava/security/Principal;Ljava/net/Socket;)Ljava/lang/String;
            astore 5 /* alias */
        32: .line 798
            goto 36
        33: .line 799
      StackMap locals: sun.security.ssl.ClientHandshaker sun.security.ssl.HandshakeMessage$ServerHelloDone java.security.PrivateKey javax.net.ssl.X509ExtendedKeyManager java.util.ArrayList java.lang.String int java.lang.String[]
      StackMap stack:
            aload 3 /* km */
            aload 7 /* keytypes */
        34: .line 800
            aload 0 /* this */
            getfield sun.security.ssl.ClientHandshaker.certRequest:Lsun/security/ssl/HandshakeMessage$CertificateRequest;
            invokevirtual sun.security.ssl.HandshakeMessage$CertificateRequest.getAuthorities:()[Ljavax/security/auth/x500/X500Principal;
            aload 0 /* this */
            getfield sun.security.ssl.ClientHandshaker.engine:Lsun/security/ssl/SSLEngineImpl;
        35: .line 799
            invokevirtual javax.net.ssl.X509ExtendedKeyManager.chooseEngineClientAlias:([Ljava/lang/String;[Ljava/security/Principal;Ljavax/net/ssl/SSLEngine;)Ljava/lang/String;
            astore 5 /* alias */
        end local 7 // java.lang.String[] keytypes
        36: .line 804
      StackMap locals:
      StackMap stack:
            aconst_null
            astore 7 /* m1 */
        start local 7 // sun.security.ssl.HandshakeMessage$CertificateMsg m1
        37: .line 805
            aload 5 /* alias */
            ifnull 51
        38: .line 806
            aload 3 /* km */
            aload 5 /* alias */
            invokevirtual javax.net.ssl.X509ExtendedKeyManager.getCertificateChain:(Ljava/lang/String;)[Ljava/security/cert/X509Certificate;
            astore 8 /* certs */
        start local 8 // java.security.cert.X509Certificate[] certs
        39: .line 807
            aload 8 /* certs */
            ifnull 51
            aload 8 /* certs */
            arraylength
            ifeq 51
        40: .line 808
            aload 8 /* certs */
            iconst_0
            aaload
            invokevirtual java.security.cert.X509Certificate.getPublicKey:()Ljava/security/PublicKey;
            astore 9 /* publicKey */
        start local 9 // java.security.PublicKey publicKey
        41: .line 810
            aload 9 /* publicKey */
            instanceof java.security.interfaces.ECPublicKey
            ifeq 46
        42: .line 811
            aload 9 /* publicKey */
            checkcast java.security.interfaces.ECPublicKey
            invokeinterface java.security.interfaces.ECPublicKey.getParams:()Ljava/security/spec/ECParameterSpec;
            astore 10 /* params */
        start local 10 // java.security.spec.ECParameterSpec params
        43: .line 812
            aload 10 /* params */
            invokestatic sun.security.ssl.SupportedEllipticCurvesExtension.getCurveIndex:(Ljava/security/spec/ECParameterSpec;)I
            istore 11 /* index */
        start local 11 // int index
        44: .line 813
            iload 11 /* index */
            invokestatic sun.security.ssl.SupportedEllipticCurvesExtension.isSupported:(I)Z
            ifne 46
        45: .line 814
            aconst_null
            astore 9 /* publicKey */
        end local 11 // int index
        end local 10 // java.security.spec.ECParameterSpec params
        46: .line 817
      StackMap locals: sun.security.ssl.HandshakeMessage$CertificateMsg java.security.cert.X509Certificate[] java.security.PublicKey
      StackMap stack:
            aload 9 /* publicKey */
            ifnull 51
        47: .line 818
            new sun.security.ssl.HandshakeMessage$CertificateMsg
            dup
            aload 8 /* certs */
            invokespecial sun.security.ssl.HandshakeMessage$CertificateMsg.<init>:([Ljava/security/cert/X509Certificate;)V
            astore 7 /* m1 */
        48: .line 819
            aload 3 /* km */
            aload 5 /* alias */
            invokevirtual javax.net.ssl.X509ExtendedKeyManager.getPrivateKey:(Ljava/lang/String;)Ljava/security/PrivateKey;
            astore 2 /* signingKey */
        49: .line 820
            aload 0 /* this */
            getfield sun.security.ssl.ClientHandshaker.session:Lsun/security/ssl/SSLSessionImpl;
            aload 2 /* signingKey */
            invokevirtual sun.security.ssl.SSLSessionImpl.setLocalPrivateKey:(Ljava/security/PrivateKey;)V
        50: .line 821
            aload 0 /* this */
            getfield sun.security.ssl.ClientHandshaker.session:Lsun/security/ssl/SSLSessionImpl;
            aload 8 /* certs */
            invokevirtual sun.security.ssl.SSLSessionImpl.setLocalCertificates:([Ljava/security/cert/X509Certificate;)V
        end local 9 // java.security.PublicKey publicKey
        end local 8 // java.security.cert.X509Certificate[] certs
        51: .line 825
      StackMap locals:
      StackMap stack:
            aload 7 /* m1 */
            ifnonnull 56
        52: .line 831
            aload 0 /* this */
            getfield sun.security.ssl.ClientHandshaker.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_icmplt 55
        53: .line 832
            new sun.security.ssl.HandshakeMessage$CertificateMsg
            dup
            iconst_0
            anewarray java.security.cert.X509Certificate
            invokespecial sun.security.ssl.HandshakeMessage$CertificateMsg.<init>:([Ljava/security/cert/X509Certificate;)V
            astore 7 /* m1 */
        54: .line 833
            goto 56
        55: .line 834
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            bipush 41
            invokevirtual sun.security.ssl.ClientHandshaker.warningSE:(B)V
        56: .line 841
      StackMap locals:
      StackMap stack:
            aload 7 /* m1 */
            ifnull 60
        57: .line 842
            getstatic sun.security.ssl.ClientHandshaker.debug:Lsun/security/ssl/Debug;
            ifnull 59
            ldc "handshake"
            invokestatic sun.security.ssl.Debug.isOn:(Ljava/lang/String;)Z
            ifeq 59
        58: .line 843
            aload 7 /* m1 */
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            invokevirtual sun.security.ssl.HandshakeMessage$CertificateMsg.print:(Ljava/io/PrintStream;)V
        59: .line 845
      StackMap locals:
      StackMap stack:
            aload 7 /* m1 */
            aload 0 /* this */
            getfield sun.security.ssl.ClientHandshaker.output:Lsun/security/ssl/HandshakeOutStream;
            invokevirtual sun.security.ssl.HandshakeMessage$CertificateMsg.write:(Lsun/security/ssl/HandshakeOutStream;)V
        end local 7 // sun.security.ssl.HandshakeMessage$CertificateMsg m1
        end local 6 // int keytypesTmpSize
        end local 5 // java.lang.String alias
        end local 4 // java.util.ArrayList keytypesTmp
        end local 3 // javax.net.ssl.X509ExtendedKeyManager km
        60: .line 856
      StackMap locals: sun.security.ssl.ClientHandshaker sun.security.ssl.HandshakeMessage$ServerHelloDone java.security.PrivateKey
      StackMap stack:
            invokestatic sun.security.ssl.ClientHandshaker.$SWITCH_TABLE$sun$security$ssl$CipherSuite$KeyExchange:()[I
            aload 0 /* this */
            getfield sun.security.ssl.ClientHandshaker.keyExchange:Lsun/security/ssl/CipherSuite$KeyExchange;
            invokevirtual sun.security.ssl.CipherSuite$KeyExchange.ordinal:()I
            iaload
            tableswitch { // 2 - 15
                    2: 61
                    3: 61
                    4: 82
                    5: 82
                    6: 84
                    7: 84
                    8: 84
                    9: 96
                   10: 96
                   11: 90
                   12: 90
                   13: 90
                   14: 108
                   15: 108
              default: 119
          }
        61: .line 860
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.ClientHandshaker.serverKey:Ljava/security/PublicKey;
            ifnonnull 65
        62: .line 861
            new javax.net.ssl.SSLProtocolException
            dup
        63: .line 862
            ldc "Server did not send certificate message"
        64: .line 861
            invokespecial javax.net.ssl.SSLProtocolException.<init>:(Ljava/lang/String;)V
            athrow
        65: .line 865
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.ClientHandshaker.serverKey:Ljava/security/PublicKey;
            instanceof java.security.interfaces.RSAPublicKey
            ifne 69
        66: .line 866
            new javax.net.ssl.SSLProtocolException
            dup
        67: .line 867
            ldc "Server certificate does not include an RSA key"
        68: .line 866
            invokespecial javax.net.ssl.SSLProtocolException.<init>:(Ljava/lang/String;)V
            athrow
        69: .line 885
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.ClientHandshaker.keyExchange:Lsun/security/ssl/CipherSuite$KeyExchange;
            getstatic sun.security.ssl.CipherSuite$KeyExchange.K_RSA:Lsun/security/ssl/CipherSuite$KeyExchange;
            if_acmpne 72
        70: .line 886
            aload 0 /* this */
            getfield sun.security.ssl.ClientHandshaker.serverKey:Ljava/security/PublicKey;
            astore 4 /* key */
        start local 4 // java.security.PublicKey key
        71: .line 887
            goto 78
        end local 4 // java.security.PublicKey key
        72: .line 888
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.ClientHandshaker.serverKey:Ljava/security/PublicKey;
            invokestatic sun.security.ssl.JsseJce.getRSAKeyLength:(Ljava/security/PublicKey;)I
            sipush 512
            if_icmpgt 75
        73: .line 891
            aload 0 /* this */
            getfield sun.security.ssl.ClientHandshaker.serverKey:Ljava/security/PublicKey;
            astore 4 /* key */
        start local 4 // java.security.PublicKey key
        74: .line 892
            goto 78
        end local 4 // java.security.PublicKey key
        75: .line 893
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.ClientHandshaker.ephemeralServerKey:Ljava/security/PublicKey;
            ifnonnull 77
        76: .line 894
            new javax.net.ssl.SSLProtocolException
            dup
            ldc "Server did not send a RSA_EXPORT Server Key Exchange message"
            invokespecial javax.net.ssl.SSLProtocolException.<init>:(Ljava/lang/String;)V
            athrow
        77: .line 897
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.ClientHandshaker.ephemeralServerKey:Ljava/security/PublicKey;
            astore 4 /* key */
        start local 4 // java.security.PublicKey key
        78: .line 901
      StackMap locals: sun.security.ssl.ClientHandshaker sun.security.ssl.HandshakeMessage$ServerHelloDone java.security.PrivateKey top java.security.PublicKey
      StackMap stack:
            new sun.security.ssl.RSAClientKeyExchange
            dup
            aload 0 /* this */
            getfield sun.security.ssl.ClientHandshaker.protocolVersion:Lsun/security/ssl/ProtocolVersion;
            aload 0 /* this */
            getfield sun.security.ssl.ClientHandshaker.maxProtocolVersion:Lsun/security/ssl/ProtocolVersion;
        79: .line 902
            aload 0 /* this */
            getfield sun.security.ssl.ClientHandshaker.sslContext:Lsun/security/ssl/SSLContextImpl;
            invokevirtual sun.security.ssl.SSLContextImpl.getSecureRandom:()Ljava/security/SecureRandom;
            aload 4 /* key */
        80: .line 901
            invokespecial sun.security.ssl.RSAClientKeyExchange.<init>:(Lsun/security/ssl/ProtocolVersion;Lsun/security/ssl/ProtocolVersion;Ljava/security/SecureRandom;Ljava/security/PublicKey;)V
            astore 3 /* m2 */
        start local 3 // sun.security.ssl.HandshakeMessage m2
        81: .line 903
            goto 122
        end local 4 // java.security.PublicKey key
        end local 3 // sun.security.ssl.HandshakeMessage m2
        82: .line 918
      StackMap locals: sun.security.ssl.ClientHandshaker sun.security.ssl.HandshakeMessage$ServerHelloDone java.security.PrivateKey
      StackMap stack:
            new sun.security.ssl.DHClientKeyExchange
            dup
            invokespecial sun.security.ssl.DHClientKeyExchange.<init>:()V
            astore 3 /* m2 */
        start local 3 // sun.security.ssl.HandshakeMessage m2
        83: .line 919
            goto 122
        end local 3 // sun.security.ssl.HandshakeMessage m2
        84: .line 923
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.ClientHandshaker.dh:Lsun/security/ssl/DHCrypt;
            ifnonnull 88
        85: .line 924
            new javax.net.ssl.SSLProtocolException
            dup
        86: .line 925
            ldc "Server did not send a DH Server Key Exchange message"
        87: .line 924
            invokespecial javax.net.ssl.SSLProtocolException.<init>:(Ljava/lang/String;)V
            athrow
        88: .line 927
      StackMap locals:
      StackMap stack:
            new sun.security.ssl.DHClientKeyExchange
            dup
            aload 0 /* this */
            getfield sun.security.ssl.ClientHandshaker.dh:Lsun/security/ssl/DHCrypt;
            invokevirtual sun.security.ssl.DHCrypt.getPublicKey:()Ljava/math/BigInteger;
            invokespecial sun.security.ssl.DHClientKeyExchange.<init>:(Ljava/math/BigInteger;)V
            astore 3 /* m2 */
        start local 3 // sun.security.ssl.HandshakeMessage m2
        89: .line 928
            goto 122
        end local 3 // sun.security.ssl.HandshakeMessage m2
        90: .line 932
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.ClientHandshaker.ecdh:Lsun/security/ssl/ECDHCrypt;
            ifnonnull 94
        91: .line 933
            new javax.net.ssl.SSLProtocolException
            dup
        92: .line 934
            ldc "Server did not send a ECDH Server Key Exchange message"
        93: .line 933
            invokespecial javax.net.ssl.SSLProtocolException.<init>:(Ljava/lang/String;)V
            athrow
        94: .line 936
      StackMap locals:
      StackMap stack:
            new sun.security.ssl.ECDHClientKeyExchange
            dup
            aload 0 /* this */
            getfield sun.security.ssl.ClientHandshaker.ecdh:Lsun/security/ssl/ECDHCrypt;
            invokevirtual sun.security.ssl.ECDHCrypt.getPublicKey:()Ljava/security/PublicKey;
            invokespecial sun.security.ssl.ECDHClientKeyExchange.<init>:(Ljava/security/PublicKey;)V
            astore 3 /* m2 */
        start local 3 // sun.security.ssl.HandshakeMessage m2
        95: .line 937
            goto 122
        end local 3 // sun.security.ssl.HandshakeMessage m2
        96: .line 940
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.ClientHandshaker.serverKey:Ljava/security/PublicKey;
            ifnonnull 100
        97: .line 941
            new javax.net.ssl.SSLProtocolException
            dup
        98: .line 942
            ldc "Server did not send certificate message"
        99: .line 941
            invokespecial javax.net.ssl.SSLProtocolException.<init>:(Ljava/lang/String;)V
            athrow
       100: .line 944
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.ClientHandshaker.serverKey:Ljava/security/PublicKey;
            instanceof java.security.interfaces.ECPublicKey
            ifne 104
       101: .line 945
            new javax.net.ssl.SSLProtocolException
            dup
       102: .line 946
            ldc "Server certificate does not include an EC key"
       103: .line 945
            invokespecial javax.net.ssl.SSLProtocolException.<init>:(Ljava/lang/String;)V
            athrow
       104: .line 948
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.ClientHandshaker.serverKey:Ljava/security/PublicKey;
            checkcast java.security.interfaces.ECPublicKey
            invokeinterface java.security.interfaces.ECPublicKey.getParams:()Ljava/security/spec/ECParameterSpec;
            astore 5 /* params */
        start local 5 // java.security.spec.ECParameterSpec params
       105: .line 949
            aload 0 /* this */
            new sun.security.ssl.ECDHCrypt
            dup
            aload 5 /* params */
            aload 0 /* this */
            getfield sun.security.ssl.ClientHandshaker.sslContext:Lsun/security/ssl/SSLContextImpl;
            invokevirtual sun.security.ssl.SSLContextImpl.getSecureRandom:()Ljava/security/SecureRandom;
            invokespecial sun.security.ssl.ECDHCrypt.<init>:(Ljava/security/spec/ECParameterSpec;Ljava/security/SecureRandom;)V
            putfield sun.security.ssl.ClientHandshaker.ecdh:Lsun/security/ssl/ECDHCrypt;
       106: .line 950
            new sun.security.ssl.ECDHClientKeyExchange
            dup
            aload 0 /* this */
            getfield sun.security.ssl.ClientHandshaker.ecdh:Lsun/security/ssl/ECDHCrypt;
            invokevirtual sun.security.ssl.ECDHCrypt.getPublicKey:()Ljava/security/PublicKey;
            invokespecial sun.security.ssl.ECDHClientKeyExchange.<init>:(Ljava/security/PublicKey;)V
            astore 3 /* m2 */
        start local 3 // sun.security.ssl.HandshakeMessage m2
       107: .line 951
            goto 122
        end local 5 // java.security.spec.ECParameterSpec params
        end local 3 // sun.security.ssl.HandshakeMessage m2
       108: .line 954
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual sun.security.ssl.ClientHandshaker.getHostSE:()Ljava/lang/String;
            astore 6 /* hostname */
        start local 6 // java.lang.String hostname
       109: .line 955
            aload 6 /* hostname */
            ifnonnull 111
       110: .line 956
            new java.io.IOException
            dup
            ldc "Hostname is required to use Kerberos cipher suites"
            invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
            athrow
       111: .line 959
      StackMap locals: sun.security.ssl.ClientHandshaker sun.security.ssl.HandshakeMessage$ServerHelloDone java.security.PrivateKey top top top java.lang.String
      StackMap stack:
            new sun.security.ssl.KerberosClientKeyExchange
            dup
       112: .line 960
            aload 6 /* hostname */
            aload 0 /* this */
            invokevirtual sun.security.ssl.ClientHandshaker.isLoopbackSE:()Z
            aload 0 /* this */
            invokevirtual sun.security.ssl.ClientHandshaker.getAccSE:()Ljava/security/AccessControlContext;
            aload 0 /* this */
            getfield sun.security.ssl.ClientHandshaker.protocolVersion:Lsun/security/ssl/ProtocolVersion;
       113: .line 961
            aload 0 /* this */
            getfield sun.security.ssl.ClientHandshaker.sslContext:Lsun/security/ssl/SSLContextImpl;
            invokevirtual sun.security.ssl.SSLContextImpl.getSecureRandom:()Ljava/security/SecureRandom;
       114: .line 959
            invokespecial sun.security.ssl.KerberosClientKeyExchange.<init>:(Ljava/lang/String;ZLjava/security/AccessControlContext;Lsun/security/ssl/ProtocolVersion;Ljava/security/SecureRandom;)V
            astore 7 /* kerberosMsg */
        start local 7 // sun.security.ssl.KerberosClientKeyExchange kerberosMsg
       115: .line 963
            aload 0 /* this */
            getfield sun.security.ssl.ClientHandshaker.session:Lsun/security/ssl/SSLSessionImpl;
            aload 7 /* kerberosMsg */
            invokevirtual sun.security.ssl.KerberosClientKeyExchange.getPeerPrincipal:()Ljavax/security/auth/kerberos/KerberosPrincipal;
            invokevirtual sun.security.ssl.SSLSessionImpl.setPeerPrincipal:(Ljava/security/Principal;)V
       116: .line 964
            aload 0 /* this */
            getfield sun.security.ssl.ClientHandshaker.session:Lsun/security/ssl/SSLSessionImpl;
            aload 7 /* kerberosMsg */
            invokevirtual sun.security.ssl.KerberosClientKeyExchange.getLocalPrincipal:()Ljavax/security/auth/kerberos/KerberosPrincipal;
            invokevirtual sun.security.ssl.SSLSessionImpl.setLocalPrincipal:(Ljava/security/Principal;)V
       117: .line 965
            aload 7 /* kerberosMsg */
            astore 3 /* m2 */
        start local 3 // sun.security.ssl.HandshakeMessage m2
       118: .line 966
            goto 122
        end local 7 // sun.security.ssl.KerberosClientKeyExchange kerberosMsg
        end local 6 // java.lang.String hostname
        end local 3 // sun.security.ssl.HandshakeMessage m2
       119: .line 969
      StackMap locals: sun.security.ssl.ClientHandshaker sun.security.ssl.HandshakeMessage$ServerHelloDone java.security.PrivateKey
      StackMap stack:
            new java.lang.RuntimeException
            dup
       120: .line 970
            new java.lang.StringBuilder
            dup
            ldc "Unsupported key exchange: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* this */
            getfield sun.security.ssl.ClientHandshaker.keyExchange:Lsun/security/ssl/CipherSuite$KeyExchange;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
       121: .line 969
            invokespecial java.lang.RuntimeException.<init>:(Ljava/lang/String;)V
            athrow
        start local 3 // sun.security.ssl.HandshakeMessage m2
       122: .line 972
      StackMap locals: sun.security.ssl.HandshakeMessage
      StackMap stack:
            getstatic sun.security.ssl.ClientHandshaker.debug:Lsun/security/ssl/Debug;
            ifnull 124
            ldc "handshake"
            invokestatic sun.security.ssl.Debug.isOn:(Ljava/lang/String;)Z
            ifeq 124
       123: .line 973
            aload 3 /* m2 */
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            invokevirtual sun.security.ssl.HandshakeMessage.print:(Ljava/io/PrintStream;)V
       124: .line 975
      StackMap locals:
      StackMap stack:
            aload 3 /* m2 */
            aload 0 /* this */
            getfield sun.security.ssl.ClientHandshaker.output:Lsun/security/ssl/HandshakeOutStream;
            invokevirtual sun.security.ssl.HandshakeMessage.write:(Lsun/security/ssl/HandshakeOutStream;)V
       125: .line 987
            aload 0 /* this */
            getfield sun.security.ssl.ClientHandshaker.output:Lsun/security/ssl/HandshakeOutStream;
            invokevirtual sun.security.ssl.HandshakeOutStream.doHashes:()V
       126: .line 988
            aload 0 /* this */
            getfield sun.security.ssl.ClientHandshaker.output:Lsun/security/ssl/HandshakeOutStream;
            invokevirtual sun.security.ssl.HandshakeOutStream.flush:()V
       127: .line 998
            invokestatic sun.security.ssl.ClientHandshaker.$SWITCH_TABLE$sun$security$ssl$CipherSuite$KeyExchange:()[I
            aload 0 /* this */
            getfield sun.security.ssl.ClientHandshaker.keyExchange:Lsun/security/ssl/CipherSuite$KeyExchange;
            invokevirtual sun.security.ssl.CipherSuite$KeyExchange.ordinal:()I
            iaload
            tableswitch { // 2 - 15
                    2: 128
                    3: 128
                    4: 140
                    5: 140
                    6: 134
                    7: 134
                    8: 134
                    9: 138
                   10: 138
                   11: 136
                   12: 136
                   13: 136
                   14: 130
                   15: 130
              default: 140
          }
       128: .line 1001
      StackMap locals:
      StackMap stack:
            aload 3 /* m2 */
            checkcast sun.security.ssl.RSAClientKeyExchange
            getfield sun.security.ssl.RSAClientKeyExchange.preMaster:Ljavax/crypto/SecretKey;
            astore 4 /* preMasterSecret */
        start local 4 // javax.crypto.SecretKey preMasterSecret
       129: .line 1002
            goto 141
        end local 4 // javax.crypto.SecretKey preMasterSecret
       130: .line 1006
      StackMap locals:
      StackMap stack:
            aload 3 /* m2 */
            checkcast sun.security.ssl.KerberosClientKeyExchange
            invokevirtual sun.security.ssl.KerberosClientKeyExchange.getPreMasterSecret:()Lsun/security/ssl/KerberosPreMasterSecret;
            invokevirtual sun.security.ssl.KerberosPreMasterSecret.getUnencrypted:()[B
       131: .line 1005
            astore 5 /* secretBytes */
        start local 5 // byte[] secretBytes
       132: .line 1007
            new javax.crypto.spec.SecretKeySpec
            dup
            aload 5 /* secretBytes */
            ldc "TlsPremasterSecret"
            invokespecial javax.crypto.spec.SecretKeySpec.<init>:([BLjava/lang/String;)V
            astore 4 /* preMasterSecret */
        start local 4 // javax.crypto.SecretKey preMasterSecret
       133: .line 1008
            goto 141
        end local 5 // byte[] secretBytes
        end local 4 // javax.crypto.SecretKey preMasterSecret
       134: .line 1012
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.ClientHandshaker.dh:Lsun/security/ssl/DHCrypt;
            aload 0 /* this */
            getfield sun.security.ssl.ClientHandshaker.serverDH:Ljava/math/BigInteger;
            iconst_1
            invokevirtual sun.security.ssl.DHCrypt.getAgreedSecret:(Ljava/math/BigInteger;Z)Ljavax/crypto/SecretKey;
            astore 4 /* preMasterSecret */
        start local 4 // javax.crypto.SecretKey preMasterSecret
       135: .line 1013
            goto 141
        end local 4 // javax.crypto.SecretKey preMasterSecret
       136: .line 1017
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.ClientHandshaker.ecdh:Lsun/security/ssl/ECDHCrypt;
            aload 0 /* this */
            getfield sun.security.ssl.ClientHandshaker.ephemeralServerKey:Ljava/security/PublicKey;
            invokevirtual sun.security.ssl.ECDHCrypt.getAgreedSecret:(Ljava/security/PublicKey;)Ljavax/crypto/SecretKey;
            astore 4 /* preMasterSecret */
        start local 4 // javax.crypto.SecretKey preMasterSecret
       137: .line 1018
            goto 141
        end local 4 // javax.crypto.SecretKey preMasterSecret
       138: .line 1021
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.ClientHandshaker.ecdh:Lsun/security/ssl/ECDHCrypt;
            aload 0 /* this */
            getfield sun.security.ssl.ClientHandshaker.serverKey:Ljava/security/PublicKey;
            invokevirtual sun.security.ssl.ECDHCrypt.getAgreedSecret:(Ljava/security/PublicKey;)Ljavax/crypto/SecretKey;
            astore 4 /* preMasterSecret */
        start local 4 // javax.crypto.SecretKey preMasterSecret
       139: .line 1022
            goto 141
        end local 4 // javax.crypto.SecretKey preMasterSecret
       140: .line 1024
      StackMap locals:
      StackMap stack:
            new java.io.IOException
            dup
            new java.lang.StringBuilder
            dup
            ldc "Internal error: unknown key exchange "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* this */
            getfield sun.security.ssl.ClientHandshaker.keyExchange:Lsun/security/ssl/CipherSuite$KeyExchange;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
            athrow
        start local 4 // javax.crypto.SecretKey preMasterSecret
       141: .line 1027
      StackMap locals: javax.crypto.SecretKey
      StackMap stack:
            aload 0 /* this */
            aload 4 /* preMasterSecret */
            aconst_null
            invokevirtual sun.security.ssl.ClientHandshaker.calculateKeys:(Ljavax/crypto/SecretKey;Lsun/security/ssl/ProtocolVersion;)V
       142: .line 1039
            aload 2 /* signingKey */
            ifnull 157
       143: .line 1042
            new sun.security.ssl.HandshakeMessage$CertificateVerify
            dup
            aload 0 /* this */
            getfield sun.security.ssl.ClientHandshaker.protocolVersion:Lsun/security/ssl/ProtocolVersion;
            aload 0 /* this */
            getfield sun.security.ssl.ClientHandshaker.handshakeHash:Lsun/security/ssl/HandshakeHash;
       144: .line 1043
            aload 2 /* signingKey */
            aload 0 /* this */
            getfield sun.security.ssl.ClientHandshaker.session:Lsun/security/ssl/SSLSessionImpl;
            invokevirtual sun.security.ssl.SSLSessionImpl.getMasterSecret:()Ljavax/crypto/SecretKey;
       145: .line 1044
            aload 0 /* this */
            getfield sun.security.ssl.ClientHandshaker.sslContext:Lsun/security/ssl/SSLContextImpl;
            invokevirtual sun.security.ssl.SSLContextImpl.getSecureRandom:()Ljava/security/SecureRandom;
       146: .line 1042
            invokespecial sun.security.ssl.HandshakeMessage$CertificateVerify.<init>:(Lsun/security/ssl/ProtocolVersion;Lsun/security/ssl/HandshakeHash;Ljava/security/PrivateKey;Ljavax/crypto/SecretKey;Ljava/security/SecureRandom;)V
            astore 5 /* m3 */
        start local 5 // sun.security.ssl.HandshakeMessage$CertificateVerify m3
       147: .line 1045
            goto 153
        end local 5 // sun.security.ssl.HandshakeMessage$CertificateVerify m3
      StackMap locals:
      StackMap stack: java.security.GeneralSecurityException
       148: astore 6 /* e */
        start local 6 // java.security.GeneralSecurityException e
       149: .line 1046
            aload 0 /* this */
            bipush 40
       150: .line 1047
            ldc "Error signing certificate verify"
            aload 6 /* e */
       151: .line 1046
            invokevirtual sun.security.ssl.ClientHandshaker.fatalSE:(BLjava/lang/String;Ljava/lang/Throwable;)V
       152: .line 1049
            aconst_null
            astore 5 /* m3 */
        end local 6 // java.security.GeneralSecurityException e
        start local 5 // sun.security.ssl.HandshakeMessage$CertificateVerify m3
       153: .line 1051
      StackMap locals: sun.security.ssl.HandshakeMessage$CertificateVerify
      StackMap stack:
            getstatic sun.security.ssl.ClientHandshaker.debug:Lsun/security/ssl/Debug;
            ifnull 155
            ldc "handshake"
            invokestatic sun.security.ssl.Debug.isOn:(Ljava/lang/String;)Z
            ifeq 155
       154: .line 1052
            aload 5 /* m3 */
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            invokevirtual sun.security.ssl.HandshakeMessage$CertificateVerify.print:(Ljava/io/PrintStream;)V
       155: .line 1054
      StackMap locals:
      StackMap stack:
            aload 5 /* m3 */
            aload 0 /* this */
            getfield sun.security.ssl.ClientHandshaker.output:Lsun/security/ssl/HandshakeOutStream;
            invokevirtual sun.security.ssl.HandshakeMessage$CertificateVerify.write:(Lsun/security/ssl/HandshakeOutStream;)V
       156: .line 1055
            aload 0 /* this */
            getfield sun.security.ssl.ClientHandshaker.output:Lsun/security/ssl/HandshakeOutStream;
            invokevirtual sun.security.ssl.HandshakeOutStream.doHashes:()V
        end local 5 // sun.security.ssl.HandshakeMessage$CertificateVerify m3
       157: .line 1061
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iconst_0
            invokevirtual sun.security.ssl.ClientHandshaker.sendChangeCipherAndFinish:(Z)V
       158: .line 1062
            return
        end local 4 // javax.crypto.SecretKey preMasterSecret
        end local 3 // sun.security.ssl.HandshakeMessage m2
        end local 2 // java.security.PrivateKey signingKey
        end local 1 // sun.security.ssl.HandshakeMessage$ServerHelloDone mesg
        end local 0 // sun.security.ssl.ClientHandshaker this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0  159     0             this  Lsun/security/ssl/ClientHandshaker;
            0  159     1             mesg  Lsun/security/ssl/HandshakeMessage$ServerHelloDone;
            4  159     2       signingKey  Ljava/security/PrivateKey;
            6   60     3               km  Ljavax/net/ssl/X509ExtendedKeyManager;
            7   60     4      keytypesTmp  Ljava/util/ArrayList<Ljava/lang/String;>;
            8   23     5                i  I
           11   12     6         typeName  Ljava/lang/String;
           13   14     6         typeName  Ljava/lang/String;
           17   18     6         typeName  Ljava/lang/String;
           19   21     6         typeName  Ljava/lang/String;
           24   60     5            alias  Ljava/lang/String;
           25   60     6  keytypesTmpSize  I
           28   36     7         keytypes  [Ljava/lang/String;
           37   60     7               m1  Lsun/security/ssl/HandshakeMessage$CertificateMsg;
           39   51     8            certs  [Ljava/security/cert/X509Certificate;
           41   51     9        publicKey  Ljava/security/PublicKey;
           43   46    10           params  Ljava/security/spec/ECParameterSpec;
           44   46    11            index  I
           81   82     3               m2  Lsun/security/ssl/HandshakeMessage;
           83   84     3               m2  Lsun/security/ssl/HandshakeMessage;
           89   90     3               m2  Lsun/security/ssl/HandshakeMessage;
           95   96     3               m2  Lsun/security/ssl/HandshakeMessage;
          107  108     3               m2  Lsun/security/ssl/HandshakeMessage;
          118  119     3               m2  Lsun/security/ssl/HandshakeMessage;
          122  159     3               m2  Lsun/security/ssl/HandshakeMessage;
           71   72     4              key  Ljava/security/PublicKey;
           74   75     4              key  Ljava/security/PublicKey;
           78   82     4              key  Ljava/security/PublicKey;
          105  108     5           params  Ljava/security/spec/ECParameterSpec;
          109  119     6         hostname  Ljava/lang/String;
          115  119     7      kerberosMsg  Lsun/security/ssl/KerberosClientKeyExchange;
          129  130     4  preMasterSecret  Ljavax/crypto/SecretKey;
          133  134     4  preMasterSecret  Ljavax/crypto/SecretKey;
          135  136     4  preMasterSecret  Ljavax/crypto/SecretKey;
          137  138     4  preMasterSecret  Ljavax/crypto/SecretKey;
          139  140     4  preMasterSecret  Ljavax/crypto/SecretKey;
          141  159     4  preMasterSecret  Ljavax/crypto/SecretKey;
          132  134     5      secretBytes  [B
          147  148     5               m3  Lsun/security/ssl/HandshakeMessage$CertificateVerify;
          153  157     5               m3  Lsun/security/ssl/HandshakeMessage$CertificateVerify;
          149  153     6                e  Ljava/security/GeneralSecurityException;
      Exception table:
        from    to  target  type
         143   147     148  Class java.security.GeneralSecurityException
    Exceptions:
      throws java.io.IOException
    MethodParameters:
      Name  Flags
      mesg  

  private void serverFinished(sun.security.ssl.HandshakeMessage$Finished);
    descriptor: (Lsun/security/ssl/HandshakeMessage$Finished;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=3, args_size=2
        start local 0 // sun.security.ssl.ClientHandshaker this
        start local 1 // sun.security.ssl.HandshakeMessage$Finished mesg
         0: .line 1072
            getstatic sun.security.ssl.ClientHandshaker.debug:Lsun/security/ssl/Debug;
            ifnull 2
            ldc "handshake"
            invokestatic sun.security.ssl.Debug.isOn:(Ljava/lang/String;)Z
            ifeq 2
         1: .line 1073
            aload 1 /* mesg */
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            invokevirtual sun.security.ssl.HandshakeMessage$Finished.print:(Ljava/io/PrintStream;)V
         2: .line 1076
      StackMap locals:
      StackMap stack:
            aload 1 /* mesg */
            aload 0 /* this */
            getfield sun.security.ssl.ClientHandshaker.protocolVersion:Lsun/security/ssl/ProtocolVersion;
            aload 0 /* this */
            getfield sun.security.ssl.ClientHandshaker.handshakeHash:Lsun/security/ssl/HandshakeHash;
         3: .line 1077
            iconst_2
            aload 0 /* this */
            getfield sun.security.ssl.ClientHandshaker.session:Lsun/security/ssl/SSLSessionImpl;
            invokevirtual sun.security.ssl.SSLSessionImpl.getMasterSecret:()Ljavax/crypto/SecretKey;
         4: .line 1076
            invokevirtual sun.security.ssl.HandshakeMessage$Finished.verify:(Lsun/security/ssl/ProtocolVersion;Lsun/security/ssl/HandshakeHash;ILjavax/crypto/SecretKey;)Z
            istore 2 /* verified */
        start local 2 // boolean verified
         5: .line 1079
            iload 2 /* verified */
            ifne 9
         6: .line 1080
            aload 0 /* this */
            bipush 47
         7: .line 1081
            ldc "server 'finished' message doesn't verify"
         8: .line 1080
            invokevirtual sun.security.ssl.ClientHandshaker.fatalSE:(BLjava/lang/String;)V
         9: .line 1088
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.ClientHandshaker.secureRenegotiation:Z
            ifeq 11
        10: .line 1089
            aload 0 /* this */
            aload 1 /* mesg */
            invokevirtual sun.security.ssl.HandshakeMessage$Finished.getVerifyData:()[B
            putfield sun.security.ssl.ClientHandshaker.serverVerifyData:[B
        11: .line 1095
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.ClientHandshaker.isInitialHandshake:Z
            ifne 13
        12: .line 1096
            aload 0 /* this */
            getfield sun.security.ssl.ClientHandshaker.session:Lsun/security/ssl/SSLSessionImpl;
            iconst_0
            invokevirtual sun.security.ssl.SSLSessionImpl.setAsSessionResumption:(Z)V
        13: .line 1109
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.ClientHandshaker.resumingSession:Z
            ifeq 16
        14: .line 1110
            aload 0 /* this */
            getfield sun.security.ssl.ClientHandshaker.input:Lsun/security/ssl/HandshakeInStream;
            invokevirtual sun.security.ssl.HandshakeInStream.digestNow:()V
        15: .line 1111
            aload 0 /* this */
            iconst_1
            invokevirtual sun.security.ssl.ClientHandshaker.sendChangeCipherAndFinish:(Z)V
        16: .line 1113
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.ClientHandshaker.session:Lsun/security/ssl/SSLSessionImpl;
            invokestatic java.lang.System.currentTimeMillis:()J
            invokevirtual sun.security.ssl.SSLSessionImpl.setLastAccessedTime:(J)V
        17: .line 1115
            aload 0 /* this */
            getfield sun.security.ssl.ClientHandshaker.resumingSession:Z
            ifne 32
        18: .line 1116
            aload 0 /* this */
            getfield sun.security.ssl.ClientHandshaker.session:Lsun/security/ssl/SSLSessionImpl;
            invokevirtual sun.security.ssl.SSLSessionImpl.isRejoinable:()Z
            ifeq 26
        19: .line 1117
            aload 0 /* this */
            getfield sun.security.ssl.ClientHandshaker.sslContext:Lsun/security/ssl/SSLContextImpl;
        20: .line 1118
            invokevirtual sun.security.ssl.SSLContextImpl.engineGetClientSessionContext:()Ljavax/net/ssl/SSLSessionContext;
        21: .line 1117
            checkcast sun.security.ssl.SSLSessionContextImpl
        22: .line 1119
            aload 0 /* this */
            getfield sun.security.ssl.ClientHandshaker.session:Lsun/security/ssl/SSLSessionImpl;
            invokevirtual sun.security.ssl.SSLSessionContextImpl.put:(Lsun/security/ssl/SSLSessionImpl;)V
        23: .line 1120
            getstatic sun.security.ssl.ClientHandshaker.debug:Lsun/security/ssl/Debug;
            ifnull 32
            ldc "session"
            invokestatic sun.security.ssl.Debug.isOn:(Ljava/lang/String;)Z
            ifeq 32
        24: .line 1121
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            new java.lang.StringBuilder
            dup
            ldc "%% Cached client session: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* this */
            getfield sun.security.ssl.ClientHandshaker.session:Lsun/security/ssl/SSLSessionImpl;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
        25: .line 1123
            goto 32
      StackMap locals:
      StackMap stack:
        26: getstatic sun.security.ssl.ClientHandshaker.debug:Lsun/security/ssl/Debug;
            ifnull 32
            ldc "session"
            invokestatic sun.security.ssl.Debug.isOn:(Ljava/lang/String;)Z
            ifeq 32
        27: .line 1124
            getstatic java.lang.System.out:Ljava/io/PrintStream;
        28: .line 1125
            new java.lang.StringBuilder
            dup
            ldc "%% Didn't cache non-resumable client session: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
        29: .line 1126
            aload 0 /* this */
            getfield sun.security.ssl.ClientHandshaker.session:Lsun/security/ssl/SSLSessionImpl;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
        30: .line 1125
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        31: .line 1124
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
        32: .line 1129
      StackMap locals:
      StackMap stack:
            return
        end local 2 // boolean verified
        end local 1 // sun.security.ssl.HandshakeMessage$Finished mesg
        end local 0 // sun.security.ssl.ClientHandshaker this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   33     0      this  Lsun/security/ssl/ClientHandshaker;
            0   33     1      mesg  Lsun/security/ssl/HandshakeMessage$Finished;
            5   33     2  verified  Z
    Exceptions:
      throws java.io.IOException
    MethodParameters:
      Name  Flags
      mesg  

  private void sendChangeCipherAndFinish(boolean);
    descriptor: (Z)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=6, locals=3, args_size=2
        start local 0 // sun.security.ssl.ClientHandshaker this
        start local 1 // boolean finishedTag
         0: .line 1140
            new sun.security.ssl.HandshakeMessage$Finished
            dup
            aload 0 /* this */
            getfield sun.security.ssl.ClientHandshaker.protocolVersion:Lsun/security/ssl/ProtocolVersion;
            aload 0 /* this */
            getfield sun.security.ssl.ClientHandshaker.handshakeHash:Lsun/security/ssl/HandshakeHash;
         1: .line 1141
            iconst_1
            aload 0 /* this */
            getfield sun.security.ssl.ClientHandshaker.session:Lsun/security/ssl/SSLSessionImpl;
            invokevirtual sun.security.ssl.SSLSessionImpl.getMasterSecret:()Ljavax/crypto/SecretKey;
         2: .line 1140
            invokespecial sun.security.ssl.HandshakeMessage$Finished.<init>:(Lsun/security/ssl/ProtocolVersion;Lsun/security/ssl/HandshakeHash;ILjavax/crypto/SecretKey;)V
            astore 2 /* mesg */
        start local 2 // sun.security.ssl.HandshakeMessage$Finished mesg
         3: .line 1149
            aload 0 /* this */
            aload 2 /* mesg */
            iload 1 /* finishedTag */
            invokevirtual sun.security.ssl.ClientHandshaker.sendChangeCipherSpec:(Lsun/security/ssl/HandshakeMessage$Finished;Z)V
         4: .line 1154
            aload 0 /* this */
            getfield sun.security.ssl.ClientHandshaker.secureRenegotiation:Z
            ifeq 6
         5: .line 1155
            aload 0 /* this */
            aload 2 /* mesg */
            invokevirtual sun.security.ssl.HandshakeMessage$Finished.getVerifyData:()[B
            putfield sun.security.ssl.ClientHandshaker.clientVerifyData:[B
         6: .line 1163
      StackMap locals: sun.security.ssl.HandshakeMessage$Finished
      StackMap stack:
            aload 0 /* this */
            bipush 19
            putfield sun.security.ssl.ClientHandshaker.state:I
         7: .line 1164
            return
        end local 2 // sun.security.ssl.HandshakeMessage$Finished mesg
        end local 1 // boolean finishedTag
        end local 0 // sun.security.ssl.ClientHandshaker this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    8     0         this  Lsun/security/ssl/ClientHandshaker;
            0    8     1  finishedTag  Z
            3    8     2         mesg  Lsun/security/ssl/HandshakeMessage$Finished;
    Exceptions:
      throws java.io.IOException
    MethodParameters:
             Name  Flags
      finishedTag  

  sun.security.ssl.HandshakeMessage getKickstartMessage();
    descriptor: ()Lsun/security/ssl/HandshakeMessage;
    flags: (0x0000) 
    Code:
      stack=6, locals=7, args_size=1
        start local 0 // sun.security.ssl.ClientHandshaker this
         0: .line 1172
            getstatic sun.security.ssl.SSLSessionImpl.nullSession:Lsun/security/ssl/SSLSessionImpl;
            invokevirtual sun.security.ssl.SSLSessionImpl.getSessionId:()Lsun/security/ssl/SessionId;
            astore 1 /* sessionId */
        start local 1 // sun.security.ssl.SessionId sessionId
         1: .line 1175
            aload 0 /* this */
            invokevirtual sun.security.ssl.ClientHandshaker.getActiveCipherSuites:()Lsun/security/ssl/CipherSuiteList;
            astore 2 /* cipherSuites */
        start local 2 // sun.security.ssl.CipherSuiteList cipherSuites
         2: .line 1178
            aload 0 /* this */
            aload 0 /* this */
            getfield sun.security.ssl.ClientHandshaker.protocolVersion:Lsun/security/ssl/ProtocolVersion;
            putfield sun.security.ssl.ClientHandshaker.maxProtocolVersion:Lsun/security/ssl/ProtocolVersion;
         3: .line 1184
            aload 0 /* this */
            aload 0 /* this */
            getfield sun.security.ssl.ClientHandshaker.sslContext:Lsun/security/ssl/SSLContextImpl;
         4: .line 1185
            invokevirtual sun.security.ssl.SSLContextImpl.engineGetClientSessionContext:()Ljavax/net/ssl/SSLSessionContext;
            checkcast sun.security.ssl.SSLSessionContextImpl
         5: .line 1186
            aload 0 /* this */
            invokevirtual sun.security.ssl.ClientHandshaker.getHostSE:()Ljava/lang/String;
            aload 0 /* this */
            invokevirtual sun.security.ssl.ClientHandshaker.getPortSE:()I
            invokevirtual sun.security.ssl.SSLSessionContextImpl.get:(Ljava/lang/String;I)Lsun/security/ssl/SSLSessionImpl;
         6: .line 1184
            putfield sun.security.ssl.ClientHandshaker.session:Lsun/security/ssl/SSLSessionImpl;
         7: .line 1187
            getstatic sun.security.ssl.ClientHandshaker.debug:Lsun/security/ssl/Debug;
            ifnull 17
            ldc "session"
            invokestatic sun.security.ssl.Debug.isOn:(Ljava/lang/String;)Z
            ifeq 17
         8: .line 1188
            aload 0 /* this */
            getfield sun.security.ssl.ClientHandshaker.session:Lsun/security/ssl/SSLSessionImpl;
            ifnull 16
         9: .line 1189
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            new java.lang.StringBuilder
            dup
            ldc "%% Client cached "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
        10: .line 1190
            aload 0 /* this */
            getfield sun.security.ssl.ClientHandshaker.session:Lsun/security/ssl/SSLSessionImpl;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
        11: .line 1191
            aload 0 /* this */
            getfield sun.security.ssl.ClientHandshaker.session:Lsun/security/ssl/SSLSessionImpl;
            invokevirtual sun.security.ssl.SSLSessionImpl.isRejoinable:()Z
            ifeq 12
            ldc ""
            goto 13
      StackMap locals: sun.security.ssl.ClientHandshaker sun.security.ssl.SessionId sun.security.ssl.CipherSuiteList
      StackMap stack: java.io.PrintStream java.lang.StringBuilder
        12: ldc " (not rejoinable)"
      StackMap locals: sun.security.ssl.ClientHandshaker sun.security.ssl.SessionId sun.security.ssl.CipherSuiteList
      StackMap stack: java.io.PrintStream java.lang.StringBuilder java.lang.String
        13: invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        14: .line 1189
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
        15: .line 1192
            goto 17
        16: .line 1193
      StackMap locals:
      StackMap stack:
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            ldc "%% No cached client session"
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
        17: .line 1196
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.ClientHandshaker.session:Lsun/security/ssl/SSLSessionImpl;
            ifnull 26
        18: .line 1200
            getstatic sun.security.ssl.ClientHandshaker.allowUnsafeServerCertChange:Z
            ifne 24
            aload 0 /* this */
            getfield sun.security.ssl.ClientHandshaker.session:Lsun/security/ssl/SSLSessionImpl;
            invokevirtual sun.security.ssl.SSLSessionImpl.isSessionResumption:()Z
            ifeq 24
        19: .line 1203
            aload 0 /* this */
        20: .line 1204
            aload 0 /* this */
            getfield sun.security.ssl.ClientHandshaker.session:Lsun/security/ssl/SSLSessionImpl;
            invokevirtual sun.security.ssl.SSLSessionImpl.getPeerCertificates:()[Ljava/security/cert/Certificate;
            checkcast java.security.cert.X509Certificate[]
        21: .line 1203
            putfield sun.security.ssl.ClientHandshaker.reservedServerCerts:[Ljava/security/cert/X509Certificate;
        22: .line 1205
            goto 24
      StackMap locals:
      StackMap stack: javax.net.ssl.SSLPeerUnverifiedException
        23: pop
        24: .line 1209
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.ClientHandshaker.session:Lsun/security/ssl/SSLSessionImpl;
            invokevirtual sun.security.ssl.SSLSessionImpl.isRejoinable:()Z
            ifne 26
        25: .line 1210
            aload 0 /* this */
            aconst_null
            putfield sun.security.ssl.ClientHandshaker.session:Lsun/security/ssl/SSLSessionImpl;
        26: .line 1214
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.ClientHandshaker.session:Lsun/security/ssl/SSLSessionImpl;
            ifnull 81
        27: .line 1215
            aload 0 /* this */
            getfield sun.security.ssl.ClientHandshaker.session:Lsun/security/ssl/SSLSessionImpl;
            invokevirtual sun.security.ssl.SSLSessionImpl.getSuite:()Lsun/security/ssl/CipherSuite;
            astore 3 /* sessionSuite */
        start local 3 // sun.security.ssl.CipherSuite sessionSuite
        28: .line 1216
            aload 0 /* this */
            getfield sun.security.ssl.ClientHandshaker.session:Lsun/security/ssl/SSLSessionImpl;
            invokevirtual sun.security.ssl.SSLSessionImpl.getProtocolVersion:()Lsun/security/ssl/ProtocolVersion;
            astore 4 /* sessionVersion */
        start local 4 // sun.security.ssl.ProtocolVersion sessionVersion
        29: .line 1217
            aload 0 /* this */
            aload 3 /* sessionSuite */
            invokevirtual sun.security.ssl.ClientHandshaker.isNegotiable:(Lsun/security/ssl/CipherSuite;)Z
            ifne 33
        30: .line 1218
            getstatic sun.security.ssl.ClientHandshaker.debug:Lsun/security/ssl/Debug;
            ifnull 32
            ldc "session"
            invokestatic sun.security.ssl.Debug.isOn:(Ljava/lang/String;)Z
            ifeq 32
        31: .line 1219
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            ldc "%% can't resume, unavailable cipher"
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
        32: .line 1221
      StackMap locals: sun.security.ssl.CipherSuite sun.security.ssl.ProtocolVersion
      StackMap stack:
            aload 0 /* this */
            aconst_null
            putfield sun.security.ssl.ClientHandshaker.session:Lsun/security/ssl/SSLSessionImpl;
        33: .line 1224
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.ClientHandshaker.session:Lsun/security/ssl/SSLSessionImpl;
            ifnull 37
            aload 0 /* this */
            aload 4 /* sessionVersion */
            invokevirtual sun.security.ssl.ClientHandshaker.isNegotiable:(Lsun/security/ssl/ProtocolVersion;)Z
            ifne 37
        34: .line 1225
            getstatic sun.security.ssl.ClientHandshaker.debug:Lsun/security/ssl/Debug;
            ifnull 36
            ldc "session"
            invokestatic sun.security.ssl.Debug.isOn:(Ljava/lang/String;)Z
            ifeq 36
        35: .line 1226
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            ldc "%% can't resume, protocol disabled"
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
        36: .line 1228
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aconst_null
            putfield sun.security.ssl.ClientHandshaker.session:Lsun/security/ssl/SSLSessionImpl;
        37: .line 1231
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.ClientHandshaker.session:Lsun/security/ssl/SSLSessionImpl;
            ifnull 50
            getstatic sun.security.ssl.ClientHandshaker.useExtendedMasterSecret:Z
            ifeq 50
        38: .line 1232
            aload 4 /* sessionVersion */
            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_icmplt 39
            iconst_1
            goto 40
      StackMap locals:
      StackMap stack:
        39: iconst_0
      StackMap locals:
      StackMap stack: int
        40: istore 5 /* isTLS10Plus */
        start local 5 // boolean isTLS10Plus
        41: .line 1233
            iload 5 /* isTLS10Plus */
            ifeq 44
            aload 0 /* this */
            getfield sun.security.ssl.ClientHandshaker.session:Lsun/security/ssl/SSLSessionImpl;
            invokevirtual sun.security.ssl.SSLSessionImpl.getUseExtendedMasterSecret:()Z
            ifne 44
        42: .line 1234
            getstatic sun.security.ssl.ClientHandshaker.allowLegacyResumption:Z
            ifne 44
        43: .line 1241
            aload 0 /* this */
            aconst_null
            putfield sun.security.ssl.ClientHandshaker.session:Lsun/security/ssl/SSLSessionImpl;
        44: .line 1245
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.ClientHandshaker.session:Lsun/security/ssl/SSLSessionImpl;
            ifnull 50
            getstatic sun.security.ssl.ClientHandshaker.allowUnsafeServerCertChange:Z
            ifne 50
        45: .line 1246
            iload 5 /* isTLS10Plus */
            ifeq 49
        46: .line 1247
            aload 0 /* this */
            getfield sun.security.ssl.ClientHandshaker.session:Lsun/security/ssl/SSLSessionImpl;
            invokevirtual sun.security.ssl.SSLSessionImpl.getUseExtendedMasterSecret:()Z
            ifne 50
        47: .line 1249
            aload 0 /* this */
            aconst_null
            putfield sun.security.ssl.ClientHandshaker.session:Lsun/security/ssl/SSLSessionImpl;
        48: .line 1251
            goto 50
        49: .line 1259
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aconst_null
            putfield sun.security.ssl.ClientHandshaker.session:Lsun/security/ssl/SSLSessionImpl;
        end local 5 // boolean isTLS10Plus
        50: .line 1266
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual sun.security.ssl.ClientHandshaker.getEndpointIdentificationAlgorithmSE:()Ljava/lang/String;
            astore 5 /* identityAlg */
        start local 5 // java.lang.String identityAlg
        51: .line 1267
            aload 0 /* this */
            getfield sun.security.ssl.ClientHandshaker.session:Lsun/security/ssl/SSLSessionImpl;
            ifnull 60
            aload 5 /* identityAlg */
            ifnull 60
        52: .line 1270
            aload 0 /* this */
            getfield sun.security.ssl.ClientHandshaker.session:Lsun/security/ssl/SSLSessionImpl;
            invokevirtual sun.security.ssl.SSLSessionImpl.getEndpointIdentificationAlgorithm:()Ljava/lang/String;
        53: .line 1269
            astore 6 /* sessionIdentityAlg */
        start local 6 // java.lang.String sessionIdentityAlg
        54: .line 1271
            aload 5 /* identityAlg */
            aload 6 /* sessionIdentityAlg */
            invokestatic sun.security.ssl.ClientHandshaker.objectsEquals:(Ljava/lang/Object;Ljava/lang/Object;)Z
            ifne 60
        55: .line 1273
            getstatic sun.security.ssl.ClientHandshaker.debug:Lsun/security/ssl/Debug;
            ifnull 59
            ldc "session"
            invokestatic sun.security.ssl.Debug.isOn:(Ljava/lang/String;)Z
            ifeq 59
        56: .line 1274
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            new java.lang.StringBuilder
            dup
            ldc "%% can't resume, endpoint id algorithm does not match, requested: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
        57: .line 1276
            aload 5 /* identityAlg */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc ", cached: "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 6 /* sessionIdentityAlg */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        58: .line 1274
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
        59: .line 1278
      StackMap locals: java.lang.String java.lang.String
      StackMap stack:
            aload 0 /* this */
            aconst_null
            putfield sun.security.ssl.ClientHandshaker.session:Lsun/security/ssl/SSLSessionImpl;
        end local 6 // java.lang.String sessionIdentityAlg
        60: .line 1282
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.ClientHandshaker.session:Lsun/security/ssl/SSLSessionImpl;
            ifnull 69
        61: .line 1283
            getstatic sun.security.ssl.ClientHandshaker.debug:Lsun/security/ssl/Debug;
            ifnull 66
        62: .line 1284
            ldc "handshake"
            invokestatic sun.security.ssl.Debug.isOn:(Ljava/lang/String;)Z
            ifne 63
            ldc "session"
            invokestatic sun.security.ssl.Debug.isOn:(Ljava/lang/String;)Z
            ifeq 66
        63: .line 1285
      StackMap locals:
      StackMap stack:
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            new java.lang.StringBuilder
            dup
            ldc "%% Try resuming "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* this */
            getfield sun.security.ssl.ClientHandshaker.session:Lsun/security/ssl/SSLSessionImpl;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
        64: .line 1286
            ldc " from port "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 0 /* this */
            invokevirtual sun.security.ssl.ClientHandshaker.getLocalPortSE:()I
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        65: .line 1285
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
        66: .line 1290
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.ClientHandshaker.session:Lsun/security/ssl/SSLSessionImpl;
            invokevirtual sun.security.ssl.SSLSessionImpl.getSessionId:()Lsun/security/ssl/SessionId;
            astore 1 /* sessionId */
        67: .line 1291
            aload 0 /* this */
            aload 4 /* sessionVersion */
            putfield sun.security.ssl.ClientHandshaker.maxProtocolVersion:Lsun/security/ssl/ProtocolVersion;
        68: .line 1296
            aload 0 /* this */
            aload 4 /* sessionVersion */
            invokevirtual sun.security.ssl.ClientHandshaker.setVersion:(Lsun/security/ssl/ProtocolVersion;)V
        69: .line 1303
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.ClientHandshaker.enableNewSession:Z
            ifne 81
        70: .line 1304
            aload 0 /* this */
            getfield sun.security.ssl.ClientHandshaker.session:Lsun/security/ssl/SSLSessionImpl;
            ifnonnull 74
        71: .line 1305
            new javax.net.ssl.SSLHandshakeException
            dup
        72: .line 1306
            ldc "Can't reuse existing SSL client session"
        73: .line 1305
            invokespecial javax.net.ssl.SSLHandshakeException.<init>:(Ljava/lang/String;)V
            athrow
        74: .line 1310
      StackMap locals:
      StackMap stack:
            new java.util.ArrayList
            dup
            iconst_2
            invokespecial java.util.ArrayList.<init>:(I)V
        75: .line 1309
            astore 6 /* cipherList */
        start local 6 // java.util.Collection cipherList
        76: .line 1311
            aload 6 /* cipherList */
            aload 3 /* sessionSuite */
            invokeinterface java.util.Collection.add:(Ljava/lang/Object;)Z
            pop
        77: .line 1312
            aload 0 /* this */
            getfield sun.security.ssl.ClientHandshaker.secureRenegotiation:Z
            ifne 80
        78: .line 1313
            aload 2 /* cipherSuites */
            getstatic sun.security.ssl.CipherSuite.C_SCSV:Lsun/security/ssl/CipherSuite;
            invokevirtual sun.security.ssl.CipherSuiteList.contains:(Lsun/security/ssl/CipherSuite;)Z
            ifeq 80
        79: .line 1314
            aload 6 /* cipherList */
            getstatic sun.security.ssl.CipherSuite.C_SCSV:Lsun/security/ssl/CipherSuite;
            invokeinterface java.util.Collection.add:(Ljava/lang/Object;)Z
            pop
        80: .line 1317
      StackMap locals: java.util.Collection
      StackMap stack:
            new sun.security.ssl.CipherSuiteList
            dup
            aload 6 /* cipherList */
            invokespecial sun.security.ssl.CipherSuiteList.<init>:(Ljava/util/Collection;)V
            astore 2 /* cipherSuites */
        end local 6 // java.util.Collection cipherList
        end local 5 // java.lang.String identityAlg
        end local 4 // sun.security.ssl.ProtocolVersion sessionVersion
        end local 3 // sun.security.ssl.CipherSuite sessionSuite
        81: .line 1321
      StackMap locals: sun.security.ssl.ClientHandshaker sun.security.ssl.SessionId sun.security.ssl.CipherSuiteList
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.ClientHandshaker.session:Lsun/security/ssl/SSLSessionImpl;
            ifnonnull 83
            aload 0 /* this */
            getfield sun.security.ssl.ClientHandshaker.enableNewSession:Z
            ifne 83
        82: .line 1322
            new javax.net.ssl.SSLHandshakeException
            dup
            ldc "No existing session to resume"
            invokespecial javax.net.ssl.SSLHandshakeException.<init>:(Ljava/lang/String;)V
            athrow
        83: .line 1326
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.ClientHandshaker.secureRenegotiation:Z
            ifeq 92
            aload 2 /* cipherSuites */
            getstatic sun.security.ssl.CipherSuite.C_SCSV:Lsun/security/ssl/CipherSuite;
            invokevirtual sun.security.ssl.CipherSuiteList.contains:(Lsun/security/ssl/CipherSuite;)Z
            ifeq 92
        84: .line 1328
            new java.util.ArrayList
            dup
            aload 2 /* cipherSuites */
            invokevirtual sun.security.ssl.CipherSuiteList.size:()I
            iconst_1
            isub
            invokespecial java.util.ArrayList.<init>:(I)V
        85: .line 1327
            astore 3 /* cipherList */
        start local 3 // java.util.Collection cipherList
        86: .line 1329
            aload 2 /* cipherSuites */
            invokevirtual sun.security.ssl.CipherSuiteList.collection:()Ljava/util/Collection;
            invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
            astore 5
            goto 90
      StackMap locals: sun.security.ssl.ClientHandshaker sun.security.ssl.SessionId sun.security.ssl.CipherSuiteList java.util.Collection top java.util.Iterator
      StackMap stack:
        87: aload 5
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast sun.security.ssl.CipherSuite
            astore 4 /* suite */
        start local 4 // sun.security.ssl.CipherSuite suite
        88: .line 1330
            aload 4 /* suite */
            getstatic sun.security.ssl.CipherSuite.C_SCSV:Lsun/security/ssl/CipherSuite;
            if_acmpeq 90
        89: .line 1331
            aload 3 /* cipherList */
            aload 4 /* suite */
            invokeinterface java.util.Collection.add:(Ljava/lang/Object;)Z
            pop
        end local 4 // sun.security.ssl.CipherSuite suite
        90: .line 1329
      StackMap locals:
      StackMap stack:
            aload 5
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 87
        91: .line 1335
            new sun.security.ssl.CipherSuiteList
            dup
            aload 3 /* cipherList */
            invokespecial sun.security.ssl.CipherSuiteList.<init>:(Ljava/util/Collection;)V
            astore 2 /* cipherSuites */
        end local 3 // java.util.Collection cipherList
        92: .line 1339
      StackMap locals: sun.security.ssl.ClientHandshaker sun.security.ssl.SessionId sun.security.ssl.CipherSuiteList
      StackMap stack:
            iconst_0
            istore 3 /* negotiable */
        start local 3 // boolean negotiable
        93: .line 1340
            aload 2 /* cipherSuites */
            invokevirtual sun.security.ssl.CipherSuiteList.collection:()Ljava/util/Collection;
            invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
            astore 5
            goto 98
      StackMap locals: sun.security.ssl.ClientHandshaker sun.security.ssl.SessionId sun.security.ssl.CipherSuiteList int top java.util.Iterator
      StackMap stack:
        94: aload 5
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast sun.security.ssl.CipherSuite
            astore 4 /* suite */
        start local 4 // sun.security.ssl.CipherSuite suite
        95: .line 1341
            aload 0 /* this */
            aload 4 /* suite */
            invokevirtual sun.security.ssl.ClientHandshaker.isNegotiable:(Lsun/security/ssl/CipherSuite;)Z
            ifeq 98
        96: .line 1342
            iconst_1
            istore 3 /* negotiable */
        97: .line 1343
            goto 99
        end local 4 // sun.security.ssl.CipherSuite suite
        98: .line 1340
      StackMap locals:
      StackMap stack:
            aload 5
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 94
        99: .line 1347
      StackMap locals: sun.security.ssl.ClientHandshaker sun.security.ssl.SessionId sun.security.ssl.CipherSuiteList int
      StackMap stack:
            iload 3 /* negotiable */
            ifne 101
       100: .line 1348
            new javax.net.ssl.SSLHandshakeException
            dup
            ldc "No negotiable cipher suite"
            invokespecial javax.net.ssl.SSLHandshakeException.<init>:(Ljava/lang/String;)V
            athrow
       101: .line 1352
      StackMap locals:
      StackMap stack:
            new sun.security.ssl.HandshakeMessage$ClientHello
            dup
       102: .line 1353
            aload 0 /* this */
            getfield sun.security.ssl.ClientHandshaker.sslContext:Lsun/security/ssl/SSLContextImpl;
            invokevirtual sun.security.ssl.SSLContextImpl.getSecureRandom:()Ljava/security/SecureRandom;
            aload 0 /* this */
            getfield sun.security.ssl.ClientHandshaker.maxProtocolVersion:Lsun/security/ssl/ProtocolVersion;
       103: .line 1354
            aload 1 /* sessionId */
            aload 2 /* cipherSuites */
       104: .line 1352
            invokespecial sun.security.ssl.HandshakeMessage$ClientHello.<init>:(Ljava/security/SecureRandom;Lsun/security/ssl/ProtocolVersion;Lsun/security/ssl/SessionId;Lsun/security/ssl/CipherSuiteList;)V
            astore 4 /* clientHelloMessage */
        start local 4 // sun.security.ssl.HandshakeMessage$ClientHello clientHelloMessage
       105: .line 1357
            aload 2 /* cipherSuites */
            invokevirtual sun.security.ssl.CipherSuiteList.containsEC:()Z
            ifeq 113
       106: .line 1359
            aload 0 /* this */
            getfield sun.security.ssl.ClientHandshaker.algorithmConstraints:Lsun/security/util/AlgorithmConstraints;
            invokestatic sun.security.ssl.SupportedEllipticCurvesExtension.createExtension:(Lsun/security/util/AlgorithmConstraints;)Lsun/security/ssl/SupportedEllipticCurvesExtension;
       107: .line 1358
            astore 5 /* ece */
        start local 5 // sun.security.ssl.SupportedEllipticCurvesExtension ece
       108: .line 1360
            aload 5 /* ece */
            ifnull 113
       109: .line 1361
            aload 4 /* clientHelloMessage */
            getfield sun.security.ssl.HandshakeMessage$ClientHello.extensions:Lsun/security/ssl/HelloExtensions;
            aload 5 /* ece */
            invokevirtual sun.security.ssl.HelloExtensions.add:(Lsun/security/ssl/HelloExtension;)V
       110: .line 1362
            aload 4 /* clientHelloMessage */
            getfield sun.security.ssl.HandshakeMessage$ClientHello.extensions:Lsun/security/ssl/HelloExtensions;
       111: .line 1363
            getstatic sun.security.ssl.SupportedEllipticPointFormatsExtension.DEFAULT:Lsun/security/ssl/HelloExtension;
       112: .line 1362
            invokevirtual sun.security.ssl.HelloExtensions.add:(Lsun/security/ssl/HelloExtension;)V
        end local 5 // sun.security.ssl.SupportedEllipticCurvesExtension ece
       113: .line 1368
      StackMap locals: sun.security.ssl.HandshakeMessage$ClientHello
      StackMap stack:
            getstatic sun.security.ssl.ClientHandshaker.useExtendedMasterSecret:Z
            ifeq 117
            aload 0 /* this */
            getfield sun.security.ssl.ClientHandshaker.maxProtocolVersion: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_icmplt 117
       114: .line 1369
            aload 0 /* this */
            getfield sun.security.ssl.ClientHandshaker.session:Lsun/security/ssl/SSLSessionImpl;
            ifnull 115
            aload 0 /* this */
            getfield sun.security.ssl.ClientHandshaker.session:Lsun/security/ssl/SSLSessionImpl;
            invokevirtual sun.security.ssl.SSLSessionImpl.getUseExtendedMasterSecret:()Z
            ifeq 117
       115: .line 1370
      StackMap locals:
      StackMap stack:
            aload 4 /* clientHelloMessage */
            invokevirtual sun.security.ssl.HandshakeMessage$ClientHello.addExtendedMasterSecretExtension:()V
       116: .line 1371
            aload 0 /* this */
            iconst_1
            putfield sun.security.ssl.ClientHandshaker.requestedToUseEMS:Z
       117: .line 1376
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 4 /* clientHelloMessage */
            getfield sun.security.ssl.HandshakeMessage$ClientHello.clnt_random:Lsun/security/ssl/RandomCookie;
            putfield sun.security.ssl.ClientHandshaker.clnt_random:Lsun/security/ssl/RandomCookie;
       118: .line 1384
            aload 0 /* this */
            getfield sun.security.ssl.ClientHandshaker.secureRenegotiation:Z
            ifne 120
       119: .line 1385
            aload 2 /* cipherSuites */
            getstatic sun.security.ssl.CipherSuite.C_SCSV:Lsun/security/ssl/CipherSuite;
            invokevirtual sun.security.ssl.CipherSuiteList.contains:(Lsun/security/ssl/CipherSuite;)Z
            ifne 121
       120: .line 1386
      StackMap locals:
      StackMap stack:
            aload 4 /* clientHelloMessage */
            aload 0 /* this */
            getfield sun.security.ssl.ClientHandshaker.clientVerifyData:[B
            invokevirtual sun.security.ssl.HandshakeMessage$ClientHello.addRenegotiationInfoExtension:([B)V
       121: .line 1389
      StackMap locals:
      StackMap stack:
            aload 4 /* clientHelloMessage */
            areturn
        end local 4 // sun.security.ssl.HandshakeMessage$ClientHello clientHelloMessage
        end local 3 // boolean negotiable
        end local 2 // sun.security.ssl.CipherSuiteList cipherSuites
        end local 1 // sun.security.ssl.SessionId sessionId
        end local 0 // sun.security.ssl.ClientHandshaker this
      LocalVariableTable:
        Start  End  Slot                Name  Signature
            0  122     0                this  Lsun/security/ssl/ClientHandshaker;
            1  122     1           sessionId  Lsun/security/ssl/SessionId;
            2  122     2        cipherSuites  Lsun/security/ssl/CipherSuiteList;
           28   81     3        sessionSuite  Lsun/security/ssl/CipherSuite;
           29   81     4      sessionVersion  Lsun/security/ssl/ProtocolVersion;
           41   50     5         isTLS10Plus  Z
           51   81     5         identityAlg  Ljava/lang/String;
           54   60     6  sessionIdentityAlg  Ljava/lang/String;
           76   81     6          cipherList  Ljava/util/Collection<Lsun/security/ssl/CipherSuite;>;
           86   92     3          cipherList  Ljava/util/Collection<Lsun/security/ssl/CipherSuite;>;
           88   90     4               suite  Lsun/security/ssl/CipherSuite;
           93  122     3          negotiable  Z
           95   98     4               suite  Lsun/security/ssl/CipherSuite;
          105  122     4  clientHelloMessage  Lsun/security/ssl/HandshakeMessage$ClientHello;
          108  113     5                 ece  Lsun/security/ssl/SupportedEllipticCurvesExtension;
      Exception table:
        from    to  target  type
          19    22      23  Class javax.net.ssl.SSLPeerUnverifiedException
    Exceptions:
      throws javax.net.ssl.SSLException

  void handshakeAlert(byte);
    descriptor: (B)V
    flags: (0x0000) 
    Code:
      stack=5, locals=3, args_size=2
        start local 0 // sun.security.ssl.ClientHandshaker this
        start local 1 // byte description
         0: .line 1396
            iload 1 /* description */
            invokestatic sun.security.ssl.Alerts.alertDescription:(B)Ljava/lang/String;
            astore 2 /* message */
        start local 2 // java.lang.String message
         1: .line 1398
            getstatic sun.security.ssl.ClientHandshaker.debug:Lsun/security/ssl/Debug;
            ifnull 3
            ldc "handshake"
            invokestatic sun.security.ssl.Debug.isOn:(Ljava/lang/String;)Z
            ifeq 3
         2: .line 1399
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            new java.lang.StringBuilder
            dup
            ldc "SSL - handshake alert: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 2 /* message */
            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
         3: .line 1401
      StackMap locals: java.lang.String
      StackMap stack:
            new javax.net.ssl.SSLProtocolException
            dup
            new java.lang.StringBuilder
            dup
            ldc "handshake alert:  "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 2 /* message */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial javax.net.ssl.SSLProtocolException.<init>:(Ljava/lang/String;)V
            athrow
        end local 2 // java.lang.String message
        end local 1 // byte description
        end local 0 // sun.security.ssl.ClientHandshaker this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    4     0         this  Lsun/security/ssl/ClientHandshaker;
            0    4     1  description  B
            1    4     2      message  Ljava/lang/String;
    Exceptions:
      throws javax.net.ssl.SSLProtocolException
    MethodParameters:
             Name  Flags
      description  

  private void serverCertificate(sun.security.ssl.HandshakeMessage$CertificateMsg);
    descriptor: (Lsun/security/ssl/HandshakeMessage$CertificateMsg;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=6, args_size=2
        start local 0 // sun.security.ssl.ClientHandshaker this
        start local 1 // sun.security.ssl.HandshakeMessage$CertificateMsg mesg
         0: .line 1410
            getstatic sun.security.ssl.ClientHandshaker.debug:Lsun/security/ssl/Debug;
            ifnull 2
            ldc "handshake"
            invokestatic sun.security.ssl.Debug.isOn:(Ljava/lang/String;)Z
            ifeq 2
         1: .line 1411
            aload 1 /* mesg */
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            invokevirtual sun.security.ssl.HandshakeMessage$CertificateMsg.print:(Ljava/io/PrintStream;)V
         2: .line 1413
      StackMap locals:
      StackMap stack:
            aload 1 /* mesg */
            invokevirtual sun.security.ssl.HandshakeMessage$CertificateMsg.getCertificateChain:()[Ljava/security/cert/X509Certificate;
            astore 2 /* peerCerts */
        start local 2 // java.security.cert.X509Certificate[] peerCerts
         3: .line 1414
            aload 2 /* peerCerts */
            arraylength
            ifne 5
         4: .line 1415
            aload 0 /* this */
            bipush 42
            ldc "empty certificate chain"
            invokevirtual sun.security.ssl.ClientHandshaker.fatalSE:(BLjava/lang/String;)V
         5: .line 1427
      StackMap locals: java.security.cert.X509Certificate[]
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.ClientHandshaker.reservedServerCerts:[Ljava/security/cert/X509Certificate;
            ifnull 11
         6: .line 1428
            aload 0 /* this */
            getfield sun.security.ssl.ClientHandshaker.session:Lsun/security/ssl/SSLSessionImpl;
            invokevirtual sun.security.ssl.SSLSessionImpl.getUseExtendedMasterSecret:()Z
            ifne 11
         7: .line 1429
            aload 2 /* peerCerts */
            iconst_0
            aaload
            aload 0 /* this */
            getfield sun.security.ssl.ClientHandshaker.reservedServerCerts:[Ljava/security/cert/X509Certificate;
            iconst_0
            aaload
            invokestatic sun.security.ssl.ClientHandshaker.isIdentityEquivalent:(Ljava/security/cert/X509Certificate;Ljava/security/cert/X509Certificate;)Z
            ifne 11
         8: .line 1430
            aload 0 /* this */
            bipush 42
         9: .line 1431
            ldc "server certificate change is restrictedduring renegotiation"
        10: .line 1430
            invokevirtual sun.security.ssl.ClientHandshaker.fatalSE:(BLjava/lang/String;)V
        11: .line 1436
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.ClientHandshaker.sslContext:Lsun/security/ssl/SSLContextImpl;
            invokevirtual sun.security.ssl.SSLContextImpl.getX509TrustManager:()Ljavax/net/ssl/X509TrustManager;
            astore 3 /* tm */
        start local 3 // javax.net.ssl.X509TrustManager tm
        12: .line 1441
            aload 0 /* this */
            getfield sun.security.ssl.ClientHandshaker.keyExchange:Lsun/security/ssl/CipherSuite$KeyExchange;
            getstatic sun.security.ssl.CipherSuite$KeyExchange.K_RSA_EXPORT:Lsun/security/ssl/CipherSuite$KeyExchange;
            if_acmpne 15
            aload 0 /* this */
            getfield sun.security.ssl.ClientHandshaker.serverKeyExchangeReceived:Z
            ifne 15
        13: .line 1442
            getstatic sun.security.ssl.CipherSuite$KeyExchange.K_RSA:Lsun/security/ssl/CipherSuite$KeyExchange;
            getfield sun.security.ssl.CipherSuite$KeyExchange.name:Ljava/lang/String;
            astore 4 /* keyExchangeString */
        start local 4 // java.lang.String keyExchangeString
        14: .line 1443
            goto 16
        end local 4 // java.lang.String keyExchangeString
        15: .line 1444
      StackMap locals: javax.net.ssl.X509TrustManager
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.ClientHandshaker.keyExchange:Lsun/security/ssl/CipherSuite$KeyExchange;
            getfield sun.security.ssl.CipherSuite$KeyExchange.name:Ljava/lang/String;
            astore 4 /* keyExchangeString */
        start local 4 // java.lang.String keyExchangeString
        16: .line 1447
      StackMap locals: java.lang.String
      StackMap stack:
            aload 0 /* this */
            invokevirtual sun.security.ssl.ClientHandshaker.getHostnameVerificationSE:()Ljava/lang/String;
            astore 5 /* identificator */
        start local 5 // java.lang.String identificator
        17: .line 1448
            aload 3 /* tm */
            instanceof com.sun.net.ssl.internal.ssl.X509ExtendedTrustManager
            ifeq 27
        18: .line 1449
            aload 3 /* tm */
            checkcast com.sun.net.ssl.internal.ssl.X509ExtendedTrustManager
        19: .line 1450
            aload 2 /* peerCerts */
            ifnull 21
        20: .line 1451
            aload 2 /* peerCerts */
            invokevirtual java.security.cert.X509Certificate[].clone:()Ljava/lang/Object;
            checkcast java.security.cert.X509Certificate[]
            goto 22
        21: .line 1452
      StackMap locals: sun.security.ssl.ClientHandshaker sun.security.ssl.HandshakeMessage$CertificateMsg java.security.cert.X509Certificate[] javax.net.ssl.X509TrustManager java.lang.String java.lang.String
      StackMap stack: com.sun.net.ssl.internal.ssl.X509ExtendedTrustManager
            aconst_null
        22: .line 1453
      StackMap locals: sun.security.ssl.ClientHandshaker sun.security.ssl.HandshakeMessage$CertificateMsg java.security.cert.X509Certificate[] javax.net.ssl.X509TrustManager java.lang.String java.lang.String
      StackMap stack: com.sun.net.ssl.internal.ssl.X509ExtendedTrustManager java.security.cert.X509Certificate[]
            aload 4 /* keyExchangeString */
        23: .line 1454
            aload 0 /* this */
            invokevirtual sun.security.ssl.ClientHandshaker.getHostSE:()Ljava/lang/String;
        24: .line 1455
            aload 5 /* identificator */
        25: .line 1449
            invokevirtual com.sun.net.ssl.internal.ssl.X509ExtendedTrustManager.checkServerTrusted:([Ljava/security/cert/X509Certificate;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
        26: .line 1456
            goto 40
        27: .line 1457
      StackMap locals:
      StackMap stack:
            aload 5 /* identificator */
            ifnull 31
        28: .line 1458
            new java.lang.RuntimeException
            dup
        29: .line 1459
            ldc "trust manager does not support peer identification"
        30: .line 1458
            invokespecial java.lang.RuntimeException.<init>:(Ljava/lang/String;)V
            athrow
        31: .line 1462
      StackMap locals:
      StackMap stack:
            aload 3 /* tm */
        32: .line 1463
            aload 2 /* peerCerts */
            ifnull 34
        33: .line 1464
            aload 2 /* peerCerts */
            invokevirtual java.security.cert.X509Certificate[].clone:()Ljava/lang/Object;
            checkcast java.security.cert.X509Certificate[]
            goto 35
        34: .line 1465
      StackMap locals:
      StackMap stack: javax.net.ssl.X509TrustManager
            aload 2 /* peerCerts */
        35: .line 1466
      StackMap locals: sun.security.ssl.ClientHandshaker sun.security.ssl.HandshakeMessage$CertificateMsg java.security.cert.X509Certificate[] javax.net.ssl.X509TrustManager java.lang.String java.lang.String
      StackMap stack: javax.net.ssl.X509TrustManager java.security.cert.X509Certificate[]
            aload 4 /* keyExchangeString */
        36: .line 1462
            invokeinterface javax.net.ssl.X509TrustManager.checkServerTrusted:([Ljava/security/cert/X509Certificate;Ljava/lang/String;)V
        end local 5 // java.lang.String identificator
        end local 4 // java.lang.String keyExchangeString
        37: .line 1468
            goto 40
      StackMap locals: sun.security.ssl.ClientHandshaker sun.security.ssl.HandshakeMessage$CertificateMsg java.security.cert.X509Certificate[] javax.net.ssl.X509TrustManager
      StackMap stack: java.security.cert.CertificateException
        38: astore 4 /* e */
        start local 4 // java.security.cert.CertificateException e
        39: .line 1470
            aload 0 /* this */
            bipush 46
            aload 4 /* e */
            invokevirtual sun.security.ssl.ClientHandshaker.fatalSE:(BLjava/lang/Throwable;)V
        end local 4 // java.security.cert.CertificateException e
        40: .line 1472
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.ClientHandshaker.session:Lsun/security/ssl/SSLSessionImpl;
            aload 2 /* peerCerts */
            invokevirtual sun.security.ssl.SSLSessionImpl.setPeerCertificates:([Ljava/security/cert/X509Certificate;)V
        41: .line 1473
            return
        end local 3 // javax.net.ssl.X509TrustManager tm
        end local 2 // java.security.cert.X509Certificate[] peerCerts
        end local 1 // sun.security.ssl.HandshakeMessage$CertificateMsg mesg
        end local 0 // sun.security.ssl.ClientHandshaker this
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0   42     0               this  Lsun/security/ssl/ClientHandshaker;
            0   42     1               mesg  Lsun/security/ssl/HandshakeMessage$CertificateMsg;
            3   42     2          peerCerts  [Ljava/security/cert/X509Certificate;
           12   42     3                 tm  Ljavax/net/ssl/X509TrustManager;
           14   15     4  keyExchangeString  Ljava/lang/String;
           16   37     4  keyExchangeString  Ljava/lang/String;
           17   37     5      identificator  Ljava/lang/String;
           39   40     4                  e  Ljava/security/cert/CertificateException;
      Exception table:
        from    to  target  type
          12    37      38  Class java.security.cert.CertificateException
    Exceptions:
      throws java.io.IOException
    MethodParameters:
      Name  Flags
      mesg  

  private static boolean isIdentityEquivalent(java.security.cert.X509Certificate, java.security.cert.X509Certificate);
    descriptor: (Ljava/security/cert/X509Certificate;Ljava/security/cert/X509Certificate;)Z
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=10, args_size=2
        start local 0 // java.security.cert.X509Certificate thisCert
        start local 1 // java.security.cert.X509Certificate prevCert
         0: .line 1489
            aload 0 /* thisCert */
            aload 1 /* prevCert */
            invokevirtual java.security.cert.X509Certificate.equals:(Ljava/lang/Object;)Z
            ifeq 2
         1: .line 1490
            iconst_1
            ireturn
         2: .line 1494
      StackMap locals:
      StackMap stack:
            aload 0 /* thisCert */
            bipush 7
            invokestatic sun.security.ssl.ClientHandshaker.getSubjectAltName:(Ljava/security/cert/X509Certificate;I)Ljava/lang/Object;
            astore 2 /* thisIPAddress */
        start local 2 // java.lang.Object thisIPAddress
         3: .line 1495
            aload 1 /* prevCert */
            bipush 7
            invokestatic sun.security.ssl.ClientHandshaker.getSubjectAltName:(Ljava/security/cert/X509Certificate;I)Ljava/lang/Object;
            astore 3 /* prevIPAddress */
        start local 3 // java.lang.Object prevIPAddress
         4: .line 1496
            aload 2 /* thisIPAddress */
            ifnull 6
            aload 3 /* prevIPAddress */
            ifnull 6
         5: .line 1498
            aload 2 /* thisIPAddress */
            aload 3 /* prevIPAddress */
            invokestatic sun.security.ssl.ClientHandshaker.objectsEquals:(Ljava/lang/Object;Ljava/lang/Object;)Z
            ireturn
         6: .line 1502
      StackMap locals: java.lang.Object java.lang.Object
      StackMap stack:
            aload 0 /* thisCert */
            iconst_2
            invokestatic sun.security.ssl.ClientHandshaker.getSubjectAltName:(Ljava/security/cert/X509Certificate;I)Ljava/lang/Object;
            astore 4 /* thisDNSName */
        start local 4 // java.lang.Object thisDNSName
         7: .line 1503
            aload 1 /* prevCert */
            iconst_2
            invokestatic sun.security.ssl.ClientHandshaker.getSubjectAltName:(Ljava/security/cert/X509Certificate;I)Ljava/lang/Object;
            astore 5 /* prevDNSName */
        start local 5 // java.lang.Object prevDNSName
         8: .line 1504
            aload 4 /* thisDNSName */
            ifnull 10
            aload 5 /* prevDNSName */
            ifnull 10
         9: .line 1506
            aload 4 /* thisDNSName */
            aload 5 /* prevDNSName */
            invokestatic sun.security.ssl.ClientHandshaker.objectsEquals:(Ljava/lang/Object;Ljava/lang/Object;)Z
            ireturn
        10: .line 1510
      StackMap locals: java.lang.Object java.lang.Object
      StackMap stack:
            aload 0 /* thisCert */
            invokevirtual java.security.cert.X509Certificate.getSubjectX500Principal:()Ljavax/security/auth/x500/X500Principal;
            astore 6 /* thisSubject */
        start local 6 // javax.security.auth.x500.X500Principal thisSubject
        11: .line 1511
            aload 1 /* prevCert */
            invokevirtual java.security.cert.X509Certificate.getSubjectX500Principal:()Ljavax/security/auth/x500/X500Principal;
            astore 7 /* prevSubject */
        start local 7 // javax.security.auth.x500.X500Principal prevSubject
        12: .line 1512
            aload 0 /* thisCert */
            invokevirtual java.security.cert.X509Certificate.getIssuerX500Principal:()Ljavax/security/auth/x500/X500Principal;
            astore 8 /* thisIssuer */
        start local 8 // javax.security.auth.x500.X500Principal thisIssuer
        13: .line 1513
            aload 1 /* prevCert */
            invokevirtual java.security.cert.X509Certificate.getIssuerX500Principal:()Ljavax/security/auth/x500/X500Principal;
            astore 9 /* prevIssuer */
        start local 9 // javax.security.auth.x500.X500Principal prevIssuer
        14: .line 1514
            aload 6 /* thisSubject */
            invokevirtual javax.security.auth.x500.X500Principal.getName:()Ljava/lang/String;
            invokevirtual java.lang.String.isEmpty:()Z
            ifne 19
        15: .line 1515
            aload 7 /* prevSubject */
            invokevirtual javax.security.auth.x500.X500Principal.getName:()Ljava/lang/String;
            invokevirtual java.lang.String.isEmpty:()Z
            ifne 19
        16: .line 1516
            aload 6 /* thisSubject */
            aload 7 /* prevSubject */
            invokevirtual javax.security.auth.x500.X500Principal.equals:(Ljava/lang/Object;)Z
            ifeq 19
        17: .line 1517
            aload 8 /* thisIssuer */
            aload 9 /* prevIssuer */
            invokevirtual javax.security.auth.x500.X500Principal.equals:(Ljava/lang/Object;)Z
            ifeq 19
        18: .line 1518
            iconst_1
            ireturn
        19: .line 1521
      StackMap locals: java.security.cert.X509Certificate java.security.cert.X509Certificate java.lang.Object java.lang.Object java.lang.Object java.lang.Object javax.security.auth.x500.X500Principal javax.security.auth.x500.X500Principal javax.security.auth.x500.X500Principal javax.security.auth.x500.X500Principal
      StackMap stack:
            iconst_0
            ireturn
        end local 9 // javax.security.auth.x500.X500Principal prevIssuer
        end local 8 // javax.security.auth.x500.X500Principal thisIssuer
        end local 7 // javax.security.auth.x500.X500Principal prevSubject
        end local 6 // javax.security.auth.x500.X500Principal thisSubject
        end local 5 // java.lang.Object prevDNSName
        end local 4 // java.lang.Object thisDNSName
        end local 3 // java.lang.Object prevIPAddress
        end local 2 // java.lang.Object thisIPAddress
        end local 1 // java.security.cert.X509Certificate prevCert
        end local 0 // java.security.cert.X509Certificate thisCert
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0   20     0       thisCert  Ljava/security/cert/X509Certificate;
            0   20     1       prevCert  Ljava/security/cert/X509Certificate;
            3   20     2  thisIPAddress  Ljava/lang/Object;
            4   20     3  prevIPAddress  Ljava/lang/Object;
            7   20     4    thisDNSName  Ljava/lang/Object;
            8   20     5    prevDNSName  Ljava/lang/Object;
           11   20     6    thisSubject  Ljavax/security/auth/x500/X500Principal;
           12   20     7    prevSubject  Ljavax/security/auth/x500/X500Principal;
           13   20     8     thisIssuer  Ljavax/security/auth/x500/X500Principal;
           14   20     9     prevIssuer  Ljavax/security/auth/x500/X500Principal;
    MethodParameters:
          Name  Flags
      thisCert  
      prevCert  

  private static boolean objectsEquals(java.lang.Object, java.lang.Object);
    descriptor: (Ljava/lang/Object;Ljava/lang/Object;)Z
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // java.lang.Object a
        start local 1 // java.lang.Object b
         0: .line 1540
            aload 0 /* a */
            aload 1 /* b */
            if_acmpeq 2
            aload 0 /* a */
            ifnull 1
            aload 0 /* a */
            aload 1 /* b */
            invokevirtual java.lang.Object.equals:(Ljava/lang/Object;)Z
            ifne 2
      StackMap locals:
      StackMap stack:
         1: iconst_0
            ireturn
      StackMap locals:
      StackMap stack:
         2: iconst_1
            ireturn
        end local 1 // java.lang.Object b
        end local 0 // java.lang.Object a
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0     a  Ljava/lang/Object;
            0    3     1     b  Ljava/lang/Object;
    MethodParameters:
      Name  Flags
      a     
      b     

  private static java.lang.Object getSubjectAltName(java.security.cert.X509Certificate, int);
    descriptor: (Ljava/security/cert/X509Certificate;I)Ljava/lang/Object;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=6, args_size=2
        start local 0 // java.security.cert.X509Certificate cert
        start local 1 // int type
         0: .line 1551
            aload 0 /* cert */
            invokevirtual java.security.cert.X509Certificate.getSubjectAlternativeNames:()Ljava/util/Collection;
            astore 2 /* subjectAltNames */
        start local 2 // java.util.Collection subjectAltNames
         1: .line 1552
            goto 8
        end local 2 // java.util.Collection subjectAltNames
      StackMap locals:
      StackMap stack: java.security.cert.CertificateParsingException
         2: pop
         3: .line 1553
            getstatic sun.security.ssl.ClientHandshaker.debug:Lsun/security/ssl/Debug;
            ifnull 7
            ldc "handshake"
            invokestatic sun.security.ssl.Debug.isOn:(Ljava/lang/String;)Z
            ifeq 7
         4: .line 1554
            getstatic java.lang.System.out:Ljava/io/PrintStream;
         5: .line 1555
            ldc "Attempt to obtain subjectAltNames extension failed!"
         6: .line 1554
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
         7: .line 1557
      StackMap locals:
      StackMap stack:
            aconst_null
            areturn
        start local 2 // java.util.Collection subjectAltNames
         8: .line 1560
      StackMap locals: java.util.Collection
      StackMap stack:
            aload 2 /* subjectAltNames */
            ifnull 15
         9: .line 1561
            aload 2 /* subjectAltNames */
            invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
            astore 4
            goto 14
      StackMap locals: java.security.cert.X509Certificate int java.util.Collection top java.util.Iterator
      StackMap stack:
        10: aload 4
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.util.List
            astore 3 /* subjectAltName */
        start local 3 // java.util.List subjectAltName
        11: .line 1562
            aload 3 /* subjectAltName */
            iconst_0
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            checkcast java.lang.Integer
            invokevirtual java.lang.Integer.intValue:()I
            istore 5 /* subjectAltNameType */
        start local 5 // int subjectAltNameType
        12: .line 1563
            iload 5 /* subjectAltNameType */
            iload 1 /* type */
            if_icmpne 14
        13: .line 1564
            aload 3 /* subjectAltName */
            iconst_1
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            areturn
        end local 5 // int subjectAltNameType
        end local 3 // java.util.List subjectAltName
        14: .line 1561
      StackMap locals:
      StackMap stack:
            aload 4
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 10
        15: .line 1569
      StackMap locals: java.security.cert.X509Certificate int java.util.Collection
      StackMap stack:
            aconst_null
            areturn
        end local 2 // java.util.Collection subjectAltNames
        end local 1 // int type
        end local 0 // java.security.cert.X509Certificate cert
      LocalVariableTable:
        Start  End  Slot                Name  Signature
            0   16     0                cert  Ljava/security/cert/X509Certificate;
            0   16     1                type  I
            1    2     2     subjectAltNames  Ljava/util/Collection<Ljava/util/List<*>;>;
            8   16     2     subjectAltNames  Ljava/util/Collection<Ljava/util/List<*>;>;
           11   14     3      subjectAltName  Ljava/util/List<*>;
           12   14     5  subjectAltNameType  I
      Exception table:
        from    to  target  type
           0     1       2  Class java.security.cert.CertificateParsingException
    MethodParameters:
      Name  Flags
      cert  
      type  

  static int[] $SWITCH_TABLE$sun$security$ssl$CipherSuite$KeyExchange();
    descriptor: ()[I
    flags: (0x1008) ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=3, locals=1, args_size=0
         0: .line 69
            getstatic sun.security.ssl.ClientHandshaker.$SWITCH_TABLE$sun$security$ssl$CipherSuite$KeyExchange:[I
            dup
            ifnull 1
            areturn
      StackMap locals:
      StackMap stack: int[]
         1: pop
            invokestatic sun.security.ssl.CipherSuite$KeyExchange.values:()[Lsun/security/ssl/CipherSuite$KeyExchange;
            arraylength
            newarray 10
            astore 0
         2: aload 0
            getstatic sun.security.ssl.CipherSuite$KeyExchange.K_DHE_DSS:Lsun/security/ssl/CipherSuite$KeyExchange;
            invokevirtual sun.security.ssl.CipherSuite$KeyExchange.ordinal:()I
            bipush 6
            iastore
         3: goto 5
      StackMap locals: int[]
      StackMap stack: java.lang.NoSuchFieldError
         4: pop
      StackMap locals:
      StackMap stack:
         5: aload 0
            getstatic sun.security.ssl.CipherSuite$KeyExchange.K_DHE_RSA:Lsun/security/ssl/CipherSuite$KeyExchange;
            invokevirtual sun.security.ssl.CipherSuite$KeyExchange.ordinal:()I
            bipush 7
            iastore
         6: goto 8
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
         7: pop
      StackMap locals:
      StackMap stack:
         8: aload 0
            getstatic sun.security.ssl.CipherSuite$KeyExchange.K_DH_ANON:Lsun/security/ssl/CipherSuite$KeyExchange;
            invokevirtual sun.security.ssl.CipherSuite$KeyExchange.ordinal:()I
            bipush 8
            iastore
         9: goto 11
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        10: pop
      StackMap locals:
      StackMap stack:
        11: aload 0
            getstatic sun.security.ssl.CipherSuite$KeyExchange.K_DH_DSS:Lsun/security/ssl/CipherSuite$KeyExchange;
            invokevirtual sun.security.ssl.CipherSuite$KeyExchange.ordinal:()I
            iconst_5
            iastore
        12: goto 14
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        13: pop
      StackMap locals:
      StackMap stack:
        14: aload 0
            getstatic sun.security.ssl.CipherSuite$KeyExchange.K_DH_RSA:Lsun/security/ssl/CipherSuite$KeyExchange;
            invokevirtual sun.security.ssl.CipherSuite$KeyExchange.ordinal:()I
            iconst_4
            iastore
        15: goto 17
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        16: pop
      StackMap locals:
      StackMap stack:
        17: aload 0
            getstatic sun.security.ssl.CipherSuite$KeyExchange.K_ECDHE_ECDSA:Lsun/security/ssl/CipherSuite$KeyExchange;
            invokevirtual sun.security.ssl.CipherSuite$KeyExchange.ordinal:()I
            bipush 11
            iastore
        18: goto 20
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        19: pop
      StackMap locals:
      StackMap stack:
        20: aload 0
            getstatic sun.security.ssl.CipherSuite$KeyExchange.K_ECDHE_RSA:Lsun/security/ssl/CipherSuite$KeyExchange;
            invokevirtual sun.security.ssl.CipherSuite$KeyExchange.ordinal:()I
            bipush 12
            iastore
        21: goto 23
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        22: pop
      StackMap locals:
      StackMap stack:
        23: aload 0
            getstatic sun.security.ssl.CipherSuite$KeyExchange.K_ECDH_ANON:Lsun/security/ssl/CipherSuite$KeyExchange;
            invokevirtual sun.security.ssl.CipherSuite$KeyExchange.ordinal:()I
            bipush 13
            iastore
        24: goto 26
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        25: pop
      StackMap locals:
      StackMap stack:
        26: aload 0
            getstatic sun.security.ssl.CipherSuite$KeyExchange.K_ECDH_ECDSA:Lsun/security/ssl/CipherSuite$KeyExchange;
            invokevirtual sun.security.ssl.CipherSuite$KeyExchange.ordinal:()I
            bipush 9
            iastore
        27: goto 29
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        28: pop
      StackMap locals:
      StackMap stack:
        29: aload 0
            getstatic sun.security.ssl.CipherSuite$KeyExchange.K_ECDH_RSA:Lsun/security/ssl/CipherSuite$KeyExchange;
            invokevirtual sun.security.ssl.CipherSuite$KeyExchange.ordinal:()I
            bipush 10
            iastore
        30: goto 32
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        31: pop
      StackMap locals:
      StackMap stack:
        32: aload 0
            getstatic sun.security.ssl.CipherSuite$KeyExchange.K_KRB5:Lsun/security/ssl/CipherSuite$KeyExchange;
            invokevirtual sun.security.ssl.CipherSuite$KeyExchange.ordinal:()I
            bipush 14
            iastore
        33: goto 35
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        34: pop
      StackMap locals:
      StackMap stack:
        35: aload 0
            getstatic sun.security.ssl.CipherSuite$KeyExchange.K_KRB5_EXPORT:Lsun/security/ssl/CipherSuite$KeyExchange;
            invokevirtual sun.security.ssl.CipherSuite$KeyExchange.ordinal:()I
            bipush 15
            iastore
        36: goto 38
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        37: pop
      StackMap locals:
      StackMap stack:
        38: aload 0
            getstatic sun.security.ssl.CipherSuite$KeyExchange.K_NULL:Lsun/security/ssl/CipherSuite$KeyExchange;
            invokevirtual sun.security.ssl.CipherSuite$KeyExchange.ordinal:()I
            iconst_1
            iastore
        39: goto 41
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        40: pop
      StackMap locals:
      StackMap stack:
        41: aload 0
            getstatic sun.security.ssl.CipherSuite$KeyExchange.K_RSA:Lsun/security/ssl/CipherSuite$KeyExchange;
            invokevirtual sun.security.ssl.CipherSuite$KeyExchange.ordinal:()I
            iconst_2
            iastore
        42: goto 44
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        43: pop
      StackMap locals:
      StackMap stack:
        44: aload 0
            getstatic sun.security.ssl.CipherSuite$KeyExchange.K_RSA_EXPORT:Lsun/security/ssl/CipherSuite$KeyExchange;
            invokevirtual sun.security.ssl.CipherSuite$KeyExchange.ordinal:()I
            iconst_3
            iastore
        45: goto 47
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        46: pop
      StackMap locals:
      StackMap stack:
        47: aload 0
            getstatic sun.security.ssl.CipherSuite$KeyExchange.K_SCSV:Lsun/security/ssl/CipherSuite$KeyExchange;
            invokevirtual sun.security.ssl.CipherSuite$KeyExchange.ordinal:()I
            bipush 16
            iastore
        48: goto 50
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        49: pop
      StackMap locals:
      StackMap stack:
        50: aload 0
            dup
            putstatic sun.security.ssl.ClientHandshaker.$SWITCH_TABLE$sun$security$ssl$CipherSuite$KeyExchange:[I
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature
      Exception table:
        from    to  target  type
           2     3       4  Class java.lang.NoSuchFieldError
           5     6       7  Class java.lang.NoSuchFieldError
           8     9      10  Class java.lang.NoSuchFieldError
          11    12      13  Class java.lang.NoSuchFieldError
          14    15      16  Class java.lang.NoSuchFieldError
          17    18      19  Class java.lang.NoSuchFieldError
          20    21      22  Class java.lang.NoSuchFieldError
          23    24      25  Class java.lang.NoSuchFieldError
          26    27      28  Class java.lang.NoSuchFieldError
          29    30      31  Class java.lang.NoSuchFieldError
          32    33      34  Class java.lang.NoSuchFieldError
          35    36      37  Class java.lang.NoSuchFieldError
          38    39      40  Class java.lang.NoSuchFieldError
          41    42      43  Class java.lang.NoSuchFieldError
          44    45      46  Class java.lang.NoSuchFieldError
          47    48      49  Class java.lang.NoSuchFieldError
}
SourceFile: "ClientHandshaker.java"
NestMembers:
  sun.security.ssl.ClientHandshaker$1
InnerClasses:
  final KeyExchange = sun.security.ssl.CipherSuite$KeyExchange of sun.security.ssl.CipherSuite
  sun.security.ssl.ClientHandshaker$1
  final CertificateMsg = sun.security.ssl.HandshakeMessage$CertificateMsg of sun.security.ssl.HandshakeMessage
  final CertificateRequest = sun.security.ssl.HandshakeMessage$CertificateRequest of sun.security.ssl.HandshakeMessage
  final CertificateVerify = sun.security.ssl.HandshakeMessage$CertificateVerify of sun.security.ssl.HandshakeMessage
  final ClientHello = sun.security.ssl.HandshakeMessage$ClientHello of sun.security.ssl.HandshakeMessage
  final DH_ServerKeyExchange = sun.security.ssl.HandshakeMessage$DH_ServerKeyExchange of sun.security.ssl.HandshakeMessage
  final ECDH_ServerKeyExchange = sun.security.ssl.HandshakeMessage$ECDH_ServerKeyExchange of sun.security.ssl.HandshakeMessage
  final Finished = sun.security.ssl.HandshakeMessage$Finished of sun.security.ssl.HandshakeMessage
  final HelloRequest = sun.security.ssl.HandshakeMessage$HelloRequest of sun.security.ssl.HandshakeMessage
  final RSA_ServerKeyExchange = sun.security.ssl.HandshakeMessage$RSA_ServerKeyExchange of sun.security.ssl.HandshakeMessage
  final ServerHello = sun.security.ssl.HandshakeMessage$ServerHello of sun.security.ssl.HandshakeMessage
  final ServerHelloDone = sun.security.ssl.HandshakeMessage$ServerHelloDone of sun.security.ssl.HandshakeMessage