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.security.auth.kerberos.KerberosKey[] kerberosKeys;
    descriptor: [Ljavax/security/auth/kerberos/KerberosKey;
    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.SupportedEllipticCurvesExtension requestedCurves;
    descriptor: Lsun/security/ssl/SupportedEllipticCurvesExtension;
    flags: (0x0002) ACC_PRIVATE

  private static final sun.security.util.AlgorithmConstraints legacyAlgorithmConstraints;
    descriptor: Lsun/security/util/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 108
            new sun.security.util.LegacyAlgorithmConstraints
            dup
         1: .line 109
            ldc "jdk.tls.legacyAlgorithms"
         2: .line 110
            new sun.security.ssl.SSLAlgorithmDecomposer
            dup
            invokespecial sun.security.ssl.SSLAlgorithmDecomposer.<init>:()V
         3: .line 108
            invokespecial sun.security.util.LegacyAlgorithmConstraints.<init>:(Ljava/lang/String;Lsun/security/util/AlgorithmDecomposer;)V
         4: .line 107
            putstatic sun.security.ssl.ServerHandshaker.legacyAlgorithmConstraints:Lsun/security/util/AlgorithmConstraints;
         5: .line 125
            new sun.security.action.GetPropertyAction
            dup
            ldc "jdk.tls.ephemeralDHKeySize"
            invokespecial sun.security.action.GetPropertyAction.<init>:(Ljava/lang/String;)V
         6: .line 124
            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 126
            aload 0 /* property */
            ifnull 8
            aload 0 /* property */
            invokevirtual java.lang.String.length:()I
            ifne 12
         8: .line 127
      StackMap locals: java.lang.String
      StackMap stack:
            iconst_0
            putstatic sun.security.ssl.ServerHandshaker.useLegacyEphemeralDHKeys:Z
         9: .line 128
            iconst_0
            putstatic sun.security.ssl.ServerHandshaker.useSmartEphemeralDHKeys:Z
        10: .line 129
            iconst_m1
            putstatic sun.security.ssl.ServerHandshaker.customizedDHKeySize:I
        11: .line 130
            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 131
            iconst_0
            putstatic sun.security.ssl.ServerHandshaker.useLegacyEphemeralDHKeys:Z
        14: .line 132
            iconst_1
            putstatic sun.security.ssl.ServerHandshaker.useSmartEphemeralDHKeys:Z
        15: .line 133
            iconst_m1
            putstatic sun.security.ssl.ServerHandshaker.customizedDHKeySize:I
        16: .line 134
            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 135
            iconst_1
            putstatic sun.security.ssl.ServerHandshaker.useLegacyEphemeralDHKeys:Z
        19: .line 136
            iconst_0
            putstatic sun.security.ssl.ServerHandshaker.useSmartEphemeralDHKeys:Z
        20: .line 137
            iconst_m1
            putstatic sun.security.ssl.ServerHandshaker.customizedDHKeySize:I
        21: .line 138
            goto 38
        22: .line 139
      StackMap locals:
      StackMap stack:
            iconst_0
            putstatic sun.security.ssl.ServerHandshaker.useLegacyEphemeralDHKeys:Z
        23: .line 140
            iconst_0
            putstatic sun.security.ssl.ServerHandshaker.useSmartEphemeralDHKeys:Z
        24: .line 146
            aload 0 /* property */
            invokestatic sun.security.ssl.ServerHandshaker.parseUnsignedInt:(Ljava/lang/String;)I
            putstatic sun.security.ssl.ServerHandshaker.customizedDHKeySize:I
        25: .line 147
            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 148
            getstatic sun.security.ssl.ServerHandshaker.customizedDHKeySize:I
            bipush 63
            iand
            ifeq 38
        27: .line 149
      StackMap locals:
      StackMap stack:
            new java.lang.IllegalArgumentException
            dup
        28: .line 150
            new java.lang.StringBuilder
            dup
            ldc "Unsupported customized DH key size: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
        29: .line 151
            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 152
            ldc "The key size must be multiple of 64, "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        31: .line 153
            ldc "and can only range from 1024 to 8192 (inclusive)"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        32: .line 150
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        33: .line 149
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
        34: .line 155
      StackMap locals:
      StackMap stack: java.lang.NumberFormatException
            pop
        35: .line 156
            new java.lang.IllegalArgumentException
            dup
        36: .line 157
            ldc "Invalid system property jdk.tls.ephemeralDHKeySize"
        37: .line 156
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
        end local 0 // java.lang.String property
        38: .line 160
      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 171
            aload 0 /* this */
            aload 1 /* socket */
            aload 2 /* context */
            aload 3 /* enabledProtocols */
         1: .line 172
            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 173
            aload 5 /* activeProtocolVersion */
            iload 6 /* isInitialHandshake */
            iload 7 /* secureRenegotiation */
         5: .line 174
            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 80
            aload 0 /* this */
            iconst_0
            putfield sun.security.ssl.ServerHandshaker.needClientVerify:Z
         7: .line 175
            aload 0 /* this */
            iload 4 /* clientAuth */
            putfield sun.security.ssl.ServerHandshaker.doClientAuth:B
         8: .line 176
            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 187
            aload 0 /* this */
            aload 1 /* engine */
            aload 2 /* context */
            aload 3 /* enabledProtocols */
         1: .line 188
            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 189
            aload 5 /* activeProtocolVersion */
            iload 6 /* isInitialHandshake */
            iload 7 /* secureRenegotiation */
         5: .line 190
            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 80
            aload 0 /* this */
            iconst_0
            putfield sun.security.ssl.ServerHandshaker.needClientVerify:Z
         7: .line 191
            aload 0 /* this */
            iload 4 /* clientAuth */
            putfield sun.security.ssl.ServerHandshaker.doClientAuth:B
         8: .line 192
            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 200
            aload 0 /* this */
            iload 1 /* clientAuth */
            putfield sun.security.ssl.ServerHandshaker.doClientAuth:B
         1: .line 201
            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=6, args_size=3
        start local 0 // sun.security.ssl.ServerHandshaker this
        start local 1 // byte type
        start local 2 // int message_len
         0: .line 218
            aload 0 /* this */
            getfield sun.security.ssl.ServerHandshaker.state:I
            iload 1 /* type */
            if_icmplt 8
         1: .line 219
            aload 0 /* this */
            getfield sun.security.ssl.ServerHandshaker.state:I
            bipush 16
            if_icmpeq 8
         2: .line 220
            iload 1 /* type */
            bipush 15
            if_icmpeq 8
         3: .line 221
            new javax.net.ssl.SSLProtocolException
            dup
         4: .line 222
            new java.lang.StringBuilder
            dup
            ldc "Handshake message sequence violation, state = "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* this */
            getfield sun.security.ssl.ServerHandshaker.state:I
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
         5: .line 223
            ldc ", type = "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            iload 1 /* type */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
         6: .line 222
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
         7: .line 221
            invokespecial javax.net.ssl.SSLProtocolException.<init>:(Ljava/lang/String;)V
            athrow
         8: .line 226
      StackMap locals:
      StackMap stack:
            iload 1 /* type */
            lookupswitch { // 5
                    1: 9
                   11: 12
                   15: 50
                   16: 18
                   20: 52
              default: 58
          }
         9: .line 228
      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
        10: .line 232
            aload 0 /* this */
            aload 3 /* ch */
            invokevirtual sun.security.ssl.ServerHandshaker.clientHello:(Lsun/security/ssl/HandshakeMessage$ClientHello;)V
        11: .line 233
            goto 61
        end local 3 // sun.security.ssl.HandshakeMessage$ClientHello ch
        12: .line 236
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.ServerHandshaker.doClientAuth:B
            ifne 16
        13: .line 237
            aload 0 /* this */
            bipush 10
        14: .line 238
            ldc "client sent unsolicited cert chain"
        15: .line 237
            invokevirtual sun.security.ssl.ServerHandshaker.fatalSE:(BLjava/lang/String;)V
        16: .line 241
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            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
            invokevirtual sun.security.ssl.ServerHandshaker.clientCertificate:(Lsun/security/ssl/HandshakeMessage$CertificateMsg;)V
        17: .line 242
            goto 61
        18: .line 246
      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: 19
                    3: 19
                    4: 43
                    5: 43
                    6: 35
                    7: 35
                    8: 35
                    9: 39
                   10: 39
                   11: 39
                   12: 39
                   13: 39
                   14: 26
                   15: 26
              default: 43
          }
        19: .line 255
      StackMap locals:
      StackMap stack:
            new sun.security.ssl.RSAClientKeyExchange
            dup
        20: .line 256
            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;
        21: .line 257
            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;
        22: .line 258
            iload 2 /* message_len */
            aload 0 /* this */
            getfield sun.security.ssl.ServerHandshaker.privateKey:Ljava/security/PrivateKey;
        23: .line 255
            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 5 /* pms */
        start local 5 // sun.security.ssl.RSAClientKeyExchange pms
        24: .line 259
            aload 0 /* this */
            aload 5 /* pms */
            invokevirtual sun.security.ssl.ServerHandshaker.clientKeyExchange:(Lsun/security/ssl/RSAClientKeyExchange;)Ljavax/crypto/SecretKey;
            astore 4 /* preMasterSecret */
        start local 4 // javax.crypto.SecretKey preMasterSecret
        25: .line 260
            goto 46
        end local 5 // sun.security.ssl.RSAClientKeyExchange pms
        end local 4 // javax.crypto.SecretKey preMasterSecret
        26: .line 263
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
        27: .line 264
            new sun.security.ssl.KerberosClientKeyExchange
            dup
            aload 0 /* this */
            getfield sun.security.ssl.ServerHandshaker.protocolVersion:Lsun/security/ssl/ProtocolVersion;
        28: .line 265
            aload 0 /* this */
            getfield sun.security.ssl.ServerHandshaker.clientRequestedVersion:Lsun/security/ssl/ProtocolVersion;
        29: .line 266
            aload 0 /* this */
            getfield sun.security.ssl.ServerHandshaker.sslContext:Lsun/security/ssl/SSLContextImpl;
            invokevirtual sun.security.ssl.SSLContextImpl.getSecureRandom:()Ljava/security/SecureRandom;
        30: .line 267
            aload 0 /* this */
            getfield sun.security.ssl.ServerHandshaker.input:Lsun/security/ssl/HandshakeInStream;
        31: .line 268
            aload 0 /* this */
            getfield sun.security.ssl.ServerHandshaker.kerberosKeys:[Ljavax/security/auth/kerberos/KerberosKey;
        32: .line 264
            invokespecial sun.security.ssl.KerberosClientKeyExchange.<init>:(Lsun/security/ssl/ProtocolVersion;Lsun/security/ssl/ProtocolVersion;Ljava/security/SecureRandom;Lsun/security/ssl/HandshakeInStream;[Ljavax/security/auth/kerberos/KerberosKey;)V
        33: .line 263
            invokevirtual sun.security.ssl.ServerHandshaker.clientKeyExchange:(Lsun/security/ssl/KerberosClientKeyExchange;)Ljavax/crypto/SecretKey;
            astore 4 /* preMasterSecret */
        start local 4 // javax.crypto.SecretKey preMasterSecret
        34: .line 269
            goto 46
        end local 4 // javax.crypto.SecretKey preMasterSecret
        35: .line 279
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
        36: .line 280
            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
        37: .line 279
            invokevirtual sun.security.ssl.ServerHandshaker.clientKeyExchange:(Lsun/security/ssl/DHClientKeyExchange;)Ljavax/crypto/SecretKey;
            astore 4 /* preMasterSecret */
        start local 4 // javax.crypto.SecretKey preMasterSecret
        38: .line 281
            goto 46
        end local 4 // javax.crypto.SecretKey preMasterSecret
        39: .line 287
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
        40: .line 288
            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
        41: .line 287
            invokevirtual sun.security.ssl.ServerHandshaker.clientKeyExchange:(Lsun/security/ssl/ECDHClientKeyExchange;)Ljavax/crypto/SecretKey;
            astore 4 /* preMasterSecret */
        start local 4 // javax.crypto.SecretKey preMasterSecret
        42: .line 289
            goto 46
        end local 4 // javax.crypto.SecretKey preMasterSecret
        43: .line 291
      StackMap locals:
      StackMap stack:
            new javax.net.ssl.SSLProtocolException
            dup
        44: .line 292
            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;
        45: .line 291
            invokespecial javax.net.ssl.SSLProtocolException.<init>:(Ljava/lang/String;)V
            athrow
        start local 4 // javax.crypto.SecretKey preMasterSecret
        46: .line 296
      StackMap locals: sun.security.ssl.ServerHandshaker int int 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 48
        47: .line 297
            aload 0 /* this */
            getfield sun.security.ssl.ServerHandshaker.input:Lsun/security/ssl/HandshakeInStream;
            invokevirtual sun.security.ssl.HandshakeInStream.digestNow:()V
        48: .line 304
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 4 /* 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
        49: .line 305
            goto 61
        end local 4 // javax.crypto.SecretKey preMasterSecret
        50: .line 308
      StackMap locals: sun.security.ssl.ServerHandshaker int int
      StackMap stack:
            aload 0 /* this */
            new sun.security.ssl.HandshakeMessage$CertificateVerify
            dup
            aload 0 /* this */
            getfield sun.security.ssl.ServerHandshaker.input:Lsun/security/ssl/HandshakeInStream;
            invokespecial sun.security.ssl.HandshakeMessage$CertificateVerify.<init>:(Lsun/security/ssl/HandshakeInStream;)V
            invokevirtual sun.security.ssl.ServerHandshaker.clientCertificateVerify:(Lsun/security/ssl/HandshakeMessage$CertificateVerify;)V
        51: .line 309
            goto 61
        52: .line 314
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual sun.security.ssl.ServerHandshaker.receivedChangeCipherSpec:()Z
            ifne 56
        53: .line 315
            aload 0 /* this */
            bipush 40
        54: .line 316
            ldc "Received Finished message before ChangeCipherSpec"
        55: .line 315
            invokevirtual sun.security.ssl.ServerHandshaker.fatalSE:(BLjava/lang/String;)V
        56: .line 319
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            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;
            invokespecial sun.security.ssl.HandshakeMessage$Finished.<init>:(Lsun/security/ssl/ProtocolVersion;Lsun/security/ssl/HandshakeInStream;)V
            invokevirtual sun.security.ssl.ServerHandshaker.clientFinished:(Lsun/security/ssl/HandshakeMessage$Finished;)V
        57: .line 320
            goto 61
        58: .line 323
      StackMap locals:
      StackMap stack:
            new javax.net.ssl.SSLProtocolException
            dup
        59: .line 324
            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;
        60: .line 323
            invokespecial javax.net.ssl.SSLProtocolException.<init>:(Ljava/lang/String;)V
            athrow
        61: .line 331
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.ServerHandshaker.state:I
            iload 1 /* type */
            if_icmpge 66
        62: .line 332
            iload 1 /* type */
            bipush 15
            if_icmpne 65
        63: .line 333
            aload 0 /* this */
            iload 1 /* type */
            iconst_2
            iadd
            putfield sun.security.ssl.ServerHandshaker.state:I
        64: .line 334
            goto 66
        65: .line 335
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iload 1 /* type */
            putfield sun.security.ssl.ServerHandshaker.state:I
        66: .line 338
      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   67     0             this  Lsun/security/ssl/ServerHandshaker;
            0   67     1             type  B
            0   67     2      message_len  I
           10   12     3               ch  Lsun/security/ssl/HandshakeMessage$ClientHello;
           25   26     4  preMasterSecret  Ljavax/crypto/SecretKey;
           34   35     4  preMasterSecret  Ljavax/crypto/SecretKey;
           38   39     4  preMasterSecret  Ljavax/crypto/SecretKey;
           42   43     4  preMasterSecret  Ljavax/crypto/SecretKey;
           46   50     4  preMasterSecret  Ljavax/crypto/SecretKey;
           24   26     5              pms  Lsun/security/ssl/RSAClientKeyExchange;
    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=10, locals=12, args_size=2
        start local 0 // sun.security.ssl.ServerHandshaker this
        start local 1 // sun.security.ssl.HandshakeMessage$ClientHello mesg
         0: .line 351
            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 352
            aload 1 /* mesg */
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            invokevirtual sun.security.ssl.HandshakeMessage$ClientHello.print:(Ljava/io/PrintStream;)V
         2: .line 356
      StackMap locals:
      StackMap stack:
            iconst_0
            istore 2 /* renegotiationIndicated */
        start local 2 // boolean renegotiationIndicated
         3: .line 359
            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 360
            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 361
            iconst_1
            istore 2 /* renegotiationIndicated */
         6: .line 362
            aload 0 /* this */
            getfield sun.security.ssl.ServerHandshaker.isInitialHandshake:Z
            ifeq 9
         7: .line 363
            aload 0 /* this */
            iconst_1
            putfield sun.security.ssl.ServerHandshaker.secureRenegotiation:Z
         8: .line 364
            goto 17
         9: .line 366
      StackMap locals: int sun.security.ssl.CipherSuiteList
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.ServerHandshaker.secureRenegotiation:Z
            ifeq 14
        10: .line 367
            aload 0 /* this */
            bipush 40
        11: .line 368
            ldc "The SCSV is present in a secure renegotiation"
        12: .line 367
            invokevirtual sun.security.ssl.ServerHandshaker.fatalSE:(BLjava/lang/String;)V
        13: .line 369
            goto 17
        14: .line 370
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            bipush 40
        15: .line 371
            ldc "The SCSV is present in a insecure renegotiation"
        16: .line 370
            invokevirtual sun.security.ssl.ServerHandshaker.fatalSE:(BLjava/lang/String;)V
        17: .line 378
      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 377
            checkcast sun.security.ssl.RenegotiationInfoExtension
            astore 4 /* clientHelloRI */
        start local 4 // sun.security.ssl.RenegotiationInfoExtension clientHelloRI
        19: .line 379
            aload 4 /* clientHelloRI */
            ifnull 40
        20: .line 380
            iconst_1
            istore 2 /* renegotiationIndicated */
        21: .line 381
            aload 0 /* this */
            getfield sun.security.ssl.ServerHandshaker.isInitialHandshake:Z
            ifeq 28
        22: .line 383
            aload 4 /* clientHelloRI */
            invokevirtual sun.security.ssl.RenegotiationInfoExtension.isEmpty:()Z
            ifne 26
        23: .line 385
            aload 0 /* this */
            bipush 40
        24: .line 386
            ldc "The renegotiation_info field is not empty"
        25: .line 385
            invokevirtual sun.security.ssl.ServerHandshaker.fatalSE:(BLjava/lang/String;)V
        26: .line 389
      StackMap locals: sun.security.ssl.RenegotiationInfoExtension
      StackMap stack:
            aload 0 /* this */
            iconst_1
            putfield sun.security.ssl.ServerHandshaker.secureRenegotiation:Z
        27: .line 390
            goto 44
        28: .line 391
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.ServerHandshaker.secureRenegotiation:Z
            ifne 32
        29: .line 394
            aload 0 /* this */
            bipush 40
        30: .line 395
            ldc "The renegotiation_info is present in a insecure renegotiation"
        31: .line 394
            invokevirtual sun.security.ssl.ServerHandshaker.fatalSE:(BLjava/lang/String;)V
        32: .line 400
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.ServerHandshaker.clientVerifyData:[B
        33: .line 401
            aload 4 /* clientHelloRI */
            invokevirtual sun.security.ssl.RenegotiationInfoExtension.getRenegotiatedConnection:()[B
        34: .line 400
            invokestatic java.security.MessageDigest.isEqual:([B[B)Z
        35: .line 401
            ifne 44
        36: .line 402
            aload 0 /* this */
            bipush 40
        37: .line 403
            ldc "Incorrect verify data in ClientHello renegotiation_info message"
        38: .line 402
            invokevirtual sun.security.ssl.ServerHandshaker.fatalSE:(BLjava/lang/String;)V
        39: .line 407
            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 411
            aload 0 /* this */
            bipush 40
        42: .line 412
            ldc "Inconsistent secure renegotiation indication"
        43: .line 411
            invokevirtual sun.security.ssl.ServerHandshaker.fatalSE:(BLjava/lang/String;)V
        44: .line 417
      StackMap locals:
      StackMap stack:
            iload 2 /* renegotiationIndicated */
            ifeq 45
            aload 0 /* this */
            getfield sun.security.ssl.ServerHandshaker.secureRenegotiation:Z
            ifne 70
        45: .line 418
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.ServerHandshaker.isInitialHandshake:Z
            ifeq 53
        46: .line 419
            getstatic sun.security.ssl.ServerHandshaker.allowLegacyHelloMessages:Z
            ifne 50
        47: .line 421
            aload 0 /* this */
            bipush 40
        48: .line 422
            ldc "Failed to negotiate the use of secure renegotiation"
        49: .line 421
            invokevirtual sun.security.ssl.ServerHandshaker.fatalSE:(BLjava/lang/String;)V
        50: .line 426
      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 427
            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 430
            goto 70
      StackMap locals:
      StackMap stack:
        53: getstatic sun.security.ssl.ServerHandshaker.allowUnsafeRenegotiation:Z
            ifne 66
        54: .line 432
            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 434
            aload 0 /* this */
            bipush 100
            invokevirtual sun.security.ssl.ServerHandshaker.warningSE:(B)V
        56: .line 438
            aload 0 /* this */
            iconst_1
            putfield sun.security.ssl.ServerHandshaker.invalidated:Z
        57: .line 449
            aload 0 /* this */
            getfield sun.security.ssl.ServerHandshaker.input:Lsun/security/ssl/HandshakeInStream;
            invokevirtual sun.security.ssl.HandshakeInStream.available:()I
            ifle 61
        58: .line 450
            aload 0 /* this */
            bipush 10
        59: .line 451
            ldc "ClientHello followed by an unexpected  handshake message"
        60: .line 450
            invokevirtual sun.security.ssl.ServerHandshaker.fatalSE:(BLjava/lang/String;)V
        61: .line 455
      StackMap locals:
      StackMap stack:
            return
        62: .line 462
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            bipush 40
        63: .line 463
            ldc "Renegotiation is not allowed"
        64: .line 462
            invokevirtual sun.security.ssl.ServerHandshaker.fatalSE:(BLjava/lang/String;)V
        65: .line 465
            goto 70
        66: .line 467
      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 468
            getstatic java.lang.System.out:Ljava/io/PrintStream;
        68: .line 469
            ldc "Warning: continue with insecure renegotiation"
        69: .line 468
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
        70: .line 475
      StackMap locals:
      StackMap stack:
            getstatic sun.security.ssl.ServerHandshaker.useExtendedMasterSecret:Z
            ifeq 83
        71: .line 477
            aload 1 /* mesg */
            getfield sun.security.ssl.HandshakeMessage$ClientHello.extensions:Lsun/security/ssl/HelloExtensions;
        72: .line 478
            getstatic sun.security.ssl.ExtensionType.EXT_EXTENDED_MASTER_SECRET:Lsun/security/ssl/ExtensionType;
        73: .line 477
            invokevirtual sun.security.ssl.HelloExtensions.get:(Lsun/security/ssl/ExtensionType;)Lsun/security/ssl/HelloExtension;
            checkcast sun.security.ssl.ExtendedMasterSecretExtension
        74: .line 476
            astore 5 /* extendedMasterSecretExtension */
        start local 5 // sun.security.ssl.ExtendedMasterSecretExtension extendedMasterSecretExtension
        75: .line 479
            aload 5 /* extendedMasterSecretExtension */
            ifnull 78
        76: .line 480
            aload 0 /* this */
            iconst_1
            putfield sun.security.ssl.ServerHandshaker.requestedToUseEMS:Z
        77: .line 481
            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 482
            getstatic sun.security.ssl.ServerHandshaker.allowLegacyMasterSecret:Z
            ifne 83
        80: .line 489
            aload 0 /* this */
            bipush 40
        81: .line 490
            ldc "Extended Master Secret extension is required"
        82: .line 489
            invokevirtual sun.security.ssl.ServerHandshaker.fatalSE:(BLjava/lang/String;)V
        end local 5 // sun.security.ssl.ExtendedMasterSecretExtension extendedMasterSecretExtension
        83: .line 499
      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 510
            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 512
            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 516
            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 515
            astore 6 /* selectedVersion */
        start local 6 // sun.security.ssl.ProtocolVersion selectedVersion
        88: .line 517
            aload 6 /* selectedVersion */
            ifnull 90
        89: .line 518
            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 519
      StackMap locals: sun.security.ssl.HandshakeMessage$ServerHello sun.security.ssl.ProtocolVersion
      StackMap stack:
            aload 0 /* this */
            bipush 40
        91: .line 520
            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 521
            ldc " not enabled or not supported"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        93: .line 520
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        94: .line 519
            invokevirtual sun.security.ssl.ServerHandshaker.fatalSE:(BLjava/lang/String;)V
        95: .line 523
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 6 /* selectedVersion */
            invokevirtual sun.security.ssl.ServerHandshaker.setVersion:(Lsun/security/ssl/ProtocolVersion;)V
        96: .line 525
            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;
        97: .line 538
            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;
        98: .line 539
            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;
        99: .line 540
            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;
       100: .line 542
            aload 0 /* this */
            aconst_null
            putfield sun.security.ssl.ServerHandshaker.session:Lsun/security/ssl/SSLSessionImpl;
       101: .line 548
            aload 1 /* mesg */
            getfield sun.security.ssl.HandshakeMessage$ClientHello.sessionId:Lsun/security/ssl/SessionId;
            invokevirtual sun.security.ssl.SessionId.length:()I
            ifeq 188
       102: .line 551
            aload 0 /* this */
            getfield sun.security.ssl.ServerHandshaker.sslContext:Lsun/security/ssl/SSLContextImpl;
       103: .line 552
            invokevirtual sun.security.ssl.SSLContextImpl.engineGetServerSessionContext:()Ljavax/net/ssl/SSLSessionContext;
       104: .line 551
            checkcast sun.security.ssl.SSLSessionContextImpl
       105: .line 553
            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;
       106: .line 551
            astore 7 /* previous */
        start local 7 // sun.security.ssl.SSLSessionImpl previous
       107: .line 561
            aload 7 /* previous */
            ifnull 188
       108: .line 562
            aload 0 /* this */
            aload 7 /* previous */
            invokevirtual sun.security.ssl.SSLSessionImpl.isRejoinable:()Z
            putfield sun.security.ssl.ServerHandshaker.resumingSession:Z
       109: .line 564
            aload 0 /* this */
            getfield sun.security.ssl.ServerHandshaker.resumingSession:Z
            ifeq 113
       110: .line 565
            aload 7 /* previous */
            invokevirtual sun.security.ssl.SSLSessionImpl.getProtocolVersion:()Lsun/security/ssl/ProtocolVersion;
            astore 8 /* oldVersion */
        start local 8 // sun.security.ssl.ProtocolVersion oldVersion
       111: .line 567
            aload 8 /* oldVersion */
            aload 1 /* mesg */
            getfield sun.security.ssl.HandshakeMessage$ClientHello.protocolVersion:Lsun/security/ssl/ProtocolVersion;
            if_acmpeq 113
       112: .line 568
            aload 0 /* this */
            iconst_0
            putfield sun.security.ssl.ServerHandshaker.resumingSession:Z
        end local 8 // sun.security.ssl.ProtocolVersion oldVersion
       113: .line 572
      StackMap locals: sun.security.ssl.SSLSessionImpl
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.ServerHandshaker.resumingSession:Z
            ifeq 132
            getstatic sun.security.ssl.ServerHandshaker.useExtendedMasterSecret:Z
            ifeq 132
       114: .line 573
            aload 0 /* this */
            getfield sun.security.ssl.ServerHandshaker.requestedToUseEMS:Z
            ifeq 118
       115: .line 574
            aload 7 /* previous */
            invokevirtual sun.security.ssl.SSLSessionImpl.getUseExtendedMasterSecret:()Z
            ifne 118
       116: .line 581
            aload 0 /* this */
            iconst_0
            putfield sun.security.ssl.ServerHandshaker.resumingSession:Z
       117: .line 582
            goto 132
      StackMap locals:
      StackMap stack:
       118: aload 0 /* this */
            getfield sun.security.ssl.ServerHandshaker.requestedToUseEMS:Z
            ifne 124
       119: .line 583
            aload 7 /* previous */
            invokevirtual sun.security.ssl.SSLSessionImpl.getUseExtendedMasterSecret:()Z
            ifeq 124
       120: .line 588
            aload 0 /* this */
            bipush 40
       121: .line 589
            ldc "Missing Extended Master Secret extension on session resumption"
       122: .line 588
            invokevirtual sun.security.ssl.ServerHandshaker.fatalSE:(BLjava/lang/String;)V
       123: .line 591
            goto 132
      StackMap locals:
      StackMap stack:
       124: aload 0 /* this */
            getfield sun.security.ssl.ServerHandshaker.requestedToUseEMS:Z
            ifne 132
       125: .line 592
            aload 7 /* previous */
            invokevirtual sun.security.ssl.SSLSessionImpl.getUseExtendedMasterSecret:()Z
            ifne 132
       126: .line 596
            getstatic sun.security.ssl.ServerHandshaker.allowLegacyResumption:Z
            ifne 131
       127: .line 597
            aload 0 /* this */
            bipush 40
       128: .line 598
            ldc "Missing Extended Master Secret extension on session resumption"
       129: .line 597
            invokevirtual sun.security.ssl.ServerHandshaker.fatalSE:(BLjava/lang/String;)V
       130: .line 600
            goto 132
       131: .line 601
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iconst_0
            putfield sun.security.ssl.ServerHandshaker.resumingSession:Z
       132: .line 606
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.ServerHandshaker.resumingSession:Z
            ifeq 138
       133: .line 607
            aload 0 /* this */
            getfield sun.security.ssl.ServerHandshaker.doClientAuth:B
            iconst_2
            if_icmpne 138
       134: .line 609
            aload 7 /* previous */
            invokevirtual sun.security.ssl.SSLSessionImpl.getPeerPrincipal:()Ljava/security/Principal;
            pop
       135: .line 610
            goto 138
      StackMap locals:
      StackMap stack: javax.net.ssl.SSLPeerUnverifiedException
       136: pop
       137: .line 611
            aload 0 /* this */
            iconst_0
            putfield sun.security.ssl.ServerHandshaker.resumingSession:Z
       138: .line 616
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.ServerHandshaker.resumingSession:Z
            ifeq 165
       139: .line 617
            aload 7 /* previous */
            invokevirtual sun.security.ssl.SSLSessionImpl.getSuite:()Lsun/security/ssl/CipherSuite;
            astore 8 /* suite */
        start local 8 // sun.security.ssl.CipherSuite suite
       140: .line 618
            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 142
       141: .line 619
            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 165
       142: .line 620
      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
       143: .line 622
            aconst_null
            astore 10 /* subject */
        start local 10 // javax.security.auth.Subject subject
       144: .line 625
            new sun.security.ssl.ServerHandshaker$1
            dup
            aload 0 /* this */
            invokespecial sun.security.ssl.ServerHandshaker$1.<init>:(Lsun/security/ssl/ServerHandshaker;)V
       145: .line 624
            invokestatic java.security.AccessController.doPrivileged:(Ljava/security/PrivilegedExceptionAction;)Ljava/lang/Object;
            checkcast javax.security.auth.Subject
            astore 10 /* subject */
       146: .line 631
            goto 151
      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
       147: pop
       148: .line 632
            aconst_null
            astore 10 /* subject */
       149: .line 633
            getstatic sun.security.ssl.ServerHandshaker.debug:Lsun/security/ssl/Debug;
            ifnull 151
            ldc "session"
            invokestatic sun.security.ssl.Debug.isOn:(Ljava/lang/String;)Z
            ifeq 151
       150: .line 634
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            ldc "Attempt to obtain subject failed!"
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
       151: .line 639
      StackMap locals:
      StackMap stack:
            aload 10 /* subject */
            ifnull 162
       152: .line 641
            aload 10 /* subject */
            ldc Ljavax/security/auth/kerberos/KerberosPrincipal;
            invokevirtual javax.security.auth.Subject.getPrincipals:(Ljava/lang/Class;)Ljava/util/Set;
       153: .line 640
            astore 11 /* principals */
        start local 11 // java.util.Set principals
       154: .line 642
            aload 11 /* principals */
            aload 9 /* localPrincipal */
            invokeinterface java.util.Set.contains:(Ljava/lang/Object;)Z
            ifne 159
       155: .line 643
            aload 0 /* this */
            iconst_0
            putfield sun.security.ssl.ServerHandshaker.resumingSession:Z
       156: .line 644
            getstatic sun.security.ssl.ServerHandshaker.debug:Lsun/security/ssl/Debug;
            ifnull 165
            ldc "session"
            invokestatic sun.security.ssl.Debug.isOn:(Ljava/lang/String;)Z
            ifeq 165
       157: .line 645
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            ldc "Subject identity is not the same"
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
       158: .line 648
            goto 165
       159: .line 649
      StackMap locals: java.util.Set
      StackMap stack:
            getstatic sun.security.ssl.ServerHandshaker.debug:Lsun/security/ssl/Debug;
            ifnull 165
            ldc "session"
            invokestatic sun.security.ssl.Debug.isOn:(Ljava/lang/String;)Z
            ifeq 165
       160: .line 650
            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
       161: .line 653
            goto 165
       162: .line 654
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iconst_0
            putfield sun.security.ssl.ServerHandshaker.resumingSession:Z
       163: .line 655
            getstatic sun.security.ssl.ServerHandshaker.debug:Lsun/security/ssl/Debug;
            ifnull 165
            ldc "session"
            invokestatic sun.security.ssl.Debug.isOn:(Ljava/lang/String;)Z
            ifeq 165
       164: .line 656
            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
       165: .line 667
      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
       166: .line 668
            aload 0 /* this */
            getfield sun.security.ssl.ServerHandshaker.resumingSession:Z
            ifeq 176
            aload 8 /* identityAlg */
            ifnull 176
       167: .line 671
            aload 7 /* previous */
            invokevirtual sun.security.ssl.SSLSessionImpl.getEndpointIdentificationAlgorithm:()Ljava/lang/String;
       168: .line 670
            astore 9 /* sessionIdentityAlg */
        start local 9 // java.lang.String sessionIdentityAlg
       169: .line 672
            aload 8 /* identityAlg */
            aload 9 /* sessionIdentityAlg */
            invokestatic sun.security.ssl.ServerHandshaker.objectsEquals:(Ljava/lang/Object;Ljava/lang/Object;)Z
            ifne 176
       170: .line 674
            getstatic sun.security.ssl.ServerHandshaker.debug:Lsun/security/ssl/Debug;
            ifnull 175
            ldc "session"
            invokestatic sun.security.ssl.Debug.isOn:(Ljava/lang/String;)Z
            ifeq 175
       171: .line 675
            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
       172: .line 677
            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;
       173: .line 678
            aload 9 /* sessionIdentityAlg */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
       174: .line 675
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
       175: .line 680
      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
       176: .line 684
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.ServerHandshaker.resumingSession:Z
            ifeq 183
       177: .line 685
            aload 7 /* previous */
            invokevirtual sun.security.ssl.SSLSessionImpl.getSuite:()Lsun/security/ssl/CipherSuite;
            astore 9 /* suite */
        start local 9 // sun.security.ssl.CipherSuite suite
       178: .line 689
            aload 0 /* this */
            aload 9 /* suite */
            invokevirtual sun.security.ssl.ServerHandshaker.isNegotiable:(Lsun/security/ssl/CipherSuite;)Z
            ifeq 180
       179: .line 690
            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 182
       180: .line 691
      StackMap locals: sun.security.ssl.CipherSuite
      StackMap stack:
            aload 0 /* this */
            iconst_0
            putfield sun.security.ssl.ServerHandshaker.resumingSession:Z
       181: .line 692
            goto 183
       182: .line 696
      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
       183: .line 700
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.ServerHandshaker.resumingSession:Z
            ifeq 188
       184: .line 701
            aload 0 /* this */
            aload 7 /* previous */
            putfield sun.security.ssl.ServerHandshaker.session:Lsun/security/ssl/SSLSessionImpl;
       185: .line 702
            getstatic sun.security.ssl.ServerHandshaker.debug:Lsun/security/ssl/Debug;
            ifnull 188
       186: .line 703
            ldc "handshake"
            invokestatic sun.security.ssl.Debug.isOn:(Ljava/lang/String;)Z
            ifne 187
            ldc "session"
            invokestatic sun.security.ssl.Debug.isOn:(Ljava/lang/String;)Z
            ifeq 188
       187: .line 704
      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
       188: .line 715
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.ServerHandshaker.session:Lsun/security/ssl/SSLSessionImpl;
            ifnonnull 205
       189: .line 716
            aload 0 /* this */
            getfield sun.security.ssl.ServerHandshaker.enableNewSession:Z
            ifne 191
       190: .line 717
            new javax.net.ssl.SSLException
            dup
            ldc "Client did not resume a session"
            invokespecial javax.net.ssl.SSLException.<init>:(Ljava/lang/String;)V
            athrow
       191: .line 719
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
       192: .line 720
            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;
       193: .line 719
            checkcast sun.security.ssl.SupportedEllipticCurvesExtension
            putfield sun.security.ssl.ServerHandshaker.requestedCurves:Lsun/security/ssl/SupportedEllipticCurvesExtension;
       194: .line 721
            aload 0 /* this */
            aload 1 /* mesg */
            invokevirtual sun.security.ssl.ServerHandshaker.chooseCipherSuite:(Lsun/security/ssl/HandshakeMessage$ClientHello;)V
       195: .line 722
            aload 0 /* this */
       196: new sun.security.ssl.SSLSessionImpl
            dup
            aload 0 /* this */
            getfield sun.security.ssl.ServerHandshaker.protocolVersion:Lsun/security/ssl/ProtocolVersion;
            aload 0 /* this */
            getfield sun.security.ssl.ServerHandshaker.cipherSuite:Lsun/security/ssl/CipherSuite;
       197: .line 723
            aload 0 /* this */
            getfield sun.security.ssl.ServerHandshaker.sslContext:Lsun/security/ssl/SSLContextImpl;
            invokevirtual sun.security.ssl.SSLContextImpl.getSecureRandom:()Ljava/security/SecureRandom;
       198: .line 724
            aload 0 /* this */
            invokevirtual sun.security.ssl.ServerHandshaker.getHostAddressSE:()Ljava/lang/String;
            aload 0 /* this */
            invokevirtual sun.security.ssl.ServerHandshaker.getPortSE:()I
       199: .line 725
            aload 0 /* this */
            getfield sun.security.ssl.ServerHandshaker.requestedToUseEMS:Z
            ifeq 201
       200: .line 726
            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 201
            iconst_1
            goto 202
      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 196 new 196 sun.security.ssl.ProtocolVersion sun.security.ssl.CipherSuite java.security.SecureRandom java.lang.String int
       201: iconst_0
       202: .line 727
      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 196 new 196 sun.security.ssl.ProtocolVersion sun.security.ssl.CipherSuite 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/security/SecureRandom;Ljava/lang/String;IZLjava/lang/String;)V
       203: .line 722
            putfield sun.security.ssl.ServerHandshaker.session:Lsun/security/ssl/SSLSessionImpl;
       204: .line 728
            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
       205: .line 732
      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;
       206: .line 733
            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;
       207: .line 734
            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
       208: .line 736
            aload 0 /* this */
            getfield sun.security.ssl.ServerHandshaker.secureRenegotiation:Z
            ifeq 213
       209: .line 746
            new sun.security.ssl.RenegotiationInfoExtension
            dup
       210: .line 747
            aload 0 /* this */
            getfield sun.security.ssl.ServerHandshaker.clientVerifyData:[B
            aload 0 /* this */
            getfield sun.security.ssl.ServerHandshaker.serverVerifyData:[B
       211: .line 746
            invokespecial sun.security.ssl.RenegotiationInfoExtension.<init>:([B[B)V
            astore 7 /* serverHelloRI */
        start local 7 // sun.security.ssl.HelloExtension serverHelloRI
       212: .line 748
            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
       213: .line 751
      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 215
       214: .line 752
            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
       215: .line 755
      StackMap locals:
      StackMap stack:
            getstatic sun.security.ssl.ServerHandshaker.debug:Lsun/security/ssl/Debug;
            ifnull 218
            ldc "handshake"
            invokestatic sun.security.ssl.Debug.isOn:(Ljava/lang/String;)Z
            ifeq 218
       216: .line 756
            aload 5 /* m1 */
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            invokevirtual sun.security.ssl.HandshakeMessage$ServerHello.print:(Ljava/io/PrintStream;)V
       217: .line 757
            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
       218: .line 759
      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
       219: .line 765
            aload 0 /* this */
            getfield sun.security.ssl.ServerHandshaker.resumingSession:Z
            ifeq 223
       220: .line 766
            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
       221: .line 767
            aload 0 /* this */
            iconst_0
            invokevirtual sun.security.ssl.ServerHandshaker.sendChangeCipherAndFinish:(Z)V
       222: .line 768
            return
       223: .line 780
      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 235
            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 235
       224: .line 783
            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 233
            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 233
       225: .line 784
            aload 0 /* this */
            getfield sun.security.ssl.ServerHandshaker.certs:[Ljava/security/cert/X509Certificate;
            ifnonnull 227
       226: .line 785
            new java.lang.RuntimeException
            dup
            ldc "no certificates"
            invokespecial java.lang.RuntimeException.<init>:(Ljava/lang/String;)V
            athrow
       227: .line 788
      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
       228: .line 794
            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
       229: .line 795
            getstatic sun.security.ssl.ServerHandshaker.debug:Lsun/security/ssl/Debug;
            ifnull 231
            ldc "handshake"
            invokestatic sun.security.ssl.Debug.isOn:(Ljava/lang/String;)Z
            ifeq 231
       230: .line 796
            aload 7 /* m2 */
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            invokevirtual sun.security.ssl.HandshakeMessage$CertificateMsg.print:(Ljava/io/PrintStream;)V
       231: .line 798
      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
        end local 7 // sun.security.ssl.HandshakeMessage$CertificateMsg m2
       232: .line 805
            goto 235
       233: .line 806
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.ServerHandshaker.certs:[Ljava/security/cert/X509Certificate;
            ifnull 235
       234: .line 807
            new java.lang.RuntimeException
            dup
            ldc "anonymous keyexchange with certs"
            invokespecial java.lang.RuntimeException.<init>:(Ljava/lang/String;)V
            athrow
       235: .line 821
      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: 236
                    3: 238
                    4: 279
                    5: 279
                    6: 253
                    7: 253
                    8: 264
                    9: 277
                   10: 277
                   11: 266
                   12: 266
                   13: 266
                   14: 236
                   15: 236
              default: 279
          }
       236: .line 826
      StackMap locals:
      StackMap stack:
            aconst_null
            astore 7 /* m3 */
        start local 7 // sun.security.ssl.HandshakeMessage$ServerKeyExchange m3
       237: .line 827
            goto 280
        end local 7 // sun.security.ssl.HandshakeMessage$ServerKeyExchange m3
       238: .line 829
      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 251
       239: .line 831
            new sun.security.ssl.HandshakeMessage$RSA_ServerKeyExchange
            dup
       240: .line 832
            aload 0 /* this */
            getfield sun.security.ssl.ServerHandshaker.tempPublicKey:Ljava/security/PublicKey;
            aload 0 /* this */
            getfield sun.security.ssl.ServerHandshaker.privateKey:Ljava/security/PrivateKey;
       241: .line 833
            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;
       242: .line 834
            aload 0 /* this */
            getfield sun.security.ssl.ServerHandshaker.sslContext:Lsun/security/ssl/SSLContextImpl;
            invokevirtual sun.security.ssl.SSLContextImpl.getSecureRandom:()Ljava/security/SecureRandom;
       243: .line 831
            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
       244: .line 835
            aload 0 /* this */
            aload 0 /* this */
            getfield sun.security.ssl.ServerHandshaker.tempPrivateKey:Ljava/security/PrivateKey;
            putfield sun.security.ssl.ServerHandshaker.privateKey:Ljava/security/PrivateKey;
       245: .line 836
            goto 280
        end local 7 // sun.security.ssl.HandshakeMessage$ServerKeyExchange m3
      StackMap locals:
      StackMap stack: java.security.GeneralSecurityException
       246: astore 8 /* e */
        start local 8 // java.security.GeneralSecurityException e
       247: .line 838
            ldc "Error generating RSA server key exchange"
            aload 8 /* e */
       248: .line 837
            invokestatic sun.security.ssl.ServerHandshaker.throwSSLException:(Ljava/lang/String;Ljava/lang/Throwable;)V
       249: .line 839
            aconst_null
            astore 7 /* m3 */
        end local 8 // java.security.GeneralSecurityException e
        start local 7 // sun.security.ssl.HandshakeMessage$ServerKeyExchange m3
       250: .line 841
            goto 280
        end local 7 // sun.security.ssl.HandshakeMessage$ServerKeyExchange m3
       251: .line 843
      StackMap locals:
      StackMap stack:
            aconst_null
            astore 7 /* m3 */
        start local 7 // sun.security.ssl.HandshakeMessage$ServerKeyExchange m3
       252: .line 845
            goto 280
        end local 7 // sun.security.ssl.HandshakeMessage$ServerKeyExchange m3
       253: .line 849
      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;
       254: .line 850
            aload 0 /* this */
            getfield sun.security.ssl.ServerHandshaker.privateKey:Ljava/security/PrivateKey;
       255: .line 851
            aload 0 /* this */
            getfield sun.security.ssl.ServerHandshaker.clnt_random:Lsun/security/ssl/RandomCookie;
            getfield sun.security.ssl.RandomCookie.random_bytes:[B
       256: .line 852
            aload 0 /* this */
            getfield sun.security.ssl.ServerHandshaker.svr_random:Lsun/security/ssl/RandomCookie;
            getfield sun.security.ssl.RandomCookie.random_bytes:[B
       257: .line 853
            aload 0 /* this */
            getfield sun.security.ssl.ServerHandshaker.sslContext:Lsun/security/ssl/SSLContextImpl;
            invokevirtual sun.security.ssl.SSLContextImpl.getSecureRandom:()Ljava/security/SecureRandom;
       258: .line 849
            invokespecial sun.security.ssl.HandshakeMessage$DH_ServerKeyExchange.<init>:(Lsun/security/ssl/DHCrypt;Ljava/security/PrivateKey;[B[BLjava/security/SecureRandom;)V
            astore 7 /* m3 */
        start local 7 // sun.security.ssl.HandshakeMessage$ServerKeyExchange m3
       259: .line 854
            goto 280
        end local 7 // sun.security.ssl.HandshakeMessage$ServerKeyExchange m3
      StackMap locals:
      StackMap stack: java.security.GeneralSecurityException
       260: astore 8 /* e */
        start local 8 // java.security.GeneralSecurityException e
       261: .line 855
            ldc "Error generating DH server key exchange"
            aload 8 /* e */
            invokestatic sun.security.ssl.ServerHandshaker.throwSSLException:(Ljava/lang/String;Ljava/lang/Throwable;)V
       262: .line 856
            aconst_null
            astore 7 /* m3 */
        end local 8 // java.security.GeneralSecurityException e
        start local 7 // sun.security.ssl.HandshakeMessage$ServerKeyExchange m3
       263: .line 858
            goto 280
        end local 7 // sun.security.ssl.HandshakeMessage$ServerKeyExchange m3
       264: .line 860
      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;
            invokespecial sun.security.ssl.HandshakeMessage$DH_ServerKeyExchange.<init>:(Lsun/security/ssl/DHCrypt;)V
            astore 7 /* m3 */
        start local 7 // sun.security.ssl.HandshakeMessage$ServerKeyExchange m3
       265: .line 861
            goto 280
        end local 7 // sun.security.ssl.HandshakeMessage$ServerKeyExchange m3
       266: .line 866
      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;
       267: .line 867
            aload 0 /* this */
            getfield sun.security.ssl.ServerHandshaker.privateKey:Ljava/security/PrivateKey;
       268: .line 868
            aload 0 /* this */
            getfield sun.security.ssl.ServerHandshaker.clnt_random:Lsun/security/ssl/RandomCookie;
            getfield sun.security.ssl.RandomCookie.random_bytes:[B
       269: .line 869
            aload 0 /* this */
            getfield sun.security.ssl.ServerHandshaker.svr_random:Lsun/security/ssl/RandomCookie;
            getfield sun.security.ssl.RandomCookie.random_bytes:[B
       270: .line 870
            aload 0 /* this */
            getfield sun.security.ssl.ServerHandshaker.sslContext:Lsun/security/ssl/SSLContextImpl;
            invokevirtual sun.security.ssl.SSLContextImpl.getSecureRandom:()Ljava/security/SecureRandom;
       271: .line 866
            invokespecial sun.security.ssl.HandshakeMessage$ECDH_ServerKeyExchange.<init>:(Lsun/security/ssl/ECDHCrypt;Ljava/security/PrivateKey;[B[BLjava/security/SecureRandom;)V
            astore 7 /* m3 */
        start local 7 // sun.security.ssl.HandshakeMessage$ServerKeyExchange m3
       272: .line 871
            goto 280
        end local 7 // sun.security.ssl.HandshakeMessage$ServerKeyExchange m3
      StackMap locals:
      StackMap stack: java.security.GeneralSecurityException
       273: astore 8 /* e */
        start local 8 // java.security.GeneralSecurityException e
       274: .line 872
            ldc "Error generating ECDH server key exchange"
            aload 8 /* e */
            invokestatic sun.security.ssl.ServerHandshaker.throwSSLException:(Ljava/lang/String;Ljava/lang/Throwable;)V
       275: .line 873
            aconst_null
            astore 7 /* m3 */
        end local 8 // java.security.GeneralSecurityException e
        start local 7 // sun.security.ssl.HandshakeMessage$ServerKeyExchange m3
       276: .line 875
            goto 280
        end local 7 // sun.security.ssl.HandshakeMessage$ServerKeyExchange m3
       277: .line 879
      StackMap locals:
      StackMap stack:
            aconst_null
            astore 7 /* m3 */
        start local 7 // sun.security.ssl.HandshakeMessage$ServerKeyExchange m3
       278: .line 880
            goto 280
        end local 7 // sun.security.ssl.HandshakeMessage$ServerKeyExchange m3
       279: .line 882
      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
       280: .line 884
      StackMap locals: sun.security.ssl.HandshakeMessage$ServerKeyExchange
      StackMap stack:
            aload 7 /* m3 */
            ifnull 284
       281: .line 885
            getstatic sun.security.ssl.ServerHandshaker.debug:Lsun/security/ssl/Debug;
            ifnull 283
            ldc "handshake"
            invokestatic sun.security.ssl.Debug.isOn:(Ljava/lang/String;)Z
            ifeq 283
       282: .line 886
            aload 7 /* m3 */
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            invokevirtual sun.security.ssl.HandshakeMessage$ServerKeyExchange.print:(Ljava/io/PrintStream;)V
       283: .line 888
      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
       284: .line 901
      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 292
            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 292
       285: .line 904
            aload 0 /* this */
            getfield sun.security.ssl.ServerHandshaker.doClientAuth:B
            ifeq 292
       286: .line 905
            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 292
            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 292
       287: .line 909
            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
       288: .line 910
            new sun.security.ssl.HandshakeMessage$CertificateRequest
            dup
            aload 9 /* caCerts */
            aload 0 /* this */
            getfield sun.security.ssl.ServerHandshaker.keyExchange:Lsun/security/ssl/CipherSuite$KeyExchange;
            invokespecial sun.security.ssl.HandshakeMessage$CertificateRequest.<init>:([Ljava/security/cert/X509Certificate;Lsun/security/ssl/CipherSuite$KeyExchange;)V
            astore 8 /* m4 */
        start local 8 // sun.security.ssl.HandshakeMessage$CertificateRequest m4
       289: .line 912
            getstatic sun.security.ssl.ServerHandshaker.debug:Lsun/security/ssl/Debug;
            ifnull 291
            ldc "handshake"
            invokestatic sun.security.ssl.Debug.isOn:(Ljava/lang/String;)Z
            ifeq 291
       290: .line 913
            aload 8 /* m4 */
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            invokevirtual sun.security.ssl.HandshakeMessage$CertificateRequest.print:(Ljava/io/PrintStream;)V
       291: .line 915
      StackMap locals: sun.security.ssl.HandshakeMessage$CertificateRequest java.security.cert.X509Certificate[]
      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
        end local 9 // java.security.cert.X509Certificate[] caCerts
        end local 8 // sun.security.ssl.HandshakeMessage$CertificateRequest m4
       292: .line 921
      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
       293: .line 923
            getstatic sun.security.ssl.ServerHandshaker.debug:Lsun/security/ssl/Debug;
            ifnull 295
            ldc "handshake"
            invokestatic sun.security.ssl.Debug.isOn:(Ljava/lang/String;)Z
            ifeq 295
       294: .line 924
            aload 8 /* m5 */
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            invokevirtual sun.security.ssl.HandshakeMessage$ServerHelloDone.print:(Ljava/io/PrintStream;)V
       295: .line 926
      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
       296: .line 934
            aload 0 /* this */
            getfield sun.security.ssl.ServerHandshaker.output:Lsun/security/ssl/HandshakeOutStream;
            invokevirtual sun.security.ssl.HandshakeOutStream.flush:()V
       297: .line 935
            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  298     0                           this  Lsun/security/ssl/ServerHandshaker;
            0  298     1                           mesg  Lsun/security/ssl/HandshakeMessage$ClientHello;
            3  298     2         renegotiationIndicated  Z
            4  298     3                   cipherSuites  Lsun/security/ssl/CipherSuiteList;
           19  298     4                  clientHelloRI  Lsun/security/ssl/RenegotiationInfoExtension;
           75   83     5  extendedMasterSecretExtension  Lsun/security/ssl/ExtendedMasterSecretExtension;
           85  298     5                             m1  Lsun/security/ssl/HandshakeMessage$ServerHello;
           88  298     6                selectedVersion  Lsun/security/ssl/ProtocolVersion;
          107  188     7                       previous  Lsun/security/ssl/SSLSessionImpl;
          111  113     8                     oldVersion  Lsun/security/ssl/ProtocolVersion;
          140  165     8                          suite  Lsun/security/ssl/CipherSuite;
          143  165     9                 localPrincipal  Ljava/security/Principal;
          144  165    10                        subject  Ljavax/security/auth/Subject;
          154  161    11                     principals  Ljava/util/Set<Ljavax/security/auth/kerberos/KerberosPrincipal;>;
          166  188     8                    identityAlg  Ljava/lang/String;
          169  176     9             sessionIdentityAlg  Ljava/lang/String;
          178  183     9                          suite  Lsun/security/ssl/CipherSuite;
          212  213     7                  serverHelloRI  Lsun/security/ssl/HelloExtension;
          228  232     7                             m2  Lsun/security/ssl/HandshakeMessage$CertificateMsg;
          237  238     7                             m3  Lsun/security/ssl/HandshakeMessage$ServerKeyExchange;
          244  246     7                             m3  Lsun/security/ssl/HandshakeMessage$ServerKeyExchange;
          250  251     7                             m3  Lsun/security/ssl/HandshakeMessage$ServerKeyExchange;
          252  253     7                             m3  Lsun/security/ssl/HandshakeMessage$ServerKeyExchange;
          259  260     7                             m3  Lsun/security/ssl/HandshakeMessage$ServerKeyExchange;
          263  264     7                             m3  Lsun/security/ssl/HandshakeMessage$ServerKeyExchange;
          265  266     7                             m3  Lsun/security/ssl/HandshakeMessage$ServerKeyExchange;
          272  273     7                             m3  Lsun/security/ssl/HandshakeMessage$ServerKeyExchange;
          276  277     7                             m3  Lsun/security/ssl/HandshakeMessage$ServerKeyExchange;
          278  279     7                             m3  Lsun/security/ssl/HandshakeMessage$ServerKeyExchange;
          280  298     7                             m3  Lsun/security/ssl/HandshakeMessage$ServerKeyExchange;
          247  250     8                              e  Ljava/security/GeneralSecurityException;
          261  263     8                              e  Ljava/security/GeneralSecurityException;
          274  276     8                              e  Ljava/security/GeneralSecurityException;
          289  292     8                             m4  Lsun/security/ssl/HandshakeMessage$CertificateRequest;
          288  292     9                        caCerts  [Ljava/security/cert/X509Certificate;
          293  298     8                             m5  Lsun/security/ssl/HandshakeMessage$ServerHelloDone;
      Exception table:
        from    to  target  type
         134   135     136  Class javax.net.ssl.SSLPeerUnverifiedException
         144   146     147  Class java.security.PrivilegedActionException
         239   245     246  Class java.security.GeneralSecurityException
         253   259     260  Class java.security.GeneralSecurityException
         266   272     273  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 942
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 2 /* legacySuites */
        start local 2 // java.util.List legacySuites
         1: .line 943
            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 944
            aload 0 /* this */
            aload 3 /* suite */
            invokevirtual sun.security.ssl.ServerHandshaker.isNegotiable:(Lsun/security/ssl/CipherSuite;)Z
            ifne 5
         4: .line 945
            goto 17
         5: .line 948
      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 949
            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 950
            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 951
            goto 17
         9: .line 955
      StackMap locals:
      StackMap stack:
            getstatic sun.security.ssl.ServerHandshaker.legacyAlgorithmConstraints:Lsun/security/util/AlgorithmConstraints;
            aconst_null
            aload 3 /* suite */
            getfield sun.security.ssl.CipherSuite.name:Ljava/lang/String;
            aconst_null
            invokeinterface sun.security.util.AlgorithmConstraints.permits:(Ljava/util/Set;Ljava/lang/String;Ljava/security/AlgorithmParameters;)Z
            ifne 12
        10: .line 956
            aload 2 /* legacySuites */
            aload 3 /* suite */
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        11: .line 957
            goto 17
        12: .line 960
      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 961
            goto 17
        14: .line 964
      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 965
            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 967
      StackMap locals:
      StackMap stack:
            return
        end local 3 // sun.security.ssl.CipherSuite suite
        17: .line 943
      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 970
            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 971
            aload 0 /* this */
            aload 3 /* suite */
            invokevirtual sun.security.ssl.ServerHandshaker.trySetCipherSuite:(Lsun/security/ssl/CipherSuite;)Z
            ifeq 24
        21: .line 972
            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 973
            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 975
      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 970
      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 979
            aload 0 /* this */
            bipush 40
        26: .line 980
            ldc "no cipher suites in common"
        27: .line 979
            invokevirtual sun.security.ssl.ServerHandshaker.fatalSE:(BLjava/lang/String;)V
        28: .line 981
            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=3, args_size=2
        start local 0 // sun.security.ssl.ServerHandshaker this
        start local 1 // sun.security.ssl.CipherSuite suite
         0: .line 1003
            aload 0 /* this */
            getfield sun.security.ssl.ServerHandshaker.resumingSession:Z
            ifeq 2
         1: .line 1004
            iconst_1
            ireturn
         2: .line 1007
      StackMap locals:
      StackMap stack:
            aload 1 /* suite */
            invokevirtual sun.security.ssl.CipherSuite.isNegotiable:()Z
            ifne 4
         3: .line 1008
            iconst_0
            ireturn
         4: .line 1012
      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 1013
            iconst_0
            ireturn
         6: .line 1016
      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
         7: .line 1019
            aload 0 /* this */
            aconst_null
            putfield sun.security.ssl.ServerHandshaker.privateKey:Ljava/security/PrivateKey;
         8: .line 1020
            aload 0 /* this */
            aconst_null
            putfield sun.security.ssl.ServerHandshaker.certs:[Ljava/security/cert/X509Certificate;
         9: .line 1021
            aload 0 /* this */
            aconst_null
            putfield sun.security.ssl.ServerHandshaker.dh:Lsun/security/ssl/DHCrypt;
        10: .line 1022
            aload 0 /* this */
            aconst_null
            putfield sun.security.ssl.ServerHandshaker.tempPrivateKey:Ljava/security/PrivateKey;
        11: .line 1023
            aload 0 /* this */
            aconst_null
            putfield sun.security.ssl.ServerHandshaker.tempPublicKey:Ljava/security/PublicKey;
        12: .line 1025
            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: 13
                    3: 15
                    4: 52
                    5: 52
                    6: 30
                    7: 22
                    8: 48
                    9: 42
                   10: 38
                   11: 34
                   12: 26
                   13: 50
                   14: 46
                   15: 46
              default: 52
          }
        13: .line 1028
      StackMap locals: sun.security.ssl.CipherSuite$KeyExchange
      StackMap stack:
            aload 0 /* this */
            ldc "RSA"
            invokevirtual sun.security.ssl.ServerHandshaker.setupPrivateKeyAndChain:(Ljava/lang/String;)Z
            ifne 53
        14: .line 1029
            iconst_0
            ireturn
        15: .line 1034
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            ldc "RSA"
            invokevirtual sun.security.ssl.ServerHandshaker.setupPrivateKeyAndChain:(Ljava/lang/String;)Z
            ifne 17
        16: .line 1035
            iconst_0
            ireturn
        17: .line 1039
      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 53
        18: .line 1040
            aload 0 /* this */
            aload 1 /* suite */
            getfield sun.security.ssl.CipherSuite.exportable:Z
            invokevirtual sun.security.ssl.ServerHandshaker.setupEphemeralRSAKeys:(Z)Z
            ifne 53
        19: .line 1041
            iconst_0
            ireturn
        20: .line 1044
      StackMap locals:
      StackMap stack: java.lang.RuntimeException
            pop
        21: .line 1046
            iconst_0
            ireturn
        22: .line 1051
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            ldc "RSA"
            invokevirtual sun.security.ssl.ServerHandshaker.setupPrivateKeyAndChain:(Ljava/lang/String;)Z
            ifne 24
        23: .line 1052
            iconst_0
            ireturn
        24: .line 1055
      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
        25: .line 1056
            goto 53
        26: .line 1059
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            ldc "RSA"
            invokevirtual sun.security.ssl.ServerHandshaker.setupPrivateKeyAndChain:(Ljava/lang/String;)Z
            ifne 28
        27: .line 1060
            iconst_0
            ireturn
        28: .line 1063
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual sun.security.ssl.ServerHandshaker.setupEphemeralECDHKeys:()Z
            ifne 53
        29: .line 1064
            iconst_0
            ireturn
        30: .line 1069
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            ldc "DSA"
            invokevirtual sun.security.ssl.ServerHandshaker.setupPrivateKeyAndChain:(Ljava/lang/String;)Z
            ifne 32
        31: .line 1070
            iconst_0
            ireturn
        32: .line 1073
      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
        33: .line 1074
            goto 53
        34: .line 1077
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            ldc "EC_EC"
            invokevirtual sun.security.ssl.ServerHandshaker.setupPrivateKeyAndChain:(Ljava/lang/String;)Z
            ifne 36
        35: .line 1078
            iconst_0
            ireturn
        36: .line 1080
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual sun.security.ssl.ServerHandshaker.setupEphemeralECDHKeys:()Z
            ifne 53
        37: .line 1081
            iconst_0
            ireturn
        38: .line 1086
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            ldc "EC_RSA"
            invokevirtual sun.security.ssl.ServerHandshaker.setupPrivateKeyAndChain:(Ljava/lang/String;)Z
            ifne 40
        39: .line 1087
            iconst_0
            ireturn
        40: .line 1089
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual sun.security.ssl.ServerHandshaker.setupStaticECDHKeys:()V
        41: .line 1090
            goto 53
        42: .line 1093
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            ldc "EC_EC"
            invokevirtual sun.security.ssl.ServerHandshaker.setupPrivateKeyAndChain:(Ljava/lang/String;)Z
            ifne 44
        43: .line 1094
            iconst_0
            ireturn
        44: .line 1096
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual sun.security.ssl.ServerHandshaker.setupStaticECDHKeys:()V
        45: .line 1097
            goto 53
        46: .line 1101
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual sun.security.ssl.ServerHandshaker.setupKerberosKeys:()Z
            ifne 53
        47: .line 1102
            iconst_0
            ireturn
        48: .line 1107
      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
        49: .line 1108
            goto 53
        50: .line 1111
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual sun.security.ssl.ServerHandshaker.setupEphemeralECDHKeys:()Z
            ifne 53
        51: .line 1112
            iconst_0
            ireturn
        52: .line 1117
      StackMap locals:
      StackMap stack:
            new java.lang.RuntimeException
            dup
            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;
            invokespecial java.lang.RuntimeException.<init>:(Ljava/lang/String;)V
            athrow
        53: .line 1119
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* suite */
            invokevirtual sun.security.ssl.ServerHandshaker.setCipherSuite:(Lsun/security/ssl/CipherSuite;)V
        54: .line 1120
            iconst_1
            ireturn
        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   55     0         this  Lsun/security/ssl/ServerHandshaker;
            0   55     1        suite  Lsun/security/ssl/CipherSuite;
            7   55     2  keyExchange  Lsun/security/ssl/CipherSuite$KeyExchange;
      Exception table:
        from    to  target  type
          17    19      20  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 1133
            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 1134
            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 1133
            astore 2 /* kp */
        start local 2 // java.security.KeyPair kp
         3: .line 1135
            aload 2 /* kp */
            ifnonnull 5
         4: .line 1136
            iconst_0
            ireturn
         5: .line 1138
      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 1139
            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 1140
            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 1187
            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 1188
            iload 1 /* export */
            ifne 16
         4: .line 1189
            getstatic sun.security.ssl.ServerHandshaker.useLegacyEphemeralDHKeys:Z
            ifeq 7
         5: .line 1190
            sipush 768
            istore 3 /* keySize */
         6: .line 1191
            goto 16
      StackMap locals: int
      StackMap stack:
         7: getstatic sun.security.ssl.ServerHandshaker.useSmartEphemeralDHKeys:Z
            ifeq 14
         8: .line 1192
            aload 2 /* key */
            ifnull 16
         9: .line 1193
            aload 2 /* key */
            invokestatic sun.security.util.KeyUtil.getKeySize:(Ljava/security/Key;)I
            istore 4 /* ks */
        start local 4 // int ks
        10: .line 1207
            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 1209
            goto 16
      StackMap locals:
      StackMap stack:
        14: getstatic sun.security.ssl.ServerHandshaker.customizedDHKeySize:I
            ifle 16
        15: .line 1210
            getstatic sun.security.ssl.ServerHandshaker.customizedDHKeySize:I
            istore 3 /* keySize */
        16: .line 1214
      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 1215
            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 1221
            aload 0 /* this */
            getfield sun.security.ssl.ServerHandshaker.requestedCurves:Lsun/security/ssl/SupportedEllipticCurvesExtension;
            ifnull 2
         1: .line 1222
            aload 0 /* this */
            getfield sun.security.ssl.ServerHandshaker.requestedCurves:Lsun/security/ssl/SupportedEllipticCurvesExtension;
            aload 0 /* this */
            getfield sun.security.ssl.ServerHandshaker.algorithmConstraints:Lsun/security/util/AlgorithmConstraints;
            invokevirtual sun.security.ssl.SupportedEllipticCurvesExtension.getPreferredCurve:(Lsun/security/util/AlgorithmConstraints;)I
            goto 3
         2: .line 1223
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.ServerHandshaker.algorithmConstraints:Lsun/security/util/AlgorithmConstraints;
            invokestatic sun.security.ssl.SupportedEllipticCurvesExtension.getActiveCurves:(Lsun/security/util/AlgorithmConstraints;)I
         3: .line 1221
      StackMap locals:
      StackMap stack: int
            istore 1 /* index */
        start local 1 // int index
         4: .line 1224
            iload 1 /* index */
            ifge 6
         5: .line 1226
            iconst_0
            ireturn
         6: .line 1229
      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 1230
            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 1236
            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 1237
            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 1246
            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 1248
            aload 0 /* this */
            getfield sun.security.ssl.ServerHandshaker.conn:Lsun/security/ssl/SSLSocketImpl;
            ifnull 4
         2: .line 1249
            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 1250
            goto 5
        end local 3 // java.lang.String alias
         4: .line 1251
      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 1253
      StackMap locals: java.lang.String
      StackMap stack:
            aload 3 /* alias */
            ifnonnull 7
         6: .line 1254
            iconst_0
            ireturn
         7: .line 1256
      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 1257
            aload 4 /* tempPrivateKey */
            ifnonnull 10
         9: .line 1258
            iconst_0
            ireturn
        10: .line 1260
      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 1261
            aload 5 /* tempCerts */
            ifnull 12
            aload 5 /* tempCerts */
            arraylength
            ifne 13
        12: .line 1262
      StackMap locals: java.security.cert.X509Certificate[]
      StackMap stack:
            iconst_0
            ireturn
        13: .line 1264
      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 1265
            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 1266
            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 1267
            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 1268
      StackMap locals: java.lang.String java.security.PublicKey
      StackMap stack:
            iconst_0
            ireturn
        18: .line 1273
      StackMap locals:
      StackMap stack:
            aload 6 /* keyAlgorithm */
            ldc "EC"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 26
        19: .line 1274
            aload 7 /* publicKey */
            instanceof java.security.interfaces.ECPublicKey
            ifne 21
        20: .line 1275
            iconst_0
            ireturn
        21: .line 1277
      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 1278
            aload 8 /* params */
            invokestatic sun.security.ssl.SupportedEllipticCurvesExtension.getCurveIndex:(Ljava/security/spec/ECParameterSpec;)I
            istore 9 /* id */
        start local 9 // int id
        23: .line 1279
            iload 9 /* id */
            ifle 25
            iload 9 /* id */
            invokestatic sun.security.ssl.SupportedEllipticCurvesExtension.isSupported:(I)Z
            ifeq 25
        24: .line 1280
            aload 0 /* this */
            getfield sun.security.ssl.ServerHandshaker.requestedCurves:Lsun/security/ssl/SupportedEllipticCurvesExtension;
            ifnull 26
            aload 0 /* this */
            getfield sun.security.ssl.ServerHandshaker.requestedCurves:Lsun/security/ssl/SupportedEllipticCurvesExtension;
            iload 9 /* id */
            invokevirtual sun.security.ssl.SupportedEllipticCurvesExtension.contains:(I)Z
            ifne 26
        25: .line 1281
      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 1284
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 4 /* tempPrivateKey */
            putfield sun.security.ssl.ServerHandshaker.privateKey:Ljava/security/PrivateKey;
        27: .line 1285
            aload 0 /* this */
            aload 5 /* tempCerts */
            putfield sun.security.ssl.ServerHandshaker.certs:[Ljava/security/cert/X509Certificate;
        28: .line 1286
            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=4, args_size=1
        start local 0 // sun.security.ssl.ServerHandshaker this
         0: .line 1296
            aload 0 /* this */
            getfield sun.security.ssl.ServerHandshaker.kerberosKeys:[Ljavax/security/auth/kerberos/KerberosKey;
            ifnull 2
         1: .line 1297
            iconst_1
            ireturn
         2: .line 1300
      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 1301
            aload 0 /* this */
         4: .line 1302
            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 1301
            invokestatic java.security.AccessController.doPrivileged:(Ljava/security/PrivilegedExceptionAction;)Ljava/lang/Object;
            checkcast javax.security.auth.kerberos.KerberosKey[]
            putfield sun.security.ssl.ServerHandshaker.kerberosKeys:[Ljavax/security/auth/kerberos/KerberosKey;
         6: .line 1312
            aload 0 /* this */
            getfield sun.security.ssl.ServerHandshaker.kerberosKeys:[Ljavax/security/auth/kerberos/KerberosKey;
            ifnull 24
         7: .line 1314
            getstatic sun.security.ssl.ServerHandshaker.debug:Lsun/security/ssl/Debug;
            ifnull 11
            ldc "handshake"
            invokestatic sun.security.ssl.Debug.isOn:(Ljava/lang/String;)Z
            ifeq 11
         8: .line 1315
            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
         9: .line 1316
            aload 0 /* this */
            getfield sun.security.ssl.ServerHandshaker.kerberosKeys:[Ljavax/security/auth/kerberos/KerberosKey;
            iconst_0
            aaload
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        10: .line 1315
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
        11: .line 1320
      StackMap locals: java.security.AccessControlContext
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.ServerHandshaker.kerberosKeys:[Ljavax/security/auth/kerberos/KerberosKey;
            iconst_0
            aaload
            invokevirtual javax.security.auth.kerberos.KerberosKey.getPrincipal:()Ljavax/security/auth/kerberos/KerberosPrincipal;
            invokevirtual javax.security.auth.kerberos.KerberosPrincipal.getName:()Ljava/lang/String;
        12: .line 1319
            astore 2 /* serverPrincipal */
        start local 2 // java.lang.String serverPrincipal
        13: .line 1321
            invokestatic java.lang.System.getSecurityManager:()Ljava/lang/SecurityManager;
            astore 3 /* sm */
        start local 3 // java.lang.SecurityManager sm
        14: .line 1323
            aload 3 /* sm */
            ifnull 24
        15: .line 1324
            aload 3 /* sm */
            new javax.security.auth.kerberos.ServicePermission
            dup
            aload 2 /* serverPrincipal */
        16: .line 1325
            ldc "accept"
            invokespecial javax.security.auth.kerberos.ServicePermission.<init>:(Ljava/lang/String;Ljava/lang/String;)V
            aload 1 /* acc */
        17: .line 1324
            invokevirtual java.lang.SecurityManager.checkPermission:(Ljava/security/Permission;Ljava/lang/Object;)V
        18: .line 1327
            goto 24
      StackMap locals: sun.security.ssl.ServerHandshaker java.security.AccessControlContext java.lang.String java.lang.SecurityManager
      StackMap stack: java.lang.SecurityException
        19: pop
        20: .line 1328
            aload 0 /* this */
            aconst_null
            putfield sun.security.ssl.ServerHandshaker.kerberosKeys:[Ljavax/security/auth/kerberos/KerberosKey;
        21: .line 1330
            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 1331
            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
        23: .line 1333
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
        end local 3 // java.lang.SecurityManager sm
        end local 2 // java.lang.String serverPrincipal
        24: .line 1336
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.ServerHandshaker.kerberosKeys:[Ljavax/security/auth/kerberos/KerberosKey;
            ifnull 25
            aload 0 /* this */
            getfield sun.security.ssl.ServerHandshaker.kerberosKeys:[Ljavax/security/auth/kerberos/KerberosKey;
            arraylength
            ifle 25
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
        25: iconst_0
        26: ireturn
        end local 1 // java.security.AccessControlContext acc
        27: .line 1337
      StackMap locals: sun.security.ssl.ServerHandshaker
      StackMap stack: java.security.PrivilegedActionException
            astore 1 /* e */
        start local 1 // java.security.PrivilegedActionException e
        28: .line 1339
            getstatic sun.security.ssl.ServerHandshaker.debug:Lsun/security/ssl/Debug;
            ifnull 32
            ldc "handshake"
            invokestatic sun.security.ssl.Debug.isOn:(Ljava/lang/String;)Z
            ifeq 32
        29: .line 1340
            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
        30: .line 1341
            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;
        31: .line 1340
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
        32: .line 1343
      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   33     0             this  Lsun/security/ssl/ServerHandshaker;
            3   27     1              acc  Ljava/security/AccessControlContext;
           13   24     2  serverPrincipal  Ljava/lang/String;
           14   24     3               sm  Ljava/lang/SecurityManager;
           28   33     1                e  Ljava/security/PrivilegedActionException;
      Exception table:
        from    to  target  type
          14    18      19  Class java.lang.SecurityException
           2    23      27  Class java.security.PrivilegedActionException
          24    26      27  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 1354
            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 1355
            aload 1 /* mesg */
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            invokevirtual sun.security.ssl.KerberosClientKeyExchange.print:(Ljava/io/PrintStream;)V
         2: .line 1359
      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:()Ljavax/security/auth/kerberos/KerberosPrincipal;
            invokevirtual sun.security.ssl.SSLSessionImpl.setPeerPrincipal:(Ljava/security/Principal;)V
         3: .line 1360
            aload 0 /* this */
            getfield sun.security.ssl.ServerHandshaker.session:Lsun/security/ssl/SSLSessionImpl;
            aload 1 /* mesg */
            invokevirtual sun.security.ssl.KerberosClientKeyExchange.getLocalPrincipal:()Ljavax/security/auth/kerberos/KerberosPrincipal;
            invokevirtual sun.security.ssl.SSLSessionImpl.setLocalPrincipal:(Ljava/security/Principal;)V
         4: .line 1362
            aload 1 /* mesg */
            invokevirtual sun.security.ssl.KerberosClientKeyExchange.getPreMasterSecret:()Lsun/security/ssl/KerberosPreMasterSecret;
            invokevirtual sun.security.ssl.KerberosPreMasterSecret.getUnencrypted:()[B
            astore 2 /* b */
        start local 2 // byte[] b
         5: .line 1363
            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 1383
            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 1384
            aload 1 /* mesg */
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            invokevirtual sun.security.ssl.DHClientKeyExchange.print:(Ljava/io/PrintStream;)V
         2: .line 1387
      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 1390
            aload 0 /* this */
            getfield sun.security.ssl.ServerHandshaker.dh:Lsun/security/ssl/DHCrypt;
            aload 0 /* this */
            getfield sun.security.ssl.ServerHandshaker.algorithmConstraints:Lsun/security/util/AlgorithmConstraints;
            aload 2 /* publicKeyValue */
            invokevirtual sun.security.ssl.DHCrypt.checkConstraints:(Lsun/security/util/AlgorithmConstraints;Ljava/math/BigInteger;)V
         4: .line 1392
            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 1398
            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 1399
            aload 1 /* mesg */
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            invokevirtual sun.security.ssl.ECDHClientKeyExchange.print:(Ljava/io/PrintStream;)V
         2: .line 1402
      StackMap locals:
      StackMap stack:
            aload 1 /* mesg */
            invokevirtual sun.security.ssl.ECDHClientKeyExchange.getEncodedPoint:()[B
            astore 2 /* publicPoint */
        start local 2 // byte[] publicPoint
         3: .line 1405
            aload 0 /* this */
            getfield sun.security.ssl.ServerHandshaker.ecdh:Lsun/security/ssl/ECDHCrypt;
            aload 0 /* this */
            getfield sun.security.ssl.ServerHandshaker.algorithmConstraints:Lsun/security/util/AlgorithmConstraints;
            aload 2 /* publicPoint */
            invokevirtual sun.security.ssl.ECDHCrypt.checkConstraints:(Lsun/security/util/AlgorithmConstraints;[B)V
         4: .line 1407
            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 1422
            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 1423
            aload 1 /* mesg */
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            invokevirtual sun.security.ssl.HandshakeMessage$CertificateVerify.print:(Ljava/io/PrintStream;)V
         2: .line 1428
      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;
         3: .line 1427
            astore 2 /* publicKey */
        start local 2 // java.security.PublicKey publicKey
         4: .line 1430
            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;
         5: .line 1431
            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;
         6: .line 1430
            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
         7: .line 1432
            iload 3 /* valid */
            ifne 16
         8: .line 1433
            aload 0 /* this */
            bipush 42
         9: .line 1434
            ldc "certificate verify message signature error"
        10: .line 1433
            invokevirtual sun.security.ssl.ServerHandshaker.fatalSE:(BLjava/lang/String;)V
        end local 3 // boolean valid
        end local 2 // java.security.PublicKey publicKey
        11: .line 1436
            goto 16
      StackMap locals:
      StackMap stack: java.security.GeneralSecurityException
        12: astore 2 /* e */
        start local 2 // java.security.GeneralSecurityException e
        13: .line 1437
            aload 0 /* this */
            bipush 42
        14: .line 1438
            ldc "certificate verify format error"
            aload 2 /* e */
        15: .line 1437
            invokevirtual sun.security.ssl.ServerHandshaker.fatalSE:(BLjava/lang/String;Ljava/lang/Throwable;)V
        end local 2 // java.security.GeneralSecurityException e
        16: .line 1442
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iconst_0
            putfield sun.security.ssl.ServerHandshaker.needClientVerify:Z
        17: .line 1443
            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   18     0       this  Lsun/security/ssl/ServerHandshaker;
            0   18     1       mesg  Lsun/security/ssl/HandshakeMessage$CertificateVerify;
            4   11     2  publicKey  Ljava/security/PublicKey;
            7   11     3      valid  Z
           13   16     2          e  Ljava/security/GeneralSecurityException;
      Exception table:
        from    to  target  type
           2    11      12  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=5, locals=3, args_size=2
        start local 0 // sun.security.ssl.ServerHandshaker this
        start local 1 // sun.security.ssl.HandshakeMessage$Finished mesg
         0: .line 1454
            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 1455
            aload 1 /* mesg */
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            invokevirtual sun.security.ssl.HandshakeMessage$Finished.print:(Ljava/io/PrintStream;)V
         2: .line 1462
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.ServerHandshaker.doClientAuth:B
            iconst_2
            if_icmpne 4
         3: .line 1465
            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 1472
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.ServerHandshaker.needClientVerify:Z
            ifeq 8
         5: .line 1473
            aload 0 /* this */
            bipush 40
         6: .line 1474
            ldc "client did not send certificate verify message"
         7: .line 1473
            invokevirtual sun.security.ssl.ServerHandshaker.fatalSE:(BLjava/lang/String;)V
         8: .line 1481
      StackMap locals:
      StackMap stack:
            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;
         9: .line 1482
            iconst_1
            aload 0 /* this */
            getfield sun.security.ssl.ServerHandshaker.session:Lsun/security/ssl/SSLSessionImpl;
            invokevirtual sun.security.ssl.SSLSessionImpl.getMasterSecret:()Ljavax/crypto/SecretKey;
        10: .line 1481
            invokevirtual sun.security.ssl.HandshakeMessage$Finished.verify:(Lsun/security/ssl/ProtocolVersion;Lsun/security/ssl/HandshakeHash;ILjavax/crypto/SecretKey;)Z
            istore 2 /* verified */
        start local 2 // boolean verified
        11: .line 1484
            iload 2 /* verified */
            ifne 15
        12: .line 1485
            aload 0 /* this */
            bipush 40
        13: .line 1486
            ldc "client 'finished' message doesn't verify"
        14: .line 1485
            invokevirtual sun.security.ssl.ServerHandshaker.fatalSE:(BLjava/lang/String;)V
        15: .line 1493
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.ServerHandshaker.secureRenegotiation:Z
            ifeq 17
        16: .line 1494
            aload 0 /* this */
            aload 1 /* mesg */
            invokevirtual sun.security.ssl.HandshakeMessage$Finished.getVerifyData:()[B
            putfield sun.security.ssl.ServerHandshaker.clientVerifyData:[B
        17: .line 1502
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.ServerHandshaker.resumingSession:Z
            ifne 20
        18: .line 1503
            aload 0 /* this */
            getfield sun.security.ssl.ServerHandshaker.input:Lsun/security/ssl/HandshakeInStream;
            invokevirtual sun.security.ssl.HandshakeInStream.digestNow:()V
        19: .line 1504
            aload 0 /* this */
            iconst_1
            invokevirtual sun.security.ssl.ServerHandshaker.sendChangeCipherAndFinish:(Z)V
        20: .line 1511
      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
        21: .line 1512
            aload 0 /* this */
            getfield sun.security.ssl.ServerHandshaker.resumingSession:Z
            ifne 29
            aload 0 /* this */
            getfield sun.security.ssl.ServerHandshaker.session:Lsun/security/ssl/SSLSessionImpl;
            invokevirtual sun.security.ssl.SSLSessionImpl.isRejoinable:()Z
            ifeq 29
        22: .line 1513
            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
        23: .line 1514
            aload 0 /* this */
            getfield sun.security.ssl.ServerHandshaker.session:Lsun/security/ssl/SSLSessionImpl;
            invokevirtual sun.security.ssl.SSLSessionContextImpl.put:(Lsun/security/ssl/SSLSessionImpl;)V
        24: .line 1515
            getstatic sun.security.ssl.ServerHandshaker.debug:Lsun/security/ssl/Debug;
            ifnull 36
            ldc "session"
            invokestatic sun.security.ssl.Debug.isOn:(Ljava/lang/String;)Z
            ifeq 36
        25: .line 1516
            getstatic java.lang.System.out:Ljava/io/PrintStream;
        26: .line 1517
            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;
        27: .line 1516
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
        28: .line 1519
            goto 36
      StackMap locals:
      StackMap stack:
        29: aload 0 /* this */
            getfield sun.security.ssl.ServerHandshaker.resumingSession:Z
            ifne 36
        30: .line 1520
            getstatic sun.security.ssl.ServerHandshaker.debug:Lsun/security/ssl/Debug;
            ifnull 36
            ldc "session"
            invokestatic sun.security.ssl.Debug.isOn:(Ljava/lang/String;)Z
            ifeq 36
        31: .line 1521
            getstatic java.lang.System.out:Ljava/io/PrintStream;
        32: .line 1522
            new java.lang.StringBuilder
            dup
            ldc "%% Didn't cache non-resumable server session: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
        33: .line 1523
            aload 0 /* this */
            getfield sun.security.ssl.ServerHandshaker.session:Lsun/security/ssl/SSLSessionImpl;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
        34: .line 1522
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        35: .line 1521
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
        36: .line 1525
      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   37     0      this  Lsun/security/ssl/ServerHandshaker;
            0   37     1      mesg  Lsun/security/ssl/HandshakeMessage$Finished;
           11   37     2  verified  Z
    Exceptions:
      throws java.io.IOException
    MethodParameters:
      Name  Flags
      mesg  

  private void sendChangeCipherAndFinish(boolean);
    descriptor: (Z)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=6, locals=3, args_size=2
        start local 0 // sun.security.ssl.ServerHandshaker this
        start local 1 // boolean finishedTag
         0: .line 1534
            aload 0 /* this */
            getfield sun.security.ssl.ServerHandshaker.output:Lsun/security/ssl/HandshakeOutStream;
            invokevirtual sun.security.ssl.HandshakeOutStream.flush:()V
         1: .line 1536
            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 1537
            iconst_2
            aload 0 /* this */
            getfield sun.security.ssl.ServerHandshaker.session:Lsun/security/ssl/SSLSessionImpl;
            invokevirtual sun.security.ssl.SSLSessionImpl.getMasterSecret:()Ljavax/crypto/SecretKey;
         3: .line 1536
            invokespecial sun.security.ssl.HandshakeMessage$Finished.<init>:(Lsun/security/ssl/ProtocolVersion;Lsun/security/ssl/HandshakeHash;ILjavax/crypto/SecretKey;)V
            astore 2 /* mesg */
        start local 2 // sun.security.ssl.HandshakeMessage$Finished mesg
         4: .line 1544
            aload 0 /* this */
            aload 2 /* mesg */
            iload 1 /* finishedTag */
            invokevirtual sun.security.ssl.ServerHandshaker.sendChangeCipherSpec:(Lsun/security/ssl/HandshakeMessage$Finished;Z)V
         5: .line 1549
            aload 0 /* this */
            getfield sun.security.ssl.ServerHandshaker.secureRenegotiation:Z
            ifeq 7
         6: .line 1550
            aload 0 /* this */
            aload 2 /* mesg */
            invokevirtual sun.security.ssl.HandshakeMessage$Finished.getVerifyData:()[B
            putfield sun.security.ssl.ServerHandshaker.serverVerifyData:[B
         7: .line 1559
      StackMap locals: sun.security.ssl.HandshakeMessage$Finished
      StackMap stack:
            iload 1 /* finishedTag */
            ifeq 9
         8: .line 1560
            aload 0 /* this */
            bipush 20
            putfield sun.security.ssl.ServerHandshaker.state:I
         9: .line 1562
      StackMap locals:
      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   10     0         this  Lsun/security/ssl/ServerHandshaker;
            0   10     1  finishedTag  Z
            4   10     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 1569
            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 1578
            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 1580
            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 1581
            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 1582
            aload 2 /* message */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
         4: .line 1581
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
         5: .line 1593
      StackMap locals: java.lang.String
      StackMap stack:
            iload 1 /* description */
            bipush 41
            if_icmpne 8
         6: .line 1594
            aload 0 /* this */
            getfield sun.security.ssl.ServerHandshaker.doClientAuth:B
            iconst_1
            if_icmpne 8
         7: .line 1595
            return
         8: .line 1598
      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 1609
            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 1610
            aload 1 /* mesg */
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            invokevirtual sun.security.ssl.RSAClientKeyExchange.print:(Ljava/io/PrintStream;)V
         2: .line 1612
      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=5, locals=8, args_size=2
        start local 0 // sun.security.ssl.ServerHandshaker this
        start local 1 // sun.security.ssl.HandshakeMessage$CertificateMsg mesg
         0: .line 1623
            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 1624
            aload 1 /* mesg */
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            invokevirtual sun.security.ssl.HandshakeMessage$CertificateMsg.print:(Ljava/io/PrintStream;)V
         2: .line 1627
      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 1629
            aload 2 /* peerCerts */
            arraylength
            ifne 9
         4: .line 1634
            aload 0 /* this */
            getfield sun.security.ssl.ServerHandshaker.doClientAuth:B
            iconst_1
            if_icmpne 6
         5: .line 1635
            return
         6: .line 1637
      StackMap locals: java.security.cert.X509Certificate[]
      StackMap stack:
            aload 0 /* this */
            bipush 42
         7: .line 1638
            ldc "null cert chain"
         8: .line 1637
            invokevirtual sun.security.ssl.ServerHandshaker.fatalSE:(BLjava/lang/String;)V
         9: .line 1643
      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
        10: .line 1647
            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
        11: .line 1648
            aload 4 /* key */
            invokeinterface java.security.PublicKey.getAlgorithm:()Ljava/lang/String;
            astore 5 /* keyAlgorithm */
        start local 5 // java.lang.String keyAlgorithm
        12: .line 1650
            aload 5 /* keyAlgorithm */
            ldc "RSA"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 15
        13: .line 1651
            ldc "RSA"
            astore 6 /* authType */
        start local 6 // java.lang.String authType
        14: .line 1652
            goto 22
        end local 6 // java.lang.String authType
      StackMap locals: javax.net.ssl.X509TrustManager java.security.PublicKey java.lang.String
      StackMap stack:
        15: aload 5 /* keyAlgorithm */
            ldc "DSA"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 18
        16: .line 1653
            ldc "DSA"
            astore 6 /* authType */
        start local 6 // java.lang.String authType
        17: .line 1654
            goto 22
        end local 6 // java.lang.String authType
      StackMap locals:
      StackMap stack:
        18: aload 5 /* keyAlgorithm */
            ldc "EC"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 21
        19: .line 1655
            ldc "EC"
            astore 6 /* authType */
        start local 6 // java.lang.String authType
        20: .line 1656
            goto 22
        end local 6 // java.lang.String authType
        21: .line 1658
      StackMap locals:
      StackMap stack:
            ldc "UNKNOWN"
            astore 6 /* authType */
        start local 6 // java.lang.String authType
        22: .line 1661
      StackMap locals: java.lang.String
      StackMap stack:
            aload 0 /* this */
            invokevirtual sun.security.ssl.ServerHandshaker.getHostnameVerificationSE:()Ljava/lang/String;
            astore 7 /* identificator */
        start local 7 // java.lang.String identificator
        23: .line 1662
            aload 3 /* tm */
            instanceof com.sun.net.ssl.internal.ssl.X509ExtendedTrustManager
            ifeq 33
        24: .line 1663
            aload 3 /* tm */
            checkcast com.sun.net.ssl.internal.ssl.X509ExtendedTrustManager
        25: .line 1664
            aload 2 /* peerCerts */
            ifnull 27
        26: .line 1665
            aload 2 /* peerCerts */
            invokevirtual java.security.cert.X509Certificate[].clone:()Ljava/lang/Object;
            checkcast java.security.cert.X509Certificate[]
            goto 28
        27: .line 1666
      StackMap locals: sun.security.ssl.ServerHandshaker sun.security.ssl.HandshakeMessage$CertificateMsg java.security.cert.X509Certificate[] javax.net.ssl.X509TrustManager java.security.PublicKey java.lang.String java.lang.String java.lang.String
      StackMap stack: com.sun.net.ssl.internal.ssl.X509ExtendedTrustManager
            aconst_null
        28: .line 1667
      StackMap locals: sun.security.ssl.ServerHandshaker sun.security.ssl.HandshakeMessage$CertificateMsg java.security.cert.X509Certificate[] javax.net.ssl.X509TrustManager java.security.PublicKey java.lang.String java.lang.String java.lang.String
      StackMap stack: com.sun.net.ssl.internal.ssl.X509ExtendedTrustManager java.security.cert.X509Certificate[]
            aload 6 /* authType */
        29: .line 1668
            aload 0 /* this */
            invokevirtual sun.security.ssl.ServerHandshaker.getHostSE:()Ljava/lang/String;
        30: .line 1669
            aload 7 /* identificator */
        31: .line 1663
            invokevirtual com.sun.net.ssl.internal.ssl.X509ExtendedTrustManager.checkClientTrusted:([Ljava/security/cert/X509Certificate;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
        32: .line 1670
            goto 46
        33: .line 1671
      StackMap locals:
      StackMap stack:
            aload 7 /* identificator */
            ifnull 37
        34: .line 1672
            new java.lang.RuntimeException
            dup
        35: .line 1673
            ldc "trust manager does not support peer identification"
        36: .line 1672
            invokespecial java.lang.RuntimeException.<init>:(Ljava/lang/String;)V
            athrow
        37: .line 1676
      StackMap locals:
      StackMap stack:
            aload 3 /* tm */
        38: .line 1677
            aload 2 /* peerCerts */
            ifnull 40
        39: .line 1678
            aload 2 /* peerCerts */
            invokevirtual java.security.cert.X509Certificate[].clone:()Ljava/lang/Object;
            checkcast java.security.cert.X509Certificate[]
            goto 41
        40: .line 1679
      StackMap locals:
      StackMap stack: javax.net.ssl.X509TrustManager
            aload 2 /* peerCerts */
        41: .line 1680
      StackMap locals: sun.security.ssl.ServerHandshaker sun.security.ssl.HandshakeMessage$CertificateMsg java.security.cert.X509Certificate[] javax.net.ssl.X509TrustManager java.security.PublicKey java.lang.String java.lang.String java.lang.String
      StackMap stack: javax.net.ssl.X509TrustManager java.security.cert.X509Certificate[]
            aload 6 /* authType */
        42: .line 1676
            invokeinterface javax.net.ssl.X509TrustManager.checkClientTrusted:([Ljava/security/cert/X509Certificate;Ljava/lang/String;)V
        end local 7 // java.lang.String identificator
        end local 6 // java.lang.String authType
        end local 5 // java.lang.String keyAlgorithm
        end local 4 // java.security.PublicKey key
        43: .line 1682
            goto 46
      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
        44: astore 4 /* e */
        start local 4 // java.security.cert.CertificateException e
        45: .line 1684
            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
        46: .line 1687
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iconst_1
            putfield sun.security.ssl.ServerHandshaker.needClientVerify:Z
        47: .line 1689
            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
        48: .line 1690
            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   49     0           this  Lsun/security/ssl/ServerHandshaker;
            0   49     1           mesg  Lsun/security/ssl/HandshakeMessage$CertificateMsg;
            3   49     2      peerCerts  [Ljava/security/cert/X509Certificate;
           10   49     3             tm  Ljavax/net/ssl/X509TrustManager;
           11   43     4            key  Ljava/security/PublicKey;
           12   43     5   keyAlgorithm  Ljava/lang/String;
           14   15     6       authType  Ljava/lang/String;
           17   18     6       authType  Ljava/lang/String;
           20   21     6       authType  Ljava/lang/String;
           22   43     6       authType  Ljava/lang/String;
           23   43     7  identificator  Ljava/lang/String;
           45   46     4              e  Ljava/security/cert/CertificateException;
      Exception table:
        from    to  target  type
          10    43      44  Class java.security.cert.CertificateException
    Exceptions:
      throws java.io.IOException
    MethodParameters:
      Name  Flags
      mesg  

  private static int parseUnsignedInt(java.lang.String, int);
    descriptor: (Ljava/lang/String;I)I
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=7, locals=6, args_size=2
        start local 0 // java.lang.String s
        start local 1 // int radix
         0: .line 1736
            aload 0 /* s */
            ifnonnull 2
         1: .line 1737
            new java.lang.NumberFormatException
            dup
            ldc "null"
            invokespecial java.lang.NumberFormatException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 1740
      StackMap locals:
      StackMap stack:
            aload 0 /* s */
            invokevirtual java.lang.String.length:()I
            istore 2 /* len */
        start local 2 // int len
         3: .line 1741
            iload 2 /* len */
            ifle 20
         4: .line 1742
            aload 0 /* s */
            iconst_0
            invokevirtual java.lang.String.charAt:(I)C
            istore 3 /* firstChar */
        start local 3 // char firstChar
         5: .line 1743
            iload 3 /* firstChar */
            bipush 45
            if_icmpne 10
         6: .line 1745
            new java.lang.NumberFormatException
            dup
            ldc "Illegal leading minus sign on unsigned string %s."
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
         7: .line 1746
            aload 0 /* s */
            aastore
         8: .line 1745
            invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
         9: .line 1744
            invokespecial java.lang.NumberFormatException.<init>:(Ljava/lang/String;)V
            athrow
        10: .line 1748
      StackMap locals: int int
      StackMap stack:
            iload 2 /* len */
            iconst_5
            if_icmple 12
        11: .line 1749
            iload 1 /* radix */
            bipush 10
            if_icmpne 13
            iload 2 /* len */
            bipush 9
            if_icmpgt 13
        12: .line 1750
      StackMap locals:
      StackMap stack:
            aload 0 /* s */
            iload 1 /* radix */
            invokestatic java.lang.Integer.parseInt:(Ljava/lang/String;I)I
            ireturn
        13: .line 1752
      StackMap locals:
      StackMap stack:
            aload 0 /* s */
            iload 1 /* radix */
            invokestatic java.lang.Long.parseLong:(Ljava/lang/String;I)J
            lstore 4 /* ell */
        start local 4 // long ell
        14: .line 1753
            lload 4 /* ell */
            ldc -4294967296
            land
            lconst_0
            lcmp
            ifne 16
        15: .line 1754
            lload 4 /* ell */
            l2i
            ireturn
        16: .line 1757
      StackMap locals: long
      StackMap stack:
            new java.lang.NumberFormatException
            dup
            ldc "String value %s exceeds range of unsigned int."
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
        17: .line 1758
            aload 0 /* s */
            aastore
        18: .line 1757
            invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
        19: .line 1756
            invokespecial java.lang.NumberFormatException.<init>:(Ljava/lang/String;)V
            athrow
        end local 4 // long ell
        end local 3 // char firstChar
        20: .line 1763
      StackMap locals:
      StackMap stack:
            new java.lang.NumberFormatException
            dup
            new java.lang.StringBuilder
            dup
            ldc "For input string: \""
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* s */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc "\""
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.lang.NumberFormatException.<init>:(Ljava/lang/String;)V
            athrow
        end local 2 // int len
        end local 1 // int radix
        end local 0 // java.lang.String s
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   21     0          s  Ljava/lang/String;
            0   21     1      radix  I
            3   21     2        len  I
            5   20     3  firstChar  C
           14   20     4        ell  J
    Exceptions:
      throws java.lang.NumberFormatException
    MethodParameters:
       Name  Flags
      s      
      radix  

  private static int parseUnsignedInt(java.lang.String);
    descriptor: (Ljava/lang/String;)I
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // java.lang.String s
         0: .line 1783
            aload 0 /* s */
            bipush 10
            invokestatic sun.security.ssl.ServerHandshaker.parseUnsignedInt:(Ljava/lang/String;I)I
            ireturn
        end local 0 // java.lang.String s
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0     s  Ljava/lang/String;
    Exceptions:
      throws java.lang.NumberFormatException
    MethodParameters:
      Name  Flags
      s     

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

  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 68
            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 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