final class sun.security.ssl.SSLEngineImpl extends javax.net.ssl.SSLEngine implements sun.security.ssl.SSLTransport
  minor version: 0
  major version: 59
  flags: flags: (0x0030) ACC_FINAL, ACC_SUPER
  this_class: sun.security.ssl.SSLEngineImpl
  super_class: javax.net.ssl.SSLEngine
{
  private final sun.security.ssl.SSLContextImpl sslContext;
    descriptor: Lsun/security/ssl/SSLContextImpl;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  final sun.security.ssl.TransportContext conContext;
    descriptor: Lsun/security/ssl/TransportContext;
    flags: (0x0010) ACC_FINAL

  void <init>(sun.security.ssl.SSLContextImpl);
    descriptor: (Lsun/security/ssl/SSLContextImpl;)V
    flags: (0x0000) 
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // sun.security.ssl.SSLEngineImpl this
        start local 1 // sun.security.ssl.SSLContextImpl sslContext
         0: .line 66
            aload 0 /* this */
            aload 1 /* sslContext */
            aconst_null
            iconst_m1
            invokespecial sun.security.ssl.SSLEngineImpl.<init>:(Lsun/security/ssl/SSLContextImpl;Ljava/lang/String;I)V
         1: .line 67
            return
        end local 1 // sun.security.ssl.SSLContextImpl sslContext
        end local 0 // sun.security.ssl.SSLEngineImpl this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    2     0        this  Lsun/security/ssl/SSLEngineImpl;
            0    2     1  sslContext  Lsun/security/ssl/SSLContextImpl;
    MethodParameters:
            Name  Flags
      sslContext  

  void <init>(sun.security.ssl.SSLContextImpl, java.lang.String, int);
    descriptor: (Lsun/security/ssl/SSLContextImpl;Ljava/lang/String;I)V
    flags: (0x0000) 
    Code:
      stack=9, locals=5, args_size=4
        start local 0 // sun.security.ssl.SSLEngineImpl this
        start local 1 // sun.security.ssl.SSLContextImpl sslContext
        start local 2 // java.lang.String host
        start local 3 // int port
         0: .line 74
            aload 0 /* this */
            aload 2 /* host */
            iload 3 /* port */
            invokespecial javax.net.ssl.SSLEngine.<init>:(Ljava/lang/String;I)V
         1: .line 75
            aload 0 /* this */
            aload 1 /* sslContext */
            putfield sun.security.ssl.SSLEngineImpl.sslContext:Lsun/security/ssl/SSLContextImpl;
         2: .line 76
            new sun.security.ssl.HandshakeHash
            dup
            invokespecial sun.security.ssl.HandshakeHash.<init>:()V
            astore 4 /* handshakeHash */
        start local 4 // sun.security.ssl.HandshakeHash handshakeHash
         3: .line 77
            aload 1 /* sslContext */
            invokevirtual sun.security.ssl.SSLContextImpl.isDTLS:()Z
            ifeq 9
         4: .line 78
            aload 0 /* this */
            new sun.security.ssl.TransportContext
            dup
            aload 1 /* sslContext */
            aload 0 /* this */
         5: .line 79
            new sun.security.ssl.DTLSInputRecord
            dup
            aload 4 /* handshakeHash */
            invokespecial sun.security.ssl.DTLSInputRecord.<init>:(Lsun/security/ssl/HandshakeHash;)V
         6: .line 80
            new sun.security.ssl.DTLSOutputRecord
            dup
            aload 4 /* handshakeHash */
            invokespecial sun.security.ssl.DTLSOutputRecord.<init>:(Lsun/security/ssl/HandshakeHash;)V
            invokespecial sun.security.ssl.TransportContext.<init>:(Lsun/security/ssl/SSLContextImpl;Lsun/security/ssl/SSLTransport;Lsun/security/ssl/InputRecord;Lsun/security/ssl/OutputRecord;)V
         7: .line 78
            putfield sun.security.ssl.SSLEngineImpl.conContext:Lsun/security/ssl/TransportContext;
         8: .line 81
            goto 13
         9: .line 82
      StackMap locals: sun.security.ssl.SSLEngineImpl sun.security.ssl.SSLContextImpl java.lang.String int sun.security.ssl.HandshakeHash
      StackMap stack:
            aload 0 /* this */
            new sun.security.ssl.TransportContext
            dup
            aload 1 /* sslContext */
            aload 0 /* this */
        10: .line 83
            new sun.security.ssl.SSLEngineInputRecord
            dup
            aload 4 /* handshakeHash */
            invokespecial sun.security.ssl.SSLEngineInputRecord.<init>:(Lsun/security/ssl/HandshakeHash;)V
        11: .line 84
            new sun.security.ssl.SSLEngineOutputRecord
            dup
            aload 4 /* handshakeHash */
            invokespecial sun.security.ssl.SSLEngineOutputRecord.<init>:(Lsun/security/ssl/HandshakeHash;)V
            invokespecial sun.security.ssl.TransportContext.<init>:(Lsun/security/ssl/SSLContextImpl;Lsun/security/ssl/SSLTransport;Lsun/security/ssl/InputRecord;Lsun/security/ssl/OutputRecord;)V
        12: .line 82
            putfield sun.security.ssl.SSLEngineImpl.conContext:Lsun/security/ssl/TransportContext;
        13: .line 88
      StackMap locals:
      StackMap stack:
            aload 2 /* host */
            ifnull 18
        14: .line 89
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.conContext:Lsun/security/ssl/TransportContext;
            getfield sun.security.ssl.TransportContext.sslConfig:Lsun/security/ssl/SSLConfiguration;
        15: .line 91
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.conContext:Lsun/security/ssl/TransportContext;
            getfield sun.security.ssl.TransportContext.sslConfig:Lsun/security/ssl/SSLConfiguration;
            getfield sun.security.ssl.SSLConfiguration.serverNames:Ljava/util/List;
            aload 2 /* host */
        16: .line 90
            invokestatic sun.security.ssl.Utilities.addToSNIServerNameList:(Ljava/util/List;Ljava/lang/String;)Ljava/util/List;
        17: .line 89
            putfield sun.security.ssl.SSLConfiguration.serverNames:Ljava/util/List;
        18: .line 93
      StackMap locals:
      StackMap stack:
            return
        end local 4 // sun.security.ssl.HandshakeHash handshakeHash
        end local 3 // int port
        end local 2 // java.lang.String host
        end local 1 // sun.security.ssl.SSLContextImpl sslContext
        end local 0 // sun.security.ssl.SSLEngineImpl this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0   19     0           this  Lsun/security/ssl/SSLEngineImpl;
            0   19     1     sslContext  Lsun/security/ssl/SSLContextImpl;
            0   19     2           host  Ljava/lang/String;
            0   19     3           port  I
            3   19     4  handshakeHash  Lsun/security/ssl/HandshakeHash;
    MethodParameters:
            Name  Flags
      sslContext  
      host        
      port        

  public synchronized void beginHandshake();
    descriptor: ()V
    flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
    Code:
      stack=4, locals=2, args_size=1
        start local 0 // sun.security.ssl.SSLEngineImpl this
         0: .line 97
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.conContext:Lsun/security/ssl/TransportContext;
            getfield sun.security.ssl.TransportContext.isUnsureMode:Z
            ifeq 4
         1: .line 98
            new java.lang.IllegalStateException
            dup
         2: .line 99
            ldc "Client/Server mode has not yet been set."
         3: .line 98
            invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
            athrow
         4: .line 103
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.conContext:Lsun/security/ssl/TransportContext;
            invokevirtual sun.security.ssl.TransportContext.kickstart:()V
         5: .line 104
            goto 14
      StackMap locals:
      StackMap stack: java.io.IOException
         6: astore 1 /* ioe */
        start local 1 // java.io.IOException ioe
         7: .line 105
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.conContext:Lsun/security/ssl/TransportContext;
            getstatic sun.security.ssl.Alert.HANDSHAKE_FAILURE:Lsun/security/ssl/Alert;
         8: .line 106
            ldc "Couldn't kickstart handshaking"
            aload 1 /* ioe */
         9: .line 105
            invokevirtual sun.security.ssl.TransportContext.fatal:(Lsun/security/ssl/Alert;Ljava/lang/String;Ljava/lang/Throwable;)Ljavax/net/ssl/SSLException;
            athrow
        end local 1 // java.io.IOException ioe
        10: .line 107
      StackMap locals:
      StackMap stack: java.lang.Exception
            astore 1 /* ex */
        start local 1 // java.lang.Exception ex
        11: .line 108
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.conContext:Lsun/security/ssl/TransportContext;
            getstatic sun.security.ssl.Alert.INTERNAL_ERROR:Lsun/security/ssl/Alert;
        12: .line 109
            ldc "Fail to begin handshake"
            aload 1 /* ex */
        13: .line 108
            invokevirtual sun.security.ssl.TransportContext.fatal:(Lsun/security/ssl/Alert;Ljava/lang/String;Ljava/lang/Throwable;)Ljavax/net/ssl/SSLException;
            athrow
        end local 1 // java.lang.Exception ex
        14: .line 111
      StackMap locals:
      StackMap stack:
            return
        end local 0 // sun.security.ssl.SSLEngineImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   15     0  this  Lsun/security/ssl/SSLEngineImpl;
            7   10     1   ioe  Ljava/io/IOException;
           11   14     1    ex  Ljava/lang/Exception;
      Exception table:
        from    to  target  type
           4     5       6  Class java.io.IOException
           4     5      10  Class java.lang.Exception
    Exceptions:
      throws javax.net.ssl.SSLException

  public synchronized javax.net.ssl.SSLEngineResult wrap(java.nio.ByteBuffer[], int, int, java.nio.ByteBuffer);
    descriptor: ([Ljava/nio/ByteBuffer;IILjava/nio/ByteBuffer;)Ljavax/net/ssl/SSLEngineResult;
    flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
    Code:
      stack=8, locals=5, args_size=5
        start local 0 // sun.security.ssl.SSLEngineImpl this
        start local 1 // java.nio.ByteBuffer[] appData
        start local 2 // int offset
        start local 3 // int length
        start local 4 // java.nio.ByteBuffer netData
         0: .line 116
            aload 0 /* this */
            aload 1 /* appData */
            iload 2 /* offset */
            iload 3 /* length */
            iconst_1
            anewarray java.nio.ByteBuffer
            dup
            iconst_0
            aload 4 /* netData */
            aastore
            iconst_0
            iconst_1
            invokevirtual sun.security.ssl.SSLEngineImpl.wrap:([Ljava/nio/ByteBuffer;II[Ljava/nio/ByteBuffer;II)Ljavax/net/ssl/SSLEngineResult;
            areturn
        end local 4 // java.nio.ByteBuffer netData
        end local 3 // int length
        end local 2 // int offset
        end local 1 // java.nio.ByteBuffer[] appData
        end local 0 // sun.security.ssl.SSLEngineImpl this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     0     this  Lsun/security/ssl/SSLEngineImpl;
            0    1     1  appData  [Ljava/nio/ByteBuffer;
            0    1     2   offset  I
            0    1     3   length  I
            0    1     4  netData  Ljava/nio/ByteBuffer;
    Exceptions:
      throws javax.net.ssl.SSLException
    MethodParameters:
         Name  Flags
      appData  
      offset   
      length   
      netData  

  public synchronized javax.net.ssl.SSLEngineResult wrap(java.nio.ByteBuffer[], int, int, java.nio.ByteBuffer[], int, int);
    descriptor: ([Ljava/nio/ByteBuffer;II[Ljava/nio/ByteBuffer;II)Ljavax/net/ssl/SSLEngineResult;
    flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
    Code:
      stack=7, locals=8, args_size=7
        start local 0 // sun.security.ssl.SSLEngineImpl this
        start local 1 // java.nio.ByteBuffer[] srcs
        start local 2 // int srcsOffset
        start local 3 // int srcsLength
        start local 4 // java.nio.ByteBuffer[] dsts
        start local 5 // int dstsOffset
        start local 6 // int dstsLength
         0: .line 124
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.conContext:Lsun/security/ssl/TransportContext;
            getfield sun.security.ssl.TransportContext.isUnsureMode:Z
            ifeq 4
         1: .line 125
            new java.lang.IllegalStateException
            dup
         2: .line 126
            ldc "Client/Server mode has not yet been set."
         3: .line 125
            invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
            athrow
         4: .line 130
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual sun.security.ssl.SSLEngineImpl.checkTaskThrown:()V
         5: .line 133
            aload 1 /* srcs */
            iload 2 /* srcsOffset */
            iload 3 /* srcsLength */
            aload 4 /* dsts */
            iload 5 /* dstsOffset */
            iload 6 /* dstsLength */
            invokestatic sun.security.ssl.SSLEngineImpl.checkParams:([Ljava/nio/ByteBuffer;II[Ljava/nio/ByteBuffer;II)V
         6: .line 136
            aload 0 /* this */
         7: .line 137
            aload 1 /* srcs */
            iload 2 /* srcsOffset */
            iload 3 /* srcsLength */
            aload 4 /* dsts */
            iload 5 /* dstsOffset */
            iload 6 /* dstsLength */
         8: .line 136
            invokevirtual sun.security.ssl.SSLEngineImpl.writeRecord:([Ljava/nio/ByteBuffer;II[Ljava/nio/ByteBuffer;II)Ljavax/net/ssl/SSLEngineResult;
         9: areturn
        10: .line 138
      StackMap locals:
      StackMap stack: javax.net.ssl.SSLProtocolException
            astore 7 /* spe */
        start local 7 // javax.net.ssl.SSLProtocolException spe
        11: .line 140
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.conContext:Lsun/security/ssl/TransportContext;
            getstatic sun.security.ssl.Alert.UNEXPECTED_MESSAGE:Lsun/security/ssl/Alert;
            aload 7 /* spe */
            invokevirtual sun.security.ssl.TransportContext.fatal:(Lsun/security/ssl/Alert;Ljava/lang/Throwable;)Ljavax/net/ssl/SSLException;
            athrow
        end local 7 // javax.net.ssl.SSLProtocolException spe
        12: .line 141
      StackMap locals:
      StackMap stack: java.io.IOException
            astore 7 /* ioe */
        start local 7 // java.io.IOException ioe
        13: .line 142
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.conContext:Lsun/security/ssl/TransportContext;
            getstatic sun.security.ssl.Alert.INTERNAL_ERROR:Lsun/security/ssl/Alert;
        14: .line 143
            ldc "problem wrapping app data"
            aload 7 /* ioe */
        15: .line 142
            invokevirtual sun.security.ssl.TransportContext.fatal:(Lsun/security/ssl/Alert;Ljava/lang/String;Ljava/lang/Throwable;)Ljavax/net/ssl/SSLException;
            athrow
        end local 7 // java.io.IOException ioe
        16: .line 144
      StackMap locals:
      StackMap stack: java.lang.Exception
            astore 7 /* ex */
        start local 7 // java.lang.Exception ex
        17: .line 145
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.conContext:Lsun/security/ssl/TransportContext;
            getstatic sun.security.ssl.Alert.INTERNAL_ERROR:Lsun/security/ssl/Alert;
        18: .line 146
            ldc "Fail to wrap application data"
            aload 7 /* ex */
        19: .line 145
            invokevirtual sun.security.ssl.TransportContext.fatal:(Lsun/security/ssl/Alert;Ljava/lang/String;Ljava/lang/Throwable;)Ljavax/net/ssl/SSLException;
            athrow
        end local 7 // java.lang.Exception ex
        end local 6 // int dstsLength
        end local 5 // int dstsOffset
        end local 4 // java.nio.ByteBuffer[] dsts
        end local 3 // int srcsLength
        end local 2 // int srcsOffset
        end local 1 // java.nio.ByteBuffer[] srcs
        end local 0 // sun.security.ssl.SSLEngineImpl this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   20     0        this  Lsun/security/ssl/SSLEngineImpl;
            0   20     1        srcs  [Ljava/nio/ByteBuffer;
            0   20     2  srcsOffset  I
            0   20     3  srcsLength  I
            0   20     4        dsts  [Ljava/nio/ByteBuffer;
            0   20     5  dstsOffset  I
            0   20     6  dstsLength  I
           11   12     7         spe  Ljavax/net/ssl/SSLProtocolException;
           13   16     7         ioe  Ljava/io/IOException;
           17   20     7          ex  Ljava/lang/Exception;
      Exception table:
        from    to  target  type
           6     9      10  Class javax.net.ssl.SSLProtocolException
           6     9      12  Class java.io.IOException
           6     9      16  Class java.lang.Exception
    Exceptions:
      throws javax.net.ssl.SSLException
    MethodParameters:
            Name  Flags
      srcs        
      srcsOffset  
      srcsLength  
      dsts        
      dstsOffset  
      dstsLength  

  private javax.net.ssl.SSLEngineResult writeRecord(java.nio.ByteBuffer[], int, int, java.nio.ByteBuffer[], int, int);
    descriptor: ([Ljava/nio/ByteBuffer;II[Ljava/nio/ByteBuffer;II)Ljavax/net/ssl/SSLEngineResult;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=8, locals=16, args_size=7
        start local 0 // sun.security.ssl.SSLEngineImpl this
        start local 1 // java.nio.ByteBuffer[] srcs
        start local 2 // int srcsOffset
        start local 3 // int srcsLength
        start local 4 // java.nio.ByteBuffer[] dsts
        start local 5 // int dstsOffset
        start local 6 // int dstsLength
         0: .line 155
            aload 0 /* this */
            invokevirtual sun.security.ssl.SSLEngineImpl.isOutboundDone:()Z
            ifeq 4
         1: .line 156
            new javax.net.ssl.SSLEngineResult
            dup
         2: .line 157
            getstatic javax.net.ssl.SSLEngineResult$Status.CLOSED:Ljavax/net/ssl/SSLEngineResult$Status;
            aload 0 /* this */
            invokevirtual sun.security.ssl.SSLEngineImpl.getHandshakeStatus:()Ljavax/net/ssl/SSLEngineResult$HandshakeStatus;
            iconst_0
            iconst_0
         3: .line 156
            invokespecial javax.net.ssl.SSLEngineResult.<init>:(Ljavax/net/ssl/SSLEngineResult$Status;Ljavax/net/ssl/SSLEngineResult$HandshakeStatus;II)V
            areturn
         4: .line 160
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.conContext:Lsun/security/ssl/TransportContext;
            getfield sun.security.ssl.TransportContext.handshakeContext:Lsun/security/ssl/HandshakeContext;
            astore 7 /* hc */
        start local 7 // sun.security.ssl.HandshakeContext hc
         5: .line 161
            aconst_null
            astore 8 /* hsStatus */
        start local 8 // javax.net.ssl.SSLEngineResult$HandshakeStatus hsStatus
         6: .line 162
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.conContext:Lsun/security/ssl/TransportContext;
            getfield sun.security.ssl.TransportContext.isNegotiated:Z
            ifne 16
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.conContext:Lsun/security/ssl/TransportContext;
            getfield sun.security.ssl.TransportContext.isBroken:Z
            ifne 16
         7: .line 163
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.conContext:Lsun/security/ssl/TransportContext;
            invokevirtual sun.security.ssl.TransportContext.isInboundClosed:()Z
            ifne 16
         8: .line 164
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.conContext:Lsun/security/ssl/TransportContext;
            invokevirtual sun.security.ssl.TransportContext.isOutboundClosed:()Z
            ifne 16
         9: .line 165
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.conContext:Lsun/security/ssl/TransportContext;
            invokevirtual sun.security.ssl.TransportContext.kickstart:()V
        10: .line 167
            aload 0 /* this */
            invokevirtual sun.security.ssl.SSLEngineImpl.getHandshakeStatus:()Ljavax/net/ssl/SSLEngineResult$HandshakeStatus;
            astore 8 /* hsStatus */
        11: .line 168
            aload 8 /* hsStatus */
            getstatic javax.net.ssl.SSLEngineResult$HandshakeStatus.NEED_UNWRAP:Ljavax/net/ssl/SSLEngineResult$HandshakeStatus;
            if_acmpne 16
        12: .line 175
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.sslContext:Lsun/security/ssl/SSLContextImpl;
            invokevirtual sun.security.ssl.SSLContextImpl.isDTLS:()Z
            ifeq 15
            aload 7 /* hc */
            ifnull 15
        13: .line 176
            aload 7 /* hc */
            getfield sun.security.ssl.HandshakeContext.sslConfig:Lsun/security/ssl/SSLConfiguration;
            getfield sun.security.ssl.SSLConfiguration.enableRetransmissions:Z
            ifeq 15
        14: .line 177
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.conContext:Lsun/security/ssl/TransportContext;
            getfield sun.security.ssl.TransportContext.outputRecord:Lsun/security/ssl/OutputRecord;
            getfield sun.security.ssl.OutputRecord.firstMessage:Z
            ifeq 16
        15: .line 179
      StackMap locals: sun.security.ssl.HandshakeContext javax.net.ssl.SSLEngineResult$HandshakeStatus
      StackMap stack:
            new javax.net.ssl.SSLEngineResult
            dup
            getstatic javax.net.ssl.SSLEngineResult$Status.OK:Ljavax/net/ssl/SSLEngineResult$Status;
            aload 8 /* hsStatus */
            iconst_0
            iconst_0
            invokespecial javax.net.ssl.SSLEngineResult.<init>:(Ljavax/net/ssl/SSLEngineResult$Status;Ljavax/net/ssl/SSLEngineResult$HandshakeStatus;II)V
            areturn
        16: .line 184
      StackMap locals:
      StackMap stack:
            aload 8 /* hsStatus */
            ifnonnull 18
        17: .line 185
            aload 0 /* this */
            invokevirtual sun.security.ssl.SSLEngineImpl.getHandshakeStatus:()Ljavax/net/ssl/SSLEngineResult$HandshakeStatus;
            astore 8 /* hsStatus */
        18: .line 194
      StackMap locals:
      StackMap stack:
            aload 8 /* hsStatus */
            getstatic javax.net.ssl.SSLEngineResult$HandshakeStatus.NEED_TASK:Ljavax/net/ssl/SSLEngineResult$HandshakeStatus;
            if_acmpne 20
        19: .line 195
            new javax.net.ssl.SSLEngineResult
            dup
            getstatic javax.net.ssl.SSLEngineResult$Status.OK:Ljavax/net/ssl/SSLEngineResult$Status;
            aload 8 /* hsStatus */
            iconst_0
            iconst_0
            invokespecial javax.net.ssl.SSLEngineResult.<init>:(Ljavax/net/ssl/SSLEngineResult$Status;Ljavax/net/ssl/SSLEngineResult$HandshakeStatus;II)V
            areturn
        20: .line 198
      StackMap locals:
      StackMap stack:
            iconst_0
            istore 9 /* dstsRemains */
        start local 9 // int dstsRemains
        21: .line 199
            iload 5 /* dstsOffset */
            istore 10 /* i */
        start local 10 // int i
        22: goto 25
        23: .line 200
      StackMap locals: int int
      StackMap stack:
            iload 9 /* dstsRemains */
            aload 4 /* dsts */
            iload 10 /* i */
            aaload
            invokevirtual java.nio.ByteBuffer.remaining:()I
            iadd
            istore 9 /* dstsRemains */
        24: .line 199
            iinc 10 /* i */ 1
      StackMap locals:
      StackMap stack:
        25: iload 10 /* i */
            iload 5 /* dstsOffset */
            iload 6 /* dstsLength */
            iadd
            if_icmplt 23
        end local 10 // int i
        26: .line 207
            iload 9 /* dstsRemains */
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.conContext:Lsun/security/ssl/TransportContext;
            getfield sun.security.ssl.TransportContext.conSession:Lsun/security/ssl/SSLSessionImpl;
            invokevirtual sun.security.ssl.SSLSessionImpl.getPacketBufferSize:()I
            if_icmpge 30
        27: .line 208
            new javax.net.ssl.SSLEngineResult
            dup
        28: .line 209
            getstatic javax.net.ssl.SSLEngineResult$Status.BUFFER_OVERFLOW:Ljavax/net/ssl/SSLEngineResult$Status;
            aload 0 /* this */
            invokevirtual sun.security.ssl.SSLEngineImpl.getHandshakeStatus:()Ljavax/net/ssl/SSLEngineResult$HandshakeStatus;
            iconst_0
            iconst_0
        29: .line 208
            invokespecial javax.net.ssl.SSLEngineResult.<init>:(Ljavax/net/ssl/SSLEngineResult$Status;Ljavax/net/ssl/SSLEngineResult$HandshakeStatus;II)V
            areturn
        30: .line 212
      StackMap locals:
      StackMap stack:
            iconst_0
            istore 10 /* srcsRemains */
        start local 10 // int srcsRemains
        31: .line 213
            iload 2 /* srcsOffset */
            istore 11 /* i */
        start local 11 // int i
        32: goto 35
        33: .line 214
      StackMap locals: int int
      StackMap stack:
            iload 10 /* srcsRemains */
            aload 1 /* srcs */
            iload 11 /* i */
            aaload
            invokevirtual java.nio.ByteBuffer.remaining:()I
            iadd
            istore 10 /* srcsRemains */
        34: .line 213
            iinc 11 /* i */ 1
      StackMap locals:
      StackMap stack:
        35: iload 11 /* i */
            iload 2 /* srcsOffset */
            iload 3 /* srcsLength */
            iadd
            if_icmplt 33
        end local 11 // int i
        36: .line 217
            aconst_null
            astore 11 /* ciphertext */
        start local 11 // sun.security.ssl.Ciphertext ciphertext
        37: .line 222
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.conContext:Lsun/security/ssl/TransportContext;
            getfield sun.security.ssl.TransportContext.outputRecord:Lsun/security/ssl/OutputRecord;
            invokevirtual sun.security.ssl.OutputRecord.isEmpty:()Z
            ifeq 41
            aload 7 /* hc */
            ifnull 44
        38: .line 223
            aload 7 /* hc */
            getfield sun.security.ssl.HandshakeContext.sslConfig:Lsun/security/ssl/SSLConfiguration;
            getfield sun.security.ssl.SSLConfiguration.enableRetransmissions:Z
            ifeq 44
        39: .line 224
            aload 7 /* hc */
            getfield sun.security.ssl.HandshakeContext.sslContext:Lsun/security/ssl/SSLContextImpl;
            invokevirtual sun.security.ssl.SSLContextImpl.isDTLS:()Z
            ifeq 44
        40: .line 225
            aload 8 /* hsStatus */
            getstatic javax.net.ssl.SSLEngineResult$HandshakeStatus.NEED_UNWRAP:Ljavax/net/ssl/SSLEngineResult$HandshakeStatus;
            if_acmpne 44
        41: .line 226
      StackMap locals: sun.security.ssl.SSLEngineImpl java.nio.ByteBuffer[] int int java.nio.ByteBuffer[] int int sun.security.ssl.HandshakeContext javax.net.ssl.SSLEngineResult$HandshakeStatus int int sun.security.ssl.Ciphertext
      StackMap stack:
            aload 0 /* this */
            aconst_null
            iconst_0
            iconst_0
        42: .line 227
            aload 4 /* dsts */
            iload 5 /* dstsOffset */
            iload 6 /* dstsLength */
        43: .line 226
            invokevirtual sun.security.ssl.SSLEngineImpl.encode:([Ljava/nio/ByteBuffer;II[Ljava/nio/ByteBuffer;II)Lsun/security/ssl/Ciphertext;
            astore 11 /* ciphertext */
        44: .line 230
      StackMap locals:
      StackMap stack:
            aload 11 /* ciphertext */
            ifnonnull 53
            iload 10 /* srcsRemains */
            ifeq 53
        45: .line 231
            aload 0 /* this */
            aload 1 /* srcs */
            iload 2 /* srcsOffset */
            iload 3 /* srcsLength */
        46: .line 232
            aload 4 /* dsts */
            iload 5 /* dstsOffset */
            iload 6 /* dstsLength */
        47: .line 231
            invokevirtual sun.security.ssl.SSLEngineImpl.encode:([Ljava/nio/ByteBuffer;II[Ljava/nio/ByteBuffer;II)Lsun/security/ssl/Ciphertext;
            astore 11 /* ciphertext */
        48: .line 234
            goto 53
      StackMap locals:
      StackMap stack: java.io.IOException
        49: astore 12 /* ioe */
        start local 12 // java.io.IOException ioe
        50: .line 235
            aload 12 /* ioe */
            instanceof javax.net.ssl.SSLException
            ifeq 52
        51: .line 236
            aload 12 /* ioe */
            athrow
        52: .line 238
      StackMap locals: java.io.IOException
      StackMap stack:
            new javax.net.ssl.SSLException
            dup
            ldc "Write problems"
            aload 12 /* ioe */
            invokespecial javax.net.ssl.SSLException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
            athrow
        end local 12 // java.io.IOException ioe
        53: .line 245
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual sun.security.ssl.SSLEngineImpl.isOutboundDone:()Z
            ifeq 54
            getstatic javax.net.ssl.SSLEngineResult$Status.CLOSED:Ljavax/net/ssl/SSLEngineResult$Status;
            goto 55
      StackMap locals:
      StackMap stack:
        54: getstatic javax.net.ssl.SSLEngineResult$Status.OK:Ljavax/net/ssl/SSLEngineResult$Status;
      StackMap locals:
      StackMap stack: javax.net.ssl.SSLEngineResult$Status
        55: astore 12 /* status */
        start local 12 // javax.net.ssl.SSLEngineResult$Status status
        56: .line 246
            aload 11 /* ciphertext */
            ifnull 59
            aload 11 /* ciphertext */
            getfield sun.security.ssl.Ciphertext.handshakeStatus:Ljavax/net/ssl/SSLEngineResult$HandshakeStatus;
            ifnull 59
        57: .line 247
            aload 11 /* ciphertext */
            getfield sun.security.ssl.Ciphertext.handshakeStatus:Ljavax/net/ssl/SSLEngineResult$HandshakeStatus;
            astore 8 /* hsStatus */
        58: .line 248
            goto 64
        59: .line 249
      StackMap locals: javax.net.ssl.SSLEngineResult$Status
      StackMap stack:
            aload 0 /* this */
            invokevirtual sun.security.ssl.SSLEngineImpl.getHandshakeStatus:()Ljavax/net/ssl/SSLEngineResult$HandshakeStatus;
            astore 8 /* hsStatus */
        60: .line 250
            aload 11 /* ciphertext */
            ifnonnull 64
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.conContext:Lsun/security/ssl/TransportContext;
            getfield sun.security.ssl.TransportContext.isNegotiated:Z
            ifne 64
        61: .line 251
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.conContext:Lsun/security/ssl/TransportContext;
            invokevirtual sun.security.ssl.TransportContext.isInboundClosed:()Z
            ifeq 64
        62: .line 252
            aload 8 /* hsStatus */
            getstatic javax.net.ssl.SSLEngineResult$HandshakeStatus.NEED_WRAP:Ljavax/net/ssl/SSLEngineResult$HandshakeStatus;
            if_acmpne 64
        63: .line 261
            getstatic javax.net.ssl.SSLEngineResult$Status.CLOSED:Ljavax/net/ssl/SSLEngineResult$Status;
            astore 12 /* status */
        64: .line 265
      StackMap locals:
      StackMap stack:
            iload 10 /* srcsRemains */
            istore 13 /* deltaSrcs */
        start local 13 // int deltaSrcs
        65: .line 266
            iload 2 /* srcsOffset */
            istore 14 /* i */
        start local 14 // int i
        66: goto 69
        67: .line 267
      StackMap locals: int int
      StackMap stack:
            iload 13 /* deltaSrcs */
            aload 1 /* srcs */
            iload 14 /* i */
            aaload
            invokevirtual java.nio.ByteBuffer.remaining:()I
            isub
            istore 13 /* deltaSrcs */
        68: .line 266
            iinc 14 /* i */ 1
      StackMap locals:
      StackMap stack:
        69: iload 14 /* i */
            iload 2 /* srcsOffset */
            iload 3 /* srcsLength */
            iadd
            if_icmplt 67
        end local 14 // int i
        70: .line 270
            iload 9 /* dstsRemains */
            istore 14 /* deltaDsts */
        start local 14 // int deltaDsts
        71: .line 271
            iload 5 /* dstsOffset */
            istore 15 /* i */
        start local 15 // int i
        72: goto 75
        73: .line 272
      StackMap locals: int
      StackMap stack:
            iload 14 /* deltaDsts */
            aload 4 /* dsts */
            iload 15 /* i */
            aaload
            invokevirtual java.nio.ByteBuffer.remaining:()I
            isub
            istore 14 /* deltaDsts */
        74: .line 271
            iinc 15 /* i */ 1
      StackMap locals:
      StackMap stack:
        75: iload 15 /* i */
            iload 5 /* dstsOffset */
            iload 6 /* dstsLength */
            iadd
            if_icmplt 73
        end local 15 // int i
        76: .line 275
            new javax.net.ssl.SSLEngineResult
            dup
            aload 12 /* status */
            aload 8 /* hsStatus */
            iload 13 /* deltaSrcs */
            iload 14 /* deltaDsts */
        77: .line 276
            aload 11 /* ciphertext */
            ifnull 78
            aload 11 /* ciphertext */
            getfield sun.security.ssl.Ciphertext.recordSN:J
            goto 79
      StackMap locals: sun.security.ssl.SSLEngineImpl java.nio.ByteBuffer[] int int java.nio.ByteBuffer[] int int sun.security.ssl.HandshakeContext javax.net.ssl.SSLEngineResult$HandshakeStatus int int sun.security.ssl.Ciphertext javax.net.ssl.SSLEngineResult$Status int int
      StackMap stack: new 76 new 76 javax.net.ssl.SSLEngineResult$Status javax.net.ssl.SSLEngineResult$HandshakeStatus int int
        78: ldc -1
        79: .line 275
      StackMap locals: sun.security.ssl.SSLEngineImpl java.nio.ByteBuffer[] int int java.nio.ByteBuffer[] int int sun.security.ssl.HandshakeContext javax.net.ssl.SSLEngineResult$HandshakeStatus int int sun.security.ssl.Ciphertext javax.net.ssl.SSLEngineResult$Status int int
      StackMap stack: new 76 new 76 javax.net.ssl.SSLEngineResult$Status javax.net.ssl.SSLEngineResult$HandshakeStatus int int long
            invokespecial javax.net.ssl.SSLEngineResult.<init>:(Ljavax/net/ssl/SSLEngineResult$Status;Ljavax/net/ssl/SSLEngineResult$HandshakeStatus;IIJ)V
            areturn
        end local 14 // int deltaDsts
        end local 13 // int deltaSrcs
        end local 12 // javax.net.ssl.SSLEngineResult$Status status
        end local 11 // sun.security.ssl.Ciphertext ciphertext
        end local 10 // int srcsRemains
        end local 9 // int dstsRemains
        end local 8 // javax.net.ssl.SSLEngineResult$HandshakeStatus hsStatus
        end local 7 // sun.security.ssl.HandshakeContext hc
        end local 6 // int dstsLength
        end local 5 // int dstsOffset
        end local 4 // java.nio.ByteBuffer[] dsts
        end local 3 // int srcsLength
        end local 2 // int srcsOffset
        end local 1 // java.nio.ByteBuffer[] srcs
        end local 0 // sun.security.ssl.SSLEngineImpl this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   80     0         this  Lsun/security/ssl/SSLEngineImpl;
            0   80     1         srcs  [Ljava/nio/ByteBuffer;
            0   80     2   srcsOffset  I
            0   80     3   srcsLength  I
            0   80     4         dsts  [Ljava/nio/ByteBuffer;
            0   80     5   dstsOffset  I
            0   80     6   dstsLength  I
            5   80     7           hc  Lsun/security/ssl/HandshakeContext;
            6   80     8     hsStatus  Ljavax/net/ssl/SSLEngineResult$HandshakeStatus;
           21   80     9  dstsRemains  I
           22   26    10            i  I
           31   80    10  srcsRemains  I
           32   36    11            i  I
           37   80    11   ciphertext  Lsun/security/ssl/Ciphertext;
           50   53    12          ioe  Ljava/io/IOException;
           56   80    12       status  Ljavax/net/ssl/SSLEngineResult$Status;
           65   80    13    deltaSrcs  I
           66   70    14            i  I
           71   80    14    deltaDsts  I
           72   76    15            i  I
      Exception table:
        from    to  target  type
          37    48      49  Class java.io.IOException
    Exceptions:
      throws java.io.IOException
    MethodParameters:
            Name  Flags
      srcs        
      srcsOffset  
      srcsLength  
      dsts        
      dstsOffset  
      dstsLength  

  private sun.security.ssl.Ciphertext encode(java.nio.ByteBuffer[], int, int, java.nio.ByteBuffer[], int, int);
    descriptor: ([Ljava/nio/ByteBuffer;II[Ljava/nio/ByteBuffer;II)Lsun/security/ssl/Ciphertext;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=7, locals=10, args_size=7
        start local 0 // sun.security.ssl.SSLEngineImpl this
        start local 1 // java.nio.ByteBuffer[] srcs
        start local 2 // int srcsOffset
        start local 3 // int srcsLength
        start local 4 // java.nio.ByteBuffer[] dsts
        start local 5 // int dstsOffset
        start local 6 // int dstsLength
         0: .line 283
            aconst_null
            astore 7 /* ciphertext */
        start local 7 // sun.security.ssl.Ciphertext ciphertext
         1: .line 285
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.conContext:Lsun/security/ssl/TransportContext;
            getfield sun.security.ssl.TransportContext.outputRecord:Lsun/security/ssl/OutputRecord;
         2: .line 286
            aload 1 /* srcs */
            iload 2 /* srcsOffset */
            iload 3 /* srcsLength */
            aload 4 /* dsts */
            iload 5 /* dstsOffset */
            iload 6 /* dstsLength */
         3: .line 285
            invokevirtual sun.security.ssl.OutputRecord.encode:([Ljava/nio/ByteBuffer;II[Ljava/nio/ByteBuffer;II)Lsun/security/ssl/Ciphertext;
            astore 7 /* ciphertext */
         4: .line 287
            goto 9
      StackMap locals: sun.security.ssl.SSLEngineImpl java.nio.ByteBuffer[] int int java.nio.ByteBuffer[] int int sun.security.ssl.Ciphertext
      StackMap stack: javax.net.ssl.SSLHandshakeException
         5: astore 8 /* she */
        start local 8 // javax.net.ssl.SSLHandshakeException she
         6: .line 289
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.conContext:Lsun/security/ssl/TransportContext;
            getstatic sun.security.ssl.Alert.HANDSHAKE_FAILURE:Lsun/security/ssl/Alert;
            aload 8 /* she */
            invokevirtual sun.security.ssl.TransportContext.fatal:(Lsun/security/ssl/Alert;Ljava/lang/Throwable;)Ljavax/net/ssl/SSLException;
            athrow
        end local 8 // javax.net.ssl.SSLHandshakeException she
         7: .line 290
      StackMap locals:
      StackMap stack: java.io.IOException
            astore 8 /* e */
        start local 8 // java.io.IOException e
         8: .line 291
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.conContext:Lsun/security/ssl/TransportContext;
            getstatic sun.security.ssl.Alert.UNEXPECTED_MESSAGE:Lsun/security/ssl/Alert;
            aload 8 /* e */
            invokevirtual sun.security.ssl.TransportContext.fatal:(Lsun/security/ssl/Alert;Ljava/lang/Throwable;)Ljavax/net/ssl/SSLException;
            athrow
        end local 8 // java.io.IOException e
         9: .line 294
      StackMap locals:
      StackMap stack:
            aload 7 /* ciphertext */
            ifnonnull 11
        10: .line 295
            aconst_null
            areturn
        11: .line 300
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.conContext:Lsun/security/ssl/TransportContext;
            getfield sun.security.ssl.TransportContext.sslContext:Lsun/security/ssl/SSLContextImpl;
            invokevirtual sun.security.ssl.SSLContextImpl.isDTLS:()Z
            ifeq 15
        12: .line 301
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.conContext:Lsun/security/ssl/TransportContext;
            getfield sun.security.ssl.TransportContext.handshakeContext:Lsun/security/ssl/HandshakeContext;
            ifnull 15
        13: .line 302
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.conContext:Lsun/security/ssl/TransportContext;
            getfield sun.security.ssl.TransportContext.handshakeContext:Lsun/security/ssl/HandshakeContext;
            getfield sun.security.ssl.HandshakeContext.sslConfig:Lsun/security/ssl/SSLConfiguration;
            getfield sun.security.ssl.SSLConfiguration.enableRetransmissions:Z
            ifeq 15
        14: .line 299
            iconst_1
            goto 16
      StackMap locals:
      StackMap stack:
        15: iconst_0
      StackMap locals:
      StackMap stack: int
        16: istore 8 /* needRetransmission */
        start local 8 // boolean needRetransmission
        17: .line 304
            aload 0 /* this */
            aload 7 /* ciphertext */
            getfield sun.security.ssl.Ciphertext.contentType:B
            invokevirtual sun.security.ssl.SSLEngineImpl.tryToFinishHandshake:(B)Ljavax/net/ssl/SSLEngineResult$HandshakeStatus;
        18: .line 303
            astore 9 /* hsStatus */
        start local 9 // javax.net.ssl.SSLEngineResult$HandshakeStatus hsStatus
        19: .line 305
            iload 8 /* needRetransmission */
            ifeq 27
        20: .line 306
            aload 9 /* hsStatus */
            getstatic javax.net.ssl.SSLEngineResult$HandshakeStatus.FINISHED:Ljavax/net/ssl/SSLEngineResult$HandshakeStatus;
            if_acmpne 27
        21: .line 307
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.conContext:Lsun/security/ssl/TransportContext;
            getfield sun.security.ssl.TransportContext.sslContext:Lsun/security/ssl/SSLContextImpl;
            invokevirtual sun.security.ssl.SSLContextImpl.isDTLS:()Z
            ifeq 27
        22: .line 308
            aload 7 /* ciphertext */
            getfield sun.security.ssl.Ciphertext.handshakeType:B
            getstatic sun.security.ssl.SSLHandshake.FINISHED:Lsun/security/ssl/SSLHandshake;
            getfield sun.security.ssl.SSLHandshake.id:B
            if_icmpne 27
        23: .line 316
            getstatic sun.security.ssl.SSLLogger.isOn:Z
            ifeq 25
            ldc "ssl,verbose"
            invokestatic sun.security.ssl.SSLLogger.isOn:(Ljava/lang/String;)Z
            ifeq 25
        24: .line 317
            ldc "retransmit the last flight messages"
            iconst_0
            anewarray java.lang.Object
            invokestatic sun.security.ssl.SSLLogger.finest:(Ljava/lang/String;[Ljava/lang/Object;)V
        25: .line 320
      StackMap locals: int javax.net.ssl.SSLEngineResult$HandshakeStatus
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.conContext:Lsun/security/ssl/TransportContext;
            getfield sun.security.ssl.TransportContext.outputRecord:Lsun/security/ssl/OutputRecord;
            invokevirtual sun.security.ssl.OutputRecord.launchRetransmission:()V
        26: .line 321
            getstatic javax.net.ssl.SSLEngineResult$HandshakeStatus.NEED_WRAP:Ljavax/net/ssl/SSLEngineResult$HandshakeStatus;
            astore 9 /* hsStatus */
        27: .line 324
      StackMap locals:
      StackMap stack:
            aload 9 /* hsStatus */
            ifnonnull 29
        28: .line 325
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.conContext:Lsun/security/ssl/TransportContext;
            invokevirtual sun.security.ssl.TransportContext.getHandshakeStatus:()Ljavax/net/ssl/SSLEngineResult$HandshakeStatus;
            astore 9 /* hsStatus */
        29: .line 329
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.conContext:Lsun/security/ssl/TransportContext;
            getfield sun.security.ssl.TransportContext.outputRecord:Lsun/security/ssl/OutputRecord;
            invokevirtual sun.security.ssl.OutputRecord.seqNumIsHuge:()Z
            ifne 31
        30: .line 330
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.conContext:Lsun/security/ssl/TransportContext;
            getfield sun.security.ssl.TransportContext.outputRecord:Lsun/security/ssl/OutputRecord;
            getfield sun.security.ssl.OutputRecord.writeCipher:Lsun/security/ssl/SSLCipher$SSLWriteCipher;
            invokevirtual sun.security.ssl.SSLCipher$SSLWriteCipher.atKeyLimit:()Z
            ifeq 32
        31: .line 331
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 9 /* hsStatus */
            invokevirtual sun.security.ssl.SSLEngineImpl.tryKeyUpdate:(Ljavax/net/ssl/SSLEngineResult$HandshakeStatus;)Ljavax/net/ssl/SSLEngineResult$HandshakeStatus;
            astore 9 /* hsStatus */
        32: .line 335
      StackMap locals:
      StackMap stack:
            aload 7 /* ciphertext */
            aload 9 /* hsStatus */
            putfield sun.security.ssl.Ciphertext.handshakeStatus:Ljavax/net/ssl/SSLEngineResult$HandshakeStatus;
        33: .line 337
            aload 7 /* ciphertext */
            areturn
        end local 9 // javax.net.ssl.SSLEngineResult$HandshakeStatus hsStatus
        end local 8 // boolean needRetransmission
        end local 7 // sun.security.ssl.Ciphertext ciphertext
        end local 6 // int dstsLength
        end local 5 // int dstsOffset
        end local 4 // java.nio.ByteBuffer[] dsts
        end local 3 // int srcsLength
        end local 2 // int srcsOffset
        end local 1 // java.nio.ByteBuffer[] srcs
        end local 0 // sun.security.ssl.SSLEngineImpl this
      LocalVariableTable:
        Start  End  Slot                Name  Signature
            0   34     0                this  Lsun/security/ssl/SSLEngineImpl;
            0   34     1                srcs  [Ljava/nio/ByteBuffer;
            0   34     2          srcsOffset  I
            0   34     3          srcsLength  I
            0   34     4                dsts  [Ljava/nio/ByteBuffer;
            0   34     5          dstsOffset  I
            0   34     6          dstsLength  I
            1   34     7          ciphertext  Lsun/security/ssl/Ciphertext;
            6    7     8                 she  Ljavax/net/ssl/SSLHandshakeException;
            8    9     8                   e  Ljava/io/IOException;
           17   34     8  needRetransmission  Z
           19   34     9            hsStatus  Ljavax/net/ssl/SSLEngineResult$HandshakeStatus;
      Exception table:
        from    to  target  type
           1     4       5  Class javax.net.ssl.SSLHandshakeException
           1     4       7  Class java.io.IOException
    Exceptions:
      throws java.io.IOException
    MethodParameters:
            Name  Flags
      srcs        
      srcsOffset  
      srcsLength  
      dsts        
      dstsOffset  
      dstsLength  

  private javax.net.ssl.SSLEngineResult$HandshakeStatus tryToFinishHandshake(byte);
    descriptor: (B)Ljavax/net/ssl/SSLEngineResult$HandshakeStatus;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // sun.security.ssl.SSLEngineImpl this
        start local 1 // byte contentType
         0: .line 341
            aconst_null
            astore 2 /* hsStatus */
        start local 2 // javax.net.ssl.SSLEngineResult$HandshakeStatus hsStatus
         1: .line 342
            iload 1 /* contentType */
            getstatic sun.security.ssl.ContentType.HANDSHAKE:Lsun/security/ssl/ContentType;
            getfield sun.security.ssl.ContentType.id:B
            if_icmpne 11
         2: .line 343
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.conContext:Lsun/security/ssl/TransportContext;
            getfield sun.security.ssl.TransportContext.outputRecord:Lsun/security/ssl/OutputRecord;
            invokevirtual sun.security.ssl.OutputRecord.isEmpty:()Z
            ifeq 11
         3: .line 344
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.conContext:Lsun/security/ssl/TransportContext;
            getfield sun.security.ssl.TransportContext.handshakeContext:Lsun/security/ssl/HandshakeContext;
            ifnonnull 6
         4: .line 345
            getstatic javax.net.ssl.SSLEngineResult$HandshakeStatus.FINISHED:Ljavax/net/ssl/SSLEngineResult$HandshakeStatus;
            astore 2 /* hsStatus */
         5: .line 346
            goto 11
      StackMap locals: javax.net.ssl.SSLEngineResult$HandshakeStatus
      StackMap stack:
         6: aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.conContext:Lsun/security/ssl/TransportContext;
            invokevirtual sun.security.ssl.TransportContext.isPostHandshakeContext:()Z
            ifeq 9
         7: .line 348
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.conContext:Lsun/security/ssl/TransportContext;
            invokevirtual sun.security.ssl.TransportContext.finishPostHandshake:()Ljavax/net/ssl/SSLEngineResult$HandshakeStatus;
            astore 2 /* hsStatus */
         8: .line 349
            goto 11
      StackMap locals:
      StackMap stack:
         9: aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.conContext:Lsun/security/ssl/TransportContext;
            getfield sun.security.ssl.TransportContext.handshakeContext:Lsun/security/ssl/HandshakeContext;
            getfield sun.security.ssl.HandshakeContext.handshakeFinished:Z
            ifeq 11
        10: .line 350
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.conContext:Lsun/security/ssl/TransportContext;
            invokevirtual sun.security.ssl.TransportContext.finishHandshake:()Ljavax/net/ssl/SSLEngineResult$HandshakeStatus;
            astore 2 /* hsStatus */
        11: .line 354
      StackMap locals:
      StackMap stack:
            aload 2 /* hsStatus */
            areturn
        end local 2 // javax.net.ssl.SSLEngineResult$HandshakeStatus hsStatus
        end local 1 // byte contentType
        end local 0 // sun.security.ssl.SSLEngineImpl this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   12     0         this  Lsun/security/ssl/SSLEngineImpl;
            0   12     1  contentType  B
            1   12     2     hsStatus  Ljavax/net/ssl/SSLEngineResult$HandshakeStatus;
    MethodParameters:
             Name  Flags
      contentType  

  private javax.net.ssl.SSLEngineResult$HandshakeStatus tryKeyUpdate(javax.net.ssl.SSLEngineResult$HandshakeStatus);
    descriptor: (Ljavax/net/ssl/SSLEngineResult$HandshakeStatus;)Ljavax/net/ssl/SSLEngineResult$HandshakeStatus;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // sun.security.ssl.SSLEngineImpl this
        start local 1 // javax.net.ssl.SSLEngineResult$HandshakeStatus currentHandshakeStatus
         0: .line 373
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.conContext:Lsun/security/ssl/TransportContext;
            getfield sun.security.ssl.TransportContext.handshakeContext:Lsun/security/ssl/HandshakeContext;
            ifnonnull 8
         1: .line 374
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.conContext:Lsun/security/ssl/TransportContext;
            invokevirtual sun.security.ssl.TransportContext.isOutboundClosed:()Z
            ifne 8
         2: .line 375
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.conContext:Lsun/security/ssl/TransportContext;
            invokevirtual sun.security.ssl.TransportContext.isInboundClosed:()Z
            ifne 8
         3: .line 376
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.conContext:Lsun/security/ssl/TransportContext;
            getfield sun.security.ssl.TransportContext.isBroken:Z
            ifne 8
         4: .line 377
            getstatic sun.security.ssl.SSLLogger.isOn:Z
            ifeq 6
            ldc "ssl"
            invokestatic sun.security.ssl.SSLLogger.isOn:(Ljava/lang/String;)Z
            ifeq 6
         5: .line 378
            ldc "trigger key update"
            iconst_0
            anewarray java.lang.Object
            invokestatic sun.security.ssl.SSLLogger.finest:(Ljava/lang/String;[Ljava/lang/Object;)V
         6: .line 380
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual sun.security.ssl.SSLEngineImpl.beginHandshake:()V
         7: .line 381
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.conContext:Lsun/security/ssl/TransportContext;
            invokevirtual sun.security.ssl.TransportContext.getHandshakeStatus:()Ljavax/net/ssl/SSLEngineResult$HandshakeStatus;
            areturn
         8: .line 384
      StackMap locals:
      StackMap stack:
            aload 1 /* currentHandshakeStatus */
            areturn
        end local 1 // javax.net.ssl.SSLEngineResult$HandshakeStatus currentHandshakeStatus
        end local 0 // sun.security.ssl.SSLEngineImpl this
      LocalVariableTable:
        Start  End  Slot                    Name  Signature
            0    9     0                    this  Lsun/security/ssl/SSLEngineImpl;
            0    9     1  currentHandshakeStatus  Ljavax/net/ssl/SSLEngineResult$HandshakeStatus;
    Exceptions:
      throws java.io.IOException
    MethodParameters:
                        Name  Flags
      currentHandshakeStatus  

  private static void checkParams(java.nio.ByteBuffer[], int, int, java.nio.ByteBuffer[], int, int);
    descriptor: ([Ljava/nio/ByteBuffer;II[Ljava/nio/ByteBuffer;II)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=5, locals=7, args_size=6
        start local 0 // java.nio.ByteBuffer[] srcs
        start local 1 // int srcsOffset
        start local 2 // int srcsLength
        start local 3 // java.nio.ByteBuffer[] dsts
        start local 4 // int dstsOffset
        start local 5 // int dstsLength
         0: .line 391
            aload 0 /* srcs */
            ifnull 1
            aload 3 /* dsts */
            ifnonnull 4
         1: .line 392
      StackMap locals:
      StackMap stack:
            new java.lang.IllegalArgumentException
            dup
         2: .line 393
            ldc "source or destination buffer is null"
         3: .line 392
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         4: .line 396
      StackMap locals:
      StackMap stack:
            iload 4 /* dstsOffset */
            iflt 6
            iload 5 /* dstsLength */
            iflt 6
         5: .line 397
            iload 4 /* dstsOffset */
            aload 3 /* dsts */
            arraylength
            iload 5 /* dstsLength */
            isub
            if_icmple 9
         6: .line 398
      StackMap locals:
      StackMap stack:
            new java.lang.IndexOutOfBoundsException
            dup
         7: .line 399
            ldc "index out of bound of the destination buffers"
         8: .line 398
            invokespecial java.lang.IndexOutOfBoundsException.<init>:(Ljava/lang/String;)V
            athrow
         9: .line 402
      StackMap locals:
      StackMap stack:
            iload 1 /* srcsOffset */
            iflt 11
            iload 2 /* srcsLength */
            iflt 11
        10: .line 403
            iload 1 /* srcsOffset */
            aload 0 /* srcs */
            arraylength
            iload 2 /* srcsLength */
            isub
            if_icmple 14
        11: .line 404
      StackMap locals:
      StackMap stack:
            new java.lang.IndexOutOfBoundsException
            dup
        12: .line 405
            ldc "index out of bound of the source buffers"
        13: .line 404
            invokespecial java.lang.IndexOutOfBoundsException.<init>:(Ljava/lang/String;)V
            athrow
        14: .line 408
      StackMap locals:
      StackMap stack:
            iload 4 /* dstsOffset */
            istore 6 /* i */
        start local 6 // int i
        15: goto 23
        16: .line 409
      StackMap locals: int
      StackMap stack:
            aload 3 /* dsts */
            iload 6 /* i */
            aaload
            ifnonnull 20
        17: .line 410
            new java.lang.IllegalArgumentException
            dup
        18: .line 411
            new java.lang.StringBuilder
            dup
            ldc "destination buffer["
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            iload 6 /* i */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            ldc "] == null"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        19: .line 410
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
        20: .line 417
      StackMap locals:
      StackMap stack:
            aload 3 /* dsts */
            iload 6 /* i */
            aaload
            invokevirtual java.nio.ByteBuffer.isReadOnly:()Z
            ifeq 22
        21: .line 418
            new java.nio.ReadOnlyBufferException
            dup
            invokespecial java.nio.ReadOnlyBufferException.<init>:()V
            athrow
        22: .line 408
      StackMap locals:
      StackMap stack:
            iinc 6 /* i */ 1
      StackMap locals:
      StackMap stack:
        23: iload 6 /* i */
            iload 4 /* dstsOffset */
            iload 5 /* dstsLength */
            iadd
            if_icmplt 16
        end local 6 // int i
        24: .line 422
            iload 1 /* srcsOffset */
            istore 6 /* i */
        start local 6 // int i
        25: goto 31
        26: .line 423
      StackMap locals:
      StackMap stack:
            aload 0 /* srcs */
            iload 6 /* i */
            aaload
            ifnonnull 30
        27: .line 424
            new java.lang.IllegalArgumentException
            dup
        28: .line 425
            new java.lang.StringBuilder
            dup
            ldc "source buffer["
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            iload 6 /* i */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            ldc "] == null"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        29: .line 424
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
        30: .line 422
      StackMap locals:
      StackMap stack:
            iinc 6 /* i */ 1
      StackMap locals:
      StackMap stack:
        31: iload 6 /* i */
            iload 1 /* srcsOffset */
            iload 2 /* srcsLength */
            iadd
            if_icmplt 26
        end local 6 // int i
        32: .line 428
            return
        end local 5 // int dstsLength
        end local 4 // int dstsOffset
        end local 3 // java.nio.ByteBuffer[] dsts
        end local 2 // int srcsLength
        end local 1 // int srcsOffset
        end local 0 // java.nio.ByteBuffer[] srcs
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   33     0        srcs  [Ljava/nio/ByteBuffer;
            0   33     1  srcsOffset  I
            0   33     2  srcsLength  I
            0   33     3        dsts  [Ljava/nio/ByteBuffer;
            0   33     4  dstsOffset  I
            0   33     5  dstsLength  I
           15   24     6           i  I
           25   32     6           i  I
    MethodParameters:
            Name  Flags
      srcs        
      srcsOffset  
      srcsLength  
      dsts        
      dstsOffset  
      dstsLength  

  public synchronized javax.net.ssl.SSLEngineResult unwrap(java.nio.ByteBuffer, java.nio.ByteBuffer[], int, int);
    descriptor: (Ljava/nio/ByteBuffer;[Ljava/nio/ByteBuffer;II)Ljavax/net/ssl/SSLEngineResult;
    flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
    Code:
      stack=7, locals=5, args_size=5
        start local 0 // sun.security.ssl.SSLEngineImpl this
        start local 1 // java.nio.ByteBuffer src
        start local 2 // java.nio.ByteBuffer[] dsts
        start local 3 // int offset
        start local 4 // int length
         0: .line 433
            aload 0 /* this */
         1: .line 434
            iconst_1
            anewarray java.nio.ByteBuffer
            dup
            iconst_0
            aload 1 /* src */
            aastore
            iconst_0
            iconst_1
            aload 2 /* dsts */
            iload 3 /* offset */
            iload 4 /* length */
         2: .line 433
            invokevirtual sun.security.ssl.SSLEngineImpl.unwrap:([Ljava/nio/ByteBuffer;II[Ljava/nio/ByteBuffer;II)Ljavax/net/ssl/SSLEngineResult;
            areturn
        end local 4 // int length
        end local 3 // int offset
        end local 2 // java.nio.ByteBuffer[] dsts
        end local 1 // java.nio.ByteBuffer src
        end local 0 // sun.security.ssl.SSLEngineImpl this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    3     0    this  Lsun/security/ssl/SSLEngineImpl;
            0    3     1     src  Ljava/nio/ByteBuffer;
            0    3     2    dsts  [Ljava/nio/ByteBuffer;
            0    3     3  offset  I
            0    3     4  length  I
    Exceptions:
      throws javax.net.ssl.SSLException
    MethodParameters:
        Name  Flags
      src     
      dsts    
      offset  
      length  

  public synchronized javax.net.ssl.SSLEngineResult unwrap(java.nio.ByteBuffer[], int, int, java.nio.ByteBuffer[], int, int);
    descriptor: ([Ljava/nio/ByteBuffer;II[Ljava/nio/ByteBuffer;II)Ljavax/net/ssl/SSLEngineResult;
    flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
    Code:
      stack=7, locals=8, args_size=7
        start local 0 // sun.security.ssl.SSLEngineImpl this
        start local 1 // java.nio.ByteBuffer[] srcs
        start local 2 // int srcsOffset
        start local 3 // int srcsLength
        start local 4 // java.nio.ByteBuffer[] dsts
        start local 5 // int dstsOffset
        start local 6 // int dstsLength
         0: .line 442
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.conContext:Lsun/security/ssl/TransportContext;
            getfield sun.security.ssl.TransportContext.isUnsureMode:Z
            ifeq 4
         1: .line 443
            new java.lang.IllegalStateException
            dup
         2: .line 444
            ldc "Client/Server mode has not yet been set."
         3: .line 443
            invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
            athrow
         4: .line 448
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual sun.security.ssl.SSLEngineImpl.checkTaskThrown:()V
         5: .line 451
            aload 1 /* srcs */
            iload 2 /* srcsOffset */
            iload 3 /* srcsLength */
            aload 4 /* dsts */
            iload 5 /* dstsOffset */
            iload 6 /* dstsLength */
            invokestatic sun.security.ssl.SSLEngineImpl.checkParams:([Ljava/nio/ByteBuffer;II[Ljava/nio/ByteBuffer;II)V
         6: .line 454
            aload 0 /* this */
         7: .line 455
            aload 1 /* srcs */
            iload 2 /* srcsOffset */
            iload 3 /* srcsLength */
            aload 4 /* dsts */
            iload 5 /* dstsOffset */
            iload 6 /* dstsLength */
         8: .line 454
            invokevirtual sun.security.ssl.SSLEngineImpl.readRecord:([Ljava/nio/ByteBuffer;II[Ljava/nio/ByteBuffer;II)Ljavax/net/ssl/SSLEngineResult;
         9: areturn
        10: .line 456
      StackMap locals:
      StackMap stack: javax.net.ssl.SSLProtocolException
            astore 7 /* spe */
        start local 7 // javax.net.ssl.SSLProtocolException spe
        11: .line 458
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.conContext:Lsun/security/ssl/TransportContext;
            getstatic sun.security.ssl.Alert.UNEXPECTED_MESSAGE:Lsun/security/ssl/Alert;
        12: .line 459
            aload 7 /* spe */
            invokevirtual javax.net.ssl.SSLProtocolException.getMessage:()Ljava/lang/String;
            aload 7 /* spe */
        13: .line 458
            invokevirtual sun.security.ssl.TransportContext.fatal:(Lsun/security/ssl/Alert;Ljava/lang/String;Ljava/lang/Throwable;)Ljavax/net/ssl/SSLException;
            athrow
        end local 7 // javax.net.ssl.SSLProtocolException spe
        14: .line 460
      StackMap locals:
      StackMap stack: java.io.IOException
            astore 7 /* ioe */
        start local 7 // java.io.IOException ioe
        15: .line 467
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.conContext:Lsun/security/ssl/TransportContext;
            getstatic sun.security.ssl.Alert.INTERNAL_ERROR:Lsun/security/ssl/Alert;
        16: .line 468
            ldc "problem unwrapping net record"
            aload 7 /* ioe */
        17: .line 467
            invokevirtual sun.security.ssl.TransportContext.fatal:(Lsun/security/ssl/Alert;Ljava/lang/String;Ljava/lang/Throwable;)Ljavax/net/ssl/SSLException;
            athrow
        end local 7 // java.io.IOException ioe
        18: .line 469
      StackMap locals:
      StackMap stack: java.lang.Exception
            astore 7 /* ex */
        start local 7 // java.lang.Exception ex
        19: .line 470
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.conContext:Lsun/security/ssl/TransportContext;
            getstatic sun.security.ssl.Alert.INTERNAL_ERROR:Lsun/security/ssl/Alert;
        20: .line 471
            ldc "Fail to unwrap network record"
            aload 7 /* ex */
        21: .line 470
            invokevirtual sun.security.ssl.TransportContext.fatal:(Lsun/security/ssl/Alert;Ljava/lang/String;Ljava/lang/Throwable;)Ljavax/net/ssl/SSLException;
            athrow
        end local 7 // java.lang.Exception ex
        end local 6 // int dstsLength
        end local 5 // int dstsOffset
        end local 4 // java.nio.ByteBuffer[] dsts
        end local 3 // int srcsLength
        end local 2 // int srcsOffset
        end local 1 // java.nio.ByteBuffer[] srcs
        end local 0 // sun.security.ssl.SSLEngineImpl this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   22     0        this  Lsun/security/ssl/SSLEngineImpl;
            0   22     1        srcs  [Ljava/nio/ByteBuffer;
            0   22     2  srcsOffset  I
            0   22     3  srcsLength  I
            0   22     4        dsts  [Ljava/nio/ByteBuffer;
            0   22     5  dstsOffset  I
            0   22     6  dstsLength  I
           11   14     7         spe  Ljavax/net/ssl/SSLProtocolException;
           15   18     7         ioe  Ljava/io/IOException;
           19   22     7          ex  Ljava/lang/Exception;
      Exception table:
        from    to  target  type
           6     9      10  Class javax.net.ssl.SSLProtocolException
           6     9      14  Class java.io.IOException
           6     9      18  Class java.lang.Exception
    Exceptions:
      throws javax.net.ssl.SSLException
    MethodParameters:
            Name  Flags
      srcs        
      srcsOffset  
      srcsLength  
      dsts        
      dstsOffset  
      dstsLength  

  private javax.net.ssl.SSLEngineResult readRecord(java.nio.ByteBuffer[], int, int, java.nio.ByteBuffer[], int, int);
    descriptor: ([Ljava/nio/ByteBuffer;II[Ljava/nio/ByteBuffer;II)Ljavax/net/ssl/SSLEngineResult;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=8, locals=16, args_size=7
        start local 0 // sun.security.ssl.SSLEngineImpl this
        start local 1 // java.nio.ByteBuffer[] srcs
        start local 2 // int srcsOffset
        start local 3 // int srcsLength
        start local 4 // java.nio.ByteBuffer[] dsts
        start local 5 // int dstsOffset
        start local 6 // int dstsLength
         0: .line 482
            aload 0 /* this */
            invokevirtual sun.security.ssl.SSLEngineImpl.isInboundDone:()Z
            ifeq 4
         1: .line 483
            new javax.net.ssl.SSLEngineResult
            dup
         2: .line 484
            getstatic javax.net.ssl.SSLEngineResult$Status.CLOSED:Ljavax/net/ssl/SSLEngineResult$Status;
            aload 0 /* this */
            invokevirtual sun.security.ssl.SSLEngineImpl.getHandshakeStatus:()Ljavax/net/ssl/SSLEngineResult$HandshakeStatus;
            iconst_0
            iconst_0
         3: .line 483
            invokespecial javax.net.ssl.SSLEngineResult.<init>:(Ljavax/net/ssl/SSLEngineResult$Status;Ljavax/net/ssl/SSLEngineResult$HandshakeStatus;II)V
            areturn
         4: .line 487
      StackMap locals:
      StackMap stack:
            aconst_null
            astore 7 /* hsStatus */
        start local 7 // javax.net.ssl.SSLEngineResult$HandshakeStatus hsStatus
         5: .line 488
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.conContext:Lsun/security/ssl/TransportContext;
            getfield sun.security.ssl.TransportContext.isNegotiated:Z
            ifne 12
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.conContext:Lsun/security/ssl/TransportContext;
            getfield sun.security.ssl.TransportContext.isBroken:Z
            ifne 12
         6: .line 489
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.conContext:Lsun/security/ssl/TransportContext;
            invokevirtual sun.security.ssl.TransportContext.isInboundClosed:()Z
            ifne 12
         7: .line 490
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.conContext:Lsun/security/ssl/TransportContext;
            invokevirtual sun.security.ssl.TransportContext.isOutboundClosed:()Z
            ifne 12
         8: .line 491
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.conContext:Lsun/security/ssl/TransportContext;
            invokevirtual sun.security.ssl.TransportContext.kickstart:()V
         9: .line 497
            aload 0 /* this */
            invokevirtual sun.security.ssl.SSLEngineImpl.getHandshakeStatus:()Ljavax/net/ssl/SSLEngineResult$HandshakeStatus;
            astore 7 /* hsStatus */
        10: .line 498
            aload 7 /* hsStatus */
            getstatic javax.net.ssl.SSLEngineResult$HandshakeStatus.NEED_WRAP:Ljavax/net/ssl/SSLEngineResult$HandshakeStatus;
            if_acmpne 12
        11: .line 499
            new javax.net.ssl.SSLEngineResult
            dup
            getstatic javax.net.ssl.SSLEngineResult$Status.OK:Ljavax/net/ssl/SSLEngineResult$Status;
            aload 7 /* hsStatus */
            iconst_0
            iconst_0
            invokespecial javax.net.ssl.SSLEngineResult.<init>:(Ljavax/net/ssl/SSLEngineResult$Status;Ljavax/net/ssl/SSLEngineResult$HandshakeStatus;II)V
            areturn
        12: .line 503
      StackMap locals: javax.net.ssl.SSLEngineResult$HandshakeStatus
      StackMap stack:
            aload 7 /* hsStatus */
            ifnonnull 14
        13: .line 504
            aload 0 /* this */
            invokevirtual sun.security.ssl.SSLEngineImpl.getHandshakeStatus:()Ljavax/net/ssl/SSLEngineResult$HandshakeStatus;
            astore 7 /* hsStatus */
        14: .line 513
      StackMap locals:
      StackMap stack:
            aload 7 /* hsStatus */
            getstatic javax.net.ssl.SSLEngineResult$HandshakeStatus.NEED_TASK:Ljavax/net/ssl/SSLEngineResult$HandshakeStatus;
            if_acmpne 16
        15: .line 514
            new javax.net.ssl.SSLEngineResult
            dup
            getstatic javax.net.ssl.SSLEngineResult$Status.OK:Ljavax/net/ssl/SSLEngineResult$Status;
            aload 7 /* hsStatus */
            iconst_0
            iconst_0
            invokespecial javax.net.ssl.SSLEngineResult.<init>:(Ljavax/net/ssl/SSLEngineResult$Status;Ljavax/net/ssl/SSLEngineResult$HandshakeStatus;II)V
            areturn
        16: .line 517
      StackMap locals:
      StackMap stack:
            aload 7 /* hsStatus */
            getstatic javax.net.ssl.SSLEngineResult$HandshakeStatus.NEED_UNWRAP_AGAIN:Ljavax/net/ssl/SSLEngineResult$HandshakeStatus;
            if_acmpne 36
        17: .line 518
            aconst_null
            astore 8 /* plainText */
        start local 8 // sun.security.ssl.Plaintext plainText
        18: .line 520
            aload 0 /* this */
            aconst_null
            iconst_0
            iconst_0
        19: .line 521
            aload 4 /* dsts */
            iload 5 /* dstsOffset */
            iload 6 /* dstsLength */
        20: .line 520
            invokevirtual sun.security.ssl.SSLEngineImpl.decode:([Ljava/nio/ByteBuffer;II[Ljava/nio/ByteBuffer;II)Lsun/security/ssl/Plaintext;
            astore 8 /* plainText */
        21: .line 522
            goto 26
      StackMap locals: sun.security.ssl.SSLEngineImpl java.nio.ByteBuffer[] int int java.nio.ByteBuffer[] int int javax.net.ssl.SSLEngineResult$HandshakeStatus sun.security.ssl.Plaintext
      StackMap stack: java.io.IOException
        22: astore 9 /* ioe */
        start local 9 // java.io.IOException ioe
        23: .line 523
            aload 9 /* ioe */
            instanceof javax.net.ssl.SSLException
            ifeq 25
        24: .line 524
            aload 9 /* ioe */
            athrow
        25: .line 526
      StackMap locals: java.io.IOException
      StackMap stack:
            new javax.net.ssl.SSLException
            dup
            ldc "readRecord"
            aload 9 /* ioe */
            invokespecial javax.net.ssl.SSLException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
            athrow
        end local 9 // java.io.IOException ioe
        26: .line 530
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual sun.security.ssl.SSLEngineImpl.isInboundDone:()Z
            ifeq 27
            getstatic javax.net.ssl.SSLEngineResult$Status.CLOSED:Ljavax/net/ssl/SSLEngineResult$Status;
            goto 28
      StackMap locals:
      StackMap stack:
        27: getstatic javax.net.ssl.SSLEngineResult$Status.OK:Ljavax/net/ssl/SSLEngineResult$Status;
      StackMap locals:
      StackMap stack: javax.net.ssl.SSLEngineResult$Status
        28: astore 9 /* status */
        start local 9 // javax.net.ssl.SSLEngineResult$Status status
        29: .line 531
            aload 8 /* plainText */
            getfield sun.security.ssl.Plaintext.handshakeStatus:Ljavax/net/ssl/SSLEngineResult$HandshakeStatus;
            ifnull 32
        30: .line 532
            aload 8 /* plainText */
            getfield sun.security.ssl.Plaintext.handshakeStatus:Ljavax/net/ssl/SSLEngineResult$HandshakeStatus;
            astore 7 /* hsStatus */
        31: .line 533
            goto 33
        32: .line 534
      StackMap locals: javax.net.ssl.SSLEngineResult$Status
      StackMap stack:
            aload 0 /* this */
            invokevirtual sun.security.ssl.SSLEngineImpl.getHandshakeStatus:()Ljavax/net/ssl/SSLEngineResult$HandshakeStatus;
            astore 7 /* hsStatus */
        33: .line 537
      StackMap locals:
      StackMap stack:
            new javax.net.ssl.SSLEngineResult
            dup
        34: .line 538
            aload 9 /* status */
            aload 7 /* hsStatus */
            iconst_0
            iconst_0
            aload 8 /* plainText */
            getfield sun.security.ssl.Plaintext.recordSN:J
        35: .line 537
            invokespecial javax.net.ssl.SSLEngineResult.<init>:(Ljavax/net/ssl/SSLEngineResult$Status;Ljavax/net/ssl/SSLEngineResult$HandshakeStatus;IIJ)V
            areturn
        end local 9 // javax.net.ssl.SSLEngineResult$Status status
        end local 8 // sun.security.ssl.Plaintext plainText
        36: .line 541
      StackMap locals:
      StackMap stack:
            iconst_0
            istore 8 /* srcsRemains */
        start local 8 // int srcsRemains
        37: .line 542
            iload 2 /* srcsOffset */
            istore 9 /* i */
        start local 9 // int i
        38: goto 41
        39: .line 543
      StackMap locals: int int
      StackMap stack:
            iload 8 /* srcsRemains */
            aload 1 /* srcs */
            iload 9 /* i */
            aaload
            invokevirtual java.nio.ByteBuffer.remaining:()I
            iadd
            istore 8 /* srcsRemains */
        40: .line 542
            iinc 9 /* i */ 1
      StackMap locals:
      StackMap stack:
        41: iload 9 /* i */
            iload 2 /* srcsOffset */
            iload 3 /* srcsLength */
            iadd
            if_icmplt 39
        end local 9 // int i
        42: .line 546
            iload 8 /* srcsRemains */
            ifne 46
        43: .line 547
            new javax.net.ssl.SSLEngineResult
            dup
        44: .line 548
            getstatic javax.net.ssl.SSLEngineResult$Status.BUFFER_UNDERFLOW:Ljavax/net/ssl/SSLEngineResult$Status;
            aload 7 /* hsStatus */
            iconst_0
            iconst_0
        45: .line 547
            invokespecial javax.net.ssl.SSLEngineResult.<init>:(Ljavax/net/ssl/SSLEngineResult$Status;Ljavax/net/ssl/SSLEngineResult$HandshakeStatus;II)V
            areturn
        46: .line 555
      StackMap locals:
      StackMap stack:
            iconst_0
            istore 9 /* packetLen */
        start local 9 // int packetLen
        47: .line 557
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.conContext:Lsun/security/ssl/TransportContext;
            getfield sun.security.ssl.TransportContext.inputRecord:Lsun/security/ssl/InputRecord;
        48: .line 558
            aload 1 /* srcs */
            iload 2 /* srcsOffset */
            iload 3 /* srcsLength */
        49: .line 557
            invokevirtual sun.security.ssl.InputRecord.bytesInCompletePacket:([Ljava/nio/ByteBuffer;II)I
            istore 9 /* packetLen */
        50: .line 559
            goto 63
      StackMap locals: sun.security.ssl.SSLEngineImpl java.nio.ByteBuffer[] int int java.nio.ByteBuffer[] int int javax.net.ssl.SSLEngineResult$HandshakeStatus int int
      StackMap stack: javax.net.ssl.SSLException
        51: astore 10 /* ssle */
        start local 10 // javax.net.ssl.SSLException ssle
        52: .line 561
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.sslContext:Lsun/security/ssl/SSLContextImpl;
            invokevirtual sun.security.ssl.SSLContextImpl.isDTLS:()Z
            ifeq 62
        53: .line 562
            getstatic sun.security.ssl.SSLLogger.isOn:Z
            ifeq 55
            ldc "ssl,verbose"
            invokestatic sun.security.ssl.SSLLogger.isOn:(Ljava/lang/String;)Z
            ifeq 55
        54: .line 563
            ldc "Discard invalid DTLS records"
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            aload 10 /* ssle */
            aastore
            invokestatic sun.security.ssl.SSLLogger.finest:(Ljava/lang/String;[Ljava/lang/Object;)V
        55: .line 567
      StackMap locals: javax.net.ssl.SSLException
      StackMap stack:
            iconst_0
            istore 11 /* deltaNet */
        start local 11 // int deltaNet
        56: .line 571
            aload 0 /* this */
            invokevirtual sun.security.ssl.SSLEngineImpl.isInboundDone:()Z
            ifeq 57
            getstatic javax.net.ssl.SSLEngineResult$Status.CLOSED:Ljavax/net/ssl/SSLEngineResult$Status;
            goto 58
      StackMap locals: int
      StackMap stack:
        57: getstatic javax.net.ssl.SSLEngineResult$Status.OK:Ljavax/net/ssl/SSLEngineResult$Status;
      StackMap locals:
      StackMap stack: javax.net.ssl.SSLEngineResult$Status
        58: astore 12 /* status */
        start local 12 // javax.net.ssl.SSLEngineResult$Status status
        59: .line 572
            aload 7 /* hsStatus */
            ifnonnull 61
        60: .line 573
            aload 0 /* this */
            invokevirtual sun.security.ssl.SSLEngineImpl.getHandshakeStatus:()Ljavax/net/ssl/SSLEngineResult$HandshakeStatus;
            astore 7 /* hsStatus */
        61: .line 576
      StackMap locals: javax.net.ssl.SSLEngineResult$Status
      StackMap stack:
            new javax.net.ssl.SSLEngineResult
            dup
            aload 12 /* status */
            aload 7 /* hsStatus */
            iload 11 /* deltaNet */
            iconst_0
            ldc -1
            invokespecial javax.net.ssl.SSLEngineResult.<init>:(Ljavax/net/ssl/SSLEngineResult$Status;Ljavax/net/ssl/SSLEngineResult$HandshakeStatus;IIJ)V
            areturn
        end local 12 // javax.net.ssl.SSLEngineResult$Status status
        end local 11 // int deltaNet
        62: .line 578
      StackMap locals:
      StackMap stack:
            aload 10 /* ssle */
            athrow
        end local 10 // javax.net.ssl.SSLException ssle
        63: .line 583
      StackMap locals:
      StackMap stack:
            iload 9 /* packetLen */
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.conContext:Lsun/security/ssl/TransportContext;
            getfield sun.security.ssl.TransportContext.conSession:Lsun/security/ssl/SSLSessionImpl;
            invokevirtual sun.security.ssl.SSLSessionImpl.getPacketBufferSize:()I
            if_icmple 77
        64: .line 584
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.sslContext:Lsun/security/ssl/SSLContextImpl;
            invokevirtual sun.security.ssl.SSLContextImpl.isDTLS:()Z
            ifeq 66
        65: .line 585
            sipush 16717
            goto 67
      StackMap locals:
      StackMap stack:
        66: ldc 33093
        67: .line 584
      StackMap locals:
      StackMap stack: int
            istore 10 /* largestRecordSize */
        start local 10 // int largestRecordSize
        68: .line 586
            iload 9 /* packetLen */
            iload 10 /* largestRecordSize */
            if_icmpgt 70
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.sslContext:Lsun/security/ssl/SSLContextImpl;
            invokevirtual sun.security.ssl.SSLContextImpl.isDTLS:()Z
            ifne 70
        69: .line 594
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.conContext:Lsun/security/ssl/TransportContext;
            getfield sun.security.ssl.TransportContext.conSession:Lsun/security/ssl/SSLSessionImpl;
            invokevirtual sun.security.ssl.SSLSessionImpl.expandBufferSizes:()V
        70: .line 598
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.conContext:Lsun/security/ssl/TransportContext;
            getfield sun.security.ssl.TransportContext.conSession:Lsun/security/ssl/SSLSessionImpl;
            invokevirtual sun.security.ssl.SSLSessionImpl.getPacketBufferSize:()I
            istore 10 /* largestRecordSize */
        71: .line 599
            iload 9 /* packetLen */
            iload 10 /* largestRecordSize */
            if_icmple 77
        72: .line 600
            new javax.net.ssl.SSLProtocolException
            dup
        73: .line 601
            new java.lang.StringBuilder
            dup
            ldc "Input record too big: max = "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
        74: .line 602
            iload 10 /* largestRecordSize */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            ldc " len = "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            iload 9 /* packetLen */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
        75: .line 601
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        76: .line 600
            invokespecial javax.net.ssl.SSLProtocolException.<init>:(Ljava/lang/String;)V
            athrow
        end local 10 // int largestRecordSize
        77: .line 612
      StackMap locals:
      StackMap stack:
            iconst_0
            istore 10 /* dstsRemains */
        start local 10 // int dstsRemains
        78: .line 613
            iload 5 /* dstsOffset */
            istore 11 /* i */
        start local 11 // int i
        79: goto 82
        80: .line 614
      StackMap locals: int int
      StackMap stack:
            iload 10 /* dstsRemains */
            aload 4 /* dsts */
            iload 11 /* i */
            aaload
            invokevirtual java.nio.ByteBuffer.remaining:()I
            iadd
            istore 10 /* dstsRemains */
        81: .line 613
            iinc 11 /* i */ 1
      StackMap locals:
      StackMap stack:
        82: iload 11 /* i */
            iload 5 /* dstsOffset */
            iload 6 /* dstsLength */
            iadd
            if_icmplt 80
        end local 11 // int i
        83: .line 617
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.conContext:Lsun/security/ssl/TransportContext;
            getfield sun.security.ssl.TransportContext.isNegotiated:Z
            ifeq 90
        84: .line 619
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.conContext:Lsun/security/ssl/TransportContext;
            getfield sun.security.ssl.TransportContext.inputRecord:Lsun/security/ssl/InputRecord;
            iload 9 /* packetLen */
            invokevirtual sun.security.ssl.InputRecord.estimateFragmentSize:(I)I
        85: .line 618
            istore 11 /* FragLen */
        start local 11 // int FragLen
        86: .line 620
            iload 11 /* FragLen */
            iload 10 /* dstsRemains */
            if_icmple 90
        87: .line 621
            new javax.net.ssl.SSLEngineResult
            dup
        88: .line 622
            getstatic javax.net.ssl.SSLEngineResult$Status.BUFFER_OVERFLOW:Ljavax/net/ssl/SSLEngineResult$Status;
            aload 7 /* hsStatus */
            iconst_0
            iconst_0
        89: .line 621
            invokespecial javax.net.ssl.SSLEngineResult.<init>:(Ljavax/net/ssl/SSLEngineResult$Status;Ljavax/net/ssl/SSLEngineResult$HandshakeStatus;II)V
            areturn
        end local 11 // int FragLen
        90: .line 627
      StackMap locals:
      StackMap stack:
            iload 9 /* packetLen */
            iconst_m1
            if_icmpeq 91
            iload 8 /* srcsRemains */
            iload 9 /* packetLen */
            if_icmpge 92
        91: .line 628
      StackMap locals:
      StackMap stack:
            new javax.net.ssl.SSLEngineResult
            dup
            getstatic javax.net.ssl.SSLEngineResult$Status.BUFFER_UNDERFLOW:Ljavax/net/ssl/SSLEngineResult$Status;
            aload 7 /* hsStatus */
            iconst_0
            iconst_0
            invokespecial javax.net.ssl.SSLEngineResult.<init>:(Ljavax/net/ssl/SSLEngineResult$Status;Ljavax/net/ssl/SSLEngineResult$HandshakeStatus;II)V
            areturn
        92: .line 634
      StackMap locals:
      StackMap stack:
            aconst_null
            astore 11 /* plainText */
        start local 11 // sun.security.ssl.Plaintext plainText
        93: .line 636
            aload 0 /* this */
            aload 1 /* srcs */
            iload 2 /* srcsOffset */
            iload 3 /* srcsLength */
        94: .line 637
            aload 4 /* dsts */
            iload 5 /* dstsOffset */
            iload 6 /* dstsLength */
        95: .line 636
            invokevirtual sun.security.ssl.SSLEngineImpl.decode:([Ljava/nio/ByteBuffer;II[Ljava/nio/ByteBuffer;II)Lsun/security/ssl/Plaintext;
            astore 11 /* plainText */
        96: .line 638
            goto 101
      StackMap locals: sun.security.ssl.SSLEngineImpl java.nio.ByteBuffer[] int int java.nio.ByteBuffer[] int int javax.net.ssl.SSLEngineResult$HandshakeStatus int int int sun.security.ssl.Plaintext
      StackMap stack: java.io.IOException
        97: astore 12 /* ioe */
        start local 12 // java.io.IOException ioe
        98: .line 639
            aload 12 /* ioe */
            instanceof javax.net.ssl.SSLException
            ifeq 100
        99: .line 640
            aload 12 /* ioe */
            athrow
       100: .line 642
      StackMap locals: java.io.IOException
      StackMap stack:
            new javax.net.ssl.SSLException
            dup
            ldc "readRecord"
            aload 12 /* ioe */
            invokespecial javax.net.ssl.SSLException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
            athrow
        end local 12 // java.io.IOException ioe
       101: .line 656
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual sun.security.ssl.SSLEngineImpl.isInboundDone:()Z
            ifeq 102
            getstatic javax.net.ssl.SSLEngineResult$Status.CLOSED:Ljavax/net/ssl/SSLEngineResult$Status;
            goto 103
      StackMap locals:
      StackMap stack:
       102: getstatic javax.net.ssl.SSLEngineResult$Status.OK:Ljavax/net/ssl/SSLEngineResult$Status;
      StackMap locals:
      StackMap stack: javax.net.ssl.SSLEngineResult$Status
       103: astore 12 /* status */
        start local 12 // javax.net.ssl.SSLEngineResult$Status status
       104: .line 657
            aload 11 /* plainText */
            getfield sun.security.ssl.Plaintext.handshakeStatus:Ljavax/net/ssl/SSLEngineResult$HandshakeStatus;
            ifnull 107
       105: .line 658
            aload 11 /* plainText */
            getfield sun.security.ssl.Plaintext.handshakeStatus:Ljavax/net/ssl/SSLEngineResult$HandshakeStatus;
            astore 7 /* hsStatus */
       106: .line 659
            goto 108
       107: .line 660
      StackMap locals: javax.net.ssl.SSLEngineResult$Status
      StackMap stack:
            aload 0 /* this */
            invokevirtual sun.security.ssl.SSLEngineImpl.getHandshakeStatus:()Ljavax/net/ssl/SSLEngineResult$HandshakeStatus;
            astore 7 /* hsStatus */
       108: .line 663
      StackMap locals:
      StackMap stack:
            iload 8 /* srcsRemains */
            istore 13 /* deltaNet */
        start local 13 // int deltaNet
       109: .line 664
            iload 2 /* srcsOffset */
            istore 14 /* i */
        start local 14 // int i
       110: goto 113
       111: .line 665
      StackMap locals: int int
      StackMap stack:
            iload 13 /* deltaNet */
            aload 1 /* srcs */
            iload 14 /* i */
            aaload
            invokevirtual java.nio.ByteBuffer.remaining:()I
            isub
            istore 13 /* deltaNet */
       112: .line 664
            iinc 14 /* i */ 1
      StackMap locals:
      StackMap stack:
       113: iload 14 /* i */
            iload 2 /* srcsOffset */
            iload 3 /* srcsLength */
            iadd
            if_icmplt 111
        end local 14 // int i
       114: .line 668
            iload 10 /* dstsRemains */
            istore 14 /* deltaApp */
        start local 14 // int deltaApp
       115: .line 669
            iload 5 /* dstsOffset */
            istore 15 /* i */
        start local 15 // int i
       116: goto 119
       117: .line 670
      StackMap locals: int
      StackMap stack:
            iload 14 /* deltaApp */
            aload 4 /* dsts */
            iload 15 /* i */
            aaload
            invokevirtual java.nio.ByteBuffer.remaining:()I
            isub
            istore 14 /* deltaApp */
       118: .line 669
            iinc 15 /* i */ 1
      StackMap locals:
      StackMap stack:
       119: iload 15 /* i */
            iload 5 /* dstsOffset */
            iload 6 /* dstsLength */
            iadd
            if_icmplt 117
        end local 15 // int i
       120: .line 673
            new javax.net.ssl.SSLEngineResult
            dup
       121: .line 674
            aload 12 /* status */
            aload 7 /* hsStatus */
            iload 13 /* deltaNet */
            iload 14 /* deltaApp */
            aload 11 /* plainText */
            getfield sun.security.ssl.Plaintext.recordSN:J
       122: .line 673
            invokespecial javax.net.ssl.SSLEngineResult.<init>:(Ljavax/net/ssl/SSLEngineResult$Status;Ljavax/net/ssl/SSLEngineResult$HandshakeStatus;IIJ)V
            areturn
        end local 14 // int deltaApp
        end local 13 // int deltaNet
        end local 12 // javax.net.ssl.SSLEngineResult$Status status
        end local 11 // sun.security.ssl.Plaintext plainText
        end local 10 // int dstsRemains
        end local 9 // int packetLen
        end local 8 // int srcsRemains
        end local 7 // javax.net.ssl.SSLEngineResult$HandshakeStatus hsStatus
        end local 6 // int dstsLength
        end local 5 // int dstsOffset
        end local 4 // java.nio.ByteBuffer[] dsts
        end local 3 // int srcsLength
        end local 2 // int srcsOffset
        end local 1 // java.nio.ByteBuffer[] srcs
        end local 0 // sun.security.ssl.SSLEngineImpl this
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0  123     0               this  Lsun/security/ssl/SSLEngineImpl;
            0  123     1               srcs  [Ljava/nio/ByteBuffer;
            0  123     2         srcsOffset  I
            0  123     3         srcsLength  I
            0  123     4               dsts  [Ljava/nio/ByteBuffer;
            0  123     5         dstsOffset  I
            0  123     6         dstsLength  I
            5  123     7           hsStatus  Ljavax/net/ssl/SSLEngineResult$HandshakeStatus;
           18   36     8          plainText  Lsun/security/ssl/Plaintext;
           23   26     9                ioe  Ljava/io/IOException;
           29   36     9             status  Ljavax/net/ssl/SSLEngineResult$Status;
           37  123     8        srcsRemains  I
           38   42     9                  i  I
           47  123     9          packetLen  I
           52   63    10               ssle  Ljavax/net/ssl/SSLException;
           56   62    11           deltaNet  I
           59   62    12             status  Ljavax/net/ssl/SSLEngineResult$Status;
           68   77    10  largestRecordSize  I
           78  123    10        dstsRemains  I
           79   83    11                  i  I
           86   90    11            FragLen  I
           93  123    11          plainText  Lsun/security/ssl/Plaintext;
           98  101    12                ioe  Ljava/io/IOException;
          104  123    12             status  Ljavax/net/ssl/SSLEngineResult$Status;
          109  123    13           deltaNet  I
          110  114    14                  i  I
          115  123    14           deltaApp  I
          116  120    15                  i  I
      Exception table:
        from    to  target  type
          18    21      22  Class java.io.IOException
          47    50      51  Class javax.net.ssl.SSLException
          93    96      97  Class java.io.IOException
    Exceptions:
      throws java.io.IOException
    MethodParameters:
            Name  Flags
      srcs        
      srcsOffset  
      srcsLength  
      dsts        
      dstsOffset  
      dstsLength  

  private sun.security.ssl.Plaintext decode(java.nio.ByteBuffer[], int, int, java.nio.ByteBuffer[], int, int);
    descriptor: ([Ljava/nio/ByteBuffer;II[Ljava/nio/ByteBuffer;II)Lsun/security/ssl/Plaintext;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=7, locals=9, args_size=7
        start local 0 // sun.security.ssl.SSLEngineImpl this
        start local 1 // java.nio.ByteBuffer[] srcs
        start local 2 // int srcsOffset
        start local 3 // int srcsLength
        start local 4 // java.nio.ByteBuffer[] dsts
        start local 5 // int dstsOffset
        start local 6 // int dstsLength
         0: .line 681
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.conContext:Lsun/security/ssl/TransportContext;
         1: .line 682
            aload 1 /* srcs */
            iload 2 /* srcsOffset */
            iload 3 /* srcsLength */
         2: .line 683
            aload 4 /* dsts */
            iload 5 /* dstsOffset */
            iload 6 /* dstsLength */
         3: .line 681
            invokestatic sun.security.ssl.SSLTransport.decode:(Lsun/security/ssl/TransportContext;[Ljava/nio/ByteBuffer;II[Ljava/nio/ByteBuffer;II)Lsun/security/ssl/Plaintext;
            astore 7 /* pt */
        start local 7 // sun.security.ssl.Plaintext pt
         4: .line 686
            aload 7 /* pt */
            getstatic sun.security.ssl.Plaintext.PLAINTEXT_NULL:Lsun/security/ssl/Plaintext;
            if_acmpeq 15
         5: .line 687
            aload 0 /* this */
            aload 7 /* pt */
            getfield sun.security.ssl.Plaintext.contentType:B
            invokevirtual sun.security.ssl.SSLEngineImpl.tryToFinishHandshake:(B)Ljavax/net/ssl/SSLEngineResult$HandshakeStatus;
            astore 8 /* hsStatus */
        start local 8 // javax.net.ssl.SSLEngineResult$HandshakeStatus hsStatus
         6: .line 688
            aload 8 /* hsStatus */
            ifnonnull 9
         7: .line 689
            aload 7 /* pt */
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.conContext:Lsun/security/ssl/TransportContext;
            invokevirtual sun.security.ssl.TransportContext.getHandshakeStatus:()Ljavax/net/ssl/SSLEngineResult$HandshakeStatus;
            putfield sun.security.ssl.Plaintext.handshakeStatus:Ljavax/net/ssl/SSLEngineResult$HandshakeStatus;
         8: .line 690
            goto 10
         9: .line 691
      StackMap locals: sun.security.ssl.Plaintext javax.net.ssl.SSLEngineResult$HandshakeStatus
      StackMap stack:
            aload 7 /* pt */
            aload 8 /* hsStatus */
            putfield sun.security.ssl.Plaintext.handshakeStatus:Ljavax/net/ssl/SSLEngineResult$HandshakeStatus;
        10: .line 695
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.conContext:Lsun/security/ssl/TransportContext;
            getfield sun.security.ssl.TransportContext.inputRecord:Lsun/security/ssl/InputRecord;
            invokevirtual sun.security.ssl.InputRecord.seqNumIsHuge:()Z
            ifne 12
        11: .line 696
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.conContext:Lsun/security/ssl/TransportContext;
            getfield sun.security.ssl.TransportContext.inputRecord:Lsun/security/ssl/InputRecord;
            getfield sun.security.ssl.InputRecord.readCipher:Lsun/security/ssl/SSLCipher$SSLReadCipher;
            invokevirtual sun.security.ssl.SSLCipher$SSLReadCipher.atKeyLimit:()Z
            ifeq 15
        12: .line 697
      StackMap locals:
      StackMap stack:
            aload 7 /* pt */
        13: .line 698
            aload 0 /* this */
            aload 7 /* pt */
            getfield sun.security.ssl.Plaintext.handshakeStatus:Ljavax/net/ssl/SSLEngineResult$HandshakeStatus;
            invokevirtual sun.security.ssl.SSLEngineImpl.tryKeyUpdate:(Ljavax/net/ssl/SSLEngineResult$HandshakeStatus;)Ljavax/net/ssl/SSLEngineResult$HandshakeStatus;
        14: .line 697
            putfield sun.security.ssl.Plaintext.handshakeStatus:Ljavax/net/ssl/SSLEngineResult$HandshakeStatus;
        end local 8 // javax.net.ssl.SSLEngineResult$HandshakeStatus hsStatus
        15: .line 702
      StackMap locals:
      StackMap stack:
            aload 7 /* pt */
            areturn
        end local 7 // sun.security.ssl.Plaintext pt
        end local 6 // int dstsLength
        end local 5 // int dstsOffset
        end local 4 // java.nio.ByteBuffer[] dsts
        end local 3 // int srcsLength
        end local 2 // int srcsOffset
        end local 1 // java.nio.ByteBuffer[] srcs
        end local 0 // sun.security.ssl.SSLEngineImpl this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   16     0        this  Lsun/security/ssl/SSLEngineImpl;
            0   16     1        srcs  [Ljava/nio/ByteBuffer;
            0   16     2  srcsOffset  I
            0   16     3  srcsLength  I
            0   16     4        dsts  [Ljava/nio/ByteBuffer;
            0   16     5  dstsOffset  I
            0   16     6  dstsLength  I
            4   16     7          pt  Lsun/security/ssl/Plaintext;
            6   15     8    hsStatus  Ljavax/net/ssl/SSLEngineResult$HandshakeStatus;
    Exceptions:
      throws java.io.IOException
    MethodParameters:
            Name  Flags
      srcs        
      srcsOffset  
      srcsLength  
      dsts        
      dstsOffset  
      dstsLength  

  public synchronized java.lang.Runnable getDelegatedTask();
    descriptor: ()Ljava/lang/Runnable;
    flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // sun.security.ssl.SSLEngineImpl this
         0: .line 707
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.conContext:Lsun/security/ssl/TransportContext;
            getfield sun.security.ssl.TransportContext.handshakeContext:Lsun/security/ssl/HandshakeContext;
            ifnull 5
         1: .line 708
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.conContext:Lsun/security/ssl/TransportContext;
            getfield sun.security.ssl.TransportContext.handshakeContext:Lsun/security/ssl/HandshakeContext;
            getfield sun.security.ssl.HandshakeContext.taskDelegated:Z
            ifne 5
         2: .line 709
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.conContext:Lsun/security/ssl/TransportContext;
            getfield sun.security.ssl.TransportContext.handshakeContext:Lsun/security/ssl/HandshakeContext;
            getfield sun.security.ssl.HandshakeContext.delegatedActions:Ljava/util/Queue;
            invokeinterface java.util.Queue.isEmpty:()Z
            ifne 5
         3: .line 710
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.conContext:Lsun/security/ssl/TransportContext;
            getfield sun.security.ssl.TransportContext.handshakeContext:Lsun/security/ssl/HandshakeContext;
            iconst_1
            putfield sun.security.ssl.HandshakeContext.taskDelegated:Z
         4: .line 711
            new sun.security.ssl.SSLEngineImpl$DelegatedTask
            dup
            aload 0 /* this */
            invokespecial sun.security.ssl.SSLEngineImpl$DelegatedTask.<init>:(Lsun/security/ssl/SSLEngineImpl;)V
            areturn
         5: .line 714
      StackMap locals:
      StackMap stack:
            aconst_null
            areturn
        end local 0 // sun.security.ssl.SSLEngineImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    6     0  this  Lsun/security/ssl/SSLEngineImpl;

  public synchronized void closeInbound();
    descriptor: ()V
    flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // sun.security.ssl.SSLEngineImpl this
         0: .line 719
            aload 0 /* this */
            invokevirtual sun.security.ssl.SSLEngineImpl.isInboundDone:()Z
            ifeq 2
         1: .line 720
            return
         2: .line 723
      StackMap locals:
      StackMap stack:
            getstatic sun.security.ssl.SSLLogger.isOn:Z
            ifeq 4
            ldc "ssl"
            invokestatic sun.security.ssl.SSLLogger.isOn:(Ljava/lang/String;)Z
            ifeq 4
         3: .line 724
            ldc "Closing inbound of SSLEngine"
            iconst_0
            anewarray java.lang.Object
            invokestatic sun.security.ssl.SSLLogger.finest:(Ljava/lang/String;[Ljava/lang/Object;)V
         4: .line 730
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.conContext:Lsun/security/ssl/TransportContext;
            getfield sun.security.ssl.TransportContext.isInputCloseNotified:Z
            ifne 9
         5: .line 731
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.conContext:Lsun/security/ssl/TransportContext;
            getfield sun.security.ssl.TransportContext.isNegotiated:Z
            ifne 6
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.conContext:Lsun/security/ssl/TransportContext;
            getfield sun.security.ssl.TransportContext.handshakeContext:Lsun/security/ssl/HandshakeContext;
            ifnull 9
         6: .line 733
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.conContext:Lsun/security/ssl/TransportContext;
            getstatic sun.security.ssl.Alert.INTERNAL_ERROR:Lsun/security/ssl/Alert;
         7: .line 734
            ldc "closing inbound before receiving peer's close_notify"
         8: .line 733
            invokevirtual sun.security.ssl.TransportContext.fatal:(Lsun/security/ssl/Alert;Ljava/lang/String;)Ljavax/net/ssl/SSLException;
            athrow
         9: .line 737
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.conContext:Lsun/security/ssl/TransportContext;
            invokevirtual sun.security.ssl.TransportContext.closeInbound:()V
        10: .line 738
            return
        end local 0 // sun.security.ssl.SSLEngineImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   11     0  this  Lsun/security/ssl/SSLEngineImpl;
    Exceptions:
      throws javax.net.ssl.SSLException

  public synchronized boolean isInboundDone();
    descriptor: ()Z
    flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // sun.security.ssl.SSLEngineImpl this
         0: .line 742
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.conContext:Lsun/security/ssl/TransportContext;
            invokevirtual sun.security.ssl.TransportContext.isInboundClosed:()Z
            ireturn
        end local 0 // sun.security.ssl.SSLEngineImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lsun/security/ssl/SSLEngineImpl;

  public synchronized void closeOutbound();
    descriptor: ()V
    flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // sun.security.ssl.SSLEngineImpl this
         0: .line 747
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.conContext:Lsun/security/ssl/TransportContext;
            invokevirtual sun.security.ssl.TransportContext.isOutboundClosed:()Z
            ifeq 2
         1: .line 748
            return
         2: .line 751
      StackMap locals:
      StackMap stack:
            getstatic sun.security.ssl.SSLLogger.isOn:Z
            ifeq 4
            ldc "ssl"
            invokestatic sun.security.ssl.SSLLogger.isOn:(Ljava/lang/String;)Z
            ifeq 4
         3: .line 752
            ldc "Closing outbound of SSLEngine"
            iconst_0
            anewarray java.lang.Object
            invokestatic sun.security.ssl.SSLLogger.finest:(Ljava/lang/String;[Ljava/lang/Object;)V
         4: .line 755
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.conContext:Lsun/security/ssl/TransportContext;
            invokevirtual sun.security.ssl.TransportContext.closeOutbound:()V
         5: .line 756
            return
        end local 0 // sun.security.ssl.SSLEngineImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    6     0  this  Lsun/security/ssl/SSLEngineImpl;

  public synchronized boolean isOutboundDone();
    descriptor: ()Z
    flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // sun.security.ssl.SSLEngineImpl this
         0: .line 760
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.conContext:Lsun/security/ssl/TransportContext;
            invokevirtual sun.security.ssl.TransportContext.isOutboundDone:()Z
            ireturn
        end local 0 // sun.security.ssl.SSLEngineImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lsun/security/ssl/SSLEngineImpl;

  public java.lang.String[] getSupportedCipherSuites();
    descriptor: ()[Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // sun.security.ssl.SSLEngineImpl this
         0: .line 765
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.sslContext:Lsun/security/ssl/SSLContextImpl;
            invokevirtual sun.security.ssl.SSLContextImpl.getSupportedCipherSuites:()Ljava/util/List;
            invokestatic sun.security.ssl.CipherSuite.namesOf:(Ljava/util/List;)[Ljava/lang/String;
            areturn
        end local 0 // sun.security.ssl.SSLEngineImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lsun/security/ssl/SSLEngineImpl;

  public synchronized java.lang.String[] getEnabledCipherSuites();
    descriptor: ()[Ljava/lang/String;
    flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // sun.security.ssl.SSLEngineImpl this
         0: .line 770
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.conContext:Lsun/security/ssl/TransportContext;
            getfield sun.security.ssl.TransportContext.sslConfig:Lsun/security/ssl/SSLConfiguration;
            getfield sun.security.ssl.SSLConfiguration.enabledCipherSuites:Ljava/util/List;
            invokestatic sun.security.ssl.CipherSuite.namesOf:(Ljava/util/List;)[Ljava/lang/String;
            areturn
        end local 0 // sun.security.ssl.SSLEngineImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lsun/security/ssl/SSLEngineImpl;

  public synchronized void setEnabledCipherSuites(java.lang.String[]);
    descriptor: ([Ljava/lang/String;)V
    flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // sun.security.ssl.SSLEngineImpl this
        start local 1 // java.lang.String[] suites
         0: .line 775
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.conContext:Lsun/security/ssl/TransportContext;
            getfield sun.security.ssl.TransportContext.sslConfig:Lsun/security/ssl/SSLConfiguration;
         1: .line 776
            aload 1 /* suites */
            invokestatic sun.security.ssl.CipherSuite.validValuesOf:([Ljava/lang/String;)Ljava/util/List;
         2: .line 775
            putfield sun.security.ssl.SSLConfiguration.enabledCipherSuites:Ljava/util/List;
         3: .line 777
            return
        end local 1 // java.lang.String[] suites
        end local 0 // sun.security.ssl.SSLEngineImpl this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    4     0    this  Lsun/security/ssl/SSLEngineImpl;
            0    4     1  suites  [Ljava/lang/String;
    MethodParameters:
        Name  Flags
      suites  

  public java.lang.String[] getSupportedProtocols();
    descriptor: ()[Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // sun.security.ssl.SSLEngineImpl this
         0: .line 782
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.sslContext:Lsun/security/ssl/SSLContextImpl;
            invokevirtual sun.security.ssl.SSLContextImpl.getSupportedProtocolVersions:()Ljava/util/List;
         1: .line 781
            invokestatic sun.security.ssl.ProtocolVersion.toStringArray:(Ljava/util/List;)[Ljava/lang/String;
            areturn
        end local 0 // sun.security.ssl.SSLEngineImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lsun/security/ssl/SSLEngineImpl;

  public synchronized java.lang.String[] getEnabledProtocols();
    descriptor: ()[Ljava/lang/String;
    flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // sun.security.ssl.SSLEngineImpl this
         0: .line 788
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.conContext:Lsun/security/ssl/TransportContext;
            getfield sun.security.ssl.TransportContext.sslConfig:Lsun/security/ssl/SSLConfiguration;
            getfield sun.security.ssl.SSLConfiguration.enabledProtocols:Ljava/util/List;
         1: .line 787
            invokestatic sun.security.ssl.ProtocolVersion.toStringArray:(Ljava/util/List;)[Ljava/lang/String;
            areturn
        end local 0 // sun.security.ssl.SSLEngineImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lsun/security/ssl/SSLEngineImpl;

  public synchronized void setEnabledProtocols(java.lang.String[]);
    descriptor: ([Ljava/lang/String;)V
    flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // sun.security.ssl.SSLEngineImpl this
        start local 1 // java.lang.String[] protocols
         0: .line 793
            aload 1 /* protocols */
            ifnonnull 2
         1: .line 794
            new java.lang.IllegalArgumentException
            dup
            ldc "Protocols cannot be null"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 797
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.conContext:Lsun/security/ssl/TransportContext;
            getfield sun.security.ssl.TransportContext.sslConfig:Lsun/security/ssl/SSLConfiguration;
         3: .line 798
            aload 1 /* protocols */
            invokestatic sun.security.ssl.ProtocolVersion.namesOf:([Ljava/lang/String;)Ljava/util/List;
         4: .line 797
            putfield sun.security.ssl.SSLConfiguration.enabledProtocols:Ljava/util/List;
         5: .line 799
            return
        end local 1 // java.lang.String[] protocols
        end local 0 // sun.security.ssl.SSLEngineImpl this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    6     0       this  Lsun/security/ssl/SSLEngineImpl;
            0    6     1  protocols  [Ljava/lang/String;
    MethodParameters:
           Name  Flags
      protocols  

  public synchronized javax.net.ssl.SSLSession getSession();
    descriptor: ()Ljavax/net/ssl/SSLSession;
    flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // sun.security.ssl.SSLEngineImpl this
         0: .line 803
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.conContext:Lsun/security/ssl/TransportContext;
            getfield sun.security.ssl.TransportContext.conSession:Lsun/security/ssl/SSLSessionImpl;
            areturn
        end local 0 // sun.security.ssl.SSLEngineImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lsun/security/ssl/SSLEngineImpl;

  public synchronized javax.net.ssl.SSLSession getHandshakeSession();
    descriptor: ()Ljavax/net/ssl/SSLSession;
    flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // sun.security.ssl.SSLEngineImpl this
         0: .line 808
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.conContext:Lsun/security/ssl/TransportContext;
            getfield sun.security.ssl.TransportContext.handshakeContext:Lsun/security/ssl/HandshakeContext;
            ifnonnull 2
         1: .line 809
            aconst_null
            goto 3
      StackMap locals:
      StackMap stack:
         2: aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.conContext:Lsun/security/ssl/TransportContext;
            getfield sun.security.ssl.TransportContext.handshakeContext:Lsun/security/ssl/HandshakeContext;
            getfield sun.security.ssl.HandshakeContext.handshakeSession:Lsun/security/ssl/SSLSessionImpl;
         3: .line 808
      StackMap locals:
      StackMap stack: sun.security.ssl.SSLSessionImpl
            areturn
        end local 0 // sun.security.ssl.SSLEngineImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Lsun/security/ssl/SSLEngineImpl;

  public synchronized javax.net.ssl.SSLEngineResult$HandshakeStatus getHandshakeStatus();
    descriptor: ()Ljavax/net/ssl/SSLEngineResult$HandshakeStatus;
    flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // sun.security.ssl.SSLEngineImpl this
         0: .line 814
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.conContext:Lsun/security/ssl/TransportContext;
            invokevirtual sun.security.ssl.TransportContext.getHandshakeStatus:()Ljavax/net/ssl/SSLEngineResult$HandshakeStatus;
            areturn
        end local 0 // sun.security.ssl.SSLEngineImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lsun/security/ssl/SSLEngineImpl;

  public synchronized void setUseClientMode(boolean);
    descriptor: (Z)V
    flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // sun.security.ssl.SSLEngineImpl this
        start local 1 // boolean mode
         0: .line 819
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.conContext:Lsun/security/ssl/TransportContext;
            iload 1 /* mode */
            invokevirtual sun.security.ssl.TransportContext.setUseClientMode:(Z)V
         1: .line 820
            return
        end local 1 // boolean mode
        end local 0 // sun.security.ssl.SSLEngineImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lsun/security/ssl/SSLEngineImpl;
            0    2     1  mode  Z
    MethodParameters:
      Name  Flags
      mode  

  public synchronized boolean getUseClientMode();
    descriptor: ()Z
    flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // sun.security.ssl.SSLEngineImpl this
         0: .line 824
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.conContext:Lsun/security/ssl/TransportContext;
            getfield sun.security.ssl.TransportContext.sslConfig:Lsun/security/ssl/SSLConfiguration;
            getfield sun.security.ssl.SSLConfiguration.isClientMode:Z
            ireturn
        end local 0 // sun.security.ssl.SSLEngineImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lsun/security/ssl/SSLEngineImpl;

  public synchronized void setNeedClientAuth(boolean);
    descriptor: (Z)V
    flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // sun.security.ssl.SSLEngineImpl this
        start local 1 // boolean need
         0: .line 829
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.conContext:Lsun/security/ssl/TransportContext;
            getfield sun.security.ssl.TransportContext.sslConfig:Lsun/security/ssl/SSLConfiguration;
         1: .line 830
            iload 1 /* need */
            ifeq 2
            getstatic sun.security.ssl.ClientAuthType.CLIENT_AUTH_REQUIRED:Lsun/security/ssl/ClientAuthType;
            goto 3
         2: .line 831
      StackMap locals:
      StackMap stack: sun.security.ssl.SSLConfiguration
            getstatic sun.security.ssl.ClientAuthType.CLIENT_AUTH_NONE:Lsun/security/ssl/ClientAuthType;
         3: .line 829
      StackMap locals: sun.security.ssl.SSLEngineImpl int
      StackMap stack: sun.security.ssl.SSLConfiguration sun.security.ssl.ClientAuthType
            putfield sun.security.ssl.SSLConfiguration.clientAuthType:Lsun/security/ssl/ClientAuthType;
         4: .line 832
            return
        end local 1 // boolean need
        end local 0 // sun.security.ssl.SSLEngineImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0  this  Lsun/security/ssl/SSLEngineImpl;
            0    5     1  need  Z
    MethodParameters:
      Name  Flags
      need  

  public synchronized boolean getNeedClientAuth();
    descriptor: ()Z
    flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // sun.security.ssl.SSLEngineImpl this
         0: .line 836
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.conContext:Lsun/security/ssl/TransportContext;
            getfield sun.security.ssl.TransportContext.sslConfig:Lsun/security/ssl/SSLConfiguration;
            getfield sun.security.ssl.SSLConfiguration.clientAuthType:Lsun/security/ssl/ClientAuthType;
         1: .line 837
            getstatic sun.security.ssl.ClientAuthType.CLIENT_AUTH_REQUIRED:Lsun/security/ssl/ClientAuthType;
         2: .line 836
            if_acmpne 3
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         3: iconst_0
            ireturn
        end local 0 // sun.security.ssl.SSLEngineImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Lsun/security/ssl/SSLEngineImpl;

  public synchronized void setWantClientAuth(boolean);
    descriptor: (Z)V
    flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // sun.security.ssl.SSLEngineImpl this
        start local 1 // boolean want
         0: .line 842
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.conContext:Lsun/security/ssl/TransportContext;
            getfield sun.security.ssl.TransportContext.sslConfig:Lsun/security/ssl/SSLConfiguration;
         1: .line 843
            iload 1 /* want */
            ifeq 2
            getstatic sun.security.ssl.ClientAuthType.CLIENT_AUTH_REQUESTED:Lsun/security/ssl/ClientAuthType;
            goto 3
         2: .line 844
      StackMap locals:
      StackMap stack: sun.security.ssl.SSLConfiguration
            getstatic sun.security.ssl.ClientAuthType.CLIENT_AUTH_NONE:Lsun/security/ssl/ClientAuthType;
         3: .line 842
      StackMap locals: sun.security.ssl.SSLEngineImpl int
      StackMap stack: sun.security.ssl.SSLConfiguration sun.security.ssl.ClientAuthType
            putfield sun.security.ssl.SSLConfiguration.clientAuthType:Lsun/security/ssl/ClientAuthType;
         4: .line 845
            return
        end local 1 // boolean want
        end local 0 // sun.security.ssl.SSLEngineImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0  this  Lsun/security/ssl/SSLEngineImpl;
            0    5     1  want  Z
    MethodParameters:
      Name  Flags
      want  

  public synchronized boolean getWantClientAuth();
    descriptor: ()Z
    flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // sun.security.ssl.SSLEngineImpl this
         0: .line 849
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.conContext:Lsun/security/ssl/TransportContext;
            getfield sun.security.ssl.TransportContext.sslConfig:Lsun/security/ssl/SSLConfiguration;
            getfield sun.security.ssl.SSLConfiguration.clientAuthType:Lsun/security/ssl/ClientAuthType;
         1: .line 850
            getstatic sun.security.ssl.ClientAuthType.CLIENT_AUTH_REQUESTED:Lsun/security/ssl/ClientAuthType;
         2: .line 849
            if_acmpne 3
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         3: iconst_0
            ireturn
        end local 0 // sun.security.ssl.SSLEngineImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Lsun/security/ssl/SSLEngineImpl;

  public synchronized void setEnableSessionCreation(boolean);
    descriptor: (Z)V
    flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // sun.security.ssl.SSLEngineImpl this
        start local 1 // boolean flag
         0: .line 855
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.conContext:Lsun/security/ssl/TransportContext;
            getfield sun.security.ssl.TransportContext.sslConfig:Lsun/security/ssl/SSLConfiguration;
            iload 1 /* flag */
            putfield sun.security.ssl.SSLConfiguration.enableSessionCreation:Z
         1: .line 856
            return
        end local 1 // boolean flag
        end local 0 // sun.security.ssl.SSLEngineImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lsun/security/ssl/SSLEngineImpl;
            0    2     1  flag  Z
    MethodParameters:
      Name  Flags
      flag  

  public synchronized boolean getEnableSessionCreation();
    descriptor: ()Z
    flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // sun.security.ssl.SSLEngineImpl this
         0: .line 860
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.conContext:Lsun/security/ssl/TransportContext;
            getfield sun.security.ssl.TransportContext.sslConfig:Lsun/security/ssl/SSLConfiguration;
            getfield sun.security.ssl.SSLConfiguration.enableSessionCreation:Z
            ireturn
        end local 0 // sun.security.ssl.SSLEngineImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lsun/security/ssl/SSLEngineImpl;

  public synchronized javax.net.ssl.SSLParameters getSSLParameters();
    descriptor: ()Ljavax/net/ssl/SSLParameters;
    flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // sun.security.ssl.SSLEngineImpl this
         0: .line 865
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.conContext:Lsun/security/ssl/TransportContext;
            getfield sun.security.ssl.TransportContext.sslConfig:Lsun/security/ssl/SSLConfiguration;
            invokevirtual sun.security.ssl.SSLConfiguration.getSSLParameters:()Ljavax/net/ssl/SSLParameters;
            areturn
        end local 0 // sun.security.ssl.SSLEngineImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lsun/security/ssl/SSLEngineImpl;

  public synchronized void setSSLParameters(javax.net.ssl.SSLParameters);
    descriptor: (Ljavax/net/ssl/SSLParameters;)V
    flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // sun.security.ssl.SSLEngineImpl this
        start local 1 // javax.net.ssl.SSLParameters params
         0: .line 870
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.conContext:Lsun/security/ssl/TransportContext;
            getfield sun.security.ssl.TransportContext.sslConfig:Lsun/security/ssl/SSLConfiguration;
            aload 1 /* params */
            invokevirtual sun.security.ssl.SSLConfiguration.setSSLParameters:(Ljavax/net/ssl/SSLParameters;)V
         1: .line 872
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.conContext:Lsun/security/ssl/TransportContext;
            getfield sun.security.ssl.TransportContext.sslConfig:Lsun/security/ssl/SSLConfiguration;
            getfield sun.security.ssl.SSLConfiguration.maximumPacketSize:I
            ifeq 5
         2: .line 873
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.conContext:Lsun/security/ssl/TransportContext;
            getfield sun.security.ssl.TransportContext.outputRecord:Lsun/security/ssl/OutputRecord;
         3: .line 874
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.conContext:Lsun/security/ssl/TransportContext;
            getfield sun.security.ssl.TransportContext.sslConfig:Lsun/security/ssl/SSLConfiguration;
            getfield sun.security.ssl.SSLConfiguration.maximumPacketSize:I
         4: .line 873
            invokevirtual sun.security.ssl.OutputRecord.changePacketSize:(I)V
         5: .line 876
      StackMap locals:
      StackMap stack:
            return
        end local 1 // javax.net.ssl.SSLParameters params
        end local 0 // sun.security.ssl.SSLEngineImpl this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    6     0    this  Lsun/security/ssl/SSLEngineImpl;
            0    6     1  params  Ljavax/net/ssl/SSLParameters;
    MethodParameters:
        Name  Flags
      params  

  public synchronized java.lang.String getApplicationProtocol();
    descriptor: ()Ljava/lang/String;
    flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // sun.security.ssl.SSLEngineImpl this
         0: .line 880
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.conContext:Lsun/security/ssl/TransportContext;
            getfield sun.security.ssl.TransportContext.applicationProtocol:Ljava/lang/String;
            areturn
        end local 0 // sun.security.ssl.SSLEngineImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lsun/security/ssl/SSLEngineImpl;

  public synchronized java.lang.String getHandshakeApplicationProtocol();
    descriptor: ()Ljava/lang/String;
    flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // sun.security.ssl.SSLEngineImpl this
         0: .line 885
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.conContext:Lsun/security/ssl/TransportContext;
            getfield sun.security.ssl.TransportContext.handshakeContext:Lsun/security/ssl/HandshakeContext;
            ifnonnull 2
         1: .line 886
            aconst_null
            goto 3
      StackMap locals:
      StackMap stack:
         2: aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.conContext:Lsun/security/ssl/TransportContext;
            getfield sun.security.ssl.TransportContext.handshakeContext:Lsun/security/ssl/HandshakeContext;
            getfield sun.security.ssl.HandshakeContext.applicationProtocol:Ljava/lang/String;
         3: .line 885
      StackMap locals:
      StackMap stack: java.lang.String
            areturn
        end local 0 // sun.security.ssl.SSLEngineImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Lsun/security/ssl/SSLEngineImpl;

  public synchronized void setHandshakeApplicationProtocolSelector(java.util.function.BiFunction<javax.net.ssl.SSLEngine, java.util.List<java.lang.String>, java.lang.String>);
    descriptor: (Ljava/util/function/BiFunction;)V
    flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // sun.security.ssl.SSLEngineImpl this
        start local 1 // java.util.function.BiFunction selector
         0: .line 892
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.conContext:Lsun/security/ssl/TransportContext;
            getfield sun.security.ssl.TransportContext.sslConfig:Lsun/security/ssl/SSLConfiguration;
            aload 1 /* selector */
            putfield sun.security.ssl.SSLConfiguration.engineAPSelector:Ljava/util/function/BiFunction;
         1: .line 893
            return
        end local 1 // java.util.function.BiFunction selector
        end local 0 // sun.security.ssl.SSLEngineImpl this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    2     0      this  Lsun/security/ssl/SSLEngineImpl;
            0    2     1  selector  Ljava/util/function/BiFunction<Ljavax/net/ssl/SSLEngine;Ljava/util/List<Ljava/lang/String;>;Ljava/lang/String;>;
    Signature: (Ljava/util/function/BiFunction<Ljavax/net/ssl/SSLEngine;Ljava/util/List<Ljava/lang/String;>;Ljava/lang/String;>;)V
    MethodParameters:
          Name  Flags
      selector  

  public synchronized java.util.function.BiFunction<javax.net.ssl.SSLEngine, java.util.List<java.lang.String>, java.lang.String> getHandshakeApplicationProtocolSelector();
    descriptor: ()Ljava/util/function/BiFunction;
    flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // sun.security.ssl.SSLEngineImpl this
         0: .line 898
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.conContext:Lsun/security/ssl/TransportContext;
            getfield sun.security.ssl.TransportContext.sslConfig:Lsun/security/ssl/SSLConfiguration;
            getfield sun.security.ssl.SSLConfiguration.engineAPSelector:Ljava/util/function/BiFunction;
            areturn
        end local 0 // sun.security.ssl.SSLEngineImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lsun/security/ssl/SSLEngineImpl;
    Signature: ()Ljava/util/function/BiFunction<Ljavax/net/ssl/SSLEngine;Ljava/util/List<Ljava/lang/String;>;Ljava/lang/String;>;

  public boolean useDelegatedTask();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // sun.security.ssl.SSLEngineImpl this
         0: .line 903
            iconst_1
            ireturn
        end local 0 // sun.security.ssl.SSLEngineImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lsun/security/ssl/SSLEngineImpl;

  private synchronized void checkTaskThrown();
    descriptor: ()V
    flags: (0x0022) ACC_PRIVATE, ACC_SYNCHRONIZED
    Code:
      stack=2, locals=3, args_size=1
        start local 0 // sun.security.ssl.SSLEngineImpl this
         0: .line 914
            aconst_null
            astore 1 /* exc */
        start local 1 // java.lang.Exception exc
         1: .line 917
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.conContext:Lsun/security/ssl/TransportContext;
            getfield sun.security.ssl.TransportContext.handshakeContext:Lsun/security/ssl/HandshakeContext;
            astore 2 /* hc */
        start local 2 // sun.security.ssl.HandshakeContext hc
         2: .line 918
            aload 2 /* hc */
            ifnull 5
            aload 2 /* hc */
            getfield sun.security.ssl.HandshakeContext.delegatedThrown:Ljava/lang/Exception;
            ifnull 5
         3: .line 919
            aload 2 /* hc */
            getfield sun.security.ssl.HandshakeContext.delegatedThrown:Ljava/lang/Exception;
            astore 1 /* exc */
         4: .line 920
            aload 2 /* hc */
            aconst_null
            putfield sun.security.ssl.HandshakeContext.delegatedThrown:Ljava/lang/Exception;
         5: .line 931
      StackMap locals: java.lang.Exception sun.security.ssl.HandshakeContext
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.conContext:Lsun/security/ssl/TransportContext;
            getfield sun.security.ssl.TransportContext.delegatedThrown:Ljava/lang/Exception;
            ifnull 12
         6: .line 932
            aload 1 /* exc */
            ifnull 10
         7: .line 934
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.conContext:Lsun/security/ssl/TransportContext;
            getfield sun.security.ssl.TransportContext.delegatedThrown:Ljava/lang/Exception;
            aload 1 /* exc */
            if_acmpne 12
         8: .line 936
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.conContext:Lsun/security/ssl/TransportContext;
            aconst_null
            putfield sun.security.ssl.TransportContext.delegatedThrown:Ljava/lang/Exception;
         9: .line 938
            goto 12
        10: .line 941
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.conContext:Lsun/security/ssl/TransportContext;
            getfield sun.security.ssl.TransportContext.delegatedThrown:Ljava/lang/Exception;
            astore 1 /* exc */
        11: .line 942
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.conContext:Lsun/security/ssl/TransportContext;
            aconst_null
            putfield sun.security.ssl.TransportContext.delegatedThrown:Ljava/lang/Exception;
        12: .line 947
      StackMap locals:
      StackMap stack:
            aload 1 /* exc */
            ifnonnull 14
        13: .line 948
            return
        14: .line 952
      StackMap locals:
      StackMap stack:
            aload 1 /* exc */
            instanceof javax.net.ssl.SSLException
            ifeq 16
        15: .line 953
            aload 1 /* exc */
            checkcast javax.net.ssl.SSLException
            athrow
        16: .line 954
      StackMap locals:
      StackMap stack:
            aload 1 /* exc */
            instanceof java.lang.RuntimeException
            ifeq 18
        17: .line 955
            aload 1 /* exc */
            checkcast java.lang.RuntimeException
            athrow
        18: .line 957
      StackMap locals:
      StackMap stack:
            aload 1 /* exc */
            invokestatic sun.security.ssl.SSLEngineImpl.getTaskThrown:(Ljava/lang/Exception;)Ljavax/net/ssl/SSLException;
            athrow
        end local 2 // sun.security.ssl.HandshakeContext hc
        end local 1 // java.lang.Exception exc
        end local 0 // sun.security.ssl.SSLEngineImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   19     0  this  Lsun/security/ssl/SSLEngineImpl;
            1   19     1   exc  Ljava/lang/Exception;
            2   19     2    hc  Lsun/security/ssl/HandshakeContext;
    Exceptions:
      throws javax.net.ssl.SSLException

  private static javax.net.ssl.SSLException getTaskThrown(java.lang.Exception);
    descriptor: (Ljava/lang/Exception;)Ljavax/net/ssl/SSLException;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=4, locals=2, args_size=1
        start local 0 // java.lang.Exception taskThrown
         0: .line 962
            aload 0 /* taskThrown */
            invokevirtual java.lang.Exception.getMessage:()Ljava/lang/String;
            astore 1 /* msg */
        start local 1 // java.lang.String msg
         1: .line 964
            aload 1 /* msg */
            ifnonnull 3
         2: .line 965
            ldc "Delegated task threw Exception or Error"
            astore 1 /* msg */
         3: .line 968
      StackMap locals: java.lang.String
      StackMap stack:
            aload 0 /* taskThrown */
            instanceof java.lang.RuntimeException
            ifeq 5
         4: .line 969
            new java.lang.RuntimeException
            dup
            aload 1 /* msg */
            aload 0 /* taskThrown */
            invokespecial java.lang.RuntimeException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
            athrow
         5: .line 970
      StackMap locals:
      StackMap stack:
            aload 0 /* taskThrown */
            instanceof javax.net.ssl.SSLHandshakeException
            ifeq 8
         6: .line 972
            new javax.net.ssl.SSLHandshakeException
            dup
            aload 1 /* msg */
            invokespecial javax.net.ssl.SSLHandshakeException.<init>:(Ljava/lang/String;)V
            aload 0 /* taskThrown */
            invokevirtual javax.net.ssl.SSLHandshakeException.initCause:(Ljava/lang/Throwable;)Ljava/lang/Throwable;
         7: .line 971
            checkcast javax.net.ssl.SSLHandshakeException
            areturn
         8: .line 973
      StackMap locals:
      StackMap stack:
            aload 0 /* taskThrown */
            instanceof javax.net.ssl.SSLKeyException
            ifeq 11
         9: .line 975
            new javax.net.ssl.SSLKeyException
            dup
            aload 1 /* msg */
            invokespecial javax.net.ssl.SSLKeyException.<init>:(Ljava/lang/String;)V
            aload 0 /* taskThrown */
            invokevirtual javax.net.ssl.SSLKeyException.initCause:(Ljava/lang/Throwable;)Ljava/lang/Throwable;
        10: .line 974
            checkcast javax.net.ssl.SSLKeyException
            areturn
        11: .line 976
      StackMap locals:
      StackMap stack:
            aload 0 /* taskThrown */
            instanceof javax.net.ssl.SSLPeerUnverifiedException
            ifeq 14
        12: .line 978
            new javax.net.ssl.SSLPeerUnverifiedException
            dup
            aload 1 /* msg */
            invokespecial javax.net.ssl.SSLPeerUnverifiedException.<init>:(Ljava/lang/String;)V
            aload 0 /* taskThrown */
            invokevirtual javax.net.ssl.SSLPeerUnverifiedException.initCause:(Ljava/lang/Throwable;)Ljava/lang/Throwable;
        13: .line 977
            checkcast javax.net.ssl.SSLPeerUnverifiedException
            areturn
        14: .line 979
      StackMap locals:
      StackMap stack:
            aload 0 /* taskThrown */
            instanceof javax.net.ssl.SSLProtocolException
            ifeq 17
        15: .line 981
            new javax.net.ssl.SSLProtocolException
            dup
            aload 1 /* msg */
            invokespecial javax.net.ssl.SSLProtocolException.<init>:(Ljava/lang/String;)V
            aload 0 /* taskThrown */
            invokevirtual javax.net.ssl.SSLProtocolException.initCause:(Ljava/lang/Throwable;)Ljava/lang/Throwable;
        16: .line 980
            checkcast javax.net.ssl.SSLProtocolException
            areturn
        17: .line 982
      StackMap locals:
      StackMap stack:
            aload 0 /* taskThrown */
            instanceof javax.net.ssl.SSLException
            ifeq 19
        18: .line 983
            aload 0 /* taskThrown */
            checkcast javax.net.ssl.SSLException
            areturn
        19: .line 985
      StackMap locals:
      StackMap stack:
            new javax.net.ssl.SSLException
            dup
            aload 1 /* msg */
            aload 0 /* taskThrown */
            invokespecial javax.net.ssl.SSLException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
            areturn
        end local 1 // java.lang.String msg
        end local 0 // java.lang.Exception taskThrown
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   20     0  taskThrown  Ljava/lang/Exception;
            1   20     1         msg  Ljava/lang/String;
    MethodParameters:
            Name  Flags
      taskThrown  
}
SourceFile: "SSLEngineImpl.java"
NestMembers:
  sun.security.ssl.SSLEngineImpl$DelegatedTask  sun.security.ssl.SSLEngineImpl$DelegatedTask$DelegatedAction
InnerClasses:
  public final HandshakeStatus = javax.net.ssl.SSLEngineResult$HandshakeStatus of javax.net.ssl.SSLEngineResult
  public final Status = javax.net.ssl.SSLEngineResult$Status of javax.net.ssl.SSLEngineResult
  abstract SSLReadCipher = sun.security.ssl.SSLCipher$SSLReadCipher of sun.security.ssl.SSLCipher
  abstract SSLWriteCipher = sun.security.ssl.SSLCipher$SSLWriteCipher of sun.security.ssl.SSLCipher
  private DelegatedTask = sun.security.ssl.SSLEngineImpl$DelegatedTask of sun.security.ssl.SSLEngineImpl