abstract class sun.nio.cs.UnicodeDecoder extends java.nio.charset.CharsetDecoder
  minor version: 0
  major version: 59
  flags: flags: (0x0420) ACC_SUPER, ACC_ABSTRACT
  this_class: sun.nio.cs.UnicodeDecoder
  super_class: java.nio.charset.CharsetDecoder
{
  protected static final char BYTE_ORDER_MARK;
    descriptor: C
    flags: (0x001c) ACC_PROTECTED, ACC_STATIC, ACC_FINAL
    ConstantValue: 65279

  protected static final char REVERSED_MARK;
    descriptor: C
    flags: (0x001c) ACC_PROTECTED, ACC_STATIC, ACC_FINAL
    ConstantValue: 65534

  protected static final int NONE;
    descriptor: I
    flags: (0x001c) ACC_PROTECTED, ACC_STATIC, ACC_FINAL
    ConstantValue: 0

  protected static final int BIG;
    descriptor: I
    flags: (0x001c) ACC_PROTECTED, ACC_STATIC, ACC_FINAL
    ConstantValue: 1

  protected static final int LITTLE;
    descriptor: I
    flags: (0x001c) ACC_PROTECTED, ACC_STATIC, ACC_FINAL
    ConstantValue: 2

  private final int expectedByteOrder;
    descriptor: I
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

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

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

  public void <init>(java.nio.charset.Charset, int);
    descriptor: (Ljava/nio/charset/Charset;I)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // sun.nio.cs.UnicodeDecoder this
        start local 1 // java.nio.charset.Charset cs
        start local 2 // int bo
         0: .line 51
            aload 0 /* this */
            aload 1 /* cs */
            ldc 0.5
            fconst_1
            invokespecial java.nio.charset.CharsetDecoder.<init>:(Ljava/nio/charset/Charset;FF)V
         1: .line 48
            aload 0 /* this */
            iconst_1
            putfield sun.nio.cs.UnicodeDecoder.defaultByteOrder:I
         2: .line 52
            aload 0 /* this */
            aload 0 /* this */
            iload 2 /* bo */
            dup_x1
            putfield sun.nio.cs.UnicodeDecoder.currentByteOrder:I
            putfield sun.nio.cs.UnicodeDecoder.expectedByteOrder:I
         3: .line 53
            return
        end local 2 // int bo
        end local 1 // java.nio.charset.Charset cs
        end local 0 // sun.nio.cs.UnicodeDecoder this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Lsun/nio/cs/UnicodeDecoder;
            0    4     1    cs  Ljava/nio/charset/Charset;
            0    4     2    bo  I
    MethodParameters:
      Name  Flags
      cs    
      bo    

  public void <init>(java.nio.charset.Charset, int, int);
    descriptor: (Ljava/nio/charset/Charset;II)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=4, args_size=4
        start local 0 // sun.nio.cs.UnicodeDecoder this
        start local 1 // java.nio.charset.Charset cs
        start local 2 // int bo
        start local 3 // int defaultBO
         0: .line 56
            aload 0 /* this */
            aload 1 /* cs */
            iload 2 /* bo */
            invokespecial sun.nio.cs.UnicodeDecoder.<init>:(Ljava/nio/charset/Charset;I)V
         1: .line 57
            aload 0 /* this */
            iload 3 /* defaultBO */
            putfield sun.nio.cs.UnicodeDecoder.defaultByteOrder:I
         2: .line 58
            return
        end local 3 // int defaultBO
        end local 2 // int bo
        end local 1 // java.nio.charset.Charset cs
        end local 0 // sun.nio.cs.UnicodeDecoder this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    3     0       this  Lsun/nio/cs/UnicodeDecoder;
            0    3     1         cs  Ljava/nio/charset/Charset;
            0    3     2         bo  I
            0    3     3  defaultBO  I
    MethodParameters:
           Name  Flags
      cs         
      bo         
      defaultBO  

  private char decode(int, int);
    descriptor: (II)C
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=3, args_size=3
        start local 0 // sun.nio.cs.UnicodeDecoder this
        start local 1 // int b1
        start local 2 // int b2
         0: .line 61
            aload 0 /* this */
            getfield sun.nio.cs.UnicodeDecoder.currentByteOrder:I
            iconst_1
            if_icmpne 2
         1: .line 62
            iload 1 /* b1 */
            bipush 8
            ishl
            iload 2 /* b2 */
            ior
            i2c
            ireturn
         2: .line 64
      StackMap locals:
      StackMap stack:
            iload 2 /* b2 */
            bipush 8
            ishl
            iload 1 /* b1 */
            ior
            i2c
            ireturn
        end local 2 // int b2
        end local 1 // int b1
        end local 0 // sun.nio.cs.UnicodeDecoder this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lsun/nio/cs/UnicodeDecoder;
            0    3     1    b1  I
            0    3     2    b2  I
    MethodParameters:
      Name  Flags
      b1    
      b2    

  protected java.nio.charset.CoderResult decodeLoop(java.nio.ByteBuffer, java.nio.CharBuffer);
    descriptor: (Ljava/nio/ByteBuffer;Ljava/nio/CharBuffer;)Ljava/nio/charset/CoderResult;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=4, locals=10, args_size=3
        start local 0 // sun.nio.cs.UnicodeDecoder this
        start local 1 // java.nio.ByteBuffer src
        start local 2 // java.nio.CharBuffer dst
         0: .line 68
            aload 1 /* src */
            invokevirtual java.nio.ByteBuffer.position:()I
            istore 3 /* mark */
        start local 3 // int mark
         1: .line 71
            goto 48
         2: .line 72
      StackMap locals: int
      StackMap stack:
            aload 1 /* src */
            invokevirtual java.nio.ByteBuffer.get:()B
            sipush 255
            iand
            istore 4 /* b1 */
        start local 4 // int b1
         3: .line 73
            aload 1 /* src */
            invokevirtual java.nio.ByteBuffer.get:()B
            sipush 255
            iand
            istore 5 /* b2 */
        start local 5 // int b2
         4: .line 76
            aload 0 /* this */
            getfield sun.nio.cs.UnicodeDecoder.currentByteOrder:I
            ifne 15
         5: .line 77
            iload 4 /* b1 */
            bipush 8
            ishl
            iload 5 /* b2 */
            ior
            i2c
            istore 6 /* c */
        start local 6 // char c
         6: .line 78
            iload 6 /* c */
            ldc 65279
            if_icmpne 10
         7: .line 79
            aload 0 /* this */
            iconst_1
            putfield sun.nio.cs.UnicodeDecoder.currentByteOrder:I
         8: .line 80
            iinc 3 /* mark */ 2
         9: .line 81
            goto 48
        10: .line 82
      StackMap locals: int int int
      StackMap stack:
            iload 6 /* c */
            ldc 65534
            if_icmpne 14
        11: .line 83
            aload 0 /* this */
            iconst_2
            putfield sun.nio.cs.UnicodeDecoder.currentByteOrder:I
        12: .line 84
            iinc 3 /* mark */ 2
        13: .line 85
            goto 48
        14: .line 87
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 0 /* this */
            getfield sun.nio.cs.UnicodeDecoder.defaultByteOrder:I
            putfield sun.nio.cs.UnicodeDecoder.currentByteOrder:I
        end local 6 // char c
        15: .line 92
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iload 4 /* b1 */
            iload 5 /* b2 */
            invokevirtual sun.nio.cs.UnicodeDecoder.decode:(II)C
            istore 6 /* c */
        start local 6 // char c
        16: .line 94
            iload 6 /* c */
            ldc 65534
            if_icmpne 20
        17: .line 96
            iconst_2
            invokestatic java.nio.charset.CoderResult.malformedForLength:(I)Ljava/nio/charset/CoderResult;
            astore 9
        18: .line 127
            aload 1 /* src */
            iload 3 /* mark */
            invokevirtual java.nio.ByteBuffer.position:(I)Ljava/nio/Buffer;
            pop
        19: .line 96
            aload 9
            areturn
        20: .line 100
      StackMap locals: int
      StackMap stack:
            iload 6 /* c */
            invokestatic sun.nio.cs.Surrogate.is:(I)Z
            ifeq 42
        21: .line 101
            iload 6 /* c */
            invokestatic sun.nio.cs.Surrogate.isHigh:(I)Z
            ifeq 39
        22: .line 102
            aload 1 /* src */
            invokevirtual java.nio.ByteBuffer.remaining:()I
            iconst_2
            if_icmpge 26
        23: .line 103
            getstatic java.nio.charset.CoderResult.UNDERFLOW:Ljava/nio/charset/CoderResult;
            astore 9
        24: .line 127
            aload 1 /* src */
            iload 3 /* mark */
            invokevirtual java.nio.ByteBuffer.position:(I)Ljava/nio/Buffer;
            pop
        25: .line 103
            aload 9
            areturn
        26: .line 104
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* src */
            invokevirtual java.nio.ByteBuffer.get:()B
            sipush 255
            iand
            aload 1 /* src */
            invokevirtual java.nio.ByteBuffer.get:()B
            sipush 255
            iand
            invokevirtual sun.nio.cs.UnicodeDecoder.decode:(II)C
            istore 7 /* c2 */
        start local 7 // char c2
        27: .line 105
            iload 7 /* c2 */
            invokestatic sun.nio.cs.Surrogate.isLow:(I)Z
            ifne 31
        28: .line 106
            iconst_4
            invokestatic java.nio.charset.CoderResult.malformedForLength:(I)Ljava/nio/charset/CoderResult;
            astore 9
        29: .line 127
            aload 1 /* src */
            iload 3 /* mark */
            invokevirtual java.nio.ByteBuffer.position:(I)Ljava/nio/Buffer;
            pop
        30: .line 106
            aload 9
            areturn
        31: .line 107
      StackMap locals: int
      StackMap stack:
            aload 2 /* dst */
            invokevirtual java.nio.CharBuffer.remaining:()I
            iconst_2
            if_icmpge 35
        32: .line 108
            getstatic java.nio.charset.CoderResult.OVERFLOW:Ljava/nio/charset/CoderResult;
            astore 9
        33: .line 127
            aload 1 /* src */
            iload 3 /* mark */
            invokevirtual java.nio.ByteBuffer.position:(I)Ljava/nio/Buffer;
            pop
        34: .line 108
            aload 9
            areturn
        35: .line 109
      StackMap locals:
      StackMap stack:
            iinc 3 /* mark */ 4
        36: .line 110
            aload 2 /* dst */
            iload 6 /* c */
            invokevirtual java.nio.CharBuffer.put:(C)Ljava/nio/CharBuffer;
            pop
        37: .line 111
            aload 2 /* dst */
            iload 7 /* c2 */
            invokevirtual java.nio.CharBuffer.put:(C)Ljava/nio/CharBuffer;
            pop
        38: .line 112
            goto 48
        end local 7 // char c2
        39: .line 115
      StackMap locals:
      StackMap stack:
            iconst_2
            invokestatic java.nio.charset.CoderResult.malformedForLength:(I)Ljava/nio/charset/CoderResult;
            astore 9
        40: .line 127
            aload 1 /* src */
            iload 3 /* mark */
            invokevirtual java.nio.ByteBuffer.position:(I)Ljava/nio/Buffer;
            pop
        41: .line 115
            aload 9
            areturn
        42: .line 118
      StackMap locals:
      StackMap stack:
            aload 2 /* dst */
            invokevirtual java.nio.CharBuffer.hasRemaining:()Z
            ifne 46
        43: .line 119
            getstatic java.nio.charset.CoderResult.OVERFLOW:Ljava/nio/charset/CoderResult;
            astore 9
        44: .line 127
            aload 1 /* src */
            iload 3 /* mark */
            invokevirtual java.nio.ByteBuffer.position:(I)Ljava/nio/Buffer;
            pop
        45: .line 119
            aload 9
            areturn
        46: .line 120
      StackMap locals:
      StackMap stack:
            iinc 3 /* mark */ 2
        47: .line 121
            aload 2 /* dst */
            iload 6 /* c */
            invokevirtual java.nio.CharBuffer.put:(C)Ljava/nio/CharBuffer;
            pop
        end local 6 // char c
        end local 5 // int b2
        end local 4 // int b1
        48: .line 71
      StackMap locals:
      StackMap stack:
            aload 1 /* src */
            invokevirtual java.nio.ByteBuffer.remaining:()I
            iconst_1
            if_icmpgt 2
        49: .line 124
            getstatic java.nio.charset.CoderResult.UNDERFLOW:Ljava/nio/charset/CoderResult;
            astore 9
        50: .line 127
            aload 1 /* src */
            iload 3 /* mark */
            invokevirtual java.nio.ByteBuffer.position:(I)Ljava/nio/Buffer;
            pop
        51: .line 124
            aload 9
            areturn
        52: .line 126
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 8
        53: .line 127
            aload 1 /* src */
            iload 3 /* mark */
            invokevirtual java.nio.ByteBuffer.position:(I)Ljava/nio/Buffer;
            pop
        54: .line 128
            aload 8
            athrow
        end local 3 // int mark
        end local 2 // java.nio.CharBuffer dst
        end local 1 // java.nio.ByteBuffer src
        end local 0 // sun.nio.cs.UnicodeDecoder this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   55     0  this  Lsun/nio/cs/UnicodeDecoder;
            0   55     1   src  Ljava/nio/ByteBuffer;
            0   55     2   dst  Ljava/nio/CharBuffer;
            1   55     3  mark  I
            3   48     4    b1  I
            4   48     5    b2  I
            6   15     6     c  C
           16   48     6     c  C
           27   39     7    c2  C
      Exception table:
        from    to  target  type
           1    18      52  any
          20    24      52  any
          26    29      52  any
          31    33      52  any
          35    40      52  any
          42    44      52  any
          46    50      52  any
    MethodParameters:
      Name  Flags
      src   
      dst   

  protected void implReset();
    descriptor: ()V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // sun.nio.cs.UnicodeDecoder this
         0: .line 132
            aload 0 /* this */
            aload 0 /* this */
            getfield sun.nio.cs.UnicodeDecoder.expectedByteOrder:I
            putfield sun.nio.cs.UnicodeDecoder.currentByteOrder:I
         1: .line 133
            return
        end local 0 // sun.nio.cs.UnicodeDecoder this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lsun/nio/cs/UnicodeDecoder;
}
SourceFile: "UnicodeDecoder.java"