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

  private final java.util.concurrent.locks.ReentrantLock engineLock;
    descriptor: Ljava/util/concurrent/locks/ReentrantLock;
    flags: (0x0012) ACC_PRIVATE, 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 68
            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 69
            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 76
            aload 0 /* this */
            aload 2 /* host */
            iload 3 /* port */
            invokespecial javax.net.ssl.SSLEngine.<init>:(Ljava/lang/String;I)V
         1: .line 58
            aload 0 /* this */
            new java.util.concurrent.locks.ReentrantLock
            dup
            invokespecial java.util.concurrent.locks.ReentrantLock.<init>:()V
            putfield sun.security.ssl.SSLEngineImpl.engineLock:Ljava/util/concurrent/locks/ReentrantLock;
         2: .line 77
            aload 0 /* this */
            aload 1 /* sslContext */
            putfield sun.security.ssl.SSLEngineImpl.sslContext:Lsun/security/ssl/SSLContextImpl;
         3: .line 78
            new sun.security.ssl.HandshakeHash
            dup
            invokespecial sun.security.ssl.HandshakeHash.<init>:()V
            astore 4 /* handshakeHash */
        start local 4 // sun.security.ssl.HandshakeHash handshakeHash
         4: .line 79
            aload 1 /* sslContext */
            invokevirtual sun.security.ssl.SSLContextImpl.isDTLS:()Z
            ifeq 10
         5: .line 80
            aload 0 /* this */
            new sun.security.ssl.TransportContext
            dup
            aload 1 /* sslContext */
            aload 0 /* this */
         6: .line 81
            new sun.security.ssl.DTLSInputRecord
            dup
            aload 4 /* handshakeHash */
            invokespecial sun.security.ssl.DTLSInputRecord.<init>:(Lsun/security/ssl/HandshakeHash;)V
         7: .line 82
            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
         8: .line 80
            putfield sun.security.ssl.SSLEngineImpl.conContext:Lsun/security/ssl/TransportContext;
         9: .line 83
            goto 14
        10: .line 84
      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 */
        11: .line 85
            new sun.security.ssl.SSLEngineInputRecord
            dup
            aload 4 /* handshakeHash */
            invokespecial sun.security.ssl.SSLEngineInputRecord.<init>:(Lsun/security/ssl/HandshakeHash;)V
        12: .line 86
            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
        13: .line 84
            putfield sun.security.ssl.SSLEngineImpl.conContext:Lsun/security/ssl/TransportContext;
        14: .line 90
      StackMap locals:
      StackMap stack:
            aload 2 /* host */
            ifnull 19
        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;
        16: .line 93
            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 */
        17: .line 92
            invokestatic sun.security.ssl.Utilities.addToSNIServerNameList:(Ljava/util/List;Ljava/lang/String;)Ljava/util/List;
        18: .line 91
            putfield sun.security.ssl.SSLConfiguration.serverNames:Ljava/util/List;
        19: .line 95
      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   20     0           this  Lsun/security/ssl/SSLEngineImpl;
            0   20     1     sslContext  Lsun/security/ssl/SSLContextImpl;
            0   20     2           host  Ljava/lang/String;
            0   20     3           port  I
            4   20     4  handshakeHash  Lsun/security/ssl/HandshakeHash;
    MethodParameters:
            Name  Flags
      sslContext  
      host        
      port        

  public void beginHandshake();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=3, args_size=1
        start local 0 // sun.security.ssl.SSLEngineImpl this
         0: .line 99
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.engineLock:Ljava/util/concurrent/locks/ReentrantLock;
            invokevirtual java.util.concurrent.locks.ReentrantLock.lock:()V
         1: .line 101
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.conContext:Lsun/security/ssl/TransportContext;
            getfield sun.security.ssl.TransportContext.isUnsureMode:Z
            ifeq 5
         2: .line 102
            new java.lang.IllegalStateException
            dup
         3: .line 103
            ldc "Client/Server mode has not yet been set."
         4: .line 102
            invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
            athrow
         5: .line 107
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.conContext:Lsun/security/ssl/TransportContext;
            invokevirtual sun.security.ssl.TransportContext.kickstart:()V
         6: .line 108
            goto 18
      StackMap locals:
      StackMap stack: java.io.IOException
         7: astore 1 /* ioe */
        start local 1 // java.io.IOException ioe
         8: .line 109
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.conContext:Lsun/security/ssl/TransportContext;
            getstatic sun.security.ssl.Alert.HANDSHAKE_FAILURE:Lsun/security/ssl/Alert;
         9: .line 110
            ldc "Couldn't kickstart handshaking"
            aload 1 /* ioe */
        10: .line 109
            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
        11: .line 111
      StackMap locals:
      StackMap stack: java.lang.Exception
            astore 1 /* ex */
        start local 1 // java.lang.Exception ex
        12: .line 112
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.conContext:Lsun/security/ssl/TransportContext;
            getstatic sun.security.ssl.Alert.INTERNAL_ERROR:Lsun/security/ssl/Alert;
        13: .line 113
            ldc "Fail to begin handshake"
            aload 1 /* ex */
        14: .line 112
            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
        15: .line 115
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 2
        16: .line 116
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.engineLock:Ljava/util/concurrent/locks/ReentrantLock;
            invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
        17: .line 117
            aload 2
            athrow
        18: .line 116
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.engineLock:Ljava/util/concurrent/locks/ReentrantLock;
            invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
        19: .line 118
            return
        end local 0 // sun.security.ssl.SSLEngineImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   20     0  this  Lsun/security/ssl/SSLEngineImpl;
            8   11     1   ioe  Ljava/io/IOException;
           12   15     1    ex  Ljava/lang/Exception;
      Exception table:
        from    to  target  type
           5     6       7  Class java.io.IOException
           5     6      11  Class java.lang.Exception
           1    15      15  any
    Exceptions:
      throws javax.net.ssl.SSLException

  public 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: (0x0001) ACC_PUBLIC
    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 123
            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 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: (0x0001) ACC_PUBLIC
    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 131
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.engineLock:Ljava/util/concurrent/locks/ReentrantLock;
            invokevirtual java.util.concurrent.locks.ReentrantLock.lock:()V
         1: .line 133
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.conContext:Lsun/security/ssl/TransportContext;
            getfield sun.security.ssl.TransportContext.isUnsureMode:Z
            ifeq 5
         2: .line 134
            new java.lang.IllegalStateException
            dup
         3: .line 135
            ldc "Client/Server mode has not yet been set."
         4: .line 134
            invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
            athrow
         5: .line 139
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual sun.security.ssl.SSLEngineImpl.checkTaskThrown:()V
         6: .line 142
            aload 1 /* srcs */
            iload 2 /* srcsOffset */
            iload 3 /* srcsLength */
         7: .line 143
            aload 4 /* dsts */
            iload 5 /* dstsOffset */
            iload 6 /* dstsLength */
         8: .line 142
            invokestatic sun.security.ssl.SSLEngineImpl.checkParams:([Ljava/nio/ByteBuffer;II[Ljava/nio/ByteBuffer;II)V
         9: .line 146
            aload 0 /* this */
        10: .line 147
            aload 1 /* srcs */
            iload 2 /* srcsOffset */
            iload 3 /* srcsLength */
            aload 4 /* dsts */
            iload 5 /* dstsOffset */
            iload 6 /* dstsLength */
        11: .line 146
            invokevirtual sun.security.ssl.SSLEngineImpl.writeRecord:([Ljava/nio/ByteBuffer;II[Ljava/nio/ByteBuffer;II)Ljavax/net/ssl/SSLEngineResult;
            astore 9
        12: .line 159
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.engineLock:Ljava/util/concurrent/locks/ReentrantLock;
            invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
        13: .line 146
            aload 9
            areturn
        14: .line 148
      StackMap locals:
      StackMap stack: javax.net.ssl.SSLProtocolException
            astore 7 /* spe */
        start local 7 // javax.net.ssl.SSLProtocolException spe
        15: .line 150
            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
        16: .line 151
      StackMap locals:
      StackMap stack: java.io.IOException
            astore 7 /* ioe */
        start local 7 // java.io.IOException ioe
        17: .line 152
            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 153
            ldc "problem wrapping app data"
            aload 7 /* ioe */
        19: .line 152
            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
        20: .line 154
      StackMap locals:
      StackMap stack: java.lang.Exception
            astore 7 /* ex */
        start local 7 // java.lang.Exception ex
        21: .line 155
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.conContext:Lsun/security/ssl/TransportContext;
            getstatic sun.security.ssl.Alert.INTERNAL_ERROR:Lsun/security/ssl/Alert;
        22: .line 156
            ldc "Fail to wrap application data"
            aload 7 /* ex */
        23: .line 155
            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
        24: .line 158
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 8
        25: .line 159
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.engineLock:Ljava/util/concurrent/locks/ReentrantLock;
            invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
        26: .line 160
            aload 8
            athrow
        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   27     0        this  Lsun/security/ssl/SSLEngineImpl;
            0   27     1        srcs  [Ljava/nio/ByteBuffer;
            0   27     2  srcsOffset  I
            0   27     3  srcsLength  I
            0   27     4        dsts  [Ljava/nio/ByteBuffer;
            0   27     5  dstsOffset  I
            0   27     6  dstsLength  I
           15   16     7         spe  Ljavax/net/ssl/SSLProtocolException;
           17   20     7         ioe  Ljava/io/IOException;
           21   24     7          ex  Ljava/lang/Exception;
      Exception table:
        from    to  target  type
           9    12      14  Class javax.net.ssl.SSLProtocolException
           9    12      16  Class java.io.IOException
           9    12      20  Class java.lang.Exception
           1    12      24  any
          14    24      24  any
    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 168
            aload 0 /* this */
            invokevirtual sun.security.ssl.SSLEngineImpl.isOutboundDone:()Z
            ifeq 4
         1: .line 169
            new javax.net.ssl.SSLEngineResult
            dup
         2: .line 170
            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 169
            invokespecial javax.net.ssl.SSLEngineResult.<init>:(Ljavax/net/ssl/SSLEngineResult$Status;Ljavax/net/ssl/SSLEngineResult$HandshakeStatus;II)V
            areturn
         4: .line 173
      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 174
            aconst_null
            astore 8 /* hsStatus */
        start local 8 // javax.net.ssl.SSLEngineResult$HandshakeStatus hsStatus
         6: .line 175
            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 176
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.conContext:Lsun/security/ssl/TransportContext;
            invokevirtual sun.security.ssl.TransportContext.isInboundClosed:()Z
            ifne 16
         8: .line 177
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.conContext:Lsun/security/ssl/TransportContext;
            invokevirtual sun.security.ssl.TransportContext.isOutboundClosed:()Z
            ifne 16
         9: .line 178
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.conContext:Lsun/security/ssl/TransportContext;
            invokevirtual sun.security.ssl.TransportContext.kickstart:()V
        10: .line 180
            aload 0 /* this */
            invokevirtual sun.security.ssl.SSLEngineImpl.getHandshakeStatus:()Ljavax/net/ssl/SSLEngineResult$HandshakeStatus;
            astore 8 /* hsStatus */
        11: .line 181
            aload 8 /* hsStatus */
            getstatic javax.net.ssl.SSLEngineResult$HandshakeStatus.NEED_UNWRAP:Ljavax/net/ssl/SSLEngineResult$HandshakeStatus;
            if_acmpne 16
        12: .line 188
            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 189
            aload 7 /* hc */
            getfield sun.security.ssl.HandshakeContext.sslConfig:Lsun/security/ssl/SSLConfiguration;
            getfield sun.security.ssl.SSLConfiguration.enableRetransmissions:Z
            ifeq 15
        14: .line 190
            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 192
      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 197
      StackMap locals:
      StackMap stack:
            aload 8 /* hsStatus */
            ifnonnull 18
        17: .line 198
            aload 0 /* this */
            invokevirtual sun.security.ssl.SSLEngineImpl.getHandshakeStatus:()Ljavax/net/ssl/SSLEngineResult$HandshakeStatus;
            astore 8 /* hsStatus */
        18: .line 207
      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 208
            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 211
      StackMap locals:
      StackMap stack:
            iconst_0
            istore 9 /* dstsRemains */
        start local 9 // int dstsRemains
        21: .line 212
            iload 5 /* dstsOffset */
            istore 10 /* i */
        start local 10 // int i
        22: goto 25
        23: .line 213
      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 212
            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 220
            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 221
            new javax.net.ssl.SSLEngineResult
            dup
        28: .line 222
            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 221
            invokespecial javax.net.ssl.SSLEngineResult.<init>:(Ljavax/net/ssl/SSLEngineResult$Status;Ljavax/net/ssl/SSLEngineResult$HandshakeStatus;II)V
            areturn
        30: .line 225
      StackMap locals:
      StackMap stack:
            iconst_0
            istore 10 /* srcsRemains */
        start local 10 // int srcsRemains
        31: .line 226
            iload 2 /* srcsOffset */
            istore 11 /* i */
        start local 11 // int i
        32: goto 35
        33: .line 227
      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 226
            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 230
            aconst_null
            astore 11 /* ciphertext */
        start local 11 // sun.security.ssl.Ciphertext ciphertext
        37: .line 235
            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 236
            aload 7 /* hc */
            getfield sun.security.ssl.HandshakeContext.sslConfig:Lsun/security/ssl/SSLConfiguration;
            getfield sun.security.ssl.SSLConfiguration.enableRetransmissions:Z
            ifeq 44
        39: .line 237
            aload 7 /* hc */
            getfield sun.security.ssl.HandshakeContext.sslContext:Lsun/security/ssl/SSLContextImpl;
            invokevirtual sun.security.ssl.SSLContextImpl.isDTLS:()Z
            ifeq 44
        40: .line 238
            aload 8 /* hsStatus */
            getstatic javax.net.ssl.SSLEngineResult$HandshakeStatus.NEED_UNWRAP:Ljavax/net/ssl/SSLEngineResult$HandshakeStatus;
            if_acmpne 44
        41: .line 239
      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 240
            aload 4 /* dsts */
            iload 5 /* dstsOffset */
            iload 6 /* dstsLength */
        43: .line 239
            invokevirtual sun.security.ssl.SSLEngineImpl.encode:([Ljava/nio/ByteBuffer;II[Ljava/nio/ByteBuffer;II)Lsun/security/ssl/Ciphertext;
            astore 11 /* ciphertext */
        44: .line 243
      StackMap locals:
      StackMap stack:
            aload 11 /* ciphertext */
            ifnonnull 53
            iload 10 /* srcsRemains */
            ifeq 53
        45: .line 244
            aload 0 /* this */
            aload 1 /* srcs */
            iload 2 /* srcsOffset */
            iload 3 /* srcsLength */
        46: .line 245
            aload 4 /* dsts */
            iload 5 /* dstsOffset */
            iload 6 /* dstsLength */
        47: .line 244
            invokevirtual sun.security.ssl.SSLEngineImpl.encode:([Ljava/nio/ByteBuffer;II[Ljava/nio/ByteBuffer;II)Lsun/security/ssl/Ciphertext;
            astore 11 /* ciphertext */
        48: .line 247
            goto 53
      StackMap locals:
      StackMap stack: java.io.IOException
        49: astore 12 /* ioe */
        start local 12 // java.io.IOException ioe
        50: .line 248
            aload 12 /* ioe */
            instanceof javax.net.ssl.SSLException
            ifeq 52
        51: .line 249
            aload 12 /* ioe */
            athrow
        52: .line 251
      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 258
      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 259
            aload 11 /* ciphertext */
            ifnull 59
            aload 11 /* ciphertext */
            getfield sun.security.ssl.Ciphertext.handshakeStatus:Ljavax/net/ssl/SSLEngineResult$HandshakeStatus;
            ifnull 59
        57: .line 260
            aload 11 /* ciphertext */
            getfield sun.security.ssl.Ciphertext.handshakeStatus:Ljavax/net/ssl/SSLEngineResult$HandshakeStatus;
            astore 8 /* hsStatus */
        58: .line 261
            goto 64
        59: .line 262
      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 263
            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 264
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.conContext:Lsun/security/ssl/TransportContext;
            invokevirtual sun.security.ssl.TransportContext.isInboundClosed:()Z
            ifeq 64
        62: .line 265
            aload 8 /* hsStatus */
            getstatic javax.net.ssl.SSLEngineResult$HandshakeStatus.NEED_WRAP:Ljavax/net/ssl/SSLEngineResult$HandshakeStatus;
            if_acmpne 64
        63: .line 274
            getstatic javax.net.ssl.SSLEngineResult$Status.CLOSED:Ljavax/net/ssl/SSLEngineResult$Status;
            astore 12 /* status */
        64: .line 278
      StackMap locals:
      StackMap stack:
            iload 10 /* srcsRemains */
            istore 13 /* deltaSrcs */
        start local 13 // int deltaSrcs
        65: .line 279
            iload 2 /* srcsOffset */
            istore 14 /* i */
        start local 14 // int i
        66: goto 69
        67: .line 280
      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 279
            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 283
            iload 9 /* dstsRemains */
            istore 14 /* deltaDsts */
        start local 14 // int deltaDsts
        71: .line 284
            iload 5 /* dstsOffset */
            istore 15 /* i */
        start local 15 // int i
        72: goto 75
        73: .line 285
      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 284
            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 288
            new javax.net.ssl.SSLEngineResult
            dup
            aload 12 /* status */
            aload 8 /* hsStatus */
            iload 13 /* deltaSrcs */
            iload 14 /* deltaDsts */
        77: .line 289
            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 288
      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 296
            aconst_null
            astore 7 /* ciphertext */
        start local 7 // sun.security.ssl.Ciphertext ciphertext
         1: .line 298
            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 299
            aload 1 /* srcs */
            iload 2 /* srcsOffset */
            iload 3 /* srcsLength */
            aload 4 /* dsts */
            iload 5 /* dstsOffset */
            iload 6 /* dstsLength */
         3: .line 298
            invokevirtual sun.security.ssl.OutputRecord.encode:([Ljava/nio/ByteBuffer;II[Ljava/nio/ByteBuffer;II)Lsun/security/ssl/Ciphertext;
            astore 7 /* ciphertext */
         4: .line 300
            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 302
            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 303
      StackMap locals:
      StackMap stack: java.io.IOException
            astore 8 /* e */
        start local 8 // java.io.IOException e
         8: .line 304
            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 307
      StackMap locals:
      StackMap stack:
            aload 7 /* ciphertext */
            ifnonnull 11
        10: .line 308
            aconst_null
            areturn
        11: .line 313
      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 314
            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 315
            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 312
            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 317
            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 316
            astore 9 /* hsStatus */
        start local 9 // javax.net.ssl.SSLEngineResult$HandshakeStatus hsStatus
        19: .line 318
            iload 8 /* needRetransmission */
            ifeq 27
        20: .line 319
            aload 9 /* hsStatus */
            getstatic javax.net.ssl.SSLEngineResult$HandshakeStatus.FINISHED:Ljavax/net/ssl/SSLEngineResult$HandshakeStatus;
            if_acmpne 27
        21: .line 320
            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 321
            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 329
            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 330
            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 333
      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 334
            getstatic javax.net.ssl.SSLEngineResult$HandshakeStatus.NEED_WRAP:Ljavax/net/ssl/SSLEngineResult$HandshakeStatus;
            astore 9 /* hsStatus */
        27: .line 337
      StackMap locals:
      StackMap stack:
            aload 9 /* hsStatus */
            ifnonnull 29
        28: .line 338
            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 342
      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 343
            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 344
      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 348
      StackMap locals:
      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;
            getfield sun.security.ssl.SSLSessionImpl.updateNST:Z
            ifeq 35
        33: .line 349
            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
            ifne 35
        34: .line 350
            aload 0 /* this */
            aload 9 /* hsStatus */
            invokevirtual sun.security.ssl.SSLEngineImpl.tryNewSessionTicket:(Ljavax/net/ssl/SSLEngineResult$HandshakeStatus;)Ljavax/net/ssl/SSLEngineResult$HandshakeStatus;
            astore 9 /* hsStatus */
        35: .line 354
      StackMap locals:
      StackMap stack:
            aload 7 /* ciphertext */
            aload 9 /* hsStatus */
            putfield sun.security.ssl.Ciphertext.handshakeStatus:Ljavax/net/ssl/SSLEngineResult$HandshakeStatus;
        36: .line 356
            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   37     0                this  Lsun/security/ssl/SSLEngineImpl;
            0   37     1                srcs  [Ljava/nio/ByteBuffer;
            0   37     2          srcsOffset  I
            0   37     3          srcsLength  I
            0   37     4                dsts  [Ljava/nio/ByteBuffer;
            0   37     5          dstsOffset  I
            0   37     6          dstsLength  I
            1   37     7          ciphertext  Lsun/security/ssl/Ciphertext;
            6    7     8                 she  Ljavax/net/ssl/SSLHandshakeException;
            8    9     8                   e  Ljava/io/IOException;
           17   37     8  needRetransmission  Z
           19   37     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 360
            aconst_null
            astore 2 /* hsStatus */
        start local 2 // javax.net.ssl.SSLEngineResult$HandshakeStatus hsStatus
         1: .line 361
            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 362
            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 363
            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 364
            getstatic javax.net.ssl.SSLEngineResult$HandshakeStatus.FINISHED:Ljavax/net/ssl/SSLEngineResult$HandshakeStatus;
            astore 2 /* hsStatus */
         5: .line 365
            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 367
            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 368
            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 369
            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 373
      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 392
            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 393
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.conContext:Lsun/security/ssl/TransportContext;
            invokevirtual sun.security.ssl.TransportContext.isOutboundClosed:()Z
            ifne 8
         2: .line 394
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.conContext:Lsun/security/ssl/TransportContext;
            invokevirtual sun.security.ssl.TransportContext.isInboundClosed:()Z
            ifne 8
         3: .line 395
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.conContext:Lsun/security/ssl/TransportContext;
            getfield sun.security.ssl.TransportContext.isBroken:Z
            ifne 8
         4: .line 396
            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 397
            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 399
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual sun.security.ssl.SSLEngineImpl.beginHandshake:()V
         7: .line 400
            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 403
      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 javax.net.ssl.SSLEngineResult$HandshakeStatus tryNewSessionTicket(javax.net.ssl.SSLEngineResult$HandshakeStatus);
    descriptor: (Ljavax/net/ssl/SSLEngineResult$HandshakeStatus;)Ljavax/net/ssl/SSLEngineResult$HandshakeStatus;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // sun.security.ssl.SSLEngineImpl this
        start local 1 // javax.net.ssl.SSLEngineResult$HandshakeStatus currentHandshakeStatus
         0: .line 412
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.conContext:Lsun/security/ssl/TransportContext;
            getfield sun.security.ssl.TransportContext.handshakeContext:Lsun/security/ssl/HandshakeContext;
            ifnonnull 12
         1: .line 413
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.conContext:Lsun/security/ssl/TransportContext;
            getfield sun.security.ssl.TransportContext.protocolVersion:Lsun/security/ssl/ProtocolVersion;
            invokevirtual sun.security.ssl.ProtocolVersion.useTLS13PlusSpec:()Z
            ifeq 12
         2: .line 414
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.conContext:Lsun/security/ssl/TransportContext;
            invokevirtual sun.security.ssl.TransportContext.isOutboundClosed:()Z
            ifne 12
         3: .line 415
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.conContext:Lsun/security/ssl/TransportContext;
            invokevirtual sun.security.ssl.TransportContext.isInboundClosed:()Z
            ifne 12
         4: .line 416
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.conContext:Lsun/security/ssl/TransportContext;
            getfield sun.security.ssl.TransportContext.isBroken:Z
            ifne 12
         5: .line 417
            getstatic sun.security.ssl.SSLLogger.isOn:Z
            ifeq 7
            ldc "ssl"
            invokestatic sun.security.ssl.SSLLogger.isOn:(Ljava/lang/String;)Z
            ifeq 7
         6: .line 418
            ldc "trigger NST"
            iconst_0
            anewarray java.lang.Object
            invokestatic sun.security.ssl.SSLLogger.finest:(Ljava/lang/String;[Ljava/lang/Object;)V
         7: .line 420
      StackMap locals:
      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;
            iconst_0
            putfield sun.security.ssl.SSLSessionImpl.updateNST:Z
         8: .line 421
            getstatic sun.security.ssl.NewSessionTicket.kickstartProducer:Lsun/security/ssl/SSLProducer;
         9: .line 422
            new sun.security.ssl.PostHandshakeContext
            dup
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.conContext:Lsun/security/ssl/TransportContext;
            invokespecial sun.security.ssl.PostHandshakeContext.<init>:(Lsun/security/ssl/TransportContext;)V
        10: .line 421
            invokeinterface sun.security.ssl.SSLProducer.produce:(Lsun/security/ssl/ConnectionContext;)[B
            pop
        11: .line 423
            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
        12: .line 426
      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   13     0                    this  Lsun/security/ssl/SSLEngineImpl;
            0   13     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 433
            aload 0 /* srcs */
            ifnull 1
            aload 3 /* dsts */
            ifnonnull 4
         1: .line 434
      StackMap locals:
      StackMap stack:
            new java.lang.IllegalArgumentException
            dup
         2: .line 435
            ldc "source or destination buffer is null"
         3: .line 434
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         4: .line 438
      StackMap locals:
      StackMap stack:
            iload 4 /* dstsOffset */
            iflt 6
            iload 5 /* dstsLength */
            iflt 6
         5: .line 439
            iload 4 /* dstsOffset */
            aload 3 /* dsts */
            arraylength
            iload 5 /* dstsLength */
            isub
            if_icmple 9
         6: .line 440
      StackMap locals:
      StackMap stack:
            new java.lang.IndexOutOfBoundsException
            dup
         7: .line 441
            ldc "index out of bound of the destination buffers"
         8: .line 440
            invokespecial java.lang.IndexOutOfBoundsException.<init>:(Ljava/lang/String;)V
            athrow
         9: .line 444
      StackMap locals:
      StackMap stack:
            iload 1 /* srcsOffset */
            iflt 11
            iload 2 /* srcsLength */
            iflt 11
        10: .line 445
            iload 1 /* srcsOffset */
            aload 0 /* srcs */
            arraylength
            iload 2 /* srcsLength */
            isub
            if_icmple 14
        11: .line 446
      StackMap locals:
      StackMap stack:
            new java.lang.IndexOutOfBoundsException
            dup
        12: .line 447
            ldc "index out of bound of the source buffers"
        13: .line 446
            invokespecial java.lang.IndexOutOfBoundsException.<init>:(Ljava/lang/String;)V
            athrow
        14: .line 450
      StackMap locals:
      StackMap stack:
            iload 4 /* dstsOffset */
            istore 6 /* i */
        start local 6 // int i
        15: goto 23
        16: .line 451
      StackMap locals: int
      StackMap stack:
            aload 3 /* dsts */
            iload 6 /* i */
            aaload
            ifnonnull 20
        17: .line 452
            new java.lang.IllegalArgumentException
            dup
        18: .line 453
            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 452
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
        20: .line 459
      StackMap locals:
      StackMap stack:
            aload 3 /* dsts */
            iload 6 /* i */
            aaload
            invokevirtual java.nio.ByteBuffer.isReadOnly:()Z
            ifeq 22
        21: .line 460
            new java.nio.ReadOnlyBufferException
            dup
            invokespecial java.nio.ReadOnlyBufferException.<init>:()V
            athrow
        22: .line 450
      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 464
            iload 1 /* srcsOffset */
            istore 6 /* i */
        start local 6 // int i
        25: goto 31
        26: .line 465
      StackMap locals:
      StackMap stack:
            aload 0 /* srcs */
            iload 6 /* i */
            aaload
            ifnonnull 30
        27: .line 466
            new java.lang.IllegalArgumentException
            dup
        28: .line 467
            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 466
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
        30: .line 464
      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 470
            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 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: (0x0001) ACC_PUBLIC
    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 475
            aload 0 /* this */
         1: .line 476
            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 475
            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 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: (0x0001) ACC_PUBLIC
    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 484
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.engineLock:Ljava/util/concurrent/locks/ReentrantLock;
            invokevirtual java.util.concurrent.locks.ReentrantLock.lock:()V
         1: .line 486
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.conContext:Lsun/security/ssl/TransportContext;
            getfield sun.security.ssl.TransportContext.isUnsureMode:Z
            ifeq 5
         2: .line 487
            new java.lang.IllegalStateException
            dup
         3: .line 488
            ldc "Client/Server mode has not yet been set."
         4: .line 487
            invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
            athrow
         5: .line 492
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual sun.security.ssl.SSLEngineImpl.checkTaskThrown:()V
         6: .line 495
            aload 1 /* srcs */
            iload 2 /* srcsOffset */
            iload 3 /* srcsLength */
         7: .line 496
            aload 4 /* dsts */
            iload 5 /* dstsOffset */
            iload 6 /* dstsLength */
         8: .line 495
            invokestatic sun.security.ssl.SSLEngineImpl.checkParams:([Ljava/nio/ByteBuffer;II[Ljava/nio/ByteBuffer;II)V
         9: .line 499
            aload 0 /* this */
        10: .line 500
            aload 1 /* srcs */
            iload 2 /* srcsOffset */
            iload 3 /* srcsLength */
            aload 4 /* dsts */
            iload 5 /* dstsOffset */
            iload 6 /* dstsLength */
        11: .line 499
            invokevirtual sun.security.ssl.SSLEngineImpl.readRecord:([Ljava/nio/ByteBuffer;II[Ljava/nio/ByteBuffer;II)Ljavax/net/ssl/SSLEngineResult;
            astore 9
        12: .line 519
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.engineLock:Ljava/util/concurrent/locks/ReentrantLock;
            invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
        13: .line 499
            aload 9
            areturn
        14: .line 501
      StackMap locals:
      StackMap stack: javax.net.ssl.SSLProtocolException
            astore 7 /* spe */
        start local 7 // javax.net.ssl.SSLProtocolException spe
        15: .line 503
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.conContext:Lsun/security/ssl/TransportContext;
            getstatic sun.security.ssl.Alert.UNEXPECTED_MESSAGE:Lsun/security/ssl/Alert;
        16: .line 504
            aload 7 /* spe */
            invokevirtual javax.net.ssl.SSLProtocolException.getMessage:()Ljava/lang/String;
            aload 7 /* spe */
        17: .line 503
            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
        18: .line 505
      StackMap locals:
      StackMap stack: java.io.IOException
            astore 7 /* ioe */
        start local 7 // java.io.IOException ioe
        19: .line 512
            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 513
            ldc "problem unwrapping net record"
            aload 7 /* ioe */
        21: .line 512
            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
        22: .line 514
      StackMap locals:
      StackMap stack: java.lang.Exception
            astore 7 /* ex */
        start local 7 // java.lang.Exception ex
        23: .line 515
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.conContext:Lsun/security/ssl/TransportContext;
            getstatic sun.security.ssl.Alert.INTERNAL_ERROR:Lsun/security/ssl/Alert;
        24: .line 516
            ldc "Fail to unwrap network record"
            aload 7 /* ex */
        25: .line 515
            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
        26: .line 518
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 8
        27: .line 519
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.engineLock:Ljava/util/concurrent/locks/ReentrantLock;
            invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
        28: .line 520
            aload 8
            athrow
        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   29     0        this  Lsun/security/ssl/SSLEngineImpl;
            0   29     1        srcs  [Ljava/nio/ByteBuffer;
            0   29     2  srcsOffset  I
            0   29     3  srcsLength  I
            0   29     4        dsts  [Ljava/nio/ByteBuffer;
            0   29     5  dstsOffset  I
            0   29     6  dstsLength  I
           15   18     7         spe  Ljavax/net/ssl/SSLProtocolException;
           19   22     7         ioe  Ljava/io/IOException;
           23   26     7          ex  Ljava/lang/Exception;
      Exception table:
        from    to  target  type
           9    12      14  Class javax.net.ssl.SSLProtocolException
           9    12      18  Class java.io.IOException
           9    12      22  Class java.lang.Exception
           1    12      26  any
          14    26      26  any
    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 530
            aload 0 /* this */
            invokevirtual sun.security.ssl.SSLEngineImpl.isInboundDone:()Z
            ifeq 4
         1: .line 531
            new javax.net.ssl.SSLEngineResult
            dup
         2: .line 532
            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 531
            invokespecial javax.net.ssl.SSLEngineResult.<init>:(Ljavax/net/ssl/SSLEngineResult$Status;Ljavax/net/ssl/SSLEngineResult$HandshakeStatus;II)V
            areturn
         4: .line 535
      StackMap locals:
      StackMap stack:
            aconst_null
            astore 7 /* hsStatus */
        start local 7 // javax.net.ssl.SSLEngineResult$HandshakeStatus hsStatus
         5: .line 536
            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 537
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.conContext:Lsun/security/ssl/TransportContext;
            invokevirtual sun.security.ssl.TransportContext.isInboundClosed:()Z
            ifne 12
         7: .line 538
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.conContext:Lsun/security/ssl/TransportContext;
            invokevirtual sun.security.ssl.TransportContext.isOutboundClosed:()Z
            ifne 12
         8: .line 539
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.conContext:Lsun/security/ssl/TransportContext;
            invokevirtual sun.security.ssl.TransportContext.kickstart:()V
         9: .line 545
            aload 0 /* this */
            invokevirtual sun.security.ssl.SSLEngineImpl.getHandshakeStatus:()Ljavax/net/ssl/SSLEngineResult$HandshakeStatus;
            astore 7 /* hsStatus */
        10: .line 546
            aload 7 /* hsStatus */
            getstatic javax.net.ssl.SSLEngineResult$HandshakeStatus.NEED_WRAP:Ljavax/net/ssl/SSLEngineResult$HandshakeStatus;
            if_acmpne 12
        11: .line 547
            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 551
      StackMap locals: javax.net.ssl.SSLEngineResult$HandshakeStatus
      StackMap stack:
            aload 7 /* hsStatus */
            ifnonnull 14
        13: .line 552
            aload 0 /* this */
            invokevirtual sun.security.ssl.SSLEngineImpl.getHandshakeStatus:()Ljavax/net/ssl/SSLEngineResult$HandshakeStatus;
            astore 7 /* hsStatus */
        14: .line 561
      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 562
            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 565
      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 566
            aconst_null
            astore 8 /* plainText */
        start local 8 // sun.security.ssl.Plaintext plainText
        18: .line 568
            aload 0 /* this */
            aconst_null
            iconst_0
            iconst_0
        19: .line 569
            aload 4 /* dsts */
            iload 5 /* dstsOffset */
            iload 6 /* dstsLength */
        20: .line 568
            invokevirtual sun.security.ssl.SSLEngineImpl.decode:([Ljava/nio/ByteBuffer;II[Ljava/nio/ByteBuffer;II)Lsun/security/ssl/Plaintext;
            astore 8 /* plainText */
        21: .line 570
            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 571
            aload 9 /* ioe */
            instanceof javax.net.ssl.SSLException
            ifeq 25
        24: .line 572
            aload 9 /* ioe */
            athrow
        25: .line 574
      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 578
      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 579
            aload 8 /* plainText */
            getfield sun.security.ssl.Plaintext.handshakeStatus:Ljavax/net/ssl/SSLEngineResult$HandshakeStatus;
            ifnull 32
        30: .line 580
            aload 8 /* plainText */
            getfield sun.security.ssl.Plaintext.handshakeStatus:Ljavax/net/ssl/SSLEngineResult$HandshakeStatus;
            astore 7 /* hsStatus */
        31: .line 581
            goto 33
        32: .line 582
      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 585
      StackMap locals:
      StackMap stack:
            new javax.net.ssl.SSLEngineResult
            dup
        34: .line 586
            aload 9 /* status */
            aload 7 /* hsStatus */
            iconst_0
            iconst_0
            aload 8 /* plainText */
            getfield sun.security.ssl.Plaintext.recordSN:J
        35: .line 585
            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 589
      StackMap locals:
      StackMap stack:
            iconst_0
            istore 8 /* srcsRemains */
        start local 8 // int srcsRemains
        37: .line 590
            iload 2 /* srcsOffset */
            istore 9 /* i */
        start local 9 // int i
        38: goto 41
        39: .line 591
      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 590
            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 594
            iload 8 /* srcsRemains */
            ifne 46
        43: .line 595
            new javax.net.ssl.SSLEngineResult
            dup
        44: .line 596
            getstatic javax.net.ssl.SSLEngineResult$Status.BUFFER_UNDERFLOW:Ljavax/net/ssl/SSLEngineResult$Status;
            aload 7 /* hsStatus */
            iconst_0
            iconst_0
        45: .line 595
            invokespecial javax.net.ssl.SSLEngineResult.<init>:(Ljavax/net/ssl/SSLEngineResult$Status;Ljavax/net/ssl/SSLEngineResult$HandshakeStatus;II)V
            areturn
        46: .line 603
      StackMap locals:
      StackMap stack:
            iconst_0
            istore 9 /* packetLen */
        start local 9 // int packetLen
        47: .line 605
            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 606
            aload 1 /* srcs */
            iload 2 /* srcsOffset */
            iload 3 /* srcsLength */
        49: .line 605
            invokevirtual sun.security.ssl.InputRecord.bytesInCompletePacket:([Ljava/nio/ByteBuffer;II)I
            istore 9 /* packetLen */
        50: .line 607
            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 609
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.sslContext:Lsun/security/ssl/SSLContextImpl;
            invokevirtual sun.security.ssl.SSLContextImpl.isDTLS:()Z
            ifeq 62
        53: .line 610
            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 611
            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 615
      StackMap locals: javax.net.ssl.SSLException
      StackMap stack:
            iconst_0
            istore 11 /* deltaNet */
        start local 11 // int deltaNet
        56: .line 619
            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 620
            aload 7 /* hsStatus */
            ifnonnull 61
        60: .line 621
            aload 0 /* this */
            invokevirtual sun.security.ssl.SSLEngineImpl.getHandshakeStatus:()Ljavax/net/ssl/SSLEngineResult$HandshakeStatus;
            astore 7 /* hsStatus */
        61: .line 624
      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 626
      StackMap locals:
      StackMap stack:
            aload 10 /* ssle */
            athrow
        end local 10 // javax.net.ssl.SSLException ssle
        63: .line 631
      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 632
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.sslContext:Lsun/security/ssl/SSLContextImpl;
            invokevirtual sun.security.ssl.SSLContextImpl.isDTLS:()Z
            ifeq 66
        65: .line 633
            sipush 16717
            goto 67
      StackMap locals:
      StackMap stack:
        66: ldc 33093
        67: .line 632
      StackMap locals:
      StackMap stack: int
            istore 10 /* largestRecordSize */
        start local 10 // int largestRecordSize
        68: .line 634
            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 642
            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 646
      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 647
            iload 9 /* packetLen */
            iload 10 /* largestRecordSize */
            if_icmple 77
        72: .line 648
            new javax.net.ssl.SSLProtocolException
            dup
        73: .line 649
            new java.lang.StringBuilder
            dup
            ldc "Input record too big: max = "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
        74: .line 650
            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 649
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        76: .line 648
            invokespecial javax.net.ssl.SSLProtocolException.<init>:(Ljava/lang/String;)V
            athrow
        end local 10 // int largestRecordSize
        77: .line 660
      StackMap locals:
      StackMap stack:
            iconst_0
            istore 10 /* dstsRemains */
        start local 10 // int dstsRemains
        78: .line 661
            iload 5 /* dstsOffset */
            istore 11 /* i */
        start local 11 // int i
        79: goto 82
        80: .line 662
      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 661
            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 665
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.conContext:Lsun/security/ssl/TransportContext;
            getfield sun.security.ssl.TransportContext.isNegotiated:Z
            ifeq 90
        84: .line 667
            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 666
            istore 11 /* FragLen */
        start local 11 // int FragLen
        86: .line 668
            iload 11 /* FragLen */
            iload 10 /* dstsRemains */
            if_icmple 90
        87: .line 669
            new javax.net.ssl.SSLEngineResult
            dup
        88: .line 670
            getstatic javax.net.ssl.SSLEngineResult$Status.BUFFER_OVERFLOW:Ljavax/net/ssl/SSLEngineResult$Status;
            aload 7 /* hsStatus */
            iconst_0
            iconst_0
        89: .line 669
            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 675
      StackMap locals:
      StackMap stack:
            iload 9 /* packetLen */
            iconst_m1
            if_icmpeq 91
            iload 8 /* srcsRemains */
            iload 9 /* packetLen */
            if_icmpge 92
        91: .line 676
      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 682
      StackMap locals:
      StackMap stack:
            aconst_null
            astore 11 /* plainText */
        start local 11 // sun.security.ssl.Plaintext plainText
        93: .line 684
            aload 0 /* this */
            aload 1 /* srcs */
            iload 2 /* srcsOffset */
            iload 3 /* srcsLength */
        94: .line 685
            aload 4 /* dsts */
            iload 5 /* dstsOffset */
            iload 6 /* dstsLength */
        95: .line 684
            invokevirtual sun.security.ssl.SSLEngineImpl.decode:([Ljava/nio/ByteBuffer;II[Ljava/nio/ByteBuffer;II)Lsun/security/ssl/Plaintext;
            astore 11 /* plainText */
        96: .line 686
            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 687
            aload 12 /* ioe */
            instanceof javax.net.ssl.SSLException
            ifeq 100
        99: .line 688
            aload 12 /* ioe */
            athrow
       100: .line 690
      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 704
      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 705
            aload 11 /* plainText */
            getfield sun.security.ssl.Plaintext.handshakeStatus:Ljavax/net/ssl/SSLEngineResult$HandshakeStatus;
            ifnull 107
       105: .line 706
            aload 11 /* plainText */
            getfield sun.security.ssl.Plaintext.handshakeStatus:Ljavax/net/ssl/SSLEngineResult$HandshakeStatus;
            astore 7 /* hsStatus */
       106: .line 707
            goto 108
       107: .line 708
      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 711
      StackMap locals:
      StackMap stack:
            iload 8 /* srcsRemains */
            istore 13 /* deltaNet */
        start local 13 // int deltaNet
       109: .line 712
            iload 2 /* srcsOffset */
            istore 14 /* i */
        start local 14 // int i
       110: goto 113
       111: .line 713
      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 712
            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 716
            iload 10 /* dstsRemains */
            istore 14 /* deltaApp */
        start local 14 // int deltaApp
       115: .line 717
            iload 5 /* dstsOffset */
            istore 15 /* i */
        start local 15 // int i
       116: goto 119
       117: .line 718
      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 717
            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 721
            new javax.net.ssl.SSLEngineResult
            dup
       121: .line 722
            aload 12 /* status */
            aload 7 /* hsStatus */
            iload 13 /* deltaNet */
            iload 14 /* deltaApp */
            aload 11 /* plainText */
            getfield sun.security.ssl.Plaintext.recordSN:J
       122: .line 721
            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 729
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.conContext:Lsun/security/ssl/TransportContext;
         1: .line 730
            aload 1 /* srcs */
            iload 2 /* srcsOffset */
            iload 3 /* srcsLength */
         2: .line 731
            aload 4 /* dsts */
            iload 5 /* dstsOffset */
            iload 6 /* dstsLength */
         3: .line 729
            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 734
            aload 7 /* pt */
            getstatic sun.security.ssl.Plaintext.PLAINTEXT_NULL:Lsun/security/ssl/Plaintext;
            if_acmpeq 15
         5: .line 735
            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 736
            aload 8 /* hsStatus */
            ifnonnull 9
         7: .line 737
            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 738
            goto 10
         9: .line 739
      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 743
      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 744
            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 745
      StackMap locals:
      StackMap stack:
            aload 7 /* pt */
        13: .line 746
            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 745
            putfield sun.security.ssl.Plaintext.handshakeStatus:Ljavax/net/ssl/SSLEngineResult$HandshakeStatus;
        end local 8 // javax.net.ssl.SSLEngineResult$HandshakeStatus hsStatus
        15: .line 750
      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 java.lang.Runnable getDelegatedTask();
    descriptor: ()Ljava/lang/Runnable;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=1
        start local 0 // sun.security.ssl.SSLEngineImpl this
         0: .line 755
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.engineLock:Ljava/util/concurrent/locks/ReentrantLock;
            invokevirtual java.util.concurrent.locks.ReentrantLock.lock:()V
         1: .line 757
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.conContext:Lsun/security/ssl/TransportContext;
            getfield sun.security.ssl.TransportContext.handshakeContext:Lsun/security/ssl/HandshakeContext;
            ifnull 11
         2: .line 758
            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 11
         3: .line 759
            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 11
         4: .line 760
            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
         5: .line 761
            new sun.security.ssl.SSLEngineImpl$DelegatedTask
            dup
            aload 0 /* this */
            invokespecial sun.security.ssl.SSLEngineImpl$DelegatedTask.<init>:(Lsun/security/ssl/SSLEngineImpl;)V
            astore 2
         6: .line 764
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.engineLock:Ljava/util/concurrent/locks/ReentrantLock;
            invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
         7: .line 761
            aload 2
            areturn
         8: .line 763
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 1
         9: .line 764
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.engineLock:Ljava/util/concurrent/locks/ReentrantLock;
            invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
        10: .line 765
            aload 1
            athrow
        11: .line 764
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.engineLock:Ljava/util/concurrent/locks/ReentrantLock;
            invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
        12: .line 767
            aconst_null
            areturn
        end local 0 // sun.security.ssl.SSLEngineImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   13     0  this  Lsun/security/ssl/SSLEngineImpl;
      Exception table:
        from    to  target  type
           1     6       8  any

  public void closeInbound();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=1
        start local 0 // sun.security.ssl.SSLEngineImpl this
         0: .line 772
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.engineLock:Ljava/util/concurrent/locks/ReentrantLock;
            invokevirtual java.util.concurrent.locks.ReentrantLock.lock:()V
         1: .line 774
            aload 0 /* this */
            invokevirtual sun.security.ssl.SSLEngineImpl.isInboundDone:()Z
            ifeq 4
         2: .line 795
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.engineLock:Ljava/util/concurrent/locks/ReentrantLock;
            invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
         3: .line 775
            return
         4: .line 778
      StackMap locals:
      StackMap stack:
            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 779
            ldc "Closing inbound of SSLEngine"
            iconst_0
            anewarray java.lang.Object
            invokestatic sun.security.ssl.SSLLogger.finest:(Ljava/lang/String;[Ljava/lang/Object;)V
         6: .line 785
      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 12
         7: .line 786
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.conContext:Lsun/security/ssl/TransportContext;
            getfield sun.security.ssl.TransportContext.isNegotiated:Z
            ifne 9
         8: .line 787
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.conContext:Lsun/security/ssl/TransportContext;
            getfield sun.security.ssl.TransportContext.handshakeContext:Lsun/security/ssl/HandshakeContext;
            ifnull 12
         9: .line 789
      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;
        10: .line 790
            ldc "closing inbound before receiving peer's close_notify"
        11: .line 789
            invokevirtual sun.security.ssl.TransportContext.fatal:(Lsun/security/ssl/Alert;Ljava/lang/String;)Ljavax/net/ssl/SSLException;
            athrow
        12: .line 793
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.conContext:Lsun/security/ssl/TransportContext;
            invokevirtual sun.security.ssl.TransportContext.closeInbound:()V
        13: .line 794
            goto 17
      StackMap locals:
      StackMap stack: java.lang.Throwable
        14: astore 1
        15: .line 795
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.engineLock:Ljava/util/concurrent/locks/ReentrantLock;
            invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
        16: .line 796
            aload 1
            athrow
        17: .line 795
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.engineLock:Ljava/util/concurrent/locks/ReentrantLock;
            invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
        18: .line 797
            return
        end local 0 // sun.security.ssl.SSLEngineImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   19     0  this  Lsun/security/ssl/SSLEngineImpl;
      Exception table:
        from    to  target  type
           1     2      14  any
           4    14      14  any
    Exceptions:
      throws javax.net.ssl.SSLException

  public boolean isInboundDone();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=3, args_size=1
        start local 0 // sun.security.ssl.SSLEngineImpl this
         0: .line 801
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.engineLock:Ljava/util/concurrent/locks/ReentrantLock;
            invokevirtual java.util.concurrent.locks.ReentrantLock.lock:()V
         1: .line 803
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.conContext:Lsun/security/ssl/TransportContext;
            invokevirtual sun.security.ssl.TransportContext.isInboundClosed:()Z
            istore 2
         2: .line 805
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.engineLock:Ljava/util/concurrent/locks/ReentrantLock;
            invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
         3: .line 803
            iload 2
            ireturn
         4: .line 804
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 1
         5: .line 805
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.engineLock:Ljava/util/concurrent/locks/ReentrantLock;
            invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
         6: .line 806
            aload 1
            athrow
        end local 0 // sun.security.ssl.SSLEngineImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    7     0  this  Lsun/security/ssl/SSLEngineImpl;
      Exception table:
        from    to  target  type
           1     2       4  any

  public void closeOutbound();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=1
        start local 0 // sun.security.ssl.SSLEngineImpl this
         0: .line 811
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.engineLock:Ljava/util/concurrent/locks/ReentrantLock;
            invokevirtual java.util.concurrent.locks.ReentrantLock.lock:()V
         1: .line 813
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.conContext:Lsun/security/ssl/TransportContext;
            invokevirtual sun.security.ssl.TransportContext.isOutboundClosed:()Z
            ifeq 4
         2: .line 823
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.engineLock:Ljava/util/concurrent/locks/ReentrantLock;
            invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
         3: .line 814
            return
         4: .line 817
      StackMap locals:
      StackMap stack:
            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 818
            ldc "Closing outbound of SSLEngine"
            iconst_0
            anewarray java.lang.Object
            invokestatic sun.security.ssl.SSLLogger.finest:(Ljava/lang/String;[Ljava/lang/Object;)V
         6: .line 821
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.conContext:Lsun/security/ssl/TransportContext;
            invokevirtual sun.security.ssl.TransportContext.closeOutbound:()V
         7: .line 822
            goto 11
      StackMap locals:
      StackMap stack: java.lang.Throwable
         8: astore 1
         9: .line 823
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.engineLock:Ljava/util/concurrent/locks/ReentrantLock;
            invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
        10: .line 824
            aload 1
            athrow
        11: .line 823
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.engineLock:Ljava/util/concurrent/locks/ReentrantLock;
            invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
        12: .line 825
            return
        end local 0 // sun.security.ssl.SSLEngineImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   13     0  this  Lsun/security/ssl/SSLEngineImpl;
      Exception table:
        from    to  target  type
           1     2       8  any
           4     8       8  any

  public boolean isOutboundDone();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=3, args_size=1
        start local 0 // sun.security.ssl.SSLEngineImpl this
         0: .line 829
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.engineLock:Ljava/util/concurrent/locks/ReentrantLock;
            invokevirtual java.util.concurrent.locks.ReentrantLock.lock:()V
         1: .line 831
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.conContext:Lsun/security/ssl/TransportContext;
            invokevirtual sun.security.ssl.TransportContext.isOutboundDone:()Z
            istore 2
         2: .line 833
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.engineLock:Ljava/util/concurrent/locks/ReentrantLock;
            invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
         3: .line 831
            iload 2
            ireturn
         4: .line 832
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 1
         5: .line 833
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.engineLock:Ljava/util/concurrent/locks/ReentrantLock;
            invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
         6: .line 834
            aload 1
            athrow
        end local 0 // sun.security.ssl.SSLEngineImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    7     0  this  Lsun/security/ssl/SSLEngineImpl;
      Exception table:
        from    to  target  type
           1     2       4  any

  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 839
            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 java.lang.String[] getEnabledCipherSuites();
    descriptor: ()[Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=3, args_size=1
        start local 0 // sun.security.ssl.SSLEngineImpl this
         0: .line 844
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.engineLock:Ljava/util/concurrent/locks/ReentrantLock;
            invokevirtual java.util.concurrent.locks.ReentrantLock.lock:()V
         1: .line 846
            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;
            astore 2
         2: .line 848
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.engineLock:Ljava/util/concurrent/locks/ReentrantLock;
            invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
         3: .line 846
            aload 2
            areturn
         4: .line 847
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 1
         5: .line 848
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.engineLock:Ljava/util/concurrent/locks/ReentrantLock;
            invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
         6: .line 849
            aload 1
            athrow
        end local 0 // sun.security.ssl.SSLEngineImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    7     0  this  Lsun/security/ssl/SSLEngineImpl;
      Exception table:
        from    to  target  type
           1     2       4  any

  public void setEnabledCipherSuites(java.lang.String[]);
    descriptor: ([Ljava/lang/String;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // sun.security.ssl.SSLEngineImpl this
        start local 1 // java.lang.String[] suites
         0: .line 854
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.engineLock:Ljava/util/concurrent/locks/ReentrantLock;
            invokevirtual java.util.concurrent.locks.ReentrantLock.lock:()V
         1: .line 856
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.conContext:Lsun/security/ssl/TransportContext;
            getfield sun.security.ssl.TransportContext.sslConfig:Lsun/security/ssl/SSLConfiguration;
         2: .line 857
            aload 1 /* suites */
            invokestatic sun.security.ssl.CipherSuite.validValuesOf:([Ljava/lang/String;)Ljava/util/List;
         3: .line 856
            putfield sun.security.ssl.SSLConfiguration.enabledCipherSuites:Ljava/util/List;
         4: .line 858
            goto 8
      StackMap locals:
      StackMap stack: java.lang.Throwable
         5: astore 2
         6: .line 859
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.engineLock:Ljava/util/concurrent/locks/ReentrantLock;
            invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
         7: .line 860
            aload 2
            athrow
         8: .line 859
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.engineLock:Ljava/util/concurrent/locks/ReentrantLock;
            invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
         9: .line 861
            return
        end local 1 // java.lang.String[] suites
        end local 0 // sun.security.ssl.SSLEngineImpl this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   10     0    this  Lsun/security/ssl/SSLEngineImpl;
            0   10     1  suites  [Ljava/lang/String;
      Exception table:
        from    to  target  type
           1     5       5  any
    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 866
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.sslContext:Lsun/security/ssl/SSLContextImpl;
            invokevirtual sun.security.ssl.SSLContextImpl.getSupportedProtocolVersions:()Ljava/util/List;
         1: .line 865
            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 java.lang.String[] getEnabledProtocols();
    descriptor: ()[Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=3, args_size=1
        start local 0 // sun.security.ssl.SSLEngineImpl this
         0: .line 871
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.engineLock:Ljava/util/concurrent/locks/ReentrantLock;
            invokevirtual java.util.concurrent.locks.ReentrantLock.lock:()V
         1: .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.enabledProtocols:Ljava/util/List;
         2: .line 873
            invokestatic sun.security.ssl.ProtocolVersion.toStringArray:(Ljava/util/List;)[Ljava/lang/String;
            astore 2
         3: .line 876
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.engineLock:Ljava/util/concurrent/locks/ReentrantLock;
            invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
         4: .line 873
            aload 2
            areturn
         5: .line 875
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 1
         6: .line 876
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.engineLock:Ljava/util/concurrent/locks/ReentrantLock;
            invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
         7: .line 877
            aload 1
            athrow
        end local 0 // sun.security.ssl.SSLEngineImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    8     0  this  Lsun/security/ssl/SSLEngineImpl;
      Exception table:
        from    to  target  type
           1     3       5  any

  public void setEnabledProtocols(java.lang.String[]);
    descriptor: ([Ljava/lang/String;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // sun.security.ssl.SSLEngineImpl this
        start local 1 // java.lang.String[] protocols
         0: .line 882
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.engineLock:Ljava/util/concurrent/locks/ReentrantLock;
            invokevirtual java.util.concurrent.locks.ReentrantLock.lock:()V
         1: .line 884
            aload 1 /* protocols */
            ifnonnull 3
         2: .line 885
            new java.lang.IllegalArgumentException
            dup
            ldc "Protocols cannot be null"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         3: .line 888
      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;
         4: .line 889
            aload 1 /* protocols */
            invokestatic sun.security.ssl.ProtocolVersion.namesOf:([Ljava/lang/String;)Ljava/util/List;
         5: .line 888
            putfield sun.security.ssl.SSLConfiguration.enabledProtocols:Ljava/util/List;
         6: .line 890
            goto 10
      StackMap locals:
      StackMap stack: java.lang.Throwable
         7: astore 2
         8: .line 891
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.engineLock:Ljava/util/concurrent/locks/ReentrantLock;
            invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
         9: .line 892
            aload 2
            athrow
        10: .line 891
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.engineLock:Ljava/util/concurrent/locks/ReentrantLock;
            invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
        11: .line 893
            return
        end local 1 // java.lang.String[] protocols
        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  protocols  [Ljava/lang/String;
      Exception table:
        from    to  target  type
           1     7       7  any
    MethodParameters:
           Name  Flags
      protocols  

  public javax.net.ssl.SSLSession getSession();
    descriptor: ()Ljavax/net/ssl/SSLSession;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=3, args_size=1
        start local 0 // sun.security.ssl.SSLEngineImpl this
         0: .line 897
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.engineLock:Ljava/util/concurrent/locks/ReentrantLock;
            invokevirtual java.util.concurrent.locks.ReentrantLock.lock:()V
         1: .line 899
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.conContext:Lsun/security/ssl/TransportContext;
            getfield sun.security.ssl.TransportContext.conSession:Lsun/security/ssl/SSLSessionImpl;
            astore 2
         2: .line 901
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.engineLock:Ljava/util/concurrent/locks/ReentrantLock;
            invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
         3: .line 899
            aload 2
            areturn
         4: .line 900
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 1
         5: .line 901
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.engineLock:Ljava/util/concurrent/locks/ReentrantLock;
            invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
         6: .line 902
            aload 1
            athrow
        end local 0 // sun.security.ssl.SSLEngineImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    7     0  this  Lsun/security/ssl/SSLEngineImpl;
      Exception table:
        from    to  target  type
           1     2       4  any

  public javax.net.ssl.SSLSession getHandshakeSession();
    descriptor: ()Ljavax/net/ssl/SSLSession;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=3, args_size=1
        start local 0 // sun.security.ssl.SSLEngineImpl this
         0: .line 907
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.engineLock:Ljava/util/concurrent/locks/ReentrantLock;
            invokevirtual java.util.concurrent.locks.ReentrantLock.lock:()V
         1: .line 909
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.conContext:Lsun/security/ssl/TransportContext;
            getfield sun.security.ssl.TransportContext.handshakeContext:Lsun/security/ssl/HandshakeContext;
            ifnonnull 3
         2: .line 910
            aconst_null
            goto 4
      StackMap locals:
      StackMap stack:
         3: 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;
      StackMap locals:
      StackMap stack: sun.security.ssl.SSLSessionImpl
         4: astore 2
         5: .line 912
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.engineLock:Ljava/util/concurrent/locks/ReentrantLock;
            invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
         6: .line 909
            aload 2
            areturn
         7: .line 911
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 1
         8: .line 912
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.engineLock:Ljava/util/concurrent/locks/ReentrantLock;
            invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
         9: .line 913
            aload 1
            athrow
        end local 0 // sun.security.ssl.SSLEngineImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   10     0  this  Lsun/security/ssl/SSLEngineImpl;
      Exception table:
        from    to  target  type
           1     5       7  any

  public javax.net.ssl.SSLEngineResult$HandshakeStatus getHandshakeStatus();
    descriptor: ()Ljavax/net/ssl/SSLEngineResult$HandshakeStatus;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=3, args_size=1
        start local 0 // sun.security.ssl.SSLEngineImpl this
         0: .line 918
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.engineLock:Ljava/util/concurrent/locks/ReentrantLock;
            invokevirtual java.util.concurrent.locks.ReentrantLock.lock:()V
         1: .line 920
            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 2
         2: .line 922
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.engineLock:Ljava/util/concurrent/locks/ReentrantLock;
            invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
         3: .line 920
            aload 2
            areturn
         4: .line 921
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 1
         5: .line 922
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.engineLock:Ljava/util/concurrent/locks/ReentrantLock;
            invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
         6: .line 923
            aload 1
            athrow
        end local 0 // sun.security.ssl.SSLEngineImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    7     0  this  Lsun/security/ssl/SSLEngineImpl;
      Exception table:
        from    to  target  type
           1     2       4  any

  public void setUseClientMode(boolean);
    descriptor: (Z)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // sun.security.ssl.SSLEngineImpl this
        start local 1 // boolean mode
         0: .line 928
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.engineLock:Ljava/util/concurrent/locks/ReentrantLock;
            invokevirtual java.util.concurrent.locks.ReentrantLock.lock:()V
         1: .line 930
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.conContext:Lsun/security/ssl/TransportContext;
            iload 1 /* mode */
            invokevirtual sun.security.ssl.TransportContext.setUseClientMode:(Z)V
         2: .line 931
            goto 6
      StackMap locals:
      StackMap stack: java.lang.Throwable
         3: astore 2
         4: .line 932
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.engineLock:Ljava/util/concurrent/locks/ReentrantLock;
            invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
         5: .line 933
            aload 2
            athrow
         6: .line 932
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.engineLock:Ljava/util/concurrent/locks/ReentrantLock;
            invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
         7: .line 934
            return
        end local 1 // boolean mode
        end local 0 // sun.security.ssl.SSLEngineImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    8     0  this  Lsun/security/ssl/SSLEngineImpl;
            0    8     1  mode  Z
      Exception table:
        from    to  target  type
           1     3       3  any
    MethodParameters:
      Name  Flags
      mode  

  public boolean getUseClientMode();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=3, args_size=1
        start local 0 // sun.security.ssl.SSLEngineImpl this
         0: .line 938
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.engineLock:Ljava/util/concurrent/locks/ReentrantLock;
            invokevirtual java.util.concurrent.locks.ReentrantLock.lock:()V
         1: .line 940
            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
            istore 2
         2: .line 942
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.engineLock:Ljava/util/concurrent/locks/ReentrantLock;
            invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
         3: .line 940
            iload 2
            ireturn
         4: .line 941
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 1
         5: .line 942
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.engineLock:Ljava/util/concurrent/locks/ReentrantLock;
            invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
         6: .line 943
            aload 1
            athrow
        end local 0 // sun.security.ssl.SSLEngineImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    7     0  this  Lsun/security/ssl/SSLEngineImpl;
      Exception table:
        from    to  target  type
           1     2       4  any

  public void setNeedClientAuth(boolean);
    descriptor: (Z)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // sun.security.ssl.SSLEngineImpl this
        start local 1 // boolean need
         0: .line 948
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.engineLock:Ljava/util/concurrent/locks/ReentrantLock;
            invokevirtual java.util.concurrent.locks.ReentrantLock.lock:()V
         1: .line 950
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.conContext:Lsun/security/ssl/TransportContext;
            getfield sun.security.ssl.TransportContext.sslConfig:Lsun/security/ssl/SSLConfiguration;
         2: .line 951
            iload 1 /* need */
            ifeq 3
            getstatic sun.security.ssl.ClientAuthType.CLIENT_AUTH_REQUIRED:Lsun/security/ssl/ClientAuthType;
            goto 4
         3: .line 952
      StackMap locals:
      StackMap stack: sun.security.ssl.SSLConfiguration
            getstatic sun.security.ssl.ClientAuthType.CLIENT_AUTH_NONE:Lsun/security/ssl/ClientAuthType;
         4: .line 950
      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;
         5: .line 953
            goto 9
      StackMap locals:
      StackMap stack: java.lang.Throwable
         6: astore 2
         7: .line 954
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.engineLock:Ljava/util/concurrent/locks/ReentrantLock;
            invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
         8: .line 955
            aload 2
            athrow
         9: .line 954
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.engineLock:Ljava/util/concurrent/locks/ReentrantLock;
            invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
        10: .line 956
            return
        end local 1 // boolean need
        end local 0 // sun.security.ssl.SSLEngineImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   11     0  this  Lsun/security/ssl/SSLEngineImpl;
            0   11     1  need  Z
      Exception table:
        from    to  target  type
           1     6       6  any
    MethodParameters:
      Name  Flags
      need  

  public boolean getNeedClientAuth();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=1
        start local 0 // sun.security.ssl.SSLEngineImpl this
         0: .line 960
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.engineLock:Ljava/util/concurrent/locks/ReentrantLock;
            invokevirtual java.util.concurrent.locks.ReentrantLock.lock:()V
         1: .line 962
            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;
         2: .line 963
            getstatic sun.security.ssl.ClientAuthType.CLIENT_AUTH_REQUIRED:Lsun/security/ssl/ClientAuthType;
         3: .line 962
            if_acmpne 4
            iconst_1
            goto 5
      StackMap locals:
      StackMap stack:
         4: iconst_0
      StackMap locals:
      StackMap stack: int
         5: istore 2
         6: .line 965
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.engineLock:Ljava/util/concurrent/locks/ReentrantLock;
            invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
         7: .line 962
            iload 2
            ireturn
         8: .line 964
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 1
         9: .line 965
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.engineLock:Ljava/util/concurrent/locks/ReentrantLock;
            invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
        10: .line 966
            aload 1
            athrow
        end local 0 // sun.security.ssl.SSLEngineImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   11     0  this  Lsun/security/ssl/SSLEngineImpl;
      Exception table:
        from    to  target  type
           1     6       8  any

  public void setWantClientAuth(boolean);
    descriptor: (Z)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // sun.security.ssl.SSLEngineImpl this
        start local 1 // boolean want
         0: .line 971
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.engineLock:Ljava/util/concurrent/locks/ReentrantLock;
            invokevirtual java.util.concurrent.locks.ReentrantLock.lock:()V
         1: .line 973
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.conContext:Lsun/security/ssl/TransportContext;
            getfield sun.security.ssl.TransportContext.sslConfig:Lsun/security/ssl/SSLConfiguration;
         2: .line 974
            iload 1 /* want */
            ifeq 3
            getstatic sun.security.ssl.ClientAuthType.CLIENT_AUTH_REQUESTED:Lsun/security/ssl/ClientAuthType;
            goto 4
         3: .line 975
      StackMap locals:
      StackMap stack: sun.security.ssl.SSLConfiguration
            getstatic sun.security.ssl.ClientAuthType.CLIENT_AUTH_NONE:Lsun/security/ssl/ClientAuthType;
         4: .line 973
      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;
         5: .line 976
            goto 9
      StackMap locals:
      StackMap stack: java.lang.Throwable
         6: astore 2
         7: .line 977
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.engineLock:Ljava/util/concurrent/locks/ReentrantLock;
            invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
         8: .line 978
            aload 2
            athrow
         9: .line 977
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.engineLock:Ljava/util/concurrent/locks/ReentrantLock;
            invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
        10: .line 979
            return
        end local 1 // boolean want
        end local 0 // sun.security.ssl.SSLEngineImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   11     0  this  Lsun/security/ssl/SSLEngineImpl;
            0   11     1  want  Z
      Exception table:
        from    to  target  type
           1     6       6  any
    MethodParameters:
      Name  Flags
      want  

  public boolean getWantClientAuth();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=1
        start local 0 // sun.security.ssl.SSLEngineImpl this
         0: .line 983
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.engineLock:Ljava/util/concurrent/locks/ReentrantLock;
            invokevirtual java.util.concurrent.locks.ReentrantLock.lock:()V
         1: .line 985
            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;
         2: .line 986
            getstatic sun.security.ssl.ClientAuthType.CLIENT_AUTH_REQUESTED:Lsun/security/ssl/ClientAuthType;
         3: .line 985
            if_acmpne 4
            iconst_1
            goto 5
      StackMap locals:
      StackMap stack:
         4: iconst_0
      StackMap locals:
      StackMap stack: int
         5: istore 2
         6: .line 988
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.engineLock:Ljava/util/concurrent/locks/ReentrantLock;
            invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
         7: .line 985
            iload 2
            ireturn
         8: .line 987
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 1
         9: .line 988
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.engineLock:Ljava/util/concurrent/locks/ReentrantLock;
            invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
        10: .line 989
            aload 1
            athrow
        end local 0 // sun.security.ssl.SSLEngineImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   11     0  this  Lsun/security/ssl/SSLEngineImpl;
      Exception table:
        from    to  target  type
           1     6       8  any

  public void setEnableSessionCreation(boolean);
    descriptor: (Z)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // sun.security.ssl.SSLEngineImpl this
        start local 1 // boolean flag
         0: .line 994
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.engineLock:Ljava/util/concurrent/locks/ReentrantLock;
            invokevirtual java.util.concurrent.locks.ReentrantLock.lock:()V
         1: .line 996
            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
         2: .line 997
            goto 6
      StackMap locals:
      StackMap stack: java.lang.Throwable
         3: astore 2
         4: .line 998
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.engineLock:Ljava/util/concurrent/locks/ReentrantLock;
            invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
         5: .line 999
            aload 2
            athrow
         6: .line 998
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.engineLock:Ljava/util/concurrent/locks/ReentrantLock;
            invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
         7: .line 1000
            return
        end local 1 // boolean flag
        end local 0 // sun.security.ssl.SSLEngineImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    8     0  this  Lsun/security/ssl/SSLEngineImpl;
            0    8     1  flag  Z
      Exception table:
        from    to  target  type
           1     3       3  any
    MethodParameters:
      Name  Flags
      flag  

  public boolean getEnableSessionCreation();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=3, args_size=1
        start local 0 // sun.security.ssl.SSLEngineImpl this
         0: .line 1004
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.engineLock:Ljava/util/concurrent/locks/ReentrantLock;
            invokevirtual java.util.concurrent.locks.ReentrantLock.lock:()V
         1: .line 1006
            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
            istore 2
         2: .line 1008
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.engineLock:Ljava/util/concurrent/locks/ReentrantLock;
            invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
         3: .line 1006
            iload 2
            ireturn
         4: .line 1007
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 1
         5: .line 1008
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.engineLock:Ljava/util/concurrent/locks/ReentrantLock;
            invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
         6: .line 1009
            aload 1
            athrow
        end local 0 // sun.security.ssl.SSLEngineImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    7     0  this  Lsun/security/ssl/SSLEngineImpl;
      Exception table:
        from    to  target  type
           1     2       4  any

  public javax.net.ssl.SSLParameters getSSLParameters();
    descriptor: ()Ljavax/net/ssl/SSLParameters;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=3, args_size=1
        start local 0 // sun.security.ssl.SSLEngineImpl this
         0: .line 1014
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.engineLock:Ljava/util/concurrent/locks/ReentrantLock;
            invokevirtual java.util.concurrent.locks.ReentrantLock.lock:()V
         1: .line 1016
            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;
            astore 2
         2: .line 1018
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.engineLock:Ljava/util/concurrent/locks/ReentrantLock;
            invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
         3: .line 1016
            aload 2
            areturn
         4: .line 1017
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 1
         5: .line 1018
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.engineLock:Ljava/util/concurrent/locks/ReentrantLock;
            invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
         6: .line 1019
            aload 1
            athrow
        end local 0 // sun.security.ssl.SSLEngineImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    7     0  this  Lsun/security/ssl/SSLEngineImpl;
      Exception table:
        from    to  target  type
           1     2       4  any

  public void setSSLParameters(javax.net.ssl.SSLParameters);
    descriptor: (Ljavax/net/ssl/SSLParameters;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // sun.security.ssl.SSLEngineImpl this
        start local 1 // javax.net.ssl.SSLParameters params
         0: .line 1024
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.engineLock:Ljava/util/concurrent/locks/ReentrantLock;
            invokevirtual java.util.concurrent.locks.ReentrantLock.lock:()V
         1: .line 1026
            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
         2: .line 1028
            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 10
         3: .line 1029
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.conContext:Lsun/security/ssl/TransportContext;
            getfield sun.security.ssl.TransportContext.outputRecord:Lsun/security/ssl/OutputRecord;
         4: .line 1030
            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
         5: .line 1029
            invokevirtual sun.security.ssl.OutputRecord.changePacketSize:(I)V
         6: .line 1032
            goto 10
      StackMap locals:
      StackMap stack: java.lang.Throwable
         7: astore 2
         8: .line 1033
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.engineLock:Ljava/util/concurrent/locks/ReentrantLock;
            invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
         9: .line 1034
            aload 2
            athrow
        10: .line 1033
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.engineLock:Ljava/util/concurrent/locks/ReentrantLock;
            invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
        11: .line 1035
            return
        end local 1 // javax.net.ssl.SSLParameters params
        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  params  Ljavax/net/ssl/SSLParameters;
      Exception table:
        from    to  target  type
           1     7       7  any
    MethodParameters:
        Name  Flags
      params  

  public java.lang.String getApplicationProtocol();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=3, args_size=1
        start local 0 // sun.security.ssl.SSLEngineImpl this
         0: .line 1039
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.engineLock:Ljava/util/concurrent/locks/ReentrantLock;
            invokevirtual java.util.concurrent.locks.ReentrantLock.lock:()V
         1: .line 1041
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.conContext:Lsun/security/ssl/TransportContext;
            getfield sun.security.ssl.TransportContext.applicationProtocol:Ljava/lang/String;
            astore 2
         2: .line 1043
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.engineLock:Ljava/util/concurrent/locks/ReentrantLock;
            invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
         3: .line 1041
            aload 2
            areturn
         4: .line 1042
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 1
         5: .line 1043
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.engineLock:Ljava/util/concurrent/locks/ReentrantLock;
            invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
         6: .line 1044
            aload 1
            athrow
        end local 0 // sun.security.ssl.SSLEngineImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    7     0  this  Lsun/security/ssl/SSLEngineImpl;
      Exception table:
        from    to  target  type
           1     2       4  any

  public java.lang.String getHandshakeApplicationProtocol();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=3, args_size=1
        start local 0 // sun.security.ssl.SSLEngineImpl this
         0: .line 1049
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.engineLock:Ljava/util/concurrent/locks/ReentrantLock;
            invokevirtual java.util.concurrent.locks.ReentrantLock.lock:()V
         1: .line 1051
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.conContext:Lsun/security/ssl/TransportContext;
            getfield sun.security.ssl.TransportContext.handshakeContext:Lsun/security/ssl/HandshakeContext;
            ifnonnull 3
         2: .line 1052
            aconst_null
            goto 4
      StackMap locals:
      StackMap stack:
         3: 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;
      StackMap locals:
      StackMap stack: java.lang.String
         4: astore 2
         5: .line 1054
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.engineLock:Ljava/util/concurrent/locks/ReentrantLock;
            invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
         6: .line 1051
            aload 2
            areturn
         7: .line 1053
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 1
         8: .line 1054
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.engineLock:Ljava/util/concurrent/locks/ReentrantLock;
            invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
         9: .line 1055
            aload 1
            athrow
        end local 0 // sun.security.ssl.SSLEngineImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   10     0  this  Lsun/security/ssl/SSLEngineImpl;
      Exception table:
        from    to  target  type
           1     5       7  any

  public 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: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // sun.security.ssl.SSLEngineImpl this
        start local 1 // java.util.function.BiFunction selector
         0: .line 1061
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.engineLock:Ljava/util/concurrent/locks/ReentrantLock;
            invokevirtual java.util.concurrent.locks.ReentrantLock.lock:()V
         1: .line 1063
            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;
         2: .line 1064
            goto 6
      StackMap locals:
      StackMap stack: java.lang.Throwable
         3: astore 2
         4: .line 1065
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.engineLock:Ljava/util/concurrent/locks/ReentrantLock;
            invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
         5: .line 1066
            aload 2
            athrow
         6: .line 1065
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.engineLock:Ljava/util/concurrent/locks/ReentrantLock;
            invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
         7: .line 1067
            return
        end local 1 // java.util.function.BiFunction selector
        end local 0 // sun.security.ssl.SSLEngineImpl this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    8     0      this  Lsun/security/ssl/SSLEngineImpl;
            0    8     1  selector  Ljava/util/function/BiFunction<Ljavax/net/ssl/SSLEngine;Ljava/util/List<Ljava/lang/String;>;Ljava/lang/String;>;
      Exception table:
        from    to  target  type
           1     3       3  any
    Signature: (Ljava/util/function/BiFunction<Ljavax/net/ssl/SSLEngine;Ljava/util/List<Ljava/lang/String;>;Ljava/lang/String;>;)V
    MethodParameters:
          Name  Flags
      selector  

  public java.util.function.BiFunction<javax.net.ssl.SSLEngine, java.util.List<java.lang.String>, java.lang.String> getHandshakeApplicationProtocolSelector();
    descriptor: ()Ljava/util/function/BiFunction;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=3, args_size=1
        start local 0 // sun.security.ssl.SSLEngineImpl this
         0: .line 1072
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.engineLock:Ljava/util/concurrent/locks/ReentrantLock;
            invokevirtual java.util.concurrent.locks.ReentrantLock.lock:()V
         1: .line 1074
            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;
            astore 2
         2: .line 1076
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.engineLock:Ljava/util/concurrent/locks/ReentrantLock;
            invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
         3: .line 1074
            aload 2
            areturn
         4: .line 1075
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 1
         5: .line 1076
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.engineLock:Ljava/util/concurrent/locks/ReentrantLock;
            invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
         6: .line 1077
            aload 1
            athrow
        end local 0 // sun.security.ssl.SSLEngineImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    7     0  this  Lsun/security/ssl/SSLEngineImpl;
      Exception table:
        from    to  target  type
           1     2       4  any
    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 1082
            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 void checkTaskThrown();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=4, args_size=1
        start local 0 // sun.security.ssl.SSLEngineImpl this
         0: .line 1093
            aconst_null
            astore 1 /* exc */
        start local 1 // java.lang.Exception exc
         1: .line 1094
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.engineLock:Ljava/util/concurrent/locks/ReentrantLock;
            invokevirtual java.util.concurrent.locks.ReentrantLock.lock:()V
         2: .line 1097
            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
         3: .line 1098
            aload 2 /* hc */
            ifnull 6
            aload 2 /* hc */
            getfield sun.security.ssl.HandshakeContext.delegatedThrown:Ljava/lang/Exception;
            ifnull 6
         4: .line 1099
            aload 2 /* hc */
            getfield sun.security.ssl.HandshakeContext.delegatedThrown:Ljava/lang/Exception;
            astore 1 /* exc */
         5: .line 1100
            aload 2 /* hc */
            aconst_null
            putfield sun.security.ssl.HandshakeContext.delegatedThrown:Ljava/lang/Exception;
         6: .line 1111
      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 17
         7: .line 1112
            aload 1 /* exc */
            ifnull 11
         8: .line 1114
            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 17
         9: .line 1116
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.conContext:Lsun/security/ssl/TransportContext;
            aconst_null
            putfield sun.security.ssl.TransportContext.delegatedThrown:Ljava/lang/Exception;
        10: .line 1118
            goto 17
        11: .line 1121
      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 */
        12: .line 1122
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.conContext:Lsun/security/ssl/TransportContext;
            aconst_null
            putfield sun.security.ssl.TransportContext.delegatedThrown:Ljava/lang/Exception;
        end local 2 // sun.security.ssl.HandshakeContext hc
        13: .line 1125
            goto 17
      StackMap locals: sun.security.ssl.SSLEngineImpl java.lang.Exception
      StackMap stack: java.lang.Throwable
        14: astore 3
        15: .line 1126
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.engineLock:Ljava/util/concurrent/locks/ReentrantLock;
            invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
        16: .line 1127
            aload 3
            athrow
        17: .line 1126
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.engineLock:Ljava/util/concurrent/locks/ReentrantLock;
            invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
        18: .line 1130
            aload 1 /* exc */
            ifnonnull 20
        19: .line 1131
            return
        20: .line 1135
      StackMap locals:
      StackMap stack:
            aload 1 /* exc */
            instanceof javax.net.ssl.SSLException
            ifeq 22
        21: .line 1136
            aload 1 /* exc */
            checkcast javax.net.ssl.SSLException
            athrow
        22: .line 1137
      StackMap locals:
      StackMap stack:
            aload 1 /* exc */
            instanceof java.lang.RuntimeException
            ifeq 24
        23: .line 1138
            aload 1 /* exc */
            checkcast java.lang.RuntimeException
            athrow
        24: .line 1140
      StackMap locals:
      StackMap stack:
            aload 1 /* exc */
            invokestatic sun.security.ssl.SSLEngineImpl.getTaskThrown:(Ljava/lang/Exception;)Ljavax/net/ssl/SSLException;
            athrow
        end local 1 // java.lang.Exception exc
        end local 0 // sun.security.ssl.SSLEngineImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   25     0  this  Lsun/security/ssl/SSLEngineImpl;
            1   25     1   exc  Ljava/lang/Exception;
            3   13     2    hc  Lsun/security/ssl/HandshakeContext;
      Exception table:
        from    to  target  type
           2    14      14  any
    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 1145
            aload 0 /* taskThrown */
            invokevirtual java.lang.Exception.getMessage:()Ljava/lang/String;
            astore 1 /* msg */
        start local 1 // java.lang.String msg
         1: .line 1147
            aload 1 /* msg */
            ifnonnull 3
         2: .line 1148
            ldc "Delegated task threw Exception or Error"
            astore 1 /* msg */
         3: .line 1151
      StackMap locals: java.lang.String
      StackMap stack:
            aload 0 /* taskThrown */
            instanceof java.lang.RuntimeException
            ifeq 5
         4: .line 1152
            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 1153
      StackMap locals:
      StackMap stack:
            aload 0 /* taskThrown */
            instanceof javax.net.ssl.SSLHandshakeException
            ifeq 8
         6: .line 1155
            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 1154
            checkcast javax.net.ssl.SSLHandshakeException
            areturn
         8: .line 1156
      StackMap locals:
      StackMap stack:
            aload 0 /* taskThrown */
            instanceof javax.net.ssl.SSLKeyException
            ifeq 11
         9: .line 1158
            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 1157
            checkcast javax.net.ssl.SSLKeyException
            areturn
        11: .line 1159
      StackMap locals:
      StackMap stack:
            aload 0 /* taskThrown */
            instanceof javax.net.ssl.SSLPeerUnverifiedException
            ifeq 14
        12: .line 1161
            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 1160
            checkcast javax.net.ssl.SSLPeerUnverifiedException
            areturn
        14: .line 1162
      StackMap locals:
      StackMap stack:
            aload 0 /* taskThrown */
            instanceof javax.net.ssl.SSLProtocolException
            ifeq 17
        15: .line 1164
            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 1163
            checkcast javax.net.ssl.SSLProtocolException
            areturn
        17: .line 1165
      StackMap locals:
      StackMap stack:
            aload 0 /* taskThrown */
            instanceof javax.net.ssl.SSLException
            ifeq 19
        18: .line 1166
            aload 0 /* taskThrown */
            checkcast javax.net.ssl.SSLException
            areturn
        19: .line 1168
      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