public class io.netty.handler.codec.http.websocketx.WebSocket08FrameDecoder extends io.netty.handler.codec.ByteToMessageDecoder implements io.netty.handler.codec.http.websocketx.WebSocketFrameDecoder
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: io.netty.handler.codec.http.websocketx.WebSocket08FrameDecoder
  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 byte OPCODE_CONT;
    descriptor: B
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 0

  private static final byte OPCODE_TEXT;
    descriptor: B
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 1

  private static final byte OPCODE_BINARY;
    descriptor: B
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 2

  private static final byte OPCODE_CLOSE;
    descriptor: B
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 8

  private static final byte OPCODE_PING;
    descriptor: B
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 9

  private static final byte OPCODE_PONG;
    descriptor: B
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 10

  private final long maxFramePayloadLength;
    descriptor: J
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

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

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

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

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

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

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

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

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

  private long framePayloadLength;
    descriptor: J
    flags: (0x0002) ACC_PRIVATE

  private byte[] maskingKey;
    descriptor: [B
    flags: (0x0002) ACC_PRIVATE

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

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

  private io.netty.handler.codec.http.websocketx.WebSocket08FrameDecoder$State state;
    descriptor: Lio/netty/handler/codec/http/websocketx/WebSocket08FrameDecoder$State;
    flags: (0x0002) ACC_PRIVATE

  private static volatile int[] $SWITCH_TABLE$io$netty$handler$codec$http$websocketx$WebSocket08FrameDecoder$State;
    descriptor: [I
    flags: (0x104a) ACC_PRIVATE, ACC_STATIC, ACC_VOLATILE, ACC_SYNTHETIC

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=1, locals=0, args_size=0
         0: .line 87
            ldc Lio/netty/handler/codec/http/websocketx/WebSocket08FrameDecoder;
            invokestatic io.netty.util.internal.logging.InternalLoggerFactory.getInstance:(Ljava/lang/Class;)Lio/netty/util/internal/logging/InternalLogger;
            putstatic io.netty.handler.codec.http.websocketx.WebSocket08FrameDecoder.logger:Lio/netty/util/internal/logging/InternalLogger;
         1: .line 94
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public void <init>(boolean, boolean, int);
    descriptor: (ZZI)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=4, args_size=4
        start local 0 // io.netty.handler.codec.http.websocketx.WebSocket08FrameDecoder this
        start local 1 // boolean expectMaskedFrames
        start local 2 // boolean allowExtensions
        start local 3 // int maxFramePayloadLength
         0: .line 125
            aload 0 /* this */
            iload 1 /* expectMaskedFrames */
            iload 2 /* allowExtensions */
            iload 3 /* maxFramePayloadLength */
            iconst_0
            invokespecial io.netty.handler.codec.http.websocketx.WebSocket08FrameDecoder.<init>:(ZZIZ)V
         1: .line 126
            return
        end local 3 // int maxFramePayloadLength
        end local 2 // boolean allowExtensions
        end local 1 // boolean expectMaskedFrames
        end local 0 // io.netty.handler.codec.http.websocketx.WebSocket08FrameDecoder this
      LocalVariableTable:
        Start  End  Slot                   Name  Signature
            0    2     0                   this  Lio/netty/handler/codec/http/websocketx/WebSocket08FrameDecoder;
            0    2     1     expectMaskedFrames  Z
            0    2     2        allowExtensions  Z
            0    2     3  maxFramePayloadLength  I
    MethodParameters:
                       Name  Flags
      expectMaskedFrames     
      allowExtensions        
      maxFramePayloadLength  

  public void <init>(boolean, boolean, int, boolean);
    descriptor: (ZZIZ)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=5, args_size=5
        start local 0 // io.netty.handler.codec.http.websocketx.WebSocket08FrameDecoder this
        start local 1 // boolean expectMaskedFrames
        start local 2 // boolean allowExtensions
        start local 3 // int maxFramePayloadLength
        start local 4 // boolean allowMaskMismatch
         0: .line 143
            aload 0 /* this */
            invokespecial io.netty.handler.codec.ByteToMessageDecoder.<init>:()V
         1: .line 110
            aload 0 /* this */
            getstatic io.netty.handler.codec.http.websocketx.WebSocket08FrameDecoder$State.READING_FIRST:Lio/netty/handler/codec/http/websocketx/WebSocket08FrameDecoder$State;
            putfield io.netty.handler.codec.http.websocketx.WebSocket08FrameDecoder.state:Lio/netty/handler/codec/http/websocketx/WebSocket08FrameDecoder$State;
         2: .line 145
            aload 0 /* this */
            iload 1 /* expectMaskedFrames */
            putfield io.netty.handler.codec.http.websocketx.WebSocket08FrameDecoder.expectMaskedFrames:Z
         3: .line 146
            aload 0 /* this */
            iload 4 /* allowMaskMismatch */
            putfield io.netty.handler.codec.http.websocketx.WebSocket08FrameDecoder.allowMaskMismatch:Z
         4: .line 147
            aload 0 /* this */
            iload 2 /* allowExtensions */
            putfield io.netty.handler.codec.http.websocketx.WebSocket08FrameDecoder.allowExtensions:Z
         5: .line 148
            aload 0 /* this */
            iload 3 /* maxFramePayloadLength */
            i2l
            putfield io.netty.handler.codec.http.websocketx.WebSocket08FrameDecoder.maxFramePayloadLength:J
         6: .line 149
            return
        end local 4 // boolean allowMaskMismatch
        end local 3 // int maxFramePayloadLength
        end local 2 // boolean allowExtensions
        end local 1 // boolean expectMaskedFrames
        end local 0 // io.netty.handler.codec.http.websocketx.WebSocket08FrameDecoder this
      LocalVariableTable:
        Start  End  Slot                   Name  Signature
            0    7     0                   this  Lio/netty/handler/codec/http/websocketx/WebSocket08FrameDecoder;
            0    7     1     expectMaskedFrames  Z
            0    7     2        allowExtensions  Z
            0    7     3  maxFramePayloadLength  I
            0    7     4      allowMaskMismatch  Z
    MethodParameters:
                       Name  Flags
      expectMaskedFrames     
      allowExtensions        
      maxFramePayloadLength  
      allowMaskMismatch      

  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=6, locals=7, args_size=4
        start local 0 // io.netty.handler.codec.http.websocketx.WebSocket08FrameDecoder 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 155
            aload 0 /* this */
            getfield io.netty.handler.codec.http.websocketx.WebSocket08FrameDecoder.receivedClosingHandshake:Z
            ifeq 3
         1: .line 156
            aload 2 /* in */
            aload 0 /* this */
            invokevirtual io.netty.handler.codec.http.websocketx.WebSocket08FrameDecoder.actualReadableBytes:()I
            invokevirtual io.netty.buffer.ByteBuf.skipBytes:(I)Lio/netty/buffer/ByteBuf;
            pop
         2: .line 157
            return
         3: .line 159
      StackMap locals:
      StackMap stack:
            invokestatic io.netty.handler.codec.http.websocketx.WebSocket08FrameDecoder.$SWITCH_TABLE$io$netty$handler$codec$http$websocketx$WebSocket08FrameDecoder$State:()[I
            aload 0 /* this */
            getfield io.netty.handler.codec.http.websocketx.WebSocket08FrameDecoder.state:Lio/netty/handler/codec/http/websocketx/WebSocket08FrameDecoder$State;
            invokevirtual io.netty.handler.codec.http.websocketx.WebSocket08FrameDecoder$State.ordinal:()I
            iaload
            tableswitch { // 1 - 6
                    1: 4
                    2: 16
                    3: 56
                    4: 77
                    5: 84
                    6: 143
              default: 146
          }
         4: .line 161
      StackMap locals:
      StackMap stack:
            aload 2 /* in */
            invokevirtual io.netty.buffer.ByteBuf.isReadable:()Z
            ifne 6
         5: .line 162
            return
         6: .line 165
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            lconst_0
            putfield io.netty.handler.codec.http.websocketx.WebSocket08FrameDecoder.framePayloadLength:J
         7: .line 168
            aload 2 /* in */
            invokevirtual io.netty.buffer.ByteBuf.readByte:()B
            istore 4 /* b */
        start local 4 // byte b
         8: .line 169
            aload 0 /* this */
            iload 4 /* b */
            sipush 128
            iand
            ifeq 9
            iconst_1
            goto 10
      StackMap locals: io.netty.handler.codec.http.websocketx.WebSocket08FrameDecoder io.netty.channel.ChannelHandlerContext io.netty.buffer.ByteBuf java.util.List int
      StackMap stack: io.netty.handler.codec.http.websocketx.WebSocket08FrameDecoder
         9: iconst_0
      StackMap locals: io.netty.handler.codec.http.websocketx.WebSocket08FrameDecoder io.netty.channel.ChannelHandlerContext io.netty.buffer.ByteBuf java.util.List int
      StackMap stack: io.netty.handler.codec.http.websocketx.WebSocket08FrameDecoder int
        10: putfield io.netty.handler.codec.http.websocketx.WebSocket08FrameDecoder.frameFinalFlag:Z
        11: .line 170
            aload 0 /* this */
            iload 4 /* b */
            bipush 112
            iand
            iconst_4
            ishr
            putfield io.netty.handler.codec.http.websocketx.WebSocket08FrameDecoder.frameRsv:I
        12: .line 171
            aload 0 /* this */
            iload 4 /* b */
            bipush 15
            iand
            putfield io.netty.handler.codec.http.websocketx.WebSocket08FrameDecoder.frameOpcode:I
        13: .line 173
            getstatic io.netty.handler.codec.http.websocketx.WebSocket08FrameDecoder.logger:Lio/netty/util/internal/logging/InternalLogger;
            invokeinterface io.netty.util.internal.logging.InternalLogger.isDebugEnabled:()Z
            ifeq 15
        14: .line 174
            getstatic io.netty.handler.codec.http.websocketx.WebSocket08FrameDecoder.logger:Lio/netty/util/internal/logging/InternalLogger;
            ldc "Decoding WebSocket Frame opCode={}"
            aload 0 /* this */
            getfield io.netty.handler.codec.http.websocketx.WebSocket08FrameDecoder.frameOpcode:I
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            invokeinterface io.netty.util.internal.logging.InternalLogger.debug:(Ljava/lang/String;Ljava/lang/Object;)V
        15: .line 177
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getstatic io.netty.handler.codec.http.websocketx.WebSocket08FrameDecoder$State.READING_SECOND:Lio/netty/handler/codec/http/websocketx/WebSocket08FrameDecoder$State;
            putfield io.netty.handler.codec.http.websocketx.WebSocket08FrameDecoder.state:Lio/netty/handler/codec/http/websocketx/WebSocket08FrameDecoder$State;
        end local 4 // byte b
        16: .line 179
      StackMap locals:
      StackMap stack:
            aload 2 /* in */
            invokevirtual io.netty.buffer.ByteBuf.isReadable:()Z
            ifne 18
        17: .line 180
            return
        18: .line 183
      StackMap locals:
      StackMap stack:
            aload 2 /* in */
            invokevirtual io.netty.buffer.ByteBuf.readByte:()B
            istore 4 /* b */
        start local 4 // byte b
        19: .line 184
            aload 0 /* this */
            iload 4 /* b */
            sipush 128
            iand
            ifeq 20
            iconst_1
            goto 21
      StackMap locals: io.netty.handler.codec.http.websocketx.WebSocket08FrameDecoder io.netty.channel.ChannelHandlerContext io.netty.buffer.ByteBuf java.util.List int
      StackMap stack: io.netty.handler.codec.http.websocketx.WebSocket08FrameDecoder
        20: iconst_0
      StackMap locals: io.netty.handler.codec.http.websocketx.WebSocket08FrameDecoder io.netty.channel.ChannelHandlerContext io.netty.buffer.ByteBuf java.util.List int
      StackMap stack: io.netty.handler.codec.http.websocketx.WebSocket08FrameDecoder int
        21: putfield io.netty.handler.codec.http.websocketx.WebSocket08FrameDecoder.frameMasked:Z
        22: .line 185
            aload 0 /* this */
            iload 4 /* b */
            bipush 127
            iand
            putfield io.netty.handler.codec.http.websocketx.WebSocket08FrameDecoder.framePayloadLen1:I
        23: .line 187
            aload 0 /* this */
            getfield io.netty.handler.codec.http.websocketx.WebSocket08FrameDecoder.frameRsv:I
            ifeq 26
            aload 0 /* this */
            getfield io.netty.handler.codec.http.websocketx.WebSocket08FrameDecoder.allowExtensions:Z
            ifne 26
        24: .line 188
            aload 0 /* this */
            aload 1 /* ctx */
            new java.lang.StringBuilder
            dup
            ldc "RSV != 0 and no extension negotiated, RSV:"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* this */
            getfield io.netty.handler.codec.http.websocketx.WebSocket08FrameDecoder.frameRsv:I
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual io.netty.handler.codec.http.websocketx.WebSocket08FrameDecoder.protocolViolation:(Lio/netty/channel/ChannelHandlerContext;Ljava/lang/String;)V
        25: .line 189
            return
        26: .line 192
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield io.netty.handler.codec.http.websocketx.WebSocket08FrameDecoder.allowMaskMismatch:Z
            ifne 29
            aload 0 /* this */
            getfield io.netty.handler.codec.http.websocketx.WebSocket08FrameDecoder.expectMaskedFrames:Z
            aload 0 /* this */
            getfield io.netty.handler.codec.http.websocketx.WebSocket08FrameDecoder.frameMasked:Z
            if_icmpeq 29
        27: .line 193
            aload 0 /* this */
            aload 1 /* ctx */
            ldc "received a frame that is not masked as expected"
            invokevirtual io.netty.handler.codec.http.websocketx.WebSocket08FrameDecoder.protocolViolation:(Lio/netty/channel/ChannelHandlerContext;Ljava/lang/String;)V
        28: .line 194
            return
        29: .line 197
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield io.netty.handler.codec.http.websocketx.WebSocket08FrameDecoder.frameOpcode:I
            bipush 7
            if_icmple 43
        30: .line 200
            aload 0 /* this */
            getfield io.netty.handler.codec.http.websocketx.WebSocket08FrameDecoder.frameFinalFlag:Z
            ifne 33
        31: .line 201
            aload 0 /* this */
            aload 1 /* ctx */
            ldc "fragmented control frame"
            invokevirtual io.netty.handler.codec.http.websocketx.WebSocket08FrameDecoder.protocolViolation:(Lio/netty/channel/ChannelHandlerContext;Ljava/lang/String;)V
        32: .line 202
            return
        33: .line 206
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield io.netty.handler.codec.http.websocketx.WebSocket08FrameDecoder.framePayloadLen1:I
            bipush 125
            if_icmple 36
        34: .line 207
            aload 0 /* this */
            aload 1 /* ctx */
            ldc "control frame with payload length > 125 octets"
            invokevirtual io.netty.handler.codec.http.websocketx.WebSocket08FrameDecoder.protocolViolation:(Lio/netty/channel/ChannelHandlerContext;Ljava/lang/String;)V
        35: .line 208
            return
        36: .line 212
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield io.netty.handler.codec.http.websocketx.WebSocket08FrameDecoder.frameOpcode:I
            bipush 8
            if_icmpeq 40
            aload 0 /* this */
            getfield io.netty.handler.codec.http.websocketx.WebSocket08FrameDecoder.frameOpcode:I
            bipush 9
            if_icmpeq 40
        37: .line 213
            aload 0 /* this */
            getfield io.netty.handler.codec.http.websocketx.WebSocket08FrameDecoder.frameOpcode:I
            bipush 10
            if_icmpeq 40
        38: .line 214
            aload 0 /* this */
            aload 1 /* ctx */
            new java.lang.StringBuilder
            dup
            ldc "control frame using reserved opcode "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* this */
            getfield io.netty.handler.codec.http.websocketx.WebSocket08FrameDecoder.frameOpcode:I
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual io.netty.handler.codec.http.websocketx.WebSocket08FrameDecoder.protocolViolation:(Lio/netty/channel/ChannelHandlerContext;Ljava/lang/String;)V
        39: .line 215
            return
        40: .line 221
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield io.netty.handler.codec.http.websocketx.WebSocket08FrameDecoder.frameOpcode:I
            bipush 8
            if_icmpne 55
            aload 0 /* this */
            getfield io.netty.handler.codec.http.websocketx.WebSocket08FrameDecoder.framePayloadLen1:I
            iconst_1
            if_icmpne 55
        41: .line 222
            aload 0 /* this */
            aload 1 /* ctx */
            ldc "received close control frame with payload len 1"
            invokevirtual io.netty.handler.codec.http.websocketx.WebSocket08FrameDecoder.protocolViolation:(Lio/netty/channel/ChannelHandlerContext;Ljava/lang/String;)V
        42: .line 223
            return
        43: .line 227
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield io.netty.handler.codec.http.websocketx.WebSocket08FrameDecoder.frameOpcode:I
            ifeq 47
            aload 0 /* this */
            getfield io.netty.handler.codec.http.websocketx.WebSocket08FrameDecoder.frameOpcode:I
            iconst_1
            if_icmpeq 47
        44: .line 228
            aload 0 /* this */
            getfield io.netty.handler.codec.http.websocketx.WebSocket08FrameDecoder.frameOpcode:I
            iconst_2
            if_icmpeq 47
        45: .line 229
            aload 0 /* this */
            aload 1 /* ctx */
            new java.lang.StringBuilder
            dup
            ldc "data frame using reserved opcode "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* this */
            getfield io.netty.handler.codec.http.websocketx.WebSocket08FrameDecoder.frameOpcode:I
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual io.netty.handler.codec.http.websocketx.WebSocket08FrameDecoder.protocolViolation:(Lio/netty/channel/ChannelHandlerContext;Ljava/lang/String;)V
        46: .line 230
            return
        47: .line 234
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield io.netty.handler.codec.http.websocketx.WebSocket08FrameDecoder.fragmentedFramesCount:I
            ifne 50
            aload 0 /* this */
            getfield io.netty.handler.codec.http.websocketx.WebSocket08FrameDecoder.frameOpcode:I
            ifne 50
        48: .line 235
            aload 0 /* this */
            aload 1 /* ctx */
            ldc "received continuation data frame outside fragmented message"
            invokevirtual io.netty.handler.codec.http.websocketx.WebSocket08FrameDecoder.protocolViolation:(Lio/netty/channel/ChannelHandlerContext;Ljava/lang/String;)V
        49: .line 236
            return
        50: .line 240
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield io.netty.handler.codec.http.websocketx.WebSocket08FrameDecoder.fragmentedFramesCount:I
            ifeq 55
            aload 0 /* this */
            getfield io.netty.handler.codec.http.websocketx.WebSocket08FrameDecoder.frameOpcode:I
            ifeq 55
            aload 0 /* this */
            getfield io.netty.handler.codec.http.websocketx.WebSocket08FrameDecoder.frameOpcode:I
            bipush 9
            if_icmpeq 55
        51: .line 241
            aload 0 /* this */
            aload 1 /* ctx */
        52: .line 242
            ldc "received non-continuation data frame while inside fragmented message"
        53: .line 241
            invokevirtual io.netty.handler.codec.http.websocketx.WebSocket08FrameDecoder.protocolViolation:(Lio/netty/channel/ChannelHandlerContext;Ljava/lang/String;)V
        54: .line 243
            return
        55: .line 247
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getstatic io.netty.handler.codec.http.websocketx.WebSocket08FrameDecoder$State.READING_SIZE:Lio/netty/handler/codec/http/websocketx/WebSocket08FrameDecoder$State;
            putfield io.netty.handler.codec.http.websocketx.WebSocket08FrameDecoder.state:Lio/netty/handler/codec/http/websocketx/WebSocket08FrameDecoder$State;
        end local 4 // byte b
        56: .line 251
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield io.netty.handler.codec.http.websocketx.WebSocket08FrameDecoder.framePayloadLen1:I
            bipush 126
            if_icmpne 63
        57: .line 252
            aload 2 /* in */
            invokevirtual io.netty.buffer.ByteBuf.readableBytes:()I
            iconst_2
            if_icmpge 59
        58: .line 253
            return
        59: .line 255
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 2 /* in */
            invokevirtual io.netty.buffer.ByteBuf.readUnsignedShort:()I
            i2l
            putfield io.netty.handler.codec.http.websocketx.WebSocket08FrameDecoder.framePayloadLength:J
        60: .line 256
            aload 0 /* this */
            getfield io.netty.handler.codec.http.websocketx.WebSocket08FrameDecoder.framePayloadLength:J
            ldc 126
            lcmp
            ifge 71
        61: .line 257
            aload 0 /* this */
            aload 1 /* ctx */
            ldc "invalid data frame length (not using minimal length encoding)"
            invokevirtual io.netty.handler.codec.http.websocketx.WebSocket08FrameDecoder.protocolViolation:(Lio/netty/channel/ChannelHandlerContext;Ljava/lang/String;)V
        62: .line 258
            return
        63: .line 260
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield io.netty.handler.codec.http.websocketx.WebSocket08FrameDecoder.framePayloadLen1:I
            bipush 127
            if_icmpne 70
        64: .line 261
            aload 2 /* in */
            invokevirtual io.netty.buffer.ByteBuf.readableBytes:()I
            bipush 8
            if_icmpge 66
        65: .line 262
            return
        66: .line 264
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 2 /* in */
            invokevirtual io.netty.buffer.ByteBuf.readLong:()J
            putfield io.netty.handler.codec.http.websocketx.WebSocket08FrameDecoder.framePayloadLength:J
        67: .line 268
            aload 0 /* this */
            getfield io.netty.handler.codec.http.websocketx.WebSocket08FrameDecoder.framePayloadLength:J
            ldc 65536
            lcmp
            ifge 71
        68: .line 269
            aload 0 /* this */
            aload 1 /* ctx */
            ldc "invalid data frame length (not using minimal length encoding)"
            invokevirtual io.netty.handler.codec.http.websocketx.WebSocket08FrameDecoder.protocolViolation:(Lio/netty/channel/ChannelHandlerContext;Ljava/lang/String;)V
        69: .line 270
            return
        70: .line 273
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 0 /* this */
            getfield io.netty.handler.codec.http.websocketx.WebSocket08FrameDecoder.framePayloadLen1:I
            i2l
            putfield io.netty.handler.codec.http.websocketx.WebSocket08FrameDecoder.framePayloadLength:J
        71: .line 276
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield io.netty.handler.codec.http.websocketx.WebSocket08FrameDecoder.framePayloadLength:J
            aload 0 /* this */
            getfield io.netty.handler.codec.http.websocketx.WebSocket08FrameDecoder.maxFramePayloadLength:J
            lcmp
            ifle 74
        72: .line 277
            aload 0 /* this */
            aload 1 /* ctx */
            new java.lang.StringBuilder
            dup
            ldc "Max frame length of "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* this */
            getfield io.netty.handler.codec.http.websocketx.WebSocket08FrameDecoder.maxFramePayloadLength:J
            invokevirtual java.lang.StringBuilder.append:(J)Ljava/lang/StringBuilder;
            ldc " has been exceeded."
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual io.netty.handler.codec.http.websocketx.WebSocket08FrameDecoder.protocolViolation:(Lio/netty/channel/ChannelHandlerContext;Ljava/lang/String;)V
        73: .line 278
            return
        74: .line 281
      StackMap locals:
      StackMap stack:
            getstatic io.netty.handler.codec.http.websocketx.WebSocket08FrameDecoder.logger:Lio/netty/util/internal/logging/InternalLogger;
            invokeinterface io.netty.util.internal.logging.InternalLogger.isDebugEnabled:()Z
            ifeq 76
        75: .line 282
            getstatic io.netty.handler.codec.http.websocketx.WebSocket08FrameDecoder.logger:Lio/netty/util/internal/logging/InternalLogger;
            ldc "Decoding WebSocket Frame length={}"
            aload 0 /* this */
            getfield io.netty.handler.codec.http.websocketx.WebSocket08FrameDecoder.framePayloadLength:J
            invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
            invokeinterface io.netty.util.internal.logging.InternalLogger.debug:(Ljava/lang/String;Ljava/lang/Object;)V
        76: .line 285
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getstatic io.netty.handler.codec.http.websocketx.WebSocket08FrameDecoder$State.MASKING_KEY:Lio/netty/handler/codec/http/websocketx/WebSocket08FrameDecoder$State;
            putfield io.netty.handler.codec.http.websocketx.WebSocket08FrameDecoder.state:Lio/netty/handler/codec/http/websocketx/WebSocket08FrameDecoder$State;
        77: .line 287
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield io.netty.handler.codec.http.websocketx.WebSocket08FrameDecoder.frameMasked:Z
            ifeq 83
        78: .line 288
            aload 2 /* in */
            invokevirtual io.netty.buffer.ByteBuf.readableBytes:()I
            iconst_4
            if_icmpge 80
        79: .line 289
            return
        80: .line 291
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield io.netty.handler.codec.http.websocketx.WebSocket08FrameDecoder.maskingKey:[B
            ifnonnull 82
        81: .line 292
            aload 0 /* this */
            iconst_4
            newarray 8
            putfield io.netty.handler.codec.http.websocketx.WebSocket08FrameDecoder.maskingKey:[B
        82: .line 294
      StackMap locals:
      StackMap stack:
            aload 2 /* in */
            aload 0 /* this */
            getfield io.netty.handler.codec.http.websocketx.WebSocket08FrameDecoder.maskingKey:[B
            invokevirtual io.netty.buffer.ByteBuf.readBytes:([B)Lio/netty/buffer/ByteBuf;
            pop
        83: .line 296
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getstatic io.netty.handler.codec.http.websocketx.WebSocket08FrameDecoder$State.PAYLOAD:Lio/netty/handler/codec/http/websocketx/WebSocket08FrameDecoder$State;
            putfield io.netty.handler.codec.http.websocketx.WebSocket08FrameDecoder.state:Lio/netty/handler/codec/http/websocketx/WebSocket08FrameDecoder$State;
        84: .line 298
      StackMap locals:
      StackMap stack:
            aload 2 /* in */
            invokevirtual io.netty.buffer.ByteBuf.readableBytes:()I
            i2l
            aload 0 /* this */
            getfield io.netty.handler.codec.http.websocketx.WebSocket08FrameDecoder.framePayloadLength:J
            lcmp
            ifge 86
        85: .line 299
            return
        86: .line 302
      StackMap locals:
      StackMap stack:
            aconst_null
            astore 5 /* payloadBuffer */
        start local 5 // io.netty.buffer.ByteBuf payloadBuffer
        87: .line 304
            aload 1 /* ctx */
            invokeinterface io.netty.channel.ChannelHandlerContext.alloc:()Lio/netty/buffer/ByteBufAllocator;
            aload 2 /* in */
            aload 0 /* this */
            getfield io.netty.handler.codec.http.websocketx.WebSocket08FrameDecoder.framePayloadLength:J
            invokestatic io.netty.handler.codec.http.websocketx.WebSocket08FrameDecoder.toFrameLength:(J)I
            invokestatic io.netty.buffer.ByteBufUtil.readBytes:(Lio/netty/buffer/ByteBufAllocator;Lio/netty/buffer/ByteBuf;I)Lio/netty/buffer/ByteBuf;
            astore 5 /* payloadBuffer */
        88: .line 308
            aload 0 /* this */
            getstatic io.netty.handler.codec.http.websocketx.WebSocket08FrameDecoder$State.READING_FIRST:Lio/netty/handler/codec/http/websocketx/WebSocket08FrameDecoder$State;
            putfield io.netty.handler.codec.http.websocketx.WebSocket08FrameDecoder.state:Lio/netty/handler/codec/http/websocketx/WebSocket08FrameDecoder$State;
        89: .line 311
            aload 0 /* this */
            getfield io.netty.handler.codec.http.websocketx.WebSocket08FrameDecoder.frameMasked:Z
            ifeq 91
        90: .line 312
            aload 0 /* this */
            aload 5 /* payloadBuffer */
            invokevirtual io.netty.handler.codec.http.websocketx.WebSocket08FrameDecoder.unmask:(Lio/netty/buffer/ByteBuf;)V
        91: .line 317
      StackMap locals: io.netty.handler.codec.http.websocketx.WebSocket08FrameDecoder io.netty.channel.ChannelHandlerContext io.netty.buffer.ByteBuf java.util.List top io.netty.buffer.ByteBuf
      StackMap stack:
            aload 0 /* this */
            getfield io.netty.handler.codec.http.websocketx.WebSocket08FrameDecoder.frameOpcode:I
            bipush 9
            if_icmpne 97
        92: .line 318
            aload 3 /* out */
            new io.netty.handler.codec.http.websocketx.PingWebSocketFrame
            dup
            aload 0 /* this */
            getfield io.netty.handler.codec.http.websocketx.WebSocket08FrameDecoder.frameFinalFlag:Z
            aload 0 /* this */
            getfield io.netty.handler.codec.http.websocketx.WebSocket08FrameDecoder.frameRsv:I
            aload 5 /* payloadBuffer */
            invokespecial io.netty.handler.codec.http.websocketx.PingWebSocketFrame.<init>:(ZILio/netty/buffer/ByteBuf;)V
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        93: .line 319
            aconst_null
            astore 5 /* payloadBuffer */
        94: .line 367
            aload 5 /* payloadBuffer */
            ifnull 96
        95: .line 368
            aload 5 /* payloadBuffer */
            invokevirtual io.netty.buffer.ByteBuf.release:()Z
            pop
        96: .line 320
      StackMap locals:
      StackMap stack:
            return
        97: .line 322
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield io.netty.handler.codec.http.websocketx.WebSocket08FrameDecoder.frameOpcode:I
            bipush 10
            if_icmpne 103
        98: .line 323
            aload 3 /* out */
            new io.netty.handler.codec.http.websocketx.PongWebSocketFrame
            dup
            aload 0 /* this */
            getfield io.netty.handler.codec.http.websocketx.WebSocket08FrameDecoder.frameFinalFlag:Z
            aload 0 /* this */
            getfield io.netty.handler.codec.http.websocketx.WebSocket08FrameDecoder.frameRsv:I
            aload 5 /* payloadBuffer */
            invokespecial io.netty.handler.codec.http.websocketx.PongWebSocketFrame.<init>:(ZILio/netty/buffer/ByteBuf;)V
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        99: .line 324
            aconst_null
            astore 5 /* payloadBuffer */
       100: .line 367
            aload 5 /* payloadBuffer */
            ifnull 102
       101: .line 368
            aload 5 /* payloadBuffer */
            invokevirtual io.netty.buffer.ByteBuf.release:()Z
            pop
       102: .line 325
      StackMap locals:
      StackMap stack:
            return
       103: .line 327
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield io.netty.handler.codec.http.websocketx.WebSocket08FrameDecoder.frameOpcode:I
            bipush 8
            if_icmpne 111
       104: .line 328
            aload 0 /* this */
            iconst_1
            putfield io.netty.handler.codec.http.websocketx.WebSocket08FrameDecoder.receivedClosingHandshake:Z
       105: .line 329
            aload 0 /* this */
            aload 1 /* ctx */
            aload 5 /* payloadBuffer */
            invokevirtual io.netty.handler.codec.http.websocketx.WebSocket08FrameDecoder.checkCloseFrameBody:(Lio/netty/channel/ChannelHandlerContext;Lio/netty/buffer/ByteBuf;)V
       106: .line 330
            aload 3 /* out */
            new io.netty.handler.codec.http.websocketx.CloseWebSocketFrame
            dup
            aload 0 /* this */
            getfield io.netty.handler.codec.http.websocketx.WebSocket08FrameDecoder.frameFinalFlag:Z
            aload 0 /* this */
            getfield io.netty.handler.codec.http.websocketx.WebSocket08FrameDecoder.frameRsv:I
            aload 5 /* payloadBuffer */
            invokespecial io.netty.handler.codec.http.websocketx.CloseWebSocketFrame.<init>:(ZILio/netty/buffer/ByteBuf;)V
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
       107: .line 331
            aconst_null
            astore 5 /* payloadBuffer */
       108: .line 367
            aload 5 /* payloadBuffer */
            ifnull 110
       109: .line 368
            aload 5 /* payloadBuffer */
            invokevirtual io.netty.buffer.ByteBuf.release:()Z
            pop
       110: .line 332
      StackMap locals:
      StackMap stack:
            return
       111: .line 337
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield io.netty.handler.codec.http.websocketx.WebSocket08FrameDecoder.frameFinalFlag:Z
            ifeq 115
       112: .line 340
            aload 0 /* this */
            getfield io.netty.handler.codec.http.websocketx.WebSocket08FrameDecoder.frameOpcode:I
            bipush 9
            if_icmpeq 116
       113: .line 341
            aload 0 /* this */
            iconst_0
            putfield io.netty.handler.codec.http.websocketx.WebSocket08FrameDecoder.fragmentedFramesCount:I
       114: .line 343
            goto 116
       115: .line 345
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            dup
            getfield io.netty.handler.codec.http.websocketx.WebSocket08FrameDecoder.fragmentedFramesCount:I
            iconst_1
            iadd
            putfield io.netty.handler.codec.http.websocketx.WebSocket08FrameDecoder.fragmentedFramesCount:I
       116: .line 349
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield io.netty.handler.codec.http.websocketx.WebSocket08FrameDecoder.frameOpcode:I
            iconst_1
            if_icmpne 122
       117: .line 350
            aload 3 /* out */
            new io.netty.handler.codec.http.websocketx.TextWebSocketFrame
            dup
            aload 0 /* this */
            getfield io.netty.handler.codec.http.websocketx.WebSocket08FrameDecoder.frameFinalFlag:Z
            aload 0 /* this */
            getfield io.netty.handler.codec.http.websocketx.WebSocket08FrameDecoder.frameRsv:I
            aload 5 /* payloadBuffer */
            invokespecial io.netty.handler.codec.http.websocketx.TextWebSocketFrame.<init>:(ZILio/netty/buffer/ByteBuf;)V
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
       118: .line 351
            aconst_null
            astore 5 /* payloadBuffer */
       119: .line 367
            aload 5 /* payloadBuffer */
            ifnull 121
       120: .line 368
            aload 5 /* payloadBuffer */
            invokevirtual io.netty.buffer.ByteBuf.release:()Z
            pop
       121: .line 352
      StackMap locals:
      StackMap stack:
            return
       122: .line 353
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield io.netty.handler.codec.http.websocketx.WebSocket08FrameDecoder.frameOpcode:I
            iconst_2
            if_icmpne 128
       123: .line 354
            aload 3 /* out */
            new io.netty.handler.codec.http.websocketx.BinaryWebSocketFrame
            dup
            aload 0 /* this */
            getfield io.netty.handler.codec.http.websocketx.WebSocket08FrameDecoder.frameFinalFlag:Z
            aload 0 /* this */
            getfield io.netty.handler.codec.http.websocketx.WebSocket08FrameDecoder.frameRsv:I
            aload 5 /* payloadBuffer */
            invokespecial io.netty.handler.codec.http.websocketx.BinaryWebSocketFrame.<init>:(ZILio/netty/buffer/ByteBuf;)V
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
       124: .line 355
            aconst_null
            astore 5 /* payloadBuffer */
       125: .line 367
            aload 5 /* payloadBuffer */
            ifnull 127
       126: .line 368
            aload 5 /* payloadBuffer */
            invokevirtual io.netty.buffer.ByteBuf.release:()Z
            pop
       127: .line 356
      StackMap locals:
      StackMap stack:
            return
       128: .line 357
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield io.netty.handler.codec.http.websocketx.WebSocket08FrameDecoder.frameOpcode:I
            ifne 136
       129: .line 358
            aload 3 /* out */
            new io.netty.handler.codec.http.websocketx.ContinuationWebSocketFrame
            dup
            aload 0 /* this */
            getfield io.netty.handler.codec.http.websocketx.WebSocket08FrameDecoder.frameFinalFlag:Z
            aload 0 /* this */
            getfield io.netty.handler.codec.http.websocketx.WebSocket08FrameDecoder.frameRsv:I
       130: .line 359
            aload 5 /* payloadBuffer */
            invokespecial io.netty.handler.codec.http.websocketx.ContinuationWebSocketFrame.<init>:(ZILio/netty/buffer/ByteBuf;)V
       131: .line 358
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
       132: .line 360
            aconst_null
            astore 5 /* payloadBuffer */
       133: .line 367
            aload 5 /* payloadBuffer */
            ifnull 135
       134: .line 368
            aload 5 /* payloadBuffer */
            invokevirtual io.netty.buffer.ByteBuf.release:()Z
            pop
       135: .line 361
      StackMap locals:
      StackMap stack:
            return
       136: .line 363
      StackMap locals:
      StackMap stack:
            new java.lang.UnsupportedOperationException
            dup
            new java.lang.StringBuilder
            dup
            ldc "Cannot decode web socket frame with opcode: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
       137: .line 364
            aload 0 /* this */
            getfield io.netty.handler.codec.http.websocketx.WebSocket08FrameDecoder.frameOpcode:I
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
       138: .line 363
            invokespecial java.lang.UnsupportedOperationException.<init>:(Ljava/lang/String;)V
            athrow
       139: .line 366
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 6
       140: .line 367
            aload 5 /* payloadBuffer */
            ifnull 142
       141: .line 368
            aload 5 /* payloadBuffer */
            invokevirtual io.netty.buffer.ByteBuf.release:()Z
            pop
       142: .line 370
      StackMap locals: java.lang.Throwable
      StackMap stack:
            aload 6
            athrow
        end local 5 // io.netty.buffer.ByteBuf payloadBuffer
       143: .line 372
      StackMap locals: io.netty.handler.codec.http.websocketx.WebSocket08FrameDecoder io.netty.channel.ChannelHandlerContext io.netty.buffer.ByteBuf java.util.List
      StackMap stack:
            aload 2 /* in */
            invokevirtual io.netty.buffer.ByteBuf.isReadable:()Z
            ifeq 145
       144: .line 375
            aload 2 /* in */
            invokevirtual io.netty.buffer.ByteBuf.readByte:()B
            pop
       145: .line 377
      StackMap locals:
      StackMap stack:
            return
       146: .line 379
      StackMap locals:
      StackMap stack:
            new java.lang.Error
            dup
            ldc "Shouldn't reach here."
            invokespecial java.lang.Error.<init>:(Ljava/lang/String;)V
            athrow
        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.codec.http.websocketx.WebSocket08FrameDecoder this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0  147     0           this  Lio/netty/handler/codec/http/websocketx/WebSocket08FrameDecoder;
            0  147     1            ctx  Lio/netty/channel/ChannelHandlerContext;
            0  147     2             in  Lio/netty/buffer/ByteBuf;
            0  147     3            out  Ljava/util/List<Ljava/lang/Object;>;
            8   16     4              b  B
           19   56     4              b  B
           87  143     5  payloadBuffer  Lio/netty/buffer/ByteBuf;
      Exception table:
        from    to  target  type
          87    94     139  any
          97   100     139  any
         103   108     139  any
         111   119     139  any
         122   125     139  any
         128   133     139  any
         136   139     139  any
    Exceptions:
      throws java.lang.Exception
    Signature: (Lio/netty/channel/ChannelHandlerContext;Lio/netty/buffer/ByteBuf;Ljava/util/List<Ljava/lang/Object;>;)V
    MethodParameters:
      Name  Flags
      ctx   
      in    
      out   

  private void unmask(io.netty.buffer.ByteBuf);
    descriptor: (Lio/netty/buffer/ByteBuf;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=6, locals=7, args_size=2
        start local 0 // io.netty.handler.codec.http.websocketx.WebSocket08FrameDecoder this
        start local 1 // io.netty.buffer.ByteBuf frame
         0: .line 384
            aload 1 /* frame */
            invokevirtual io.netty.buffer.ByteBuf.readerIndex:()I
            istore 2 /* i */
        start local 2 // int i
         1: .line 385
            aload 1 /* frame */
            invokevirtual io.netty.buffer.ByteBuf.writerIndex:()I
            istore 3 /* end */
        start local 3 // int end
         2: .line 387
            aload 1 /* frame */
            invokevirtual io.netty.buffer.ByteBuf.order:()Ljava/nio/ByteOrder;
            astore 4 /* order */
        start local 4 // java.nio.ByteOrder order
         3: .line 391
            aload 0 /* this */
            getfield io.netty.handler.codec.http.websocketx.WebSocket08FrameDecoder.maskingKey:[B
            iconst_0
            baload
            sipush 255
            iand
            bipush 24
            ishl
         4: .line 392
            aload 0 /* this */
            getfield io.netty.handler.codec.http.websocketx.WebSocket08FrameDecoder.maskingKey:[B
            iconst_1
            baload
            sipush 255
            iand
            bipush 16
            ishl
         5: .line 391
            ior
         6: .line 393
            aload 0 /* this */
            getfield io.netty.handler.codec.http.websocketx.WebSocket08FrameDecoder.maskingKey:[B
            iconst_2
            baload
            sipush 255
            iand
            bipush 8
            ishl
         7: .line 391
            ior
         8: .line 394
            aload 0 /* this */
            getfield io.netty.handler.codec.http.websocketx.WebSocket08FrameDecoder.maskingKey:[B
            iconst_3
            baload
            sipush 255
            iand
         9: .line 391
            ior
            istore 5 /* intMask */
        start local 5 // int intMask
        10: .line 398
            aload 4 /* order */
            getstatic java.nio.ByteOrder.LITTLE_ENDIAN:Ljava/nio/ByteOrder;
            if_acmpne 16
        11: .line 399
            iload 5 /* intMask */
            invokestatic java.lang.Integer.reverseBytes:(I)I
            istore 5 /* intMask */
        12: .line 402
            goto 16
        13: .line 403
      StackMap locals: io.netty.handler.codec.http.websocketx.WebSocket08FrameDecoder io.netty.buffer.ByteBuf int int java.nio.ByteOrder int
      StackMap stack:
            aload 1 /* frame */
            iload 2 /* i */
            invokevirtual io.netty.buffer.ByteBuf.getInt:(I)I
            iload 5 /* intMask */
            ixor
            istore 6 /* unmasked */
        start local 6 // int unmasked
        14: .line 404
            aload 1 /* frame */
            iload 2 /* i */
            iload 6 /* unmasked */
            invokevirtual io.netty.buffer.ByteBuf.setInt:(II)Lio/netty/buffer/ByteBuf;
            pop
        end local 6 // int unmasked
        15: .line 402
            iinc 2 /* i */ 4
      StackMap locals:
      StackMap stack:
        16: iload 2 /* i */
            iconst_3
            iadd
            iload 3 /* end */
            if_icmplt 13
        17: .line 406
            goto 20
        18: .line 407
      StackMap locals:
      StackMap stack:
            aload 1 /* frame */
            iload 2 /* i */
            aload 1 /* frame */
            iload 2 /* i */
            invokevirtual io.netty.buffer.ByteBuf.getByte:(I)B
            aload 0 /* this */
            getfield io.netty.handler.codec.http.websocketx.WebSocket08FrameDecoder.maskingKey:[B
            iload 2 /* i */
            iconst_4
            irem
            baload
            ixor
            invokevirtual io.netty.buffer.ByteBuf.setByte:(II)Lio/netty/buffer/ByteBuf;
            pop
        19: .line 406
            iinc 2 /* i */ 1
      StackMap locals:
      StackMap stack:
        20: iload 2 /* i */
            iload 3 /* end */
            if_icmplt 18
        21: .line 409
            return
        end local 5 // int intMask
        end local 4 // java.nio.ByteOrder order
        end local 3 // int end
        end local 2 // int i
        end local 1 // io.netty.buffer.ByteBuf frame
        end local 0 // io.netty.handler.codec.http.websocketx.WebSocket08FrameDecoder this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   22     0      this  Lio/netty/handler/codec/http/websocketx/WebSocket08FrameDecoder;
            0   22     1     frame  Lio/netty/buffer/ByteBuf;
            1   22     2         i  I
            2   22     3       end  I
            3   22     4     order  Ljava/nio/ByteOrder;
           10   22     5   intMask  I
           14   15     6  unmasked  I
    MethodParameters:
       Name  Flags
      frame  

  private void protocolViolation(io.netty.channel.ChannelHandlerContext, java.lang.String);
    descriptor: (Lio/netty/channel/ChannelHandlerContext;Ljava/lang/String;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=3, args_size=3
        start local 0 // io.netty.handler.codec.http.websocketx.WebSocket08FrameDecoder this
        start local 1 // io.netty.channel.ChannelHandlerContext ctx
        start local 2 // java.lang.String reason
         0: .line 412
            aload 0 /* this */
            aload 1 /* ctx */
            new io.netty.handler.codec.CorruptedFrameException
            dup
            aload 2 /* reason */
            invokespecial io.netty.handler.codec.CorruptedFrameException.<init>:(Ljava/lang/String;)V
            invokevirtual io.netty.handler.codec.http.websocketx.WebSocket08FrameDecoder.protocolViolation:(Lio/netty/channel/ChannelHandlerContext;Lio/netty/handler/codec/CorruptedFrameException;)V
         1: .line 413
            return
        end local 2 // java.lang.String reason
        end local 1 // io.netty.channel.ChannelHandlerContext ctx
        end local 0 // io.netty.handler.codec.http.websocketx.WebSocket08FrameDecoder this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    2     0    this  Lio/netty/handler/codec/http/websocketx/WebSocket08FrameDecoder;
            0    2     1     ctx  Lio/netty/channel/ChannelHandlerContext;
            0    2     2  reason  Ljava/lang/String;
    MethodParameters:
        Name  Flags
      ctx     
      reason  

  private void protocolViolation(io.netty.channel.ChannelHandlerContext, io.netty.handler.codec.CorruptedFrameException);
    descriptor: (Lio/netty/channel/ChannelHandlerContext;Lio/netty/handler/codec/CorruptedFrameException;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=4, args_size=3
        start local 0 // io.netty.handler.codec.http.websocketx.WebSocket08FrameDecoder this
        start local 1 // io.netty.channel.ChannelHandlerContext ctx
        start local 2 // io.netty.handler.codec.CorruptedFrameException ex
         0: .line 416
            aload 0 /* this */
            getstatic io.netty.handler.codec.http.websocketx.WebSocket08FrameDecoder$State.CORRUPT:Lio/netty/handler/codec/http/websocketx/WebSocket08FrameDecoder$State;
            putfield io.netty.handler.codec.http.websocketx.WebSocket08FrameDecoder.state:Lio/netty/handler/codec/http/websocketx/WebSocket08FrameDecoder$State;
         1: .line 417
            aload 1 /* ctx */
            invokeinterface io.netty.channel.ChannelHandlerContext.channel:()Lio/netty/channel/Channel;
            invokeinterface io.netty.channel.Channel.isActive:()Z
            ifeq 7
         2: .line 419
            aload 0 /* this */
            getfield io.netty.handler.codec.http.websocketx.WebSocket08FrameDecoder.receivedClosingHandshake:Z
            ifeq 5
         3: .line 420
            getstatic io.netty.buffer.Unpooled.EMPTY_BUFFER:Lio/netty/buffer/ByteBuf;
            astore 3 /* closeMessage */
        start local 3 // java.lang.Object closeMessage
         4: .line 421
            goto 6
        end local 3 // java.lang.Object closeMessage
         5: .line 422
      StackMap locals:
      StackMap stack:
            new io.netty.handler.codec.http.websocketx.CloseWebSocketFrame
            dup
            sipush 1002
            aconst_null
            invokespecial io.netty.handler.codec.http.websocketx.CloseWebSocketFrame.<init>:(ILjava/lang/String;)V
            astore 3 /* closeMessage */
        start local 3 // java.lang.Object closeMessage
         6: .line 424
      StackMap locals: java.lang.Object
      StackMap stack:
            aload 1 /* ctx */
            aload 3 /* closeMessage */
            invokeinterface io.netty.channel.ChannelHandlerContext.writeAndFlush:(Ljava/lang/Object;)Lio/netty/channel/ChannelFuture;
            getstatic io.netty.channel.ChannelFutureListener.CLOSE:Lio/netty/channel/ChannelFutureListener;
            invokeinterface io.netty.channel.ChannelFuture.addListener:(Lio/netty/util/concurrent/GenericFutureListener;)Lio/netty/channel/ChannelFuture;
            pop
        end local 3 // java.lang.Object closeMessage
         7: .line 426
      StackMap locals:
      StackMap stack:
            aload 2 /* ex */
            athrow
        end local 2 // io.netty.handler.codec.CorruptedFrameException ex
        end local 1 // io.netty.channel.ChannelHandlerContext ctx
        end local 0 // io.netty.handler.codec.http.websocketx.WebSocket08FrameDecoder this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    8     0          this  Lio/netty/handler/codec/http/websocketx/WebSocket08FrameDecoder;
            0    8     1           ctx  Lio/netty/channel/ChannelHandlerContext;
            0    8     2            ex  Lio/netty/handler/codec/CorruptedFrameException;
            4    5     3  closeMessage  Ljava/lang/Object;
            6    7     3  closeMessage  Ljava/lang/Object;
    MethodParameters:
      Name  Flags
      ctx   
      ex    

  private static int toFrameLength(long);
    descriptor: (J)I
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=5, locals=2, args_size=1
        start local 0 // long l
         0: .line 430
            lload 0 /* l */
            ldc 2147483647
            lcmp
            ifle 2
         1: .line 431
            new io.netty.handler.codec.TooLongFrameException
            dup
            new java.lang.StringBuilder
            dup
            ldc "Length:"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            lload 0 /* l */
            invokevirtual java.lang.StringBuilder.append:(J)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial io.netty.handler.codec.TooLongFrameException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 433
      StackMap locals:
      StackMap stack:
            lload 0 /* l */
            l2i
            ireturn
        end local 0 // long l
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0     l  J
    MethodParameters:
      Name  Flags
      l     

  protected void checkCloseFrameBody(io.netty.channel.ChannelHandlerContext, io.netty.buffer.ByteBuf);
    descriptor: (Lio/netty/channel/ChannelHandlerContext;Lio/netty/buffer/ByteBuf;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=5, locals=6, args_size=3
        start local 0 // io.netty.handler.codec.http.websocketx.WebSocket08FrameDecoder this
        start local 1 // io.netty.channel.ChannelHandlerContext ctx
        start local 2 // io.netty.buffer.ByteBuf buffer
         0: .line 440
            aload 2 /* buffer */
            ifnull 1
            aload 2 /* buffer */
            invokevirtual io.netty.buffer.ByteBuf.isReadable:()Z
            ifne 2
         1: .line 441
      StackMap locals:
      StackMap stack:
            return
         2: .line 443
      StackMap locals:
      StackMap stack:
            aload 2 /* buffer */
            invokevirtual io.netty.buffer.ByteBuf.readableBytes:()I
            iconst_1
            if_icmpne 4
         3: .line 444
            aload 0 /* this */
            aload 1 /* ctx */
            ldc "Invalid close frame body"
            invokevirtual io.netty.handler.codec.http.websocketx.WebSocket08FrameDecoder.protocolViolation:(Lio/netty/channel/ChannelHandlerContext;Ljava/lang/String;)V
         4: .line 448
      StackMap locals:
      StackMap stack:
            aload 2 /* buffer */
            invokevirtual io.netty.buffer.ByteBuf.readerIndex:()I
            istore 3 /* idx */
        start local 3 // int idx
         5: .line 449
            aload 2 /* buffer */
            iconst_0
            invokevirtual io.netty.buffer.ByteBuf.readerIndex:(I)Lio/netty/buffer/ByteBuf;
            pop
         6: .line 452
            aload 2 /* buffer */
            invokevirtual io.netty.buffer.ByteBuf.readShort:()S
            istore 4 /* statusCode */
        start local 4 // int statusCode
         7: .line 453
            iload 4 /* statusCode */
            iflt 8
            iload 4 /* statusCode */
            sipush 999
            if_icmple 10
      StackMap locals: int int
      StackMap stack:
         8: iload 4 /* statusCode */
            sipush 1004
            if_icmplt 9
            iload 4 /* statusCode */
            sipush 1006
            if_icmple 10
         9: .line 454
      StackMap locals:
      StackMap stack:
            iload 4 /* statusCode */
            sipush 1012
            if_icmplt 11
            iload 4 /* statusCode */
            sipush 2999
            if_icmpgt 11
        10: .line 455
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* ctx */
            new java.lang.StringBuilder
            dup
            ldc "Invalid close frame getStatus code: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            iload 4 /* statusCode */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual io.netty.handler.codec.http.websocketx.WebSocket08FrameDecoder.protocolViolation:(Lio/netty/channel/ChannelHandlerContext;Ljava/lang/String;)V
        11: .line 459
      StackMap locals:
      StackMap stack:
            aload 2 /* buffer */
            invokevirtual io.netty.buffer.ByteBuf.isReadable:()Z
            ifeq 16
        12: .line 461
            new io.netty.handler.codec.http.websocketx.Utf8Validator
            dup
            invokespecial io.netty.handler.codec.http.websocketx.Utf8Validator.<init>:()V
            aload 2 /* buffer */
            invokevirtual io.netty.handler.codec.http.websocketx.Utf8Validator.check:(Lio/netty/buffer/ByteBuf;)V
        13: .line 462
            goto 16
      StackMap locals:
      StackMap stack: io.netty.handler.codec.CorruptedFrameException
        14: astore 5 /* ex */
        start local 5 // io.netty.handler.codec.CorruptedFrameException ex
        15: .line 463
            aload 0 /* this */
            aload 1 /* ctx */
            aload 5 /* ex */
            invokevirtual io.netty.handler.codec.http.websocketx.WebSocket08FrameDecoder.protocolViolation:(Lio/netty/channel/ChannelHandlerContext;Lio/netty/handler/codec/CorruptedFrameException;)V
        end local 5 // io.netty.handler.codec.CorruptedFrameException ex
        16: .line 468
      StackMap locals:
      StackMap stack:
            aload 2 /* buffer */
            iload 3 /* idx */
            invokevirtual io.netty.buffer.ByteBuf.readerIndex:(I)Lio/netty/buffer/ByteBuf;
            pop
        17: .line 469
            return
        end local 4 // int statusCode
        end local 3 // int idx
        end local 2 // io.netty.buffer.ByteBuf buffer
        end local 1 // io.netty.channel.ChannelHandlerContext ctx
        end local 0 // io.netty.handler.codec.http.websocketx.WebSocket08FrameDecoder this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   18     0        this  Lio/netty/handler/codec/http/websocketx/WebSocket08FrameDecoder;
            0   18     1         ctx  Lio/netty/channel/ChannelHandlerContext;
            0   18     2      buffer  Lio/netty/buffer/ByteBuf;
            5   18     3         idx  I
            7   18     4  statusCode  I
           15   16     5          ex  Lio/netty/handler/codec/CorruptedFrameException;
      Exception table:
        from    to  target  type
          12    13      14  Class io.netty.handler.codec.CorruptedFrameException
    MethodParameters:
        Name  Flags
      ctx     
      buffer  

  static int[] $SWITCH_TABLE$io$netty$handler$codec$http$websocketx$WebSocket08FrameDecoder$State();
    descriptor: ()[I
    flags: (0x1008) ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=3, locals=1, args_size=0
         0: .line 75
            getstatic io.netty.handler.codec.http.websocketx.WebSocket08FrameDecoder.$SWITCH_TABLE$io$netty$handler$codec$http$websocketx$WebSocket08FrameDecoder$State:[I
            dup
            ifnull 1
            areturn
      StackMap locals:
      StackMap stack: int[]
         1: pop
            invokestatic io.netty.handler.codec.http.websocketx.WebSocket08FrameDecoder$State.values:()[Lio/netty/handler/codec/http/websocketx/WebSocket08FrameDecoder$State;
            arraylength
            newarray 10
            astore 0
         2: aload 0
            getstatic io.netty.handler.codec.http.websocketx.WebSocket08FrameDecoder$State.CORRUPT:Lio/netty/handler/codec/http/websocketx/WebSocket08FrameDecoder$State;
            invokevirtual io.netty.handler.codec.http.websocketx.WebSocket08FrameDecoder$State.ordinal:()I
            bipush 6
            iastore
         3: goto 5
      StackMap locals: int[]
      StackMap stack: java.lang.NoSuchFieldError
         4: pop
      StackMap locals:
      StackMap stack:
         5: aload 0
            getstatic io.netty.handler.codec.http.websocketx.WebSocket08FrameDecoder$State.MASKING_KEY:Lio/netty/handler/codec/http/websocketx/WebSocket08FrameDecoder$State;
            invokevirtual io.netty.handler.codec.http.websocketx.WebSocket08FrameDecoder$State.ordinal:()I
            iconst_4
            iastore
         6: goto 8
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
         7: pop
      StackMap locals:
      StackMap stack:
         8: aload 0
            getstatic io.netty.handler.codec.http.websocketx.WebSocket08FrameDecoder$State.PAYLOAD:Lio/netty/handler/codec/http/websocketx/WebSocket08FrameDecoder$State;
            invokevirtual io.netty.handler.codec.http.websocketx.WebSocket08FrameDecoder$State.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 io.netty.handler.codec.http.websocketx.WebSocket08FrameDecoder$State.READING_FIRST:Lio/netty/handler/codec/http/websocketx/WebSocket08FrameDecoder$State;
            invokevirtual io.netty.handler.codec.http.websocketx.WebSocket08FrameDecoder$State.ordinal:()I
            iconst_1
            iastore
        12: goto 14
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        13: pop
      StackMap locals:
      StackMap stack:
        14: aload 0
            getstatic io.netty.handler.codec.http.websocketx.WebSocket08FrameDecoder$State.READING_SECOND:Lio/netty/handler/codec/http/websocketx/WebSocket08FrameDecoder$State;
            invokevirtual io.netty.handler.codec.http.websocketx.WebSocket08FrameDecoder$State.ordinal:()I
            iconst_2
            iastore
        15: goto 17
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        16: pop
      StackMap locals:
      StackMap stack:
        17: aload 0
            getstatic io.netty.handler.codec.http.websocketx.WebSocket08FrameDecoder$State.READING_SIZE:Lio/netty/handler/codec/http/websocketx/WebSocket08FrameDecoder$State;
            invokevirtual io.netty.handler.codec.http.websocketx.WebSocket08FrameDecoder$State.ordinal:()I
            iconst_3
            iastore
        18: goto 20
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        19: pop
      StackMap locals:
      StackMap stack:
        20: aload 0
            dup
            putstatic io.netty.handler.codec.http.websocketx.WebSocket08FrameDecoder.$SWITCH_TABLE$io$netty$handler$codec$http$websocketx$WebSocket08FrameDecoder$State:[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
          17    18      19  Class java.lang.NoSuchFieldError
}
SourceFile: "WebSocket08FrameDecoder.java"
NestMembers:
  io.netty.handler.codec.http.websocketx.WebSocket08FrameDecoder$State
InnerClasses:
  final State = io.netty.handler.codec.http.websocketx.WebSocket08FrameDecoder$State of io.netty.handler.codec.http.websocketx.WebSocket08FrameDecoder