final class sun.security.ssl.ServerHandshaker extends sun.security.ssl.Handshaker
  minor version: 0
  major version: 59
  flags: flags: (0x0030) ACC_FINAL, ACC_SUPER
  this_class: sun.security.ssl.ServerHandshaker
  super_class: sun.security.ssl.Handshaker
{
  private byte doClientAuth;
    descriptor: B
    flags: (0x0002) ACC_PRIVATE

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

  private java.security.PrivateKey privateKey;
    descriptor: Ljava/security/PrivateKey;
    flags: (0x0002) ACC_PRIVATE

  private javax.crypto.SecretKey[] kerberosKeys;
    descriptor: [Ljavax/crypto/SecretKey;
    flags: (0x0002) ACC_PRIVATE

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

  private java.security.PrivateKey tempPrivateKey;
    descriptor: Ljava/security/PrivateKey;
    flags: (0x0002) ACC_PRIVATE

  private java.security.PublicKey tempPublicKey;
    descriptor: Ljava/security/PublicKey;
    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.ProtocolVersion clientRequestedVersion;
    descriptor: Lsun/security/ssl/ProtocolVersion;
    flags: (0x0002) ACC_PRIVATE

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

  sun.security.ssl.SignatureAndHashAlgorithm preferableSignatureAlgorithm;
    descriptor: Lsun/security/ssl/SignatureAndHashAlgorithm;
    flags: (0x0000) 

  private static final java.security.AlgorithmConstraints legacyAlgorithmConstraints;
    descriptor: Ljava/security/AlgorithmConstraints;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

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

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

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

  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=5, locals=1, args_size=0
         0: .line 105
            new sun.security.util.LegacyAlgorithmConstraints
            dup
         1: .line 106
            ldc "jdk.tls.legacyAlgorithms"
         2: .line 107
            new sun.security.ssl.SSLAlgorithmDecomposer
            dup
            invokespecial sun.security.ssl.SSLAlgorithmDecomposer.<init>:()V
         3: .line 105
            invokespecial sun.security.util.LegacyAlgorithmConstraints.<init>:(Ljava/lang/String;Lsun/security/util/AlgorithmDecomposer;)V
         4: .line 104
            putstatic sun.security.ssl.ServerHandshaker.legacyAlgorithmConstraints:Ljava/security/AlgorithmConstraints;
         5: .line 122
            new sun.security.action.GetPropertyAction
            dup
            ldc "jdk.tls.ephemeralDHKeySize"
            invokespecial sun.security.action.GetPropertyAction.<init>:(Ljava/lang/String;)V
         6: .line 121
            invokestatic java.security.AccessController.doPrivileged:(Ljava/security/PrivilegedAction;)Ljava/lang/Object;
            checkcast java.lang.String
            astore 0 /* property */
        start local 0 // java.lang.String property
         7: .line 123
            aload 0 /* property */
            ifnull 8
            aload 0 /* property */
            invokevirtual java.lang.String.length:()I
            ifne 12
         8: .line 124
      StackMap locals: java.lang.String
      StackMap stack:
            iconst_0
            putstatic sun.security.ssl.ServerHandshaker.useLegacyEphemeralDHKeys:Z
         9: .line 125
            iconst_0
            putstatic sun.security.ssl.ServerHandshaker.useSmartEphemeralDHKeys:Z
        10: .line 126
            iconst_m1
            putstatic sun.security.ssl.ServerHandshaker.customizedDHKeySize:I
        11: .line 127
            goto 38
      StackMap locals:
      StackMap stack:
        12: ldc "matched"
            aload 0 /* property */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 17
        13: .line 128
            iconst_0
            putstatic sun.security.ssl.ServerHandshaker.useLegacyEphemeralDHKeys:Z
        14: .line 129
            iconst_1
            putstatic sun.security.ssl.ServerHandshaker.useSmartEphemeralDHKeys:Z
        15: .line 130
            iconst_m1
            putstatic sun.security.ssl.ServerHandshaker.customizedDHKeySize:I
        16: .line 131
            goto 38
      StackMap locals:
      StackMap stack:
        17: ldc "legacy"
            aload 0 /* property */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 22
        18: .line 132
            iconst_1
            putstatic sun.security.ssl.ServerHandshaker.useLegacyEphemeralDHKeys:Z
        19: .line 133
            iconst_0
            putstatic sun.security.ssl.ServerHandshaker.useSmartEphemeralDHKeys:Z
        20: .line 134
            iconst_m1
            putstatic sun.security.ssl.ServerHandshaker.customizedDHKeySize:I
        21: .line 135
            goto 38
        22: .line 136
      StackMap locals:
      StackMap stack:
            iconst_0
            putstatic sun.security.ssl.ServerHandshaker.useLegacyEphemeralDHKeys:Z
        23: .line 137
            iconst_0
            putstatic sun.security.ssl.ServerHandshaker.useSmartEphemeralDHKeys:Z
        24: .line 143
            aload 0 /* property */
            invokestatic sun.security.util.Parsing.parseUnsignedInt:(Ljava/lang/String;)I
            putstatic sun.security.ssl.ServerHandshaker.customizedDHKeySize:I
        25: .line 144
            getstatic sun.security.ssl.ServerHandshaker.customizedDHKeySize:I
            sipush 1024
            if_icmplt 27
            getstatic sun.security.ssl.ServerHandshaker.customizedDHKeySize:I
            sipush 8192
            if_icmpgt 27
        26: .line 145
            getstatic sun.security.ssl.ServerHandshaker.customizedDHKeySize:I
            bipush 63
            iand
            ifeq 38
        27: .line 146
      StackMap locals:
      StackMap stack:
            new java.lang.IllegalArgumentException
            dup
        28: .line 147
            new java.lang.StringBuilder
            dup
            ldc "Unsupported customized DH key size: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
        29: .line 148
            getstatic sun.security.ssl.ServerHandshaker.customizedDHKeySize:I
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            ldc ". "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        30: .line 149
            ldc "The key size must be multiple of 64, "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        31: .line 150
            ldc "and can only range from 1024 to 8192 (inclusive)"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        32: .line 147
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        33: .line 146
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
        34: .line 152
      StackMap locals:
      StackMap stack: java.lang.NumberFormatException
            pop
        35: .line 153
            new java.lang.IllegalArgumentException
            dup
        36: .line 154
            ldc "Invalid system property jdk.tls.ephemeralDHKeySize"
        37: .line 153
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
        end local 0 // java.lang.String property
        38: .line 157
      StackMap locals:
      StackMap stack:
            return
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            7   38     0  property  Ljava/lang/String;
      Exception table:
        from    to  target  type
          24    34      34  Class java.lang.NumberFormatException

  void <init>(sun.security.ssl.SSLSocketImpl, sun.security.ssl.SSLContextImpl, sun.security.ssl.ProtocolList, byte, sun.security.ssl.ProtocolVersion, boolean, boolean, byte[], byte[]);
    descriptor: (Lsun/security/ssl/SSLSocketImpl;Lsun/security/ssl/SSLContextImpl;Lsun/security/ssl/ProtocolList;BLsun/security/ssl/ProtocolVersion;ZZ[B[B)V
    flags: (0x0000) 
    Code:
      stack=11, locals=10, args_size=10
        start local 0 // sun.security.ssl.ServerHandshaker 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 // byte clientAuth
        start local 5 // sun.security.ssl.ProtocolVersion activeProtocolVersion
        start local 6 // boolean isInitialHandshake
        start local 7 // boolean secureRenegotiation
        start local 8 // byte[] clientVerifyData
        start local 9 // byte[] serverVerifyData
         0: .line 168
            aload 0 /* this */
            aload 1 /* socket */
            aload 2 /* context */
            aload 3 /* enabledProtocols */
         1: .line 169
            iload 4 /* clientAuth */
            ifeq 2
            iconst_1
            goto 3
      StackMap locals: uninitialized-this sun.security.ssl.SSLSocketImpl sun.security.ssl.SSLContextImpl sun.security.ssl.ProtocolList int sun.security.ssl.ProtocolVersion int int byte[] byte[]
      StackMap stack: uninitialized-this sun.security.ssl.SSLSocketImpl sun.security.ssl.SSLContextImpl sun.security.ssl.ProtocolList
         2: iconst_0
      StackMap locals: uninitialized-this sun.security.ssl.SSLSocketImpl sun.security.ssl.SSLContextImpl sun.security.ssl.ProtocolList int sun.security.ssl.ProtocolVersion int int byte[] byte[]
      StackMap stack: uninitialized-this sun.security.ssl.SSLSocketImpl sun.security.ssl.SSLContextImpl sun.security.ssl.ProtocolList int
         3: iconst_0
         4: .line 170
            aload 5 /* activeProtocolVersion */
            iload 6 /* isInitialHandshake */
            iload 7 /* secureRenegotiation */
         5: .line 171
            aload 8 /* clientVerifyData */
            aload 9 /* 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
         6: .line 74
            aload 0 /* this */
            iconst_0
            putfield sun.security.ssl.ServerHandshaker.needClientVerify:Z
         7: .line 172
            aload 0 /* this */
            iload 4 /* clientAuth */
            putfield sun.security.ssl.ServerHandshaker.doClientAuth:B
         8: .line 173
            return
        end local 9 // byte[] serverVerifyData
        end local 8 // byte[] clientVerifyData
        end local 7 // boolean secureRenegotiation
        end local 6 // boolean isInitialHandshake
        end local 5 // sun.security.ssl.ProtocolVersion activeProtocolVersion
        end local 4 // byte clientAuth
        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.ServerHandshaker this
      LocalVariableTable:
        Start  End  Slot                   Name  Signature
            0    9     0                   this  Lsun/security/ssl/ServerHandshaker;
            0    9     1                 socket  Lsun/security/ssl/SSLSocketImpl;
            0    9     2                context  Lsun/security/ssl/SSLContextImpl;
            0    9     3       enabledProtocols  Lsun/security/ssl/ProtocolList;
            0    9     4             clientAuth  B
            0    9     5  activeProtocolVersion  Lsun/security/ssl/ProtocolVersion;
            0    9     6     isInitialHandshake  Z
            0    9     7    secureRenegotiation  Z
            0    9     8       clientVerifyData  [B
            0    9     9       serverVerifyData  [B
    MethodParameters:
                       Name  Flags
      socket                 
      context                
      enabledProtocols       
      clientAuth             
      activeProtocolVersion  
      isInitialHandshake     
      secureRenegotiation    
      clientVerifyData       
      serverVerifyData       

  void <init>(sun.security.ssl.SSLEngineImpl, sun.security.ssl.SSLContextImpl, sun.security.ssl.ProtocolList, byte, sun.security.ssl.ProtocolVersion, boolean, boolean, byte[], byte[]);
    descriptor: (Lsun/security/ssl/SSLEngineImpl;Lsun/security/ssl/SSLContextImpl;Lsun/security/ssl/ProtocolList;BLsun/security/ssl/ProtocolVersion;ZZ[B[B)V
    flags: (0x0000) 
    Code:
      stack=11, locals=10, args_size=10
        start local 0 // sun.security.ssl.ServerHandshaker 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 // byte clientAuth
        start local 5 // sun.security.ssl.ProtocolVersion activeProtocolVersion
        start local 6 // boolean isInitialHandshake
        start local 7 // boolean secureRenegotiation
        start local 8 // byte[] clientVerifyData
        start local 9 // byte[] serverVerifyData
         0: .line 184
            aload 0 /* this */
            aload 1 /* engine */
            aload 2 /* context */
            aload 3 /* enabledProtocols */
         1: .line 185
            iload 4 /* clientAuth */
            ifeq 2
            iconst_1
            goto 3
      StackMap locals: uninitialized-this sun.security.ssl.SSLEngineImpl sun.security.ssl.SSLContextImpl sun.security.ssl.ProtocolList int sun.security.ssl.ProtocolVersion int int byte[] byte[]
      StackMap stack: uninitialized-this sun.security.ssl.SSLEngineImpl sun.security.ssl.SSLContextImpl sun.security.ssl.ProtocolList
         2: iconst_0
      StackMap locals: uninitialized-this sun.security.ssl.SSLEngineImpl sun.security.ssl.SSLContextImpl sun.security.ssl.ProtocolList int sun.security.ssl.ProtocolVersion int int byte[] byte[]
      StackMap stack: uninitialized-this sun.security.ssl.SSLEngineImpl sun.security.ssl.SSLContextImpl sun.security.ssl.ProtocolList int
         3: iconst_0
         4: .line 186
            aload 5 /* activeProtocolVersion */
            iload 6 /* isInitialHandshake */
            iload 7 /* secureRenegotiation */
         5: .line 187
            aload 8 /* clientVerifyData */
            aload 9 /* serverVerifyData */
            invokespecial sun.security.ssl.Handshaker.<init>:(Lsun/security/ssl/SSLEngineImpl;Lsun/security/ssl/SSLContextImpl;Lsun/security/ssl/ProtocolList;ZZLsun/security/ssl/ProtocolVersion;ZZ[B[B)V
         6: .line 74
            aload 0 /* this */
            iconst_0
            putfield sun.security.ssl.ServerHandshaker.needClientVerify:Z
         7: .line 188
            aload 0 /* this */
            iload 4 /* clientAuth */
            putfield sun.security.ssl.ServerHandshaker.doClientAuth:B
         8: .line 189
            return
        end local 9 // byte[] serverVerifyData
        end local 8 // byte[] clientVerifyData
        end local 7 // boolean secureRenegotiation
        end local 6 // boolean isInitialHandshake
        end local 5 // sun.security.ssl.ProtocolVersion activeProtocolVersion
        end local 4 // byte clientAuth
        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.ServerHandshaker this
      LocalVariableTable:
        Start  End  Slot                   Name  Signature
            0    9     0                   this  Lsun/security/ssl/ServerHandshaker;
            0    9     1                 engine  Lsun/security/ssl/SSLEngineImpl;
            0    9     2                context  Lsun/security/ssl/SSLContextImpl;
            0    9     3       enabledProtocols  Lsun/security/ssl/ProtocolList;
            0    9     4             clientAuth  B
            0    9     5  activeProtocolVersion  Lsun/security/ssl/ProtocolVersion;
            0    9     6     isInitialHandshake  Z
            0    9     7    secureRenegotiation  Z
            0    9     8       clientVerifyData  [B
            0    9     9       serverVerifyData  [B
    MethodParameters:
                       Name  Flags
      engine                 
      context                
      enabledProtocols       
      clientAuth             
      activeProtocolVersion  
      isInitialHandshake     
      secureRenegotiation    
      clientVerifyData       
      serverVerifyData       

  void setClientAuth(byte);
    descriptor: (B)V
    flags: (0x0000) 
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // sun.security.ssl.ServerHandshaker this
        start local 1 // byte clientAuth
         0: .line 197
            aload 0 /* this */
            iload 1 /* clientAuth */
            putfield sun.security.ssl.ServerHandshaker.doClientAuth:B
         1: .line 198
            return
        end local 1 // byte clientAuth
        end local 0 // sun.security.ssl.ServerHandshaker this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    2     0        this  Lsun/security/ssl/ServerHandshaker;
            0    2     1  clientAuth  B
    MethodParameters:
            Name  Flags
      clientAuth  

  void processMessage(byte, int);
    descriptor: (BI)V
    flags: (0x0000) 
    Code:
      stack=8, locals=10, args_size=3
        start local 0 // sun.security.ssl.ServerHandshaker this
        start local 1 // byte type
        start local 2 // int message_len
         0: .line 213
            aload 0 /* this */
            getfield sun.security.ssl.ServerHandshaker.handshakeState:Lsun/security/ssl/HandshakeStateManager;
            iload 1 /* type */
            invokevirtual sun.security.ssl.HandshakeStateManager.check:(B)Ljava/util/List;
            pop
         1: .line 215
            iload 1 /* type */
            lookupswitch { // 5
                    1: 2
                   11: 6
                   15: 49
                   16: 14
                   20: 56
              default: 61
          }
         2: .line 217
      StackMap locals:
      StackMap stack:
            new sun.security.ssl.HandshakeMessage$ClientHello
            dup
            aload 0 /* this */
            getfield sun.security.ssl.ServerHandshaker.input:Lsun/security/ssl/HandshakeInStream;
            iload 2 /* message_len */
            invokespecial sun.security.ssl.HandshakeMessage$ClientHello.<init>:(Lsun/security/ssl/HandshakeInStream;I)V
            astore 3 /* ch */
        start local 3 // sun.security.ssl.HandshakeMessage$ClientHello ch
         3: .line 218
            aload 0 /* this */
            getfield sun.security.ssl.ServerHandshaker.handshakeState:Lsun/security/ssl/HandshakeStateManager;
            aload 3 /* ch */
            aload 0 /* this */
            getfield sun.security.ssl.ServerHandshaker.resumingSession:Z
            invokevirtual sun.security.ssl.HandshakeStateManager.update:(Lsun/security/ssl/HandshakeMessage;Z)V
         4: .line 222
            aload 0 /* this */
            aload 3 /* ch */
            invokevirtual sun.security.ssl.ServerHandshaker.clientHello:(Lsun/security/ssl/HandshakeMessage$ClientHello;)V
         5: .line 223
            goto 64
        end local 3 // sun.security.ssl.HandshakeMessage$ClientHello ch
         6: .line 226
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.ServerHandshaker.doClientAuth:B
            ifne 10
         7: .line 227
            aload 0 /* this */
            bipush 10
         8: .line 228
            ldc "client sent unsolicited cert chain"
         9: .line 227
            invokevirtual sun.security.ssl.ServerHandshaker.fatalSE:(BLjava/lang/String;)V
        10: .line 231
      StackMap locals:
      StackMap stack:
            new sun.security.ssl.HandshakeMessage$CertificateMsg
            dup
            aload 0 /* this */
            getfield sun.security.ssl.ServerHandshaker.input:Lsun/security/ssl/HandshakeInStream;
            invokespecial sun.security.ssl.HandshakeMessage$CertificateMsg.<init>:(Lsun/security/ssl/HandshakeInStream;)V
            astore 4 /* certificateMsg */
        start local 4 // sun.security.ssl.HandshakeMessage$CertificateMsg certificateMsg
        11: .line 232
            aload 0 /* this */
            getfield sun.security.ssl.ServerHandshaker.handshakeState:Lsun/security/ssl/HandshakeStateManager;
            aload 4 /* certificateMsg */
            aload 0 /* this */
            getfield sun.security.ssl.ServerHandshaker.resumingSession:Z
            invokevirtual sun.security.ssl.HandshakeStateManager.update:(Lsun/security/ssl/HandshakeMessage;Z)V
        12: .line 233
            aload 0 /* this */
            aload 4 /* certificateMsg */
            invokevirtual sun.security.ssl.ServerHandshaker.clientCertificate:(Lsun/security/ssl/HandshakeMessage$CertificateMsg;)V
        13: .line 234
            goto 64
        end local 4 // sun.security.ssl.HandshakeMessage$CertificateMsg certificateMsg
        14: .line 238
      StackMap locals:
      StackMap stack:
            invokestatic sun.security.ssl.ServerHandshaker.$SWITCH_TABLE$sun$security$ssl$CipherSuite$KeyExchange:()[I
            aload 0 /* this */
            getfield sun.security.ssl.ServerHandshaker.keyExchange:Lsun/security/ssl/CipherSuite$KeyExchange;
            invokevirtual sun.security.ssl.CipherSuite$KeyExchange.ordinal:()I
            iaload
            tableswitch { // 2 - 15
                    2: 15
                    3: 15
                    4: 42
                    5: 42
                    6: 33
                    7: 33
                    8: 33
                    9: 37
                   10: 37
                   11: 37
                   12: 37
                   13: 37
                   14: 23
                   15: 23
              default: 42
          }
        15: .line 247
      StackMap locals:
      StackMap stack:
            new sun.security.ssl.RSAClientKeyExchange
            dup
        16: .line 248
            aload 0 /* this */
            getfield sun.security.ssl.ServerHandshaker.protocolVersion:Lsun/security/ssl/ProtocolVersion;
            aload 0 /* this */
            getfield sun.security.ssl.ServerHandshaker.clientRequestedVersion:Lsun/security/ssl/ProtocolVersion;
        17: .line 249
            aload 0 /* this */
            getfield sun.security.ssl.ServerHandshaker.sslContext:Lsun/security/ssl/SSLContextImpl;
            invokevirtual sun.security.ssl.SSLContextImpl.getSecureRandom:()Ljava/security/SecureRandom;
            aload 0 /* this */
            getfield sun.security.ssl.ServerHandshaker.input:Lsun/security/ssl/HandshakeInStream;
        18: .line 250
            iload 2 /* message_len */
            aload 0 /* this */
            getfield sun.security.ssl.ServerHandshaker.privateKey:Ljava/security/PrivateKey;
        19: .line 247
            invokespecial sun.security.ssl.RSAClientKeyExchange.<init>:(Lsun/security/ssl/ProtocolVersion;Lsun/security/ssl/ProtocolVersion;Ljava/security/SecureRandom;Lsun/security/ssl/HandshakeInStream;ILjava/security/PrivateKey;)V
            astore 6 /* pms */
        start local 6 // sun.security.ssl.RSAClientKeyExchange pms
        20: .line 251
            aload 0 /* this */
            getfield sun.security.ssl.ServerHandshaker.handshakeState:Lsun/security/ssl/HandshakeStateManager;
            aload 6 /* pms */
            aload 0 /* this */
            getfield sun.security.ssl.ServerHandshaker.resumingSession:Z
            invokevirtual sun.security.ssl.HandshakeStateManager.update:(Lsun/security/ssl/HandshakeMessage;Z)V
        21: .line 252
            aload 0 /* this */
            aload 6 /* pms */
            invokevirtual sun.security.ssl.ServerHandshaker.clientKeyExchange:(Lsun/security/ssl/RSAClientKeyExchange;)Ljavax/crypto/SecretKey;
            astore 5 /* preMasterSecret */
        start local 5 // javax.crypto.SecretKey preMasterSecret
        22: .line 253
            goto 45
        end local 6 // sun.security.ssl.RSAClientKeyExchange pms
        end local 5 // javax.crypto.SecretKey preMasterSecret
        23: .line 257
      StackMap locals:
      StackMap stack:
            new sun.security.ssl.KerberosClientKeyExchange
            dup
            aload 0 /* this */
            getfield sun.security.ssl.ServerHandshaker.protocolVersion:Lsun/security/ssl/ProtocolVersion;
        24: .line 258
            aload 0 /* this */
            getfield sun.security.ssl.ServerHandshaker.clientRequestedVersion:Lsun/security/ssl/ProtocolVersion;
        25: .line 259
            aload 0 /* this */
            getfield sun.security.ssl.ServerHandshaker.sslContext:Lsun/security/ssl/SSLContextImpl;
            invokevirtual sun.security.ssl.SSLContextImpl.getSecureRandom:()Ljava/security/SecureRandom;
        26: .line 260
            aload 0 /* this */
            getfield sun.security.ssl.ServerHandshaker.input:Lsun/security/ssl/HandshakeInStream;
        27: .line 261
            aload 0 /* this */
            getfield sun.security.ssl.ServerHandshaker.kerberosKeys:[Ljavax/crypto/SecretKey;
        28: .line 257
            invokespecial sun.security.ssl.KerberosClientKeyExchange.<init>:(Lsun/security/ssl/ProtocolVersion;Lsun/security/ssl/ProtocolVersion;Ljava/security/SecureRandom;Lsun/security/ssl/HandshakeInStream;[Ljavax/crypto/SecretKey;)V
        29: .line 256
            astore 7 /* kke */
        start local 7 // sun.security.ssl.KerberosClientKeyExchange kke
        30: .line 262
            aload 0 /* this */
            getfield sun.security.ssl.ServerHandshaker.handshakeState:Lsun/security/ssl/HandshakeStateManager;
            aload 7 /* kke */
            aload 0 /* this */
            getfield sun.security.ssl.ServerHandshaker.resumingSession:Z
            invokevirtual sun.security.ssl.HandshakeStateManager.update:(Lsun/security/ssl/HandshakeMessage;Z)V
        31: .line 263
            aload 0 /* this */
            aload 7 /* kke */
            invokevirtual sun.security.ssl.ServerHandshaker.clientKeyExchange:(Lsun/security/ssl/KerberosClientKeyExchange;)Ljavax/crypto/SecretKey;
            astore 5 /* preMasterSecret */
        start local 5 // javax.crypto.SecretKey preMasterSecret
        32: .line 264
            goto 45
        end local 7 // sun.security.ssl.KerberosClientKeyExchange kke
        end local 5 // javax.crypto.SecretKey preMasterSecret
        33: .line 274
      StackMap locals:
      StackMap stack:
            new sun.security.ssl.DHClientKeyExchange
            dup
            aload 0 /* this */
            getfield sun.security.ssl.ServerHandshaker.input:Lsun/security/ssl/HandshakeInStream;
            invokespecial sun.security.ssl.DHClientKeyExchange.<init>:(Lsun/security/ssl/HandshakeInStream;)V
            astore 8 /* dhcke */
        start local 8 // sun.security.ssl.DHClientKeyExchange dhcke
        34: .line 275
            aload 0 /* this */
            getfield sun.security.ssl.ServerHandshaker.handshakeState:Lsun/security/ssl/HandshakeStateManager;
            aload 8 /* dhcke */
            aload 0 /* this */
            getfield sun.security.ssl.ServerHandshaker.resumingSession:Z
            invokevirtual sun.security.ssl.HandshakeStateManager.update:(Lsun/security/ssl/HandshakeMessage;Z)V
        35: .line 276
            aload 0 /* this */
            aload 8 /* dhcke */
            invokevirtual sun.security.ssl.ServerHandshaker.clientKeyExchange:(Lsun/security/ssl/DHClientKeyExchange;)Ljavax/crypto/SecretKey;
            astore 5 /* preMasterSecret */
        start local 5 // javax.crypto.SecretKey preMasterSecret
        36: .line 277
            goto 45
        end local 8 // sun.security.ssl.DHClientKeyExchange dhcke
        end local 5 // javax.crypto.SecretKey preMasterSecret
        37: .line 284
      StackMap locals:
      StackMap stack:
            new sun.security.ssl.ECDHClientKeyExchange
            dup
            aload 0 /* this */
            getfield sun.security.ssl.ServerHandshaker.input:Lsun/security/ssl/HandshakeInStream;
            invokespecial sun.security.ssl.ECDHClientKeyExchange.<init>:(Lsun/security/ssl/HandshakeInStream;)V
        38: .line 283
            astore 9 /* ecdhcke */
        start local 9 // sun.security.ssl.ECDHClientKeyExchange ecdhcke
        39: .line 285
            aload 0 /* this */
            getfield sun.security.ssl.ServerHandshaker.handshakeState:Lsun/security/ssl/HandshakeStateManager;
            aload 9 /* ecdhcke */
            aload 0 /* this */
            getfield sun.security.ssl.ServerHandshaker.resumingSession:Z
            invokevirtual sun.security.ssl.HandshakeStateManager.update:(Lsun/security/ssl/HandshakeMessage;Z)V
        40: .line 286
            aload 0 /* this */
            aload 9 /* ecdhcke */
            invokevirtual sun.security.ssl.ServerHandshaker.clientKeyExchange:(Lsun/security/ssl/ECDHClientKeyExchange;)Ljavax/crypto/SecretKey;
            astore 5 /* preMasterSecret */
        start local 5 // javax.crypto.SecretKey preMasterSecret
        41: .line 287
            goto 45
        end local 9 // sun.security.ssl.ECDHClientKeyExchange ecdhcke
        end local 5 // javax.crypto.SecretKey preMasterSecret
        42: .line 289
      StackMap locals:
      StackMap stack:
            new javax.net.ssl.SSLProtocolException
            dup
        43: .line 290
            new java.lang.StringBuilder
            dup
            ldc "Unrecognized key exchange: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* this */
            getfield sun.security.ssl.ServerHandshaker.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;
        44: .line 289
            invokespecial javax.net.ssl.SSLProtocolException.<init>:(Ljava/lang/String;)V
            athrow
        start local 5 // javax.crypto.SecretKey preMasterSecret
        45: .line 294
      StackMap locals: sun.security.ssl.ServerHandshaker int int top top javax.crypto.SecretKey
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.ServerHandshaker.session:Lsun/security/ssl/SSLSessionImpl;
            invokevirtual sun.security.ssl.SSLSessionImpl.getUseExtendedMasterSecret:()Z
            ifeq 47
        46: .line 295
            aload 0 /* this */
            getfield sun.security.ssl.ServerHandshaker.input:Lsun/security/ssl/HandshakeInStream;
            invokevirtual sun.security.ssl.HandshakeInStream.digestNow:()V
        47: .line 302
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 5 /* preMasterSecret */
            aload 0 /* this */
            getfield sun.security.ssl.ServerHandshaker.clientRequestedVersion:Lsun/security/ssl/ProtocolVersion;
            invokevirtual sun.security.ssl.ServerHandshaker.calculateKeys:(Ljavax/crypto/SecretKey;Lsun/security/ssl/ProtocolVersion;)V
        48: .line 303
            goto 64
        end local 5 // javax.crypto.SecretKey preMasterSecret
        49: .line 307
      StackMap locals: sun.security.ssl.ServerHandshaker int int
      StackMap stack:
            new sun.security.ssl.HandshakeMessage$CertificateVerify
            dup
            aload 0 /* this */
            getfield sun.security.ssl.ServerHandshaker.input:Lsun/security/ssl/HandshakeInStream;
        50: .line 308
            aload 0 /* this */
            invokevirtual sun.security.ssl.ServerHandshaker.getLocalSupportedSignAlgs:()Ljava/util/Collection;
            aload 0 /* this */
            getfield sun.security.ssl.ServerHandshaker.protocolVersion:Lsun/security/ssl/ProtocolVersion;
        51: .line 307
            invokespecial sun.security.ssl.HandshakeMessage$CertificateVerify.<init>:(Lsun/security/ssl/HandshakeInStream;Ljava/util/Collection;Lsun/security/ssl/ProtocolVersion;)V
        52: .line 306
            astore 6 /* cvm */
        start local 6 // sun.security.ssl.HandshakeMessage$CertificateVerify cvm
        53: .line 309
            aload 0 /* this */
            getfield sun.security.ssl.ServerHandshaker.handshakeState:Lsun/security/ssl/HandshakeStateManager;
            aload 6 /* cvm */
            aload 0 /* this */
            getfield sun.security.ssl.ServerHandshaker.resumingSession:Z
            invokevirtual sun.security.ssl.HandshakeStateManager.update:(Lsun/security/ssl/HandshakeMessage;Z)V
        54: .line 310
            aload 0 /* this */
            aload 6 /* cvm */
            invokevirtual sun.security.ssl.ServerHandshaker.clientCertificateVerify:(Lsun/security/ssl/HandshakeMessage$CertificateVerify;)V
        55: .line 311
            goto 64
        end local 6 // sun.security.ssl.HandshakeMessage$CertificateVerify cvm
        56: .line 315
      StackMap locals:
      StackMap stack:
            new sun.security.ssl.HandshakeMessage$Finished
            dup
            aload 0 /* this */
            getfield sun.security.ssl.ServerHandshaker.protocolVersion:Lsun/security/ssl/ProtocolVersion;
            aload 0 /* this */
            getfield sun.security.ssl.ServerHandshaker.input:Lsun/security/ssl/HandshakeInStream;
            aload 0 /* this */
            getfield sun.security.ssl.ServerHandshaker.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
        57: .line 314
            astore 7 /* cfm */
        start local 7 // sun.security.ssl.HandshakeMessage$Finished cfm
        58: .line 316
            aload 0 /* this */
            getfield sun.security.ssl.ServerHandshaker.handshakeState:Lsun/security/ssl/HandshakeStateManager;
            aload 7 /* cfm */
            aload 0 /* this */
            getfield sun.security.ssl.ServerHandshaker.resumingSession:Z
            invokevirtual sun.security.ssl.HandshakeStateManager.update:(Lsun/security/ssl/HandshakeMessage;Z)V
        59: .line 317
            aload 0 /* this */
            aload 7 /* cfm */
            invokevirtual sun.security.ssl.ServerHandshaker.clientFinished:(Lsun/security/ssl/HandshakeMessage$Finished;)V
        60: .line 318
            goto 64
        end local 7 // sun.security.ssl.HandshakeMessage$Finished cfm
        61: .line 321
      StackMap locals:
      StackMap stack:
            new javax.net.ssl.SSLProtocolException
            dup
        62: .line 322
            new java.lang.StringBuilder
            dup
            ldc "Illegal server 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;
        63: .line 321
            invokespecial javax.net.ssl.SSLProtocolException.<init>:(Ljava/lang/String;)V
            athrow
        64: .line 324
      StackMap locals:
      StackMap stack:
            return
        end local 2 // int message_len
        end local 1 // byte type
        end local 0 // sun.security.ssl.ServerHandshaker this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0   65     0             this  Lsun/security/ssl/ServerHandshaker;
            0   65     1             type  B
            0   65     2      message_len  I
            3    6     3               ch  Lsun/security/ssl/HandshakeMessage$ClientHello;
           11   14     4   certificateMsg  Lsun/security/ssl/HandshakeMessage$CertificateMsg;
           22   23     5  preMasterSecret  Ljavax/crypto/SecretKey;
           32   33     5  preMasterSecret  Ljavax/crypto/SecretKey;
           36   37     5  preMasterSecret  Ljavax/crypto/SecretKey;
           41   42     5  preMasterSecret  Ljavax/crypto/SecretKey;
           45   49     5  preMasterSecret  Ljavax/crypto/SecretKey;
           20   23     6              pms  Lsun/security/ssl/RSAClientKeyExchange;
           30   33     7              kke  Lsun/security/ssl/KerberosClientKeyExchange;
           34   37     8            dhcke  Lsun/security/ssl/DHClientKeyExchange;
           39   42     9          ecdhcke  Lsun/security/ssl/ECDHClientKeyExchange;
           53   56     6              cvm  Lsun/security/ssl/HandshakeMessage$CertificateVerify;
           58   61     7              cfm  Lsun/security/ssl/HandshakeMessage$Finished;
    Exceptions:
      throws java.io.IOException
    MethodParameters:
             Name  Flags
      type         
      message_len  

  private void clientHello(sun.security.ssl.HandshakeMessage$ClientHello);
    descriptor: (Lsun/security/ssl/HandshakeMessage$ClientHello;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=11, locals=12, args_size=2
        start local 0 // sun.security.ssl.ServerHandshaker this
        start local 1 // sun.security.ssl.HandshakeMessage$ClientHello mesg
         0: .line 338
            getstatic sun.security.ssl.ServerHandshaker.debug:Lsun/security/ssl/Debug;
            ifnull 2
            ldc "handshake"
            invokestatic sun.security.ssl.Debug.isOn:(Ljava/lang/String;)Z
            ifeq 2
         1: .line 339
            aload 1 /* mesg */
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            invokevirtual sun.security.ssl.HandshakeMessage$ClientHello.print:(Ljava/io/PrintStream;)V
         2: .line 343
      StackMap locals:
      StackMap stack:
            iconst_0
            istore 2 /* renegotiationIndicated */
        start local 2 // boolean renegotiationIndicated
         3: .line 346
            aload 1 /* mesg */
            invokevirtual sun.security.ssl.HandshakeMessage$ClientHello.getCipherSuites:()Lsun/security/ssl/CipherSuiteList;
            astore 3 /* cipherSuites */
        start local 3 // sun.security.ssl.CipherSuiteList cipherSuites
         4: .line 347
            aload 3 /* cipherSuites */
            getstatic sun.security.ssl.CipherSuite.C_SCSV:Lsun/security/ssl/CipherSuite;
            invokevirtual sun.security.ssl.CipherSuiteList.contains:(Lsun/security/ssl/CipherSuite;)Z
            ifeq 17
         5: .line 348
            iconst_1
            istore 2 /* renegotiationIndicated */
         6: .line 349
            aload 0 /* this */
            getfield sun.security.ssl.ServerHandshaker.isInitialHandshake:Z
            ifeq 9
         7: .line 350
            aload 0 /* this */
            iconst_1
            putfield sun.security.ssl.ServerHandshaker.secureRenegotiation:Z
         8: .line 351
            goto 17
         9: .line 353
      StackMap locals: int sun.security.ssl.CipherSuiteList
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.ServerHandshaker.secureRenegotiation:Z
            ifeq 14
        10: .line 354
            aload 0 /* this */
            bipush 40
        11: .line 355
            ldc "The SCSV is present in a secure renegotiation"
        12: .line 354
            invokevirtual sun.security.ssl.ServerHandshaker.fatalSE:(BLjava/lang/String;)V
        13: .line 356
            goto 17
        14: .line 357
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            bipush 40
        15: .line 358
            ldc "The SCSV is present in a insecure renegotiation"
        16: .line 357
            invokevirtual sun.security.ssl.ServerHandshaker.fatalSE:(BLjava/lang/String;)V
        17: .line 365
      StackMap locals:
      StackMap stack:
            aload 1 /* mesg */
            getfield sun.security.ssl.HandshakeMessage$ClientHello.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;
        18: .line 364
            checkcast sun.security.ssl.RenegotiationInfoExtension
            astore 4 /* clientHelloRI */
        start local 4 // sun.security.ssl.RenegotiationInfoExtension clientHelloRI
        19: .line 366
            aload 4 /* clientHelloRI */
            ifnull 40
        20: .line 367
            iconst_1
            istore 2 /* renegotiationIndicated */
        21: .line 368
            aload 0 /* this */
            getfield sun.security.ssl.ServerHandshaker.isInitialHandshake:Z
            ifeq 28
        22: .line 370
            aload 4 /* clientHelloRI */
            invokevirtual sun.security.ssl.RenegotiationInfoExtension.isEmpty:()Z
            ifne 26
        23: .line 372
            aload 0 /* this */
            bipush 40
        24: .line 373
            ldc "The renegotiation_info field is not empty"
        25: .line 372
            invokevirtual sun.security.ssl.ServerHandshaker.fatalSE:(BLjava/lang/String;)V
        26: .line 376
      StackMap locals: sun.security.ssl.RenegotiationInfoExtension
      StackMap stack:
            aload 0 /* this */
            iconst_1
            putfield sun.security.ssl.ServerHandshaker.secureRenegotiation:Z
        27: .line 377
            goto 44
        28: .line 378
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.ServerHandshaker.secureRenegotiation:Z
            ifne 32
        29: .line 381
            aload 0 /* this */
            bipush 40
        30: .line 382
            ldc "The renegotiation_info is present in a insecure renegotiation"
        31: .line 381
            invokevirtual sun.security.ssl.ServerHandshaker.fatalSE:(BLjava/lang/String;)V
        32: .line 387
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.ServerHandshaker.clientVerifyData:[B
        33: .line 388
            aload 4 /* clientHelloRI */
            invokevirtual sun.security.ssl.RenegotiationInfoExtension.getRenegotiatedConnection:()[B
        34: .line 387
            invokestatic java.security.MessageDigest.isEqual:([B[B)Z
        35: .line 388
            ifne 44
        36: .line 389
            aload 0 /* this */
            bipush 40
        37: .line 390
            ldc "Incorrect verify data in ClientHello renegotiation_info message"
        38: .line 389
            invokevirtual sun.security.ssl.ServerHandshaker.fatalSE:(BLjava/lang/String;)V
        39: .line 394
            goto 44
      StackMap locals:
      StackMap stack:
        40: aload 0 /* this */
            getfield sun.security.ssl.ServerHandshaker.isInitialHandshake:Z
            ifne 44
            aload 0 /* this */
            getfield sun.security.ssl.ServerHandshaker.secureRenegotiation:Z
            ifeq 44
        41: .line 398
            aload 0 /* this */
            bipush 40
        42: .line 399
            ldc "Inconsistent secure renegotiation indication"
        43: .line 398
            invokevirtual sun.security.ssl.ServerHandshaker.fatalSE:(BLjava/lang/String;)V
        44: .line 404
      StackMap locals:
      StackMap stack:
            iload 2 /* renegotiationIndicated */
            ifeq 45
            aload 0 /* this */
            getfield sun.security.ssl.ServerHandshaker.secureRenegotiation:Z
            ifne 70
        45: .line 405
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.ServerHandshaker.isInitialHandshake:Z
            ifeq 53
        46: .line 406
            getstatic sun.security.ssl.ServerHandshaker.allowLegacyHelloMessages:Z
            ifne 50
        47: .line 408
            aload 0 /* this */
            bipush 40
        48: .line 409
            ldc "Failed to negotiate the use of secure renegotiation"
        49: .line 408
            invokevirtual sun.security.ssl.ServerHandshaker.fatalSE:(BLjava/lang/String;)V
        50: .line 413
      StackMap locals:
      StackMap stack:
            getstatic sun.security.ssl.ServerHandshaker.debug:Lsun/security/ssl/Debug;
            ifnull 70
            ldc "handshake"
            invokestatic sun.security.ssl.Debug.isOn:(Ljava/lang/String;)Z
            ifeq 70
        51: .line 414
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            ldc "Warning: No renegotiation indication in ClientHello, allow legacy ClientHello"
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
        52: .line 417
            goto 70
      StackMap locals:
      StackMap stack:
        53: getstatic sun.security.ssl.ServerHandshaker.allowUnsafeRenegotiation:Z
            ifne 66
        54: .line 419
            aload 0 /* this */
            getfield sun.security.ssl.ServerHandshaker.activeProtocolVersion:Lsun/security/ssl/ProtocolVersion;
            getfield sun.security.ssl.ProtocolVersion.v:I
            getstatic sun.security.ssl.ProtocolVersion.TLS10:Lsun/security/ssl/ProtocolVersion;
            getfield sun.security.ssl.ProtocolVersion.v:I
            if_icmplt 62
        55: .line 421
            aload 0 /* this */
            bipush 100
            invokevirtual sun.security.ssl.ServerHandshaker.warningSE:(B)V
        56: .line 425
            aload 0 /* this */
            iconst_1
            putfield sun.security.ssl.ServerHandshaker.invalidated:Z
        57: .line 436
            aload 0 /* this */
            getfield sun.security.ssl.ServerHandshaker.input:Lsun/security/ssl/HandshakeInStream;
            invokevirtual sun.security.ssl.HandshakeInStream.available:()I
            ifle 61
        58: .line 437
            aload 0 /* this */
            bipush 10
        59: .line 438
            ldc "ClientHello followed by an unexpected  handshake message"
        60: .line 437
            invokevirtual sun.security.ssl.ServerHandshaker.fatalSE:(BLjava/lang/String;)V
        61: .line 442
      StackMap locals:
      StackMap stack:
            return
        62: .line 449
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            bipush 40
        63: .line 450
            ldc "Renegotiation is not allowed"
        64: .line 449
            invokevirtual sun.security.ssl.ServerHandshaker.fatalSE:(BLjava/lang/String;)V
        65: .line 452
            goto 70
        66: .line 454
      StackMap locals:
      StackMap stack:
            getstatic sun.security.ssl.ServerHandshaker.debug:Lsun/security/ssl/Debug;
            ifnull 70
            ldc "handshake"
            invokestatic sun.security.ssl.Debug.isOn:(Ljava/lang/String;)Z
            ifeq 70
        67: .line 455
            getstatic java.lang.System.out:Ljava/io/PrintStream;
        68: .line 456
            ldc "Warning: continue with insecure renegotiation"
        69: .line 455
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
        70: .line 462
      StackMap locals:
      StackMap stack:
            getstatic sun.security.ssl.ServerHandshaker.useExtendedMasterSecret:Z
            ifeq 83
        71: .line 464
            aload 1 /* mesg */
            getfield sun.security.ssl.HandshakeMessage$ClientHello.extensions:Lsun/security/ssl/HelloExtensions;
        72: .line 465
            getstatic sun.security.ssl.ExtensionType.EXT_EXTENDED_MASTER_SECRET:Lsun/security/ssl/ExtensionType;
        73: .line 464
            invokevirtual sun.security.ssl.HelloExtensions.get:(Lsun/security/ssl/ExtensionType;)Lsun/security/ssl/HelloExtension;
            checkcast sun.security.ssl.ExtendedMasterSecretExtension
        74: .line 463
            astore 5 /* extendedMasterSecretExtension */
        start local 5 // sun.security.ssl.ExtendedMasterSecretExtension extendedMasterSecretExtension
        75: .line 466
            aload 5 /* extendedMasterSecretExtension */
            ifnull 78
        76: .line 467
            aload 0 /* this */
            iconst_1
            putfield sun.security.ssl.ServerHandshaker.requestedToUseEMS:Z
        77: .line 468
            goto 83
      StackMap locals: sun.security.ssl.ExtendedMasterSecretExtension
      StackMap stack:
        78: aload 1 /* mesg */
            getfield sun.security.ssl.HandshakeMessage$ClientHello.protocolVersion:Lsun/security/ssl/ProtocolVersion;
            getfield sun.security.ssl.ProtocolVersion.v:I
            getstatic sun.security.ssl.ProtocolVersion.TLS10:Lsun/security/ssl/ProtocolVersion;
            getfield sun.security.ssl.ProtocolVersion.v:I
            if_icmplt 83
        79: .line 469
            getstatic sun.security.ssl.ServerHandshaker.allowLegacyMasterSecret:Z
            ifne 83
        80: .line 476
            aload 0 /* this */
            bipush 40
        81: .line 477
            ldc "Extended Master Secret extension is required"
        82: .line 476
            invokevirtual sun.security.ssl.ServerHandshaker.fatalSE:(BLjava/lang/String;)V
        end local 5 // sun.security.ssl.ExtendedMasterSecretExtension extendedMasterSecretExtension
        83: .line 486
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.ServerHandshaker.input:Lsun/security/ssl/HandshakeInStream;
            invokevirtual sun.security.ssl.HandshakeInStream.digestNow:()V
        84: .line 497
            new sun.security.ssl.HandshakeMessage$ServerHello
            dup
            invokespecial sun.security.ssl.HandshakeMessage$ServerHello.<init>:()V
            astore 5 /* m1 */
        start local 5 // sun.security.ssl.HandshakeMessage$ServerHello m1
        85: .line 499
            aload 0 /* this */
            aload 1 /* mesg */
            getfield sun.security.ssl.HandshakeMessage$ClientHello.protocolVersion:Lsun/security/ssl/ProtocolVersion;
            putfield sun.security.ssl.ServerHandshaker.clientRequestedVersion:Lsun/security/ssl/ProtocolVersion;
        86: .line 503
            aload 0 /* this */
            aload 0 /* this */
            getfield sun.security.ssl.ServerHandshaker.clientRequestedVersion:Lsun/security/ssl/ProtocolVersion;
            invokevirtual sun.security.ssl.ServerHandshaker.selectProtocolVersion:(Lsun/security/ssl/ProtocolVersion;)Lsun/security/ssl/ProtocolVersion;
        87: .line 502
            astore 6 /* selectedVersion */
        start local 6 // sun.security.ssl.ProtocolVersion selectedVersion
        88: .line 504
            aload 6 /* selectedVersion */
            ifnull 90
        89: .line 505
            aload 6 /* selectedVersion */
            getfield sun.security.ssl.ProtocolVersion.v:I
            getstatic sun.security.ssl.ProtocolVersion.SSL20Hello:Lsun/security/ssl/ProtocolVersion;
            getfield sun.security.ssl.ProtocolVersion.v:I
            if_icmpne 95
        90: .line 506
      StackMap locals: sun.security.ssl.HandshakeMessage$ServerHello sun.security.ssl.ProtocolVersion
      StackMap stack:
            aload 0 /* this */
            bipush 40
        91: .line 507
            new java.lang.StringBuilder
            dup
            ldc "Client requested protocol "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* this */
            getfield sun.security.ssl.ServerHandshaker.clientRequestedVersion:Lsun/security/ssl/ProtocolVersion;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
        92: .line 508
            ldc " not enabled or not supported"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        93: .line 507
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        94: .line 506
            invokevirtual sun.security.ssl.ServerHandshaker.fatalSE:(BLjava/lang/String;)V
        95: .line 511
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.ServerHandshaker.handshakeHash:Lsun/security/ssl/HandshakeHash;
            aload 6 /* selectedVersion */
            invokevirtual sun.security.ssl.HandshakeHash.protocolDetermined:(Lsun/security/ssl/ProtocolVersion;)V
        96: .line 512
            aload 0 /* this */
            aload 6 /* selectedVersion */
            invokevirtual sun.security.ssl.ServerHandshaker.setVersion:(Lsun/security/ssl/ProtocolVersion;)V
        97: .line 514
            aload 5 /* m1 */
            aload 0 /* this */
            getfield sun.security.ssl.ServerHandshaker.protocolVersion:Lsun/security/ssl/ProtocolVersion;
            putfield sun.security.ssl.HandshakeMessage$ServerHello.protocolVersion:Lsun/security/ssl/ProtocolVersion;
        98: .line 527
            aload 0 /* this */
            aload 1 /* mesg */
            getfield sun.security.ssl.HandshakeMessage$ClientHello.clnt_random:Lsun/security/ssl/RandomCookie;
            putfield sun.security.ssl.ServerHandshaker.clnt_random:Lsun/security/ssl/RandomCookie;
        99: .line 528
            aload 0 /* this */
            new sun.security.ssl.RandomCookie
            dup
            aload 0 /* this */
            getfield sun.security.ssl.ServerHandshaker.sslContext:Lsun/security/ssl/SSLContextImpl;
            invokevirtual sun.security.ssl.SSLContextImpl.getSecureRandom:()Ljava/security/SecureRandom;
            invokespecial sun.security.ssl.RandomCookie.<init>:(Ljava/security/SecureRandom;)V
            putfield sun.security.ssl.ServerHandshaker.svr_random:Lsun/security/ssl/RandomCookie;
       100: .line 529
            aload 5 /* m1 */
            aload 0 /* this */
            getfield sun.security.ssl.ServerHandshaker.svr_random:Lsun/security/ssl/RandomCookie;
            putfield sun.security.ssl.HandshakeMessage$ServerHello.svr_random:Lsun/security/ssl/RandomCookie;
       101: .line 531
            aload 0 /* this */
            aconst_null
            putfield sun.security.ssl.ServerHandshaker.session:Lsun/security/ssl/SSLSessionImpl;
       102: .line 537
            aload 1 /* mesg */
            getfield sun.security.ssl.HandshakeMessage$ClientHello.sessionId:Lsun/security/ssl/SessionId;
            invokevirtual sun.security.ssl.SessionId.length:()I
            ifeq 189
       103: .line 540
            aload 0 /* this */
            getfield sun.security.ssl.ServerHandshaker.sslContext:Lsun/security/ssl/SSLContextImpl;
       104: .line 541
            invokevirtual sun.security.ssl.SSLContextImpl.engineGetServerSessionContext:()Ljavax/net/ssl/SSLSessionContext;
       105: .line 540
            checkcast sun.security.ssl.SSLSessionContextImpl
       106: .line 542
            aload 1 /* mesg */
            getfield sun.security.ssl.HandshakeMessage$ClientHello.sessionId:Lsun/security/ssl/SessionId;
            invokevirtual sun.security.ssl.SessionId.getId:()[B
            invokevirtual sun.security.ssl.SSLSessionContextImpl.get:([B)Lsun/security/ssl/SSLSessionImpl;
       107: .line 540
            astore 7 /* previous */
        start local 7 // sun.security.ssl.SSLSessionImpl previous
       108: .line 550
            aload 7 /* previous */
            ifnull 189
       109: .line 551
            aload 0 /* this */
            aload 7 /* previous */
            invokevirtual sun.security.ssl.SSLSessionImpl.isRejoinable:()Z
            putfield sun.security.ssl.ServerHandshaker.resumingSession:Z
       110: .line 553
            aload 0 /* this */
            getfield sun.security.ssl.ServerHandshaker.resumingSession:Z
            ifeq 114
       111: .line 554
            aload 7 /* previous */
            invokevirtual sun.security.ssl.SSLSessionImpl.getProtocolVersion:()Lsun/security/ssl/ProtocolVersion;
            astore 8 /* oldVersion */
        start local 8 // sun.security.ssl.ProtocolVersion oldVersion
       112: .line 556
            aload 8 /* oldVersion */
            aload 1 /* mesg */
            getfield sun.security.ssl.HandshakeMessage$ClientHello.protocolVersion:Lsun/security/ssl/ProtocolVersion;
            if_acmpeq 114
       113: .line 557
            aload 0 /* this */
            iconst_0
            putfield sun.security.ssl.ServerHandshaker.resumingSession:Z
        end local 8 // sun.security.ssl.ProtocolVersion oldVersion
       114: .line 561
      StackMap locals: sun.security.ssl.SSLSessionImpl
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.ServerHandshaker.resumingSession:Z
            ifeq 133
            getstatic sun.security.ssl.ServerHandshaker.useExtendedMasterSecret:Z
            ifeq 133
       115: .line 562
            aload 0 /* this */
            getfield sun.security.ssl.ServerHandshaker.requestedToUseEMS:Z
            ifeq 119
       116: .line 563
            aload 7 /* previous */
            invokevirtual sun.security.ssl.SSLSessionImpl.getUseExtendedMasterSecret:()Z
            ifne 119
       117: .line 570
            aload 0 /* this */
            iconst_0
            putfield sun.security.ssl.ServerHandshaker.resumingSession:Z
       118: .line 571
            goto 133
      StackMap locals:
      StackMap stack:
       119: aload 0 /* this */
            getfield sun.security.ssl.ServerHandshaker.requestedToUseEMS:Z
            ifne 125
       120: .line 572
            aload 7 /* previous */
            invokevirtual sun.security.ssl.SSLSessionImpl.getUseExtendedMasterSecret:()Z
            ifeq 125
       121: .line 577
            aload 0 /* this */
            bipush 40
       122: .line 578
            ldc "Missing Extended Master Secret extension on session resumption"
       123: .line 577
            invokevirtual sun.security.ssl.ServerHandshaker.fatalSE:(BLjava/lang/String;)V
       124: .line 580
            goto 133
      StackMap locals:
      StackMap stack:
       125: aload 0 /* this */
            getfield sun.security.ssl.ServerHandshaker.requestedToUseEMS:Z
            ifne 133
       126: .line 581
            aload 7 /* previous */
            invokevirtual sun.security.ssl.SSLSessionImpl.getUseExtendedMasterSecret:()Z
            ifne 133
       127: .line 585
            getstatic sun.security.ssl.ServerHandshaker.allowLegacyResumption:Z
            ifne 132
       128: .line 586
            aload 0 /* this */
            bipush 40
       129: .line 587
            ldc "Missing Extended Master Secret extension on session resumption"
       130: .line 586
            invokevirtual sun.security.ssl.ServerHandshaker.fatalSE:(BLjava/lang/String;)V
       131: .line 589
            goto 133
       132: .line 590
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iconst_0
            putfield sun.security.ssl.ServerHandshaker.resumingSession:Z
       133: .line 595
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.ServerHandshaker.resumingSession:Z
            ifeq 139
       134: .line 596
            aload 0 /* this */
            getfield sun.security.ssl.ServerHandshaker.doClientAuth:B
            iconst_2
            if_icmpne 139
       135: .line 598
            aload 7 /* previous */
            invokevirtual sun.security.ssl.SSLSessionImpl.getPeerPrincipal:()Ljava/security/Principal;
            pop
       136: .line 599
            goto 139
      StackMap locals:
      StackMap stack: javax.net.ssl.SSLPeerUnverifiedException
       137: pop
       138: .line 600
            aload 0 /* this */
            iconst_0
            putfield sun.security.ssl.ServerHandshaker.resumingSession:Z
       139: .line 605
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.ServerHandshaker.resumingSession:Z
            ifeq 166
       140: .line 606
            aload 7 /* previous */
            invokevirtual sun.security.ssl.SSLSessionImpl.getSuite:()Lsun/security/ssl/CipherSuite;
            astore 8 /* suite */
        start local 8 // sun.security.ssl.CipherSuite suite
       141: .line 607
            aload 8 /* suite */
            getfield sun.security.ssl.CipherSuite.keyExchange:Lsun/security/ssl/CipherSuite$KeyExchange;
            getstatic sun.security.ssl.CipherSuite$KeyExchange.K_KRB5:Lsun/security/ssl/CipherSuite$KeyExchange;
            if_acmpeq 143
       142: .line 608
            aload 8 /* suite */
            getfield sun.security.ssl.CipherSuite.keyExchange:Lsun/security/ssl/CipherSuite$KeyExchange;
            getstatic sun.security.ssl.CipherSuite$KeyExchange.K_KRB5_EXPORT:Lsun/security/ssl/CipherSuite$KeyExchange;
            if_acmpne 166
       143: .line 609
      StackMap locals: sun.security.ssl.CipherSuite
      StackMap stack:
            aload 7 /* previous */
            invokevirtual sun.security.ssl.SSLSessionImpl.getLocalPrincipal:()Ljava/security/Principal;
            astore 9 /* localPrincipal */
        start local 9 // java.security.Principal localPrincipal
       144: .line 611
            aconst_null
            astore 10 /* subject */
        start local 10 // javax.security.auth.Subject subject
       145: .line 614
            new sun.security.ssl.ServerHandshaker$1
            dup
            aload 0 /* this */
            invokespecial sun.security.ssl.ServerHandshaker$1.<init>:(Lsun/security/ssl/ServerHandshaker;)V
       146: .line 613
            invokestatic java.security.AccessController.doPrivileged:(Ljava/security/PrivilegedExceptionAction;)Ljava/lang/Object;
            checkcast javax.security.auth.Subject
            astore 10 /* subject */
       147: .line 619
            goto 152
      StackMap locals: sun.security.ssl.ServerHandshaker sun.security.ssl.HandshakeMessage$ClientHello int sun.security.ssl.CipherSuiteList sun.security.ssl.RenegotiationInfoExtension sun.security.ssl.HandshakeMessage$ServerHello sun.security.ssl.ProtocolVersion sun.security.ssl.SSLSessionImpl sun.security.ssl.CipherSuite java.security.Principal javax.security.auth.Subject
      StackMap stack: java.security.PrivilegedActionException
       148: pop
       149: .line 620
            aconst_null
            astore 10 /* subject */
       150: .line 621
            getstatic sun.security.ssl.ServerHandshaker.debug:Lsun/security/ssl/Debug;
            ifnull 152
            ldc "session"
            invokestatic sun.security.ssl.Debug.isOn:(Ljava/lang/String;)Z
            ifeq 152
       151: .line 622
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            ldc "Attempt to obtain subject failed!"
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
       152: .line 627
      StackMap locals:
      StackMap stack:
            aload 10 /* subject */
            ifnull 163
       153: .line 630
            aload 10 /* subject */
            ldc Ljava/security/Principal;
            invokevirtual javax.security.auth.Subject.getPrincipals:(Ljava/lang/Class;)Ljava/util/Set;
       154: .line 629
            astore 11 /* principals */
        start local 11 // java.util.Set principals
       155: .line 631
            aload 11 /* principals */
            aload 9 /* localPrincipal */
            invokeinterface java.util.Set.contains:(Ljava/lang/Object;)Z
            ifne 160
       156: .line 632
            aload 0 /* this */
            iconst_0
            putfield sun.security.ssl.ServerHandshaker.resumingSession:Z
       157: .line 633
            getstatic sun.security.ssl.ServerHandshaker.debug:Lsun/security/ssl/Debug;
            ifnull 166
            ldc "session"
            invokestatic sun.security.ssl.Debug.isOn:(Ljava/lang/String;)Z
            ifeq 166
       158: .line 634
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            ldc "Subject identity is not the same"
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
       159: .line 637
            goto 166
       160: .line 638
      StackMap locals: java.util.Set
      StackMap stack:
            getstatic sun.security.ssl.ServerHandshaker.debug:Lsun/security/ssl/Debug;
            ifnull 166
            ldc "session"
            invokestatic sun.security.ssl.Debug.isOn:(Ljava/lang/String;)Z
            ifeq 166
       161: .line 639
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            ldc "Subject identity is same"
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
        end local 11 // java.util.Set principals
       162: .line 642
            goto 166
       163: .line 643
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iconst_0
            putfield sun.security.ssl.ServerHandshaker.resumingSession:Z
       164: .line 644
            getstatic sun.security.ssl.ServerHandshaker.debug:Lsun/security/ssl/Debug;
            ifnull 166
            ldc "session"
            invokestatic sun.security.ssl.Debug.isOn:(Ljava/lang/String;)Z
            ifeq 166
       165: .line 645
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            ldc "Kerberos credentials are not present in the current Subject; check if  javax.security.auth.useSubjectAsCreds system property has been set to false"
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
        end local 10 // javax.security.auth.Subject subject
        end local 9 // java.security.Principal localPrincipal
        end local 8 // sun.security.ssl.CipherSuite suite
       166: .line 656
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual sun.security.ssl.ServerHandshaker.getEndpointIdentificationAlgorithmSE:()Ljava/lang/String;
            astore 8 /* identityAlg */
        start local 8 // java.lang.String identityAlg
       167: .line 657
            aload 0 /* this */
            getfield sun.security.ssl.ServerHandshaker.resumingSession:Z
            ifeq 177
            aload 8 /* identityAlg */
            ifnull 177
       168: .line 660
            aload 7 /* previous */
            invokevirtual sun.security.ssl.SSLSessionImpl.getEndpointIdentificationAlgorithm:()Ljava/lang/String;
       169: .line 659
            astore 9 /* sessionIdentityAlg */
        start local 9 // java.lang.String sessionIdentityAlg
       170: .line 661
            aload 8 /* identityAlg */
            aload 9 /* sessionIdentityAlg */
            invokestatic java.util.Objects.equals:(Ljava/lang/Object;Ljava/lang/Object;)Z
            ifne 177
       171: .line 663
            getstatic sun.security.ssl.ServerHandshaker.debug:Lsun/security/ssl/Debug;
            ifnull 176
            ldc "session"
            invokestatic sun.security.ssl.Debug.isOn:(Ljava/lang/String;)Z
            ifeq 176
       172: .line 664
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            new java.lang.StringBuilder
            dup
            ldc "%% can't resume, endpoint id algorithm does not match, requested: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
       173: .line 666
            aload 8 /* identityAlg */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc ", cached: "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
       174: .line 667
            aload 9 /* sessionIdentityAlg */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
       175: .line 664
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
       176: .line 669
      StackMap locals: java.lang.String java.lang.String
      StackMap stack:
            aload 0 /* this */
            iconst_0
            putfield sun.security.ssl.ServerHandshaker.resumingSession:Z
        end local 9 // java.lang.String sessionIdentityAlg
       177: .line 673
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.ServerHandshaker.resumingSession:Z
            ifeq 184
       178: .line 674
            aload 7 /* previous */
            invokevirtual sun.security.ssl.SSLSessionImpl.getSuite:()Lsun/security/ssl/CipherSuite;
            astore 9 /* suite */
        start local 9 // sun.security.ssl.CipherSuite suite
       179: .line 678
            aload 0 /* this */
            aload 9 /* suite */
            invokevirtual sun.security.ssl.ServerHandshaker.isNegotiable:(Lsun/security/ssl/CipherSuite;)Z
            ifeq 181
       180: .line 679
            aload 1 /* mesg */
            invokevirtual sun.security.ssl.HandshakeMessage$ClientHello.getCipherSuites:()Lsun/security/ssl/CipherSuiteList;
            aload 9 /* suite */
            invokevirtual sun.security.ssl.CipherSuiteList.contains:(Lsun/security/ssl/CipherSuite;)Z
            ifne 183
       181: .line 680
      StackMap locals: sun.security.ssl.CipherSuite
      StackMap stack:
            aload 0 /* this */
            iconst_0
            putfield sun.security.ssl.ServerHandshaker.resumingSession:Z
       182: .line 681
            goto 184
       183: .line 685
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 9 /* suite */
            invokevirtual sun.security.ssl.ServerHandshaker.setCipherSuite:(Lsun/security/ssl/CipherSuite;)V
        end local 9 // sun.security.ssl.CipherSuite suite
       184: .line 689
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.ServerHandshaker.resumingSession:Z
            ifeq 189
       185: .line 690
            aload 0 /* this */
            aload 7 /* previous */
            putfield sun.security.ssl.ServerHandshaker.session:Lsun/security/ssl/SSLSessionImpl;
       186: .line 691
            getstatic sun.security.ssl.ServerHandshaker.debug:Lsun/security/ssl/Debug;
            ifnull 189
       187: .line 692
            ldc "handshake"
            invokestatic sun.security.ssl.Debug.isOn:(Ljava/lang/String;)Z
            ifne 188
            ldc "session"
            invokestatic sun.security.ssl.Debug.isOn:(Ljava/lang/String;)Z
            ifeq 189
       188: .line 693
      StackMap locals:
      StackMap stack:
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            new java.lang.StringBuilder
            dup
            ldc "%% Resuming "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* this */
            getfield sun.security.ssl.ServerHandshaker.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 8 // java.lang.String identityAlg
        end local 7 // sun.security.ssl.SSLSessionImpl previous
       189: .line 704
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.ServerHandshaker.session:Lsun/security/ssl/SSLSessionImpl;
            ifnonnull 235
       190: .line 705
            aload 0 /* this */
            getfield sun.security.ssl.ServerHandshaker.enableNewSession:Z
            ifne 192
       191: .line 706
            new javax.net.ssl.SSLException
            dup
            ldc "Client did not resume a session"
            invokespecial javax.net.ssl.SSLException.<init>:(Ljava/lang/String;)V
            athrow
       192: .line 709
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
       193: .line 710
            aload 1 /* mesg */
            getfield sun.security.ssl.HandshakeMessage$ClientHello.extensions:Lsun/security/ssl/HelloExtensions;
            getstatic sun.security.ssl.ExtensionType.EXT_ELLIPTIC_CURVES:Lsun/security/ssl/ExtensionType;
            invokevirtual sun.security.ssl.HelloExtensions.get:(Lsun/security/ssl/ExtensionType;)Lsun/security/ssl/HelloExtension;
       194: .line 709
            checkcast sun.security.ssl.EllipticCurvesExtension
            putfield sun.security.ssl.ServerHandshaker.requestedCurves:Lsun/security/ssl/EllipticCurvesExtension;
       195: .line 714
            aload 0 /* this */
            getfield sun.security.ssl.ServerHandshaker.protocolVersion:Lsun/security/ssl/ProtocolVersion;
            getfield sun.security.ssl.ProtocolVersion.v:I
            getstatic sun.security.ssl.ProtocolVersion.TLS12:Lsun/security/ssl/ProtocolVersion;
            getfield sun.security.ssl.ProtocolVersion.v:I
            if_icmplt 215
       196: .line 716
            aload 1 /* mesg */
            getfield sun.security.ssl.HandshakeMessage$ClientHello.extensions:Lsun/security/ssl/HelloExtensions;
       197: .line 717
            getstatic sun.security.ssl.ExtensionType.EXT_SIGNATURE_ALGORITHMS:Lsun/security/ssl/ExtensionType;
       198: .line 716
            invokevirtual sun.security.ssl.HelloExtensions.get:(Lsun/security/ssl/ExtensionType;)Lsun/security/ssl/HelloExtension;
            checkcast sun.security.ssl.SignatureAlgorithmsExtension
       199: .line 715
            astore 7 /* signAlgs */
        start local 7 // sun.security.ssl.SignatureAlgorithmsExtension signAlgs
       200: .line 718
            aload 7 /* signAlgs */
            ifnull 215
       201: .line 720
            aload 7 /* signAlgs */
            invokevirtual sun.security.ssl.SignatureAlgorithmsExtension.getSignAlgorithms:()Ljava/util/Collection;
       202: .line 719
            astore 8 /* peerSignAlgs */
        start local 8 // java.util.Collection peerSignAlgs
       203: .line 721
            aload 8 /* peerSignAlgs */
            ifnull 204
            aload 8 /* peerSignAlgs */
            invokeinterface java.util.Collection.isEmpty:()Z
            ifeq 207
       204: .line 722
      StackMap locals: sun.security.ssl.SignatureAlgorithmsExtension java.util.Collection
      StackMap stack:
            new javax.net.ssl.SSLHandshakeException
            dup
       205: .line 723
            ldc "No peer supported signature algorithms"
       206: .line 722
            invokespecial javax.net.ssl.SSLHandshakeException.<init>:(Ljava/lang/String;)V
            athrow
       207: .line 729
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.ServerHandshaker.algorithmConstraints:Ljava/security/AlgorithmConstraints;
            aload 8 /* peerSignAlgs */
       208: .line 728
            invokestatic sun.security.ssl.SignatureAndHashAlgorithm.getSupportedAlgorithms:(Ljava/security/AlgorithmConstraints;Ljava/util/Collection;)Ljava/util/Collection;
       209: .line 727
            astore 9 /* supportedPeerSignAlgs */
        start local 9 // java.util.Collection supportedPeerSignAlgs
       210: .line 730
            aload 9 /* supportedPeerSignAlgs */
            invokeinterface java.util.Collection.isEmpty:()Z
            ifeq 214
       211: .line 731
            new javax.net.ssl.SSLHandshakeException
            dup
       212: .line 732
            ldc "No signature and hash algorithm in common"
       213: .line 731
            invokespecial javax.net.ssl.SSLHandshakeException.<init>:(Ljava/lang/String;)V
            athrow
       214: .line 735
      StackMap locals: java.util.Collection
      StackMap stack:
            aload 0 /* this */
            aload 9 /* supportedPeerSignAlgs */
            invokevirtual sun.security.ssl.ServerHandshaker.setPeerSupportedSignAlgs:(Ljava/util/Collection;)V
        end local 9 // java.util.Collection supportedPeerSignAlgs
        end local 8 // java.util.Collection peerSignAlgs
        end local 7 // sun.security.ssl.SignatureAlgorithmsExtension signAlgs
       215: .line 739
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
       216: new sun.security.ssl.SSLSessionImpl
            dup
            aload 0 /* this */
            getfield sun.security.ssl.ServerHandshaker.protocolVersion:Lsun/security/ssl/ProtocolVersion;
            getstatic sun.security.ssl.CipherSuite.C_NULL:Lsun/security/ssl/CipherSuite;
       217: .line 740
            aload 0 /* this */
            invokevirtual sun.security.ssl.ServerHandshaker.getLocalSupportedSignAlgs:()Ljava/util/Collection;
       218: .line 741
            aload 0 /* this */
            getfield sun.security.ssl.ServerHandshaker.sslContext:Lsun/security/ssl/SSLContextImpl;
            invokevirtual sun.security.ssl.SSLContextImpl.getSecureRandom:()Ljava/security/SecureRandom;
       219: .line 742
            aload 0 /* this */
            invokevirtual sun.security.ssl.ServerHandshaker.getHostAddressSE:()Ljava/lang/String;
            aload 0 /* this */
            invokevirtual sun.security.ssl.ServerHandshaker.getPortSE:()I
       220: .line 743
            aload 0 /* this */
            getfield sun.security.ssl.ServerHandshaker.requestedToUseEMS:Z
            ifeq 222
       221: .line 744
            aload 0 /* this */
            getfield sun.security.ssl.ServerHandshaker.protocolVersion:Lsun/security/ssl/ProtocolVersion;
            getfield sun.security.ssl.ProtocolVersion.v:I
            getstatic sun.security.ssl.ProtocolVersion.TLS10:Lsun/security/ssl/ProtocolVersion;
            getfield sun.security.ssl.ProtocolVersion.v:I
            if_icmplt 222
            iconst_1
            goto 223
      StackMap locals: sun.security.ssl.ServerHandshaker sun.security.ssl.HandshakeMessage$ClientHello int sun.security.ssl.CipherSuiteList sun.security.ssl.RenegotiationInfoExtension sun.security.ssl.HandshakeMessage$ServerHello sun.security.ssl.ProtocolVersion
      StackMap stack: sun.security.ssl.ServerHandshaker new 216 new 216 sun.security.ssl.ProtocolVersion sun.security.ssl.CipherSuite java.util.Collection java.security.SecureRandom java.lang.String int
       222: iconst_0
       223: .line 745
      StackMap locals: sun.security.ssl.ServerHandshaker sun.security.ssl.HandshakeMessage$ClientHello int sun.security.ssl.CipherSuiteList sun.security.ssl.RenegotiationInfoExtension sun.security.ssl.HandshakeMessage$ServerHello sun.security.ssl.ProtocolVersion
      StackMap stack: sun.security.ssl.ServerHandshaker new 216 new 216 sun.security.ssl.ProtocolVersion sun.security.ssl.CipherSuite java.util.Collection java.security.SecureRandom java.lang.String int int
            aload 0 /* this */
            invokevirtual sun.security.ssl.ServerHandshaker.getEndpointIdentificationAlgorithmSE:()Ljava/lang/String;
            invokespecial sun.security.ssl.SSLSessionImpl.<init>:(Lsun/security/ssl/ProtocolVersion;Lsun/security/ssl/CipherSuite;Ljava/util/Collection;Ljava/security/SecureRandom;Ljava/lang/String;IZLjava/lang/String;)V
       224: .line 739
            putfield sun.security.ssl.ServerHandshaker.session:Lsun/security/ssl/SSLSessionImpl;
       225: .line 747
            aload 0 /* this */
            getfield sun.security.ssl.ServerHandshaker.protocolVersion:Lsun/security/ssl/ProtocolVersion;
            getfield sun.security.ssl.ProtocolVersion.v:I
            getstatic sun.security.ssl.ProtocolVersion.TLS12:Lsun/security/ssl/ProtocolVersion;
            getfield sun.security.ssl.ProtocolVersion.v:I
            if_icmplt 230
       226: .line 748
            aload 0 /* this */
            getfield sun.security.ssl.ServerHandshaker.peerSupportedSignAlgs:Ljava/util/Collection;
            ifnull 230
       227: .line 749
            aload 0 /* this */
            getfield sun.security.ssl.ServerHandshaker.session:Lsun/security/ssl/SSLSessionImpl;
       228: .line 750
            aload 0 /* this */
            getfield sun.security.ssl.ServerHandshaker.peerSupportedSignAlgs:Ljava/util/Collection;
       229: .line 749
            invokevirtual sun.security.ssl.SSLSessionImpl.setPeerSupportedSignatureAlgorithms:(Ljava/util/Collection;)V
       230: .line 756
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 0 /* this */
            getfield sun.security.ssl.ServerHandshaker.session:Lsun/security/ssl/SSLSessionImpl;
            invokevirtual sun.security.ssl.ServerHandshaker.setHandshakeSessionSE:(Lsun/security/ssl/SSLSessionImpl;)V
       231: .line 759
            aload 0 /* this */
            aload 1 /* mesg */
            invokevirtual sun.security.ssl.ServerHandshaker.chooseCipherSuite:(Lsun/security/ssl/HandshakeMessage$ClientHello;)V
       232: .line 761
            aload 0 /* this */
            getfield sun.security.ssl.ServerHandshaker.session:Lsun/security/ssl/SSLSessionImpl;
            aload 0 /* this */
            getfield sun.security.ssl.ServerHandshaker.cipherSuite:Lsun/security/ssl/CipherSuite;
            invokevirtual sun.security.ssl.SSLSessionImpl.setSuite:(Lsun/security/ssl/CipherSuite;)V
       233: .line 762
            aload 0 /* this */
            getfield sun.security.ssl.ServerHandshaker.session:Lsun/security/ssl/SSLSessionImpl;
            aload 0 /* this */
            getfield sun.security.ssl.ServerHandshaker.privateKey:Ljava/security/PrivateKey;
            invokevirtual sun.security.ssl.SSLSessionImpl.setLocalPrivateKey:(Ljava/security/PrivateKey;)V
       234: .line 765
            goto 236
       235: .line 767
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 0 /* this */
            getfield sun.security.ssl.ServerHandshaker.session:Lsun/security/ssl/SSLSessionImpl;
            invokevirtual sun.security.ssl.ServerHandshaker.setHandshakeSessionSE:(Lsun/security/ssl/SSLSessionImpl;)V
       236: .line 770
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.ServerHandshaker.protocolVersion:Lsun/security/ssl/ProtocolVersion;
            getfield sun.security.ssl.ProtocolVersion.v:I
            getstatic sun.security.ssl.ProtocolVersion.TLS12:Lsun/security/ssl/ProtocolVersion;
            getfield sun.security.ssl.ProtocolVersion.v:I
            if_icmplt 240
       237: .line 771
            aload 0 /* this */
            getfield sun.security.ssl.ServerHandshaker.resumingSession:Z
            ifeq 239
       238: .line 772
            aload 0 /* this */
            getfield sun.security.ssl.ServerHandshaker.handshakeHash:Lsun/security/ssl/HandshakeHash;
            aconst_null
            invokevirtual sun.security.ssl.HandshakeHash.setCertificateVerifyAlg:(Ljava/lang/String;)V
       239: .line 774
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.ServerHandshaker.handshakeHash:Lsun/security/ssl/HandshakeHash;
            aload 0 /* this */
            getfield sun.security.ssl.ServerHandshaker.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
       240: .line 777
      StackMap locals:
      StackMap stack:
            aload 5 /* m1 */
            aload 0 /* this */
            getfield sun.security.ssl.ServerHandshaker.cipherSuite:Lsun/security/ssl/CipherSuite;
            putfield sun.security.ssl.HandshakeMessage$ServerHello.cipherSuite:Lsun/security/ssl/CipherSuite;
       241: .line 778
            aload 5 /* m1 */
            aload 0 /* this */
            getfield sun.security.ssl.ServerHandshaker.session:Lsun/security/ssl/SSLSessionImpl;
            invokevirtual sun.security.ssl.SSLSessionImpl.getSessionId:()Lsun/security/ssl/SessionId;
            putfield sun.security.ssl.HandshakeMessage$ServerHello.sessionId:Lsun/security/ssl/SessionId;
       242: .line 779
            aload 5 /* m1 */
            aload 0 /* this */
            getfield sun.security.ssl.ServerHandshaker.session:Lsun/security/ssl/SSLSessionImpl;
            invokevirtual sun.security.ssl.SSLSessionImpl.getCompression:()B
            putfield sun.security.ssl.HandshakeMessage$ServerHello.compression_method:B
       243: .line 781
            aload 0 /* this */
            getfield sun.security.ssl.ServerHandshaker.secureRenegotiation:Z
            ifeq 248
       244: .line 791
            new sun.security.ssl.RenegotiationInfoExtension
            dup
       245: .line 792
            aload 0 /* this */
            getfield sun.security.ssl.ServerHandshaker.clientVerifyData:[B
            aload 0 /* this */
            getfield sun.security.ssl.ServerHandshaker.serverVerifyData:[B
       246: .line 791
            invokespecial sun.security.ssl.RenegotiationInfoExtension.<init>:([B[B)V
            astore 7 /* serverHelloRI */
        start local 7 // sun.security.ssl.HelloExtension serverHelloRI
       247: .line 793
            aload 5 /* m1 */
            getfield sun.security.ssl.HandshakeMessage$ServerHello.extensions:Lsun/security/ssl/HelloExtensions;
            aload 7 /* serverHelloRI */
            invokevirtual sun.security.ssl.HelloExtensions.add:(Lsun/security/ssl/HelloExtension;)V
        end local 7 // sun.security.ssl.HelloExtension serverHelloRI
       248: .line 796
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.ServerHandshaker.session:Lsun/security/ssl/SSLSessionImpl;
            invokevirtual sun.security.ssl.SSLSessionImpl.getUseExtendedMasterSecret:()Z
            ifeq 250
       249: .line 797
            aload 5 /* m1 */
            getfield sun.security.ssl.HandshakeMessage$ServerHello.extensions:Lsun/security/ssl/HelloExtensions;
            new sun.security.ssl.ExtendedMasterSecretExtension
            dup
            invokespecial sun.security.ssl.ExtendedMasterSecretExtension.<init>:()V
            invokevirtual sun.security.ssl.HelloExtensions.add:(Lsun/security/ssl/HelloExtension;)V
       250: .line 800
      StackMap locals:
      StackMap stack:
            getstatic sun.security.ssl.ServerHandshaker.debug:Lsun/security/ssl/Debug;
            ifnull 253
            ldc "handshake"
            invokestatic sun.security.ssl.Debug.isOn:(Ljava/lang/String;)Z
            ifeq 253
       251: .line 801
            aload 5 /* m1 */
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            invokevirtual sun.security.ssl.HandshakeMessage$ServerHello.print:(Ljava/io/PrintStream;)V
       252: .line 802
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            new java.lang.StringBuilder
            dup
            ldc "Cipher suite:  "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* this */
            getfield sun.security.ssl.ServerHandshaker.session:Lsun/security/ssl/SSLSessionImpl;
            invokevirtual sun.security.ssl.SSLSessionImpl.getSuite:()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
       253: .line 804
      StackMap locals:
      StackMap stack:
            aload 5 /* m1 */
            aload 0 /* this */
            getfield sun.security.ssl.ServerHandshaker.output:Lsun/security/ssl/HandshakeOutStream;
            invokevirtual sun.security.ssl.HandshakeMessage$ServerHello.write:(Lsun/security/ssl/HandshakeOutStream;)V
       254: .line 805
            aload 0 /* this */
            getfield sun.security.ssl.ServerHandshaker.handshakeState:Lsun/security/ssl/HandshakeStateManager;
            aload 5 /* m1 */
            aload 0 /* this */
            getfield sun.security.ssl.ServerHandshaker.resumingSession:Z
            invokevirtual sun.security.ssl.HandshakeStateManager.update:(Lsun/security/ssl/HandshakeMessage;Z)V
       255: .line 811
            aload 0 /* this */
            getfield sun.security.ssl.ServerHandshaker.resumingSession:Z
            ifeq 259
       256: .line 812
            aload 0 /* this */
            aload 0 /* this */
            getfield sun.security.ssl.ServerHandshaker.session:Lsun/security/ssl/SSLSessionImpl;
            invokevirtual sun.security.ssl.SSLSessionImpl.getMasterSecret:()Ljavax/crypto/SecretKey;
            invokevirtual sun.security.ssl.ServerHandshaker.calculateConnectionKeys:(Ljavax/crypto/SecretKey;)V
       257: .line 813
            aload 0 /* this */
            iconst_0
            invokevirtual sun.security.ssl.ServerHandshaker.sendChangeCipherAndFinish:(Z)V
       258: .line 814
            return
       259: .line 826
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.ServerHandshaker.keyExchange:Lsun/security/ssl/CipherSuite$KeyExchange;
            getstatic sun.security.ssl.CipherSuite$KeyExchange.K_KRB5:Lsun/security/ssl/CipherSuite$KeyExchange;
            if_acmpeq 272
            aload 0 /* this */
            getfield sun.security.ssl.ServerHandshaker.keyExchange:Lsun/security/ssl/CipherSuite$KeyExchange;
            getstatic sun.security.ssl.CipherSuite$KeyExchange.K_KRB5_EXPORT:Lsun/security/ssl/CipherSuite$KeyExchange;
            if_acmpeq 272
       260: .line 829
            aload 0 /* this */
            getfield sun.security.ssl.ServerHandshaker.keyExchange:Lsun/security/ssl/CipherSuite$KeyExchange;
            getstatic sun.security.ssl.CipherSuite$KeyExchange.K_DH_ANON:Lsun/security/ssl/CipherSuite$KeyExchange;
            if_acmpeq 270
            aload 0 /* this */
            getfield sun.security.ssl.ServerHandshaker.keyExchange:Lsun/security/ssl/CipherSuite$KeyExchange;
            getstatic sun.security.ssl.CipherSuite$KeyExchange.K_ECDH_ANON:Lsun/security/ssl/CipherSuite$KeyExchange;
            if_acmpeq 270
       261: .line 830
            aload 0 /* this */
            getfield sun.security.ssl.ServerHandshaker.certs:[Ljava/security/cert/X509Certificate;
            ifnonnull 263
       262: .line 831
            new java.lang.RuntimeException
            dup
            ldc "no certificates"
            invokespecial java.lang.RuntimeException.<init>:(Ljava/lang/String;)V
            athrow
       263: .line 834
      StackMap locals:
      StackMap stack:
            new sun.security.ssl.HandshakeMessage$CertificateMsg
            dup
            aload 0 /* this */
            getfield sun.security.ssl.ServerHandshaker.certs:[Ljava/security/cert/X509Certificate;
            invokespecial sun.security.ssl.HandshakeMessage$CertificateMsg.<init>:([Ljava/security/cert/X509Certificate;)V
            astore 7 /* m2 */
        start local 7 // sun.security.ssl.HandshakeMessage$CertificateMsg m2
       264: .line 840
            aload 0 /* this */
            getfield sun.security.ssl.ServerHandshaker.session:Lsun/security/ssl/SSLSessionImpl;
            aload 0 /* this */
            getfield sun.security.ssl.ServerHandshaker.certs:[Ljava/security/cert/X509Certificate;
            invokevirtual sun.security.ssl.SSLSessionImpl.setLocalCertificates:([Ljava/security/cert/X509Certificate;)V
       265: .line 841
            getstatic sun.security.ssl.ServerHandshaker.debug:Lsun/security/ssl/Debug;
            ifnull 267
            ldc "handshake"
            invokestatic sun.security.ssl.Debug.isOn:(Ljava/lang/String;)Z
            ifeq 267
       266: .line 842
            aload 7 /* m2 */
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            invokevirtual sun.security.ssl.HandshakeMessage$CertificateMsg.print:(Ljava/io/PrintStream;)V
       267: .line 844
      StackMap locals: sun.security.ssl.HandshakeMessage$CertificateMsg
      StackMap stack:
            aload 7 /* m2 */
            aload 0 /* this */
            getfield sun.security.ssl.ServerHandshaker.output:Lsun/security/ssl/HandshakeOutStream;
            invokevirtual sun.security.ssl.HandshakeMessage$CertificateMsg.write:(Lsun/security/ssl/HandshakeOutStream;)V
       268: .line 845
            aload 0 /* this */
            getfield sun.security.ssl.ServerHandshaker.handshakeState:Lsun/security/ssl/HandshakeStateManager;
            aload 7 /* m2 */
            aload 0 /* this */
            getfield sun.security.ssl.ServerHandshaker.resumingSession:Z
            invokevirtual sun.security.ssl.HandshakeStateManager.update:(Lsun/security/ssl/HandshakeMessage;Z)V
        end local 7 // sun.security.ssl.HandshakeMessage$CertificateMsg m2
       269: .line 852
            goto 272
       270: .line 853
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.ServerHandshaker.certs:[Ljava/security/cert/X509Certificate;
            ifnull 272
       271: .line 854
            new java.lang.RuntimeException
            dup
            ldc "anonymous keyexchange with certs"
            invokespecial java.lang.RuntimeException.<init>:(Ljava/lang/String;)V
            athrow
       272: .line 868
      StackMap locals:
      StackMap stack:
            invokestatic sun.security.ssl.ServerHandshaker.$SWITCH_TABLE$sun$security$ssl$CipherSuite$KeyExchange:()[I
            aload 0 /* this */
            getfield sun.security.ssl.ServerHandshaker.keyExchange:Lsun/security/ssl/CipherSuite$KeyExchange;
            invokevirtual sun.security.ssl.CipherSuite$KeyExchange.ordinal:()I
            iaload
            tableswitch { // 2 - 15
                    2: 273
                    3: 275
                    4: 321
                    5: 321
                    6: 290
                    7: 290
                    8: 303
                    9: 319
                   10: 319
                   11: 305
                   12: 305
                   13: 305
                   14: 273
                   15: 273
              default: 321
          }
       273: .line 873
      StackMap locals:
      StackMap stack:
            aconst_null
            astore 7 /* m3 */
        start local 7 // sun.security.ssl.HandshakeMessage$ServerKeyExchange m3
       274: .line 874
            goto 322
        end local 7 // sun.security.ssl.HandshakeMessage$ServerKeyExchange m3
       275: .line 876
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.ServerHandshaker.certs:[Ljava/security/cert/X509Certificate;
            iconst_0
            aaload
            invokevirtual java.security.cert.X509Certificate.getPublicKey:()Ljava/security/PublicKey;
            invokestatic sun.security.ssl.JsseJce.getRSAKeyLength:(Ljava/security/PublicKey;)I
            sipush 512
            if_icmple 288
       276: .line 878
            new sun.security.ssl.HandshakeMessage$RSA_ServerKeyExchange
            dup
       277: .line 879
            aload 0 /* this */
            getfield sun.security.ssl.ServerHandshaker.tempPublicKey:Ljava/security/PublicKey;
            aload 0 /* this */
            getfield sun.security.ssl.ServerHandshaker.privateKey:Ljava/security/PrivateKey;
       278: .line 880
            aload 0 /* this */
            getfield sun.security.ssl.ServerHandshaker.clnt_random:Lsun/security/ssl/RandomCookie;
            aload 0 /* this */
            getfield sun.security.ssl.ServerHandshaker.svr_random:Lsun/security/ssl/RandomCookie;
       279: .line 881
            aload 0 /* this */
            getfield sun.security.ssl.ServerHandshaker.sslContext:Lsun/security/ssl/SSLContextImpl;
            invokevirtual sun.security.ssl.SSLContextImpl.getSecureRandom:()Ljava/security/SecureRandom;
       280: .line 878
            invokespecial sun.security.ssl.HandshakeMessage$RSA_ServerKeyExchange.<init>:(Ljava/security/PublicKey;Ljava/security/PrivateKey;Lsun/security/ssl/RandomCookie;Lsun/security/ssl/RandomCookie;Ljava/security/SecureRandom;)V
            astore 7 /* m3 */
        start local 7 // sun.security.ssl.HandshakeMessage$ServerKeyExchange m3
       281: .line 882
            aload 0 /* this */
            aload 0 /* this */
            getfield sun.security.ssl.ServerHandshaker.tempPrivateKey:Ljava/security/PrivateKey;
            putfield sun.security.ssl.ServerHandshaker.privateKey:Ljava/security/PrivateKey;
       282: .line 883
            goto 322
        end local 7 // sun.security.ssl.HandshakeMessage$ServerKeyExchange m3
      StackMap locals:
      StackMap stack: java.security.GeneralSecurityException
       283: astore 8 /* e */
        start local 8 // java.security.GeneralSecurityException e
       284: .line 885
            ldc "Error generating RSA server key exchange"
            aload 8 /* e */
       285: .line 884
            invokestatic sun.security.ssl.ServerHandshaker.throwSSLException:(Ljava/lang/String;Ljava/lang/Throwable;)V
       286: .line 886
            aconst_null
            astore 7 /* m3 */
        end local 8 // java.security.GeneralSecurityException e
        start local 7 // sun.security.ssl.HandshakeMessage$ServerKeyExchange m3
       287: .line 888
            goto 322
        end local 7 // sun.security.ssl.HandshakeMessage$ServerKeyExchange m3
       288: .line 890
      StackMap locals:
      StackMap stack:
            aconst_null
            astore 7 /* m3 */
        start local 7 // sun.security.ssl.HandshakeMessage$ServerKeyExchange m3
       289: .line 892
            goto 322
        end local 7 // sun.security.ssl.HandshakeMessage$ServerKeyExchange m3
       290: .line 896
      StackMap locals:
      StackMap stack:
            new sun.security.ssl.HandshakeMessage$DH_ServerKeyExchange
            dup
            aload 0 /* this */
            getfield sun.security.ssl.ServerHandshaker.dh:Lsun/security/ssl/DHCrypt;
       291: .line 897
            aload 0 /* this */
            getfield sun.security.ssl.ServerHandshaker.privateKey:Ljava/security/PrivateKey;
       292: .line 898
            aload 0 /* this */
            getfield sun.security.ssl.ServerHandshaker.clnt_random:Lsun/security/ssl/RandomCookie;
            getfield sun.security.ssl.RandomCookie.random_bytes:[B
       293: .line 899
            aload 0 /* this */
            getfield sun.security.ssl.ServerHandshaker.svr_random:Lsun/security/ssl/RandomCookie;
            getfield sun.security.ssl.RandomCookie.random_bytes:[B
       294: .line 900
            aload 0 /* this */
            getfield sun.security.ssl.ServerHandshaker.sslContext:Lsun/security/ssl/SSLContextImpl;
            invokevirtual sun.security.ssl.SSLContextImpl.getSecureRandom:()Ljava/security/SecureRandom;
       295: .line 901
            aload 0 /* this */
            getfield sun.security.ssl.ServerHandshaker.preferableSignatureAlgorithm:Lsun/security/ssl/SignatureAndHashAlgorithm;
       296: .line 902
            aload 0 /* this */
            getfield sun.security.ssl.ServerHandshaker.protocolVersion:Lsun/security/ssl/ProtocolVersion;
       297: .line 896
            invokespecial sun.security.ssl.HandshakeMessage$DH_ServerKeyExchange.<init>:(Lsun/security/ssl/DHCrypt;Ljava/security/PrivateKey;[B[BLjava/security/SecureRandom;Lsun/security/ssl/SignatureAndHashAlgorithm;Lsun/security/ssl/ProtocolVersion;)V
            astore 7 /* m3 */
        start local 7 // sun.security.ssl.HandshakeMessage$ServerKeyExchange m3
       298: .line 903
            goto 322
        end local 7 // sun.security.ssl.HandshakeMessage$ServerKeyExchange m3
      StackMap locals:
      StackMap stack: java.security.GeneralSecurityException
       299: astore 8 /* e */
        start local 8 // java.security.GeneralSecurityException e
       300: .line 904
            ldc "Error generating DH server key exchange"
            aload 8 /* e */
            invokestatic sun.security.ssl.ServerHandshaker.throwSSLException:(Ljava/lang/String;Ljava/lang/Throwable;)V
       301: .line 905
            aconst_null
            astore 7 /* m3 */
        end local 8 // java.security.GeneralSecurityException e
        start local 7 // sun.security.ssl.HandshakeMessage$ServerKeyExchange m3
       302: .line 907
            goto 322
        end local 7 // sun.security.ssl.HandshakeMessage$ServerKeyExchange m3
       303: .line 909
      StackMap locals:
      StackMap stack:
            new sun.security.ssl.HandshakeMessage$DH_ServerKeyExchange
            dup
            aload 0 /* this */
            getfield sun.security.ssl.ServerHandshaker.dh:Lsun/security/ssl/DHCrypt;
            aload 0 /* this */
            getfield sun.security.ssl.ServerHandshaker.protocolVersion:Lsun/security/ssl/ProtocolVersion;
            invokespecial sun.security.ssl.HandshakeMessage$DH_ServerKeyExchange.<init>:(Lsun/security/ssl/DHCrypt;Lsun/security/ssl/ProtocolVersion;)V
            astore 7 /* m3 */
        start local 7 // sun.security.ssl.HandshakeMessage$ServerKeyExchange m3
       304: .line 910
            goto 322
        end local 7 // sun.security.ssl.HandshakeMessage$ServerKeyExchange m3
       305: .line 915
      StackMap locals:
      StackMap stack:
            new sun.security.ssl.HandshakeMessage$ECDH_ServerKeyExchange
            dup
            aload 0 /* this */
            getfield sun.security.ssl.ServerHandshaker.ecdh:Lsun/security/ssl/ECDHCrypt;
       306: .line 916
            aload 0 /* this */
            getfield sun.security.ssl.ServerHandshaker.privateKey:Ljava/security/PrivateKey;
       307: .line 917
            aload 0 /* this */
            getfield sun.security.ssl.ServerHandshaker.clnt_random:Lsun/security/ssl/RandomCookie;
            getfield sun.security.ssl.RandomCookie.random_bytes:[B
       308: .line 918
            aload 0 /* this */
            getfield sun.security.ssl.ServerHandshaker.svr_random:Lsun/security/ssl/RandomCookie;
            getfield sun.security.ssl.RandomCookie.random_bytes:[B
       309: .line 919
            aload 0 /* this */
            getfield sun.security.ssl.ServerHandshaker.sslContext:Lsun/security/ssl/SSLContextImpl;
            invokevirtual sun.security.ssl.SSLContextImpl.getSecureRandom:()Ljava/security/SecureRandom;
       310: .line 920
            aload 0 /* this */
            getfield sun.security.ssl.ServerHandshaker.preferableSignatureAlgorithm:Lsun/security/ssl/SignatureAndHashAlgorithm;
       311: .line 921
            aload 0 /* this */
            getfield sun.security.ssl.ServerHandshaker.protocolVersion:Lsun/security/ssl/ProtocolVersion;
       312: .line 915
            invokespecial sun.security.ssl.HandshakeMessage$ECDH_ServerKeyExchange.<init>:(Lsun/security/ssl/ECDHCrypt;Ljava/security/PrivateKey;[B[BLjava/security/SecureRandom;Lsun/security/ssl/SignatureAndHashAlgorithm;Lsun/security/ssl/ProtocolVersion;)V
            astore 7 /* m3 */
        start local 7 // sun.security.ssl.HandshakeMessage$ServerKeyExchange m3
       313: .line 922
            goto 322
        end local 7 // sun.security.ssl.HandshakeMessage$ServerKeyExchange m3
      StackMap locals:
      StackMap stack: java.security.GeneralSecurityException
       314: astore 8 /* e */
        start local 8 // java.security.GeneralSecurityException e
       315: .line 924
            ldc "Error generating ECDH server key exchange"
            aload 8 /* e */
       316: .line 923
            invokestatic sun.security.ssl.ServerHandshaker.throwSSLException:(Ljava/lang/String;Ljava/lang/Throwable;)V
       317: .line 925
            aconst_null
            astore 7 /* m3 */
        end local 8 // java.security.GeneralSecurityException e
        start local 7 // sun.security.ssl.HandshakeMessage$ServerKeyExchange m3
       318: .line 927
            goto 322
        end local 7 // sun.security.ssl.HandshakeMessage$ServerKeyExchange m3
       319: .line 931
      StackMap locals:
      StackMap stack:
            aconst_null
            astore 7 /* m3 */
        start local 7 // sun.security.ssl.HandshakeMessage$ServerKeyExchange m3
       320: .line 932
            goto 322
        end local 7 // sun.security.ssl.HandshakeMessage$ServerKeyExchange m3
       321: .line 934
      StackMap locals:
      StackMap stack:
            new java.lang.RuntimeException
            dup
            new java.lang.StringBuilder
            dup
            ldc "internal error: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* this */
            getfield sun.security.ssl.ServerHandshaker.keyExchange:Lsun/security/ssl/CipherSuite$KeyExchange;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.lang.RuntimeException.<init>:(Ljava/lang/String;)V
            athrow
        start local 7 // sun.security.ssl.HandshakeMessage$ServerKeyExchange m3
       322: .line 936
      StackMap locals: sun.security.ssl.HandshakeMessage$ServerKeyExchange
      StackMap stack:
            aload 7 /* m3 */
            ifnull 327
       323: .line 937
            getstatic sun.security.ssl.ServerHandshaker.debug:Lsun/security/ssl/Debug;
            ifnull 325
            ldc "handshake"
            invokestatic sun.security.ssl.Debug.isOn:(Ljava/lang/String;)Z
            ifeq 325
       324: .line 938
            aload 7 /* m3 */
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            invokevirtual sun.security.ssl.HandshakeMessage$ServerKeyExchange.print:(Ljava/io/PrintStream;)V
       325: .line 940
      StackMap locals:
      StackMap stack:
            aload 7 /* m3 */
            aload 0 /* this */
            getfield sun.security.ssl.ServerHandshaker.output:Lsun/security/ssl/HandshakeOutStream;
            invokevirtual sun.security.ssl.HandshakeMessage$ServerKeyExchange.write:(Lsun/security/ssl/HandshakeOutStream;)V
       326: .line 941
            aload 0 /* this */
            getfield sun.security.ssl.ServerHandshaker.handshakeState:Lsun/security/ssl/HandshakeStateManager;
            aload 7 /* m3 */
            aload 0 /* this */
            getfield sun.security.ssl.ServerHandshaker.resumingSession:Z
            invokevirtual sun.security.ssl.HandshakeStateManager.update:(Lsun/security/ssl/HandshakeMessage;Z)V
       327: .line 955
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.ServerHandshaker.doClientAuth:B
            ifeq 354
       328: .line 956
            aload 0 /* this */
            getfield sun.security.ssl.ServerHandshaker.keyExchange:Lsun/security/ssl/CipherSuite$KeyExchange;
            getstatic sun.security.ssl.CipherSuite$KeyExchange.K_DH_ANON:Lsun/security/ssl/CipherSuite$KeyExchange;
            if_acmpeq 354
            aload 0 /* this */
            getfield sun.security.ssl.ServerHandshaker.keyExchange:Lsun/security/ssl/CipherSuite$KeyExchange;
            getstatic sun.security.ssl.CipherSuite$KeyExchange.K_ECDH_ANON:Lsun/security/ssl/CipherSuite$KeyExchange;
            if_acmpeq 354
       329: .line 957
            aload 0 /* this */
            getfield sun.security.ssl.ServerHandshaker.keyExchange:Lsun/security/ssl/CipherSuite$KeyExchange;
            getstatic sun.security.ssl.CipherSuite$KeyExchange.K_KRB5:Lsun/security/ssl/CipherSuite$KeyExchange;
            if_acmpeq 354
            aload 0 /* this */
            getfield sun.security.ssl.ServerHandshaker.keyExchange:Lsun/security/ssl/CipherSuite$KeyExchange;
            getstatic sun.security.ssl.CipherSuite$KeyExchange.K_KRB5_EXPORT:Lsun/security/ssl/CipherSuite$KeyExchange;
            if_acmpeq 354
       330: .line 962
            aconst_null
            astore 10 /* localSignAlgs */
        start local 10 // java.util.Collection localSignAlgs
       331: .line 963
            aload 0 /* this */
            getfield sun.security.ssl.ServerHandshaker.protocolVersion:Lsun/security/ssl/ProtocolVersion;
            getfield sun.security.ssl.ProtocolVersion.v:I
            getstatic sun.security.ssl.ProtocolVersion.TLS12:Lsun/security/ssl/ProtocolVersion;
            getfield sun.security.ssl.ProtocolVersion.v:I
            if_icmplt 345
       332: .line 968
            aload 0 /* this */
            invokevirtual sun.security.ssl.ServerHandshaker.getLocalSupportedSignAlgs:()Ljava/util/Collection;
            astore 10 /* localSignAlgs */
       333: .line 969
            aload 10 /* localSignAlgs */
            invokeinterface java.util.Collection.isEmpty:()Z
            ifeq 337
       334: .line 970
            new javax.net.ssl.SSLHandshakeException
            dup
       335: .line 971
            ldc "No supported signature algorithm"
       336: .line 970
            invokespecial javax.net.ssl.SSLHandshakeException.<init>:(Ljava/lang/String;)V
            athrow
       337: .line 976
      StackMap locals: sun.security.ssl.ServerHandshaker sun.security.ssl.HandshakeMessage$ClientHello int sun.security.ssl.CipherSuiteList sun.security.ssl.RenegotiationInfoExtension sun.security.ssl.HandshakeMessage$ServerHello sun.security.ssl.ProtocolVersion sun.security.ssl.HandshakeMessage$ServerKeyExchange top top java.util.Collection
      StackMap stack:
            aload 10 /* localSignAlgs */
       338: .line 975
            invokestatic sun.security.ssl.SignatureAndHashAlgorithm.getHashAlgorithmNames:(Ljava/util/Collection;)Ljava/util/Set;
       339: .line 974
            astore 11 /* localHashAlgs */
        start local 11 // java.util.Set localHashAlgs
       340: .line 977
            aload 11 /* localHashAlgs */
            invokeinterface java.util.Set.isEmpty:()Z
            ifeq 344
       341: .line 978
            new javax.net.ssl.SSLHandshakeException
            dup
       342: .line 979
            ldc "No supported signature algorithm"
       343: .line 978
            invokespecial javax.net.ssl.SSLHandshakeException.<init>:(Ljava/lang/String;)V
            athrow
       344: .line 981
      StackMap locals: java.util.Set
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.ServerHandshaker.handshakeHash:Lsun/security/ssl/HandshakeHash;
            aload 11 /* localHashAlgs */
            invokevirtual sun.security.ssl.HandshakeHash.restrictCertificateVerifyAlgs:(Ljava/util/Set;)V
        end local 11 // java.util.Set localHashAlgs
       345: .line 984
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.ServerHandshaker.sslContext:Lsun/security/ssl/SSLContextImpl;
            invokevirtual sun.security.ssl.SSLContextImpl.getX509TrustManager:()Ljavax/net/ssl/X509TrustManager;
            invokeinterface javax.net.ssl.X509TrustManager.getAcceptedIssuers:()[Ljava/security/cert/X509Certificate;
            astore 9 /* caCerts */
        start local 9 // java.security.cert.X509Certificate[] caCerts
       346: .line 985
            new sun.security.ssl.HandshakeMessage$CertificateRequest
            dup
            aload 9 /* caCerts */
            aload 0 /* this */
            getfield sun.security.ssl.ServerHandshaker.keyExchange:Lsun/security/ssl/CipherSuite$KeyExchange;
       347: .line 986
            aload 10 /* localSignAlgs */
            aload 0 /* this */
            getfield sun.security.ssl.ServerHandshaker.protocolVersion:Lsun/security/ssl/ProtocolVersion;
       348: .line 985
            invokespecial sun.security.ssl.HandshakeMessage$CertificateRequest.<init>:([Ljava/security/cert/X509Certificate;Lsun/security/ssl/CipherSuite$KeyExchange;Ljava/util/Collection;Lsun/security/ssl/ProtocolVersion;)V
            astore 8 /* m4 */
        start local 8 // sun.security.ssl.HandshakeMessage$CertificateRequest m4
       349: .line 988
            getstatic sun.security.ssl.ServerHandshaker.debug:Lsun/security/ssl/Debug;
            ifnull 351
            ldc "handshake"
            invokestatic sun.security.ssl.Debug.isOn:(Ljava/lang/String;)Z
            ifeq 351
       350: .line 989
            aload 8 /* m4 */
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            invokevirtual sun.security.ssl.HandshakeMessage$CertificateRequest.print:(Ljava/io/PrintStream;)V
       351: .line 991
      StackMap locals: sun.security.ssl.ServerHandshaker sun.security.ssl.HandshakeMessage$ClientHello int sun.security.ssl.CipherSuiteList sun.security.ssl.RenegotiationInfoExtension sun.security.ssl.HandshakeMessage$ServerHello sun.security.ssl.ProtocolVersion sun.security.ssl.HandshakeMessage$ServerKeyExchange sun.security.ssl.HandshakeMessage$CertificateRequest java.security.cert.X509Certificate[] java.util.Collection
      StackMap stack:
            aload 8 /* m4 */
            aload 0 /* this */
            getfield sun.security.ssl.ServerHandshaker.output:Lsun/security/ssl/HandshakeOutStream;
            invokevirtual sun.security.ssl.HandshakeMessage$CertificateRequest.write:(Lsun/security/ssl/HandshakeOutStream;)V
       352: .line 992
            aload 0 /* this */
            getfield sun.security.ssl.ServerHandshaker.handshakeState:Lsun/security/ssl/HandshakeStateManager;
            aload 8 /* m4 */
            aload 0 /* this */
            getfield sun.security.ssl.ServerHandshaker.resumingSession:Z
            invokevirtual sun.security.ssl.HandshakeStateManager.update:(Lsun/security/ssl/HandshakeMessage;Z)V
        end local 10 // java.util.Collection localSignAlgs
        end local 9 // java.security.cert.X509Certificate[] caCerts
        end local 8 // sun.security.ssl.HandshakeMessage$CertificateRequest m4
       353: .line 993
            goto 356
       354: .line 994
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.ServerHandshaker.protocolVersion:Lsun/security/ssl/ProtocolVersion;
            getfield sun.security.ssl.ProtocolVersion.v:I
            getstatic sun.security.ssl.ProtocolVersion.TLS12:Lsun/security/ssl/ProtocolVersion;
            getfield sun.security.ssl.ProtocolVersion.v:I
            if_icmplt 356
       355: .line 995
            aload 0 /* this */
            getfield sun.security.ssl.ServerHandshaker.handshakeHash:Lsun/security/ssl/HandshakeHash;
            aconst_null
            invokevirtual sun.security.ssl.HandshakeHash.setCertificateVerifyAlg:(Ljava/lang/String;)V
       356: .line 1002
      StackMap locals:
      StackMap stack:
            new sun.security.ssl.HandshakeMessage$ServerHelloDone
            dup
            invokespecial sun.security.ssl.HandshakeMessage$ServerHelloDone.<init>:()V
            astore 8 /* m5 */
        start local 8 // sun.security.ssl.HandshakeMessage$ServerHelloDone m5
       357: .line 1004
            getstatic sun.security.ssl.ServerHandshaker.debug:Lsun/security/ssl/Debug;
            ifnull 359
            ldc "handshake"
            invokestatic sun.security.ssl.Debug.isOn:(Ljava/lang/String;)Z
            ifeq 359
       358: .line 1005
            aload 8 /* m5 */
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            invokevirtual sun.security.ssl.HandshakeMessage$ServerHelloDone.print:(Ljava/io/PrintStream;)V
       359: .line 1007
      StackMap locals: sun.security.ssl.HandshakeMessage$ServerHelloDone
      StackMap stack:
            aload 8 /* m5 */
            aload 0 /* this */
            getfield sun.security.ssl.ServerHandshaker.output:Lsun/security/ssl/HandshakeOutStream;
            invokevirtual sun.security.ssl.HandshakeMessage$ServerHelloDone.write:(Lsun/security/ssl/HandshakeOutStream;)V
       360: .line 1008
            aload 0 /* this */
            getfield sun.security.ssl.ServerHandshaker.handshakeState:Lsun/security/ssl/HandshakeStateManager;
            aload 8 /* m5 */
            aload 0 /* this */
            getfield sun.security.ssl.ServerHandshaker.resumingSession:Z
            invokevirtual sun.security.ssl.HandshakeStateManager.update:(Lsun/security/ssl/HandshakeMessage;Z)V
       361: .line 1016
            aload 0 /* this */
            getfield sun.security.ssl.ServerHandshaker.output:Lsun/security/ssl/HandshakeOutStream;
            invokevirtual sun.security.ssl.HandshakeOutStream.flush:()V
       362: .line 1017
            return
        end local 8 // sun.security.ssl.HandshakeMessage$ServerHelloDone m5
        end local 7 // sun.security.ssl.HandshakeMessage$ServerKeyExchange m3
        end local 6 // sun.security.ssl.ProtocolVersion selectedVersion
        end local 5 // sun.security.ssl.HandshakeMessage$ServerHello m1
        end local 4 // sun.security.ssl.RenegotiationInfoExtension clientHelloRI
        end local 3 // sun.security.ssl.CipherSuiteList cipherSuites
        end local 2 // boolean renegotiationIndicated
        end local 1 // sun.security.ssl.HandshakeMessage$ClientHello mesg
        end local 0 // sun.security.ssl.ServerHandshaker this
      LocalVariableTable:
        Start  End  Slot                           Name  Signature
            0  363     0                           this  Lsun/security/ssl/ServerHandshaker;
            0  363     1                           mesg  Lsun/security/ssl/HandshakeMessage$ClientHello;
            3  363     2         renegotiationIndicated  Z
            4  363     3                   cipherSuites  Lsun/security/ssl/CipherSuiteList;
           19  363     4                  clientHelloRI  Lsun/security/ssl/RenegotiationInfoExtension;
           75   83     5  extendedMasterSecretExtension  Lsun/security/ssl/ExtendedMasterSecretExtension;
           85  363     5                             m1  Lsun/security/ssl/HandshakeMessage$ServerHello;
           88  363     6                selectedVersion  Lsun/security/ssl/ProtocolVersion;
          108  189     7                       previous  Lsun/security/ssl/SSLSessionImpl;
          112  114     8                     oldVersion  Lsun/security/ssl/ProtocolVersion;
          141  166     8                          suite  Lsun/security/ssl/CipherSuite;
          144  166     9                 localPrincipal  Ljava/security/Principal;
          145  166    10                        subject  Ljavax/security/auth/Subject;
          155  162    11                     principals  Ljava/util/Set<Ljava/security/Principal;>;
          167  189     8                    identityAlg  Ljava/lang/String;
          170  177     9             sessionIdentityAlg  Ljava/lang/String;
          179  184     9                          suite  Lsun/security/ssl/CipherSuite;
          200  215     7                       signAlgs  Lsun/security/ssl/SignatureAlgorithmsExtension;
          203  215     8                   peerSignAlgs  Ljava/util/Collection<Lsun/security/ssl/SignatureAndHashAlgorithm;>;
          210  215     9          supportedPeerSignAlgs  Ljava/util/Collection<Lsun/security/ssl/SignatureAndHashAlgorithm;>;
          247  248     7                  serverHelloRI  Lsun/security/ssl/HelloExtension;
          264  269     7                             m2  Lsun/security/ssl/HandshakeMessage$CertificateMsg;
          274  275     7                             m3  Lsun/security/ssl/HandshakeMessage$ServerKeyExchange;
          281  283     7                             m3  Lsun/security/ssl/HandshakeMessage$ServerKeyExchange;
          287  288     7                             m3  Lsun/security/ssl/HandshakeMessage$ServerKeyExchange;
          289  290     7                             m3  Lsun/security/ssl/HandshakeMessage$ServerKeyExchange;
          298  299     7                             m3  Lsun/security/ssl/HandshakeMessage$ServerKeyExchange;
          302  303     7                             m3  Lsun/security/ssl/HandshakeMessage$ServerKeyExchange;
          304  305     7                             m3  Lsun/security/ssl/HandshakeMessage$ServerKeyExchange;
          313  314     7                             m3  Lsun/security/ssl/HandshakeMessage$ServerKeyExchange;
          318  319     7                             m3  Lsun/security/ssl/HandshakeMessage$ServerKeyExchange;
          320  321     7                             m3  Lsun/security/ssl/HandshakeMessage$ServerKeyExchange;
          322  363     7                             m3  Lsun/security/ssl/HandshakeMessage$ServerKeyExchange;
          284  287     8                              e  Ljava/security/GeneralSecurityException;
          300  302     8                              e  Ljava/security/GeneralSecurityException;
          315  318     8                              e  Ljava/security/GeneralSecurityException;
          349  353     8                             m4  Lsun/security/ssl/HandshakeMessage$CertificateRequest;
          346  353     9                        caCerts  [Ljava/security/cert/X509Certificate;
          331  353    10                  localSignAlgs  Ljava/util/Collection<Lsun/security/ssl/SignatureAndHashAlgorithm;>;
          340  345    11                  localHashAlgs  Ljava/util/Set<Ljava/lang/String;>;
          357  363     8                             m5  Lsun/security/ssl/HandshakeMessage$ServerHelloDone;
      Exception table:
        from    to  target  type
         135   136     137  Class javax.net.ssl.SSLPeerUnverifiedException
         145   147     148  Class java.security.PrivilegedActionException
         276   282     283  Class java.security.GeneralSecurityException
         290   298     299  Class java.security.GeneralSecurityException
         305   313     314  Class java.security.GeneralSecurityException
    Exceptions:
      throws java.io.IOException
    MethodParameters:
      Name  Flags
      mesg  

  private void chooseCipherSuite(sun.security.ssl.HandshakeMessage$ClientHello);
    descriptor: (Lsun/security/ssl/HandshakeMessage$ClientHello;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=5, args_size=2
        start local 0 // sun.security.ssl.ServerHandshaker this
        start local 1 // sun.security.ssl.HandshakeMessage$ClientHello mesg
         0: .line 1024
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 2 /* legacySuites */
        start local 2 // java.util.List legacySuites
         1: .line 1025
            aload 1 /* mesg */
            invokevirtual sun.security.ssl.HandshakeMessage$ClientHello.getCipherSuites:()Lsun/security/ssl/CipherSuiteList;
            invokevirtual sun.security.ssl.CipherSuiteList.collection:()Ljava/util/Collection;
            invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
            astore 4
            goto 17
      StackMap locals: sun.security.ssl.ServerHandshaker sun.security.ssl.HandshakeMessage$ClientHello java.util.List top java.util.Iterator
      StackMap stack:
         2: aload 4
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast sun.security.ssl.CipherSuite
            astore 3 /* suite */
        start local 3 // sun.security.ssl.CipherSuite suite
         3: .line 1026
            aload 0 /* this */
            aload 3 /* suite */
            invokevirtual sun.security.ssl.ServerHandshaker.isNegotiable:(Lsun/security/ssl/CipherSuite;)Z
            ifne 5
         4: .line 1027
            goto 17
         5: .line 1030
      StackMap locals: sun.security.ssl.ServerHandshaker sun.security.ssl.HandshakeMessage$ClientHello java.util.List sun.security.ssl.CipherSuite java.util.Iterator
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.ServerHandshaker.doClientAuth:B
            iconst_2
            if_icmpne 9
         6: .line 1031
            aload 3 /* suite */
            getfield sun.security.ssl.CipherSuite.keyExchange:Lsun/security/ssl/CipherSuite$KeyExchange;
            getstatic sun.security.ssl.CipherSuite$KeyExchange.K_DH_ANON:Lsun/security/ssl/CipherSuite$KeyExchange;
            if_acmpeq 17
         7: .line 1032
            aload 3 /* suite */
            getfield sun.security.ssl.CipherSuite.keyExchange:Lsun/security/ssl/CipherSuite$KeyExchange;
            getstatic sun.security.ssl.CipherSuite$KeyExchange.K_ECDH_ANON:Lsun/security/ssl/CipherSuite$KeyExchange;
            if_acmpne 9
         8: .line 1033
            goto 17
         9: .line 1037
      StackMap locals:
      StackMap stack:
            getstatic sun.security.ssl.ServerHandshaker.legacyAlgorithmConstraints:Ljava/security/AlgorithmConstraints;
            aconst_null
            aload 3 /* suite */
            getfield sun.security.ssl.CipherSuite.name:Ljava/lang/String;
            aconst_null
            invokeinterface java.security.AlgorithmConstraints.permits:(Ljava/util/Set;Ljava/lang/String;Ljava/security/AlgorithmParameters;)Z
            ifne 12
        10: .line 1038
            aload 2 /* legacySuites */
            aload 3 /* suite */
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        11: .line 1039
            goto 17
        12: .line 1042
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 3 /* suite */
            invokevirtual sun.security.ssl.ServerHandshaker.trySetCipherSuite:(Lsun/security/ssl/CipherSuite;)Z
            ifne 14
        13: .line 1043
            goto 17
        14: .line 1046
      StackMap locals:
      StackMap stack:
            getstatic sun.security.ssl.ServerHandshaker.debug:Lsun/security/ssl/Debug;
            ifnull 16
            ldc "handshake"
            invokestatic sun.security.ssl.Debug.isOn:(Ljava/lang/String;)Z
            ifeq 16
        15: .line 1047
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            new java.lang.StringBuilder
            dup
            ldc "Standard ciphersuite chosen: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 3 /* suite */
            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
        16: .line 1049
      StackMap locals:
      StackMap stack:
            return
        end local 3 // sun.security.ssl.CipherSuite suite
        17: .line 1025
      StackMap locals: sun.security.ssl.ServerHandshaker sun.security.ssl.HandshakeMessage$ClientHello java.util.List top java.util.Iterator
      StackMap stack:
            aload 4
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 2
        18: .line 1052
            aload 2 /* legacySuites */
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 4
            goto 24
      StackMap locals:
      StackMap stack:
        19: aload 4
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast sun.security.ssl.CipherSuite
            astore 3 /* suite */
        start local 3 // sun.security.ssl.CipherSuite suite
        20: .line 1053
            aload 0 /* this */
            aload 3 /* suite */
            invokevirtual sun.security.ssl.ServerHandshaker.trySetCipherSuite:(Lsun/security/ssl/CipherSuite;)Z
            ifeq 24
        21: .line 1054
            getstatic sun.security.ssl.ServerHandshaker.debug:Lsun/security/ssl/Debug;
            ifnull 23
            ldc "handshake"
            invokestatic sun.security.ssl.Debug.isOn:(Ljava/lang/String;)Z
            ifeq 23
        22: .line 1055
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            new java.lang.StringBuilder
            dup
            ldc "Legacy ciphersuite chosen: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 3 /* suite */
            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
        23: .line 1057
      StackMap locals: sun.security.ssl.ServerHandshaker sun.security.ssl.HandshakeMessage$ClientHello java.util.List sun.security.ssl.CipherSuite java.util.Iterator
      StackMap stack:
            return
        end local 3 // sun.security.ssl.CipherSuite suite
        24: .line 1052
      StackMap locals: sun.security.ssl.ServerHandshaker sun.security.ssl.HandshakeMessage$ClientHello java.util.List top java.util.Iterator
      StackMap stack:
            aload 4
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 19
        25: .line 1061
            aload 0 /* this */
            bipush 40
        26: .line 1062
            ldc "no cipher suites in common"
        27: .line 1061
            invokevirtual sun.security.ssl.ServerHandshaker.fatalSE:(BLjava/lang/String;)V
        28: .line 1063
            return
        end local 2 // java.util.List legacySuites
        end local 1 // sun.security.ssl.HandshakeMessage$ClientHello mesg
        end local 0 // sun.security.ssl.ServerHandshaker this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0   29     0          this  Lsun/security/ssl/ServerHandshaker;
            0   29     1          mesg  Lsun/security/ssl/HandshakeMessage$ClientHello;
            1   29     2  legacySuites  Ljava/util/List<Lsun/security/ssl/CipherSuite;>;
            3   17     3         suite  Lsun/security/ssl/CipherSuite;
           20   24     3         suite  Lsun/security/ssl/CipherSuite;
    Exceptions:
      throws java.io.IOException
    MethodParameters:
      Name  Flags
      mesg  

  boolean trySetCipherSuite(sun.security.ssl.CipherSuite);
    descriptor: (Lsun/security/ssl/CipherSuite;)Z
    flags: (0x0000) 
    Code:
      stack=5, locals=5, args_size=2
        start local 0 // sun.security.ssl.ServerHandshaker this
        start local 1 // sun.security.ssl.CipherSuite suite
         0: .line 1085
            aload 0 /* this */
            getfield sun.security.ssl.ServerHandshaker.resumingSession:Z
            ifeq 2
         1: .line 1086
            iconst_1
            ireturn
         2: .line 1089
      StackMap locals:
      StackMap stack:
            aload 1 /* suite */
            invokevirtual sun.security.ssl.CipherSuite.isNegotiable:()Z
            ifne 4
         3: .line 1090
            iconst_0
            ireturn
         4: .line 1094
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.ServerHandshaker.protocolVersion:Lsun/security/ssl/ProtocolVersion;
            getfield sun.security.ssl.ProtocolVersion.v:I
            aload 1 /* suite */
            getfield sun.security.ssl.CipherSuite.obsoleted:I
            if_icmplt 6
         5: .line 1095
            iconst_0
            ireturn
         6: .line 1099
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.ServerHandshaker.protocolVersion:Lsun/security/ssl/ProtocolVersion;
            getfield sun.security.ssl.ProtocolVersion.v:I
            aload 1 /* suite */
            getfield sun.security.ssl.CipherSuite.supported:I
            if_icmpge 8
         7: .line 1100
            iconst_0
            ireturn
         8: .line 1103
      StackMap locals:
      StackMap stack:
            aload 1 /* suite */
            getfield sun.security.ssl.CipherSuite.keyExchange:Lsun/security/ssl/CipherSuite$KeyExchange;
            astore 2 /* keyExchange */
        start local 2 // sun.security.ssl.CipherSuite$KeyExchange keyExchange
         9: .line 1106
            aload 0 /* this */
            aconst_null
            putfield sun.security.ssl.ServerHandshaker.privateKey:Ljava/security/PrivateKey;
        10: .line 1107
            aload 0 /* this */
            aconst_null
            putfield sun.security.ssl.ServerHandshaker.certs:[Ljava/security/cert/X509Certificate;
        11: .line 1108
            aload 0 /* this */
            aconst_null
            putfield sun.security.ssl.ServerHandshaker.dh:Lsun/security/ssl/DHCrypt;
        12: .line 1109
            aload 0 /* this */
            aconst_null
            putfield sun.security.ssl.ServerHandshaker.tempPrivateKey:Ljava/security/PrivateKey;
        13: .line 1110
            aload 0 /* this */
            aconst_null
            putfield sun.security.ssl.ServerHandshaker.tempPublicKey:Ljava/security/PublicKey;
        14: .line 1112
            aconst_null
            astore 3 /* supportedSignAlgs */
        start local 3 // java.util.Collection supportedSignAlgs
        15: .line 1113
            aload 0 /* this */
            getfield sun.security.ssl.ServerHandshaker.protocolVersion:Lsun/security/ssl/ProtocolVersion;
            getfield sun.security.ssl.ProtocolVersion.v:I
            getstatic sun.security.ssl.ProtocolVersion.TLS12:Lsun/security/ssl/ProtocolVersion;
            getfield sun.security.ssl.ProtocolVersion.v:I
            if_icmplt 43
        16: .line 1114
            aload 0 /* this */
            getfield sun.security.ssl.ServerHandshaker.peerSupportedSignAlgs:Ljava/util/Collection;
            ifnull 19
        17: .line 1115
            aload 0 /* this */
            getfield sun.security.ssl.ServerHandshaker.peerSupportedSignAlgs:Ljava/util/Collection;
            astore 3 /* supportedSignAlgs */
        18: .line 1116
            goto 43
        19: .line 1117
      StackMap locals: sun.security.ssl.CipherSuite$KeyExchange java.util.Collection
      StackMap stack:
            aconst_null
            astore 4 /* algorithm */
        start local 4 // sun.security.ssl.SignatureAndHashAlgorithm algorithm
        20: .line 1120
            invokestatic sun.security.ssl.ServerHandshaker.$SWITCH_TABLE$sun$security$ssl$CipherSuite$KeyExchange:()[I
            aload 2 /* keyExchange */
            invokevirtual sun.security.ssl.CipherSuite$KeyExchange.ordinal:()I
            iaload
            tableswitch { // 2 - 12
                    2: 21
                    3: 32
                    4: 21
                    5: 25
                    6: 25
                    7: 21
                    8: 32
                    9: 29
                   10: 21
                   11: 29
                   12: 21
              default: 32
          }
        21: .line 1131
      StackMap locals: sun.security.ssl.SignatureAndHashAlgorithm
      StackMap stack:
            getstatic sun.security.ssl.SignatureAndHashAlgorithm$HashAlgorithm.SHA1:Lsun/security/ssl/SignatureAndHashAlgorithm$HashAlgorithm;
            getfield sun.security.ssl.SignatureAndHashAlgorithm$HashAlgorithm.value:I
        22: .line 1132
            getstatic sun.security.ssl.SignatureAndHashAlgorithm$SignatureAlgorithm.RSA:Lsun/security/ssl/SignatureAndHashAlgorithm$SignatureAlgorithm;
            getfield sun.security.ssl.SignatureAndHashAlgorithm$SignatureAlgorithm.value:I
            iconst_0
        23: .line 1130
            invokestatic sun.security.ssl.SignatureAndHashAlgorithm.valueOf:(III)Lsun/security/ssl/SignatureAndHashAlgorithm;
            astore 4 /* algorithm */
        24: .line 1133
            goto 32
        25: .line 1140
      StackMap locals:
      StackMap stack:
            getstatic sun.security.ssl.SignatureAndHashAlgorithm$HashAlgorithm.SHA1:Lsun/security/ssl/SignatureAndHashAlgorithm$HashAlgorithm;
            getfield sun.security.ssl.SignatureAndHashAlgorithm$HashAlgorithm.value:I
        26: .line 1141
            getstatic sun.security.ssl.SignatureAndHashAlgorithm$SignatureAlgorithm.DSA:Lsun/security/ssl/SignatureAndHashAlgorithm$SignatureAlgorithm;
            getfield sun.security.ssl.SignatureAndHashAlgorithm$SignatureAlgorithm.value:I
            iconst_0
        27: .line 1139
            invokestatic sun.security.ssl.SignatureAndHashAlgorithm.valueOf:(III)Lsun/security/ssl/SignatureAndHashAlgorithm;
            astore 4 /* algorithm */
        28: .line 1142
            goto 32
        29: .line 1149
      StackMap locals:
      StackMap stack:
            getstatic sun.security.ssl.SignatureAndHashAlgorithm$HashAlgorithm.SHA1:Lsun/security/ssl/SignatureAndHashAlgorithm$HashAlgorithm;
            getfield sun.security.ssl.SignatureAndHashAlgorithm$HashAlgorithm.value:I
        30: .line 1150
            getstatic sun.security.ssl.SignatureAndHashAlgorithm$SignatureAlgorithm.ECDSA:Lsun/security/ssl/SignatureAndHashAlgorithm$SignatureAlgorithm;
            getfield sun.security.ssl.SignatureAndHashAlgorithm$SignatureAlgorithm.value:I
            iconst_0
        31: .line 1148
            invokestatic sun.security.ssl.SignatureAndHashAlgorithm.valueOf:(III)Lsun/security/ssl/SignatureAndHashAlgorithm;
            astore 4 /* algorithm */
        32: .line 1156
      StackMap locals:
      StackMap stack:
            aload 4 /* algorithm */
            ifnonnull 36
        33: .line 1158
            invokestatic java.util.Collections.emptySet:()Ljava/util/Set;
        34: .line 1157
            astore 3 /* supportedSignAlgs */
        35: .line 1159
            goto 42
        36: .line 1161
      StackMap locals:
      StackMap stack:
            new java.util.ArrayList
            dup
            iconst_1
            invokespecial java.util.ArrayList.<init>:(I)V
        37: .line 1160
            astore 3 /* supportedSignAlgs */
        38: .line 1162
            aload 3 /* supportedSignAlgs */
            aload 4 /* algorithm */
            invokeinterface java.util.Collection.add:(Ljava/lang/Object;)Z
            pop
        39: .line 1166
            aload 0 /* this */
            getfield sun.security.ssl.ServerHandshaker.algorithmConstraints:Ljava/security/AlgorithmConstraints;
            aload 3 /* supportedSignAlgs */
        40: .line 1165
            invokestatic sun.security.ssl.SignatureAndHashAlgorithm.getSupportedAlgorithms:(Ljava/security/AlgorithmConstraints;Ljava/util/Collection;)Ljava/util/Collection;
        41: .line 1164
            astore 3 /* supportedSignAlgs */
        42: .line 1174
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.ServerHandshaker.session:Lsun/security/ssl/SSLSessionImpl;
            aload 3 /* supportedSignAlgs */
            invokevirtual sun.security.ssl.SSLSessionImpl.setPeerSupportedSignatureAlgorithms:(Ljava/util/Collection;)V
        end local 4 // sun.security.ssl.SignatureAndHashAlgorithm algorithm
        43: .line 1178
      StackMap locals:
      StackMap stack:
            invokestatic sun.security.ssl.ServerHandshaker.$SWITCH_TABLE$sun$security$ssl$CipherSuite$KeyExchange:()[I
            aload 2 /* keyExchange */
            invokevirtual sun.security.ssl.CipherSuite$KeyExchange.ordinal:()I
            iaload
            tableswitch { // 2 - 15
                    2: 44
                    3: 46
                    4: 135
                    5: 135
                    6: 87
                    7: 53
                    8: 131
                    9: 125
                   10: 121
                   11: 104
                   12: 70
                   13: 133
                   14: 129
                   15: 129
              default: 135
          }
        44: .line 1181
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            ldc "RSA"
            invokevirtual sun.security.ssl.ServerHandshaker.setupPrivateKeyAndChain:(Ljava/lang/String;)Z
            ifne 138
        45: .line 1182
            iconst_0
            ireturn
        46: .line 1187
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            ldc "RSA"
            invokevirtual sun.security.ssl.ServerHandshaker.setupPrivateKeyAndChain:(Ljava/lang/String;)Z
            ifne 48
        47: .line 1188
            iconst_0
            ireturn
        48: .line 1192
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.ServerHandshaker.certs:[Ljava/security/cert/X509Certificate;
            iconst_0
            aaload
            invokevirtual java.security.cert.X509Certificate.getPublicKey:()Ljava/security/PublicKey;
            invokestatic sun.security.ssl.JsseJce.getRSAKeyLength:(Ljava/security/PublicKey;)I
            sipush 512
            if_icmple 138
        49: .line 1193
            aload 0 /* this */
            aload 1 /* suite */
            getfield sun.security.ssl.CipherSuite.exportable:Z
            invokevirtual sun.security.ssl.ServerHandshaker.setupEphemeralRSAKeys:(Z)Z
            ifne 138
        50: .line 1194
            iconst_0
            ireturn
        51: .line 1197
      StackMap locals:
      StackMap stack: java.lang.RuntimeException
            pop
        52: .line 1199
            iconst_0
            ireturn
        53: .line 1204
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            ldc "RSA"
            invokevirtual sun.security.ssl.ServerHandshaker.setupPrivateKeyAndChain:(Ljava/lang/String;)Z
            ifne 55
        54: .line 1205
            iconst_0
            ireturn
        55: .line 1209
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.ServerHandshaker.protocolVersion:Lsun/security/ssl/ProtocolVersion;
            getfield sun.security.ssl.ProtocolVersion.v:I
            getstatic sun.security.ssl.ProtocolVersion.TLS12:Lsun/security/ssl/ProtocolVersion;
            getfield sun.security.ssl.ProtocolVersion.v:I
            if_icmplt 68
        56: .line 1210
            aload 0 /* this */
        57: .line 1212
            aload 3 /* supportedSignAlgs */
            ldc "RSA"
            aload 0 /* this */
            getfield sun.security.ssl.ServerHandshaker.privateKey:Ljava/security/PrivateKey;
        58: .line 1211
            invokestatic sun.security.ssl.SignatureAndHashAlgorithm.getPreferableAlgorithm:(Ljava/util/Collection;Ljava/lang/String;Ljava/security/PrivateKey;)Lsun/security/ssl/SignatureAndHashAlgorithm;
        59: .line 1210
            putfield sun.security.ssl.ServerHandshaker.preferableSignatureAlgorithm:Lsun/security/ssl/SignatureAndHashAlgorithm;
        60: .line 1213
            aload 0 /* this */
            getfield sun.security.ssl.ServerHandshaker.preferableSignatureAlgorithm:Lsun/security/ssl/SignatureAndHashAlgorithm;
            ifnonnull 68
        61: .line 1214
            getstatic sun.security.ssl.ServerHandshaker.debug:Lsun/security/ssl/Debug;
            ifnull 67
            ldc "handshake"
            invokestatic sun.security.ssl.Debug.isOn:(Ljava/lang/String;)Z
            ifeq 67
        62: .line 1215
            getstatic java.lang.System.out:Ljava/io/PrintStream;
        63: .line 1216
            new java.lang.StringBuilder
            dup
            ldc "No signature and hash algorithm for cipher "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
        64: .line 1217
            aload 1 /* suite */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
        65: .line 1216
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        66: .line 1215
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
        67: .line 1219
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
        68: .line 1223
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* suite */
            getfield sun.security.ssl.CipherSuite.exportable:Z
            aload 0 /* this */
            getfield sun.security.ssl.ServerHandshaker.privateKey:Ljava/security/PrivateKey;
            invokevirtual sun.security.ssl.ServerHandshaker.setupEphemeralDHKeys:(ZLjava/security/Key;)V
        69: .line 1224
            goto 138
        70: .line 1227
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            ldc "RSA"
            invokevirtual sun.security.ssl.ServerHandshaker.setupPrivateKeyAndChain:(Ljava/lang/String;)Z
            ifne 72
        71: .line 1228
            iconst_0
            ireturn
        72: .line 1232
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.ServerHandshaker.protocolVersion:Lsun/security/ssl/ProtocolVersion;
            getfield sun.security.ssl.ProtocolVersion.v:I
            getstatic sun.security.ssl.ProtocolVersion.TLS12:Lsun/security/ssl/ProtocolVersion;
            getfield sun.security.ssl.ProtocolVersion.v:I
            if_icmplt 85
        73: .line 1233
            aload 0 /* this */
        74: .line 1235
            aload 3 /* supportedSignAlgs */
            ldc "RSA"
            aload 0 /* this */
            getfield sun.security.ssl.ServerHandshaker.privateKey:Ljava/security/PrivateKey;
        75: .line 1234
            invokestatic sun.security.ssl.SignatureAndHashAlgorithm.getPreferableAlgorithm:(Ljava/util/Collection;Ljava/lang/String;Ljava/security/PrivateKey;)Lsun/security/ssl/SignatureAndHashAlgorithm;
        76: .line 1233
            putfield sun.security.ssl.ServerHandshaker.preferableSignatureAlgorithm:Lsun/security/ssl/SignatureAndHashAlgorithm;
        77: .line 1236
            aload 0 /* this */
            getfield sun.security.ssl.ServerHandshaker.preferableSignatureAlgorithm:Lsun/security/ssl/SignatureAndHashAlgorithm;
            ifnonnull 85
        78: .line 1237
            getstatic sun.security.ssl.ServerHandshaker.debug:Lsun/security/ssl/Debug;
            ifnull 84
            ldc "handshake"
            invokestatic sun.security.ssl.Debug.isOn:(Ljava/lang/String;)Z
            ifeq 84
        79: .line 1238
            getstatic java.lang.System.out:Ljava/io/PrintStream;
        80: .line 1239
            new java.lang.StringBuilder
            dup
            ldc "No signature and hash algorithm for cipher "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
        81: .line 1240
            aload 1 /* suite */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
        82: .line 1239
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        83: .line 1238
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
        84: .line 1242
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
        85: .line 1246
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual sun.security.ssl.ServerHandshaker.setupEphemeralECDHKeys:()Z
            ifne 138
        86: .line 1247
            iconst_0
            ireturn
        87: .line 1252
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.ServerHandshaker.protocolVersion:Lsun/security/ssl/ProtocolVersion;
            getfield sun.security.ssl.ProtocolVersion.v:I
            getstatic sun.security.ssl.ProtocolVersion.TLS12:Lsun/security/ssl/ProtocolVersion;
            getfield sun.security.ssl.ProtocolVersion.v:I
            if_icmplt 100
        88: .line 1253
            aload 0 /* this */
        89: .line 1255
            aload 3 /* supportedSignAlgs */
            ldc "DSA"
        90: .line 1254
            invokestatic sun.security.ssl.SignatureAndHashAlgorithm.getPreferableAlgorithm:(Ljava/util/Collection;Ljava/lang/String;)Lsun/security/ssl/SignatureAndHashAlgorithm;
        91: .line 1253
            putfield sun.security.ssl.ServerHandshaker.preferableSignatureAlgorithm:Lsun/security/ssl/SignatureAndHashAlgorithm;
        92: .line 1256
            aload 0 /* this */
            getfield sun.security.ssl.ServerHandshaker.preferableSignatureAlgorithm:Lsun/security/ssl/SignatureAndHashAlgorithm;
            ifnonnull 100
        93: .line 1257
            getstatic sun.security.ssl.ServerHandshaker.debug:Lsun/security/ssl/Debug;
            ifnull 99
            ldc "handshake"
            invokestatic sun.security.ssl.Debug.isOn:(Ljava/lang/String;)Z
            ifeq 99
        94: .line 1258
            getstatic java.lang.System.out:Ljava/io/PrintStream;
        95: .line 1259
            new java.lang.StringBuilder
            dup
            ldc "No signature and hash algorithm for cipher "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
        96: .line 1260
            aload 1 /* suite */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
        97: .line 1259
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        98: .line 1258
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
        99: .line 1262
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
       100: .line 1267
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            ldc "DSA"
            invokevirtual sun.security.ssl.ServerHandshaker.setupPrivateKeyAndChain:(Ljava/lang/String;)Z
            ifne 102
       101: .line 1268
            iconst_0
            ireturn
       102: .line 1271
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* suite */
            getfield sun.security.ssl.CipherSuite.exportable:Z
            aload 0 /* this */
            getfield sun.security.ssl.ServerHandshaker.privateKey:Ljava/security/PrivateKey;
            invokevirtual sun.security.ssl.ServerHandshaker.setupEphemeralDHKeys:(ZLjava/security/Key;)V
       103: .line 1272
            goto 138
       104: .line 1275
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.ServerHandshaker.protocolVersion:Lsun/security/ssl/ProtocolVersion;
            getfield sun.security.ssl.ProtocolVersion.v:I
            getstatic sun.security.ssl.ProtocolVersion.TLS12:Lsun/security/ssl/ProtocolVersion;
            getfield sun.security.ssl.ProtocolVersion.v:I
            if_icmplt 117
       105: .line 1276
            aload 0 /* this */
       106: .line 1278
            aload 3 /* supportedSignAlgs */
            ldc "ECDSA"
       107: .line 1277
            invokestatic sun.security.ssl.SignatureAndHashAlgorithm.getPreferableAlgorithm:(Ljava/util/Collection;Ljava/lang/String;)Lsun/security/ssl/SignatureAndHashAlgorithm;
       108: .line 1276
            putfield sun.security.ssl.ServerHandshaker.preferableSignatureAlgorithm:Lsun/security/ssl/SignatureAndHashAlgorithm;
       109: .line 1279
            aload 0 /* this */
            getfield sun.security.ssl.ServerHandshaker.preferableSignatureAlgorithm:Lsun/security/ssl/SignatureAndHashAlgorithm;
            ifnonnull 117
       110: .line 1280
            getstatic sun.security.ssl.ServerHandshaker.debug:Lsun/security/ssl/Debug;
            ifnull 116
            ldc "handshake"
            invokestatic sun.security.ssl.Debug.isOn:(Ljava/lang/String;)Z
            ifeq 116
       111: .line 1281
            getstatic java.lang.System.out:Ljava/io/PrintStream;
       112: .line 1282
            new java.lang.StringBuilder
            dup
            ldc "No signature and hash algorithm for cipher "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
       113: .line 1283
            aload 1 /* suite */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
       114: .line 1282
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
       115: .line 1281
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
       116: .line 1285
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
       117: .line 1290
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            ldc "EC_EC"
            invokevirtual sun.security.ssl.ServerHandshaker.setupPrivateKeyAndChain:(Ljava/lang/String;)Z
            ifne 119
       118: .line 1291
            iconst_0
            ireturn
       119: .line 1293
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual sun.security.ssl.ServerHandshaker.setupEphemeralECDHKeys:()Z
            ifne 138
       120: .line 1294
            iconst_0
            ireturn
       121: .line 1299
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            ldc "EC_RSA"
            invokevirtual sun.security.ssl.ServerHandshaker.setupPrivateKeyAndChain:(Ljava/lang/String;)Z
            ifne 123
       122: .line 1300
            iconst_0
            ireturn
       123: .line 1302
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual sun.security.ssl.ServerHandshaker.setupStaticECDHKeys:()V
       124: .line 1303
            goto 138
       125: .line 1306
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            ldc "EC_EC"
            invokevirtual sun.security.ssl.ServerHandshaker.setupPrivateKeyAndChain:(Ljava/lang/String;)Z
            ifne 127
       126: .line 1307
            iconst_0
            ireturn
       127: .line 1309
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual sun.security.ssl.ServerHandshaker.setupStaticECDHKeys:()V
       128: .line 1310
            goto 138
       129: .line 1314
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual sun.security.ssl.ServerHandshaker.setupKerberosKeys:()Z
            ifne 138
       130: .line 1315
            iconst_0
            ireturn
       131: .line 1320
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* suite */
            getfield sun.security.ssl.CipherSuite.exportable:Z
            aconst_null
            invokevirtual sun.security.ssl.ServerHandshaker.setupEphemeralDHKeys:(ZLjava/security/Key;)V
       132: .line 1321
            goto 138
       133: .line 1324
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual sun.security.ssl.ServerHandshaker.setupEphemeralECDHKeys:()Z
            ifne 138
       134: .line 1325
            iconst_0
            ireturn
       135: .line 1330
      StackMap locals:
      StackMap stack:
            new java.lang.RuntimeException
            dup
       136: .line 1331
            new java.lang.StringBuilder
            dup
            ldc "Unrecognized cipherSuite: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* suite */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
       137: .line 1330
            invokespecial java.lang.RuntimeException.<init>:(Ljava/lang/String;)V
            athrow
       138: .line 1333
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* suite */
            invokevirtual sun.security.ssl.ServerHandshaker.setCipherSuite:(Lsun/security/ssl/CipherSuite;)V
       139: .line 1336
            aload 0 /* this */
            getfield sun.security.ssl.ServerHandshaker.protocolVersion:Lsun/security/ssl/ProtocolVersion;
            getfield sun.security.ssl.ProtocolVersion.v:I
            getstatic sun.security.ssl.ProtocolVersion.TLS12:Lsun/security/ssl/ProtocolVersion;
            getfield sun.security.ssl.ProtocolVersion.v:I
            if_icmplt 142
       140: .line 1337
            aload 0 /* this */
            getfield sun.security.ssl.ServerHandshaker.peerSupportedSignAlgs:Ljava/util/Collection;
            ifnonnull 142
       141: .line 1338
            aload 0 /* this */
            aload 3 /* supportedSignAlgs */
            invokevirtual sun.security.ssl.ServerHandshaker.setPeerSupportedSignAlgs:(Ljava/util/Collection;)V
       142: .line 1342
      StackMap locals:
      StackMap stack:
            iconst_1
            ireturn
        end local 3 // java.util.Collection supportedSignAlgs
        end local 2 // sun.security.ssl.CipherSuite$KeyExchange keyExchange
        end local 1 // sun.security.ssl.CipherSuite suite
        end local 0 // sun.security.ssl.ServerHandshaker this
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0  143     0               this  Lsun/security/ssl/ServerHandshaker;
            0  143     1              suite  Lsun/security/ssl/CipherSuite;
            9  143     2        keyExchange  Lsun/security/ssl/CipherSuite$KeyExchange;
           15  143     3  supportedSignAlgs  Ljava/util/Collection<Lsun/security/ssl/SignatureAndHashAlgorithm;>;
           20   43     4          algorithm  Lsun/security/ssl/SignatureAndHashAlgorithm;
      Exception table:
        from    to  target  type
          48    50      51  Class java.lang.RuntimeException
    MethodParameters:
       Name  Flags
      suite  

  private boolean setupEphemeralRSAKeys(boolean);
    descriptor: (Z)Z
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // sun.security.ssl.ServerHandshaker this
        start local 1 // boolean export
         0: .line 1355
            aload 0 /* this */
            getfield sun.security.ssl.ServerHandshaker.sslContext:Lsun/security/ssl/SSLContextImpl;
            invokevirtual sun.security.ssl.SSLContextImpl.getEphemeralKeyManager:()Lsun/security/ssl/EphemeralKeyManager;
         1: .line 1356
            iload 1 /* export */
            aload 0 /* this */
            getfield sun.security.ssl.ServerHandshaker.sslContext:Lsun/security/ssl/SSLContextImpl;
            invokevirtual sun.security.ssl.SSLContextImpl.getSecureRandom:()Ljava/security/SecureRandom;
            invokevirtual sun.security.ssl.EphemeralKeyManager.getRSAKeyPair:(ZLjava/security/SecureRandom;)Ljava/security/KeyPair;
         2: .line 1355
            astore 2 /* kp */
        start local 2 // java.security.KeyPair kp
         3: .line 1357
            aload 2 /* kp */
            ifnonnull 5
         4: .line 1358
            iconst_0
            ireturn
         5: .line 1360
      StackMap locals: java.security.KeyPair
      StackMap stack:
            aload 0 /* this */
            aload 2 /* kp */
            invokevirtual java.security.KeyPair.getPublic:()Ljava/security/PublicKey;
            putfield sun.security.ssl.ServerHandshaker.tempPublicKey:Ljava/security/PublicKey;
         6: .line 1361
            aload 0 /* this */
            aload 2 /* kp */
            invokevirtual java.security.KeyPair.getPrivate:()Ljava/security/PrivateKey;
            putfield sun.security.ssl.ServerHandshaker.tempPrivateKey:Ljava/security/PrivateKey;
         7: .line 1362
            iconst_1
            ireturn
        end local 2 // java.security.KeyPair kp
        end local 1 // boolean export
        end local 0 // sun.security.ssl.ServerHandshaker this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    8     0    this  Lsun/security/ssl/ServerHandshaker;
            0    8     1  export  Z
            3    8     2      kp  Ljava/security/KeyPair;
    MethodParameters:
        Name  Flags
      export  

  private void setupEphemeralDHKeys(boolean, java.security.Key);
    descriptor: (ZLjava/security/Key;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=5, args_size=3
        start local 0 // sun.security.ssl.ServerHandshaker this
        start local 1 // boolean export
        start local 2 // java.security.Key key
         0: .line 1409
            iload 1 /* export */
            ifeq 1
            sipush 512
            goto 2
      StackMap locals:
      StackMap stack:
         1: sipush 1024
      StackMap locals:
      StackMap stack: int
         2: istore 3 /* keySize */
        start local 3 // int keySize
         3: .line 1410
            iload 1 /* export */
            ifne 16
         4: .line 1411
            getstatic sun.security.ssl.ServerHandshaker.useLegacyEphemeralDHKeys:Z
            ifeq 7
         5: .line 1412
            sipush 768
            istore 3 /* keySize */
         6: .line 1413
            goto 16
      StackMap locals: int
      StackMap stack:
         7: getstatic sun.security.ssl.ServerHandshaker.useSmartEphemeralDHKeys:Z
            ifeq 14
         8: .line 1414
            aload 2 /* key */
            ifnull 16
         9: .line 1415
            aload 2 /* key */
            invokestatic sun.security.util.KeyUtil.getKeySize:(Ljava/security/Key;)I
            istore 4 /* ks */
        start local 4 // int ks
        10: .line 1429
            iload 4 /* ks */
            sipush 1024
            if_icmpgt 11
            sipush 1024
            goto 12
      StackMap locals: int
      StackMap stack:
        11: sipush 2048
      StackMap locals:
      StackMap stack: int
        12: istore 3 /* keySize */
        end local 4 // int ks
        13: .line 1431
            goto 16
      StackMap locals:
      StackMap stack:
        14: getstatic sun.security.ssl.ServerHandshaker.customizedDHKeySize:I
            ifle 16
        15: .line 1432
            getstatic sun.security.ssl.ServerHandshaker.customizedDHKeySize:I
            istore 3 /* keySize */
        16: .line 1436
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            new sun.security.ssl.DHCrypt
            dup
            iload 3 /* keySize */
            aload 0 /* this */
            getfield sun.security.ssl.ServerHandshaker.sslContext:Lsun/security/ssl/SSLContextImpl;
            invokevirtual sun.security.ssl.SSLContextImpl.getSecureRandom:()Ljava/security/SecureRandom;
            invokespecial sun.security.ssl.DHCrypt.<init>:(ILjava/security/SecureRandom;)V
            putfield sun.security.ssl.ServerHandshaker.dh:Lsun/security/ssl/DHCrypt;
        17: .line 1437
            return
        end local 3 // int keySize
        end local 2 // java.security.Key key
        end local 1 // boolean export
        end local 0 // sun.security.ssl.ServerHandshaker this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   18     0     this  Lsun/security/ssl/ServerHandshaker;
            0   18     1   export  Z
            0   18     2      key  Ljava/security/Key;
            3   18     3  keySize  I
           10   13     4       ks  I
    MethodParameters:
        Name  Flags
      export  
      key     

  private boolean setupEphemeralECDHKeys();
    descriptor: ()Z
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=2, args_size=1
        start local 0 // sun.security.ssl.ServerHandshaker this
         0: .line 1443
            aload 0 /* this */
            getfield sun.security.ssl.ServerHandshaker.requestedCurves:Lsun/security/ssl/EllipticCurvesExtension;
            ifnull 2
         1: .line 1444
            aload 0 /* this */
            getfield sun.security.ssl.ServerHandshaker.requestedCurves:Lsun/security/ssl/EllipticCurvesExtension;
            aload 0 /* this */
            getfield sun.security.ssl.ServerHandshaker.algorithmConstraints:Ljava/security/AlgorithmConstraints;
            invokevirtual sun.security.ssl.EllipticCurvesExtension.getPreferredCurve:(Ljava/security/AlgorithmConstraints;)I
            goto 3
         2: .line 1445
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.ServerHandshaker.algorithmConstraints:Ljava/security/AlgorithmConstraints;
            invokestatic sun.security.ssl.EllipticCurvesExtension.getActiveCurves:(Ljava/security/AlgorithmConstraints;)I
         3: .line 1443
      StackMap locals:
      StackMap stack: int
            istore 1 /* index */
        start local 1 // int index
         4: .line 1446
            iload 1 /* index */
            ifge 6
         5: .line 1448
            iconst_0
            ireturn
         6: .line 1451
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            new sun.security.ssl.ECDHCrypt
            dup
            iload 1 /* index */
            aload 0 /* this */
            getfield sun.security.ssl.ServerHandshaker.sslContext:Lsun/security/ssl/SSLContextImpl;
            invokevirtual sun.security.ssl.SSLContextImpl.getSecureRandom:()Ljava/security/SecureRandom;
            invokespecial sun.security.ssl.ECDHCrypt.<init>:(ILjava/security/SecureRandom;)V
            putfield sun.security.ssl.ServerHandshaker.ecdh:Lsun/security/ssl/ECDHCrypt;
         7: .line 1452
            iconst_1
            ireturn
        end local 1 // int index
        end local 0 // sun.security.ssl.ServerHandshaker this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    8     0   this  Lsun/security/ssl/ServerHandshaker;
            4    8     1  index  I

  private void setupStaticECDHKeys();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=6, locals=1, args_size=1
        start local 0 // sun.security.ssl.ServerHandshaker this
         0: .line 1458
            aload 0 /* this */
            new sun.security.ssl.ECDHCrypt
            dup
            aload 0 /* this */
            getfield sun.security.ssl.ServerHandshaker.privateKey:Ljava/security/PrivateKey;
            aload 0 /* this */
            getfield sun.security.ssl.ServerHandshaker.certs:[Ljava/security/cert/X509Certificate;
            iconst_0
            aaload
            invokevirtual java.security.cert.X509Certificate.getPublicKey:()Ljava/security/PublicKey;
            invokespecial sun.security.ssl.ECDHCrypt.<init>:(Ljava/security/PrivateKey;Ljava/security/PublicKey;)V
            putfield sun.security.ssl.ServerHandshaker.ecdh:Lsun/security/ssl/ECDHCrypt;
         1: .line 1459
            return
        end local 0 // sun.security.ssl.ServerHandshaker this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lsun/security/ssl/ServerHandshaker;

  private boolean setupPrivateKeyAndChain(java.lang.String);
    descriptor: (Ljava/lang/String;)Z
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=10, args_size=2
        start local 0 // sun.security.ssl.ServerHandshaker this
        start local 1 // java.lang.String algorithm
         0: .line 1468
            aload 0 /* this */
            getfield sun.security.ssl.ServerHandshaker.sslContext:Lsun/security/ssl/SSLContextImpl;
            invokevirtual sun.security.ssl.SSLContextImpl.getX509KeyManager:()Ljavax/net/ssl/X509ExtendedKeyManager;
            astore 2 /* km */
        start local 2 // javax.net.ssl.X509ExtendedKeyManager km
         1: .line 1470
            aload 0 /* this */
            getfield sun.security.ssl.ServerHandshaker.conn:Lsun/security/ssl/SSLSocketImpl;
            ifnull 4
         2: .line 1471
            aload 2 /* km */
            aload 1 /* algorithm */
            aconst_null
            aload 0 /* this */
            getfield sun.security.ssl.ServerHandshaker.conn:Lsun/security/ssl/SSLSocketImpl;
            invokevirtual javax.net.ssl.X509ExtendedKeyManager.chooseServerAlias:(Ljava/lang/String;[Ljava/security/Principal;Ljava/net/Socket;)Ljava/lang/String;
            astore 3 /* alias */
        start local 3 // java.lang.String alias
         3: .line 1472
            goto 5
        end local 3 // java.lang.String alias
         4: .line 1473
      StackMap locals: javax.net.ssl.X509ExtendedKeyManager
      StackMap stack:
            aload 2 /* km */
            aload 1 /* algorithm */
            aconst_null
            aload 0 /* this */
            getfield sun.security.ssl.ServerHandshaker.engine:Lsun/security/ssl/SSLEngineImpl;
            invokevirtual javax.net.ssl.X509ExtendedKeyManager.chooseEngineServerAlias:(Ljava/lang/String;[Ljava/security/Principal;Ljavax/net/ssl/SSLEngine;)Ljava/lang/String;
            astore 3 /* alias */
        start local 3 // java.lang.String alias
         5: .line 1475
      StackMap locals: java.lang.String
      StackMap stack:
            aload 3 /* alias */
            ifnonnull 7
         6: .line 1476
            iconst_0
            ireturn
         7: .line 1478
      StackMap locals:
      StackMap stack:
            aload 2 /* km */
            aload 3 /* alias */
            invokevirtual javax.net.ssl.X509ExtendedKeyManager.getPrivateKey:(Ljava/lang/String;)Ljava/security/PrivateKey;
            astore 4 /* tempPrivateKey */
        start local 4 // java.security.PrivateKey tempPrivateKey
         8: .line 1479
            aload 4 /* tempPrivateKey */
            ifnonnull 10
         9: .line 1480
            iconst_0
            ireturn
        10: .line 1482
      StackMap locals: java.security.PrivateKey
      StackMap stack:
            aload 2 /* km */
            aload 3 /* alias */
            invokevirtual javax.net.ssl.X509ExtendedKeyManager.getCertificateChain:(Ljava/lang/String;)[Ljava/security/cert/X509Certificate;
            astore 5 /* tempCerts */
        start local 5 // java.security.cert.X509Certificate[] tempCerts
        11: .line 1483
            aload 5 /* tempCerts */
            ifnull 12
            aload 5 /* tempCerts */
            arraylength
            ifne 13
        12: .line 1484
      StackMap locals: java.security.cert.X509Certificate[]
      StackMap stack:
            iconst_0
            ireturn
        13: .line 1486
      StackMap locals:
      StackMap stack:
            aload 1 /* algorithm */
            ldc "_"
            invokevirtual java.lang.String.split:(Ljava/lang/String;)[Ljava/lang/String;
            iconst_0
            aaload
            astore 6 /* keyAlgorithm */
        start local 6 // java.lang.String keyAlgorithm
        14: .line 1487
            aload 5 /* tempCerts */
            iconst_0
            aaload
            invokevirtual java.security.cert.X509Certificate.getPublicKey:()Ljava/security/PublicKey;
            astore 7 /* publicKey */
        start local 7 // java.security.PublicKey publicKey
        15: .line 1488
            aload 4 /* tempPrivateKey */
            invokeinterface java.security.PrivateKey.getAlgorithm:()Ljava/lang/String;
            aload 6 /* keyAlgorithm */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 17
        16: .line 1489
            aload 7 /* publicKey */
            invokeinterface java.security.PublicKey.getAlgorithm:()Ljava/lang/String;
            aload 6 /* keyAlgorithm */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 18
        17: .line 1490
      StackMap locals: java.lang.String java.security.PublicKey
      StackMap stack:
            iconst_0
            ireturn
        18: .line 1495
      StackMap locals:
      StackMap stack:
            aload 6 /* keyAlgorithm */
            ldc "EC"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 26
        19: .line 1496
            aload 7 /* publicKey */
            instanceof java.security.interfaces.ECPublicKey
            ifne 21
        20: .line 1497
            iconst_0
            ireturn
        21: .line 1499
      StackMap locals:
      StackMap stack:
            aload 7 /* publicKey */
            checkcast java.security.interfaces.ECPublicKey
            invokeinterface java.security.interfaces.ECPublicKey.getParams:()Ljava/security/spec/ECParameterSpec;
            astore 8 /* params */
        start local 8 // java.security.spec.ECParameterSpec params
        22: .line 1500
            aload 8 /* params */
            invokestatic sun.security.ssl.EllipticCurvesExtension.getCurveIndex:(Ljava/security/spec/ECParameterSpec;)I
            istore 9 /* id */
        start local 9 // int id
        23: .line 1501
            iload 9 /* id */
            ifle 25
            iload 9 /* id */
            invokestatic sun.security.ssl.EllipticCurvesExtension.isSupported:(I)Z
            ifeq 25
        24: .line 1502
            aload 0 /* this */
            getfield sun.security.ssl.ServerHandshaker.requestedCurves:Lsun/security/ssl/EllipticCurvesExtension;
            ifnull 26
            aload 0 /* this */
            getfield sun.security.ssl.ServerHandshaker.requestedCurves:Lsun/security/ssl/EllipticCurvesExtension;
            iload 9 /* id */
            invokevirtual sun.security.ssl.EllipticCurvesExtension.contains:(I)Z
            ifne 26
        25: .line 1503
      StackMap locals: java.security.spec.ECParameterSpec int
      StackMap stack:
            iconst_0
            ireturn
        end local 9 // int id
        end local 8 // java.security.spec.ECParameterSpec params
        26: .line 1506
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 4 /* tempPrivateKey */
            putfield sun.security.ssl.ServerHandshaker.privateKey:Ljava/security/PrivateKey;
        27: .line 1507
            aload 0 /* this */
            aload 5 /* tempCerts */
            putfield sun.security.ssl.ServerHandshaker.certs:[Ljava/security/cert/X509Certificate;
        28: .line 1508
            iconst_1
            ireturn
        end local 7 // java.security.PublicKey publicKey
        end local 6 // java.lang.String keyAlgorithm
        end local 5 // java.security.cert.X509Certificate[] tempCerts
        end local 4 // java.security.PrivateKey tempPrivateKey
        end local 3 // java.lang.String alias
        end local 2 // javax.net.ssl.X509ExtendedKeyManager km
        end local 1 // java.lang.String algorithm
        end local 0 // sun.security.ssl.ServerHandshaker this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   29     0            this  Lsun/security/ssl/ServerHandshaker;
            0   29     1       algorithm  Ljava/lang/String;
            1   29     2              km  Ljavax/net/ssl/X509ExtendedKeyManager;
            3    4     3           alias  Ljava/lang/String;
            5   29     3           alias  Ljava/lang/String;
            8   29     4  tempPrivateKey  Ljava/security/PrivateKey;
           11   29     5       tempCerts  [Ljava/security/cert/X509Certificate;
           14   29     6    keyAlgorithm  Ljava/lang/String;
           15   29     7       publicKey  Ljava/security/PublicKey;
           22   26     8          params  Ljava/security/spec/ECParameterSpec;
           23   26     9              id  I
    MethodParameters:
           Name  Flags
      algorithm  

  private boolean setupKerberosKeys();
    descriptor: ()Z
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=6, args_size=1
        start local 0 // sun.security.ssl.ServerHandshaker this
         0: .line 1518
            aload 0 /* this */
            getfield sun.security.ssl.ServerHandshaker.kerberosKeys:[Ljavax/crypto/SecretKey;
            ifnull 2
         1: .line 1519
            iconst_1
            ireturn
         2: .line 1522
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual sun.security.ssl.ServerHandshaker.getAccSE:()Ljava/security/AccessControlContext;
            astore 1 /* acc */
        start local 1 // java.security.AccessControlContext acc
         3: .line 1523
            aload 0 /* this */
         4: .line 1525
            new sun.security.ssl.ServerHandshaker$2
            dup
            aload 0 /* this */
            aload 1 /* acc */
            invokespecial sun.security.ssl.ServerHandshaker$2.<init>:(Lsun/security/ssl/ServerHandshaker;Ljava/security/AccessControlContext;)V
         5: .line 1523
            invokestatic java.security.AccessController.doPrivileged:(Ljava/security/PrivilegedExceptionAction;)Ljava/lang/Object;
            checkcast javax.crypto.SecretKey[]
            putfield sun.security.ssl.ServerHandshaker.kerberosKeys:[Ljavax/crypto/SecretKey;
         6: .line 1533
            aload 0 /* this */
            getfield sun.security.ssl.ServerHandshaker.kerberosKeys:[Ljavax/crypto/SecretKey;
            ifnull 30
            aload 0 /* this */
            getfield sun.security.ssl.ServerHandshaker.kerberosKeys:[Ljavax/crypto/SecretKey;
            arraylength
            ifle 30
         7: .line 1534
            getstatic sun.security.ssl.ServerHandshaker.debug:Lsun/security/ssl/Debug;
            ifnull 15
            ldc "handshake"
            invokestatic sun.security.ssl.Debug.isOn:(Ljava/lang/String;)Z
            ifeq 15
         8: .line 1535
            aload 0 /* this */
            getfield sun.security.ssl.ServerHandshaker.kerberosKeys:[Ljavax/crypto/SecretKey;
            dup
            astore 5
            arraylength
            istore 4
            iconst_0
            istore 3
            goto 14
      StackMap locals: sun.security.ssl.ServerHandshaker java.security.AccessControlContext top int int javax.crypto.SecretKey[]
      StackMap stack:
         9: aload 5
            iload 3
            aaload
            astore 2 /* k */
        start local 2 // javax.crypto.SecretKey k
        10: .line 1536
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            new java.lang.StringBuilder
            dup
            ldc "Using Kerberos key: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
        11: .line 1537
            aload 2 /* k */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        12: .line 1536
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
        end local 2 // javax.crypto.SecretKey k
        13: .line 1535
            iinc 3 1
      StackMap locals:
      StackMap stack:
        14: iload 3
            iload 4
            if_icmplt 9
        15: .line 1542
      StackMap locals: sun.security.ssl.ServerHandshaker java.security.AccessControlContext
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.ServerHandshaker.kerberosKeys:[Ljavax/crypto/SecretKey;
            iconst_0
            aaload
            invokestatic sun.security.ssl.Krb5Helper.getServerPrincipalName:(Ljavax/crypto/SecretKey;)Ljava/lang/String;
        16: .line 1541
            astore 2 /* serverPrincipal */
        start local 2 // java.lang.String serverPrincipal
        17: .line 1543
            invokestatic java.lang.System.getSecurityManager:()Ljava/lang/SecurityManager;
            astore 3 /* sm */
        start local 3 // java.lang.SecurityManager sm
        18: .line 1545
            aload 3 /* sm */
            ifnull 30
        19: .line 1547
            aload 3 /* sm */
        20: .line 1548
            aload 2 /* serverPrincipal */
            ldc "accept"
        21: .line 1547
            invokestatic sun.security.ssl.Krb5Helper.getServicePermission:(Ljava/lang/String;Ljava/lang/String;)Ljava/security/Permission;
        22: .line 1548
            aload 1 /* acc */
        23: .line 1547
            invokevirtual java.lang.SecurityManager.checkPermission:(Ljava/security/Permission;Ljava/lang/Object;)V
        24: .line 1550
            goto 30
      StackMap locals: sun.security.ssl.ServerHandshaker java.security.AccessControlContext java.lang.String java.lang.SecurityManager
      StackMap stack: java.lang.SecurityException
        25: pop
        26: .line 1551
            aload 0 /* this */
            aconst_null
            putfield sun.security.ssl.ServerHandshaker.kerberosKeys:[Ljavax/crypto/SecretKey;
        27: .line 1553
            getstatic sun.security.ssl.ServerHandshaker.debug:Lsun/security/ssl/Debug;
            ifnull 29
            ldc "handshake"
            invokestatic sun.security.ssl.Debug.isOn:(Ljava/lang/String;)Z
            ifeq 29
        28: .line 1554
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            ldc "Permission to access Kerberos secret key denied"
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
        29: .line 1556
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
        end local 3 // java.lang.SecurityManager sm
        end local 2 // java.lang.String serverPrincipal
        30: .line 1559
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.ServerHandshaker.kerberosKeys:[Ljavax/crypto/SecretKey;
            ifnull 31
            aload 0 /* this */
            getfield sun.security.ssl.ServerHandshaker.kerberosKeys:[Ljavax/crypto/SecretKey;
            arraylength
            ifle 31
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
        31: iconst_0
        32: ireturn
        end local 1 // java.security.AccessControlContext acc
        33: .line 1560
      StackMap locals: sun.security.ssl.ServerHandshaker
      StackMap stack: java.security.PrivilegedActionException
            astore 1 /* e */
        start local 1 // java.security.PrivilegedActionException e
        34: .line 1562
            getstatic sun.security.ssl.ServerHandshaker.debug:Lsun/security/ssl/Debug;
            ifnull 38
            ldc "handshake"
            invokestatic sun.security.ssl.Debug.isOn:(Ljava/lang/String;)Z
            ifeq 38
        35: .line 1563
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            new java.lang.StringBuilder
            dup
            ldc "Attempt to obtain Kerberos key failed: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
        36: .line 1564
            aload 1 /* e */
            invokevirtual java.security.PrivilegedActionException.toString:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        37: .line 1563
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
        38: .line 1566
      StackMap locals: java.security.PrivilegedActionException
      StackMap stack:
            iconst_0
            ireturn
        end local 1 // java.security.PrivilegedActionException e
        end local 0 // sun.security.ssl.ServerHandshaker this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0   39     0             this  Lsun/security/ssl/ServerHandshaker;
            3   33     1              acc  Ljava/security/AccessControlContext;
           10   13     2                k  Ljavax/crypto/SecretKey;
           17   30     2  serverPrincipal  Ljava/lang/String;
           18   30     3               sm  Ljava/lang/SecurityManager;
           34   39     1                e  Ljava/security/PrivilegedActionException;
      Exception table:
        from    to  target  type
          18    24      25  Class java.lang.SecurityException
           2    29      33  Class java.security.PrivilegedActionException
          30    32      33  Class java.security.PrivilegedActionException

  private javax.crypto.SecretKey clientKeyExchange(sun.security.ssl.KerberosClientKeyExchange);
    descriptor: (Lsun/security/ssl/KerberosClientKeyExchange;)Ljavax/crypto/SecretKey;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=3, args_size=2
        start local 0 // sun.security.ssl.ServerHandshaker this
        start local 1 // sun.security.ssl.KerberosClientKeyExchange mesg
         0: .line 1577
            getstatic sun.security.ssl.ServerHandshaker.debug:Lsun/security/ssl/Debug;
            ifnull 2
            ldc "handshake"
            invokestatic sun.security.ssl.Debug.isOn:(Ljava/lang/String;)Z
            ifeq 2
         1: .line 1578
            aload 1 /* mesg */
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            invokevirtual sun.security.ssl.KerberosClientKeyExchange.print:(Ljava/io/PrintStream;)V
         2: .line 1582
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.ServerHandshaker.session:Lsun/security/ssl/SSLSessionImpl;
            aload 1 /* mesg */
            invokevirtual sun.security.ssl.KerberosClientKeyExchange.getPeerPrincipal:()Ljava/security/Principal;
            invokevirtual sun.security.ssl.SSLSessionImpl.setPeerPrincipal:(Ljava/security/Principal;)V
         3: .line 1583
            aload 0 /* this */
            getfield sun.security.ssl.ServerHandshaker.session:Lsun/security/ssl/SSLSessionImpl;
            aload 1 /* mesg */
            invokevirtual sun.security.ssl.KerberosClientKeyExchange.getLocalPrincipal:()Ljava/security/Principal;
            invokevirtual sun.security.ssl.SSLSessionImpl.setLocalPrincipal:(Ljava/security/Principal;)V
         4: .line 1585
            aload 1 /* mesg */
            invokevirtual sun.security.ssl.KerberosClientKeyExchange.getUnencryptedPreMasterSecret:()[B
            astore 2 /* b */
        start local 2 // byte[] b
         5: .line 1586
            new javax.crypto.spec.SecretKeySpec
            dup
            aload 2 /* b */
            ldc "TlsPremasterSecret"
            invokespecial javax.crypto.spec.SecretKeySpec.<init>:([BLjava/lang/String;)V
            areturn
        end local 2 // byte[] b
        end local 1 // sun.security.ssl.KerberosClientKeyExchange mesg
        end local 0 // sun.security.ssl.ServerHandshaker this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    6     0  this  Lsun/security/ssl/ServerHandshaker;
            0    6     1  mesg  Lsun/security/ssl/KerberosClientKeyExchange;
            5    6     2     b  [B
    Exceptions:
      throws java.io.IOException
    MethodParameters:
      Name  Flags
      mesg  

  private javax.crypto.SecretKey clientKeyExchange(sun.security.ssl.DHClientKeyExchange);
    descriptor: (Lsun/security/ssl/DHClientKeyExchange;)Ljavax/crypto/SecretKey;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // sun.security.ssl.ServerHandshaker this
        start local 1 // sun.security.ssl.DHClientKeyExchange mesg
         0: .line 1606
            getstatic sun.security.ssl.ServerHandshaker.debug:Lsun/security/ssl/Debug;
            ifnull 2
            ldc "handshake"
            invokestatic sun.security.ssl.Debug.isOn:(Ljava/lang/String;)Z
            ifeq 2
         1: .line 1607
            aload 1 /* mesg */
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            invokevirtual sun.security.ssl.DHClientKeyExchange.print:(Ljava/io/PrintStream;)V
         2: .line 1610
      StackMap locals:
      StackMap stack:
            aload 1 /* mesg */
            invokevirtual sun.security.ssl.DHClientKeyExchange.getClientPublicKey:()Ljava/math/BigInteger;
            astore 2 /* publicKeyValue */
        start local 2 // java.math.BigInteger publicKeyValue
         3: .line 1613
            aload 0 /* this */
            getfield sun.security.ssl.ServerHandshaker.dh:Lsun/security/ssl/DHCrypt;
            aload 0 /* this */
            getfield sun.security.ssl.ServerHandshaker.algorithmConstraints:Ljava/security/AlgorithmConstraints;
            aload 2 /* publicKeyValue */
            invokevirtual sun.security.ssl.DHCrypt.checkConstraints:(Ljava/security/AlgorithmConstraints;Ljava/math/BigInteger;)V
         4: .line 1615
            aload 0 /* this */
            getfield sun.security.ssl.ServerHandshaker.dh:Lsun/security/ssl/DHCrypt;
            aload 2 /* publicKeyValue */
            iconst_0
            invokevirtual sun.security.ssl.DHCrypt.getAgreedSecret:(Ljava/math/BigInteger;Z)Ljavax/crypto/SecretKey;
            areturn
        end local 2 // java.math.BigInteger publicKeyValue
        end local 1 // sun.security.ssl.DHClientKeyExchange mesg
        end local 0 // sun.security.ssl.ServerHandshaker this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    5     0            this  Lsun/security/ssl/ServerHandshaker;
            0    5     1            mesg  Lsun/security/ssl/DHClientKeyExchange;
            3    5     2  publicKeyValue  Ljava/math/BigInteger;
    Exceptions:
      throws java.io.IOException
    MethodParameters:
      Name  Flags
      mesg  

  private javax.crypto.SecretKey clientKeyExchange(sun.security.ssl.ECDHClientKeyExchange);
    descriptor: (Lsun/security/ssl/ECDHClientKeyExchange;)Ljavax/crypto/SecretKey;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // sun.security.ssl.ServerHandshaker this
        start local 1 // sun.security.ssl.ECDHClientKeyExchange mesg
         0: .line 1621
            getstatic sun.security.ssl.ServerHandshaker.debug:Lsun/security/ssl/Debug;
            ifnull 2
            ldc "handshake"
            invokestatic sun.security.ssl.Debug.isOn:(Ljava/lang/String;)Z
            ifeq 2
         1: .line 1622
            aload 1 /* mesg */
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            invokevirtual sun.security.ssl.ECDHClientKeyExchange.print:(Ljava/io/PrintStream;)V
         2: .line 1625
      StackMap locals:
      StackMap stack:
            aload 1 /* mesg */
            invokevirtual sun.security.ssl.ECDHClientKeyExchange.getEncodedPoint:()[B
            astore 2 /* publicPoint */
        start local 2 // byte[] publicPoint
         3: .line 1628
            aload 0 /* this */
            getfield sun.security.ssl.ServerHandshaker.ecdh:Lsun/security/ssl/ECDHCrypt;
            aload 0 /* this */
            getfield sun.security.ssl.ServerHandshaker.algorithmConstraints:Ljava/security/AlgorithmConstraints;
            aload 2 /* publicPoint */
            invokevirtual sun.security.ssl.ECDHCrypt.checkConstraints:(Ljava/security/AlgorithmConstraints;[B)V
         4: .line 1630
            aload 0 /* this */
            getfield sun.security.ssl.ServerHandshaker.ecdh:Lsun/security/ssl/ECDHCrypt;
            aload 2 /* publicPoint */
            invokevirtual sun.security.ssl.ECDHCrypt.getAgreedSecret:([B)Ljavax/crypto/SecretKey;
            areturn
        end local 2 // byte[] publicPoint
        end local 1 // sun.security.ssl.ECDHClientKeyExchange mesg
        end local 0 // sun.security.ssl.ServerHandshaker this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    5     0         this  Lsun/security/ssl/ServerHandshaker;
            0    5     1         mesg  Lsun/security/ssl/ECDHClientKeyExchange;
            3    5     2  publicPoint  [B
    Exceptions:
      throws java.io.IOException
    MethodParameters:
      Name  Flags
      mesg  

  private void clientCertificateVerify(sun.security.ssl.HandshakeMessage$CertificateVerify);
    descriptor: (Lsun/security/ssl/HandshakeMessage$CertificateVerify;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=4, args_size=2
        start local 0 // sun.security.ssl.ServerHandshaker this
        start local 1 // sun.security.ssl.HandshakeMessage$CertificateVerify mesg
         0: .line 1645
            getstatic sun.security.ssl.ServerHandshaker.debug:Lsun/security/ssl/Debug;
            ifnull 2
            ldc "handshake"
            invokestatic sun.security.ssl.Debug.isOn:(Ljava/lang/String;)Z
            ifeq 2
         1: .line 1646
            aload 1 /* mesg */
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            invokevirtual sun.security.ssl.HandshakeMessage$CertificateVerify.print:(Ljava/io/PrintStream;)V
         2: .line 1649
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.ServerHandshaker.protocolVersion:Lsun/security/ssl/ProtocolVersion;
            getfield sun.security.ssl.ProtocolVersion.v:I
            getstatic sun.security.ssl.ProtocolVersion.TLS12:Lsun/security/ssl/ProtocolVersion;
            getfield sun.security.ssl.ProtocolVersion.v:I
            if_icmplt 16
         3: .line 1651
            aload 1 /* mesg */
            invokevirtual sun.security.ssl.HandshakeMessage$CertificateVerify.getPreferableSignatureAlgorithm:()Lsun/security/ssl/SignatureAndHashAlgorithm;
         4: .line 1650
            astore 2 /* signAlg */
        start local 2 // sun.security.ssl.SignatureAndHashAlgorithm signAlg
         5: .line 1652
            aload 2 /* signAlg */
            ifnonnull 9
         6: .line 1653
            new javax.net.ssl.SSLHandshakeException
            dup
         7: .line 1654
            ldc "Illegal CertificateVerify message"
         8: .line 1653
            invokespecial javax.net.ssl.SSLHandshakeException.<init>:(Ljava/lang/String;)V
            athrow
         9: .line 1658
      StackMap locals: sun.security.ssl.SignatureAndHashAlgorithm
      StackMap stack:
            aload 2 /* signAlg */
            invokestatic sun.security.ssl.SignatureAndHashAlgorithm.getHashAlgorithmName:(Lsun/security/ssl/SignatureAndHashAlgorithm;)Ljava/lang/String;
        10: .line 1657
            astore 3 /* hashAlg */
        start local 3 // java.lang.String hashAlg
        11: .line 1659
            aload 3 /* hashAlg */
            ifnull 12
            aload 3 /* hashAlg */
            invokevirtual java.lang.String.length:()I
            ifne 15
        12: .line 1660
      StackMap locals: java.lang.String
      StackMap stack:
            new javax.net.ssl.SSLHandshakeException
            dup
        13: .line 1661
            ldc "No supported hash algorithm"
        14: .line 1660
            invokespecial javax.net.ssl.SSLHandshakeException.<init>:(Ljava/lang/String;)V
            athrow
        15: .line 1664
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.ServerHandshaker.handshakeHash:Lsun/security/ssl/HandshakeHash;
            aload 3 /* hashAlg */
            invokevirtual sun.security.ssl.HandshakeHash.setCertificateVerifyAlg:(Ljava/lang/String;)V
        end local 3 // java.lang.String hashAlg
        end local 2 // sun.security.ssl.SignatureAndHashAlgorithm signAlg
        16: .line 1669
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.ServerHandshaker.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;
        17: .line 1668
            astore 2 /* publicKey */
        start local 2 // java.security.PublicKey publicKey
        18: .line 1671
            aload 1 /* mesg */
            aload 0 /* this */
            getfield sun.security.ssl.ServerHandshaker.protocolVersion:Lsun/security/ssl/ProtocolVersion;
            aload 0 /* this */
            getfield sun.security.ssl.ServerHandshaker.handshakeHash:Lsun/security/ssl/HandshakeHash;
        19: .line 1672
            aload 2 /* publicKey */
            aload 0 /* this */
            getfield sun.security.ssl.ServerHandshaker.session:Lsun/security/ssl/SSLSessionImpl;
            invokevirtual sun.security.ssl.SSLSessionImpl.getMasterSecret:()Ljavax/crypto/SecretKey;
        20: .line 1671
            invokevirtual sun.security.ssl.HandshakeMessage$CertificateVerify.verify:(Lsun/security/ssl/ProtocolVersion;Lsun/security/ssl/HandshakeHash;Ljava/security/PublicKey;Ljavax/crypto/SecretKey;)Z
            istore 3 /* valid */
        start local 3 // boolean valid
        21: .line 1673
            iload 3 /* valid */
            ifne 30
        22: .line 1674
            aload 0 /* this */
            bipush 42
        23: .line 1675
            ldc "certificate verify message signature error"
        24: .line 1674
            invokevirtual sun.security.ssl.ServerHandshaker.fatalSE:(BLjava/lang/String;)V
        end local 3 // boolean valid
        end local 2 // java.security.PublicKey publicKey
        25: .line 1677
            goto 30
      StackMap locals:
      StackMap stack: java.security.GeneralSecurityException
        26: astore 2 /* e */
        start local 2 // java.security.GeneralSecurityException e
        27: .line 1678
            aload 0 /* this */
            bipush 42
        28: .line 1679
            ldc "certificate verify format error"
            aload 2 /* e */
        29: .line 1678
            invokevirtual sun.security.ssl.ServerHandshaker.fatalSE:(BLjava/lang/String;Ljava/lang/Throwable;)V
        end local 2 // java.security.GeneralSecurityException e
        30: .line 1683
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iconst_0
            putfield sun.security.ssl.ServerHandshaker.needClientVerify:Z
        31: .line 1684
            return
        end local 1 // sun.security.ssl.HandshakeMessage$CertificateVerify mesg
        end local 0 // sun.security.ssl.ServerHandshaker this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   32     0       this  Lsun/security/ssl/ServerHandshaker;
            0   32     1       mesg  Lsun/security/ssl/HandshakeMessage$CertificateVerify;
            5   16     2    signAlg  Lsun/security/ssl/SignatureAndHashAlgorithm;
           11   16     3    hashAlg  Ljava/lang/String;
           18   25     2  publicKey  Ljava/security/PublicKey;
           21   25     3      valid  Z
           27   30     2          e  Ljava/security/GeneralSecurityException;
      Exception table:
        from    to  target  type
          16    25      26  Class java.security.GeneralSecurityException
    Exceptions:
      throws java.io.IOException
    MethodParameters:
      Name  Flags
      mesg  

  private void clientFinished(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.ServerHandshaker this
        start local 1 // sun.security.ssl.HandshakeMessage$Finished mesg
         0: .line 1695
            getstatic sun.security.ssl.ServerHandshaker.debug:Lsun/security/ssl/Debug;
            ifnull 2
            ldc "handshake"
            invokestatic sun.security.ssl.Debug.isOn:(Ljava/lang/String;)Z
            ifeq 2
         1: .line 1696
            aload 1 /* mesg */
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            invokevirtual sun.security.ssl.HandshakeMessage$Finished.print:(Ljava/io/PrintStream;)V
         2: .line 1703
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.ServerHandshaker.doClientAuth:B
            iconst_2
            if_icmpne 4
         3: .line 1706
            aload 0 /* this */
            getfield sun.security.ssl.ServerHandshaker.session:Lsun/security/ssl/SSLSessionImpl;
            invokevirtual sun.security.ssl.SSLSessionImpl.getPeerPrincipal:()Ljava/security/Principal;
            pop
         4: .line 1713
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.ServerHandshaker.needClientVerify:Z
            ifeq 8
         5: .line 1714
            aload 0 /* this */
            bipush 40
         6: .line 1715
            ldc "client did not send certificate verify message"
         7: .line 1714
            invokevirtual sun.security.ssl.ServerHandshaker.fatalSE:(BLjava/lang/String;)V
         8: .line 1722
      StackMap locals:
      StackMap stack:
            aload 1 /* mesg */
            aload 0 /* this */
            getfield sun.security.ssl.ServerHandshaker.handshakeHash:Lsun/security/ssl/HandshakeHash;
            iconst_1
         9: .line 1723
            aload 0 /* this */
            getfield sun.security.ssl.ServerHandshaker.session:Lsun/security/ssl/SSLSessionImpl;
            invokevirtual sun.security.ssl.SSLSessionImpl.getMasterSecret:()Ljavax/crypto/SecretKey;
        10: .line 1722
            invokevirtual sun.security.ssl.HandshakeMessage$Finished.verify:(Lsun/security/ssl/HandshakeHash;ILjavax/crypto/SecretKey;)Z
            istore 2 /* verified */
        start local 2 // boolean verified
        11: .line 1725
            iload 2 /* verified */
            ifne 15
        12: .line 1726
            aload 0 /* this */
            bipush 40
        13: .line 1727
            ldc "client 'finished' message doesn't verify"
        14: .line 1726
            invokevirtual sun.security.ssl.ServerHandshaker.fatalSE:(BLjava/lang/String;)V
        15: .line 1734
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.ServerHandshaker.secureRenegotiation:Z
            ifeq 17
        16: .line 1735
            aload 0 /* this */
            aload 1 /* mesg */
            invokevirtual sun.security.ssl.HandshakeMessage$Finished.getVerifyData:()[B
            putfield sun.security.ssl.ServerHandshaker.clientVerifyData:[B
        17: .line 1743
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.ServerHandshaker.resumingSession:Z
            ifne 21
        18: .line 1744
            aload 0 /* this */
            getfield sun.security.ssl.ServerHandshaker.input:Lsun/security/ssl/HandshakeInStream;
            invokevirtual sun.security.ssl.HandshakeInStream.digestNow:()V
        19: .line 1745
            aload 0 /* this */
            iconst_1
            invokevirtual sun.security.ssl.ServerHandshaker.sendChangeCipherAndFinish:(Z)V
        20: .line 1746
            goto 22
        21: .line 1747
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iconst_1
            putfield sun.security.ssl.ServerHandshaker.handshakeFinished:Z
        22: .line 1754
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.ServerHandshaker.session:Lsun/security/ssl/SSLSessionImpl;
            invokestatic java.lang.System.currentTimeMillis:()J
            invokevirtual sun.security.ssl.SSLSessionImpl.setLastAccessedTime:(J)V
        23: .line 1755
            aload 0 /* this */
            getfield sun.security.ssl.ServerHandshaker.resumingSession:Z
            ifne 31
            aload 0 /* this */
            getfield sun.security.ssl.ServerHandshaker.session:Lsun/security/ssl/SSLSessionImpl;
            invokevirtual sun.security.ssl.SSLSessionImpl.isRejoinable:()Z
            ifeq 31
        24: .line 1756
            aload 0 /* this */
            getfield sun.security.ssl.ServerHandshaker.sslContext:Lsun/security/ssl/SSLContextImpl;
            invokevirtual sun.security.ssl.SSLContextImpl.engineGetServerSessionContext:()Ljavax/net/ssl/SSLSessionContext;
            checkcast sun.security.ssl.SSLSessionContextImpl
        25: .line 1757
            aload 0 /* this */
            getfield sun.security.ssl.ServerHandshaker.session:Lsun/security/ssl/SSLSessionImpl;
            invokevirtual sun.security.ssl.SSLSessionContextImpl.put:(Lsun/security/ssl/SSLSessionImpl;)V
        26: .line 1758
            getstatic sun.security.ssl.ServerHandshaker.debug:Lsun/security/ssl/Debug;
            ifnull 38
            ldc "session"
            invokestatic sun.security.ssl.Debug.isOn:(Ljava/lang/String;)Z
            ifeq 38
        27: .line 1759
            getstatic java.lang.System.out:Ljava/io/PrintStream;
        28: .line 1760
            new java.lang.StringBuilder
            dup
            ldc "%% Cached server session: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* this */
            getfield sun.security.ssl.ServerHandshaker.session:Lsun/security/ssl/SSLSessionImpl;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        29: .line 1759
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
        30: .line 1762
            goto 38
      StackMap locals:
      StackMap stack:
        31: aload 0 /* this */
            getfield sun.security.ssl.ServerHandshaker.resumingSession:Z
            ifne 38
        32: .line 1763
            getstatic sun.security.ssl.ServerHandshaker.debug:Lsun/security/ssl/Debug;
            ifnull 38
            ldc "session"
            invokestatic sun.security.ssl.Debug.isOn:(Ljava/lang/String;)Z
            ifeq 38
        33: .line 1764
            getstatic java.lang.System.out:Ljava/io/PrintStream;
        34: .line 1765
            new java.lang.StringBuilder
            dup
            ldc "%% Didn't cache non-resumable server session: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
        35: .line 1766
            aload 0 /* this */
            getfield sun.security.ssl.ServerHandshaker.session:Lsun/security/ssl/SSLSessionImpl;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
        36: .line 1765
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        37: .line 1764
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
        38: .line 1768
      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.ServerHandshaker this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   39     0      this  Lsun/security/ssl/ServerHandshaker;
            0   39     1      mesg  Lsun/security/ssl/HandshakeMessage$Finished;
           11   39     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.ServerHandshaker this
        start local 1 // boolean finishedTag
         0: .line 1777
            aload 0 /* this */
            getfield sun.security.ssl.ServerHandshaker.output:Lsun/security/ssl/HandshakeOutStream;
            invokevirtual sun.security.ssl.HandshakeOutStream.flush:()V
         1: .line 1779
            new sun.security.ssl.HandshakeMessage$Finished
            dup
            aload 0 /* this */
            getfield sun.security.ssl.ServerHandshaker.protocolVersion:Lsun/security/ssl/ProtocolVersion;
            aload 0 /* this */
            getfield sun.security.ssl.ServerHandshaker.handshakeHash:Lsun/security/ssl/HandshakeHash;
         2: .line 1780
            iconst_2
            aload 0 /* this */
            getfield sun.security.ssl.ServerHandshaker.session:Lsun/security/ssl/SSLSessionImpl;
            invokevirtual sun.security.ssl.SSLSessionImpl.getMasterSecret:()Ljavax/crypto/SecretKey;
            aload 0 /* this */
            getfield sun.security.ssl.ServerHandshaker.cipherSuite:Lsun/security/ssl/CipherSuite;
         3: .line 1779
            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 1787
            aload 0 /* this */
            aload 2 /* mesg */
            iload 1 /* finishedTag */
            invokevirtual sun.security.ssl.ServerHandshaker.sendChangeCipherSpec:(Lsun/security/ssl/HandshakeMessage$Finished;Z)V
         5: .line 1792
            aload 0 /* this */
            getfield sun.security.ssl.ServerHandshaker.secureRenegotiation:Z
            ifeq 7
         6: .line 1793
            aload 0 /* this */
            aload 2 /* mesg */
            invokevirtual sun.security.ssl.HandshakeMessage$Finished.getVerifyData:()[B
            putfield sun.security.ssl.ServerHandshaker.serverVerifyData:[B
         7: .line 1795
      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.ServerHandshaker this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    8     0         this  Lsun/security/ssl/ServerHandshaker;
            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=2, locals=1, args_size=1
        start local 0 // sun.security.ssl.ServerHandshaker this
         0: .line 1802
            new sun.security.ssl.HandshakeMessage$HelloRequest
            dup
            invokespecial sun.security.ssl.HandshakeMessage$HelloRequest.<init>:()V
            areturn
        end local 0 // sun.security.ssl.ServerHandshaker this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lsun/security/ssl/ServerHandshaker;

  void handshakeAlert(byte);
    descriptor: (B)V
    flags: (0x0000) 
    Code:
      stack=5, locals=3, args_size=2
        start local 0 // sun.security.ssl.ServerHandshaker this
        start local 1 // byte description
         0: .line 1811
            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 1813
            getstatic sun.security.ssl.ServerHandshaker.debug:Lsun/security/ssl/Debug;
            ifnull 5
            ldc "handshake"
            invokestatic sun.security.ssl.Debug.isOn:(Ljava/lang/String;)Z
            ifeq 5
         2: .line 1814
            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
         3: .line 1815
            aload 2 /* message */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
         4: .line 1814
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
         5: .line 1826
      StackMap locals: java.lang.String
      StackMap stack:
            iload 1 /* description */
            bipush 41
            if_icmpne 8
         6: .line 1827
            aload 0 /* this */
            getfield sun.security.ssl.ServerHandshaker.doClientAuth:B
            iconst_1
            if_icmpne 8
         7: .line 1828
            return
         8: .line 1831
      StackMap locals:
      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.ServerHandshaker this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    9     0         this  Lsun/security/ssl/ServerHandshaker;
            0    9     1  description  B
            1    9     2      message  Ljava/lang/String;
    Exceptions:
      throws javax.net.ssl.SSLProtocolException
    MethodParameters:
             Name  Flags
      description  

  private javax.crypto.SecretKey clientKeyExchange(sun.security.ssl.RSAClientKeyExchange);
    descriptor: (Lsun/security/ssl/RSAClientKeyExchange;)Ljavax/crypto/SecretKey;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // sun.security.ssl.ServerHandshaker this
        start local 1 // sun.security.ssl.RSAClientKeyExchange mesg
         0: .line 1843
            getstatic sun.security.ssl.ServerHandshaker.debug:Lsun/security/ssl/Debug;
            ifnull 2
            ldc "handshake"
            invokestatic sun.security.ssl.Debug.isOn:(Ljava/lang/String;)Z
            ifeq 2
         1: .line 1844
            aload 1 /* mesg */
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            invokevirtual sun.security.ssl.RSAClientKeyExchange.print:(Ljava/io/PrintStream;)V
         2: .line 1846
      StackMap locals:
      StackMap stack:
            aload 1 /* mesg */
            getfield sun.security.ssl.RSAClientKeyExchange.preMaster:Ljavax/crypto/SecretKey;
            areturn
        end local 1 // sun.security.ssl.RSAClientKeyExchange mesg
        end local 0 // sun.security.ssl.ServerHandshaker this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lsun/security/ssl/ServerHandshaker;
            0    3     1  mesg  Lsun/security/ssl/RSAClientKeyExchange;
    Exceptions:
      throws java.io.IOException
    MethodParameters:
      Name  Flags
      mesg  

  private void clientCertificate(sun.security.ssl.HandshakeMessage$CertificateMsg);
    descriptor: (Lsun/security/ssl/HandshakeMessage$CertificateMsg;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=7, args_size=2
        start local 0 // sun.security.ssl.ServerHandshaker this
        start local 1 // sun.security.ssl.HandshakeMessage$CertificateMsg mesg
         0: .line 1857
            getstatic sun.security.ssl.ServerHandshaker.debug:Lsun/security/ssl/Debug;
            ifnull 2
            ldc "handshake"
            invokestatic sun.security.ssl.Debug.isOn:(Ljava/lang/String;)Z
            ifeq 2
         1: .line 1858
            aload 1 /* mesg */
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            invokevirtual sun.security.ssl.HandshakeMessage$CertificateMsg.print:(Ljava/io/PrintStream;)V
         2: .line 1861
      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 1863
            aload 2 /* peerCerts */
            arraylength
            ifne 11
         4: .line 1868
            aload 0 /* this */
            getfield sun.security.ssl.ServerHandshaker.doClientAuth:B
            iconst_1
            if_icmpne 8
         5: .line 1871
            aload 0 /* this */
            getfield sun.security.ssl.ServerHandshaker.protocolVersion:Lsun/security/ssl/ProtocolVersion;
            getfield sun.security.ssl.ProtocolVersion.v:I
            getstatic sun.security.ssl.ProtocolVersion.TLS12:Lsun/security/ssl/ProtocolVersion;
            getfield sun.security.ssl.ProtocolVersion.v:I
            if_icmplt 7
         6: .line 1872
            aload 0 /* this */
            getfield sun.security.ssl.ServerHandshaker.handshakeHash:Lsun/security/ssl/HandshakeHash;
            aconst_null
            invokevirtual sun.security.ssl.HandshakeHash.setCertificateVerifyAlg:(Ljava/lang/String;)V
         7: .line 1874
      StackMap locals: java.security.cert.X509Certificate[]
      StackMap stack:
            return
         8: .line 1876
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            bipush 42
         9: .line 1877
            ldc "null cert chain"
        10: .line 1876
            invokevirtual sun.security.ssl.ServerHandshaker.fatalSE:(BLjava/lang/String;)V
        11: .line 1882
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.ServerHandshaker.sslContext:Lsun/security/ssl/SSLContextImpl;
            invokevirtual sun.security.ssl.SSLContextImpl.getX509TrustManager:()Ljavax/net/ssl/X509TrustManager;
            astore 3 /* tm */
        start local 3 // javax.net.ssl.X509TrustManager tm
        12: .line 1886
            aload 2 /* peerCerts */
            iconst_0
            aaload
            invokevirtual java.security.cert.X509Certificate.getPublicKey:()Ljava/security/PublicKey;
            astore 4 /* key */
        start local 4 // java.security.PublicKey key
        13: .line 1887
            aload 4 /* key */
            invokeinterface java.security.PublicKey.getAlgorithm:()Ljava/lang/String;
            astore 5 /* keyAlgorithm */
        start local 5 // java.lang.String keyAlgorithm
        14: .line 1889
            aload 5 /* keyAlgorithm */
            ldc "RSA"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 17
        15: .line 1890
            ldc "RSA"
            astore 6 /* authType */
        start local 6 // java.lang.String authType
        16: .line 1891
            goto 24
        end local 6 // java.lang.String authType
      StackMap locals: javax.net.ssl.X509TrustManager java.security.PublicKey java.lang.String
      StackMap stack:
        17: aload 5 /* keyAlgorithm */
            ldc "DSA"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 20
        18: .line 1892
            ldc "DSA"
            astore 6 /* authType */
        start local 6 // java.lang.String authType
        19: .line 1893
            goto 24
        end local 6 // java.lang.String authType
      StackMap locals:
      StackMap stack:
        20: aload 5 /* keyAlgorithm */
            ldc "EC"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 23
        21: .line 1894
            ldc "EC"
            astore 6 /* authType */
        start local 6 // java.lang.String authType
        22: .line 1895
            goto 24
        end local 6 // java.lang.String authType
        23: .line 1897
      StackMap locals:
      StackMap stack:
            ldc "UNKNOWN"
            astore 6 /* authType */
        start local 6 // java.lang.String authType
        24: .line 1900
      StackMap locals: java.lang.String
      StackMap stack:
            aload 3 /* tm */
            instanceof javax.net.ssl.X509ExtendedTrustManager
            ifeq 38
        25: .line 1901
            aload 0 /* this */
            getfield sun.security.ssl.ServerHandshaker.conn:Lsun/security/ssl/SSLSocketImpl;
            ifnull 32
        26: .line 1902
            aload 3 /* tm */
            checkcast javax.net.ssl.X509ExtendedTrustManager
        27: .line 1903
            aload 2 /* peerCerts */
            invokevirtual java.security.cert.X509Certificate[].clone:()Ljava/lang/Object;
            checkcast java.security.cert.X509Certificate[]
        28: .line 1904
            aload 6 /* authType */
        29: .line 1905
            aload 0 /* this */
            getfield sun.security.ssl.ServerHandshaker.conn:Lsun/security/ssl/SSLSocketImpl;
        30: .line 1902
            invokevirtual javax.net.ssl.X509ExtendedTrustManager.checkClientTrusted:([Ljava/security/cert/X509Certificate;Ljava/lang/String;Ljava/net/Socket;)V
        31: .line 1906
            goto 43
        32: .line 1907
      StackMap locals:
      StackMap stack:
            aload 3 /* tm */
            checkcast javax.net.ssl.X509ExtendedTrustManager
        33: .line 1908
            aload 2 /* peerCerts */
            invokevirtual java.security.cert.X509Certificate[].clone:()Ljava/lang/Object;
            checkcast java.security.cert.X509Certificate[]
        34: .line 1909
            aload 6 /* authType */
        35: .line 1910
            aload 0 /* this */
            getfield sun.security.ssl.ServerHandshaker.engine:Lsun/security/ssl/SSLEngineImpl;
        36: .line 1907
            invokevirtual javax.net.ssl.X509ExtendedTrustManager.checkClientTrusted:([Ljava/security/cert/X509Certificate;Ljava/lang/String;Ljavax/net/ssl/SSLEngine;)V
        37: .line 1912
            goto 43
        38: .line 1915
      StackMap locals:
      StackMap stack:
            new java.security.cert.CertificateException
            dup
        39: .line 1916
            ldc "Improper X509TrustManager implementation"
        40: .line 1915
            invokespecial java.security.cert.CertificateException.<init>:(Ljava/lang/String;)V
            athrow
        end local 6 // java.lang.String authType
        end local 5 // java.lang.String keyAlgorithm
        end local 4 // java.security.PublicKey key
        41: .line 1918
      StackMap locals: sun.security.ssl.ServerHandshaker sun.security.ssl.HandshakeMessage$CertificateMsg java.security.cert.X509Certificate[] javax.net.ssl.X509TrustManager
      StackMap stack: java.security.cert.CertificateException
            astore 4 /* e */
        start local 4 // java.security.cert.CertificateException e
        42: .line 1920
            aload 0 /* this */
            bipush 46
            aload 4 /* e */
            invokevirtual sun.security.ssl.ServerHandshaker.fatalSE:(BLjava/lang/Throwable;)V
        end local 4 // java.security.cert.CertificateException e
        43: .line 1923
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iconst_1
            putfield sun.security.ssl.ServerHandshaker.needClientVerify:Z
        44: .line 1925
            aload 0 /* this */
            getfield sun.security.ssl.ServerHandshaker.session:Lsun/security/ssl/SSLSessionImpl;
            aload 2 /* peerCerts */
            invokevirtual sun.security.ssl.SSLSessionImpl.setPeerCertificates:([Ljava/security/cert/X509Certificate;)V
        45: .line 1926
            return
        end local 3 // javax.net.ssl.X509TrustManager tm
        end local 2 // java.security.cert.X509Certificate[] peerCerts
        end local 1 // sun.security.ssl.HandshakeMessage$CertificateMsg mesg
        end local 0 // sun.security.ssl.ServerHandshaker this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0   46     0          this  Lsun/security/ssl/ServerHandshaker;
            0   46     1          mesg  Lsun/security/ssl/HandshakeMessage$CertificateMsg;
            3   46     2     peerCerts  [Ljava/security/cert/X509Certificate;
           12   46     3            tm  Ljavax/net/ssl/X509TrustManager;
           13   41     4           key  Ljava/security/PublicKey;
           14   41     5  keyAlgorithm  Ljava/lang/String;
           16   17     6      authType  Ljava/lang/String;
           19   20     6      authType  Ljava/lang/String;
           22   23     6      authType  Ljava/lang/String;
           24   41     6      authType  Ljava/lang/String;
           42   43     4             e  Ljava/security/cert/CertificateException;
      Exception table:
        from    to  target  type
          12    41      41  Class java.security.cert.CertificateException
    Exceptions:
      throws java.io.IOException
    MethodParameters:
      Name  Flags
      mesg  

  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 62
            getstatic sun.security.ssl.ServerHandshaker.$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.ServerHandshaker.$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: "ServerHandshaker.java"
NestMembers:
  sun.security.ssl.ServerHandshaker$1  sun.security.ssl.ServerHandshaker$2
InnerClasses:
  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 CertificateVerify = sun.security.ssl.HandshakeMessage$CertificateVerify of sun.security.ssl.HandshakeMessage
  final ClientHello = sun.security.ssl.HandshakeMessage$ClientHello of sun.security.ssl.HandshakeMessage
  final DH_ServerKeyExchange = sun.security.ssl.HandshakeMessage$DH_ServerKeyExchange of sun.security.ssl.HandshakeMessage
  final ECDH_ServerKeyExchange = sun.security.ssl.HandshakeMessage$ECDH_ServerKeyExchange of sun.security.ssl.HandshakeMessage
  final Finished = sun.security.ssl.HandshakeMessage$Finished of sun.security.ssl.HandshakeMessage
  final HelloRequest = sun.security.ssl.HandshakeMessage$HelloRequest of sun.security.ssl.HandshakeMessage
  final RSA_ServerKeyExchange = sun.security.ssl.HandshakeMessage$RSA_ServerKeyExchange of sun.security.ssl.HandshakeMessage
  final ServerHello = sun.security.ssl.HandshakeMessage$ServerHello of sun.security.ssl.HandshakeMessage
  final ServerHelloDone = sun.security.ssl.HandshakeMessage$ServerHelloDone of sun.security.ssl.HandshakeMessage
  abstract ServerKeyExchange = sun.security.ssl.HandshakeMessage$ServerKeyExchange of sun.security.ssl.HandshakeMessage
  sun.security.ssl.ServerHandshaker$1
  sun.security.ssl.ServerHandshaker$2
  final HashAlgorithm = sun.security.ssl.SignatureAndHashAlgorithm$HashAlgorithm of sun.security.ssl.SignatureAndHashAlgorithm
  final SignatureAlgorithm = sun.security.ssl.SignatureAndHashAlgorithm$SignatureAlgorithm of sun.security.ssl.SignatureAndHashAlgorithm