public class io.netty.handler.codec.dns.DefaultDnsRecordDecoder implements io.netty.handler.codec.dns.DnsRecordDecoder
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: io.netty.handler.codec.dns.DefaultDnsRecordDecoder
  super_class: java.lang.Object
{
  static final java.lang.String ROOT;
    descriptor: Ljava/lang/String;
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: "."

  protected void <init>();
    descriptor: ()V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // io.netty.handler.codec.dns.DefaultDnsRecordDecoder this
         0: .line 36
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
            return
        end local 0 // io.netty.handler.codec.dns.DefaultDnsRecordDecoder this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lio/netty/handler/codec/dns/DefaultDnsRecordDecoder;

  public final io.netty.handler.codec.dns.DnsQuestion decodeQuestion(io.netty.buffer.ByteBuf);
    descriptor: (Lio/netty/buffer/ByteBuf;)Lio/netty/handler/codec/dns/DnsQuestion;
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL
    Code:
      stack=5, locals=5, args_size=2
        start local 0 // io.netty.handler.codec.dns.DefaultDnsRecordDecoder this
        start local 1 // io.netty.buffer.ByteBuf in
         0: .line 40
            aload 1 /* in */
            invokestatic io.netty.handler.codec.dns.DefaultDnsRecordDecoder.decodeName:(Lio/netty/buffer/ByteBuf;)Ljava/lang/String;
            astore 2 /* name */
        start local 2 // java.lang.String name
         1: .line 41
            aload 1 /* in */
            invokevirtual io.netty.buffer.ByteBuf.readUnsignedShort:()I
            invokestatic io.netty.handler.codec.dns.DnsRecordType.valueOf:(I)Lio/netty/handler/codec/dns/DnsRecordType;
            astore 3 /* type */
        start local 3 // io.netty.handler.codec.dns.DnsRecordType type
         2: .line 42
            aload 1 /* in */
            invokevirtual io.netty.buffer.ByteBuf.readUnsignedShort:()I
            istore 4 /* qClass */
        start local 4 // int qClass
         3: .line 43
            new io.netty.handler.codec.dns.DefaultDnsQuestion
            dup
            aload 2 /* name */
            aload 3 /* type */
            iload 4 /* qClass */
            invokespecial io.netty.handler.codec.dns.DefaultDnsQuestion.<init>:(Ljava/lang/String;Lio/netty/handler/codec/dns/DnsRecordType;I)V
            areturn
        end local 4 // int qClass
        end local 3 // io.netty.handler.codec.dns.DnsRecordType type
        end local 2 // java.lang.String name
        end local 1 // io.netty.buffer.ByteBuf in
        end local 0 // io.netty.handler.codec.dns.DefaultDnsRecordDecoder this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    4     0    this  Lio/netty/handler/codec/dns/DefaultDnsRecordDecoder;
            0    4     1      in  Lio/netty/buffer/ByteBuf;
            1    4     2    name  Ljava/lang/String;
            2    4     3    type  Lio/netty/handler/codec/dns/DnsRecordType;
            3    4     4  qClass  I
    Exceptions:
      throws java.lang.Exception
    MethodParameters:
      Name  Flags
      in    

  public final <T extends io.netty.handler.codec.dns.DnsRecord> T decodeRecord(io.netty.buffer.ByteBuf);
    descriptor: (Lio/netty/buffer/ByteBuf;)Lio/netty/handler/codec/dns/DnsRecord;
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL
    Code:
      stack=9, locals=12, args_size=2
        start local 0 // io.netty.handler.codec.dns.DefaultDnsRecordDecoder this
        start local 1 // io.netty.buffer.ByteBuf in
         0: .line 48
            aload 1 /* in */
            invokevirtual io.netty.buffer.ByteBuf.readerIndex:()I
            istore 2 /* startOffset */
        start local 2 // int startOffset
         1: .line 49
            aload 1 /* in */
            invokestatic io.netty.handler.codec.dns.DefaultDnsRecordDecoder.decodeName:(Lio/netty/buffer/ByteBuf;)Ljava/lang/String;
            astore 3 /* name */
        start local 3 // java.lang.String name
         2: .line 51
            aload 1 /* in */
            invokevirtual io.netty.buffer.ByteBuf.writerIndex:()I
            istore 4 /* endOffset */
        start local 4 // int endOffset
         3: .line 52
            iload 4 /* endOffset */
            iload 2 /* startOffset */
            isub
            bipush 10
            if_icmpge 6
         4: .line 54
            aload 1 /* in */
            iload 2 /* startOffset */
            invokevirtual io.netty.buffer.ByteBuf.readerIndex:(I)Lio/netty/buffer/ByteBuf;
            pop
         5: .line 55
            aconst_null
            areturn
         6: .line 58
      StackMap locals: int java.lang.String int
      StackMap stack:
            aload 1 /* in */
            invokevirtual io.netty.buffer.ByteBuf.readUnsignedShort:()I
            invokestatic io.netty.handler.codec.dns.DnsRecordType.valueOf:(I)Lio/netty/handler/codec/dns/DnsRecordType;
            astore 5 /* type */
        start local 5 // io.netty.handler.codec.dns.DnsRecordType type
         7: .line 59
            aload 1 /* in */
            invokevirtual io.netty.buffer.ByteBuf.readUnsignedShort:()I
            istore 6 /* aClass */
        start local 6 // int aClass
         8: .line 60
            aload 1 /* in */
            invokevirtual io.netty.buffer.ByteBuf.readUnsignedInt:()J
            lstore 7 /* ttl */
        start local 7 // long ttl
         9: .line 61
            aload 1 /* in */
            invokevirtual io.netty.buffer.ByteBuf.readUnsignedShort:()I
            istore 9 /* length */
        start local 9 // int length
        10: .line 62
            aload 1 /* in */
            invokevirtual io.netty.buffer.ByteBuf.readerIndex:()I
            istore 10 /* offset */
        start local 10 // int offset
        11: .line 64
            iload 4 /* endOffset */
            iload 10 /* offset */
            isub
            iload 9 /* length */
            if_icmpge 14
        12: .line 66
            aload 1 /* in */
            iload 2 /* startOffset */
            invokevirtual io.netty.buffer.ByteBuf.readerIndex:(I)Lio/netty/buffer/ByteBuf;
            pop
        13: .line 67
            aconst_null
            areturn
        14: .line 71
      StackMap locals: io.netty.handler.codec.dns.DefaultDnsRecordDecoder io.netty.buffer.ByteBuf int java.lang.String int io.netty.handler.codec.dns.DnsRecordType int long int int
      StackMap stack:
            aload 0 /* this */
            aload 3 /* name */
            aload 5 /* type */
            iload 6 /* aClass */
            lload 7 /* ttl */
            aload 1 /* in */
            iload 10 /* offset */
            iload 9 /* length */
            invokevirtual io.netty.handler.codec.dns.DefaultDnsRecordDecoder.decodeRecord:(Ljava/lang/String;Lio/netty/handler/codec/dns/DnsRecordType;IJLio/netty/buffer/ByteBuf;II)Lio/netty/handler/codec/dns/DnsRecord;
            astore 11 /* record */
        start local 11 // io.netty.handler.codec.dns.DnsRecord record
        15: .line 72
            aload 1 /* in */
            iload 10 /* offset */
            iload 9 /* length */
            iadd
            invokevirtual io.netty.buffer.ByteBuf.readerIndex:(I)Lio/netty/buffer/ByteBuf;
            pop
        16: .line 73
            aload 11 /* record */
            areturn
        end local 11 // io.netty.handler.codec.dns.DnsRecord record
        end local 10 // int offset
        end local 9 // int length
        end local 7 // long ttl
        end local 6 // int aClass
        end local 5 // io.netty.handler.codec.dns.DnsRecordType type
        end local 4 // int endOffset
        end local 3 // java.lang.String name
        end local 2 // int startOffset
        end local 1 // io.netty.buffer.ByteBuf in
        end local 0 // io.netty.handler.codec.dns.DefaultDnsRecordDecoder this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   17     0         this  Lio/netty/handler/codec/dns/DefaultDnsRecordDecoder;
            0   17     1           in  Lio/netty/buffer/ByteBuf;
            1   17     2  startOffset  I
            2   17     3         name  Ljava/lang/String;
            3   17     4    endOffset  I
            7   17     5         type  Lio/netty/handler/codec/dns/DnsRecordType;
            8   17     6       aClass  I
            9   17     7          ttl  J
           10   17     9       length  I
           11   17    10       offset  I
           15   17    11       record  TT;
    Exceptions:
      throws java.lang.Exception
    Signature: <T::Lio/netty/handler/codec/dns/DnsRecord;>(Lio/netty/buffer/ByteBuf;)TT;
    MethodParameters:
      Name  Flags
      in    

  protected io.netty.handler.codec.dns.DnsRecord decodeRecord(java.lang.String, io.netty.handler.codec.dns.DnsRecordType, int, long, io.netty.buffer.ByteBuf, int, int);
    descriptor: (Ljava/lang/String;Lio/netty/handler/codec/dns/DnsRecordType;IJLio/netty/buffer/ByteBuf;II)Lio/netty/handler/codec/dns/DnsRecord;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=11, locals=9, args_size=8
        start local 0 // io.netty.handler.codec.dns.DefaultDnsRecordDecoder this
        start local 1 // java.lang.String name
        start local 2 // io.netty.handler.codec.dns.DnsRecordType type
        start local 3 // int dnsClass
        start local 4 // long timeToLive
        start local 6 // io.netty.buffer.ByteBuf in
        start local 7 // int offset
        start local 8 // int length
         0: .line 97
            aload 2 /* type */
            getstatic io.netty.handler.codec.dns.DnsRecordType.PTR:Lio/netty/handler/codec/dns/DnsRecordType;
            if_acmpne 4
         1: .line 98
            new io.netty.handler.codec.dns.DefaultDnsPtrRecord
            dup
         2: .line 99
            aload 1 /* name */
            iload 3 /* dnsClass */
            lload 4 /* timeToLive */
            aload 0 /* this */
            aload 6 /* in */
            invokevirtual io.netty.buffer.ByteBuf.duplicate:()Lio/netty/buffer/ByteBuf;
            iload 7 /* offset */
            iload 7 /* offset */
            iload 8 /* length */
            iadd
            invokevirtual io.netty.buffer.ByteBuf.setIndex:(II)Lio/netty/buffer/ByteBuf;
            invokevirtual io.netty.handler.codec.dns.DefaultDnsRecordDecoder.decodeName0:(Lio/netty/buffer/ByteBuf;)Ljava/lang/String;
         3: .line 98
            invokespecial io.netty.handler.codec.dns.DefaultDnsPtrRecord.<init>:(Ljava/lang/String;IJLjava/lang/String;)V
            areturn
         4: .line 101
      StackMap locals:
      StackMap stack:
            new io.netty.handler.codec.dns.DefaultDnsRawRecord
            dup
         5: .line 102
            aload 1 /* name */
            aload 2 /* type */
            iload 3 /* dnsClass */
            lload 4 /* timeToLive */
            aload 6 /* in */
            invokevirtual io.netty.buffer.ByteBuf.retainedDuplicate:()Lio/netty/buffer/ByteBuf;
            iload 7 /* offset */
            iload 7 /* offset */
            iload 8 /* length */
            iadd
            invokevirtual io.netty.buffer.ByteBuf.setIndex:(II)Lio/netty/buffer/ByteBuf;
         6: .line 101
            invokespecial io.netty.handler.codec.dns.DefaultDnsRawRecord.<init>:(Ljava/lang/String;Lio/netty/handler/codec/dns/DnsRecordType;IJLio/netty/buffer/ByteBuf;)V
            areturn
        end local 8 // int length
        end local 7 // int offset
        end local 6 // io.netty.buffer.ByteBuf in
        end local 4 // long timeToLive
        end local 3 // int dnsClass
        end local 2 // io.netty.handler.codec.dns.DnsRecordType type
        end local 1 // java.lang.String name
        end local 0 // io.netty.handler.codec.dns.DefaultDnsRecordDecoder this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    7     0        this  Lio/netty/handler/codec/dns/DefaultDnsRecordDecoder;
            0    7     1        name  Ljava/lang/String;
            0    7     2        type  Lio/netty/handler/codec/dns/DnsRecordType;
            0    7     3    dnsClass  I
            0    7     4  timeToLive  J
            0    7     6          in  Lio/netty/buffer/ByteBuf;
            0    7     7      offset  I
            0    7     8      length  I
    Exceptions:
      throws java.lang.Exception
    MethodParameters:
            Name  Flags
      name        
      type        
      dnsClass    
      timeToLive  
      in          
      offset      
      length      

  protected java.lang.String decodeName0(io.netty.buffer.ByteBuf);
    descriptor: (Lio/netty/buffer/ByteBuf;)Ljava/lang/String;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=1, locals=2, args_size=2
        start local 0 // io.netty.handler.codec.dns.DefaultDnsRecordDecoder this
        start local 1 // io.netty.buffer.ByteBuf in
         0: .line 114
            aload 1 /* in */
            invokestatic io.netty.handler.codec.dns.DefaultDnsRecordDecoder.decodeName:(Lio/netty/buffer/ByteBuf;)Ljava/lang/String;
            areturn
        end local 1 // io.netty.buffer.ByteBuf in
        end local 0 // io.netty.handler.codec.dns.DefaultDnsRecordDecoder this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lio/netty/handler/codec/dns/DefaultDnsRecordDecoder;
            0    1     1    in  Lio/netty/buffer/ByteBuf;
    MethodParameters:
      Name  Flags
      in    

  public static java.lang.String decodeName(io.netty.buffer.ByteBuf);
    descriptor: (Lio/netty/buffer/ByteBuf;)Ljava/lang/String;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=5, locals=9, args_size=1
        start local 0 // io.netty.buffer.ByteBuf in
         0: .line 126
            iconst_m1
            istore 1 /* position */
        start local 1 // int position
         1: .line 127
            iconst_0
            istore 2 /* checked */
        start local 2 // int checked
         2: .line 128
            aload 0 /* in */
            invokevirtual io.netty.buffer.ByteBuf.writerIndex:()I
            istore 3 /* end */
        start local 3 // int end
         3: .line 129
            aload 0 /* in */
            invokevirtual io.netty.buffer.ByteBuf.readableBytes:()I
            istore 4 /* readable */
        start local 4 // int readable
         4: .line 138
            iload 4 /* readable */
            ifne 6
         5: .line 139
            ldc "."
            areturn
         6: .line 142
      StackMap locals: io.netty.buffer.ByteBuf int int int int
      StackMap stack:
            new java.lang.StringBuilder
            dup
            iload 4 /* readable */
            iconst_1
            ishl
            invokespecial java.lang.StringBuilder.<init>:(I)V
            astore 5 /* name */
        start local 5 // java.lang.StringBuilder name
         7: .line 143
            goto 29
         8: .line 144
      StackMap locals: java.lang.StringBuilder
      StackMap stack:
            aload 0 /* in */
            invokevirtual io.netty.buffer.ByteBuf.readUnsignedByte:()S
            istore 6 /* len */
        start local 6 // int len
         9: .line 145
            iload 6 /* len */
            sipush 192
            iand
            sipush 192
            if_icmpne 10
            iconst_1
            goto 11
      StackMap locals: int
      StackMap stack:
        10: iconst_0
      StackMap locals:
      StackMap stack: int
        11: istore 7 /* pointer */
        start local 7 // boolean pointer
        12: .line 146
            iload 7 /* pointer */
            ifeq 24
        13: .line 147
            iload 1 /* position */
            iconst_m1
            if_icmpne 15
        14: .line 148
            aload 0 /* in */
            invokevirtual io.netty.buffer.ByteBuf.readerIndex:()I
            iconst_1
            iadd
            istore 1 /* position */
        15: .line 151
      StackMap locals: int
      StackMap stack:
            aload 0 /* in */
            invokevirtual io.netty.buffer.ByteBuf.isReadable:()Z
            ifne 17
        16: .line 152
            new io.netty.handler.codec.CorruptedFrameException
            dup
            ldc "truncated pointer in a name"
            invokespecial io.netty.handler.codec.CorruptedFrameException.<init>:(Ljava/lang/String;)V
            athrow
        17: .line 155
      StackMap locals:
      StackMap stack:
            iload 6 /* len */
            bipush 63
            iand
            bipush 8
            ishl
            aload 0 /* in */
            invokevirtual io.netty.buffer.ByteBuf.readUnsignedByte:()S
            ior
            istore 8 /* next */
        start local 8 // int next
        18: .line 156
            iload 8 /* next */
            iload 3 /* end */
            if_icmplt 20
        19: .line 157
            new io.netty.handler.codec.CorruptedFrameException
            dup
            ldc "name has an out-of-range pointer"
            invokespecial io.netty.handler.codec.CorruptedFrameException.<init>:(Ljava/lang/String;)V
            athrow
        20: .line 159
      StackMap locals: int
      StackMap stack:
            aload 0 /* in */
            iload 8 /* next */
            invokevirtual io.netty.buffer.ByteBuf.readerIndex:(I)Lio/netty/buffer/ByteBuf;
            pop
        21: .line 162
            iinc 2 /* checked */ 2
        22: .line 163
            iload 2 /* checked */
            iload 3 /* end */
            if_icmplt 29
        23: .line 164
            new io.netty.handler.codec.CorruptedFrameException
            dup
            ldc "name contains a loop."
            invokespecial io.netty.handler.codec.CorruptedFrameException.<init>:(Ljava/lang/String;)V
            athrow
        end local 8 // int next
        24: .line 166
      StackMap locals:
      StackMap stack:
            iload 6 /* len */
            ifeq 30
        25: .line 167
            aload 0 /* in */
            iload 6 /* len */
            invokevirtual io.netty.buffer.ByteBuf.isReadable:(I)Z
            ifne 27
        26: .line 168
            new io.netty.handler.codec.CorruptedFrameException
            dup
            ldc "truncated label in a name"
            invokespecial io.netty.handler.codec.CorruptedFrameException.<init>:(Ljava/lang/String;)V
            athrow
        27: .line 170
      StackMap locals:
      StackMap stack:
            aload 5 /* name */
            aload 0 /* in */
            aload 0 /* in */
            invokevirtual io.netty.buffer.ByteBuf.readerIndex:()I
            iload 6 /* len */
            getstatic io.netty.util.CharsetUtil.UTF_8:Ljava/nio/charset/Charset;
            invokevirtual io.netty.buffer.ByteBuf.toString:(IILjava/nio/charset/Charset;)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            bipush 46
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            pop
        28: .line 171
            aload 0 /* in */
            iload 6 /* len */
            invokevirtual io.netty.buffer.ByteBuf.skipBytes:(I)Lio/netty/buffer/ByteBuf;
            pop
        end local 7 // boolean pointer
        end local 6 // int len
        29: .line 143
      StackMap locals:
      StackMap stack:
            aload 0 /* in */
            invokevirtual io.netty.buffer.ByteBuf.isReadable:()Z
            ifne 8
        30: .line 177
      StackMap locals:
      StackMap stack:
            iload 1 /* position */
            iconst_m1
            if_icmpeq 32
        31: .line 178
            aload 0 /* in */
            iload 1 /* position */
            invokevirtual io.netty.buffer.ByteBuf.readerIndex:(I)Lio/netty/buffer/ByteBuf;
            pop
        32: .line 181
      StackMap locals:
      StackMap stack:
            aload 5 /* name */
            invokevirtual java.lang.StringBuilder.length:()I
            ifne 34
        33: .line 182
            ldc "."
            areturn
        34: .line 185
      StackMap locals:
      StackMap stack:
            aload 5 /* name */
            aload 5 /* name */
            invokevirtual java.lang.StringBuilder.length:()I
            iconst_1
            isub
            invokevirtual java.lang.StringBuilder.charAt:(I)C
            bipush 46
            if_icmpeq 36
        35: .line 186
            aload 5 /* name */
            bipush 46
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            pop
        36: .line 189
      StackMap locals:
      StackMap stack:
            aload 5 /* name */
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            areturn
        end local 5 // java.lang.StringBuilder name
        end local 4 // int readable
        end local 3 // int end
        end local 2 // int checked
        end local 1 // int position
        end local 0 // io.netty.buffer.ByteBuf in
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   37     0        in  Lio/netty/buffer/ByteBuf;
            1   37     1  position  I
            2   37     2   checked  I
            3   37     3       end  I
            4   37     4  readable  I
            7   37     5      name  Ljava/lang/StringBuilder;
            9   29     6       len  I
           12   29     7   pointer  Z
           18   24     8      next  I
    MethodParameters:
      Name  Flags
      in    
}
SourceFile: "DefaultDnsRecordDecoder.java"