final class sun.security.ssl.RSAClientKeyExchange extends sun.security.ssl.HandshakeMessage
  minor version: 0
  major version: 59
  flags: flags: (0x0030) ACC_FINAL, ACC_SUPER
  this_class: sun.security.ssl.RSAClientKeyExchange
  super_class: sun.security.ssl.HandshakeMessage
{
  private sun.security.ssl.ProtocolVersion protocolVersion;
    descriptor: Lsun/security/ssl/ProtocolVersion;
    flags: (0x0002) ACC_PRIVATE

  javax.crypto.SecretKey preMaster;
    descriptor: Ljavax/crypto/SecretKey;
    flags: (0x0000) 

  private byte[] encrypted;
    descriptor: [B
    flags: (0x0002) ACC_PRIVATE

  void <init>(sun.security.ssl.ProtocolVersion, sun.security.ssl.ProtocolVersion, java.security.SecureRandom, java.security.PublicKey);
    descriptor: (Lsun/security/ssl/ProtocolVersion;Lsun/security/ssl/ProtocolVersion;Ljava/security/SecureRandom;Ljava/security/PublicKey;)V
    flags: (0x0000) 
    Code:
      stack=5, locals=7, args_size=5
        start local 0 // sun.security.ssl.RSAClientKeyExchange this
        start local 1 // sun.security.ssl.ProtocolVersion protocolVersion
        start local 2 // sun.security.ssl.ProtocolVersion maxVersion
        start local 3 // java.security.SecureRandom generator
        start local 4 // java.security.PublicKey publicKey
         0: .line 68
            aload 0 /* this */
            invokespecial sun.security.ssl.HandshakeMessage.<init>:()V
         1: .line 71
            aload 4 /* publicKey */
            invokeinterface java.security.PublicKey.getAlgorithm:()Ljava/lang/String;
            ldc "RSA"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 3
         2: .line 72
            new javax.net.ssl.SSLKeyException
            dup
            ldc "Public key not of type RSA"
            invokespecial javax.net.ssl.SSLKeyException.<init>:(Ljava/lang/String;)V
            athrow
         3: .line 74
      StackMap locals: sun.security.ssl.RSAClientKeyExchange sun.security.ssl.ProtocolVersion sun.security.ssl.ProtocolVersion java.security.SecureRandom java.security.PublicKey
      StackMap stack:
            aload 0 /* this */
            aload 1 /* protocolVersion */
            putfield sun.security.ssl.RSAClientKeyExchange.protocolVersion:Lsun/security/ssl/ProtocolVersion;
         4: .line 77
            ldc "SunTlsRsaPremasterSecret"
            invokestatic sun.security.ssl.JsseJce.getKeyGenerator:(Ljava/lang/String;)Ljavax/crypto/KeyGenerator;
            astore 5 /* kg */
        start local 5 // javax.crypto.KeyGenerator kg
         5: .line 78
            aload 5 /* kg */
            new sun.security.internal.spec.TlsRsaPremasterSecretParameterSpec
            dup
         6: .line 79
            aload 2 /* maxVersion */
            getfield sun.security.ssl.ProtocolVersion.v:I
            aload 1 /* protocolVersion */
            getfield sun.security.ssl.ProtocolVersion.v:I
            invokespecial sun.security.internal.spec.TlsRsaPremasterSecretParameterSpec.<init>:(II)V
            aload 3 /* generator */
         7: .line 78
            invokevirtual javax.crypto.KeyGenerator.init:(Ljava/security/spec/AlgorithmParameterSpec;Ljava/security/SecureRandom;)V
         8: .line 80
            aload 0 /* this */
            aload 5 /* kg */
            invokevirtual javax.crypto.KeyGenerator.generateKey:()Ljavax/crypto/SecretKey;
            putfield sun.security.ssl.RSAClientKeyExchange.preMaster:Ljavax/crypto/SecretKey;
         9: .line 82
            ldc "RSA/ECB/PKCS1Padding"
            invokestatic sun.security.ssl.JsseJce.getCipher:(Ljava/lang/String;)Ljavax/crypto/Cipher;
            astore 6 /* cipher */
        start local 6 // javax.crypto.Cipher cipher
        10: .line 83
            aload 6 /* cipher */
            iconst_3
            aload 4 /* publicKey */
            aload 3 /* generator */
            invokevirtual javax.crypto.Cipher.init:(ILjava/security/Key;Ljava/security/SecureRandom;)V
        11: .line 84
            aload 0 /* this */
            aload 6 /* cipher */
            aload 0 /* this */
            getfield sun.security.ssl.RSAClientKeyExchange.preMaster:Ljavax/crypto/SecretKey;
            invokevirtual javax.crypto.Cipher.wrap:(Ljava/security/Key;)[B
            putfield sun.security.ssl.RSAClientKeyExchange.encrypted:[B
        end local 6 // javax.crypto.Cipher cipher
        end local 5 // javax.crypto.KeyGenerator kg
        12: .line 85
            goto 19
      StackMap locals:
      StackMap stack: java.security.GeneralSecurityException
        13: astore 5 /* e */
        start local 5 // java.security.GeneralSecurityException e
        14: .line 86
            new javax.net.ssl.SSLKeyException
            dup
        15: .line 87
            ldc "RSA premaster secret error"
        16: .line 86
            invokespecial javax.net.ssl.SSLKeyException.<init>:(Ljava/lang/String;)V
        17: .line 87
            aload 5 /* e */
            invokevirtual javax.net.ssl.SSLKeyException.initCause:(Ljava/lang/Throwable;)Ljava/lang/Throwable;
        18: .line 86
            checkcast javax.net.ssl.SSLKeyException
            athrow
        end local 5 // java.security.GeneralSecurityException e
        19: .line 89
      StackMap locals:
      StackMap stack:
            return
        end local 4 // java.security.PublicKey publicKey
        end local 3 // java.security.SecureRandom generator
        end local 2 // sun.security.ssl.ProtocolVersion maxVersion
        end local 1 // sun.security.ssl.ProtocolVersion protocolVersion
        end local 0 // sun.security.ssl.RSAClientKeyExchange this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0   20     0             this  Lsun/security/ssl/RSAClientKeyExchange;
            0   20     1  protocolVersion  Lsun/security/ssl/ProtocolVersion;
            0   20     2       maxVersion  Lsun/security/ssl/ProtocolVersion;
            0   20     3        generator  Ljava/security/SecureRandom;
            0   20     4        publicKey  Ljava/security/PublicKey;
            5   12     5               kg  Ljavax/crypto/KeyGenerator;
           10   12     6           cipher  Ljavax/crypto/Cipher;
           14   19     5                e  Ljava/security/GeneralSecurityException;
      Exception table:
        from    to  target  type
           4    12      13  Class java.security.GeneralSecurityException
    Exceptions:
      throws java.io.IOException
    MethodParameters:
                 Name  Flags
      protocolVersion  
      maxVersion       
      generator        
      publicKey        

  void <init>(sun.security.ssl.ProtocolVersion, sun.security.ssl.ProtocolVersion, java.security.SecureRandom, sun.security.ssl.HandshakeInStream, int, java.security.PrivateKey);
    descriptor: (Lsun/security/ssl/ProtocolVersion;Lsun/security/ssl/ProtocolVersion;Ljava/security/SecureRandom;Lsun/security/ssl/HandshakeInStream;ILjava/security/PrivateKey;)V
    flags: (0x0000) 
    Code:
      stack=7, locals=11, args_size=7
        start local 0 // sun.security.ssl.RSAClientKeyExchange this
        start local 1 // sun.security.ssl.ProtocolVersion currentVersion
        start local 2 // sun.security.ssl.ProtocolVersion maxVersion
        start local 3 // java.security.SecureRandom generator
        start local 4 // sun.security.ssl.HandshakeInStream input
        start local 5 // int messageSize
        start local 6 // java.security.PrivateKey privateKey
         0: .line 95
            aload 0 /* this */
            invokespecial sun.security.ssl.HandshakeMessage.<init>:()V
         1: .line 100
            aload 6 /* privateKey */
            invokeinterface java.security.PrivateKey.getAlgorithm:()Ljava/lang/String;
            ldc "RSA"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 3
         2: .line 101
            new javax.net.ssl.SSLKeyException
            dup
            ldc "Private key not of type RSA"
            invokespecial javax.net.ssl.SSLKeyException.<init>:(Ljava/lang/String;)V
            athrow
         3: .line 104
      StackMap locals: sun.security.ssl.RSAClientKeyExchange sun.security.ssl.ProtocolVersion sun.security.ssl.ProtocolVersion java.security.SecureRandom sun.security.ssl.HandshakeInStream int java.security.PrivateKey
      StackMap stack:
            aload 1 /* currentVersion */
            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 6
         4: .line 105
            aload 0 /* this */
            aload 4 /* input */
            invokevirtual sun.security.ssl.HandshakeInStream.getBytes16:()[B
            putfield sun.security.ssl.RSAClientKeyExchange.encrypted:[B
         5: .line 106
            goto 11
         6: .line 107
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iload 5 /* messageSize */
            newarray 8
            putfield sun.security.ssl.RSAClientKeyExchange.encrypted:[B
         7: .line 108
            aload 4 /* input */
            aload 0 /* this */
            getfield sun.security.ssl.RSAClientKeyExchange.encrypted:[B
            invokevirtual sun.security.ssl.HandshakeInStream.read:([B)I
            iload 5 /* messageSize */
            if_icmpeq 11
         8: .line 109
            new javax.net.ssl.SSLProtocolException
            dup
         9: .line 110
            ldc "SSL: read PreMasterSecret: short read"
        10: .line 109
            invokespecial javax.net.ssl.SSLProtocolException.<init>:(Ljava/lang/String;)V
            athrow
        11: .line 114
      StackMap locals:
      StackMap stack:
            aconst_null
            astore 7 /* encoded */
        start local 7 // byte[] encoded
        12: .line 116
            ldc "RSA/ECB/PKCS1Padding"
            invokestatic sun.security.ssl.JsseJce.getCipher:(Ljava/lang/String;)Ljavax/crypto/Cipher;
            astore 8 /* cipher */
        start local 8 // javax.crypto.Cipher cipher
        13: .line 118
            aload 8 /* cipher */
            invokevirtual javax.crypto.Cipher.getProvider:()Ljava/security/Provider;
            invokevirtual java.security.Provider.getName:()Ljava/lang/String;
        14: .line 117
            invokestatic sun.security.util.KeyUtil.isOracleJCEProvider:(Ljava/lang/String;)Z
        15: .line 118
            ifeq 17
        16: .line 117
            iconst_0
            goto 18
      StackMap locals: byte[] javax.crypto.Cipher
      StackMap stack:
        17: iconst_1
      StackMap locals:
      StackMap stack: int
        18: istore 9 /* needFailover */
        start local 9 // boolean needFailover
        19: .line 119
            iload 9 /* needFailover */
            ifeq 34
        20: .line 120
            aload 8 /* cipher */
            iconst_2
            aload 6 /* privateKey */
            invokevirtual javax.crypto.Cipher.init:(ILjava/security/Key;)V
        21: .line 121
            iconst_0
            istore 10 /* failed */
        start local 10 // boolean failed
        22: .line 123
            aload 8 /* cipher */
            aload 0 /* this */
            getfield sun.security.ssl.RSAClientKeyExchange.encrypted:[B
            invokevirtual javax.crypto.Cipher.doFinal:([B)[B
            astore 7 /* encoded */
        23: .line 124
            goto 26
      StackMap locals: sun.security.ssl.RSAClientKeyExchange sun.security.ssl.ProtocolVersion sun.security.ssl.ProtocolVersion java.security.SecureRandom sun.security.ssl.HandshakeInStream int java.security.PrivateKey byte[] javax.crypto.Cipher int int
      StackMap stack: javax.crypto.BadPaddingException
        24: pop
        25: .line 126
            iconst_1
            istore 10 /* failed */
        26: .line 129
      StackMap locals:
      StackMap stack:
            aload 2 /* maxVersion */
            getfield sun.security.ssl.ProtocolVersion.v:I
            aload 1 /* currentVersion */
            getfield sun.security.ssl.ProtocolVersion.v:I
        27: .line 130
            aload 3 /* generator */
            aload 7 /* encoded */
            iload 10 /* failed */
        28: .line 128
            invokestatic sun.security.util.KeyUtil.checkTlsPreMasterSecretKey:(IILjava/security/SecureRandom;[BZ)[B
            astore 7 /* encoded */
        29: .line 131
            aload 0 /* this */
        30: .line 132
            aload 2 /* maxVersion */
            getfield sun.security.ssl.ProtocolVersion.v:I
            aload 1 /* currentVersion */
            getfield sun.security.ssl.ProtocolVersion.v:I
        31: .line 133
            aload 7 /* encoded */
            aload 3 /* generator */
        32: .line 131
            invokestatic sun.security.ssl.RSAClientKeyExchange.generatePreMasterSecret:(II[BLjava/security/SecureRandom;)Ljavax/crypto/SecretKey;
            putfield sun.security.ssl.RSAClientKeyExchange.preMaster:Ljavax/crypto/SecretKey;
        end local 10 // boolean failed
        33: .line 134
            goto 53
        34: .line 135
      StackMap locals:
      StackMap stack:
            aload 8 /* cipher */
            iconst_4
            aload 6 /* privateKey */
        35: .line 136
            new sun.security.internal.spec.TlsRsaPremasterSecretParameterSpec
            dup
        36: .line 137
            aload 2 /* maxVersion */
            getfield sun.security.ssl.ProtocolVersion.v:I
            aload 1 /* currentVersion */
            getfield sun.security.ssl.ProtocolVersion.v:I
        37: .line 136
            invokespecial sun.security.internal.spec.TlsRsaPremasterSecretParameterSpec.<init>:(II)V
        38: .line 138
            aload 3 /* generator */
        39: .line 135
            invokevirtual javax.crypto.Cipher.init:(ILjava/security/Key;Ljava/security/spec/AlgorithmParameterSpec;Ljava/security/SecureRandom;)V
        40: .line 139
            aload 0 /* this */
            aload 8 /* cipher */
            aload 0 /* this */
            getfield sun.security.ssl.RSAClientKeyExchange.encrypted:[B
        41: .line 140
            ldc "TlsRsaPremasterSecret"
            iconst_3
        42: .line 139
            invokevirtual javax.crypto.Cipher.unwrap:([BLjava/lang/String;I)Ljava/security/Key;
            checkcast javax.crypto.SecretKey
            putfield sun.security.ssl.RSAClientKeyExchange.preMaster:Ljavax/crypto/SecretKey;
        end local 9 // boolean needFailover
        end local 8 // javax.crypto.Cipher cipher
        43: .line 142
            goto 53
      StackMap locals: sun.security.ssl.RSAClientKeyExchange sun.security.ssl.ProtocolVersion sun.security.ssl.ProtocolVersion java.security.SecureRandom sun.security.ssl.HandshakeInStream int java.security.PrivateKey byte[]
      StackMap stack: java.security.InvalidKeyException
        44: pop
        45: .line 144
            new javax.net.ssl.SSLProtocolException
            dup
        46: .line 145
            ldc "Unable to process PreMasterSecret, may be too big"
        47: .line 144
            invokespecial javax.net.ssl.SSLProtocolException.<init>:(Ljava/lang/String;)V
            athrow
        48: .line 146
      StackMap locals:
      StackMap stack: java.lang.Exception
            astore 8 /* e */
        start local 8 // java.lang.Exception e
        49: .line 148
            getstatic sun.security.ssl.RSAClientKeyExchange.debug:Lsun/security/ssl/Debug;
            ifnull 52
            ldc "handshake"
            invokestatic sun.security.ssl.Debug.isOn:(Ljava/lang/String;)Z
            ifeq 52
        50: .line 149
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            ldc "RSA premaster secret decryption error:"
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
        51: .line 150
            aload 8 /* e */
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            invokevirtual java.lang.Exception.printStackTrace:(Ljava/io/PrintStream;)V
        52: .line 152
      StackMap locals: java.lang.Exception
      StackMap stack:
            new java.lang.RuntimeException
            dup
            ldc "Could not generate dummy secret"
            aload 8 /* e */
            invokespecial java.lang.RuntimeException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
            athrow
        end local 8 // java.lang.Exception e
        53: .line 154
      StackMap locals:
      StackMap stack:
            return
        end local 7 // byte[] encoded
        end local 6 // java.security.PrivateKey privateKey
        end local 5 // int messageSize
        end local 4 // sun.security.ssl.HandshakeInStream input
        end local 3 // java.security.SecureRandom generator
        end local 2 // sun.security.ssl.ProtocolVersion maxVersion
        end local 1 // sun.security.ssl.ProtocolVersion currentVersion
        end local 0 // sun.security.ssl.RSAClientKeyExchange this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   54     0            this  Lsun/security/ssl/RSAClientKeyExchange;
            0   54     1  currentVersion  Lsun/security/ssl/ProtocolVersion;
            0   54     2      maxVersion  Lsun/security/ssl/ProtocolVersion;
            0   54     3       generator  Ljava/security/SecureRandom;
            0   54     4           input  Lsun/security/ssl/HandshakeInStream;
            0   54     5     messageSize  I
            0   54     6      privateKey  Ljava/security/PrivateKey;
           12   54     7         encoded  [B
           13   43     8          cipher  Ljavax/crypto/Cipher;
           19   43     9    needFailover  Z
           22   33    10          failed  Z
           49   53     8               e  Ljava/lang/Exception;
      Exception table:
        from    to  target  type
          22    23      24  Class javax.crypto.BadPaddingException
          12    43      44  Class java.security.InvalidKeyException
          12    43      48  Class java.lang.Exception
    Exceptions:
      throws java.io.IOException
    MethodParameters:
                Name  Flags
      currentVersion  
      maxVersion      
      generator       
      input           
      messageSize     
      privateKey      

  private static javax.crypto.SecretKey generatePreMasterSecret(int, int, byte[], java.security.SecureRandom);
    descriptor: (II[BLjava/security/SecureRandom;)Ljavax/crypto/SecretKey;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=6, locals=6, args_size=4
        start local 0 // int clientVersion
        start local 1 // int serverVersion
        start local 2 // byte[] encodedSecret
        start local 3 // java.security.SecureRandom generator
         0: .line 162
            getstatic sun.security.ssl.RSAClientKeyExchange.debug:Lsun/security/ssl/Debug;
            ifnull 2
            ldc "handshake"
            invokestatic sun.security.ssl.Debug.isOn:(Ljava/lang/String;)Z
            ifeq 2
         1: .line 163
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            ldc "Generating a premaster secret"
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
         2: .line 167
      StackMap locals:
      StackMap stack:
            iload 0 /* clientVersion */
            getstatic sun.security.ssl.ProtocolVersion.TLS12:Lsun/security/ssl/ProtocolVersion;
            getfield sun.security.ssl.ProtocolVersion.v:I
            if_icmplt 4
         3: .line 168
            ldc "SunTls12RsaPremasterSecret"
            goto 5
      StackMap locals:
      StackMap stack:
         4: ldc "SunTlsRsaPremasterSecret"
         5: .line 167
      StackMap locals:
      StackMap stack: java.lang.String
            astore 4 /* s */
        start local 4 // java.lang.String s
         6: .line 169
            aload 4 /* s */
            invokestatic sun.security.ssl.JsseJce.getKeyGenerator:(Ljava/lang/String;)Ljavax/crypto/KeyGenerator;
            astore 5 /* kg */
        start local 5 // javax.crypto.KeyGenerator kg
         7: .line 170
            aload 5 /* kg */
            new sun.security.internal.spec.TlsRsaPremasterSecretParameterSpec
            dup
         8: .line 171
            iload 0 /* clientVersion */
            iload 1 /* serverVersion */
            aload 2 /* encodedSecret */
            invokespecial sun.security.internal.spec.TlsRsaPremasterSecretParameterSpec.<init>:(II[B)V
         9: .line 172
            aload 3 /* generator */
        10: .line 170
            invokevirtual javax.crypto.KeyGenerator.init:(Ljava/security/spec/AlgorithmParameterSpec;Ljava/security/SecureRandom;)V
        11: .line 173
            aload 5 /* kg */
            invokevirtual javax.crypto.KeyGenerator.generateKey:()Ljavax/crypto/SecretKey;
        12: areturn
        end local 5 // javax.crypto.KeyGenerator kg
        end local 4 // java.lang.String s
        13: .line 174
      StackMap locals:
      StackMap stack: java.security.InvalidAlgorithmParameterException
            astore 4 /* iae */
        start local 4 // java.security.InvalidAlgorithmParameterException iae
        14: .line 176
            getstatic sun.security.ssl.RSAClientKeyExchange.debug:Lsun/security/ssl/Debug;
            ifnull 17
            ldc "handshake"
            invokestatic sun.security.ssl.Debug.isOn:(Ljava/lang/String;)Z
            ifeq 17
        15: .line 177
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            ldc "RSA premaster secret generation error:"
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
        16: .line 178
            aload 4 /* iae */
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            invokevirtual java.security.InvalidAlgorithmParameterException.printStackTrace:(Ljava/io/PrintStream;)V
        17: .line 180
      StackMap locals: java.security.InvalidAlgorithmParameterException
      StackMap stack:
            new java.lang.RuntimeException
            dup
            ldc "Could not generate premaster secret"
            aload 4 /* iae */
            invokespecial java.lang.RuntimeException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
            athrow
        end local 4 // java.security.InvalidAlgorithmParameterException iae
        18: .line 181
      StackMap locals: int int byte[] java.security.SecureRandom
      StackMap stack: java.security.NoSuchAlgorithmException
            astore 4 /* nsae */
        start local 4 // java.security.NoSuchAlgorithmException nsae
        19: .line 183
            getstatic sun.security.ssl.RSAClientKeyExchange.debug:Lsun/security/ssl/Debug;
            ifnull 22
            ldc "handshake"
            invokestatic sun.security.ssl.Debug.isOn:(Ljava/lang/String;)Z
            ifeq 22
        20: .line 184
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            ldc "RSA premaster secret generation error:"
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
        21: .line 185
            aload 4 /* nsae */
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            invokevirtual java.security.NoSuchAlgorithmException.printStackTrace:(Ljava/io/PrintStream;)V
        22: .line 187
      StackMap locals: java.security.NoSuchAlgorithmException
      StackMap stack:
            new java.lang.RuntimeException
            dup
            ldc "Could not generate premaster secret"
            aload 4 /* nsae */
            invokespecial java.lang.RuntimeException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
            athrow
        end local 4 // java.security.NoSuchAlgorithmException nsae
        end local 3 // java.security.SecureRandom generator
        end local 2 // byte[] encodedSecret
        end local 1 // int serverVersion
        end local 0 // int clientVersion
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0   23     0  clientVersion  I
            0   23     1  serverVersion  I
            0   23     2  encodedSecret  [B
            0   23     3      generator  Ljava/security/SecureRandom;
            6   13     4              s  Ljava/lang/String;
            7   13     5             kg  Ljavax/crypto/KeyGenerator;
           14   18     4            iae  Ljava/security/InvalidAlgorithmParameterException;
           19   23     4           nsae  Ljava/security/NoSuchAlgorithmException;
      Exception table:
        from    to  target  type
           2    12      13  Class java.security.InvalidAlgorithmParameterException
           2    12      18  Class java.security.NoSuchAlgorithmException
    MethodParameters:
               Name  Flags
      clientVersion  
      serverVersion  
      encodedSecret  
      generator      

  int messageType();
    descriptor: ()I
    flags: (0x0000) 
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // sun.security.ssl.RSAClientKeyExchange this
         0: .line 193
            bipush 16
            ireturn
        end local 0 // sun.security.ssl.RSAClientKeyExchange this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lsun/security/ssl/RSAClientKeyExchange;

  int messageLength();
    descriptor: ()I
    flags: (0x0000) 
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // sun.security.ssl.RSAClientKeyExchange this
         0: .line 198
            aload 0 /* this */
            getfield sun.security.ssl.RSAClientKeyExchange.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 2
         1: .line 199
            aload 0 /* this */
            getfield sun.security.ssl.RSAClientKeyExchange.encrypted:[B
            arraylength
            iconst_2
            iadd
            ireturn
         2: .line 201
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.RSAClientKeyExchange.encrypted:[B
            arraylength
            ireturn
        end local 0 // sun.security.ssl.RSAClientKeyExchange this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lsun/security/ssl/RSAClientKeyExchange;

  void send(sun.security.ssl.HandshakeOutStream);
    descriptor: (Lsun/security/ssl/HandshakeOutStream;)V
    flags: (0x0000) 
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // sun.security.ssl.RSAClientKeyExchange this
        start local 1 // sun.security.ssl.HandshakeOutStream s
         0: .line 207
            aload 0 /* this */
            getfield sun.security.ssl.RSAClientKeyExchange.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 3
         1: .line 208
            aload 1 /* s */
            aload 0 /* this */
            getfield sun.security.ssl.RSAClientKeyExchange.encrypted:[B
            invokevirtual sun.security.ssl.HandshakeOutStream.putBytes16:([B)V
         2: .line 209
            goto 4
         3: .line 210
      StackMap locals:
      StackMap stack:
            aload 1 /* s */
            aload 0 /* this */
            getfield sun.security.ssl.RSAClientKeyExchange.encrypted:[B
            invokevirtual sun.security.ssl.HandshakeOutStream.write:([B)V
         4: .line 212
      StackMap locals:
      StackMap stack:
            return
        end local 1 // sun.security.ssl.HandshakeOutStream s
        end local 0 // sun.security.ssl.RSAClientKeyExchange this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0  this  Lsun/security/ssl/RSAClientKeyExchange;
            0    5     1     s  Lsun/security/ssl/HandshakeOutStream;
    Exceptions:
      throws java.io.IOException
    MethodParameters:
      Name  Flags
      s     

  void print(java.io.PrintStream);
    descriptor: (Ljava/io/PrintStream;)V
    flags: (0x0000) 
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // sun.security.ssl.RSAClientKeyExchange this
        start local 1 // java.io.PrintStream s
         0: .line 216
            aload 1 /* s */
            new java.lang.StringBuilder
            dup
            ldc "*** ClientKeyExchange, RSA PreMasterSecret, "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
         1: .line 217
            aload 0 /* this */
            getfield sun.security.ssl.RSAClientKeyExchange.protocolVersion:Lsun/security/ssl/ProtocolVersion;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
         2: .line 216
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
         3: .line 218
            return
        end local 1 // java.io.PrintStream s
        end local 0 // sun.security.ssl.RSAClientKeyExchange this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Lsun/security/ssl/RSAClientKeyExchange;
            0    4     1     s  Ljava/io/PrintStream;
    Exceptions:
      throws java.io.IOException
    MethodParameters:
      Name  Flags
      s     
}
SourceFile: "RSAClientKeyExchange.java"