final class org.xnio.ssl.JsseSslConduitEngine
  minor version: 0
  major version: 59
  flags: flags: (0x0030) ACC_FINAL, ACC_SUPER
  this_class: org.xnio.ssl.JsseSslConduitEngine
  super_class: java.lang.Object
{
  private static final org.jboss.logging.Logger log;
    descriptor: Lorg/jboss/logging/Logger;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  private static final java.lang.String FQCN;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  private static final int NEED_WRAP;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 1

  private static final int READ_SHUT_DOWN;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 2

  private static final int BUFFER_UNDERFLOW;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 4

  private static final int READ_FLAGS;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  private static final int NEED_UNWRAP;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 65536

  private static final int WRITE_SHUT_DOWN;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 131072

  private static final int WRITE_COMPLETE;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 262144

  private static final int FIRST_HANDSHAKE;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 4194304

  private static final int ENGINE_CLOSED;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 8388608

  private static final int WRITE_FLAGS;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  private static final java.nio.ByteBuffer EMPTY_BUFFER;
    descriptor: Ljava/nio/ByteBuffer;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  private final javax.net.ssl.SSLEngine engine;
    descriptor: Ljavax/net/ssl/SSLEngine;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final org.xnio.Pooled<java.nio.ByteBuffer> receiveBuffer;
    descriptor: Lorg/xnio/Pooled;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Lorg/xnio/Pooled<Ljava/nio/ByteBuffer;>;

  private final org.xnio.Pooled<java.nio.ByteBuffer> sendBuffer;
    descriptor: Lorg/xnio/Pooled;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Lorg/xnio/Pooled<Ljava/nio/ByteBuffer;>;

  private java.nio.ByteBuffer expandedSendBuffer;
    descriptor: Ljava/nio/ByteBuffer;
    flags: (0x0002) ACC_PRIVATE

  private final org.xnio.Pooled<java.nio.ByteBuffer> readBuffer;
    descriptor: Lorg/xnio/Pooled;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Lorg/xnio/Pooled<Ljava/nio/ByteBuffer;>;

  private final org.xnio.conduits.StreamSinkConduit sinkConduit;
    descriptor: Lorg/xnio/conduits/StreamSinkConduit;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final org.xnio.conduits.StreamSourceConduit sourceConduit;
    descriptor: Lorg/xnio/conduits/StreamSourceConduit;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final org.xnio.ssl.JsseSslStreamConnection connection;
    descriptor: Lorg/xnio/ssl/JsseSslStreamConnection;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private volatile int state;
    descriptor: I
    flags: (0x0042) ACC_PRIVATE, ACC_VOLATILE

  private static final java.util.concurrent.atomic.AtomicIntegerFieldUpdater<org.xnio.ssl.JsseSslConduitEngine> stateUpdater;
    descriptor: Ljava/util/concurrent/atomic/AtomicIntegerFieldUpdater;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    Signature: Ljava/util/concurrent/atomic/AtomicIntegerFieldUpdater<Lorg/xnio/ssl/JsseSslConduitEngine;>;

  private volatile java.lang.Thread readWaiter;
    descriptor: Ljava/lang/Thread;
    flags: (0x0042) ACC_PRIVATE, ACC_VOLATILE

  private volatile java.lang.Thread writeWaiter;
    descriptor: Ljava/lang/Thread;
    flags: (0x0042) ACC_PRIVATE, ACC_VOLATILE

  private static final java.util.concurrent.atomic.AtomicReferenceFieldUpdater<org.xnio.ssl.JsseSslConduitEngine, java.lang.Thread> readWaiterUpdater;
    descriptor: Ljava/util/concurrent/atomic/AtomicReferenceFieldUpdater;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    Signature: Ljava/util/concurrent/atomic/AtomicReferenceFieldUpdater<Lorg/xnio/ssl/JsseSslConduitEngine;Ljava/lang/Thread;>;

  private static final java.util.concurrent.atomic.AtomicReferenceFieldUpdater<org.xnio.ssl.JsseSslConduitEngine, java.lang.Thread> writeWaiterUpdater;
    descriptor: Ljava/util/concurrent/atomic/AtomicReferenceFieldUpdater;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    Signature: Ljava/util/concurrent/atomic/AtomicReferenceFieldUpdater<Lorg/xnio/ssl/JsseSslConduitEngine;Ljava/lang/Thread;>;

  private int failureCount;
    descriptor: I
    flags: (0x0002) ACC_PRIVATE

  static final boolean $assertionsDisabled;
    descriptor: Z
    flags: (0x1018) ACC_STATIC, ACC_FINAL, ACC_SYNTHETIC

  private static volatile int[] $SWITCH_TABLE$javax$net$ssl$SSLEngineResult$Status;
    descriptor: [I
    flags: (0x104a) ACC_PRIVATE, ACC_STATIC, ACC_VOLATILE, ACC_SYNTHETIC

  private static volatile int[] $SWITCH_TABLE$javax$net$ssl$SSLEngineResult$HandshakeStatus;
    descriptor: [I
    flags: (0x104a) ACC_PRIVATE, ACC_STATIC, ACC_VOLATILE, ACC_SYNTHETIC

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=3, locals=0, args_size=0
         0: .line 61
            ldc Lorg/xnio/ssl/JsseSslConduitEngine;
            invokevirtual java.lang.Class.desiredAssertionStatus:()Z
            ifne 1
            iconst_1
            goto 2
      StackMap locals:
      StackMap stack:
         1: iconst_0
      StackMap locals:
      StackMap stack: int
         2: putstatic org.xnio.ssl.JsseSslConduitEngine.$assertionsDisabled:Z
         3: .line 63
            ldc "org.xnio.conduits"
            invokestatic org.jboss.logging.Logger.getLogger:(Ljava/lang/String;)Lorg/jboss/logging/Logger;
            putstatic org.xnio.ssl.JsseSslConduitEngine.log:Lorg/jboss/logging/Logger;
         4: .line 64
            ldc Lorg/xnio/ssl/JsseSslConduitEngine;
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
            putstatic org.xnio.ssl.JsseSslConduitEngine.FQCN:Ljava/lang/String;
         5: .line 71
            iconst_0
            bipush 15
            invokestatic org.xnio.Bits.intBitMask:(II)I
            putstatic org.xnio.ssl.JsseSslConduitEngine.READ_FLAGS:I
         6: .line 81
            bipush 16
            bipush 31
            invokestatic org.xnio.Bits.intBitMask:(II)I
            putstatic org.xnio.ssl.JsseSslConduitEngine.WRITE_FLAGS:I
         7: .line 83
            iconst_0
            invokestatic java.nio.ByteBuffer.allocate:(I)Ljava/nio/ByteBuffer;
            putstatic org.xnio.ssl.JsseSslConduitEngine.EMPTY_BUFFER:Ljava/nio/ByteBuffer;
         8: .line 107
            ldc Lorg/xnio/ssl/JsseSslConduitEngine;
            ldc "state"
            invokestatic java.util.concurrent.atomic.AtomicIntegerFieldUpdater.newUpdater:(Ljava/lang/Class;Ljava/lang/String;)Ljava/util/concurrent/atomic/AtomicIntegerFieldUpdater;
            putstatic org.xnio.ssl.JsseSslConduitEngine.stateUpdater:Ljava/util/concurrent/atomic/AtomicIntegerFieldUpdater;
         9: .line 113
            ldc Lorg/xnio/ssl/JsseSslConduitEngine;
            ldc Ljava/lang/Thread;
            ldc "readWaiter"
            invokestatic java.util.concurrent.atomic.AtomicReferenceFieldUpdater.newUpdater:(Ljava/lang/Class;Ljava/lang/Class;Ljava/lang/String;)Ljava/util/concurrent/atomic/AtomicReferenceFieldUpdater;
            putstatic org.xnio.ssl.JsseSslConduitEngine.readWaiterUpdater:Ljava/util/concurrent/atomic/AtomicReferenceFieldUpdater;
        10: .line 114
            ldc Lorg/xnio/ssl/JsseSslConduitEngine;
            ldc Ljava/lang/Thread;
            ldc "writeWaiter"
            invokestatic java.util.concurrent.atomic.AtomicReferenceFieldUpdater.newUpdater:(Ljava/lang/Class;Ljava/lang/Class;Ljava/lang/String;)Ljava/util/concurrent/atomic/AtomicReferenceFieldUpdater;
            putstatic org.xnio.ssl.JsseSslConduitEngine.writeWaiterUpdater:Ljava/util/concurrent/atomic/AtomicReferenceFieldUpdater;
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  void <init>(org.xnio.ssl.JsseSslStreamConnection, org.xnio.conduits.StreamSinkConduit, org.xnio.conduits.StreamSourceConduit, javax.net.ssl.SSLEngine, org.xnio.Pool<java.nio.ByteBuffer>, org.xnio.Pool<java.nio.ByteBuffer>);
    descriptor: (Lorg/xnio/ssl/JsseSslStreamConnection;Lorg/xnio/conduits/StreamSinkConduit;Lorg/xnio/conduits/StreamSourceConduit;Ljavax/net/ssl/SSLEngine;Lorg/xnio/Pool;Lorg/xnio/Pool;)V
    flags: (0x0000) 
    Code:
      stack=2, locals=12, args_size=7
        start local 0 // org.xnio.ssl.JsseSslConduitEngine this
        start local 1 // org.xnio.ssl.JsseSslStreamConnection connection
        start local 2 // org.xnio.conduits.StreamSinkConduit sinkConduit
        start local 3 // org.xnio.conduits.StreamSourceConduit sourceConduit
        start local 4 // javax.net.ssl.SSLEngine engine
        start local 5 // org.xnio.Pool socketBufferPool
        start local 6 // org.xnio.Pool applicationBufferPool
         0: .line 126
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 583
            aload 0 /* this */
            iconst_0
            putfield org.xnio.ssl.JsseSslConduitEngine.failureCount:I
         2: .line 127
            aload 1 /* connection */
            ifnonnull 4
         3: .line 128
            getstatic org.xnio._private.Messages.msg:Lorg/xnio/_private/Messages;
            ldc "connection"
            invokeinterface org.xnio._private.Messages.nullParameter:(Ljava/lang/String;)Ljava/lang/IllegalArgumentException;
            athrow
         4: .line 130
      StackMap locals: org.xnio.ssl.JsseSslConduitEngine org.xnio.ssl.JsseSslStreamConnection org.xnio.conduits.StreamSinkConduit org.xnio.conduits.StreamSourceConduit javax.net.ssl.SSLEngine org.xnio.Pool org.xnio.Pool
      StackMap stack:
            aload 2 /* sinkConduit */
            ifnonnull 6
         5: .line 131
            getstatic org.xnio._private.Messages.msg:Lorg/xnio/_private/Messages;
            ldc "sinkConduit"
            invokeinterface org.xnio._private.Messages.nullParameter:(Ljava/lang/String;)Ljava/lang/IllegalArgumentException;
            athrow
         6: .line 133
      StackMap locals:
      StackMap stack:
            aload 3 /* sourceConduit */
            ifnonnull 8
         7: .line 134
            getstatic org.xnio._private.Messages.msg:Lorg/xnio/_private/Messages;
            ldc "sourceConduit"
            invokeinterface org.xnio._private.Messages.nullParameter:(Ljava/lang/String;)Ljava/lang/IllegalArgumentException;
            athrow
         8: .line 136
      StackMap locals:
      StackMap stack:
            aload 4 /* engine */
            ifnonnull 10
         9: .line 137
            getstatic org.xnio._private.Messages.msg:Lorg/xnio/_private/Messages;
            ldc "engine"
            invokeinterface org.xnio._private.Messages.nullParameter:(Ljava/lang/String;)Ljava/lang/IllegalArgumentException;
            athrow
        10: .line 139
      StackMap locals:
      StackMap stack:
            aload 5 /* socketBufferPool */
            ifnonnull 12
        11: .line 140
            getstatic org.xnio._private.Messages.msg:Lorg/xnio/_private/Messages;
            ldc "socketBufferPool"
            invokeinterface org.xnio._private.Messages.nullParameter:(Ljava/lang/String;)Ljava/lang/IllegalArgumentException;
            athrow
        12: .line 142
      StackMap locals:
      StackMap stack:
            aload 6 /* applicationBufferPool */
            ifnonnull 14
        13: .line 143
            getstatic org.xnio._private.Messages.msg:Lorg/xnio/_private/Messages;
            ldc "applicationBufferPool"
            invokeinterface org.xnio._private.Messages.nullParameter:(Ljava/lang/String;)Ljava/lang/IllegalArgumentException;
            athrow
        14: .line 145
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* connection */
            putfield org.xnio.ssl.JsseSslConduitEngine.connection:Lorg/xnio/ssl/JsseSslStreamConnection;
        15: .line 146
            aload 0 /* this */
            aload 2 /* sinkConduit */
            putfield org.xnio.ssl.JsseSslConduitEngine.sinkConduit:Lorg/xnio/conduits/StreamSinkConduit;
        16: .line 147
            aload 0 /* this */
            aload 3 /* sourceConduit */
            putfield org.xnio.ssl.JsseSslConduitEngine.sourceConduit:Lorg/xnio/conduits/StreamSourceConduit;
        17: .line 148
            aload 0 /* this */
            aload 4 /* engine */
            putfield org.xnio.ssl.JsseSslConduitEngine.engine:Ljavax/net/ssl/SSLEngine;
        18: .line 149
            aload 0 /* this */
            ldc 4194304
            putfield org.xnio.ssl.JsseSslConduitEngine.state:I
        19: .line 150
            aload 4 /* engine */
            invokevirtual javax.net.ssl.SSLEngine.getSession:()Ljavax/net/ssl/SSLSession;
            astore 7 /* session */
        start local 7 // javax.net.ssl.SSLSession session
        20: .line 151
            aload 7 /* session */
            invokeinterface javax.net.ssl.SSLSession.getPacketBufferSize:()I
            istore 8 /* packetBufferSize */
        start local 8 // int packetBufferSize
        21: .line 152
            iconst_0
            istore 9 /* ok */
        start local 9 // boolean ok
        22: .line 153
            aload 0 /* this */
            aload 5 /* socketBufferPool */
            invokeinterface org.xnio.Pool.allocate:()Lorg/xnio/Pooled;
            putfield org.xnio.ssl.JsseSslConduitEngine.receiveBuffer:Lorg/xnio/Pooled;
        23: .line 155
            aload 0 /* this */
            getfield org.xnio.ssl.JsseSslConduitEngine.receiveBuffer:Lorg/xnio/Pooled;
            invokeinterface org.xnio.Pooled.getResource:()Ljava/lang/Object;
            checkcast java.nio.ByteBuffer
            invokevirtual java.nio.ByteBuffer.flip:()Ljava/nio/Buffer;
            pop
        24: .line 156
            aload 0 /* this */
            aload 5 /* socketBufferPool */
            invokeinterface org.xnio.Pool.allocate:()Lorg/xnio/Pooled;
            putfield org.xnio.ssl.JsseSslConduitEngine.sendBuffer:Lorg/xnio/Pooled;
        25: .line 158
            aload 0 /* this */
            getfield org.xnio.ssl.JsseSslConduitEngine.receiveBuffer:Lorg/xnio/Pooled;
            invokeinterface org.xnio.Pooled.getResource:()Ljava/lang/Object;
            checkcast java.nio.ByteBuffer
            invokevirtual java.nio.ByteBuffer.capacity:()I
            iload 8 /* packetBufferSize */
            if_icmplt 26
            aload 0 /* this */
            getfield org.xnio.ssl.JsseSslConduitEngine.sendBuffer:Lorg/xnio/Pooled;
            invokeinterface org.xnio.Pooled.getResource:()Ljava/lang/Object;
            checkcast java.nio.ByteBuffer
            invokevirtual java.nio.ByteBuffer.capacity:()I
            iload 8 /* packetBufferSize */
            if_icmpge 27
        26: .line 160
      StackMap locals: javax.net.ssl.SSLSession int int
      StackMap stack:
            aload 0 /* this */
            iload 8 /* packetBufferSize */
            invokestatic java.nio.ByteBuffer.allocate:(I)Ljava/nio/ByteBuffer;
            putfield org.xnio.ssl.JsseSslConduitEngine.expandedSendBuffer:Ljava/nio/ByteBuffer;
        27: .line 162
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 6 /* applicationBufferPool */
            invokeinterface org.xnio.Pool.allocate:()Lorg/xnio/Pooled;
            putfield org.xnio.ssl.JsseSslConduitEngine.readBuffer:Lorg/xnio/Pooled;
        28: .line 163
            iconst_1
            istore 9 /* ok */
        29: .line 164
            goto 33
      StackMap locals:
      StackMap stack: java.lang.Throwable
        30: astore 10
        31: .line 165
            iload 9 /* ok */
            ifne 32
            aload 0 /* this */
            getfield org.xnio.ssl.JsseSslConduitEngine.sendBuffer:Lorg/xnio/Pooled;
            invokeinterface org.xnio.Pooled.free:()V
        32: .line 166
      StackMap locals: java.lang.Throwable
      StackMap stack:
            aload 10
            athrow
        33: .line 165
      StackMap locals:
      StackMap stack:
            iload 9 /* ok */
            ifne 38
            aload 0 /* this */
            getfield org.xnio.ssl.JsseSslConduitEngine.sendBuffer:Lorg/xnio/Pooled;
            invokeinterface org.xnio.Pooled.free:()V
        34: .line 167
            goto 38
      StackMap locals:
      StackMap stack: java.lang.Throwable
        35: astore 11
        36: .line 168
            iload 9 /* ok */
            ifne 37
            aload 0 /* this */
            getfield org.xnio.ssl.JsseSslConduitEngine.receiveBuffer:Lorg/xnio/Pooled;
            invokeinterface org.xnio.Pooled.free:()V
        37: .line 169
      StackMap locals: org.xnio.ssl.JsseSslConduitEngine org.xnio.ssl.JsseSslStreamConnection org.xnio.conduits.StreamSinkConduit org.xnio.conduits.StreamSourceConduit javax.net.ssl.SSLEngine org.xnio.Pool org.xnio.Pool javax.net.ssl.SSLSession int int top java.lang.Throwable
      StackMap stack:
            aload 11
            athrow
        38: .line 168
      StackMap locals: org.xnio.ssl.JsseSslConduitEngine org.xnio.ssl.JsseSslStreamConnection org.xnio.conduits.StreamSinkConduit org.xnio.conduits.StreamSourceConduit javax.net.ssl.SSLEngine org.xnio.Pool org.xnio.Pool javax.net.ssl.SSLSession int int
      StackMap stack:
            iload 9 /* ok */
            ifne 39
            aload 0 /* this */
            getfield org.xnio.ssl.JsseSslConduitEngine.receiveBuffer:Lorg/xnio/Pooled;
            invokeinterface org.xnio.Pooled.free:()V
        39: .line 170
      StackMap locals:
      StackMap stack:
            return
        end local 9 // boolean ok
        end local 8 // int packetBufferSize
        end local 7 // javax.net.ssl.SSLSession session
        end local 6 // org.xnio.Pool applicationBufferPool
        end local 5 // org.xnio.Pool socketBufferPool
        end local 4 // javax.net.ssl.SSLEngine engine
        end local 3 // org.xnio.conduits.StreamSourceConduit sourceConduit
        end local 2 // org.xnio.conduits.StreamSinkConduit sinkConduit
        end local 1 // org.xnio.ssl.JsseSslStreamConnection connection
        end local 0 // org.xnio.ssl.JsseSslConduitEngine this
      LocalVariableTable:
        Start  End  Slot                   Name  Signature
            0   40     0                   this  Lorg/xnio/ssl/JsseSslConduitEngine;
            0   40     1             connection  Lorg/xnio/ssl/JsseSslStreamConnection;
            0   40     2            sinkConduit  Lorg/xnio/conduits/StreamSinkConduit;
            0   40     3          sourceConduit  Lorg/xnio/conduits/StreamSourceConduit;
            0   40     4                 engine  Ljavax/net/ssl/SSLEngine;
            0   40     5       socketBufferPool  Lorg/xnio/Pool<Ljava/nio/ByteBuffer;>;
            0   40     6  applicationBufferPool  Lorg/xnio/Pool<Ljava/nio/ByteBuffer;>;
           20   40     7                session  Ljavax/net/ssl/SSLSession;
           21   40     8       packetBufferSize  I
           22   40     9                     ok  Z
      Exception table:
        from    to  target  type
          25    30      30  any
          23    35      35  any
    Signature: (Lorg/xnio/ssl/JsseSslStreamConnection;Lorg/xnio/conduits/StreamSinkConduit;Lorg/xnio/conduits/StreamSourceConduit;Ljavax/net/ssl/SSLEngine;Lorg/xnio/Pool<Ljava/nio/ByteBuffer;>;Lorg/xnio/Pool<Ljava/nio/ByteBuffer;>;)V
    MethodParameters:
                       Name  Flags
      connection             final
      sinkConduit            final
      sourceConduit          final
      engine                 final
      socketBufferPool       final
      applicationBufferPool  final

  public void beginHandshake();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.xnio.ssl.JsseSslConduitEngine this
         0: .line 178
            aload 0 /* this */
            getfield org.xnio.ssl.JsseSslConduitEngine.engine:Ljavax/net/ssl/SSLEngine;
            invokevirtual javax.net.ssl.SSLEngine.beginHandshake:()V
         1: .line 179
            return
        end local 0 // org.xnio.ssl.JsseSslConduitEngine this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/xnio/ssl/JsseSslConduitEngine;
    Exceptions:
      throws java.io.IOException

  public javax.net.ssl.SSLSession getSession();
    descriptor: ()Ljavax/net/ssl/SSLSession;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.xnio.ssl.JsseSslConduitEngine this
         0: .line 185
            aload 0 /* this */
            getfield org.xnio.ssl.JsseSslConduitEngine.engine:Ljavax/net/ssl/SSLEngine;
            invokevirtual javax.net.ssl.SSLEngine.getSession:()Ljavax/net/ssl/SSLSession;
            areturn
        end local 0 // org.xnio.ssl.JsseSslConduitEngine this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/xnio/ssl/JsseSslConduitEngine;

  public int wrap(java.nio.ByteBuffer);
    descriptor: (Ljava/nio/ByteBuffer;)I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // org.xnio.ssl.JsseSslConduitEngine this
        start local 1 // java.nio.ByteBuffer src
         0: .line 204
            aload 0 /* this */
            aload 1 /* src */
            iconst_0
            invokevirtual org.xnio.ssl.JsseSslConduitEngine.wrap:(Ljava/nio/ByteBuffer;Z)I
            ireturn
        end local 1 // java.nio.ByteBuffer src
        end local 0 // org.xnio.ssl.JsseSslConduitEngine this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/xnio/ssl/JsseSslConduitEngine;
            0    1     1   src  Ljava/nio/ByteBuffer;
    Exceptions:
      throws java.io.IOException
    MethodParameters:
      Name  Flags
      src   final

  public long wrap(java.nio.ByteBuffer[], int, int);
    descriptor: ([Ljava/nio/ByteBuffer;II)J
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=9, args_size=4
        start local 0 // org.xnio.ssl.JsseSslConduitEngine this
        start local 1 // java.nio.ByteBuffer[] srcs
        start local 2 // int offset
        start local 3 // int length
         0: .line 225
            getstatic org.xnio.ssl.JsseSslConduitEngine.$assertionsDisabled:Z
            ifne 1
            aload 0 /* this */
            invokevirtual org.xnio.ssl.JsseSslConduitEngine.getWrapLock:()Ljava/lang/Object;
            invokestatic java.lang.Thread.holdsLock:(Ljava/lang/Object;)Z
            ifeq 1
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         1: .line 226
      StackMap locals:
      StackMap stack:
            getstatic org.xnio.ssl.JsseSslConduitEngine.$assertionsDisabled:Z
            ifne 2
            aload 0 /* this */
            invokevirtual org.xnio.ssl.JsseSslConduitEngine.getUnwrapLock:()Ljava/lang/Object;
            invokestatic java.lang.Thread.holdsLock:(Ljava/lang/Object;)Z
            ifeq 2
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         2: .line 227
      StackMap locals:
      StackMap stack:
            iload 3 /* length */
            iconst_1
            if_icmpge 4
         3: .line 228
            lconst_0
            lreturn
         4: .line 230
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.xnio.ssl.JsseSslConduitEngine.state:I
            ldc 262144
            invokestatic org.xnio.Bits.allAreSet:(II)Z
            ifeq 6
         5: .line 232
            new java.nio.channels.ClosedChannelException
            dup
            invokespecial java.nio.channels.ClosedChannelException.<init>:()V
            athrow
         6: .line 234
      StackMap locals:
      StackMap stack:
            lconst_0
            lstore 4 /* bytesConsumed */
        start local 4 // long bytesConsumed
         7: .line 239
      StackMap locals: long
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.xnio.ssl.JsseSslConduitEngine.getWrapLock:()Ljava/lang/Object;
            dup
            astore 8
            monitorenter
         8: .line 240
            aload 0 /* this */
            aload 0 /* this */
            aload 1 /* srcs */
            iload 2 /* offset */
            iload 3 /* length */
            aload 0 /* this */
            invokevirtual org.xnio.ssl.JsseSslConduitEngine.getSendBuffer:()Ljava/nio/ByteBuffer;
            invokevirtual org.xnio.ssl.JsseSslConduitEngine.engineWrap:([Ljava/nio/ByteBuffer;IILjava/nio/ByteBuffer;)Ljavax/net/ssl/SSLEngineResult;
            dup
            astore 7 /* result */
        start local 7 // javax.net.ssl.SSLEngineResult result
         9: iconst_0
            invokevirtual org.xnio.ssl.JsseSslConduitEngine.handleWrapResult:(Ljavax/net/ssl/SSLEngineResult;Z)Z
            istore 6 /* run */
        start local 6 // boolean run
        10: .line 241
            lload 4 /* bytesConsumed */
            aload 7 /* result */
            invokevirtual javax.net.ssl.SSLEngineResult.bytesConsumed:()I
            i2l
            ladd
            lstore 4 /* bytesConsumed */
        11: .line 239
            aload 8
            monitorexit
        12: goto 15
        end local 7 // javax.net.ssl.SSLEngineResult result
        end local 6 // boolean run
      StackMap locals: org.xnio.ssl.JsseSslConduitEngine java.nio.ByteBuffer[] int int long top top java.lang.Object
      StackMap stack: java.lang.Throwable
        13: aload 8
            monitorexit
        14: athrow
        start local 6 // boolean run
        start local 7 // javax.net.ssl.SSLEngineResult result
        15: .line 244
      StackMap locals: org.xnio.ssl.JsseSslConduitEngine java.nio.ByteBuffer[] int int long int javax.net.ssl.SSLEngineResult
      StackMap stack:
            iload 6 /* run */
            ifeq 17
            aload 0 /* this */
            aload 7 /* result */
            iconst_1
            invokevirtual org.xnio.ssl.JsseSslConduitEngine.handleHandshake:(Ljavax/net/ssl/SSLEngineResult;Z)Z
            ifne 16
            aload 0 /* this */
            invokevirtual org.xnio.ssl.JsseSslConduitEngine.isUnwrapNeeded:()Z
            ifne 17
            aload 1 /* srcs */
            iload 2 /* offset */
            iload 3 /* length */
            invokestatic org.xnio.Buffers.hasRemaining:([Ljava/nio/Buffer;II)Z
            ifeq 17
      StackMap locals:
      StackMap stack:
        16: iconst_1
            goto 18
      StackMap locals:
      StackMap stack:
        17: iconst_0
      StackMap locals:
      StackMap stack: int
        18: istore 6 /* run */
        end local 7 // javax.net.ssl.SSLEngineResult result
        19: .line 245
            iload 6 /* run */
            ifne 7
        20: .line 246
            goto 31
        end local 6 // boolean run
      StackMap locals: org.xnio.ssl.JsseSslConduitEngine java.nio.ByteBuffer[] int int long
      StackMap stack: javax.net.ssl.SSLHandshakeException
        21: astore 7 /* e */
        start local 7 // javax.net.ssl.SSLHandshakeException e
        22: .line 248
            aload 0 /* this */
            invokevirtual org.xnio.ssl.JsseSslConduitEngine.getWrapLock:()Ljava/lang/Object;
            dup
            astore 8
            monitorenter
        23: .line 249
            aload 0 /* this */
            getfield org.xnio.ssl.JsseSslConduitEngine.engine:Ljavax/net/ssl/SSLEngine;
            getstatic org.xnio.ssl.JsseSslConduitEngine.EMPTY_BUFFER:Ljava/nio/ByteBuffer;
            aload 0 /* this */
            invokevirtual org.xnio.ssl.JsseSslConduitEngine.getSendBuffer:()Ljava/nio/ByteBuffer;
            invokevirtual javax.net.ssl.SSLEngine.wrap:(Ljava/nio/ByteBuffer;Ljava/nio/ByteBuffer;)Ljavax/net/ssl/SSLEngineResult;
            pop
        24: .line 250
            aload 0 /* this */
            invokevirtual org.xnio.ssl.JsseSslConduitEngine.doFlush:()Z
            pop
        25: .line 248
            aload 8
            monitorexit
        26: goto 30
      StackMap locals: org.xnio.ssl.JsseSslConduitEngine java.nio.ByteBuffer[] int int long top javax.net.ssl.SSLHandshakeException java.lang.Object
      StackMap stack: java.lang.Throwable
        27: aload 8
            monitorexit
        28: athrow
        29: .line 252
      StackMap locals: org.xnio.ssl.JsseSslConduitEngine java.nio.ByteBuffer[] int int long top javax.net.ssl.SSLHandshakeException
      StackMap stack: java.io.IOException
            pop
        30: .line 253
      StackMap locals:
      StackMap stack:
            aload 7 /* e */
            athrow
        end local 7 // javax.net.ssl.SSLHandshakeException e
        start local 6 // boolean run
        31: .line 255
      StackMap locals: org.xnio.ssl.JsseSslConduitEngine java.nio.ByteBuffer[] int int long int
      StackMap stack:
            lload 4 /* bytesConsumed */
            lreturn
        end local 6 // boolean run
        end local 4 // long bytesConsumed
        end local 3 // int length
        end local 2 // int offset
        end local 1 // java.nio.ByteBuffer[] srcs
        end local 0 // org.xnio.ssl.JsseSslConduitEngine this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0   32     0           this  Lorg/xnio/ssl/JsseSslConduitEngine;
            0   32     1           srcs  [Ljava/nio/ByteBuffer;
            0   32     2         offset  I
            0   32     3         length  I
            7   32     4  bytesConsumed  J
           10   13     6            run  Z
           15   21     6            run  Z
           31   32     6            run  Z
            9   13     7         result  Ljavax/net/ssl/SSLEngineResult;
           15   19     7         result  Ljavax/net/ssl/SSLEngineResult;
           22   31     7              e  Ljavax/net/ssl/SSLHandshakeException;
      Exception table:
        from    to  target  type
           8    12      13  any
          13    14      13  any
           7    20      21  Class javax.net.ssl.SSLHandshakeException
          23    26      27  any
          27    28      27  any
          22    29      29  Class java.io.IOException
    Exceptions:
      throws java.io.IOException
    MethodParameters:
        Name  Flags
      srcs    final
      offset  final
      length  final

  public java.nio.ByteBuffer getWrappedBuffer();
    descriptor: ()Ljava/nio/ByteBuffer;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.xnio.ssl.JsseSslConduitEngine this
         0: .line 266
            getstatic org.xnio.ssl.JsseSslConduitEngine.$assertionsDisabled:Z
            ifne 1
            aload 0 /* this */
            invokevirtual org.xnio.ssl.JsseSslConduitEngine.getWrapLock:()Ljava/lang/Object;
            invokestatic java.lang.Thread.holdsLock:(Ljava/lang/Object;)Z
            ifne 1
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         1: .line 267
      StackMap locals:
      StackMap stack:
            getstatic org.xnio.ssl.JsseSslConduitEngine.$assertionsDisabled:Z
            ifne 2
            aload 0 /* this */
            invokevirtual org.xnio.ssl.JsseSslConduitEngine.getUnwrapLock:()Ljava/lang/Object;
            invokestatic java.lang.Thread.holdsLock:(Ljava/lang/Object;)Z
            ifeq 2
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         2: .line 268
      StackMap locals:
      StackMap stack:
            getstatic org.xnio.ssl.JsseSslConduitEngine.stateUpdater:Ljava/util/concurrent/atomic/AtomicIntegerFieldUpdater;
            aload 0 /* this */
            invokevirtual java.util.concurrent.atomic.AtomicIntegerFieldUpdater.get:(Ljava/lang/Object;)I
            ldc 8388608
            invokestatic org.xnio.Bits.allAreSet:(II)Z
            ifeq 3
            getstatic org.xnio.Buffers.EMPTY_BYTE_BUFFER:Ljava/nio/ByteBuffer;
            goto 4
      StackMap locals:
      StackMap stack:
         3: aload 0 /* this */
            invokevirtual org.xnio.ssl.JsseSslConduitEngine.getSendBuffer:()Ljava/nio/ByteBuffer;
      StackMap locals:
      StackMap stack: java.nio.ByteBuffer
         4: areturn
        end local 0 // org.xnio.ssl.JsseSslConduitEngine this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0  this  Lorg/xnio/ssl/JsseSslConduitEngine;

  public java.lang.Object getWrapLock();
    descriptor: ()Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.xnio.ssl.JsseSslConduitEngine this
         0: .line 281
            aload 0 /* this */
            getfield org.xnio.ssl.JsseSslConduitEngine.sendBuffer:Lorg/xnio/Pooled;
            areturn
        end local 0 // org.xnio.ssl.JsseSslConduitEngine this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/xnio/ssl/JsseSslConduitEngine;

  private int wrap(java.nio.ByteBuffer, boolean);
    descriptor: (Ljava/nio/ByteBuffer;Z)I
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=7, args_size=3
        start local 0 // org.xnio.ssl.JsseSslConduitEngine this
        start local 1 // java.nio.ByteBuffer src
        start local 2 // boolean isCloseExpected
         0: .line 295
            getstatic org.xnio.ssl.JsseSslConduitEngine.$assertionsDisabled:Z
            ifne 1
            aload 0 /* this */
            invokevirtual org.xnio.ssl.JsseSslConduitEngine.getWrapLock:()Ljava/lang/Object;
            invokestatic java.lang.Thread.holdsLock:(Ljava/lang/Object;)Z
            ifeq 1
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         1: .line 296
      StackMap locals:
      StackMap stack:
            getstatic org.xnio.ssl.JsseSslConduitEngine.$assertionsDisabled:Z
            ifne 2
            aload 0 /* this */
            invokevirtual org.xnio.ssl.JsseSslConduitEngine.getUnwrapLock:()Ljava/lang/Object;
            invokestatic java.lang.Thread.holdsLock:(Ljava/lang/Object;)Z
            ifeq 2
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         2: .line 297
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.xnio.ssl.JsseSslConduitEngine.state:I
            ldc 262144
            invokestatic org.xnio.Bits.allAreSet:(II)Z
            ifeq 4
         3: .line 299
            new java.nio.channels.ClosedChannelException
            dup
            invokespecial java.nio.channels.ClosedChannelException.<init>:()V
            athrow
         4: .line 301
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            ldc 4194304
            invokevirtual org.xnio.ssl.JsseSslConduitEngine.clearFlags:(I)I
            pop
         5: .line 302
            iconst_0
            istore 3 /* bytesConsumed */
        start local 3 // int bytesConsumed
         6: .line 307
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.xnio.ssl.JsseSslConduitEngine.getWrapLock:()Ljava/lang/Object;
            dup
            astore 6
            monitorenter
         7: .line 308
            aload 0 /* this */
            aload 0 /* this */
            aload 1 /* src */
            aload 0 /* this */
            invokevirtual org.xnio.ssl.JsseSslConduitEngine.getSendBuffer:()Ljava/nio/ByteBuffer;
            invokevirtual org.xnio.ssl.JsseSslConduitEngine.engineWrap:(Ljava/nio/ByteBuffer;Ljava/nio/ByteBuffer;)Ljavax/net/ssl/SSLEngineResult;
            dup
            astore 5 /* result */
        start local 5 // javax.net.ssl.SSLEngineResult result
         8: iload 2 /* isCloseExpected */
            invokevirtual org.xnio.ssl.JsseSslConduitEngine.handleWrapResult:(Ljavax/net/ssl/SSLEngineResult;Z)Z
            istore 4 /* run */
        start local 4 // boolean run
         9: .line 309
            iload 3 /* bytesConsumed */
            aload 5 /* result */
            invokevirtual javax.net.ssl.SSLEngineResult.bytesConsumed:()I
            iadd
            istore 3 /* bytesConsumed */
        10: .line 307
            aload 6
            monitorexit
        11: goto 14
        end local 5 // javax.net.ssl.SSLEngineResult result
        end local 4 // boolean run
      StackMap locals: org.xnio.ssl.JsseSslConduitEngine java.nio.ByteBuffer int int top top java.lang.Object
      StackMap stack: java.lang.Throwable
        12: aload 6
            monitorexit
        13: athrow
        start local 4 // boolean run
        start local 5 // javax.net.ssl.SSLEngineResult result
        14: .line 312
      StackMap locals: org.xnio.ssl.JsseSslConduitEngine java.nio.ByteBuffer int int int javax.net.ssl.SSLEngineResult
      StackMap stack:
            iload 4 /* run */
            ifeq 16
            iload 3 /* bytesConsumed */
            ifne 16
            aload 0 /* this */
            aload 5 /* result */
            iconst_1
            invokevirtual org.xnio.ssl.JsseSslConduitEngine.handleHandshake:(Ljavax/net/ssl/SSLEngineResult;Z)Z
            ifne 15
            aload 0 /* this */
            invokevirtual org.xnio.ssl.JsseSslConduitEngine.isUnwrapNeeded:()Z
            ifne 16
            aload 1 /* src */
            invokevirtual java.nio.ByteBuffer.hasRemaining:()Z
            ifeq 16
      StackMap locals:
      StackMap stack:
        15: iconst_1
            goto 17
      StackMap locals:
      StackMap stack:
        16: iconst_0
      StackMap locals:
      StackMap stack: int
        17: istore 4 /* run */
        end local 5 // javax.net.ssl.SSLEngineResult result
        18: .line 313
            iload 4 /* run */
            ifne 6
        19: .line 314
            goto 30
        end local 4 // boolean run
      StackMap locals: org.xnio.ssl.JsseSslConduitEngine java.nio.ByteBuffer int int
      StackMap stack: javax.net.ssl.SSLHandshakeException
        20: astore 5 /* e */
        start local 5 // javax.net.ssl.SSLHandshakeException e
        21: .line 316
            aload 0 /* this */
            invokevirtual org.xnio.ssl.JsseSslConduitEngine.getWrapLock:()Ljava/lang/Object;
            dup
            astore 6
            monitorenter
        22: .line 317
            aload 0 /* this */
            getfield org.xnio.ssl.JsseSslConduitEngine.engine:Ljavax/net/ssl/SSLEngine;
            getstatic org.xnio.ssl.JsseSslConduitEngine.EMPTY_BUFFER:Ljava/nio/ByteBuffer;
            aload 0 /* this */
            invokevirtual org.xnio.ssl.JsseSslConduitEngine.getSendBuffer:()Ljava/nio/ByteBuffer;
            invokevirtual javax.net.ssl.SSLEngine.wrap:(Ljava/nio/ByteBuffer;Ljava/nio/ByteBuffer;)Ljavax/net/ssl/SSLEngineResult;
            pop
        23: .line 318
            aload 0 /* this */
            invokevirtual org.xnio.ssl.JsseSslConduitEngine.doFlush:()Z
            pop
        24: .line 316
            aload 6
            monitorexit
        25: goto 29
      StackMap locals: org.xnio.ssl.JsseSslConduitEngine java.nio.ByteBuffer int int top javax.net.ssl.SSLHandshakeException java.lang.Object
      StackMap stack: java.lang.Throwable
        26: aload 6
            monitorexit
        27: athrow
        28: .line 320
      StackMap locals: org.xnio.ssl.JsseSslConduitEngine java.nio.ByteBuffer int int top javax.net.ssl.SSLHandshakeException
      StackMap stack: java.io.IOException
            pop
        29: .line 321
      StackMap locals:
      StackMap stack:
            aload 5 /* e */
            athrow
        end local 5 // javax.net.ssl.SSLHandshakeException e
        start local 4 // boolean run
        30: .line 323
      StackMap locals: org.xnio.ssl.JsseSslConduitEngine java.nio.ByteBuffer int int int
      StackMap stack:
            iload 3 /* bytesConsumed */
            ireturn
        end local 4 // boolean run
        end local 3 // int bytesConsumed
        end local 2 // boolean isCloseExpected
        end local 1 // java.nio.ByteBuffer src
        end local 0 // org.xnio.ssl.JsseSslConduitEngine this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0   31     0             this  Lorg/xnio/ssl/JsseSslConduitEngine;
            0   31     1              src  Ljava/nio/ByteBuffer;
            0   31     2  isCloseExpected  Z
            6   31     3    bytesConsumed  I
            9   12     4              run  Z
           14   20     4              run  Z
           30   31     4              run  Z
            8   12     5           result  Ljavax/net/ssl/SSLEngineResult;
           14   18     5           result  Ljavax/net/ssl/SSLEngineResult;
           21   30     5                e  Ljavax/net/ssl/SSLHandshakeException;
      Exception table:
        from    to  target  type
           7    11      12  any
          12    13      12  any
           6    19      20  Class javax.net.ssl.SSLHandshakeException
          22    25      26  any
          26    27      26  any
          21    28      28  Class java.io.IOException
    Exceptions:
      throws java.io.IOException
    MethodParameters:
                 Name  Flags
      src              final
      isCloseExpected  

  private javax.net.ssl.SSLEngineResult engineWrap(java.nio.ByteBuffer[], int, int, java.nio.ByteBuffer);
    descriptor: ([Ljava/nio/ByteBuffer;IILjava/nio/ByteBuffer;)Ljavax/net/ssl/SSLEngineResult;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=7, locals=6, args_size=5
        start local 0 // org.xnio.ssl.JsseSslConduitEngine this
        start local 1 // java.nio.ByteBuffer[] srcs
        start local 2 // int offset
        start local 3 // int length
        start local 4 // java.nio.ByteBuffer dest
         0: .line 330
            getstatic org.xnio.ssl.JsseSslConduitEngine.$assertionsDisabled:Z
            ifne 1
            aload 0 /* this */
            invokevirtual org.xnio.ssl.JsseSslConduitEngine.getWrapLock:()Ljava/lang/Object;
            invokestatic java.lang.Thread.holdsLock:(Ljava/lang/Object;)Z
            ifne 1
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         1: .line 331
      StackMap locals:
      StackMap stack:
            getstatic org.xnio.ssl.JsseSslConduitEngine.$assertionsDisabled:Z
            ifne 2
            aload 0 /* this */
            invokevirtual org.xnio.ssl.JsseSslConduitEngine.getUnwrapLock:()Ljava/lang/Object;
            invokestatic java.lang.Thread.holdsLock:(Ljava/lang/Object;)Z
            ifeq 2
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         2: .line 332
      StackMap locals:
      StackMap stack:
            getstatic org.xnio.ssl.JsseSslConduitEngine.log:Lorg/jboss/logging/Logger;
            getstatic org.xnio.ssl.JsseSslConduitEngine.FQCN:Ljava/lang/String;
            getstatic org.jboss.logging.Logger$Level.TRACE:Lorg/jboss/logging/Logger$Level;
            aconst_null
            ldc "Wrapping %s into %s"
            aload 1 /* srcs */
            aload 4 /* dest */
            invokevirtual org.jboss.logging.Logger.logf:(Ljava/lang/String;Lorg/jboss/logging/Logger$Level;Ljava/lang/Throwable;Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;)V
         3: .line 334
            aload 0 /* this */
            getfield org.xnio.ssl.JsseSslConduitEngine.engine:Ljavax/net/ssl/SSLEngine;
            aload 1 /* srcs */
            iload 2 /* offset */
            iload 3 /* length */
            aload 4 /* dest */
            invokevirtual javax.net.ssl.SSLEngine.wrap:([Ljava/nio/ByteBuffer;IILjava/nio/ByteBuffer;)Ljavax/net/ssl/SSLEngineResult;
         4: areturn
         5: .line 335
      StackMap locals:
      StackMap stack: javax.net.ssl.SSLHandshakeException
            astore 5 /* e */
        start local 5 // javax.net.ssl.SSLHandshakeException e
         6: .line 337
            aload 0 /* this */
            getfield org.xnio.ssl.JsseSslConduitEngine.engine:Ljavax/net/ssl/SSLEngine;
            aload 1 /* srcs */
            iload 2 /* offset */
            iload 3 /* length */
            aload 4 /* dest */
            invokevirtual javax.net.ssl.SSLEngine.wrap:([Ljava/nio/ByteBuffer;IILjava/nio/ByteBuffer;)Ljavax/net/ssl/SSLEngineResult;
            pop
         7: .line 338
            aload 0 /* this */
            invokevirtual org.xnio.ssl.JsseSslConduitEngine.doFlush:()Z
            pop
         8: .line 339
            goto 10
      StackMap locals: org.xnio.ssl.JsseSslConduitEngine java.nio.ByteBuffer[] int int java.nio.ByteBuffer javax.net.ssl.SSLHandshakeException
      StackMap stack: java.io.IOException
         9: pop
        10: .line 340
      StackMap locals:
      StackMap stack:
            aload 5 /* e */
            athrow
        end local 5 // javax.net.ssl.SSLHandshakeException e
        end local 4 // java.nio.ByteBuffer dest
        end local 3 // int length
        end local 2 // int offset
        end local 1 // java.nio.ByteBuffer[] srcs
        end local 0 // org.xnio.ssl.JsseSslConduitEngine this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   11     0    this  Lorg/xnio/ssl/JsseSslConduitEngine;
            0   11     1    srcs  [Ljava/nio/ByteBuffer;
            0   11     2  offset  I
            0   11     3  length  I
            0   11     4    dest  Ljava/nio/ByteBuffer;
            6   11     5       e  Ljavax/net/ssl/SSLHandshakeException;
      Exception table:
        from    to  target  type
           3     4       5  Class javax.net.ssl.SSLHandshakeException
           6     8       9  Class java.io.IOException
    Exceptions:
      throws javax.net.ssl.SSLException
    MethodParameters:
        Name  Flags
      srcs    final
      offset  final
      length  final
      dest    final

  private javax.net.ssl.SSLEngineResult engineWrap(java.nio.ByteBuffer, java.nio.ByteBuffer);
    descriptor: (Ljava/nio/ByteBuffer;Ljava/nio/ByteBuffer;)Ljavax/net/ssl/SSLEngineResult;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=7, locals=3, args_size=3
        start local 0 // org.xnio.ssl.JsseSslConduitEngine this
        start local 1 // java.nio.ByteBuffer src
        start local 2 // java.nio.ByteBuffer dest
         0: .line 348
            getstatic org.xnio.ssl.JsseSslConduitEngine.$assertionsDisabled:Z
            ifne 1
            aload 0 /* this */
            invokevirtual org.xnio.ssl.JsseSslConduitEngine.getWrapLock:()Ljava/lang/Object;
            invokestatic java.lang.Thread.holdsLock:(Ljava/lang/Object;)Z
            ifne 1
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         1: .line 349
      StackMap locals:
      StackMap stack:
            getstatic org.xnio.ssl.JsseSslConduitEngine.$assertionsDisabled:Z
            ifne 2
            aload 0 /* this */
            invokevirtual org.xnio.ssl.JsseSslConduitEngine.getUnwrapLock:()Ljava/lang/Object;
            invokestatic java.lang.Thread.holdsLock:(Ljava/lang/Object;)Z
            ifeq 2
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         2: .line 350
      StackMap locals:
      StackMap stack:
            getstatic org.xnio.ssl.JsseSslConduitEngine.log:Lorg/jboss/logging/Logger;
            getstatic org.xnio.ssl.JsseSslConduitEngine.FQCN:Ljava/lang/String;
            getstatic org.jboss.logging.Logger$Level.TRACE:Lorg/jboss/logging/Logger$Level;
            aconst_null
            ldc "Wrapping %s into %s"
            aload 1 /* src */
            aload 2 /* dest */
            invokevirtual org.jboss.logging.Logger.logf:(Ljava/lang/String;Lorg/jboss/logging/Logger$Level;Ljava/lang/Throwable;Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;)V
         3: .line 351
            aload 0 /* this */
            getfield org.xnio.ssl.JsseSslConduitEngine.engine:Ljavax/net/ssl/SSLEngine;
            aload 1 /* src */
            aload 2 /* dest */
            invokevirtual javax.net.ssl.SSLEngine.wrap:(Ljava/nio/ByteBuffer;Ljava/nio/ByteBuffer;)Ljavax/net/ssl/SSLEngineResult;
            areturn
        end local 2 // java.nio.ByteBuffer dest
        end local 1 // java.nio.ByteBuffer src
        end local 0 // org.xnio.ssl.JsseSslConduitEngine this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Lorg/xnio/ssl/JsseSslConduitEngine;
            0    4     1   src  Ljava/nio/ByteBuffer;
            0    4     2  dest  Ljava/nio/ByteBuffer;
    Exceptions:
      throws javax.net.ssl.SSLException
    MethodParameters:
      Name  Flags
      src   final
      dest  final

  private boolean handleWrapResult(javax.net.ssl.SSLEngineResult, boolean);
    descriptor: (Ljavax/net/ssl/SSLEngineResult;Z)Z
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=6, locals=6, args_size=3
        start local 0 // org.xnio.ssl.JsseSslConduitEngine this
        start local 1 // javax.net.ssl.SSLEngineResult result
        start local 2 // boolean closeExpected
         0: .line 364
            getstatic org.xnio.ssl.JsseSslConduitEngine.$assertionsDisabled:Z
            ifne 1
            aload 0 /* this */
            invokevirtual org.xnio.ssl.JsseSslConduitEngine.getWrapLock:()Ljava/lang/Object;
            invokestatic java.lang.Thread.holdsLock:(Ljava/lang/Object;)Z
            ifne 1
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         1: .line 365
      StackMap locals:
      StackMap stack:
            getstatic org.xnio.ssl.JsseSslConduitEngine.$assertionsDisabled:Z
            ifne 2
            aload 0 /* this */
            invokevirtual org.xnio.ssl.JsseSslConduitEngine.getUnwrapLock:()Ljava/lang/Object;
            invokestatic java.lang.Thread.holdsLock:(Ljava/lang/Object;)Z
            ifeq 2
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         2: .line 366
      StackMap locals:
      StackMap stack:
            getstatic org.xnio.ssl.JsseSslConduitEngine.log:Lorg/jboss/logging/Logger;
            getstatic org.xnio.ssl.JsseSslConduitEngine.FQCN:Ljava/lang/String;
            getstatic org.jboss.logging.Logger$Level.TRACE:Lorg/jboss/logging/Logger$Level;
            aconst_null
            ldc "Wrap result is %s"
            aload 1 /* result */
            invokevirtual org.jboss.logging.Logger.logf:(Ljava/lang/String;Lorg/jboss/logging/Logger$Level;Ljava/lang/Throwable;Ljava/lang/String;Ljava/lang/Object;)V
         3: .line 367
            invokestatic org.xnio.ssl.JsseSslConduitEngine.$SWITCH_TABLE$javax$net$ssl$SSLEngineResult$Status:()[I
            aload 1 /* result */
            invokevirtual javax.net.ssl.SSLEngineResult.getStatus:()Ljavax/net/ssl/SSLEngineResult$Status;
            invokevirtual javax.net.ssl.SSLEngineResult$Status.ordinal:()I
            iaload
            tableswitch { // 1 - 4
                    1: 4
                    2: 6
                    3: 31
                    4: 29
              default: 35
          }
         4: .line 369
      StackMap locals:
      StackMap stack:
            getstatic org.xnio.ssl.JsseSslConduitEngine.$assertionsDisabled:Z
            ifne 5
            aload 1 /* result */
            invokevirtual javax.net.ssl.SSLEngineResult.bytesConsumed:()I
            ifeq 5
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         5: .line 370
      StackMap locals:
      StackMap stack:
            getstatic org.xnio.ssl.JsseSslConduitEngine.$assertionsDisabled:Z
            ifne 36
            aload 1 /* result */
            invokevirtual javax.net.ssl.SSLEngineResult.bytesProduced:()I
            ifeq 36
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         6: .line 375
      StackMap locals:
      StackMap stack:
            getstatic org.xnio.ssl.JsseSslConduitEngine.$assertionsDisabled:Z
            ifne 7
            aload 1 /* result */
            invokevirtual javax.net.ssl.SSLEngineResult.bytesConsumed:()I
            ifeq 7
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         7: .line 376
      StackMap locals:
      StackMap stack:
            getstatic org.xnio.ssl.JsseSslConduitEngine.$assertionsDisabled:Z
            ifne 8
            aload 1 /* result */
            invokevirtual javax.net.ssl.SSLEngineResult.bytesProduced:()I
            ifeq 8
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         8: .line 377
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.xnio.ssl.JsseSslConduitEngine.getSendBuffer:()Ljava/nio/ByteBuffer;
            astore 3 /* buffer */
        start local 3 // java.nio.ByteBuffer buffer
         9: .line 378
            aload 3 /* buffer */
            invokevirtual java.nio.ByteBuffer.position:()I
            ifne 16
        10: .line 379
            aload 0 /* this */
            getfield org.xnio.ssl.JsseSslConduitEngine.engine:Ljavax/net/ssl/SSLEngine;
            invokevirtual javax.net.ssl.SSLEngine.getSession:()Ljavax/net/ssl/SSLSession;
            invokeinterface javax.net.ssl.SSLSession.getPacketBufferSize:()I
            istore 4 /* bufferSize */
        start local 4 // int bufferSize
        11: .line 380
            aload 3 /* buffer */
            invokevirtual java.nio.ByteBuffer.capacity:()I
            iload 4 /* bufferSize */
            if_icmpge 15
        12: .line 381
            getstatic org.xnio._private.Messages.msg:Lorg/xnio/_private/Messages;
            iload 4 /* bufferSize */
            invokeinterface org.xnio._private.Messages.expandedSslBufferEnabled:(I)V
        13: .line 382
            aload 0 /* this */
            iload 4 /* bufferSize */
            invokestatic java.nio.ByteBuffer.allocate:(I)Ljava/nio/ByteBuffer;
            putfield org.xnio.ssl.JsseSslConduitEngine.expandedSendBuffer:Ljava/nio/ByteBuffer;
        14: .line 383
            goto 36
      StackMap locals: java.nio.ByteBuffer int
      StackMap stack:
        15: getstatic org.xnio._private.Messages.msg:Lorg/xnio/_private/Messages;
            invokeinterface org.xnio._private.Messages.wrongBufferExpansion:()Ljava/io/IOException;
            athrow
        end local 4 // int bufferSize
        16: .line 386
      StackMap locals:
      StackMap stack:
            aload 3 /* buffer */
            invokevirtual java.nio.ByteBuffer.flip:()Ljava/nio/Buffer;
            pop
        17: .line 388
            goto 22
        18: .line 389
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.xnio.ssl.JsseSslConduitEngine.sinkConduit:Lorg/xnio/conduits/StreamSinkConduit;
            aload 3 /* buffer */
            invokeinterface org.xnio.conduits.StreamSinkConduit.write:(Ljava/nio/ByteBuffer;)I
            istore 4 /* res */
        start local 4 // int res
        19: .line 390
            iload 4 /* res */
            ifne 22
        20: .line 395
            aload 3 /* buffer */
            invokevirtual java.nio.ByteBuffer.compact:()Ljava/nio/ByteBuffer;
            pop
        21: .line 391
            iconst_0
            ireturn
        end local 4 // int res
        22: .line 388
      StackMap locals:
      StackMap stack:
            aload 3 /* buffer */
            invokevirtual java.nio.ByteBuffer.hasRemaining:()Z
            ifne 18
        23: .line 394
            goto 27
      StackMap locals:
      StackMap stack: java.lang.Throwable
        24: astore 5
        25: .line 395
            aload 3 /* buffer */
            invokevirtual java.nio.ByteBuffer.compact:()Ljava/nio/ByteBuffer;
            pop
        26: .line 396
            aload 5
            athrow
        27: .line 395
      StackMap locals:
      StackMap stack:
            aload 3 /* buffer */
            invokevirtual java.nio.ByteBuffer.compact:()Ljava/nio/ByteBuffer;
            pop
        28: .line 398
            goto 36
        end local 3 // java.nio.ByteBuffer buffer
        29: .line 401
      StackMap locals:
      StackMap stack:
            iload 2 /* closeExpected */
            ifne 31
        30: .line 403
            new java.nio.channels.ClosedChannelException
            dup
            invokespecial java.nio.channels.ClosedChannelException.<init>:()V
            athrow
        31: .line 409
      StackMap locals:
      StackMap stack:
            aload 1 /* result */
            invokevirtual javax.net.ssl.SSLEngineResult.bytesConsumed:()I
            ifne 36
        32: .line 410
            aload 1 /* result */
            invokevirtual javax.net.ssl.SSLEngineResult.bytesProduced:()I
            ifle 36
        33: .line 411
            aload 0 /* this */
            invokevirtual org.xnio.ssl.JsseSslConduitEngine.doFlush:()Z
            ifne 36
        34: .line 412
            iconst_0
            ireturn
        35: .line 419
      StackMap locals:
      StackMap stack:
            getstatic org.xnio._private.Messages.msg:Lorg/xnio/_private/Messages;
            aload 1 /* result */
            invokevirtual javax.net.ssl.SSLEngineResult.getStatus:()Ljavax/net/ssl/SSLEngineResult$Status;
            invokeinterface org.xnio._private.Messages.unexpectedWrapResult:(Ljavax/net/ssl/SSLEngineResult$Status;)Ljava/io/IOException;
            athrow
        36: .line 422
      StackMap locals:
      StackMap stack:
            iconst_1
            ireturn
        end local 2 // boolean closeExpected
        end local 1 // javax.net.ssl.SSLEngineResult result
        end local 0 // org.xnio.ssl.JsseSslConduitEngine this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0   37     0           this  Lorg/xnio/ssl/JsseSslConduitEngine;
            0   37     1         result  Ljavax/net/ssl/SSLEngineResult;
            0   37     2  closeExpected  Z
            9   29     3         buffer  Ljava/nio/ByteBuffer;
           11   16     4     bufferSize  I
           19   22     4            res  I
      Exception table:
        from    to  target  type
          17    20      24  any
          22    24      24  any
    Exceptions:
      throws java.io.IOException
    MethodParameters:
               Name  Flags
      result         
      closeExpected  

  private boolean handleHandshake(javax.net.ssl.SSLEngineResult, boolean);
    descriptor: (Ljavax/net/ssl/SSLEngineResult;Z)Z
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=8, args_size=3
        start local 0 // org.xnio.ssl.JsseSslConduitEngine this
        start local 1 // javax.net.ssl.SSLEngineResult result
        start local 2 // boolean write
         0: .line 437
            getstatic org.xnio.ssl.JsseSslConduitEngine.$assertionsDisabled:Z
            ifne 1
            aload 0 /* this */
            invokevirtual org.xnio.ssl.JsseSslConduitEngine.getUnwrapLock:()Ljava/lang/Object;
            invokestatic java.lang.Thread.holdsLock:(Ljava/lang/Object;)Z
            ifeq 1
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         1: .line 439
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.xnio.ssl.JsseSslConduitEngine.isWrapNeeded:()Z
            ifeq 9
         2: .line 440
            aload 0 /* this */
            invokevirtual org.xnio.ssl.JsseSslConduitEngine.getWrapLock:()Ljava/lang/Object;
            dup
            astore 3
            monitorenter
         3: .line 441
            aload 0 /* this */
            invokevirtual org.xnio.ssl.JsseSslConduitEngine.doFlush:()Z
            ifeq 5
         4: .line 442
            aload 0 /* this */
            invokevirtual org.xnio.ssl.JsseSslConduitEngine.clearNeedWrap:()V
         5: .line 440
      StackMap locals: java.lang.Object
      StackMap stack:
            aload 3
            monitorexit
         6: goto 9
      StackMap locals:
      StackMap stack: java.lang.Throwable
         7: aload 3
            monitorexit
         8: athrow
         9: .line 446
      StackMap locals:
      StackMap stack:
            iconst_0
            istore 3 /* newResult */
        start local 3 // boolean newResult
        10: .line 448
      StackMap locals: int
      StackMap stack:
            invokestatic org.xnio.ssl.JsseSslConduitEngine.$SWITCH_TABLE$javax$net$ssl$SSLEngineResult$HandshakeStatus:()[I
            aload 1 /* result */
            invokevirtual javax.net.ssl.SSLEngineResult.getHandshakeStatus:()Ljavax/net/ssl/SSLEngineResult$HandshakeStatus;
            invokevirtual javax.net.ssl.SSLEngineResult$HandshakeStatus.ordinal:()I
            iaload
            tableswitch { // 1 - 5
                    1: 14
                    2: 11
                    3: 83
                    4: 16
                    5: 40
              default: 96
          }
        11: .line 450
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.xnio.ssl.JsseSslConduitEngine.clearNeedUnwrap:()V
        12: .line 451
            aload 0 /* this */
            getfield org.xnio.ssl.JsseSslConduitEngine.connection:Lorg/xnio/ssl/JsseSslStreamConnection;
            invokevirtual org.xnio.ssl.JsseSslStreamConnection.handleHandshakeFinished:()V
        13: .line 453
            iconst_1
            ireturn
        14: .line 457
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.xnio.ssl.JsseSslConduitEngine.clearNeedUnwrap:()V
        15: .line 458
            iconst_0
            ireturn
        16: .line 462
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.xnio.ssl.JsseSslConduitEngine.clearNeedUnwrap:()V
        17: .line 464
            iload 2 /* write */
            ifeq 19
        18: .line 465
            iconst_1
            ireturn
        19: .line 467
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.xnio.ssl.JsseSslConduitEngine.getSendBuffer:()Ljava/nio/ByteBuffer;
            astore 4 /* buffer */
        start local 4 // java.nio.ByteBuffer buffer
        20: .line 470
            aload 0 /* this */
            invokevirtual org.xnio.ssl.JsseSslConduitEngine.getWrapLock:()Ljava/lang/Object;
            dup
            astore 5
            monitorenter
        21: .line 473
            aload 0 /* this */
            invokevirtual org.xnio.ssl.JsseSslConduitEngine.doFlush:()Z
            ifeq 34
        22: .line 474
            aload 1 /* result */
            invokevirtual javax.net.ssl.SSLEngineResult.getStatus:()Ljavax/net/ssl/SSLEngineResult$Status;
            getstatic javax.net.ssl.SSLEngineResult$Status.CLOSED:Ljavax/net/ssl/SSLEngineResult$Status;
            if_acmpne 26
        23: .line 475
            aload 0 /* this */
            invokevirtual org.xnio.ssl.JsseSslConduitEngine.closeOutbound:()V
        24: .line 476
            aload 5
            monitorexit
        25: iconst_0
            ireturn
        26: .line 478
      StackMap locals: java.nio.ByteBuffer java.lang.Object
      StackMap stack:
            aload 0 /* this */
            aload 0 /* this */
            getstatic org.xnio.Buffers.EMPTY_BYTE_BUFFER:Ljava/nio/ByteBuffer;
            aload 4 /* buffer */
            invokevirtual org.xnio.ssl.JsseSslConduitEngine.engineWrap:(Ljava/nio/ByteBuffer;Ljava/nio/ByteBuffer;)Ljavax/net/ssl/SSLEngineResult;
            dup
            astore 1 /* result */
            iconst_1
            invokevirtual org.xnio.ssl.JsseSslConduitEngine.handleWrapResult:(Ljavax/net/ssl/SSLEngineResult;Z)Z
            ifeq 27
            aload 0 /* this */
            invokevirtual org.xnio.ssl.JsseSslConduitEngine.doFlush:()Z
            ifne 30
        27: .line 479
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.xnio.ssl.JsseSslConduitEngine.needWrap:()V
        28: .line 480
            aload 5
            monitorexit
        29: iconst_0
            ireturn
        30: .line 483
      StackMap locals:
      StackMap stack:
            iconst_1
            istore 3 /* newResult */
        31: .line 484
            aload 0 /* this */
            invokevirtual org.xnio.ssl.JsseSslConduitEngine.clearNeedWrap:()V
        32: .line 485
            aload 5
            monitorexit
        33: goto 10
        34: .line 487
      StackMap locals:
      StackMap stack:
            getstatic org.xnio.ssl.JsseSslConduitEngine.$assertionsDisabled:Z
            ifne 35
            aload 0 /* this */
            invokevirtual org.xnio.ssl.JsseSslConduitEngine.isUnwrapNeeded:()Z
            ifeq 35
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
        35: .line 489
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.xnio.ssl.JsseSslConduitEngine.needWrap:()V
        36: .line 491
            aload 5
            monitorexit
        37: iconst_0
            ireturn
        38: .line 470
      StackMap locals:
      StackMap stack: java.lang.Throwable
            aload 5
            monitorexit
        39: athrow
        end local 4 // java.nio.ByteBuffer buffer
        40: .line 496
      StackMap locals:
      StackMap stack:
            iload 2 /* write */
            ifne 42
        41: .line 497
            iload 3 /* newResult */
            ireturn
        42: .line 499
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.xnio.ssl.JsseSslConduitEngine.getWrapLock:()Ljava/lang/Object;
            dup
            astore 4
            monitorenter
        43: .line 501
            aload 0 /* this */
            invokevirtual org.xnio.ssl.JsseSslConduitEngine.doFlush:()Z
            pop
        44: .line 499
            aload 4
            monitorexit
        45: goto 48
      StackMap locals: org.xnio.ssl.JsseSslConduitEngine javax.net.ssl.SSLEngineResult int int java.lang.Object
      StackMap stack: java.lang.Throwable
        46: aload 4
            monitorexit
        47: athrow
        48: .line 503
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.xnio.ssl.JsseSslConduitEngine.receiveBuffer:Lorg/xnio/Pooled;
            invokeinterface org.xnio.Pooled.getResource:()Ljava/lang/Object;
            checkcast java.nio.ByteBuffer
            astore 4 /* buffer */
        start local 4 // java.nio.ByteBuffer buffer
        49: .line 504
            aload 0 /* this */
            getfield org.xnio.ssl.JsseSslConduitEngine.readBuffer:Lorg/xnio/Pooled;
            invokeinterface org.xnio.Pooled.getResource:()Ljava/lang/Object;
            checkcast java.nio.ByteBuffer
            astore 5 /* unwrappedBuffer */
        start local 5 // java.nio.ByteBuffer unwrappedBuffer
        50: .line 506
            aload 1 /* result */
            invokevirtual javax.net.ssl.SSLEngineResult.getHandshakeStatus:()Ljavax/net/ssl/SSLEngineResult$HandshakeStatus;
            getstatic javax.net.ssl.SSLEngineResult$HandshakeStatus.NEED_UNWRAP:Ljavax/net/ssl/SSLEngineResult$HandshakeStatus;
            if_acmpne 61
            aload 0 /* this */
            getfield org.xnio.ssl.JsseSslConduitEngine.engine:Ljavax/net/ssl/SSLEngine;
            invokevirtual javax.net.ssl.SSLEngine.isOutboundDone:()Z
            ifeq 61
        51: .line 507
            aload 0 /* this */
            invokevirtual org.xnio.ssl.JsseSslConduitEngine.getUnwrapLock:()Ljava/lang/Object;
            dup
            astore 6
            monitorenter
        52: .line 508
            aload 4 /* buffer */
            invokevirtual java.nio.ByteBuffer.compact:()Ljava/nio/ByteBuffer;
            pop
        53: .line 509
            aload 0 /* this */
            getfield org.xnio.ssl.JsseSslConduitEngine.sourceConduit:Lorg/xnio/conduits/StreamSourceConduit;
            aload 4 /* buffer */
            invokeinterface org.xnio.conduits.StreamSourceConduit.read:(Ljava/nio/ByteBuffer;)I
            pop
        54: .line 510
            aload 4 /* buffer */
            invokevirtual java.nio.ByteBuffer.flip:()Ljava/nio/Buffer;
            pop
        55: .line 511
            aload 4 /* buffer */
            invokevirtual java.nio.ByteBuffer.hasRemaining:()Z
            ifeq 57
            aload 0 /* this */
            getfield org.xnio.ssl.JsseSslConduitEngine.sourceConduit:Lorg/xnio/conduits/StreamSourceConduit;
            invokeinterface org.xnio.conduits.StreamSourceConduit.isReadResumed:()Z
            ifeq 57
        56: .line 512
            aload 0 /* this */
            getfield org.xnio.ssl.JsseSslConduitEngine.sourceConduit:Lorg/xnio/conduits/StreamSourceConduit;
            invokeinterface org.xnio.conduits.StreamSourceConduit.wakeupReads:()V
        57: .line 514
      StackMap locals: java.nio.ByteBuffer java.nio.ByteBuffer java.lang.Object
      StackMap stack:
            aload 6
            monitorexit
        58: iconst_0
            ireturn
        59: .line 507
      StackMap locals:
      StackMap stack: java.lang.Throwable
            aload 6
            monitorexit
        60: athrow
        61: .line 517
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.xnio.ssl.JsseSslConduitEngine.getUnwrapLock:()Ljava/lang/Object;
            dup
            astore 6
            monitorenter
        62: .line 519
            aload 0 /* this */
            aload 0 /* this */
            aload 4 /* buffer */
            aload 5 /* unwrappedBuffer */
            invokevirtual org.xnio.ssl.JsseSslConduitEngine.engineUnwrap:(Ljava/nio/ByteBuffer;Ljava/nio/ByteBuffer;)Ljavax/net/ssl/SSLEngineResult;
            dup
            astore 1 /* result */
            invokevirtual org.xnio.ssl.JsseSslConduitEngine.handleUnwrapResult:(Ljavax/net/ssl/SSLEngineResult;)I
            istore 7 /* unwrapResult */
        start local 7 // int unwrapResult
        63: .line 520
            aload 4 /* buffer */
            invokevirtual java.nio.ByteBuffer.hasRemaining:()Z
            ifeq 65
            aload 0 /* this */
            getfield org.xnio.ssl.JsseSslConduitEngine.sourceConduit:Lorg/xnio/conduits/StreamSourceConduit;
            invokeinterface org.xnio.conduits.StreamSourceConduit.isReadResumed:()Z
            ifeq 65
        64: .line 521
            aload 0 /* this */
            getfield org.xnio.ssl.JsseSslConduitEngine.sourceConduit:Lorg/xnio/conduits/StreamSourceConduit;
            invokeinterface org.xnio.conduits.StreamSourceConduit.wakeupReads:()V
        65: .line 523
      StackMap locals: java.lang.Object int
      StackMap stack:
            iload 7 /* unwrapResult */
            iflt 74
        66: .line 525
            aload 1 /* result */
            invokevirtual javax.net.ssl.SSLEngineResult.getHandshakeStatus:()Ljavax/net/ssl/SSLEngineResult$HandshakeStatus;
            getstatic javax.net.ssl.SSLEngineResult$HandshakeStatus.NEED_UNWRAP:Ljavax/net/ssl/SSLEngineResult$HandshakeStatus;
            if_acmpne 67
            aload 1 /* result */
            invokevirtual javax.net.ssl.SSLEngineResult.bytesConsumed:()I
            ifle 70
        67: .line 526
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.xnio.ssl.JsseSslConduitEngine.clearNeedUnwrap:()V
        68: .line 527
            aload 6
            monitorexit
        69: goto 10
        70: .line 529
      StackMap locals:
      StackMap stack:
            getstatic org.xnio.ssl.JsseSslConduitEngine.$assertionsDisabled:Z
            ifne 71
            aload 0 /* this */
            invokevirtual org.xnio.ssl.JsseSslConduitEngine.isWrapNeeded:()Z
            ifeq 71
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
        71: .line 531
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.xnio.ssl.JsseSslConduitEngine.needUnwrap:()V
        72: .line 532
            aload 6
            monitorexit
        73: iconst_0
            ireturn
        74: .line 533
      StackMap locals:
      StackMap stack:
            iload 7 /* unwrapResult */
            iconst_m1
            if_icmpne 79
            aload 1 /* result */
            invokevirtual javax.net.ssl.SSLEngineResult.getHandshakeStatus:()Ljavax/net/ssl/SSLEngineResult$HandshakeStatus;
            getstatic javax.net.ssl.SSLEngineResult$HandshakeStatus.NEED_UNWRAP:Ljavax/net/ssl/SSLEngineResult$HandshakeStatus;
            if_acmpne 79
        75: .line 534
            aload 0 /* this */
            getfield org.xnio.ssl.JsseSslConduitEngine.state:I
            iconst_2
            invokestatic org.xnio.Bits.allAreSet:(II)Z
            ifne 77
        76: .line 536
            new java.nio.channels.ClosedChannelException
            dup
            invokespecial java.nio.channels.ClosedChannelException.<init>:()V
            athrow
        77: .line 538
      StackMap locals:
      StackMap stack:
            aload 6
            monitorexit
        78: iconst_0
            ireturn
        end local 7 // int unwrapResult
        79: .line 517
      StackMap locals:
      StackMap stack:
            aload 6
            monitorexit
        80: goto 10
      StackMap locals:
      StackMap stack: java.lang.Throwable
        81: aload 6
            monitorexit
        82: athrow
        end local 5 // java.nio.ByteBuffer unwrappedBuffer
        end local 4 // java.nio.ByteBuffer buffer
        83: .line 545
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.xnio.ssl.JsseSslConduitEngine.engine:Ljavax/net/ssl/SSLEngine;
            dup
            astore 5
            monitorenter
        84: .line 547
            goto 89
        start local 4 // java.lang.Runnable task
        85: .line 549
      StackMap locals: java.lang.Runnable javax.net.ssl.SSLEngine
      StackMap stack:
            aload 4 /* task */
            invokeinterface java.lang.Runnable.run:()V
        86: .line 550
            goto 89
      StackMap locals:
      StackMap stack: java.lang.Exception
        87: astore 6 /* e */
        start local 6 // java.lang.Exception e
        88: .line 551
            new java.io.IOException
            dup
            aload 6 /* e */
            invokespecial java.io.IOException.<init>:(Ljava/lang/Throwable;)V
            athrow
        end local 6 // java.lang.Exception e
        end local 4 // java.lang.Runnable task
        89: .line 547
      StackMap locals: org.xnio.ssl.JsseSslConduitEngine javax.net.ssl.SSLEngineResult int int top javax.net.ssl.SSLEngine
      StackMap stack:
            aload 0 /* this */
            getfield org.xnio.ssl.JsseSslConduitEngine.engine:Ljavax/net/ssl/SSLEngine;
            invokevirtual javax.net.ssl.SSLEngine.getDelegatedTask:()Ljava/lang/Runnable;
            dup
            astore 4 /* task */
        start local 4 // java.lang.Runnable task
        90: ifnonnull 85
        91: .line 545
            aload 5
            monitorexit
        92: goto 95
        end local 4 // java.lang.Runnable task
      StackMap locals:
      StackMap stack: java.lang.Throwable
        93: aload 5
            monitorexit
        94: athrow
        start local 4 // java.lang.Runnable task
        95: .line 556
      StackMap locals: org.xnio.ssl.JsseSslConduitEngine javax.net.ssl.SSLEngineResult int int java.lang.Runnable
      StackMap stack:
            iconst_1
            ireturn
        end local 4 // java.lang.Runnable task
        96: .line 559
      StackMap locals:
      StackMap stack:
            getstatic org.xnio._private.Messages.msg:Lorg/xnio/_private/Messages;
            aload 1 /* result */
            invokevirtual javax.net.ssl.SSLEngineResult.getHandshakeStatus:()Ljavax/net/ssl/SSLEngineResult$HandshakeStatus;
            invokeinterface org.xnio._private.Messages.unexpectedHandshakeStatus:(Ljavax/net/ssl/SSLEngineResult$HandshakeStatus;)Ljava/io/IOException;
            athrow
        end local 3 // boolean newResult
        end local 2 // boolean write
        end local 1 // javax.net.ssl.SSLEngineResult result
        end local 0 // org.xnio.ssl.JsseSslConduitEngine this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0   97     0             this  Lorg/xnio/ssl/JsseSslConduitEngine;
            0   97     1           result  Ljavax/net/ssl/SSLEngineResult;
            0   97     2            write  Z
           10   97     3        newResult  Z
           20   40     4           buffer  Ljava/nio/ByteBuffer;
           49   83     4           buffer  Ljava/nio/ByteBuffer;
           50   83     5  unwrappedBuffer  Ljava/nio/ByteBuffer;
           63   79     7     unwrapResult  I
           85   89     4             task  Ljava/lang/Runnable;
           90   93     4             task  Ljava/lang/Runnable;
           95   96     4             task  Ljava/lang/Runnable;
           88   89     6                e  Ljava/lang/Exception;
      Exception table:
        from    to  target  type
           3     6       7  any
           7     8       7  any
          21    25      38  any
          26    29      38  any
          30    33      38  any
          34    37      38  any
          38    39      38  any
          43    45      46  any
          46    47      46  any
          52    58      59  any
          59    60      59  any
          62    69      81  any
          70    73      81  any
          74    78      81  any
          79    80      81  any
          81    82      81  any
          85    86      87  Class java.lang.Exception
          84    92      93  any
          93    94      93  any
    Exceptions:
      throws java.io.IOException
    MethodParameters:
        Name  Flags
      result  
      write   

  public int unwrap(java.nio.ByteBuffer);
    descriptor: (Ljava/nio/ByteBuffer;)I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=2, args_size=2
        start local 0 // org.xnio.ssl.JsseSslConduitEngine this
        start local 1 // java.nio.ByteBuffer dst
         0: .line 580
            aload 0 /* this */
            iconst_1
            anewarray java.nio.ByteBuffer
            dup
            iconst_0
            aload 1 /* dst */
            aastore
            iconst_0
            iconst_1
            invokevirtual org.xnio.ssl.JsseSslConduitEngine.unwrap:([Ljava/nio/ByteBuffer;II)J
            l2i
            ireturn
        end local 1 // java.nio.ByteBuffer dst
        end local 0 // org.xnio.ssl.JsseSslConduitEngine this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/xnio/ssl/JsseSslConduitEngine;
            0    1     1   dst  Ljava/nio/ByteBuffer;
    Exceptions:
      throws java.io.IOException
    MethodParameters:
      Name  Flags
      dst   final

  public long unwrap(java.nio.ByteBuffer[], int, int);
    descriptor: ([Ljava/nio/ByteBuffer;II)J
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=7, locals=12, args_size=4
        start local 0 // org.xnio.ssl.JsseSslConduitEngine this
        start local 1 // java.nio.ByteBuffer[] dsts
        start local 2 // int offset
        start local 3 // int length
         0: .line 603
            getstatic org.xnio.ssl.JsseSslConduitEngine.$assertionsDisabled:Z
            ifne 1
            aload 0 /* this */
            invokevirtual org.xnio.ssl.JsseSslConduitEngine.getUnwrapLock:()Ljava/lang/Object;
            invokestatic java.lang.Thread.holdsLock:(Ljava/lang/Object;)Z
            ifeq 1
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         1: .line 604
      StackMap locals:
      StackMap stack:
            getstatic org.xnio.ssl.JsseSslConduitEngine.$assertionsDisabled:Z
            ifne 2
            aload 0 /* this */
            invokevirtual org.xnio.ssl.JsseSslConduitEngine.getWrapLock:()Ljava/lang/Object;
            invokestatic java.lang.Thread.holdsLock:(Ljava/lang/Object;)Z
            ifeq 2
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         2: .line 605
      StackMap locals:
      StackMap stack:
            aload 1 /* dsts */
            arraylength
            ifeq 3
            iload 3 /* length */
            ifeq 3
            aload 0 /* this */
            invokevirtual org.xnio.ssl.JsseSslConduitEngine.isClosed:()Z
            ifeq 4
         3: .line 606
      StackMap locals:
      StackMap stack:
            lconst_0
            lreturn
         4: .line 608
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            ldc 4194308
            invokevirtual org.xnio.ssl.JsseSslConduitEngine.clearFlags:(I)I
            pop
         5: .line 609
            aload 0 /* this */
            getfield org.xnio.ssl.JsseSslConduitEngine.receiveBuffer:Lorg/xnio/Pooled;
            invokeinterface org.xnio.Pooled.getResource:()Ljava/lang/Object;
            checkcast java.nio.ByteBuffer
            astore 4 /* buffer */
        start local 4 // java.nio.ByteBuffer buffer
         6: .line 610
            aload 0 /* this */
            getfield org.xnio.ssl.JsseSslConduitEngine.readBuffer:Lorg/xnio/Pooled;
            invokeinterface org.xnio.Pooled.getResource:()Ljava/lang/Object;
            checkcast java.nio.ByteBuffer
            astore 5 /* unwrappedBuffer */
        start local 5 // java.nio.ByteBuffer unwrappedBuffer
         7: .line 611
            lconst_0
            lstore 6 /* total */
        start local 6 // long total
         8: .line 613
            aload 0 /* this */
            invokevirtual org.xnio.ssl.JsseSslConduitEngine.getUnwrapLock:()Ljava/lang/Object;
            dup
            astore 9
            monitorenter
         9: .line 614
            aload 5 /* unwrappedBuffer */
            invokevirtual java.nio.ByteBuffer.position:()I
            ifle 11
        10: .line 615
            lload 6 /* total */
            aload 0 /* this */
            aload 1 /* dsts */
            iload 2 /* offset */
            iload 3 /* length */
            aload 5 /* unwrappedBuffer */
            invokevirtual org.xnio.ssl.JsseSslConduitEngine.copyUnwrappedData:([Ljava/nio/ByteBuffer;IILjava/nio/ByteBuffer;)I
            i2l
            ladd
            lstore 6 /* total */
        11: .line 613
      StackMap locals: org.xnio.ssl.JsseSslConduitEngine java.nio.ByteBuffer[] int int java.nio.ByteBuffer java.nio.ByteBuffer long top java.lang.Object
      StackMap stack:
            aload 9
            monitorexit
        12: goto 15
      StackMap locals:
      StackMap stack: java.lang.Throwable
        13: aload 9
            monitorexit
        14: athrow
        15: .line 618
      StackMap locals: org.xnio.ssl.JsseSslConduitEngine java.nio.ByteBuffer[] int int java.nio.ByteBuffer java.nio.ByteBuffer long
      StackMap stack:
            iconst_0
            istore 9 /* res */
        start local 9 // int res
        16: .line 621
      StackMap locals: org.xnio.ssl.JsseSslConduitEngine java.nio.ByteBuffer[] int int java.nio.ByteBuffer java.nio.ByteBuffer long top int
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.xnio.ssl.JsseSslConduitEngine.getUnwrapLock:()Ljava/lang/Object;
            dup
            astore 10
            monitorenter
        17: .line 622
            aload 1 /* dsts */
            iload 2 /* offset */
            iload 3 /* length */
            invokestatic org.xnio.Buffers.hasRemaining:([Ljava/nio/Buffer;II)Z
            ifne 22
        18: .line 623
            aload 5 /* unwrappedBuffer */
            invokevirtual java.nio.ByteBuffer.hasRemaining:()Z
            ifeq 20
            aload 0 /* this */
            getfield org.xnio.ssl.JsseSslConduitEngine.sourceConduit:Lorg/xnio/conduits/StreamSourceConduit;
            invokeinterface org.xnio.conduits.StreamSourceConduit.isReadResumed:()Z
            ifeq 20
        19: .line 624
            aload 0 /* this */
            getfield org.xnio.ssl.JsseSslConduitEngine.sourceConduit:Lorg/xnio/conduits/StreamSourceConduit;
            invokeinterface org.xnio.conduits.StreamSourceConduit.wakeupReads:()V
        20: .line 626
      StackMap locals: java.lang.Object
      StackMap stack:
            lload 6 /* total */
            aload 10
            monitorexit
        21: lreturn
        22: .line 628
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 0 /* this */
            aload 4 /* buffer */
            aload 5 /* unwrappedBuffer */
            invokevirtual org.xnio.ssl.JsseSslConduitEngine.engineUnwrap:(Ljava/nio/ByteBuffer;Ljava/nio/ByteBuffer;)Ljavax/net/ssl/SSLEngineResult;
            dup
            astore 8 /* result */
        start local 8 // javax.net.ssl.SSLEngineResult result
        23: invokevirtual org.xnio.ssl.JsseSslConduitEngine.handleUnwrapResult:(Ljavax/net/ssl/SSLEngineResult;)I
            istore 9 /* res */
        24: .line 629
            aload 5 /* unwrappedBuffer */
            invokevirtual java.nio.ByteBuffer.position:()I
            ifle 26
        25: .line 632
            lload 6 /* total */
            aload 0 /* this */
            aload 1 /* dsts */
            iload 2 /* offset */
            iload 3 /* length */
            aload 5 /* unwrappedBuffer */
            invokevirtual org.xnio.ssl.JsseSslConduitEngine.copyUnwrappedData:([Ljava/nio/ByteBuffer;IILjava/nio/ByteBuffer;)I
            i2l
            ladd
            lstore 6 /* total */
        26: .line 621
      StackMap locals: org.xnio.ssl.JsseSslConduitEngine java.nio.ByteBuffer[] int int java.nio.ByteBuffer java.nio.ByteBuffer long javax.net.ssl.SSLEngineResult int java.lang.Object
      StackMap stack:
            aload 10
            monitorexit
        27: goto 30
        end local 8 // javax.net.ssl.SSLEngineResult result
      StackMap locals: org.xnio.ssl.JsseSslConduitEngine java.nio.ByteBuffer[] int int java.nio.ByteBuffer java.nio.ByteBuffer long top int java.lang.Object
      StackMap stack: java.lang.Throwable
        28: aload 10
            monitorexit
        29: athrow
        start local 8 // javax.net.ssl.SSLEngineResult result
        30: .line 635
      StackMap locals: org.xnio.ssl.JsseSslConduitEngine java.nio.ByteBuffer[] int int java.nio.ByteBuffer java.nio.ByteBuffer long javax.net.ssl.SSLEngineResult int
      StackMap stack:
            aload 0 /* this */
            aload 8 /* result */
            iconst_0
            invokevirtual org.xnio.ssl.JsseSslConduitEngine.handleHandshake:(Ljavax/net/ssl/SSLEngineResult;Z)Z
            ifne 16
            iload 9 /* res */
        31: .line 620
            ifgt 16
        32: .line 636
            goto 43
        end local 8 // javax.net.ssl.SSLEngineResult result
      StackMap locals: org.xnio.ssl.JsseSslConduitEngine java.nio.ByteBuffer[] int int java.nio.ByteBuffer java.nio.ByteBuffer long top int
      StackMap stack: javax.net.ssl.SSLHandshakeException
        33: astore 10 /* e */
        start local 10 // javax.net.ssl.SSLHandshakeException e
        34: .line 638
            aload 0 /* this */
            invokevirtual org.xnio.ssl.JsseSslConduitEngine.getWrapLock:()Ljava/lang/Object;
            dup
            astore 11
            monitorenter
        35: .line 639
            aload 0 /* this */
            getfield org.xnio.ssl.JsseSslConduitEngine.engine:Ljavax/net/ssl/SSLEngine;
            getstatic org.xnio.ssl.JsseSslConduitEngine.EMPTY_BUFFER:Ljava/nio/ByteBuffer;
            aload 0 /* this */
            invokevirtual org.xnio.ssl.JsseSslConduitEngine.getSendBuffer:()Ljava/nio/ByteBuffer;
            invokevirtual javax.net.ssl.SSLEngine.wrap:(Ljava/nio/ByteBuffer;Ljava/nio/ByteBuffer;)Ljavax/net/ssl/SSLEngineResult;
            pop
        36: .line 640
            aload 0 /* this */
            invokevirtual org.xnio.ssl.JsseSslConduitEngine.doFlush:()Z
            pop
        37: .line 638
            aload 11
            monitorexit
        38: goto 42
      StackMap locals: org.xnio.ssl.JsseSslConduitEngine java.nio.ByteBuffer[] int int java.nio.ByteBuffer java.nio.ByteBuffer long top int javax.net.ssl.SSLHandshakeException java.lang.Object
      StackMap stack: java.lang.Throwable
        39: aload 11
            monitorexit
        40: athrow
        41: .line 642
      StackMap locals: org.xnio.ssl.JsseSslConduitEngine java.nio.ByteBuffer[] int int java.nio.ByteBuffer java.nio.ByteBuffer long top int javax.net.ssl.SSLHandshakeException
      StackMap stack: java.io.IOException
            pop
        42: .line 643
      StackMap locals:
      StackMap stack:
            aload 10 /* e */
            athrow
        end local 10 // javax.net.ssl.SSLHandshakeException e
        start local 8 // javax.net.ssl.SSLEngineResult result
        43: .line 645
      StackMap locals: org.xnio.ssl.JsseSslConduitEngine java.nio.ByteBuffer[] int int java.nio.ByteBuffer java.nio.ByteBuffer long javax.net.ssl.SSLEngineResult int
      StackMap stack:
            lload 6 /* total */
            lconst_0
            lcmp
            ifne 46
        44: .line 646
            iload 9 /* res */
            iconst_m1
            if_icmpne 46
        45: .line 647
            ldc -1
            lreturn
        46: .line 650
      StackMap locals:
      StackMap stack:
            iload 9 /* res */
            ifne 49
            aload 8 /* result */
            invokevirtual javax.net.ssl.SSLEngineResult.getStatus:()Ljavax/net/ssl/SSLEngineResult$Status;
            getstatic javax.net.ssl.SSLEngineResult$Status.BUFFER_UNDERFLOW:Ljavax/net/ssl/SSLEngineResult$Status;
            if_acmpne 49
        47: .line 653
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.xnio.ssl.JsseSslConduitEngine.state:I
            istore 10 /* old */
        start local 10 // int old
        48: .line 654
            getstatic org.xnio.ssl.JsseSslConduitEngine.stateUpdater:Ljava/util/concurrent/atomic/AtomicIntegerFieldUpdater;
            aload 0 /* this */
            iload 10 /* old */
            iload 10 /* old */
            iconst_4
            ior
            invokevirtual java.util.concurrent.atomic.AtomicIntegerFieldUpdater.compareAndSet:(Ljava/lang/Object;II)Z
            ifeq 47
        end local 10 // int old
        49: .line 656
      StackMap locals:
      StackMap stack:
            lload 6 /* total */
            lreturn
        end local 9 // int res
        end local 8 // javax.net.ssl.SSLEngineResult result
        end local 6 // long total
        end local 5 // java.nio.ByteBuffer unwrappedBuffer
        end local 4 // java.nio.ByteBuffer buffer
        end local 3 // int length
        end local 2 // int offset
        end local 1 // java.nio.ByteBuffer[] dsts
        end local 0 // org.xnio.ssl.JsseSslConduitEngine this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0   50     0             this  Lorg/xnio/ssl/JsseSslConduitEngine;
            0   50     1             dsts  [Ljava/nio/ByteBuffer;
            0   50     2           offset  I
            0   50     3           length  I
            6   50     4           buffer  Ljava/nio/ByteBuffer;
            7   50     5  unwrappedBuffer  Ljava/nio/ByteBuffer;
            8   50     6            total  J
           23   28     8           result  Ljavax/net/ssl/SSLEngineResult;
           30   33     8           result  Ljavax/net/ssl/SSLEngineResult;
           43   50     8           result  Ljavax/net/ssl/SSLEngineResult;
           16   50     9              res  I
           34   43    10                e  Ljavax/net/ssl/SSLHandshakeException;
           48   49    10              old  I
      Exception table:
        from    to  target  type
           9    12      13  any
          13    14      13  any
          17    21      28  any
          22    27      28  any
          28    29      28  any
          16    21      33  Class javax.net.ssl.SSLHandshakeException
          22    32      33  Class javax.net.ssl.SSLHandshakeException
          35    38      39  any
          39    40      39  any
          34    41      41  Class java.io.IOException
    Exceptions:
      throws java.io.IOException
    MethodParameters:
        Name  Flags
      dsts    final
      offset  final
      length  final

  public java.nio.ByteBuffer getUnwrapBuffer();
    descriptor: ()Ljava/nio/ByteBuffer;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.xnio.ssl.JsseSslConduitEngine this
         0: .line 667
            getstatic org.xnio.ssl.JsseSslConduitEngine.$assertionsDisabled:Z
            ifne 1
            aload 0 /* this */
            invokevirtual org.xnio.ssl.JsseSslConduitEngine.getUnwrapLock:()Ljava/lang/Object;
            invokestatic java.lang.Thread.holdsLock:(Ljava/lang/Object;)Z
            ifne 1
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         1: .line 668
      StackMap locals:
      StackMap stack:
            getstatic org.xnio.ssl.JsseSslConduitEngine.$assertionsDisabled:Z
            ifne 2
            aload 0 /* this */
            invokevirtual org.xnio.ssl.JsseSslConduitEngine.getWrapLock:()Ljava/lang/Object;
            invokestatic java.lang.Thread.holdsLock:(Ljava/lang/Object;)Z
            ifeq 2
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         2: .line 669
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.xnio.ssl.JsseSslConduitEngine.receiveBuffer:Lorg/xnio/Pooled;
            invokeinterface org.xnio.Pooled.getResource:()Ljava/lang/Object;
            checkcast java.nio.ByteBuffer
            areturn
        end local 0 // org.xnio.ssl.JsseSslConduitEngine this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lorg/xnio/ssl/JsseSslConduitEngine;

  public java.lang.Object getUnwrapLock();
    descriptor: ()Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.xnio.ssl.JsseSslConduitEngine this
         0: .line 682
            aload 0 /* this */
            getfield org.xnio.ssl.JsseSslConduitEngine.receiveBuffer:Lorg/xnio/Pooled;
            areturn
        end local 0 // org.xnio.ssl.JsseSslConduitEngine this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/xnio/ssl/JsseSslConduitEngine;

  private javax.net.ssl.SSLEngineResult engineUnwrap(java.nio.ByteBuffer, java.nio.ByteBuffer);
    descriptor: (Ljava/nio/ByteBuffer;Ljava/nio/ByteBuffer;)Ljavax/net/ssl/SSLEngineResult;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=7, locals=3, args_size=3
        start local 0 // org.xnio.ssl.JsseSslConduitEngine this
        start local 1 // java.nio.ByteBuffer buffer
        start local 2 // java.nio.ByteBuffer unwrappedBuffer
         0: .line 689
            getstatic org.xnio.ssl.JsseSslConduitEngine.$assertionsDisabled:Z
            ifne 1
            aload 0 /* this */
            invokevirtual org.xnio.ssl.JsseSslConduitEngine.getUnwrapLock:()Ljava/lang/Object;
            invokestatic java.lang.Thread.holdsLock:(Ljava/lang/Object;)Z
            ifne 1
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         1: .line 690
      StackMap locals:
      StackMap stack:
            aload 1 /* buffer */
            invokevirtual java.nio.ByteBuffer.hasRemaining:()Z
            ifne 5
         2: .line 691
            aload 1 /* buffer */
            invokevirtual java.nio.ByteBuffer.compact:()Ljava/nio/ByteBuffer;
            pop
         3: .line 692
            aload 0 /* this */
            getfield org.xnio.ssl.JsseSslConduitEngine.sourceConduit:Lorg/xnio/conduits/StreamSourceConduit;
            aload 1 /* buffer */
            invokeinterface org.xnio.conduits.StreamSourceConduit.read:(Ljava/nio/ByteBuffer;)I
            pop
         4: .line 693
            aload 1 /* buffer */
            invokevirtual java.nio.ByteBuffer.flip:()Ljava/nio/Buffer;
            pop
         5: .line 695
      StackMap locals:
      StackMap stack:
            getstatic org.xnio.ssl.JsseSslConduitEngine.log:Lorg/jboss/logging/Logger;
            getstatic org.xnio.ssl.JsseSslConduitEngine.FQCN:Ljava/lang/String;
            getstatic org.jboss.logging.Logger$Level.TRACE:Lorg/jboss/logging/Logger$Level;
            aconst_null
            ldc "Unwrapping %s into %s"
            aload 1 /* buffer */
            aload 2 /* unwrappedBuffer */
            invokevirtual org.jboss.logging.Logger.logf:(Ljava/lang/String;Lorg/jboss/logging/Logger$Level;Ljava/lang/Throwable;Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;)V
         6: .line 696
            aload 0 /* this */
            getfield org.xnio.ssl.JsseSslConduitEngine.engine:Ljavax/net/ssl/SSLEngine;
            aload 1 /* buffer */
            aload 2 /* unwrappedBuffer */
            invokevirtual javax.net.ssl.SSLEngine.unwrap:(Ljava/nio/ByteBuffer;Ljava/nio/ByteBuffer;)Ljavax/net/ssl/SSLEngineResult;
            areturn
        end local 2 // java.nio.ByteBuffer unwrappedBuffer
        end local 1 // java.nio.ByteBuffer buffer
        end local 0 // org.xnio.ssl.JsseSslConduitEngine this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0    7     0             this  Lorg/xnio/ssl/JsseSslConduitEngine;
            0    7     1           buffer  Ljava/nio/ByteBuffer;
            0    7     2  unwrappedBuffer  Ljava/nio/ByteBuffer;
    Exceptions:
      throws java.io.IOException
    MethodParameters:
                 Name  Flags
      buffer           final
      unwrappedBuffer  final

  private int copyUnwrappedData(java.nio.ByteBuffer[], int, int, java.nio.ByteBuffer);
    descriptor: ([Ljava/nio/ByteBuffer;IILjava/nio/ByteBuffer;)I
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=7, args_size=5
        start local 0 // org.xnio.ssl.JsseSslConduitEngine this
        start local 1 // java.nio.ByteBuffer[] dsts
        start local 2 // int offset
        start local 3 // int length
        start local 4 // java.nio.ByteBuffer unwrappedBuffer
         0: .line 709
            getstatic org.xnio.ssl.JsseSslConduitEngine.$assertionsDisabled:Z
            ifne 1
            aload 0 /* this */
            invokevirtual org.xnio.ssl.JsseSslConduitEngine.getUnwrapLock:()Ljava/lang/Object;
            invokestatic java.lang.Thread.holdsLock:(Ljava/lang/Object;)Z
            ifne 1
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         1: .line 710
      StackMap locals:
      StackMap stack:
            aload 4 /* unwrappedBuffer */
            invokevirtual java.nio.ByteBuffer.flip:()Ljava/nio/Buffer;
            pop
         2: .line 712
            aload 1 /* dsts */
            iload 2 /* offset */
            iload 3 /* length */
            aload 4 /* unwrappedBuffer */
            invokestatic org.xnio.Buffers.copy:([Ljava/nio/ByteBuffer;IILjava/nio/ByteBuffer;)I
            istore 6
         3: .line 714
            aload 4 /* unwrappedBuffer */
            invokevirtual java.nio.ByteBuffer.compact:()Ljava/nio/ByteBuffer;
            pop
         4: .line 712
            iload 6
            ireturn
         5: .line 713
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 5
         6: .line 714
            aload 4 /* unwrappedBuffer */
            invokevirtual java.nio.ByteBuffer.compact:()Ljava/nio/ByteBuffer;
            pop
         7: .line 715
            aload 5
            athrow
        end local 4 // java.nio.ByteBuffer unwrappedBuffer
        end local 3 // int length
        end local 2 // int offset
        end local 1 // java.nio.ByteBuffer[] dsts
        end local 0 // org.xnio.ssl.JsseSslConduitEngine this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0    8     0             this  Lorg/xnio/ssl/JsseSslConduitEngine;
            0    8     1             dsts  [Ljava/nio/ByteBuffer;
            0    8     2           offset  I
            0    8     3           length  I
            0    8     4  unwrappedBuffer  Ljava/nio/ByteBuffer;
      Exception table:
        from    to  target  type
           2     3       5  any
    MethodParameters:
                 Name  Flags
      dsts             final
      offset           final
      length           final
      unwrappedBuffer  

  private int handleUnwrapResult(javax.net.ssl.SSLEngineResult);
    descriptor: (Ljavax/net/ssl/SSLEngineResult;)I
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=6, locals=6, args_size=2
        start local 0 // org.xnio.ssl.JsseSslConduitEngine this
        start local 1 // javax.net.ssl.SSLEngineResult result
         0: .line 728
            getstatic org.xnio.ssl.JsseSslConduitEngine.$assertionsDisabled:Z
            ifne 1
            aload 0 /* this */
            invokevirtual org.xnio.ssl.JsseSslConduitEngine.getUnwrapLock:()Ljava/lang/Object;
            invokestatic java.lang.Thread.holdsLock:(Ljava/lang/Object;)Z
            ifne 1
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         1: .line 729
      StackMap locals:
      StackMap stack:
            getstatic org.xnio.ssl.JsseSslConduitEngine.log:Lorg/jboss/logging/Logger;
            getstatic org.xnio.ssl.JsseSslConduitEngine.FQCN:Ljava/lang/String;
            getstatic org.jboss.logging.Logger$Level.TRACE:Lorg/jboss/logging/Logger$Level;
            aconst_null
            ldc "Unwrap result is %s"
            aload 1 /* result */
            invokevirtual org.jboss.logging.Logger.logf:(Ljava/lang/String;Lorg/jboss/logging/Logger$Level;Ljava/lang/Throwable;Ljava/lang/String;Ljava/lang/Object;)V
         2: .line 730
            invokestatic org.xnio.ssl.JsseSslConduitEngine.$SWITCH_TABLE$javax$net$ssl$SSLEngineResult$Status:()[I
            aload 1 /* result */
            invokevirtual javax.net.ssl.SSLEngineResult.getStatus:()Ljavax/net/ssl/SSLEngineResult$Status;
            invokevirtual javax.net.ssl.SSLEngineResult$Status.ordinal:()I
            iaload
            tableswitch { // 1 - 4
                    1: 6
                    2: 3
                    3: 23
                    4: 20
              default: 24
          }
         3: .line 732
      StackMap locals:
      StackMap stack:
            getstatic org.xnio.ssl.JsseSslConduitEngine.$assertionsDisabled:Z
            ifne 4
            aload 1 /* result */
            invokevirtual javax.net.ssl.SSLEngineResult.bytesConsumed:()I
            ifeq 4
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         4: .line 733
      StackMap locals:
      StackMap stack:
            getstatic org.xnio.ssl.JsseSslConduitEngine.$assertionsDisabled:Z
            ifne 5
            aload 1 /* result */
            invokevirtual javax.net.ssl.SSLEngineResult.bytesProduced:()I
            ifeq 5
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         5: .line 735
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
         6: .line 738
      StackMap locals:
      StackMap stack:
            getstatic org.xnio.ssl.JsseSslConduitEngine.$assertionsDisabled:Z
            ifne 7
            aload 1 /* result */
            invokevirtual javax.net.ssl.SSLEngineResult.bytesConsumed:()I
            ifeq 7
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         7: .line 739
      StackMap locals:
      StackMap stack:
            getstatic org.xnio.ssl.JsseSslConduitEngine.$assertionsDisabled:Z
            ifne 8
            aload 1 /* result */
            invokevirtual javax.net.ssl.SSLEngineResult.bytesProduced:()I
            ifeq 8
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         8: .line 741
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.xnio.ssl.JsseSslConduitEngine.receiveBuffer:Lorg/xnio/Pooled;
            invokeinterface org.xnio.Pooled.getResource:()Ljava/lang/Object;
            checkcast java.nio.ByteBuffer
            astore 2 /* buffer */
        start local 2 // java.nio.ByteBuffer buffer
         9: .line 742
            aload 0 /* this */
            invokevirtual org.xnio.ssl.JsseSslConduitEngine.getUnwrapLock:()Ljava/lang/Object;
            dup
            astore 3
            monitorenter
        10: .line 743
            aload 2 /* buffer */
            invokevirtual java.nio.ByteBuffer.compact:()Ljava/nio/ByteBuffer;
            pop
        11: .line 745
            aload 0 /* this */
            getfield org.xnio.ssl.JsseSslConduitEngine.sourceConduit:Lorg/xnio/conduits/StreamSourceConduit;
            aload 2 /* buffer */
            invokeinterface org.xnio.conduits.StreamSourceConduit.read:(Ljava/nio/ByteBuffer;)I
            istore 5
        12: .line 747
            aload 2 /* buffer */
            invokevirtual java.nio.ByteBuffer.flip:()Ljava/nio/Buffer;
            pop
        13: .line 745
            aload 3
            monitorexit
        14: iload 5
            ireturn
        15: .line 746
      StackMap locals: org.xnio.ssl.JsseSslConduitEngine javax.net.ssl.SSLEngineResult java.nio.ByteBuffer java.lang.Object
      StackMap stack: java.lang.Throwable
            astore 4
        16: .line 747
            aload 2 /* buffer */
            invokevirtual java.nio.ByteBuffer.flip:()Ljava/nio/Buffer;
            pop
        17: .line 748
            aload 4
            athrow
        18: .line 742
      StackMap locals:
      StackMap stack: java.lang.Throwable
            aload 3
            monitorexit
        19: athrow
        end local 2 // java.nio.ByteBuffer buffer
        20: .line 753
      StackMap locals:
      StackMap stack:
            aload 1 /* result */
            invokevirtual javax.net.ssl.SSLEngineResult.bytesConsumed:()I
            ifle 22
        21: .line 754
            aload 1 /* result */
            invokevirtual javax.net.ssl.SSLEngineResult.bytesConsumed:()I
            ireturn
        22: .line 756
      StackMap locals:
      StackMap stack:
            iconst_m1
            ireturn
        23: .line 760
      StackMap locals:
      StackMap stack:
            aload 1 /* result */
            invokevirtual javax.net.ssl.SSLEngineResult.bytesConsumed:()I
            ireturn
        24: .line 763
      StackMap locals:
      StackMap stack:
            getstatic org.xnio._private.Messages.msg:Lorg/xnio/_private/Messages;
            aload 1 /* result */
            invokevirtual javax.net.ssl.SSLEngineResult.getStatus:()Ljavax/net/ssl/SSLEngineResult$Status;
            invokeinterface org.xnio._private.Messages.unexpectedUnwrapResult:(Ljavax/net/ssl/SSLEngineResult$Status;)Ljava/io/IOException;
            athrow
        end local 1 // javax.net.ssl.SSLEngineResult result
        end local 0 // org.xnio.ssl.JsseSslConduitEngine this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   25     0    this  Lorg/xnio/ssl/JsseSslConduitEngine;
            0   25     1  result  Ljavax/net/ssl/SSLEngineResult;
            9   20     2  buffer  Ljava/nio/ByteBuffer;
      Exception table:
        from    to  target  type
          11    12      15  any
          10    14      18  any
          15    19      18  any
    Exceptions:
      throws java.io.IOException
    MethodParameters:
        Name  Flags
      result  final

  public boolean flush();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=4, args_size=1
        start local 0 // org.xnio.ssl.JsseSslConduitEngine this
         0: .line 781
            getstatic org.xnio.ssl.JsseSslConduitEngine.stateUpdater:Ljava/util/concurrent/atomic/AtomicIntegerFieldUpdater;
            aload 0 /* this */
            invokevirtual java.util.concurrent.atomic.AtomicIntegerFieldUpdater.get:(Ljava/lang/Object;)I
            istore 1 /* oldState */
        start local 1 // int oldState
         1: .line 782
            iload 1 /* oldState */
            ldc 262144
            invokestatic org.xnio.Bits.allAreSet:(II)Z
            ifeq 5
         2: .line 783
            aload 0 /* this */
            getfield org.xnio.ssl.JsseSslConduitEngine.engine:Ljavax/net/ssl/SSLEngine;
            invokevirtual javax.net.ssl.SSLEngine.isOutboundDone:()Z
            ifeq 4
         3: .line 784
            aload 0 /* this */
            getfield org.xnio.ssl.JsseSslConduitEngine.connection:Lorg/xnio/ssl/JsseSslStreamConnection;
            invokevirtual org.xnio.ssl.JsseSslStreamConnection.writeClosed:()Z
            pop
         4: .line 786
      StackMap locals: int
      StackMap stack:
            iconst_1
            ireturn
         5: .line 788
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.xnio.ssl.JsseSslConduitEngine.getWrapLock:()Ljava/lang/Object;
            dup
            astore 3
            monitorenter
         6: .line 789
            iload 1 /* oldState */
            ldc 131072
            invokestatic org.xnio.Bits.allAreSet:(II)Z
            ifeq 10
         7: .line 790
            aload 0 /* this */
            invokevirtual org.xnio.ssl.JsseSslConduitEngine.wrapCloseMessage:()Z
            ifne 14
         8: .line 791
            aload 3
            monitorexit
         9: iconst_0
            ireturn
        10: .line 794
      StackMap locals: org.xnio.ssl.JsseSslConduitEngine int top java.lang.Object
      StackMap stack:
            aload 0 /* this */
            getfield org.xnio.ssl.JsseSslConduitEngine.engine:Ljavax/net/ssl/SSLEngine;
            invokevirtual javax.net.ssl.SSLEngine.isOutboundDone:()Z
            ifeq 12
        11: .line 795
            aload 0 /* this */
            getfield org.xnio.ssl.JsseSslConduitEngine.connection:Lorg/xnio/ssl/JsseSslStreamConnection;
            invokevirtual org.xnio.ssl.JsseSslStreamConnection.writeClosed:()Z
            pop
        12: .line 797
      StackMap locals:
      StackMap stack:
            aload 3
            monitorexit
        13: iconst_1
            ireturn
        14: .line 788
      StackMap locals:
      StackMap stack:
            aload 3
            monitorexit
        15: goto 18
      StackMap locals:
      StackMap stack: java.lang.Throwable
        16: aload 3
            monitorexit
        17: athrow
        18: .line 801
      StackMap locals: org.xnio.ssl.JsseSslConduitEngine int
      StackMap stack:
            iload 1 /* oldState */
            ldc 262144
            ior
            istore 2 /* newState */
        start local 2 // int newState
        19: .line 802
            goto 26
        20: .line 803
      StackMap locals: int
      StackMap stack:
            getstatic org.xnio.ssl.JsseSslConduitEngine.stateUpdater:Ljava/util/concurrent/atomic/AtomicIntegerFieldUpdater;
            aload 0 /* this */
            invokevirtual java.util.concurrent.atomic.AtomicIntegerFieldUpdater.get:(Ljava/lang/Object;)I
            istore 1 /* oldState */
        21: .line 804
            iload 1 /* oldState */
            ldc 262144
            invokestatic org.xnio.Bits.allAreSet:(II)Z
            ifeq 25
        22: .line 805
            aload 0 /* this */
            getfield org.xnio.ssl.JsseSslConduitEngine.engine:Ljavax/net/ssl/SSLEngine;
            invokevirtual javax.net.ssl.SSLEngine.isOutboundDone:()Z
            ifeq 24
        23: .line 806
            aload 0 /* this */
            getfield org.xnio.ssl.JsseSslConduitEngine.connection:Lorg/xnio/ssl/JsseSslStreamConnection;
            invokevirtual org.xnio.ssl.JsseSslStreamConnection.writeClosed:()Z
            pop
        24: .line 808
      StackMap locals:
      StackMap stack:
            iconst_1
            ireturn
        25: .line 810
      StackMap locals:
      StackMap stack:
            iload 1 /* oldState */
            ldc 262144
            ior
            istore 2 /* newState */
        26: .line 802
      StackMap locals:
      StackMap stack:
            getstatic org.xnio.ssl.JsseSslConduitEngine.stateUpdater:Ljava/util/concurrent/atomic/AtomicIntegerFieldUpdater;
            aload 0 /* this */
            iload 1 /* oldState */
            iload 2 /* newState */
            invokevirtual java.util.concurrent.atomic.AtomicIntegerFieldUpdater.compareAndSet:(Ljava/lang/Object;II)Z
            ifeq 20
        27: .line 813
            iload 1 /* oldState */
            iconst_2
            invokestatic org.xnio.Bits.allAreSet:(II)Z
            ifeq 29
        28: .line 814
            aload 0 /* this */
            invokevirtual org.xnio.ssl.JsseSslConduitEngine.closeEngine:()V
        29: .line 816
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.xnio.ssl.JsseSslConduitEngine.engine:Ljavax/net/ssl/SSLEngine;
            invokevirtual javax.net.ssl.SSLEngine.isOutboundDone:()Z
            ifeq 31
        30: .line 817
            aload 0 /* this */
            getfield org.xnio.ssl.JsseSslConduitEngine.connection:Lorg/xnio/ssl/JsseSslStreamConnection;
            invokevirtual org.xnio.ssl.JsseSslStreamConnection.writeClosed:()Z
            pop
        31: .line 819
      StackMap locals:
      StackMap stack:
            iconst_1
            ireturn
        end local 2 // int newState
        end local 1 // int oldState
        end local 0 // org.xnio.ssl.JsseSslConduitEngine this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   32     0      this  Lorg/xnio/ssl/JsseSslConduitEngine;
            1   32     1  oldState  I
           19   32     2  newState  I
      Exception table:
        from    to  target  type
           6     9      16  any
          10    13      16  any
          14    15      16  any
          16    17      16  any
    Exceptions:
      throws java.io.IOException

  private boolean wrapCloseMessage();
    descriptor: ()Z
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=2, args_size=1
        start local 0 // org.xnio.ssl.JsseSslConduitEngine this
         0: .line 829
            getstatic org.xnio.ssl.JsseSslConduitEngine.$assertionsDisabled:Z
            ifne 1
            aload 0 /* this */
            invokevirtual org.xnio.ssl.JsseSslConduitEngine.getUnwrapLock:()Ljava/lang/Object;
            invokestatic java.lang.Thread.holdsLock:(Ljava/lang/Object;)Z
            ifeq 1
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         1: .line 830
      StackMap locals:
      StackMap stack:
            getstatic org.xnio.ssl.JsseSslConduitEngine.$assertionsDisabled:Z
            ifne 2
            aload 0 /* this */
            invokevirtual org.xnio.ssl.JsseSslConduitEngine.getWrapLock:()Ljava/lang/Object;
            invokestatic java.lang.Thread.holdsLock:(Ljava/lang/Object;)Z
            ifne 2
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         2: .line 831
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.xnio.ssl.JsseSslConduitEngine.sinkConduit:Lorg/xnio/conduits/StreamSinkConduit;
            invokeinterface org.xnio.conduits.StreamSinkConduit.isWriteShutdown:()Z
            ifeq 4
         3: .line 832
            iconst_1
            ireturn
         4: .line 834
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.xnio.ssl.JsseSslConduitEngine.engine:Ljavax/net/ssl/SSLEngine;
            invokevirtual javax.net.ssl.SSLEngine.isOutboundDone:()Z
            ifeq 5
            aload 0 /* this */
            getfield org.xnio.ssl.JsseSslConduitEngine.engine:Ljavax/net/ssl/SSLEngine;
            invokevirtual javax.net.ssl.SSLEngine.isInboundDone:()Z
            ifne 13
         5: .line 837
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 0 /* this */
            getstatic org.xnio.Buffers.EMPTY_BYTE_BUFFER:Ljava/nio/ByteBuffer;
            aload 0 /* this */
            invokevirtual org.xnio.ssl.JsseSslConduitEngine.getSendBuffer:()Ljava/nio/ByteBuffer;
            invokevirtual org.xnio.ssl.JsseSslConduitEngine.engineWrap:(Ljava/nio/ByteBuffer;Ljava/nio/ByteBuffer;)Ljavax/net/ssl/SSLEngineResult;
            dup
            astore 1 /* result */
        start local 1 // javax.net.ssl.SSLEngineResult result
         6: iconst_1
            invokevirtual org.xnio.ssl.JsseSslConduitEngine.handleWrapResult:(Ljavax/net/ssl/SSLEngineResult;Z)Z
            ifne 8
         7: .line 838
            iconst_0
            ireturn
         8: .line 840
      StackMap locals: javax.net.ssl.SSLEngineResult
      StackMap stack:
            aload 0 /* this */
            aload 1 /* result */
            iconst_1
            invokevirtual org.xnio.ssl.JsseSslConduitEngine.handleHandshake:(Ljavax/net/ssl/SSLEngineResult;Z)Z
            ifeq 9
            aload 1 /* result */
            invokevirtual javax.net.ssl.SSLEngineResult.getHandshakeStatus:()Ljavax/net/ssl/SSLEngineResult$HandshakeStatus;
            getstatic javax.net.ssl.SSLEngineResult$HandshakeStatus.NEED_UNWRAP:Ljavax/net/ssl/SSLEngineResult$HandshakeStatus;
            if_acmpne 5
            aload 0 /* this */
            getfield org.xnio.ssl.JsseSslConduitEngine.engine:Ljavax/net/ssl/SSLEngine;
            invokevirtual javax.net.ssl.SSLEngine.isOutboundDone:()Z
            ifeq 5
         9: .line 841
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 0 /* this */
            getstatic org.xnio.Buffers.EMPTY_BYTE_BUFFER:Ljava/nio/ByteBuffer;
            aload 0 /* this */
            invokevirtual org.xnio.ssl.JsseSslConduitEngine.getSendBuffer:()Ljava/nio/ByteBuffer;
            invokevirtual org.xnio.ssl.JsseSslConduitEngine.engineWrap:(Ljava/nio/ByteBuffer;Ljava/nio/ByteBuffer;)Ljavax/net/ssl/SSLEngineResult;
            dup
            astore 1 /* result */
            iconst_1
            invokevirtual org.xnio.ssl.JsseSslConduitEngine.handleWrapResult:(Ljavax/net/ssl/SSLEngineResult;Z)Z
            pop
        10: .line 842
            aload 0 /* this */
            getfield org.xnio.ssl.JsseSslConduitEngine.engine:Ljavax/net/ssl/SSLEngine;
            invokevirtual javax.net.ssl.SSLEngine.isOutboundDone:()Z
            ifeq 12
            aload 1 /* result */
            invokevirtual javax.net.ssl.SSLEngineResult.getHandshakeStatus:()Ljavax/net/ssl/SSLEngineResult$HandshakeStatus;
            getstatic javax.net.ssl.SSLEngineResult$HandshakeStatus.NOT_HANDSHAKING:Ljavax/net/ssl/SSLEngineResult$HandshakeStatus;
            if_acmpeq 13
        11: .line 843
            aload 1 /* result */
            invokevirtual javax.net.ssl.SSLEngineResult.getHandshakeStatus:()Ljavax/net/ssl/SSLEngineResult$HandshakeStatus;
            getstatic javax.net.ssl.SSLEngineResult$HandshakeStatus.NEED_UNWRAP:Ljavax/net/ssl/SSLEngineResult$HandshakeStatus;
            if_acmpeq 13
        12: .line 844
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
        end local 1 // javax.net.ssl.SSLEngineResult result
        13: .line 847
      StackMap locals:
      StackMap stack:
            iconst_1
            ireturn
        end local 0 // org.xnio.ssl.JsseSslConduitEngine this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   14     0    this  Lorg/xnio/ssl/JsseSslConduitEngine;
            6   13     1  result  Ljavax/net/ssl/SSLEngineResult;
    Exceptions:
      throws java.io.IOException

  private boolean doFlush();
    descriptor: ()Z
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=4, args_size=1
        start local 0 // org.xnio.ssl.JsseSslConduitEngine this
         0: .line 858
            getstatic org.xnio.ssl.JsseSslConduitEngine.$assertionsDisabled:Z
            ifne 1
            aload 0 /* this */
            invokevirtual org.xnio.ssl.JsseSslConduitEngine.getWrapLock:()Ljava/lang/Object;
            invokestatic java.lang.Thread.holdsLock:(Ljava/lang/Object;)Z
            ifne 1
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         1: .line 859
      StackMap locals:
      StackMap stack:
            getstatic org.xnio.ssl.JsseSslConduitEngine.$assertionsDisabled:Z
            ifne 2
            aload 0 /* this */
            invokevirtual org.xnio.ssl.JsseSslConduitEngine.getUnwrapLock:()Ljava/lang/Object;
            invokestatic java.lang.Thread.holdsLock:(Ljava/lang/Object;)Z
            ifeq 2
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         2: .line 861
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.xnio.ssl.JsseSslConduitEngine.getSendBuffer:()Ljava/nio/ByteBuffer;
            astore 1 /* buffer */
        start local 1 // java.nio.ByteBuffer buffer
         3: .line 862
            aload 1 /* buffer */
            invokevirtual java.nio.ByteBuffer.flip:()Ljava/nio/Buffer;
            pop
         4: .line 864
            goto 9
         5: .line 865
      StackMap locals: java.nio.ByteBuffer
      StackMap stack:
            aload 0 /* this */
            getfield org.xnio.ssl.JsseSslConduitEngine.sinkConduit:Lorg/xnio/conduits/StreamSinkConduit;
            aload 1 /* buffer */
            invokeinterface org.xnio.conduits.StreamSinkConduit.write:(Ljava/nio/ByteBuffer;)I
            istore 2 /* res */
        start local 2 // int res
         6: .line 866
            iload 2 /* res */
            ifne 9
         7: .line 871
            aload 1 /* buffer */
            invokevirtual java.nio.ByteBuffer.compact:()Ljava/nio/ByteBuffer;
            pop
         8: .line 867
            iconst_0
            ireturn
        end local 2 // int res
         9: .line 864
      StackMap locals:
      StackMap stack:
            aload 1 /* buffer */
            invokevirtual java.nio.ByteBuffer.hasRemaining:()Z
            ifne 5
        10: .line 870
            goto 14
      StackMap locals:
      StackMap stack: java.lang.Throwable
        11: astore 3
        12: .line 871
            aload 1 /* buffer */
            invokevirtual java.nio.ByteBuffer.compact:()Ljava/nio/ByteBuffer;
            pop
        13: .line 872
            aload 3
            athrow
        14: .line 871
      StackMap locals:
      StackMap stack:
            aload 1 /* buffer */
            invokevirtual java.nio.ByteBuffer.compact:()Ljava/nio/ByteBuffer;
            pop
        15: .line 873
            aload 0 /* this */
            getfield org.xnio.ssl.JsseSslConduitEngine.sinkConduit:Lorg/xnio/conduits/StreamSinkConduit;
            invokeinterface org.xnio.conduits.StreamSinkConduit.flush:()Z
            ireturn
        end local 1 // java.nio.ByteBuffer buffer
        end local 0 // org.xnio.ssl.JsseSslConduitEngine this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   16     0    this  Lorg/xnio/ssl/JsseSslConduitEngine;
            3   16     1  buffer  Ljava/nio/ByteBuffer;
            6    9     2     res  I
      Exception table:
        from    to  target  type
           4     7      11  any
           9    11      11  any
    Exceptions:
      throws java.io.IOException

  private void closeEngine();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=4, args_size=1
        start local 0 // org.xnio.ssl.JsseSslConduitEngine this
         0: .line 882
            aload 0 /* this */
            ldc 8388608
            invokevirtual org.xnio.ssl.JsseSslConduitEngine.setFlags:(I)I
            istore 1 /* old */
        start local 1 // int old
         1: .line 884
            iload 1 /* old */
            ldc 8388608
            invokestatic org.xnio.Bits.allAreSet:(II)Z
            ifeq 3
         2: .line 885
            return
         3: .line 888
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.xnio.ssl.JsseSslConduitEngine.getWrapLock:()Ljava/lang/Object;
            dup
            astore 2
            monitorenter
         4: .line 889
            aload 0 /* this */
            invokevirtual org.xnio.ssl.JsseSslConduitEngine.doFlush:()Z
            ifne 6
         5: .line 890
            getstatic org.xnio._private.Messages.msg:Lorg/xnio/_private/Messages;
            invokeinterface org.xnio._private.Messages.unflushedData:()Ljava/io/IOException;
            athrow
         6: .line 888
      StackMap locals: java.lang.Object
      StackMap stack:
            aload 2
            monitorexit
         7: goto 15
      StackMap locals:
      StackMap stack: java.lang.Throwable
         8: aload 2
            monitorexit
         9: athrow
        10: .line 893
      StackMap locals: org.xnio.ssl.JsseSslConduitEngine int
      StackMap stack: java.lang.Throwable
            astore 3
        11: .line 894
            aload 0 /* this */
            getfield org.xnio.ssl.JsseSslConduitEngine.readBuffer:Lorg/xnio/Pooled;
            invokeinterface org.xnio.Pooled.free:()V
        12: .line 895
            aload 0 /* this */
            getfield org.xnio.ssl.JsseSslConduitEngine.receiveBuffer:Lorg/xnio/Pooled;
            invokeinterface org.xnio.Pooled.free:()V
        13: .line 896
            aload 0 /* this */
            getfield org.xnio.ssl.JsseSslConduitEngine.sendBuffer:Lorg/xnio/Pooled;
            invokeinterface org.xnio.Pooled.free:()V
        14: .line 897
            aload 3
            athrow
        15: .line 894
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.xnio.ssl.JsseSslConduitEngine.readBuffer:Lorg/xnio/Pooled;
            invokeinterface org.xnio.Pooled.free:()V
        16: .line 895
            aload 0 /* this */
            getfield org.xnio.ssl.JsseSslConduitEngine.receiveBuffer:Lorg/xnio/Pooled;
            invokeinterface org.xnio.Pooled.free:()V
        17: .line 896
            aload 0 /* this */
            getfield org.xnio.ssl.JsseSslConduitEngine.sendBuffer:Lorg/xnio/Pooled;
            invokeinterface org.xnio.Pooled.free:()V
        18: .line 898
            return
        end local 1 // int old
        end local 0 // org.xnio.ssl.JsseSslConduitEngine this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   19     0  this  Lorg/xnio/ssl/JsseSslConduitEngine;
            1   19     1   old  I
      Exception table:
        from    to  target  type
           4     7       8  any
           8     9       8  any
           3    10      10  any
    Exceptions:
      throws java.io.IOException

  public void closeOutbound();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=4, args_size=1
        start local 0 // org.xnio.ssl.JsseSslConduitEngine this
         0: .line 906
            aload 0 /* this */
            ldc 131072
            invokevirtual org.xnio.ssl.JsseSslConduitEngine.setFlags:(I)I
            istore 1 /* old */
        start local 1 // int old
         1: .line 908
            iload 1 /* old */
            ldc 131072
            invokestatic org.xnio.Bits.allAreClear:(II)Z
            ifeq 10
         2: .line 909
            aload 0 /* this */
            getfield org.xnio.ssl.JsseSslConduitEngine.engine:Ljavax/net/ssl/SSLEngine;
            invokevirtual javax.net.ssl.SSLEngine.closeOutbound:()V
         3: .line 910
            aload 0 /* this */
            invokevirtual org.xnio.ssl.JsseSslConduitEngine.getWrapLock:()Ljava/lang/Object;
            dup
            astore 2
            monitorenter
         4: .line 911
            aload 0 /* this */
            invokevirtual org.xnio.ssl.JsseSslConduitEngine.wrapCloseMessage:()Z
            pop
         5: .line 912
            aload 0 /* this */
            invokevirtual org.xnio.ssl.JsseSslConduitEngine.flush:()Z
            pop
         6: .line 910
            aload 2
            monitorexit
         7: goto 10
      StackMap locals: org.xnio.ssl.JsseSslConduitEngine int java.lang.Object
      StackMap stack: java.lang.Throwable
         8: aload 2
            monitorexit
         9: athrow
        10: .line 915
      StackMap locals:
      StackMap stack:
            iload 1 /* old */
            iconst_2
            invokestatic org.xnio.Bits.allAreClear:(II)Z
            ifne 21
        11: .line 916
            aload 0 /* this */
            invokevirtual org.xnio.ssl.JsseSslConduitEngine.closeEngine:()V
        12: .line 918
            goto 21
      StackMap locals:
      StackMap stack: java.lang.Exception
        13: astore 2 /* e */
        start local 2 // java.lang.Exception e
        14: .line 921
            aload 0 /* this */
            invokevirtual org.xnio.ssl.JsseSslConduitEngine.closeEngine:()V
        15: .line 922
            goto 18
      StackMap locals: org.xnio.ssl.JsseSslConduitEngine int java.lang.Exception
      StackMap stack: java.lang.Exception
        16: astore 3 /* closeEngineException */
        start local 3 // java.lang.Exception closeEngineException
        17: .line 923
            getstatic org.xnio._private.Messages.msg:Lorg/xnio/_private/Messages;
            aload 2 /* e */
            aload 3 /* closeEngineException */
            invokeinterface org.xnio._private.Messages.failedToCloseSSLEngine:(Ljava/lang/Throwable;Ljava/lang/Exception;)V
        end local 3 // java.lang.Exception closeEngineException
        18: .line 925
      StackMap locals:
      StackMap stack:
            aload 2 /* e */
            instanceof java.io.IOException
            ifeq 20
        19: .line 926
            aload 2 /* e */
            checkcast java.io.IOException
            athrow
        20: .line 928
      StackMap locals:
      StackMap stack:
            aload 2 /* e */
            checkcast java.lang.RuntimeException
            athrow
        end local 2 // java.lang.Exception e
        21: .line 931
      StackMap locals:
      StackMap stack:
            return
        end local 1 // int old
        end local 0 // org.xnio.ssl.JsseSslConduitEngine this
      LocalVariableTable:
        Start  End  Slot                  Name  Signature
            0   22     0                  this  Lorg/xnio/ssl/JsseSslConduitEngine;
            1   22     1                   old  I
           14   21     2                     e  Ljava/lang/Exception;
           17   18     3  closeEngineException  Ljava/lang/Exception;
      Exception table:
        from    to  target  type
           4     7       8  any
           8     9       8  any
           1    12      13  Class java.lang.Exception
          14    15      16  Class java.lang.Exception
    Exceptions:
      throws java.io.IOException

  void close();
    descriptor: ()V
    flags: (0x0000) 
    Code:
      stack=2, locals=3, args_size=1
        start local 0 // org.xnio.ssl.JsseSslConduitEngine this
         0: .line 940
            aload 0 /* this */
            invokevirtual org.xnio.ssl.JsseSslConduitEngine.isFirstHandshake:()Z
            ifeq 4
         1: .line 941
            aload 0 /* this */
            ldc 393218
            invokevirtual org.xnio.ssl.JsseSslConduitEngine.setFlags:(I)I
            pop
         2: .line 942
            aload 0 /* this */
            invokevirtual org.xnio.ssl.JsseSslConduitEngine.closeEngine:()V
         3: .line 943
            goto 14
         4: .line 945
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.xnio.ssl.JsseSslConduitEngine.closeInbound:()V
         5: .line 946
            goto 13
      StackMap locals:
      StackMap stack: java.lang.Throwable
         6: astore 1 /* t */
        start local 1 // java.lang.Throwable t
         7: .line 948
            aload 0 /* this */
            invokevirtual org.xnio.ssl.JsseSslConduitEngine.closeOutbound:()V
         8: .line 949
            goto 12
      StackMap locals: org.xnio.ssl.JsseSslConduitEngine java.lang.Throwable
      StackMap stack: java.lang.Throwable
         9: astore 2 /* t2 */
        start local 2 // java.lang.Throwable t2
        10: .line 950
            aload 2 /* t2 */
            aload 1 /* t */
            invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
        11: .line 951
            aload 2 /* t2 */
            athrow
        end local 2 // java.lang.Throwable t2
        12: .line 953
      StackMap locals:
      StackMap stack:
            aload 1 /* t */
            athrow
        end local 1 // java.lang.Throwable t
        13: .line 955
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.xnio.ssl.JsseSslConduitEngine.closeOutbound:()V
        14: .line 957
      StackMap locals:
      StackMap stack:
            return
        end local 0 // org.xnio.ssl.JsseSslConduitEngine this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   15     0  this  Lorg/xnio/ssl/JsseSslConduitEngine;
            7   13     1     t  Ljava/lang/Throwable;
           10   12     2    t2  Ljava/lang/Throwable;
      Exception table:
        from    to  target  type
           4     5       6  Class java.lang.Throwable
           7     8       9  Class java.lang.Throwable
    Exceptions:
      throws java.io.IOException

  public boolean isOutboundClosed();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.xnio.ssl.JsseSslConduitEngine this
         0: .line 965
            getstatic org.xnio.ssl.JsseSslConduitEngine.stateUpdater:Ljava/util/concurrent/atomic/AtomicIntegerFieldUpdater;
            aload 0 /* this */
            invokevirtual java.util.concurrent.atomic.AtomicIntegerFieldUpdater.get:(Ljava/lang/Object;)I
            ldc 131072
            invokestatic org.xnio.Bits.allAreSet:(II)Z
            ireturn
        end local 0 // org.xnio.ssl.JsseSslConduitEngine this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/xnio/ssl/JsseSslConduitEngine;

  public void awaitCanWrap();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=5, args_size=1
        start local 0 // org.xnio.ssl.JsseSslConduitEngine this
         0: .line 977
            aload 0 /* this */
            getfield org.xnio.ssl.JsseSslConduitEngine.state:I
            istore 1 /* oldState */
        start local 1 // int oldState
         1: .line 978
            iload 1 /* oldState */
            ldc 131072
            invokestatic org.xnio.Bits.anyAreSet:(II)Z
            ifne 2
            iload 1 /* oldState */
            ldc 65536
            invokestatic org.xnio.Bits.allAreSet:(II)Z
            ifne 3
         2: .line 979
      StackMap locals: int
      StackMap stack:
            return
         3: .line 981
      StackMap locals:
      StackMap stack:
            invokestatic java.lang.Thread.currentThread:()Ljava/lang/Thread;
            astore 2 /* thread */
        start local 2 // java.lang.Thread thread
         4: .line 982
            getstatic org.xnio.ssl.JsseSslConduitEngine.writeWaiterUpdater:Ljava/util/concurrent/atomic/AtomicReferenceFieldUpdater;
            aload 0 /* this */
            aload 2 /* thread */
            invokevirtual java.util.concurrent.atomic.AtomicReferenceFieldUpdater.getAndSet:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.lang.Thread
            astore 3 /* next */
        start local 3 // java.lang.Thread next
         5: .line 984
            aload 0 /* this */
            getfield org.xnio.ssl.JsseSslConduitEngine.state:I
            dup
            istore 1 /* oldState */
            ldc 131072
            invokestatic org.xnio.Bits.anyAreSet:(II)Z
            ifeq 8
         6: .line 996
            aload 3 /* next */
            ifnull 7
            aload 3 /* next */
            invokestatic java.util.concurrent.locks.LockSupport.unpark:(Ljava/lang/Thread;)V
         7: .line 985
      StackMap locals: java.lang.Thread java.lang.Thread
      StackMap stack:
            return
         8: .line 987
      StackMap locals:
      StackMap stack:
            iload 1 /* oldState */
            ldc 65536
            invokestatic org.xnio.Bits.allAreSet:(II)Z
            ifeq 10
         9: .line 988
            aload 0 /* this */
            getstatic org.xnio.Buffers.EMPTY_BYTE_BUFFER:Ljava/nio/ByteBuffer;
            invokevirtual org.xnio.ssl.JsseSslConduitEngine.unwrap:(Ljava/nio/ByteBuffer;)I
            pop
        10: .line 990
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokestatic java.util.concurrent.locks.LockSupport.park:(Ljava/lang/Object;)V
        11: .line 991
            aload 2 /* thread */
            invokevirtual java.lang.Thread.isInterrupted:()Z
            ifeq 16
        12: .line 992
            getstatic org.xnio._private.Messages.msg:Lorg/xnio/_private/Messages;
            invokeinterface org.xnio._private.Messages.interruptedIO:()Ljava/io/InterruptedIOException;
            athrow
        13: .line 994
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 4
        14: .line 996
            aload 3 /* next */
            ifnull 15
            aload 3 /* next */
            invokestatic java.util.concurrent.locks.LockSupport.unpark:(Ljava/lang/Thread;)V
        15: .line 997
      StackMap locals: java.lang.Throwable
      StackMap stack:
            aload 4
            athrow
        16: .line 996
      StackMap locals:
      StackMap stack:
            aload 3 /* next */
            ifnull 17
            aload 3 /* next */
            invokestatic java.util.concurrent.locks.LockSupport.unpark:(Ljava/lang/Thread;)V
        17: .line 998
      StackMap locals:
      StackMap stack:
            return
        end local 3 // java.lang.Thread next
        end local 2 // java.lang.Thread thread
        end local 1 // int oldState
        end local 0 // org.xnio.ssl.JsseSslConduitEngine this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   18     0      this  Lorg/xnio/ssl/JsseSslConduitEngine;
            1   18     1  oldState  I
            4   18     2    thread  Ljava/lang/Thread;
            5   18     3      next  Ljava/lang/Thread;
      Exception table:
        from    to  target  type
           5     6      13  any
           8    13      13  any
    Exceptions:
      throws java.io.IOException

  public void awaitCanWrap(long, java.util.concurrent.TimeUnit);
    descriptor: (JLjava/util/concurrent/TimeUnit;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=10, args_size=3
        start local 0 // org.xnio.ssl.JsseSslConduitEngine this
        start local 1 // long time
        start local 3 // java.util.concurrent.TimeUnit timeUnit
         0: .line 1011
            aload 0 /* this */
            getfield org.xnio.ssl.JsseSslConduitEngine.state:I
            istore 4 /* oldState */
        start local 4 // int oldState
         1: .line 1012
            iload 4 /* oldState */
            ldc 131072
            invokestatic org.xnio.Bits.anyAreSet:(II)Z
            ifne 2
            iload 4 /* oldState */
            ldc 65536
            invokestatic org.xnio.Bits.allAreSet:(II)Z
            ifne 3
         2: .line 1013
      StackMap locals: int
      StackMap stack:
            return
         3: .line 1015
      StackMap locals:
      StackMap stack:
            invokestatic java.lang.Thread.currentThread:()Ljava/lang/Thread;
            astore 5 /* thread */
        start local 5 // java.lang.Thread thread
         4: .line 1016
            getstatic org.xnio.ssl.JsseSslConduitEngine.writeWaiterUpdater:Ljava/util/concurrent/atomic/AtomicReferenceFieldUpdater;
            aload 0 /* this */
            aload 5 /* thread */
            invokevirtual java.util.concurrent.atomic.AtomicReferenceFieldUpdater.getAndSet:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.lang.Thread
            astore 6 /* next */
        start local 6 // java.lang.Thread next
         5: .line 1017
            aload 3 /* timeUnit */
            lload 1 /* time */
            invokevirtual java.util.concurrent.TimeUnit.toNanos:(J)J
            lstore 7 /* duration */
        start local 7 // long duration
         6: .line 1019
            aload 0 /* this */
            getfield org.xnio.ssl.JsseSslConduitEngine.state:I
            dup
            istore 4 /* oldState */
            ldc 131072
            invokestatic org.xnio.Bits.anyAreSet:(II)Z
            ifeq 9
         7: .line 1031
            aload 6 /* next */
            ifnull 8
            aload 6 /* next */
            invokestatic java.util.concurrent.locks.LockSupport.unpark:(Ljava/lang/Thread;)V
         8: .line 1020
      StackMap locals: java.lang.Thread java.lang.Thread long
      StackMap stack:
            return
         9: .line 1022
      StackMap locals:
      StackMap stack:
            iload 4 /* oldState */
            ldc 65536
            invokestatic org.xnio.Bits.allAreSet:(II)Z
            ifeq 11
        10: .line 1023
            aload 0 /* this */
            getstatic org.xnio.Buffers.EMPTY_BYTE_BUFFER:Ljava/nio/ByteBuffer;
            invokevirtual org.xnio.ssl.JsseSslConduitEngine.unwrap:(Ljava/nio/ByteBuffer;)I
            pop
        11: .line 1025
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            lload 7 /* duration */
            invokestatic java.util.concurrent.locks.LockSupport.parkNanos:(Ljava/lang/Object;J)V
        12: .line 1026
            aload 5 /* thread */
            invokevirtual java.lang.Thread.isInterrupted:()Z
            ifeq 17
        13: .line 1027
            getstatic org.xnio._private.Messages.msg:Lorg/xnio/_private/Messages;
            invokeinterface org.xnio._private.Messages.interruptedIO:()Ljava/io/InterruptedIOException;
            athrow
        14: .line 1029
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 9
        15: .line 1031
            aload 6 /* next */
            ifnull 16
            aload 6 /* next */
            invokestatic java.util.concurrent.locks.LockSupport.unpark:(Ljava/lang/Thread;)V
        16: .line 1032
      StackMap locals: java.lang.Throwable
      StackMap stack:
            aload 9
            athrow
        17: .line 1031
      StackMap locals:
      StackMap stack:
            aload 6 /* next */
            ifnull 18
            aload 6 /* next */
            invokestatic java.util.concurrent.locks.LockSupport.unpark:(Ljava/lang/Thread;)V
        18: .line 1033
      StackMap locals:
      StackMap stack:
            return
        end local 7 // long duration
        end local 6 // java.lang.Thread next
        end local 5 // java.lang.Thread thread
        end local 4 // int oldState
        end local 3 // java.util.concurrent.TimeUnit timeUnit
        end local 1 // long time
        end local 0 // org.xnio.ssl.JsseSslConduitEngine this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   19     0      this  Lorg/xnio/ssl/JsseSslConduitEngine;
            0   19     1      time  J
            0   19     3  timeUnit  Ljava/util/concurrent/TimeUnit;
            1   19     4  oldState  I
            4   19     5    thread  Ljava/lang/Thread;
            5   19     6      next  Ljava/lang/Thread;
            6   19     7  duration  J
      Exception table:
        from    to  target  type
           6     7      14  any
           9    14      14  any
    Exceptions:
      throws java.io.IOException
    MethodParameters:
          Name  Flags
      time      
      timeUnit  

  public void closeInbound();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=1
        start local 0 // org.xnio.ssl.JsseSslConduitEngine this
         0: .line 1041
            aload 0 /* this */
            getfield org.xnio.ssl.JsseSslConduitEngine.connection:Lorg/xnio/ssl/JsseSslStreamConnection;
            invokevirtual org.xnio.ssl.JsseSslStreamConnection.readClosed:()Z
            pop
         1: .line 1042
            aload 0 /* this */
            iconst_2
            invokevirtual org.xnio.ssl.JsseSslConduitEngine.setFlags:(I)I
            istore 1 /* old */
        start local 1 // int old
         2: .line 1044
            iload 1 /* old */
            iconst_2
            invokestatic org.xnio.Bits.allAreClear:(II)Z
            ifeq 4
         3: .line 1045
            aload 0 /* this */
            getfield org.xnio.ssl.JsseSslConduitEngine.sourceConduit:Lorg/xnio/conduits/StreamSourceConduit;
            invokeinterface org.xnio.conduits.StreamSourceConduit.terminateReads:()V
         4: .line 1047
      StackMap locals: int
      StackMap stack:
            iload 1 /* old */
            ldc 131072
            invokestatic org.xnio.Bits.allAreSet:(II)Z
            ifeq 12
            iload 1 /* old */
            ldc 262144
            invokestatic org.xnio.Bits.allAreSet:(II)Z
            ifne 12
         5: .line 1048
            aload 0 /* this */
            invokevirtual org.xnio.ssl.JsseSslConduitEngine.getWrapLock:()Ljava/lang/Object;
            dup
            astore 2
            monitorenter
         6: .line 1049
            aload 0 /* this */
            invokevirtual org.xnio.ssl.JsseSslConduitEngine.wrapCloseMessage:()Z
            pop
         7: .line 1050
            aload 0 /* this */
            invokevirtual org.xnio.ssl.JsseSslConduitEngine.flush:()Z
            pop
         8: .line 1048
            aload 2
            monitorexit
         9: goto 12
      StackMap locals: org.xnio.ssl.JsseSslConduitEngine int java.lang.Object
      StackMap stack: java.lang.Throwable
        10: aload 2
            monitorexit
        11: athrow
        12: .line 1053
      StackMap locals:
      StackMap stack:
            iload 1 /* old */
            ldc 262144
            invokestatic org.xnio.Bits.allAreSet:(II)Z
            ifeq 20
        13: .line 1054
            aload 0 /* this */
            invokevirtual org.xnio.ssl.JsseSslConduitEngine.closeEngine:()V
        14: .line 1056
            goto 20
      StackMap locals:
      StackMap stack: java.lang.Exception
        15: astore 2 /* e */
        start local 2 // java.lang.Exception e
        16: .line 1058
            aload 0 /* this */
            invokevirtual org.xnio.ssl.JsseSslConduitEngine.closeEngine:()V
        17: .line 1059
            aload 2 /* e */
            instanceof java.io.IOException
            ifeq 19
        18: .line 1060
            aload 2 /* e */
            checkcast java.io.IOException
            athrow
        19: .line 1062
      StackMap locals: java.lang.Exception
      StackMap stack:
            aload 2 /* e */
            checkcast java.lang.RuntimeException
            athrow
        end local 2 // java.lang.Exception e
        20: .line 1065
      StackMap locals:
      StackMap stack:
            return
        end local 1 // int old
        end local 0 // org.xnio.ssl.JsseSslConduitEngine this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   21     0  this  Lorg/xnio/ssl/JsseSslConduitEngine;
            2   21     1   old  I
           16   20     2     e  Ljava/lang/Exception;
      Exception table:
        from    to  target  type
           6     9      10  any
          10    11      10  any
           2    14      15  Class java.lang.Exception
    Exceptions:
      throws java.io.IOException

  public boolean isInboundClosed();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.xnio.ssl.JsseSslConduitEngine this
         0: .line 1073
            aload 0 /* this */
            getfield org.xnio.ssl.JsseSslConduitEngine.state:I
            iconst_2
            invokestatic org.xnio.Bits.allAreSet:(II)Z
            ireturn
        end local 0 // org.xnio.ssl.JsseSslConduitEngine this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/xnio/ssl/JsseSslConduitEngine;

  public boolean isClosed();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.xnio.ssl.JsseSslConduitEngine this
         0: .line 1081
            aload 0 /* this */
            getfield org.xnio.ssl.JsseSslConduitEngine.state:I
            ldc 8388608
            invokestatic org.xnio.Bits.allAreSet:(II)Z
            ireturn
        end local 0 // org.xnio.ssl.JsseSslConduitEngine this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/xnio/ssl/JsseSslConduitEngine;

  public void awaitCanUnwrap();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=5, args_size=1
        start local 0 // org.xnio.ssl.JsseSslConduitEngine this
         0: .line 1090
            aload 0 /* this */
            getfield org.xnio.ssl.JsseSslConduitEngine.state:I
            istore 1 /* oldState */
        start local 1 // int oldState
         1: .line 1091
            iload 1 /* oldState */
            iconst_2
            invokestatic org.xnio.Bits.anyAreSet:(II)Z
            ifne 2
            iload 1 /* oldState */
            iconst_1
            invokestatic org.xnio.Bits.anyAreSet:(II)Z
            ifne 3
         2: .line 1092
      StackMap locals: int
      StackMap stack:
            return
         3: .line 1094
      StackMap locals:
      StackMap stack:
            invokestatic java.lang.Thread.currentThread:()Ljava/lang/Thread;
            astore 2 /* thread */
        start local 2 // java.lang.Thread thread
         4: .line 1095
            getstatic org.xnio.ssl.JsseSslConduitEngine.readWaiterUpdater:Ljava/util/concurrent/atomic/AtomicReferenceFieldUpdater;
            aload 0 /* this */
            aload 2 /* thread */
            invokevirtual java.util.concurrent.atomic.AtomicReferenceFieldUpdater.getAndSet:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.lang.Thread
            astore 3 /* next */
        start local 3 // java.lang.Thread next
         5: .line 1097
            aload 0 /* this */
            getfield org.xnio.ssl.JsseSslConduitEngine.state:I
            dup
            istore 1 /* oldState */
            iconst_2
            invokestatic org.xnio.Bits.anyAreSet:(II)Z
            ifeq 8
         6: .line 1109
            aload 3 /* next */
            ifnull 7
            aload 3 /* next */
            invokestatic java.util.concurrent.locks.LockSupport.unpark:(Ljava/lang/Thread;)V
         7: .line 1098
      StackMap locals: java.lang.Thread java.lang.Thread
      StackMap stack:
            return
         8: .line 1100
      StackMap locals:
      StackMap stack:
            iload 1 /* oldState */
            iconst_1
            invokestatic org.xnio.Bits.allAreSet:(II)Z
            ifeq 10
         9: .line 1101
            aload 0 /* this */
            getstatic org.xnio.Buffers.EMPTY_BYTE_BUFFER:Ljava/nio/ByteBuffer;
            invokevirtual org.xnio.ssl.JsseSslConduitEngine.wrap:(Ljava/nio/ByteBuffer;)I
            pop
        10: .line 1103
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokestatic java.util.concurrent.locks.LockSupport.park:(Ljava/lang/Object;)V
        11: .line 1104
            aload 2 /* thread */
            invokevirtual java.lang.Thread.isInterrupted:()Z
            ifeq 16
        12: .line 1105
            getstatic org.xnio._private.Messages.msg:Lorg/xnio/_private/Messages;
            invokeinterface org.xnio._private.Messages.interruptedIO:()Ljava/io/InterruptedIOException;
            athrow
        13: .line 1107
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 4
        14: .line 1109
            aload 3 /* next */
            ifnull 15
            aload 3 /* next */
            invokestatic java.util.concurrent.locks.LockSupport.unpark:(Ljava/lang/Thread;)V
        15: .line 1110
      StackMap locals: java.lang.Throwable
      StackMap stack:
            aload 4
            athrow
        16: .line 1109
      StackMap locals:
      StackMap stack:
            aload 3 /* next */
            ifnull 17
            aload 3 /* next */
            invokestatic java.util.concurrent.locks.LockSupport.unpark:(Ljava/lang/Thread;)V
        17: .line 1111
      StackMap locals:
      StackMap stack:
            return
        end local 3 // java.lang.Thread next
        end local 2 // java.lang.Thread thread
        end local 1 // int oldState
        end local 0 // org.xnio.ssl.JsseSslConduitEngine this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   18     0      this  Lorg/xnio/ssl/JsseSslConduitEngine;
            1   18     1  oldState  I
            4   18     2    thread  Ljava/lang/Thread;
            5   18     3      next  Ljava/lang/Thread;
      Exception table:
        from    to  target  type
           5     6      13  any
           8    13      13  any
    Exceptions:
      throws java.io.IOException

  public void awaitCanUnwrap(long, java.util.concurrent.TimeUnit);
    descriptor: (JLjava/util/concurrent/TimeUnit;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=10, args_size=3
        start local 0 // org.xnio.ssl.JsseSslConduitEngine this
        start local 1 // long time
        start local 3 // java.util.concurrent.TimeUnit timeUnit
         0: .line 1121
            aload 0 /* this */
            getfield org.xnio.ssl.JsseSslConduitEngine.state:I
            istore 4 /* oldState */
        start local 4 // int oldState
         1: .line 1122
            iload 4 /* oldState */
            iconst_2
            invokestatic org.xnio.Bits.anyAreSet:(II)Z
            ifne 2
            iload 4 /* oldState */
            iconst_1
            invokestatic org.xnio.Bits.anyAreSet:(II)Z
            ifne 3
         2: .line 1123
      StackMap locals: int
      StackMap stack:
            return
         3: .line 1125
      StackMap locals:
      StackMap stack:
            invokestatic java.lang.Thread.currentThread:()Ljava/lang/Thread;
            astore 5 /* thread */
        start local 5 // java.lang.Thread thread
         4: .line 1126
            getstatic org.xnio.ssl.JsseSslConduitEngine.readWaiterUpdater:Ljava/util/concurrent/atomic/AtomicReferenceFieldUpdater;
            aload 0 /* this */
            aload 5 /* thread */
            invokevirtual java.util.concurrent.atomic.AtomicReferenceFieldUpdater.getAndSet:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.lang.Thread
            astore 6 /* next */
        start local 6 // java.lang.Thread next
         5: .line 1127
            aload 3 /* timeUnit */
            lload 1 /* time */
            invokevirtual java.util.concurrent.TimeUnit.toNanos:(J)J
            lstore 7 /* duration */
        start local 7 // long duration
         6: .line 1129
            aload 0 /* this */
            getfield org.xnio.ssl.JsseSslConduitEngine.state:I
            dup
            istore 4 /* oldState */
            iconst_2
            invokestatic org.xnio.Bits.anyAreSet:(II)Z
            ifeq 9
         7: .line 1141
            aload 6 /* next */
            ifnull 8
            aload 6 /* next */
            invokestatic java.util.concurrent.locks.LockSupport.unpark:(Ljava/lang/Thread;)V
         8: .line 1130
      StackMap locals: java.lang.Thread java.lang.Thread long
      StackMap stack:
            return
         9: .line 1132
      StackMap locals:
      StackMap stack:
            iload 4 /* oldState */
            iconst_1
            invokestatic org.xnio.Bits.allAreSet:(II)Z
            ifeq 11
        10: .line 1133
            aload 0 /* this */
            getstatic org.xnio.Buffers.EMPTY_BYTE_BUFFER:Ljava/nio/ByteBuffer;
            invokevirtual org.xnio.ssl.JsseSslConduitEngine.wrap:(Ljava/nio/ByteBuffer;)I
            pop
        11: .line 1135
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            lload 7 /* duration */
            invokestatic java.util.concurrent.locks.LockSupport.parkNanos:(Ljava/lang/Object;J)V
        12: .line 1136
            aload 5 /* thread */
            invokevirtual java.lang.Thread.isInterrupted:()Z
            ifeq 17
        13: .line 1137
            getstatic org.xnio._private.Messages.msg:Lorg/xnio/_private/Messages;
            invokeinterface org.xnio._private.Messages.interruptedIO:()Ljava/io/InterruptedIOException;
            athrow
        14: .line 1139
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 9
        15: .line 1141
            aload 6 /* next */
            ifnull 16
            aload 6 /* next */
            invokestatic java.util.concurrent.locks.LockSupport.unpark:(Ljava/lang/Thread;)V
        16: .line 1142
      StackMap locals: java.lang.Throwable
      StackMap stack:
            aload 9
            athrow
        17: .line 1141
      StackMap locals:
      StackMap stack:
            aload 6 /* next */
            ifnull 18
            aload 6 /* next */
            invokestatic java.util.concurrent.locks.LockSupport.unpark:(Ljava/lang/Thread;)V
        18: .line 1143
      StackMap locals:
      StackMap stack:
            return
        end local 7 // long duration
        end local 6 // java.lang.Thread next
        end local 5 // java.lang.Thread thread
        end local 4 // int oldState
        end local 3 // java.util.concurrent.TimeUnit timeUnit
        end local 1 // long time
        end local 0 // org.xnio.ssl.JsseSslConduitEngine this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   19     0      this  Lorg/xnio/ssl/JsseSslConduitEngine;
            0   19     1      time  J
            0   19     3  timeUnit  Ljava/util/concurrent/TimeUnit;
            1   19     4  oldState  I
            4   19     5    thread  Ljava/lang/Thread;
            5   19     6      next  Ljava/lang/Thread;
            6   19     7  duration  J
      Exception table:
        from    to  target  type
           6     7      14  any
           9    14      14  any
    Exceptions:
      throws java.io.IOException
    MethodParameters:
          Name  Flags
      time      
      timeUnit  

  public boolean isFirstHandshake();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.xnio.ssl.JsseSslConduitEngine this
         0: .line 1146
            aload 0 /* this */
            getfield org.xnio.ssl.JsseSslConduitEngine.state:I
            ldc 4194304
            invokestatic org.xnio.Bits.allAreSet:(II)Z
            ireturn
        end local 0 // org.xnio.ssl.JsseSslConduitEngine this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/xnio/ssl/JsseSslConduitEngine;

  javax.net.ssl.SSLEngine getEngine();
    descriptor: ()Ljavax/net/ssl/SSLEngine;
    flags: (0x0000) 
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.xnio.ssl.JsseSslConduitEngine this
         0: .line 1150
            aload 0 /* this */
            getfield org.xnio.ssl.JsseSslConduitEngine.engine:Ljavax/net/ssl/SSLEngine;
            areturn
        end local 0 // org.xnio.ssl.JsseSslConduitEngine this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/xnio/ssl/JsseSslConduitEngine;

  private void needWrap();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.xnio.ssl.JsseSslConduitEngine this
         0: .line 1157
            aload 0 /* this */
            iconst_1
            invokevirtual org.xnio.ssl.JsseSslConduitEngine.setFlags:(I)I
            pop
         1: .line 1158
            return
        end local 0 // org.xnio.ssl.JsseSslConduitEngine this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/xnio/ssl/JsseSslConduitEngine;

  private boolean isWrapNeeded();
    descriptor: ()Z
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.xnio.ssl.JsseSslConduitEngine this
         0: .line 1164
            aload 0 /* this */
            getfield org.xnio.ssl.JsseSslConduitEngine.state:I
            iconst_1
            invokestatic org.xnio.Bits.allAreSet:(II)Z
            ireturn
        end local 0 // org.xnio.ssl.JsseSslConduitEngine this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/xnio/ssl/JsseSslConduitEngine;

  private void clearNeedWrap();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.xnio.ssl.JsseSslConduitEngine this
         0: .line 1171
            aload 0 /* this */
            iconst_1
            invokevirtual org.xnio.ssl.JsseSslConduitEngine.clearFlags:(I)I
            pop
         1: .line 1172
            return
        end local 0 // org.xnio.ssl.JsseSslConduitEngine this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/xnio/ssl/JsseSslConduitEngine;

  private void needUnwrap();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.xnio.ssl.JsseSslConduitEngine this
         0: .line 1178
            aload 0 /* this */
            ldc 65536
            invokevirtual org.xnio.ssl.JsseSslConduitEngine.setFlags:(I)I
            pop
         1: .line 1179
            return
        end local 0 // org.xnio.ssl.JsseSslConduitEngine this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/xnio/ssl/JsseSslConduitEngine;

  private boolean isUnwrapNeeded();
    descriptor: ()Z
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.xnio.ssl.JsseSslConduitEngine this
         0: .line 1185
            aload 0 /* this */
            getfield org.xnio.ssl.JsseSslConduitEngine.state:I
            ldc 65536
            invokestatic org.xnio.Bits.allAreSet:(II)Z
            ireturn
        end local 0 // org.xnio.ssl.JsseSslConduitEngine this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/xnio/ssl/JsseSslConduitEngine;

  private boolean isUnderflow();
    descriptor: ()Z
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.xnio.ssl.JsseSslConduitEngine this
         0: .line 1192
            aload 0 /* this */
            getfield org.xnio.ssl.JsseSslConduitEngine.state:I
            iconst_4
            invokestatic org.xnio.Bits.allAreSet:(II)Z
            ireturn
        end local 0 // org.xnio.ssl.JsseSslConduitEngine this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/xnio/ssl/JsseSslConduitEngine;

  private void clearNeedUnwrap();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.xnio.ssl.JsseSslConduitEngine this
         0: .line 1199
            aload 0 /* this */
            ldc 65536
            invokevirtual org.xnio.ssl.JsseSslConduitEngine.clearFlags:(I)I
            pop
         1: .line 1200
            return
        end local 0 // org.xnio.ssl.JsseSslConduitEngine this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/xnio/ssl/JsseSslConduitEngine;

  private int setFlags(int);
    descriptor: (I)I
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=3, args_size=2
        start local 0 // org.xnio.ssl.JsseSslConduitEngine this
        start local 1 // int flags
         0: .line 1205
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.xnio.ssl.JsseSslConduitEngine.state:I
            istore 2 /* oldState */
        start local 2 // int oldState
         1: .line 1206
            iload 2 /* oldState */
            iload 1 /* flags */
            iand
            iload 1 /* flags */
            if_icmpne 3
         2: .line 1207
            iload 2 /* oldState */
            ireturn
         3: .line 1209
      StackMap locals: int
      StackMap stack:
            getstatic org.xnio.ssl.JsseSslConduitEngine.stateUpdater:Ljava/util/concurrent/atomic/AtomicIntegerFieldUpdater;
            aload 0 /* this */
            iload 2 /* oldState */
            iload 2 /* oldState */
            iload 1 /* flags */
            ior
            invokevirtual java.util.concurrent.atomic.AtomicIntegerFieldUpdater.compareAndSet:(Ljava/lang/Object;II)Z
            ifeq 0
         4: .line 1210
            iload 2 /* oldState */
            ireturn
        end local 2 // int oldState
        end local 1 // int flags
        end local 0 // org.xnio.ssl.JsseSslConduitEngine this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    5     0      this  Lorg/xnio/ssl/JsseSslConduitEngine;
            0    5     1     flags  I
            1    5     2  oldState  I
    MethodParameters:
       Name  Flags
      flags  

  private int clearFlags(int);
    descriptor: (I)I
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=6, locals=3, args_size=2
        start local 0 // org.xnio.ssl.JsseSslConduitEngine this
        start local 1 // int flags
         0: .line 1216
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.xnio.ssl.JsseSslConduitEngine.state:I
            istore 2 /* oldState */
        start local 2 // int oldState
         1: .line 1217
            iload 2 /* oldState */
            iload 1 /* flags */
            iand
            ifne 3
         2: .line 1218
            iload 2 /* oldState */
            ireturn
         3: .line 1220
      StackMap locals: int
      StackMap stack:
            getstatic org.xnio.ssl.JsseSslConduitEngine.stateUpdater:Ljava/util/concurrent/atomic/AtomicIntegerFieldUpdater;
            aload 0 /* this */
            iload 2 /* oldState */
            iload 2 /* oldState */
            iload 1 /* flags */
            iconst_m1
            ixor
            iand
            invokevirtual java.util.concurrent.atomic.AtomicIntegerFieldUpdater.compareAndSet:(Ljava/lang/Object;II)Z
            ifeq 0
         4: .line 1221
            iload 2 /* oldState */
            ireturn
        end local 2 // int oldState
        end local 1 // int flags
        end local 0 // org.xnio.ssl.JsseSslConduitEngine this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    5     0      this  Lorg/xnio/ssl/JsseSslConduitEngine;
            0    5     1     flags  I
            1    5     2  oldState  I
    MethodParameters:
       Name  Flags
      flags  

  public boolean isDataAvailable();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=1
        start local 0 // org.xnio.ssl.JsseSslConduitEngine this
         0: .line 1225
            aload 0 /* this */
            invokevirtual org.xnio.ssl.JsseSslConduitEngine.getUnwrapLock:()Ljava/lang/Object;
            dup
            astore 1
            monitorenter
         1: .line 1227
            aload 0 /* this */
            getfield org.xnio.ssl.JsseSslConduitEngine.readBuffer:Lorg/xnio/Pooled;
            invokeinterface org.xnio.Pooled.getResource:()Ljava/lang/Object;
            checkcast java.nio.ByteBuffer
            invokevirtual java.nio.ByteBuffer.hasRemaining:()Z
            ifne 3
            aload 0 /* this */
            getfield org.xnio.ssl.JsseSslConduitEngine.receiveBuffer:Lorg/xnio/Pooled;
            invokeinterface org.xnio.Pooled.getResource:()Ljava/lang/Object;
            checkcast java.nio.ByteBuffer
            invokevirtual java.nio.ByteBuffer.hasRemaining:()Z
            ifeq 2
            aload 0 /* this */
            invokevirtual org.xnio.ssl.JsseSslConduitEngine.isUnderflow:()Z
            ifeq 3
      StackMap locals: java.lang.Object
      StackMap stack:
         2: iconst_0
            goto 4
      StackMap locals:
      StackMap stack:
         3: iconst_1
      StackMap locals:
      StackMap stack: int
         4: aload 1
            monitorexit
         5: ireturn
         6: .line 1228
      StackMap locals:
      StackMap stack: java.lang.IllegalStateException
            pop
         7: .line 1229
            aload 1
            monitorexit
         8: iconst_0
            ireturn
         9: .line 1225
      StackMap locals:
      StackMap stack: java.lang.Throwable
            aload 1
            monitorexit
        10: athrow
        end local 0 // org.xnio.ssl.JsseSslConduitEngine this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   11     0  this  Lorg/xnio/ssl/JsseSslConduitEngine;
      Exception table:
        from    to  target  type
           1     4       6  Class java.lang.IllegalStateException
           1     5       9  any
           6     8       9  any
           9    10       9  any

  private final java.nio.ByteBuffer getSendBuffer();
    descriptor: ()Ljava/nio/ByteBuffer;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.xnio.ssl.JsseSslConduitEngine this
         0: .line 1235
            aload 0 /* this */
            getfield org.xnio.ssl.JsseSslConduitEngine.expandedSendBuffer:Ljava/nio/ByteBuffer;
            ifnull 1
            aload 0 /* this */
            getfield org.xnio.ssl.JsseSslConduitEngine.expandedSendBuffer:Ljava/nio/ByteBuffer;
            goto 2
      StackMap locals:
      StackMap stack:
         1: aload 0 /* this */
            getfield org.xnio.ssl.JsseSslConduitEngine.sendBuffer:Lorg/xnio/Pooled;
            invokeinterface org.xnio.Pooled.getResource:()Ljava/lang/Object;
            checkcast java.nio.ByteBuffer
      StackMap locals:
      StackMap stack: java.nio.ByteBuffer
         2: areturn
        end local 0 // org.xnio.ssl.JsseSslConduitEngine this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lorg/xnio/ssl/JsseSslConduitEngine;

  static int[] $SWITCH_TABLE$javax$net$ssl$SSLEngineResult$Status();
    descriptor: ()[I
    flags: (0x1008) ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=3, locals=1, args_size=0
         0: .line 61
            getstatic org.xnio.ssl.JsseSslConduitEngine.$SWITCH_TABLE$javax$net$ssl$SSLEngineResult$Status:[I
            dup
            ifnull 1
            areturn
      StackMap locals:
      StackMap stack: int[]
         1: pop
            invokestatic javax.net.ssl.SSLEngineResult$Status.values:()[Ljavax/net/ssl/SSLEngineResult$Status;
            arraylength
            newarray 10
            astore 0
         2: aload 0
            getstatic javax.net.ssl.SSLEngineResult$Status.BUFFER_OVERFLOW:Ljavax/net/ssl/SSLEngineResult$Status;
            invokevirtual javax.net.ssl.SSLEngineResult$Status.ordinal:()I
            iconst_2
            iastore
         3: goto 5
      StackMap locals: int[]
      StackMap stack: java.lang.NoSuchFieldError
         4: pop
      StackMap locals:
      StackMap stack:
         5: aload 0
            getstatic javax.net.ssl.SSLEngineResult$Status.BUFFER_UNDERFLOW:Ljavax/net/ssl/SSLEngineResult$Status;
            invokevirtual javax.net.ssl.SSLEngineResult$Status.ordinal:()I
            iconst_1
            iastore
         6: goto 8
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
         7: pop
      StackMap locals:
      StackMap stack:
         8: aload 0
            getstatic javax.net.ssl.SSLEngineResult$Status.CLOSED:Ljavax/net/ssl/SSLEngineResult$Status;
            invokevirtual javax.net.ssl.SSLEngineResult$Status.ordinal:()I
            iconst_4
            iastore
         9: goto 11
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        10: pop
      StackMap locals:
      StackMap stack:
        11: aload 0
            getstatic javax.net.ssl.SSLEngineResult$Status.OK:Ljavax/net/ssl/SSLEngineResult$Status;
            invokevirtual javax.net.ssl.SSLEngineResult$Status.ordinal:()I
            iconst_3
            iastore
        12: goto 14
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        13: pop
      StackMap locals:
      StackMap stack:
        14: aload 0
            dup
            putstatic org.xnio.ssl.JsseSslConduitEngine.$SWITCH_TABLE$javax$net$ssl$SSLEngineResult$Status:[I
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature
      Exception table:
        from    to  target  type
           2     3       4  Class java.lang.NoSuchFieldError
           5     6       7  Class java.lang.NoSuchFieldError
           8     9      10  Class java.lang.NoSuchFieldError
          11    12      13  Class java.lang.NoSuchFieldError

  static int[] $SWITCH_TABLE$javax$net$ssl$SSLEngineResult$HandshakeStatus();
    descriptor: ()[I
    flags: (0x1008) ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=3, locals=1, args_size=0
         0: .line 61
            getstatic org.xnio.ssl.JsseSslConduitEngine.$SWITCH_TABLE$javax$net$ssl$SSLEngineResult$HandshakeStatus:[I
            dup
            ifnull 1
            areturn
      StackMap locals:
      StackMap stack: int[]
         1: pop
            invokestatic javax.net.ssl.SSLEngineResult$HandshakeStatus.values:()[Ljavax/net/ssl/SSLEngineResult$HandshakeStatus;
            arraylength
            newarray 10
            astore 0
         2: aload 0
            getstatic javax.net.ssl.SSLEngineResult$HandshakeStatus.FINISHED:Ljavax/net/ssl/SSLEngineResult$HandshakeStatus;
            invokevirtual javax.net.ssl.SSLEngineResult$HandshakeStatus.ordinal:()I
            iconst_2
            iastore
         3: goto 5
      StackMap locals: int[]
      StackMap stack: java.lang.NoSuchFieldError
         4: pop
      StackMap locals:
      StackMap stack:
         5: aload 0
            getstatic javax.net.ssl.SSLEngineResult$HandshakeStatus.NEED_TASK:Ljavax/net/ssl/SSLEngineResult$HandshakeStatus;
            invokevirtual javax.net.ssl.SSLEngineResult$HandshakeStatus.ordinal:()I
            iconst_3
            iastore
         6: goto 8
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
         7: pop
      StackMap locals:
      StackMap stack:
         8: aload 0
            getstatic javax.net.ssl.SSLEngineResult$HandshakeStatus.NEED_UNWRAP:Ljavax/net/ssl/SSLEngineResult$HandshakeStatus;
            invokevirtual javax.net.ssl.SSLEngineResult$HandshakeStatus.ordinal:()I
            iconst_5
            iastore
         9: goto 11
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        10: pop
      StackMap locals:
      StackMap stack:
        11: aload 0
            getstatic javax.net.ssl.SSLEngineResult$HandshakeStatus.NEED_WRAP:Ljavax/net/ssl/SSLEngineResult$HandshakeStatus;
            invokevirtual javax.net.ssl.SSLEngineResult$HandshakeStatus.ordinal:()I
            iconst_4
            iastore
        12: goto 14
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        13: pop
      StackMap locals:
      StackMap stack:
        14: aload 0
            getstatic javax.net.ssl.SSLEngineResult$HandshakeStatus.NOT_HANDSHAKING:Ljavax/net/ssl/SSLEngineResult$HandshakeStatus;
            invokevirtual javax.net.ssl.SSLEngineResult$HandshakeStatus.ordinal:()I
            iconst_1
            iastore
        15: goto 17
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        16: pop
      StackMap locals:
      StackMap stack:
        17: aload 0
            dup
            putstatic org.xnio.ssl.JsseSslConduitEngine.$SWITCH_TABLE$javax$net$ssl$SSLEngineResult$HandshakeStatus:[I
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature
      Exception table:
        from    to  target  type
           2     3       4  Class java.lang.NoSuchFieldError
           5     6       7  Class java.lang.NoSuchFieldError
           8     9      10  Class java.lang.NoSuchFieldError
          11    12      13  Class java.lang.NoSuchFieldError
          14    15      16  Class java.lang.NoSuchFieldError
}
SourceFile: "JsseSslConduitEngine.java"
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
  public final Level = org.jboss.logging.Logger$Level of org.jboss.logging.Logger