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 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;>;

  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 58
            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 60
            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 61
            ldc Lorg/xnio/ssl/JsseSslConduitEngine;
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
            putstatic org.xnio.ssl.JsseSslConduitEngine.FQCN:Ljava/lang/String;
         5: .line 68
            iconst_0
            bipush 15
            invokestatic org.xnio.Bits.intBitMask:(II)I
            putstatic org.xnio.ssl.JsseSslConduitEngine.READ_FLAGS:I
         6: .line 78
            bipush 16
            bipush 31
            invokestatic org.xnio.Bits.intBitMask:(II)I
            putstatic org.xnio.ssl.JsseSslConduitEngine.WRITE_FLAGS:I
         7: .line 80
            iconst_0
            invokestatic java.nio.ByteBuffer.allocate:(I)Ljava/nio/ByteBuffer;
            putstatic org.xnio.ssl.JsseSslConduitEngine.EMPTY_BUFFER:Ljava/nio/ByteBuffer;
         8: .line 100
            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 106
            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 107
            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=14, 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 119
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 120
            aload 1 /* connection */
            ifnonnull 3
         2: .line 121
            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
         3: .line 123
      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 5
         4: .line 124
            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
         5: .line 126
      StackMap locals:
      StackMap stack:
            aload 3 /* sourceConduit */
            ifnonnull 7
         6: .line 127
            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
         7: .line 129
      StackMap locals:
      StackMap stack:
            aload 4 /* engine */
            ifnonnull 9
         8: .line 130
            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
         9: .line 132
      StackMap locals:
      StackMap stack:
            aload 5 /* socketBufferPool */
            ifnonnull 11
        10: .line 133
            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
        11: .line 135
      StackMap locals:
      StackMap stack:
            aload 6 /* applicationBufferPool */
            ifnonnull 13
        12: .line 136
            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
        13: .line 138
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* connection */
            putfield org.xnio.ssl.JsseSslConduitEngine.connection:Lorg/xnio/ssl/JsseSslStreamConnection;
        14: .line 139
            aload 0 /* this */
            aload 2 /* sinkConduit */
            putfield org.xnio.ssl.JsseSslConduitEngine.sinkConduit:Lorg/xnio/conduits/StreamSinkConduit;
        15: .line 140
            aload 0 /* this */
            aload 3 /* sourceConduit */
            putfield org.xnio.ssl.JsseSslConduitEngine.sourceConduit:Lorg/xnio/conduits/StreamSourceConduit;
        16: .line 141
            aload 0 /* this */
            aload 4 /* engine */
            putfield org.xnio.ssl.JsseSslConduitEngine.engine:Ljavax/net/ssl/SSLEngine;
        17: .line 142
            aload 0 /* this */
            ldc 4194304
            putfield org.xnio.ssl.JsseSslConduitEngine.state:I
        18: .line 143
            aload 4 /* engine */
            invokevirtual javax.net.ssl.SSLEngine.getSession:()Ljavax/net/ssl/SSLSession;
            astore 7 /* session */
        start local 7 // javax.net.ssl.SSLSession session
        19: .line 144
            aload 7 /* session */
            invokeinterface javax.net.ssl.SSLSession.getPacketBufferSize:()I
            istore 8 /* packetBufferSize */
        start local 8 // int packetBufferSize
        20: .line 145
            iconst_0
            istore 9 /* ok */
        start local 9 // boolean ok
        21: .line 146
            aload 0 /* this */
            aload 5 /* socketBufferPool */
            invokeinterface org.xnio.Pool.allocate:()Lorg/xnio/Pooled;
            putfield org.xnio.ssl.JsseSslConduitEngine.receiveBuffer:Lorg/xnio/Pooled;
        22: .line 148
            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
        23: .line 149
            aload 0 /* this */
            aload 5 /* socketBufferPool */
            invokeinterface org.xnio.Pool.allocate:()Lorg/xnio/Pooled;
            putfield org.xnio.ssl.JsseSslConduitEngine.sendBuffer:Lorg/xnio/Pooled;
        24: .line 151
            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 25
            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 26
        25: .line 152
      StackMap locals: javax.net.ssl.SSLSession int int
      StackMap stack:
            getstatic org.xnio._private.Messages.msg:Lorg/xnio/_private/Messages;
            invokeinterface org.xnio._private.Messages.socketBufferTooSmall:()Ljava/lang/IllegalArgumentException;
            athrow
        26: .line 154
      StackMap locals:
      StackMap stack:
            aload 7 /* session */
            invokeinterface javax.net.ssl.SSLSession.getApplicationBufferSize:()I
            istore 10 /* applicationBufferSize */
        start local 10 // int applicationBufferSize
        27: .line 155
            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 157
            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.capacity:()I
            iload 10 /* applicationBufferSize */
            if_icmpge 30
        29: .line 158
            getstatic org.xnio._private.Messages.msg:Lorg/xnio/_private/Messages;
            invokeinterface org.xnio._private.Messages.appBufferTooSmall:()Ljava/lang/IllegalArgumentException;
            athrow
        30: .line 160
      StackMap locals: int
      StackMap stack:
            iconst_1
            istore 9 /* ok */
        31: .line 161
            goto 35
      StackMap locals:
      StackMap stack: java.lang.Throwable
        32: astore 11
        33: .line 162
            iload 9 /* ok */
            ifne 34
            aload 0 /* this */
            getfield org.xnio.ssl.JsseSslConduitEngine.readBuffer:Lorg/xnio/Pooled;
            invokeinterface org.xnio.Pooled.free:()V
        34: .line 163
      StackMap locals: java.lang.Throwable
      StackMap stack:
            aload 11
            athrow
        35: .line 162
      StackMap locals:
      StackMap stack:
            iload 9 /* ok */
            ifne 40
            aload 0 /* this */
            getfield org.xnio.ssl.JsseSslConduitEngine.readBuffer:Lorg/xnio/Pooled;
            invokeinterface org.xnio.Pooled.free:()V
        end local 10 // int applicationBufferSize
        36: .line 164
            goto 40
      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: java.lang.Throwable
        37: astore 12
        38: .line 165
            iload 9 /* ok */
            ifne 39
            aload 0 /* this */
            getfield org.xnio.ssl.JsseSslConduitEngine.sendBuffer:Lorg/xnio/Pooled;
            invokeinterface org.xnio.Pooled.free:()V
        39: .line 166
      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 top java.lang.Throwable
      StackMap stack:
            aload 12
            athrow
        40: .line 165
      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 45
            aload 0 /* this */
            getfield org.xnio.ssl.JsseSslConduitEngine.sendBuffer:Lorg/xnio/Pooled;
            invokeinterface org.xnio.Pooled.free:()V
        41: .line 167
            goto 45
      StackMap locals:
      StackMap stack: java.lang.Throwable
        42: astore 13
        43: .line 168
            iload 9 /* ok */
            ifne 44
            aload 0 /* this */
            getfield org.xnio.ssl.JsseSslConduitEngine.receiveBuffer:Lorg/xnio/Pooled;
            invokeinterface org.xnio.Pooled.free:()V
        44: .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 top top java.lang.Throwable
      StackMap stack:
            aload 13
            athrow
        45: .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 46
            aload 0 /* this */
            getfield org.xnio.ssl.JsseSslConduitEngine.receiveBuffer:Lorg/xnio/Pooled;
            invokeinterface org.xnio.Pooled.free:()V
        46: .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   47     0                   this  Lorg/xnio/ssl/JsseSslConduitEngine;
            0   47     1             connection  Lorg/xnio/ssl/JsseSslStreamConnection;
            0   47     2            sinkConduit  Lorg/xnio/conduits/StreamSinkConduit;
            0   47     3          sourceConduit  Lorg/xnio/conduits/StreamSourceConduit;
            0   47     4                 engine  Ljavax/net/ssl/SSLEngine;
            0   47     5       socketBufferPool  Lorg/xnio/Pool<Ljava/nio/ByteBuffer;>;
            0   47     6  applicationBufferPool  Lorg/xnio/Pool<Ljava/nio/ByteBuffer;>;
           19   47     7                session  Ljavax/net/ssl/SSLSession;
           20   47     8       packetBufferSize  I
           21   47     9                     ok  Z
           27   36    10  applicationBufferSize  I
      Exception table:
        from    to  target  type
          28    32      32  any
          24    37      37  any
          22    42      42  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=10, 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:
            aload 0 /* this */
            getfield org.xnio.ssl.JsseSslConduitEngine.sendBuffer: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
         7: .line 235
            lconst_0
            lstore 5 /* bytesConsumed */
        start local 5 // long bytesConsumed
         8: .line 240
      StackMap locals: java.nio.ByteBuffer long
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.xnio.ssl.JsseSslConduitEngine.getWrapLock:()Ljava/lang/Object;
            dup
            astore 9
            monitorenter
         9: .line 241
            aload 0 /* this */
            aload 0 /* this */
            aload 1 /* srcs */
            iload 2 /* offset */
            iload 3 /* length */
            aload 4 /* buffer */
            invokevirtual org.xnio.ssl.JsseSslConduitEngine.engineWrap:([Ljava/nio/ByteBuffer;IILjava/nio/ByteBuffer;)Ljavax/net/ssl/SSLEngineResult;
            dup
            astore 8 /* result */
        start local 8 // javax.net.ssl.SSLEngineResult result
        10: iconst_0
            invokevirtual org.xnio.ssl.JsseSslConduitEngine.handleWrapResult:(Ljavax/net/ssl/SSLEngineResult;Z)Z
            istore 7 /* run */
        start local 7 // boolean run
        11: .line 242
            lload 5 /* bytesConsumed */
            aload 8 /* result */
            invokevirtual javax.net.ssl.SSLEngineResult.bytesConsumed:()I
            i2l
            ladd
            lstore 5 /* bytesConsumed */
        12: .line 240
            aload 9
            monitorexit
        13: goto 16
        end local 8 // javax.net.ssl.SSLEngineResult result
        end local 7 // boolean run
      StackMap locals: org.xnio.ssl.JsseSslConduitEngine java.nio.ByteBuffer[] int int java.nio.ByteBuffer long top top java.lang.Object
      StackMap stack: java.lang.Throwable
        14: aload 9
            monitorexit
        15: athrow
        start local 7 // boolean run
        start local 8 // javax.net.ssl.SSLEngineResult result
        16: .line 245
      StackMap locals: org.xnio.ssl.JsseSslConduitEngine java.nio.ByteBuffer[] int int java.nio.ByteBuffer long int javax.net.ssl.SSLEngineResult
      StackMap stack:
            iload 7 /* run */
            ifeq 18
            aload 0 /* this */
            aload 8 /* result */
            iconst_1
            invokevirtual org.xnio.ssl.JsseSslConduitEngine.handleHandshake:(Ljavax/net/ssl/SSLEngineResult;Z)Z
            ifne 17
            aload 0 /* this */
            invokevirtual org.xnio.ssl.JsseSslConduitEngine.isUnwrapNeeded:()Z
            ifne 18
            aload 1 /* srcs */
            iload 2 /* offset */
            iload 3 /* length */
            invokestatic org.xnio.Buffers.hasRemaining:([Ljava/nio/Buffer;II)Z
            ifeq 18
      StackMap locals:
      StackMap stack:
        17: iconst_1
            goto 19
      StackMap locals:
      StackMap stack:
        18: iconst_0
      StackMap locals:
      StackMap stack: int
        19: istore 7 /* run */
        end local 8 // javax.net.ssl.SSLEngineResult result
        20: .line 246
            iload 7 /* run */
            ifne 8
        21: .line 247
            goto 32
        end local 7 // boolean run
      StackMap locals: org.xnio.ssl.JsseSslConduitEngine java.nio.ByteBuffer[] int int java.nio.ByteBuffer long
      StackMap stack: javax.net.ssl.SSLHandshakeException
        22: astore 8 /* e */
        start local 8 // javax.net.ssl.SSLHandshakeException e
        23: .line 249
            aload 0 /* this */
            invokevirtual org.xnio.ssl.JsseSslConduitEngine.getWrapLock:()Ljava/lang/Object;
            dup
            astore 9
            monitorenter
        24: .line 250
            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 */
            getfield org.xnio.ssl.JsseSslConduitEngine.sendBuffer:Lorg/xnio/Pooled;
            invokeinterface org.xnio.Pooled.getResource:()Ljava/lang/Object;
            checkcast java.nio.ByteBuffer
            invokevirtual javax.net.ssl.SSLEngine.wrap:(Ljava/nio/ByteBuffer;Ljava/nio/ByteBuffer;)Ljavax/net/ssl/SSLEngineResult;
            pop
        25: .line 251
            aload 0 /* this */
            invokevirtual org.xnio.ssl.JsseSslConduitEngine.doFlush:()Z
            pop
        26: .line 249
            aload 9
            monitorexit
        27: goto 31
      StackMap locals: org.xnio.ssl.JsseSslConduitEngine java.nio.ByteBuffer[] int int java.nio.ByteBuffer long top javax.net.ssl.SSLHandshakeException java.lang.Object
      StackMap stack: java.lang.Throwable
        28: aload 9
            monitorexit
        29: athrow
        30: .line 253
      StackMap locals: org.xnio.ssl.JsseSslConduitEngine java.nio.ByteBuffer[] int int java.nio.ByteBuffer long top javax.net.ssl.SSLHandshakeException
      StackMap stack: java.io.IOException
            pop
        31: .line 254
      StackMap locals:
      StackMap stack:
            aload 8 /* e */
            athrow
        end local 8 // javax.net.ssl.SSLHandshakeException e
        start local 7 // boolean run
        32: .line 256
      StackMap locals: org.xnio.ssl.JsseSslConduitEngine java.nio.ByteBuffer[] int int java.nio.ByteBuffer long int
      StackMap stack:
            lload 5 /* bytesConsumed */
            lreturn
        end local 7 // boolean run
        end local 5 // long bytesConsumed
        end local 4 // java.nio.ByteBuffer buffer
        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   33     0           this  Lorg/xnio/ssl/JsseSslConduitEngine;
            0   33     1           srcs  [Ljava/nio/ByteBuffer;
            0   33     2         offset  I
            0   33     3         length  I
            7   33     4         buffer  Ljava/nio/ByteBuffer;
            8   33     5  bytesConsumed  J
           11   14     7            run  Z
           16   22     7            run  Z
           32   33     7            run  Z
           10   14     8         result  Ljavax/net/ssl/SSLEngineResult;
           16   20     8         result  Ljavax/net/ssl/SSLEngineResult;
           23   32     8              e  Ljavax/net/ssl/SSLHandshakeException;
      Exception table:
        from    to  target  type
           9    13      14  any
          14    15      14  any
           8    21      22  Class javax.net.ssl.SSLHandshakeException
          24    27      28  any
          28    29      28  any
          23    30      30  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 267
            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 268
      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 269
      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 */
            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
         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 282
            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=8, 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 296
            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 297
      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 298
      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 300
            new java.nio.channels.ClosedChannelException
            dup
            invokespecial java.nio.channels.ClosedChannelException.<init>:()V
            athrow
         4: .line 302
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            ldc 4194304
            invokevirtual org.xnio.ssl.JsseSslConduitEngine.clearFlags:(I)I
            pop
         5: .line 303
            aload 0 /* this */
            getfield org.xnio.ssl.JsseSslConduitEngine.sendBuffer:Lorg/xnio/Pooled;
            invokeinterface org.xnio.Pooled.getResource:()Ljava/lang/Object;
            checkcast java.nio.ByteBuffer
            astore 3 /* buffer */
        start local 3 // java.nio.ByteBuffer buffer
         6: .line 304
            iconst_0
            istore 4 /* bytesConsumed */
        start local 4 // int bytesConsumed
         7: .line 309
      StackMap locals: java.nio.ByteBuffer int
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.xnio.ssl.JsseSslConduitEngine.getWrapLock:()Ljava/lang/Object;
            dup
            astore 7
            monitorenter
         8: .line 310
            aload 0 /* this */
            aload 0 /* this */
            aload 1 /* src */
            aload 3 /* buffer */
            invokevirtual org.xnio.ssl.JsseSslConduitEngine.engineWrap:(Ljava/nio/ByteBuffer;Ljava/nio/ByteBuffer;)Ljavax/net/ssl/SSLEngineResult;
            dup
            astore 6 /* result */
        start local 6 // javax.net.ssl.SSLEngineResult result
         9: iload 2 /* isCloseExpected */
            invokevirtual org.xnio.ssl.JsseSslConduitEngine.handleWrapResult:(Ljavax/net/ssl/SSLEngineResult;Z)Z
            istore 5 /* run */
        start local 5 // boolean run
        10: .line 311
            iload 4 /* bytesConsumed */
            aload 6 /* result */
            invokevirtual javax.net.ssl.SSLEngineResult.bytesConsumed:()I
            iadd
            istore 4 /* bytesConsumed */
        11: .line 309
            aload 7
            monitorexit
        12: goto 15
        end local 6 // javax.net.ssl.SSLEngineResult result
        end local 5 // boolean run
      StackMap locals: org.xnio.ssl.JsseSslConduitEngine java.nio.ByteBuffer int java.nio.ByteBuffer int top top java.lang.Object
      StackMap stack: java.lang.Throwable
        13: aload 7
            monitorexit
        14: athrow
        start local 5 // boolean run
        start local 6 // javax.net.ssl.SSLEngineResult result
        15: .line 314
      StackMap locals: org.xnio.ssl.JsseSslConduitEngine java.nio.ByteBuffer int java.nio.ByteBuffer int int javax.net.ssl.SSLEngineResult
      StackMap stack:
            iload 5 /* run */
            ifeq 17
            iload 4 /* bytesConsumed */
            ifne 17
            aload 0 /* this */
            aload 6 /* 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 /* src */
            invokevirtual java.nio.ByteBuffer.hasRemaining:()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 5 /* run */
        end local 6 // javax.net.ssl.SSLEngineResult result
        19: .line 315
            iload 5 /* run */
            ifne 7
        20: .line 316
            goto 31
        end local 5 // boolean run
      StackMap locals: org.xnio.ssl.JsseSslConduitEngine java.nio.ByteBuffer int java.nio.ByteBuffer int
      StackMap stack: javax.net.ssl.SSLHandshakeException
        21: astore 6 /* e */
        start local 6 // javax.net.ssl.SSLHandshakeException e
        22: .line 318
            aload 0 /* this */
            invokevirtual org.xnio.ssl.JsseSslConduitEngine.getWrapLock:()Ljava/lang/Object;
            dup
            astore 7
            monitorenter
        23: .line 319
            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 */
            getfield org.xnio.ssl.JsseSslConduitEngine.sendBuffer:Lorg/xnio/Pooled;
            invokeinterface org.xnio.Pooled.getResource:()Ljava/lang/Object;
            checkcast java.nio.ByteBuffer
            invokevirtual javax.net.ssl.SSLEngine.wrap:(Ljava/nio/ByteBuffer;Ljava/nio/ByteBuffer;)Ljavax/net/ssl/SSLEngineResult;
            pop
        24: .line 320
            aload 0 /* this */
            invokevirtual org.xnio.ssl.JsseSslConduitEngine.doFlush:()Z
            pop
        25: .line 318
            aload 7
            monitorexit
        26: goto 30
      StackMap locals: org.xnio.ssl.JsseSslConduitEngine java.nio.ByteBuffer int java.nio.ByteBuffer int top javax.net.ssl.SSLHandshakeException java.lang.Object
      StackMap stack: java.lang.Throwable
        27: aload 7
            monitorexit
        28: athrow
        29: .line 322
      StackMap locals: org.xnio.ssl.JsseSslConduitEngine java.nio.ByteBuffer int java.nio.ByteBuffer int top javax.net.ssl.SSLHandshakeException
      StackMap stack: java.io.IOException
            pop
        30: .line 323
      StackMap locals:
      StackMap stack:
            aload 6 /* e */
            athrow
        end local 6 // javax.net.ssl.SSLHandshakeException e
        start local 5 // boolean run
        31: .line 325
      StackMap locals: org.xnio.ssl.JsseSslConduitEngine java.nio.ByteBuffer int java.nio.ByteBuffer int int
      StackMap stack:
            iload 4 /* bytesConsumed */
            ireturn
        end local 5 // boolean run
        end local 4 // int bytesConsumed
        end local 3 // java.nio.ByteBuffer buffer
        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   32     0             this  Lorg/xnio/ssl/JsseSslConduitEngine;
            0   32     1              src  Ljava/nio/ByteBuffer;
            0   32     2  isCloseExpected  Z
            6   32     3           buffer  Ljava/nio/ByteBuffer;
            7   32     4    bytesConsumed  I
           10   13     5              run  Z
           15   21     5              run  Z
           31   32     5              run  Z
            9   13     6           result  Ljavax/net/ssl/SSLEngineResult;
           15   19     6           result  Ljavax/net/ssl/SSLEngineResult;
           22   31     6                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
      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 332
            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 333
      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 334
      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 336
            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 337
      StackMap locals:
      StackMap stack: javax.net.ssl.SSLHandshakeException
            astore 5 /* e */
        start local 5 // javax.net.ssl.SSLHandshakeException e
         6: .line 339
            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 340
            aload 0 /* this */
            invokevirtual org.xnio.ssl.JsseSslConduitEngine.doFlush:()Z
            pop
         8: .line 341
            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 342
      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 350
            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 351
      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 352
      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 353
            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 366
            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 367
      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 368
      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 369
            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: 26
                    4: 24
              default: 30
          }
         4: .line 371
      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 372
      StackMap locals:
      StackMap stack:
            getstatic org.xnio.ssl.JsseSslConduitEngine.$assertionsDisabled:Z
            ifne 31
            aload 1 /* result */
            invokevirtual javax.net.ssl.SSLEngineResult.bytesProduced:()I
            ifeq 31
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         6: .line 377
      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 378
      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 379
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.xnio.ssl.JsseSslConduitEngine.sendBuffer:Lorg/xnio/Pooled;
            invokeinterface org.xnio.Pooled.getResource:()Ljava/lang/Object;
            checkcast java.nio.ByteBuffer
            astore 3 /* buffer */
        start local 3 // java.nio.ByteBuffer buffer
         9: .line 380
            aload 3 /* buffer */
            invokevirtual java.nio.ByteBuffer.position:()I
            ifne 11
        10: .line 381
            getstatic org.xnio._private.Messages.msg:Lorg/xnio/_private/Messages;
            invokeinterface org.xnio._private.Messages.wrongBufferExpansion:()Ljava/io/IOException;
            athrow
        11: .line 384
      StackMap locals: java.nio.ByteBuffer
      StackMap stack:
            aload 3 /* buffer */
            invokevirtual java.nio.ByteBuffer.flip:()Ljava/nio/Buffer;
            pop
        12: .line 386
            goto 17
        13: .line 387
      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
        14: .line 388
            iload 4 /* res */
            ifne 17
        15: .line 393
            aload 3 /* buffer */
            invokevirtual java.nio.ByteBuffer.compact:()Ljava/nio/ByteBuffer;
            pop
        16: .line 389
            iconst_0
            ireturn
        end local 4 // int res
        17: .line 386
      StackMap locals:
      StackMap stack:
            aload 3 /* buffer */
            invokevirtual java.nio.ByteBuffer.hasRemaining:()Z
            ifne 13
        18: .line 392
            goto 22
      StackMap locals:
      StackMap stack: java.lang.Throwable
        19: astore 5
        20: .line 393
            aload 3 /* buffer */
            invokevirtual java.nio.ByteBuffer.compact:()Ljava/nio/ByteBuffer;
            pop
        21: .line 394
            aload 5
            athrow
        22: .line 393
      StackMap locals:
      StackMap stack:
            aload 3 /* buffer */
            invokevirtual java.nio.ByteBuffer.compact:()Ljava/nio/ByteBuffer;
            pop
        23: .line 396
            goto 31
        end local 3 // java.nio.ByteBuffer buffer
        24: .line 399
      StackMap locals:
      StackMap stack:
            iload 2 /* closeExpected */
            ifne 26
        25: .line 401
            new java.nio.channels.ClosedChannelException
            dup
            invokespecial java.nio.channels.ClosedChannelException.<init>:()V
            athrow
        26: .line 407
      StackMap locals:
      StackMap stack:
            aload 1 /* result */
            invokevirtual javax.net.ssl.SSLEngineResult.bytesConsumed:()I
            ifne 31
        27: .line 408
            aload 1 /* result */
            invokevirtual javax.net.ssl.SSLEngineResult.bytesProduced:()I
            ifle 31
        28: .line 409
            aload 0 /* this */
            invokevirtual org.xnio.ssl.JsseSslConduitEngine.doFlush:()Z
            ifne 31
        29: .line 410
            iconst_0
            ireturn
        30: .line 417
      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
        31: .line 420
      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   32     0           this  Lorg/xnio/ssl/JsseSslConduitEngine;
            0   32     1         result  Ljavax/net/ssl/SSLEngineResult;
            0   32     2  closeExpected  Z
            9   24     3         buffer  Ljava/nio/ByteBuffer;
           14   17     4            res  I
      Exception table:
        from    to  target  type
          12    15      19  any
          17    19      19  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 435
            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 437
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.xnio.ssl.JsseSslConduitEngine.isWrapNeeded:()Z
            ifeq 9
         2: .line 438
            aload 0 /* this */
            invokevirtual org.xnio.ssl.JsseSslConduitEngine.getWrapLock:()Ljava/lang/Object;
            dup
            astore 3
            monitorenter
         3: .line 439
            aload 0 /* this */
            invokevirtual org.xnio.ssl.JsseSslConduitEngine.doFlush:()Z
            ifeq 5
         4: .line 440
            aload 0 /* this */
            invokevirtual org.xnio.ssl.JsseSslConduitEngine.clearNeedWrap:()V
         5: .line 438
      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 444
      StackMap locals:
      StackMap stack:
            iconst_0
            istore 3 /* newResult */
        start local 3 // boolean newResult
        10: .line 446
      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: 79
                    4: 16
                    5: 36
              default: 92
          }
        11: .line 448
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.xnio.ssl.JsseSslConduitEngine.clearNeedUnwrap:()V
        12: .line 449
            aload 0 /* this */
            getfield org.xnio.ssl.JsseSslConduitEngine.connection:Lorg/xnio/ssl/JsseSslStreamConnection;
            invokevirtual org.xnio.ssl.JsseSslStreamConnection.handleHandshakeFinished:()V
        13: .line 451
            iconst_1
            ireturn
        14: .line 455
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.xnio.ssl.JsseSslConduitEngine.clearNeedUnwrap:()V
        15: .line 456
            iconst_0
            ireturn
        16: .line 460
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.xnio.ssl.JsseSslConduitEngine.clearNeedUnwrap:()V
        17: .line 462
            iload 2 /* write */
            ifeq 19
        18: .line 463
            iconst_1
            ireturn
        19: .line 465
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.xnio.ssl.JsseSslConduitEngine.sendBuffer: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
        20: .line 468
            aload 0 /* this */
            invokevirtual org.xnio.ssl.JsseSslConduitEngine.getWrapLock:()Ljava/lang/Object;
            dup
            astore 5
            monitorenter
        21: .line 471
            aload 0 /* this */
            invokevirtual org.xnio.ssl.JsseSslConduitEngine.doFlush:()Z
            ifeq 30
        22: .line 472
            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 23
            aload 0 /* this */
            invokevirtual org.xnio.ssl.JsseSslConduitEngine.doFlush:()Z
            ifne 26
        23: .line 473
      StackMap locals: java.nio.ByteBuffer java.lang.Object
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.xnio.ssl.JsseSslConduitEngine.needWrap:()V
        24: .line 474
            aload 5
            monitorexit
        25: iconst_0
            ireturn
        26: .line 477
      StackMap locals:
      StackMap stack:
            iconst_1
            istore 3 /* newResult */
        27: .line 478
            aload 0 /* this */
            invokevirtual org.xnio.ssl.JsseSslConduitEngine.clearNeedWrap:()V
        28: .line 479
            aload 5
            monitorexit
        29: goto 10
        30: .line 481
      StackMap locals:
      StackMap stack:
            getstatic org.xnio.ssl.JsseSslConduitEngine.$assertionsDisabled:Z
            ifne 31
            aload 0 /* this */
            invokevirtual org.xnio.ssl.JsseSslConduitEngine.isUnwrapNeeded:()Z
            ifeq 31
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
        31: .line 483
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.xnio.ssl.JsseSslConduitEngine.needWrap:()V
        32: .line 485
            aload 5
            monitorexit
        33: iconst_0
            ireturn
        34: .line 468
      StackMap locals:
      StackMap stack: java.lang.Throwable
            aload 5
            monitorexit
        35: athrow
        end local 4 // java.nio.ByteBuffer buffer
        36: .line 490
      StackMap locals:
      StackMap stack:
            iload 2 /* write */
            ifne 38
        37: .line 491
            iload 3 /* newResult */
            ireturn
        38: .line 493
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.xnio.ssl.JsseSslConduitEngine.getWrapLock:()Ljava/lang/Object;
            dup
            astore 4
            monitorenter
        39: .line 495
            aload 0 /* this */
            invokevirtual org.xnio.ssl.JsseSslConduitEngine.doFlush:()Z
            pop
        40: .line 493
            aload 4
            monitorexit
        41: goto 44
      StackMap locals: org.xnio.ssl.JsseSslConduitEngine javax.net.ssl.SSLEngineResult int int java.lang.Object
      StackMap stack: java.lang.Throwable
        42: aload 4
            monitorexit
        43: athrow
        44: .line 497
      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
        45: .line 498
            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
        46: .line 500
            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 57
            aload 0 /* this */
            getfield org.xnio.ssl.JsseSslConduitEngine.engine:Ljavax/net/ssl/SSLEngine;
            invokevirtual javax.net.ssl.SSLEngine.isOutboundDone:()Z
            ifeq 57
        47: .line 501
            aload 0 /* this */
            invokevirtual org.xnio.ssl.JsseSslConduitEngine.getUnwrapLock:()Ljava/lang/Object;
            dup
            astore 6
            monitorenter
        48: .line 502
            aload 4 /* buffer */
            invokevirtual java.nio.ByteBuffer.compact:()Ljava/nio/ByteBuffer;
            pop
        49: .line 503
            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
        50: .line 504
            aload 4 /* buffer */
            invokevirtual java.nio.ByteBuffer.flip:()Ljava/nio/Buffer;
            pop
        51: .line 505
            aload 4 /* buffer */
            invokevirtual java.nio.ByteBuffer.hasRemaining:()Z
            ifeq 53
            aload 0 /* this */
            getfield org.xnio.ssl.JsseSslConduitEngine.sourceConduit:Lorg/xnio/conduits/StreamSourceConduit;
            invokeinterface org.xnio.conduits.StreamSourceConduit.isReadResumed:()Z
            ifeq 53
        52: .line 506
            aload 0 /* this */
            getfield org.xnio.ssl.JsseSslConduitEngine.sourceConduit:Lorg/xnio/conduits/StreamSourceConduit;
            invokeinterface org.xnio.conduits.StreamSourceConduit.wakeupReads:()V
        53: .line 508
      StackMap locals: java.nio.ByteBuffer java.nio.ByteBuffer java.lang.Object
      StackMap stack:
            aload 6
            monitorexit
        54: iconst_0
            ireturn
        55: .line 501
      StackMap locals:
      StackMap stack: java.lang.Throwable
            aload 6
            monitorexit
        56: athrow
        57: .line 511
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.xnio.ssl.JsseSslConduitEngine.getUnwrapLock:()Ljava/lang/Object;
            dup
            astore 6
            monitorenter
        58: .line 513
            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
        59: .line 514
            aload 4 /* buffer */
            invokevirtual java.nio.ByteBuffer.hasRemaining:()Z
            ifeq 61
            aload 0 /* this */
            getfield org.xnio.ssl.JsseSslConduitEngine.sourceConduit:Lorg/xnio/conduits/StreamSourceConduit;
            invokeinterface org.xnio.conduits.StreamSourceConduit.isReadResumed:()Z
            ifeq 61
        60: .line 515
            aload 0 /* this */
            getfield org.xnio.ssl.JsseSslConduitEngine.sourceConduit:Lorg/xnio/conduits/StreamSourceConduit;
            invokeinterface org.xnio.conduits.StreamSourceConduit.wakeupReads:()V
        61: .line 517
      StackMap locals: java.lang.Object int
      StackMap stack:
            iload 7 /* unwrapResult */
            iflt 70
        62: .line 519
            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 63
            aload 1 /* result */
            invokevirtual javax.net.ssl.SSLEngineResult.bytesConsumed:()I
            ifle 66
        63: .line 520
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.xnio.ssl.JsseSslConduitEngine.clearNeedUnwrap:()V
        64: .line 521
            aload 6
            monitorexit
        65: goto 10
        66: .line 523
      StackMap locals:
      StackMap stack:
            getstatic org.xnio.ssl.JsseSslConduitEngine.$assertionsDisabled:Z
            ifne 67
            aload 0 /* this */
            invokevirtual org.xnio.ssl.JsseSslConduitEngine.isWrapNeeded:()Z
            ifeq 67
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
        67: .line 525
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.xnio.ssl.JsseSslConduitEngine.needUnwrap:()V
        68: .line 526
            aload 6
            monitorexit
        69: iconst_0
            ireturn
        70: .line 527
      StackMap locals:
      StackMap stack:
            iload 7 /* unwrapResult */
            iconst_m1
            if_icmpne 75
            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 75
        71: .line 528
            aload 0 /* this */
            getfield org.xnio.ssl.JsseSslConduitEngine.state:I
            iconst_2
            invokestatic org.xnio.Bits.allAreSet:(II)Z
            ifne 73
        72: .line 530
            new java.nio.channels.ClosedChannelException
            dup
            invokespecial java.nio.channels.ClosedChannelException.<init>:()V
            athrow
        73: .line 532
      StackMap locals:
      StackMap stack:
            aload 6
            monitorexit
        74: iconst_0
            ireturn
        end local 7 // int unwrapResult
        75: .line 511
      StackMap locals:
      StackMap stack:
            aload 6
            monitorexit
        76: goto 10
      StackMap locals:
      StackMap stack: java.lang.Throwable
        77: aload 6
            monitorexit
        78: athrow
        end local 5 // java.nio.ByteBuffer unwrappedBuffer
        end local 4 // java.nio.ByteBuffer buffer
        79: .line 539
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.xnio.ssl.JsseSslConduitEngine.engine:Ljavax/net/ssl/SSLEngine;
            dup
            astore 5
            monitorenter
        80: .line 541
            goto 85
        start local 4 // java.lang.Runnable task
        81: .line 543
      StackMap locals: java.lang.Runnable javax.net.ssl.SSLEngine
      StackMap stack:
            aload 4 /* task */
            invokeinterface java.lang.Runnable.run:()V
        82: .line 544
            goto 85
      StackMap locals:
      StackMap stack: java.lang.Exception
        83: astore 6 /* e */
        start local 6 // java.lang.Exception e
        84: .line 545
            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
        85: .line 541
      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
        86: ifnonnull 81
        87: .line 539
            aload 5
            monitorexit
        88: goto 91
        end local 4 // java.lang.Runnable task
      StackMap locals:
      StackMap stack: java.lang.Throwable
        89: aload 5
            monitorexit
        90: athrow
        start local 4 // java.lang.Runnable task
        91: .line 550
      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
        92: .line 553
      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   93     0             this  Lorg/xnio/ssl/JsseSslConduitEngine;
            0   93     1           result  Ljavax/net/ssl/SSLEngineResult;
            0   93     2            write  Z
           10   93     3        newResult  Z
           20   36     4           buffer  Ljava/nio/ByteBuffer;
           45   79     4           buffer  Ljava/nio/ByteBuffer;
           46   79     5  unwrappedBuffer  Ljava/nio/ByteBuffer;
           59   75     7     unwrapResult  I
           81   85     4             task  Ljava/lang/Runnable;
           86   89     4             task  Ljava/lang/Runnable;
           91   92     4             task  Ljava/lang/Runnable;
           84   85     6                e  Ljava/lang/Exception;
      Exception table:
        from    to  target  type
           3     6       7  any
           7     8       7  any
          21    25      34  any
          26    29      34  any
          30    33      34  any
          34    35      34  any
          39    41      42  any
          42    43      42  any
          48    54      55  any
          55    56      55  any
          58    65      77  any
          66    69      77  any
          70    74      77  any
          75    76      77  any
          77    78      77  any
          81    82      83  Class java.lang.Exception
          80    88      89  any
          89    90      89  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 574
            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 595
            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 596
      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 597
      StackMap locals:
      StackMap stack:
            aload 1 /* dsts */
            arraylength
            ifeq 3
            iload 3 /* length */
            ifne 4
         3: .line 598
      StackMap locals:
      StackMap stack:
            lconst_0
            lreturn
         4: .line 600
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            ldc 4194308
            invokevirtual org.xnio.ssl.JsseSslConduitEngine.clearFlags:(I)I
            pop
         5: .line 601
            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 602
            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 603
            lconst_0
            lstore 6 /* total */
        start local 6 // long total
         8: .line 605
            aload 0 /* this */
            invokevirtual org.xnio.ssl.JsseSslConduitEngine.getUnwrapLock:()Ljava/lang/Object;
            dup
            astore 9
            monitorenter
         9: .line 606
            aload 5 /* unwrappedBuffer */
            invokevirtual java.nio.ByteBuffer.position:()I
            ifle 11
        10: .line 607
            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 605
      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 610
      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 613
      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 614
            aload 1 /* dsts */
            iload 2 /* offset */
            iload 3 /* length */
            invokestatic org.xnio.Buffers.hasRemaining:([Ljava/nio/Buffer;II)Z
            ifne 22
        18: .line 615
            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 616
            aload 0 /* this */
            getfield org.xnio.ssl.JsseSslConduitEngine.sourceConduit:Lorg/xnio/conduits/StreamSourceConduit;
            invokeinterface org.xnio.conduits.StreamSourceConduit.wakeupReads:()V
        20: .line 618
      StackMap locals: java.lang.Object
      StackMap stack:
            lload 6 /* total */
            aload 10
            monitorexit
        21: lreturn
        22: .line 620
      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 621
            aload 5 /* unwrappedBuffer */
            invokevirtual java.nio.ByteBuffer.position:()I
            ifle 26
        25: .line 624
            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 613
      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 627
      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 612
            ifgt 16
        32: .line 628
            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 630
            aload 0 /* this */
            invokevirtual org.xnio.ssl.JsseSslConduitEngine.getWrapLock:()Ljava/lang/Object;
            dup
            astore 11
            monitorenter
        35: .line 631
            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 */
            getfield org.xnio.ssl.JsseSslConduitEngine.sendBuffer:Lorg/xnio/Pooled;
            invokeinterface org.xnio.Pooled.getResource:()Ljava/lang/Object;
            checkcast java.nio.ByteBuffer
            invokevirtual javax.net.ssl.SSLEngine.wrap:(Ljava/nio/ByteBuffer;Ljava/nio/ByteBuffer;)Ljavax/net/ssl/SSLEngineResult;
            pop
        36: .line 632
            aload 0 /* this */
            invokevirtual org.xnio.ssl.JsseSslConduitEngine.doFlush:()Z
            pop
        37: .line 630
            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 634
      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 635
      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 637
      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 638
            iload 9 /* res */
            iconst_m1
            if_icmpne 46
        45: .line 639
            ldc -1
            lreturn
        46: .line 642
      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 645
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.xnio.ssl.JsseSslConduitEngine.state:I
            istore 10 /* old */
        start local 10 // int old
        48: .line 646
            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 648
      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 659
            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 660
      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 661
      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 674
            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 681
            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 682
      StackMap locals:
      StackMap stack:
            aload 1 /* buffer */
            invokevirtual java.nio.ByteBuffer.hasRemaining:()Z
            ifne 5
         2: .line 683
            aload 1 /* buffer */
            invokevirtual java.nio.ByteBuffer.compact:()Ljava/nio/ByteBuffer;
            pop
         3: .line 684
            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 685
            aload 1 /* buffer */
            invokevirtual java.nio.ByteBuffer.flip:()Ljava/nio/Buffer;
            pop
         5: .line 687
      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 688
            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 701
            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 702
      StackMap locals:
      StackMap stack:
            aload 4 /* unwrappedBuffer */
            invokevirtual java.nio.ByteBuffer.flip:()Ljava/nio/Buffer;
            pop
         2: .line 704
            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 706
            aload 4 /* unwrappedBuffer */
            invokevirtual java.nio.ByteBuffer.compact:()Ljava/nio/ByteBuffer;
            pop
         4: .line 704
            iload 6
            ireturn
         5: .line 705
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 5
         6: .line 706
            aload 4 /* unwrappedBuffer */
            invokevirtual java.nio.ByteBuffer.compact:()Ljava/nio/ByteBuffer;
            pop
         7: .line 707
            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 720
            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 721
      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 722
            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 724
      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 725
      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 727
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
         6: .line 730
      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 731
      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 733
      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 734
            aload 0 /* this */
            invokevirtual org.xnio.ssl.JsseSslConduitEngine.getUnwrapLock:()Ljava/lang/Object;
            dup
            astore 3
            monitorenter
        10: .line 735
            aload 2 /* buffer */
            invokevirtual java.nio.ByteBuffer.compact:()Ljava/nio/ByteBuffer;
            pop
        11: .line 737
            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 739
            aload 2 /* buffer */
            invokevirtual java.nio.ByteBuffer.flip:()Ljava/nio/Buffer;
            pop
        13: .line 737
            aload 3
            monitorexit
        14: iload 5
            ireturn
        15: .line 738
      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 739
            aload 2 /* buffer */
            invokevirtual java.nio.ByteBuffer.flip:()Ljava/nio/Buffer;
            pop
        17: .line 740
            aload 4
            athrow
        18: .line 734
      StackMap locals:
      StackMap stack: java.lang.Throwable
            aload 3
            monitorexit
        19: athrow
        end local 2 // java.nio.ByteBuffer buffer
        20: .line 745
      StackMap locals:
      StackMap stack:
            aload 1 /* result */
            invokevirtual javax.net.ssl.SSLEngineResult.bytesConsumed:()I
            ifle 22
        21: .line 746
            aload 1 /* result */
            invokevirtual javax.net.ssl.SSLEngineResult.bytesConsumed:()I
            ireturn
        22: .line 748
      StackMap locals:
      StackMap stack:
            iconst_m1
            ireturn
        23: .line 752
      StackMap locals:
      StackMap stack:
            aload 1 /* result */
            invokevirtual javax.net.ssl.SSLEngineResult.bytesConsumed:()I
            ireturn
        24: .line 755
      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 773
            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 774
            iload 1 /* oldState */
            ldc 262144
            invokestatic org.xnio.Bits.allAreSet:(II)Z
            ifeq 5
         2: .line 775
            aload 0 /* this */
            getfield org.xnio.ssl.JsseSslConduitEngine.engine:Ljavax/net/ssl/SSLEngine;
            invokevirtual javax.net.ssl.SSLEngine.isOutboundDone:()Z
            ifeq 4
         3: .line 776
            aload 0 /* this */
            getfield org.xnio.ssl.JsseSslConduitEngine.connection:Lorg/xnio/ssl/JsseSslStreamConnection;
            invokevirtual org.xnio.ssl.JsseSslStreamConnection.writeClosed:()Z
            pop
         4: .line 778
      StackMap locals: int
      StackMap stack:
            iconst_1
            ireturn
         5: .line 780
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.xnio.ssl.JsseSslConduitEngine.getWrapLock:()Ljava/lang/Object;
            dup
            astore 3
            monitorenter
         6: .line 781
            iload 1 /* oldState */
            ldc 131072
            invokestatic org.xnio.Bits.allAreSet:(II)Z
            ifeq 10
         7: .line 782
            aload 0 /* this */
            invokevirtual org.xnio.ssl.JsseSslConduitEngine.wrapCloseMessage:()Z
            ifne 14
         8: .line 783
            aload 3
            monitorexit
         9: iconst_0
            ireturn
        10: .line 786
      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 787
            aload 0 /* this */
            getfield org.xnio.ssl.JsseSslConduitEngine.connection:Lorg/xnio/ssl/JsseSslStreamConnection;
            invokevirtual org.xnio.ssl.JsseSslStreamConnection.writeClosed:()Z
            pop
        12: .line 789
      StackMap locals:
      StackMap stack:
            aload 3
            monitorexit
        13: iconst_1
            ireturn
        14: .line 780
      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 793
      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 794
            goto 26
        20: .line 795
      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 796
            iload 1 /* oldState */
            ldc 262144
            invokestatic org.xnio.Bits.allAreSet:(II)Z
            ifeq 25
        22: .line 797
            aload 0 /* this */
            getfield org.xnio.ssl.JsseSslConduitEngine.engine:Ljavax/net/ssl/SSLEngine;
            invokevirtual javax.net.ssl.SSLEngine.isOutboundDone:()Z
            ifeq 24
        23: .line 798
            aload 0 /* this */
            getfield org.xnio.ssl.JsseSslConduitEngine.connection:Lorg/xnio/ssl/JsseSslStreamConnection;
            invokevirtual org.xnio.ssl.JsseSslStreamConnection.writeClosed:()Z
            pop
        24: .line 800
      StackMap locals:
      StackMap stack:
            iconst_1
            ireturn
        25: .line 802
      StackMap locals:
      StackMap stack:
            iload 1 /* oldState */
            ldc 262144
            ior
            istore 2 /* newState */
        26: .line 794
      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 805
            iload 1 /* oldState */
            iconst_2
            invokestatic org.xnio.Bits.allAreSet:(II)Z
            ifeq 29
        28: .line 806
            aload 0 /* this */
            invokevirtual org.xnio.ssl.JsseSslConduitEngine.closeEngine:()V
        29: .line 808
      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 809
            aload 0 /* this */
            getfield org.xnio.ssl.JsseSslConduitEngine.connection:Lorg/xnio/ssl/JsseSslStreamConnection;
            invokevirtual org.xnio.ssl.JsseSslStreamConnection.writeClosed:()Z
            pop
        31: .line 811
      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=3, args_size=1
        start local 0 // org.xnio.ssl.JsseSslConduitEngine this
         0: .line 821
            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 822
      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 823
      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 824
            iconst_1
            ireturn
         4: .line 826
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.xnio.ssl.JsseSslConduitEngine.sendBuffer:Lorg/xnio/Pooled;
            invokeinterface org.xnio.Pooled.getResource:()Ljava/lang/Object;
            checkcast java.nio.ByteBuffer
            astore 1 /* buffer */
        start local 1 // java.nio.ByteBuffer buffer
         5: .line 827
            aload 0 /* this */
            getfield org.xnio.ssl.JsseSslConduitEngine.engine:Ljavax/net/ssl/SSLEngine;
            invokevirtual javax.net.ssl.SSLEngine.isOutboundDone:()Z
            ifeq 6
            aload 0 /* this */
            getfield org.xnio.ssl.JsseSslConduitEngine.engine:Ljavax/net/ssl/SSLEngine;
            invokevirtual javax.net.ssl.SSLEngine.isInboundDone:()Z
            ifne 14
         6: .line 830
      StackMap locals: java.nio.ByteBuffer
      StackMap stack:
            aload 0 /* this */
            aload 0 /* this */
            getstatic org.xnio.Buffers.EMPTY_BYTE_BUFFER:Ljava/nio/ByteBuffer;
            aload 1 /* buffer */
            invokevirtual org.xnio.ssl.JsseSslConduitEngine.engineWrap:(Ljava/nio/ByteBuffer;Ljava/nio/ByteBuffer;)Ljavax/net/ssl/SSLEngineResult;
            dup
            astore 2 /* result */
        start local 2 // javax.net.ssl.SSLEngineResult result
         7: iconst_1
            invokevirtual org.xnio.ssl.JsseSslConduitEngine.handleWrapResult:(Ljavax/net/ssl/SSLEngineResult;Z)Z
            ifne 9
         8: .line 831
            iconst_0
            ireturn
         9: .line 833
      StackMap locals: javax.net.ssl.SSLEngineResult
      StackMap stack:
            aload 0 /* this */
            aload 2 /* result */
            iconst_1
            invokevirtual org.xnio.ssl.JsseSslConduitEngine.handleHandshake:(Ljavax/net/ssl/SSLEngineResult;Z)Z
            ifeq 10
            aload 2 /* 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 6
            aload 0 /* this */
            getfield org.xnio.ssl.JsseSslConduitEngine.engine:Ljavax/net/ssl/SSLEngine;
            invokevirtual javax.net.ssl.SSLEngine.isOutboundDone:()Z
            ifeq 6
        10: .line 834
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 0 /* this */
            getstatic org.xnio.Buffers.EMPTY_BYTE_BUFFER:Ljava/nio/ByteBuffer;
            aload 1 /* buffer */
            invokevirtual org.xnio.ssl.JsseSslConduitEngine.engineWrap:(Ljava/nio/ByteBuffer;Ljava/nio/ByteBuffer;)Ljavax/net/ssl/SSLEngineResult;
            dup
            astore 2 /* result */
            iconst_1
            invokevirtual org.xnio.ssl.JsseSslConduitEngine.handleWrapResult:(Ljavax/net/ssl/SSLEngineResult;Z)Z
            pop
        11: .line 835
            aload 0 /* this */
            getfield org.xnio.ssl.JsseSslConduitEngine.engine:Ljavax/net/ssl/SSLEngine;
            invokevirtual javax.net.ssl.SSLEngine.isOutboundDone:()Z
            ifeq 13
            aload 2 /* 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 14
        12: .line 836
            aload 2 /* 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 14
        13: .line 837
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
        end local 2 // javax.net.ssl.SSLEngineResult result
        14: .line 840
      StackMap locals:
      StackMap stack:
            iconst_1
            ireturn
        end local 1 // java.nio.ByteBuffer buffer
        end local 0 // org.xnio.ssl.JsseSslConduitEngine this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   15     0    this  Lorg/xnio/ssl/JsseSslConduitEngine;
            5   15     1  buffer  Ljava/nio/ByteBuffer;
            7   14     2  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 851
            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 852
      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 854
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.xnio.ssl.JsseSslConduitEngine.sendBuffer:Lorg/xnio/Pooled;
            invokeinterface org.xnio.Pooled.getResource:()Ljava/lang/Object;
            checkcast java.nio.ByteBuffer
            astore 1 /* buffer */
        start local 1 // java.nio.ByteBuffer buffer
         3: .line 855
            aload 1 /* buffer */
            invokevirtual java.nio.ByteBuffer.flip:()Ljava/nio/Buffer;
            pop
         4: .line 857
            goto 9
         5: .line 858
      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 859
            iload 2 /* res */
            ifne 9
         7: .line 864
            aload 1 /* buffer */
            invokevirtual java.nio.ByteBuffer.compact:()Ljava/nio/ByteBuffer;
            pop
         8: .line 860
            iconst_0
            ireturn
        end local 2 // int res
         9: .line 857
      StackMap locals:
      StackMap stack:
            aload 1 /* buffer */
            invokevirtual java.nio.ByteBuffer.hasRemaining:()Z
            ifne 5
        10: .line 863
            goto 14
      StackMap locals:
      StackMap stack: java.lang.Throwable
        11: astore 3
        12: .line 864
            aload 1 /* buffer */
            invokevirtual java.nio.ByteBuffer.compact:()Ljava/nio/ByteBuffer;
            pop
        13: .line 865
            aload 3
            athrow
        14: .line 864
      StackMap locals:
      StackMap stack:
            aload 1 /* buffer */
            invokevirtual java.nio.ByteBuffer.compact:()Ljava/nio/ByteBuffer;
            pop
        15: .line 866
            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 875
            aload 0 /* this */
            ldc 8388608
            invokevirtual org.xnio.ssl.JsseSslConduitEngine.setFlags:(I)I
            istore 1 /* old */
        start local 1 // int old
         1: .line 877
            iload 1 /* old */
            ldc 8388608
            invokestatic org.xnio.Bits.allAreSet:(II)Z
            ifeq 3
         2: .line 878
            return
         3: .line 881
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.xnio.ssl.JsseSslConduitEngine.getWrapLock:()Ljava/lang/Object;
            dup
            astore 2
            monitorenter
         4: .line 882
            aload 0 /* this */
            invokevirtual org.xnio.ssl.JsseSslConduitEngine.doFlush:()Z
            ifne 6
         5: .line 883
            getstatic org.xnio._private.Messages.msg:Lorg/xnio/_private/Messages;
            invokeinterface org.xnio._private.Messages.unflushedData:()Ljava/io/IOException;
            athrow
         6: .line 881
      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 886
      StackMap locals: org.xnio.ssl.JsseSslConduitEngine int
      StackMap stack: java.lang.Throwable
            astore 3
        11: .line 887
            aload 0 /* this */
            getfield org.xnio.ssl.JsseSslConduitEngine.readBuffer:Lorg/xnio/Pooled;
            invokeinterface org.xnio.Pooled.free:()V
        12: .line 888
            aload 0 /* this */
            getfield org.xnio.ssl.JsseSslConduitEngine.receiveBuffer:Lorg/xnio/Pooled;
            invokeinterface org.xnio.Pooled.free:()V
        13: .line 889
            aload 0 /* this */
            getfield org.xnio.ssl.JsseSslConduitEngine.sendBuffer:Lorg/xnio/Pooled;
            invokeinterface org.xnio.Pooled.free:()V
        14: .line 890
            aload 3
            athrow
        15: .line 887
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.xnio.ssl.JsseSslConduitEngine.readBuffer:Lorg/xnio/Pooled;
            invokeinterface org.xnio.Pooled.free:()V
        16: .line 888
            aload 0 /* this */
            getfield org.xnio.ssl.JsseSslConduitEngine.receiveBuffer:Lorg/xnio/Pooled;
            invokeinterface org.xnio.Pooled.free:()V
        17: .line 889
            aload 0 /* this */
            getfield org.xnio.ssl.JsseSslConduitEngine.sendBuffer:Lorg/xnio/Pooled;
            invokeinterface org.xnio.Pooled.free:()V
        18: .line 891
            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=2, locals=3, args_size=1
        start local 0 // org.xnio.ssl.JsseSslConduitEngine this
         0: .line 899
            aload 0 /* this */
            ldc 131072
            invokevirtual org.xnio.ssl.JsseSslConduitEngine.setFlags:(I)I
            istore 1 /* old */
        start local 1 // int old
         1: .line 901
            iload 1 /* old */
            ldc 131072
            invokestatic org.xnio.Bits.allAreClear:(II)Z
            ifeq 10
         2: .line 902
            aload 0 /* this */
            getfield org.xnio.ssl.JsseSslConduitEngine.engine:Ljavax/net/ssl/SSLEngine;
            invokevirtual javax.net.ssl.SSLEngine.closeOutbound:()V
         3: .line 903
            aload 0 /* this */
            invokevirtual org.xnio.ssl.JsseSslConduitEngine.getWrapLock:()Ljava/lang/Object;
            dup
            astore 2
            monitorenter
         4: .line 904
            aload 0 /* this */
            invokevirtual org.xnio.ssl.JsseSslConduitEngine.wrapCloseMessage:()Z
            pop
         5: .line 905
            aload 0 /* this */
            invokevirtual org.xnio.ssl.JsseSslConduitEngine.flush:()Z
            pop
         6: .line 903
            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 908
      StackMap locals:
      StackMap stack:
            iload 1 /* old */
            iconst_2
            invokestatic org.xnio.Bits.allAreClear:(II)Z
            ifne 18
        11: .line 909
            aload 0 /* this */
            invokevirtual org.xnio.ssl.JsseSslConduitEngine.closeEngine:()V
        12: .line 911
            goto 18
      StackMap locals:
      StackMap stack: java.lang.Exception
        13: astore 2 /* e */
        start local 2 // java.lang.Exception e
        14: .line 913
            aload 0 /* this */
            invokevirtual org.xnio.ssl.JsseSslConduitEngine.closeEngine:()V
        15: .line 914
            aload 2 /* e */
            instanceof java.io.IOException
            ifeq 17
        16: .line 915
            aload 2 /* e */
            checkcast java.io.IOException
            athrow
        17: .line 917
      StackMap locals: java.lang.Exception
      StackMap stack:
            aload 2 /* e */
            checkcast java.lang.RuntimeException
            athrow
        end local 2 // java.lang.Exception e
        18: .line 920
      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   19     0  this  Lorg/xnio/ssl/JsseSslConduitEngine;
            1   19     1   old  I
           14   18     2     e  Ljava/lang/Exception;
      Exception table:
        from    to  target  type
           4     7       8  any
           8     9       8  any
           1    12      13  Class java.lang.Exception
    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 928
            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 940
            aload 0 /* this */
            getfield org.xnio.ssl.JsseSslConduitEngine.state:I
            istore 1 /* oldState */
        start local 1 // int oldState
         1: .line 941
            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 942
      StackMap locals: int
      StackMap stack:
            return
         3: .line 944
      StackMap locals:
      StackMap stack:
            invokestatic java.lang.Thread.currentThread:()Ljava/lang/Thread;
            astore 2 /* thread */
        start local 2 // java.lang.Thread thread
         4: .line 945
            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 947
            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 959
            aload 3 /* next */
            ifnull 7
            aload 3 /* next */
            invokestatic java.util.concurrent.locks.LockSupport.unpark:(Ljava/lang/Thread;)V
         7: .line 948
      StackMap locals: java.lang.Thread java.lang.Thread
      StackMap stack:
            return
         8: .line 950
      StackMap locals:
      StackMap stack:
            iload 1 /* oldState */
            ldc 65536
            invokestatic org.xnio.Bits.allAreSet:(II)Z
            ifeq 10
         9: .line 951
            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 953
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokestatic java.util.concurrent.locks.LockSupport.park:(Ljava/lang/Object;)V
        11: .line 954
            aload 2 /* thread */
            invokevirtual java.lang.Thread.isInterrupted:()Z
            ifeq 16
        12: .line 955
            getstatic org.xnio._private.Messages.msg:Lorg/xnio/_private/Messages;
            invokeinterface org.xnio._private.Messages.interruptedIO:()Ljava/io/InterruptedIOException;
            athrow
        13: .line 957
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 4
        14: .line 959
            aload 3 /* next */
            ifnull 15
            aload 3 /* next */
            invokestatic java.util.concurrent.locks.LockSupport.unpark:(Ljava/lang/Thread;)V
        15: .line 960
      StackMap locals: java.lang.Throwable
      StackMap stack:
            aload 4
            athrow
        16: .line 959
      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 961
      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 974
            aload 0 /* this */
            getfield org.xnio.ssl.JsseSslConduitEngine.state:I
            istore 4 /* oldState */
        start local 4 // int oldState
         1: .line 975
            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 976
      StackMap locals: int
      StackMap stack:
            return
         3: .line 978
      StackMap locals:
      StackMap stack:
            invokestatic java.lang.Thread.currentThread:()Ljava/lang/Thread;
            astore 5 /* thread */
        start local 5 // java.lang.Thread thread
         4: .line 979
            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 980
            aload 3 /* timeUnit */
            lload 1 /* time */
            invokevirtual java.util.concurrent.TimeUnit.toNanos:(J)J
            lstore 7 /* duration */
        start local 7 // long duration
         6: .line 982
            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 994
            aload 6 /* next */
            ifnull 8
            aload 6 /* next */
            invokestatic java.util.concurrent.locks.LockSupport.unpark:(Ljava/lang/Thread;)V
         8: .line 983
      StackMap locals: java.lang.Thread java.lang.Thread long
      StackMap stack:
            return
         9: .line 985
      StackMap locals:
      StackMap stack:
            iload 4 /* oldState */
            ldc 65536
            invokestatic org.xnio.Bits.allAreSet:(II)Z
            ifeq 11
        10: .line 986
            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 988
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            lload 7 /* duration */
            invokestatic java.util.concurrent.locks.LockSupport.parkNanos:(Ljava/lang/Object;J)V
        12: .line 989
            aload 5 /* thread */
            invokevirtual java.lang.Thread.isInterrupted:()Z
            ifeq 17
        13: .line 990
            getstatic org.xnio._private.Messages.msg:Lorg/xnio/_private/Messages;
            invokeinterface org.xnio._private.Messages.interruptedIO:()Ljava/io/InterruptedIOException;
            athrow
        14: .line 992
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 9
        15: .line 994
            aload 6 /* next */
            ifnull 16
            aload 6 /* next */
            invokestatic java.util.concurrent.locks.LockSupport.unpark:(Ljava/lang/Thread;)V
        16: .line 995
      StackMap locals: java.lang.Throwable
      StackMap stack:
            aload 9
            athrow
        17: .line 994
      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 996
      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 1004
            aload 0 /* this */
            getfield org.xnio.ssl.JsseSslConduitEngine.connection:Lorg/xnio/ssl/JsseSslStreamConnection;
            invokevirtual org.xnio.ssl.JsseSslStreamConnection.readClosed:()Z
            pop
         1: .line 1005
            aload 0 /* this */
            iconst_2
            invokevirtual org.xnio.ssl.JsseSslConduitEngine.setFlags:(I)I
            istore 1 /* old */
        start local 1 // int old
         2: .line 1007
            iload 1 /* old */
            iconst_2
            invokestatic org.xnio.Bits.allAreClear:(II)Z
            ifeq 4
         3: .line 1008
            aload 0 /* this */
            getfield org.xnio.ssl.JsseSslConduitEngine.sourceConduit:Lorg/xnio/conduits/StreamSourceConduit;
            invokeinterface org.xnio.conduits.StreamSourceConduit.terminateReads:()V
         4: .line 1010
      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 1011
            aload 0 /* this */
            invokevirtual org.xnio.ssl.JsseSslConduitEngine.getWrapLock:()Ljava/lang/Object;
            dup
            astore 2
            monitorenter
         6: .line 1012
            aload 0 /* this */
            invokevirtual org.xnio.ssl.JsseSslConduitEngine.wrapCloseMessage:()Z
            pop
         7: .line 1013
            aload 0 /* this */
            invokevirtual org.xnio.ssl.JsseSslConduitEngine.flush:()Z
            pop
         8: .line 1011
            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 1016
      StackMap locals:
      StackMap stack:
            iload 1 /* old */
            ldc 262144
            invokestatic org.xnio.Bits.allAreSet:(II)Z
            ifeq 20
        13: .line 1017
            aload 0 /* this */
            invokevirtual org.xnio.ssl.JsseSslConduitEngine.closeEngine:()V
        14: .line 1019
            goto 20
      StackMap locals:
      StackMap stack: java.lang.Exception
        15: astore 2 /* e */
        start local 2 // java.lang.Exception e
        16: .line 1021
            aload 0 /* this */
            invokevirtual org.xnio.ssl.JsseSslConduitEngine.closeEngine:()V
        17: .line 1022
            aload 2 /* e */
            instanceof java.io.IOException
            ifeq 19
        18: .line 1023
            aload 2 /* e */
            checkcast java.io.IOException
            athrow
        19: .line 1025
      StackMap locals: java.lang.Exception
      StackMap stack:
            aload 2 /* e */
            checkcast java.lang.RuntimeException
            athrow
        end local 2 // java.lang.Exception e
        20: .line 1028
      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 1036
            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 1044
            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 1053
            aload 0 /* this */
            getfield org.xnio.ssl.JsseSslConduitEngine.state:I
            istore 1 /* oldState */
        start local 1 // int oldState
         1: .line 1054
            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 1055
      StackMap locals: int
      StackMap stack:
            return
         3: .line 1057
      StackMap locals:
      StackMap stack:
            invokestatic java.lang.Thread.currentThread:()Ljava/lang/Thread;
            astore 2 /* thread */
        start local 2 // java.lang.Thread thread
         4: .line 1058
            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 1060
            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 1072
            aload 3 /* next */
            ifnull 7
            aload 3 /* next */
            invokestatic java.util.concurrent.locks.LockSupport.unpark:(Ljava/lang/Thread;)V
         7: .line 1061
      StackMap locals: java.lang.Thread java.lang.Thread
      StackMap stack:
            return
         8: .line 1063
      StackMap locals:
      StackMap stack:
            iload 1 /* oldState */
            iconst_1
            invokestatic org.xnio.Bits.allAreSet:(II)Z
            ifeq 10
         9: .line 1064
            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 1066
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokestatic java.util.concurrent.locks.LockSupport.park:(Ljava/lang/Object;)V
        11: .line 1067
            aload 2 /* thread */
            invokevirtual java.lang.Thread.isInterrupted:()Z
            ifeq 16
        12: .line 1068
            getstatic org.xnio._private.Messages.msg:Lorg/xnio/_private/Messages;
            invokeinterface org.xnio._private.Messages.interruptedIO:()Ljava/io/InterruptedIOException;
            athrow
        13: .line 1070
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 4
        14: .line 1072
            aload 3 /* next */
            ifnull 15
            aload 3 /* next */
            invokestatic java.util.concurrent.locks.LockSupport.unpark:(Ljava/lang/Thread;)V
        15: .line 1073
      StackMap locals: java.lang.Throwable
      StackMap stack:
            aload 4
            athrow
        16: .line 1072
      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 1074
      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 1084
            aload 0 /* this */
            getfield org.xnio.ssl.JsseSslConduitEngine.state:I
            istore 4 /* oldState */
        start local 4 // int oldState
         1: .line 1085
            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 1086
      StackMap locals: int
      StackMap stack:
            return
         3: .line 1088
      StackMap locals:
      StackMap stack:
            invokestatic java.lang.Thread.currentThread:()Ljava/lang/Thread;
            astore 5 /* thread */
        start local 5 // java.lang.Thread thread
         4: .line 1089
            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 1090
            aload 3 /* timeUnit */
            lload 1 /* time */
            invokevirtual java.util.concurrent.TimeUnit.toNanos:(J)J
            lstore 7 /* duration */
        start local 7 // long duration
         6: .line 1092
            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 1104
            aload 6 /* next */
            ifnull 8
            aload 6 /* next */
            invokestatic java.util.concurrent.locks.LockSupport.unpark:(Ljava/lang/Thread;)V
         8: .line 1093
      StackMap locals: java.lang.Thread java.lang.Thread long
      StackMap stack:
            return
         9: .line 1095
      StackMap locals:
      StackMap stack:
            iload 4 /* oldState */
            iconst_1
            invokestatic org.xnio.Bits.allAreSet:(II)Z
            ifeq 11
        10: .line 1096
            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 1098
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            lload 7 /* duration */
            invokestatic java.util.concurrent.locks.LockSupport.parkNanos:(Ljava/lang/Object;J)V
        12: .line 1099
            aload 5 /* thread */
            invokevirtual java.lang.Thread.isInterrupted:()Z
            ifeq 17
        13: .line 1100
            getstatic org.xnio._private.Messages.msg:Lorg/xnio/_private/Messages;
            invokeinterface org.xnio._private.Messages.interruptedIO:()Ljava/io/InterruptedIOException;
            athrow
        14: .line 1102
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 9
        15: .line 1104
            aload 6 /* next */
            ifnull 16
            aload 6 /* next */
            invokestatic java.util.concurrent.locks.LockSupport.unpark:(Ljava/lang/Thread;)V
        16: .line 1105
      StackMap locals: java.lang.Throwable
      StackMap stack:
            aload 9
            athrow
        17: .line 1104
      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 1106
      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 1109
            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 1113
            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 1120
            aload 0 /* this */
            iconst_1
            invokevirtual org.xnio.ssl.JsseSslConduitEngine.setFlags:(I)I
            pop
         1: .line 1121
            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 1127
            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 1134
            aload 0 /* this */
            iconst_1
            invokevirtual org.xnio.ssl.JsseSslConduitEngine.clearFlags:(I)I
            pop
         1: .line 1135
            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 1141
            aload 0 /* this */
            ldc 65536
            invokevirtual org.xnio.ssl.JsseSslConduitEngine.setFlags:(I)I
            pop
         1: .line 1142
            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 1148
            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 1155
            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 1162
            aload 0 /* this */
            ldc 65536
            invokevirtual org.xnio.ssl.JsseSslConduitEngine.clearFlags:(I)I
            pop
         1: .line 1163
            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 1168
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.xnio.ssl.JsseSslConduitEngine.state:I
            istore 2 /* oldState */
        start local 2 // int oldState
         1: .line 1169
            iload 2 /* oldState */
            iload 1 /* flags */
            iand
            iload 1 /* flags */
            if_icmpne 3
         2: .line 1170
            iload 2 /* oldState */
            ireturn
         3: .line 1172
      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 1173
            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 1179
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.xnio.ssl.JsseSslConduitEngine.state:I
            istore 2 /* oldState */
        start local 2 // int oldState
         1: .line 1180
            iload 2 /* oldState */
            iload 1 /* flags */
            iand
            ifne 3
         2: .line 1181
            iload 2 /* oldState */
            ireturn
         3: .line 1183
      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 1184
            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 1188
            aload 0 /* this */
            invokevirtual org.xnio.ssl.JsseSslConduitEngine.getUnwrapLock:()Ljava/lang/Object;
            dup
            astore 1
            monitorenter
         1: .line 1190
            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 1191
      StackMap locals:
      StackMap stack: java.lang.IllegalStateException
            pop
         7: .line 1192
            aload 1
            monitorexit
         8: iconst_0
            ireturn
         9: .line 1188
      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

  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 58
            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 58
            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