public final class com.ctc.wstx.io.UTF8Reader extends com.ctc.wstx.io.BaseReader
  minor version: 0
  major version: 59
  flags: flags: (0x0031) ACC_PUBLIC, ACC_FINAL, ACC_SUPER
  this_class: com.ctc.wstx.io.UTF8Reader
  super_class: com.ctc.wstx.io.BaseReader
{
  boolean mXml11;
    descriptor: Z
    flags: (0x0000) 

  char mSurrogate;
    descriptor: C
    flags: (0x0000) 

  int mCharCount;
    descriptor: I
    flags: (0x0000) 

  int mByteCount;
    descriptor: I
    flags: (0x0000) 

  public void <init>(com.ctc.wstx.api.ReaderConfig, java.io.InputStream, byte[], int, int, boolean);
    descriptor: (Lcom/ctc/wstx/api/ReaderConfig;Ljava/io/InputStream;[BIIZ)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=7, locals=7, args_size=7
        start local 0 // com.ctc.wstx.io.UTF8Reader this
        start local 1 // com.ctc.wstx.api.ReaderConfig cfg
        start local 2 // java.io.InputStream in
        start local 3 // byte[] buf
        start local 4 // int ptr
        start local 5 // int len
        start local 6 // boolean recycleBuffer
         0: .line 55
            aload 0 /* this */
            aload 1 /* cfg */
            aload 2 /* in */
            aload 3 /* buf */
            iload 4 /* ptr */
            iload 5 /* len */
            iload 6 /* recycleBuffer */
            invokespecial com.ctc.wstx.io.BaseReader.<init>:(Lcom/ctc/wstx/api/ReaderConfig;Ljava/io/InputStream;[BIIZ)V
         1: .line 32
            aload 0 /* this */
            iconst_0
            putfield com.ctc.wstx.io.UTF8Reader.mXml11:Z
         2: .line 34
            aload 0 /* this */
            iconst_0
            putfield com.ctc.wstx.io.UTF8Reader.mSurrogate:C
         3: .line 39
            aload 0 /* this */
            iconst_0
            putfield com.ctc.wstx.io.UTF8Reader.mCharCount:I
         4: .line 44
            aload 0 /* this */
            iconst_0
            putfield com.ctc.wstx.io.UTF8Reader.mByteCount:I
         5: .line 56
            return
        end local 6 // boolean recycleBuffer
        end local 5 // int len
        end local 4 // int ptr
        end local 3 // byte[] buf
        end local 2 // java.io.InputStream in
        end local 1 // com.ctc.wstx.api.ReaderConfig cfg
        end local 0 // com.ctc.wstx.io.UTF8Reader this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    6     0           this  Lcom/ctc/wstx/io/UTF8Reader;
            0    6     1            cfg  Lcom/ctc/wstx/api/ReaderConfig;
            0    6     2             in  Ljava/io/InputStream;
            0    6     3            buf  [B
            0    6     4            ptr  I
            0    6     5            len  I
            0    6     6  recycleBuffer  Z
    MethodParameters:
               Name  Flags
      cfg            
      in             
      buf            
      ptr            
      len            
      recycleBuffer  

  public void setXmlCompliancy(int);
    descriptor: (I)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // com.ctc.wstx.io.UTF8Reader this
        start local 1 // int xmlVersion
         0: .line 60
            aload 0 /* this */
            iload 1 /* xmlVersion */
            sipush 272
            if_icmpne 1
            iconst_1
            goto 2
      StackMap locals:
      StackMap stack: com.ctc.wstx.io.UTF8Reader
         1: iconst_0
      StackMap locals: com.ctc.wstx.io.UTF8Reader int
      StackMap stack: com.ctc.wstx.io.UTF8Reader int
         2: putfield com.ctc.wstx.io.UTF8Reader.mXml11:Z
         3: .line 61
            return
        end local 1 // int xmlVersion
        end local 0 // com.ctc.wstx.io.UTF8Reader this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    4     0        this  Lcom/ctc/wstx/io/UTF8Reader;
            0    4     1  xmlVersion  I
    MethodParameters:
            Name  Flags
      xmlVersion  

  public int read(char[], int, int);
    descriptor: ([CII)I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=14, args_size=4
        start local 0 // com.ctc.wstx.io.UTF8Reader this
        start local 1 // char[] cbuf
        start local 2 // int start
        start local 3 // int len
         0: .line 74
            iload 2 /* start */
            iflt 1
            iload 2 /* start */
            iload 3 /* len */
            iadd
            aload 1 /* cbuf */
            arraylength
            if_icmple 2
         1: .line 75
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* cbuf */
            iload 2 /* start */
            iload 3 /* len */
            invokevirtual com.ctc.wstx.io.UTF8Reader.reportBounds:([CII)V
         2: .line 78
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.ctc.wstx.io.UTF8Reader.mByteBuffer:[B
            ifnonnull 4
         3: .line 79
            iconst_m1
            ireturn
         4: .line 81
      StackMap locals:
      StackMap stack:
            iload 3 /* len */
            iconst_1
            if_icmpge 6
         5: .line 82
            iconst_0
            ireturn
         6: .line 85
      StackMap locals:
      StackMap stack:
            iload 3 /* len */
            iload 2 /* start */
            iadd
            istore 3 /* len */
         7: .line 86
            iload 2 /* start */
            istore 4 /* outPtr */
        start local 4 // int outPtr
         8: .line 89
            aload 0 /* this */
            getfield com.ctc.wstx.io.UTF8Reader.mSurrogate:C
            ifeq 12
         9: .line 90
            aload 1 /* cbuf */
            iload 4 /* outPtr */
            iinc 4 /* outPtr */ 1
            aload 0 /* this */
            getfield com.ctc.wstx.io.UTF8Reader.mSurrogate:C
            castore
        10: .line 91
            aload 0 /* this */
            iconst_0
            putfield com.ctc.wstx.io.UTF8Reader.mSurrogate:C
        11: .line 93
            goto 17
        12: .line 97
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            getfield com.ctc.wstx.io.UTF8Reader.mByteBufferEnd:I
            aload 0 /* this */
            getfield com.ctc.wstx.io.UTF8Reader.mBytePtr:I
            isub
            istore 5 /* left */
        start local 5 // int left
        13: .line 109
            iload 5 /* left */
            iconst_4
            if_icmpge 17
        14: .line 111
            iload 5 /* left */
            iconst_1
            if_icmplt 15
            aload 0 /* this */
            getfield com.ctc.wstx.io.UTF8Reader.mByteBuffer:[B
            aload 0 /* this */
            getfield com.ctc.wstx.io.UTF8Reader.mBytePtr:I
            baload
            ifge 17
        15: .line 112
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            iload 5 /* left */
            invokevirtual com.ctc.wstx.io.UTF8Reader.loadMore:(I)Z
            ifne 17
        16: .line 113
            iconst_m1
            ireturn
        end local 5 // int left
        17: .line 123
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.ctc.wstx.io.UTF8Reader.mByteBuffer:[B
            astore 5 /* buf */
        start local 5 // byte[] buf
        18: .line 124
            aload 0 /* this */
            getfield com.ctc.wstx.io.UTF8Reader.mBytePtr:I
            istore 6 /* inPtr */
        start local 6 // int inPtr
        19: .line 125
            aload 0 /* this */
            getfield com.ctc.wstx.io.UTF8Reader.mByteBufferEnd:I
            istore 7 /* inBufLen */
        start local 7 // int inBufLen
        20: .line 128
            goto 113
        21: .line 130
      StackMap locals: byte[] int int
      StackMap stack:
            aload 5 /* buf */
            iload 6 /* inPtr */
            iinc 6 /* inPtr */ 1
            baload
            istore 8 /* c */
        start local 8 // int c
        22: .line 135
            iload 8 /* c */
            iflt 48
        23: .line 136
            iload 8 /* c */
            bipush 127
            if_icmpne 27
            aload 0 /* this */
            getfield com.ctc.wstx.io.UTF8Reader.mXml11:Z
            ifeq 27
        24: .line 137
            aload 0 /* this */
            getfield com.ctc.wstx.io.UTF8Reader.mByteCount:I
            iload 6 /* inPtr */
            iadd
            iconst_1
            isub
            istore 9 /* bytePos */
        start local 9 // int bytePos
        25: .line 138
            aload 0 /* this */
            getfield com.ctc.wstx.io.UTF8Reader.mCharCount:I
            iload 4 /* outPtr */
            iload 2 /* start */
            isub
            iadd
            istore 10 /* charPos */
        start local 10 // int charPos
        26: .line 139
            aload 0 /* this */
            iload 8 /* c */
            iload 9 /* bytePos */
            iload 10 /* charPos */
            invokevirtual com.ctc.wstx.io.UTF8Reader.reportInvalidXml11:(III)V
        end local 10 // int charPos
        end local 9 // int bytePos
        27: .line 141
      StackMap locals: int
      StackMap stack:
            aload 1 /* cbuf */
            iload 4 /* outPtr */
            iinc 4 /* outPtr */ 1
            iload 8 /* c */
            i2c
            castore
        28: .line 147
            iload 3 /* len */
            iload 4 /* outPtr */
            isub
            istore 9 /* outMax */
        start local 9 // int outMax
        29: .line 148
            iload 7 /* inBufLen */
            iload 6 /* inPtr */
            isub
            istore 10 /* inMax */
        start local 10 // int inMax
        30: .line 149
            iload 6 /* inPtr */
            iload 10 /* inMax */
            iload 9 /* outMax */
            if_icmpge 31
            iload 10 /* inMax */
            goto 32
      StackMap locals: com.ctc.wstx.io.UTF8Reader char[] int int int byte[] int int int int int
      StackMap stack: int
        31: iload 9 /* outMax */
      StackMap locals: com.ctc.wstx.io.UTF8Reader char[] int int int byte[] int int int int int
      StackMap stack: int int
        32: iadd
            istore 11 /* inEnd */
        start local 11 // int inEnd
        33: .line 153
      StackMap locals: int
      StackMap stack:
            iload 6 /* inPtr */
            iload 11 /* inEnd */
            if_icmplt 35
        34: .line 154
            goto 114
        35: .line 156
      StackMap locals:
      StackMap stack:
            aload 5 /* buf */
            iload 6 /* inPtr */
            iinc 6 /* inPtr */ 1
            baload
            sipush 255
            iand
            istore 8 /* c */
        36: .line 157
            iload 8 /* c */
            bipush 127
            if_icmplt 38
        37: .line 158
            goto 40
        38: .line 160
      StackMap locals:
      StackMap stack:
            aload 1 /* cbuf */
            iload 4 /* outPtr */
            iinc 4 /* outPtr */ 1
            iload 8 /* c */
            i2c
            castore
        39: .line 152
            goto 33
        40: .line 162
      StackMap locals:
      StackMap stack:
            iload 8 /* c */
            bipush 127
            if_icmpne 48
        41: .line 163
            aload 0 /* this */
            getfield com.ctc.wstx.io.UTF8Reader.mXml11:Z
            ifeq 45
        42: .line 164
            aload 0 /* this */
            getfield com.ctc.wstx.io.UTF8Reader.mByteCount:I
            iload 6 /* inPtr */
            iadd
            iconst_1
            isub
            istore 12 /* bytePos */
        start local 12 // int bytePos
        43: .line 165
            aload 0 /* this */
            getfield com.ctc.wstx.io.UTF8Reader.mCharCount:I
            iload 4 /* outPtr */
            iload 2 /* start */
            isub
            iadd
            istore 13 /* charPos */
        start local 13 // int charPos
        44: .line 166
            aload 0 /* this */
            iload 8 /* c */
            iload 12 /* bytePos */
            iload 13 /* charPos */
            invokevirtual com.ctc.wstx.io.UTF8Reader.reportInvalidXml11:(III)V
        end local 13 // int charPos
        end local 12 // int bytePos
        45: .line 168
      StackMap locals:
      StackMap stack:
            aload 1 /* cbuf */
            iload 4 /* outPtr */
            iinc 4 /* outPtr */ 1
            iload 8 /* c */
            i2c
            castore
        46: .line 169
            iload 6 /* inPtr */
            iload 11 /* inEnd */
            if_icmplt 113
        47: .line 170
            goto 114
        end local 11 // int inEnd
        end local 10 // int inMax
        end local 9 // int outMax
        48: .line 179
      StackMap locals:
      StackMap stack:
            iload 8 /* c */
            sipush 224
            iand
            sipush 192
            if_icmpne 52
        49: .line 180
            iload 8 /* c */
            bipush 31
            iand
            istore 8 /* c */
        50: .line 181
            iconst_1
            istore 9 /* needed */
        start local 9 // int needed
        51: .line 182
            goto 62
        end local 9 // int needed
      StackMap locals:
      StackMap stack:
        52: iload 8 /* c */
            sipush 240
            iand
            sipush 224
            if_icmpne 56
        53: .line 183
            iload 8 /* c */
            bipush 15
            iand
            istore 8 /* c */
        54: .line 184
            iconst_2
            istore 9 /* needed */
        start local 9 // int needed
        55: .line 185
            goto 62
        end local 9 // int needed
      StackMap locals:
      StackMap stack:
        56: iload 8 /* c */
            sipush 248
            iand
            sipush 240
            if_icmpne 60
        57: .line 187
            iload 8 /* c */
            bipush 15
            iand
            istore 8 /* c */
        58: .line 188
            iconst_3
            istore 9 /* needed */
        start local 9 // int needed
        59: .line 189
            goto 62
        end local 9 // int needed
        60: .line 190
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iload 8 /* c */
            sipush 255
            iand
            iload 4 /* outPtr */
            iload 2 /* start */
            isub
            invokevirtual com.ctc.wstx.io.UTF8Reader.reportInvalidInitial:(II)V
        61: .line 192
            iconst_1
            istore 9 /* needed */
        start local 9 // int needed
        62: .line 199
      StackMap locals: int
      StackMap stack:
            iload 7 /* inBufLen */
            iload 6 /* inPtr */
            isub
            iload 9 /* needed */
            if_icmpge 65
        63: .line 200
            iinc 6 /* inPtr */ -1
        64: .line 201
            goto 114
        65: .line 204
      StackMap locals:
      StackMap stack:
            aload 5 /* buf */
            iload 6 /* inPtr */
            iinc 6 /* inPtr */ 1
            baload
            istore 10 /* d */
        start local 10 // int d
        66: .line 205
            iload 10 /* d */
            sipush 192
            iand
            sipush 128
            if_icmpeq 68
        67: .line 206
            aload 0 /* this */
            iload 10 /* d */
            sipush 255
            iand
            iload 4 /* outPtr */
            iload 2 /* start */
            isub
            invokevirtual com.ctc.wstx.io.UTF8Reader.reportInvalidOther:(II)V
        68: .line 208
      StackMap locals: int
      StackMap stack:
            iload 8 /* c */
            bipush 6
            ishl
            iload 10 /* d */
            bipush 63
            iand
            ior
            istore 8 /* c */
        69: .line 210
            iload 9 /* needed */
            iconst_1
            if_icmple 101
        70: .line 211
            aload 5 /* buf */
            iload 6 /* inPtr */
            iinc 6 /* inPtr */ 1
            baload
            istore 10 /* d */
        71: .line 212
            iload 10 /* d */
            sipush 192
            iand
            sipush 128
            if_icmpeq 73
        72: .line 213
            aload 0 /* this */
            iload 10 /* d */
            sipush 255
            iand
            iload 4 /* outPtr */
            iload 2 /* start */
            isub
            invokevirtual com.ctc.wstx.io.UTF8Reader.reportInvalidOther:(II)V
        73: .line 215
      StackMap locals:
      StackMap stack:
            iload 8 /* c */
            bipush 6
            ishl
            iload 10 /* d */
            bipush 63
            iand
            ior
            istore 8 /* c */
        74: .line 216
            iload 9 /* needed */
            iconst_2
            if_icmple 89
        75: .line 217
            aload 5 /* buf */
            iload 6 /* inPtr */
            iinc 6 /* inPtr */ 1
            baload
            istore 10 /* d */
        76: .line 218
            iload 10 /* d */
            sipush 192
            iand
            sipush 128
            if_icmpeq 78
        77: .line 219
            aload 0 /* this */
            iload 10 /* d */
            sipush 255
            iand
            iload 4 /* outPtr */
            iload 2 /* start */
            isub
            invokevirtual com.ctc.wstx.io.UTF8Reader.reportInvalidOther:(II)V
        78: .line 221
      StackMap locals:
      StackMap stack:
            iload 8 /* c */
            bipush 6
            ishl
            iload 10 /* d */
            bipush 63
            iand
            ior
            istore 8 /* c */
        79: .line 222
            iload 8 /* c */
            ldc 1114111
            if_icmple 83
        80: .line 223
            aload 0 /* this */
            iload 8 /* c */
            iload 4 /* outPtr */
            iload 2 /* start */
            isub
        81: .line 224
            new java.lang.StringBuilder
            dup
            ldc "(above "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc 1114111
            invokestatic java.lang.Integer.toHexString:(I)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc ") "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        82: .line 223
            invokevirtual com.ctc.wstx.io.UTF8Reader.reportInvalid:(IILjava/lang/String;)V
        83: .line 230
      StackMap locals:
      StackMap stack:
            iload 8 /* c */
            ldc 65536
            isub
            istore 8 /* c */
        84: .line 231
            aload 1 /* cbuf */
            iload 4 /* outPtr */
            iinc 4 /* outPtr */ 1
            ldc 55296
            iload 8 /* c */
            bipush 10
            ishr
            iadd
            i2c
            castore
        85: .line 233
            ldc 56320
            iload 8 /* c */
            sipush 1023
            iand
            ior
            istore 8 /* c */
        86: .line 236
            iload 4 /* outPtr */
            iload 3 /* len */
            if_icmplt 110
        87: .line 237
            aload 0 /* this */
            iload 8 /* c */
            i2c
            putfield com.ctc.wstx.io.UTF8Reader.mSurrogate:C
        88: .line 238
            goto 114
        89: .line 246
      StackMap locals:
      StackMap stack:
            iload 8 /* c */
            ldc 55296
            if_icmplt 96
        90: .line 248
            iload 8 /* c */
            ldc 57344
            if_icmpge 93
        91: .line 249
            aload 0 /* this */
            iload 8 /* c */
            iload 4 /* outPtr */
            iload 2 /* start */
            isub
            ldc "(a surrogate character) "
            invokevirtual com.ctc.wstx.io.UTF8Reader.reportInvalid:(IILjava/lang/String;)V
        92: .line 250
            goto 110
      StackMap locals:
      StackMap stack:
        93: iload 8 /* c */
            ldc 65534
            if_icmplt 110
        94: .line 251
            aload 0 /* this */
            iload 8 /* c */
            iload 4 /* outPtr */
            iload 2 /* start */
            isub
            ldc ""
            invokevirtual com.ctc.wstx.io.UTF8Reader.reportInvalid:(IILjava/lang/String;)V
        95: .line 253
            goto 110
      StackMap locals:
      StackMap stack:
        96: aload 0 /* this */
            getfield com.ctc.wstx.io.UTF8Reader.mXml11:Z
            ifeq 110
            iload 8 /* c */
            sipush 8232
            if_icmpne 110
        97: .line 260
            iload 4 /* outPtr */
            iload 2 /* start */
            if_icmple 99
            aload 1 /* cbuf */
            iload 4 /* outPtr */
            iconst_1
            isub
            caload
            bipush 13
            if_icmpne 99
        98: .line 261
            aload 1 /* cbuf */
            iload 4 /* outPtr */
            iconst_1
            isub
            bipush 10
            castore
        99: .line 263
      StackMap locals:
      StackMap stack:
            bipush 10
            istore 8 /* c */
       100: .line 266
            goto 110
       101: .line 267
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.ctc.wstx.io.UTF8Reader.mXml11:Z
            ifeq 110
       102: .line 268
            iload 8 /* c */
            sipush 159
            if_icmpgt 110
       103: .line 269
            iload 8 /* c */
            sipush 133
            if_icmpne 106
       104: .line 270
            bipush 10
            istore 8 /* c */
       105: .line 271
            goto 110
      StackMap locals:
      StackMap stack:
       106: iload 8 /* c */
            bipush 127
            if_icmplt 110
       107: .line 272
            aload 0 /* this */
            getfield com.ctc.wstx.io.UTF8Reader.mByteCount:I
            iload 6 /* inPtr */
            iadd
            iconst_1
            isub
            istore 11 /* bytePos */
        start local 11 // int bytePos
       108: .line 273
            aload 0 /* this */
            getfield com.ctc.wstx.io.UTF8Reader.mCharCount:I
            iload 4 /* outPtr */
            iload 2 /* start */
            isub
            iadd
            istore 12 /* charPos */
        start local 12 // int charPos
       109: .line 274
            aload 0 /* this */
            iload 8 /* c */
            iload 11 /* bytePos */
            iload 12 /* charPos */
            invokevirtual com.ctc.wstx.io.UTF8Reader.reportInvalidXml11:(III)V
        end local 12 // int charPos
        end local 11 // int bytePos
       110: .line 279
      StackMap locals:
      StackMap stack:
            aload 1 /* cbuf */
            iload 4 /* outPtr */
            iinc 4 /* outPtr */ 1
            iload 8 /* c */
            i2c
            castore
       111: .line 280
            iload 6 /* inPtr */
            iload 7 /* inBufLen */
            if_icmplt 113
       112: .line 281
            goto 114
        end local 10 // int d
        end local 9 // int needed
        end local 8 // int c
       113: .line 128
      StackMap locals:
      StackMap stack:
            iload 4 /* outPtr */
            iload 3 /* len */
            if_icmplt 21
       114: .line 285
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iload 6 /* inPtr */
            putfield com.ctc.wstx.io.UTF8Reader.mBytePtr:I
       115: .line 286
            iload 4 /* outPtr */
            iload 2 /* start */
            isub
            istore 3 /* len */
       116: .line 287
            aload 0 /* this */
            dup
            getfield com.ctc.wstx.io.UTF8Reader.mCharCount:I
            iload 3 /* len */
            iadd
            putfield com.ctc.wstx.io.UTF8Reader.mCharCount:I
       117: .line 288
            iload 3 /* len */
            ireturn
        end local 7 // int inBufLen
        end local 6 // int inPtr
        end local 5 // byte[] buf
        end local 4 // int outPtr
        end local 3 // int len
        end local 2 // int start
        end local 1 // char[] cbuf
        end local 0 // com.ctc.wstx.io.UTF8Reader this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0  118     0      this  Lcom/ctc/wstx/io/UTF8Reader;
            0  118     1      cbuf  [C
            0  118     2     start  I
            0  118     3       len  I
            8  118     4    outPtr  I
           13   17     5      left  I
           18  118     5       buf  [B
           19  118     6     inPtr  I
           20  118     7  inBufLen  I
           22  113     8         c  I
           25   27     9   bytePos  I
           26   27    10   charPos  I
           29   48     9    outMax  I
           30   48    10     inMax  I
           33   48    11     inEnd  I
           43   45    12   bytePos  I
           44   45    13   charPos  I
           51   52     9    needed  I
           55   56     9    needed  I
           59   60     9    needed  I
           62  113     9    needed  I
           66  113    10         d  I
          108  110    11   bytePos  I
          109  110    12   charPos  I
    Exceptions:
      throws java.io.IOException
    MethodParameters:
       Name  Flags
      cbuf   
      start  
      len    

  private void reportInvalidInitial(int, int);
    descriptor: (II)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=5, args_size=3
        start local 0 // com.ctc.wstx.io.UTF8Reader this
        start local 1 // int mask
        start local 2 // int offset
         0: .line 301
            aload 0 /* this */
            getfield com.ctc.wstx.io.UTF8Reader.mByteCount:I
            aload 0 /* this */
            getfield com.ctc.wstx.io.UTF8Reader.mBytePtr:I
            iadd
            iconst_1
            isub
            istore 3 /* bytePos */
        start local 3 // int bytePos
         1: .line 302
            aload 0 /* this */
            getfield com.ctc.wstx.io.UTF8Reader.mCharCount:I
            iload 2 /* offset */
            iadd
            iconst_1
            iadd
            istore 4 /* charPos */
        start local 4 // int charPos
         2: .line 304
            new java.io.CharConversionException
            dup
            new java.lang.StringBuilder
            dup
            ldc "Invalid UTF-8 start byte 0x"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
         3: .line 305
            iload 1 /* mask */
            invokestatic java.lang.Integer.toHexString:(I)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
         4: .line 306
            ldc " (at char #"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            iload 4 /* charPos */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            ldc ", byte #"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            iload 3 /* bytePos */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            ldc ")"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
         5: .line 304
            invokespecial java.io.CharConversionException.<init>:(Ljava/lang/String;)V
            athrow
        end local 4 // int charPos
        end local 3 // int bytePos
        end local 2 // int offset
        end local 1 // int mask
        end local 0 // com.ctc.wstx.io.UTF8Reader this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    6     0     this  Lcom/ctc/wstx/io/UTF8Reader;
            0    6     1     mask  I
            0    6     2   offset  I
            1    6     3  bytePos  I
            2    6     4  charPos  I
    Exceptions:
      throws java.io.IOException
    MethodParameters:
        Name  Flags
      mask    
      offset  

  private void reportInvalidOther(int, int);
    descriptor: (II)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=5, args_size=3
        start local 0 // com.ctc.wstx.io.UTF8Reader this
        start local 1 // int mask
        start local 2 // int offset
         0: .line 312
            aload 0 /* this */
            getfield com.ctc.wstx.io.UTF8Reader.mByteCount:I
            aload 0 /* this */
            getfield com.ctc.wstx.io.UTF8Reader.mBytePtr:I
            iadd
            iconst_1
            isub
            istore 3 /* bytePos */
        start local 3 // int bytePos
         1: .line 313
            aload 0 /* this */
            getfield com.ctc.wstx.io.UTF8Reader.mCharCount:I
            iload 2 /* offset */
            iadd
            istore 4 /* charPos */
        start local 4 // int charPos
         2: .line 315
            new java.io.CharConversionException
            dup
            new java.lang.StringBuilder
            dup
            ldc "Invalid UTF-8 middle byte 0x"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
         3: .line 316
            iload 1 /* mask */
            invokestatic java.lang.Integer.toHexString:(I)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
         4: .line 317
            ldc " (at char #"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            iload 4 /* charPos */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            ldc ", byte #"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            iload 3 /* bytePos */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            ldc ")"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
         5: .line 315
            invokespecial java.io.CharConversionException.<init>:(Ljava/lang/String;)V
            athrow
        end local 4 // int charPos
        end local 3 // int bytePos
        end local 2 // int offset
        end local 1 // int mask
        end local 0 // com.ctc.wstx.io.UTF8Reader this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    6     0     this  Lcom/ctc/wstx/io/UTF8Reader;
            0    6     1     mask  I
            0    6     2   offset  I
            1    6     3  bytePos  I
            2    6     4  charPos  I
    Exceptions:
      throws java.io.IOException
    MethodParameters:
        Name  Flags
      mask    
      offset  

  private void reportUnexpectedEOF(int, int);
    descriptor: (II)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=5, args_size=3
        start local 0 // com.ctc.wstx.io.UTF8Reader this
        start local 1 // int gotBytes
        start local 2 // int needed
         0: .line 323
            aload 0 /* this */
            getfield com.ctc.wstx.io.UTF8Reader.mByteCount:I
            iload 1 /* gotBytes */
            iadd
            istore 3 /* bytePos */
        start local 3 // int bytePos
         1: .line 324
            aload 0 /* this */
            getfield com.ctc.wstx.io.UTF8Reader.mCharCount:I
            istore 4 /* charPos */
        start local 4 // int charPos
         2: .line 326
            new java.io.CharConversionException
            dup
            new java.lang.StringBuilder
            dup
            ldc "Unexpected EOF in the middle of a multi-byte char: got "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
         3: .line 327
            iload 1 /* gotBytes */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            ldc ", needed "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            iload 2 /* needed */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
         4: .line 328
            ldc ", at char #"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            iload 4 /* charPos */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            ldc ", byte #"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            iload 3 /* bytePos */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            ldc ")"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
         5: .line 326
            invokespecial java.io.CharConversionException.<init>:(Ljava/lang/String;)V
            athrow
        end local 4 // int charPos
        end local 3 // int bytePos
        end local 2 // int needed
        end local 1 // int gotBytes
        end local 0 // com.ctc.wstx.io.UTF8Reader this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    6     0      this  Lcom/ctc/wstx/io/UTF8Reader;
            0    6     1  gotBytes  I
            0    6     2    needed  I
            1    6     3   bytePos  I
            2    6     4   charPos  I
    Exceptions:
      throws java.io.IOException
    MethodParameters:
          Name  Flags
      gotBytes  
      needed    

  private void reportInvalid(int, int, java.lang.String);
    descriptor: (IILjava/lang/String;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=6, args_size=4
        start local 0 // com.ctc.wstx.io.UTF8Reader this
        start local 1 // int value
        start local 2 // int offset
        start local 3 // java.lang.String msg
         0: .line 334
            aload 0 /* this */
            getfield com.ctc.wstx.io.UTF8Reader.mByteCount:I
            aload 0 /* this */
            getfield com.ctc.wstx.io.UTF8Reader.mBytePtr:I
            iadd
            iconst_1
            isub
            istore 4 /* bytePos */
        start local 4 // int bytePos
         1: .line 335
            aload 0 /* this */
            getfield com.ctc.wstx.io.UTF8Reader.mCharCount:I
            iload 2 /* offset */
            iadd
            istore 5 /* charPos */
        start local 5 // int charPos
         2: .line 337
            new java.io.CharConversionException
            dup
            new java.lang.StringBuilder
            dup
            ldc "Invalid UTF-8 character 0x"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
         3: .line 338
            iload 1 /* value */
            invokestatic java.lang.Integer.toHexString:(I)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 3 /* msg */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
         4: .line 339
            ldc " at char #"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            iload 5 /* charPos */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            ldc ", byte #"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            iload 4 /* bytePos */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            ldc ")"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
         5: .line 337
            invokespecial java.io.CharConversionException.<init>:(Ljava/lang/String;)V
            athrow
        end local 5 // int charPos
        end local 4 // int bytePos
        end local 3 // java.lang.String msg
        end local 2 // int offset
        end local 1 // int value
        end local 0 // com.ctc.wstx.io.UTF8Reader this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    6     0     this  Lcom/ctc/wstx/io/UTF8Reader;
            0    6     1    value  I
            0    6     2   offset  I
            0    6     3      msg  Ljava/lang/String;
            1    6     4  bytePos  I
            2    6     5  charPos  I
    Exceptions:
      throws java.io.IOException
    MethodParameters:
        Name  Flags
      value   
      offset  
      msg     

  private boolean loadMore(int);
    descriptor: (I)Z
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=5, args_size=2
        start local 0 // com.ctc.wstx.io.UTF8Reader this
        start local 1 // int available
         0: .line 351
            aload 0 /* this */
            dup
            getfield com.ctc.wstx.io.UTF8Reader.mByteCount:I
            aload 0 /* this */
            getfield com.ctc.wstx.io.UTF8Reader.mByteBufferEnd:I
            iload 1 /* available */
            isub
            iadd
            putfield com.ctc.wstx.io.UTF8Reader.mByteCount:I
         1: .line 354
            iload 1 /* available */
            ifle 11
         2: .line 358
            aload 0 /* this */
            getfield com.ctc.wstx.io.UTF8Reader.mBytePtr:I
            ifle 17
            aload 0 /* this */
            invokevirtual com.ctc.wstx.io.UTF8Reader.canModifyBuffer:()Z
            ifeq 17
         3: .line 359
            iconst_0
            istore 2 /* i */
        start local 2 // int i
         4: goto 7
         5: .line 360
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            getfield com.ctc.wstx.io.UTF8Reader.mByteBuffer:[B
            iload 2 /* i */
            aload 0 /* this */
            getfield com.ctc.wstx.io.UTF8Reader.mByteBuffer:[B
            aload 0 /* this */
            getfield com.ctc.wstx.io.UTF8Reader.mBytePtr:I
            iload 2 /* i */
            iadd
            baload
            bastore
         6: .line 359
            iinc 2 /* i */ 1
      StackMap locals:
      StackMap stack:
         7: iload 2 /* i */
            iload 1 /* available */
            if_icmplt 5
        end local 2 // int i
         8: .line 362
            aload 0 /* this */
            iconst_0
            putfield com.ctc.wstx.io.UTF8Reader.mBytePtr:I
         9: .line 363
            aload 0 /* this */
            iload 1 /* available */
            putfield com.ctc.wstx.io.UTF8Reader.mByteBufferEnd:I
        10: .line 365
            goto 17
        11: .line 369
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual com.ctc.wstx.io.UTF8Reader.readBytes:()I
            istore 2 /* count */
        start local 2 // int count
        12: .line 370
            iload 2 /* count */
            iconst_1
            if_icmpge 17
        13: .line 371
            iload 2 /* count */
            ifge 16
        14: .line 372
            aload 0 /* this */
            invokevirtual com.ctc.wstx.io.UTF8Reader.freeBuffers:()V
        15: .line 373
            iconst_0
            ireturn
        16: .line 376
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            invokevirtual com.ctc.wstx.io.UTF8Reader.reportStrangeStream:()V
        end local 2 // int count
        17: .line 384
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.ctc.wstx.io.UTF8Reader.mByteBuffer:[B
            aload 0 /* this */
            getfield com.ctc.wstx.io.UTF8Reader.mBytePtr:I
            baload
            istore 2 /* c */
        start local 2 // int c
        18: .line 385
            iload 2 /* c */
            iflt 20
        19: .line 386
            iconst_1
            ireturn
        20: .line 391
      StackMap locals: int
      StackMap stack:
            iload 2 /* c */
            sipush 224
            iand
            sipush 192
            if_icmpne 23
        21: .line 392
            iconst_2
            istore 3 /* needed */
        start local 3 // int needed
        22: .line 393
            goto 38
        end local 3 // int needed
      StackMap locals:
      StackMap stack:
        23: iload 2 /* c */
            sipush 240
            iand
            sipush 224
            if_icmpne 26
        24: .line 394
            iconst_3
            istore 3 /* needed */
        start local 3 // int needed
        25: .line 395
            goto 38
        end local 3 // int needed
      StackMap locals:
      StackMap stack:
        26: iload 2 /* c */
            sipush 248
            iand
            sipush 240
            if_icmpne 29
        27: .line 397
            iconst_4
            istore 3 /* needed */
        start local 3 // int needed
        28: .line 398
            goto 38
        end local 3 // int needed
        29: .line 399
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iload 2 /* c */
            sipush 255
            iand
            iconst_0
            invokevirtual com.ctc.wstx.io.UTF8Reader.reportInvalidInitial:(II)V
        30: .line 401
            iconst_1
            istore 3 /* needed */
        start local 3 // int needed
        31: .line 408
            goto 38
        32: .line 409
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            aload 0 /* this */
            getfield com.ctc.wstx.io.UTF8Reader.mByteBufferEnd:I
            invokevirtual com.ctc.wstx.io.UTF8Reader.readBytesAt:(I)I
            istore 4 /* count */
        start local 4 // int count
        33: .line 410
            iload 4 /* count */
            iconst_1
            if_icmpge 38
        34: .line 411
            iload 4 /* count */
            ifge 37
        35: .line 412
            aload 0 /* this */
            invokevirtual com.ctc.wstx.io.UTF8Reader.freeBuffers:()V
        36: .line 413
            aload 0 /* this */
            aload 0 /* this */
            getfield com.ctc.wstx.io.UTF8Reader.mByteBufferEnd:I
            iload 3 /* needed */
            invokevirtual com.ctc.wstx.io.UTF8Reader.reportUnexpectedEOF:(II)V
        37: .line 416
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            invokevirtual com.ctc.wstx.io.UTF8Reader.reportStrangeStream:()V
        end local 4 // int count
        38: .line 408
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.ctc.wstx.io.UTF8Reader.mBytePtr:I
            iload 3 /* needed */
            iadd
            aload 0 /* this */
            getfield com.ctc.wstx.io.UTF8Reader.mByteBufferEnd:I
            if_icmpgt 32
        39: .line 419
            iconst_1
            ireturn
        end local 3 // int needed
        end local 2 // int c
        end local 1 // int available
        end local 0 // com.ctc.wstx.io.UTF8Reader this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   40     0       this  Lcom/ctc/wstx/io/UTF8Reader;
            0   40     1  available  I
            4    8     2          i  I
           12   17     2      count  I
           18   40     2          c  I
           22   23     3     needed  I
           25   26     3     needed  I
           28   29     3     needed  I
           31   40     3     needed  I
           33   38     4      count  I
    Exceptions:
      throws java.io.IOException
    MethodParameters:
           Name  Flags
      available  

  public void close();
    descriptor: ()V
    flags: (0x1041) ACC_PUBLIC, ACC_BRIDGE, ACC_SYNTHETIC
    Code:
      stack=1, locals=1, args_size=1
         0: .line 1
            aload 0
            invokespecial com.ctc.wstx.io.BaseReader.close:()V
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature
    Exceptions:
      throws java.io.IOException

  public int read();
    descriptor: ()I
    flags: (0x1041) ACC_PUBLIC, ACC_BRIDGE, ACC_SYNTHETIC
    Code:
      stack=1, locals=1, args_size=1
         0: .line 1
            aload 0
            invokespecial com.ctc.wstx.io.BaseReader.read:()I
            ireturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature
    Exceptions:
      throws java.io.IOException
}
SourceFile: "UTF8Reader.java"