public final class org.jcodings.transcode.EConv implements org.jcodings.transcode.EConvFlags
  minor version: 0
  major version: 59
  flags: flags: (0x0031) ACC_PUBLIC, ACC_FINAL, ACC_SUPER
  this_class: org.jcodings.transcode.EConv
  super_class: java.lang.Object
{
  int flags;
    descriptor: I
    flags: (0x0000) 

  public byte[] source;
    descriptor: [B
    flags: (0x0001) ACC_PUBLIC

  public byte[] destination;
    descriptor: [B
    flags: (0x0001) ACC_PUBLIC

  boolean started;
    descriptor: Z
    flags: (0x0000) 

  public byte[] replacementString;
    descriptor: [B
    flags: (0x0001) ACC_PUBLIC

  public int replacementLength;
    descriptor: I
    flags: (0x0001) ACC_PUBLIC

  public byte[] replacementEncoding;
    descriptor: [B
    flags: (0x0001) ACC_PUBLIC

  org.jcodings.transcode.Buffer inBuf;
    descriptor: Lorg/jcodings/transcode/Buffer;
    flags: (0x0000) 

  public org.jcodings.transcode.EConv$EConvElement[] elements;
    descriptor: [Lorg/jcodings/transcode/EConv$EConvElement;
    flags: (0x0001) ACC_PUBLIC

  public int numTranscoders;
    descriptor: I
    flags: (0x0001) ACC_PUBLIC

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

  public org.jcodings.transcode.Transcoding lastTranscoding;
    descriptor: Lorg/jcodings/transcode/Transcoding;
    flags: (0x0001) ACC_PUBLIC

  public final org.jcodings.transcode.EConv$LastError lastError;
    descriptor: Lorg/jcodings/transcode/EConv$LastError;
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL

  public org.jcodings.Encoding sourceEncoding;
    descriptor: Lorg/jcodings/Encoding;
    flags: (0x0001) ACC_PUBLIC

  public org.jcodings.Encoding destinationEncoding;
    descriptor: Lorg/jcodings/Encoding;
    flags: (0x0001) ACC_PUBLIC

  static final byte[] NULL_STRING;
    descriptor: [B
    flags: (0x0018) ACC_STATIC, ACC_FINAL

  static final int[] NULL_POINTER;
    descriptor: [I
    flags: (0x0018) ACC_STATIC, ACC_FINAL

  private static volatile int[] $SWITCH_TABLE$org$jcodings$transcode$EConvResult;
    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 141
            iconst_0
            newarray 8
            putstatic org.jcodings.transcode.EConv.NULL_STRING:[B
         1: .line 142
            iconst_0
            newarray 10
            putstatic org.jcodings.transcode.EConv.NULL_POINTER:[I
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public java.lang.String toString();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=1, args_size=1
        start local 0 // org.jcodings.transcode.EConv this
         0: .line 54
            new java.lang.StringBuilder
            dup
            new java.lang.String
            dup
            aload 0 /* this */
            getfield org.jcodings.transcode.EConv.source:[B
            invokespecial java.lang.String.<init>:([B)V
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc " => "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            new java.lang.String
            dup
            aload 0 /* this */
            getfield org.jcodings.transcode.EConv.destination:[B
            invokespecial java.lang.String.<init>:([B)V
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            areturn
        end local 0 // org.jcodings.transcode.EConv this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/jcodings/transcode/EConv;

  void <init>(int);
    descriptor: (I)V
    flags: (0x0000) 
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // org.jcodings.transcode.EConv this
        start local 1 // int nHint
         0: .line 57
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 35
            aload 0 /* this */
            iconst_0
            putfield org.jcodings.transcode.EConv.started:Z
         2: .line 41
            aload 0 /* this */
            new org.jcodings.transcode.Buffer
            dup
            invokespecial org.jcodings.transcode.Buffer.<init>:()V
            putfield org.jcodings.transcode.EConv.inBuf:Lorg/jcodings/transcode/Buffer;
         3: .line 48
            aload 0 /* this */
            new org.jcodings.transcode.EConv$LastError
            dup
            invokespecial org.jcodings.transcode.EConv$LastError.<init>:()V
            putfield org.jcodings.transcode.EConv.lastError:Lorg/jcodings/transcode/EConv$LastError;
         4: .line 58
            iload 1 /* nHint */
            ifgt 5
            iconst_1
            istore 1 /* nHint */
         5: .line 59
      StackMap locals: org.jcodings.transcode.EConv int
      StackMap stack:
            aload 0 /* this */
            iload 1 /* nHint */
            anewarray org.jcodings.transcode.EConv$EConvElement
            putfield org.jcodings.transcode.EConv.elements:[Lorg/jcodings/transcode/EConv$EConvElement;
         6: .line 60
            aload 0 /* this */
            getfield org.jcodings.transcode.EConv.lastError:Lorg/jcodings/transcode/EConv$LastError;
            getstatic org.jcodings.transcode.EConvResult.SourceBufferEmpty:Lorg/jcodings/transcode/EConvResult;
            putfield org.jcodings.transcode.EConv$LastError.result:Lorg/jcodings/transcode/EConvResult;
         7: .line 61
            return
        end local 1 // int nHint
        end local 0 // org.jcodings.transcode.EConv this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    8     0   this  Lorg/jcodings/transcode/EConv;
            0    8     1  nHint  I
    MethodParameters:
       Name  Flags
      nHint  

  static boolean decorator(byte[], byte[]);
    descriptor: ([B[B)Z
    flags: (0x0008) ACC_STATIC
    Code:
      stack=1, locals=2, args_size=2
        start local 0 // byte[] source
        start local 1 // byte[] destination
         0: .line 145
            aload 0 /* source */
            arraylength
            ifne 1
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         1: iconst_0
            ireturn
        end local 1 // byte[] destination
        end local 0 // byte[] source
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    2     0       source  [B
            0    2     1  destination  [B
    MethodParameters:
             Name  Flags
      source       
      destination  

  void addTranscoderAt(org.jcodings.transcode.Transcoder, int);
    descriptor: (Lorg/jcodings/transcode/Transcoder;I)V
    flags: (0x0000) 
    Code:
      stack=6, locals=6, args_size=3
        start local 0 // org.jcodings.transcode.EConv this
        start local 1 // org.jcodings.transcode.Transcoder transcoder
        start local 2 // int i
         0: .line 150
            aload 0 /* this */
            getfield org.jcodings.transcode.EConv.numTranscoders:I
            aload 0 /* this */
            getfield org.jcodings.transcode.EConv.elements:[Lorg/jcodings/transcode/EConv$EConvElement;
            arraylength
            if_icmpne 6
         1: .line 151
            aload 0 /* this */
            getfield org.jcodings.transcode.EConv.elements:[Lorg/jcodings/transcode/EConv$EConvElement;
            arraylength
            iconst_2
            imul
            anewarray org.jcodings.transcode.EConv$EConvElement
            astore 3 /* tmp */
        start local 3 // org.jcodings.transcode.EConv$EConvElement[] tmp
         2: .line 152
            aload 0 /* this */
            getfield org.jcodings.transcode.EConv.elements:[Lorg/jcodings/transcode/EConv$EConvElement;
            iconst_0
            aload 3 /* tmp */
            iconst_0
            iload 2 /* i */
            invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
         3: .line 153
            aload 0 /* this */
            getfield org.jcodings.transcode.EConv.elements:[Lorg/jcodings/transcode/EConv$EConvElement;
            iload 2 /* i */
            aload 3 /* tmp */
            iload 2 /* i */
            iconst_1
            iadd
            aload 0 /* this */
            getfield org.jcodings.transcode.EConv.elements:[Lorg/jcodings/transcode/EConv$EConvElement;
            arraylength
            iload 2 /* i */
            isub
            invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
         4: .line 154
            aload 0 /* this */
            aload 3 /* tmp */
            putfield org.jcodings.transcode.EConv.elements:[Lorg/jcodings/transcode/EConv$EConvElement;
        end local 3 // org.jcodings.transcode.EConv$EConvElement[] tmp
         5: .line 155
            goto 7
         6: .line 156
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.jcodings.transcode.EConv.elements:[Lorg/jcodings/transcode/EConv$EConvElement;
            iload 2 /* i */
            aload 0 /* this */
            getfield org.jcodings.transcode.EConv.elements:[Lorg/jcodings/transcode/EConv$EConvElement;
            iload 2 /* i */
            iconst_1
            iadd
            aload 0 /* this */
            getfield org.jcodings.transcode.EConv.elements:[Lorg/jcodings/transcode/EConv$EConvElement;
            arraylength
            iload 2 /* i */
            isub
            iconst_1
            isub
            invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
         7: .line 159
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.jcodings.transcode.EConv.elements:[Lorg/jcodings/transcode/EConv$EConvElement;
            iload 2 /* i */
            new org.jcodings.transcode.EConv$EConvElement
            dup
            aload 1 /* transcoder */
            iconst_0
            invokevirtual org.jcodings.transcode.Transcoder.transcoding:(I)Lorg/jcodings/transcode/Transcoding;
            invokespecial org.jcodings.transcode.EConv$EConvElement.<init>:(Lorg/jcodings/transcode/Transcoding;)V
            aastore
         8: .line 160
            aload 0 /* this */
            getfield org.jcodings.transcode.EConv.elements:[Lorg/jcodings/transcode/EConv$EConvElement;
            iload 2 /* i */
            aaload
            sipush 4096
            invokevirtual org.jcodings.transcode.EConv$EConvElement.allocate:(I)V
         9: .line 161
            aload 0 /* this */
            dup
            getfield org.jcodings.transcode.EConv.numTranscoders:I
            iconst_1
            iadd
            putfield org.jcodings.transcode.EConv.numTranscoders:I
        10: .line 163
            aload 1 /* transcoder */
            getfield org.jcodings.transcode.Transcoder.source:[B
            aload 1 /* transcoder */
            getfield org.jcodings.transcode.Transcoder.destination:[B
            invokestatic org.jcodings.transcode.EConv.decorator:([B[B)Z
            ifne 20
        11: .line 164
            aload 0 /* this */
            getfield org.jcodings.transcode.EConv.numTranscoders:I
            iconst_1
            isub
            istore 3 /* j */
        start local 3 // int j
        12: goto 19
        13: .line 165
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            getfield org.jcodings.transcode.EConv.elements:[Lorg/jcodings/transcode/EConv$EConvElement;
            iload 3 /* j */
            aaload
            getfield org.jcodings.transcode.EConv$EConvElement.transcoding:Lorg/jcodings/transcode/Transcoding;
            astore 4 /* tc */
        start local 4 // org.jcodings.transcode.Transcoding tc
        14: .line 166
            aload 4 /* tc */
            getfield org.jcodings.transcode.Transcoding.transcoder:Lorg/jcodings/transcode/Transcoder;
            astore 5 /* tr */
        start local 5 // org.jcodings.transcode.Transcoder tr
        15: .line 167
            aload 5 /* tr */
            getfield org.jcodings.transcode.Transcoder.source:[B
            aload 5 /* tr */
            getfield org.jcodings.transcode.Transcoder.destination:[B
            invokestatic org.jcodings.transcode.EConv.decorator:([B[B)Z
            ifne 18
        16: .line 168
            aload 0 /* this */
            aload 4 /* tc */
            putfield org.jcodings.transcode.EConv.lastTranscoding:Lorg/jcodings/transcode/Transcoding;
        17: .line 169
            goto 20
        end local 5 // org.jcodings.transcode.Transcoder tr
        end local 4 // org.jcodings.transcode.Transcoding tc
        18: .line 164
      StackMap locals:
      StackMap stack:
            iinc 3 /* j */ -1
      StackMap locals:
      StackMap stack:
        19: iload 2 /* i */
            iload 3 /* j */
            if_icmple 13
        end local 3 // int j
        20: .line 173
      StackMap locals:
      StackMap stack:
            return
        end local 2 // int i
        end local 1 // org.jcodings.transcode.Transcoder transcoder
        end local 0 // org.jcodings.transcode.EConv this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   21     0        this  Lorg/jcodings/transcode/EConv;
            0   21     1  transcoder  Lorg/jcodings/transcode/Transcoder;
            0   21     2           i  I
            2    5     3         tmp  [Lorg/jcodings/transcode/EConv$EConvElement;
           12   20     3           j  I
           14   18     4          tc  Lorg/jcodings/transcode/Transcoding;
           15   18     5          tr  Lorg/jcodings/transcode/Transcoder;
    MethodParameters:
            Name  Flags
      transcoder  
      i           

  private int transSweep(byte[], org.jcodings.Ptr, int, byte[], org.jcodings.Ptr, int, int, int);
    descriptor: ([BLorg/jcodings/Ptr;I[BLorg/jcodings/Ptr;III)I
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=9, locals=25, args_size=9
        start local 0 // org.jcodings.transcode.EConv this
        start local 1 // byte[] in
        start local 2 // org.jcodings.Ptr inPtr
        start local 3 // int inStop
        start local 4 // byte[] out
        start local 5 // org.jcodings.Ptr outPtr
        start local 6 // int outStop
        start local 7 // int flags
        start local 8 // int start
         0: .line 177
            iconst_1
            istore 9 /* try_ */
        start local 9 // boolean try_
         1: .line 179
            aconst_null
            astore 10 /* ipp */
        start local 10 // org.jcodings.Ptr ipp
         2: .line 180
            aconst_null
            astore 11 /* opp */
        start local 11 // org.jcodings.Ptr opp
         3: .line 182
            goto 56
         4: .line 183
      StackMap locals: int org.jcodings.Ptr org.jcodings.Ptr
      StackMap stack:
            iconst_0
            istore 9 /* try_ */
         5: .line 184
            iload 8 /* start */
            istore 12 /* i */
        start local 12 // int i
         6: goto 55
         7: .line 185
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            getfield org.jcodings.transcode.EConv.elements:[Lorg/jcodings/transcode/EConv$EConvElement;
            iload 12 /* i */
            aaload
            astore 13 /* te */
        start local 13 // org.jcodings.transcode.EConv$EConvElement te
         8: .line 189
            aconst_null
            astore 18 /* previousTE */
        start local 18 // org.jcodings.transcode.EConv$EConvElement previousTE
         9: .line 190
            iconst_0
            istore 19 /* ippIsStart */
        start local 19 // boolean ippIsStart
        10: .line 191
            iconst_0
            istore 20 /* oppIsEnd */
        start local 20 // boolean oppIsEnd
        11: .line 193
            iload 12 /* i */
            ifne 16
        12: .line 194
            aload 2 /* inPtr */
            astore 10 /* ipp */
        13: .line 195
            iload 3 /* inStop */
            istore 14 /* is */
        start local 14 // int is
        14: .line 196
            aload 1 /* in */
            astore 16 /* ibytes */
        start local 16 // byte[] ibytes
        15: .line 197
            goto 21
        end local 16 // byte[] ibytes
        end local 14 // int is
        16: .line 198
      StackMap locals: org.jcodings.transcode.EConv byte[] org.jcodings.Ptr int byte[] org.jcodings.Ptr int int int int org.jcodings.Ptr org.jcodings.Ptr int org.jcodings.transcode.EConv$EConvElement top top top top org.jcodings.transcode.EConv$EConvElement int int
      StackMap stack:
            aload 0 /* this */
            getfield org.jcodings.transcode.EConv.elements:[Lorg/jcodings/transcode/EConv$EConvElement;
            iload 12 /* i */
            iconst_1
            isub
            aaload
            astore 18 /* previousTE */
        17: .line 199
            new org.jcodings.Ptr
            dup
            aload 18 /* previousTE */
            getfield org.jcodings.transcode.EConv$EConvElement.dataStart:I
            invokespecial org.jcodings.Ptr.<init>:(I)V
            astore 10 /* ipp */
        18: .line 200
            iconst_1
            istore 19 /* ippIsStart */
        19: .line 201
            aload 18 /* previousTE */
            getfield org.jcodings.transcode.EConv$EConvElement.dataEnd:I
            istore 14 /* is */
        start local 14 // int is
        20: .line 202
            aload 18 /* previousTE */
            getfield org.jcodings.transcode.EConv$EConvElement.bytes:[B
            astore 16 /* ibytes */
        start local 16 // byte[] ibytes
        21: .line 205
      StackMap locals: org.jcodings.transcode.EConv byte[] org.jcodings.Ptr int byte[] org.jcodings.Ptr int int int int org.jcodings.Ptr org.jcodings.Ptr int org.jcodings.transcode.EConv$EConvElement int top byte[] top org.jcodings.transcode.EConv$EConvElement int int
      StackMap stack:
            iload 12 /* i */
            aload 0 /* this */
            getfield org.jcodings.transcode.EConv.numTranscoders:I
            iconst_1
            isub
            if_icmpne 26
        22: .line 206
            aload 5 /* outPtr */
            astore 11 /* opp */
        23: .line 207
            iload 6 /* outStop */
            istore 15 /* os */
        start local 15 // int os
        24: .line 208
            aload 4 /* out */
            astore 17 /* obytes */
        start local 17 // byte[] obytes
        25: .line 209
            goto 36
        end local 17 // byte[] obytes
        end local 15 // int os
        26: .line 210
      StackMap locals:
      StackMap stack:
            aload 13 /* te */
            getfield org.jcodings.transcode.EConv$EConvElement.bufStart:I
            aload 13 /* te */
            getfield org.jcodings.transcode.EConv$EConvElement.dataStart:I
            if_icmpeq 32
        27: .line 211
            aload 13 /* te */
            getfield org.jcodings.transcode.EConv$EConvElement.dataEnd:I
            aload 13 /* te */
            getfield org.jcodings.transcode.EConv$EConvElement.dataStart:I
            isub
            istore 21 /* len */
        start local 21 // int len
        28: .line 212
            aload 13 /* te */
            getfield org.jcodings.transcode.EConv$EConvElement.dataStart:I
            aload 13 /* te */
            getfield org.jcodings.transcode.EConv$EConvElement.bufStart:I
            isub
            istore 22 /* off */
        start local 22 // int off
        29: .line 213
            aload 13 /* te */
            getfield org.jcodings.transcode.EConv$EConvElement.bytes:[B
            aload 13 /* te */
            getfield org.jcodings.transcode.EConv$EConvElement.dataStart:I
            aload 13 /* te */
            getfield org.jcodings.transcode.EConv$EConvElement.bytes:[B
            aload 13 /* te */
            getfield org.jcodings.transcode.EConv$EConvElement.bufStart:I
            iload 21 /* len */
            invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
        30: .line 214
            aload 13 /* te */
            aload 13 /* te */
            getfield org.jcodings.transcode.EConv$EConvElement.bufStart:I
            putfield org.jcodings.transcode.EConv$EConvElement.dataStart:I
        31: .line 215
            aload 13 /* te */
            dup
            getfield org.jcodings.transcode.EConv$EConvElement.dataEnd:I
            iload 22 /* off */
            isub
            putfield org.jcodings.transcode.EConv$EConvElement.dataEnd:I
        end local 22 // int off
        end local 21 // int len
        32: .line 217
      StackMap locals:
      StackMap stack:
            new org.jcodings.Ptr
            dup
            aload 13 /* te */
            getfield org.jcodings.transcode.EConv$EConvElement.dataEnd:I
            invokespecial org.jcodings.Ptr.<init>:(I)V
            astore 11 /* opp */
        33: .line 218
            iconst_1
            istore 20 /* oppIsEnd */
        34: .line 219
            aload 13 /* te */
            getfield org.jcodings.transcode.EConv$EConvElement.bufEnd:I
            istore 15 /* os */
        start local 15 // int os
        35: .line 220
            aload 13 /* te */
            getfield org.jcodings.transcode.EConv$EConvElement.bytes:[B
            astore 17 /* obytes */
        start local 17 // byte[] obytes
        36: .line 223
      StackMap locals: org.jcodings.transcode.EConv byte[] org.jcodings.Ptr int byte[] org.jcodings.Ptr int int int int org.jcodings.Ptr org.jcodings.Ptr int org.jcodings.transcode.EConv$EConvElement int int byte[] byte[] org.jcodings.transcode.EConv$EConvElement int int
      StackMap stack:
            iload 7 /* flags */
            istore 21 /* f */
        start local 21 // int f
        37: .line 224
            aload 0 /* this */
            getfield org.jcodings.transcode.EConv.numFinished:I
            iload 12 /* i */
            if_icmpeq 38
            iload 21 /* f */
            ldc 65536
            ior
            istore 21 /* f */
        38: .line 226
      StackMap locals: int
      StackMap stack:
            iload 12 /* i */
            ifne 41
            iload 7 /* flags */
            ldc 131072
            iand
            ifeq 41
        39: .line 227
            iconst_1
            istore 8 /* start */
        40: .line 228
            iload 7 /* flags */
            ldc -131073
            iand
            istore 7 /* flags */
        41: .line 231
      StackMap locals:
      StackMap stack:
            iload 12 /* i */
            ifeq 42
            iload 21 /* f */
            ldc -131073
            iand
            istore 21 /* f */
        42: .line 233
      StackMap locals:
      StackMap stack:
            aload 10 /* ipp */
            getfield org.jcodings.Ptr.p:I
            istore 22 /* iold */
        start local 22 // int iold
        43: .line 234
            aload 11 /* opp */
            getfield org.jcodings.Ptr.p:I
            istore 23 /* oold */
        start local 23 // int oold
        44: .line 236
            aload 13 /* te */
            aload 13 /* te */
            getfield org.jcodings.transcode.EConv$EConvElement.transcoding:Lorg/jcodings/transcode/Transcoding;
            aload 16 /* ibytes */
            aload 10 /* ipp */
            iload 14 /* is */
            aload 17 /* obytes */
            aload 11 /* opp */
            iload 15 /* os */
            iload 21 /* f */
            invokevirtual org.jcodings.transcode.Transcoding.convert:([BLorg/jcodings/Ptr;I[BLorg/jcodings/Ptr;II)Lorg/jcodings/transcode/EConvResult;
            dup
            astore 24 /* res */
        start local 24 // org.jcodings.transcode.EConvResult res
        45: putfield org.jcodings.transcode.EConv$EConvElement.lastResult:Lorg/jcodings/transcode/EConvResult;
        46: .line 238
            iload 19 /* ippIsStart */
            ifeq 47
            aload 18 /* previousTE */
            aload 10 /* ipp */
            getfield org.jcodings.Ptr.p:I
            putfield org.jcodings.transcode.EConv$EConvElement.dataStart:I
        47: .line 239
      StackMap locals: int int org.jcodings.transcode.EConvResult
      StackMap stack:
            iload 20 /* oppIsEnd */
            ifeq 48
            aload 13 /* te */
            aload 11 /* opp */
            getfield org.jcodings.Ptr.p:I
            putfield org.jcodings.transcode.EConv$EConvElement.dataEnd:I
        48: .line 241
      StackMap locals:
      StackMap stack:
            iload 22 /* iold */
            aload 10 /* ipp */
            getfield org.jcodings.Ptr.p:I
            if_icmpne 49
            iload 23 /* oold */
            aload 11 /* opp */
            getfield org.jcodings.Ptr.p:I
            if_icmpeq 50
      StackMap locals:
      StackMap stack:
        49: iconst_1
            istore 9 /* try_ */
        50: .line 243
      StackMap locals:
      StackMap stack:
            invokestatic org.jcodings.transcode.EConv.$SWITCH_TABLE$org$jcodings$transcode$EConvResult:()[I
            aload 24 /* res */
            invokevirtual org.jcodings.transcode.EConvResult.ordinal:()I
            iaload
            tableswitch { // 1 - 7
                    1: 51
                    2: 51
                    3: 52
                    4: 52
                    5: 53
                    6: 51
                    7: 51
              default: 54
          }
        51: .line 248
      StackMap locals:
      StackMap stack:
            iload 12 /* i */
            ireturn
        52: .line 252
      StackMap locals:
      StackMap stack:
            goto 54
        53: .line 255
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iload 12 /* i */
            iconst_1
            iadd
            putfield org.jcodings.transcode.EConv.numFinished:I
        end local 24 // org.jcodings.transcode.EConvResult res
        end local 23 // int oold
        end local 22 // int iold
        end local 21 // int f
        end local 20 // boolean oppIsEnd
        end local 19 // boolean ippIsStart
        end local 18 // org.jcodings.transcode.EConv$EConvElement previousTE
        end local 17 // byte[] obytes
        end local 16 // byte[] ibytes
        end local 15 // int os
        end local 14 // int is
        end local 13 // org.jcodings.transcode.EConv$EConvElement te
        54: .line 184
      StackMap locals: org.jcodings.transcode.EConv byte[] org.jcodings.Ptr int byte[] org.jcodings.Ptr int int int int org.jcodings.Ptr org.jcodings.Ptr int
      StackMap stack:
            iinc 12 /* i */ 1
      StackMap locals:
      StackMap stack:
        55: iload 12 /* i */
            aload 0 /* this */
            getfield org.jcodings.transcode.EConv.numTranscoders:I
            if_icmplt 7
        end local 12 // int i
        56: .line 182
      StackMap locals:
      StackMap stack:
            iload 9 /* try_ */
            ifne 4
        57: .line 262
            iconst_m1
            ireturn
        end local 11 // org.jcodings.Ptr opp
        end local 10 // org.jcodings.Ptr ipp
        end local 9 // boolean try_
        end local 8 // int start
        end local 7 // int flags
        end local 6 // int outStop
        end local 5 // org.jcodings.Ptr outPtr
        end local 4 // byte[] out
        end local 3 // int inStop
        end local 2 // org.jcodings.Ptr inPtr
        end local 1 // byte[] in
        end local 0 // org.jcodings.transcode.EConv this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   58     0        this  Lorg/jcodings/transcode/EConv;
            0   58     1          in  [B
            0   58     2       inPtr  Lorg/jcodings/Ptr;
            0   58     3      inStop  I
            0   58     4         out  [B
            0   58     5      outPtr  Lorg/jcodings/Ptr;
            0   58     6     outStop  I
            0   58     7       flags  I
            0   58     8       start  I
            1   58     9        try_  Z
            2   58    10         ipp  Lorg/jcodings/Ptr;
            3   58    11         opp  Lorg/jcodings/Ptr;
            6   56    12           i  I
            8   54    13          te  Lorg/jcodings/transcode/EConv$EConvElement;
           14   16    14          is  I
           20   54    14          is  I
           24   26    15          os  I
           35   54    15          os  I
           15   16    16      ibytes  [B
           21   54    16      ibytes  [B
           25   26    17      obytes  [B
           36   54    17      obytes  [B
            9   54    18  previousTE  Lorg/jcodings/transcode/EConv$EConvElement;
           10   54    19  ippIsStart  Z
           11   54    20    oppIsEnd  Z
           28   32    21         len  I
           29   32    22         off  I
           37   54    21           f  I
           43   54    22        iold  I
           44   54    23        oold  I
           45   54    24         res  Lorg/jcodings/transcode/EConvResult;
    MethodParameters:
         Name  Flags
      in       
      inPtr    
      inStop   
      out      
      outPtr   
      outStop  
      flags    
      start    

  private org.jcodings.transcode.EConvResult transConv(byte[], org.jcodings.Ptr, int, byte[], org.jcodings.Ptr, int, int, org.jcodings.Ptr);
    descriptor: ([BLorg/jcodings/Ptr;I[BLorg/jcodings/Ptr;IILorg/jcodings/Ptr;)Lorg/jcodings/transcode/EConvResult;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=11, locals=10, args_size=9
        start local 0 // org.jcodings.transcode.EConv this
        start local 1 // byte[] in
        start local 2 // org.jcodings.Ptr inPtr
        start local 3 // int inStop
        start local 4 // byte[] out
        start local 5 // org.jcodings.Ptr outPtr
        start local 6 // int outStop
        start local 7 // int flags
        start local 8 // org.jcodings.Ptr resultPositionPtr
         0: .line 269
            aload 0 /* this */
            getfield org.jcodings.transcode.EConv.elements:[Lorg/jcodings/transcode/EConv$EConvElement;
            iconst_0
            aaload
            getfield org.jcodings.transcode.EConv$EConvElement.lastResult:Lorg/jcodings/transcode/EConvResult;
            getstatic org.jcodings.transcode.EConvResult.AfterOutput:Lorg/jcodings/transcode/EConvResult;
            if_acmpne 1
            aload 0 /* this */
            getfield org.jcodings.transcode.EConv.elements:[Lorg/jcodings/transcode/EConv$EConvElement;
            iconst_0
            aaload
            getstatic org.jcodings.transcode.EConvResult.SourceBufferEmpty:Lorg/jcodings/transcode/EConvResult;
            putfield org.jcodings.transcode.EConv$EConvElement.lastResult:Lorg/jcodings/transcode/EConvResult;
         1: .line 271
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.jcodings.transcode.EConv.numTranscoders:I
            iconst_1
            isub
            istore 9 /* i */
        start local 9 // int i
         2: goto 8
         3: .line 272
      StackMap locals: int
      StackMap stack:
            invokestatic org.jcodings.transcode.EConv.$SWITCH_TABLE$org$jcodings$transcode$EConvResult:()[I
            aload 0 /* this */
            getfield org.jcodings.transcode.EConv.elements:[Lorg/jcodings/transcode/EConv$EConvElement;
            iload 9 /* i */
            aaload
            getfield org.jcodings.transcode.EConv$EConvElement.lastResult:Lorg/jcodings/transcode/EConvResult;
            invokevirtual org.jcodings.transcode.EConvResult.ordinal:()I
            iaload
            tableswitch { // 1 - 7
                    1: 4
                    2: 4
                    3: 5
                    4: 5
                    5: 4
                    6: 4
                    7: 4
              default: 6
          }
         4: .line 278
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* in */
            aload 2 /* inPtr */
            iload 3 /* inStop */
            aload 4 /* out */
            aload 5 /* outPtr */
            iload 6 /* outStop */
            iload 7 /* flags */
            aload 8 /* resultPositionPtr */
            iload 9 /* i */
            iconst_1
            iadd
            iload 9 /* i */
            invokevirtual org.jcodings.transcode.EConv.transConvNeedReport:([BLorg/jcodings/Ptr;I[BLorg/jcodings/Ptr;IILorg/jcodings/Ptr;II)Lorg/jcodings/transcode/EConvResult;
            areturn
         5: .line 281
      StackMap locals:
      StackMap stack:
            goto 7
         6: .line 283
      StackMap locals:
      StackMap stack:
            new org.jcodings.exception.InternalException
            dup
            ldc "unexpected transcode last result"
            invokespecial org.jcodings.exception.InternalException.<init>:(Ljava/lang/String;)V
            athrow
         7: .line 271
      StackMap locals:
      StackMap stack:
            iinc 9 /* i */ -1
      StackMap locals:
      StackMap stack:
         8: iload 9 /* i */
            ifge 3
        end local 9 // int i
         9: .line 289
            aload 0 /* this */
            getfield org.jcodings.transcode.EConv.elements:[Lorg/jcodings/transcode/EConv$EConvElement;
            aload 0 /* this */
            getfield org.jcodings.transcode.EConv.numTranscoders:I
            iconst_1
            isub
            aaload
            getfield org.jcodings.transcode.EConv$EConvElement.lastResult:Lorg/jcodings/transcode/EConvResult;
            getstatic org.jcodings.transcode.EConvResult.DestinationBufferFull:Lorg/jcodings/transcode/EConvResult;
            if_acmpne 14
            iload 7 /* flags */
            ldc 131072
            iand
            ifeq 14
        10: .line 290
            aload 0 /* this */
            getstatic org.jcodings.transcode.EConv.NULL_STRING:[B
            getstatic org.jcodings.Ptr.NULL:Lorg/jcodings/Ptr;
            iconst_0
            aload 4 /* out */
            aload 5 /* outPtr */
            iload 6 /* outStop */
            iload 7 /* flags */
            ldc -131073
            iand
            ldc 65536
            ior
            aload 8 /* resultPositionPtr */
            invokevirtual org.jcodings.transcode.EConv.transConv:([BLorg/jcodings/Ptr;I[BLorg/jcodings/Ptr;IILorg/jcodings/Ptr;)Lorg/jcodings/transcode/EConvResult;
            astore 9 /* res */
        start local 9 // org.jcodings.transcode.EConvResult res
        11: .line 291
            aload 9 /* res */
            invokevirtual org.jcodings.transcode.EConvResult.isSourceBufferEmpty:()Z
            ifeq 12
            getstatic org.jcodings.transcode.EConvResult.AfterOutput:Lorg/jcodings/transcode/EConvResult;
            goto 13
      StackMap locals: org.jcodings.transcode.EConv byte[] org.jcodings.Ptr int byte[] org.jcodings.Ptr int int org.jcodings.Ptr org.jcodings.transcode.EConvResult
      StackMap stack:
        12: aload 9 /* res */
      StackMap locals:
      StackMap stack: org.jcodings.transcode.EConvResult
        13: areturn
        end local 9 // org.jcodings.transcode.EConvResult res
        14: .line 294
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* in */
            aload 2 /* inPtr */
            iload 3 /* inStop */
            aload 4 /* out */
            aload 5 /* outPtr */
            iload 6 /* outStop */
            iload 7 /* flags */
            aload 8 /* resultPositionPtr */
            iconst_0
            iconst_m1
            invokevirtual org.jcodings.transcode.EConv.transConvNeedReport:([BLorg/jcodings/Ptr;I[BLorg/jcodings/Ptr;IILorg/jcodings/Ptr;II)Lorg/jcodings/transcode/EConvResult;
            areturn
        end local 8 // org.jcodings.Ptr resultPositionPtr
        end local 7 // int flags
        end local 6 // int outStop
        end local 5 // org.jcodings.Ptr outPtr
        end local 4 // byte[] out
        end local 3 // int inStop
        end local 2 // org.jcodings.Ptr inPtr
        end local 1 // byte[] in
        end local 0 // org.jcodings.transcode.EConv this
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0   15     0               this  Lorg/jcodings/transcode/EConv;
            0   15     1                 in  [B
            0   15     2              inPtr  Lorg/jcodings/Ptr;
            0   15     3             inStop  I
            0   15     4                out  [B
            0   15     5             outPtr  Lorg/jcodings/Ptr;
            0   15     6            outStop  I
            0   15     7              flags  I
            0   15     8  resultPositionPtr  Lorg/jcodings/Ptr;
            2    9     9                  i  I
           11   14     9                res  Lorg/jcodings/transcode/EConvResult;
    MethodParameters:
                   Name  Flags
      in                 
      inPtr              
      inStop             
      out                
      outPtr             
      outStop            
      flags              
      resultPositionPtr  

  private org.jcodings.transcode.EConvResult transConvNeedReport(byte[], org.jcodings.Ptr, int, byte[], org.jcodings.Ptr, int, int, org.jcodings.Ptr, int, int);
    descriptor: ([BLorg/jcodings/Ptr;I[BLorg/jcodings/Ptr;IILorg/jcodings/Ptr;II)Lorg/jcodings/transcode/EConvResult;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=9, locals=13, args_size=11
        start local 0 // org.jcodings.transcode.EConv this
        start local 1 // byte[] in
        start local 2 // org.jcodings.Ptr inPtr
        start local 3 // int inStop
        start local 4 // byte[] out
        start local 5 // org.jcodings.Ptr outPtr
        start local 6 // int outStop
        start local 7 // int flags
        start local 8 // org.jcodings.Ptr resultPositionPtr
        start local 9 // int sweepStart
        start local 10 // int needReportIndex
         0: .line 300
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* in */
            aload 2 /* inPtr */
            iload 3 /* inStop */
            aload 4 /* out */
            aload 5 /* outPtr */
            iload 6 /* outStop */
            iload 7 /* flags */
            iload 9 /* sweepStart */
            invokevirtual org.jcodings.transcode.EConv.transSweep:([BLorg/jcodings/Ptr;I[BLorg/jcodings/Ptr;III)I
            istore 10 /* needReportIndex */
         1: .line 301
            iload 10 /* needReportIndex */
            iconst_1
            iadd
            istore 9 /* sweepStart */
         2: .line 302
            iload 10 /* needReportIndex */
            iconst_m1
            if_icmpeq 3
            iload 10 /* needReportIndex */
            aload 0 /* this */
            getfield org.jcodings.transcode.EConv.numTranscoders:I
            iconst_1
            isub
            if_icmpne 0
         3: .line 304
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.jcodings.transcode.EConv.numTranscoders:I
            iconst_1
            isub
            istore 11 /* i */
        start local 11 // int i
         4: goto 12
         5: .line 305
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            getfield org.jcodings.transcode.EConv.elements:[Lorg/jcodings/transcode/EConv$EConvElement;
            iload 11 /* i */
            aaload
            getfield org.jcodings.transcode.EConv$EConvElement.lastResult:Lorg/jcodings/transcode/EConvResult;
            getstatic org.jcodings.transcode.EConvResult.SourceBufferEmpty:Lorg/jcodings/transcode/EConvResult;
            if_acmpeq 11
         6: .line 306
            aload 0 /* this */
            getfield org.jcodings.transcode.EConv.elements:[Lorg/jcodings/transcode/EConv$EConvElement;
            iload 11 /* i */
            aaload
            getfield org.jcodings.transcode.EConv$EConvElement.lastResult:Lorg/jcodings/transcode/EConvResult;
            astore 12 /* res */
        start local 12 // org.jcodings.transcode.EConvResult res
         7: .line 307
            invokestatic org.jcodings.transcode.EConv.$SWITCH_TABLE$org$jcodings$transcode$EConvResult:()[I
            aload 12 /* res */
            invokevirtual org.jcodings.transcode.EConvResult.ordinal:()I
            iaload
            tableswitch { // 1 - 7
                    1: 8
                    2: 8
                    3: 9
                    4: 9
                    5: 9
                    6: 8
                    7: 8
              default: 9
          }
         8: .line 312
      StackMap locals: org.jcodings.transcode.EConvResult
      StackMap stack:
            aload 0 /* this */
            getfield org.jcodings.transcode.EConv.elements:[Lorg/jcodings/transcode/EConv$EConvElement;
            iload 11 /* i */
            aaload
            getstatic org.jcodings.transcode.EConvResult.SourceBufferEmpty:Lorg/jcodings/transcode/EConvResult;
            putfield org.jcodings.transcode.EConv$EConvElement.lastResult:Lorg/jcodings/transcode/EConvResult;
         9: .line 315
      StackMap locals:
      StackMap stack:
            aload 8 /* resultPositionPtr */
            ifnull 10
            aload 8 /* resultPositionPtr */
            iload 11 /* i */
            putfield org.jcodings.Ptr.p:I
        10: .line 316
      StackMap locals:
      StackMap stack:
            aload 12 /* res */
            areturn
        end local 12 // org.jcodings.transcode.EConvResult res
        11: .line 304
      StackMap locals:
      StackMap stack:
            iinc 11 /* i */ -1
      StackMap locals:
      StackMap stack:
        12: iload 11 /* i */
            ifge 5
        end local 11 // int i
        13: .line 319
            aload 8 /* resultPositionPtr */
            ifnull 14
            aload 8 /* resultPositionPtr */
            iconst_m1
            putfield org.jcodings.Ptr.p:I
        14: .line 320
      StackMap locals:
      StackMap stack:
            getstatic org.jcodings.transcode.EConvResult.SourceBufferEmpty:Lorg/jcodings/transcode/EConvResult;
            areturn
        end local 10 // int needReportIndex
        end local 9 // int sweepStart
        end local 8 // org.jcodings.Ptr resultPositionPtr
        end local 7 // int flags
        end local 6 // int outStop
        end local 5 // org.jcodings.Ptr outPtr
        end local 4 // byte[] out
        end local 3 // int inStop
        end local 2 // org.jcodings.Ptr inPtr
        end local 1 // byte[] in
        end local 0 // org.jcodings.transcode.EConv this
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0   15     0               this  Lorg/jcodings/transcode/EConv;
            0   15     1                 in  [B
            0   15     2              inPtr  Lorg/jcodings/Ptr;
            0   15     3             inStop  I
            0   15     4                out  [B
            0   15     5             outPtr  Lorg/jcodings/Ptr;
            0   15     6            outStop  I
            0   15     7              flags  I
            0   15     8  resultPositionPtr  Lorg/jcodings/Ptr;
            0   15     9         sweepStart  I
            0   15    10    needReportIndex  I
            4   13    11                  i  I
            7   11    12                res  Lorg/jcodings/transcode/EConvResult;
    MethodParameters:
                   Name  Flags
      in                 
      inPtr              
      inStop             
      out                
      outPtr             
      outStop            
      flags              
      resultPositionPtr  
      sweepStart         
      needReportIndex    

  private org.jcodings.transcode.EConvResult convertInternal(byte[], org.jcodings.Ptr, int, byte[], org.jcodings.Ptr, int, int);
    descriptor: ([BLorg/jcodings/Ptr;I[BLorg/jcodings/Ptr;II)Lorg/jcodings/transcode/EConvResult;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=9, locals=15, args_size=8
        start local 0 // org.jcodings.transcode.EConv this
        start local 1 // byte[] in
        start local 2 // org.jcodings.Ptr inPtr
        start local 3 // int inStop
        start local 4 // byte[] out
        start local 5 // org.jcodings.Ptr outPtr
        start local 6 // int outStop
        start local 7 // int flags
         0: .line 325
            aload 0 /* this */
            getfield org.jcodings.transcode.EConv.lastError:Lorg/jcodings/transcode/EConv$LastError;
            invokevirtual org.jcodings.transcode.EConv$LastError.reset:()V
         1: .line 330
            aload 0 /* this */
            getfield org.jcodings.transcode.EConv.numTranscoders:I
            ifne 32
         2: .line 331
            aload 0 /* this */
            getfield org.jcodings.transcode.EConv.inBuf:Lorg/jcodings/transcode/Buffer;
            getfield org.jcodings.transcode.Buffer.bytes:[B
            ifnull 14
            aload 0 /* this */
            getfield org.jcodings.transcode.EConv.inBuf:Lorg/jcodings/transcode/Buffer;
            getfield org.jcodings.transcode.Buffer.dataStart:I
            aload 0 /* this */
            getfield org.jcodings.transcode.EConv.inBuf:Lorg/jcodings/transcode/Buffer;
            getfield org.jcodings.transcode.Buffer.dataEnd:I
            if_icmpeq 14
         3: .line 332
            iload 6 /* outStop */
            aload 5 /* outPtr */
            getfield org.jcodings.Ptr.p:I
            isub
            aload 0 /* this */
            getfield org.jcodings.transcode.EConv.inBuf:Lorg/jcodings/transcode/Buffer;
            getfield org.jcodings.transcode.Buffer.dataEnd:I
            aload 0 /* this */
            getfield org.jcodings.transcode.EConv.inBuf:Lorg/jcodings/transcode/Buffer;
            getfield org.jcodings.transcode.Buffer.dataStart:I
            isub
            if_icmpge 9
         4: .line 333
            iload 6 /* outStop */
            aload 5 /* outPtr */
            getfield org.jcodings.Ptr.p:I
            isub
            istore 9 /* len */
        start local 9 // int len
         5: .line 334
            aload 0 /* this */
            getfield org.jcodings.transcode.EConv.inBuf:Lorg/jcodings/transcode/Buffer;
            getfield org.jcodings.transcode.Buffer.bytes:[B
            aload 0 /* this */
            getfield org.jcodings.transcode.EConv.inBuf:Lorg/jcodings/transcode/Buffer;
            getfield org.jcodings.transcode.Buffer.dataStart:I
            aload 4 /* out */
            aload 5 /* outPtr */
            getfield org.jcodings.Ptr.p:I
            iload 9 /* len */
            invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
         6: .line 335
            aload 5 /* outPtr */
            iload 6 /* outStop */
            putfield org.jcodings.Ptr.p:I
         7: .line 336
            aload 0 /* this */
            getfield org.jcodings.transcode.EConv.inBuf:Lorg/jcodings/transcode/Buffer;
            dup
            getfield org.jcodings.transcode.Buffer.dataStart:I
            iload 9 /* len */
            iadd
            putfield org.jcodings.transcode.Buffer.dataStart:I
         8: .line 337
            aload 0 /* this */
            getstatic org.jcodings.transcode.EConvResult.DestinationBufferFull:Lorg/jcodings/transcode/EConvResult;
            aconst_null
            invokevirtual org.jcodings.transcode.EConv.convertInternalResult:(Lorg/jcodings/transcode/EConvResult;Lorg/jcodings/Ptr;)Lorg/jcodings/transcode/EConvResult;
            areturn
        end local 9 // int len
         9: .line 339
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.jcodings.transcode.EConv.inBuf:Lorg/jcodings/transcode/Buffer;
            getfield org.jcodings.transcode.Buffer.dataEnd:I
            aload 0 /* this */
            getfield org.jcodings.transcode.EConv.inBuf:Lorg/jcodings/transcode/Buffer;
            getfield org.jcodings.transcode.Buffer.dataStart:I
            isub
            istore 9 /* len */
        start local 9 // int len
        10: .line 340
            aload 0 /* this */
            getfield org.jcodings.transcode.EConv.inBuf:Lorg/jcodings/transcode/Buffer;
            getfield org.jcodings.transcode.Buffer.bytes:[B
            aload 0 /* this */
            getfield org.jcodings.transcode.EConv.inBuf:Lorg/jcodings/transcode/Buffer;
            getfield org.jcodings.transcode.Buffer.dataStart:I
            aload 4 /* out */
            aload 5 /* outPtr */
            getfield org.jcodings.Ptr.p:I
            iload 9 /* len */
            invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
        11: .line 341
            aload 5 /* outPtr */
            dup
            getfield org.jcodings.Ptr.p:I
            iload 9 /* len */
            iadd
            putfield org.jcodings.Ptr.p:I
        12: .line 342
            aload 0 /* this */
            getfield org.jcodings.transcode.EConv.inBuf:Lorg/jcodings/transcode/Buffer;
            aload 0 /* this */
            getfield org.jcodings.transcode.EConv.inBuf:Lorg/jcodings/transcode/Buffer;
            aload 0 /* this */
            getfield org.jcodings.transcode.EConv.inBuf:Lorg/jcodings/transcode/Buffer;
            getfield org.jcodings.transcode.Buffer.bufStart:I
            dup_x1
            putfield org.jcodings.transcode.Buffer.dataEnd:I
            putfield org.jcodings.transcode.Buffer.dataStart:I
        13: .line 343
            iload 7 /* flags */
            ldc 131072
            iand
            ifeq 14
            aload 0 /* this */
            getstatic org.jcodings.transcode.EConvResult.AfterOutput:Lorg/jcodings/transcode/EConvResult;
            aconst_null
            invokevirtual org.jcodings.transcode.EConv.convertInternalResult:(Lorg/jcodings/transcode/EConvResult;Lorg/jcodings/Ptr;)Lorg/jcodings/transcode/EConvResult;
            areturn
        end local 9 // int len
        14: .line 346
      StackMap locals:
      StackMap stack:
            iload 6 /* outStop */
            aload 5 /* outPtr */
            getfield org.jcodings.Ptr.p:I
            isub
            iload 3 /* inStop */
            aload 2 /* inPtr */
            getfield org.jcodings.Ptr.p:I
            isub
            if_icmpge 17
        15: .line 347
            iload 6 /* outStop */
            aload 5 /* outPtr */
            getfield org.jcodings.Ptr.p:I
            isub
            istore 9 /* len */
        start local 9 // int len
        16: .line 348
            goto 18
        end local 9 // int len
        17: .line 349
      StackMap locals:
      StackMap stack:
            iload 3 /* inStop */
            aload 2 /* inPtr */
            getfield org.jcodings.Ptr.p:I
            isub
            istore 9 /* len */
        start local 9 // int len
        18: .line 352
      StackMap locals: org.jcodings.transcode.EConv byte[] org.jcodings.Ptr int byte[] org.jcodings.Ptr int int top int
      StackMap stack:
            iload 9 /* len */
            ifle 21
            iload 7 /* flags */
            ldc 131072
            iand
            ifeq 21
        19: .line 353
            aload 4 /* out */
            aload 5 /* outPtr */
            dup
            getfield org.jcodings.Ptr.p:I
            dup_x1
            iconst_1
            iadd
            putfield org.jcodings.Ptr.p:I
            aload 1 /* in */
            aload 2 /* inPtr */
            dup
            getfield org.jcodings.Ptr.p:I
            dup_x1
            iconst_1
            iadd
            putfield org.jcodings.Ptr.p:I
            baload
            bastore
        20: .line 354
            aload 0 /* this */
            getstatic org.jcodings.transcode.EConvResult.AfterOutput:Lorg/jcodings/transcode/EConvResult;
            aconst_null
            invokevirtual org.jcodings.transcode.EConv.convertInternalResult:(Lorg/jcodings/transcode/EConvResult;Lorg/jcodings/Ptr;)Lorg/jcodings/transcode/EConvResult;
            areturn
        21: .line 357
      StackMap locals:
      StackMap stack:
            aload 1 /* in */
            aload 2 /* inPtr */
            getfield org.jcodings.Ptr.p:I
            aload 4 /* out */
            aload 5 /* outPtr */
            getfield org.jcodings.Ptr.p:I
            iload 9 /* len */
            invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
        22: .line 358
            aload 5 /* outPtr */
            dup
            getfield org.jcodings.Ptr.p:I
            iload 9 /* len */
            iadd
            putfield org.jcodings.Ptr.p:I
        23: .line 359
            aload 2 /* inPtr */
            dup
            getfield org.jcodings.Ptr.p:I
            iload 9 /* len */
            iadd
            putfield org.jcodings.Ptr.p:I
        24: .line 361
            aload 2 /* inPtr */
            getfield org.jcodings.Ptr.p:I
            iload 3 /* inStop */
            if_icmpeq 27
        25: .line 362
            getstatic org.jcodings.transcode.EConvResult.DestinationBufferFull:Lorg/jcodings/transcode/EConvResult;
            astore 8 /* res */
        start local 8 // org.jcodings.transcode.EConvResult res
        26: .line 363
            goto 31
        end local 8 // org.jcodings.transcode.EConvResult res
      StackMap locals:
      StackMap stack:
        27: iload 7 /* flags */
            ldc 65536
            iand
            ifeq 30
        28: .line 364
            getstatic org.jcodings.transcode.EConvResult.SourceBufferEmpty:Lorg/jcodings/transcode/EConvResult;
            astore 8 /* res */
        start local 8 // org.jcodings.transcode.EConvResult res
        29: .line 365
            goto 31
        end local 8 // org.jcodings.transcode.EConvResult res
        30: .line 366
      StackMap locals:
      StackMap stack:
            getstatic org.jcodings.transcode.EConvResult.Finished:Lorg/jcodings/transcode/EConvResult;
            astore 8 /* res */
        start local 8 // org.jcodings.transcode.EConvResult res
        31: .line 368
      StackMap locals: org.jcodings.transcode.EConv byte[] org.jcodings.Ptr int byte[] org.jcodings.Ptr int int org.jcodings.transcode.EConvResult int
      StackMap stack:
            aload 0 /* this */
            aload 8 /* res */
            aconst_null
            invokevirtual org.jcodings.transcode.EConv.convertInternalResult:(Lorg/jcodings/transcode/EConvResult;Lorg/jcodings/Ptr;)Lorg/jcodings/transcode/EConvResult;
            areturn
        end local 9 // int len
        end local 8 // org.jcodings.transcode.EConvResult res
        32: .line 371
      StackMap locals:
      StackMap stack:
            iconst_0
            istore 10 /* hasOutput */
        start local 10 // boolean hasOutput
        33: .line 372
            aload 0 /* this */
            getfield org.jcodings.transcode.EConv.elements:[Lorg/jcodings/transcode/EConv$EConvElement;
            aload 0 /* this */
            getfield org.jcodings.transcode.EConv.numTranscoders:I
            iconst_1
            isub
            aaload
            astore 11 /* elem */
        start local 11 // org.jcodings.transcode.EConv$EConvElement elem
        34: .line 373
            aload 11 /* elem */
            getfield org.jcodings.transcode.EConv$EConvElement.bytes:[B
            ifnull 50
        35: .line 374
            aload 11 /* elem */
            getfield org.jcodings.transcode.EConv$EConvElement.dataStart:I
            istore 12 /* dataStart */
        start local 12 // int dataStart
        36: .line 375
            aload 11 /* elem */
            getfield org.jcodings.transcode.EConv$EConvElement.dataEnd:I
            istore 13 /* dataEnd */
        start local 13 // int dataEnd
        37: .line 376
            aload 11 /* elem */
            getfield org.jcodings.transcode.EConv$EConvElement.bytes:[B
            astore 14 /* data */
        start local 14 // byte[] data
        38: .line 377
            iload 12 /* dataStart */
            iload 13 /* dataEnd */
            if_icmpeq 50
        39: .line 378
            iload 6 /* outStop */
            aload 5 /* outPtr */
            getfield org.jcodings.Ptr.p:I
            isub
            iload 13 /* dataEnd */
            iload 12 /* dataStart */
            isub
            if_icmpge 45
        40: .line 379
            iload 6 /* outStop */
            aload 5 /* outPtr */
            getfield org.jcodings.Ptr.p:I
            isub
            istore 9 /* len */
        start local 9 // int len
        41: .line 380
            aload 14 /* data */
            iload 12 /* dataStart */
            aload 4 /* out */
            aload 5 /* outPtr */
            getfield org.jcodings.Ptr.p:I
            iload 9 /* len */
            invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
        42: .line 381
            aload 5 /* outPtr */
            iload 6 /* outStop */
            putfield org.jcodings.Ptr.p:I
        43: .line 382
            aload 11 /* elem */
            dup
            getfield org.jcodings.transcode.EConv$EConvElement.dataStart:I
            iload 9 /* len */
            iadd
            putfield org.jcodings.transcode.EConv$EConvElement.dataStart:I
        44: .line 383
            aload 0 /* this */
            getstatic org.jcodings.transcode.EConvResult.DestinationBufferFull:Lorg/jcodings/transcode/EConvResult;
            aconst_null
            invokevirtual org.jcodings.transcode.EConv.convertInternalResult:(Lorg/jcodings/transcode/EConvResult;Lorg/jcodings/Ptr;)Lorg/jcodings/transcode/EConvResult;
            areturn
        end local 9 // int len
        45: .line 385
      StackMap locals: org.jcodings.transcode.EConv byte[] org.jcodings.Ptr int byte[] org.jcodings.Ptr int int top top int org.jcodings.transcode.EConv$EConvElement int int byte[]
      StackMap stack:
            iload 13 /* dataEnd */
            iload 12 /* dataStart */
            isub
            istore 9 /* len */
        start local 9 // int len
        46: .line 386
            aload 14 /* data */
            iload 12 /* dataStart */
            aload 4 /* out */
            aload 5 /* outPtr */
            getfield org.jcodings.Ptr.p:I
            iload 9 /* len */
            invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
        47: .line 387
            aload 5 /* outPtr */
            dup
            getfield org.jcodings.Ptr.p:I
            iload 9 /* len */
            iadd
            putfield org.jcodings.Ptr.p:I
        48: .line 388
            aload 11 /* elem */
            aload 11 /* elem */
            aload 11 /* elem */
            getfield org.jcodings.transcode.EConv$EConvElement.bufStart:I
            dup_x1
            putfield org.jcodings.transcode.EConv$EConvElement.dataEnd:I
            putfield org.jcodings.transcode.EConv$EConvElement.dataStart:I
        49: .line 389
            iconst_1
            istore 10 /* hasOutput */
        end local 14 // byte[] data
        end local 13 // int dataEnd
        end local 12 // int dataStart
        end local 9 // int len
        50: .line 393
      StackMap locals:
      StackMap stack:
            new org.jcodings.Ptr
            dup
            iconst_0
            invokespecial org.jcodings.Ptr.<init>:(I)V
            astore 12 /* resultPosition */
        start local 12 // org.jcodings.Ptr resultPosition
        51: .line 394
            aload 0 /* this */
            getfield org.jcodings.transcode.EConv.inBuf:Lorg/jcodings/transcode/Buffer;
            ifnull 56
            aload 0 /* this */
            getfield org.jcodings.transcode.EConv.inBuf:Lorg/jcodings/transcode/Buffer;
            getfield org.jcodings.transcode.Buffer.dataStart:I
            aload 0 /* this */
            getfield org.jcodings.transcode.EConv.inBuf:Lorg/jcodings/transcode/Buffer;
            getfield org.jcodings.transcode.Buffer.dataEnd:I
            if_icmpeq 56
        52: .line 395
            new org.jcodings.Ptr
            dup
            aload 0 /* this */
            getfield org.jcodings.transcode.EConv.inBuf:Lorg/jcodings/transcode/Buffer;
            getfield org.jcodings.transcode.Buffer.dataStart:I
            invokespecial org.jcodings.Ptr.<init>:(I)V
            astore 13 /* inDataStartPtr */
        start local 13 // org.jcodings.Ptr inDataStartPtr
        53: .line 396
            aload 0 /* this */
            aload 0 /* this */
            getfield org.jcodings.transcode.EConv.inBuf:Lorg/jcodings/transcode/Buffer;
            getfield org.jcodings.transcode.Buffer.bytes:[B
            aload 13 /* inDataStartPtr */
            aload 0 /* this */
            getfield org.jcodings.transcode.EConv.inBuf:Lorg/jcodings/transcode/Buffer;
            getfield org.jcodings.transcode.Buffer.dataEnd:I
            aload 4 /* out */
            aload 5 /* outPtr */
            iload 6 /* outStop */
            iload 7 /* flags */
            ldc -131073
            iand
            ldc 65536
            ior
            aload 12 /* resultPosition */
            invokevirtual org.jcodings.transcode.EConv.transConv:([BLorg/jcodings/Ptr;I[BLorg/jcodings/Ptr;IILorg/jcodings/Ptr;)Lorg/jcodings/transcode/EConvResult;
            astore 8 /* res */
        start local 8 // org.jcodings.transcode.EConvResult res
        54: .line 397
            aload 0 /* this */
            getfield org.jcodings.transcode.EConv.inBuf:Lorg/jcodings/transcode/Buffer;
            aload 13 /* inDataStartPtr */
            getfield org.jcodings.Ptr.p:I
            putfield org.jcodings.transcode.Buffer.dataStart:I
        55: .line 398
            aload 8 /* res */
            invokevirtual org.jcodings.transcode.EConvResult.isSourceBufferEmpty:()Z
            ifne 56
            aload 0 /* this */
            getstatic org.jcodings.transcode.EConvResult.SourceBufferEmpty:Lorg/jcodings/transcode/EConvResult;
            aload 12 /* resultPosition */
            invokevirtual org.jcodings.transcode.EConv.convertInternalResult:(Lorg/jcodings/transcode/EConvResult;Lorg/jcodings/Ptr;)Lorg/jcodings/transcode/EConvResult;
            areturn
        end local 13 // org.jcodings.Ptr inDataStartPtr
        end local 8 // org.jcodings.transcode.EConvResult res
        56: .line 401
      StackMap locals: org.jcodings.Ptr
      StackMap stack:
            iload 10 /* hasOutput */
            ifeq 61
            iload 7 /* flags */
            ldc 131072
            iand
            ifeq 61
            aload 2 /* inPtr */
            getfield org.jcodings.Ptr.p:I
            iload 3 /* inStop */
            if_icmpeq 61
        57: .line 402
            aload 2 /* inPtr */
            getfield org.jcodings.Ptr.p:I
            istore 3 /* inStop */
        58: .line 403
            aload 0 /* this */
            aload 1 /* in */
            aload 2 /* inPtr */
            iload 3 /* inStop */
            aload 4 /* out */
            aload 5 /* outPtr */
            iload 6 /* outStop */
            iload 7 /* flags */
            aload 12 /* resultPosition */
            invokevirtual org.jcodings.transcode.EConv.transConv:([BLorg/jcodings/Ptr;I[BLorg/jcodings/Ptr;IILorg/jcodings/Ptr;)Lorg/jcodings/transcode/EConvResult;
            astore 8 /* res */
        start local 8 // org.jcodings.transcode.EConvResult res
        59: .line 404
            aload 8 /* res */
            invokevirtual org.jcodings.transcode.EConvResult.isSourceBufferEmpty:()Z
            ifeq 67
            getstatic org.jcodings.transcode.EConvResult.AfterOutput:Lorg/jcodings/transcode/EConvResult;
            astore 8 /* res */
        60: .line 405
            goto 67
        end local 8 // org.jcodings.transcode.EConvResult res
      StackMap locals:
      StackMap stack:
        61: iload 7 /* flags */
            ldc 131072
            iand
            ifne 62
            aload 0 /* this */
            getfield org.jcodings.transcode.EConv.numTranscoders:I
            iconst_1
            if_icmpne 64
        62: .line 406
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* in */
            aload 2 /* inPtr */
            iload 3 /* inStop */
            aload 4 /* out */
            aload 5 /* outPtr */
            iload 6 /* outStop */
            iload 7 /* flags */
            aload 12 /* resultPosition */
            invokevirtual org.jcodings.transcode.EConv.transConv:([BLorg/jcodings/Ptr;I[BLorg/jcodings/Ptr;IILorg/jcodings/Ptr;)Lorg/jcodings/transcode/EConvResult;
            astore 8 /* res */
        start local 8 // org.jcodings.transcode.EConvResult res
        63: .line 407
            goto 67
        end local 8 // org.jcodings.transcode.EConvResult res
        64: .line 408
      StackMap locals:
      StackMap stack:
            iload 7 /* flags */
            ldc 131072
            ior
            istore 7 /* flags */
        65: .line 410
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* in */
            aload 2 /* inPtr */
            iload 3 /* inStop */
            aload 4 /* out */
            aload 5 /* outPtr */
            iload 6 /* outStop */
            iload 7 /* flags */
            aload 12 /* resultPosition */
            invokevirtual org.jcodings.transcode.EConv.transConv:([BLorg/jcodings/Ptr;I[BLorg/jcodings/Ptr;IILorg/jcodings/Ptr;)Lorg/jcodings/transcode/EConvResult;
            astore 8 /* res */
        start local 8 // org.jcodings.transcode.EConvResult res
        66: .line 411
            aload 8 /* res */
            invokevirtual org.jcodings.transcode.EConvResult.isAfterOutput:()Z
            ifne 65
        67: .line 414
      StackMap locals: org.jcodings.transcode.EConv byte[] org.jcodings.Ptr int byte[] org.jcodings.Ptr int int org.jcodings.transcode.EConvResult top int org.jcodings.transcode.EConv$EConvElement org.jcodings.Ptr
      StackMap stack:
            aload 0 /* this */
            aload 8 /* res */
            aload 12 /* resultPosition */
            invokevirtual org.jcodings.transcode.EConv.convertInternalResult:(Lorg/jcodings/transcode/EConvResult;Lorg/jcodings/Ptr;)Lorg/jcodings/transcode/EConvResult;
            areturn
        end local 12 // org.jcodings.Ptr resultPosition
        end local 11 // org.jcodings.transcode.EConv$EConvElement elem
        end local 10 // boolean hasOutput
        end local 8 // org.jcodings.transcode.EConvResult res
        end local 7 // int flags
        end local 6 // int outStop
        end local 5 // org.jcodings.Ptr outPtr
        end local 4 // byte[] out
        end local 3 // int inStop
        end local 2 // org.jcodings.Ptr inPtr
        end local 1 // byte[] in
        end local 0 // org.jcodings.transcode.EConv this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   68     0            this  Lorg/jcodings/transcode/EConv;
            0   68     1              in  [B
            0   68     2           inPtr  Lorg/jcodings/Ptr;
            0   68     3          inStop  I
            0   68     4             out  [B
            0   68     5          outPtr  Lorg/jcodings/Ptr;
            0   68     6         outStop  I
            0   68     7           flags  I
           26   27     8             res  Lorg/jcodings/transcode/EConvResult;
           29   30     8             res  Lorg/jcodings/transcode/EConvResult;
           31   32     8             res  Lorg/jcodings/transcode/EConvResult;
           54   56     8             res  Lorg/jcodings/transcode/EConvResult;
           59   61     8             res  Lorg/jcodings/transcode/EConvResult;
           63   64     8             res  Lorg/jcodings/transcode/EConvResult;
           66   68     8             res  Lorg/jcodings/transcode/EConvResult;
            5    9     9             len  I
           10   14     9             len  I
           16   17     9             len  I
           18   32     9             len  I
           41   45     9             len  I
           46   50     9             len  I
           33   68    10       hasOutput  Z
           34   68    11            elem  Lorg/jcodings/transcode/EConv$EConvElement;
           36   50    12       dataStart  I
           37   50    13         dataEnd  I
           38   50    14            data  [B
           51   68    12  resultPosition  Lorg/jcodings/Ptr;
           53   56    13  inDataStartPtr  Lorg/jcodings/Ptr;
    MethodParameters:
         Name  Flags
      in       
      inPtr    
      inStop   
      out      
      outPtr   
      outStop  
      flags    

  private org.jcodings.transcode.EConvResult convertInternalResult(org.jcodings.transcode.EConvResult, org.jcodings.Ptr);
    descriptor: (Lorg/jcodings/transcode/EConvResult;Lorg/jcodings/Ptr;)Lorg/jcodings/transcode/EConvResult;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=4, args_size=3
        start local 0 // org.jcodings.transcode.EConv this
        start local 1 // org.jcodings.transcode.EConvResult res
        start local 2 // org.jcodings.Ptr resultPosition
         0: .line 418
            aload 0 /* this */
            getfield org.jcodings.transcode.EConv.lastError:Lorg/jcodings/transcode/EConv$LastError;
            aload 1 /* res */
            putfield org.jcodings.transcode.EConv$LastError.result:Lorg/jcodings/transcode/EConvResult;
         1: .line 419
            invokestatic org.jcodings.transcode.EConv.$SWITCH_TABLE$org$jcodings$transcode$EConvResult:()[I
            aload 1 /* res */
            invokevirtual org.jcodings.transcode.EConvResult.ordinal:()I
            iaload
            tableswitch { // 1 - 7
                    1: 2
                    2: 2
                    3: 10
                    4: 10
                    5: 10
                    6: 10
                    7: 2
              default: 10
          }
         2: .line 423
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.jcodings.transcode.EConv.elements:[Lorg/jcodings/transcode/EConv$EConvElement;
            aload 2 /* resultPosition */
            getfield org.jcodings.Ptr.p:I
            aaload
            getfield org.jcodings.transcode.EConv$EConvElement.transcoding:Lorg/jcodings/transcode/Transcoding;
            astore 3 /* errorTranscoding */
        start local 3 // org.jcodings.transcode.Transcoding errorTranscoding
         3: .line 424
            aload 0 /* this */
            getfield org.jcodings.transcode.EConv.lastError:Lorg/jcodings/transcode/EConv$LastError;
            aload 3 /* errorTranscoding */
            putfield org.jcodings.transcode.EConv$LastError.errorTranscoding:Lorg/jcodings/transcode/Transcoding;
         4: .line 425
            aload 0 /* this */
            getfield org.jcodings.transcode.EConv.lastError:Lorg/jcodings/transcode/EConv$LastError;
            aload 3 /* errorTranscoding */
            getfield org.jcodings.transcode.Transcoding.transcoder:Lorg/jcodings/transcode/Transcoder;
            getfield org.jcodings.transcode.Transcoder.source:[B
            putfield org.jcodings.transcode.EConv$LastError.source:[B
         5: .line 426
            aload 0 /* this */
            getfield org.jcodings.transcode.EConv.lastError:Lorg/jcodings/transcode/EConv$LastError;
            aload 3 /* errorTranscoding */
            getfield org.jcodings.transcode.Transcoding.transcoder:Lorg/jcodings/transcode/Transcoder;
            getfield org.jcodings.transcode.Transcoder.destination:[B
            putfield org.jcodings.transcode.EConv$LastError.destination:[B
         6: .line 427
            aload 0 /* this */
            getfield org.jcodings.transcode.EConv.lastError:Lorg/jcodings/transcode/EConv$LastError;
            aload 3 /* errorTranscoding */
            getfield org.jcodings.transcode.Transcoding.readBuf:[B
            putfield org.jcodings.transcode.EConv$LastError.errorBytes:[B
         7: .line 428
            aload 0 /* this */
            getfield org.jcodings.transcode.EConv.lastError:Lorg/jcodings/transcode/EConv$LastError;
            iconst_0
            putfield org.jcodings.transcode.EConv$LastError.errorBytesP:I
         8: .line 429
            aload 0 /* this */
            getfield org.jcodings.transcode.EConv.lastError:Lorg/jcodings/transcode/EConv$LastError;
            aload 3 /* errorTranscoding */
            getfield org.jcodings.transcode.Transcoding.recognizedLength:I
            putfield org.jcodings.transcode.EConv$LastError.errorBytesLength:I
         9: .line 430
            aload 0 /* this */
            getfield org.jcodings.transcode.EConv.lastError:Lorg/jcodings/transcode/EConv$LastError;
            aload 3 /* errorTranscoding */
            getfield org.jcodings.transcode.Transcoding.readAgainLength:I
            putfield org.jcodings.transcode.EConv$LastError.readAgainLength:I
        end local 3 // org.jcodings.transcode.Transcoding errorTranscoding
        10: .line 432
      StackMap locals:
      StackMap stack:
            aload 1 /* res */
            areturn
        end local 2 // org.jcodings.Ptr resultPosition
        end local 1 // org.jcodings.transcode.EConvResult res
        end local 0 // org.jcodings.transcode.EConv this
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0   11     0              this  Lorg/jcodings/transcode/EConv;
            0   11     1               res  Lorg/jcodings/transcode/EConvResult;
            0   11     2    resultPosition  Lorg/jcodings/Ptr;
            3   10     3  errorTranscoding  Lorg/jcodings/transcode/Transcoding;
    MethodParameters:
                Name  Flags
      res             
      resultPosition  

  public org.jcodings.transcode.EConvResult convert(byte[], org.jcodings.Ptr, int, byte[], org.jcodings.Ptr, int, int);
    descriptor: ([BLorg/jcodings/Ptr;I[BLorg/jcodings/Ptr;II)Lorg/jcodings/transcode/EConvResult;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=8, locals=9, args_size=8
        start local 0 // org.jcodings.transcode.EConv this
        start local 1 // byte[] in
        start local 2 // org.jcodings.Ptr inPtr
        start local 3 // int inStop
        start local 4 // byte[] out
        start local 5 // org.jcodings.Ptr outPtr
        start local 6 // int outStop
        start local 7 // int flags
         0: .line 437
            aload 0 /* this */
            iconst_1
            putfield org.jcodings.transcode.EConv.started:Z
         1: .line 439
            aload 1 /* in */
            ifnull 2
            aload 2 /* inPtr */
            ifnonnull 5
         2: .line 440
      StackMap locals:
      StackMap stack:
            getstatic org.jcodings.transcode.EConv.NULL_STRING:[B
            astore 1 /* in */
         3: .line 441
            getstatic org.jcodings.Ptr.NULL:Lorg/jcodings/Ptr;
            astore 2 /* inPtr */
         4: .line 442
            iconst_0
            istore 3 /* inStop */
         5: .line 445
      StackMap locals:
      StackMap stack:
            aload 4 /* out */
            ifnull 6
            aload 5 /* outPtr */
            ifnonnull 9
         6: .line 446
      StackMap locals:
      StackMap stack:
            getstatic org.jcodings.transcode.EConv.NULL_STRING:[B
            astore 4 /* out */
         7: .line 447
            getstatic org.jcodings.Ptr.NULL:Lorg/jcodings/Ptr;
            astore 5 /* outPtr */
         8: .line 448
            iconst_0
            istore 6 /* outStop */
         9: .line 452
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* in */
            aload 2 /* inPtr */
            iload 3 /* inStop */
            aload 4 /* out */
            aload 5 /* outPtr */
            iload 6 /* outStop */
            iload 7 /* flags */
            invokevirtual org.jcodings.transcode.EConv.convertInternal:([BLorg/jcodings/Ptr;I[BLorg/jcodings/Ptr;II)Lorg/jcodings/transcode/EConvResult;
            astore 8 /* ret */
        start local 8 // org.jcodings.transcode.EConvResult ret
        10: .line 453
            aload 8 /* ret */
            invokevirtual org.jcodings.transcode.EConvResult.isInvalidByteSequence:()Z
            ifne 11
            aload 8 /* ret */
            invokevirtual org.jcodings.transcode.EConvResult.isIncompleteInput:()Z
            ifeq 13
        11: .line 454
      StackMap locals: org.jcodings.transcode.EConvResult
      StackMap stack:
            aload 0 /* this */
            getfield org.jcodings.transcode.EConv.flags:I
            bipush 15
            iand
            tableswitch { // 2 - 2
                    2: 12
              default: 13
          }
        12: .line 456
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.jcodings.transcode.EConv.outputReplacementCharacter:()I
            ifne 13
            goto 9
        13: .line 460
      StackMap locals:
      StackMap stack:
            aload 8 /* ret */
            invokevirtual org.jcodings.transcode.EConvResult.isUndefinedConversion:()Z
            ifeq 17
        14: .line 461
            aload 0 /* this */
            getfield org.jcodings.transcode.EConv.flags:I
            sipush 240
            iand
            lookupswitch { // 2
                   32: 15
                   48: 16
              default: 17
          }
        15: .line 463
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.jcodings.transcode.EConv.outputReplacementCharacter:()I
            ifne 17
            goto 9
        16: .line 466
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.jcodings.transcode.EConv.outputHexCharref:()I
            ifne 17
            goto 9
        17: .line 470
      StackMap locals:
      StackMap stack:
            aload 8 /* ret */
            areturn
        end local 8 // org.jcodings.transcode.EConvResult ret
        end local 7 // int flags
        end local 6 // int outStop
        end local 5 // org.jcodings.Ptr outPtr
        end local 4 // byte[] out
        end local 3 // int inStop
        end local 2 // org.jcodings.Ptr inPtr
        end local 1 // byte[] in
        end local 0 // org.jcodings.transcode.EConv this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   18     0     this  Lorg/jcodings/transcode/EConv;
            0   18     1       in  [B
            0   18     2    inPtr  Lorg/jcodings/Ptr;
            0   18     3   inStop  I
            0   18     4      out  [B
            0   18     5   outPtr  Lorg/jcodings/Ptr;
            0   18     6  outStop  I
            0   18     7    flags  I
           10   18     8      ret  Lorg/jcodings/transcode/EConvResult;
    MethodParameters:
         Name  Flags
      in       
      inPtr    
      inStop   
      out      
      outPtr   
      outStop  
      flags    

  private int outputHexCharref();
    descriptor: ()I
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=7, locals=7, args_size=1
        start local 0 // org.jcodings.transcode.EConv this
         0: .line 480
            aload 0 /* this */
            getfield org.jcodings.transcode.EConv.lastError:Lorg/jcodings/transcode/EConv$LastError;
            getfield org.jcodings.transcode.EConv$LastError.source:[B
            ldc "UTF-32BE"
            invokevirtual java.lang.String.getBytes:()[B
            invokestatic org.jcodings.util.CaseInsensitiveBytesHash.caseInsensitiveEquals:([B[B)Z
            ifeq 5
         1: .line 481
            aload 0 /* this */
            getfield org.jcodings.transcode.EConv.lastError:Lorg/jcodings/transcode/EConv$LastError;
            getfield org.jcodings.transcode.EConv$LastError.errorBytes:[B
            astore 1 /* utfBytes */
        start local 1 // byte[] utfBytes
         2: .line 482
            aload 0 /* this */
            getfield org.jcodings.transcode.EConv.lastError:Lorg/jcodings/transcode/EConv$LastError;
            getfield org.jcodings.transcode.EConv$LastError.errorBytesP:I
            istore 2 /* utfP */
        start local 2 // int utfP
         3: .line 483
            aload 0 /* this */
            getfield org.jcodings.transcode.EConv.lastError:Lorg/jcodings/transcode/EConv$LastError;
            getfield org.jcodings.transcode.EConv$LastError.errorBytesLength:I
            istore 3 /* utfLen */
        start local 3 // int utfLen
         4: .line 484
            goto 11
        end local 3 // int utfLen
        end local 2 // int utfP
        end local 1 // byte[] utfBytes
         5: .line 485
      StackMap locals:
      StackMap stack:
            new org.jcodings.Ptr
            dup
            invokespecial org.jcodings.Ptr.<init>:()V
            astore 4 /* utfLenA */
        start local 4 // org.jcodings.Ptr utfLenA
         6: .line 488
            aload 0 /* this */
            getfield org.jcodings.transcode.EConv.lastError:Lorg/jcodings/transcode/EConv$LastError;
            getfield org.jcodings.transcode.EConv$LastError.errorBytesLength:I
            getstatic org.jcodings.specific.UTF32BEEncoding.INSTANCE:Lorg/jcodings/specific/UTF32BEEncoding;
            invokevirtual org.jcodings.specific.UTF32BEEncoding.maxLength:()I
            imul
            newarray 8
            astore 5 /* utfBuf */
        start local 5 // byte[] utfBuf
         7: .line 489
            aload 0 /* this */
            getfield org.jcodings.transcode.EConv.lastError:Lorg/jcodings/transcode/EConv$LastError;
            getfield org.jcodings.transcode.EConv$LastError.source:[B
            ldc "UTF-32BE"
            invokevirtual java.lang.String.getBytes:()[B
            aload 0 /* this */
            getfield org.jcodings.transcode.EConv.lastError:Lorg/jcodings/transcode/EConv$LastError;
            getfield org.jcodings.transcode.EConv$LastError.errorBytes:[B
            aload 0 /* this */
            getfield org.jcodings.transcode.EConv.lastError:Lorg/jcodings/transcode/EConv$LastError;
            getfield org.jcodings.transcode.EConv$LastError.errorBytesP:I
            aload 0 /* this */
            getfield org.jcodings.transcode.EConv.lastError:Lorg/jcodings/transcode/EConv$LastError;
            getfield org.jcodings.transcode.EConv$LastError.errorBytesLength:I
            aload 5 /* utfBuf */
            aload 4 /* utfLenA */
            invokestatic org.jcodings.transcode.EConv.allocateConvertedString:([B[B[BII[BLorg/jcodings/Ptr;)[B
            astore 1 /* utfBytes */
        start local 1 // byte[] utfBytes
         8: .line 491
            aload 1 /* utfBytes */
            ifnonnull 9
            iconst_m1
            ireturn
         9: .line 492
      StackMap locals: org.jcodings.transcode.EConv byte[] top top org.jcodings.Ptr byte[]
      StackMap stack:
            iconst_0
            istore 2 /* utfP */
        start local 2 // int utfP
        10: .line 493
            aload 4 /* utfLenA */
            getfield org.jcodings.Ptr.p:I
            istore 3 /* utfLen */
        end local 5 // byte[] utfBuf
        end local 4 // org.jcodings.Ptr utfLenA
        start local 3 // int utfLen
        11: .line 496
      StackMap locals: org.jcodings.transcode.EConv byte[] int int
      StackMap stack:
            iload 3 /* utfLen */
            iconst_4
            irem
            ifeq 12
            iconst_m1
            ireturn
        12: .line 498
      StackMap locals:
      StackMap stack:
            iload 2 /* utfP */
            istore 4 /* p */
        start local 4 // int p
        13: .line 499
            goto 23
        14: .line 500
      StackMap locals: int
      StackMap stack:
            iconst_0
            istore 5 /* u */
        start local 5 // int u
        15: .line 501
            iload 5 /* u */
            aload 1 /* utfBytes */
            iload 4 /* p */
            baload
            sipush 255
            iand
            bipush 24
            ishl
            iadd
            istore 5 /* u */
        16: .line 502
            iload 5 /* u */
            aload 1 /* utfBytes */
            iload 4 /* p */
            iconst_1
            iadd
            baload
            sipush 255
            iand
            bipush 16
            ishl
            iadd
            istore 5 /* u */
        17: .line 503
            iload 5 /* u */
            aload 1 /* utfBytes */
            iload 4 /* p */
            iconst_2
            iadd
            baload
            sipush 255
            iand
            bipush 8
            ishl
            iadd
            istore 5 /* u */
        18: .line 504
            iload 5 /* u */
            aload 1 /* utfBytes */
            iload 4 /* p */
            iconst_3
            iadd
            baload
            sipush 255
            iand
            iadd
            istore 5 /* u */
        19: .line 505
            ldc "&#x%X;"
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            iload 5 /* u */
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            aastore
            invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
            invokevirtual java.lang.String.getBytes:()[B
            astore 6 /* charrefbuf */
        start local 6 // byte[] charrefbuf
        20: .line 507
            aload 0 /* this */
            aload 6 /* charrefbuf */
            iconst_0
            aload 6 /* charrefbuf */
            arraylength
            ldc "US-ASCII"
            invokevirtual java.lang.String.getBytes:()[B
            invokevirtual org.jcodings.transcode.EConv.insertOutput:([BII[B)I
            iconst_m1
            if_icmpne 21
            iconst_m1
            ireturn
        21: .line 509
      StackMap locals: int byte[]
      StackMap stack:
            iinc 4 /* p */ 4
        22: .line 510
            iinc 3 /* utfLen */ -4
        end local 6 // byte[] charrefbuf
        end local 5 // int u
        23: .line 499
      StackMap locals:
      StackMap stack:
            iconst_4
            iload 3 /* utfLen */
            if_icmple 14
        24: .line 513
            iconst_0
            ireturn
        end local 4 // int p
        end local 3 // int utfLen
        end local 2 // int utfP
        end local 1 // byte[] utfBytes
        end local 0 // org.jcodings.transcode.EConv this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   25     0        this  Lorg/jcodings/transcode/EConv;
            2    5     1    utfBytes  [B
            8   25     1    utfBytes  [B
            3    5     2        utfP  I
           10   25     2        utfP  I
            4    5     3      utfLen  I
           11   25     3      utfLen  I
            6   11     4     utfLenA  Lorg/jcodings/Ptr;
            7   11     5      utfBuf  [B
           13   25     4           p  I
           15   23     5           u  I
           20   23     6  charrefbuf  [B

  public byte[] encodingToInsertOutput();
    descriptor: ()[B
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=3, args_size=1
        start local 0 // org.jcodings.transcode.EConv this
         0: .line 518
            aload 0 /* this */
            getfield org.jcodings.transcode.EConv.lastTranscoding:Lorg/jcodings/transcode/Transcoding;
            astore 1 /* transcoding */
        start local 1 // org.jcodings.transcode.Transcoding transcoding
         1: .line 519
            aload 1 /* transcoding */
            ifnonnull 2
            getstatic org.jcodings.transcode.EConv.NULL_STRING:[B
            areturn
         2: .line 520
      StackMap locals: org.jcodings.transcode.Transcoding
      StackMap stack:
            aload 1 /* transcoding */
            getfield org.jcodings.transcode.Transcoding.transcoder:Lorg/jcodings/transcode/Transcoder;
            astore 2 /* transcoder */
        start local 2 // org.jcodings.transcode.Transcoder transcoder
         3: .line 521
            aload 2 /* transcoder */
            getfield org.jcodings.transcode.Transcoder.compatibility:Lorg/jcodings/transcode/AsciiCompatibility;
            invokevirtual org.jcodings.transcode.AsciiCompatibility.isEncoder:()Z
            ifeq 4
            aload 2 /* transcoder */
            getfield org.jcodings.transcode.Transcoder.source:[B
            goto 5
      StackMap locals: org.jcodings.transcode.Transcoder
      StackMap stack:
         4: aload 2 /* transcoder */
            getfield org.jcodings.transcode.Transcoder.destination:[B
      StackMap locals:
      StackMap stack: byte[]
         5: areturn
        end local 2 // org.jcodings.transcode.Transcoder transcoder
        end local 1 // org.jcodings.transcode.Transcoding transcoding
        end local 0 // org.jcodings.transcode.EConv this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    6     0         this  Lorg/jcodings/transcode/EConv;
            1    6     1  transcoding  Lorg/jcodings/transcode/Transcoding;
            3    6     2   transcoder  Lorg/jcodings/transcode/Transcoder;

  private static byte[] allocateConvertedString(byte[], byte[], byte[], int, int, byte[], org.jcodings.Ptr);
    descriptor: ([B[B[BII[BLorg/jcodings/Ptr;)[B
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=8, locals=15, args_size=7
        start local 0 // byte[] source
        start local 1 // byte[] destination
        start local 2 // byte[] str
        start local 3 // int strP
        start local 4 // int strLen
        start local 5 // byte[] callerDstBuf
        start local 6 // org.jcodings.Ptr dstLenPtr
         0: .line 528
            aload 5 /* callerDstBuf */
            ifnull 3
         1: .line 529
            aload 5 /* callerDstBuf */
            arraylength
            istore 7 /* dstBufSize */
        start local 7 // int dstBufSize
         2: .line 530
            goto 7
        end local 7 // int dstBufSize
      StackMap locals:
      StackMap stack:
         3: iload 4 /* strLen */
            ifne 6
         4: .line 531
            iconst_1
            istore 7 /* dstBufSize */
        start local 7 // int dstBufSize
         5: .line 532
            goto 7
        end local 7 // int dstBufSize
         6: .line 533
      StackMap locals:
      StackMap stack:
            iload 4 /* strLen */
            istore 7 /* dstBufSize */
        start local 7 // int dstBufSize
         7: .line 536
      StackMap locals: int
      StackMap stack:
            aload 0 /* source */
            aload 1 /* destination */
            iconst_0
            invokestatic org.jcodings.transcode.TranscoderDB.open:([B[BI)Lorg/jcodings/transcode/EConv;
            astore 8 /* ec */
        start local 8 // org.jcodings.transcode.EConv ec
         8: .line 537
            aload 8 /* ec */
            ifnonnull 9
            aconst_null
            areturn
         9: .line 540
      StackMap locals: org.jcodings.transcode.EConv
      StackMap stack:
            aload 5 /* callerDstBuf */
            ifnull 12
        10: .line 541
            aload 5 /* callerDstBuf */
            astore 9 /* dstStr */
        start local 9 // byte[] dstStr
        11: .line 542
            goto 13
        end local 9 // byte[] dstStr
        12: .line 543
      StackMap locals:
      StackMap stack:
            iload 7 /* dstBufSize */
            newarray 8
            astore 9 /* dstStr */
        start local 9 // byte[] dstStr
        13: .line 546
      StackMap locals: byte[]
      StackMap stack:
            iconst_0
            istore 10 /* dstLen */
        start local 10 // int dstLen
        14: .line 547
            new org.jcodings.Ptr
            dup
            iload 3 /* strP */
            invokespecial org.jcodings.Ptr.<init>:(I)V
            astore 11 /* sp */
        start local 11 // org.jcodings.Ptr sp
        15: .line 548
            new org.jcodings.Ptr
            dup
            iload 10 /* dstLen */
            invokespecial org.jcodings.Ptr.<init>:(I)V
            astore 12 /* dp */
        start local 12 // org.jcodings.Ptr dp
        16: .line 549
            aload 8 /* ec */
            aload 2 /* str */
            aload 11 /* sp */
            iload 3 /* strP */
            iload 4 /* strLen */
            iadd
            aload 9 /* dstStr */
            aload 12 /* dp */
            iload 7 /* dstBufSize */
            iconst_0
            invokevirtual org.jcodings.transcode.EConv.convert:([BLorg/jcodings/Ptr;I[BLorg/jcodings/Ptr;II)Lorg/jcodings/transcode/EConvResult;
            astore 13 /* res */
        start local 13 // org.jcodings.transcode.EConvResult res
        17: .line 550
            aload 12 /* dp */
            getfield org.jcodings.Ptr.p:I
            istore 10 /* dstLen */
        18: .line 552
            goto 26
        19: .line 553
      StackMap locals: byte[] byte[] byte[] int int byte[] org.jcodings.Ptr int org.jcodings.transcode.EConv byte[] int org.jcodings.Ptr org.jcodings.Ptr org.jcodings.transcode.EConvResult
      StackMap stack:
            iload 7 /* dstBufSize */
            iconst_2
            imul
            istore 7 /* dstBufSize */
        20: .line 554
            iload 7 /* dstBufSize */
            newarray 8
            astore 14 /* tmp */
        start local 14 // byte[] tmp
        21: .line 555
            aload 9 /* dstStr */
            iconst_0
            aload 14 /* tmp */
            iconst_0
            iload 7 /* dstBufSize */
            iconst_2
            idiv
            invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
        22: .line 556
            aload 14 /* tmp */
            astore 9 /* dstStr */
        23: .line 558
            aload 12 /* dp */
            iload 10 /* dstLen */
            putfield org.jcodings.Ptr.p:I
        24: .line 559
            aload 8 /* ec */
            aload 2 /* str */
            aload 11 /* sp */
            iload 3 /* strP */
            iload 4 /* strLen */
            iadd
            aload 9 /* dstStr */
            aload 12 /* dp */
            iload 7 /* dstBufSize */
            iconst_0
            invokevirtual org.jcodings.transcode.EConv.convert:([BLorg/jcodings/Ptr;I[BLorg/jcodings/Ptr;II)Lorg/jcodings/transcode/EConvResult;
            astore 13 /* res */
        25: .line 560
            aload 12 /* dp */
            getfield org.jcodings.Ptr.p:I
            istore 10 /* dstLen */
        end local 14 // byte[] tmp
        26: .line 552
      StackMap locals:
      StackMap stack:
            aload 13 /* res */
            invokevirtual org.jcodings.transcode.EConvResult.isDestinationBufferFull:()Z
            ifne 19
        27: .line 563
            aload 13 /* res */
            invokevirtual org.jcodings.transcode.EConvResult.isFinished:()Z
            ifne 28
            aconst_null
            areturn
        28: .line 565
      StackMap locals:
      StackMap stack:
            aload 8 /* ec */
            invokevirtual org.jcodings.transcode.EConv.close:()V
        29: .line 566
            aload 6 /* dstLenPtr */
            iload 10 /* dstLen */
            putfield org.jcodings.Ptr.p:I
        30: .line 568
            aload 9 /* dstStr */
            areturn
        end local 13 // org.jcodings.transcode.EConvResult res
        end local 12 // org.jcodings.Ptr dp
        end local 11 // org.jcodings.Ptr sp
        end local 10 // int dstLen
        end local 9 // byte[] dstStr
        end local 8 // org.jcodings.transcode.EConv ec
        end local 7 // int dstBufSize
        end local 6 // org.jcodings.Ptr dstLenPtr
        end local 5 // byte[] callerDstBuf
        end local 4 // int strLen
        end local 3 // int strP
        end local 2 // byte[] str
        end local 1 // byte[] destination
        end local 0 // byte[] source
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0   31     0        source  [B
            0   31     1   destination  [B
            0   31     2           str  [B
            0   31     3          strP  I
            0   31     4        strLen  I
            0   31     5  callerDstBuf  [B
            0   31     6     dstLenPtr  Lorg/jcodings/Ptr;
            2    3     7    dstBufSize  I
            5    6     7    dstBufSize  I
            7   31     7    dstBufSize  I
            8   31     8            ec  Lorg/jcodings/transcode/EConv;
           11   12     9        dstStr  [B
           13   31     9        dstStr  [B
           14   31    10        dstLen  I
           15   31    11            sp  Lorg/jcodings/Ptr;
           16   31    12            dp  Lorg/jcodings/Ptr;
           17   31    13           res  Lorg/jcodings/transcode/EConvResult;
           21   26    14           tmp  [B
    MethodParameters:
              Name  Flags
      source        
      destination   
      str           
      strP          
      strLen        
      callerDstBuf  
      dstLenPtr     

  public int insertOutput(byte[], int, int, byte[]);
    descriptor: ([BII[B)I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=7, locals=16, args_size=5
        start local 0 // org.jcodings.transcode.EConv this
        start local 1 // byte[] str
        start local 2 // int strP
        start local 3 // int strLen
        start local 4 // byte[] strEncoding
         0: .line 573
            aload 0 /* this */
            invokevirtual org.jcodings.transcode.EConv.encodingToInsertOutput:()[B
            astore 5 /* insertEncoding */
        start local 5 // byte[] insertEncoding
         1: .line 574
            aconst_null
            astore 6 /* insertBuf */
        start local 6 // byte[] insertBuf
         2: .line 576
            aload 0 /* this */
            iconst_1
            putfield org.jcodings.transcode.EConv.started:Z
         3: .line 578
            iload 3 /* strLen */
            ifne 4
            iconst_0
            ireturn
         4: .line 583
      StackMap locals: byte[] byte[]
      StackMap stack:
            aload 5 /* insertEncoding */
            aload 4 /* strEncoding */
            invokestatic org.jcodings.util.CaseInsensitiveBytesHash.caseInsensitiveEquals:([B[B)Z
            ifeq 9
         5: .line 584
            aload 1 /* str */
            astore 7 /* insertStr */
        start local 7 // byte[] insertStr
         6: .line 585
            iconst_0
            istore 8 /* insertP */
        start local 8 // int insertP
         7: .line 586
            iload 3 /* strLen */
            istore 9 /* insertLen */
        start local 9 // int insertLen
         8: .line 587
            goto 17
        end local 9 // int insertLen
        end local 8 // int insertP
        end local 7 // byte[] insertStr
         9: .line 588
      StackMap locals:
      StackMap stack:
            new org.jcodings.Ptr
            dup
            invokespecial org.jcodings.Ptr.<init>:()V
            astore 10 /* insertLenP */
        start local 10 // org.jcodings.Ptr insertLenP
        10: .line 589
            sipush 4096
            newarray 8
            astore 6 /* insertBuf */
        11: .line 590
            aload 4 /* strEncoding */
            aload 5 /* insertEncoding */
            aload 1 /* str */
            iload 2 /* strP */
            iload 3 /* strLen */
            aload 6 /* insertBuf */
            aload 10 /* insertLenP */
            invokestatic org.jcodings.transcode.EConv.allocateConvertedString:([B[B[BII[BLorg/jcodings/Ptr;)[B
            astore 7 /* insertStr */
        start local 7 // byte[] insertStr
        12: .line 591
            aload 10 /* insertLenP */
            getfield org.jcodings.Ptr.p:I
            istore 9 /* insertLen */
        start local 9 // int insertLen
        13: .line 592
            aload 7 /* insertStr */
            aload 1 /* str */
            if_acmpne 14
            iload 2 /* strP */
            goto 15
      StackMap locals: org.jcodings.transcode.EConv byte[] int int byte[] byte[] byte[] byte[] top int org.jcodings.Ptr
      StackMap stack:
        14: iconst_0
      StackMap locals:
      StackMap stack: int
        15: istore 8 /* insertP */
        start local 8 // int insertP
        16: .line 593
            aload 7 /* insertStr */
            ifnonnull 17
            iconst_m1
            ireturn
        end local 10 // org.jcodings.Ptr insertLenP
        17: .line 596
      StackMap locals: org.jcodings.transcode.EConv byte[] int int byte[] byte[] byte[] byte[] int int
      StackMap stack:
            iload 9 /* insertLen */
            istore 10 /* need */
        start local 10 // int need
        18: .line 598
            aload 0 /* this */
            getfield org.jcodings.transcode.EConv.numTranscoders:I
            iconst_1
            isub
            istore 11 /* lastTranscodingIndex */
        start local 11 // int lastTranscodingIndex
        19: .line 603
            aload 0 /* this */
            getfield org.jcodings.transcode.EConv.numTranscoders:I
            ifne 23
        20: .line 604
            aconst_null
            astore 12 /* transcoding */
        start local 12 // org.jcodings.transcode.Transcoding transcoding
        21: .line 605
            aload 0 /* this */
            getfield org.jcodings.transcode.EConv.inBuf:Lorg/jcodings/transcode/Buffer;
            astore 13 /* buf */
        start local 13 // org.jcodings.transcode.Buffer buf
        22: .line 606
            goto 34
        end local 13 // org.jcodings.transcode.Buffer buf
        end local 12 // org.jcodings.transcode.Transcoding transcoding
      StackMap locals: int int
      StackMap stack:
        23: aload 0 /* this */
            getfield org.jcodings.transcode.EConv.elements:[Lorg/jcodings/transcode/EConv$EConvElement;
            iload 11 /* lastTranscodingIndex */
            aaload
            getfield org.jcodings.transcode.EConv$EConvElement.transcoding:Lorg/jcodings/transcode/Transcoding;
            getfield org.jcodings.transcode.Transcoding.transcoder:Lorg/jcodings/transcode/Transcoder;
            getfield org.jcodings.transcode.Transcoder.compatibility:Lorg/jcodings/transcode/AsciiCompatibility;
            invokevirtual org.jcodings.transcode.AsciiCompatibility.isEncoder:()Z
            ifeq 32
        24: .line 607
            aload 0 /* this */
            getfield org.jcodings.transcode.EConv.elements:[Lorg/jcodings/transcode/EConv$EConvElement;
            iload 11 /* lastTranscodingIndex */
            aaload
            getfield org.jcodings.transcode.EConv$EConvElement.transcoding:Lorg/jcodings/transcode/Transcoding;
            astore 12 /* transcoding */
        start local 12 // org.jcodings.transcode.Transcoding transcoding
        25: .line 608
            iload 10 /* need */
            aload 12 /* transcoding */
            getfield org.jcodings.transcode.Transcoding.readAgainLength:I
            iadd
            istore 10 /* need */
        26: .line 609
            iload 10 /* need */
            iload 9 /* insertLen */
            if_icmpge 27
            iconst_m1
            ireturn
        27: .line 611
      StackMap locals: org.jcodings.transcode.Transcoding
      StackMap stack:
            iload 11 /* lastTranscodingIndex */
            ifne 30
        28: .line 612
            aload 0 /* this */
            getfield org.jcodings.transcode.EConv.inBuf:Lorg/jcodings/transcode/Buffer;
            astore 13 /* buf */
        start local 13 // org.jcodings.transcode.Buffer buf
        29: .line 613
            goto 34
        end local 13 // org.jcodings.transcode.Buffer buf
        30: .line 614
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.jcodings.transcode.EConv.elements:[Lorg/jcodings/transcode/EConv$EConvElement;
            iload 11 /* lastTranscodingIndex */
            iconst_1
            isub
            aaload
            astore 13 /* buf */
        start local 13 // org.jcodings.transcode.Buffer buf
        31: .line 616
            goto 34
        end local 13 // org.jcodings.transcode.Buffer buf
        end local 12 // org.jcodings.transcode.Transcoding transcoding
        32: .line 617
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.jcodings.transcode.EConv.elements:[Lorg/jcodings/transcode/EConv$EConvElement;
            iload 11 /* lastTranscodingIndex */
            aaload
            getfield org.jcodings.transcode.EConv$EConvElement.transcoding:Lorg/jcodings/transcode/Transcoding;
            astore 12 /* transcoding */
        start local 12 // org.jcodings.transcode.Transcoding transcoding
        33: .line 618
            aload 0 /* this */
            getfield org.jcodings.transcode.EConv.elements:[Lorg/jcodings/transcode/EConv$EConvElement;
            iload 11 /* lastTranscodingIndex */
            aaload
            astore 13 /* buf */
        start local 13 // org.jcodings.transcode.Buffer buf
        34: .line 621
      StackMap locals: org.jcodings.transcode.Transcoding org.jcodings.transcode.Buffer
      StackMap stack:
            aload 13 /* buf */
            ifnonnull 38
        35: .line 622
            new org.jcodings.transcode.Buffer
            dup
            invokespecial org.jcodings.transcode.Buffer.<init>:()V
            astore 13 /* buf */
        36: .line 623
            aload 13 /* buf */
            iload 10 /* need */
            invokevirtual org.jcodings.transcode.Buffer.allocate:(I)V
        37: .line 624
            goto 53
      StackMap locals:
      StackMap stack:
        38: aload 13 /* buf */
            getfield org.jcodings.transcode.Buffer.bytes:[B
            ifnonnull 41
        39: .line 625
            aload 13 /* buf */
            iload 10 /* need */
            invokevirtual org.jcodings.transcode.Buffer.allocate:(I)V
        40: .line 626
            goto 53
      StackMap locals:
      StackMap stack:
        41: aload 13 /* buf */
            getfield org.jcodings.transcode.Buffer.bufEnd:I
            aload 13 /* buf */
            getfield org.jcodings.transcode.Buffer.dataEnd:I
            isub
            iload 10 /* need */
            if_icmpge 53
        42: .line 628
            aload 13 /* buf */
            getfield org.jcodings.transcode.Buffer.bytes:[B
            aload 13 /* buf */
            getfield org.jcodings.transcode.Buffer.dataStart:I
            aload 13 /* buf */
            getfield org.jcodings.transcode.Buffer.bytes:[B
            aload 13 /* buf */
            getfield org.jcodings.transcode.Buffer.bufStart:I
            aload 13 /* buf */
            getfield org.jcodings.transcode.Buffer.dataEnd:I
            aload 13 /* buf */
            getfield org.jcodings.transcode.Buffer.dataStart:I
            isub
            invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
        43: .line 629
            aload 13 /* buf */
            aload 13 /* buf */
            getfield org.jcodings.transcode.Buffer.bufStart:I
            aload 13 /* buf */
            getfield org.jcodings.transcode.Buffer.dataEnd:I
            aload 13 /* buf */
            getfield org.jcodings.transcode.Buffer.dataStart:I
            isub
            iadd
            putfield org.jcodings.transcode.Buffer.dataEnd:I
        44: .line 630
            aload 13 /* buf */
            aload 13 /* buf */
            getfield org.jcodings.transcode.Buffer.bufStart:I
            putfield org.jcodings.transcode.Buffer.dataStart:I
        45: .line 632
            aload 13 /* buf */
            getfield org.jcodings.transcode.Buffer.bufEnd:I
            aload 13 /* buf */
            getfield org.jcodings.transcode.Buffer.dataEnd:I
            isub
            iload 10 /* need */
            if_icmpge 53
        46: .line 634
            aload 13 /* buf */
            getfield org.jcodings.transcode.Buffer.dataEnd:I
            aload 13 /* buf */
            getfield org.jcodings.transcode.Buffer.bufStart:I
            isub
            iload 10 /* need */
            iadd
            istore 14 /* s */
        start local 14 // int s
        47: .line 635
            iload 14 /* s */
            iload 10 /* need */
            if_icmpge 48
            iconst_m1
            ireturn
        48: .line 636
      StackMap locals: int
      StackMap stack:
            new org.jcodings.transcode.Buffer
            dup
            invokespecial org.jcodings.transcode.Buffer.<init>:()V
            dup
            astore 13 /* buf */
            astore 15 /* buf2 */
        start local 15 // org.jcodings.transcode.Buffer buf2
        49: .line 637
            aload 15 /* buf2 */
            iload 14 /* s */
            invokevirtual org.jcodings.transcode.Buffer.allocate:(I)V
        50: .line 638
            aload 13 /* buf */
            getfield org.jcodings.transcode.Buffer.bytes:[B
            aload 13 /* buf */
            getfield org.jcodings.transcode.Buffer.bufStart:I
            aload 15 /* buf2 */
            getfield org.jcodings.transcode.Buffer.bytes:[B
            iconst_0
            iload 14 /* s */
            invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
        51: .line 639
            aload 15 /* buf2 */
            iconst_0
            putfield org.jcodings.transcode.Buffer.dataStart:I
        52: .line 640
            aload 15 /* buf2 */
            aload 13 /* buf */
            getfield org.jcodings.transcode.Buffer.dataEnd:I
            aload 13 /* buf */
            getfield org.jcodings.transcode.Buffer.bufStart:I
            isub
            putfield org.jcodings.transcode.Buffer.dataEnd:I
        end local 15 // org.jcodings.transcode.Buffer buf2
        end local 14 // int s
        53: .line 644
      StackMap locals:
      StackMap stack:
            aload 7 /* insertStr */
            iload 8 /* insertP */
            aload 13 /* buf */
            getfield org.jcodings.transcode.Buffer.bytes:[B
            aload 13 /* buf */
            getfield org.jcodings.transcode.Buffer.dataEnd:I
            iload 9 /* insertLen */
            invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
        54: .line 645
            aload 13 /* buf */
            dup
            getfield org.jcodings.transcode.Buffer.dataEnd:I
            iload 9 /* insertLen */
            iadd
            putfield org.jcodings.transcode.Buffer.dataEnd:I
        55: .line 646
            aload 12 /* transcoding */
            ifnull 59
            aload 12 /* transcoding */
            getfield org.jcodings.transcode.Transcoding.transcoder:Lorg/jcodings/transcode/Transcoder;
            getfield org.jcodings.transcode.Transcoder.compatibility:Lorg/jcodings/transcode/AsciiCompatibility;
            invokevirtual org.jcodings.transcode.AsciiCompatibility.isEncoder:()Z
            ifeq 59
        56: .line 647
            aload 12 /* transcoding */
            getfield org.jcodings.transcode.Transcoding.readBuf:[B
            aload 12 /* transcoding */
            getfield org.jcodings.transcode.Transcoding.recognizedLength:I
            aload 13 /* buf */
            getfield org.jcodings.transcode.Buffer.bytes:[B
            aload 13 /* buf */
            getfield org.jcodings.transcode.Buffer.dataEnd:I
            aload 12 /* transcoding */
            getfield org.jcodings.transcode.Transcoding.readAgainLength:I
            invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
        57: .line 648
            aload 13 /* buf */
            dup
            getfield org.jcodings.transcode.Buffer.dataEnd:I
            aload 12 /* transcoding */
            getfield org.jcodings.transcode.Transcoding.readAgainLength:I
            iadd
            putfield org.jcodings.transcode.Buffer.dataEnd:I
        58: .line 649
            aload 12 /* transcoding */
            iconst_0
            putfield org.jcodings.transcode.Transcoding.readAgainLength:I
        59: .line 652
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
        end local 13 // org.jcodings.transcode.Buffer buf
        end local 12 // org.jcodings.transcode.Transcoding transcoding
        end local 11 // int lastTranscodingIndex
        end local 10 // int need
        end local 9 // int insertLen
        end local 8 // int insertP
        end local 7 // byte[] insertStr
        end local 6 // byte[] insertBuf
        end local 5 // byte[] insertEncoding
        end local 4 // byte[] strEncoding
        end local 3 // int strLen
        end local 2 // int strP
        end local 1 // byte[] str
        end local 0 // org.jcodings.transcode.EConv this
      LocalVariableTable:
        Start  End  Slot                  Name  Signature
            0   60     0                  this  Lorg/jcodings/transcode/EConv;
            0   60     1                   str  [B
            0   60     2                  strP  I
            0   60     3                strLen  I
            0   60     4           strEncoding  [B
            1   60     5        insertEncoding  [B
            2   60     6             insertBuf  [B
            6    9     7             insertStr  [B
           12   60     7             insertStr  [B
            7    9     8               insertP  I
           16   60     8               insertP  I
            8    9     9             insertLen  I
           13   60     9             insertLen  I
           10   17    10            insertLenP  Lorg/jcodings/Ptr;
           18   60    10                  need  I
           19   60    11  lastTranscodingIndex  I
           21   23    12           transcoding  Lorg/jcodings/transcode/Transcoding;
           25   32    12           transcoding  Lorg/jcodings/transcode/Transcoding;
           33   60    12           transcoding  Lorg/jcodings/transcode/Transcoding;
           22   23    13                   buf  Lorg/jcodings/transcode/Buffer;
           29   30    13                   buf  Lorg/jcodings/transcode/Buffer;
           31   32    13                   buf  Lorg/jcodings/transcode/Buffer;
           34   60    13                   buf  Lorg/jcodings/transcode/Buffer;
           47   53    14                     s  I
           49   53    15                  buf2  Lorg/jcodings/transcode/Buffer;
    MethodParameters:
             Name  Flags
      str          
      strP         
      strLen       
      strEncoding  

  public void close();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=1
        start local 0 // org.jcodings.transcode.EConv this
         0: .line 657
            iconst_0
            istore 1 /* i */
        start local 1 // int i
         1: goto 4
         2: .line 658
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            getfield org.jcodings.transcode.EConv.elements:[Lorg/jcodings/transcode/EConv$EConvElement;
            iload 1 /* i */
            aaload
            getfield org.jcodings.transcode.EConv$EConvElement.transcoding:Lorg/jcodings/transcode/Transcoding;
            invokevirtual org.jcodings.transcode.Transcoding.close:()V
         3: .line 657
            iinc 1 /* i */ 1
      StackMap locals:
      StackMap stack:
         4: iload 1 /* i */
            aload 0 /* this */
            getfield org.jcodings.transcode.EConv.numTranscoders:I
            if_icmplt 2
        end local 1 // int i
         5: .line 660
            return
        end local 0 // org.jcodings.transcode.EConv this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    6     0  this  Lorg/jcodings/transcode/EConv;
            1    5     1     i  I

  public int putbackable();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.jcodings.transcode.EConv this
         0: .line 664
            aload 0 /* this */
            getfield org.jcodings.transcode.EConv.numTranscoders:I
            ifne 1
            iconst_0
            goto 2
      StackMap locals:
      StackMap stack:
         1: aload 0 /* this */
            getfield org.jcodings.transcode.EConv.elements:[Lorg/jcodings/transcode/EConv$EConvElement;
            iconst_0
            aaload
            getfield org.jcodings.transcode.EConv$EConvElement.transcoding:Lorg/jcodings/transcode/Transcoding;
            getfield org.jcodings.transcode.Transcoding.readAgainLength:I
      StackMap locals:
      StackMap stack: int
         2: ireturn
        end local 0 // org.jcodings.transcode.EConv this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lorg/jcodings/transcode/EConv;

  public void putback(byte[], int, int);
    descriptor: ([BII)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=5, args_size=4
        start local 0 // org.jcodings.transcode.EConv this
        start local 1 // byte[] bytes
        start local 2 // int p
        start local 3 // int n
         0: .line 669
            aload 0 /* this */
            getfield org.jcodings.transcode.EConv.numTranscoders:I
            ifeq 1
            iload 3 /* n */
            ifne 2
      StackMap locals:
      StackMap stack:
         1: return
         2: .line 670
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.jcodings.transcode.EConv.elements:[Lorg/jcodings/transcode/EConv$EConvElement;
            iconst_0
            aaload
            getfield org.jcodings.transcode.EConv$EConvElement.transcoding:Lorg/jcodings/transcode/Transcoding;
            astore 4 /* transcoding */
        start local 4 // org.jcodings.transcode.Transcoding transcoding
         3: .line 671
            aload 4 /* transcoding */
            getfield org.jcodings.transcode.Transcoding.readBuf:[B
            aload 4 /* transcoding */
            getfield org.jcodings.transcode.Transcoding.recognizedLength:I
            aload 4 /* transcoding */
            getfield org.jcodings.transcode.Transcoding.readAgainLength:I
            iadd
            iload 3 /* n */
            isub
            aload 1 /* bytes */
            iload 2 /* p */
            iload 3 /* n */
            invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
         4: .line 672
            aload 4 /* transcoding */
            dup
            getfield org.jcodings.transcode.Transcoding.readAgainLength:I
            iload 3 /* n */
            isub
            putfield org.jcodings.transcode.Transcoding.readAgainLength:I
         5: .line 673
            return
        end local 4 // org.jcodings.transcode.Transcoding transcoding
        end local 3 // int n
        end local 2 // int p
        end local 1 // byte[] bytes
        end local 0 // org.jcodings.transcode.EConv this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    6     0         this  Lorg/jcodings/transcode/EConv;
            0    6     1        bytes  [B
            0    6     2            p  I
            0    6     3            n  I
            3    6     4  transcoding  Lorg/jcodings/transcode/Transcoding;
    MethodParameters:
       Name  Flags
      bytes  
      p      
      n      

  public boolean addConverter(byte[], byte[], int);
    descriptor: ([B[BI)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=6, args_size=4
        start local 0 // org.jcodings.transcode.EConv this
        start local 1 // byte[] source
        start local 2 // byte[] destination
        start local 3 // int n
         0: .line 677
            aload 0 /* this */
            getfield org.jcodings.transcode.EConv.started:Z
            ifeq 1
            iconst_0
            ireturn
         1: .line 678
      StackMap locals:
      StackMap stack:
            aload 1 /* source */
            aload 2 /* destination */
            invokestatic org.jcodings.transcode.TranscoderDB.getEntry:([B[B)Lorg/jcodings/transcode/TranscoderDB$Entry;
            astore 4 /* entry */
        start local 4 // org.jcodings.transcode.TranscoderDB$Entry entry
         2: .line 679
            aload 4 /* entry */
            ifnonnull 3
            iconst_0
            ireturn
         3: .line 680
      StackMap locals: org.jcodings.transcode.TranscoderDB$Entry
      StackMap stack:
            aload 4 /* entry */
            invokevirtual org.jcodings.transcode.TranscoderDB$Entry.getTranscoder:()Lorg/jcodings/transcode/Transcoder;
            astore 5 /* transcoder */
        start local 5 // org.jcodings.transcode.Transcoder transcoder
         4: .line 681
            aload 5 /* transcoder */
            ifnonnull 5
            iconst_0
            ireturn
         5: .line 682
      StackMap locals: org.jcodings.transcode.Transcoder
      StackMap stack:
            aload 0 /* this */
            aload 5 /* transcoder */
            iload 3 /* n */
            invokevirtual org.jcodings.transcode.EConv.addTranscoderAt:(Lorg/jcodings/transcode/Transcoder;I)V
         6: .line 683
            iconst_1
            ireturn
        end local 5 // org.jcodings.transcode.Transcoder transcoder
        end local 4 // org.jcodings.transcode.TranscoderDB$Entry entry
        end local 3 // int n
        end local 2 // byte[] destination
        end local 1 // byte[] source
        end local 0 // org.jcodings.transcode.EConv this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    7     0         this  Lorg/jcodings/transcode/EConv;
            0    7     1       source  [B
            0    7     2  destination  [B
            0    7     3            n  I
            2    7     4        entry  Lorg/jcodings/transcode/TranscoderDB$Entry;
            4    7     5   transcoder  Lorg/jcodings/transcode/Transcoder;
    MethodParameters:
             Name  Flags
      source       
      destination  
      n            

  boolean decorateAt(byte[], int);
    descriptor: ([BI)Z
    flags: (0x0000) 
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // org.jcodings.transcode.EConv this
        start local 1 // byte[] decorator
        start local 2 // int n
         0: .line 688
            aload 0 /* this */
            getstatic org.jcodings.transcode.EConv.NULL_STRING:[B
            aload 1 /* decorator */
            iload 2 /* n */
            invokevirtual org.jcodings.transcode.EConv.addConverter:([B[BI)Z
            ireturn
        end local 2 // int n
        end local 1 // byte[] decorator
        end local 0 // org.jcodings.transcode.EConv this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    1     0       this  Lorg/jcodings/transcode/EConv;
            0    1     1  decorator  [B
            0    1     2          n  I
    MethodParameters:
           Name  Flags
      decorator  
      n          

  boolean decorateAtFirst(byte[]);
    descriptor: ([B)Z
    flags: (0x0000) 
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // org.jcodings.transcode.EConv this
        start local 1 // byte[] decorator
         0: .line 694
            aload 0 /* this */
            getfield org.jcodings.transcode.EConv.numTranscoders:I
            ifne 1
            aload 0 /* this */
            aload 1 /* decorator */
            iconst_0
            invokevirtual org.jcodings.transcode.EConv.decorateAt:([BI)Z
            ireturn
         1: .line 695
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.jcodings.transcode.EConv.elements:[Lorg/jcodings/transcode/EConv$EConvElement;
            iconst_0
            aaload
            getfield org.jcodings.transcode.EConv$EConvElement.transcoding:Lorg/jcodings/transcode/Transcoding;
            getfield org.jcodings.transcode.Transcoding.transcoder:Lorg/jcodings/transcode/Transcoder;
            astore 2 /* transcoder */
        start local 2 // org.jcodings.transcode.Transcoder transcoder
         2: .line 697
            aload 2 /* transcoder */
            getfield org.jcodings.transcode.Transcoder.source:[B
            aload 2 /* transcoder */
            getfield org.jcodings.transcode.Transcoder.destination:[B
            invokestatic org.jcodings.transcode.EConv.decorator:([B[B)Z
            ifne 4
            aload 2 /* transcoder */
            getfield org.jcodings.transcode.Transcoder.compatibility:Lorg/jcodings/transcode/AsciiCompatibility;
            invokevirtual org.jcodings.transcode.AsciiCompatibility.isDecoder:()Z
            ifeq 4
         3: .line 698
            aload 0 /* this */
            aload 1 /* decorator */
            iconst_1
            invokevirtual org.jcodings.transcode.EConv.decorateAt:([BI)Z
            ireturn
         4: .line 701
      StackMap locals: org.jcodings.transcode.Transcoder
      StackMap stack:
            aload 0 /* this */
            aload 1 /* decorator */
            iconst_0
            invokevirtual org.jcodings.transcode.EConv.decorateAt:([BI)Z
            ireturn
        end local 2 // org.jcodings.transcode.Transcoder transcoder
        end local 1 // byte[] decorator
        end local 0 // org.jcodings.transcode.EConv this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    5     0        this  Lorg/jcodings/transcode/EConv;
            0    5     1   decorator  [B
            2    5     2  transcoder  Lorg/jcodings/transcode/Transcoder;
    MethodParameters:
           Name  Flags
      decorator  

  boolean decorateAtLast(byte[]);
    descriptor: ([B)Z
    flags: (0x0000) 
    Code:
      stack=4, locals=3, args_size=2
        start local 0 // org.jcodings.transcode.EConv this
        start local 1 // byte[] decorator
         0: .line 706
            aload 0 /* this */
            getfield org.jcodings.transcode.EConv.numTranscoders:I
            ifne 1
            aload 0 /* this */
            aload 1 /* decorator */
            iconst_0
            invokevirtual org.jcodings.transcode.EConv.decorateAt:([BI)Z
            ireturn
         1: .line 707
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.jcodings.transcode.EConv.elements:[Lorg/jcodings/transcode/EConv$EConvElement;
            aload 0 /* this */
            getfield org.jcodings.transcode.EConv.numTranscoders:I
            iconst_1
            isub
            aaload
            getfield org.jcodings.transcode.EConv$EConvElement.transcoding:Lorg/jcodings/transcode/Transcoding;
            getfield org.jcodings.transcode.Transcoding.transcoder:Lorg/jcodings/transcode/Transcoder;
            astore 2 /* transcoder */
        start local 2 // org.jcodings.transcode.Transcoder transcoder
         2: .line 709
            aload 2 /* transcoder */
            getfield org.jcodings.transcode.Transcoder.source:[B
            aload 2 /* transcoder */
            getfield org.jcodings.transcode.Transcoder.destination:[B
            invokestatic org.jcodings.transcode.EConv.decorator:([B[B)Z
            ifne 4
            aload 2 /* transcoder */
            getfield org.jcodings.transcode.Transcoder.compatibility:Lorg/jcodings/transcode/AsciiCompatibility;
            invokevirtual org.jcodings.transcode.AsciiCompatibility.isEncoder:()Z
            ifeq 4
         3: .line 710
            aload 0 /* this */
            aload 1 /* decorator */
            aload 0 /* this */
            getfield org.jcodings.transcode.EConv.numTranscoders:I
            iconst_1
            isub
            invokevirtual org.jcodings.transcode.EConv.decorateAt:([BI)Z
            ireturn
         4: .line 713
      StackMap locals: org.jcodings.transcode.Transcoder
      StackMap stack:
            aload 0 /* this */
            aload 1 /* decorator */
            aload 0 /* this */
            getfield org.jcodings.transcode.EConv.numTranscoders:I
            invokevirtual org.jcodings.transcode.EConv.decorateAt:([BI)Z
            ireturn
        end local 2 // org.jcodings.transcode.Transcoder transcoder
        end local 1 // byte[] decorator
        end local 0 // org.jcodings.transcode.EConv this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    5     0        this  Lorg/jcodings/transcode/EConv;
            0    5     1   decorator  [B
            2    5     2  transcoder  Lorg/jcodings/transcode/Transcoder;
    MethodParameters:
           Name  Flags
      decorator  

  public void binmode();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=7, args_size=1
        start local 0 // org.jcodings.transcode.EConv this
         0: .line 718
            iconst_3
            anewarray org.jcodings.transcode.Transcoder
            astore 1 /* transcoders */
        start local 1 // org.jcodings.transcode.Transcoder[] transcoders
         1: .line 719
            iconst_0
            istore 2 /* n */
        start local 2 // int n
         2: .line 720
            aload 0 /* this */
            getfield org.jcodings.transcode.EConv.flags:I
            sipush 256
            iand
            ifeq 5
         3: .line 721
            getstatic org.jcodings.transcode.EConv.NULL_STRING:[B
            ldc "universal_newline"
            invokevirtual java.lang.String.getBytes:()[B
            invokestatic org.jcodings.transcode.TranscoderDB.getEntry:([B[B)Lorg/jcodings/transcode/TranscoderDB$Entry;
            astore 3 /* entry */
        start local 3 // org.jcodings.transcode.TranscoderDB$Entry entry
         4: .line 722
            aload 3 /* entry */
            invokevirtual org.jcodings.transcode.TranscoderDB$Entry.getTranscoder:()Lorg/jcodings/transcode/Transcoder;
            ifnull 5
            aload 1 /* transcoders */
            iload 2 /* n */
            iinc 2 /* n */ 1
            aload 3 /* entry */
            invokevirtual org.jcodings.transcode.TranscoderDB$Entry.getTranscoder:()Lorg/jcodings/transcode/Transcoder;
            aastore
        end local 3 // org.jcodings.transcode.TranscoderDB$Entry entry
         5: .line 725
      StackMap locals: org.jcodings.transcode.Transcoder[] int
      StackMap stack:
            aload 0 /* this */
            getfield org.jcodings.transcode.EConv.flags:I
            sipush 4096
            iand
            ifeq 8
         6: .line 726
            getstatic org.jcodings.transcode.EConv.NULL_STRING:[B
            ldc "crlf_newline"
            invokevirtual java.lang.String.getBytes:()[B
            invokestatic org.jcodings.transcode.TranscoderDB.getEntry:([B[B)Lorg/jcodings/transcode/TranscoderDB$Entry;
            astore 3 /* entry */
        start local 3 // org.jcodings.transcode.TranscoderDB$Entry entry
         7: .line 727
            aload 3 /* entry */
            invokevirtual org.jcodings.transcode.TranscoderDB$Entry.getTranscoder:()Lorg/jcodings/transcode/Transcoder;
            ifnull 8
            aload 1 /* transcoders */
            iload 2 /* n */
            iinc 2 /* n */ 1
            aload 3 /* entry */
            invokevirtual org.jcodings.transcode.TranscoderDB$Entry.getTranscoder:()Lorg/jcodings/transcode/Transcoder;
            aastore
        end local 3 // org.jcodings.transcode.TranscoderDB$Entry entry
         8: .line 730
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.jcodings.transcode.EConv.flags:I
            sipush 8192
            iand
            ifeq 11
         9: .line 731
            getstatic org.jcodings.transcode.EConv.NULL_STRING:[B
            ldc "cr_newline"
            invokevirtual java.lang.String.getBytes:()[B
            invokestatic org.jcodings.transcode.TranscoderDB.getEntry:([B[B)Lorg/jcodings/transcode/TranscoderDB$Entry;
            astore 3 /* entry */
        start local 3 // org.jcodings.transcode.TranscoderDB$Entry entry
        10: .line 732
            aload 3 /* entry */
            invokevirtual org.jcodings.transcode.TranscoderDB$Entry.getTranscoder:()Lorg/jcodings/transcode/Transcoder;
            ifnull 11
            aload 1 /* transcoders */
            iload 2 /* n */
            iinc 2 /* n */ 1
            aload 3 /* entry */
            invokevirtual org.jcodings.transcode.TranscoderDB$Entry.getTranscoder:()Lorg/jcodings/transcode/Transcoder;
            aastore
        end local 3 // org.jcodings.transcode.TranscoderDB$Entry entry
        11: .line 735
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.jcodings.transcode.EConv.numTranscoders:I
            istore 3 /* nTrans */
        start local 3 // int nTrans
        12: .line 736
            iconst_0
            istore 4 /* j */
        start local 4 // int j
        13: .line 737
            iconst_0
            istore 5 /* i */
        start local 5 // int i
        14: goto 27
        15: .line 739
      StackMap locals: int int int
      StackMap stack:
            iconst_0
            istore 6 /* k */
        start local 6 // int k
        16: goto 19
        17: .line 740
      StackMap locals: int
      StackMap stack:
            aload 1 /* transcoders */
            iload 6 /* k */
            aaload
            aload 0 /* this */
            getfield org.jcodings.transcode.EConv.elements:[Lorg/jcodings/transcode/EConv$EConvElement;
            iload 5 /* i */
            aaload
            getfield org.jcodings.transcode.EConv$EConvElement.transcoding:Lorg/jcodings/transcode/Transcoding;
            getfield org.jcodings.transcode.Transcoding.transcoder:Lorg/jcodings/transcode/Transcoder;
            if_acmpne 18
            goto 20
        18: .line 739
      StackMap locals:
      StackMap stack:
            iinc 6 /* k */ 1
      StackMap locals:
      StackMap stack:
        19: iload 6 /* k */
            iload 2 /* n */
            if_icmplt 17
        20: .line 743
      StackMap locals:
      StackMap stack:
            iload 6 /* k */
            iload 2 /* n */
            if_icmpne 24
        21: .line 744
            aload 0 /* this */
            getfield org.jcodings.transcode.EConv.elements:[Lorg/jcodings/transcode/EConv$EConvElement;
            iload 4 /* j */
            aload 0 /* this */
            getfield org.jcodings.transcode.EConv.elements:[Lorg/jcodings/transcode/EConv$EConvElement;
            iload 5 /* i */
            aaload
            aastore
        22: .line 745
            iinc 4 /* j */ 1
        23: .line 746
            goto 26
        24: .line 747
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.jcodings.transcode.EConv.elements:[Lorg/jcodings/transcode/EConv$EConvElement;
            iload 5 /* i */
            aaload
            getfield org.jcodings.transcode.EConv$EConvElement.transcoding:Lorg/jcodings/transcode/Transcoding;
            invokevirtual org.jcodings.transcode.Transcoding.close:()V
        25: .line 748
            aload 0 /* this */
            dup
            getfield org.jcodings.transcode.EConv.numTranscoders:I
            iconst_1
            isub
            putfield org.jcodings.transcode.EConv.numTranscoders:I
        end local 6 // int k
        26: .line 737
      StackMap locals:
      StackMap stack:
            iinc 5 /* i */ 1
      StackMap locals:
      StackMap stack:
        27: iload 5 /* i */
            iload 3 /* nTrans */
            if_icmplt 15
        end local 5 // int i
        28: .line 752
            aload 0 /* this */
            dup
            getfield org.jcodings.transcode.EConv.flags:I
            sipush -16129
            iand
            putfield org.jcodings.transcode.EConv.flags:I
        29: .line 753
            return
        end local 4 // int j
        end local 3 // int nTrans
        end local 2 // int n
        end local 1 // org.jcodings.transcode.Transcoder[] transcoders
        end local 0 // org.jcodings.transcode.EConv this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   30     0         this  Lorg/jcodings/transcode/EConv;
            1   30     1  transcoders  [Lorg/jcodings/transcode/Transcoder;
            2   30     2            n  I
            4    5     3        entry  Lorg/jcodings/transcode/TranscoderDB$Entry;
            7    8     3        entry  Lorg/jcodings/transcode/TranscoderDB$Entry;
           10   11     3        entry  Lorg/jcodings/transcode/TranscoderDB$Entry;
           12   30     3       nTrans  I
           13   30     4            j  I
           14   28     5            i  I
           16   26     6            k  I

  public int makeReplacement();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=5, args_size=1
        start local 0 // org.jcodings.transcode.EConv this
         0: .line 760
            aload 0 /* this */
            getfield org.jcodings.transcode.EConv.replacementString:[B
            ifnull 1
            iconst_0
            ireturn
         1: .line 762
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.jcodings.transcode.EConv.encodingToInsertOutput:()[B
            astore 1 /* insEnc */
        start local 1 // byte[] insEnc
         2: .line 768
            aload 1 /* insEnc */
            arraylength
            ifeq 12
         3: .line 774
            aload 1 /* insEnc */
            ldc "UTF-8"
            invokevirtual java.lang.String.getBytes:()[B
            invokestatic org.jcodings.util.CaseInsensitiveBytesHash.caseInsensitiveEquals:([B[B)Z
            ifeq 8
         4: .line 775
            iconst_3
            istore 3 /* len */
        start local 3 // int len
         5: .line 776
            ldc "UTF-8"
            invokevirtual java.lang.String.getBytes:()[B
            astore 2 /* replEnc */
        start local 2 // byte[] replEnc
         6: .line 777
            iconst_3
            newarray 8
            dup
            iconst_0
            bipush -17
            bastore
            dup
            iconst_1
            bipush -65
            bastore
            dup
            iconst_2
            bipush -67
            bastore
            astore 4 /* replacement */
        start local 4 // byte[] replacement
         7: .line 778
            goto 15
        end local 4 // byte[] replacement
        end local 3 // int len
        end local 2 // byte[] replEnc
         8: .line 779
      StackMap locals: byte[]
      StackMap stack:
            iconst_1
            istore 3 /* len */
        start local 3 // int len
         9: .line 780
            ldc "US-ASCII"
            invokevirtual java.lang.String.getBytes:()[B
            astore 2 /* replEnc */
        start local 2 // byte[] replEnc
        10: .line 781
            iconst_1
            newarray 8
            dup
            iconst_0
            bipush 63
            bastore
            astore 4 /* replacement */
        start local 4 // byte[] replacement
        11: .line 783
            goto 15
        end local 4 // byte[] replacement
        end local 3 // int len
        end local 2 // byte[] replEnc
        12: .line 784
      StackMap locals:
      StackMap stack:
            iconst_1
            istore 3 /* len */
        start local 3 // int len
        13: .line 785
            getstatic org.jcodings.transcode.EConv.NULL_STRING:[B
            astore 2 /* replEnc */
        start local 2 // byte[] replEnc
        14: .line 786
            iconst_1
            newarray 8
            dup
            iconst_0
            bipush 63
            bastore
            astore 4 /* replacement */
        start local 4 // byte[] replacement
        15: .line 789
      StackMap locals: byte[] int byte[]
      StackMap stack:
            aload 0 /* this */
            aload 4 /* replacement */
            putfield org.jcodings.transcode.EConv.replacementString:[B
        16: .line 790
            aload 0 /* this */
            iload 3 /* len */
            putfield org.jcodings.transcode.EConv.replacementLength:I
        17: .line 791
            aload 0 /* this */
            aload 2 /* replEnc */
            putfield org.jcodings.transcode.EConv.replacementEncoding:[B
        18: .line 792
            iconst_0
            ireturn
        end local 4 // byte[] replacement
        end local 3 // int len
        end local 2 // byte[] replEnc
        end local 1 // byte[] insEnc
        end local 0 // org.jcodings.transcode.EConv this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   19     0         this  Lorg/jcodings/transcode/EConv;
            2   19     1       insEnc  [B
            6    8     2      replEnc  [B
           10   12     2      replEnc  [B
           14   19     2      replEnc  [B
            5    8     3          len  I
            9   12     3          len  I
           13   19     3          len  I
            7    8     4  replacement  [B
           11   12     4  replacement  [B
           15   19     4  replacement  [B

  public int setReplacement(byte[], int, int, byte[]);
    descriptor: ([BII[B)I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=7, locals=9, args_size=5
        start local 0 // org.jcodings.transcode.EConv this
        start local 1 // byte[] str
        start local 2 // int p
        start local 3 // int len
        start local 4 // byte[] encname
         0: .line 797
            aload 0 /* this */
            invokevirtual org.jcodings.transcode.EConv.encodingToInsertOutput:()[B
            astore 5 /* encname2 */
        start local 5 // byte[] encname2
         1: .line 803
            aload 5 /* encname2 */
            arraylength
            ifeq 2
            aload 4 /* encname */
            aload 5 /* encname2 */
            invokestatic org.jcodings.util.CaseInsensitiveBytesHash.caseInsensitiveEquals:([B[B)Z
            ifeq 7
         2: .line 804
      StackMap locals: byte[]
      StackMap stack:
            iload 3 /* len */
            newarray 8
            astore 6 /* str2 */
        start local 6 // byte[] str2
         3: .line 805
            aload 1 /* str */
            iload 2 /* p */
            aload 6 /* str2 */
            iconst_0
            iload 3 /* len */
            invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
         4: .line 806
            iload 3 /* len */
            istore 7 /* len2 */
        start local 7 // int len2
         5: .line 807
            aload 4 /* encname */
            astore 5 /* encname2 */
         6: .line 808
            goto 11
        end local 7 // int len2
        end local 6 // byte[] str2
         7: .line 809
      StackMap locals:
      StackMap stack:
            new org.jcodings.Ptr
            dup
            invokespecial org.jcodings.Ptr.<init>:()V
            astore 8 /* len2p */
        start local 8 // org.jcodings.Ptr len2p
         8: .line 810
            aload 4 /* encname */
            aload 5 /* encname2 */
            aload 1 /* str */
            iload 2 /* p */
            iload 3 /* len */
            aconst_null
            aload 8 /* len2p */
            invokestatic org.jcodings.transcode.EConv.allocateConvertedString:([B[B[BII[BLorg/jcodings/Ptr;)[B
            astore 6 /* str2 */
        start local 6 // byte[] str2
         9: .line 811
            aload 6 /* str2 */
            ifnonnull 10
            iconst_m1
            ireturn
        10: .line 812
      StackMap locals: org.jcodings.transcode.EConv byte[] int int byte[] byte[] byte[] top org.jcodings.Ptr
      StackMap stack:
            aload 8 /* len2p */
            getfield org.jcodings.Ptr.p:I
            istore 7 /* len2 */
        end local 8 // org.jcodings.Ptr len2p
        start local 7 // int len2
        11: .line 815
      StackMap locals: org.jcodings.transcode.EConv byte[] int int byte[] byte[] byte[] int
      StackMap stack:
            aload 0 /* this */
            aload 6 /* str2 */
            putfield org.jcodings.transcode.EConv.replacementString:[B
        12: .line 816
            aload 0 /* this */
            iload 7 /* len2 */
            putfield org.jcodings.transcode.EConv.replacementLength:I
        13: .line 817
            aload 0 /* this */
            aload 5 /* encname2 */
            putfield org.jcodings.transcode.EConv.replacementEncoding:[B
        14: .line 818
            iconst_0
            ireturn
        end local 7 // int len2
        end local 6 // byte[] str2
        end local 5 // byte[] encname2
        end local 4 // byte[] encname
        end local 3 // int len
        end local 2 // int p
        end local 1 // byte[] str
        end local 0 // org.jcodings.transcode.EConv this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   15     0      this  Lorg/jcodings/transcode/EConv;
            0   15     1       str  [B
            0   15     2         p  I
            0   15     3       len  I
            0   15     4   encname  [B
            1   15     5  encname2  [B
            3    7     6      str2  [B
            9   15     6      str2  [B
            5    7     7      len2  I
           11   15     7      len2  I
            8   11     8     len2p  Lorg/jcodings/Ptr;
    MethodParameters:
         Name  Flags
      str      
      p        
      len      
      encname  

  int outputReplacementCharacter();
    descriptor: ()I
    flags: (0x0000) 
    Code:
      stack=5, locals=1, args_size=1
        start local 0 // org.jcodings.transcode.EConv this
         0: .line 823
            aload 0 /* this */
            invokevirtual org.jcodings.transcode.EConv.makeReplacement:()I
            iconst_m1
            if_icmpne 1
            iconst_m1
            ireturn
         1: .line 824
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 0 /* this */
            getfield org.jcodings.transcode.EConv.replacementString:[B
            iconst_0
            aload 0 /* this */
            getfield org.jcodings.transcode.EConv.replacementLength:I
            aload 0 /* this */
            getfield org.jcodings.transcode.EConv.replacementEncoding:[B
            invokevirtual org.jcodings.transcode.EConv.insertOutput:([BII[B)I
            iconst_m1
            if_icmpne 2
            iconst_m1
            ireturn
         2: .line 825
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
        end local 0 // org.jcodings.transcode.EConv this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lorg/jcodings/transcode/EConv;

  public java.lang.String toStringFull();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=3, args_size=1
        start local 0 // org.jcodings.transcode.EConv this
         0: .line 829
            new java.lang.StringBuilder
            dup
            ldc "EConv "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            new java.lang.String
            dup
            aload 0 /* this */
            getfield org.jcodings.transcode.EConv.source:[B
            invokespecial java.lang.String.<init>:([B)V
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc " => "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            new java.lang.String
            dup
            aload 0 /* this */
            getfield org.jcodings.transcode.EConv.destination:[B
            invokespecial java.lang.String.<init>:([B)V
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc "\n"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 1 /* s */
        start local 1 // java.lang.String s
         1: .line 830
            new java.lang.StringBuilder
            dup
            aload 1 /* s */
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc "  started: "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 0 /* this */
            getfield org.jcodings.transcode.EConv.started:Z
            invokevirtual java.lang.StringBuilder.append:(Z)Ljava/lang/StringBuilder;
            ldc "\n"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 1 /* s */
         2: .line 831
            new java.lang.StringBuilder
            dup
            aload 1 /* s */
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc "  replacement string: "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 0 /* this */
            getfield org.jcodings.transcode.EConv.replacementString:[B
            ifnonnull 3
            ldc "null"
            goto 4
      StackMap locals: org.jcodings.transcode.EConv java.lang.String
      StackMap stack: java.lang.StringBuilder
         3: new java.lang.String
            dup
            aload 0 /* this */
            getfield org.jcodings.transcode.EConv.replacementString:[B
            iconst_0
            aload 0 /* this */
            getfield org.jcodings.transcode.EConv.replacementLength:I
            invokespecial java.lang.String.<init>:([BII)V
      StackMap locals: org.jcodings.transcode.EConv java.lang.String
      StackMap stack: java.lang.StringBuilder java.lang.String
         4: invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc "\n"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 1 /* s */
         5: .line 832
            new java.lang.StringBuilder
            dup
            aload 1 /* s */
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc "  replacement encoding: "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 0 /* this */
            getfield org.jcodings.transcode.EConv.replacementEncoding:[B
            ifnonnull 6
            ldc "null"
            goto 7
      StackMap locals:
      StackMap stack: java.lang.StringBuilder
         6: new java.lang.String
            dup
            aload 0 /* this */
            getfield org.jcodings.transcode.EConv.replacementEncoding:[B
            invokespecial java.lang.String.<init>:([B)V
      StackMap locals: org.jcodings.transcode.EConv java.lang.String
      StackMap stack: java.lang.StringBuilder java.lang.String
         7: invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc "\n"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 1 /* s */
         8: .line 833
            new java.lang.StringBuilder
            dup
            aload 1 /* s */
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc "\n"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 1 /* s */
         9: .line 834
            iconst_0
            istore 2 /* i */
        start local 2 // int i
        10: goto 13
        11: .line 835
      StackMap locals: int
      StackMap stack:
            new java.lang.StringBuilder
            dup
            aload 1 /* s */
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc "  element "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            iload 2 /* i */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            ldc ": "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 0 /* this */
            getfield org.jcodings.transcode.EConv.elements:[Lorg/jcodings/transcode/EConv$EConvElement;
            iload 2 /* i */
            aaload
            invokevirtual org.jcodings.transcode.EConv$EConvElement.toString:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc "\n"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 1 /* s */
        12: .line 834
            iinc 2 /* i */ 1
      StackMap locals:
      StackMap stack:
        13: iload 2 /* i */
            aload 0 /* this */
            getfield org.jcodings.transcode.EConv.numTranscoders:I
            if_icmplt 11
        end local 2 // int i
        14: .line 838
            new java.lang.StringBuilder
            dup
            aload 1 /* s */
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc "\n"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 1 /* s */
        15: .line 839
            new java.lang.StringBuilder
            dup
            aload 1 /* s */
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc "  lastTranscoding: "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 0 /* this */
            getfield org.jcodings.transcode.EConv.lastTranscoding:Lorg/jcodings/transcode/Transcoding;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            ldc "\n"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 1 /* s */
        16: .line 840
            new java.lang.StringBuilder
            dup
            aload 1 /* s */
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc "  last error: "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 0 /* this */
            getfield org.jcodings.transcode.EConv.lastError:Lorg/jcodings/transcode/EConv$LastError;
            ifnonnull 17
            ldc "null"
            goto 18
      StackMap locals: org.jcodings.transcode.EConv java.lang.String
      StackMap stack: java.lang.StringBuilder
        17: aload 0 /* this */
            getfield org.jcodings.transcode.EConv.lastError:Lorg/jcodings/transcode/EConv$LastError;
            invokevirtual org.jcodings.transcode.EConv$LastError.toString:()Ljava/lang/String;
      StackMap locals: org.jcodings.transcode.EConv java.lang.String
      StackMap stack: java.lang.StringBuilder java.lang.String
        18: invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 1 /* s */
        19: .line 842
            aload 1 /* s */
            areturn
        end local 1 // java.lang.String s
        end local 0 // org.jcodings.transcode.EConv this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   20     0  this  Lorg/jcodings/transcode/EConv;
            1   20     1     s  Ljava/lang/String;
           10   14     2     i  I

  public boolean equals(java.lang.Object);
    descriptor: (Ljava/lang/Object;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=5, args_size=2
        start local 0 // org.jcodings.transcode.EConv this
        start local 1 // java.lang.Object other
         0: .line 848
            aload 1 /* other */
            instanceof org.jcodings.transcode.EConv
            ifne 1
            iconst_0
            ireturn
         1: .line 850
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            astore 2 /* ec1 */
        start local 2 // org.jcodings.transcode.EConv ec1
         2: .line 851
            aload 1 /* other */
            checkcast org.jcodings.transcode.EConv
            astore 3 /* ec2 */
        start local 3 // org.jcodings.transcode.EConv ec2
         3: .line 854
            aload 3 /* ec2 */
            ifnonnull 4
            iconst_0
            ireturn
         4: .line 855
      StackMap locals: org.jcodings.transcode.EConv org.jcodings.transcode.EConv
      StackMap stack:
            aload 2 /* ec1 */
            getfield org.jcodings.transcode.EConv.source:[B
            aload 3 /* ec2 */
            getfield org.jcodings.transcode.EConv.source:[B
            if_acmpeq 7
         5: .line 856
            aload 2 /* ec1 */
            getfield org.jcodings.transcode.EConv.source:[B
            aload 3 /* ec2 */
            getfield org.jcodings.transcode.EConv.source:[B
            invokestatic java.util.Arrays.equals:([B[B)Z
            ifne 7
         6: .line 857
            iconst_0
            ireturn
         7: .line 858
      StackMap locals:
      StackMap stack:
            aload 2 /* ec1 */
            getfield org.jcodings.transcode.EConv.destination:[B
            aload 3 /* ec2 */
            getfield org.jcodings.transcode.EConv.destination:[B
            if_acmpeq 10
         8: .line 859
            aload 2 /* ec1 */
            getfield org.jcodings.transcode.EConv.destination:[B
            aload 3 /* ec2 */
            getfield org.jcodings.transcode.EConv.destination:[B
            invokestatic java.util.Arrays.equals:([B[B)Z
            ifne 10
         9: .line 860
            iconst_0
            ireturn
        10: .line 861
      StackMap locals:
      StackMap stack:
            aload 2 /* ec1 */
            getfield org.jcodings.transcode.EConv.flags:I
            aload 3 /* ec2 */
            getfield org.jcodings.transcode.EConv.flags:I
            if_icmpeq 11
            iconst_0
            ireturn
        11: .line 862
      StackMap locals:
      StackMap stack:
            aload 2 /* ec1 */
            getfield org.jcodings.transcode.EConv.replacementEncoding:[B
            aload 3 /* ec2 */
            getfield org.jcodings.transcode.EConv.replacementEncoding:[B
            if_acmpeq 14
        12: .line 863
            aload 2 /* ec1 */
            getfield org.jcodings.transcode.EConv.replacementEncoding:[B
            aload 3 /* ec2 */
            getfield org.jcodings.transcode.EConv.replacementEncoding:[B
            invokestatic java.util.Arrays.equals:([B[B)Z
            ifne 14
        13: .line 864
            iconst_0
            ireturn
        14: .line 865
      StackMap locals:
      StackMap stack:
            aload 2 /* ec1 */
            getfield org.jcodings.transcode.EConv.replacementLength:I
            aload 3 /* ec2 */
            getfield org.jcodings.transcode.EConv.replacementLength:I
            if_icmpeq 15
            iconst_0
            ireturn
        15: .line 866
      StackMap locals:
      StackMap stack:
            aload 2 /* ec1 */
            getfield org.jcodings.transcode.EConv.replacementString:[B
            aload 3 /* ec2 */
            getfield org.jcodings.transcode.EConv.replacementString:[B
            if_acmpeq 18
        16: .line 867
            aload 2 /* ec1 */
            getfield org.jcodings.transcode.EConv.replacementString:[B
            aload 3 /* ec2 */
            getfield org.jcodings.transcode.EConv.replacementString:[B
            aload 3 /* ec2 */
            getfield org.jcodings.transcode.EConv.replacementLength:I
            invokestatic org.jcodings.transcode.EConv.memcmp:([B[BI)Z
            ifne 18
        17: .line 868
            iconst_0
            ireturn
        18: .line 870
      StackMap locals:
      StackMap stack:
            aload 2 /* ec1 */
            getfield org.jcodings.transcode.EConv.numTranscoders:I
            aload 3 /* ec2 */
            getfield org.jcodings.transcode.EConv.numTranscoders:I
            if_icmpeq 19
            iconst_0
            ireturn
        19: .line 871
      StackMap locals:
      StackMap stack:
            iconst_0
            istore 4 /* i */
        start local 4 // int i
        20: goto 24
        21: .line 872
      StackMap locals: int
      StackMap stack:
            aload 2 /* ec1 */
            getfield org.jcodings.transcode.EConv.elements:[Lorg/jcodings/transcode/EConv$EConvElement;
            iload 4 /* i */
            aaload
            getfield org.jcodings.transcode.EConv$EConvElement.transcoding:Lorg/jcodings/transcode/Transcoding;
            getfield org.jcodings.transcode.Transcoding.transcoder:Lorg/jcodings/transcode/Transcoder;
            aload 3 /* ec2 */
            getfield org.jcodings.transcode.EConv.elements:[Lorg/jcodings/transcode/EConv$EConvElement;
            iload 4 /* i */
            aaload
            getfield org.jcodings.transcode.EConv$EConvElement.transcoding:Lorg/jcodings/transcode/Transcoding;
            getfield org.jcodings.transcode.Transcoding.transcoder:Lorg/jcodings/transcode/Transcoder;
            if_acmpeq 23
        22: .line 873
            iconst_0
            ireturn
        23: .line 871
      StackMap locals:
      StackMap stack:
            iinc 4 /* i */ 1
      StackMap locals:
      StackMap stack:
        24: iload 4 /* i */
            aload 2 /* ec1 */
            getfield org.jcodings.transcode.EConv.numTranscoders:I
            if_icmplt 21
        25: .line 875
            iconst_1
            ireturn
        end local 4 // int i
        end local 3 // org.jcodings.transcode.EConv ec2
        end local 2 // org.jcodings.transcode.EConv ec1
        end local 1 // java.lang.Object other
        end local 0 // org.jcodings.transcode.EConv this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0   26     0   this  Lorg/jcodings/transcode/EConv;
            0   26     1  other  Ljava/lang/Object;
            2   26     2    ec1  Lorg/jcodings/transcode/EConv;
            3   26     3    ec2  Lorg/jcodings/transcode/EConv;
           20   26     4      i  I
    MethodParameters:
       Name  Flags
      other  

  private static boolean memcmp(byte[], byte[], int);
    descriptor: ([B[BI)Z
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=3, locals=4, args_size=3
        start local 0 // byte[] a
        start local 1 // byte[] b
        start local 2 // int len
         0: .line 879
            iconst_0
            istore 3 /* i */
        start local 3 // int i
         1: goto 4
         2: .line 880
      StackMap locals: int
      StackMap stack:
            aload 0 /* a */
            iload 3 /* i */
            baload
            aload 1 /* b */
            iload 3 /* i */
            baload
            if_icmpeq 3
            iconst_0
            ireturn
         3: .line 879
      StackMap locals:
      StackMap stack:
            iinc 3 /* i */ 1
      StackMap locals:
      StackMap stack:
         4: iload 3 /* i */
            iload 2 /* len */
            if_icmplt 2
        end local 3 // int i
         5: .line 882
            iconst_1
            ireturn
        end local 2 // int len
        end local 1 // byte[] b
        end local 0 // byte[] a
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    6     0     a  [B
            0    6     1     b  [B
            0    6     2   len  I
            1    5     3     i  I
    MethodParameters:
      Name  Flags
      a     
      b     
      len   

  static int[] $SWITCH_TABLE$org$jcodings$transcode$EConvResult();
    descriptor: ()[I
    flags: (0x1008) ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=3, locals=1, args_size=0
         0: .line 31
            getstatic org.jcodings.transcode.EConv.$SWITCH_TABLE$org$jcodings$transcode$EConvResult:[I
            dup
            ifnull 1
            areturn
      StackMap locals:
      StackMap stack: int[]
         1: pop
            invokestatic org.jcodings.transcode.EConvResult.values:()[Lorg/jcodings/transcode/EConvResult;
            arraylength
            newarray 10
            astore 0
         2: aload 0
            getstatic org.jcodings.transcode.EConvResult.AfterOutput:Lorg/jcodings/transcode/EConvResult;
            invokevirtual org.jcodings.transcode.EConvResult.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 org.jcodings.transcode.EConvResult.DestinationBufferFull:Lorg/jcodings/transcode/EConvResult;
            invokevirtual org.jcodings.transcode.EConvResult.ordinal:()I
            iconst_3
            iastore
         6: goto 8
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
         7: pop
      StackMap locals:
      StackMap stack:
         8: aload 0
            getstatic org.jcodings.transcode.EConvResult.Finished:Lorg/jcodings/transcode/EConvResult;
            invokevirtual org.jcodings.transcode.EConvResult.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 org.jcodings.transcode.EConvResult.IncompleteInput:Lorg/jcodings/transcode/EConvResult;
            invokevirtual org.jcodings.transcode.EConvResult.ordinal:()I
            bipush 7
            iastore
        12: goto 14
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        13: pop
      StackMap locals:
      StackMap stack:
        14: aload 0
            getstatic org.jcodings.transcode.EConvResult.InvalidByteSequence:Lorg/jcodings/transcode/EConvResult;
            invokevirtual org.jcodings.transcode.EConvResult.ordinal:()I
            iconst_1
            iastore
        15: goto 17
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        16: pop
      StackMap locals:
      StackMap stack:
        17: aload 0
            getstatic org.jcodings.transcode.EConvResult.SourceBufferEmpty:Lorg/jcodings/transcode/EConvResult;
            invokevirtual org.jcodings.transcode.EConvResult.ordinal:()I
            iconst_4
            iastore
        18: goto 20
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        19: pop
      StackMap locals:
      StackMap stack:
        20: aload 0
            getstatic org.jcodings.transcode.EConvResult.UndefinedConversion:Lorg/jcodings/transcode/EConvResult;
            invokevirtual org.jcodings.transcode.EConvResult.ordinal:()I
            iconst_2
            iastore
        21: goto 23
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        22: pop
      StackMap locals:
      StackMap stack:
        23: aload 0
            dup
            putstatic org.jcodings.transcode.EConv.$SWITCH_TABLE$org$jcodings$transcode$EConvResult:[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
          20    21      22  Class java.lang.NoSuchFieldError
}
SourceFile: "EConv.java"
NestMembers:
  org.jcodings.transcode.EConv$EConvElement  org.jcodings.transcode.EConv$LastError
InnerClasses:
  public final EConvElement = org.jcodings.transcode.EConv$EConvElement of org.jcodings.transcode.EConv
  public final LastError = org.jcodings.transcode.EConv$LastError of org.jcodings.transcode.EConv
  public final Entry = org.jcodings.transcode.TranscoderDB$Entry of org.jcodings.transcode.TranscoderDB