public class io.netty.handler.ssl.SslHandler extends io.netty.handler.codec.ByteToMessageDecoder implements io.netty.channel.ChannelOutboundHandler
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: io.netty.handler.ssl.SslHandler
  super_class: io.netty.handler.codec.ByteToMessageDecoder
{
  private static final io.netty.util.internal.logging.InternalLogger logger;
    descriptor: Lio/netty/util/internal/logging/InternalLogger;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  private static final java.util.regex.Pattern IGNORABLE_CLASS_IN_STACK;
    descriptor: Ljava/util/regex/Pattern;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  private static final java.util.regex.Pattern IGNORABLE_ERROR_MESSAGE;
    descriptor: Ljava/util/regex/Pattern;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  private static final javax.net.ssl.SSLException SSLENGINE_CLOSED;
    descriptor: Ljavax/net/ssl/SSLException;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  private static final javax.net.ssl.SSLException HANDSHAKE_TIMED_OUT;
    descriptor: Ljavax/net/ssl/SSLException;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

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

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

  private volatile io.netty.channel.ChannelHandlerContext ctx;
    descriptor: Lio/netty/channel/ChannelHandlerContext;
    flags: (0x0042) ACC_PRIVATE, ACC_VOLATILE

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

  private final io.netty.handler.ssl.SslHandler$SslEngineType engineType;
    descriptor: Lio/netty/handler/ssl/SslHandler$SslEngineType;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final java.util.concurrent.Executor delegatedTaskExecutor;
    descriptor: Ljava/util/concurrent/Executor;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final boolean jdkCompatibilityMode;
    descriptor: Z
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final java.nio.ByteBuffer[] singleBuffer;
    descriptor: [Ljava/nio/ByteBuffer;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final boolean startTls;
    descriptor: Z
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private boolean sentFirstMessage;
    descriptor: Z
    flags: (0x0002) ACC_PRIVATE

  private boolean flushedBeforeHandshake;
    descriptor: Z
    flags: (0x0002) ACC_PRIVATE

  private boolean readDuringHandshake;
    descriptor: Z
    flags: (0x0002) ACC_PRIVATE

  private boolean handshakeStarted;
    descriptor: Z
    flags: (0x0002) ACC_PRIVATE

  private io.netty.handler.ssl.SslHandler$SslHandlerCoalescingBufferQueue pendingUnencryptedWrites;
    descriptor: Lio/netty/handler/ssl/SslHandler$SslHandlerCoalescingBufferQueue;
    flags: (0x0002) ACC_PRIVATE

  private io.netty.util.concurrent.Promise<io.netty.channel.Channel> handshakePromise;
    descriptor: Lio/netty/util/concurrent/Promise;
    flags: (0x0002) ACC_PRIVATE
    Signature: Lio/netty/util/concurrent/Promise<Lio/netty/channel/Channel;>;

  private final io.netty.handler.ssl.SslHandler$LazyChannelPromise sslClosePromise;
    descriptor: Lio/netty/handler/ssl/SslHandler$LazyChannelPromise;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private boolean needsFlush;
    descriptor: Z
    flags: (0x0002) ACC_PRIVATE

  private boolean outboundClosed;
    descriptor: Z
    flags: (0x0002) ACC_PRIVATE

  private boolean closeNotify;
    descriptor: Z
    flags: (0x0002) ACC_PRIVATE

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

  private boolean firedChannelRead;
    descriptor: Z
    flags: (0x0002) ACC_PRIVATE

  private volatile long handshakeTimeoutMillis;
    descriptor: J
    flags: (0x0042) ACC_PRIVATE, ACC_VOLATILE

  private volatile long closeNotifyFlushTimeoutMillis;
    descriptor: J
    flags: (0x0042) ACC_PRIVATE, ACC_VOLATILE

  private volatile long closeNotifyReadTimeoutMillis;
    descriptor: J
    flags: (0x0042) ACC_PRIVATE, ACC_VOLATILE

  volatile int wrapDataSize;
    descriptor: I
    flags: (0x0040) ACC_VOLATILE

  private static volatile int[] $SWITCH_TABLE$javax$net$ssl$SSLEngineResult$HandshakeStatus;
    descriptor: [I
    flags: (0x104a) ACC_PRIVATE, ACC_STATIC, ACC_VOLATILE, 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

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

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=3, locals=0, args_size=0
         0: .line 165
            ldc Lio/netty/handler/ssl/SslHandler;
            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 io.netty.handler.ssl.SslHandler.$assertionsDisabled:Z
         3: .line 168
            ldc Lio/netty/handler/ssl/SslHandler;
            invokestatic io.netty.util.internal.logging.InternalLoggerFactory.getInstance:(Ljava/lang/Class;)Lio/netty/util/internal/logging/InternalLogger;
         4: .line 167
            putstatic io.netty.handler.ssl.SslHandler.logger:Lio/netty/util/internal/logging/InternalLogger;
         5: .line 171
            ldc "^.*(?:Socket|Datagram|Sctp|Udt)Channel.*$"
         6: .line 170
            invokestatic java.util.regex.Pattern.compile:(Ljava/lang/String;)Ljava/util/regex/Pattern;
            putstatic io.netty.handler.ssl.SslHandler.IGNORABLE_CLASS_IN_STACK:Ljava/util/regex/Pattern;
         7: .line 173
            ldc "^.*(?:connection.*(?:reset|closed|abort|broken)|broken.*pipe).*$"
            iconst_2
         8: .line 172
            invokestatic java.util.regex.Pattern.compile:(Ljava/lang/String;I)Ljava/util/regex/Pattern;
            putstatic io.netty.handler.ssl.SslHandler.IGNORABLE_ERROR_MESSAGE:Ljava/util/regex/Pattern;
         9: .line 181
            new javax.net.ssl.SSLException
            dup
            ldc "SSLEngine closed already"
            invokespecial javax.net.ssl.SSLException.<init>:(Ljava/lang/String;)V
            ldc Lio/netty/handler/ssl/SslHandler;
            ldc "wrap(...)"
        10: .line 180
            invokestatic io.netty.util.internal.ThrowableUtil.unknownStackTrace:(Ljava/lang/Throwable;Ljava/lang/Class;Ljava/lang/String;)Ljava/lang/Throwable;
            checkcast javax.net.ssl.SSLException
            putstatic io.netty.handler.ssl.SslHandler.SSLENGINE_CLOSED:Ljavax/net/ssl/SSLException;
        11: .line 183
            new javax.net.ssl.SSLException
            dup
            ldc "handshake timed out"
            invokespecial javax.net.ssl.SSLException.<init>:(Ljava/lang/String;)V
            ldc Lio/netty/handler/ssl/SslHandler;
            ldc "handshake(...)"
        12: .line 182
            invokestatic io.netty.util.internal.ThrowableUtil.unknownStackTrace:(Ljava/lang/Throwable;Ljava/lang/Class;Ljava/lang/String;)Ljava/lang/Throwable;
            checkcast javax.net.ssl.SSLException
            putstatic io.netty.handler.ssl.SslHandler.HANDSHAKE_TIMED_OUT:Ljavax/net/ssl/SSLException;
        13: .line 185
            new java.nio.channels.ClosedChannelException
            dup
            invokespecial java.nio.channels.ClosedChannelException.<init>:()V
            ldc Lio/netty/handler/ssl/SslHandler;
            ldc "channelInactive(...)"
        14: .line 184
            invokestatic io.netty.util.internal.ThrowableUtil.unknownStackTrace:(Ljava/lang/Throwable;Ljava/lang/Class;Ljava/lang/String;)Ljava/lang/Throwable;
            checkcast java.nio.channels.ClosedChannelException
            putstatic io.netty.handler.ssl.SslHandler.CHANNEL_CLOSED:Ljava/nio/channels/ClosedChannelException;
        15: .line 191
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public void <init>(javax.net.ssl.SSLEngine);
    descriptor: (Ljavax/net/ssl/SSLEngine;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // io.netty.handler.ssl.SslHandler this
        start local 1 // javax.net.ssl.SSLEngine engine
         0: .line 424
            aload 0 /* this */
            aload 1 /* engine */
            iconst_0
            invokespecial io.netty.handler.ssl.SslHandler.<init>:(Ljavax/net/ssl/SSLEngine;Z)V
         1: .line 425
            return
        end local 1 // javax.net.ssl.SSLEngine engine
        end local 0 // io.netty.handler.ssl.SslHandler this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    2     0    this  Lio/netty/handler/ssl/SslHandler;
            0    2     1  engine  Ljavax/net/ssl/SSLEngine;
    MethodParameters:
        Name  Flags
      engine  

  public void <init>(javax.net.ssl.SSLEngine, boolean);
    descriptor: (Ljavax/net/ssl/SSLEngine;Z)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // io.netty.handler.ssl.SslHandler this
        start local 1 // javax.net.ssl.SSLEngine engine
        start local 2 // boolean startTls
         0: .line 436
            aload 0 /* this */
            aload 1 /* engine */
            iload 2 /* startTls */
            getstatic io.netty.util.concurrent.ImmediateExecutor.INSTANCE:Lio/netty/util/concurrent/ImmediateExecutor;
            invokespecial io.netty.handler.ssl.SslHandler.<init>:(Ljavax/net/ssl/SSLEngine;ZLjava/util/concurrent/Executor;)V
         1: .line 437
            return
        end local 2 // boolean startTls
        end local 1 // javax.net.ssl.SSLEngine engine
        end local 0 // io.netty.handler.ssl.SslHandler this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    2     0      this  Lio/netty/handler/ssl/SslHandler;
            0    2     1    engine  Ljavax/net/ssl/SSLEngine;
            0    2     2  startTls  Z
    MethodParameters:
          Name  Flags
      engine    
      startTls  

  public void <init>(javax.net.ssl.SSLEngine, java.util.concurrent.Executor);
    descriptor: (Ljavax/net/ssl/SSLEngine;Ljava/util/concurrent/Executor;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // io.netty.handler.ssl.SslHandler this
        start local 1 // javax.net.ssl.SSLEngine engine
        start local 2 // java.util.concurrent.Executor delegatedTaskExecutor
         0: .line 444
            aload 0 /* this */
            aload 1 /* engine */
            iconst_0
            aload 2 /* delegatedTaskExecutor */
            invokespecial io.netty.handler.ssl.SslHandler.<init>:(Ljavax/net/ssl/SSLEngine;ZLjava/util/concurrent/Executor;)V
         1: .line 445
            return
        end local 2 // java.util.concurrent.Executor delegatedTaskExecutor
        end local 1 // javax.net.ssl.SSLEngine engine
        end local 0 // io.netty.handler.ssl.SslHandler this
      LocalVariableTable:
        Start  End  Slot                   Name  Signature
            0    2     0                   this  Lio/netty/handler/ssl/SslHandler;
            0    2     1                 engine  Ljavax/net/ssl/SSLEngine;
            0    2     2  delegatedTaskExecutor  Ljava/util/concurrent/Executor;
    RuntimeVisibleAnnotations: 
      java.lang.Deprecated()
    MethodParameters:
                       Name  Flags
      engine                 
      delegatedTaskExecutor  

  public void <init>(javax.net.ssl.SSLEngine, boolean, java.util.concurrent.Executor);
    descriptor: (Ljavax/net/ssl/SSLEngine;ZLjava/util/concurrent/Executor;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=4, args_size=4
        start local 0 // io.netty.handler.ssl.SslHandler this
        start local 1 // javax.net.ssl.SSLEngine engine
        start local 2 // boolean startTls
        start local 3 // java.util.concurrent.Executor delegatedTaskExecutor
         0: .line 451
            aload 0 /* this */
            invokespecial io.netty.handler.codec.ByteToMessageDecoder.<init>:()V
         1: .line 385
            aload 0 /* this */
            iconst_1
            anewarray java.nio.ByteBuffer
            putfield io.netty.handler.ssl.SslHandler.singleBuffer:[Ljava/nio/ByteBuffer;
         2: .line 393
            aload 0 /* this */
            new io.netty.handler.ssl.SslHandler$LazyChannelPromise
            dup
            aload 0 /* this */
            invokespecial io.netty.handler.ssl.SslHandler$LazyChannelPromise.<init>:(Lio/netty/handler/ssl/SslHandler;)V
            putfield io.netty.handler.ssl.SslHandler.handshakePromise:Lio/netty/util/concurrent/Promise;
         3: .line 394
            aload 0 /* this */
            new io.netty.handler.ssl.SslHandler$LazyChannelPromise
            dup
            aload 0 /* this */
            invokespecial io.netty.handler.ssl.SslHandler$LazyChannelPromise.<init>:(Lio/netty/handler/ssl/SslHandler;)V
            putfield io.netty.handler.ssl.SslHandler.sslClosePromise:Lio/netty/handler/ssl/SslHandler$LazyChannelPromise;
         4: .line 413
            aload 0 /* this */
            ldc 10000
            putfield io.netty.handler.ssl.SslHandler.handshakeTimeoutMillis:J
         5: .line 414
            aload 0 /* this */
            ldc 3000
            putfield io.netty.handler.ssl.SslHandler.closeNotifyFlushTimeoutMillis:J
         6: .line 416
            aload 0 /* this */
            sipush 16384
            putfield io.netty.handler.ssl.SslHandler.wrapDataSize:I
         7: .line 452
            aload 1 /* engine */
            ifnonnull 9
         8: .line 453
            new java.lang.NullPointerException
            dup
            ldc "engine"
            invokespecial java.lang.NullPointerException.<init>:(Ljava/lang/String;)V
            athrow
         9: .line 455
      StackMap locals: io.netty.handler.ssl.SslHandler javax.net.ssl.SSLEngine int java.util.concurrent.Executor
      StackMap stack:
            aload 3 /* delegatedTaskExecutor */
            ifnonnull 11
        10: .line 456
            new java.lang.NullPointerException
            dup
            ldc "delegatedTaskExecutor"
            invokespecial java.lang.NullPointerException.<init>:(Ljava/lang/String;)V
            athrow
        11: .line 458
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* engine */
            putfield io.netty.handler.ssl.SslHandler.engine:Ljavax/net/ssl/SSLEngine;
        12: .line 459
            aload 0 /* this */
            aload 1 /* engine */
            invokestatic io.netty.handler.ssl.SslHandler$SslEngineType.forEngine:(Ljavax/net/ssl/SSLEngine;)Lio/netty/handler/ssl/SslHandler$SslEngineType;
            putfield io.netty.handler.ssl.SslHandler.engineType:Lio/netty/handler/ssl/SslHandler$SslEngineType;
        13: .line 460
            aload 0 /* this */
            aload 3 /* delegatedTaskExecutor */
            putfield io.netty.handler.ssl.SslHandler.delegatedTaskExecutor:Ljava/util/concurrent/Executor;
        14: .line 461
            aload 0 /* this */
            iload 2 /* startTls */
            putfield io.netty.handler.ssl.SslHandler.startTls:Z
        15: .line 462
            aload 0 /* this */
            aload 0 /* this */
            getfield io.netty.handler.ssl.SslHandler.engineType:Lio/netty/handler/ssl/SslHandler$SslEngineType;
            aload 1 /* engine */
            invokevirtual io.netty.handler.ssl.SslHandler$SslEngineType.jdkCompatibilityMode:(Ljavax/net/ssl/SSLEngine;)Z
            putfield io.netty.handler.ssl.SslHandler.jdkCompatibilityMode:Z
        16: .line 463
            aload 0 /* this */
            aload 0 /* this */
            getfield io.netty.handler.ssl.SslHandler.engineType:Lio/netty/handler/ssl/SslHandler$SslEngineType;
            getfield io.netty.handler.ssl.SslHandler$SslEngineType.cumulator:Lio/netty/handler/codec/ByteToMessageDecoder$Cumulator;
            invokevirtual io.netty.handler.ssl.SslHandler.setCumulator:(Lio/netty/handler/codec/ByteToMessageDecoder$Cumulator;)V
        17: .line 464
            return
        end local 3 // java.util.concurrent.Executor delegatedTaskExecutor
        end local 2 // boolean startTls
        end local 1 // javax.net.ssl.SSLEngine engine
        end local 0 // io.netty.handler.ssl.SslHandler this
      LocalVariableTable:
        Start  End  Slot                   Name  Signature
            0   18     0                   this  Lio/netty/handler/ssl/SslHandler;
            0   18     1                 engine  Ljavax/net/ssl/SSLEngine;
            0   18     2               startTls  Z
            0   18     3  delegatedTaskExecutor  Ljava/util/concurrent/Executor;
    RuntimeVisibleAnnotations: 
      java.lang.Deprecated()
    MethodParameters:
                       Name  Flags
      engine                 
      startTls               
      delegatedTaskExecutor  

  public long getHandshakeTimeoutMillis();
    descriptor: ()J
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // io.netty.handler.ssl.SslHandler this
         0: .line 467
            aload 0 /* this */
            getfield io.netty.handler.ssl.SslHandler.handshakeTimeoutMillis:J
            lreturn
        end local 0 // io.netty.handler.ssl.SslHandler this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lio/netty/handler/ssl/SslHandler;

  public void setHandshakeTimeout(long, java.util.concurrent.TimeUnit);
    descriptor: (JLjava/util/concurrent/TimeUnit;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=4, args_size=3
        start local 0 // io.netty.handler.ssl.SslHandler this
        start local 1 // long handshakeTimeout
        start local 3 // java.util.concurrent.TimeUnit unit
         0: .line 471
            aload 3 /* unit */
            ifnonnull 2
         1: .line 472
            new java.lang.NullPointerException
            dup
            ldc "unit"
            invokespecial java.lang.NullPointerException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 475
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 3 /* unit */
            lload 1 /* handshakeTimeout */
            invokevirtual java.util.concurrent.TimeUnit.toMillis:(J)J
            invokevirtual io.netty.handler.ssl.SslHandler.setHandshakeTimeoutMillis:(J)V
         3: .line 476
            return
        end local 3 // java.util.concurrent.TimeUnit unit
        end local 1 // long handshakeTimeout
        end local 0 // io.netty.handler.ssl.SslHandler this
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0    4     0              this  Lio/netty/handler/ssl/SslHandler;
            0    4     1  handshakeTimeout  J
            0    4     3              unit  Ljava/util/concurrent/TimeUnit;
    MethodParameters:
                  Name  Flags
      handshakeTimeout  
      unit              

  public void setHandshakeTimeoutMillis(long);
    descriptor: (J)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=3, args_size=2
        start local 0 // io.netty.handler.ssl.SslHandler this
        start local 1 // long handshakeTimeoutMillis
         0: .line 479
            lload 1 /* handshakeTimeoutMillis */
            lconst_0
            lcmp
            ifge 4
         1: .line 480
            new java.lang.IllegalArgumentException
            dup
         2: .line 481
            new java.lang.StringBuilder
            dup
            ldc "handshakeTimeoutMillis: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            lload 1 /* handshakeTimeoutMillis */
            invokevirtual java.lang.StringBuilder.append:(J)Ljava/lang/StringBuilder;
            ldc " (expected: >= 0)"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
         3: .line 480
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         4: .line 483
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            lload 1 /* handshakeTimeoutMillis */
            putfield io.netty.handler.ssl.SslHandler.handshakeTimeoutMillis:J
         5: .line 484
            return
        end local 1 // long handshakeTimeoutMillis
        end local 0 // io.netty.handler.ssl.SslHandler this
      LocalVariableTable:
        Start  End  Slot                    Name  Signature
            0    6     0                    this  Lio/netty/handler/ssl/SslHandler;
            0    6     1  handshakeTimeoutMillis  J
    MethodParameters:
                        Name  Flags
      handshakeTimeoutMillis  

  public final void setWrapDataSize(int);
    descriptor: (I)V
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // io.netty.handler.ssl.SslHandler this
        start local 1 // int wrapDataSize
         0: .line 508
            aload 0 /* this */
            iload 1 /* wrapDataSize */
            putfield io.netty.handler.ssl.SslHandler.wrapDataSize:I
         1: .line 509
            return
        end local 1 // int wrapDataSize
        end local 0 // io.netty.handler.ssl.SslHandler this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    2     0          this  Lio/netty/handler/ssl/SslHandler;
            0    2     1  wrapDataSize  I
    MethodParameters:
              Name  Flags
      wrapDataSize  

  public long getCloseNotifyTimeoutMillis();
    descriptor: ()J
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // io.netty.handler.ssl.SslHandler this
         0: .line 516
            aload 0 /* this */
            invokevirtual io.netty.handler.ssl.SslHandler.getCloseNotifyFlushTimeoutMillis:()J
            lreturn
        end local 0 // io.netty.handler.ssl.SslHandler this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lio/netty/handler/ssl/SslHandler;
    RuntimeVisibleAnnotations: 
      java.lang.Deprecated()

  public void setCloseNotifyTimeout(long, java.util.concurrent.TimeUnit);
    descriptor: (JLjava/util/concurrent/TimeUnit;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=4, args_size=3
        start local 0 // io.netty.handler.ssl.SslHandler this
        start local 1 // long closeNotifyTimeout
        start local 3 // java.util.concurrent.TimeUnit unit
         0: .line 524
            aload 0 /* this */
            lload 1 /* closeNotifyTimeout */
            aload 3 /* unit */
            invokevirtual io.netty.handler.ssl.SslHandler.setCloseNotifyFlushTimeout:(JLjava/util/concurrent/TimeUnit;)V
         1: .line 525
            return
        end local 3 // java.util.concurrent.TimeUnit unit
        end local 1 // long closeNotifyTimeout
        end local 0 // io.netty.handler.ssl.SslHandler this
      LocalVariableTable:
        Start  End  Slot                Name  Signature
            0    2     0                this  Lio/netty/handler/ssl/SslHandler;
            0    2     1  closeNotifyTimeout  J
            0    2     3                unit  Ljava/util/concurrent/TimeUnit;
    RuntimeVisibleAnnotations: 
      java.lang.Deprecated()
    MethodParameters:
                    Name  Flags
      closeNotifyTimeout  
      unit                

  public void setCloseNotifyTimeoutMillis(long);
    descriptor: (J)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // io.netty.handler.ssl.SslHandler this
        start local 1 // long closeNotifyFlushTimeoutMillis
         0: .line 532
            aload 0 /* this */
            lload 1 /* closeNotifyFlushTimeoutMillis */
            invokevirtual io.netty.handler.ssl.SslHandler.setCloseNotifyFlushTimeoutMillis:(J)V
         1: .line 533
            return
        end local 1 // long closeNotifyFlushTimeoutMillis
        end local 0 // io.netty.handler.ssl.SslHandler this
      LocalVariableTable:
        Start  End  Slot                           Name  Signature
            0    2     0                           this  Lio/netty/handler/ssl/SslHandler;
            0    2     1  closeNotifyFlushTimeoutMillis  J
    RuntimeVisibleAnnotations: 
      java.lang.Deprecated()
    MethodParameters:
                               Name  Flags
      closeNotifyFlushTimeoutMillis  

  public final long getCloseNotifyFlushTimeoutMillis();
    descriptor: ()J
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // io.netty.handler.ssl.SslHandler this
         0: .line 541
            aload 0 /* this */
            getfield io.netty.handler.ssl.SslHandler.closeNotifyFlushTimeoutMillis:J
            lreturn
        end local 0 // io.netty.handler.ssl.SslHandler this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lio/netty/handler/ssl/SslHandler;

  public final void setCloseNotifyFlushTimeout(long, java.util.concurrent.TimeUnit);
    descriptor: (JLjava/util/concurrent/TimeUnit;)V
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL
    Code:
      stack=4, locals=4, args_size=3
        start local 0 // io.netty.handler.ssl.SslHandler this
        start local 1 // long closeNotifyFlushTimeout
        start local 3 // java.util.concurrent.TimeUnit unit
         0: .line 550
            aload 0 /* this */
            aload 3 /* unit */
            lload 1 /* closeNotifyFlushTimeout */
            invokevirtual java.util.concurrent.TimeUnit.toMillis:(J)J
            invokevirtual io.netty.handler.ssl.SslHandler.setCloseNotifyFlushTimeoutMillis:(J)V
         1: .line 551
            return
        end local 3 // java.util.concurrent.TimeUnit unit
        end local 1 // long closeNotifyFlushTimeout
        end local 0 // io.netty.handler.ssl.SslHandler this
      LocalVariableTable:
        Start  End  Slot                     Name  Signature
            0    2     0                     this  Lio/netty/handler/ssl/SslHandler;
            0    2     1  closeNotifyFlushTimeout  J
            0    2     3                     unit  Ljava/util/concurrent/TimeUnit;
    MethodParameters:
                         Name  Flags
      closeNotifyFlushTimeout  
      unit                     

  public final void setCloseNotifyFlushTimeoutMillis(long);
    descriptor: (J)V
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL
    Code:
      stack=5, locals=3, args_size=2
        start local 0 // io.netty.handler.ssl.SslHandler this
        start local 1 // long closeNotifyFlushTimeoutMillis
         0: .line 557
            lload 1 /* closeNotifyFlushTimeoutMillis */
            lconst_0
            lcmp
            ifge 4
         1: .line 558
            new java.lang.IllegalArgumentException
            dup
         2: .line 559
            new java.lang.StringBuilder
            dup
            ldc "closeNotifyFlushTimeoutMillis: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            lload 1 /* closeNotifyFlushTimeoutMillis */
            invokevirtual java.lang.StringBuilder.append:(J)Ljava/lang/StringBuilder;
            ldc " (expected: >= 0)"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
         3: .line 558
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         4: .line 561
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            lload 1 /* closeNotifyFlushTimeoutMillis */
            putfield io.netty.handler.ssl.SslHandler.closeNotifyFlushTimeoutMillis:J
         5: .line 562
            return
        end local 1 // long closeNotifyFlushTimeoutMillis
        end local 0 // io.netty.handler.ssl.SslHandler this
      LocalVariableTable:
        Start  End  Slot                           Name  Signature
            0    6     0                           this  Lio/netty/handler/ssl/SslHandler;
            0    6     1  closeNotifyFlushTimeoutMillis  J
    MethodParameters:
                               Name  Flags
      closeNotifyFlushTimeoutMillis  

  public final long getCloseNotifyReadTimeoutMillis();
    descriptor: ()J
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // io.netty.handler.ssl.SslHandler this
         0: .line 570
            aload 0 /* this */
            getfield io.netty.handler.ssl.SslHandler.closeNotifyReadTimeoutMillis:J
            lreturn
        end local 0 // io.netty.handler.ssl.SslHandler this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lio/netty/handler/ssl/SslHandler;

  public final void setCloseNotifyReadTimeout(long, java.util.concurrent.TimeUnit);
    descriptor: (JLjava/util/concurrent/TimeUnit;)V
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL
    Code:
      stack=4, locals=4, args_size=3
        start local 0 // io.netty.handler.ssl.SslHandler this
        start local 1 // long closeNotifyReadTimeout
        start local 3 // java.util.concurrent.TimeUnit unit
         0: .line 579
            aload 0 /* this */
            aload 3 /* unit */
            lload 1 /* closeNotifyReadTimeout */
            invokevirtual java.util.concurrent.TimeUnit.toMillis:(J)J
            invokevirtual io.netty.handler.ssl.SslHandler.setCloseNotifyReadTimeoutMillis:(J)V
         1: .line 580
            return
        end local 3 // java.util.concurrent.TimeUnit unit
        end local 1 // long closeNotifyReadTimeout
        end local 0 // io.netty.handler.ssl.SslHandler this
      LocalVariableTable:
        Start  End  Slot                    Name  Signature
            0    2     0                    this  Lio/netty/handler/ssl/SslHandler;
            0    2     1  closeNotifyReadTimeout  J
            0    2     3                    unit  Ljava/util/concurrent/TimeUnit;
    MethodParameters:
                        Name  Flags
      closeNotifyReadTimeout  
      unit                    

  public final void setCloseNotifyReadTimeoutMillis(long);
    descriptor: (J)V
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL
    Code:
      stack=5, locals=3, args_size=2
        start local 0 // io.netty.handler.ssl.SslHandler this
        start local 1 // long closeNotifyReadTimeoutMillis
         0: .line 586
            lload 1 /* closeNotifyReadTimeoutMillis */
            lconst_0
            lcmp
            ifge 4
         1: .line 587
            new java.lang.IllegalArgumentException
            dup
         2: .line 588
            new java.lang.StringBuilder
            dup
            ldc "closeNotifyReadTimeoutMillis: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            lload 1 /* closeNotifyReadTimeoutMillis */
            invokevirtual java.lang.StringBuilder.append:(J)Ljava/lang/StringBuilder;
            ldc " (expected: >= 0)"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
         3: .line 587
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         4: .line 590
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            lload 1 /* closeNotifyReadTimeoutMillis */
            putfield io.netty.handler.ssl.SslHandler.closeNotifyReadTimeoutMillis:J
         5: .line 591
            return
        end local 1 // long closeNotifyReadTimeoutMillis
        end local 0 // io.netty.handler.ssl.SslHandler this
      LocalVariableTable:
        Start  End  Slot                          Name  Signature
            0    6     0                          this  Lio/netty/handler/ssl/SslHandler;
            0    6     1  closeNotifyReadTimeoutMillis  J
    MethodParameters:
                              Name  Flags
      closeNotifyReadTimeoutMillis  

  public javax.net.ssl.SSLEngine engine();
    descriptor: ()Ljavax/net/ssl/SSLEngine;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // io.netty.handler.ssl.SslHandler this
         0: .line 597
            aload 0 /* this */
            getfield io.netty.handler.ssl.SslHandler.engine:Ljavax/net/ssl/SSLEngine;
            areturn
        end local 0 // io.netty.handler.ssl.SslHandler this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lio/netty/handler/ssl/SslHandler;

  public java.lang.String applicationProtocol();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=2, args_size=1
        start local 0 // io.netty.handler.ssl.SslHandler this
         0: .line 606
            aload 0 /* this */
            invokevirtual io.netty.handler.ssl.SslHandler.engine:()Ljavax/net/ssl/SSLEngine;
            astore 1 /* engine */
        start local 1 // javax.net.ssl.SSLEngine engine
         1: .line 607
            aload 1 /* engine */
            instanceof io.netty.handler.ssl.ApplicationProtocolAccessor
            ifne 3
         2: .line 608
            aconst_null
            areturn
         3: .line 611
      StackMap locals: javax.net.ssl.SSLEngine
      StackMap stack:
            aload 1 /* engine */
            checkcast io.netty.handler.ssl.ApplicationProtocolAccessor
            invokeinterface io.netty.handler.ssl.ApplicationProtocolAccessor.getNegotiatedApplicationProtocol:()Ljava/lang/String;
            areturn
        end local 1 // javax.net.ssl.SSLEngine engine
        end local 0 // io.netty.handler.ssl.SslHandler this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    4     0    this  Lio/netty/handler/ssl/SslHandler;
            1    4     1  engine  Ljavax/net/ssl/SSLEngine;

  public io.netty.util.concurrent.Future<io.netty.channel.Channel> handshakeFuture();
    descriptor: ()Lio/netty/util/concurrent/Future;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // io.netty.handler.ssl.SslHandler this
         0: .line 621
            aload 0 /* this */
            getfield io.netty.handler.ssl.SslHandler.handshakePromise:Lio/netty/util/concurrent/Promise;
            areturn
        end local 0 // io.netty.handler.ssl.SslHandler this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lio/netty/handler/ssl/SslHandler;
    Signature: ()Lio/netty/util/concurrent/Future<Lio/netty/channel/Channel;>;

  public io.netty.channel.ChannelFuture close();
    descriptor: ()Lio/netty/channel/ChannelFuture;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // io.netty.handler.ssl.SslHandler this
         0: .line 632
            aload 0 /* this */
            aload 0 /* this */
            getfield io.netty.handler.ssl.SslHandler.ctx:Lio/netty/channel/ChannelHandlerContext;
            invokeinterface io.netty.channel.ChannelHandlerContext.newPromise:()Lio/netty/channel/ChannelPromise;
            invokevirtual io.netty.handler.ssl.SslHandler.close:(Lio/netty/channel/ChannelPromise;)Lio/netty/channel/ChannelFuture;
            areturn
        end local 0 // io.netty.handler.ssl.SslHandler this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lio/netty/handler/ssl/SslHandler;
    RuntimeVisibleAnnotations: 
      java.lang.Deprecated()

  public io.netty.channel.ChannelFuture close(io.netty.channel.ChannelPromise);
    descriptor: (Lio/netty/channel/ChannelPromise;)Lio/netty/channel/ChannelFuture;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=3, args_size=2
        start local 0 // io.netty.handler.ssl.SslHandler this
        start local 1 // io.netty.channel.ChannelPromise promise
         0: .line 642
            aload 0 /* this */
            getfield io.netty.handler.ssl.SslHandler.ctx:Lio/netty/channel/ChannelHandlerContext;
            astore 2 /* ctx */
        start local 2 // io.netty.channel.ChannelHandlerContext ctx
         1: .line 643
            aload 2 /* ctx */
            invokeinterface io.netty.channel.ChannelHandlerContext.executor:()Lio/netty/util/concurrent/EventExecutor;
            new io.netty.handler.ssl.SslHandler$1
            dup
            aload 0 /* this */
            aload 2 /* ctx */
            aload 1 /* promise */
            invokespecial io.netty.handler.ssl.SslHandler$1.<init>:(Lio/netty/handler/ssl/SslHandler;Lio/netty/channel/ChannelHandlerContext;Lio/netty/channel/ChannelPromise;)V
            invokeinterface io.netty.util.concurrent.EventExecutor.execute:(Ljava/lang/Runnable;)V
         2: .line 658
            aload 1 /* promise */
            areturn
        end local 2 // io.netty.channel.ChannelHandlerContext ctx
        end local 1 // io.netty.channel.ChannelPromise promise
        end local 0 // io.netty.handler.ssl.SslHandler this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    3     0     this  Lio/netty/handler/ssl/SslHandler;
            0    3     1  promise  Lio/netty/channel/ChannelPromise;
            1    3     2      ctx  Lio/netty/channel/ChannelHandlerContext;
    RuntimeVisibleAnnotations: 
      java.lang.Deprecated()
    MethodParameters:
         Name  Flags
      promise  final

  public io.netty.util.concurrent.Future<io.netty.channel.Channel> sslCloseFuture();
    descriptor: ()Lio/netty/util/concurrent/Future;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // io.netty.handler.ssl.SslHandler this
         0: .line 669
            aload 0 /* this */
            getfield io.netty.handler.ssl.SslHandler.sslClosePromise:Lio/netty/handler/ssl/SslHandler$LazyChannelPromise;
            areturn
        end local 0 // io.netty.handler.ssl.SslHandler this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lio/netty/handler/ssl/SslHandler;
    Signature: ()Lio/netty/util/concurrent/Future<Lio/netty/channel/Channel;>;

  public void handlerRemoved0(io.netty.channel.ChannelHandlerContext);
    descriptor: (Lio/netty/channel/ChannelHandlerContext;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=2, args_size=2
        start local 0 // io.netty.handler.ssl.SslHandler this
        start local 1 // io.netty.channel.ChannelHandlerContext ctx
         0: .line 674
            aload 0 /* this */
            getfield io.netty.handler.ssl.SslHandler.pendingUnencryptedWrites:Lio/netty/handler/ssl/SslHandler$SslHandlerCoalescingBufferQueue;
            invokevirtual io.netty.handler.ssl.SslHandler$SslHandlerCoalescingBufferQueue.isEmpty:()Z
            ifne 4
         1: .line 676
            aload 0 /* this */
            getfield io.netty.handler.ssl.SslHandler.pendingUnencryptedWrites:Lio/netty/handler/ssl/SslHandler$SslHandlerCoalescingBufferQueue;
            aload 1 /* ctx */
         2: .line 677
            new io.netty.channel.ChannelException
            dup
            ldc "Pending write on removal of SslHandler"
            invokespecial io.netty.channel.ChannelException.<init>:(Ljava/lang/String;)V
         3: .line 676
            invokevirtual io.netty.handler.ssl.SslHandler$SslHandlerCoalescingBufferQueue.releaseAndFailAll:(Lio/netty/channel/ChannelOutboundInvoker;Ljava/lang/Throwable;)V
         4: .line 679
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aconst_null
            putfield io.netty.handler.ssl.SslHandler.pendingUnencryptedWrites:Lio/netty/handler/ssl/SslHandler$SslHandlerCoalescingBufferQueue;
         5: .line 680
            aload 0 /* this */
            getfield io.netty.handler.ssl.SslHandler.engine:Ljavax/net/ssl/SSLEngine;
            instanceof io.netty.util.ReferenceCounted
            ifeq 7
         6: .line 681
            aload 0 /* this */
            getfield io.netty.handler.ssl.SslHandler.engine:Ljavax/net/ssl/SSLEngine;
            checkcast io.netty.util.ReferenceCounted
            invokeinterface io.netty.util.ReferenceCounted.release:()Z
            pop
         7: .line 683
      StackMap locals:
      StackMap stack:
            return
        end local 1 // io.netty.channel.ChannelHandlerContext ctx
        end local 0 // io.netty.handler.ssl.SslHandler this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    8     0  this  Lio/netty/handler/ssl/SslHandler;
            0    8     1   ctx  Lio/netty/channel/ChannelHandlerContext;
    Exceptions:
      throws java.lang.Exception
    MethodParameters:
      Name  Flags
      ctx   

  public void bind(io.netty.channel.ChannelHandlerContext, java.net.SocketAddress, io.netty.channel.ChannelPromise);
    descriptor: (Lio/netty/channel/ChannelHandlerContext;Ljava/net/SocketAddress;Lio/netty/channel/ChannelPromise;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=4, args_size=4
        start local 0 // io.netty.handler.ssl.SslHandler this
        start local 1 // io.netty.channel.ChannelHandlerContext ctx
        start local 2 // java.net.SocketAddress localAddress
        start local 3 // io.netty.channel.ChannelPromise promise
         0: .line 687
            aload 1 /* ctx */
            aload 2 /* localAddress */
            aload 3 /* promise */
            invokeinterface io.netty.channel.ChannelHandlerContext.bind:(Ljava/net/SocketAddress;Lio/netty/channel/ChannelPromise;)Lio/netty/channel/ChannelFuture;
            pop
         1: .line 688
            return
        end local 3 // io.netty.channel.ChannelPromise promise
        end local 2 // java.net.SocketAddress localAddress
        end local 1 // io.netty.channel.ChannelHandlerContext ctx
        end local 0 // io.netty.handler.ssl.SslHandler this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    2     0          this  Lio/netty/handler/ssl/SslHandler;
            0    2     1           ctx  Lio/netty/channel/ChannelHandlerContext;
            0    2     2  localAddress  Ljava/net/SocketAddress;
            0    2     3       promise  Lio/netty/channel/ChannelPromise;
    Exceptions:
      throws java.lang.Exception
    MethodParameters:
              Name  Flags
      ctx           
      localAddress  
      promise       

  public void connect(io.netty.channel.ChannelHandlerContext, java.net.SocketAddress, java.net.SocketAddress, io.netty.channel.ChannelPromise);
    descriptor: (Lio/netty/channel/ChannelHandlerContext;Ljava/net/SocketAddress;Ljava/net/SocketAddress;Lio/netty/channel/ChannelPromise;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=5, args_size=5
        start local 0 // io.netty.handler.ssl.SslHandler this
        start local 1 // io.netty.channel.ChannelHandlerContext ctx
        start local 2 // java.net.SocketAddress remoteAddress
        start local 3 // java.net.SocketAddress localAddress
        start local 4 // io.netty.channel.ChannelPromise promise
         0: .line 693
            aload 1 /* ctx */
            aload 2 /* remoteAddress */
            aload 3 /* localAddress */
            aload 4 /* promise */
            invokeinterface io.netty.channel.ChannelHandlerContext.connect:(Ljava/net/SocketAddress;Ljava/net/SocketAddress;Lio/netty/channel/ChannelPromise;)Lio/netty/channel/ChannelFuture;
            pop
         1: .line 694
            return
        end local 4 // io.netty.channel.ChannelPromise promise
        end local 3 // java.net.SocketAddress localAddress
        end local 2 // java.net.SocketAddress remoteAddress
        end local 1 // io.netty.channel.ChannelHandlerContext ctx
        end local 0 // io.netty.handler.ssl.SslHandler this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    2     0           this  Lio/netty/handler/ssl/SslHandler;
            0    2     1            ctx  Lio/netty/channel/ChannelHandlerContext;
            0    2     2  remoteAddress  Ljava/net/SocketAddress;
            0    2     3   localAddress  Ljava/net/SocketAddress;
            0    2     4        promise  Lio/netty/channel/ChannelPromise;
    Exceptions:
      throws java.lang.Exception
    MethodParameters:
               Name  Flags
      ctx            
      remoteAddress  
      localAddress   
      promise        

  public void deregister(io.netty.channel.ChannelHandlerContext, io.netty.channel.ChannelPromise);
    descriptor: (Lio/netty/channel/ChannelHandlerContext;Lio/netty/channel/ChannelPromise;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=3
        start local 0 // io.netty.handler.ssl.SslHandler this
        start local 1 // io.netty.channel.ChannelHandlerContext ctx
        start local 2 // io.netty.channel.ChannelPromise promise
         0: .line 698
            aload 1 /* ctx */
            aload 2 /* promise */
            invokeinterface io.netty.channel.ChannelHandlerContext.deregister:(Lio/netty/channel/ChannelPromise;)Lio/netty/channel/ChannelFuture;
            pop
         1: .line 699
            return
        end local 2 // io.netty.channel.ChannelPromise promise
        end local 1 // io.netty.channel.ChannelHandlerContext ctx
        end local 0 // io.netty.handler.ssl.SslHandler this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    2     0     this  Lio/netty/handler/ssl/SslHandler;
            0    2     1      ctx  Lio/netty/channel/ChannelHandlerContext;
            0    2     2  promise  Lio/netty/channel/ChannelPromise;
    Exceptions:
      throws java.lang.Exception
    MethodParameters:
         Name  Flags
      ctx      
      promise  

  public void disconnect(io.netty.channel.ChannelHandlerContext, io.netty.channel.ChannelPromise);
    descriptor: (Lio/netty/channel/ChannelHandlerContext;Lio/netty/channel/ChannelPromise;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // io.netty.handler.ssl.SslHandler this
        start local 1 // io.netty.channel.ChannelHandlerContext ctx
        start local 2 // io.netty.channel.ChannelPromise promise
         0: .line 704
            aload 0 /* this */
            aload 1 /* ctx */
            aload 2 /* promise */
            iconst_1
            invokevirtual io.netty.handler.ssl.SslHandler.closeOutboundAndChannel:(Lio/netty/channel/ChannelHandlerContext;Lio/netty/channel/ChannelPromise;Z)V
         1: .line 705
            return
        end local 2 // io.netty.channel.ChannelPromise promise
        end local 1 // io.netty.channel.ChannelHandlerContext ctx
        end local 0 // io.netty.handler.ssl.SslHandler this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    2     0     this  Lio/netty/handler/ssl/SslHandler;
            0    2     1      ctx  Lio/netty/channel/ChannelHandlerContext;
            0    2     2  promise  Lio/netty/channel/ChannelPromise;
    Exceptions:
      throws java.lang.Exception
    MethodParameters:
         Name  Flags
      ctx      final
      promise  final

  public void close(io.netty.channel.ChannelHandlerContext, io.netty.channel.ChannelPromise);
    descriptor: (Lio/netty/channel/ChannelHandlerContext;Lio/netty/channel/ChannelPromise;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // io.netty.handler.ssl.SslHandler this
        start local 1 // io.netty.channel.ChannelHandlerContext ctx
        start local 2 // io.netty.channel.ChannelPromise promise
         0: .line 710
            aload 0 /* this */
            aload 1 /* ctx */
            aload 2 /* promise */
            iconst_0
            invokevirtual io.netty.handler.ssl.SslHandler.closeOutboundAndChannel:(Lio/netty/channel/ChannelHandlerContext;Lio/netty/channel/ChannelPromise;Z)V
         1: .line 711
            return
        end local 2 // io.netty.channel.ChannelPromise promise
        end local 1 // io.netty.channel.ChannelHandlerContext ctx
        end local 0 // io.netty.handler.ssl.SslHandler this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    2     0     this  Lio/netty/handler/ssl/SslHandler;
            0    2     1      ctx  Lio/netty/channel/ChannelHandlerContext;
            0    2     2  promise  Lio/netty/channel/ChannelPromise;
    Exceptions:
      throws java.lang.Exception
    MethodParameters:
         Name  Flags
      ctx      final
      promise  final

  public void read(io.netty.channel.ChannelHandlerContext);
    descriptor: (Lio/netty/channel/ChannelHandlerContext;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // io.netty.handler.ssl.SslHandler this
        start local 1 // io.netty.channel.ChannelHandlerContext ctx
         0: .line 715
            aload 0 /* this */
            getfield io.netty.handler.ssl.SslHandler.handshakePromise:Lio/netty/util/concurrent/Promise;
            invokeinterface io.netty.util.concurrent.Promise.isDone:()Z
            ifne 2
         1: .line 716
            aload 0 /* this */
            iconst_1
            putfield io.netty.handler.ssl.SslHandler.readDuringHandshake:Z
         2: .line 719
      StackMap locals:
      StackMap stack:
            aload 1 /* ctx */
            invokeinterface io.netty.channel.ChannelHandlerContext.read:()Lio/netty/channel/ChannelHandlerContext;
            pop
         3: .line 720
            return
        end local 1 // io.netty.channel.ChannelHandlerContext ctx
        end local 0 // io.netty.handler.ssl.SslHandler this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Lio/netty/handler/ssl/SslHandler;
            0    4     1   ctx  Lio/netty/channel/ChannelHandlerContext;
    Exceptions:
      throws java.lang.Exception
    MethodParameters:
      Name  Flags
      ctx   

  private static java.lang.IllegalStateException newPendingWritesNullException();
    descriptor: ()Ljava/lang/IllegalStateException;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=3, locals=0, args_size=0
         0: .line 723
            new java.lang.IllegalStateException
            dup
            ldc "pendingUnencryptedWrites is null, handlerRemoved0 called?"
            invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public void write(io.netty.channel.ChannelHandlerContext, java.lang.Object, io.netty.channel.ChannelPromise);
    descriptor: (Lio/netty/channel/ChannelHandlerContext;Ljava/lang/Object;Lio/netty/channel/ChannelPromise;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=7, locals=5, args_size=4
        start local 0 // io.netty.handler.ssl.SslHandler this
        start local 1 // io.netty.channel.ChannelHandlerContext ctx
        start local 2 // java.lang.Object msg
        start local 3 // io.netty.channel.ChannelPromise promise
         0: .line 728
            aload 2 /* msg */
            instanceof io.netty.buffer.ByteBuf
            ifne 5
         1: .line 729
            new io.netty.handler.codec.UnsupportedMessageTypeException
            dup
            aload 2 /* msg */
            iconst_1
            anewarray java.lang.Class
            dup
            iconst_0
            ldc Lio/netty/buffer/ByteBuf;
            aastore
            invokespecial io.netty.handler.codec.UnsupportedMessageTypeException.<init>:(Ljava/lang/Object;[Ljava/lang/Class;)V
            astore 4 /* exception */
        start local 4 // io.netty.handler.codec.UnsupportedMessageTypeException exception
         2: .line 730
            aload 2 /* msg */
            invokestatic io.netty.util.ReferenceCountUtil.safeRelease:(Ljava/lang/Object;)V
         3: .line 731
            aload 3 /* promise */
            aload 4 /* exception */
            invokeinterface io.netty.channel.ChannelPromise.setFailure:(Ljava/lang/Throwable;)Lio/netty/channel/ChannelPromise;
            pop
        end local 4 // io.netty.handler.codec.UnsupportedMessageTypeException exception
         4: .line 732
            goto 10
      StackMap locals:
      StackMap stack:
         5: aload 0 /* this */
            getfield io.netty.handler.ssl.SslHandler.pendingUnencryptedWrites:Lio/netty/handler/ssl/SslHandler$SslHandlerCoalescingBufferQueue;
            ifnonnull 9
         6: .line 733
            aload 2 /* msg */
            invokestatic io.netty.util.ReferenceCountUtil.safeRelease:(Ljava/lang/Object;)V
         7: .line 734
            aload 3 /* promise */
            invokestatic io.netty.handler.ssl.SslHandler.newPendingWritesNullException:()Ljava/lang/IllegalStateException;
            invokeinterface io.netty.channel.ChannelPromise.setFailure:(Ljava/lang/Throwable;)Lio/netty/channel/ChannelPromise;
            pop
         8: .line 735
            goto 10
         9: .line 736
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield io.netty.handler.ssl.SslHandler.pendingUnencryptedWrites:Lio/netty/handler/ssl/SslHandler$SslHandlerCoalescingBufferQueue;
            aload 2 /* msg */
            checkcast io.netty.buffer.ByteBuf
            aload 3 /* promise */
            invokevirtual io.netty.handler.ssl.SslHandler$SslHandlerCoalescingBufferQueue.add:(Lio/netty/buffer/ByteBuf;Lio/netty/channel/ChannelPromise;)V
        10: .line 738
      StackMap locals:
      StackMap stack:
            return
        end local 3 // io.netty.channel.ChannelPromise promise
        end local 2 // java.lang.Object msg
        end local 1 // io.netty.channel.ChannelHandlerContext ctx
        end local 0 // io.netty.handler.ssl.SslHandler this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   11     0       this  Lio/netty/handler/ssl/SslHandler;
            0   11     1        ctx  Lio/netty/channel/ChannelHandlerContext;
            0   11     2        msg  Ljava/lang/Object;
            0   11     3    promise  Lio/netty/channel/ChannelPromise;
            2    4     4  exception  Lio/netty/handler/codec/UnsupportedMessageTypeException;
    Exceptions:
      throws java.lang.Exception
    MethodParameters:
         Name  Flags
      ctx      final
      msg      
      promise  

  public void flush(io.netty.channel.ChannelHandlerContext);
    descriptor: (Lio/netty/channel/ChannelHandlerContext;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // io.netty.handler.ssl.SslHandler this
        start local 1 // io.netty.channel.ChannelHandlerContext ctx
         0: .line 744
            aload 0 /* this */
            getfield io.netty.handler.ssl.SslHandler.startTls:Z
            ifeq 5
            aload 0 /* this */
            getfield io.netty.handler.ssl.SslHandler.sentFirstMessage:Z
            ifne 5
         1: .line 745
            aload 0 /* this */
            iconst_1
            putfield io.netty.handler.ssl.SslHandler.sentFirstMessage:Z
         2: .line 746
            aload 0 /* this */
            getfield io.netty.handler.ssl.SslHandler.pendingUnencryptedWrites:Lio/netty/handler/ssl/SslHandler$SslHandlerCoalescingBufferQueue;
            aload 1 /* ctx */
            invokevirtual io.netty.handler.ssl.SslHandler$SslHandlerCoalescingBufferQueue.writeAndRemoveAll:(Lio/netty/channel/ChannelHandlerContext;)V
         3: .line 747
            aload 0 /* this */
            aload 1 /* ctx */
            invokevirtual io.netty.handler.ssl.SslHandler.forceFlush:(Lio/netty/channel/ChannelHandlerContext;)V
         4: .line 748
            return
         5: .line 752
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* ctx */
            invokevirtual io.netty.handler.ssl.SslHandler.wrapAndFlush:(Lio/netty/channel/ChannelHandlerContext;)V
         6: .line 753
            goto 10
      StackMap locals:
      StackMap stack: java.lang.Throwable
         7: astore 2 /* cause */
        start local 2 // java.lang.Throwable cause
         8: .line 754
            aload 0 /* this */
            aload 1 /* ctx */
            aload 2 /* cause */
            invokevirtual io.netty.handler.ssl.SslHandler.setHandshakeFailure:(Lio/netty/channel/ChannelHandlerContext;Ljava/lang/Throwable;)V
         9: .line 755
            aload 2 /* cause */
            invokestatic io.netty.util.internal.PlatformDependent.throwException:(Ljava/lang/Throwable;)V
        end local 2 // java.lang.Throwable cause
        10: .line 757
      StackMap locals:
      StackMap stack:
            return
        end local 1 // io.netty.channel.ChannelHandlerContext ctx
        end local 0 // io.netty.handler.ssl.SslHandler this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0   11     0   this  Lio/netty/handler/ssl/SslHandler;
            0   11     1    ctx  Lio/netty/channel/ChannelHandlerContext;
            8   10     2  cause  Ljava/lang/Throwable;
      Exception table:
        from    to  target  type
           5     6       7  Class java.lang.Throwable
    Exceptions:
      throws java.lang.Exception
    MethodParameters:
      Name  Flags
      ctx   

  private void wrapAndFlush(io.netty.channel.ChannelHandlerContext);
    descriptor: (Lio/netty/channel/ChannelHandlerContext;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // io.netty.handler.ssl.SslHandler this
        start local 1 // io.netty.channel.ChannelHandlerContext ctx
         0: .line 760
            aload 0 /* this */
            getfield io.netty.handler.ssl.SslHandler.pendingUnencryptedWrites:Lio/netty/handler/ssl/SslHandler$SslHandlerCoalescingBufferQueue;
            invokevirtual io.netty.handler.ssl.SslHandler$SslHandlerCoalescingBufferQueue.isEmpty:()Z
            ifeq 2
         1: .line 765
            aload 0 /* this */
            getfield io.netty.handler.ssl.SslHandler.pendingUnencryptedWrites:Lio/netty/handler/ssl/SslHandler$SslHandlerCoalescingBufferQueue;
            getstatic io.netty.buffer.Unpooled.EMPTY_BUFFER:Lio/netty/buffer/ByteBuf;
            aload 1 /* ctx */
            invokeinterface io.netty.channel.ChannelHandlerContext.newPromise:()Lio/netty/channel/ChannelPromise;
            invokevirtual io.netty.handler.ssl.SslHandler$SslHandlerCoalescingBufferQueue.add:(Lio/netty/buffer/ByteBuf;Lio/netty/channel/ChannelPromise;)V
         2: .line 767
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield io.netty.handler.ssl.SslHandler.handshakePromise:Lio/netty/util/concurrent/Promise;
            invokeinterface io.netty.util.concurrent.Promise.isDone:()Z
            ifne 4
         3: .line 768
            aload 0 /* this */
            iconst_1
            putfield io.netty.handler.ssl.SslHandler.flushedBeforeHandshake:Z
         4: .line 771
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* ctx */
            iconst_0
            invokevirtual io.netty.handler.ssl.SslHandler.wrap:(Lio/netty/channel/ChannelHandlerContext;Z)V
         5: .line 772
            goto 9
      StackMap locals:
      StackMap stack: java.lang.Throwable
         6: astore 2
         7: .line 775
            aload 0 /* this */
            aload 1 /* ctx */
            invokevirtual io.netty.handler.ssl.SslHandler.forceFlush:(Lio/netty/channel/ChannelHandlerContext;)V
         8: .line 776
            aload 2
            athrow
         9: .line 775
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* ctx */
            invokevirtual io.netty.handler.ssl.SslHandler.forceFlush:(Lio/netty/channel/ChannelHandlerContext;)V
        10: .line 777
            return
        end local 1 // io.netty.channel.ChannelHandlerContext ctx
        end local 0 // io.netty.handler.ssl.SslHandler this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   11     0  this  Lio/netty/handler/ssl/SslHandler;
            0   11     1   ctx  Lio/netty/channel/ChannelHandlerContext;
      Exception table:
        from    to  target  type
           4     6       6  any
    Exceptions:
      throws javax.net.ssl.SSLException
    MethodParameters:
      Name  Flags
      ctx   

  private void wrap(io.netty.channel.ChannelHandlerContext, boolean);
    descriptor: (Lio/netty/channel/ChannelHandlerContext;Z)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=6, locals=11, args_size=3
        start local 0 // io.netty.handler.ssl.SslHandler this
        start local 1 // io.netty.channel.ChannelHandlerContext ctx
        start local 2 // boolean inUnwrap
         0: .line 781
            aconst_null
            astore 3 /* out */
        start local 3 // io.netty.buffer.ByteBuf out
         1: .line 782
            aconst_null
            astore 4 /* promise */
        start local 4 // io.netty.channel.ChannelPromise promise
         2: .line 783
            aload 1 /* ctx */
            invokeinterface io.netty.channel.ChannelHandlerContext.alloc:()Lio/netty/buffer/ByteBufAllocator;
            astore 5 /* alloc */
        start local 5 // io.netty.buffer.ByteBufAllocator alloc
         3: .line 784
            iconst_0
            istore 6 /* needUnwrap */
        start local 6 // boolean needUnwrap
         4: .line 785
            aconst_null
            astore 7 /* buf */
        start local 7 // io.netty.buffer.ByteBuf buf
         5: .line 787
            aload 0 /* this */
            getfield io.netty.handler.ssl.SslHandler.wrapDataSize:I
            istore 8 /* wrapDataSize */
        start local 8 // int wrapDataSize
         6: .line 790
            goto 50
         7: .line 791
      StackMap locals: io.netty.handler.ssl.SslHandler io.netty.channel.ChannelHandlerContext int io.netty.buffer.ByteBuf io.netty.channel.ChannelPromise io.netty.buffer.ByteBufAllocator int io.netty.buffer.ByteBuf int
      StackMap stack:
            aload 1 /* ctx */
            invokeinterface io.netty.channel.ChannelHandlerContext.newPromise:()Lio/netty/channel/ChannelPromise;
            astore 4 /* promise */
         8: .line 792
            iload 8 /* wrapDataSize */
            ifle 10
         9: .line 793
            aload 0 /* this */
            getfield io.netty.handler.ssl.SslHandler.pendingUnencryptedWrites:Lio/netty/handler/ssl/SslHandler$SslHandlerCoalescingBufferQueue;
            aload 5 /* alloc */
            iload 8 /* wrapDataSize */
            aload 4 /* promise */
            invokevirtual io.netty.handler.ssl.SslHandler$SslHandlerCoalescingBufferQueue.remove:(Lio/netty/buffer/ByteBufAllocator;ILio/netty/channel/ChannelPromise;)Lio/netty/buffer/ByteBuf;
            goto 11
        10: .line 794
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield io.netty.handler.ssl.SslHandler.pendingUnencryptedWrites:Lio/netty/handler/ssl/SslHandler$SslHandlerCoalescingBufferQueue;
            aload 4 /* promise */
            invokevirtual io.netty.handler.ssl.SslHandler$SslHandlerCoalescingBufferQueue.removeFirst:(Lio/netty/channel/ChannelPromise;)Lio/netty/buffer/ByteBuf;
        11: .line 792
      StackMap locals:
      StackMap stack: io.netty.buffer.ByteBuf
            astore 7 /* buf */
        12: .line 795
            aload 7 /* buf */
            ifnonnull 14
        13: .line 796
            goto 57
        14: .line 799
      StackMap locals:
      StackMap stack:
            aload 3 /* out */
            ifnonnull 16
        15: .line 800
            aload 0 /* this */
            aload 1 /* ctx */
            aload 7 /* buf */
            invokevirtual io.netty.buffer.ByteBuf.readableBytes:()I
            aload 7 /* buf */
            invokevirtual io.netty.buffer.ByteBuf.nioBufferCount:()I
            invokevirtual io.netty.handler.ssl.SslHandler.allocateOutNetBuf:(Lio/netty/channel/ChannelHandlerContext;II)Lio/netty/buffer/ByteBuf;
            astore 3 /* out */
        16: .line 803
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 5 /* alloc */
            aload 0 /* this */
            getfield io.netty.handler.ssl.SslHandler.engine:Ljavax/net/ssl/SSLEngine;
            aload 7 /* buf */
            aload 3 /* out */
            invokevirtual io.netty.handler.ssl.SslHandler.wrap:(Lio/netty/buffer/ByteBufAllocator;Ljavax/net/ssl/SSLEngine;Lio/netty/buffer/ByteBuf;Lio/netty/buffer/ByteBuf;)Ljavax/net/ssl/SSLEngineResult;
            astore 9 /* result */
        start local 9 // javax.net.ssl.SSLEngineResult result
        17: .line 805
            aload 9 /* result */
            invokevirtual javax.net.ssl.SSLEngineResult.getStatus:()Ljavax/net/ssl/SSLEngineResult$Status;
            getstatic javax.net.ssl.SSLEngineResult$Status.CLOSED:Ljavax/net/ssl/SSLEngineResult$Status;
            if_acmpne 27
        18: .line 806
            aload 7 /* buf */
            invokevirtual io.netty.buffer.ByteBuf.release:()Z
            pop
        19: .line 807
            aconst_null
            astore 7 /* buf */
        20: .line 808
            aload 4 /* promise */
            getstatic io.netty.handler.ssl.SslHandler.SSLENGINE_CLOSED:Ljavax/net/ssl/SSLException;
            invokeinterface io.netty.channel.ChannelPromise.tryFailure:(Ljava/lang/Throwable;)Z
            pop
        21: .line 809
            aconst_null
            astore 4 /* promise */
        22: .line 812
            aload 0 /* this */
            getfield io.netty.handler.ssl.SslHandler.pendingUnencryptedWrites:Lio/netty/handler/ssl/SslHandler$SslHandlerCoalescingBufferQueue;
            aload 1 /* ctx */
            getstatic io.netty.handler.ssl.SslHandler.SSLENGINE_CLOSED:Ljavax/net/ssl/SSLException;
            invokevirtual io.netty.handler.ssl.SslHandler$SslHandlerCoalescingBufferQueue.releaseAndFailAll:(Lio/netty/channel/ChannelOutboundInvoker;Ljava/lang/Throwable;)V
        23: .line 851
            aload 7 /* buf */
            ifnull 25
        24: .line 852
            aload 7 /* buf */
            invokevirtual io.netty.buffer.ByteBuf.release:()Z
            pop
        25: .line 854
      StackMap locals: javax.net.ssl.SSLEngineResult
      StackMap stack:
            aload 0 /* this */
            aload 1 /* ctx */
            aload 3 /* out */
            aload 4 /* promise */
            iload 2 /* inUnwrap */
            iload 6 /* needUnwrap */
            invokevirtual io.netty.handler.ssl.SslHandler.finishWrap:(Lio/netty/channel/ChannelHandlerContext;Lio/netty/buffer/ByteBuf;Lio/netty/channel/ChannelPromise;ZZ)V
        26: .line 813
            return
        27: .line 815
      StackMap locals:
      StackMap stack:
            aload 7 /* buf */
            invokevirtual io.netty.buffer.ByteBuf.isReadable:()Z
            ifeq 31
        28: .line 816
            aload 0 /* this */
            getfield io.netty.handler.ssl.SslHandler.pendingUnencryptedWrites:Lio/netty/handler/ssl/SslHandler$SslHandlerCoalescingBufferQueue;
            aload 7 /* buf */
            aload 4 /* promise */
            invokevirtual io.netty.handler.ssl.SslHandler$SslHandlerCoalescingBufferQueue.addFirst:(Lio/netty/buffer/ByteBuf;Lio/netty/channel/ChannelPromise;)V
        29: .line 819
            aconst_null
            astore 4 /* promise */
        30: .line 820
            goto 32
        31: .line 821
      StackMap locals:
      StackMap stack:
            aload 7 /* buf */
            invokevirtual io.netty.buffer.ByteBuf.release:()Z
            pop
        32: .line 823
      StackMap locals:
      StackMap stack:
            aconst_null
            astore 7 /* buf */
        33: .line 825
            invokestatic io.netty.handler.ssl.SslHandler.$SWITCH_TABLE$javax$net$ssl$SSLEngineResult$HandshakeStatus:()[I
            aload 9 /* 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: 37
                    2: 36
                    3: 34
                    4: 38
                    5: 42
              default: 47
          }
        34: .line 827
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual io.netty.handler.ssl.SslHandler.runDelegatedTasks:()V
        35: .line 828
            goto 50
        36: .line 830
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual io.netty.handler.ssl.SslHandler.setHandshakeSuccess:()V
        37: .line 833
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual io.netty.handler.ssl.SslHandler.setHandshakeSuccessIfStillHandshaking:()Z
            pop
        38: .line 836
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* ctx */
            aload 3 /* out */
            aload 4 /* promise */
            iload 2 /* inUnwrap */
            iconst_0
            invokevirtual io.netty.handler.ssl.SslHandler.finishWrap:(Lio/netty/channel/ChannelHandlerContext;Lio/netty/buffer/ByteBuf;Lio/netty/channel/ChannelPromise;ZZ)V
        39: .line 837
            aconst_null
            astore 4 /* promise */
        40: .line 838
            aconst_null
            astore 3 /* out */
        41: .line 839
            goto 50
        42: .line 841
      StackMap locals:
      StackMap stack:
            iconst_1
            istore 6 /* needUnwrap */
        43: .line 851
            aload 7 /* buf */
            ifnull 45
        44: .line 852
            aload 7 /* buf */
            invokevirtual io.netty.buffer.ByteBuf.release:()Z
            pop
        45: .line 854
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* ctx */
            aload 3 /* out */
            aload 4 /* promise */
            iload 2 /* inUnwrap */
            iload 6 /* needUnwrap */
            invokevirtual io.netty.handler.ssl.SslHandler.finishWrap:(Lio/netty/channel/ChannelHandlerContext;Lio/netty/buffer/ByteBuf;Lio/netty/channel/ChannelPromise;ZZ)V
        46: .line 842
            return
        47: .line 844
      StackMap locals:
      StackMap stack:
            new java.lang.IllegalStateException
            dup
        48: .line 845
            new java.lang.StringBuilder
            dup
            ldc "Unknown handshake status: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 9 /* result */
            invokevirtual javax.net.ssl.SSLEngineResult.getHandshakeStatus:()Ljavax/net/ssl/SSLEngineResult$HandshakeStatus;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        49: .line 844
            invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
            athrow
        end local 9 // javax.net.ssl.SSLEngineResult result
        50: .line 790
      StackMap locals:
      StackMap stack:
            aload 1 /* ctx */
            invokeinterface io.netty.channel.ChannelHandlerContext.isRemoved:()Z
            ifeq 7
        end local 8 // int wrapDataSize
        51: .line 849
            goto 57
      StackMap locals: io.netty.handler.ssl.SslHandler io.netty.channel.ChannelHandlerContext int io.netty.buffer.ByteBuf io.netty.channel.ChannelPromise io.netty.buffer.ByteBufAllocator int io.netty.buffer.ByteBuf
      StackMap stack: java.lang.Throwable
        52: astore 10
        53: .line 851
            aload 7 /* buf */
            ifnull 55
        54: .line 852
            aload 7 /* buf */
            invokevirtual io.netty.buffer.ByteBuf.release:()Z
            pop
        55: .line 854
      StackMap locals: io.netty.handler.ssl.SslHandler io.netty.channel.ChannelHandlerContext int io.netty.buffer.ByteBuf io.netty.channel.ChannelPromise io.netty.buffer.ByteBufAllocator int io.netty.buffer.ByteBuf top top java.lang.Throwable
      StackMap stack:
            aload 0 /* this */
            aload 1 /* ctx */
            aload 3 /* out */
            aload 4 /* promise */
            iload 2 /* inUnwrap */
            iload 6 /* needUnwrap */
            invokevirtual io.netty.handler.ssl.SslHandler.finishWrap:(Lio/netty/channel/ChannelHandlerContext;Lio/netty/buffer/ByteBuf;Lio/netty/channel/ChannelPromise;ZZ)V
        56: .line 855
            aload 10
            athrow
        57: .line 851
      StackMap locals: io.netty.handler.ssl.SslHandler io.netty.channel.ChannelHandlerContext int io.netty.buffer.ByteBuf io.netty.channel.ChannelPromise io.netty.buffer.ByteBufAllocator int io.netty.buffer.ByteBuf
      StackMap stack:
            aload 7 /* buf */
            ifnull 59
        58: .line 852
            aload 7 /* buf */
            invokevirtual io.netty.buffer.ByteBuf.release:()Z
            pop
        59: .line 854
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* ctx */
            aload 3 /* out */
            aload 4 /* promise */
            iload 2 /* inUnwrap */
            iload 6 /* needUnwrap */
            invokevirtual io.netty.handler.ssl.SslHandler.finishWrap:(Lio/netty/channel/ChannelHandlerContext;Lio/netty/buffer/ByteBuf;Lio/netty/channel/ChannelPromise;ZZ)V
        60: .line 856
            return
        end local 7 // io.netty.buffer.ByteBuf buf
        end local 6 // boolean needUnwrap
        end local 5 // io.netty.buffer.ByteBufAllocator alloc
        end local 4 // io.netty.channel.ChannelPromise promise
        end local 3 // io.netty.buffer.ByteBuf out
        end local 2 // boolean inUnwrap
        end local 1 // io.netty.channel.ChannelHandlerContext ctx
        end local 0 // io.netty.handler.ssl.SslHandler this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0   61     0          this  Lio/netty/handler/ssl/SslHandler;
            0   61     1           ctx  Lio/netty/channel/ChannelHandlerContext;
            0   61     2      inUnwrap  Z
            1   61     3           out  Lio/netty/buffer/ByteBuf;
            2   61     4       promise  Lio/netty/channel/ChannelPromise;
            3   61     5         alloc  Lio/netty/buffer/ByteBufAllocator;
            4   61     6    needUnwrap  Z
            5   61     7           buf  Lio/netty/buffer/ByteBuf;
            6   51     8  wrapDataSize  I
           17   50     9        result  Ljavax/net/ssl/SSLEngineResult;
      Exception table:
        from    to  target  type
           5    23      52  any
          27    43      52  any
          47    52      52  any
    Exceptions:
      throws javax.net.ssl.SSLException
    MethodParameters:
          Name  Flags
      ctx       
      inUnwrap  

  private void finishWrap(io.netty.channel.ChannelHandlerContext, io.netty.buffer.ByteBuf, io.netty.channel.ChannelPromise, boolean, boolean);
    descriptor: (Lio/netty/channel/ChannelHandlerContext;Lio/netty/buffer/ByteBuf;Lio/netty/channel/ChannelPromise;ZZ)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=6, args_size=6
        start local 0 // io.netty.handler.ssl.SslHandler this
        start local 1 // io.netty.channel.ChannelHandlerContext ctx
        start local 2 // io.netty.buffer.ByteBuf out
        start local 3 // io.netty.channel.ChannelPromise promise
        start local 4 // boolean inUnwrap
        start local 5 // boolean needUnwrap
         0: .line 860
            aload 2 /* out */
            ifnonnull 3
         1: .line 861
            getstatic io.netty.buffer.Unpooled.EMPTY_BUFFER:Lio/netty/buffer/ByteBuf;
            astore 2 /* out */
         2: .line 862
            goto 6
      StackMap locals:
      StackMap stack:
         3: aload 2 /* out */
            invokevirtual io.netty.buffer.ByteBuf.isReadable:()Z
            ifne 6
         4: .line 863
            aload 2 /* out */
            invokevirtual io.netty.buffer.ByteBuf.release:()Z
            pop
         5: .line 864
            getstatic io.netty.buffer.Unpooled.EMPTY_BUFFER:Lio/netty/buffer/ByteBuf;
            astore 2 /* out */
         6: .line 867
      StackMap locals:
      StackMap stack:
            aload 3 /* promise */
            ifnull 9
         7: .line 868
            aload 1 /* ctx */
            aload 2 /* out */
            aload 3 /* promise */
            invokeinterface io.netty.channel.ChannelHandlerContext.write:(Ljava/lang/Object;Lio/netty/channel/ChannelPromise;)Lio/netty/channel/ChannelFuture;
            pop
         8: .line 869
            goto 10
         9: .line 870
      StackMap locals:
      StackMap stack:
            aload 1 /* ctx */
            aload 2 /* out */
            invokeinterface io.netty.channel.ChannelHandlerContext.write:(Ljava/lang/Object;)Lio/netty/channel/ChannelFuture;
            pop
        10: .line 873
      StackMap locals:
      StackMap stack:
            iload 4 /* inUnwrap */
            ifeq 12
        11: .line 874
            aload 0 /* this */
            iconst_1
            putfield io.netty.handler.ssl.SslHandler.needsFlush:Z
        12: .line 877
      StackMap locals:
      StackMap stack:
            iload 5 /* needUnwrap */
            ifeq 14
        13: .line 880
            aload 0 /* this */
            aload 1 /* ctx */
            invokevirtual io.netty.handler.ssl.SslHandler.readIfNeeded:(Lio/netty/channel/ChannelHandlerContext;)V
        14: .line 882
      StackMap locals:
      StackMap stack:
            return
        end local 5 // boolean needUnwrap
        end local 4 // boolean inUnwrap
        end local 3 // io.netty.channel.ChannelPromise promise
        end local 2 // io.netty.buffer.ByteBuf out
        end local 1 // io.netty.channel.ChannelHandlerContext ctx
        end local 0 // io.netty.handler.ssl.SslHandler this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   15     0        this  Lio/netty/handler/ssl/SslHandler;
            0   15     1         ctx  Lio/netty/channel/ChannelHandlerContext;
            0   15     2         out  Lio/netty/buffer/ByteBuf;
            0   15     3     promise  Lio/netty/channel/ChannelPromise;
            0   15     4    inUnwrap  Z
            0   15     5  needUnwrap  Z
    MethodParameters:
            Name  Flags
      ctx         
      out         
      promise     
      inUnwrap    
      needUnwrap  

  private boolean wrapNonAppData(io.netty.channel.ChannelHandlerContext, boolean);
    descriptor: (Lio/netty/channel/ChannelHandlerContext;Z)Z
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=7, args_size=3
        start local 0 // io.netty.handler.ssl.SslHandler this
        start local 1 // io.netty.channel.ChannelHandlerContext ctx
        start local 2 // boolean inUnwrap
         0: .line 891
            aconst_null
            astore 3 /* out */
        start local 3 // io.netty.buffer.ByteBuf out
         1: .line 892
            aload 1 /* ctx */
            invokeinterface io.netty.channel.ChannelHandlerContext.alloc:()Lio/netty/buffer/ByteBufAllocator;
            astore 4 /* alloc */
        start local 4 // io.netty.buffer.ByteBufAllocator alloc
         2: .line 896
            goto 36
         3: .line 897
      StackMap locals: io.netty.buffer.ByteBuf io.netty.buffer.ByteBufAllocator
      StackMap stack:
            aload 3 /* out */
            ifnonnull 5
         4: .line 901
            aload 0 /* this */
            aload 1 /* ctx */
            sipush 2048
            iconst_1
            invokevirtual io.netty.handler.ssl.SslHandler.allocateOutNetBuf:(Lio/netty/channel/ChannelHandlerContext;II)Lio/netty/buffer/ByteBuf;
            astore 3 /* out */
         5: .line 903
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 4 /* alloc */
            aload 0 /* this */
            getfield io.netty.handler.ssl.SslHandler.engine:Ljavax/net/ssl/SSLEngine;
            getstatic io.netty.buffer.Unpooled.EMPTY_BUFFER:Lio/netty/buffer/ByteBuf;
            aload 3 /* out */
            invokevirtual io.netty.handler.ssl.SslHandler.wrap:(Lio/netty/buffer/ByteBufAllocator;Ljavax/net/ssl/SSLEngine;Lio/netty/buffer/ByteBuf;Lio/netty/buffer/ByteBuf;)Ljavax/net/ssl/SSLEngineResult;
            astore 5 /* result */
        start local 5 // javax.net.ssl.SSLEngineResult result
         6: .line 905
            aload 5 /* result */
            invokevirtual javax.net.ssl.SSLEngineResult.bytesProduced:()I
            ifle 11
         7: .line 906
            aload 1 /* ctx */
            aload 3 /* out */
            invokeinterface io.netty.channel.ChannelHandlerContext.write:(Ljava/lang/Object;)Lio/netty/channel/ChannelFuture;
            pop
         8: .line 907
            iload 2 /* inUnwrap */
            ifeq 10
         9: .line 908
            aload 0 /* this */
            iconst_1
            putfield io.netty.handler.ssl.SslHandler.needsFlush:Z
        10: .line 910
      StackMap locals: javax.net.ssl.SSLEngineResult
      StackMap stack:
            aconst_null
            astore 3 /* out */
        11: .line 913
      StackMap locals:
      StackMap stack:
            invokestatic io.netty.handler.ssl.SslHandler.$SWITCH_TABLE$javax$net$ssl$SSLEngineResult$HandshakeStatus:()[I
            aload 5 /* 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: 25
                    2: 12
                    3: 16
                    4: 24
                    5: 18
              default: 31
          }
        12: .line 915
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual io.netty.handler.ssl.SslHandler.setHandshakeSuccess:()V
        13: .line 955
            aload 3 /* out */
            ifnull 15
        14: .line 956
            aload 3 /* out */
            invokevirtual io.netty.buffer.ByteBuf.release:()Z
            pop
        15: .line 916
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
        16: .line 918
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual io.netty.handler.ssl.SslHandler.runDelegatedTasks:()V
        17: .line 919
            goto 32
        18: .line 921
      StackMap locals:
      StackMap stack:
            iload 2 /* inUnwrap */
            ifeq 22
        19: .line 955
            aload 3 /* out */
            ifnull 21
        20: .line 956
            aload 3 /* out */
            invokevirtual io.netty.buffer.ByteBuf.release:()Z
            pop
        21: .line 925
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
        22: .line 928
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* ctx */
            invokevirtual io.netty.handler.ssl.SslHandler.unwrapNonAppData:(Lio/netty/channel/ChannelHandlerContext;)V
        23: .line 929
            goto 32
        24: .line 931
      StackMap locals:
      StackMap stack:
            goto 32
        25: .line 933
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual io.netty.handler.ssl.SslHandler.setHandshakeSuccessIfStillHandshaking:()Z
            pop
        26: .line 936
            iload 2 /* inUnwrap */
            ifne 28
        27: .line 937
            aload 0 /* this */
            aload 1 /* ctx */
            invokevirtual io.netty.handler.ssl.SslHandler.unwrapNonAppData:(Lio/netty/channel/ChannelHandlerContext;)V
        28: .line 955
      StackMap locals:
      StackMap stack:
            aload 3 /* out */
            ifnull 30
        29: .line 956
            aload 3 /* out */
            invokevirtual io.netty.buffer.ByteBuf.release:()Z
            pop
        30: .line 939
      StackMap locals:
      StackMap stack:
            iconst_1
            ireturn
        31: .line 941
      StackMap locals:
      StackMap stack:
            new java.lang.IllegalStateException
            dup
            new java.lang.StringBuilder
            dup
            ldc "Unknown handshake status: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 5 /* result */
            invokevirtual javax.net.ssl.SSLEngineResult.getHandshakeStatus:()Ljavax/net/ssl/SSLEngineResult$HandshakeStatus;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
            athrow
        32: .line 944
      StackMap locals:
      StackMap stack:
            aload 5 /* result */
            invokevirtual javax.net.ssl.SSLEngineResult.bytesProduced:()I
            ifne 34
        33: .line 945
            goto 42
        34: .line 950
      StackMap locals:
      StackMap stack:
            aload 5 /* result */
            invokevirtual javax.net.ssl.SSLEngineResult.bytesConsumed:()I
            ifne 36
            aload 5 /* 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_acmpne 36
        35: .line 951
            goto 42
        end local 5 // javax.net.ssl.SSLEngineResult result
        36: .line 896
      StackMap locals:
      StackMap stack:
            aload 1 /* ctx */
            invokeinterface io.netty.channel.ChannelHandlerContext.isRemoved:()Z
            ifeq 3
        37: .line 954
            goto 42
      StackMap locals:
      StackMap stack: java.lang.Throwable
        38: astore 6
        39: .line 955
            aload 3 /* out */
            ifnull 41
        40: .line 956
            aload 3 /* out */
            invokevirtual io.netty.buffer.ByteBuf.release:()Z
            pop
        41: .line 958
      StackMap locals: io.netty.handler.ssl.SslHandler io.netty.channel.ChannelHandlerContext int io.netty.buffer.ByteBuf io.netty.buffer.ByteBufAllocator top java.lang.Throwable
      StackMap stack:
            aload 6
            athrow
        42: .line 955
      StackMap locals: io.netty.handler.ssl.SslHandler io.netty.channel.ChannelHandlerContext int io.netty.buffer.ByteBuf io.netty.buffer.ByteBufAllocator
      StackMap stack:
            aload 3 /* out */
            ifnull 44
        43: .line 956
            aload 3 /* out */
            invokevirtual io.netty.buffer.ByteBuf.release:()Z
            pop
        44: .line 959
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
        end local 4 // io.netty.buffer.ByteBufAllocator alloc
        end local 3 // io.netty.buffer.ByteBuf out
        end local 2 // boolean inUnwrap
        end local 1 // io.netty.channel.ChannelHandlerContext ctx
        end local 0 // io.netty.handler.ssl.SslHandler this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   45     0      this  Lio/netty/handler/ssl/SslHandler;
            0   45     1       ctx  Lio/netty/channel/ChannelHandlerContext;
            0   45     2  inUnwrap  Z
            1   45     3       out  Lio/netty/buffer/ByteBuf;
            2   45     4     alloc  Lio/netty/buffer/ByteBufAllocator;
            6   36     5    result  Ljavax/net/ssl/SSLEngineResult;
      Exception table:
        from    to  target  type
           2    13      38  any
          16    19      38  any
          22    28      38  any
          31    38      38  any
    Exceptions:
      throws javax.net.ssl.SSLException
    MethodParameters:
          Name  Flags
      ctx       
      inUnwrap  

  private javax.net.ssl.SSLEngineResult wrap(io.netty.buffer.ByteBufAllocator, javax.net.ssl.SSLEngine, io.netty.buffer.ByteBuf, io.netty.buffer.ByteBuf);
    descriptor: (Lio/netty/buffer/ByteBufAllocator;Ljavax/net/ssl/SSLEngine;Lio/netty/buffer/ByteBuf;Lio/netty/buffer/ByteBuf;)Ljavax/net/ssl/SSLEngineResult;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=13, args_size=5
        start local 0 // io.netty.handler.ssl.SslHandler this
        start local 1 // io.netty.buffer.ByteBufAllocator alloc
        start local 2 // javax.net.ssl.SSLEngine engine
        start local 3 // io.netty.buffer.ByteBuf in
        start local 4 // io.netty.buffer.ByteBuf out
         0: .line 964
            aconst_null
            astore 5 /* newDirectIn */
        start local 5 // io.netty.buffer.ByteBuf newDirectIn
         1: .line 966
            aload 3 /* in */
            invokevirtual io.netty.buffer.ByteBuf.readerIndex:()I
            istore 6 /* readerIndex */
        start local 6 // int readerIndex
         2: .line 967
            aload 3 /* in */
            invokevirtual io.netty.buffer.ByteBuf.readableBytes:()I
            istore 7 /* readableBytes */
        start local 7 // int readableBytes
         3: .line 972
            aload 3 /* in */
            invokevirtual io.netty.buffer.ByteBuf.isDirect:()Z
            ifne 4
            aload 0 /* this */
            getfield io.netty.handler.ssl.SslHandler.engineType:Lio/netty/handler/ssl/SslHandler$SslEngineType;
            getfield io.netty.handler.ssl.SslHandler$SslEngineType.wantsDirectBuffer:Z
            ifne 10
         4: .line 977
      StackMap locals: io.netty.buffer.ByteBuf int int
      StackMap stack:
            aload 3 /* in */
            instanceof io.netty.buffer.CompositeByteBuf
            ifne 8
            aload 3 /* in */
            invokevirtual io.netty.buffer.ByteBuf.nioBufferCount:()I
            iconst_1
            if_icmpne 8
         5: .line 978
            aload 0 /* this */
            getfield io.netty.handler.ssl.SslHandler.singleBuffer:[Ljava/nio/ByteBuffer;
            astore 8 /* in0 */
        start local 8 // java.nio.ByteBuffer[] in0
         6: .line 981
            aload 8 /* in0 */
            iconst_0
            aload 3 /* in */
            iload 6 /* readerIndex */
            iload 7 /* readableBytes */
            invokevirtual io.netty.buffer.ByteBuf.internalNioBuffer:(II)Ljava/nio/ByteBuffer;
            aastore
         7: .line 982
            goto 14
        end local 8 // java.nio.ByteBuffer[] in0
         8: .line 983
      StackMap locals:
      StackMap stack:
            aload 3 /* in */
            invokevirtual io.netty.buffer.ByteBuf.nioBuffers:()[Ljava/nio/ByteBuffer;
            astore 8 /* in0 */
        start local 8 // java.nio.ByteBuffer[] in0
         9: .line 985
            goto 14
        end local 8 // java.nio.ByteBuffer[] in0
        10: .line 989
      StackMap locals:
      StackMap stack:
            aload 1 /* alloc */
            iload 7 /* readableBytes */
            invokeinterface io.netty.buffer.ByteBufAllocator.directBuffer:(I)Lio/netty/buffer/ByteBuf;
            astore 5 /* newDirectIn */
        11: .line 990
            aload 5 /* newDirectIn */
            aload 3 /* in */
            iload 6 /* readerIndex */
            iload 7 /* readableBytes */
            invokevirtual io.netty.buffer.ByteBuf.writeBytes:(Lio/netty/buffer/ByteBuf;II)Lio/netty/buffer/ByteBuf;
            pop
        12: .line 991
            aload 0 /* this */
            getfield io.netty.handler.ssl.SslHandler.singleBuffer:[Ljava/nio/ByteBuffer;
            astore 8 /* in0 */
        start local 8 // java.nio.ByteBuffer[] in0
        13: .line 992
            aload 8 /* in0 */
            iconst_0
            aload 5 /* newDirectIn */
            aload 5 /* newDirectIn */
            invokevirtual io.netty.buffer.ByteBuf.readerIndex:()I
            iload 7 /* readableBytes */
            invokevirtual io.netty.buffer.ByteBuf.internalNioBuffer:(II)Ljava/nio/ByteBuffer;
            aastore
        14: .line 996
      StackMap locals: java.nio.ByteBuffer[]
      StackMap stack:
            aload 4 /* out */
            aload 4 /* out */
            invokevirtual io.netty.buffer.ByteBuf.writerIndex:()I
            aload 4 /* out */
            invokevirtual io.netty.buffer.ByteBuf.writableBytes:()I
            invokevirtual io.netty.buffer.ByteBuf.nioBuffer:(II)Ljava/nio/ByteBuffer;
            astore 9 /* out0 */
        start local 9 // java.nio.ByteBuffer out0
        15: .line 997
            aload 2 /* engine */
            aload 8 /* in0 */
            aload 9 /* out0 */
            invokevirtual javax.net.ssl.SSLEngine.wrap:([Ljava/nio/ByteBuffer;Ljava/nio/ByteBuffer;)Ljavax/net/ssl/SSLEngineResult;
            astore 10 /* result */
        start local 10 // javax.net.ssl.SSLEngineResult result
        16: .line 998
            aload 3 /* in */
            aload 10 /* result */
            invokevirtual javax.net.ssl.SSLEngineResult.bytesConsumed:()I
            invokevirtual io.netty.buffer.ByteBuf.skipBytes:(I)Lio/netty/buffer/ByteBuf;
            pop
        17: .line 999
            aload 4 /* out */
            aload 4 /* out */
            invokevirtual io.netty.buffer.ByteBuf.writerIndex:()I
            aload 10 /* result */
            invokevirtual javax.net.ssl.SSLEngineResult.bytesProduced:()I
            iadd
            invokevirtual io.netty.buffer.ByteBuf.writerIndex:(I)Lio/netty/buffer/ByteBuf;
            pop
        18: .line 1001
            invokestatic io.netty.handler.ssl.SslHandler.$SWITCH_TABLE$javax$net$ssl$SSLEngineResult$Status:()[I
            aload 10 /* result */
            invokevirtual javax.net.ssl.SSLEngineResult.getStatus:()Ljavax/net/ssl/SSLEngineResult$Status;
            invokevirtual javax.net.ssl.SSLEngineResult$Status.ordinal:()I
            iaload
            tableswitch { // 2 - 2
                    2: 19
              default: 21
          }
        19: .line 1003
      StackMap locals: java.nio.ByteBuffer javax.net.ssl.SSLEngineResult
      StackMap stack:
            aload 4 /* out */
            aload 2 /* engine */
            invokevirtual javax.net.ssl.SSLEngine.getSession:()Ljavax/net/ssl/SSLSession;
            invokeinterface javax.net.ssl.SSLSession.getPacketBufferSize:()I
            invokevirtual io.netty.buffer.ByteBuf.ensureWritable:(I)Lio/netty/buffer/ByteBuf;
            pop
        20: .line 1004
            goto 14
        21: .line 1006
      StackMap locals:
      StackMap stack:
            aload 10 /* result */
            astore 12
        22: .line 1011
            aload 0 /* this */
            getfield io.netty.handler.ssl.SslHandler.singleBuffer:[Ljava/nio/ByteBuffer;
            iconst_0
            aconst_null
            aastore
        23: .line 1013
            aload 5 /* newDirectIn */
            ifnull 25
        24: .line 1014
            aload 5 /* newDirectIn */
            invokevirtual io.netty.buffer.ByteBuf.release:()Z
            pop
        25: .line 1006
      StackMap locals: io.netty.handler.ssl.SslHandler io.netty.buffer.ByteBufAllocator javax.net.ssl.SSLEngine io.netty.buffer.ByteBuf io.netty.buffer.ByteBuf io.netty.buffer.ByteBuf int int java.nio.ByteBuffer[] java.nio.ByteBuffer javax.net.ssl.SSLEngineResult top javax.net.ssl.SSLEngineResult
      StackMap stack:
            aload 12
            areturn
        end local 10 // javax.net.ssl.SSLEngineResult result
        end local 9 // java.nio.ByteBuffer out0
        end local 8 // java.nio.ByteBuffer[] in0
        end local 7 // int readableBytes
        end local 6 // int readerIndex
        26: .line 1009
      StackMap locals: io.netty.handler.ssl.SslHandler io.netty.buffer.ByteBufAllocator javax.net.ssl.SSLEngine io.netty.buffer.ByteBuf io.netty.buffer.ByteBuf io.netty.buffer.ByteBuf
      StackMap stack: java.lang.Throwable
            astore 11
        27: .line 1011
            aload 0 /* this */
            getfield io.netty.handler.ssl.SslHandler.singleBuffer:[Ljava/nio/ByteBuffer;
            iconst_0
            aconst_null
            aastore
        28: .line 1013
            aload 5 /* newDirectIn */
            ifnull 30
        29: .line 1014
            aload 5 /* newDirectIn */
            invokevirtual io.netty.buffer.ByteBuf.release:()Z
            pop
        30: .line 1016
      StackMap locals: io.netty.handler.ssl.SslHandler io.netty.buffer.ByteBufAllocator javax.net.ssl.SSLEngine io.netty.buffer.ByteBuf io.netty.buffer.ByteBuf io.netty.buffer.ByteBuf top top top top top java.lang.Throwable
      StackMap stack:
            aload 11
            athrow
        end local 5 // io.netty.buffer.ByteBuf newDirectIn
        end local 4 // io.netty.buffer.ByteBuf out
        end local 3 // io.netty.buffer.ByteBuf in
        end local 2 // javax.net.ssl.SSLEngine engine
        end local 1 // io.netty.buffer.ByteBufAllocator alloc
        end local 0 // io.netty.handler.ssl.SslHandler this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0   31     0           this  Lio/netty/handler/ssl/SslHandler;
            0   31     1          alloc  Lio/netty/buffer/ByteBufAllocator;
            0   31     2         engine  Ljavax/net/ssl/SSLEngine;
            0   31     3             in  Lio/netty/buffer/ByteBuf;
            0   31     4            out  Lio/netty/buffer/ByteBuf;
            1   31     5    newDirectIn  Lio/netty/buffer/ByteBuf;
            2   26     6    readerIndex  I
            3   26     7  readableBytes  I
            6    8     8            in0  [Ljava/nio/ByteBuffer;
            9   10     8            in0  [Ljava/nio/ByteBuffer;
           13   26     8            in0  [Ljava/nio/ByteBuffer;
           15   26     9           out0  Ljava/nio/ByteBuffer;
           16   26    10         result  Ljavax/net/ssl/SSLEngineResult;
      Exception table:
        from    to  target  type
           1    22      26  any
    Exceptions:
      throws javax.net.ssl.SSLException
    MethodParameters:
        Name  Flags
      alloc   
      engine  
      in      
      out     

  public void channelInactive(io.netty.channel.ChannelHandlerContext);
    descriptor: (Lio/netty/channel/ChannelHandlerContext;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=2, args_size=2
        start local 0 // io.netty.handler.ssl.SslHandler this
        start local 1 // io.netty.channel.ChannelHandlerContext ctx
         0: .line 1023
            aload 0 /* this */
            aload 1 /* ctx */
            getstatic io.netty.handler.ssl.SslHandler.CHANNEL_CLOSED:Ljava/nio/channels/ClosedChannelException;
            aload 0 /* this */
            getfield io.netty.handler.ssl.SslHandler.outboundClosed:Z
            ifeq 1
            iconst_0
            goto 2
      StackMap locals: io.netty.handler.ssl.SslHandler io.netty.channel.ChannelHandlerContext
      StackMap stack: io.netty.handler.ssl.SslHandler io.netty.channel.ChannelHandlerContext java.nio.channels.ClosedChannelException
         1: iconst_1
      StackMap locals: io.netty.handler.ssl.SslHandler io.netty.channel.ChannelHandlerContext
      StackMap stack: io.netty.handler.ssl.SslHandler io.netty.channel.ChannelHandlerContext java.nio.channels.ClosedChannelException int
         2: aload 0 /* this */
            getfield io.netty.handler.ssl.SslHandler.handshakeStarted:Z
            iconst_0
            invokevirtual io.netty.handler.ssl.SslHandler.setHandshakeFailure:(Lio/netty/channel/ChannelHandlerContext;Ljava/lang/Throwable;ZZZ)V
         3: .line 1026
            aload 0 /* this */
            getstatic io.netty.handler.ssl.SslHandler.CHANNEL_CLOSED:Ljava/nio/channels/ClosedChannelException;
            invokevirtual io.netty.handler.ssl.SslHandler.notifyClosePromise:(Ljava/lang/Throwable;)V
         4: .line 1028
            aload 0 /* this */
            aload 1 /* ctx */
            invokespecial io.netty.handler.codec.ByteToMessageDecoder.channelInactive:(Lio/netty/channel/ChannelHandlerContext;)V
         5: .line 1029
            return
        end local 1 // io.netty.channel.ChannelHandlerContext ctx
        end local 0 // io.netty.handler.ssl.SslHandler this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    6     0  this  Lio/netty/handler/ssl/SslHandler;
            0    6     1   ctx  Lio/netty/channel/ChannelHandlerContext;
    Exceptions:
      throws java.lang.Exception
    MethodParameters:
      Name  Flags
      ctx   

  public void exceptionCaught(io.netty.channel.ChannelHandlerContext, java.lang.Throwable);
    descriptor: (Lio/netty/channel/ChannelHandlerContext;Ljava/lang/Throwable;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // io.netty.handler.ssl.SslHandler this
        start local 1 // io.netty.channel.ChannelHandlerContext ctx
        start local 2 // java.lang.Throwable cause
         0: .line 1033
            aload 0 /* this */
            aload 2 /* cause */
            invokevirtual io.netty.handler.ssl.SslHandler.ignoreException:(Ljava/lang/Throwable;)Z
            ifeq 9
         1: .line 1036
            getstatic io.netty.handler.ssl.SslHandler.logger:Lio/netty/util/internal/logging/InternalLogger;
            invokeinterface io.netty.util.internal.logging.InternalLogger.isDebugEnabled:()Z
            ifeq 6
         2: .line 1037
            getstatic io.netty.handler.ssl.SslHandler.logger:Lio/netty/util/internal/logging/InternalLogger;
         3: .line 1038
            ldc "{} Swallowing a harmless 'connection reset by peer / broken pipe' error that occurred while writing close_notify in response to the peer's close_notify"
         4: .line 1039
            aload 1 /* ctx */
            invokeinterface io.netty.channel.ChannelHandlerContext.channel:()Lio/netty/channel/Channel;
            aload 2 /* cause */
         5: .line 1037
            invokeinterface io.netty.util.internal.logging.InternalLogger.debug:(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;)V
         6: .line 1044
      StackMap locals:
      StackMap stack:
            aload 1 /* ctx */
            invokeinterface io.netty.channel.ChannelHandlerContext.channel:()Lio/netty/channel/Channel;
            invokeinterface io.netty.channel.Channel.isActive:()Z
            ifeq 10
         7: .line 1045
            aload 1 /* ctx */
            invokeinterface io.netty.channel.ChannelHandlerContext.close:()Lio/netty/channel/ChannelFuture;
            pop
         8: .line 1047
            goto 10
         9: .line 1048
      StackMap locals:
      StackMap stack:
            aload 1 /* ctx */
            aload 2 /* cause */
            invokeinterface io.netty.channel.ChannelHandlerContext.fireExceptionCaught:(Ljava/lang/Throwable;)Lio/netty/channel/ChannelHandlerContext;
            pop
        10: .line 1050
      StackMap locals:
      StackMap stack:
            return
        end local 2 // java.lang.Throwable cause
        end local 1 // io.netty.channel.ChannelHandlerContext ctx
        end local 0 // io.netty.handler.ssl.SslHandler this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0   11     0   this  Lio/netty/handler/ssl/SslHandler;
            0   11     1    ctx  Lio/netty/channel/ChannelHandlerContext;
            0   11     2  cause  Ljava/lang/Throwable;
    Exceptions:
      throws java.lang.Exception
    MethodParameters:
       Name  Flags
      ctx    
      cause  

  private boolean ignoreException(java.lang.Throwable);
    descriptor: (Ljava/lang/Throwable;)Z
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=6, locals=11, args_size=2
        start local 0 // io.netty.handler.ssl.SslHandler this
        start local 1 // java.lang.Throwable t
         0: .line 1062
            aload 1 /* t */
            instanceof javax.net.ssl.SSLException
            ifne 28
            aload 1 /* t */
            instanceof java.io.IOException
            ifeq 28
            aload 0 /* this */
            getfield io.netty.handler.ssl.SslHandler.sslClosePromise:Lio/netty/handler/ssl/SslHandler$LazyChannelPromise;
            invokevirtual io.netty.handler.ssl.SslHandler$LazyChannelPromise.isDone:()Z
            ifeq 28
         1: .line 1063
            aload 1 /* t */
            invokevirtual java.lang.Throwable.getMessage:()Ljava/lang/String;
            astore 2 /* message */
        start local 2 // java.lang.String message
         2: .line 1067
            aload 2 /* message */
            ifnull 4
            getstatic io.netty.handler.ssl.SslHandler.IGNORABLE_ERROR_MESSAGE:Ljava/util/regex/Pattern;
            aload 2 /* message */
            invokevirtual java.util.regex.Pattern.matcher:(Ljava/lang/CharSequence;)Ljava/util/regex/Matcher;
            invokevirtual java.util.regex.Matcher.matches:()Z
            ifeq 4
         3: .line 1068
            iconst_1
            ireturn
         4: .line 1072
      StackMap locals: java.lang.String
      StackMap stack:
            aload 1 /* t */
            invokevirtual java.lang.Throwable.getStackTrace:()[Ljava/lang/StackTraceElement;
            astore 3 /* elements */
        start local 3 // java.lang.StackTraceElement[] elements
         5: .line 1073
            aload 3 /* elements */
            dup
            astore 7
            arraylength
            istore 6
            iconst_0
            istore 5
            goto 27
      StackMap locals: io.netty.handler.ssl.SslHandler java.lang.Throwable java.lang.String java.lang.StackTraceElement[] top int int java.lang.StackTraceElement[]
      StackMap stack:
         6: aload 7
            iload 5
            aaload
            astore 4 /* element */
        start local 4 // java.lang.StackTraceElement element
         7: .line 1074
            aload 4 /* element */
            invokevirtual java.lang.StackTraceElement.getClassName:()Ljava/lang/String;
            astore 8 /* classname */
        start local 8 // java.lang.String classname
         8: .line 1075
            aload 4 /* element */
            invokevirtual java.lang.StackTraceElement.getMethodName:()Ljava/lang/String;
            astore 9 /* methodname */
        start local 9 // java.lang.String methodname
         9: .line 1078
            aload 8 /* classname */
            ldc "io.netty."
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
            ifeq 11
        10: .line 1079
            goto 26
        11: .line 1083
      StackMap locals: io.netty.handler.ssl.SslHandler java.lang.Throwable java.lang.String java.lang.StackTraceElement[] java.lang.StackTraceElement int int java.lang.StackTraceElement[] java.lang.String java.lang.String
      StackMap stack:
            ldc "read"
            aload 9 /* methodname */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 13
        12: .line 1084
            goto 26
        13: .line 1089
      StackMap locals:
      StackMap stack:
            getstatic io.netty.handler.ssl.SslHandler.IGNORABLE_CLASS_IN_STACK:Ljava/util/regex/Pattern;
            aload 8 /* classname */
            invokevirtual java.util.regex.Pattern.matcher:(Ljava/lang/CharSequence;)Ljava/util/regex/Matcher;
            invokevirtual java.util.regex.Matcher.matches:()Z
            ifeq 15
        14: .line 1090
            iconst_1
            ireturn
        15: .line 1097
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            invokestatic io.netty.util.internal.PlatformDependent.getClassLoader:(Ljava/lang/Class;)Ljava/lang/ClassLoader;
            aload 8 /* classname */
            invokevirtual java.lang.ClassLoader.loadClass:(Ljava/lang/String;)Ljava/lang/Class;
            astore 10 /* clazz */
        start local 10 // java.lang.Class clazz
        16: .line 1099
            ldc Ljava/nio/channels/SocketChannel;
            aload 10 /* clazz */
            invokevirtual java.lang.Class.isAssignableFrom:(Ljava/lang/Class;)Z
            ifne 18
        17: .line 1100
            ldc Ljava/nio/channels/DatagramChannel;
            aload 10 /* clazz */
            invokevirtual java.lang.Class.isAssignableFrom:(Ljava/lang/Class;)Z
            ifeq 19
        18: .line 1101
      StackMap locals: java.lang.Class
      StackMap stack:
            iconst_1
            ireturn
        19: .line 1105
      StackMap locals:
      StackMap stack:
            invokestatic io.netty.util.internal.PlatformDependent.javaVersion:()I
            bipush 7
            if_icmplt 26
        20: .line 1106
            ldc "com.sun.nio.sctp.SctpChannel"
            aload 10 /* clazz */
            invokevirtual java.lang.Class.getSuperclass:()Ljava/lang/Class;
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 26
        21: .line 1107
            iconst_1
            ireturn
        end local 10 // java.lang.Class clazz
        22: .line 1109
      StackMap locals: io.netty.handler.ssl.SslHandler java.lang.Throwable java.lang.String java.lang.StackTraceElement[] java.lang.StackTraceElement int int java.lang.StackTraceElement[] java.lang.String java.lang.String
      StackMap stack: java.lang.Throwable
            astore 10 /* cause */
        start local 10 // java.lang.Throwable cause
        23: .line 1110
            getstatic io.netty.handler.ssl.SslHandler.logger:Lio/netty/util/internal/logging/InternalLogger;
            ldc "Unexpected exception while loading class {} classname {}"
            iconst_3
            anewarray java.lang.Object
            dup
            iconst_0
        24: .line 1111
            aload 0 /* this */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            aastore
            dup
            iconst_1
            aload 8 /* classname */
            aastore
            dup
            iconst_2
            aload 10 /* cause */
            aastore
        25: .line 1110
            invokeinterface io.netty.util.internal.logging.InternalLogger.debug:(Ljava/lang/String;[Ljava/lang/Object;)V
        end local 10 // java.lang.Throwable cause
        end local 9 // java.lang.String methodname
        end local 8 // java.lang.String classname
        end local 4 // java.lang.StackTraceElement element
        26: .line 1073
      StackMap locals: io.netty.handler.ssl.SslHandler java.lang.Throwable java.lang.String java.lang.StackTraceElement[] top int int java.lang.StackTraceElement[]
      StackMap stack:
            iinc 5 1
      StackMap locals:
      StackMap stack:
        27: iload 5
            iload 6
            if_icmplt 6
        end local 3 // java.lang.StackTraceElement[] elements
        end local 2 // java.lang.String message
        28: .line 1116
      StackMap locals: io.netty.handler.ssl.SslHandler java.lang.Throwable
      StackMap stack:
            iconst_0
            ireturn
        end local 1 // java.lang.Throwable t
        end local 0 // io.netty.handler.ssl.SslHandler this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   29     0        this  Lio/netty/handler/ssl/SslHandler;
            0   29     1           t  Ljava/lang/Throwable;
            2   28     2     message  Ljava/lang/String;
            5   28     3    elements  [Ljava/lang/StackTraceElement;
            7   26     4     element  Ljava/lang/StackTraceElement;
            8   26     8   classname  Ljava/lang/String;
            9   26     9  methodname  Ljava/lang/String;
           16   22    10       clazz  Ljava/lang/Class<*>;
           23   26    10       cause  Ljava/lang/Throwable;
      Exception table:
        from    to  target  type
          15    18      22  Class java.lang.Throwable
          19    21      22  Class java.lang.Throwable
    MethodParameters:
      Name  Flags
      t     

  public static boolean isEncrypted(io.netty.buffer.ByteBuf);
    descriptor: (Lio/netty/buffer/ByteBuf;)Z
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // io.netty.buffer.ByteBuf buffer
         0: .line 1132
            aload 0 /* buffer */
            invokevirtual io.netty.buffer.ByteBuf.readableBytes:()I
            iconst_5
            if_icmpge 4
         1: .line 1133
            new java.lang.IllegalArgumentException
            dup
         2: .line 1134
            ldc "buffer must have at least 5 readable bytes"
         3: .line 1133
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         4: .line 1136
      StackMap locals:
      StackMap stack:
            aload 0 /* buffer */
            aload 0 /* buffer */
            invokevirtual io.netty.buffer.ByteBuf.readerIndex:()I
            invokestatic io.netty.handler.ssl.SslUtils.getEncryptedPacketLength:(Lio/netty/buffer/ByteBuf;I)I
            bipush -2
            if_icmpeq 5
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         5: iconst_0
            ireturn
        end local 0 // io.netty.buffer.ByteBuf buffer
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    6     0  buffer  Lio/netty/buffer/ByteBuf;
    MethodParameters:
        Name  Flags
      buffer  

  private void decodeJdkCompatible(io.netty.channel.ChannelHandlerContext, io.netty.buffer.ByteBuf);
    descriptor: (Lio/netty/channel/ChannelHandlerContext;Lio/netty/buffer/ByteBuf;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=6, args_size=3
        start local 0 // io.netty.handler.ssl.SslHandler this
        start local 1 // io.netty.channel.ChannelHandlerContext ctx
        start local 2 // io.netty.buffer.ByteBuf in
         0: .line 1140
            aload 0 /* this */
            getfield io.netty.handler.ssl.SslHandler.packetLength:I
            istore 3 /* packetLength */
        start local 3 // int packetLength
         1: .line 1142
            iload 3 /* packetLength */
            ifle 4
         2: .line 1143
            aload 2 /* in */
            invokevirtual io.netty.buffer.ByteBuf.readableBytes:()I
            iload 3 /* packetLength */
            if_icmpge 19
         3: .line 1144
            return
         4: .line 1148
      StackMap locals: int
      StackMap stack:
            aload 2 /* in */
            invokevirtual io.netty.buffer.ByteBuf.readableBytes:()I
            istore 4 /* readableBytes */
        start local 4 // int readableBytes
         5: .line 1149
            iload 4 /* readableBytes */
            iconst_5
            if_icmpge 7
         6: .line 1150
            return
         7: .line 1152
      StackMap locals: int
      StackMap stack:
            aload 2 /* in */
            aload 2 /* in */
            invokevirtual io.netty.buffer.ByteBuf.readerIndex:()I
            invokestatic io.netty.handler.ssl.SslUtils.getEncryptedPacketLength:(Lio/netty/buffer/ByteBuf;I)I
            istore 3 /* packetLength */
         8: .line 1153
            iload 3 /* packetLength */
            bipush -2
            if_icmpne 15
         9: .line 1155
            new io.netty.handler.ssl.NotSslRecordException
            dup
        10: .line 1156
            new java.lang.StringBuilder
            dup
            ldc "not an SSL/TLS record: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 2 /* in */
            invokestatic io.netty.buffer.ByteBufUtil.hexDump:(Lio/netty/buffer/ByteBuf;)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        11: .line 1155
            invokespecial io.netty.handler.ssl.NotSslRecordException.<init>:(Ljava/lang/String;)V
            astore 5 /* e */
        start local 5 // io.netty.handler.ssl.NotSslRecordException e
        12: .line 1157
            aload 2 /* in */
            aload 2 /* in */
            invokevirtual io.netty.buffer.ByteBuf.readableBytes:()I
            invokevirtual io.netty.buffer.ByteBuf.skipBytes:(I)Lio/netty/buffer/ByteBuf;
            pop
        13: .line 1161
            aload 0 /* this */
            aload 1 /* ctx */
            aload 5 /* e */
            invokevirtual io.netty.handler.ssl.SslHandler.setHandshakeFailure:(Lio/netty/channel/ChannelHandlerContext;Ljava/lang/Throwable;)V
        14: .line 1163
            aload 5 /* e */
            athrow
        end local 5 // io.netty.handler.ssl.NotSslRecordException e
        15: .line 1165
      StackMap locals:
      StackMap stack:
            getstatic io.netty.handler.ssl.SslHandler.$assertionsDisabled:Z
            ifne 16
            iload 3 /* packetLength */
            ifgt 16
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
        16: .line 1166
      StackMap locals:
      StackMap stack:
            iload 3 /* packetLength */
            iload 4 /* readableBytes */
            if_icmple 19
        17: .line 1168
            aload 0 /* this */
            iload 3 /* packetLength */
            putfield io.netty.handler.ssl.SslHandler.packetLength:I
        18: .line 1169
            return
        end local 4 // int readableBytes
        19: .line 1175
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iconst_0
            putfield io.netty.handler.ssl.SslHandler.packetLength:I
        20: .line 1177
            aload 0 /* this */
            aload 1 /* ctx */
            aload 2 /* in */
            aload 2 /* in */
            invokevirtual io.netty.buffer.ByteBuf.readerIndex:()I
            iload 3 /* packetLength */
            invokevirtual io.netty.handler.ssl.SslHandler.unwrap:(Lio/netty/channel/ChannelHandlerContext;Lio/netty/buffer/ByteBuf;II)I
            istore 4 /* bytesConsumed */
        start local 4 // int bytesConsumed
        21: .line 1178
            getstatic io.netty.handler.ssl.SslHandler.$assertionsDisabled:Z
            ifne 25
            iload 4 /* bytesConsumed */
            iload 3 /* packetLength */
            if_icmpeq 25
            aload 0 /* this */
            getfield io.netty.handler.ssl.SslHandler.engine:Ljavax/net/ssl/SSLEngine;
            invokevirtual javax.net.ssl.SSLEngine.isInboundDone:()Z
            ifne 25
            new java.lang.AssertionError
            dup
        22: .line 1179
            new java.lang.StringBuilder
            dup
            ldc "we feed the SSLEngine a packets worth of data: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            iload 3 /* packetLength */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            ldc " but it only consumed: "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        23: .line 1180
            iload 4 /* bytesConsumed */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
        24: .line 1179
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
            athrow
        25: .line 1181
      StackMap locals: int
      StackMap stack:
            aload 2 /* in */
            iload 4 /* bytesConsumed */
            invokevirtual io.netty.buffer.ByteBuf.skipBytes:(I)Lio/netty/buffer/ByteBuf;
            pop
        end local 4 // int bytesConsumed
        26: .line 1182
            goto 29
      StackMap locals: io.netty.handler.ssl.SslHandler io.netty.channel.ChannelHandlerContext io.netty.buffer.ByteBuf int
      StackMap stack: java.lang.Throwable
        27: astore 4 /* cause */
        start local 4 // java.lang.Throwable cause
        28: .line 1183
            aload 0 /* this */
            aload 1 /* ctx */
            aload 4 /* cause */
            invokevirtual io.netty.handler.ssl.SslHandler.handleUnwrapThrowable:(Lio/netty/channel/ChannelHandlerContext;Ljava/lang/Throwable;)V
        end local 4 // java.lang.Throwable cause
        29: .line 1185
      StackMap locals:
      StackMap stack:
            return
        end local 3 // int packetLength
        end local 2 // io.netty.buffer.ByteBuf in
        end local 1 // io.netty.channel.ChannelHandlerContext ctx
        end local 0 // io.netty.handler.ssl.SslHandler this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0   30     0           this  Lio/netty/handler/ssl/SslHandler;
            0   30     1            ctx  Lio/netty/channel/ChannelHandlerContext;
            0   30     2             in  Lio/netty/buffer/ByteBuf;
            1   30     3   packetLength  I
            5   19     4  readableBytes  I
           12   15     5              e  Lio/netty/handler/ssl/NotSslRecordException;
           21   26     4  bytesConsumed  I
           28   29     4          cause  Ljava/lang/Throwable;
      Exception table:
        from    to  target  type
          20    26      27  Class java.lang.Throwable
    Exceptions:
      throws io.netty.handler.ssl.NotSslRecordException
    MethodParameters:
      Name  Flags
      ctx   
      in    

  private void decodeNonJdkCompatible(io.netty.channel.ChannelHandlerContext, io.netty.buffer.ByteBuf);
    descriptor: (Lio/netty/channel/ChannelHandlerContext;Lio/netty/buffer/ByteBuf;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=6, locals=4, args_size=3
        start local 0 // io.netty.handler.ssl.SslHandler this
        start local 1 // io.netty.channel.ChannelHandlerContext ctx
        start local 2 // io.netty.buffer.ByteBuf in
         0: .line 1189
            aload 2 /* in */
            aload 0 /* this */
            aload 1 /* ctx */
            aload 2 /* in */
            aload 2 /* in */
            invokevirtual io.netty.buffer.ByteBuf.readerIndex:()I
            aload 2 /* in */
            invokevirtual io.netty.buffer.ByteBuf.readableBytes:()I
            invokevirtual io.netty.handler.ssl.SslHandler.unwrap:(Lio/netty/channel/ChannelHandlerContext;Lio/netty/buffer/ByteBuf;II)I
            invokevirtual io.netty.buffer.ByteBuf.skipBytes:(I)Lio/netty/buffer/ByteBuf;
            pop
         1: .line 1190
            goto 4
      StackMap locals:
      StackMap stack: java.lang.Throwable
         2: astore 3 /* cause */
        start local 3 // java.lang.Throwable cause
         3: .line 1191
            aload 0 /* this */
            aload 1 /* ctx */
            aload 3 /* cause */
            invokevirtual io.netty.handler.ssl.SslHandler.handleUnwrapThrowable:(Lio/netty/channel/ChannelHandlerContext;Ljava/lang/Throwable;)V
        end local 3 // java.lang.Throwable cause
         4: .line 1193
      StackMap locals:
      StackMap stack:
            return
        end local 2 // io.netty.buffer.ByteBuf in
        end local 1 // io.netty.channel.ChannelHandlerContext ctx
        end local 0 // io.netty.handler.ssl.SslHandler this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    5     0   this  Lio/netty/handler/ssl/SslHandler;
            0    5     1    ctx  Lio/netty/channel/ChannelHandlerContext;
            0    5     2     in  Lio/netty/buffer/ByteBuf;
            3    4     3  cause  Ljava/lang/Throwable;
      Exception table:
        from    to  target  type
           0     1       2  Class java.lang.Throwable
    MethodParameters:
      Name  Flags
      ctx   
      in    

  private void handleUnwrapThrowable(io.netty.channel.ChannelHandlerContext, java.lang.Throwable);
    descriptor: (Lio/netty/channel/ChannelHandlerContext;Ljava/lang/Throwable;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=6, locals=5, args_size=3
        start local 0 // io.netty.handler.ssl.SslHandler this
        start local 1 // io.netty.channel.ChannelHandlerContext ctx
        start local 2 // java.lang.Throwable cause
         0: .line 1201
            aload 0 /* this */
            getfield io.netty.handler.ssl.SslHandler.handshakePromise:Lio/netty/util/concurrent/Promise;
            aload 2 /* cause */
            invokeinterface io.netty.util.concurrent.Promise.tryFailure:(Ljava/lang/Throwable;)Z
            ifeq 2
         1: .line 1202
            aload 1 /* ctx */
            new io.netty.handler.ssl.SslHandshakeCompletionEvent
            dup
            aload 2 /* cause */
            invokespecial io.netty.handler.ssl.SslHandshakeCompletionEvent.<init>:(Ljava/lang/Throwable;)V
            invokeinterface io.netty.channel.ChannelHandlerContext.fireUserEventTriggered:(Ljava/lang/Object;)Lio/netty/channel/ChannelHandlerContext;
            pop
         2: .line 1207
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* ctx */
            invokevirtual io.netty.handler.ssl.SslHandler.wrapAndFlush:(Lio/netty/channel/ChannelHandlerContext;)V
         3: .line 1208
            goto 12
      StackMap locals:
      StackMap stack: javax.net.ssl.SSLException
         4: astore 3 /* ex */
        start local 3 // javax.net.ssl.SSLException ex
         5: .line 1209
            getstatic io.netty.handler.ssl.SslHandler.logger:Lio/netty/util/internal/logging/InternalLogger;
            ldc "SSLException during trying to call SSLEngine.wrap(...) because of an previous SSLException, ignoring..."
         6: .line 1210
            aload 3 /* ex */
         7: .line 1209
            invokeinterface io.netty.util.internal.logging.InternalLogger.debug:(Ljava/lang/String;Ljava/lang/Throwable;)V
        end local 3 // javax.net.ssl.SSLException ex
         8: .line 1213
            aload 0 /* this */
            aload 1 /* ctx */
            aload 2 /* cause */
            iconst_1
            iconst_0
            iconst_1
            invokevirtual io.netty.handler.ssl.SslHandler.setHandshakeFailure:(Lio/netty/channel/ChannelHandlerContext;Ljava/lang/Throwable;ZZZ)V
            goto 13
         9: .line 1211
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 4
        10: .line 1213
            aload 0 /* this */
            aload 1 /* ctx */
            aload 2 /* cause */
            iconst_1
            iconst_0
            iconst_1
            invokevirtual io.netty.handler.ssl.SslHandler.setHandshakeFailure:(Lio/netty/channel/ChannelHandlerContext;Ljava/lang/Throwable;ZZZ)V
        11: .line 1214
            aload 4
            athrow
        12: .line 1213
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* ctx */
            aload 2 /* cause */
            iconst_1
            iconst_0
            iconst_1
            invokevirtual io.netty.handler.ssl.SslHandler.setHandshakeFailure:(Lio/netty/channel/ChannelHandlerContext;Ljava/lang/Throwable;ZZZ)V
        13: .line 1215
      StackMap locals:
      StackMap stack:
            aload 2 /* cause */
            invokestatic io.netty.util.internal.PlatformDependent.throwException:(Ljava/lang/Throwable;)V
        14: .line 1216
            return
        end local 2 // java.lang.Throwable cause
        end local 1 // io.netty.channel.ChannelHandlerContext ctx
        end local 0 // io.netty.handler.ssl.SslHandler this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0   15     0   this  Lio/netty/handler/ssl/SslHandler;
            0   15     1    ctx  Lio/netty/channel/ChannelHandlerContext;
            0   15     2  cause  Ljava/lang/Throwable;
            5    8     3     ex  Ljavax/net/ssl/SSLException;
      Exception table:
        from    to  target  type
           0     3       4  Class javax.net.ssl.SSLException
           0     8       9  any
    MethodParameters:
       Name  Flags
      ctx    
      cause  

  protected void decode(io.netty.channel.ChannelHandlerContext, io.netty.buffer.ByteBuf, java.util.List<java.lang.Object>);
    descriptor: (Lio/netty/channel/ChannelHandlerContext;Lio/netty/buffer/ByteBuf;Ljava/util/List;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=3, locals=4, args_size=4
        start local 0 // io.netty.handler.ssl.SslHandler this
        start local 1 // io.netty.channel.ChannelHandlerContext ctx
        start local 2 // io.netty.buffer.ByteBuf in
        start local 3 // java.util.List out
         0: .line 1220
            aload 0 /* this */
            getfield io.netty.handler.ssl.SslHandler.jdkCompatibilityMode:Z
            ifeq 3
         1: .line 1221
            aload 0 /* this */
            aload 1 /* ctx */
            aload 2 /* in */
            invokevirtual io.netty.handler.ssl.SslHandler.decodeJdkCompatible:(Lio/netty/channel/ChannelHandlerContext;Lio/netty/buffer/ByteBuf;)V
         2: .line 1222
            goto 4
         3: .line 1223
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* ctx */
            aload 2 /* in */
            invokevirtual io.netty.handler.ssl.SslHandler.decodeNonJdkCompatible:(Lio/netty/channel/ChannelHandlerContext;Lio/netty/buffer/ByteBuf;)V
         4: .line 1225
      StackMap locals:
      StackMap stack:
            return
        end local 3 // java.util.List out
        end local 2 // io.netty.buffer.ByteBuf in
        end local 1 // io.netty.channel.ChannelHandlerContext ctx
        end local 0 // io.netty.handler.ssl.SslHandler this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0  this  Lio/netty/handler/ssl/SslHandler;
            0    5     1   ctx  Lio/netty/channel/ChannelHandlerContext;
            0    5     2    in  Lio/netty/buffer/ByteBuf;
            0    5     3   out  Ljava/util/List<Ljava/lang/Object;>;
    Exceptions:
      throws javax.net.ssl.SSLException
    Signature: (Lio/netty/channel/ChannelHandlerContext;Lio/netty/buffer/ByteBuf;Ljava/util/List<Ljava/lang/Object;>;)V
    MethodParameters:
      Name  Flags
      ctx   
      in    
      out   

  public void channelReadComplete(io.netty.channel.ChannelHandlerContext);
    descriptor: (Lio/netty/channel/ChannelHandlerContext;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // io.netty.handler.ssl.SslHandler this
        start local 1 // io.netty.channel.ChannelHandlerContext ctx
         0: .line 1230
            aload 0 /* this */
            invokevirtual io.netty.handler.ssl.SslHandler.discardSomeReadBytes:()V
         1: .line 1232
            aload 0 /* this */
            aload 1 /* ctx */
            invokevirtual io.netty.handler.ssl.SslHandler.flushIfNeeded:(Lio/netty/channel/ChannelHandlerContext;)V
         2: .line 1233
            aload 0 /* this */
            aload 1 /* ctx */
            invokevirtual io.netty.handler.ssl.SslHandler.readIfNeeded:(Lio/netty/channel/ChannelHandlerContext;)V
         3: .line 1235
            aload 0 /* this */
            iconst_0
            putfield io.netty.handler.ssl.SslHandler.firedChannelRead:Z
         4: .line 1236
            aload 1 /* ctx */
            invokeinterface io.netty.channel.ChannelHandlerContext.fireChannelReadComplete:()Lio/netty/channel/ChannelHandlerContext;
            pop
         5: .line 1237
            return
        end local 1 // io.netty.channel.ChannelHandlerContext ctx
        end local 0 // io.netty.handler.ssl.SslHandler this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    6     0  this  Lio/netty/handler/ssl/SslHandler;
            0    6     1   ctx  Lio/netty/channel/ChannelHandlerContext;
    Exceptions:
      throws java.lang.Exception
    MethodParameters:
      Name  Flags
      ctx   

  private void readIfNeeded(io.netty.channel.ChannelHandlerContext);
    descriptor: (Lio/netty/channel/ChannelHandlerContext;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=1, locals=2, args_size=2
        start local 0 // io.netty.handler.ssl.SslHandler this
        start local 1 // io.netty.channel.ChannelHandlerContext ctx
         0: .line 1241
            aload 1 /* ctx */
            invokeinterface io.netty.channel.ChannelHandlerContext.channel:()Lio/netty/channel/Channel;
            invokeinterface io.netty.channel.Channel.config:()Lio/netty/channel/ChannelConfig;
            invokeinterface io.netty.channel.ChannelConfig.isAutoRead:()Z
            ifne 2
            aload 0 /* this */
            getfield io.netty.handler.ssl.SslHandler.firedChannelRead:Z
            ifeq 1
            aload 0 /* this */
            getfield io.netty.handler.ssl.SslHandler.handshakePromise:Lio/netty/util/concurrent/Promise;
            invokeinterface io.netty.util.concurrent.Promise.isDone:()Z
            ifne 2
         1: .line 1244
      StackMap locals:
      StackMap stack:
            aload 1 /* ctx */
            invokeinterface io.netty.channel.ChannelHandlerContext.read:()Lio/netty/channel/ChannelHandlerContext;
            pop
         2: .line 1246
      StackMap locals:
      StackMap stack:
            return
        end local 1 // io.netty.channel.ChannelHandlerContext ctx
        end local 0 // io.netty.handler.ssl.SslHandler this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lio/netty/handler/ssl/SslHandler;
            0    3     1   ctx  Lio/netty/channel/ChannelHandlerContext;
    MethodParameters:
      Name  Flags
      ctx   

  private void flushIfNeeded(io.netty.channel.ChannelHandlerContext);
    descriptor: (Lio/netty/channel/ChannelHandlerContext;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // io.netty.handler.ssl.SslHandler this
        start local 1 // io.netty.channel.ChannelHandlerContext ctx
         0: .line 1249
            aload 0 /* this */
            getfield io.netty.handler.ssl.SslHandler.needsFlush:Z
            ifeq 2
         1: .line 1250
            aload 0 /* this */
            aload 1 /* ctx */
            invokevirtual io.netty.handler.ssl.SslHandler.forceFlush:(Lio/netty/channel/ChannelHandlerContext;)V
         2: .line 1252
      StackMap locals:
      StackMap stack:
            return
        end local 1 // io.netty.channel.ChannelHandlerContext ctx
        end local 0 // io.netty.handler.ssl.SslHandler this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lio/netty/handler/ssl/SslHandler;
            0    3     1   ctx  Lio/netty/channel/ChannelHandlerContext;
    MethodParameters:
      Name  Flags
      ctx   

  private void unwrapNonAppData(io.netty.channel.ChannelHandlerContext);
    descriptor: (Lio/netty/channel/ChannelHandlerContext;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=2, args_size=2
        start local 0 // io.netty.handler.ssl.SslHandler this
        start local 1 // io.netty.channel.ChannelHandlerContext ctx
         0: .line 1258
            aload 0 /* this */
            aload 1 /* ctx */
            getstatic io.netty.buffer.Unpooled.EMPTY_BUFFER:Lio/netty/buffer/ByteBuf;
            iconst_0
            iconst_0
            invokevirtual io.netty.handler.ssl.SslHandler.unwrap:(Lio/netty/channel/ChannelHandlerContext;Lio/netty/buffer/ByteBuf;II)I
            pop
         1: .line 1259
            return
        end local 1 // io.netty.channel.ChannelHandlerContext ctx
        end local 0 // io.netty.handler.ssl.SslHandler this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lio/netty/handler/ssl/SslHandler;
            0    2     1   ctx  Lio/netty/channel/ChannelHandlerContext;
    Exceptions:
      throws javax.net.ssl.SSLException
    MethodParameters:
      Name  Flags
      ctx   

  private int unwrap(io.netty.channel.ChannelHandlerContext, io.netty.buffer.ByteBuf, int, int);
    descriptor: (Lio/netty/channel/ChannelHandlerContext;Lio/netty/buffer/ByteBuf;II)I
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=6, locals=19, args_size=5
        start local 0 // io.netty.handler.ssl.SslHandler this
        start local 1 // io.netty.channel.ChannelHandlerContext ctx
        start local 2 // io.netty.buffer.ByteBuf packet
        start local 3 // int offset
        start local 4 // int length
         0: .line 1266
            iload 4 /* length */
            istore 5 /* originalLength */
        start local 5 // int originalLength
         1: .line 1267
            iconst_0
            istore 6 /* wrapLater */
        start local 6 // boolean wrapLater
         2: .line 1268
            iconst_0
            istore 7 /* notifyClosure */
        start local 7 // boolean notifyClosure
         3: .line 1269
            iconst_m1
            istore 8 /* overflowReadableBytes */
        start local 8 // int overflowReadableBytes
         4: .line 1270
            aload 0 /* this */
            aload 1 /* ctx */
            iload 4 /* length */
            invokevirtual io.netty.handler.ssl.SslHandler.allocate:(Lio/netty/channel/ChannelHandlerContext;I)Lio/netty/buffer/ByteBuf;
            astore 9 /* decodeOut */
        start local 9 // io.netty.buffer.ByteBuf decodeOut
         5: .line 1274
            goto 61
         6: .line 1275
      StackMap locals: io.netty.handler.ssl.SslHandler io.netty.channel.ChannelHandlerContext io.netty.buffer.ByteBuf int int int int int int io.netty.buffer.ByteBuf
      StackMap stack:
            aload 0 /* this */
            getfield io.netty.handler.ssl.SslHandler.engineType:Lio/netty/handler/ssl/SslHandler$SslEngineType;
            aload 0 /* this */
            aload 2 /* packet */
            iload 3 /* offset */
            iload 4 /* length */
            aload 9 /* decodeOut */
            invokevirtual io.netty.handler.ssl.SslHandler$SslEngineType.unwrap:(Lio/netty/handler/ssl/SslHandler;Lio/netty/buffer/ByteBuf;IILio/netty/buffer/ByteBuf;)Ljavax/net/ssl/SSLEngineResult;
            astore 10 /* result */
        start local 10 // javax.net.ssl.SSLEngineResult result
         7: .line 1276
            aload 10 /* result */
            invokevirtual javax.net.ssl.SSLEngineResult.getStatus:()Ljavax/net/ssl/SSLEngineResult$Status;
            astore 11 /* status */
        start local 11 // javax.net.ssl.SSLEngineResult$Status status
         8: .line 1277
            aload 10 /* result */
            invokevirtual javax.net.ssl.SSLEngineResult.getHandshakeStatus:()Ljavax/net/ssl/SSLEngineResult$HandshakeStatus;
            astore 12 /* handshakeStatus */
        start local 12 // javax.net.ssl.SSLEngineResult$HandshakeStatus handshakeStatus
         9: .line 1278
            aload 10 /* result */
            invokevirtual javax.net.ssl.SSLEngineResult.bytesProduced:()I
            istore 13 /* produced */
        start local 13 // int produced
        10: .line 1279
            aload 10 /* result */
            invokevirtual javax.net.ssl.SSLEngineResult.bytesConsumed:()I
            istore 14 /* consumed */
        start local 14 // int consumed
        11: .line 1282
            iload 3 /* offset */
            iload 14 /* consumed */
            iadd
            istore 3 /* offset */
        12: .line 1283
            iload 4 /* length */
            iload 14 /* consumed */
            isub
            istore 4 /* length */
        13: .line 1285
            invokestatic io.netty.handler.ssl.SslHandler.$SWITCH_TABLE$javax$net$ssl$SSLEngineResult$Status:()[I
            aload 11 /* status */
            invokevirtual javax.net.ssl.SSLEngineResult$Status.ordinal:()I
            iaload
            tableswitch { // 2 - 4
                    2: 14
                    3: 37
                    4: 34
              default: 37
          }
        14: .line 1287
      StackMap locals: io.netty.handler.ssl.SslHandler io.netty.channel.ChannelHandlerContext io.netty.buffer.ByteBuf int int int int int int io.netty.buffer.ByteBuf javax.net.ssl.SSLEngineResult javax.net.ssl.SSLEngineResult$Status javax.net.ssl.SSLEngineResult$HandshakeStatus int int
      StackMap stack:
            aload 9 /* decodeOut */
            invokevirtual io.netty.buffer.ByteBuf.readableBytes:()I
            istore 15 /* readableBytes */
        start local 15 // int readableBytes
        15: .line 1288
            iload 8 /* overflowReadableBytes */
            istore 16 /* previousOverflowReadableBytes */
        start local 16 // int previousOverflowReadableBytes
        16: .line 1289
            iload 15 /* readableBytes */
            istore 8 /* overflowReadableBytes */
        17: .line 1290
            aload 0 /* this */
            getfield io.netty.handler.ssl.SslHandler.engine:Ljavax/net/ssl/SSLEngine;
            invokevirtual javax.net.ssl.SSLEngine.getSession:()Ljavax/net/ssl/SSLSession;
            invokeinterface javax.net.ssl.SSLSession.getApplicationBufferSize:()I
            iload 15 /* readableBytes */
            isub
            istore 17 /* bufferSize */
        start local 17 // int bufferSize
        18: .line 1291
            iload 15 /* readableBytes */
            ifle 25
        19: .line 1292
            aload 0 /* this */
            iconst_1
            putfield io.netty.handler.ssl.SslHandler.firedChannelRead:Z
        20: .line 1293
            aload 1 /* ctx */
            aload 9 /* decodeOut */
            invokeinterface io.netty.channel.ChannelHandlerContext.fireChannelRead:(Ljava/lang/Object;)Lio/netty/channel/ChannelHandlerContext;
            pop
        21: .line 1296
            aconst_null
            astore 9 /* decodeOut */
        22: .line 1297
            iload 17 /* bufferSize */
            ifgt 27
        23: .line 1302
            aload 0 /* this */
            getfield io.netty.handler.ssl.SslHandler.engine:Ljavax/net/ssl/SSLEngine;
            invokevirtual javax.net.ssl.SSLEngine.getSession:()Ljavax/net/ssl/SSLSession;
            invokeinterface javax.net.ssl.SSLSession.getApplicationBufferSize:()I
            istore 17 /* bufferSize */
        24: .line 1304
            goto 27
        25: .line 1306
      StackMap locals: int int int
      StackMap stack:
            aload 9 /* decodeOut */
            invokevirtual io.netty.buffer.ByteBuf.release:()Z
            pop
        26: .line 1307
            aconst_null
            astore 9 /* decodeOut */
        27: .line 1309
      StackMap locals:
      StackMap stack:
            iload 15 /* readableBytes */
            ifne 32
            iload 16 /* previousOverflowReadableBytes */
            ifne 32
        28: .line 1312
            new java.lang.IllegalStateException
            dup
            new java.lang.StringBuilder
            dup
            ldc "Two consecutive overflows but no content was consumed. "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
        29: .line 1313
            ldc Ljavax/net/ssl/SSLSession;
            invokevirtual java.lang.Class.getSimpleName:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc " getApplicationBufferSize: "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        30: .line 1314
            aload 0 /* this */
            getfield io.netty.handler.ssl.SslHandler.engine:Ljavax/net/ssl/SSLEngine;
            invokevirtual javax.net.ssl.SSLEngine.getSession:()Ljavax/net/ssl/SSLSession;
            invokeinterface javax.net.ssl.SSLSession.getApplicationBufferSize:()I
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            ldc " maybe too small."
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        31: .line 1312
            invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
            athrow
        32: .line 1319
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* ctx */
            aload 0 /* this */
            getfield io.netty.handler.ssl.SslHandler.engineType:Lio/netty/handler/ssl/SslHandler$SslEngineType;
            aload 0 /* this */
            iload 17 /* bufferSize */
            invokevirtual io.netty.handler.ssl.SslHandler$SslEngineType.calculatePendingData:(Lio/netty/handler/ssl/SslHandler;I)I
            invokevirtual io.netty.handler.ssl.SslHandler.allocate:(Lio/netty/channel/ChannelHandlerContext;I)Lio/netty/buffer/ByteBuf;
            astore 9 /* decodeOut */
        33: .line 1320
            goto 61
        end local 17 // int bufferSize
        end local 16 // int previousOverflowReadableBytes
        end local 15 // int readableBytes
        34: .line 1323
      StackMap locals:
      StackMap stack:
            iconst_1
            istore 7 /* notifyClosure */
        35: .line 1324
            iconst_m1
            istore 8 /* overflowReadableBytes */
        36: .line 1325
            goto 38
        37: .line 1327
      StackMap locals:
      StackMap stack:
            iconst_m1
            istore 8 /* overflowReadableBytes */
        38: .line 1328
      StackMap locals:
      StackMap stack:
            invokestatic io.netty.handler.ssl.SslHandler.$SWITCH_TABLE$javax$net$ssl$SSLEngineResult$HandshakeStatus:()[I
        39: .line 1331
            aload 12 /* handshakeStatus */
            invokevirtual javax.net.ssl.SSLEngineResult$HandshakeStatus.ordinal:()I
            iaload
            tableswitch { // 1 - 5
                    1: 48
                    2: 45
                    3: 43
                    4: 41
                    5: 40
              default: 56
          }
        40: .line 1333
      StackMap locals:
      StackMap stack:
            goto 57
        41: .line 1338
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* ctx */
            iconst_1
            invokevirtual io.netty.handler.ssl.SslHandler.wrapNonAppData:(Lio/netty/channel/ChannelHandlerContext;Z)Z
            ifeq 57
            iload 4 /* length */
            ifne 57
        42: .line 1339
            goto 62
        43: .line 1343
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual io.netty.handler.ssl.SslHandler.runDelegatedTasks:()V
        44: .line 1344
            goto 57
        45: .line 1346
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual io.netty.handler.ssl.SslHandler.setHandshakeSuccess:()V
        46: .line 1347
            iconst_1
            istore 6 /* wrapLater */
        47: .line 1360
            goto 57
        48: .line 1362
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual io.netty.handler.ssl.SslHandler.setHandshakeSuccessIfStillHandshaking:()Z
            ifeq 51
        49: .line 1363
            iconst_1
            istore 6 /* wrapLater */
        50: .line 1364
            goto 61
        51: .line 1366
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield io.netty.handler.ssl.SslHandler.flushedBeforeHandshake:Z
            ifeq 54
        52: .line 1370
            aload 0 /* this */
            iconst_0
            putfield io.netty.handler.ssl.SslHandler.flushedBeforeHandshake:Z
        53: .line 1371
            iconst_1
            istore 6 /* wrapLater */
        54: .line 1376
      StackMap locals:
      StackMap stack:
            iload 4 /* length */
            ifne 57
        55: .line 1377
            goto 62
        56: .line 1381
      StackMap locals:
      StackMap stack:
            new java.lang.IllegalStateException
            dup
            new java.lang.StringBuilder
            dup
            ldc "unknown handshake status: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 12 /* handshakeStatus */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
            athrow
        57: .line 1384
      StackMap locals:
      StackMap stack:
            aload 11 /* status */
            getstatic javax.net.ssl.SSLEngineResult$Status.BUFFER_UNDERFLOW:Ljavax/net/ssl/SSLEngineResult$Status;
            if_acmpeq 58
            iload 14 /* consumed */
            ifne 61
            iload 13 /* produced */
            ifne 61
        58: .line 1385
      StackMap locals:
      StackMap stack:
            aload 12 /* handshakeStatus */
            getstatic javax.net.ssl.SSLEngineResult$HandshakeStatus.NEED_UNWRAP:Ljavax/net/ssl/SSLEngineResult$HandshakeStatus;
            if_acmpne 62
        59: .line 1388
            aload 0 /* this */
            aload 1 /* ctx */
            invokevirtual io.netty.handler.ssl.SslHandler.readIfNeeded:(Lio/netty/channel/ChannelHandlerContext;)V
        60: .line 1391
            goto 62
        end local 14 // int consumed
        end local 13 // int produced
        end local 12 // javax.net.ssl.SSLEngineResult$HandshakeStatus handshakeStatus
        end local 11 // javax.net.ssl.SSLEngineResult$Status status
        end local 10 // javax.net.ssl.SSLEngineResult result
        61: .line 1274
      StackMap locals: io.netty.handler.ssl.SslHandler io.netty.channel.ChannelHandlerContext io.netty.buffer.ByteBuf int int int int int int io.netty.buffer.ByteBuf
      StackMap stack:
            aload 1 /* ctx */
            invokeinterface io.netty.channel.ChannelHandlerContext.isRemoved:()Z
            ifeq 6
        62: .line 1395
      StackMap locals:
      StackMap stack:
            iload 6 /* wrapLater */
            ifeq 64
        63: .line 1396
            aload 0 /* this */
            aload 1 /* ctx */
            iconst_1
            invokevirtual io.netty.handler.ssl.SslHandler.wrap:(Lio/netty/channel/ChannelHandlerContext;Z)V
        64: .line 1399
      StackMap locals:
      StackMap stack:
            iload 7 /* notifyClosure */
            ifeq 75
        65: .line 1400
            aload 0 /* this */
            aconst_null
            invokevirtual io.netty.handler.ssl.SslHandler.notifyClosePromise:(Ljava/lang/Throwable;)V
        66: .line 1402
            goto 75
      StackMap locals:
      StackMap stack: java.lang.Throwable
        67: astore 18
        68: .line 1403
            aload 9 /* decodeOut */
            ifnull 74
        69: .line 1404
            aload 9 /* decodeOut */
            invokevirtual io.netty.buffer.ByteBuf.isReadable:()Z
            ifeq 73
        70: .line 1405
            aload 0 /* this */
            iconst_1
            putfield io.netty.handler.ssl.SslHandler.firedChannelRead:Z
        71: .line 1407
            aload 1 /* ctx */
            aload 9 /* decodeOut */
            invokeinterface io.netty.channel.ChannelHandlerContext.fireChannelRead:(Ljava/lang/Object;)Lio/netty/channel/ChannelHandlerContext;
            pop
        72: .line 1408
            goto 74
        73: .line 1409
      StackMap locals: io.netty.handler.ssl.SslHandler io.netty.channel.ChannelHandlerContext io.netty.buffer.ByteBuf int int int int int int io.netty.buffer.ByteBuf top top top top top top top top java.lang.Throwable
      StackMap stack:
            aload 9 /* decodeOut */
            invokevirtual io.netty.buffer.ByteBuf.release:()Z
            pop
        74: .line 1412
      StackMap locals:
      StackMap stack:
            aload 18
            athrow
        75: .line 1403
      StackMap locals: io.netty.handler.ssl.SslHandler io.netty.channel.ChannelHandlerContext io.netty.buffer.ByteBuf int int int int int int io.netty.buffer.ByteBuf
      StackMap stack:
            aload 9 /* decodeOut */
            ifnull 81
        76: .line 1404
            aload 9 /* decodeOut */
            invokevirtual io.netty.buffer.ByteBuf.isReadable:()Z
            ifeq 80
        77: .line 1405
            aload 0 /* this */
            iconst_1
            putfield io.netty.handler.ssl.SslHandler.firedChannelRead:Z
        78: .line 1407
            aload 1 /* ctx */
            aload 9 /* decodeOut */
            invokeinterface io.netty.channel.ChannelHandlerContext.fireChannelRead:(Ljava/lang/Object;)Lio/netty/channel/ChannelHandlerContext;
            pop
        79: .line 1408
            goto 81
        80: .line 1409
      StackMap locals:
      StackMap stack:
            aload 9 /* decodeOut */
            invokevirtual io.netty.buffer.ByteBuf.release:()Z
            pop
        81: .line 1413
      StackMap locals:
      StackMap stack:
            iload 5 /* originalLength */
            iload 4 /* length */
            isub
            ireturn
        end local 9 // io.netty.buffer.ByteBuf decodeOut
        end local 8 // int overflowReadableBytes
        end local 7 // boolean notifyClosure
        end local 6 // boolean wrapLater
        end local 5 // int originalLength
        end local 4 // int length
        end local 3 // int offset
        end local 2 // io.netty.buffer.ByteBuf packet
        end local 1 // io.netty.channel.ChannelHandlerContext ctx
        end local 0 // io.netty.handler.ssl.SslHandler this
      LocalVariableTable:
        Start  End  Slot                           Name  Signature
            0   82     0                           this  Lio/netty/handler/ssl/SslHandler;
            0   82     1                            ctx  Lio/netty/channel/ChannelHandlerContext;
            0   82     2                         packet  Lio/netty/buffer/ByteBuf;
            0   82     3                         offset  I
            0   82     4                         length  I
            1   82     5                 originalLength  I
            2   82     6                      wrapLater  Z
            3   82     7                  notifyClosure  Z
            4   82     8          overflowReadableBytes  I
            5   82     9                      decodeOut  Lio/netty/buffer/ByteBuf;
            7   61    10                         result  Ljavax/net/ssl/SSLEngineResult;
            8   61    11                         status  Ljavax/net/ssl/SSLEngineResult$Status;
            9   61    12                handshakeStatus  Ljavax/net/ssl/SSLEngineResult$HandshakeStatus;
           10   61    13                       produced  I
           11   61    14                       consumed  I
           15   34    15                  readableBytes  I
           16   34    16  previousOverflowReadableBytes  I
           18   34    17                     bufferSize  I
      Exception table:
        from    to  target  type
           5    67      67  any
    Exceptions:
      throws javax.net.ssl.SSLException
    MethodParameters:
        Name  Flags
      ctx     
      packet  
      offset  
      length  

  private static java.nio.ByteBuffer toByteBuffer(io.netty.buffer.ByteBuf, int, int);
    descriptor: (Lio/netty/buffer/ByteBuf;II)Ljava/nio/ByteBuffer;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // io.netty.buffer.ByteBuf out
        start local 1 // int index
        start local 2 // int len
         0: .line 1417
            aload 0 /* out */
            invokevirtual io.netty.buffer.ByteBuf.nioBufferCount:()I
            iconst_1
            if_icmpne 1
            aload 0 /* out */
            iload 1 /* index */
            iload 2 /* len */
            invokevirtual io.netty.buffer.ByteBuf.internalNioBuffer:(II)Ljava/nio/ByteBuffer;
            goto 2
         1: .line 1418
      StackMap locals:
      StackMap stack:
            aload 0 /* out */
            iload 1 /* index */
            iload 2 /* len */
            invokevirtual io.netty.buffer.ByteBuf.nioBuffer:(II)Ljava/nio/ByteBuffer;
         2: .line 1417
      StackMap locals:
      StackMap stack: java.nio.ByteBuffer
            areturn
        end local 2 // int len
        end local 1 // int index
        end local 0 // io.netty.buffer.ByteBuf out
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    3     0    out  Lio/netty/buffer/ByteBuf;
            0    3     1  index  I
            0    3     2    len  I
    MethodParameters:
       Name  Flags
      out    
      index  
      len    

  private void runDelegatedTasks();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=6, locals=4, args_size=1
        start local 0 // io.netty.handler.ssl.SslHandler this
         0: .line 1428
            aload 0 /* this */
            getfield io.netty.handler.ssl.SslHandler.delegatedTaskExecutor:Ljava/util/concurrent/Executor;
            getstatic io.netty.util.concurrent.ImmediateExecutor.INSTANCE:Lio/netty/util/concurrent/ImmediateExecutor;
            if_acmpne 6
         1: .line 1430
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield io.netty.handler.ssl.SslHandler.engine:Ljavax/net/ssl/SSLEngine;
            invokevirtual javax.net.ssl.SSLEngine.getDelegatedTask:()Ljava/lang/Runnable;
            astore 1 /* task */
        start local 1 // java.lang.Runnable task
         2: .line 1431
            aload 1 /* task */
            ifnonnull 4
         3: .line 1432
            goto 25
         4: .line 1435
      StackMap locals: java.lang.Runnable
      StackMap stack:
            aload 1 /* task */
            invokeinterface java.lang.Runnable.run:()V
        end local 1 // java.lang.Runnable task
         5: .line 1429
            goto 1
         6: .line 1438
      StackMap locals:
      StackMap stack:
            new java.util.ArrayList
            dup
            iconst_2
            invokespecial java.util.ArrayList.<init>:(I)V
            astore 1 /* tasks */
        start local 1 // java.util.List tasks
         7: .line 1440
      StackMap locals: java.util.List
      StackMap stack:
            aload 0 /* this */
            getfield io.netty.handler.ssl.SslHandler.engine:Ljavax/net/ssl/SSLEngine;
            invokevirtual javax.net.ssl.SSLEngine.getDelegatedTask:()Ljava/lang/Runnable;
            astore 2 /* task */
        start local 2 // java.lang.Runnable task
         8: .line 1441
            aload 2 /* task */
            ifnonnull 10
         9: .line 1442
            goto 12
        10: .line 1445
      StackMap locals: java.lang.Runnable
      StackMap stack:
            aload 1 /* tasks */
            aload 2 /* task */
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        end local 2 // java.lang.Runnable task
        11: .line 1439
            goto 7
        12: .line 1448
      StackMap locals:
      StackMap stack:
            aload 1 /* tasks */
            invokeinterface java.util.List.isEmpty:()Z
            ifeq 14
        13: .line 1449
            return
        14: .line 1452
      StackMap locals:
      StackMap stack:
            new java.util.concurrent.CountDownLatch
            dup
            iconst_1
            invokespecial java.util.concurrent.CountDownLatch.<init>:(I)V
            astore 2 /* latch */
        start local 2 // java.util.concurrent.CountDownLatch latch
        15: .line 1453
            aload 0 /* this */
            getfield io.netty.handler.ssl.SslHandler.delegatedTaskExecutor:Ljava/util/concurrent/Executor;
            new io.netty.handler.ssl.SslHandler$2
            dup
            aload 0 /* this */
            aload 2 /* latch */
            aload 1 /* tasks */
            invokespecial io.netty.handler.ssl.SslHandler$2.<init>:(Lio/netty/handler/ssl/SslHandler;Ljava/util/concurrent/CountDownLatch;Ljava/util/List;)V
            invokeinterface java.util.concurrent.Executor.execute:(Ljava/lang/Runnable;)V
        16: .line 1468
            iconst_0
            istore 3 /* interrupted */
        start local 3 // boolean interrupted
        17: .line 1469
            goto 22
        18: .line 1471
      StackMap locals: java.util.concurrent.CountDownLatch int
      StackMap stack:
            aload 2 /* latch */
            invokevirtual java.util.concurrent.CountDownLatch.await:()V
        19: .line 1472
            goto 22
      StackMap locals:
      StackMap stack: java.lang.InterruptedException
        20: pop
        21: .line 1474
            iconst_1
            istore 3 /* interrupted */
        22: .line 1469
      StackMap locals:
      StackMap stack:
            aload 2 /* latch */
            invokevirtual java.util.concurrent.CountDownLatch.getCount:()J
            lconst_0
            lcmp
            ifne 18
        23: .line 1478
            iload 3 /* interrupted */
            ifeq 25
        24: .line 1479
            invokestatic java.lang.Thread.currentThread:()Ljava/lang/Thread;
            invokevirtual java.lang.Thread.interrupt:()V
        end local 3 // boolean interrupted
        end local 2 // java.util.concurrent.CountDownLatch latch
        end local 1 // java.util.List tasks
        25: .line 1482
      StackMap locals:
      StackMap stack:
            return
        end local 0 // io.netty.handler.ssl.SslHandler this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   26     0         this  Lio/netty/handler/ssl/SslHandler;
            2    5     1         task  Ljava/lang/Runnable;
            7   25     1        tasks  Ljava/util/List<Ljava/lang/Runnable;>;
            8   11     2         task  Ljava/lang/Runnable;
           15   25     2        latch  Ljava/util/concurrent/CountDownLatch;
           17   25     3  interrupted  Z
      Exception table:
        from    to  target  type
          18    19      20  Class java.lang.InterruptedException

  private boolean setHandshakeSuccessIfStillHandshaking();
    descriptor: ()Z
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // io.netty.handler.ssl.SslHandler this
         0: .line 1492
            aload 0 /* this */
            getfield io.netty.handler.ssl.SslHandler.handshakePromise:Lio/netty/util/concurrent/Promise;
            invokeinterface io.netty.util.concurrent.Promise.isDone:()Z
            ifne 3
         1: .line 1493
            aload 0 /* this */
            invokevirtual io.netty.handler.ssl.SslHandler.setHandshakeSuccess:()V
         2: .line 1494
            iconst_1
            ireturn
         3: .line 1496
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
        end local 0 // io.netty.handler.ssl.SslHandler this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Lio/netty/handler/ssl/SslHandler;

  private void setHandshakeSuccess();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=1, args_size=1
        start local 0 // io.netty.handler.ssl.SslHandler this
         0: .line 1503
            aload 0 /* this */
            getfield io.netty.handler.ssl.SslHandler.handshakePromise:Lio/netty/util/concurrent/Promise;
            aload 0 /* this */
            getfield io.netty.handler.ssl.SslHandler.ctx:Lio/netty/channel/ChannelHandlerContext;
            invokeinterface io.netty.channel.ChannelHandlerContext.channel:()Lio/netty/channel/Channel;
            invokeinterface io.netty.util.concurrent.Promise.trySuccess:(Ljava/lang/Object;)Z
            pop
         1: .line 1505
            getstatic io.netty.handler.ssl.SslHandler.logger:Lio/netty/util/internal/logging/InternalLogger;
            invokeinterface io.netty.util.internal.logging.InternalLogger.isDebugEnabled:()Z
            ifeq 3
         2: .line 1506
            getstatic io.netty.handler.ssl.SslHandler.logger:Lio/netty/util/internal/logging/InternalLogger;
            ldc "{} HANDSHAKEN: {}"
            aload 0 /* this */
            getfield io.netty.handler.ssl.SslHandler.ctx:Lio/netty/channel/ChannelHandlerContext;
            invokeinterface io.netty.channel.ChannelHandlerContext.channel:()Lio/netty/channel/Channel;
            aload 0 /* this */
            getfield io.netty.handler.ssl.SslHandler.engine:Ljavax/net/ssl/SSLEngine;
            invokevirtual javax.net.ssl.SSLEngine.getSession:()Ljavax/net/ssl/SSLSession;
            invokeinterface javax.net.ssl.SSLSession.getCipherSuite:()Ljava/lang/String;
            invokeinterface io.netty.util.internal.logging.InternalLogger.debug:(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;)V
         3: .line 1508
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield io.netty.handler.ssl.SslHandler.ctx:Lio/netty/channel/ChannelHandlerContext;
            getstatic io.netty.handler.ssl.SslHandshakeCompletionEvent.SUCCESS:Lio/netty/handler/ssl/SslHandshakeCompletionEvent;
            invokeinterface io.netty.channel.ChannelHandlerContext.fireUserEventTriggered:(Ljava/lang/Object;)Lio/netty/channel/ChannelHandlerContext;
            pop
         4: .line 1510
            aload 0 /* this */
            getfield io.netty.handler.ssl.SslHandler.readDuringHandshake:Z
            ifeq 7
            aload 0 /* this */
            getfield io.netty.handler.ssl.SslHandler.ctx:Lio/netty/channel/ChannelHandlerContext;
            invokeinterface io.netty.channel.ChannelHandlerContext.channel:()Lio/netty/channel/Channel;
            invokeinterface io.netty.channel.Channel.config:()Lio/netty/channel/ChannelConfig;
            invokeinterface io.netty.channel.ChannelConfig.isAutoRead:()Z
            ifne 7
         5: .line 1511
            aload 0 /* this */
            iconst_0
            putfield io.netty.handler.ssl.SslHandler.readDuringHandshake:Z
         6: .line 1512
            aload 0 /* this */
            getfield io.netty.handler.ssl.SslHandler.ctx:Lio/netty/channel/ChannelHandlerContext;
            invokeinterface io.netty.channel.ChannelHandlerContext.read:()Lio/netty/channel/ChannelHandlerContext;
            pop
         7: .line 1514
      StackMap locals:
      StackMap stack:
            return
        end local 0 // io.netty.handler.ssl.SslHandler this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    8     0  this  Lio/netty/handler/ssl/SslHandler;

  private void setHandshakeFailure(io.netty.channel.ChannelHandlerContext, java.lang.Throwable);
    descriptor: (Lio/netty/channel/ChannelHandlerContext;Ljava/lang/Throwable;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=6, locals=3, args_size=3
        start local 0 // io.netty.handler.ssl.SslHandler this
        start local 1 // io.netty.channel.ChannelHandlerContext ctx
        start local 2 // java.lang.Throwable cause
         0: .line 1520
            aload 0 /* this */
            aload 1 /* ctx */
            aload 2 /* cause */
            iconst_1
            iconst_1
            iconst_0
            invokevirtual io.netty.handler.ssl.SslHandler.setHandshakeFailure:(Lio/netty/channel/ChannelHandlerContext;Ljava/lang/Throwable;ZZZ)V
         1: .line 1521
            return
        end local 2 // java.lang.Throwable cause
        end local 1 // io.netty.channel.ChannelHandlerContext ctx
        end local 0 // io.netty.handler.ssl.SslHandler this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    2     0   this  Lio/netty/handler/ssl/SslHandler;
            0    2     1    ctx  Lio/netty/channel/ChannelHandlerContext;
            0    2     2  cause  Ljava/lang/Throwable;
    MethodParameters:
       Name  Flags
      ctx    
      cause  

  private void setHandshakeFailure(io.netty.channel.ChannelHandlerContext, java.lang.Throwable, boolean, boolean, boolean);
    descriptor: (Lio/netty/channel/ChannelHandlerContext;Ljava/lang/Throwable;ZZZ)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=9, args_size=6
        start local 0 // io.netty.handler.ssl.SslHandler this
        start local 1 // io.netty.channel.ChannelHandlerContext ctx
        start local 2 // java.lang.Throwable cause
        start local 3 // boolean closeInbound
        start local 4 // boolean notify
        start local 5 // boolean alwaysFlushAndClose
         0: .line 1531
            aload 0 /* this */
            iconst_1
            putfield io.netty.handler.ssl.SslHandler.outboundClosed:Z
         1: .line 1532
            aload 0 /* this */
            getfield io.netty.handler.ssl.SslHandler.engine:Ljavax/net/ssl/SSLEngine;
            invokevirtual javax.net.ssl.SSLEngine.closeOutbound:()V
         2: .line 1534
            iload 3 /* closeInbound */
            ifeq 10
         3: .line 1536
            aload 0 /* this */
            getfield io.netty.handler.ssl.SslHandler.engine:Ljavax/net/ssl/SSLEngine;
            invokevirtual javax.net.ssl.SSLEngine.closeInbound:()V
         4: .line 1537
            goto 10
      StackMap locals:
      StackMap stack: javax.net.ssl.SSLException
         5: astore 6 /* e */
        start local 6 // javax.net.ssl.SSLException e
         6: .line 1538
            getstatic io.netty.handler.ssl.SslHandler.logger:Lio/netty/util/internal/logging/InternalLogger;
            invokeinterface io.netty.util.internal.logging.InternalLogger.isDebugEnabled:()Z
            ifeq 10
         7: .line 1543
            aload 6 /* e */
            invokevirtual javax.net.ssl.SSLException.getMessage:()Ljava/lang/String;
            astore 7 /* msg */
        start local 7 // java.lang.String msg
         8: .line 1544
            aload 7 /* msg */
            ifnull 9
            aload 7 /* msg */
            ldc "possible truncation attack"
            invokevirtual java.lang.String.contains:(Ljava/lang/CharSequence;)Z
            ifne 10
         9: .line 1545
      StackMap locals: javax.net.ssl.SSLException java.lang.String
      StackMap stack:
            getstatic io.netty.handler.ssl.SslHandler.logger:Lio/netty/util/internal/logging/InternalLogger;
            ldc "{} SSLEngine.closeInbound() raised an exception."
            aload 1 /* ctx */
            invokeinterface io.netty.channel.ChannelHandlerContext.channel:()Lio/netty/channel/Channel;
            aload 6 /* e */
            invokeinterface io.netty.util.internal.logging.InternalLogger.debug:(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;)V
        end local 7 // java.lang.String msg
        end local 6 // javax.net.ssl.SSLException e
        10: .line 1550
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield io.netty.handler.ssl.SslHandler.handshakePromise:Lio/netty/util/concurrent/Promise;
            aload 2 /* cause */
            invokeinterface io.netty.util.concurrent.Promise.tryFailure:(Ljava/lang/Throwable;)Z
            ifne 11
            iload 5 /* alwaysFlushAndClose */
            ifeq 16
        11: .line 1551
      StackMap locals:
      StackMap stack:
            aload 1 /* ctx */
            aload 2 /* cause */
            iload 4 /* notify */
            invokestatic io.netty.handler.ssl.SslUtils.handleHandshakeFailure:(Lio/netty/channel/ChannelHandlerContext;Ljava/lang/Throwable;Z)V
        12: .line 1553
            goto 16
      StackMap locals:
      StackMap stack: java.lang.Throwable
        13: astore 8
        14: .line 1555
            aload 0 /* this */
            aload 2 /* cause */
            invokevirtual io.netty.handler.ssl.SslHandler.releaseAndFailAll:(Ljava/lang/Throwable;)V
        15: .line 1556
            aload 8
            athrow
        16: .line 1555
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 2 /* cause */
            invokevirtual io.netty.handler.ssl.SslHandler.releaseAndFailAll:(Ljava/lang/Throwable;)V
        17: .line 1557
            return
        end local 5 // boolean alwaysFlushAndClose
        end local 4 // boolean notify
        end local 3 // boolean closeInbound
        end local 2 // java.lang.Throwable cause
        end local 1 // io.netty.channel.ChannelHandlerContext ctx
        end local 0 // io.netty.handler.ssl.SslHandler this
      LocalVariableTable:
        Start  End  Slot                 Name  Signature
            0   18     0                 this  Lio/netty/handler/ssl/SslHandler;
            0   18     1                  ctx  Lio/netty/channel/ChannelHandlerContext;
            0   18     2                cause  Ljava/lang/Throwable;
            0   18     3         closeInbound  Z
            0   18     4               notify  Z
            0   18     5  alwaysFlushAndClose  Z
            6   10     6                    e  Ljavax/net/ssl/SSLException;
            8   10     7                  msg  Ljava/lang/String;
      Exception table:
        from    to  target  type
           3     4       5  Class javax.net.ssl.SSLException
           0    13      13  any
    MethodParameters:
                     Name  Flags
      ctx                  
      cause                
      closeInbound         
      notify               
      alwaysFlushAndClose  

  private void releaseAndFailAll(java.lang.Throwable);
    descriptor: (Ljava/lang/Throwable;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // io.netty.handler.ssl.SslHandler this
        start local 1 // java.lang.Throwable cause
         0: .line 1560
            aload 0 /* this */
            getfield io.netty.handler.ssl.SslHandler.pendingUnencryptedWrites:Lio/netty/handler/ssl/SslHandler$SslHandlerCoalescingBufferQueue;
            ifnull 2
         1: .line 1561
            aload 0 /* this */
            getfield io.netty.handler.ssl.SslHandler.pendingUnencryptedWrites:Lio/netty/handler/ssl/SslHandler$SslHandlerCoalescingBufferQueue;
            aload 0 /* this */
            getfield io.netty.handler.ssl.SslHandler.ctx:Lio/netty/channel/ChannelHandlerContext;
            aload 1 /* cause */
            invokevirtual io.netty.handler.ssl.SslHandler$SslHandlerCoalescingBufferQueue.releaseAndFailAll:(Lio/netty/channel/ChannelOutboundInvoker;Ljava/lang/Throwable;)V
         2: .line 1563
      StackMap locals:
      StackMap stack:
            return
        end local 1 // java.lang.Throwable cause
        end local 0 // io.netty.handler.ssl.SslHandler this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    3     0   this  Lio/netty/handler/ssl/SslHandler;
            0    3     1  cause  Ljava/lang/Throwable;
    MethodParameters:
       Name  Flags
      cause  

  private void notifyClosePromise(java.lang.Throwable);
    descriptor: (Ljava/lang/Throwable;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // io.netty.handler.ssl.SslHandler this
        start local 1 // java.lang.Throwable cause
         0: .line 1566
            aload 1 /* cause */
            ifnonnull 4
         1: .line 1567
            aload 0 /* this */
            getfield io.netty.handler.ssl.SslHandler.sslClosePromise:Lio/netty/handler/ssl/SslHandler$LazyChannelPromise;
            aload 0 /* this */
            getfield io.netty.handler.ssl.SslHandler.ctx:Lio/netty/channel/ChannelHandlerContext;
            invokeinterface io.netty.channel.ChannelHandlerContext.channel:()Lio/netty/channel/Channel;
            invokevirtual io.netty.handler.ssl.SslHandler$LazyChannelPromise.trySuccess:(Ljava/lang/Object;)Z
            ifeq 6
         2: .line 1568
            aload 0 /* this */
            getfield io.netty.handler.ssl.SslHandler.ctx:Lio/netty/channel/ChannelHandlerContext;
            getstatic io.netty.handler.ssl.SslCloseCompletionEvent.SUCCESS:Lio/netty/handler/ssl/SslCloseCompletionEvent;
            invokeinterface io.netty.channel.ChannelHandlerContext.fireUserEventTriggered:(Ljava/lang/Object;)Lio/netty/channel/ChannelHandlerContext;
            pop
         3: .line 1570
            goto 6
         4: .line 1571
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield io.netty.handler.ssl.SslHandler.sslClosePromise:Lio/netty/handler/ssl/SslHandler$LazyChannelPromise;
            aload 1 /* cause */
            invokevirtual io.netty.handler.ssl.SslHandler$LazyChannelPromise.tryFailure:(Ljava/lang/Throwable;)Z
            ifeq 6
         5: .line 1572
            aload 0 /* this */
            getfield io.netty.handler.ssl.SslHandler.ctx:Lio/netty/channel/ChannelHandlerContext;
            new io.netty.handler.ssl.SslCloseCompletionEvent
            dup
            aload 1 /* cause */
            invokespecial io.netty.handler.ssl.SslCloseCompletionEvent.<init>:(Ljava/lang/Throwable;)V
            invokeinterface io.netty.channel.ChannelHandlerContext.fireUserEventTriggered:(Ljava/lang/Object;)Lio/netty/channel/ChannelHandlerContext;
            pop
         6: .line 1575
      StackMap locals:
      StackMap stack:
            return
        end local 1 // java.lang.Throwable cause
        end local 0 // io.netty.handler.ssl.SslHandler this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    7     0   this  Lio/netty/handler/ssl/SslHandler;
            0    7     1  cause  Ljava/lang/Throwable;
    MethodParameters:
       Name  Flags
      cause  

  private void closeOutboundAndChannel(io.netty.channel.ChannelHandlerContext, io.netty.channel.ChannelPromise, boolean);
    descriptor: (Lio/netty/channel/ChannelHandlerContext;Lio/netty/channel/ChannelPromise;Z)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=11, locals=6, args_size=4
        start local 0 // io.netty.handler.ssl.SslHandler this
        start local 1 // io.netty.channel.ChannelHandlerContext ctx
        start local 2 // io.netty.channel.ChannelPromise promise
        start local 3 // boolean disconnect
         0: .line 1579
            aload 0 /* this */
            iconst_1
            putfield io.netty.handler.ssl.SslHandler.outboundClosed:Z
         1: .line 1580
            aload 0 /* this */
            getfield io.netty.handler.ssl.SslHandler.engine:Ljavax/net/ssl/SSLEngine;
            invokevirtual javax.net.ssl.SSLEngine.closeOutbound:()V
         2: .line 1582
            aload 1 /* ctx */
            invokeinterface io.netty.channel.ChannelHandlerContext.channel:()Lio/netty/channel/Channel;
            invokeinterface io.netty.channel.Channel.isActive:()Z
            ifne 8
         3: .line 1583
            iload 3 /* disconnect */
            ifeq 6
         4: .line 1584
            aload 1 /* ctx */
            aload 2 /* promise */
            invokeinterface io.netty.channel.ChannelHandlerContext.disconnect:(Lio/netty/channel/ChannelPromise;)Lio/netty/channel/ChannelFuture;
            pop
         5: .line 1585
            goto 7
         6: .line 1586
      StackMap locals:
      StackMap stack:
            aload 1 /* ctx */
            aload 2 /* promise */
            invokeinterface io.netty.channel.ChannelHandlerContext.close:(Lio/netty/channel/ChannelPromise;)Lio/netty/channel/ChannelFuture;
            pop
         7: .line 1588
      StackMap locals:
      StackMap stack:
            return
         8: .line 1591
      StackMap locals:
      StackMap stack:
            aload 1 /* ctx */
            invokeinterface io.netty.channel.ChannelHandlerContext.newPromise:()Lio/netty/channel/ChannelPromise;
            astore 4 /* closeNotifyPromise */
        start local 4 // io.netty.channel.ChannelPromise closeNotifyPromise
         9: .line 1593
            aload 0 /* this */
            aload 1 /* ctx */
            aload 4 /* closeNotifyPromise */
            invokevirtual io.netty.handler.ssl.SslHandler.flush:(Lio/netty/channel/ChannelHandlerContext;Lio/netty/channel/ChannelPromise;)V
        10: .line 1594
            goto 20
      StackMap locals: io.netty.handler.ssl.SslHandler io.netty.channel.ChannelHandlerContext io.netty.channel.ChannelPromise int io.netty.channel.ChannelPromise
      StackMap stack: java.lang.Throwable
        11: astore 5
        12: .line 1595
            aload 0 /* this */
            getfield io.netty.handler.ssl.SslHandler.closeNotify:Z
            ifne 18
        13: .line 1596
            aload 0 /* this */
            iconst_1
            putfield io.netty.handler.ssl.SslHandler.closeNotify:Z
        14: .line 1605
            aload 0 /* this */
            aload 1 /* ctx */
            aload 4 /* closeNotifyPromise */
            aload 1 /* ctx */
            invokeinterface io.netty.channel.ChannelHandlerContext.newPromise:()Lio/netty/channel/ChannelPromise;
        15: .line 1606
            new io.netty.channel.ChannelPromiseNotifier
            dup
            iconst_0
            iconst_1
            anewarray io.netty.channel.ChannelPromise
            dup
            iconst_0
            aload 2 /* promise */
            aastore
            invokespecial io.netty.channel.ChannelPromiseNotifier.<init>:(Z[Lio/netty/channel/ChannelPromise;)V
        16: .line 1605
            invokeinterface io.netty.channel.ChannelPromise.addListener:(Lio/netty/util/concurrent/GenericFutureListener;)Lio/netty/channel/ChannelPromise;
            invokevirtual io.netty.handler.ssl.SslHandler.safeClose:(Lio/netty/channel/ChannelHandlerContext;Lio/netty/channel/ChannelFuture;Lio/netty/channel/ChannelPromise;)V
        17: .line 1607
            goto 19
        18: .line 1609
      StackMap locals: java.lang.Throwable
      StackMap stack:
            aload 0 /* this */
            getfield io.netty.handler.ssl.SslHandler.sslClosePromise:Lio/netty/handler/ssl/SslHandler$LazyChannelPromise;
            new io.netty.handler.ssl.SslHandler$3
            dup
            aload 0 /* this */
            aload 2 /* promise */
            invokespecial io.netty.handler.ssl.SslHandler$3.<init>:(Lio/netty/handler/ssl/SslHandler;Lio/netty/channel/ChannelPromise;)V
            invokevirtual io.netty.handler.ssl.SslHandler$LazyChannelPromise.addListener:(Lio/netty/util/concurrent/GenericFutureListener;)Lio/netty/util/concurrent/Promise;
            pop
        19: .line 1616
      StackMap locals:
      StackMap stack:
            aload 5
            athrow
        20: .line 1595
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield io.netty.handler.ssl.SslHandler.closeNotify:Z
            ifne 26
        21: .line 1596
            aload 0 /* this */
            iconst_1
            putfield io.netty.handler.ssl.SslHandler.closeNotify:Z
        22: .line 1605
            aload 0 /* this */
            aload 1 /* ctx */
            aload 4 /* closeNotifyPromise */
            aload 1 /* ctx */
            invokeinterface io.netty.channel.ChannelHandlerContext.newPromise:()Lio/netty/channel/ChannelPromise;
        23: .line 1606
            new io.netty.channel.ChannelPromiseNotifier
            dup
            iconst_0
            iconst_1
            anewarray io.netty.channel.ChannelPromise
            dup
            iconst_0
            aload 2 /* promise */
            aastore
            invokespecial io.netty.channel.ChannelPromiseNotifier.<init>:(Z[Lio/netty/channel/ChannelPromise;)V
        24: .line 1605
            invokeinterface io.netty.channel.ChannelPromise.addListener:(Lio/netty/util/concurrent/GenericFutureListener;)Lio/netty/channel/ChannelPromise;
            invokevirtual io.netty.handler.ssl.SslHandler.safeClose:(Lio/netty/channel/ChannelHandlerContext;Lio/netty/channel/ChannelFuture;Lio/netty/channel/ChannelPromise;)V
        25: .line 1607
            goto 27
        26: .line 1609
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield io.netty.handler.ssl.SslHandler.sslClosePromise:Lio/netty/handler/ssl/SslHandler$LazyChannelPromise;
            new io.netty.handler.ssl.SslHandler$3
            dup
            aload 0 /* this */
            aload 2 /* promise */
            invokespecial io.netty.handler.ssl.SslHandler$3.<init>:(Lio/netty/handler/ssl/SslHandler;Lio/netty/channel/ChannelPromise;)V
            invokevirtual io.netty.handler.ssl.SslHandler$LazyChannelPromise.addListener:(Lio/netty/util/concurrent/GenericFutureListener;)Lio/netty/util/concurrent/Promise;
            pop
        27: .line 1617
      StackMap locals:
      StackMap stack:
            return
        end local 4 // io.netty.channel.ChannelPromise closeNotifyPromise
        end local 3 // boolean disconnect
        end local 2 // io.netty.channel.ChannelPromise promise
        end local 1 // io.netty.channel.ChannelHandlerContext ctx
        end local 0 // io.netty.handler.ssl.SslHandler this
      LocalVariableTable:
        Start  End  Slot                Name  Signature
            0   28     0                this  Lio/netty/handler/ssl/SslHandler;
            0   28     1                 ctx  Lio/netty/channel/ChannelHandlerContext;
            0   28     2             promise  Lio/netty/channel/ChannelPromise;
            0   28     3          disconnect  Z
            9   28     4  closeNotifyPromise  Lio/netty/channel/ChannelPromise;
      Exception table:
        from    to  target  type
           9    11      11  any
    Exceptions:
      throws java.lang.Exception
    MethodParameters:
            Name  Flags
      ctx         final
      promise     final
      disconnect  

  private void flush(io.netty.channel.ChannelHandlerContext, io.netty.channel.ChannelPromise);
    descriptor: (Lio/netty/channel/ChannelHandlerContext;Lio/netty/channel/ChannelPromise;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // io.netty.handler.ssl.SslHandler this
        start local 1 // io.netty.channel.ChannelHandlerContext ctx
        start local 2 // io.netty.channel.ChannelPromise promise
         0: .line 1620
            aload 0 /* this */
            getfield io.netty.handler.ssl.SslHandler.pendingUnencryptedWrites:Lio/netty/handler/ssl/SslHandler$SslHandlerCoalescingBufferQueue;
            ifnull 3
         1: .line 1621
            aload 0 /* this */
            getfield io.netty.handler.ssl.SslHandler.pendingUnencryptedWrites:Lio/netty/handler/ssl/SslHandler$SslHandlerCoalescingBufferQueue;
            getstatic io.netty.buffer.Unpooled.EMPTY_BUFFER:Lio/netty/buffer/ByteBuf;
            aload 2 /* promise */
            invokevirtual io.netty.handler.ssl.SslHandler$SslHandlerCoalescingBufferQueue.add:(Lio/netty/buffer/ByteBuf;Lio/netty/channel/ChannelPromise;)V
         2: .line 1622
            goto 4
         3: .line 1623
      StackMap locals:
      StackMap stack:
            aload 2 /* promise */
            invokestatic io.netty.handler.ssl.SslHandler.newPendingWritesNullException:()Ljava/lang/IllegalStateException;
            invokeinterface io.netty.channel.ChannelPromise.setFailure:(Ljava/lang/Throwable;)Lio/netty/channel/ChannelPromise;
            pop
         4: .line 1625
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* ctx */
            invokevirtual io.netty.handler.ssl.SslHandler.flush:(Lio/netty/channel/ChannelHandlerContext;)V
         5: .line 1626
            return
        end local 2 // io.netty.channel.ChannelPromise promise
        end local 1 // io.netty.channel.ChannelHandlerContext ctx
        end local 0 // io.netty.handler.ssl.SslHandler this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    6     0     this  Lio/netty/handler/ssl/SslHandler;
            0    6     1      ctx  Lio/netty/channel/ChannelHandlerContext;
            0    6     2  promise  Lio/netty/channel/ChannelPromise;
    Exceptions:
      throws java.lang.Exception
    MethodParameters:
         Name  Flags
      ctx      
      promise  

  public void handlerAdded(io.netty.channel.ChannelHandlerContext);
    descriptor: (Lio/netty/channel/ChannelHandlerContext;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=2, args_size=2
        start local 0 // io.netty.handler.ssl.SslHandler this
        start local 1 // io.netty.channel.ChannelHandlerContext ctx
         0: .line 1630
            aload 0 /* this */
            aload 1 /* ctx */
            putfield io.netty.handler.ssl.SslHandler.ctx:Lio/netty/channel/ChannelHandlerContext;
         1: .line 1632
            aload 0 /* this */
            new io.netty.handler.ssl.SslHandler$SslHandlerCoalescingBufferQueue
            dup
            aload 0 /* this */
            aload 1 /* ctx */
            invokeinterface io.netty.channel.ChannelHandlerContext.channel:()Lio/netty/channel/Channel;
            bipush 16
            invokespecial io.netty.handler.ssl.SslHandler$SslHandlerCoalescingBufferQueue.<init>:(Lio/netty/handler/ssl/SslHandler;Lio/netty/channel/Channel;I)V
            putfield io.netty.handler.ssl.SslHandler.pendingUnencryptedWrites:Lio/netty/handler/ssl/SslHandler$SslHandlerCoalescingBufferQueue;
         2: .line 1633
            aload 1 /* ctx */
            invokeinterface io.netty.channel.ChannelHandlerContext.channel:()Lio/netty/channel/Channel;
            invokeinterface io.netty.channel.Channel.isActive:()Z
            ifeq 4
         3: .line 1634
            aload 0 /* this */
            invokevirtual io.netty.handler.ssl.SslHandler.startHandshakeProcessing:()V
         4: .line 1636
      StackMap locals:
      StackMap stack:
            return
        end local 1 // io.netty.channel.ChannelHandlerContext ctx
        end local 0 // io.netty.handler.ssl.SslHandler this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0  this  Lio/netty/handler/ssl/SslHandler;
            0    5     1   ctx  Lio/netty/channel/ChannelHandlerContext;
    Exceptions:
      throws java.lang.Exception
    MethodParameters:
      Name  Flags
      ctx   final

  private void startHandshakeProcessing();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // io.netty.handler.ssl.SslHandler this
         0: .line 1639
            aload 0 /* this */
            iconst_1
            putfield io.netty.handler.ssl.SslHandler.handshakeStarted:Z
         1: .line 1640
            aload 0 /* this */
            getfield io.netty.handler.ssl.SslHandler.engine:Ljavax/net/ssl/SSLEngine;
            invokevirtual javax.net.ssl.SSLEngine.getUseClientMode:()Z
            ifeq 4
         2: .line 1644
            aload 0 /* this */
            aconst_null
            invokevirtual io.netty.handler.ssl.SslHandler.handshake:(Lio/netty/util/concurrent/Promise;)V
         3: .line 1645
            goto 5
         4: .line 1646
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aconst_null
            invokevirtual io.netty.handler.ssl.SslHandler.applyHandshakeTimeout:(Lio/netty/util/concurrent/Promise;)V
         5: .line 1648
      StackMap locals:
      StackMap stack:
            return
        end local 0 // io.netty.handler.ssl.SslHandler this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    6     0  this  Lio/netty/handler/ssl/SslHandler;

  public io.netty.util.concurrent.Future<io.netty.channel.Channel> renegotiate();
    descriptor: ()Lio/netty/util/concurrent/Future;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=1
        start local 0 // io.netty.handler.ssl.SslHandler this
         0: .line 1654
            aload 0 /* this */
            getfield io.netty.handler.ssl.SslHandler.ctx:Lio/netty/channel/ChannelHandlerContext;
            astore 1 /* ctx */
        start local 1 // io.netty.channel.ChannelHandlerContext ctx
         1: .line 1655
            aload 1 /* ctx */
            ifnonnull 3
         2: .line 1656
            new java.lang.IllegalStateException
            dup
            invokespecial java.lang.IllegalStateException.<init>:()V
            athrow
         3: .line 1659
      StackMap locals: io.netty.channel.ChannelHandlerContext
      StackMap stack:
            aload 0 /* this */
            aload 1 /* ctx */
            invokeinterface io.netty.channel.ChannelHandlerContext.executor:()Lio/netty/util/concurrent/EventExecutor;
            invokeinterface io.netty.util.concurrent.EventExecutor.newPromise:()Lio/netty/util/concurrent/Promise;
            invokevirtual io.netty.handler.ssl.SslHandler.renegotiate:(Lio/netty/util/concurrent/Promise;)Lio/netty/util/concurrent/Future;
            areturn
        end local 1 // io.netty.channel.ChannelHandlerContext ctx
        end local 0 // io.netty.handler.ssl.SslHandler this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Lio/netty/handler/ssl/SslHandler;
            1    4     1   ctx  Lio/netty/channel/ChannelHandlerContext;
    Signature: ()Lio/netty/util/concurrent/Future<Lio/netty/channel/Channel;>;

  public io.netty.util.concurrent.Future<io.netty.channel.Channel> renegotiate(io.netty.util.concurrent.Promise<io.netty.channel.Channel>);
    descriptor: (Lio/netty/util/concurrent/Promise;)Lio/netty/util/concurrent/Future;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=4, args_size=2
        start local 0 // io.netty.handler.ssl.SslHandler this
        start local 1 // io.netty.util.concurrent.Promise promise
         0: .line 1666
            aload 1 /* promise */
            ifnonnull 2
         1: .line 1667
            new java.lang.NullPointerException
            dup
            ldc "promise"
            invokespecial java.lang.NullPointerException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 1670
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield io.netty.handler.ssl.SslHandler.ctx:Lio/netty/channel/ChannelHandlerContext;
            astore 2 /* ctx */
        start local 2 // io.netty.channel.ChannelHandlerContext ctx
         3: .line 1671
            aload 2 /* ctx */
            ifnonnull 5
         4: .line 1672
            new java.lang.IllegalStateException
            dup
            invokespecial java.lang.IllegalStateException.<init>:()V
            athrow
         5: .line 1675
      StackMap locals: io.netty.channel.ChannelHandlerContext
      StackMap stack:
            aload 2 /* ctx */
            invokeinterface io.netty.channel.ChannelHandlerContext.executor:()Lio/netty/util/concurrent/EventExecutor;
            astore 3 /* executor */
        start local 3 // io.netty.util.concurrent.EventExecutor executor
         6: .line 1676
            aload 3 /* executor */
            invokeinterface io.netty.util.concurrent.EventExecutor.inEventLoop:()Z
            ifne 9
         7: .line 1677
            aload 3 /* executor */
            new io.netty.handler.ssl.SslHandler$4
            dup
            aload 0 /* this */
            aload 1 /* promise */
            invokespecial io.netty.handler.ssl.SslHandler$4.<init>:(Lio/netty/handler/ssl/SslHandler;Lio/netty/util/concurrent/Promise;)V
            invokeinterface io.netty.util.concurrent.EventExecutor.execute:(Ljava/lang/Runnable;)V
         8: .line 1683
            aload 1 /* promise */
            areturn
         9: .line 1686
      StackMap locals: io.netty.util.concurrent.EventExecutor
      StackMap stack:
            aload 0 /* this */
            aload 1 /* promise */
            invokevirtual io.netty.handler.ssl.SslHandler.handshake:(Lio/netty/util/concurrent/Promise;)V
        10: .line 1687
            aload 1 /* promise */
            areturn
        end local 3 // io.netty.util.concurrent.EventExecutor executor
        end local 2 // io.netty.channel.ChannelHandlerContext ctx
        end local 1 // io.netty.util.concurrent.Promise promise
        end local 0 // io.netty.handler.ssl.SslHandler this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   11     0      this  Lio/netty/handler/ssl/SslHandler;
            0   11     1   promise  Lio/netty/util/concurrent/Promise<Lio/netty/channel/Channel;>;
            3   11     2       ctx  Lio/netty/channel/ChannelHandlerContext;
            6   11     3  executor  Lio/netty/util/concurrent/EventExecutor;
    Signature: (Lio/netty/util/concurrent/Promise<Lio/netty/channel/Channel;>;)Lio/netty/util/concurrent/Future<Lio/netty/channel/Channel;>;
    MethodParameters:
         Name  Flags
      promise  final

  private void handshake(io.netty.util.concurrent.Promise<io.netty.channel.Channel>);
    descriptor: (Lio/netty/util/concurrent/Promise;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=6, args_size=2
        start local 0 // io.netty.handler.ssl.SslHandler this
        start local 1 // io.netty.util.concurrent.Promise newHandshakePromise
         0: .line 1699
            aload 1 /* newHandshakePromise */
            ifnull 8
         1: .line 1700
            aload 0 /* this */
            getfield io.netty.handler.ssl.SslHandler.handshakePromise:Lio/netty/util/concurrent/Promise;
            astore 3 /* oldHandshakePromise */
        start local 3 // io.netty.util.concurrent.Promise oldHandshakePromise
         2: .line 1701
            aload 3 /* oldHandshakePromise */
            invokeinterface io.netty.util.concurrent.Promise.isDone:()Z
            ifne 5
         3: .line 1704
            aload 3 /* oldHandshakePromise */
            new io.netty.handler.ssl.SslHandler$5
            dup
            aload 0 /* this */
            aload 1 /* newHandshakePromise */
            invokespecial io.netty.handler.ssl.SslHandler$5.<init>:(Lio/netty/handler/ssl/SslHandler;Lio/netty/util/concurrent/Promise;)V
            invokeinterface io.netty.util.concurrent.Promise.addListener:(Lio/netty/util/concurrent/GenericFutureListener;)Lio/netty/util/concurrent/Promise;
            pop
         4: .line 1714
            return
         5: .line 1717
      StackMap locals: io.netty.handler.ssl.SslHandler io.netty.util.concurrent.Promise top io.netty.util.concurrent.Promise
      StackMap stack:
            aload 0 /* this */
            aload 1 /* newHandshakePromise */
            dup
            astore 2 /* p */
        start local 2 // io.netty.util.concurrent.Promise p
         6: putfield io.netty.handler.ssl.SslHandler.handshakePromise:Lio/netty/util/concurrent/Promise;
        end local 3 // io.netty.util.concurrent.Promise oldHandshakePromise
         7: .line 1718
            goto 12
        end local 2 // io.netty.util.concurrent.Promise p
      StackMap locals: io.netty.handler.ssl.SslHandler io.netty.util.concurrent.Promise
      StackMap stack:
         8: aload 0 /* this */
            getfield io.netty.handler.ssl.SslHandler.engine:Ljavax/net/ssl/SSLEngine;
            invokevirtual javax.net.ssl.SSLEngine.getHandshakeStatus:()Ljavax/net/ssl/SSLEngineResult$HandshakeStatus;
            getstatic javax.net.ssl.SSLEngineResult$HandshakeStatus.NOT_HANDSHAKING:Ljavax/net/ssl/SSLEngineResult$HandshakeStatus;
            if_acmpeq 10
         9: .line 1721
            return
        10: .line 1724
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield io.netty.handler.ssl.SslHandler.handshakePromise:Lio/netty/util/concurrent/Promise;
            astore 2 /* p */
        start local 2 // io.netty.util.concurrent.Promise p
        11: .line 1725
            getstatic io.netty.handler.ssl.SslHandler.$assertionsDisabled:Z
            ifne 12
            aload 2 /* p */
            invokeinterface io.netty.util.concurrent.Promise.isDone:()Z
            ifeq 12
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
        12: .line 1729
      StackMap locals: io.netty.util.concurrent.Promise
      StackMap stack:
            aload 0 /* this */
            getfield io.netty.handler.ssl.SslHandler.ctx:Lio/netty/channel/ChannelHandlerContext;
            astore 3 /* ctx */
        start local 3 // io.netty.channel.ChannelHandlerContext ctx
        13: .line 1731
            aload 0 /* this */
            getfield io.netty.handler.ssl.SslHandler.engine:Ljavax/net/ssl/SSLEngine;
            invokevirtual javax.net.ssl.SSLEngine.beginHandshake:()V
        14: .line 1732
            aload 0 /* this */
            aload 3 /* ctx */
            iconst_0
            invokevirtual io.netty.handler.ssl.SslHandler.wrapNonAppData:(Lio/netty/channel/ChannelHandlerContext;Z)Z
            pop
        15: .line 1733
            goto 22
      StackMap locals: io.netty.handler.ssl.SslHandler io.netty.util.concurrent.Promise io.netty.util.concurrent.Promise io.netty.channel.ChannelHandlerContext
      StackMap stack: java.lang.Throwable
        16: astore 4 /* e */
        start local 4 // java.lang.Throwable e
        17: .line 1734
            aload 0 /* this */
            aload 3 /* ctx */
            aload 4 /* e */
            invokevirtual io.netty.handler.ssl.SslHandler.setHandshakeFailure:(Lio/netty/channel/ChannelHandlerContext;Ljava/lang/Throwable;)V
        end local 4 // java.lang.Throwable e
        18: .line 1736
            aload 0 /* this */
            aload 3 /* ctx */
            invokevirtual io.netty.handler.ssl.SslHandler.forceFlush:(Lio/netty/channel/ChannelHandlerContext;)V
            goto 23
        19: .line 1735
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 5
        20: .line 1736
            aload 0 /* this */
            aload 3 /* ctx */
            invokevirtual io.netty.handler.ssl.SslHandler.forceFlush:(Lio/netty/channel/ChannelHandlerContext;)V
        21: .line 1737
            aload 5
            athrow
        22: .line 1736
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 3 /* ctx */
            invokevirtual io.netty.handler.ssl.SslHandler.forceFlush:(Lio/netty/channel/ChannelHandlerContext;)V
        23: .line 1738
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 2 /* p */
            invokevirtual io.netty.handler.ssl.SslHandler.applyHandshakeTimeout:(Lio/netty/util/concurrent/Promise;)V
        24: .line 1739
            return
        end local 3 // io.netty.channel.ChannelHandlerContext ctx
        end local 2 // io.netty.util.concurrent.Promise p
        end local 1 // io.netty.util.concurrent.Promise newHandshakePromise
        end local 0 // io.netty.handler.ssl.SslHandler this
      LocalVariableTable:
        Start  End  Slot                 Name  Signature
            0   25     0                 this  Lio/netty/handler/ssl/SslHandler;
            0   25     1  newHandshakePromise  Lio/netty/util/concurrent/Promise<Lio/netty/channel/Channel;>;
            6    8     2                    p  Lio/netty/util/concurrent/Promise<Lio/netty/channel/Channel;>;
           11   25     2                    p  Lio/netty/util/concurrent/Promise<Lio/netty/channel/Channel;>;
            2    7     3  oldHandshakePromise  Lio/netty/util/concurrent/Promise<Lio/netty/channel/Channel;>;
           13   25     3                  ctx  Lio/netty/channel/ChannelHandlerContext;
           17   18     4                    e  Ljava/lang/Throwable;
      Exception table:
        from    to  target  type
          13    15      16  Class java.lang.Throwable
          13    18      19  any
    Signature: (Lio/netty/util/concurrent/Promise<Lio/netty/channel/Channel;>;)V
    MethodParameters:
                     Name  Flags
      newHandshakePromise  final

  private void applyHandshakeTimeout(io.netty.util.concurrent.Promise<io.netty.channel.Channel>);
    descriptor: (Lio/netty/util/concurrent/Promise;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=6, args_size=2
        start local 0 // io.netty.handler.ssl.SslHandler this
        start local 1 // io.netty.util.concurrent.Promise p
         0: .line 1742
            aload 1 /* p */
            ifnonnull 1
            aload 0 /* this */
            getfield io.netty.handler.ssl.SslHandler.handshakePromise:Lio/netty/util/concurrent/Promise;
            goto 2
      StackMap locals:
      StackMap stack:
         1: aload 1 /* p */
      StackMap locals:
      StackMap stack: io.netty.util.concurrent.Promise
         2: astore 2 /* promise */
        start local 2 // io.netty.util.concurrent.Promise promise
         3: .line 1744
            aload 0 /* this */
            getfield io.netty.handler.ssl.SslHandler.handshakeTimeoutMillis:J
            lstore 3 /* handshakeTimeoutMillis */
        start local 3 // long handshakeTimeoutMillis
         4: .line 1745
            lload 3 /* handshakeTimeoutMillis */
            lconst_0
            lcmp
            ifle 5
            aload 2 /* promise */
            invokeinterface io.netty.util.concurrent.Promise.isDone:()Z
            ifeq 6
         5: .line 1746
      StackMap locals: io.netty.util.concurrent.Promise long
      StackMap stack:
            return
         6: .line 1749
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield io.netty.handler.ssl.SslHandler.ctx:Lio/netty/channel/ChannelHandlerContext;
            invokeinterface io.netty.channel.ChannelHandlerContext.executor:()Lio/netty/util/concurrent/EventExecutor;
            new io.netty.handler.ssl.SslHandler$6
            dup
            aload 0 /* this */
            aload 2 /* promise */
            invokespecial io.netty.handler.ssl.SslHandler$6.<init>:(Lio/netty/handler/ssl/SslHandler;Lio/netty/util/concurrent/Promise;)V
         7: .line 1763
            lload 3 /* handshakeTimeoutMillis */
            getstatic java.util.concurrent.TimeUnit.MILLISECONDS:Ljava/util/concurrent/TimeUnit;
         8: .line 1749
            invokeinterface io.netty.util.concurrent.EventExecutor.schedule:(Ljava/lang/Runnable;JLjava/util/concurrent/TimeUnit;)Lio/netty/util/concurrent/ScheduledFuture;
            astore 5 /* timeoutFuture */
        start local 5 // java.util.concurrent.ScheduledFuture timeoutFuture
         9: .line 1766
            aload 2 /* promise */
            new io.netty.handler.ssl.SslHandler$7
            dup
            aload 0 /* this */
            aload 5 /* timeoutFuture */
            invokespecial io.netty.handler.ssl.SslHandler$7.<init>:(Lio/netty/handler/ssl/SslHandler;Ljava/util/concurrent/ScheduledFuture;)V
            invokeinterface io.netty.util.concurrent.Promise.addListener:(Lio/netty/util/concurrent/GenericFutureListener;)Lio/netty/util/concurrent/Promise;
            pop
        10: .line 1772
            return
        end local 5 // java.util.concurrent.ScheduledFuture timeoutFuture
        end local 3 // long handshakeTimeoutMillis
        end local 2 // io.netty.util.concurrent.Promise promise
        end local 1 // io.netty.util.concurrent.Promise p
        end local 0 // io.netty.handler.ssl.SslHandler this
      LocalVariableTable:
        Start  End  Slot                    Name  Signature
            0   11     0                    this  Lio/netty/handler/ssl/SslHandler;
            0   11     1                       p  Lio/netty/util/concurrent/Promise<Lio/netty/channel/Channel;>;
            3   11     2                 promise  Lio/netty/util/concurrent/Promise<Lio/netty/channel/Channel;>;
            4   11     3  handshakeTimeoutMillis  J
            9   11     5           timeoutFuture  Ljava/util/concurrent/ScheduledFuture<*>;
    Signature: (Lio/netty/util/concurrent/Promise<Lio/netty/channel/Channel;>;)V
    MethodParameters:
      Name  Flags
      p     

  private void forceFlush(io.netty.channel.ChannelHandlerContext);
    descriptor: (Lio/netty/channel/ChannelHandlerContext;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // io.netty.handler.ssl.SslHandler this
        start local 1 // io.netty.channel.ChannelHandlerContext ctx
         0: .line 1775
            aload 0 /* this */
            iconst_0
            putfield io.netty.handler.ssl.SslHandler.needsFlush:Z
         1: .line 1776
            aload 1 /* ctx */
            invokeinterface io.netty.channel.ChannelHandlerContext.flush:()Lio/netty/channel/ChannelHandlerContext;
            pop
         2: .line 1777
            return
        end local 1 // io.netty.channel.ChannelHandlerContext ctx
        end local 0 // io.netty.handler.ssl.SslHandler this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lio/netty/handler/ssl/SslHandler;
            0    3     1   ctx  Lio/netty/channel/ChannelHandlerContext;
    MethodParameters:
      Name  Flags
      ctx   

  public void channelActive(io.netty.channel.ChannelHandlerContext);
    descriptor: (Lio/netty/channel/ChannelHandlerContext;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=2, args_size=2
        start local 0 // io.netty.handler.ssl.SslHandler this
        start local 1 // io.netty.channel.ChannelHandlerContext ctx
         0: .line 1784
            aload 0 /* this */
            getfield io.netty.handler.ssl.SslHandler.startTls:Z
            ifne 2
         1: .line 1785
            aload 0 /* this */
            invokevirtual io.netty.handler.ssl.SslHandler.startHandshakeProcessing:()V
         2: .line 1787
      StackMap locals:
      StackMap stack:
            aload 1 /* ctx */
            invokeinterface io.netty.channel.ChannelHandlerContext.fireChannelActive:()Lio/netty/channel/ChannelHandlerContext;
            pop
         3: .line 1788
            return
        end local 1 // io.netty.channel.ChannelHandlerContext ctx
        end local 0 // io.netty.handler.ssl.SslHandler this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Lio/netty/handler/ssl/SslHandler;
            0    4     1   ctx  Lio/netty/channel/ChannelHandlerContext;
    Exceptions:
      throws java.lang.Exception
    MethodParameters:
      Name  Flags
      ctx   final

  private void safeClose(io.netty.channel.ChannelHandlerContext, io.netty.channel.ChannelFuture, io.netty.channel.ChannelPromise);
    descriptor: (Lio/netty/channel/ChannelHandlerContext;Lio/netty/channel/ChannelFuture;Lio/netty/channel/ChannelPromise;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=7, locals=7, args_size=4
        start local 0 // io.netty.handler.ssl.SslHandler this
        start local 1 // io.netty.channel.ChannelHandlerContext ctx
        start local 2 // io.netty.channel.ChannelFuture flushFuture
        start local 3 // io.netty.channel.ChannelPromise promise
         0: .line 1793
            aload 1 /* ctx */
            invokeinterface io.netty.channel.ChannelHandlerContext.channel:()Lio/netty/channel/Channel;
            invokeinterface io.netty.channel.Channel.isActive:()Z
            ifne 3
         1: .line 1794
            aload 1 /* ctx */
            aload 3 /* promise */
            invokeinterface io.netty.channel.ChannelHandlerContext.close:(Lio/netty/channel/ChannelPromise;)Lio/netty/channel/ChannelFuture;
            pop
         2: .line 1795
            return
         3: .line 1799
      StackMap locals:
      StackMap stack:
            aload 2 /* flushFuture */
            invokeinterface io.netty.channel.ChannelFuture.isDone:()Z
            ifne 12
         4: .line 1800
            aload 0 /* this */
            getfield io.netty.handler.ssl.SslHandler.closeNotifyFlushTimeoutMillis:J
            lstore 5 /* closeNotifyTimeout */
        start local 5 // long closeNotifyTimeout
         5: .line 1801
            lload 5 /* closeNotifyTimeout */
            lconst_0
            lcmp
            ifle 10
         6: .line 1803
            aload 1 /* ctx */
            invokeinterface io.netty.channel.ChannelHandlerContext.executor:()Lio/netty/util/concurrent/EventExecutor;
            new io.netty.handler.ssl.SslHandler$8
            dup
            aload 0 /* this */
            aload 2 /* flushFuture */
            aload 1 /* ctx */
            aload 3 /* promise */
            invokespecial io.netty.handler.ssl.SslHandler$8.<init>:(Lio/netty/handler/ssl/SslHandler;Lio/netty/channel/ChannelFuture;Lio/netty/channel/ChannelHandlerContext;Lio/netty/channel/ChannelPromise;)V
         7: .line 1813
            lload 5 /* closeNotifyTimeout */
            getstatic java.util.concurrent.TimeUnit.MILLISECONDS:Ljava/util/concurrent/TimeUnit;
         8: .line 1803
            invokeinterface io.netty.util.concurrent.EventExecutor.schedule:(Ljava/lang/Runnable;JLjava/util/concurrent/TimeUnit;)Lio/netty/util/concurrent/ScheduledFuture;
            astore 4 /* timeoutFuture */
        start local 4 // java.util.concurrent.ScheduledFuture timeoutFuture
         9: .line 1814
            goto 13
        end local 4 // java.util.concurrent.ScheduledFuture timeoutFuture
        10: .line 1815
      StackMap locals: io.netty.handler.ssl.SslHandler io.netty.channel.ChannelHandlerContext io.netty.channel.ChannelFuture io.netty.channel.ChannelPromise top long
      StackMap stack:
            aconst_null
            astore 4 /* timeoutFuture */
        end local 5 // long closeNotifyTimeout
        start local 4 // java.util.concurrent.ScheduledFuture timeoutFuture
        11: .line 1817
            goto 13
        end local 4 // java.util.concurrent.ScheduledFuture timeoutFuture
        12: .line 1818
      StackMap locals: io.netty.handler.ssl.SslHandler io.netty.channel.ChannelHandlerContext io.netty.channel.ChannelFuture io.netty.channel.ChannelPromise
      StackMap stack:
            aconst_null
            astore 4 /* timeoutFuture */
        start local 4 // java.util.concurrent.ScheduledFuture timeoutFuture
        13: .line 1822
      StackMap locals: java.util.concurrent.ScheduledFuture
      StackMap stack:
            aload 2 /* flushFuture */
            new io.netty.handler.ssl.SslHandler$9
            dup
            aload 0 /* this */
            aload 4 /* timeoutFuture */
            aload 1 /* ctx */
            aload 3 /* promise */
            invokespecial io.netty.handler.ssl.SslHandler$9.<init>:(Lio/netty/handler/ssl/SslHandler;Ljava/util/concurrent/ScheduledFuture;Lio/netty/channel/ChannelHandlerContext;Lio/netty/channel/ChannelPromise;)V
            invokeinterface io.netty.channel.ChannelFuture.addListener:(Lio/netty/util/concurrent/GenericFutureListener;)Lio/netty/channel/ChannelFuture;
            pop
        14: .line 1868
            return
        end local 4 // java.util.concurrent.ScheduledFuture timeoutFuture
        end local 3 // io.netty.channel.ChannelPromise promise
        end local 2 // io.netty.channel.ChannelFuture flushFuture
        end local 1 // io.netty.channel.ChannelHandlerContext ctx
        end local 0 // io.netty.handler.ssl.SslHandler this
      LocalVariableTable:
        Start  End  Slot                Name  Signature
            0   15     0                this  Lio/netty/handler/ssl/SslHandler;
            0   15     1                 ctx  Lio/netty/channel/ChannelHandlerContext;
            0   15     2         flushFuture  Lio/netty/channel/ChannelFuture;
            0   15     3             promise  Lio/netty/channel/ChannelPromise;
            9   10     4       timeoutFuture  Ljava/util/concurrent/ScheduledFuture<*>;
           11   12     4       timeoutFuture  Ljava/util/concurrent/ScheduledFuture<*>;
           13   15     4       timeoutFuture  Ljava/util/concurrent/ScheduledFuture<*>;
            5   11     5  closeNotifyTimeout  J
    MethodParameters:
             Name  Flags
      ctx          final
      flushFuture  final
      promise      final

  private static void addCloseListener(io.netty.channel.ChannelFuture, io.netty.channel.ChannelPromise);
    descriptor: (Lio/netty/channel/ChannelFuture;Lio/netty/channel/ChannelPromise;)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=8, locals=2, args_size=2
        start local 0 // io.netty.channel.ChannelFuture future
        start local 1 // io.netty.channel.ChannelPromise promise
         0: .line 1877
            aload 0 /* future */
            new io.netty.channel.ChannelPromiseNotifier
            dup
            iconst_0
            iconst_1
            anewarray io.netty.channel.ChannelPromise
            dup
            iconst_0
            aload 1 /* promise */
            aastore
            invokespecial io.netty.channel.ChannelPromiseNotifier.<init>:(Z[Lio/netty/channel/ChannelPromise;)V
            invokeinterface io.netty.channel.ChannelFuture.addListener:(Lio/netty/util/concurrent/GenericFutureListener;)Lio/netty/channel/ChannelFuture;
            pop
         1: .line 1878
            return
        end local 1 // io.netty.channel.ChannelPromise promise
        end local 0 // io.netty.channel.ChannelFuture future
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    2     0   future  Lio/netty/channel/ChannelFuture;
            0    2     1  promise  Lio/netty/channel/ChannelPromise;
    MethodParameters:
         Name  Flags
      future   
      promise  

  private io.netty.buffer.ByteBuf allocate(io.netty.channel.ChannelHandlerContext, int);
    descriptor: (Lio/netty/channel/ChannelHandlerContext;I)Lio/netty/buffer/ByteBuf;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=4, args_size=3
        start local 0 // io.netty.handler.ssl.SslHandler this
        start local 1 // io.netty.channel.ChannelHandlerContext ctx
        start local 2 // int capacity
         0: .line 1885
            aload 1 /* ctx */
            invokeinterface io.netty.channel.ChannelHandlerContext.alloc:()Lio/netty/buffer/ByteBufAllocator;
            astore 3 /* alloc */
        start local 3 // io.netty.buffer.ByteBufAllocator alloc
         1: .line 1886
            aload 0 /* this */
            getfield io.netty.handler.ssl.SslHandler.engineType:Lio/netty/handler/ssl/SslHandler$SslEngineType;
            getfield io.netty.handler.ssl.SslHandler$SslEngineType.wantsDirectBuffer:Z
            ifeq 3
         2: .line 1887
            aload 3 /* alloc */
            iload 2 /* capacity */
            invokeinterface io.netty.buffer.ByteBufAllocator.directBuffer:(I)Lio/netty/buffer/ByteBuf;
            areturn
         3: .line 1889
      StackMap locals: io.netty.buffer.ByteBufAllocator
      StackMap stack:
            aload 3 /* alloc */
            iload 2 /* capacity */
            invokeinterface io.netty.buffer.ByteBufAllocator.buffer:(I)Lio/netty/buffer/ByteBuf;
            areturn
        end local 3 // io.netty.buffer.ByteBufAllocator alloc
        end local 2 // int capacity
        end local 1 // io.netty.channel.ChannelHandlerContext ctx
        end local 0 // io.netty.handler.ssl.SslHandler this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    4     0      this  Lio/netty/handler/ssl/SslHandler;
            0    4     1       ctx  Lio/netty/channel/ChannelHandlerContext;
            0    4     2  capacity  I
            1    4     3     alloc  Lio/netty/buffer/ByteBufAllocator;
    MethodParameters:
          Name  Flags
      ctx       
      capacity  

  private io.netty.buffer.ByteBuf allocateOutNetBuf(io.netty.channel.ChannelHandlerContext, int, int);
    descriptor: (Lio/netty/channel/ChannelHandlerContext;II)Lio/netty/buffer/ByteBuf;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=6, locals=4, args_size=4
        start local 0 // io.netty.handler.ssl.SslHandler this
        start local 1 // io.netty.channel.ChannelHandlerContext ctx
        start local 2 // int pendingBytes
        start local 3 // int numComponents
         0: .line 1898
            aload 0 /* this */
            aload 1 /* ctx */
            aload 0 /* this */
            getfield io.netty.handler.ssl.SslHandler.engineType:Lio/netty/handler/ssl/SslHandler$SslEngineType;
            aload 0 /* this */
            iload 2 /* pendingBytes */
            iload 3 /* numComponents */
            invokevirtual io.netty.handler.ssl.SslHandler$SslEngineType.calculateWrapBufferCapacity:(Lio/netty/handler/ssl/SslHandler;II)I
            invokevirtual io.netty.handler.ssl.SslHandler.allocate:(Lio/netty/channel/ChannelHandlerContext;I)Lio/netty/buffer/ByteBuf;
            areturn
        end local 3 // int numComponents
        end local 2 // int pendingBytes
        end local 1 // io.netty.channel.ChannelHandlerContext ctx
        end local 0 // io.netty.handler.ssl.SslHandler this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    1     0           this  Lio/netty/handler/ssl/SslHandler;
            0    1     1            ctx  Lio/netty/channel/ChannelHandlerContext;
            0    1     2   pendingBytes  I
            0    1     3  numComponents  I
    MethodParameters:
               Name  Flags
      ctx            
      pendingBytes   
      numComponents  

  private static boolean attemptCopyToCumulation(io.netty.buffer.ByteBuf, io.netty.buffer.ByteBuf, int);
    descriptor: (Lio/netty/buffer/ByteBuf;Lio/netty/buffer/ByteBuf;I)Z
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=3, locals=5, args_size=3
        start local 0 // io.netty.buffer.ByteBuf cumulation
        start local 1 // io.netty.buffer.ByteBuf next
        start local 2 // int wrapDataSize
         0: .line 1951
            aload 1 /* next */
            invokevirtual io.netty.buffer.ByteBuf.readableBytes:()I
            istore 3 /* inReadableBytes */
        start local 3 // int inReadableBytes
         1: .line 1952
            aload 0 /* cumulation */
            invokevirtual io.netty.buffer.ByteBuf.capacity:()I
            istore 4 /* cumulationCapacity */
        start local 4 // int cumulationCapacity
         2: .line 1953
            iload 2 /* wrapDataSize */
            aload 0 /* cumulation */
            invokevirtual io.netty.buffer.ByteBuf.readableBytes:()I
            isub
            iload 3 /* inReadableBytes */
            if_icmplt 9
         3: .line 1957
            aload 0 /* cumulation */
            iload 3 /* inReadableBytes */
            invokevirtual io.netty.buffer.ByteBuf.isWritable:(I)Z
            ifeq 4
            iload 4 /* cumulationCapacity */
            iload 2 /* wrapDataSize */
            if_icmpge 6
         4: .line 1958
      StackMap locals: int int
      StackMap stack:
            iload 4 /* cumulationCapacity */
            iload 2 /* wrapDataSize */
            if_icmpge 9
         5: .line 1959
            aload 0 /* cumulation */
            iload 3 /* inReadableBytes */
            iconst_0
            invokevirtual io.netty.buffer.ByteBuf.ensureWritable:(IZ)I
            invokestatic io.netty.buffer.ByteBufUtil.ensureWritableSuccess:(I)Z
            ifeq 9
         6: .line 1960
      StackMap locals:
      StackMap stack:
            aload 0 /* cumulation */
            aload 1 /* next */
            invokevirtual io.netty.buffer.ByteBuf.writeBytes:(Lio/netty/buffer/ByteBuf;)Lio/netty/buffer/ByteBuf;
            pop
         7: .line 1961
            aload 1 /* next */
            invokevirtual io.netty.buffer.ByteBuf.release:()Z
            pop
         8: .line 1962
            iconst_1
            ireturn
         9: .line 1964
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
        end local 4 // int cumulationCapacity
        end local 3 // int inReadableBytes
        end local 2 // int wrapDataSize
        end local 1 // io.netty.buffer.ByteBuf next
        end local 0 // io.netty.buffer.ByteBuf cumulation
      LocalVariableTable:
        Start  End  Slot                Name  Signature
            0   10     0          cumulation  Lio/netty/buffer/ByteBuf;
            0   10     1                next  Lio/netty/buffer/ByteBuf;
            0   10     2        wrapDataSize  I
            1   10     3     inReadableBytes  I
            2   10     4  cumulationCapacity  I
    MethodParameters:
              Name  Flags
      cumulation    
      next          
      wrapDataSize  

  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 165
            getstatic io.netty.handler.ssl.SslHandler.$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 io.netty.handler.ssl.SslHandler.$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

  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 165
            getstatic io.netty.handler.ssl.SslHandler.$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 io.netty.handler.ssl.SslHandler.$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
}
SourceFile: "SslHandler.java"
NestMembers:
  io.netty.handler.ssl.SslHandler$1  io.netty.handler.ssl.SslHandler$2  io.netty.handler.ssl.SslHandler$3  io.netty.handler.ssl.SslHandler$4  io.netty.handler.ssl.SslHandler$5  io.netty.handler.ssl.SslHandler$6  io.netty.handler.ssl.SslHandler$7  io.netty.handler.ssl.SslHandler$8  io.netty.handler.ssl.SslHandler$9  io.netty.handler.ssl.SslHandler$9$1  io.netty.handler.ssl.SslHandler$9$2  io.netty.handler.ssl.SslHandler$LazyChannelPromise  io.netty.handler.ssl.SslHandler$SslEngineType  io.netty.handler.ssl.SslHandler$SslEngineType$1  io.netty.handler.ssl.SslHandler$SslEngineType$2  io.netty.handler.ssl.SslHandler$SslEngineType$3  io.netty.handler.ssl.SslHandler$SslHandlerCoalescingBufferQueue
InnerClasses:
  public abstract Cumulator = io.netty.handler.codec.ByteToMessageDecoder$Cumulator of io.netty.handler.codec.ByteToMessageDecoder
  io.netty.handler.ssl.SslHandler$1
  io.netty.handler.ssl.SslHandler$2
  io.netty.handler.ssl.SslHandler$3
  io.netty.handler.ssl.SslHandler$4
  io.netty.handler.ssl.SslHandler$5
  io.netty.handler.ssl.SslHandler$6
  io.netty.handler.ssl.SslHandler$7
  io.netty.handler.ssl.SslHandler$8
  io.netty.handler.ssl.SslHandler$9
  private final LazyChannelPromise = io.netty.handler.ssl.SslHandler$LazyChannelPromise of io.netty.handler.ssl.SslHandler
  private abstract SslEngineType = io.netty.handler.ssl.SslHandler$SslEngineType of io.netty.handler.ssl.SslHandler
  private final SslHandlerCoalescingBufferQueue = io.netty.handler.ssl.SslHandler$SslHandlerCoalescingBufferQueue of io.netty.handler.ssl.SslHandler
  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