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 */
            getfield sun.security.ssl.SSLEngineImpl.conContext:Lsun/security/ssl/TransportContext;
            getfield sun.security.ssl.TransportContext.needHandshakeFinishedStatus:Z
            ifeq 5
         1: .line 169
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.conContext:Lsun/security/ssl/TransportContext;
            iconst_0
            putfield sun.security.ssl.TransportContext.needHandshakeFinishedStatus:Z
         2: .line 170
            new javax.net.ssl.SSLEngineResult
            dup
         3: .line 171
            getstatic javax.net.ssl.SSLEngineResult$Status.OK:Ljavax/net/ssl/SSLEngineResult$Status;
            getstatic javax.net.ssl.SSLEngineResult$HandshakeStatus.FINISHED:Ljavax/net/ssl/SSLEngineResult$HandshakeStatus;
            iconst_0
            iconst_0
         4: .line 170
            invokespecial javax.net.ssl.SSLEngineResult.<init>:(Ljavax/net/ssl/SSLEngineResult$Status;Ljavax/net/ssl/SSLEngineResult$HandshakeStatus;II)V
            areturn
         5: .line 175
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual sun.security.ssl.SSLEngineImpl.isOutboundDone:()Z
            ifeq 9
         6: .line 176
            new javax.net.ssl.SSLEngineResult
            dup
         7: .line 177
            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
         8: .line 176
            invokespecial javax.net.ssl.SSLEngineResult.<init>:(Ljavax/net/ssl/SSLEngineResult$Status;Ljavax/net/ssl/SSLEngineResult$HandshakeStatus;II)V
            areturn
         9: .line 180
      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
        10: .line 181
            aconst_null
            astore 8 /* hsStatus */
        start local 8 // javax.net.ssl.SSLEngineResult$HandshakeStatus hsStatus
        11: .line 182
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.conContext:Lsun/security/ssl/TransportContext;
            getfield sun.security.ssl.TransportContext.isNegotiated:Z
            ifne 21
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.conContext:Lsun/security/ssl/TransportContext;
            getfield sun.security.ssl.TransportContext.isBroken:Z
            ifne 21
        12: .line 183
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.conContext:Lsun/security/ssl/TransportContext;
            invokevirtual sun.security.ssl.TransportContext.isInboundClosed:()Z
            ifne 21
        13: .line 184
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.conContext:Lsun/security/ssl/TransportContext;
            invokevirtual sun.security.ssl.TransportContext.isOutboundClosed:()Z
            ifne 21
        14: .line 185
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.conContext:Lsun/security/ssl/TransportContext;
            invokevirtual sun.security.ssl.TransportContext.kickstart:()V
        15: .line 187
            aload 0 /* this */
            invokevirtual sun.security.ssl.SSLEngineImpl.getHandshakeStatus:()Ljavax/net/ssl/SSLEngineResult$HandshakeStatus;
            astore 8 /* hsStatus */
        16: .line 188
            aload 8 /* hsStatus */
            getstatic javax.net.ssl.SSLEngineResult$HandshakeStatus.NEED_UNWRAP:Ljavax/net/ssl/SSLEngineResult$HandshakeStatus;
            if_acmpne 21
        17: .line 195
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.sslContext:Lsun/security/ssl/SSLContextImpl;
            invokevirtual sun.security.ssl.SSLContextImpl.isDTLS:()Z
            ifeq 20
            aload 7 /* hc */
            ifnull 20
        18: .line 196
            aload 7 /* hc */
            getfield sun.security.ssl.HandshakeContext.sslConfig:Lsun/security/ssl/SSLConfiguration;
            getfield sun.security.ssl.SSLConfiguration.enableRetransmissions:Z
            ifeq 20
        19: .line 197
            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 21
        20: .line 199
      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
        21: .line 204
      StackMap locals:
      StackMap stack:
            aload 8 /* hsStatus */
            ifnonnull 23
        22: .line 205
            aload 0 /* this */
            invokevirtual sun.security.ssl.SSLEngineImpl.getHandshakeStatus:()Ljavax/net/ssl/SSLEngineResult$HandshakeStatus;
            astore 8 /* hsStatus */
        23: .line 214
      StackMap locals:
      StackMap stack:
            aload 8 /* hsStatus */
            getstatic javax.net.ssl.SSLEngineResult$HandshakeStatus.NEED_TASK:Ljavax/net/ssl/SSLEngineResult$HandshakeStatus;
            if_acmpne 25
        24: .line 215
            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
        25: .line 218
      StackMap locals:
      StackMap stack:
            iconst_0
            istore 9 /* dstsRemains */
        start local 9 // int dstsRemains
        26: .line 219
            iload 5 /* dstsOffset */
            istore 10 /* i */
        start local 10 // int i
        27: goto 30
        28: .line 220
      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 */
        29: .line 219
            iinc 10 /* i */ 1
      StackMap locals:
      StackMap stack:
        30: iload 10 /* i */
            iload 5 /* dstsOffset */
            iload 6 /* dstsLength */
            iadd
            if_icmplt 28
        end local 10 // int i
        31: .line 227
            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 35
        32: .line 228
            new javax.net.ssl.SSLEngineResult
            dup
        33: .line 229
            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
        34: .line 228
            invokespecial javax.net.ssl.SSLEngineResult.<init>:(Ljavax/net/ssl/SSLEngineResult$Status;Ljavax/net/ssl/SSLEngineResult$HandshakeStatus;II)V
            areturn
        35: .line 232
      StackMap locals:
      StackMap stack:
            iconst_0
            istore 10 /* srcsRemains */
        start local 10 // int srcsRemains
        36: .line 233
            iload 2 /* srcsOffset */
            istore 11 /* i */
        start local 11 // int i
        37: goto 40
        38: .line 234
      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 */
        39: .line 233
            iinc 11 /* i */ 1
      StackMap locals:
      StackMap stack:
        40: iload 11 /* i */
            iload 2 /* srcsOffset */
            iload 3 /* srcsLength */
            iadd
            if_icmplt 38
        end local 11 // int i
        41: .line 237
            aconst_null
            astore 11 /* ciphertext */
        start local 11 // sun.security.ssl.Ciphertext ciphertext
        42: .line 242
            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 46
            aload 7 /* hc */
            ifnull 49
        43: .line 243
            aload 7 /* hc */
            getfield sun.security.ssl.HandshakeContext.sslConfig:Lsun/security/ssl/SSLConfiguration;
            getfield sun.security.ssl.SSLConfiguration.enableRetransmissions:Z
            ifeq 49
        44: .line 244
            aload 7 /* hc */
            getfield sun.security.ssl.HandshakeContext.sslContext:Lsun/security/ssl/SSLContextImpl;
            invokevirtual sun.security.ssl.SSLContextImpl.isDTLS:()Z
            ifeq 49
        45: .line 245
            aload 8 /* hsStatus */
            getstatic javax.net.ssl.SSLEngineResult$HandshakeStatus.NEED_UNWRAP:Ljavax/net/ssl/SSLEngineResult$HandshakeStatus;
            if_acmpne 49
        46: .line 246
      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
        47: .line 247
            aload 4 /* dsts */
            iload 5 /* dstsOffset */
            iload 6 /* dstsLength */
        48: .line 246
            invokevirtual sun.security.ssl.SSLEngineImpl.encode:([Ljava/nio/ByteBuffer;II[Ljava/nio/ByteBuffer;II)Lsun/security/ssl/Ciphertext;
            astore 11 /* ciphertext */
        49: .line 250
      StackMap locals:
      StackMap stack:
            aload 11 /* ciphertext */
            ifnonnull 58
            iload 10 /* srcsRemains */
            ifeq 58
        50: .line 251
            aload 0 /* this */
            aload 1 /* srcs */
            iload 2 /* srcsOffset */
            iload 3 /* srcsLength */
        51: .line 252
            aload 4 /* dsts */
            iload 5 /* dstsOffset */
            iload 6 /* dstsLength */
        52: .line 251
            invokevirtual sun.security.ssl.SSLEngineImpl.encode:([Ljava/nio/ByteBuffer;II[Ljava/nio/ByteBuffer;II)Lsun/security/ssl/Ciphertext;
            astore 11 /* ciphertext */
        53: .line 254
            goto 58
      StackMap locals:
      StackMap stack: java.io.IOException
        54: astore 12 /* ioe */
        start local 12 // java.io.IOException ioe
        55: .line 255
            aload 12 /* ioe */
            instanceof javax.net.ssl.SSLException
            ifeq 57
        56: .line 256
            aload 12 /* ioe */
            athrow
        57: .line 258
      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
        58: .line 265
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual sun.security.ssl.SSLEngineImpl.isOutboundDone:()Z
            ifeq 59
            getstatic javax.net.ssl.SSLEngineResult$Status.CLOSED:Ljavax/net/ssl/SSLEngineResult$Status;
            goto 60
      StackMap locals:
      StackMap stack:
        59: getstatic javax.net.ssl.SSLEngineResult$Status.OK:Ljavax/net/ssl/SSLEngineResult$Status;
      StackMap locals:
      StackMap stack: javax.net.ssl.SSLEngineResult$Status
        60: astore 12 /* status */
        start local 12 // javax.net.ssl.SSLEngineResult$Status status
        61: .line 266
            aload 11 /* ciphertext */
            ifnull 64
            aload 11 /* ciphertext */
            getfield sun.security.ssl.Ciphertext.handshakeStatus:Ljavax/net/ssl/SSLEngineResult$HandshakeStatus;
            ifnull 64
        62: .line 267
            aload 11 /* ciphertext */
            getfield sun.security.ssl.Ciphertext.handshakeStatus:Ljavax/net/ssl/SSLEngineResult$HandshakeStatus;
            astore 8 /* hsStatus */
        63: .line 268
            goto 69
        64: .line 269
      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 */
        65: .line 270
            aload 11 /* ciphertext */
            ifnonnull 69
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.conContext:Lsun/security/ssl/TransportContext;
            getfield sun.security.ssl.TransportContext.isNegotiated:Z
            ifne 69
        66: .line 271
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.conContext:Lsun/security/ssl/TransportContext;
            invokevirtual sun.security.ssl.TransportContext.isInboundClosed:()Z
            ifeq 69
        67: .line 272
            aload 8 /* hsStatus */
            getstatic javax.net.ssl.SSLEngineResult$HandshakeStatus.NEED_WRAP:Ljavax/net/ssl/SSLEngineResult$HandshakeStatus;
            if_acmpne 69
        68: .line 281
            getstatic javax.net.ssl.SSLEngineResult$Status.CLOSED:Ljavax/net/ssl/SSLEngineResult$Status;
            astore 12 /* status */
        69: .line 285
      StackMap locals:
      StackMap stack:
            iload 10 /* srcsRemains */
            istore 13 /* deltaSrcs */
        start local 13 // int deltaSrcs
        70: .line 286
            iload 2 /* srcsOffset */
            istore 14 /* i */
        start local 14 // int i
        71: goto 74
        72: .line 287
      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 */
        73: .line 286
            iinc 14 /* i */ 1
      StackMap locals:
      StackMap stack:
        74: iload 14 /* i */
            iload 2 /* srcsOffset */
            iload 3 /* srcsLength */
            iadd
            if_icmplt 72
        end local 14 // int i
        75: .line 290
            iload 9 /* dstsRemains */
            istore 14 /* deltaDsts */
        start local 14 // int deltaDsts
        76: .line 291
            iload 5 /* dstsOffset */
            istore 15 /* i */
        start local 15 // int i
        77: goto 80
        78: .line 292
      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 */
        79: .line 291
            iinc 15 /* i */ 1
      StackMap locals:
      StackMap stack:
        80: iload 15 /* i */
            iload 5 /* dstsOffset */
            iload 6 /* dstsLength */
            iadd
            if_icmplt 78
        end local 15 // int i
        81: .line 295
            new javax.net.ssl.SSLEngineResult
            dup
            aload 12 /* status */
            aload 8 /* hsStatus */
            iload 13 /* deltaSrcs */
            iload 14 /* deltaDsts */
        82: .line 296
            aload 11 /* ciphertext */
            ifnull 83
            aload 11 /* ciphertext */
            getfield sun.security.ssl.Ciphertext.recordSN:J
            goto 84
      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 81 new 81 javax.net.ssl.SSLEngineResult$Status javax.net.ssl.SSLEngineResult$HandshakeStatus int int
        83: ldc -1
        84: .line 295
      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 81 new 81 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   85     0         this  Lsun/security/ssl/SSLEngineImpl;
            0   85     1         srcs  [Ljava/nio/ByteBuffer;
            0   85     2   srcsOffset  I
            0   85     3   srcsLength  I
            0   85     4         dsts  [Ljava/nio/ByteBuffer;
            0   85     5   dstsOffset  I
            0   85     6   dstsLength  I
           10   85     7           hc  Lsun/security/ssl/HandshakeContext;
           11   85     8     hsStatus  Ljavax/net/ssl/SSLEngineResult$HandshakeStatus;
           26   85     9  dstsRemains  I
           27   31    10            i  I
           36   85    10  srcsRemains  I
           37   41    11            i  I
           42   85    11   ciphertext  Lsun/security/ssl/Ciphertext;
           55   58    12          ioe  Ljava/io/IOException;
           61   85    12       status  Ljavax/net/ssl/SSLEngineResult$Status;
           70   85    13    deltaSrcs  I
           71   75    14            i  I
           76   85    14    deltaDsts  I
           77   81    15            i  I
      Exception table:
        from    to  target  type
          42    53      54  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 303
            aconst_null
            astore 7 /* ciphertext */
        start local 7 // sun.security.ssl.Ciphertext ciphertext
         1: .line 305
            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 306
            aload 1 /* srcs */
            iload 2 /* srcsOffset */
            iload 3 /* srcsLength */
            aload 4 /* dsts */
            iload 5 /* dstsOffset */
            iload 6 /* dstsLength */
         3: .line 305
            invokevirtual sun.security.ssl.OutputRecord.encode:([Ljava/nio/ByteBuffer;II[Ljava/nio/ByteBuffer;II)Lsun/security/ssl/Ciphertext;
            astore 7 /* ciphertext */
         4: .line 307
            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 309
            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 310
      StackMap locals:
      StackMap stack: java.io.IOException
            astore 8 /* e */
        start local 8 // java.io.IOException e
         8: .line 311
            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 314
      StackMap locals:
      StackMap stack:
            aload 7 /* ciphertext */
            ifnonnull 11
        10: .line 315
            aconst_null
            areturn
        11: .line 320
      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 321
            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 322
            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 319
            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 324
            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 323
            astore 9 /* hsStatus */
        start local 9 // javax.net.ssl.SSLEngineResult$HandshakeStatus hsStatus
        19: .line 325
            iload 8 /* needRetransmission */
            ifeq 27
        20: .line 326
            aload 9 /* hsStatus */
            getstatic javax.net.ssl.SSLEngineResult$HandshakeStatus.FINISHED:Ljavax/net/ssl/SSLEngineResult$HandshakeStatus;
            if_acmpne 27
        21: .line 327
            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 328
            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 336
            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 337
            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 340
      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 341
            getstatic javax.net.ssl.SSLEngineResult$HandshakeStatus.NEED_WRAP:Ljavax/net/ssl/SSLEngineResult$HandshakeStatus;
            astore 9 /* hsStatus */
        27: .line 344
      StackMap locals:
      StackMap stack:
            aload 9 /* hsStatus */
            ifnonnull 29
        28: .line 345
            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 349
      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 350
            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 351
      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 355
      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 356
            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 357
            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 361
      StackMap locals:
      StackMap stack:
            aload 7 /* ciphertext */
            aload 9 /* hsStatus */
            putfield sun.security.ssl.Ciphertext.handshakeStatus:Ljavax/net/ssl/SSLEngineResult$HandshakeStatus;
        36: .line 363
            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 367
            aconst_null
            astore 2 /* hsStatus */
        start local 2 // javax.net.ssl.SSLEngineResult$HandshakeStatus hsStatus
         1: .line 368
            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 369
            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 370
            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 371
            getstatic javax.net.ssl.SSLEngineResult$HandshakeStatus.FINISHED:Ljavax/net/ssl/SSLEngineResult$HandshakeStatus;
            astore 2 /* hsStatus */
         5: .line 372
            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 374
            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 375
            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 376
            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 380
      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 399
            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 400
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.conContext:Lsun/security/ssl/TransportContext;
            invokevirtual sun.security.ssl.TransportContext.isOutboundClosed:()Z
            ifne 8
         2: .line 401
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.conContext:Lsun/security/ssl/TransportContext;
            invokevirtual sun.security.ssl.TransportContext.isInboundClosed:()Z
            ifne 8
         3: .line 402
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.conContext:Lsun/security/ssl/TransportContext;
            getfield sun.security.ssl.TransportContext.isBroken:Z
            ifne 8
         4: .line 403
            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 404
            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 406
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual sun.security.ssl.SSLEngineImpl.beginHandshake:()V
         7: .line 407
            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 410
      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 419
            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 420
            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 421
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.conContext:Lsun/security/ssl/TransportContext;
            invokevirtual sun.security.ssl.TransportContext.isOutboundClosed:()Z
            ifne 12
         3: .line 422
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.conContext:Lsun/security/ssl/TransportContext;
            invokevirtual sun.security.ssl.TransportContext.isInboundClosed:()Z
            ifne 12
         4: .line 423
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.conContext:Lsun/security/ssl/TransportContext;
            getfield sun.security.ssl.TransportContext.isBroken:Z
            ifne 12
         5: .line 424
            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 425
            ldc "trigger NST"
            iconst_0
            anewarray java.lang.Object
            invokestatic sun.security.ssl.SSLLogger.finest:(Ljava/lang/String;[Ljava/lang/Object;)V
         7: .line 427
      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 428
            getstatic sun.security.ssl.NewSessionTicket.t13PosthandshakeProducer:Lsun/security/ssl/SSLProducer;
         9: .line 429
            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 428
            invokeinterface sun.security.ssl.SSLProducer.produce:(Lsun/security/ssl/ConnectionContext;)[B
            pop
        11: .line 430
            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 433
      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 440
            aload 0 /* srcs */
            ifnull 1
            aload 3 /* dsts */
            ifnonnull 4
         1: .line 441
      StackMap locals:
      StackMap stack:
            new java.lang.IllegalArgumentException
            dup
         2: .line 442
            ldc "source or destination buffer is null"
         3: .line 441
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         4: .line 445
      StackMap locals:
      StackMap stack:
            iload 4 /* dstsOffset */
            iflt 6
            iload 5 /* dstsLength */
            iflt 6
         5: .line 446
            iload 4 /* dstsOffset */
            aload 3 /* dsts */
            arraylength
            iload 5 /* dstsLength */
            isub
            if_icmple 9
         6: .line 447
      StackMap locals:
      StackMap stack:
            new java.lang.IndexOutOfBoundsException
            dup
         7: .line 448
            ldc "index out of bound of the destination buffers"
         8: .line 447
            invokespecial java.lang.IndexOutOfBoundsException.<init>:(Ljava/lang/String;)V
            athrow
         9: .line 451
      StackMap locals:
      StackMap stack:
            iload 1 /* srcsOffset */
            iflt 11
            iload 2 /* srcsLength */
            iflt 11
        10: .line 452
            iload 1 /* srcsOffset */
            aload 0 /* srcs */
            arraylength
            iload 2 /* srcsLength */
            isub
            if_icmple 14
        11: .line 453
      StackMap locals:
      StackMap stack:
            new java.lang.IndexOutOfBoundsException
            dup
        12: .line 454
            ldc "index out of bound of the source buffers"
        13: .line 453
            invokespecial java.lang.IndexOutOfBoundsException.<init>:(Ljava/lang/String;)V
            athrow
        14: .line 457
      StackMap locals:
      StackMap stack:
            iload 4 /* dstsOffset */
            istore 6 /* i */
        start local 6 // int i
        15: goto 23
        16: .line 458
      StackMap locals: int
      StackMap stack:
            aload 3 /* dsts */
            iload 6 /* i */
            aaload
            ifnonnull 20
        17: .line 459
            new java.lang.IllegalArgumentException
            dup
        18: .line 460
            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 459
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
        20: .line 466
      StackMap locals:
      StackMap stack:
            aload 3 /* dsts */
            iload 6 /* i */
            aaload
            invokevirtual java.nio.ByteBuffer.isReadOnly:()Z
            ifeq 22
        21: .line 467
            new java.nio.ReadOnlyBufferException
            dup
            invokespecial java.nio.ReadOnlyBufferException.<init>:()V
            athrow
        22: .line 457
      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 471
            iload 1 /* srcsOffset */
            istore 6 /* i */
        start local 6 // int i
        25: goto 31
        26: .line 472
      StackMap locals:
      StackMap stack:
            aload 0 /* srcs */
            iload 6 /* i */
            aaload
            ifnonnull 30
        27: .line 473
            new java.lang.IllegalArgumentException
            dup
        28: .line 474
            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 473
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
        30: .line 471
      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 477
            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 482
            aload 0 /* this */
         1: .line 483
            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 482
            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 491
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.engineLock:Ljava/util/concurrent/locks/ReentrantLock;
            invokevirtual java.util.concurrent.locks.ReentrantLock.lock:()V
         1: .line 493
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.conContext:Lsun/security/ssl/TransportContext;
            getfield sun.security.ssl.TransportContext.isUnsureMode:Z
            ifeq 5
         2: .line 494
            new java.lang.IllegalStateException
            dup
         3: .line 495
            ldc "Client/Server mode has not yet been set."
         4: .line 494
            invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
            athrow
         5: .line 499
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual sun.security.ssl.SSLEngineImpl.checkTaskThrown:()V
         6: .line 502
            aload 1 /* srcs */
            iload 2 /* srcsOffset */
            iload 3 /* srcsLength */
         7: .line 503
            aload 4 /* dsts */
            iload 5 /* dstsOffset */
            iload 6 /* dstsLength */
         8: .line 502
            invokestatic sun.security.ssl.SSLEngineImpl.checkParams:([Ljava/nio/ByteBuffer;II[Ljava/nio/ByteBuffer;II)V
         9: .line 506
            aload 0 /* this */
        10: .line 507
            aload 1 /* srcs */
            iload 2 /* srcsOffset */
            iload 3 /* srcsLength */
            aload 4 /* dsts */
            iload 5 /* dstsOffset */
            iload 6 /* dstsLength */
        11: .line 506
            invokevirtual sun.security.ssl.SSLEngineImpl.readRecord:([Ljava/nio/ByteBuffer;II[Ljava/nio/ByteBuffer;II)Ljavax/net/ssl/SSLEngineResult;
            astore 9
        12: .line 526
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.engineLock:Ljava/util/concurrent/locks/ReentrantLock;
            invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
        13: .line 506
            aload 9
            areturn
        14: .line 508
      StackMap locals:
      StackMap stack: javax.net.ssl.SSLProtocolException
            astore 7 /* spe */
        start local 7 // javax.net.ssl.SSLProtocolException spe
        15: .line 510
            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 511
            aload 7 /* spe */
            invokevirtual javax.net.ssl.SSLProtocolException.getMessage:()Ljava/lang/String;
            aload 7 /* spe */
        17: .line 510
            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 512
      StackMap locals:
      StackMap stack: java.io.IOException
            astore 7 /* ioe */
        start local 7 // java.io.IOException ioe
        19: .line 519
            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 520
            ldc "problem unwrapping net record"
            aload 7 /* ioe */
        21: .line 519
            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 521
      StackMap locals:
      StackMap stack: java.lang.Exception
            astore 7 /* ex */
        start local 7 // java.lang.Exception ex
        23: .line 522
            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 523
            ldc "Fail to unwrap network record"
            aload 7 /* ex */
        25: .line 522
            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 525
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 8
        27: .line 526
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.engineLock:Ljava/util/concurrent/locks/ReentrantLock;
            invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
        28: .line 527
            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 537
            aload 0 /* this */
            invokevirtual sun.security.ssl.SSLEngineImpl.isInboundDone:()Z
            ifeq 4
         1: .line 538
            new javax.net.ssl.SSLEngineResult
            dup
         2: .line 539
            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 538
            invokespecial javax.net.ssl.SSLEngineResult.<init>:(Ljavax/net/ssl/SSLEngineResult$Status;Ljavax/net/ssl/SSLEngineResult$HandshakeStatus;II)V
            areturn
         4: .line 542
      StackMap locals:
      StackMap stack:
            aconst_null
            astore 7 /* hsStatus */
        start local 7 // javax.net.ssl.SSLEngineResult$HandshakeStatus hsStatus
         5: .line 543
            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 544
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.conContext:Lsun/security/ssl/TransportContext;
            invokevirtual sun.security.ssl.TransportContext.isInboundClosed:()Z
            ifne 12
         7: .line 545
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.conContext:Lsun/security/ssl/TransportContext;
            invokevirtual sun.security.ssl.TransportContext.isOutboundClosed:()Z
            ifne 12
         8: .line 546
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.conContext:Lsun/security/ssl/TransportContext;
            invokevirtual sun.security.ssl.TransportContext.kickstart:()V
         9: .line 552
            aload 0 /* this */
            invokevirtual sun.security.ssl.SSLEngineImpl.getHandshakeStatus:()Ljavax/net/ssl/SSLEngineResult$HandshakeStatus;
            astore 7 /* hsStatus */
        10: .line 553
            aload 7 /* hsStatus */
            getstatic javax.net.ssl.SSLEngineResult$HandshakeStatus.NEED_WRAP:Ljavax/net/ssl/SSLEngineResult$HandshakeStatus;
            if_acmpne 12
        11: .line 554
            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 558
      StackMap locals: javax.net.ssl.SSLEngineResult$HandshakeStatus
      StackMap stack:
            aload 7 /* hsStatus */
            ifnonnull 14
        13: .line 559
            aload 0 /* this */
            invokevirtual sun.security.ssl.SSLEngineImpl.getHandshakeStatus:()Ljavax/net/ssl/SSLEngineResult$HandshakeStatus;
            astore 7 /* hsStatus */
        14: .line 568
      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 569
            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 572
      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 573
            aconst_null
            astore 8 /* plainText */
        start local 8 // sun.security.ssl.Plaintext plainText
        18: .line 575
            aload 0 /* this */
            aconst_null
            iconst_0
            iconst_0
        19: .line 576
            aload 4 /* dsts */
            iload 5 /* dstsOffset */
            iload 6 /* dstsLength */
        20: .line 575
            invokevirtual sun.security.ssl.SSLEngineImpl.decode:([Ljava/nio/ByteBuffer;II[Ljava/nio/ByteBuffer;II)Lsun/security/ssl/Plaintext;
            astore 8 /* plainText */
        21: .line 577
            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 578
            aload 9 /* ioe */
            instanceof javax.net.ssl.SSLException
            ifeq 25
        24: .line 579
            aload 9 /* ioe */
            athrow
        25: .line 581
      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 585
      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 586
            aload 8 /* plainText */
            getfield sun.security.ssl.Plaintext.handshakeStatus:Ljavax/net/ssl/SSLEngineResult$HandshakeStatus;
            ifnull 32
        30: .line 587
            aload 8 /* plainText */
            getfield sun.security.ssl.Plaintext.handshakeStatus:Ljavax/net/ssl/SSLEngineResult$HandshakeStatus;
            astore 7 /* hsStatus */
        31: .line 588
            goto 33
        32: .line 589
      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 592
      StackMap locals:
      StackMap stack:
            new javax.net.ssl.SSLEngineResult
            dup
        34: .line 593
            aload 9 /* status */
            aload 7 /* hsStatus */
            iconst_0
            iconst_0
            aload 8 /* plainText */
            getfield sun.security.ssl.Plaintext.recordSN:J
        35: .line 592
            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 596
      StackMap locals:
      StackMap stack:
            iconst_0
            istore 8 /* srcsRemains */
        start local 8 // int srcsRemains
        37: .line 597
            iload 2 /* srcsOffset */
            istore 9 /* i */
        start local 9 // int i
        38: goto 41
        39: .line 598
      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 597
            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 601
            iload 8 /* srcsRemains */
            ifne 46
        43: .line 602
            new javax.net.ssl.SSLEngineResult
            dup
        44: .line 603
            getstatic javax.net.ssl.SSLEngineResult$Status.BUFFER_UNDERFLOW:Ljavax/net/ssl/SSLEngineResult$Status;
            aload 7 /* hsStatus */
            iconst_0
            iconst_0
        45: .line 602
            invokespecial javax.net.ssl.SSLEngineResult.<init>:(Ljavax/net/ssl/SSLEngineResult$Status;Ljavax/net/ssl/SSLEngineResult$HandshakeStatus;II)V
            areturn
        46: .line 610
      StackMap locals:
      StackMap stack:
            iconst_0
            istore 9 /* packetLen */
        start local 9 // int packetLen
        47: .line 612
            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 613
            aload 1 /* srcs */
            iload 2 /* srcsOffset */
            iload 3 /* srcsLength */
        49: .line 612
            invokevirtual sun.security.ssl.InputRecord.bytesInCompletePacket:([Ljava/nio/ByteBuffer;II)I
            istore 9 /* packetLen */
        50: .line 614
            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 616
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.sslContext:Lsun/security/ssl/SSLContextImpl;
            invokevirtual sun.security.ssl.SSLContextImpl.isDTLS:()Z
            ifeq 62
        53: .line 617
            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 618
            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 622
      StackMap locals: javax.net.ssl.SSLException
      StackMap stack:
            iconst_0
            istore 11 /* deltaNet */
        start local 11 // int deltaNet
        56: .line 626
            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 627
            aload 7 /* hsStatus */
            ifnonnull 61
        60: .line 628
            aload 0 /* this */
            invokevirtual sun.security.ssl.SSLEngineImpl.getHandshakeStatus:()Ljavax/net/ssl/SSLEngineResult$HandshakeStatus;
            astore 7 /* hsStatus */
        61: .line 631
      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 633
      StackMap locals:
      StackMap stack:
            aload 10 /* ssle */
            athrow
        end local 10 // javax.net.ssl.SSLException ssle
        63: .line 638
      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 639
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.sslContext:Lsun/security/ssl/SSLContextImpl;
            invokevirtual sun.security.ssl.SSLContextImpl.isDTLS:()Z
            ifeq 66
        65: .line 640
            sipush 16717
            goto 67
      StackMap locals:
      StackMap stack:
        66: ldc 33093
        67: .line 639
      StackMap locals:
      StackMap stack: int
            istore 10 /* largestRecordSize */
        start local 10 // int largestRecordSize
        68: .line 641
            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 649
            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 653
      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 654
            iload 9 /* packetLen */
            iload 10 /* largestRecordSize */
            if_icmple 77
        72: .line 655
            new javax.net.ssl.SSLProtocolException
            dup
        73: .line 656
            new java.lang.StringBuilder
            dup
            ldc "Input record too big: max = "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
        74: .line 657
            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 656
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        76: .line 655
            invokespecial javax.net.ssl.SSLProtocolException.<init>:(Ljava/lang/String;)V
            athrow
        end local 10 // int largestRecordSize
        77: .line 667
      StackMap locals:
      StackMap stack:
            iconst_0
            istore 10 /* dstsRemains */
        start local 10 // int dstsRemains
        78: .line 668
            iload 5 /* dstsOffset */
            istore 11 /* i */
        start local 11 // int i
        79: goto 82
        80: .line 669
      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 668
            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 672
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.conContext:Lsun/security/ssl/TransportContext;
            getfield sun.security.ssl.TransportContext.isNegotiated:Z
            ifeq 90
        84: .line 674
            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 673
            istore 11 /* FragLen */
        start local 11 // int FragLen
        86: .line 675
            iload 11 /* FragLen */
            iload 10 /* dstsRemains */
            if_icmple 90
        87: .line 676
            new javax.net.ssl.SSLEngineResult
            dup
        88: .line 677
            getstatic javax.net.ssl.SSLEngineResult$Status.BUFFER_OVERFLOW:Ljavax/net/ssl/SSLEngineResult$Status;
            aload 7 /* hsStatus */
            iconst_0
            iconst_0
        89: .line 676
            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 682
      StackMap locals:
      StackMap stack:
            iload 9 /* packetLen */
            iconst_m1
            if_icmpeq 91
            iload 8 /* srcsRemains */
            iload 9 /* packetLen */
            if_icmpge 92
        91: .line 683
      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 689
      StackMap locals:
      StackMap stack:
            aconst_null
            astore 11 /* plainText */
        start local 11 // sun.security.ssl.Plaintext plainText
        93: .line 691
            aload 0 /* this */
            aload 1 /* srcs */
            iload 2 /* srcsOffset */
            iload 3 /* srcsLength */
        94: .line 692
            aload 4 /* dsts */
            iload 5 /* dstsOffset */
            iload 6 /* dstsLength */
        95: .line 691
            invokevirtual sun.security.ssl.SSLEngineImpl.decode:([Ljava/nio/ByteBuffer;II[Ljava/nio/ByteBuffer;II)Lsun/security/ssl/Plaintext;
            astore 11 /* plainText */
        96: .line 693
            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 694
            aload 12 /* ioe */
            instanceof javax.net.ssl.SSLException
            ifeq 100
        99: .line 695
            aload 12 /* ioe */
            athrow
       100: .line 697
      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 711
      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 712
            aload 11 /* plainText */
            getfield sun.security.ssl.Plaintext.handshakeStatus:Ljavax/net/ssl/SSLEngineResult$HandshakeStatus;
            ifnull 107
       105: .line 713
            aload 11 /* plainText */
            getfield sun.security.ssl.Plaintext.handshakeStatus:Ljavax/net/ssl/SSLEngineResult$HandshakeStatus;
            astore 7 /* hsStatus */
       106: .line 714
            goto 108
       107: .line 715
      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 718
      StackMap locals:
      StackMap stack:
            iload 8 /* srcsRemains */
            istore 13 /* deltaNet */
        start local 13 // int deltaNet
       109: .line 719
            iload 2 /* srcsOffset */
            istore 14 /* i */
        start local 14 // int i
       110: goto 113
       111: .line 720
      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 719
            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 723
            iload 10 /* dstsRemains */
            istore 14 /* deltaApp */
        start local 14 // int deltaApp
       115: .line 724
            iload 5 /* dstsOffset */
            istore 15 /* i */
        start local 15 // int i
       116: goto 119
       117: .line 725
      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 724
            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 728
            new javax.net.ssl.SSLEngineResult
            dup
       121: .line 729
            aload 12 /* status */
            aload 7 /* hsStatus */
            iload 13 /* deltaNet */
            iload 14 /* deltaApp */
            aload 11 /* plainText */
            getfield sun.security.ssl.Plaintext.recordSN:J
       122: .line 728
            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 736
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.conContext:Lsun/security/ssl/TransportContext;
         1: .line 737
            aload 1 /* srcs */
            iload 2 /* srcsOffset */
            iload 3 /* srcsLength */
         2: .line 738
            aload 4 /* dsts */
            iload 5 /* dstsOffset */
            iload 6 /* dstsLength */
         3: .line 736
            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 741
            aload 7 /* pt */
            getstatic sun.security.ssl.Plaintext.PLAINTEXT_NULL:Lsun/security/ssl/Plaintext;
            if_acmpeq 15
         5: .line 742
            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 743
            aload 8 /* hsStatus */
            ifnonnull 9
         7: .line 744
            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 745
            goto 10
         9: .line 746
      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 750
      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 751
            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 752
      StackMap locals:
      StackMap stack:
            aload 7 /* pt */
        13: .line 753
            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 752
            putfield sun.security.ssl.Plaintext.handshakeStatus:Ljavax/net/ssl/SSLEngineResult$HandshakeStatus;
        end local 8 // javax.net.ssl.SSLEngineResult$HandshakeStatus hsStatus
        15: .line 757
      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 762
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.engineLock:Ljava/util/concurrent/locks/ReentrantLock;
            invokevirtual java.util.concurrent.locks.ReentrantLock.lock:()V
         1: .line 764
            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 765
            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 766
            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 767
            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 768
            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 771
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.engineLock:Ljava/util/concurrent/locks/ReentrantLock;
            invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
         7: .line 768
            aload 2
            areturn
         8: .line 770
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 1
         9: .line 771
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.engineLock:Ljava/util/concurrent/locks/ReentrantLock;
            invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
        10: .line 772
            aload 1
            athrow
        11: .line 771
      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 774
            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 779
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.engineLock:Ljava/util/concurrent/locks/ReentrantLock;
            invokevirtual java.util.concurrent.locks.ReentrantLock.lock:()V
         1: .line 781
            aload 0 /* this */
            invokevirtual sun.security.ssl.SSLEngineImpl.isInboundDone:()Z
            ifeq 4
         2: .line 802
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.engineLock:Ljava/util/concurrent/locks/ReentrantLock;
            invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
         3: .line 782
            return
         4: .line 785
      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 786
            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 792
      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 793
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.conContext:Lsun/security/ssl/TransportContext;
            getfield sun.security.ssl.TransportContext.isNegotiated:Z
            ifne 9
         8: .line 794
            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 796
      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 797
            ldc "closing inbound before receiving peer's close_notify"
        11: .line 796
            invokevirtual sun.security.ssl.TransportContext.fatal:(Lsun/security/ssl/Alert;Ljava/lang/String;)Ljavax/net/ssl/SSLException;
            athrow
        12: .line 800
      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 801
            goto 17
      StackMap locals:
      StackMap stack: java.lang.Throwable
        14: astore 1
        15: .line 802
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.engineLock:Ljava/util/concurrent/locks/ReentrantLock;
            invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
        16: .line 803
            aload 1
            athrow
        17: .line 802
      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 804
            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 808
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.engineLock:Ljava/util/concurrent/locks/ReentrantLock;
            invokevirtual java.util.concurrent.locks.ReentrantLock.lock:()V
         1: .line 810
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.conContext:Lsun/security/ssl/TransportContext;
            invokevirtual sun.security.ssl.TransportContext.isInboundClosed:()Z
            istore 2
         2: .line 812
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.engineLock:Ljava/util/concurrent/locks/ReentrantLock;
            invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
         3: .line 810
            iload 2
            ireturn
         4: .line 811
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 1
         5: .line 812
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.engineLock:Ljava/util/concurrent/locks/ReentrantLock;
            invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
         6: .line 813
            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 818
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.engineLock:Ljava/util/concurrent/locks/ReentrantLock;
            invokevirtual java.util.concurrent.locks.ReentrantLock.lock:()V
         1: .line 820
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.conContext:Lsun/security/ssl/TransportContext;
            invokevirtual sun.security.ssl.TransportContext.isOutboundClosed:()Z
            ifeq 4
         2: .line 830
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.engineLock:Ljava/util/concurrent/locks/ReentrantLock;
            invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
         3: .line 821
            return
         4: .line 824
      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 825
            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 828
      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 829
            goto 11
      StackMap locals:
      StackMap stack: java.lang.Throwable
         8: astore 1
         9: .line 830
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.engineLock:Ljava/util/concurrent/locks/ReentrantLock;
            invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
        10: .line 831
            aload 1
            athrow
        11: .line 830
      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 832
            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 836
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.engineLock:Ljava/util/concurrent/locks/ReentrantLock;
            invokevirtual java.util.concurrent.locks.ReentrantLock.lock:()V
         1: .line 838
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.conContext:Lsun/security/ssl/TransportContext;
            invokevirtual sun.security.ssl.TransportContext.isOutboundDone:()Z
            istore 2
         2: .line 840
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.engineLock:Ljava/util/concurrent/locks/ReentrantLock;
            invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
         3: .line 838
            iload 2
            ireturn
         4: .line 839
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 1
         5: .line 840
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.engineLock:Ljava/util/concurrent/locks/ReentrantLock;
            invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
         6: .line 841
            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 846
            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 851
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.engineLock:Ljava/util/concurrent/locks/ReentrantLock;
            invokevirtual java.util.concurrent.locks.ReentrantLock.lock:()V
         1: .line 853
            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 855
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.engineLock:Ljava/util/concurrent/locks/ReentrantLock;
            invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
         3: .line 853
            aload 2
            areturn
         4: .line 854
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 1
         5: .line 855
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.engineLock:Ljava/util/concurrent/locks/ReentrantLock;
            invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
         6: .line 856
            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 861
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.engineLock:Ljava/util/concurrent/locks/ReentrantLock;
            invokevirtual java.util.concurrent.locks.ReentrantLock.lock:()V
         1: .line 863
            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 864
            aload 1 /* suites */
            invokestatic sun.security.ssl.CipherSuite.validValuesOf:([Ljava/lang/String;)Ljava/util/List;
         3: .line 863
            putfield sun.security.ssl.SSLConfiguration.enabledCipherSuites:Ljava/util/List;
         4: .line 865
            goto 8
      StackMap locals:
      StackMap stack: java.lang.Throwable
         5: astore 2
         6: .line 866
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.engineLock:Ljava/util/concurrent/locks/ReentrantLock;
            invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
         7: .line 867
            aload 2
            athrow
         8: .line 866
      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 868
            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 873
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.sslContext:Lsun/security/ssl/SSLContextImpl;
            invokevirtual sun.security.ssl.SSLContextImpl.getSupportedProtocolVersions:()Ljava/util/List;
         1: .line 872
            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 878
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.engineLock:Ljava/util/concurrent/locks/ReentrantLock;
            invokevirtual java.util.concurrent.locks.ReentrantLock.lock:()V
         1: .line 881
            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 880
            invokestatic sun.security.ssl.ProtocolVersion.toStringArray:(Ljava/util/List;)[Ljava/lang/String;
            astore 2
         3: .line 883
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.engineLock:Ljava/util/concurrent/locks/ReentrantLock;
            invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
         4: .line 880
            aload 2
            areturn
         5: .line 882
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 1
         6: .line 883
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.engineLock:Ljava/util/concurrent/locks/ReentrantLock;
            invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
         7: .line 884
            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 889
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.engineLock:Ljava/util/concurrent/locks/ReentrantLock;
            invokevirtual java.util.concurrent.locks.ReentrantLock.lock:()V
         1: .line 891
            aload 1 /* protocols */
            ifnonnull 3
         2: .line 892
            new java.lang.IllegalArgumentException
            dup
            ldc "Protocols cannot be null"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         3: .line 895
      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 896
            aload 1 /* protocols */
            invokestatic sun.security.ssl.ProtocolVersion.namesOf:([Ljava/lang/String;)Ljava/util/List;
         5: .line 895
            putfield sun.security.ssl.SSLConfiguration.enabledProtocols:Ljava/util/List;
         6: .line 897
            goto 10
      StackMap locals:
      StackMap stack: java.lang.Throwable
         7: astore 2
         8: .line 898
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.engineLock:Ljava/util/concurrent/locks/ReentrantLock;
            invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
         9: .line 899
            aload 2
            athrow
        10: .line 898
      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 900
            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 904
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.engineLock:Ljava/util/concurrent/locks/ReentrantLock;
            invokevirtual java.util.concurrent.locks.ReentrantLock.lock:()V
         1: .line 906
            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 908
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.engineLock:Ljava/util/concurrent/locks/ReentrantLock;
            invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
         3: .line 906
            aload 2
            areturn
         4: .line 907
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 1
         5: .line 908
            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 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 914
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.engineLock:Ljava/util/concurrent/locks/ReentrantLock;
            invokevirtual java.util.concurrent.locks.ReentrantLock.lock:()V
         1: .line 916
            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 917
            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 919
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.engineLock:Ljava/util/concurrent/locks/ReentrantLock;
            invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
         6: .line 916
            aload 2
            areturn
         7: .line 918
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 1
         8: .line 919
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.engineLock:Ljava/util/concurrent/locks/ReentrantLock;
            invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
         9: .line 920
            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 925
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.engineLock:Ljava/util/concurrent/locks/ReentrantLock;
            invokevirtual java.util.concurrent.locks.ReentrantLock.lock:()V
         1: .line 927
            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 929
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.engineLock:Ljava/util/concurrent/locks/ReentrantLock;
            invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
         3: .line 927
            aload 2
            areturn
         4: .line 928
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 1
         5: .line 929
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.engineLock:Ljava/util/concurrent/locks/ReentrantLock;
            invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
         6: .line 930
            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 935
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.engineLock:Ljava/util/concurrent/locks/ReentrantLock;
            invokevirtual java.util.concurrent.locks.ReentrantLock.lock:()V
         1: .line 937
            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 938
            goto 6
      StackMap locals:
      StackMap stack: java.lang.Throwable
         3: astore 2
         4: .line 939
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.engineLock:Ljava/util/concurrent/locks/ReentrantLock;
            invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
         5: .line 940
            aload 2
            athrow
         6: .line 939
      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 941
            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 945
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.engineLock:Ljava/util/concurrent/locks/ReentrantLock;
            invokevirtual java.util.concurrent.locks.ReentrantLock.lock:()V
         1: .line 947
            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 949
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.engineLock:Ljava/util/concurrent/locks/ReentrantLock;
            invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
         3: .line 947
            iload 2
            ireturn
         4: .line 948
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 1
         5: .line 949
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.engineLock:Ljava/util/concurrent/locks/ReentrantLock;
            invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
         6: .line 950
            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 955
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.engineLock:Ljava/util/concurrent/locks/ReentrantLock;
            invokevirtual java.util.concurrent.locks.ReentrantLock.lock:()V
         1: .line 957
            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 958
            iload 1 /* need */
            ifeq 3
            getstatic sun.security.ssl.ClientAuthType.CLIENT_AUTH_REQUIRED:Lsun/security/ssl/ClientAuthType;
            goto 4
         3: .line 959
      StackMap locals:
      StackMap stack: sun.security.ssl.SSLConfiguration
            getstatic sun.security.ssl.ClientAuthType.CLIENT_AUTH_NONE:Lsun/security/ssl/ClientAuthType;
         4: .line 957
      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 960
            goto 9
      StackMap locals:
      StackMap stack: java.lang.Throwable
         6: astore 2
         7: .line 961
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.engineLock:Ljava/util/concurrent/locks/ReentrantLock;
            invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
         8: .line 962
            aload 2
            athrow
         9: .line 961
      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 963
            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 967
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.engineLock:Ljava/util/concurrent/locks/ReentrantLock;
            invokevirtual java.util.concurrent.locks.ReentrantLock.lock:()V
         1: .line 969
            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 970
            getstatic sun.security.ssl.ClientAuthType.CLIENT_AUTH_REQUIRED:Lsun/security/ssl/ClientAuthType;
         3: .line 969
            if_acmpne 4
            iconst_1
            goto 5
      StackMap locals:
      StackMap stack:
         4: iconst_0
      StackMap locals:
      StackMap stack: int
         5: istore 2
         6: .line 972
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.engineLock:Ljava/util/concurrent/locks/ReentrantLock;
            invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
         7: .line 969
            iload 2
            ireturn
         8: .line 971
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 1
         9: .line 972
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.engineLock:Ljava/util/concurrent/locks/ReentrantLock;
            invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
        10: .line 973
            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 978
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.engineLock:Ljava/util/concurrent/locks/ReentrantLock;
            invokevirtual java.util.concurrent.locks.ReentrantLock.lock:()V
         1: .line 980
            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 981
            iload 1 /* want */
            ifeq 3
            getstatic sun.security.ssl.ClientAuthType.CLIENT_AUTH_REQUESTED:Lsun/security/ssl/ClientAuthType;
            goto 4
         3: .line 982
      StackMap locals:
      StackMap stack: sun.security.ssl.SSLConfiguration
            getstatic sun.security.ssl.ClientAuthType.CLIENT_AUTH_NONE:Lsun/security/ssl/ClientAuthType;
         4: .line 980
      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 983
            goto 9
      StackMap locals:
      StackMap stack: java.lang.Throwable
         6: astore 2
         7: .line 984
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.engineLock:Ljava/util/concurrent/locks/ReentrantLock;
            invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
         8: .line 985
            aload 2
            athrow
         9: .line 984
      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 986
            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 990
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.engineLock:Ljava/util/concurrent/locks/ReentrantLock;
            invokevirtual java.util.concurrent.locks.ReentrantLock.lock:()V
         1: .line 992
            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 993
            getstatic sun.security.ssl.ClientAuthType.CLIENT_AUTH_REQUESTED:Lsun/security/ssl/ClientAuthType;
         3: .line 992
            if_acmpne 4
            iconst_1
            goto 5
      StackMap locals:
      StackMap stack:
         4: iconst_0
      StackMap locals:
      StackMap stack: int
         5: istore 2
         6: .line 995
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.engineLock:Ljava/util/concurrent/locks/ReentrantLock;
            invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
         7: .line 992
            iload 2
            ireturn
         8: .line 994
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 1
         9: .line 995
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.engineLock:Ljava/util/concurrent/locks/ReentrantLock;
            invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
        10: .line 996
            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 1001
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.engineLock:Ljava/util/concurrent/locks/ReentrantLock;
            invokevirtual java.util.concurrent.locks.ReentrantLock.lock:()V
         1: .line 1003
            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 1004
            goto 6
      StackMap locals:
      StackMap stack: java.lang.Throwable
         3: astore 2
         4: .line 1005
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.engineLock:Ljava/util/concurrent/locks/ReentrantLock;
            invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
         5: .line 1006
            aload 2
            athrow
         6: .line 1005
      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 1007
            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 1011
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.engineLock:Ljava/util/concurrent/locks/ReentrantLock;
            invokevirtual java.util.concurrent.locks.ReentrantLock.lock:()V
         1: .line 1013
            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 1015
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.engineLock:Ljava/util/concurrent/locks/ReentrantLock;
            invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
         3: .line 1013
            iload 2
            ireturn
         4: .line 1014
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 1
         5: .line 1015
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.engineLock:Ljava/util/concurrent/locks/ReentrantLock;
            invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
         6: .line 1016
            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 1021
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.engineLock:Ljava/util/concurrent/locks/ReentrantLock;
            invokevirtual java.util.concurrent.locks.ReentrantLock.lock:()V
         1: .line 1023
            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 1025
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.engineLock:Ljava/util/concurrent/locks/ReentrantLock;
            invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
         3: .line 1023
            aload 2
            areturn
         4: .line 1024
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 1
         5: .line 1025
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.engineLock:Ljava/util/concurrent/locks/ReentrantLock;
            invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
         6: .line 1026
            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 1031
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.engineLock:Ljava/util/concurrent/locks/ReentrantLock;
            invokevirtual java.util.concurrent.locks.ReentrantLock.lock:()V
         1: .line 1033
            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 1035
            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 1036
            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 1037
            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 1036
            invokevirtual sun.security.ssl.OutputRecord.changePacketSize:(I)V
         6: .line 1039
            goto 10
      StackMap locals:
      StackMap stack: java.lang.Throwable
         7: astore 2
         8: .line 1040
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.engineLock:Ljava/util/concurrent/locks/ReentrantLock;
            invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
         9: .line 1041
            aload 2
            athrow
        10: .line 1040
      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 1042
            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 1046
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.engineLock:Ljava/util/concurrent/locks/ReentrantLock;
            invokevirtual java.util.concurrent.locks.ReentrantLock.lock:()V
         1: .line 1048
            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 1050
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.engineLock:Ljava/util/concurrent/locks/ReentrantLock;
            invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
         3: .line 1048
            aload 2
            areturn
         4: .line 1049
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 1
         5: .line 1050
            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 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 1056
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.engineLock:Ljava/util/concurrent/locks/ReentrantLock;
            invokevirtual java.util.concurrent.locks.ReentrantLock.lock:()V
         1: .line 1058
            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 1059
            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 1061
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.engineLock:Ljava/util/concurrent/locks/ReentrantLock;
            invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
         6: .line 1058
            aload 2
            areturn
         7: .line 1060
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 1
         8: .line 1061
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.engineLock:Ljava/util/concurrent/locks/ReentrantLock;
            invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
         9: .line 1062
            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 1068
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.engineLock:Ljava/util/concurrent/locks/ReentrantLock;
            invokevirtual java.util.concurrent.locks.ReentrantLock.lock:()V
         1: .line 1070
            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 1071
            goto 6
      StackMap locals:
      StackMap stack: java.lang.Throwable
         3: astore 2
         4: .line 1072
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.engineLock:Ljava/util/concurrent/locks/ReentrantLock;
            invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
         5: .line 1073
            aload 2
            athrow
         6: .line 1072
      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 1074
            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 1079
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.engineLock:Ljava/util/concurrent/locks/ReentrantLock;
            invokevirtual java.util.concurrent.locks.ReentrantLock.lock:()V
         1: .line 1081
            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 1083
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.engineLock:Ljava/util/concurrent/locks/ReentrantLock;
            invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
         3: .line 1081
            aload 2
            areturn
         4: .line 1082
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 1
         5: .line 1083
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.engineLock:Ljava/util/concurrent/locks/ReentrantLock;
            invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
         6: .line 1084
            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 1089
            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 1100
            aconst_null
            astore 1 /* exc */
        start local 1 // java.lang.Exception exc
         1: .line 1101
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.engineLock:Ljava/util/concurrent/locks/ReentrantLock;
            invokevirtual java.util.concurrent.locks.ReentrantLock.lock:()V
         2: .line 1104
            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 1105
            aload 2 /* hc */
            ifnull 6
            aload 2 /* hc */
            getfield sun.security.ssl.HandshakeContext.delegatedThrown:Ljava/lang/Exception;
            ifnull 6
         4: .line 1106
            aload 2 /* hc */
            getfield sun.security.ssl.HandshakeContext.delegatedThrown:Ljava/lang/Exception;
            astore 1 /* exc */
         5: .line 1107
            aload 2 /* hc */
            aconst_null
            putfield sun.security.ssl.HandshakeContext.delegatedThrown:Ljava/lang/Exception;
         6: .line 1118
      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 1119
            aload 1 /* exc */
            ifnull 11
         8: .line 1121
            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 1123
            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 1125
            goto 17
        11: .line 1128
      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 1129
            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 1132
            goto 17
      StackMap locals: sun.security.ssl.SSLEngineImpl java.lang.Exception
      StackMap stack: java.lang.Throwable
        14: astore 3
        15: .line 1133
            aload 0 /* this */
            getfield sun.security.ssl.SSLEngineImpl.engineLock:Ljava/util/concurrent/locks/ReentrantLock;
            invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
        16: .line 1134
            aload 3
            athrow
        17: .line 1133
      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 1137
            aload 1 /* exc */
            ifnonnull 20
        19: .line 1138
            return
        20: .line 1142
      StackMap locals:
      StackMap stack:
            aload 1 /* exc */
            instanceof javax.net.ssl.SSLException
            ifeq 22
        21: .line 1143
            aload 1 /* exc */
            checkcast javax.net.ssl.SSLException
            athrow
        22: .line 1144
      StackMap locals:
      StackMap stack:
            aload 1 /* exc */
            instanceof java.lang.RuntimeException
            ifeq 24
        23: .line 1145
            aload 1 /* exc */
            checkcast java.lang.RuntimeException
            athrow
        24: .line 1147
      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 1152
            aload 0 /* taskThrown */
            invokevirtual java.lang.Exception.getMessage:()Ljava/lang/String;
            astore 1 /* msg */
        start local 1 // java.lang.String msg
         1: .line 1154
            aload 1 /* msg */
            ifnonnull 3
         2: .line 1155
            ldc "Delegated task threw Exception or Error"
            astore 1 /* msg */
         3: .line 1158
      StackMap locals: java.lang.String
      StackMap stack:
            aload 0 /* taskThrown */
            instanceof java.lang.RuntimeException
            ifeq 5
         4: .line 1159
            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 1160
      StackMap locals:
      StackMap stack:
            aload 0 /* taskThrown */
            instanceof javax.net.ssl.SSLHandshakeException
            ifeq 8
         6: .line 1162
            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 1161
            checkcast javax.net.ssl.SSLHandshakeException
            areturn
         8: .line 1163
      StackMap locals:
      StackMap stack:
            aload 0 /* taskThrown */
            instanceof javax.net.ssl.SSLKeyException
            ifeq 11
         9: .line 1165
            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 1164
            checkcast javax.net.ssl.SSLKeyException
            areturn
        11: .line 1166
      StackMap locals:
      StackMap stack:
            aload 0 /* taskThrown */
            instanceof javax.net.ssl.SSLPeerUnverifiedException
            ifeq 14
        12: .line 1168
            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 1167
            checkcast javax.net.ssl.SSLPeerUnverifiedException
            areturn
        14: .line 1169
      StackMap locals:
      StackMap stack:
            aload 0 /* taskThrown */
            instanceof javax.net.ssl.SSLProtocolException
            ifeq 17
        15: .line 1171
            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 1170
            checkcast javax.net.ssl.SSLProtocolException
            areturn
        17: .line 1172
      StackMap locals:
      StackMap stack:
            aload 0 /* taskThrown */
            instanceof javax.net.ssl.SSLException
            ifeq 19
        18: .line 1173
            aload 0 /* taskThrown */
            checkcast javax.net.ssl.SSLException
            areturn
        19: .line 1175
      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