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 static final int ALTNAME_DNS;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 2

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

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

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

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

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

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

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

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

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

  private java.util.List<javax.net.ssl.SNIServerName> requestedServerNames;
    descriptor: Ljava/util/List;
    flags: (0x0002) ACC_PRIVATE
    Signature: Ljava/util/List<Ljavax/net/ssl/SNIServerName;>;

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

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

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

  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 99
            ldc "jsse.enableSNIExtension"
            iconst_1
            invokestatic sun.security.ssl.Debug.getBooleanProperty:(Ljava/lang/String;Z)Z
         1: .line 98
            putstatic sun.security.ssl.ClientHandshaker.enableSNIExtension:Z
         2: .line 145
            ldc "jdk.tls.allowUnsafeServerCertChange"
            iconst_0
            invokestatic sun.security.ssl.Debug.getBooleanProperty:(Ljava/lang/String;Z)Z
         3: .line 144
            putstatic sun.security.ssl.ClientHandshaker.allowUnsafeServerCertChange:Z
         4: .line 149
            ldc "jsse.enableMFLExtension"
            iconst_0
            invokestatic sun.security.ssl.Debug.getBooleanProperty:(Ljava/lang/String;Z)Z
         5: .line 148
            putstatic sun.security.ssl.ClientHandshaker.enableMFLExtension:Z
         6: .line 153
            ldc "jsse.enableFFDHE"
            iconst_1
            invokestatic sun.security.ssl.Debug.getBooleanProperty:(Ljava/lang/String;Z)Z
         7: .line 152
            putstatic sun.security.ssl.ClientHandshaker.enableFFDHE:Z
         8: .line 153
            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 185
            aload 0 /* this */
            aload 1 /* socket */
            aload 2 /* context */
            aload 3 /* enabledProtocols */
            iconst_1
            iconst_1
         1: .line 186
            aload 4 /* activeProtocolVersion */
            iload 5 /* isInitialHandshake */
            iload 6 /* secureRenegotiation */
         2: .line 187
            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 84
            aload 0 /* this */
            iconst_0
            putfield sun.security.ssl.ClientHandshaker.staplingActive:Z
         4: .line 156
            aload 0 /* this */
            iconst_0
            putfield sun.security.ssl.ClientHandshaker.alpnActive:Z
         5: .line 158
            aload 0 /* this */
         6: .line 159
            invokestatic java.util.Collections.emptyList:()Ljava/util/List;
            putfield sun.security.ssl.ClientHandshaker.requestedServerNames:Ljava/util/List;
         7: .line 162
            aload 0 /* this */
            iconst_m1
            putfield sun.security.ssl.ClientHandshaker.requestedMFLength:I
         8: .line 164
            aload 0 /* this */
            iconst_0
            putfield sun.security.ssl.ClientHandshaker.serverNamesAccepted:Z
         9: .line 166
            aload 0 /* this */
            aconst_null
            putfield sun.security.ssl.ClientHandshaker.initialClientHelloMsg:Lsun/security/ssl/HandshakeMessage$ClientHello;
        10: .line 174
            aload 0 /* this */
            aconst_null
            putfield sun.security.ssl.ClientHandshaker.reservedServerCerts:[Ljava/security/cert/X509Certificate;
        11: .line 188
            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   12     0                   this  Lsun/security/ssl/ClientHandshaker;
            0   12     1                 socket  Lsun/security/ssl/SSLSocketImpl;
            0   12     2                context  Lsun/security/ssl/SSLContextImpl;
            0   12     3       enabledProtocols  Lsun/security/ssl/ProtocolList;
            0   12     4  activeProtocolVersion  Lsun/security/ssl/ProtocolVersion;
            0   12     5     isInitialHandshake  Z
            0   12     6    secureRenegotiation  Z
            0   12     7       clientVerifyData  [B
            0   12     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[], boolean);
    descriptor: (Lsun/security/ssl/SSLEngineImpl;Lsun/security/ssl/SSLContextImpl;Lsun/security/ssl/ProtocolList;Lsun/security/ssl/ProtocolVersion;ZZ[B[BZ)V
    flags: (0x0000) 
    Code:
      stack=12, locals=10, args_size=10
        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
        start local 9 // boolean isDTLS
         0: .line 197
            aload 0 /* this */
            aload 1 /* engine */
            aload 2 /* context */
            aload 3 /* enabledProtocols */
            iconst_1
            iconst_1
         1: .line 198
            aload 4 /* activeProtocolVersion */
            iload 5 /* isInitialHandshake */
            iload 6 /* secureRenegotiation */
         2: .line 199
            aload 7 /* clientVerifyData */
            aload 8 /* serverVerifyData */
            iload 9 /* isDTLS */
            invokespecial sun.security.ssl.Handshaker.<init>:(Lsun/security/ssl/SSLEngineImpl;Lsun/security/ssl/SSLContextImpl;Lsun/security/ssl/ProtocolList;ZZLsun/security/ssl/ProtocolVersion;ZZ[B[BZ)V
         3: .line 84
            aload 0 /* this */
            iconst_0
            putfield sun.security.ssl.ClientHandshaker.staplingActive:Z
         4: .line 156
            aload 0 /* this */
            iconst_0
            putfield sun.security.ssl.ClientHandshaker.alpnActive:Z
         5: .line 158
            aload 0 /* this */
         6: .line 159
            invokestatic java.util.Collections.emptyList:()Ljava/util/List;
            putfield sun.security.ssl.ClientHandshaker.requestedServerNames:Ljava/util/List;
         7: .line 162
            aload 0 /* this */
            iconst_m1
            putfield sun.security.ssl.ClientHandshaker.requestedMFLength:I
         8: .line 164
            aload 0 /* this */
            iconst_0
            putfield sun.security.ssl.ClientHandshaker.serverNamesAccepted:Z
         9: .line 166
            aload 0 /* this */
            aconst_null
            putfield sun.security.ssl.ClientHandshaker.initialClientHelloMsg:Lsun/security/ssl/HandshakeMessage$ClientHello;
        10: .line 174
            aload 0 /* this */
            aconst_null
            putfield sun.security.ssl.ClientHandshaker.reservedServerCerts:[Ljava/security/cert/X509Certificate;
        11: .line 200
            return
        end local 9 // boolean isDTLS
        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   12     0                   this  Lsun/security/ssl/ClientHandshaker;
            0   12     1                 engine  Lsun/security/ssl/SSLEngineImpl;
            0   12     2                context  Lsun/security/ssl/SSLContextImpl;
            0   12     3       enabledProtocols  Lsun/security/ssl/ProtocolList;
            0   12     4  activeProtocolVersion  Lsun/security/ssl/ProtocolVersion;
            0   12     5     isInitialHandshake  Z
            0   12     6    secureRenegotiation  Z
            0   12     7       clientVerifyData  [B
            0   12     8       serverVerifyData  [B
            0   12     9                 isDTLS  Z
    MethodParameters:
                       Name  Flags
      engine                 
      context                
      enabledProtocols       
      activeProtocolVersion  
      isInitialHandshake     
      secureRenegotiation    
      clientVerifyData       
      serverVerifyData       
      isDTLS                 

  void processMessage(byte, int);
    descriptor: (BI)V
    flags: (0x0000) 
    Code:
      stack=9, locals=11, args_size=3
        start local 0 // sun.security.ssl.ClientHandshaker this
        start local 1 // byte type
        start local 2 // int messageLen
         0: .line 215
            aload 0 /* this */
            getfield sun.security.ssl.ClientHandshaker.handshakeState:Lsun/security/ssl/HandshakeStateManager;
            iload 1 /* type */
            invokevirtual sun.security.ssl.HandshakeStateManager.check:(B)Ljava/util/List;
            astore 3 /* ignoredOptStates */
        start local 3 // java.util.List ignoredOptStates
         1: .line 220
            aload 0 /* this */
            getfield sun.security.ssl.ClientHandshaker.staplingActive:Z
            ifeq 7
            aload 3 /* ignoredOptStates */
         2: .line 221
            bipush 22
            invokestatic java.lang.Byte.valueOf:(B)Ljava/lang/Byte;
         3: .line 220
            invokeinterface java.util.List.contains:(Ljava/lang/Object;)Z
         4: .line 221
            ifeq 7
         5: .line 222
            aload 0 /* this */
            aload 0 /* this */
            getfield sun.security.ssl.ClientHandshaker.deferredCerts:[Ljava/security/cert/X509Certificate;
            invokevirtual sun.security.ssl.ClientHandshaker.checkServerCerts:([Ljava/security/cert/X509Certificate;)V
         6: .line 223
            aload 0 /* this */
            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;
            putfield sun.security.ssl.ClientHandshaker.serverKey:Ljava/security/PublicKey;
         7: .line 226
      StackMap locals: java.util.List
      StackMap stack:
            iload 1 /* type */
            lookupswitch { // 9
                    0: 8
                    2: 21
                    3: 12
                   11: 25
                   12: 41
                   13: 102
                   14: 135
                   20: 139
                   22: 36
              default: 144
          }
         8: .line 228
      StackMap locals:
      StackMap stack:
            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
            astore 4 /* helloRequest */
        start local 4 // sun.security.ssl.HandshakeMessage$HelloRequest helloRequest
         9: .line 229
            aload 0 /* this */
            getfield sun.security.ssl.ClientHandshaker.handshakeState:Lsun/security/ssl/HandshakeStateManager;
            aload 4 /* helloRequest */
            aload 0 /* this */
            getfield sun.security.ssl.ClientHandshaker.resumingSession:Z
            invokevirtual sun.security.ssl.HandshakeStateManager.update:(Lsun/security/ssl/HandshakeMessage;Z)V
        10: .line 230
            aload 0 /* this */
            aload 4 /* helloRequest */
            invokevirtual sun.security.ssl.ClientHandshaker.serverHelloRequest:(Lsun/security/ssl/HandshakeMessage$HelloRequest;)V
        11: .line 231
            goto 147
        end local 4 // sun.security.ssl.HandshakeMessage$HelloRequest helloRequest
        12: .line 234
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.ClientHandshaker.isDTLS:Z
            ifne 16
        13: .line 235
            new javax.net.ssl.SSLProtocolException
            dup
        14: .line 236
            ldc "hello_verify_request is not a SSL/TLS handshake message"
        15: .line 235
            invokespecial javax.net.ssl.SSLProtocolException.<init>:(Ljava/lang/String;)V
            athrow
        16: .line 240
      StackMap locals:
      StackMap stack:
            new sun.security.ssl.HandshakeMessage$HelloVerifyRequest
            dup
            aload 0 /* this */
            getfield sun.security.ssl.ClientHandshaker.input:Lsun/security/ssl/HandshakeInStream;
            iload 2 /* messageLen */
            invokespecial sun.security.ssl.HandshakeMessage$HelloVerifyRequest.<init>:(Lsun/security/ssl/HandshakeInStream;I)V
        17: .line 239
            astore 5 /* helloVerifyRequest */
        start local 5 // sun.security.ssl.HandshakeMessage$HelloVerifyRequest helloVerifyRequest
        18: .line 241
            aload 0 /* this */
            getfield sun.security.ssl.ClientHandshaker.handshakeState:Lsun/security/ssl/HandshakeStateManager;
            aload 5 /* helloVerifyRequest */
            aload 0 /* this */
            getfield sun.security.ssl.ClientHandshaker.resumingSession:Z
            invokevirtual sun.security.ssl.HandshakeStateManager.update:(Lsun/security/ssl/HandshakeMessage;Z)V
        19: .line 242
            aload 0 /* this */
            aload 5 /* helloVerifyRequest */
            invokevirtual sun.security.ssl.ClientHandshaker.helloVerifyRequest:(Lsun/security/ssl/HandshakeMessage$HelloVerifyRequest;)V
        20: .line 243
            goto 147
        end local 5 // sun.security.ssl.HandshakeMessage$HelloVerifyRequest helloVerifyRequest
        21: .line 246
      StackMap locals:
      StackMap stack:
            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
            astore 6 /* serverHello */
        start local 6 // sun.security.ssl.HandshakeMessage$ServerHello serverHello
        22: .line 247
            aload 0 /* this */
            aload 6 /* serverHello */
            invokevirtual sun.security.ssl.ClientHandshaker.serverHello:(Lsun/security/ssl/HandshakeMessage$ServerHello;)V
        23: .line 251
            aload 0 /* this */
            getfield sun.security.ssl.ClientHandshaker.handshakeState:Lsun/security/ssl/HandshakeStateManager;
            aload 6 /* serverHello */
            aload 0 /* this */
            getfield sun.security.ssl.ClientHandshaker.resumingSession:Z
            invokevirtual sun.security.ssl.HandshakeStateManager.update:(Lsun/security/ssl/HandshakeMessage;Z)V
        24: .line 252
            goto 147
        end local 6 // sun.security.ssl.HandshakeMessage$ServerHello serverHello
        25: .line 255
      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 27
            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 27
        26: .line 256
            aload 0 /* this */
            getfield sun.security.ssl.ClientHandshaker.keyExchange:Lsun/security/ssl/CipherSuite$KeyExchange;
            getfield sun.security.ssl.CipherSuite$KeyExchange.name:Ljava/lang/String;
            invokestatic sun.security.ssl.ClientKeyExchangeService.find:(Ljava/lang/String;)Lsun/security/ssl/ClientKeyExchangeService;
            ifnull 30
        27: .line 258
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            bipush 10
        28: .line 259
            ldc "unexpected server cert chain"
        29: .line 258
            invokevirtual sun.security.ssl.ClientHandshaker.fatalSE:(BLjava/lang/String;)V
        30: .line 262
      StackMap locals:
      StackMap stack:
            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
            astore 7 /* certificateMsg */
        start local 7 // sun.security.ssl.HandshakeMessage$CertificateMsg certificateMsg
        31: .line 263
            aload 0 /* this */
            getfield sun.security.ssl.ClientHandshaker.handshakeState:Lsun/security/ssl/HandshakeStateManager;
            aload 7 /* certificateMsg */
            aload 0 /* this */
            getfield sun.security.ssl.ClientHandshaker.resumingSession:Z
            invokevirtual sun.security.ssl.HandshakeStateManager.update:(Lsun/security/ssl/HandshakeMessage;Z)V
        32: .line 264
            aload 0 /* this */
            aload 7 /* certificateMsg */
            invokevirtual sun.security.ssl.ClientHandshaker.serverCertificate:(Lsun/security/ssl/HandshakeMessage$CertificateMsg;)V
        33: .line 265
            aload 0 /* this */
            getfield sun.security.ssl.ClientHandshaker.staplingActive:Z
            ifne 147
        34: .line 269
            aload 0 /* this */
            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;
            putfield sun.security.ssl.ClientHandshaker.serverKey:Ljava/security/PublicKey;
        35: .line 271
            goto 147
        end local 7 // sun.security.ssl.HandshakeMessage$CertificateMsg certificateMsg
        36: .line 274
      StackMap locals:
      StackMap stack:
            new sun.security.ssl.HandshakeMessage$CertificateStatus
            dup
            aload 0 /* this */
            getfield sun.security.ssl.ClientHandshaker.input:Lsun/security/ssl/HandshakeInStream;
            invokespecial sun.security.ssl.HandshakeMessage$CertificateStatus.<init>:(Lsun/security/ssl/HandshakeInStream;)V
            astore 8 /* certStatusMsg */
        start local 8 // sun.security.ssl.HandshakeMessage$CertificateStatus certStatusMsg
        37: .line 275
            aload 0 /* this */
            getfield sun.security.ssl.ClientHandshaker.handshakeState:Lsun/security/ssl/HandshakeStateManager;
            aload 8 /* certStatusMsg */
            aload 0 /* this */
            getfield sun.security.ssl.ClientHandshaker.resumingSession:Z
            invokevirtual sun.security.ssl.HandshakeStateManager.update:(Lsun/security/ssl/HandshakeMessage;Z)V
        38: .line 276
            aload 0 /* this */
            aload 8 /* certStatusMsg */
            invokevirtual sun.security.ssl.ClientHandshaker.certificateStatus:(Lsun/security/ssl/HandshakeMessage$CertificateStatus;)V
        39: .line 277
            aload 0 /* this */
            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;
            putfield sun.security.ssl.ClientHandshaker.serverKey:Ljava/security/PublicKey;
        40: .line 278
            goto 147
        end local 8 // sun.security.ssl.HandshakeMessage$CertificateStatus certStatusMsg
        41: .line 281
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iconst_1
            putfield sun.security.ssl.ClientHandshaker.serverKeyExchangeReceived:Z
        42: .line 282
            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 - 13
                    2: 92
                    3: 43
                    4: 92
                    5: 92
                    6: 69
                    7: 69
                    8: 62
                    9: 92
                   10: 92
                   11: 81
                   12: 81
                   13: 81
              default: 97
          }
        43: .line 291
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.ClientHandshaker.serverKey:Ljava/security/PublicKey;
            ifnonnull 47
        44: .line 292
            new javax.net.ssl.SSLProtocolException
            dup
        45: .line 293
            ldc "Server did not send certificate message"
        46: .line 292
            invokespecial javax.net.ssl.SSLProtocolException.<init>:(Ljava/lang/String;)V
            athrow
        47: .line 296
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.ClientHandshaker.serverKey:Ljava/security/PublicKey;
            instanceof java.security.interfaces.RSAPublicKey
            ifne 49
        48: .line 297
            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
        49: .line 302
      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 55
        50: .line 303
            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
        51: .line 305
            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;
        52: .line 306
            ldc " when the public key in the server certificate"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        53: .line 307
            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;
        54: .line 303
            invokespecial javax.net.ssl.SSLProtocolException.<init>:(Ljava/lang/String;)V
            athrow
        55: .line 312
      StackMap locals:
      StackMap stack:
            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
        56: .line 311
            astore 9 /* rsaSrvKeyExchange */
        start local 9 // sun.security.ssl.HandshakeMessage$RSA_ServerKeyExchange rsaSrvKeyExchange
        57: .line 313
            aload 0 /* this */
            getfield sun.security.ssl.ClientHandshaker.handshakeState:Lsun/security/ssl/HandshakeStateManager;
            aload 9 /* rsaSrvKeyExchange */
            aload 0 /* this */
            getfield sun.security.ssl.ClientHandshaker.resumingSession:Z
            invokevirtual sun.security.ssl.HandshakeStateManager.update:(Lsun/security/ssl/HandshakeMessage;Z)V
        58: .line 314
            aload 0 /* this */
            aload 9 /* rsaSrvKeyExchange */
            invokevirtual sun.security.ssl.ClientHandshaker.serverKeyExchange:(Lsun/security/ssl/HandshakeMessage$RSA_ServerKeyExchange;)V
        end local 9 // sun.security.ssl.HandshakeMessage$RSA_ServerKeyExchange rsaSrvKeyExchange
        59: .line 315
            goto 147
      StackMap locals:
      StackMap stack: java.security.GeneralSecurityException
        60: astore 9 /* e */
        start local 9 // java.security.GeneralSecurityException e
        61: .line 316
            new javax.net.ssl.SSLException
            dup
            ldc "Server key"
            aload 9 /* e */
            invokespecial javax.net.ssl.SSLException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
            athrow
        end local 9 // java.security.GeneralSecurityException e
        62: .line 322
      StackMap locals:
      StackMap stack:
            new sun.security.ssl.HandshakeMessage$DH_ServerKeyExchange
            dup
            aload 0 /* this */
            getfield sun.security.ssl.ClientHandshaker.input:Lsun/security/ssl/HandshakeInStream;
            aload 0 /* this */
            getfield sun.security.ssl.ClientHandshaker.protocolVersion:Lsun/security/ssl/ProtocolVersion;
            invokespecial sun.security.ssl.HandshakeMessage$DH_ServerKeyExchange.<init>:(Lsun/security/ssl/HandshakeInStream;Lsun/security/ssl/ProtocolVersion;)V
        63: .line 321
            astore 9 /* dhSrvKeyExchange */
        start local 9 // sun.security.ssl.HandshakeMessage$DH_ServerKeyExchange dhSrvKeyExchange
        64: .line 323
            aload 0 /* this */
            getfield sun.security.ssl.ClientHandshaker.handshakeState:Lsun/security/ssl/HandshakeStateManager;
            aload 9 /* dhSrvKeyExchange */
            aload 0 /* this */
            getfield sun.security.ssl.ClientHandshaker.resumingSession:Z
            invokevirtual sun.security.ssl.HandshakeStateManager.update:(Lsun/security/ssl/HandshakeMessage;Z)V
        65: .line 324
            aload 0 /* this */
            aload 9 /* dhSrvKeyExchange */
            invokevirtual sun.security.ssl.ClientHandshaker.serverKeyExchange:(Lsun/security/ssl/HandshakeMessage$DH_ServerKeyExchange;)V
        end local 9 // sun.security.ssl.HandshakeMessage$DH_ServerKeyExchange dhSrvKeyExchange
        66: .line 325
            goto 147
      StackMap locals:
      StackMap stack: java.security.GeneralSecurityException
        67: astore 9 /* e */
        start local 9 // java.security.GeneralSecurityException e
        68: .line 326
            new javax.net.ssl.SSLException
            dup
            ldc "Server key"
            aload 9 /* e */
            invokespecial javax.net.ssl.SSLException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
            athrow
        end local 9 // java.security.GeneralSecurityException e
        69: .line 333
      StackMap locals:
      StackMap stack:
            new sun.security.ssl.HandshakeMessage$DH_ServerKeyExchange
            dup
        70: .line 334
            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;
        71: .line 335
            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
        72: .line 336
            iload 2 /* messageLen */
        73: .line 337
            aload 0 /* this */
            invokevirtual sun.security.ssl.ClientHandshaker.getLocalSupportedSignAlgs:()Ljava/util/Collection;
            aload 0 /* this */
            getfield sun.security.ssl.ClientHandshaker.protocolVersion:Lsun/security/ssl/ProtocolVersion;
        74: .line 333
            invokespecial sun.security.ssl.HandshakeMessage$DH_ServerKeyExchange.<init>:(Lsun/security/ssl/HandshakeInStream;Ljava/security/PublicKey;[B[BILjava/util/Collection;Lsun/security/ssl/ProtocolVersion;)V
        75: .line 332
            astore 9 /* dhSrvKeyExchange */
        start local 9 // sun.security.ssl.HandshakeMessage$DH_ServerKeyExchange dhSrvKeyExchange
        76: .line 338
            aload 0 /* this */
            getfield sun.security.ssl.ClientHandshaker.handshakeState:Lsun/security/ssl/HandshakeStateManager;
            aload 9 /* dhSrvKeyExchange */
            aload 0 /* this */
            getfield sun.security.ssl.ClientHandshaker.resumingSession:Z
            invokevirtual sun.security.ssl.HandshakeStateManager.update:(Lsun/security/ssl/HandshakeMessage;Z)V
        77: .line 339
            aload 0 /* this */
            aload 9 /* dhSrvKeyExchange */
            invokevirtual sun.security.ssl.ClientHandshaker.serverKeyExchange:(Lsun/security/ssl/HandshakeMessage$DH_ServerKeyExchange;)V
        end local 9 // sun.security.ssl.HandshakeMessage$DH_ServerKeyExchange dhSrvKeyExchange
        78: .line 340
            goto 147
      StackMap locals:
      StackMap stack: java.security.GeneralSecurityException
        79: astore 9 /* e */
        start local 9 // java.security.GeneralSecurityException e
        80: .line 341
            new javax.net.ssl.SSLException
            dup
            ldc "Server key"
            aload 9 /* e */
            invokespecial javax.net.ssl.SSLException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
            athrow
        end local 9 // java.security.GeneralSecurityException e
        81: .line 349
      StackMap locals:
      StackMap stack:
            new sun.security.ssl.HandshakeMessage$ECDH_ServerKeyExchange
            dup
        82: .line 350
            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
        83: .line 351
            aload 0 /* this */
            getfield sun.security.ssl.ClientHandshaker.svr_random:Lsun/security/ssl/RandomCookie;
            getfield sun.security.ssl.RandomCookie.random_bytes:[B
        84: .line 352
            aload 0 /* this */
            invokevirtual sun.security.ssl.ClientHandshaker.getLocalSupportedSignAlgs:()Ljava/util/Collection;
            aload 0 /* this */
            getfield sun.security.ssl.ClientHandshaker.protocolVersion:Lsun/security/ssl/ProtocolVersion;
        85: .line 349
            invokespecial sun.security.ssl.HandshakeMessage$ECDH_ServerKeyExchange.<init>:(Lsun/security/ssl/HandshakeInStream;Ljava/security/PublicKey;[B[BLjava/util/Collection;Lsun/security/ssl/ProtocolVersion;)V
        86: .line 348
            astore 9 /* ecdhSrvKeyExchange */
        start local 9 // sun.security.ssl.HandshakeMessage$ECDH_ServerKeyExchange ecdhSrvKeyExchange
        87: .line 353
            aload 0 /* this */
            getfield sun.security.ssl.ClientHandshaker.handshakeState:Lsun/security/ssl/HandshakeStateManager;
            aload 9 /* ecdhSrvKeyExchange */
            aload 0 /* this */
            getfield sun.security.ssl.ClientHandshaker.resumingSession:Z
            invokevirtual sun.security.ssl.HandshakeStateManager.update:(Lsun/security/ssl/HandshakeMessage;Z)V
        88: .line 354
            aload 0 /* this */
            aload 9 /* ecdhSrvKeyExchange */
            invokevirtual sun.security.ssl.ClientHandshaker.serverKeyExchange:(Lsun/security/ssl/HandshakeMessage$ECDH_ServerKeyExchange;)V
        end local 9 // sun.security.ssl.HandshakeMessage$ECDH_ServerKeyExchange ecdhSrvKeyExchange
        89: .line 355
            goto 147
      StackMap locals:
      StackMap stack: java.security.GeneralSecurityException
        90: astore 9 /* e */
        start local 9 // java.security.GeneralSecurityException e
        91: .line 356
            new javax.net.ssl.SSLException
            dup
            ldc "Server key"
            aload 9 /* e */
            invokespecial javax.net.ssl.SSLException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
            athrow
        end local 9 // java.security.GeneralSecurityException e
        92: .line 364
      StackMap locals:
      StackMap stack:
            new javax.net.ssl.SSLProtocolException
            dup
        93: .line 365
            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
        94: .line 366
            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;
        95: .line 365
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        96: .line 364
            invokespecial javax.net.ssl.SSLProtocolException.<init>:(Ljava/lang/String;)V
            athrow
        97: .line 368
      StackMap locals:
      StackMap stack:
            new javax.net.ssl.SSLProtocolException
            dup
        98: .line 369
            new java.lang.StringBuilder
            dup
            ldc "unsupported or unexpected key exchange algorithm = "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
        99: .line 370
            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;
       100: .line 369
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
       101: .line 368
            invokespecial javax.net.ssl.SSLProtocolException.<init>:(Ljava/lang/String;)V
            athrow
       102: .line 376
      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 103
            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 106
       103: .line 377
      StackMap locals:
      StackMap stack:
            new javax.net.ssl.SSLHandshakeException
            dup
       104: .line 378
            ldc "Client authentication requested for anonymous cipher suite."
       105: .line 377
            invokespecial javax.net.ssl.SSLHandshakeException.<init>:(Ljava/lang/String;)V
            athrow
       106: .line 380
      StackMap locals:
      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;
            invokestatic sun.security.ssl.ClientKeyExchangeService.find:(Ljava/lang/String;)Lsun/security/ssl/ClientKeyExchangeService;
            ifnull 112
       107: .line 382
            new javax.net.ssl.SSLHandshakeException
            dup
       108: .line 383
            new java.lang.StringBuilder
            dup
            ldc "Client certificate requested for external cipher suite: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
       109: .line 384
            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;
       110: .line 383
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
       111: .line 382
            invokespecial javax.net.ssl.SSLHandshakeException.<init>:(Ljava/lang/String;)V
            athrow
       112: .line 386
      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;
            aload 0 /* this */
            getfield sun.security.ssl.ClientHandshaker.protocolVersion:Lsun/security/ssl/ProtocolVersion;
            invokespecial sun.security.ssl.HandshakeMessage$CertificateRequest.<init>:(Lsun/security/ssl/HandshakeInStream;Lsun/security/ssl/ProtocolVersion;)V
            putfield sun.security.ssl.ClientHandshaker.certRequest:Lsun/security/ssl/HandshakeMessage$CertificateRequest;
       113: .line 387
            getstatic sun.security.ssl.ClientHandshaker.debug:Lsun/security/ssl/Debug;
            ifnull 115
            ldc "handshake"
            invokestatic sun.security.ssl.Debug.isOn:(Ljava/lang/String;)Z
            ifeq 115
       114: .line 388
            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
       115: .line 390
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.ClientHandshaker.handshakeState:Lsun/security/ssl/HandshakeStateManager;
            aload 0 /* this */
            getfield sun.security.ssl.ClientHandshaker.certRequest:Lsun/security/ssl/HandshakeMessage$CertificateRequest;
            aload 0 /* this */
            getfield sun.security.ssl.ClientHandshaker.resumingSession:Z
            invokevirtual sun.security.ssl.HandshakeStateManager.update:(Lsun/security/ssl/HandshakeMessage;Z)V
       116: .line 392
            aload 0 /* this */
            getfield sun.security.ssl.ClientHandshaker.protocolVersion:Lsun/security/ssl/ProtocolVersion;
            invokevirtual sun.security.ssl.ProtocolVersion.useTLS12PlusSpec:()Z
            ifeq 147
       117: .line 394
            aload 0 /* this */
            getfield sun.security.ssl.ClientHandshaker.certRequest:Lsun/security/ssl/HandshakeMessage$CertificateRequest;
            invokevirtual sun.security.ssl.HandshakeMessage$CertificateRequest.getSignAlgorithms:()Ljava/util/Collection;
       118: .line 393
            astore 9 /* peerSignAlgs */
        start local 9 // java.util.Collection peerSignAlgs
       119: .line 395
            aload 9 /* peerSignAlgs */
            ifnull 120
            aload 9 /* peerSignAlgs */
            invokeinterface java.util.Collection.isEmpty:()Z
            ifeq 123
       120: .line 396
      StackMap locals: sun.security.ssl.ClientHandshaker int int java.util.List top top top top top java.util.Collection
      StackMap stack:
            new javax.net.ssl.SSLHandshakeException
            dup
       121: .line 397
            ldc "No peer supported signature algorithms"
       122: .line 396
            invokespecial javax.net.ssl.SSLHandshakeException.<init>:(Ljava/lang/String;)V
            athrow
       123: .line 402
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.ClientHandshaker.algorithmConstraints:Ljava/security/AlgorithmConstraints;
            aload 9 /* peerSignAlgs */
       124: .line 401
            invokestatic sun.security.ssl.SignatureAndHashAlgorithm.getSupportedAlgorithms:(Ljava/security/AlgorithmConstraints;Ljava/util/Collection;)Ljava/util/Collection;
       125: .line 400
            astore 10 /* supportedPeerSignAlgs */
        start local 10 // java.util.Collection supportedPeerSignAlgs
       126: .line 403
            aload 10 /* supportedPeerSignAlgs */
            invokeinterface java.util.Collection.isEmpty:()Z
            ifeq 130
       127: .line 404
            new javax.net.ssl.SSLHandshakeException
            dup
       128: .line 405
            ldc "No supported signature and hash algorithm in common"
       129: .line 404
            invokespecial javax.net.ssl.SSLHandshakeException.<init>:(Ljava/lang/String;)V
            athrow
       130: .line 408
      StackMap locals: java.util.Collection
      StackMap stack:
            aload 0 /* this */
            aload 10 /* supportedPeerSignAlgs */
            invokevirtual sun.security.ssl.ClientHandshaker.setPeerSupportedSignAlgs:(Ljava/util/Collection;)V
       131: .line 409
            aload 0 /* this */
            getfield sun.security.ssl.ClientHandshaker.session:Lsun/security/ssl/SSLSessionImpl;
       132: .line 410
            aload 10 /* supportedPeerSignAlgs */
       133: .line 409
            invokevirtual sun.security.ssl.SSLSessionImpl.setPeerSupportedSignatureAlgorithms:(Ljava/util/Collection;)V
        end local 10 // java.util.Collection supportedPeerSignAlgs
        end local 9 // java.util.Collection peerSignAlgs
       134: .line 413
            goto 147
       135: .line 416
      StackMap locals: sun.security.ssl.ClientHandshaker int int java.util.List
      StackMap stack:
            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
            astore 9 /* serverHelloDone */
        start local 9 // sun.security.ssl.HandshakeMessage$ServerHelloDone serverHelloDone
       136: .line 417
            aload 0 /* this */
            getfield sun.security.ssl.ClientHandshaker.handshakeState:Lsun/security/ssl/HandshakeStateManager;
            aload 9 /* serverHelloDone */
            aload 0 /* this */
            getfield sun.security.ssl.ClientHandshaker.resumingSession:Z
            invokevirtual sun.security.ssl.HandshakeStateManager.update:(Lsun/security/ssl/HandshakeMessage;Z)V
       137: .line 418
            aload 0 /* this */
            aload 9 /* serverHelloDone */
            invokevirtual sun.security.ssl.ClientHandshaker.serverHelloDone:(Lsun/security/ssl/HandshakeMessage$ServerHelloDone;)V
       138: .line 420
            goto 147
        end local 9 // sun.security.ssl.HandshakeMessage$ServerHelloDone serverHelloDone
       139: .line 424
      StackMap locals:
      StackMap stack:
            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;
            aload 0 /* this */
            getfield sun.security.ssl.ClientHandshaker.cipherSuite:Lsun/security/ssl/CipherSuite;
            invokespecial sun.security.ssl.HandshakeMessage$Finished.<init>:(Lsun/security/ssl/ProtocolVersion;Lsun/security/ssl/HandshakeInStream;Lsun/security/ssl/CipherSuite;)V
       140: .line 423
            astore 10 /* serverFinished */
        start local 10 // sun.security.ssl.HandshakeMessage$Finished serverFinished
       141: .line 425
            aload 0 /* this */
            getfield sun.security.ssl.ClientHandshaker.handshakeState:Lsun/security/ssl/HandshakeStateManager;
            aload 10 /* serverFinished */
            aload 0 /* this */
            getfield sun.security.ssl.ClientHandshaker.resumingSession:Z
            invokevirtual sun.security.ssl.HandshakeStateManager.update:(Lsun/security/ssl/HandshakeMessage;Z)V
       142: .line 426
            aload 0 /* this */
            aload 10 /* serverFinished */
            invokevirtual sun.security.ssl.ClientHandshaker.serverFinished:(Lsun/security/ssl/HandshakeMessage$Finished;)V
       143: .line 428
            goto 147
        end local 10 // sun.security.ssl.HandshakeMessage$Finished serverFinished
       144: .line 431
      StackMap locals:
      StackMap stack:
            new javax.net.ssl.SSLProtocolException
            dup
       145: .line 432
            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;
       146: .line 431
            invokespecial javax.net.ssl.SSLProtocolException.<init>:(Ljava/lang/String;)V
            athrow
       147: .line 434
      StackMap locals:
      StackMap stack:
            return
        end local 3 // java.util.List ignoredOptStates
        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  148     0                   this  Lsun/security/ssl/ClientHandshaker;
            0  148     1                   type  B
            0  148     2             messageLen  I
            1  148     3       ignoredOptStates  Ljava/util/List<Ljava/lang/Byte;>;
            9   12     4           helloRequest  Lsun/security/ssl/HandshakeMessage$HelloRequest;
           18   21     5     helloVerifyRequest  Lsun/security/ssl/HandshakeMessage$HelloVerifyRequest;
           22   25     6            serverHello  Lsun/security/ssl/HandshakeMessage$ServerHello;
           31   36     7         certificateMsg  Lsun/security/ssl/HandshakeMessage$CertificateMsg;
           37   41     8          certStatusMsg  Lsun/security/ssl/HandshakeMessage$CertificateStatus;
           57   59     9      rsaSrvKeyExchange  Lsun/security/ssl/HandshakeMessage$RSA_ServerKeyExchange;
           61   62     9                      e  Ljava/security/GeneralSecurityException;
           64   66     9       dhSrvKeyExchange  Lsun/security/ssl/HandshakeMessage$DH_ServerKeyExchange;
           68   69     9                      e  Ljava/security/GeneralSecurityException;
           76   78     9       dhSrvKeyExchange  Lsun/security/ssl/HandshakeMessage$DH_ServerKeyExchange;
           80   81     9                      e  Ljava/security/GeneralSecurityException;
           87   89     9     ecdhSrvKeyExchange  Lsun/security/ssl/HandshakeMessage$ECDH_ServerKeyExchange;
           91   92     9                      e  Ljava/security/GeneralSecurityException;
          119  134     9           peerSignAlgs  Ljava/util/Collection<Lsun/security/ssl/SignatureAndHashAlgorithm;>;
          126  134    10  supportedPeerSignAlgs  Ljava/util/Collection<Lsun/security/ssl/SignatureAndHashAlgorithm;>;
          136  139     9        serverHelloDone  Lsun/security/ssl/HandshakeMessage$ServerHelloDone;
          141  144    10         serverFinished  Lsun/security/ssl/HandshakeMessage$Finished;
      Exception table:
        from    to  target  type
          55    59      60  Class java.security.GeneralSecurityException
          62    66      67  Class java.security.GeneralSecurityException
          69    78      79  Class java.security.GeneralSecurityException
          81    89      90  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 443
            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 444
            aload 1 /* mesg */
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            invokevirtual sun.security.ssl.HandshakeMessage$HelloRequest.print:(Ljava/io/PrintStream;)V
         2: .line 451
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.ClientHandshaker.clientHelloDelivered:Z
            ifne 18
         3: .line 452
            aload 0 /* this */
            getfield sun.security.ssl.ClientHandshaker.secureRenegotiation:Z
            ifne 12
            getstatic sun.security.ssl.ClientHandshaker.allowUnsafeRenegotiation:Z
            ifne 12
         4: .line 454
            aload 0 /* this */
            getfield sun.security.ssl.ClientHandshaker.activeProtocolVersion:Lsun/security/ssl/ProtocolVersion;
            invokevirtual sun.security.ssl.ProtocolVersion.useTLS10PlusSpec:()Z
            ifeq 8
         5: .line 456
            aload 0 /* this */
            bipush 100
            invokevirtual sun.security.ssl.ClientHandshaker.warningSE:(B)V
         6: .line 460
            aload 0 /* this */
            iconst_1
            putfield sun.security.ssl.ClientHandshaker.invalidated:Z
         7: .line 469
            goto 18
         8: .line 475
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            bipush 40
         9: .line 476
            ldc "Renegotiation is not allowed"
        10: .line 475
            invokevirtual sun.security.ssl.ClientHandshaker.fatalSE:(BLjava/lang/String;)V
        11: .line 478
            goto 18
        12: .line 479
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.ClientHandshaker.secureRenegotiation:Z
            ifne 17
        13: .line 480
            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 481
            getstatic java.lang.System.out:Ljava/io/PrintStream;
        15: .line 482
            ldc "Warning: continue with insecure renegotiation"
        16: .line 481
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
        17: .line 485
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual sun.security.ssl.ClientHandshaker.kickstart:()V
        18: .line 488
      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 helloVerifyRequest(sun.security.ssl.HandshakeMessage$HelloVerifyRequest);
    descriptor: (Lsun/security/ssl/HandshakeMessage$HelloVerifyRequest;)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$HelloVerifyRequest mesg
         0: .line 493
            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 494
            aload 1 /* mesg */
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            invokevirtual sun.security.ssl.HandshakeMessage$HelloVerifyRequest.print:(Ljava/io/PrintStream;)V
         2: .line 503
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.ClientHandshaker.initialClientHelloMsg:Lsun/security/ssl/HandshakeMessage$ClientHello;
            aload 1 /* mesg */
            getfield sun.security.ssl.HandshakeMessage$HelloVerifyRequest.cookie:[B
            invokevirtual byte[].clone:()Ljava/lang/Object;
            checkcast byte[]
            putfield sun.security.ssl.HandshakeMessage$ClientHello.cookie:[B
         3: .line 505
            getstatic sun.security.ssl.ClientHandshaker.debug:Lsun/security/ssl/Debug;
            ifnull 5
            ldc "handshake"
            invokestatic sun.security.ssl.Debug.isOn:(Ljava/lang/String;)Z
            ifeq 5
         4: .line 506
            aload 0 /* this */
            getfield sun.security.ssl.ClientHandshaker.initialClientHelloMsg:Lsun/security/ssl/HandshakeMessage$ClientHello;
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            invokevirtual sun.security.ssl.HandshakeMessage$ClientHello.print:(Ljava/io/PrintStream;)V
         5: .line 510
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.ClientHandshaker.initialClientHelloMsg:Lsun/security/ssl/HandshakeMessage$ClientHello;
            aload 0 /* this */
            getfield sun.security.ssl.ClientHandshaker.output:Lsun/security/ssl/HandshakeOutStream;
            invokevirtual sun.security.ssl.HandshakeMessage$ClientHello.write:(Lsun/security/ssl/HandshakeOutStream;)V
         6: .line 511
            aload 0 /* this */
            getfield sun.security.ssl.ClientHandshaker.handshakeState:Lsun/security/ssl/HandshakeStateManager;
            aload 0 /* this */
            getfield sun.security.ssl.ClientHandshaker.initialClientHelloMsg:Lsun/security/ssl/HandshakeMessage$ClientHello;
            aload 0 /* this */
            getfield sun.security.ssl.ClientHandshaker.resumingSession:Z
            invokevirtual sun.security.ssl.HandshakeStateManager.update:(Lsun/security/ssl/HandshakeMessage;Z)V
         7: .line 512
            return
        end local 1 // sun.security.ssl.HandshakeMessage$HelloVerifyRequest mesg
        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  mesg  Lsun/security/ssl/HandshakeMessage$HelloVerifyRequest;
    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=10, args_size=2
        start local 0 // sun.security.ssl.ClientHandshaker this
        start local 1 // sun.security.ssl.HandshakeMessage$ServerHello mesg
         0: .line 527
            aload 0 /* this */
            aconst_null
            putfield sun.security.ssl.ClientHandshaker.initialClientHelloMsg:Lsun/security/ssl/HandshakeMessage$ClientHello;
         1: .line 529
            aload 0 /* this */
            iconst_0
            putfield sun.security.ssl.ClientHandshaker.serverKeyExchangeReceived:Z
         2: .line 530
            getstatic sun.security.ssl.ClientHandshaker.debug:Lsun/security/ssl/Debug;
            ifnull 4
            ldc "handshake"
            invokestatic sun.security.ssl.Debug.isOn:(Ljava/lang/String;)Z
            ifeq 4
         3: .line 531
            aload 1 /* mesg */
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            invokevirtual sun.security.ssl.HandshakeMessage$ServerHello.print:(Ljava/io/PrintStream;)V
         4: .line 535
      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
         5: .line 536
            aload 0 /* this */
            aload 2 /* mesgVersion */
            invokevirtual sun.security.ssl.ClientHandshaker.isNegotiable:(Lsun/security/ssl/ProtocolVersion;)Z
            ifne 12
         6: .line 537
            new javax.net.ssl.SSLHandshakeException
            dup
         7: .line 538
            new java.lang.StringBuilder
            dup
            ldc "Server chose "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 2 /* mesgVersion */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
         8: .line 539
            ldc ", but that protocol version is not enabled or not supported "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
         9: .line 540
            ldc "by the client."
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        10: .line 538
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        11: .line 537
            invokespecial javax.net.ssl.SSLHandshakeException.<init>:(Ljava/lang/String;)V
            athrow
        12: .line 543
      StackMap locals: sun.security.ssl.ProtocolVersion
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.ClientHandshaker.handshakeHash:Lsun/security/ssl/HandshakeHash;
            aload 2 /* mesgVersion */
            invokevirtual sun.security.ssl.HandshakeHash.protocolDetermined:(Lsun/security/ssl/ProtocolVersion;)V
        13: .line 547
            aload 0 /* this */
            aload 2 /* mesgVersion */
            invokevirtual sun.security.ssl.ClientHandshaker.setVersion:(Lsun/security/ssl/ProtocolVersion;)V
        14: .line 551
            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;
        15: .line 550
            checkcast sun.security.ssl.RenegotiationInfoExtension
            astore 3 /* serverHelloRI */
        start local 3 // sun.security.ssl.RenegotiationInfoExtension serverHelloRI
        16: .line 552
            aload 3 /* serverHelloRI */
            ifnull 44
        17: .line 553
            aload 0 /* this */
            getfield sun.security.ssl.ClientHandshaker.isInitialHandshake:Z
            ifeq 24
        18: .line 555
            aload 3 /* serverHelloRI */
            invokevirtual sun.security.ssl.RenegotiationInfoExtension.isEmpty:()Z
            ifne 22
        19: .line 557
            aload 0 /* this */
            bipush 40
        20: .line 558
            ldc "The renegotiation_info field is not empty"
        21: .line 557
            invokevirtual sun.security.ssl.ClientHandshaker.fatalSE:(BLjava/lang/String;)V
        22: .line 561
      StackMap locals: sun.security.ssl.RenegotiationInfoExtension
      StackMap stack:
            aload 0 /* this */
            iconst_1
            putfield sun.security.ssl.ClientHandshaker.secureRenegotiation:Z
        23: .line 562
            goto 57
        24: .line 565
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.ClientHandshaker.secureRenegotiation:Z
            ifne 28
        25: .line 566
            aload 0 /* this */
            bipush 40
        26: .line 567
            ldc "Unexpected renegotiation indication extension"
        27: .line 566
            invokevirtual sun.security.ssl.ClientHandshaker.fatalSE:(BLjava/lang/String;)V
        28: .line 572
      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
        29: .line 571
            astore 4 /* verifyData */
        start local 4 // byte[] verifyData
        30: .line 573
            aload 0 /* this */
            getfield sun.security.ssl.ClientHandshaker.clientVerifyData:[B
            iconst_0
            aload 4 /* verifyData */
        31: .line 574
            iconst_0
            aload 0 /* this */
            getfield sun.security.ssl.ClientHandshaker.clientVerifyData:[B
            arraylength
        32: .line 573
            invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
        33: .line 575
            aload 0 /* this */
            getfield sun.security.ssl.ClientHandshaker.serverVerifyData:[B
            iconst_0
            aload 4 /* verifyData */
        34: .line 576
            aload 0 /* this */
            getfield sun.security.ssl.ClientHandshaker.clientVerifyData:[B
            arraylength
            aload 0 /* this */
            getfield sun.security.ssl.ClientHandshaker.serverVerifyData:[B
            arraylength
        35: .line 575
            invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
        36: .line 577
            aload 4 /* verifyData */
        37: .line 578
            aload 3 /* serverHelloRI */
            invokevirtual sun.security.ssl.RenegotiationInfoExtension.getRenegotiatedConnection:()[B
        38: .line 577
            invokestatic java.security.MessageDigest.isEqual:([B[B)Z
        39: .line 578
            ifne 57
        40: .line 579
            aload 0 /* this */
            bipush 40
        41: .line 580
            ldc "Incorrect verify data in ServerHello renegotiation_info message"
        42: .line 579
            invokevirtual sun.security.ssl.ClientHandshaker.fatalSE:(BLjava/lang/String;)V
        end local 4 // byte[] verifyData
        43: .line 584
            goto 57
        44: .line 586
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.ClientHandshaker.isInitialHandshake:Z
            ifeq 53
        45: .line 587
            getstatic sun.security.ssl.ClientHandshaker.allowLegacyHelloMessages:Z
            ifne 49
        46: .line 589
            aload 0 /* this */
            bipush 40
        47: .line 590
            ldc "Failed to negotiate the use of secure renegotiation"
        48: .line 589
            invokevirtual sun.security.ssl.ClientHandshaker.fatalSE:(BLjava/lang/String;)V
        49: .line 593
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iconst_0
            putfield sun.security.ssl.ClientHandshaker.secureRenegotiation:Z
        50: .line 594
            getstatic sun.security.ssl.ClientHandshaker.debug:Lsun/security/ssl/Debug;
            ifnull 57
            ldc "handshake"
            invokestatic sun.security.ssl.Debug.isOn:(Ljava/lang/String;)Z
            ifeq 57
        51: .line 595
            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
        52: .line 598
            goto 57
        53: .line 601
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.ClientHandshaker.secureRenegotiation:Z
            ifeq 57
        54: .line 602
            aload 0 /* this */
            bipush 40
        55: .line 603
            ldc "No renegotiation indication extension"
        56: .line 602
            invokevirtual sun.security.ssl.ClientHandshaker.fatalSE:(BLjava/lang/String;)V
        57: .line 616
      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;
        58: .line 618
            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 62
        59: .line 619
            aload 0 /* this */
            bipush 47
        60: .line 620
            new java.lang.StringBuilder
            dup
            ldc "Server selected improper ciphersuite "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* mesg */
            getfield sun.security.ssl.HandshakeMessage$ServerHello.cipherSuite:Lsun/security/ssl/CipherSuite;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        61: .line 619
            invokevirtual sun.security.ssl.ClientHandshaker.fatalSE:(BLjava/lang/String;)V
        62: .line 623
      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
        63: .line 624
            aload 0 /* this */
            getfield sun.security.ssl.ClientHandshaker.protocolVersion:Lsun/security/ssl/ProtocolVersion;
            invokevirtual sun.security.ssl.ProtocolVersion.useTLS12PlusSpec:()Z
            ifeq 65
        64: .line 625
            aload 0 /* this */
            getfield sun.security.ssl.ClientHandshaker.handshakeHash:Lsun/security/ssl/HandshakeHash;
            aload 0 /* this */
            getfield sun.security.ssl.ClientHandshaker.cipherSuite:Lsun/security/ssl/CipherSuite;
            getfield sun.security.ssl.CipherSuite.prfAlg:Lsun/security/ssl/CipherSuite$PRF;
            invokevirtual sun.security.ssl.CipherSuite$PRF.getPRFHashAlg:()Ljava/lang/String;
            invokevirtual sun.security.ssl.HandshakeHash.setFinishedAlg:(Ljava/lang/String;)V
        65: .line 628
      StackMap locals:
      StackMap stack:
            aload 1 /* mesg */
            getfield sun.security.ssl.HandshakeMessage$ServerHello.compression_method:B
            ifeq 71
        66: .line 629
            aload 0 /* this */
            bipush 47
        67: .line 630
            new java.lang.StringBuilder
            dup
            ldc "compression type not supported, "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
        68: .line 631
            aload 1 /* mesg */
            getfield sun.security.ssl.HandshakeMessage$ServerHello.compression_method:B
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
        69: .line 630
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        70: .line 629
            invokevirtual sun.security.ssl.ClientHandshaker.fatalSE:(BLjava/lang/String;)V
        71: .line 636
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.ClientHandshaker.session:Lsun/security/ssl/SSLSessionImpl;
            ifnull 105
        72: .line 638
            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 100
        73: .line 643
            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
        74: .line 644
            aload 0 /* this */
            getfield sun.security.ssl.ClientHandshaker.cipherSuite:Lsun/security/ssl/CipherSuite;
            aload 4 /* sessionSuite */
            if_acmpeq 78
        75: .line 645
            new javax.net.ssl.SSLProtocolException
            dup
        76: .line 646
            ldc "Server returned wrong cipher suite for session"
        77: .line 645
            invokespecial javax.net.ssl.SSLProtocolException.<init>:(Ljava/lang/String;)V
            athrow
        78: .line 650
      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
        79: .line 651
            aload 0 /* this */
            getfield sun.security.ssl.ClientHandshaker.protocolVersion:Lsun/security/ssl/ProtocolVersion;
            aload 5 /* sessionVersion */
            if_acmpeq 83
        80: .line 652
            new javax.net.ssl.SSLProtocolException
            dup
        81: .line 653
            ldc "Server resumed session with wrong protocol version"
        82: .line 652
            invokespecial javax.net.ssl.SSLProtocolException.<init>:(Ljava/lang/String;)V
            athrow
        83: .line 659
      StackMap locals: sun.security.ssl.ProtocolVersion
      StackMap stack:
            aload 4 /* sessionSuite */
            getfield sun.security.ssl.CipherSuite.keyExchange:Lsun/security/ssl/CipherSuite$KeyExchange;
            getfield sun.security.ssl.CipherSuite$KeyExchange.name:Ljava/lang/String;
        84: .line 658
            invokestatic sun.security.ssl.ClientKeyExchangeService.find:(Ljava/lang/String;)Lsun/security/ssl/ClientKeyExchangeService;
        85: .line 657
            astore 6 /* p */
        start local 6 // sun.security.ssl.ClientKeyExchangeService p
        86: .line 660
            aload 6 /* p */
            ifnull 95
        87: .line 661
            aload 0 /* this */
            getfield sun.security.ssl.ClientHandshaker.session:Lsun/security/ssl/SSLSessionImpl;
            invokevirtual sun.security.ssl.SSLSessionImpl.getLocalPrincipal:()Ljava/security/Principal;
            astore 7 /* localPrincipal */
        start local 7 // java.security.Principal localPrincipal
        88: .line 663
            aload 6 /* p */
            iconst_1
            aload 0 /* this */
            invokevirtual sun.security.ssl.ClientHandshaker.getAccSE:()Ljava/security/AccessControlContext;
            aload 7 /* localPrincipal */
            invokeinterface sun.security.ssl.ClientKeyExchangeService.isRelated:(ZLjava/security/AccessControlContext;Ljava/security/Principal;)Z
            ifeq 92
        89: .line 664
            getstatic sun.security.ssl.ClientHandshaker.debug:Lsun/security/ssl/Debug;
            ifnull 95
            ldc "session"
            invokestatic sun.security.ssl.Debug.isOn:(Ljava/lang/String;)Z
            ifeq 95
        90: .line 665
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            ldc "Subject identity is same"
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
        91: .line 666
            goto 95
        92: .line 667
      StackMap locals: sun.security.ssl.ClientKeyExchangeService java.security.Principal
      StackMap stack:
            new javax.net.ssl.SSLProtocolException
            dup
        93: .line 668
            ldc "Server resumed session with wrong subject identity or no subject"
        94: .line 667
            invokespecial javax.net.ssl.SSLProtocolException.<init>:(Ljava/lang/String;)V
            athrow
        end local 7 // java.security.Principal localPrincipal
        95: .line 674
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iconst_1
            putfield sun.security.ssl.ClientHandshaker.resumingSession:Z
        96: .line 675
            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
        97: .line 676
            getstatic sun.security.ssl.ClientHandshaker.debug:Lsun/security/ssl/Debug;
            ifnull 105
            ldc "session"
            invokestatic sun.security.ssl.Debug.isOn:(Ljava/lang/String;)Z
            ifeq 105
        98: .line 677
            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
        end local 6 // sun.security.ssl.ClientKeyExchangeService p
        end local 5 // sun.security.ssl.ProtocolVersion sessionVersion
        end local 4 // sun.security.ssl.CipherSuite sessionSuite
        99: .line 679
            goto 105
       100: .line 684
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.ClientHandshaker.isInitialHandshake:Z
            ifeq 102
       101: .line 685
            aload 0 /* this */
            getfield sun.security.ssl.ClientHandshaker.session:Lsun/security/ssl/SSLSessionImpl;
            invokevirtual sun.security.ssl.SSLSessionImpl.invalidate:()V
       102: .line 687
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aconst_null
            putfield sun.security.ssl.ClientHandshaker.session:Lsun/security/ssl/SSLSessionImpl;
       103: .line 688
            aload 0 /* this */
            getfield sun.security.ssl.ClientHandshaker.enableNewSession:Z
            ifne 105
       104: .line 689
            new javax.net.ssl.SSLException
            dup
            ldc "New session creation is disabled"
            invokespecial javax.net.ssl.SSLException.<init>:(Ljava/lang/String;)V
            athrow
       105: .line 696
      StackMap locals:
      StackMap stack:
            aload 1 /* mesg */
            getfield sun.security.ssl.HandshakeMessage$ServerHello.extensions:Lsun/security/ssl/HelloExtensions;
            getstatic sun.security.ssl.ExtensionType.EXT_MAX_FRAGMENT_LENGTH:Lsun/security/ssl/ExtensionType;
            invokevirtual sun.security.ssl.HelloExtensions.get:(Lsun/security/ssl/ExtensionType;)Lsun/security/ssl/HelloExtension;
       106: .line 695
            checkcast sun.security.ssl.MaxFragmentLengthExtension
            astore 4 /* maxFragLenExt */
        start local 4 // sun.security.ssl.MaxFragmentLengthExtension maxFragLenExt
       107: .line 697
            aload 4 /* maxFragLenExt */
            ifnull 114
       108: .line 698
            aload 0 /* this */
            getfield sun.security.ssl.ClientHandshaker.requestedMFLength:I
            iconst_m1
            if_icmpeq 110
       109: .line 699
            aload 4 /* maxFragLenExt */
            invokevirtual sun.security.ssl.MaxFragmentLengthExtension.getMaxFragLen:()I
            aload 0 /* this */
            getfield sun.security.ssl.ClientHandshaker.requestedMFLength:I
            if_icmpeq 116
       110: .line 703
      StackMap locals: sun.security.ssl.MaxFragmentLengthExtension
      StackMap stack:
            aload 0 /* this */
            bipush 47
       111: .line 704
            ldc "Failed to negotiate the max_fragment_length"
       112: .line 703
            invokevirtual sun.security.ssl.ClientHandshaker.fatalSE:(BLjava/lang/String;)V
       113: .line 706
            goto 116
      StackMap locals:
      StackMap stack:
       114: aload 0 /* this */
            getfield sun.security.ssl.ClientHandshaker.resumingSession:Z
            ifne 116
       115: .line 708
            aload 0 /* this */
            iconst_m1
            putfield sun.security.ssl.ClientHandshaker.requestedMFLength:I
       116: .line 714
      StackMap locals:
      StackMap stack:
            aload 1 /* mesg */
            getfield sun.security.ssl.HandshakeMessage$ServerHello.extensions:Lsun/security/ssl/HelloExtensions;
       117: .line 715
            getstatic sun.security.ssl.ExtensionType.EXT_EXTENDED_MASTER_SECRET:Lsun/security/ssl/ExtensionType;
       118: .line 714
            invokevirtual sun.security.ssl.HelloExtensions.get:(Lsun/security/ssl/ExtensionType;)Lsun/security/ssl/HelloExtension;
            checkcast sun.security.ssl.ExtendedMasterSecretExtension
       119: .line 713
            astore 5 /* extendedMasterSecretExt */
        start local 5 // sun.security.ssl.ExtendedMasterSecretExtension extendedMasterSecretExt
       120: .line 716
            aload 5 /* extendedMasterSecretExt */
            ifnull 132
       121: .line 718
            getstatic sun.security.ssl.ClientHandshaker.useExtendedMasterSecret:Z
            ifeq 123
       122: .line 719
            aload 2 /* mesgVersion */
            invokevirtual sun.security.ssl.ProtocolVersion.useTLS10PlusSpec:()Z
            ifeq 123
            aload 0 /* this */
            getfield sun.security.ssl.ClientHandshaker.requestedToUseEMS:Z
            ifne 126
       123: .line 720
      StackMap locals: sun.security.ssl.ExtendedMasterSecretExtension
      StackMap stack:
            aload 0 /* this */
            bipush 110
       124: .line 721
            ldc "Server sent the extended_master_secret extension improperly"
       125: .line 720
            invokevirtual sun.security.ssl.ClientHandshaker.fatalSE:(BLjava/lang/String;)V
       126: .line 728
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.ClientHandshaker.resumingSession:Z
            ifeq 146
            aload 0 /* this */
            getfield sun.security.ssl.ClientHandshaker.session:Lsun/security/ssl/SSLSessionImpl;
            ifnull 146
       127: .line 729
            aload 0 /* this */
            getfield sun.security.ssl.ClientHandshaker.session:Lsun/security/ssl/SSLSessionImpl;
            invokevirtual sun.security.ssl.SSLSessionImpl.getUseExtendedMasterSecret:()Z
            ifne 146
       128: .line 730
            aload 0 /* this */
            bipush 110
       129: .line 731
            ldc "Server sent an unexpected extended_master_secret extension on session resumption"
       130: .line 730
            invokevirtual sun.security.ssl.ClientHandshaker.fatalSE:(BLjava/lang/String;)V
       131: .line 734
            goto 146
       132: .line 735
      StackMap locals:
      StackMap stack:
            getstatic sun.security.ssl.ClientHandshaker.useExtendedMasterSecret:Z
            ifeq 136
            getstatic sun.security.ssl.ClientHandshaker.allowLegacyMasterSecret:Z
            ifne 136
       133: .line 739
            aload 0 /* this */
            bipush 40
       134: .line 740
            ldc "Extended Master Secret extension is required"
       135: .line 739
            invokevirtual sun.security.ssl.ClientHandshaker.fatalSE:(BLjava/lang/String;)V
       136: .line 743
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.ClientHandshaker.resumingSession:Z
            ifeq 146
            aload 0 /* this */
            getfield sun.security.ssl.ClientHandshaker.session:Lsun/security/ssl/SSLSessionImpl;
            ifnull 146
       137: .line 744
            aload 0 /* this */
            getfield sun.security.ssl.ClientHandshaker.session:Lsun/security/ssl/SSLSessionImpl;
            invokevirtual sun.security.ssl.SSLSessionImpl.getUseExtendedMasterSecret:()Z
            ifeq 142
       138: .line 749
            aload 0 /* this */
            bipush 40
       139: .line 750
            ldc "Missing Extended Master Secret extension on session resumption"
       140: .line 749
            invokevirtual sun.security.ssl.ClientHandshaker.fatalSE:(BLjava/lang/String;)V
       141: .line 752
            goto 146
      StackMap locals:
      StackMap stack:
       142: getstatic sun.security.ssl.ClientHandshaker.useExtendedMasterSecret:Z
            ifeq 146
            getstatic sun.security.ssl.ClientHandshaker.allowLegacyResumption:Z
            ifne 146
       143: .line 754
            aload 0 /* this */
            bipush 40
       144: .line 755
            ldc "Extended Master Secret extension is required"
       145: .line 754
            invokevirtual sun.security.ssl.ClientHandshaker.fatalSE:(BLjava/lang/String;)V
       146: .line 762
      StackMap locals:
      StackMap stack:
            aload 1 /* mesg */
            getfield sun.security.ssl.HandshakeMessage$ServerHello.extensions:Lsun/security/ssl/HelloExtensions;
            getstatic sun.security.ssl.ExtensionType.EXT_ALPN:Lsun/security/ssl/ExtensionType;
            invokevirtual sun.security.ssl.HelloExtensions.get:(Lsun/security/ssl/ExtensionType;)Lsun/security/ssl/HelloExtension;
            checkcast sun.security.ssl.ALPNExtension
       147: .line 761
            astore 6 /* serverHelloALPN */
        start local 6 // sun.security.ssl.ALPNExtension serverHelloALPN
       148: .line 764
            aload 6 /* serverHelloALPN */
            ifnull 179
       149: .line 766
            aload 0 /* this */
            getfield sun.security.ssl.ClientHandshaker.alpnActive:Z
            ifne 155
       150: .line 767
            aload 0 /* this */
            bipush 110
       151: .line 768
            new java.lang.StringBuilder
            dup
            ldc "Server sent "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            getstatic sun.security.ssl.ExtensionType.EXT_ALPN:Lsun/security/ssl/ExtensionType;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
       152: .line 769
            ldc " extension when not requested by client"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
       153: .line 768
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
       154: .line 767
            invokevirtual sun.security.ssl.ClientHandshaker.fatalSE:(BLjava/lang/String;)V
       155: .line 772
      StackMap locals: sun.security.ssl.ALPNExtension
      StackMap stack:
            aload 6 /* serverHelloALPN */
            invokevirtual sun.security.ssl.ALPNExtension.getPeerAPs:()Ljava/util/List;
            astore 7 /* protocols */
        start local 7 // java.util.List protocols
       156: .line 775
            aload 7 /* protocols */
            invokeinterface java.util.List.size:()I
            iconst_1
            if_icmpne 173
       157: .line 776
            aload 7 /* protocols */
            iconst_0
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            checkcast java.lang.String
            dup
            astore 8 /* p */
        start local 8 // java.lang.String p
       158: invokevirtual java.lang.String.isEmpty:()Z
            ifne 173
       159: .line 778
            iconst_0
            istore 9 /* i */
        start local 9 // int i
       160: goto 164
       161: .line 779
      StackMap locals: java.util.List java.lang.String int
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.ClientHandshaker.localApl:[Ljava/lang/String;
            iload 9 /* i */
            aaload
            aload 8 /* p */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 163
       162: .line 780
            goto 165
       163: .line 778
      StackMap locals:
      StackMap stack:
            iinc 9 /* i */ 1
      StackMap locals:
      StackMap stack:
       164: iload 9 /* i */
            aload 0 /* this */
            getfield sun.security.ssl.ClientHandshaker.localApl:[Ljava/lang/String;
            arraylength
            if_icmplt 161
       165: .line 783
      StackMap locals:
      StackMap stack:
            iload 9 /* i */
            aload 0 /* this */
            getfield sun.security.ssl.ClientHandshaker.localApl:[Ljava/lang/String;
            arraylength
            if_icmpne 171
       166: .line 784
            aload 0 /* this */
            bipush 40
       167: .line 785
            new java.lang.StringBuilder
            dup
            ldc "Server has selected an application protocol name which was not offered by the client: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
       168: .line 786
            aload 8 /* p */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
       169: .line 785
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
       170: .line 784
            invokevirtual sun.security.ssl.ClientHandshaker.fatalSE:(BLjava/lang/String;)V
       171: .line 788
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 8 /* p */
            putfield sun.security.ssl.ClientHandshaker.applicationProtocol:Ljava/lang/String;
        end local 9 // int i
       172: .line 789
            goto 180
        end local 8 // java.lang.String p
       173: .line 790
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            bipush 40
       174: .line 791
            new java.lang.StringBuilder
            dup
            ldc "Incorrect data in ServerHello "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            getstatic sun.security.ssl.ExtensionType.EXT_ALPN:Lsun/security/ssl/ExtensionType;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
       175: .line 792
            ldc " message"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
       176: .line 791
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
       177: .line 790
            invokevirtual sun.security.ssl.ClientHandshaker.fatalSE:(BLjava/lang/String;)V
        end local 7 // java.util.List protocols
       178: .line 794
            goto 180
       179: .line 795
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            ldc ""
            putfield sun.security.ssl.ClientHandshaker.applicationProtocol:Ljava/lang/String;
       180: .line 798
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.ClientHandshaker.resumingSession:Z
            ifeq 185
            aload 0 /* this */
            getfield sun.security.ssl.ClientHandshaker.session:Lsun/security/ssl/SSLSessionImpl;
            ifnull 185
       181: .line 799
            aload 0 /* this */
            aload 0 /* this */
            getfield sun.security.ssl.ClientHandshaker.session:Lsun/security/ssl/SSLSessionImpl;
            invokevirtual sun.security.ssl.ClientHandshaker.setHandshakeSessionSE:(Lsun/security/ssl/SSLSessionImpl;)V
       182: .line 802
            aload 0 /* this */
            getfield sun.security.ssl.ClientHandshaker.isInitialHandshake:Z
            ifeq 184
       183: .line 803
            aload 0 /* this */
            getfield sun.security.ssl.ClientHandshaker.session:Lsun/security/ssl/SSLSessionImpl;
            iconst_1
            invokevirtual sun.security.ssl.SSLSessionImpl.setAsSessionResumption:(Z)V
       184: .line 806
      StackMap locals:
      StackMap stack:
            return
       185: .line 810
      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 8
            goto 211
      StackMap locals: sun.security.ssl.ClientHandshaker sun.security.ssl.HandshakeMessage$ServerHello sun.security.ssl.ProtocolVersion sun.security.ssl.RenegotiationInfoExtension sun.security.ssl.MaxFragmentLengthExtension sun.security.ssl.ExtendedMasterSecretExtension sun.security.ssl.ALPNExtension top java.util.Iterator
      StackMap stack:
       186: aload 8
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast sun.security.ssl.HelloExtension
            astore 7 /* ext */
        start local 7 // sun.security.ssl.HelloExtension ext
       187: .line 811
            aload 7 /* ext */
            getfield sun.security.ssl.HelloExtension.type:Lsun/security/ssl/ExtensionType;
            astore 9 /* type */
        start local 9 // sun.security.ssl.ExtensionType type
       188: .line 812
            aload 9 /* type */
            getstatic sun.security.ssl.ExtensionType.EXT_SERVER_NAME:Lsun/security/ssl/ExtensionType;
            if_acmpne 191
       189: .line 813
            aload 0 /* this */
            iconst_1
            putfield sun.security.ssl.ClientHandshaker.serverNamesAccepted:Z
       190: .line 814
            goto 211
      StackMap locals: sun.security.ssl.ClientHandshaker sun.security.ssl.HandshakeMessage$ServerHello sun.security.ssl.ProtocolVersion sun.security.ssl.RenegotiationInfoExtension sun.security.ssl.MaxFragmentLengthExtension sun.security.ssl.ExtendedMasterSecretExtension sun.security.ssl.ALPNExtension sun.security.ssl.HelloExtension java.util.Iterator sun.security.ssl.ExtensionType
      StackMap stack:
       191: aload 9 /* type */
            getstatic sun.security.ssl.ExtensionType.EXT_STATUS_REQUEST:Lsun/security/ssl/ExtensionType;
            if_acmpeq 193
       192: .line 815
            aload 9 /* type */
            getstatic sun.security.ssl.ExtensionType.EXT_STATUS_REQUEST_V2:Lsun/security/ssl/ExtensionType;
            if_acmpne 200
       193: .line 818
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.ClientHandshaker.sslContext:Lsun/security/ssl/SSLContextImpl;
            iconst_1
            invokevirtual sun.security.ssl.SSLContextImpl.isStaplingEnabled:(Z)Z
            ifeq 196
       194: .line 819
            aload 0 /* this */
            iconst_1
            putfield sun.security.ssl.ClientHandshaker.staplingActive:Z
       195: .line 820
            goto 211
       196: .line 821
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            bipush 10
            new java.lang.StringBuilder
            dup
            ldc "Server set "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
       197: .line 822
            aload 9 /* type */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            ldc " extension when not requested by client"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
       198: .line 821
            invokevirtual sun.security.ssl.ClientHandshaker.fatalSE:(BLjava/lang/String;)V
       199: .line 824
            goto 211
      StackMap locals:
      StackMap stack:
       200: aload 9 /* type */
            getstatic sun.security.ssl.ExtensionType.EXT_SUPPORTED_GROUPS:Lsun/security/ssl/ExtensionType;
            if_acmpeq 211
       201: .line 825
            aload 9 /* type */
            getstatic sun.security.ssl.ExtensionType.EXT_EC_POINT_FORMATS:Lsun/security/ssl/ExtensionType;
            if_acmpeq 211
       202: .line 826
            aload 9 /* type */
            getstatic sun.security.ssl.ExtensionType.EXT_SERVER_NAME:Lsun/security/ssl/ExtensionType;
            if_acmpeq 211
       203: .line 827
            aload 9 /* type */
            getstatic sun.security.ssl.ExtensionType.EXT_ALPN:Lsun/security/ssl/ExtensionType;
            if_acmpeq 211
       204: .line 828
            aload 9 /* type */
            getstatic sun.security.ssl.ExtensionType.EXT_RENEGOTIATION_INFO:Lsun/security/ssl/ExtensionType;
            if_acmpeq 211
       205: .line 829
            aload 9 /* type */
            getstatic sun.security.ssl.ExtensionType.EXT_STATUS_REQUEST:Lsun/security/ssl/ExtensionType;
            if_acmpeq 211
       206: .line 830
            aload 9 /* type */
            getstatic sun.security.ssl.ExtensionType.EXT_STATUS_REQUEST_V2:Lsun/security/ssl/ExtensionType;
            if_acmpeq 211
       207: .line 831
            aload 9 /* type */
            getstatic sun.security.ssl.ExtensionType.EXT_EXTENDED_MASTER_SECRET:Lsun/security/ssl/ExtensionType;
            if_acmpeq 211
       208: .line 834
            aload 0 /* this */
            bipush 110
       209: .line 835
            new java.lang.StringBuilder
            dup
            ldc "Server sent an unsupported extension: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 9 /* type */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
       210: .line 834
            invokevirtual sun.security.ssl.ClientHandshaker.fatalSE:(BLjava/lang/String;)V
        end local 9 // sun.security.ssl.ExtensionType type
        end local 7 // sun.security.ssl.HelloExtension ext
       211: .line 810
      StackMap locals: sun.security.ssl.ClientHandshaker sun.security.ssl.HandshakeMessage$ServerHello sun.security.ssl.ProtocolVersion sun.security.ssl.RenegotiationInfoExtension sun.security.ssl.MaxFragmentLengthExtension sun.security.ssl.ExtendedMasterSecretExtension sun.security.ssl.ALPNExtension top java.util.Iterator
      StackMap stack:
            aload 8
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 186
       212: .line 840
            aload 0 /* this */
       213: 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;
       214: .line 841
            aload 0 /* this */
            invokevirtual sun.security.ssl.ClientHandshaker.getLocalSupportedSignAlgs:()Ljava/util/Collection;
       215: .line 842
            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
       216: .line 843
            aload 5 /* extendedMasterSecretExt */
            ifnull 217
            iconst_1
            goto 218
      StackMap locals: sun.security.ssl.ClientHandshaker sun.security.ssl.HandshakeMessage$ServerHello sun.security.ssl.ProtocolVersion sun.security.ssl.RenegotiationInfoExtension sun.security.ssl.MaxFragmentLengthExtension sun.security.ssl.ExtendedMasterSecretExtension sun.security.ssl.ALPNExtension
      StackMap stack: sun.security.ssl.ClientHandshaker new 213 new 213 sun.security.ssl.ProtocolVersion sun.security.ssl.CipherSuite java.util.Collection sun.security.ssl.SessionId java.lang.String int
       217: iconst_0
      StackMap locals: sun.security.ssl.ClientHandshaker sun.security.ssl.HandshakeMessage$ServerHello sun.security.ssl.ProtocolVersion sun.security.ssl.RenegotiationInfoExtension sun.security.ssl.MaxFragmentLengthExtension sun.security.ssl.ExtendedMasterSecretExtension sun.security.ssl.ALPNExtension
      StackMap stack: sun.security.ssl.ClientHandshaker new 213 new 213 sun.security.ssl.ProtocolVersion sun.security.ssl.CipherSuite java.util.Collection sun.security.ssl.SessionId java.lang.String int int
       218: invokespecial sun.security.ssl.SSLSessionImpl.<init>:(Lsun/security/ssl/ProtocolVersion;Lsun/security/ssl/CipherSuite;Ljava/util/Collection;Lsun/security/ssl/SessionId;Ljava/lang/String;IZ)V
       219: .line 840
            putfield sun.security.ssl.ClientHandshaker.session:Lsun/security/ssl/SSLSessionImpl;
       220: .line 844
            aload 0 /* this */
            getfield sun.security.ssl.ClientHandshaker.session:Lsun/security/ssl/SSLSessionImpl;
            aload 0 /* this */
            getfield sun.security.ssl.ClientHandshaker.requestedServerNames:Ljava/util/List;
            invokevirtual sun.security.ssl.SSLSessionImpl.setRequestedServerNames:(Ljava/util/List;)V
       221: .line 845
            aload 0 /* this */
            getfield sun.security.ssl.ClientHandshaker.session:Lsun/security/ssl/SSLSessionImpl;
            aload 0 /* this */
            getfield sun.security.ssl.ClientHandshaker.requestedMFLength:I
            invokevirtual sun.security.ssl.SSLSessionImpl.setNegotiatedMaxFragSize:(I)V
       222: .line 846
            aload 0 /* this */
            getfield sun.security.ssl.ClientHandshaker.session:Lsun/security/ssl/SSLSessionImpl;
            aload 0 /* this */
            getfield sun.security.ssl.ClientHandshaker.maximumPacketSize:I
            invokevirtual sun.security.ssl.SSLSessionImpl.setMaximumPacketSize:(I)V
       223: .line 847
            aload 0 /* this */
            aload 0 /* this */
            getfield sun.security.ssl.ClientHandshaker.session:Lsun/security/ssl/SSLSessionImpl;
            invokevirtual sun.security.ssl.ClientHandshaker.setHandshakeSessionSE:(Lsun/security/ssl/SSLSessionImpl;)V
       224: .line 848
            getstatic sun.security.ssl.ClientHandshaker.debug:Lsun/security/ssl/Debug;
            ifnull 226
            ldc "handshake"
            invokestatic sun.security.ssl.Debug.isOn:(Ljava/lang/String;)Z
            ifeq 226
       225: .line 849
            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
       226: .line 851
      StackMap locals:
      StackMap stack:
            return
        end local 6 // sun.security.ssl.ALPNExtension serverHelloALPN
        end local 5 // sun.security.ssl.ExtendedMasterSecretExtension extendedMasterSecretExt
        end local 4 // sun.security.ssl.MaxFragmentLengthExtension maxFragLenExt
        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  227     0                     this  Lsun/security/ssl/ClientHandshaker;
            0  227     1                     mesg  Lsun/security/ssl/HandshakeMessage$ServerHello;
            5  227     2              mesgVersion  Lsun/security/ssl/ProtocolVersion;
           16  227     3            serverHelloRI  Lsun/security/ssl/RenegotiationInfoExtension;
           30   43     4               verifyData  [B
           74   99     4             sessionSuite  Lsun/security/ssl/CipherSuite;
           79   99     5           sessionVersion  Lsun/security/ssl/ProtocolVersion;
           86   99     6                        p  Lsun/security/ssl/ClientKeyExchangeService;
           88   95     7           localPrincipal  Ljava/security/Principal;
          107  227     4            maxFragLenExt  Lsun/security/ssl/MaxFragmentLengthExtension;
          120  227     5  extendedMasterSecretExt  Lsun/security/ssl/ExtendedMasterSecretExtension;
          148  227     6          serverHelloALPN  Lsun/security/ssl/ALPNExtension;
          156  178     7                protocols  Ljava/util/List<Ljava/lang/String;>;
          158  173     8                        p  Ljava/lang/String;
          160  172     9                        i  I
          187  211     7                      ext  Lsun/security/ssl/HelloExtension;
          188  211     9                     type  Lsun/security/ssl/ExtensionType;
    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 860
            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 861
            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 863
      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 864
            aload 0 /* this */
            bipush 40
         4: .line 865
            ldc "server key exchange invalid"
         5: .line 864
            invokevirtual sun.security.ssl.ClientHandshaker.fatalSE:(BLjava/lang/String;)V
         6: .line 868
      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 871
            aload 0 /* this */
            getfield sun.security.ssl.ClientHandshaker.algorithmConstraints:Ljava/security/AlgorithmConstraints;
         8: .line 872
            getstatic java.security.CryptoPrimitive.KEY_AGREEMENT:Ljava/security/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 871
            invokeinterface java.security.AlgorithmConstraints.permits:(Ljava/util/Set;Ljava/security/Key;)Z
        10: .line 872
            ifne 12
        11: .line 874
            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 877
      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 898
            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 899
            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 901
      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;
         3: .line 902
            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
         4: .line 901
            putfield sun.security.ssl.ClientHandshaker.dh:Lsun/security/ssl/DHCrypt;
         5: .line 903
            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;
         6: .line 906
            aload 0 /* this */
            getfield sun.security.ssl.ClientHandshaker.dh:Lsun/security/ssl/DHCrypt;
            aload 0 /* this */
            getfield sun.security.ssl.ClientHandshaker.algorithmConstraints:Ljava/security/AlgorithmConstraints;
            aload 0 /* this */
            getfield sun.security.ssl.ClientHandshaker.serverDH:Ljava/math/BigInteger;
            invokevirtual sun.security.ssl.DHCrypt.checkConstraints:(Ljava/security/AlgorithmConstraints;Ljava/math/BigInteger;)V
         7: .line 907
            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    8     0  this  Lsun/security/ssl/ClientHandshaker;
            0    8     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 911
            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 912
            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 914
      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 915
            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 916
            aload 0 /* this */
            aload 2 /* key */
            putfield sun.security.ssl.ClientHandshaker.ephemeralServerKey:Ljava/security/PublicKey;
         5: .line 919
            aload 0 /* this */
            getfield sun.security.ssl.ClientHandshaker.algorithmConstraints:Ljava/security/AlgorithmConstraints;
         6: .line 920
            getstatic java.security.CryptoPrimitive.KEY_AGREEMENT:Ljava/security/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 919
            invokeinterface java.security.AlgorithmConstraints.permits:(Ljava/util/Set;Ljava/security/Key;)Z
         8: .line 920
            ifne 10
         9: .line 922
            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 925
      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=8, locals=10, args_size=2
        start local 0 // sun.security.ssl.ClientHandshaker this
        start local 1 // sun.security.ssl.HandshakeMessage$ServerHelloDone mesg
         0: .line 932
            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 933
            aload 1 /* mesg */
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            invokevirtual sun.security.ssl.HandshakeMessage$ServerHelloDone.print:(Ljava/io/PrintStream;)V
         2: .line 941
      StackMap locals:
      StackMap stack:
            aconst_null
            astore 2 /* signingKey */
        start local 2 // java.security.PrivateKey signingKey
         3: .line 943
            aload 0 /* this */
            getfield sun.security.ssl.ClientHandshaker.certRequest:Lsun/security/ssl/HandshakeMessage$CertificateRequest;
            ifnull 59
         4: .line 944
            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
         5: .line 946
            new java.util.ArrayList
            dup
            iconst_4
            invokespecial java.util.ArrayList.<init>:(I)V
            astore 4 /* keytypesTmp */
        start local 4 // java.util.ArrayList keytypesTmp
         6: .line 948
            iconst_0
            istore 5 /* i */
        start local 5 // int i
         7: goto 21
         8: .line 951
      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: 9
                    2: 11
                   64: 13
              default: 17
          }
         9: .line 953
      StackMap locals:
      StackMap stack:
            ldc "RSA"
            astore 6 /* typeName */
        start local 6 // java.lang.String typeName
        10: .line 954
            goto 18
        end local 6 // java.lang.String typeName
        11: .line 957
      StackMap locals:
      StackMap stack:
            ldc "DSA"
            astore 6 /* typeName */
        start local 6 // java.lang.String typeName
        12: .line 958
            goto 18
        end local 6 // java.lang.String typeName
        13: .line 962
      StackMap locals:
      StackMap stack:
            invokestatic sun.security.ssl.JsseJce.isEcAvailable:()Z
            ifeq 14
            ldc "EC"
            goto 15
      StackMap locals:
      StackMap stack:
        14: aconst_null
      StackMap locals:
      StackMap stack: java.lang.String
        15: astore 6 /* typeName */
        start local 6 // java.lang.String typeName
        16: .line 963
            goto 18
        end local 6 // java.lang.String typeName
        17: .line 977
      StackMap locals:
      StackMap stack:
            aconst_null
            astore 6 /* typeName */
        start local 6 // java.lang.String typeName
        18: .line 981
      StackMap locals: java.lang.String
      StackMap stack:
            aload 6 /* typeName */
            ifnull 20
            aload 4 /* keytypesTmp */
            aload 6 /* typeName */
            invokevirtual java.util.ArrayList.contains:(Ljava/lang/Object;)Z
            ifne 20
        19: .line 982
            aload 4 /* keytypesTmp */
            aload 6 /* typeName */
            invokevirtual java.util.ArrayList.add:(Ljava/lang/Object;)Z
            pop
        end local 6 // java.lang.String typeName
        20: .line 948
      StackMap locals:
      StackMap stack:
            iinc 5 /* i */ 1
      StackMap locals:
      StackMap stack:
        21: 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 8
        end local 5 // int i
        22: .line 986
            aconst_null
            astore 5 /* alias */
        start local 5 // java.lang.String alias
        23: .line 987
            aload 4 /* keytypesTmp */
            invokevirtual java.util.ArrayList.size:()I
            istore 6 /* keytypesTmpSize */
        start local 6 // int keytypesTmpSize
        24: .line 988
            iload 6 /* keytypesTmpSize */
            ifeq 35
        25: .line 990
            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[]
        26: .line 989
            astore 7 /* keytypes */
        start local 7 // java.lang.String[] keytypes
        27: .line 992
            aload 0 /* this */
            getfield sun.security.ssl.ClientHandshaker.conn:Lsun/security/ssl/SSLSocketImpl;
            ifnull 32
        28: .line 993
            aload 3 /* km */
            aload 7 /* keytypes */
        29: .line 994
            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;
        30: .line 993
            invokevirtual javax.net.ssl.X509ExtendedKeyManager.chooseClientAlias:([Ljava/lang/String;[Ljava/security/Principal;Ljava/net/Socket;)Ljava/lang/String;
            astore 5 /* alias */
        31: .line 995
            goto 35
        32: .line 996
      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 */
        33: .line 997
            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;
        34: .line 996
            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
        35: .line 1001
      StackMap locals:
      StackMap stack:
            aconst_null
            astore 7 /* m1 */
        start local 7 // sun.security.ssl.HandshakeMessage$CertificateMsg m1
        36: .line 1002
            aload 5 /* alias */
            ifnull 45
        37: .line 1003
            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
        38: .line 1004
            aload 8 /* certs */
            ifnull 45
            aload 8 /* certs */
            arraylength
            ifeq 45
        39: .line 1005
            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
        40: .line 1006
            aload 9 /* publicKey */
            ifnull 45
        41: .line 1007
            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 */
        42: .line 1008
            aload 3 /* km */
            aload 5 /* alias */
            invokevirtual javax.net.ssl.X509ExtendedKeyManager.getPrivateKey:(Ljava/lang/String;)Ljava/security/PrivateKey;
            astore 2 /* signingKey */
        43: .line 1009
            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
        44: .line 1010
            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
        45: .line 1014
      StackMap locals: sun.security.ssl.HandshakeMessage$CertificateMsg
      StackMap stack:
            aload 7 /* m1 */
            ifnonnull 54
        46: .line 1020
            aload 0 /* this */
            getfield sun.security.ssl.ClientHandshaker.protocolVersion:Lsun/security/ssl/ProtocolVersion;
            invokevirtual sun.security.ssl.ProtocolVersion.useTLS10PlusSpec:()Z
            ifeq 49
        47: .line 1021
            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 */
        48: .line 1022
            goto 50
        49: .line 1023
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            bipush 41
            invokevirtual sun.security.ssl.ClientHandshaker.warningSE:(B)V
        50: .line 1025
      StackMap locals:
      StackMap stack:
            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
        51: .line 1026
            getstatic java.lang.System.out:Ljava/io/PrintStream;
        52: .line 1027
            ldc "Warning: no suitable certificate found - continuing without client authentication"
        53: .line 1026
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
        54: .line 1035
      StackMap locals:
      StackMap stack:
            aload 7 /* m1 */
            ifnull 59
        55: .line 1036
            getstatic sun.security.ssl.ClientHandshaker.debug:Lsun/security/ssl/Debug;
            ifnull 57
            ldc "handshake"
            invokestatic sun.security.ssl.Debug.isOn:(Ljava/lang/String;)Z
            ifeq 57
        56: .line 1037
            aload 7 /* m1 */
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            invokevirtual sun.security.ssl.HandshakeMessage$CertificateMsg.print:(Ljava/io/PrintStream;)V
        57: .line 1039
      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
        58: .line 1040
            aload 0 /* this */
            getfield sun.security.ssl.ClientHandshaker.handshakeState:Lsun/security/ssl/HandshakeStateManager;
            aload 7 /* m1 */
            aload 0 /* this */
            getfield sun.security.ssl.ClientHandshaker.resumingSession:Z
            invokevirtual sun.security.ssl.HandshakeStateManager.update:(Lsun/security/ssl/HandshakeMessage;Z)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
        59: .line 1051
      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 - 13
                    2: 60
                    3: 60
                    4: 81
                    5: 81
                    6: 83
                    7: 83
                    8: 83
                    9: 95
                   10: 95
                   11: 89
                   12: 89
                   13: 89
              default: 107
          }
        60: .line 1055
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.ClientHandshaker.serverKey:Ljava/security/PublicKey;
            ifnonnull 64
        61: .line 1056
            new javax.net.ssl.SSLProtocolException
            dup
        62: .line 1057
            ldc "Server did not send certificate message"
        63: .line 1056
            invokespecial javax.net.ssl.SSLProtocolException.<init>:(Ljava/lang/String;)V
            athrow
        64: .line 1060
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.ClientHandshaker.serverKey:Ljava/security/PublicKey;
            instanceof java.security.interfaces.RSAPublicKey
            ifne 68
        65: .line 1061
            new javax.net.ssl.SSLProtocolException
            dup
        66: .line 1062
            ldc "Server certificate does not include an RSA key"
        67: .line 1061
            invokespecial javax.net.ssl.SSLProtocolException.<init>:(Ljava/lang/String;)V
            athrow
        68: .line 1080
      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 71
        69: .line 1081
            aload 0 /* this */
            getfield sun.security.ssl.ClientHandshaker.serverKey:Ljava/security/PublicKey;
            astore 4 /* key */
        start local 4 // java.security.PublicKey key
        70: .line 1082
            goto 77
        end local 4 // java.security.PublicKey key
        71: .line 1083
      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 74
        72: .line 1086
            aload 0 /* this */
            getfield sun.security.ssl.ClientHandshaker.serverKey:Ljava/security/PublicKey;
            astore 4 /* key */
        start local 4 // java.security.PublicKey key
        73: .line 1087
            goto 77
        end local 4 // java.security.PublicKey key
        74: .line 1088
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.ClientHandshaker.ephemeralServerKey:Ljava/security/PublicKey;
            ifnonnull 76
        75: .line 1089
            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
        76: .line 1092
      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
        77: .line 1096
      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;
        78: .line 1097
            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 */
        79: .line 1096
            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
        80: .line 1098
            goto 149
        end local 4 // java.security.PublicKey key
        end local 3 // sun.security.ssl.HandshakeMessage m2
        81: .line 1113
      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
        82: .line 1114
            goto 149
        end local 3 // sun.security.ssl.HandshakeMessage m2
        83: .line 1118
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.ClientHandshaker.dh:Lsun/security/ssl/DHCrypt;
            ifnonnull 87
        84: .line 1119
            new javax.net.ssl.SSLProtocolException
            dup
        85: .line 1120
            ldc "Server did not send a DH Server Key Exchange message"
        86: .line 1119
            invokespecial javax.net.ssl.SSLProtocolException.<init>:(Ljava/lang/String;)V
            athrow
        87: .line 1122
      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
        88: .line 1123
            goto 149
        end local 3 // sun.security.ssl.HandshakeMessage m2
        89: .line 1127
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.ClientHandshaker.ecdh:Lsun/security/ssl/ECDHCrypt;
            ifnonnull 93
        90: .line 1128
            new javax.net.ssl.SSLProtocolException
            dup
        91: .line 1129
            ldc "Server did not send a ECDH Server Key Exchange message"
        92: .line 1128
            invokespecial javax.net.ssl.SSLProtocolException.<init>:(Ljava/lang/String;)V
            athrow
        93: .line 1131
      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
        94: .line 1132
            goto 149
        end local 3 // sun.security.ssl.HandshakeMessage m2
        95: .line 1135
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.ClientHandshaker.serverKey:Ljava/security/PublicKey;
            ifnonnull 99
        96: .line 1136
            new javax.net.ssl.SSLProtocolException
            dup
        97: .line 1137
            ldc "Server did not send certificate message"
        98: .line 1136
            invokespecial javax.net.ssl.SSLProtocolException.<init>:(Ljava/lang/String;)V
            athrow
        99: .line 1139
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.ClientHandshaker.serverKey:Ljava/security/PublicKey;
            instanceof java.security.interfaces.ECPublicKey
            ifne 103
       100: .line 1140
            new javax.net.ssl.SSLProtocolException
            dup
       101: .line 1141
            ldc "Server certificate does not include an EC key"
       102: .line 1140
            invokespecial javax.net.ssl.SSLProtocolException.<init>:(Ljava/lang/String;)V
            athrow
       103: .line 1143
      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
       104: .line 1144
            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;
       105: .line 1145
            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
       106: .line 1146
            goto 149
        end local 5 // java.security.spec.ECParameterSpec params
        end local 3 // sun.security.ssl.HandshakeMessage m2
       107: .line 1149
      StackMap locals:
      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;
            invokestatic sun.security.ssl.ClientKeyExchangeService.find:(Ljava/lang/String;)Lsun/security/ssl/ClientKeyExchangeService;
       108: .line 1148
            astore 6 /* p */
        start local 6 // sun.security.ssl.ClientKeyExchangeService p
       109: .line 1150
            aload 6 /* p */
            ifnonnull 113
       110: .line 1152
            new java.lang.RuntimeException
            dup
       111: .line 1153
            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;
       112: .line 1152
            invokespecial java.lang.RuntimeException.<init>:(Ljava/lang/String;)V
            athrow
       113: .line 1155
      StackMap locals: sun.security.ssl.ClientHandshaker sun.security.ssl.HandshakeMessage$ServerHelloDone java.security.PrivateKey top top top sun.security.ssl.ClientKeyExchangeService
      StackMap stack:
            aconst_null
            astore 7 /* sniHostname */
        start local 7 // java.lang.String sniHostname
       114: .line 1156
            aload 0 /* this */
            getfield sun.security.ssl.ClientHandshaker.requestedServerNames:Ljava/util/List;
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 9
            goto 119
      StackMap locals: sun.security.ssl.ClientHandshaker sun.security.ssl.HandshakeMessage$ServerHelloDone java.security.PrivateKey top top top sun.security.ssl.ClientKeyExchangeService java.lang.String top java.util.Iterator
      StackMap stack:
       115: aload 9
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast javax.net.ssl.SNIServerName
            astore 8 /* serverName */
        start local 8 // javax.net.ssl.SNIServerName serverName
       116: .line 1157
            aload 8 /* serverName */
            instanceof javax.net.ssl.SNIHostName
            ifeq 119
       117: .line 1158
            aload 8 /* serverName */
            checkcast javax.net.ssl.SNIHostName
            invokevirtual javax.net.ssl.SNIHostName.getAsciiName:()Ljava/lang/String;
            astore 7 /* sniHostname */
       118: .line 1159
            goto 120
        end local 8 // javax.net.ssl.SNIServerName serverName
       119: .line 1156
      StackMap locals:
      StackMap stack:
            aload 9
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 115
       120: .line 1163
      StackMap locals: sun.security.ssl.ClientHandshaker sun.security.ssl.HandshakeMessage$ServerHelloDone java.security.PrivateKey top top top sun.security.ssl.ClientKeyExchangeService java.lang.String
      StackMap stack:
            aconst_null
            astore 8 /* exMsg */
        start local 8 // sun.security.ssl.ClientKeyExchange exMsg
       121: .line 1164
            aload 7 /* sniHostname */
            ifnull 136
       122: .line 1167
            aload 6 /* p */
       123: .line 1168
            aload 7 /* sniHostname */
            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;
       124: .line 1169
            aload 0 /* this */
            getfield sun.security.ssl.ClientHandshaker.sslContext:Lsun/security/ssl/SSLContextImpl;
            invokevirtual sun.security.ssl.SSLContextImpl.getSecureRandom:()Ljava/security/SecureRandom;
       125: .line 1167
            invokeinterface sun.security.ssl.ClientKeyExchangeService.createClientExchange:(Ljava/lang/String;Ljava/security/AccessControlContext;Lsun/security/ssl/ProtocolVersion;Ljava/security/SecureRandom;)Lsun/security/ssl/ClientKeyExchange;
            astore 8 /* exMsg */
       126: .line 1170
            goto 136
      StackMap locals: sun.security.ssl.ClientHandshaker sun.security.ssl.HandshakeMessage$ServerHelloDone java.security.PrivateKey top top top sun.security.ssl.ClientKeyExchangeService java.lang.String sun.security.ssl.ClientKeyExchange
      StackMap stack: java.io.IOException
       127: astore 9 /* e */
        start local 9 // java.io.IOException e
       128: .line 1171
            aload 0 /* this */
            getfield sun.security.ssl.ClientHandshaker.serverNamesAccepted:Z
            ifeq 130
       129: .line 1174
            aload 9 /* e */
            athrow
       130: .line 1177
      StackMap locals: java.io.IOException
      StackMap stack:
            getstatic sun.security.ssl.ClientHandshaker.debug:Lsun/security/ssl/Debug;
            ifnull 136
            ldc "handshake"
            invokestatic sun.security.ssl.Debug.isOn:(Ljava/lang/String;)Z
            ifeq 136
       131: .line 1178
            getstatic java.lang.System.out:Ljava/io/PrintStream;
       132: .line 1179
            new java.lang.StringBuilder
            dup
            ldc "Warning, cannot use Server Name Indication: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
       133: .line 1180
            aload 9 /* e */
            invokevirtual java.io.IOException.getMessage:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
       134: .line 1179
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
       135: .line 1178
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
        end local 9 // java.io.IOException e
       136: .line 1185
      StackMap locals:
      StackMap stack:
            aload 8 /* exMsg */
            ifnonnull 146
       137: .line 1186
            aload 0 /* this */
            invokevirtual sun.security.ssl.ClientHandshaker.getHostSE:()Ljava/lang/String;
            astore 9 /* hostname */
        start local 9 // java.lang.String hostname
       138: .line 1187
            aload 9 /* hostname */
            ifnonnull 142
       139: .line 1188
            new java.io.IOException
            dup
            new java.lang.StringBuilder
            dup
            ldc "Hostname is required to use "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
       140: .line 1189
            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;
            ldc " key exchange"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
       141: .line 1188
            invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
            athrow
       142: .line 1191
      StackMap locals: java.lang.String
      StackMap stack:
            aload 6 /* p */
       143: .line 1192
            aload 9 /* hostname */
            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;
       144: .line 1193
            aload 0 /* this */
            getfield sun.security.ssl.ClientHandshaker.sslContext:Lsun/security/ssl/SSLContextImpl;
            invokevirtual sun.security.ssl.SSLContextImpl.getSecureRandom:()Ljava/security/SecureRandom;
       145: .line 1191
            invokeinterface sun.security.ssl.ClientKeyExchangeService.createClientExchange:(Ljava/lang/String;Ljava/security/AccessControlContext;Lsun/security/ssl/ProtocolVersion;Ljava/security/SecureRandom;)Lsun/security/ssl/ClientKeyExchange;
            astore 8 /* exMsg */
        end local 9 // java.lang.String hostname
       146: .line 1197
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.ClientHandshaker.session:Lsun/security/ssl/SSLSessionImpl;
            aload 8 /* exMsg */
            invokevirtual sun.security.ssl.ClientKeyExchange.getPeerPrincipal:()Ljava/security/Principal;
            invokevirtual sun.security.ssl.SSLSessionImpl.setPeerPrincipal:(Ljava/security/Principal;)V
       147: .line 1198
            aload 0 /* this */
            getfield sun.security.ssl.ClientHandshaker.session:Lsun/security/ssl/SSLSessionImpl;
            aload 8 /* exMsg */
            invokevirtual sun.security.ssl.ClientKeyExchange.getLocalPrincipal:()Ljava/security/Principal;
            invokevirtual sun.security.ssl.SSLSessionImpl.setLocalPrincipal:(Ljava/security/Principal;)V
       148: .line 1199
            aload 8 /* exMsg */
            astore 3 /* m2 */
        end local 8 // sun.security.ssl.ClientKeyExchange exMsg
        end local 7 // java.lang.String sniHostname
        end local 6 // sun.security.ssl.ClientKeyExchangeService p
        start local 3 // sun.security.ssl.HandshakeMessage m2
       149: .line 1202
      StackMap locals: sun.security.ssl.ClientHandshaker sun.security.ssl.HandshakeMessage$ServerHelloDone java.security.PrivateKey sun.security.ssl.HandshakeMessage
      StackMap stack:
            getstatic sun.security.ssl.ClientHandshaker.debug:Lsun/security/ssl/Debug;
            ifnull 151
            ldc "handshake"
            invokestatic sun.security.ssl.Debug.isOn:(Ljava/lang/String;)Z
            ifeq 151
       150: .line 1203
            aload 3 /* m2 */
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            invokevirtual sun.security.ssl.HandshakeMessage.print:(Ljava/io/PrintStream;)V
       151: .line 1205
      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
       152: .line 1206
            aload 0 /* this */
            getfield sun.security.ssl.ClientHandshaker.handshakeState:Lsun/security/ssl/HandshakeStateManager;
            aload 3 /* m2 */
            aload 0 /* this */
            getfield sun.security.ssl.ClientHandshaker.resumingSession:Z
            invokevirtual sun.security.ssl.HandshakeStateManager.update:(Lsun/security/ssl/HandshakeMessage;Z)V
       153: .line 1216
            aload 0 /* this */
            getfield sun.security.ssl.ClientHandshaker.output:Lsun/security/ssl/HandshakeOutStream;
            invokevirtual sun.security.ssl.HandshakeOutStream.flush:()V
       154: .line 1226
            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 - 13
                    2: 155
                    3: 155
                    4: 163
                    5: 163
                    6: 157
                    7: 157
                    8: 157
                    9: 161
                   10: 161
                   11: 159
                   12: 159
                   13: 159
              default: 163
          }
       155: .line 1229
      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
       156: .line 1230
            goto 170
        end local 4 // javax.crypto.SecretKey preMasterSecret
       157: .line 1234
      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
       158: .line 1235
            goto 170
        end local 4 // javax.crypto.SecretKey preMasterSecret
       159: .line 1239
      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
       160: .line 1240
            goto 170
        end local 4 // javax.crypto.SecretKey preMasterSecret
       161: .line 1243
      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
       162: .line 1244
            goto 170
        end local 4 // javax.crypto.SecretKey preMasterSecret
       163: .line 1246
      StackMap locals:
      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;
            invokestatic sun.security.ssl.ClientKeyExchangeService.find:(Ljava/lang/String;)Lsun/security/ssl/ClientKeyExchangeService;
            ifnull 167
       164: .line 1248
            aload 3 /* m2 */
            checkcast sun.security.ssl.ClientKeyExchange
            invokevirtual sun.security.ssl.ClientKeyExchange.clientKeyExchange:()Ljavax/crypto/SecretKey;
       165: .line 1247
            astore 4 /* preMasterSecret */
        start local 4 // javax.crypto.SecretKey preMasterSecret
       166: .line 1249
            goto 170
        end local 4 // javax.crypto.SecretKey preMasterSecret
       167: .line 1250
      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
       168: .line 1251
            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;
       169: .line 1250
            invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
            athrow
        start local 4 // javax.crypto.SecretKey preMasterSecret
       170: .line 1255
      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
       171: .line 1267
            aload 2 /* signingKey */
            ifnull 205
       172: .line 1270
            aconst_null
            astore 6 /* preferableSignatureAlgorithm */
        start local 6 // sun.security.ssl.SignatureAndHashAlgorithm preferableSignatureAlgorithm
       173: .line 1271
            aload 0 /* this */
            getfield sun.security.ssl.ClientHandshaker.protocolVersion:Lsun/security/ssl/ProtocolVersion;
            invokevirtual sun.security.ssl.ProtocolVersion.useTLS12PlusSpec:()Z
            ifeq 189
       174: .line 1274
            aload 0 /* this */
            invokevirtual sun.security.ssl.ClientHandshaker.getPeerSupportedSignAlgs:()Ljava/util/Collection;
       175: .line 1275
            aload 2 /* signingKey */
            invokeinterface java.security.PrivateKey.getAlgorithm:()Ljava/lang/String;
            aload 2 /* signingKey */
       176: .line 1273
            invokestatic sun.security.ssl.SignatureAndHashAlgorithm.getPreferableAlgorithm:(Ljava/util/Collection;Ljava/lang/String;Ljava/security/PrivateKey;)Lsun/security/ssl/SignatureAndHashAlgorithm;
       177: .line 1272
            astore 6 /* preferableSignatureAlgorithm */
       178: .line 1277
            aload 6 /* preferableSignatureAlgorithm */
            ifnonnull 182
       179: .line 1278
            new javax.net.ssl.SSLHandshakeException
            dup
       180: .line 1279
            ldc "No supported signature algorithm"
       181: .line 1278
            invokespecial javax.net.ssl.SSLHandshakeException.<init>:(Ljava/lang/String;)V
            athrow
       182: .line 1284
      StackMap locals: sun.security.ssl.ClientHandshaker sun.security.ssl.HandshakeMessage$ServerHelloDone java.security.PrivateKey sun.security.ssl.HandshakeMessage javax.crypto.SecretKey top sun.security.ssl.SignatureAndHashAlgorithm
      StackMap stack:
            aload 6 /* preferableSignatureAlgorithm */
       183: .line 1283
            invokestatic sun.security.ssl.SignatureAndHashAlgorithm.getHashAlgorithmName:(Lsun/security/ssl/SignatureAndHashAlgorithm;)Ljava/lang/String;
       184: .line 1282
            astore 7 /* hashAlg */
        start local 7 // java.lang.String hashAlg
       185: .line 1285
            aload 7 /* hashAlg */
            ifnull 186
            aload 7 /* hashAlg */
            invokevirtual java.lang.String.length:()I
            ifne 189
       186: .line 1286
      StackMap locals: java.lang.String
      StackMap stack:
            new javax.net.ssl.SSLHandshakeException
            dup
       187: .line 1287
            ldc "No supported hash algorithm"
       188: .line 1286
            invokespecial javax.net.ssl.SSLHandshakeException.<init>:(Ljava/lang/String;)V
            athrow
        end local 7 // java.lang.String hashAlg
       189: .line 1291
      StackMap locals:
      StackMap stack:
            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;
       190: .line 1292
            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;
       191: .line 1293
            aload 0 /* this */
            getfield sun.security.ssl.ClientHandshaker.sslContext:Lsun/security/ssl/SSLContextImpl;
            invokevirtual sun.security.ssl.SSLContextImpl.getSecureRandom:()Ljava/security/SecureRandom;
       192: .line 1294
            aload 6 /* preferableSignatureAlgorithm */
       193: .line 1291
            invokespecial sun.security.ssl.HandshakeMessage$CertificateVerify.<init>:(Lsun/security/ssl/ProtocolVersion;Lsun/security/ssl/HandshakeHash;Ljava/security/PrivateKey;Ljavax/crypto/SecretKey;Ljava/security/SecureRandom;Lsun/security/ssl/SignatureAndHashAlgorithm;)V
            astore 5 /* m3 */
        end local 6 // sun.security.ssl.SignatureAndHashAlgorithm preferableSignatureAlgorithm
        start local 5 // sun.security.ssl.HandshakeMessage$CertificateVerify m3
       194: .line 1295
            goto 200
        end local 5 // sun.security.ssl.HandshakeMessage$CertificateVerify m3
      StackMap locals: sun.security.ssl.ClientHandshaker sun.security.ssl.HandshakeMessage$ServerHelloDone java.security.PrivateKey sun.security.ssl.HandshakeMessage javax.crypto.SecretKey
      StackMap stack: java.security.GeneralSecurityException
       195: astore 6 /* e */
        start local 6 // java.security.GeneralSecurityException e
       196: .line 1296
            aload 0 /* this */
            bipush 40
       197: .line 1297
            ldc "Error signing certificate verify"
            aload 6 /* e */
       198: .line 1296
            invokevirtual sun.security.ssl.ClientHandshaker.fatalSE:(BLjava/lang/String;Ljava/lang/Throwable;)V
       199: .line 1299
            aconst_null
            astore 5 /* m3 */
        end local 6 // java.security.GeneralSecurityException e
        start local 5 // sun.security.ssl.HandshakeMessage$CertificateVerify m3
       200: .line 1301
      StackMap locals: sun.security.ssl.HandshakeMessage$CertificateVerify
      StackMap stack:
            getstatic sun.security.ssl.ClientHandshaker.debug:Lsun/security/ssl/Debug;
            ifnull 202
            ldc "handshake"
            invokestatic sun.security.ssl.Debug.isOn:(Ljava/lang/String;)Z
            ifeq 202
       201: .line 1302
            aload 5 /* m3 */
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            invokevirtual sun.security.ssl.HandshakeMessage$CertificateVerify.print:(Ljava/io/PrintStream;)V
       202: .line 1304
      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
       203: .line 1305
            aload 0 /* this */
            getfield sun.security.ssl.ClientHandshaker.handshakeState:Lsun/security/ssl/HandshakeStateManager;
            aload 5 /* m3 */
            aload 0 /* this */
            getfield sun.security.ssl.ClientHandshaker.resumingSession:Z
            invokevirtual sun.security.ssl.HandshakeStateManager.update:(Lsun/security/ssl/HandshakeMessage;Z)V
       204: .line 1306
            aload 0 /* this */
            getfield sun.security.ssl.ClientHandshaker.output:Lsun/security/ssl/HandshakeOutStream;
            invokevirtual sun.security.ssl.HandshakeOutStream.flush:()V
        end local 5 // sun.security.ssl.HandshakeMessage$CertificateVerify m3
       205: .line 1312
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iconst_0
            invokevirtual sun.security.ssl.ClientHandshaker.sendChangeCipherAndFinish:(Z)V
       206: .line 1315
            aload 0 /* this */
            invokevirtual sun.security.ssl.ClientHandshaker.expectingFinishFlightSE:()V
       207: .line 1316
            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  208     0                          this  Lsun/security/ssl/ClientHandshaker;
            0  208     1                          mesg  Lsun/security/ssl/HandshakeMessage$ServerHelloDone;
            3  208     2                    signingKey  Ljava/security/PrivateKey;
            5   59     3                            km  Ljavax/net/ssl/X509ExtendedKeyManager;
            6   59     4                   keytypesTmp  Ljava/util/ArrayList<Ljava/lang/String;>;
            7   22     5                             i  I
           10   11     6                      typeName  Ljava/lang/String;
           12   13     6                      typeName  Ljava/lang/String;
           16   17     6                      typeName  Ljava/lang/String;
           18   20     6                      typeName  Ljava/lang/String;
           23   59     5                         alias  Ljava/lang/String;
           24   59     6               keytypesTmpSize  I
           27   35     7                      keytypes  [Ljava/lang/String;
           36   59     7                            m1  Lsun/security/ssl/HandshakeMessage$CertificateMsg;
           38   45     8                         certs  [Ljava/security/cert/X509Certificate;
           40   45     9                     publicKey  Ljava/security/PublicKey;
           80   81     3                            m2  Lsun/security/ssl/HandshakeMessage;
           82   83     3                            m2  Lsun/security/ssl/HandshakeMessage;
           88   89     3                            m2  Lsun/security/ssl/HandshakeMessage;
           94   95     3                            m2  Lsun/security/ssl/HandshakeMessage;
          106  107     3                            m2  Lsun/security/ssl/HandshakeMessage;
          149  208     3                            m2  Lsun/security/ssl/HandshakeMessage;
           70   71     4                           key  Ljava/security/PublicKey;
           73   74     4                           key  Ljava/security/PublicKey;
           77   81     4                           key  Ljava/security/PublicKey;
          104  107     5                        params  Ljava/security/spec/ECParameterSpec;
          109  149     6                             p  Lsun/security/ssl/ClientKeyExchangeService;
          114  149     7                   sniHostname  Ljava/lang/String;
          116  119     8                    serverName  Ljavax/net/ssl/SNIServerName;
          121  149     8                         exMsg  Lsun/security/ssl/ClientKeyExchange;
          128  136     9                             e  Ljava/io/IOException;
          138  146     9                      hostname  Ljava/lang/String;
          156  157     4               preMasterSecret  Ljavax/crypto/SecretKey;
          158  159     4               preMasterSecret  Ljavax/crypto/SecretKey;
          160  161     4               preMasterSecret  Ljavax/crypto/SecretKey;
          162  163     4               preMasterSecret  Ljavax/crypto/SecretKey;
          166  167     4               preMasterSecret  Ljavax/crypto/SecretKey;
          170  208     4               preMasterSecret  Ljavax/crypto/SecretKey;
          194  195     5                            m3  Lsun/security/ssl/HandshakeMessage$CertificateVerify;
          200  205     5                            m3  Lsun/security/ssl/HandshakeMessage$CertificateVerify;
          173  194     6  preferableSignatureAlgorithm  Lsun/security/ssl/SignatureAndHashAlgorithm;
          185  189     7                       hashAlg  Ljava/lang/String;
          196  200     6                             e  Ljava/security/GeneralSecurityException;
      Exception table:
        from    to  target  type
         122   126     127  Class java.io.IOException
         172   194     195  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=4, locals=3, args_size=2
        start local 0 // sun.security.ssl.ClientHandshaker this
        start local 1 // sun.security.ssl.HandshakeMessage$Finished mesg
         0: .line 1326
            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 1327
            aload 1 /* mesg */
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            invokevirtual sun.security.ssl.HandshakeMessage$Finished.print:(Ljava/io/PrintStream;)V
         2: .line 1330
      StackMap locals:
      StackMap stack:
            aload 1 /* mesg */
            aload 0 /* this */
            getfield sun.security.ssl.ClientHandshaker.handshakeHash:Lsun/security/ssl/HandshakeHash;
            iconst_2
         3: .line 1331
            aload 0 /* this */
            getfield sun.security.ssl.ClientHandshaker.session:Lsun/security/ssl/SSLSessionImpl;
            invokevirtual sun.security.ssl.SSLSessionImpl.getMasterSecret:()Ljavax/crypto/SecretKey;
         4: .line 1330
            invokevirtual sun.security.ssl.HandshakeMessage$Finished.verify:(Lsun/security/ssl/HandshakeHash;ILjavax/crypto/SecretKey;)Z
            istore 2 /* verified */
        start local 2 // boolean verified
         5: .line 1333
            iload 2 /* verified */
            ifne 9
         6: .line 1334
            aload 0 /* this */
            bipush 47
         7: .line 1335
            ldc "server 'finished' message doesn't verify"
         8: .line 1334
            invokevirtual sun.security.ssl.ClientHandshaker.fatalSE:(BLjava/lang/String;)V
         9: .line 1342
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.ClientHandshaker.secureRenegotiation:Z
            ifeq 11
        10: .line 1343
            aload 0 /* this */
            aload 1 /* mesg */
            invokevirtual sun.security.ssl.HandshakeMessage$Finished.getVerifyData:()[B
            putfield sun.security.ssl.ClientHandshaker.serverVerifyData:[B
        11: .line 1349
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.ClientHandshaker.isInitialHandshake:Z
            ifne 13
        12: .line 1350
            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 1363
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.ClientHandshaker.resumingSession:Z
            ifeq 16
        14: .line 1364
            aload 0 /* this */
            iconst_1
            invokevirtual sun.security.ssl.ClientHandshaker.sendChangeCipherAndFinish:(Z)V
        15: .line 1365
            goto 17
        16: .line 1366
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iconst_1
            putfield sun.security.ssl.ClientHandshaker.handshakeFinished:Z
        17: .line 1368
      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
        18: .line 1370
            aload 0 /* this */
            getfield sun.security.ssl.ClientHandshaker.resumingSession:Z
            ifne 33
        19: .line 1371
            aload 0 /* this */
            getfield sun.security.ssl.ClientHandshaker.session:Lsun/security/ssl/SSLSessionImpl;
            invokevirtual sun.security.ssl.SSLSessionImpl.isRejoinable:()Z
            ifeq 27
        20: .line 1372
            aload 0 /* this */
            getfield sun.security.ssl.ClientHandshaker.sslContext:Lsun/security/ssl/SSLContextImpl;
        21: .line 1373
            invokevirtual sun.security.ssl.SSLContextImpl.engineGetClientSessionContext:()Ljavax/net/ssl/SSLSessionContext;
        22: .line 1372
            checkcast sun.security.ssl.SSLSessionContextImpl
        23: .line 1374
            aload 0 /* this */
            getfield sun.security.ssl.ClientHandshaker.session:Lsun/security/ssl/SSLSessionImpl;
            invokevirtual sun.security.ssl.SSLSessionContextImpl.put:(Lsun/security/ssl/SSLSessionImpl;)V
        24: .line 1375
            getstatic sun.security.ssl.ClientHandshaker.debug:Lsun/security/ssl/Debug;
            ifnull 33
            ldc "session"
            invokestatic sun.security.ssl.Debug.isOn:(Ljava/lang/String;)Z
            ifeq 33
        25: .line 1376
            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
        26: .line 1378
            goto 33
      StackMap locals:
      StackMap stack:
        27: getstatic sun.security.ssl.ClientHandshaker.debug:Lsun/security/ssl/Debug;
            ifnull 33
            ldc "session"
            invokestatic sun.security.ssl.Debug.isOn:(Ljava/lang/String;)Z
            ifeq 33
        28: .line 1379
            getstatic java.lang.System.out:Ljava/io/PrintStream;
        29: .line 1380
            new java.lang.StringBuilder
            dup
            ldc "%% Didn't cache non-resumable client session: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
        30: .line 1381
            aload 0 /* this */
            getfield sun.security.ssl.ClientHandshaker.session:Lsun/security/ssl/SSLSessionImpl;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
        31: .line 1380
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        32: .line 1379
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
        33: .line 1384
      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   34     0      this  Lsun/security/ssl/ClientHandshaker;
            0   34     1      mesg  Lsun/security/ssl/HandshakeMessage$Finished;
            5   34     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=7, locals=3, args_size=2
        start local 0 // sun.security.ssl.ClientHandshaker this
        start local 1 // boolean finishedTag
         0: .line 1397
            aload 0 /* this */
            getfield sun.security.ssl.ClientHandshaker.handshakeHash:Lsun/security/ssl/HandshakeHash;
            invokevirtual sun.security.ssl.HandshakeHash.reload:()V
         1: .line 1399
            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;
         2: .line 1400
            iconst_1
            aload 0 /* this */
            getfield sun.security.ssl.ClientHandshaker.session:Lsun/security/ssl/SSLSessionImpl;
            invokevirtual sun.security.ssl.SSLSessionImpl.getMasterSecret:()Ljavax/crypto/SecretKey;
            aload 0 /* this */
            getfield sun.security.ssl.ClientHandshaker.cipherSuite:Lsun/security/ssl/CipherSuite;
         3: .line 1399
            invokespecial sun.security.ssl.HandshakeMessage$Finished.<init>:(Lsun/security/ssl/ProtocolVersion;Lsun/security/ssl/HandshakeHash;ILjavax/crypto/SecretKey;Lsun/security/ssl/CipherSuite;)V
            astore 2 /* mesg */
        start local 2 // sun.security.ssl.HandshakeMessage$Finished mesg
         4: .line 1408
            aload 0 /* this */
            aload 2 /* mesg */
            iload 1 /* finishedTag */
            invokevirtual sun.security.ssl.ClientHandshaker.sendChangeCipherSpec:(Lsun/security/ssl/HandshakeMessage$Finished;Z)V
         5: .line 1413
            aload 0 /* this */
            getfield sun.security.ssl.ClientHandshaker.secureRenegotiation:Z
            ifeq 7
         6: .line 1414
            aload 0 /* this */
            aload 2 /* mesg */
            invokevirtual sun.security.ssl.HandshakeMessage$Finished.getVerifyData:()[B
            putfield sun.security.ssl.ClientHandshaker.clientVerifyData:[B
         7: .line 1416
      StackMap locals: sun.security.ssl.HandshakeMessage$Finished
      StackMap stack:
            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
            4    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=7, locals=7, args_size=1
        start local 0 // sun.security.ssl.ClientHandshaker this
         0: .line 1425
            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 1428
            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 1431
            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 1437
            aload 0 /* this */
            aload 0 /* this */
            getfield sun.security.ssl.ClientHandshaker.sslContext:Lsun/security/ssl/SSLContextImpl;
         4: .line 1438
            invokevirtual sun.security.ssl.SSLContextImpl.engineGetClientSessionContext:()Ljavax/net/ssl/SSLSessionContext;
            checkcast sun.security.ssl.SSLSessionContextImpl
         5: .line 1439
            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 1437
            putfield sun.security.ssl.ClientHandshaker.session:Lsun/security/ssl/SSLSessionImpl;
         7: .line 1440
            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 1441
            aload 0 /* this */
            getfield sun.security.ssl.ClientHandshaker.session:Lsun/security/ssl/SSLSessionImpl;
            ifnull 16
         9: .line 1442
            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 1443
            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 1444
            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 1442
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
        15: .line 1445
            goto 17
        16: .line 1446
      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 1449
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.ClientHandshaker.session:Lsun/security/ssl/SSLSessionImpl;
            ifnull 26
        18: .line 1453
            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 1456
            aload 0 /* this */
        20: .line 1457
            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 1456
            putfield sun.security.ssl.ClientHandshaker.reservedServerCerts:[Ljava/security/cert/X509Certificate;
        22: .line 1458
            goto 24
      StackMap locals:
      StackMap stack: javax.net.ssl.SSLPeerUnverifiedException
        23: pop
        24: .line 1463
      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 1464
            aload 0 /* this */
            aconst_null
            putfield sun.security.ssl.ClientHandshaker.session:Lsun/security/ssl/SSLSessionImpl;
        26: .line 1468
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.ClientHandshaker.session:Lsun/security/ssl/SSLSessionImpl;
            ifnull 70
        27: .line 1469
            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 1470
            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 1471
            aload 0 /* this */
            aload 3 /* sessionSuite */
            invokevirtual sun.security.ssl.ClientHandshaker.isNegotiable:(Lsun/security/ssl/CipherSuite;)Z
            ifne 33
        30: .line 1472
            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 1473
            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 1475
      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 1478
      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 1479
            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 1480
            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 1482
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aconst_null
            putfield sun.security.ssl.ClientHandshaker.session:Lsun/security/ssl/SSLSessionImpl;
        37: .line 1485
      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 1486
            aload 4 /* sessionVersion */
            invokevirtual sun.security.ssl.ProtocolVersion.useTLS10PlusSpec:()Z
            istore 5 /* isTLS10Plus */
        start local 5 // boolean isTLS10Plus
        39: .line 1487
            iload 5 /* isTLS10Plus */
            ifeq 42
            aload 0 /* this */
            getfield sun.security.ssl.ClientHandshaker.session:Lsun/security/ssl/SSLSessionImpl;
            invokevirtual sun.security.ssl.SSLSessionImpl.getUseExtendedMasterSecret:()Z
            ifne 42
        40: .line 1488
            getstatic sun.security.ssl.ClientHandshaker.allowLegacyResumption:Z
            ifne 42
        41: .line 1495
            aload 0 /* this */
            aconst_null
            putfield sun.security.ssl.ClientHandshaker.session:Lsun/security/ssl/SSLSessionImpl;
        42: .line 1499
      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
        43: .line 1502
            aload 0 /* this */
            invokevirtual sun.security.ssl.ClientHandshaker.getEndpointIdentificationAlgorithmSE:()Ljava/lang/String;
            astore 6 /* identityAlg */
        start local 6 // java.lang.String identityAlg
        44: .line 1503
            aload 6 /* identityAlg */
            ifnull 45
            aload 6 /* identityAlg */
            invokevirtual java.lang.String.length:()I
            ifne 50
        45: .line 1504
      StackMap locals: java.lang.String
      StackMap stack:
            iload 5 /* isTLS10Plus */
            ifeq 49
        46: .line 1505
            aload 0 /* this */
            getfield sun.security.ssl.ClientHandshaker.session:Lsun/security/ssl/SSLSessionImpl;
            invokevirtual sun.security.ssl.SSLSessionImpl.getUseExtendedMasterSecret:()Z
            ifne 50
        47: .line 1507
            aload 0 /* this */
            aconst_null
            putfield sun.security.ssl.ClientHandshaker.session:Lsun/security/ssl/SSLSessionImpl;
        48: .line 1509
            goto 50
        49: .line 1517
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aconst_null
            putfield sun.security.ssl.ClientHandshaker.session:Lsun/security/ssl/SSLSessionImpl;
        end local 6 // java.lang.String identityAlg
        end local 5 // boolean isTLS10Plus
        50: .line 1523
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.ClientHandshaker.session:Lsun/security/ssl/SSLSessionImpl;
            ifnull 59
        51: .line 1524
            getstatic sun.security.ssl.ClientHandshaker.debug:Lsun/security/ssl/Debug;
            ifnull 56
        52: .line 1525
            ldc "handshake"
            invokestatic sun.security.ssl.Debug.isOn:(Ljava/lang/String;)Z
            ifne 53
            ldc "session"
            invokestatic sun.security.ssl.Debug.isOn:(Ljava/lang/String;)Z
            ifeq 56
        53: .line 1526
      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;
        54: .line 1527
            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;
        55: .line 1526
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
        56: .line 1531
      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 */
        57: .line 1532
            aload 0 /* this */
            aload 4 /* sessionVersion */
            putfield sun.security.ssl.ClientHandshaker.maxProtocolVersion:Lsun/security/ssl/ProtocolVersion;
        58: .line 1537
            aload 0 /* this */
            aload 4 /* sessionVersion */
            invokevirtual sun.security.ssl.ClientHandshaker.setVersion:(Lsun/security/ssl/ProtocolVersion;)V
        59: .line 1544
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.ClientHandshaker.enableNewSession:Z
            ifne 70
        60: .line 1545
            aload 0 /* this */
            getfield sun.security.ssl.ClientHandshaker.session:Lsun/security/ssl/SSLSessionImpl;
            ifnonnull 64
        61: .line 1546
            new javax.net.ssl.SSLHandshakeException
            dup
        62: .line 1547
            ldc "Can't reuse existing SSL client session"
        63: .line 1546
            invokespecial javax.net.ssl.SSLHandshakeException.<init>:(Ljava/lang/String;)V
            athrow
        64: .line 1550
      StackMap locals:
      StackMap stack:
            new java.util.ArrayList
            dup
            iconst_2
            invokespecial java.util.ArrayList.<init>:(I)V
            astore 5 /* cipherList */
        start local 5 // java.util.Collection cipherList
        65: .line 1551
            aload 5 /* cipherList */
            aload 3 /* sessionSuite */
            invokeinterface java.util.Collection.add:(Ljava/lang/Object;)Z
            pop
        66: .line 1552
            aload 0 /* this */
            getfield sun.security.ssl.ClientHandshaker.secureRenegotiation:Z
            ifne 69
        67: .line 1553
            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 69
        68: .line 1554
            aload 5 /* cipherList */
            getstatic sun.security.ssl.CipherSuite.C_SCSV:Lsun/security/ssl/CipherSuite;
            invokeinterface java.util.Collection.add:(Ljava/lang/Object;)Z
            pop
        69: .line 1557
      StackMap locals: java.util.Collection
      StackMap stack:
            new sun.security.ssl.CipherSuiteList
            dup
            aload 5 /* cipherList */
            invokespecial sun.security.ssl.CipherSuiteList.<init>:(Ljava/util/Collection;)V
            astore 2 /* cipherSuites */
        end local 5 // java.util.Collection cipherList
        end local 4 // sun.security.ssl.ProtocolVersion sessionVersion
        end local 3 // sun.security.ssl.CipherSuite sessionSuite
        70: .line 1561
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.ClientHandshaker.session:Lsun/security/ssl/SSLSessionImpl;
            ifnonnull 72
            aload 0 /* this */
            getfield sun.security.ssl.ClientHandshaker.enableNewSession:Z
            ifne 72
        71: .line 1562
            new javax.net.ssl.SSLHandshakeException
            dup
            ldc "No existing session to resume"
            invokespecial javax.net.ssl.SSLHandshakeException.<init>:(Ljava/lang/String;)V
            athrow
        72: .line 1566
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.ClientHandshaker.secureRenegotiation:Z
            ifeq 81
            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 81
        73: .line 1568
            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
        74: .line 1567
            astore 3 /* cipherList */
        start local 3 // java.util.Collection cipherList
        75: .line 1569
            aload 2 /* cipherSuites */
            invokevirtual sun.security.ssl.CipherSuiteList.collection:()Ljava/util/Collection;
            invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
            astore 5
            goto 79
      StackMap locals: sun.security.ssl.ClientHandshaker sun.security.ssl.SessionId sun.security.ssl.CipherSuiteList java.util.Collection top java.util.Iterator
      StackMap stack:
        76: 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
        77: .line 1570
            aload 4 /* suite */
            getstatic sun.security.ssl.CipherSuite.C_SCSV:Lsun/security/ssl/CipherSuite;
            if_acmpeq 79
        78: .line 1571
            aload 3 /* cipherList */
            aload 4 /* suite */
            invokeinterface java.util.Collection.add:(Ljava/lang/Object;)Z
            pop
        end local 4 // sun.security.ssl.CipherSuite suite
        79: .line 1569
      StackMap locals:
      StackMap stack:
            aload 5
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 76
        80: .line 1575
            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
        81: .line 1579
      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
        82: .line 1580
            aload 2 /* cipherSuites */
            invokevirtual sun.security.ssl.CipherSuiteList.collection:()Ljava/util/Collection;
            invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
            astore 5
            goto 87
      StackMap locals: sun.security.ssl.ClientHandshaker sun.security.ssl.SessionId sun.security.ssl.CipherSuiteList int top java.util.Iterator
      StackMap stack:
        83: 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
        84: .line 1581
            aload 0 /* this */
            aload 4 /* suite */
            invokevirtual sun.security.ssl.ClientHandshaker.isNegotiable:(Lsun/security/ssl/CipherSuite;)Z
            ifeq 87
        85: .line 1582
            iconst_1
            istore 3 /* negotiable */
        86: .line 1583
            goto 88
        end local 4 // sun.security.ssl.CipherSuite suite
        87: .line 1580
      StackMap locals:
      StackMap stack:
            aload 5
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 83
        88: .line 1587
      StackMap locals: sun.security.ssl.ClientHandshaker sun.security.ssl.SessionId sun.security.ssl.CipherSuiteList int
      StackMap stack:
            iload 3 /* negotiable */
            ifne 90
        89: .line 1588
            new javax.net.ssl.SSLHandshakeException
            dup
            ldc "No negotiable cipher suite"
            invokespecial javax.net.ssl.SSLHandshakeException.<init>:(Ljava/lang/String;)V
            athrow
        90: .line 1601
      StackMap locals:
      StackMap stack:
            new sun.security.ssl.HandshakeMessage$ClientHello
            dup
        91: .line 1602
            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;
        92: .line 1603
            aload 1 /* sessionId */
            aload 2 /* cipherSuites */
            aload 0 /* this */
            getfield sun.security.ssl.ClientHandshaker.isDTLS:Z
        93: .line 1601
            invokespecial sun.security.ssl.HandshakeMessage$ClientHello.<init>:(Ljava/security/SecureRandom;Lsun/security/ssl/ProtocolVersion;Lsun/security/ssl/SessionId;Lsun/security/ssl/CipherSuiteList;Z)V
            astore 4 /* clientHelloMessage */
        start local 4 // sun.security.ssl.HandshakeMessage$ClientHello clientHelloMessage
        94: .line 1608
            aload 0 /* this */
            getfield sun.security.ssl.ClientHandshaker.algorithmConstraints:Ljava/security/AlgorithmConstraints;
        95: .line 1609
            aload 2 /* cipherSuites */
            getstatic sun.security.ssl.ClientHandshaker.enableFFDHE:Z
        96: .line 1607
            invokestatic sun.security.ssl.SupportedGroupsExtension.createExtension:(Ljava/security/AlgorithmConstraints;Lsun/security/ssl/CipherSuiteList;Z)Lsun/security/ssl/SupportedGroupsExtension;
        97: .line 1606
            astore 5 /* sge */
        start local 5 // sun.security.ssl.SupportedGroupsExtension sge
        98: .line 1610
            aload 5 /* sge */
            ifnull 104
        99: .line 1611
            aload 4 /* clientHelloMessage */
            getfield sun.security.ssl.HandshakeMessage$ClientHello.extensions:Lsun/security/ssl/HelloExtensions;
            aload 5 /* sge */
            invokevirtual sun.security.ssl.HelloExtensions.add:(Lsun/security/ssl/HelloExtension;)V
       100: .line 1613
            aload 2 /* cipherSuites */
            getstatic sun.security.ssl.NamedGroupType.NAMED_GROUP_ECDHE:Lsun/security/ssl/NamedGroupType;
            invokevirtual sun.security.ssl.CipherSuiteList.contains:(Lsun/security/ssl/NamedGroupType;)Z
            ifeq 104
       101: .line 1614
            aload 4 /* clientHelloMessage */
            getfield sun.security.ssl.HandshakeMessage$ClientHello.extensions:Lsun/security/ssl/HelloExtensions;
       102: .line 1615
            getstatic sun.security.ssl.EllipticPointFormatsExtension.DEFAULT:Lsun/security/ssl/HelloExtension;
       103: .line 1614
            invokevirtual sun.security.ssl.HelloExtensions.add:(Lsun/security/ssl/HelloExtension;)V
       104: .line 1620
      StackMap locals: sun.security.ssl.HandshakeMessage$ClientHello sun.security.ssl.SupportedGroupsExtension
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.ClientHandshaker.maxProtocolVersion:Lsun/security/ssl/ProtocolVersion;
            invokevirtual sun.security.ssl.ProtocolVersion.useTLS12PlusSpec:()Z
            ifeq 112
       105: .line 1623
            aload 0 /* this */
            invokevirtual sun.security.ssl.ClientHandshaker.getLocalSupportedSignAlgs:()Ljava/util/Collection;
       106: .line 1622
            astore 6 /* localSignAlgs */
        start local 6 // java.util.Collection localSignAlgs
       107: .line 1624
            aload 6 /* localSignAlgs */
            invokeinterface java.util.Collection.isEmpty:()Z
            ifeq 111
       108: .line 1625
            new javax.net.ssl.SSLHandshakeException
            dup
       109: .line 1626
            ldc "No supported signature algorithm"
       110: .line 1625
            invokespecial javax.net.ssl.SSLHandshakeException.<init>:(Ljava/lang/String;)V
            athrow
       111: .line 1629
      StackMap locals: java.util.Collection
      StackMap stack:
            aload 4 /* clientHelloMessage */
            aload 6 /* localSignAlgs */
            invokevirtual sun.security.ssl.HandshakeMessage$ClientHello.addSignatureAlgorithmsExtension:(Ljava/util/Collection;)V
        end local 6 // java.util.Collection localSignAlgs
       112: .line 1633
      StackMap locals:
      StackMap stack:
            getstatic sun.security.ssl.ClientHandshaker.useExtendedMasterSecret:Z
            ifeq 116
            aload 0 /* this */
            getfield sun.security.ssl.ClientHandshaker.maxProtocolVersion:Lsun/security/ssl/ProtocolVersion;
            invokevirtual sun.security.ssl.ProtocolVersion.useTLS10PlusSpec:()Z
            ifeq 116
       113: .line 1634
            aload 0 /* this */
            getfield sun.security.ssl.ClientHandshaker.session:Lsun/security/ssl/SSLSessionImpl;
            ifnull 114
            aload 0 /* this */
            getfield sun.security.ssl.ClientHandshaker.session:Lsun/security/ssl/SSLSessionImpl;
            invokevirtual sun.security.ssl.SSLSessionImpl.getUseExtendedMasterSecret:()Z
            ifeq 116
       114: .line 1635
      StackMap locals:
      StackMap stack:
            aload 4 /* clientHelloMessage */
            invokevirtual sun.security.ssl.HandshakeMessage$ClientHello.addExtendedMasterSecretExtension:()V
       115: .line 1636
            aload 0 /* this */
            iconst_1
            putfield sun.security.ssl.ClientHandshaker.requestedToUseEMS:Z
       116: .line 1641
      StackMap locals:
      StackMap stack:
            getstatic sun.security.ssl.ClientHandshaker.enableSNIExtension:Z
            ifeq 123
       117: .line 1642
            aload 0 /* this */
            getfield sun.security.ssl.ClientHandshaker.session:Lsun/security/ssl/SSLSessionImpl;
            ifnull 120
       118: .line 1643
            aload 0 /* this */
            aload 0 /* this */
            getfield sun.security.ssl.ClientHandshaker.session:Lsun/security/ssl/SSLSessionImpl;
            invokevirtual sun.security.ssl.SSLSessionImpl.getRequestedServerNames:()Ljava/util/List;
            putfield sun.security.ssl.ClientHandshaker.requestedServerNames:Ljava/util/List;
       119: .line 1644
            goto 121
       120: .line 1645
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 0 /* this */
            getfield sun.security.ssl.ClientHandshaker.serverNames:Ljava/util/List;
            putfield sun.security.ssl.ClientHandshaker.requestedServerNames:Ljava/util/List;
       121: .line 1648
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.ClientHandshaker.requestedServerNames:Ljava/util/List;
            invokeinterface java.util.List.isEmpty:()Z
            ifne 123
       122: .line 1649
            aload 4 /* clientHelloMessage */
            aload 0 /* this */
            getfield sun.security.ssl.ClientHandshaker.requestedServerNames:Ljava/util/List;
            invokevirtual sun.security.ssl.HandshakeMessage$ClientHello.addSNIExtension:(Ljava/util/List;)V
       123: .line 1654
      StackMap locals:
      StackMap stack:
            getstatic sun.security.ssl.ClientHandshaker.enableMFLExtension:Z
            ifeq 144
       124: .line 1655
            aload 0 /* this */
            getfield sun.security.ssl.ClientHandshaker.session:Lsun/security/ssl/SSLSessionImpl;
            ifnull 127
       125: .line 1657
            aload 0 /* this */
            aload 0 /* this */
            getfield sun.security.ssl.ClientHandshaker.session:Lsun/security/ssl/SSLSessionImpl;
            invokevirtual sun.security.ssl.SSLSessionImpl.getNegotiatedMaxFragSize:()I
            putfield sun.security.ssl.ClientHandshaker.requestedMFLength:I
       126: .line 1658
            goto 135
      StackMap locals:
      StackMap stack:
       127: aload 0 /* this */
            getfield sun.security.ssl.ClientHandshaker.maximumPacketSize:I
            ifeq 134
       128: .line 1661
            aload 0 /* this */
            aload 0 /* this */
            getfield sun.security.ssl.ClientHandshaker.maximumPacketSize:I
            putfield sun.security.ssl.ClientHandshaker.requestedMFLength:I
       129: .line 1662
            aload 0 /* this */
            getfield sun.security.ssl.ClientHandshaker.isDTLS:Z
            ifeq 132
       130: .line 1663
            aload 0 /* this */
            dup
            getfield sun.security.ssl.ClientHandshaker.requestedMFLength:I
            sipush 333
            isub
            putfield sun.security.ssl.ClientHandshaker.requestedMFLength:I
       131: .line 1664
            goto 135
       132: .line 1665
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            dup
            getfield sun.security.ssl.ClientHandshaker.requestedMFLength:I
            sipush 325
            isub
            putfield sun.security.ssl.ClientHandshaker.requestedMFLength:I
       133: .line 1667
            goto 135
       134: .line 1669
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iconst_m1
            putfield sun.security.ssl.ClientHandshaker.requestedMFLength:I
       135: .line 1672
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.ClientHandshaker.requestedMFLength:I
            ifle 143
       136: .line 1673
            aload 0 /* this */
            getfield sun.security.ssl.ClientHandshaker.requestedMFLength:I
            invokestatic sun.security.ssl.MaxFragmentLengthExtension.needFragLenNego:(I)Z
            ifeq 143
       137: .line 1675
            aload 0 /* this */
       138: .line 1677
            aload 0 /* this */
            getfield sun.security.ssl.ClientHandshaker.requestedMFLength:I
       139: .line 1676
            invokestatic sun.security.ssl.MaxFragmentLengthExtension.getValidMaxFragLen:(I)I
       140: .line 1675
            putfield sun.security.ssl.ClientHandshaker.requestedMFLength:I
       141: .line 1678
            aload 4 /* clientHelloMessage */
            aload 0 /* this */
            getfield sun.security.ssl.ClientHandshaker.requestedMFLength:I
            invokevirtual sun.security.ssl.HandshakeMessage$ClientHello.addMFLExtension:(I)V
       142: .line 1679
            goto 144
       143: .line 1680
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iconst_m1
            putfield sun.security.ssl.ClientHandshaker.requestedMFLength:I
       144: .line 1685
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.ClientHandshaker.sslContext:Lsun/security/ssl/SSLContextImpl;
            iconst_1
            invokevirtual sun.security.ssl.SSLContextImpl.isStaplingEnabled:(Z)Z
            ifeq 147
       145: .line 1686
            aload 4 /* clientHelloMessage */
            invokevirtual sun.security.ssl.HandshakeMessage$ClientHello.addCertStatusReqListV2Extension:()V
       146: .line 1687
            aload 4 /* clientHelloMessage */
            invokevirtual sun.security.ssl.HandshakeMessage$ClientHello.addCertStatusRequestExtension:()V
       147: .line 1691
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.ClientHandshaker.localApl:[Ljava/lang/String;
            ifnull 150
            aload 0 /* this */
            getfield sun.security.ssl.ClientHandshaker.localApl:[Ljava/lang/String;
            arraylength
            ifle 150
       148: .line 1692
            aload 4 /* clientHelloMessage */
            aload 0 /* this */
            getfield sun.security.ssl.ClientHandshaker.localApl:[Ljava/lang/String;
            invokevirtual sun.security.ssl.HandshakeMessage$ClientHello.addALPNExtension:([Ljava/lang/String;)V
       149: .line 1693
            aload 0 /* this */
            iconst_1
            putfield sun.security.ssl.ClientHandshaker.alpnActive:Z
       150: .line 1697
      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;
       151: .line 1705
            aload 0 /* this */
            getfield sun.security.ssl.ClientHandshaker.secureRenegotiation:Z
            ifne 153
       152: .line 1706
            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 154
       153: .line 1707
      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
       154: .line 1710
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.ClientHandshaker.isDTLS:Z
            ifeq 156
       155: .line 1712
            aload 0 /* this */
            aload 4 /* clientHelloMessage */
            putfield sun.security.ssl.ClientHandshaker.initialClientHelloMsg:Lsun/security/ssl/HandshakeMessage$ClientHello;
       156: .line 1715
      StackMap locals:
      StackMap stack:
            aload 4 /* clientHelloMessage */
            areturn
        end local 5 // sun.security.ssl.SupportedGroupsExtension sge
        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  157     0                this  Lsun/security/ssl/ClientHandshaker;
            1  157     1           sessionId  Lsun/security/ssl/SessionId;
            2  157     2        cipherSuites  Lsun/security/ssl/CipherSuiteList;
           28   70     3        sessionSuite  Lsun/security/ssl/CipherSuite;
           29   70     4      sessionVersion  Lsun/security/ssl/ProtocolVersion;
           39   50     5         isTLS10Plus  Z
           44   50     6         identityAlg  Ljava/lang/String;
           65   70     5          cipherList  Ljava/util/Collection<Lsun/security/ssl/CipherSuite;>;
           75   81     3          cipherList  Ljava/util/Collection<Lsun/security/ssl/CipherSuite;>;
           77   79     4               suite  Lsun/security/ssl/CipherSuite;
           82  157     3          negotiable  Z
           84   87     4               suite  Lsun/security/ssl/CipherSuite;
           94  157     4  clientHelloMessage  Lsun/security/ssl/HandshakeMessage$ClientHello;
           98  157     5                 sge  Lsun/security/ssl/SupportedGroupsExtension;
          107  112     6       localSignAlgs  Ljava/util/Collection<Lsun/security/ssl/SignatureAndHashAlgorithm;>;
      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 1723
            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 1725
            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 1726
            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 1728
      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=3, locals=4, args_size=2
        start local 0 // sun.security.ssl.ClientHandshaker this
        start local 1 // sun.security.ssl.HandshakeMessage$CertificateMsg mesg
         0: .line 1737
            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 1738
            aload 1 /* mesg */
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            invokevirtual sun.security.ssl.HandshakeMessage$CertificateMsg.print:(Ljava/io/PrintStream;)V
         2: .line 1740
      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 1741
            aload 2 /* peerCerts */
            arraylength
            ifne 5
         4: .line 1742
            aload 0 /* this */
            bipush 42
            ldc "empty certificate chain"
            invokevirtual sun.security.ssl.ClientHandshaker.fatalSE:(BLjava/lang/String;)V
         5: .line 1754
      StackMap locals: java.security.cert.X509Certificate[]
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.ClientHandshaker.reservedServerCerts:[Ljava/security/cert/X509Certificate;
            ifnull 13
         6: .line 1755
            aload 0 /* this */
            getfield sun.security.ssl.ClientHandshaker.session:Lsun/security/ssl/SSLSessionImpl;
            invokevirtual sun.security.ssl.SSLSessionImpl.getUseExtendedMasterSecret:()Z
            ifne 13
         7: .line 1758
            aload 0 /* this */
            invokevirtual sun.security.ssl.ClientHandshaker.getEndpointIdentificationAlgorithmSE:()Ljava/lang/String;
            astore 3 /* identityAlg */
        start local 3 // java.lang.String identityAlg
         8: .line 1759
            aload 3 /* identityAlg */
            ifnull 9
            aload 3 /* identityAlg */
            invokevirtual java.lang.String.length:()I
            ifne 13
         9: .line 1760
      StackMap locals: java.lang.String
      StackMap stack:
            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 13
        10: .line 1762
            aload 0 /* this */
            bipush 42
        11: .line 1763
            ldc "server certificate change is restricted during renegotiation"
        12: .line 1762
            invokevirtual sun.security.ssl.ClientHandshaker.fatalSE:(BLjava/lang/String;)V
        end local 3 // java.lang.String identityAlg
        13: .line 1769
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.ClientHandshaker.staplingActive:Z
            ifeq 16
        14: .line 1774
            aload 0 /* this */
            aload 2 /* peerCerts */
            putfield sun.security.ssl.ClientHandshaker.deferredCerts:[Ljava/security/cert/X509Certificate;
        15: .line 1775
            goto 17
        16: .line 1777
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 2 /* peerCerts */
            invokevirtual sun.security.ssl.ClientHandshaker.checkServerCerts:([Ljava/security/cert/X509Certificate;)V
        17: .line 1779
      StackMap locals:
      StackMap stack:
            return
        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   18     0         this  Lsun/security/ssl/ClientHandshaker;
            0   18     1         mesg  Lsun/security/ssl/HandshakeMessage$CertificateMsg;
            3   18     2    peerCerts  [Ljava/security/cert/X509Certificate;
            8   13     3  identityAlg  Ljava/lang/String;
    Exceptions:
      throws java.io.IOException
    MethodParameters:
      Name  Flags
      mesg  

  private void certificateStatus(sun.security.ssl.HandshakeMessage$CertificateStatus);
    descriptor: (Lsun/security/ssl/HandshakeMessage$CertificateStatus;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // sun.security.ssl.ClientHandshaker this
        start local 1 // sun.security.ssl.HandshakeMessage$CertificateStatus mesg
         0: .line 1791
            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 1792
            aload 1 /* mesg */
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            invokevirtual sun.security.ssl.HandshakeMessage$CertificateStatus.print:(Ljava/io/PrintStream;)V
         2: .line 1797
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.ClientHandshaker.session:Lsun/security/ssl/SSLSessionImpl;
            aload 1 /* mesg */
            invokevirtual sun.security.ssl.HandshakeMessage$CertificateStatus.getResponses:()Ljava/util/List;
            invokevirtual sun.security.ssl.SSLSessionImpl.setStatusResponses:(Ljava/util/List;)V
         3: .line 1798
            aload 0 /* this */
            aload 0 /* this */
            getfield sun.security.ssl.ClientHandshaker.deferredCerts:[Ljava/security/cert/X509Certificate;
            invokevirtual sun.security.ssl.ClientHandshaker.checkServerCerts:([Ljava/security/cert/X509Certificate;)V
         4: .line 1799
            return
        end local 1 // sun.security.ssl.HandshakeMessage$CertificateStatus mesg
        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  mesg  Lsun/security/ssl/HandshakeMessage$CertificateStatus;
    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=8, args_size=2
        start local 0 // java.security.cert.X509Certificate thisCert
        start local 1 // java.security.cert.X509Certificate prevCert
         0: .line 1814
            aload 0 /* thisCert */
            aload 1 /* prevCert */
            invokevirtual java.security.cert.X509Certificate.equals:(Ljava/lang/Object;)Z
            ifeq 2
         1: .line 1815
            iconst_1
            ireturn
         2: .line 1819
      StackMap locals:
      StackMap stack:
            aconst_null
            astore 2 /* thisSubjectAltNames */
        start local 2 // java.util.Collection thisSubjectAltNames
         3: .line 1821
            aload 0 /* thisCert */
            invokevirtual java.security.cert.X509Certificate.getSubjectAlternativeNames:()Ljava/util/Collection;
            astore 2 /* thisSubjectAltNames */
         4: .line 1822
            goto 10
      StackMap locals: java.security.cert.X509Certificate java.security.cert.X509Certificate java.util.Collection
      StackMap stack: java.security.cert.CertificateParsingException
         5: pop
         6: .line 1823
            getstatic sun.security.ssl.ClientHandshaker.debug:Lsun/security/ssl/Debug;
            ifnull 10
            ldc "handshake"
            invokestatic sun.security.ssl.Debug.isOn:(Ljava/lang/String;)Z
            ifeq 10
         7: .line 1824
            getstatic java.lang.System.out:Ljava/io/PrintStream;
         8: .line 1825
            ldc "Attempt to obtain subjectAltNames extension failed!"
         9: .line 1824
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
        10: .line 1829
      StackMap locals:
      StackMap stack:
            aconst_null
            astore 3 /* prevSubjectAltNames */
        start local 3 // java.util.Collection prevSubjectAltNames
        11: .line 1831
            aload 1 /* prevCert */
            invokevirtual java.security.cert.X509Certificate.getSubjectAlternativeNames:()Ljava/util/Collection;
            astore 3 /* prevSubjectAltNames */
        12: .line 1832
            goto 18
      StackMap locals: java.security.cert.X509Certificate java.security.cert.X509Certificate java.util.Collection java.util.Collection
      StackMap stack: java.security.cert.CertificateParsingException
        13: pop
        14: .line 1833
            getstatic sun.security.ssl.ClientHandshaker.debug:Lsun/security/ssl/Debug;
            ifnull 18
            ldc "handshake"
            invokestatic sun.security.ssl.Debug.isOn:(Ljava/lang/String;)Z
            ifeq 18
        15: .line 1834
            getstatic java.lang.System.out:Ljava/io/PrintStream;
        16: .line 1835
            ldc "Attempt to obtain subjectAltNames extension failed!"
        17: .line 1834
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
        18: .line 1839
      StackMap locals:
      StackMap stack:
            aload 2 /* thisSubjectAltNames */
            ifnull 33
            aload 3 /* prevSubjectAltNames */
            ifnull 33
        19: .line 1842
            aload 2 /* thisSubjectAltNames */
            bipush 7
            invokestatic sun.security.ssl.ClientHandshaker.getSubjectAltNames:(Ljava/util/Collection;I)Ljava/util/Collection;
        20: .line 1841
            astore 4 /* thisSubAltIPAddrs */
        start local 4 // java.util.Collection thisSubAltIPAddrs
        21: .line 1844
            aload 3 /* prevSubjectAltNames */
            bipush 7
            invokestatic sun.security.ssl.ClientHandshaker.getSubjectAltNames:(Ljava/util/Collection;I)Ljava/util/Collection;
        22: .line 1843
            astore 5 /* prevSubAltIPAddrs */
        start local 5 // java.util.Collection prevSubAltIPAddrs
        23: .line 1845
            aload 4 /* thisSubAltIPAddrs */
            ifnull 26
            aload 5 /* prevSubAltIPAddrs */
            ifnull 26
        24: .line 1846
            aload 4 /* thisSubAltIPAddrs */
            aload 5 /* prevSubAltIPAddrs */
            invokestatic sun.security.ssl.ClientHandshaker.isEquivalent:(Ljava/util/Collection;Ljava/util/Collection;)Z
            ifeq 26
        25: .line 1848
            iconst_1
            ireturn
        26: .line 1853
      StackMap locals: java.util.Collection java.util.Collection
      StackMap stack:
            aload 2 /* thisSubjectAltNames */
            iconst_2
            invokestatic sun.security.ssl.ClientHandshaker.getSubjectAltNames:(Ljava/util/Collection;I)Ljava/util/Collection;
        27: .line 1852
            astore 6 /* thisSubAltDnsNames */
        start local 6 // java.util.Collection thisSubAltDnsNames
        28: .line 1855
            aload 3 /* prevSubjectAltNames */
            iconst_2
            invokestatic sun.security.ssl.ClientHandshaker.getSubjectAltNames:(Ljava/util/Collection;I)Ljava/util/Collection;
        29: .line 1854
            astore 7 /* prevSubAltDnsNames */
        start local 7 // java.util.Collection prevSubAltDnsNames
        30: .line 1856
            aload 6 /* thisSubAltDnsNames */
            ifnull 33
            aload 7 /* prevSubAltDnsNames */
            ifnull 33
        31: .line 1857
            aload 6 /* thisSubAltDnsNames */
            aload 7 /* prevSubAltDnsNames */
            invokestatic sun.security.ssl.ClientHandshaker.isEquivalent:(Ljava/util/Collection;Ljava/util/Collection;)Z
            ifeq 33
        32: .line 1859
            iconst_1
            ireturn
        end local 7 // java.util.Collection prevSubAltDnsNames
        end local 6 // java.util.Collection thisSubAltDnsNames
        end local 5 // java.util.Collection prevSubAltIPAddrs
        end local 4 // java.util.Collection thisSubAltIPAddrs
        33: .line 1864
      StackMap locals:
      StackMap stack:
            aload 0 /* thisCert */
            invokevirtual java.security.cert.X509Certificate.getSubjectX500Principal:()Ljavax/security/auth/x500/X500Principal;
            astore 4 /* thisSubject */
        start local 4 // javax.security.auth.x500.X500Principal thisSubject
        34: .line 1865
            aload 1 /* prevCert */
            invokevirtual java.security.cert.X509Certificate.getSubjectX500Principal:()Ljavax/security/auth/x500/X500Principal;
            astore 5 /* prevSubject */
        start local 5 // javax.security.auth.x500.X500Principal prevSubject
        35: .line 1866
            aload 0 /* thisCert */
            invokevirtual java.security.cert.X509Certificate.getIssuerX500Principal:()Ljavax/security/auth/x500/X500Principal;
            astore 6 /* thisIssuer */
        start local 6 // javax.security.auth.x500.X500Principal thisIssuer
        36: .line 1867
            aload 1 /* prevCert */
            invokevirtual java.security.cert.X509Certificate.getIssuerX500Principal:()Ljavax/security/auth/x500/X500Principal;
            astore 7 /* prevIssuer */
        start local 7 // javax.security.auth.x500.X500Principal prevIssuer
        37: .line 1868
            aload 4 /* thisSubject */
            invokevirtual javax.security.auth.x500.X500Principal.getName:()Ljava/lang/String;
            invokevirtual java.lang.String.isEmpty:()Z
            ifne 42
        38: .line 1869
            aload 5 /* prevSubject */
            invokevirtual javax.security.auth.x500.X500Principal.getName:()Ljava/lang/String;
            invokevirtual java.lang.String.isEmpty:()Z
            ifne 42
        39: .line 1870
            aload 4 /* thisSubject */
            aload 5 /* prevSubject */
            invokevirtual javax.security.auth.x500.X500Principal.equals:(Ljava/lang/Object;)Z
            ifeq 42
        40: .line 1871
            aload 6 /* thisIssuer */
            aload 7 /* prevIssuer */
            invokevirtual javax.security.auth.x500.X500Principal.equals:(Ljava/lang/Object;)Z
            ifeq 42
        41: .line 1872
            iconst_1
            ireturn
        42: .line 1875
      StackMap locals: java.security.cert.X509Certificate java.security.cert.X509Certificate java.util.Collection java.util.Collection 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 7 // javax.security.auth.x500.X500Principal prevIssuer
        end local 6 // javax.security.auth.x500.X500Principal thisIssuer
        end local 5 // javax.security.auth.x500.X500Principal prevSubject
        end local 4 // javax.security.auth.x500.X500Principal thisSubject
        end local 3 // java.util.Collection prevSubjectAltNames
        end local 2 // java.util.Collection thisSubjectAltNames
        end local 1 // java.security.cert.X509Certificate prevCert
        end local 0 // java.security.cert.X509Certificate thisCert
      LocalVariableTable:
        Start  End  Slot                 Name  Signature
            0   43     0             thisCert  Ljava/security/cert/X509Certificate;
            0   43     1             prevCert  Ljava/security/cert/X509Certificate;
            3   43     2  thisSubjectAltNames  Ljava/util/Collection<Ljava/util/List<*>;>;
           11   43     3  prevSubjectAltNames  Ljava/util/Collection<Ljava/util/List<*>;>;
           21   33     4    thisSubAltIPAddrs  Ljava/util/Collection<Ljava/lang/String;>;
           23   33     5    prevSubAltIPAddrs  Ljava/util/Collection<Ljava/lang/String;>;
           28   33     6   thisSubAltDnsNames  Ljava/util/Collection<Ljava/lang/String;>;
           30   33     7   prevSubAltDnsNames  Ljava/util/Collection<Ljava/lang/String;>;
           34   43     4          thisSubject  Ljavax/security/auth/x500/X500Principal;
           35   43     5          prevSubject  Ljavax/security/auth/x500/X500Principal;
           36   43     6           thisIssuer  Ljavax/security/auth/x500/X500Principal;
           37   43     7           prevIssuer  Ljavax/security/auth/x500/X500Principal;
      Exception table:
        from    to  target  type
           3     4       5  Class java.security.cert.CertificateParsingException
          11    12      13  Class java.security.cert.CertificateParsingException
    MethodParameters:
          Name  Flags
      thisCert  
      prevCert  

  private static java.util.Collection<java.lang.String> getSubjectAltNames(java.util.Collection<java.util.List<?>>, int);
    descriptor: (Ljava/util/Collection;I)Ljava/util/Collection;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=3, locals=7, args_size=2
        start local 0 // java.util.Collection subjectAltNames
        start local 1 // int type
         0: .line 1888
            aconst_null
            astore 2 /* subAltDnsNames */
        start local 2 // java.util.HashSet subAltDnsNames
         1: .line 1889
            aload 0 /* subjectAltNames */
            invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
            astore 4
            goto 11
      StackMap locals: java.util.Collection int java.util.HashSet top java.util.Iterator
      StackMap stack:
         2: aload 4
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.util.List
            astore 3 /* subjectAltName */
        start local 3 // java.util.List subjectAltName
         3: .line 1890
            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
         4: .line 1891
            iload 5 /* subjectAltNameType */
            iload 1 /* type */
            if_icmpne 11
         5: .line 1892
            aload 3 /* subjectAltName */
            iconst_1
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            checkcast java.lang.String
            astore 6 /* subAltDnsName */
        start local 6 // java.lang.String subAltDnsName
         6: .line 1893
            aload 6 /* subAltDnsName */
            ifnull 11
            aload 6 /* subAltDnsName */
            invokevirtual java.lang.String.isEmpty:()Z
            ifne 11
         7: .line 1894
            aload 2 /* subAltDnsNames */
            ifnonnull 10
         8: .line 1896
            new java.util.HashSet
            dup
            aload 0 /* subjectAltNames */
            invokeinterface java.util.Collection.size:()I
            invokespecial java.util.HashSet.<init>:(I)V
         9: .line 1895
            astore 2 /* subAltDnsNames */
        10: .line 1898
      StackMap locals: java.util.Collection int java.util.HashSet java.util.List java.util.Iterator int java.lang.String
      StackMap stack:
            aload 2 /* subAltDnsNames */
            aload 6 /* subAltDnsName */
            invokevirtual java.util.HashSet.add:(Ljava/lang/Object;)Z
            pop
        end local 6 // java.lang.String subAltDnsName
        end local 5 // int subjectAltNameType
        end local 3 // java.util.List subjectAltName
        11: .line 1889
      StackMap locals: java.util.Collection int java.util.HashSet top java.util.Iterator
      StackMap stack:
            aload 4
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 2
        12: .line 1903
            aload 2 /* subAltDnsNames */
            areturn
        end local 2 // java.util.HashSet subAltDnsNames
        end local 1 // int type
        end local 0 // java.util.Collection subjectAltNames
      LocalVariableTable:
        Start  End  Slot                Name  Signature
            0   13     0     subjectAltNames  Ljava/util/Collection<Ljava/util/List<*>;>;
            0   13     1                type  I
            1   13     2      subAltDnsNames  Ljava/util/HashSet<Ljava/lang/String;>;
            3   11     3      subjectAltName  Ljava/util/List<*>;
            4   11     5  subjectAltNameType  I
            6   11     6       subAltDnsName  Ljava/lang/String;
    Signature: (Ljava/util/Collection<Ljava/util/List<*>;>;I)Ljava/util/Collection<Ljava/lang/String;>;
    MethodParameters:
                 Name  Flags
      subjectAltNames  
      type             

  private static boolean isEquivalent(java.util.Collection<java.lang.String>, java.util.Collection<java.lang.String>);
    descriptor: (Ljava/util/Collection;Ljava/util/Collection;)Z
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=6, args_size=2
        start local 0 // java.util.Collection thisSubAltNames
        start local 1 // java.util.Collection prevSubAltNames
         0: .line 1909
            aload 0 /* thisSubAltNames */
            invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
            astore 3
            goto 7
      StackMap locals: java.util.Collection java.util.Collection top java.util.Iterator
      StackMap stack:
         1: aload 3
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.lang.String
            astore 2 /* thisSubAltName */
        start local 2 // java.lang.String thisSubAltName
         2: .line 1910
            aload 1 /* prevSubAltNames */
            invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
            astore 5
            goto 6
      StackMap locals: java.util.Collection java.util.Collection java.lang.String java.util.Iterator top java.util.Iterator
      StackMap stack:
         3: aload 5
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.lang.String
            astore 4 /* prevSubAltName */
        start local 4 // java.lang.String prevSubAltName
         4: .line 1912
            aload 2 /* thisSubAltName */
            aload 4 /* prevSubAltName */
            invokevirtual java.lang.String.equalsIgnoreCase:(Ljava/lang/String;)Z
            ifeq 6
         5: .line 1913
            iconst_1
            ireturn
        end local 4 // java.lang.String prevSubAltName
         6: .line 1910
      StackMap locals:
      StackMap stack:
            aload 5
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 3
        end local 2 // java.lang.String thisSubAltName
         7: .line 1909
      StackMap locals: java.util.Collection java.util.Collection top java.util.Iterator
      StackMap stack:
            aload 3
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 1
         8: .line 1918
            iconst_0
            ireturn
        end local 1 // java.util.Collection prevSubAltNames
        end local 0 // java.util.Collection thisSubAltNames
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0    9     0  thisSubAltNames  Ljava/util/Collection<Ljava/lang/String;>;
            0    9     1  prevSubAltNames  Ljava/util/Collection<Ljava/lang/String;>;
            2    7     2   thisSubAltName  Ljava/lang/String;
            4    6     4   prevSubAltName  Ljava/lang/String;
    Signature: (Ljava/util/Collection<Ljava/lang/String;>;Ljava/util/Collection<Ljava/lang/String;>;)Z
    MethodParameters:
                 Name  Flags
      thisSubAltNames  
      prevSubAltNames  

  private void checkServerCerts(java.security.cert.X509Certificate[]);
    descriptor: ([Ljava/security/cert/X509Certificate;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=5, args_size=2
        start local 0 // sun.security.ssl.ClientHandshaker this
        start local 1 // java.security.cert.X509Certificate[] certs
         0: .line 1933
            aload 0 /* this */
            getfield sun.security.ssl.ClientHandshaker.sslContext:Lsun/security/ssl/SSLContextImpl;
            invokevirtual sun.security.ssl.SSLContextImpl.getX509TrustManager:()Ljavax/net/ssl/X509TrustManager;
            astore 2 /* tm */
        start local 2 // javax.net.ssl.X509TrustManager tm
         1: .line 1938
            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 4
            aload 0 /* this */
            getfield sun.security.ssl.ClientHandshaker.serverKeyExchangeReceived:Z
            ifne 4
         2: .line 1939
            getstatic sun.security.ssl.CipherSuite$KeyExchange.K_RSA:Lsun/security/ssl/CipherSuite$KeyExchange;
            getfield sun.security.ssl.CipherSuite$KeyExchange.name:Ljava/lang/String;
            astore 3 /* keyExchangeString */
        start local 3 // java.lang.String keyExchangeString
         3: .line 1940
            goto 5
        end local 3 // java.lang.String keyExchangeString
         4: .line 1941
      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 3 /* keyExchangeString */
        start local 3 // java.lang.String keyExchangeString
         5: .line 1945
      StackMap locals: java.lang.String
      StackMap stack:
            aload 2 /* tm */
            instanceof javax.net.ssl.X509ExtendedTrustManager
            ifeq 19
         6: .line 1946
            aload 0 /* this */
            getfield sun.security.ssl.ClientHandshaker.conn:Lsun/security/ssl/SSLSocketImpl;
            ifnull 13
         7: .line 1947
            aload 2 /* tm */
            checkcast javax.net.ssl.X509ExtendedTrustManager
         8: .line 1948
            aload 1 /* certs */
            invokevirtual java.security.cert.X509Certificate[].clone:()Ljava/lang/Object;
            checkcast java.security.cert.X509Certificate[]
         9: .line 1949
            aload 3 /* keyExchangeString */
        10: .line 1950
            aload 0 /* this */
            getfield sun.security.ssl.ClientHandshaker.conn:Lsun/security/ssl/SSLSocketImpl;
        11: .line 1947
            invokevirtual javax.net.ssl.X509ExtendedTrustManager.checkServerTrusted:([Ljava/security/cert/X509Certificate;Ljava/lang/String;Ljava/net/Socket;)V
        12: .line 1951
            goto 22
        13: .line 1952
      StackMap locals:
      StackMap stack:
            aload 2 /* tm */
            checkcast javax.net.ssl.X509ExtendedTrustManager
        14: .line 1953
            aload 1 /* certs */
            invokevirtual java.security.cert.X509Certificate[].clone:()Ljava/lang/Object;
            checkcast java.security.cert.X509Certificate[]
        15: .line 1954
            aload 3 /* keyExchangeString */
        16: .line 1955
            aload 0 /* this */
            getfield sun.security.ssl.ClientHandshaker.engine:Lsun/security/ssl/SSLEngineImpl;
        17: .line 1952
            invokevirtual javax.net.ssl.X509ExtendedTrustManager.checkServerTrusted:([Ljava/security/cert/X509Certificate;Ljava/lang/String;Ljavax/net/ssl/SSLEngine;)V
        18: .line 1957
            goto 22
        19: .line 1960
      StackMap locals:
      StackMap stack:
            new java.security.cert.CertificateException
            dup
        20: .line 1961
            ldc "Improper X509TrustManager implementation"
        21: .line 1960
            invokespecial java.security.cert.CertificateException.<init>:(Ljava/lang/String;)V
            athrow
        22: .line 1966
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.ClientHandshaker.session:Lsun/security/ssl/SSLSessionImpl;
            aload 1 /* certs */
            invokevirtual sun.security.ssl.SSLSessionImpl.setPeerCertificates:([Ljava/security/cert/X509Certificate;)V
        23: .line 1967
            goto 26
      StackMap locals:
      StackMap stack: java.security.cert.CertificateException
        24: astore 4 /* ce */
        start local 4 // java.security.cert.CertificateException ce
        25: .line 1968
            aload 0 /* this */
            aload 0 /* this */
            aload 4 /* ce */
            invokevirtual sun.security.ssl.ClientHandshaker.getCertificateAlert:(Ljava/security/cert/CertificateException;)B
            aload 4 /* ce */
            invokevirtual sun.security.ssl.ClientHandshaker.fatalSE:(BLjava/lang/Throwable;)V
        end local 4 // java.security.cert.CertificateException ce
        26: .line 1970
      StackMap locals:
      StackMap stack:
            return
        end local 3 // java.lang.String keyExchangeString
        end local 2 // javax.net.ssl.X509TrustManager tm
        end local 1 // java.security.cert.X509Certificate[] certs
        end local 0 // sun.security.ssl.ClientHandshaker this
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0   27     0               this  Lsun/security/ssl/ClientHandshaker;
            0   27     1              certs  [Ljava/security/cert/X509Certificate;
            1   27     2                 tm  Ljavax/net/ssl/X509TrustManager;
            3    4     3  keyExchangeString  Ljava/lang/String;
            5   27     3  keyExchangeString  Ljava/lang/String;
           25   26     4                 ce  Ljava/security/cert/CertificateException;
      Exception table:
        from    to  target  type
           5    23      24  Class java.security.cert.CertificateException
    Exceptions:
      throws java.io.IOException
    MethodParameters:
       Name  Flags
      certs  

  private byte getCertificateAlert(java.security.cert.CertificateException);
    descriptor: (Ljava/security/cert/CertificateException;)B
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=6, args_size=2
        start local 0 // sun.security.ssl.ClientHandshaker this
        start local 1 // java.security.cert.CertificateException cexc
         0: .line 1983
            bipush 46
            istore 2 /* alertDesc */
        start local 2 // byte alertDesc
         1: .line 1985
            aload 1 /* cexc */
            invokevirtual java.security.cert.CertificateException.getCause:()Ljava/lang/Throwable;
            astore 3 /* baseCause */
        start local 3 // java.lang.Throwable baseCause
         2: .line 1986
            aload 3 /* baseCause */
            instanceof java.security.cert.CertPathValidatorException
            ifeq 17
         3: .line 1988
            aload 3 /* baseCause */
            checkcast java.security.cert.CertPathValidatorException
         4: .line 1987
            astore 4 /* cpve */
        start local 4 // java.security.cert.CertPathValidatorException cpve
         5: .line 1989
            aload 4 /* cpve */
            invokevirtual java.security.cert.CertPathValidatorException.getReason:()Ljava/security/cert/CertPathValidatorException$Reason;
            astore 5 /* reason */
        start local 5 // java.security.cert.CertPathValidatorException$Reason reason
         6: .line 1990
            aload 5 /* reason */
            getstatic java.security.cert.CertPathValidatorException$BasicReason.REVOKED:Ljava/security/cert/CertPathValidatorException$BasicReason;
            if_acmpne 12
         7: .line 1991
            aload 0 /* this */
            getfield sun.security.ssl.ClientHandshaker.staplingActive:Z
            ifeq 9
         8: .line 1992
            bipush 113
            goto 10
         9: .line 1993
      StackMap locals: sun.security.ssl.ClientHandshaker java.security.cert.CertificateException int java.lang.Throwable java.security.cert.CertPathValidatorException java.security.cert.CertPathValidatorException$Reason
      StackMap stack:
            bipush 44
        10: .line 1991
      StackMap locals:
      StackMap stack: int
            istore 2 /* alertDesc */
        11: .line 1994
            goto 17
      StackMap locals:
      StackMap stack:
        12: aload 5 /* reason */
            getstatic java.security.cert.CertPathValidatorException$BasicReason.UNDETERMINED_REVOCATION_STATUS:Ljava/security/cert/CertPathValidatorException$BasicReason;
            if_acmpne 17
        13: .line 1995
            aload 0 /* this */
            getfield sun.security.ssl.ClientHandshaker.staplingActive:Z
            ifeq 15
        14: .line 1996
            bipush 113
            goto 16
        15: .line 1997
      StackMap locals:
      StackMap stack:
            bipush 46
        16: .line 1995
      StackMap locals:
      StackMap stack: int
            istore 2 /* alertDesc */
        end local 5 // java.security.cert.CertPathValidatorException$Reason reason
        end local 4 // java.security.cert.CertPathValidatorException cpve
        17: .line 2001
      StackMap locals:
      StackMap stack:
            iload 2 /* alertDesc */
            ireturn
        end local 3 // java.lang.Throwable baseCause
        end local 2 // byte alertDesc
        end local 1 // java.security.cert.CertificateException cexc
        end local 0 // sun.security.ssl.ClientHandshaker this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   18     0       this  Lsun/security/ssl/ClientHandshaker;
            0   18     1       cexc  Ljava/security/cert/CertificateException;
            1   18     2  alertDesc  B
            2   18     3  baseCause  Ljava/lang/Throwable;
            5   17     4       cpve  Ljava/security/cert/CertPathValidatorException;
            6   17     5     reason  Ljava/security/cert/CertPathValidatorException$Reason;
    MethodParameters:
      Name  Flags
      cexc  

  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 60
            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"
InnerClasses:
  public final BasicReason = java.security.cert.CertPathValidatorException$BasicReason of java.security.cert.CertPathValidatorException
  public abstract Reason = java.security.cert.CertPathValidatorException$Reason of java.security.cert.CertPathValidatorException
  final KeyExchange = sun.security.ssl.CipherSuite$KeyExchange of sun.security.ssl.CipherSuite
  final PRF = sun.security.ssl.CipherSuite$PRF of sun.security.ssl.CipherSuite
  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 CertificateStatus = sun.security.ssl.HandshakeMessage$CertificateStatus 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 HelloVerifyRequest = sun.security.ssl.HandshakeMessage$HelloVerifyRequest 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