public class org.jruby.util.io.EncodingUtils
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: org.jruby.util.io.EncodingUtils
  super_class: java.lang.Object
{
  public static final int ECONV_DEFAULT_NEWLINE_DECORATOR;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL

  public static final int DEFAULT_TEXTMODE;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL

  public static final int TEXTMODE_NEWLINE_DECORATOR_ON_WRITE;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL

  private static final byte[] NULL_BYTE_ARRAY;
    descriptor: [B
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  static final int VMODE;
    descriptor: I
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: 0

  static final int PERM;
    descriptor: I
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: 1

  public static final org.jruby.util.io.EncodingUtils$ResizeFunction strTranscodingResize;
    descriptor: Lorg/jruby/util/io/EncodingUtils$ResizeFunction;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL

  private static final org.jruby.util.io.EncodingUtils$AbstractTranscodeFallback HASH_FALLBACK;
    descriptor: Lorg/jruby/util/io/EncodingUtils$AbstractTranscodeFallback;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  private static final org.jruby.util.io.EncodingUtils$AbstractTranscodeFallback PROC_FALLBACK;
    descriptor: Lorg/jruby/util/io/EncodingUtils$AbstractTranscodeFallback;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  private static final org.jruby.util.io.EncodingUtils$AbstractTranscodeFallback METHOD_FALLBACK;
    descriptor: Lorg/jruby/util/io/EncodingUtils$AbstractTranscodeFallback;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  private static final org.jruby.util.io.EncodingUtils$AbstractTranscodeFallback AREF_FALLBACK;
    descriptor: Lorg/jruby/util/io/EncodingUtils$AbstractTranscodeFallback;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  private static final org.jcodings.Encoding UTF16Dummy;
    descriptor: Lorg/jcodings/Encoding;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  private static final org.jcodings.Encoding UTF32Dummy;
    descriptor: Lorg/jcodings/Encoding;
    flags: (0x001a) ACC_PRIVATE, 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=2, locals=0, args_size=0
         0: .line 60
            getstatic org.jruby.platform.Platform.IS_WINDOWS:Z
            ifeq 1
            sipush 4096
            goto 2
      StackMap locals:
      StackMap stack:
         1: iconst_0
      StackMap locals:
      StackMap stack: int
         2: putstatic org.jruby.util.io.EncodingUtils.ECONV_DEFAULT_NEWLINE_DECORATOR:I
         3: .line 61
            getstatic org.jruby.platform.Platform.IS_WINDOWS:Z
            ifeq 4
            sipush 4096
            goto 5
      StackMap locals:
      StackMap stack:
         4: iconst_0
      StackMap locals:
      StackMap stack: int
         5: putstatic org.jruby.util.io.EncodingUtils.DEFAULT_TEXTMODE:I
         6: .line 62
            getstatic org.jruby.platform.Platform.IS_WINDOWS:Z
            ifeq 7
            sipush 4096
            goto 8
      StackMap locals:
      StackMap stack:
         7: iconst_0
      StackMap locals:
      StackMap stack: int
         8: putstatic org.jruby.util.io.EncodingUtils.TEXTMODE_NEWLINE_DECORATOR_ON_WRITE:I
         9: .line 64
            getstatic org.jruby.util.ByteList.NULL_ARRAY:[B
            putstatic org.jruby.util.io.EncodingUtils.NULL_BYTE_ARRAY:[B
        10: .line 1196
            new org.jruby.util.io.EncodingUtils$1
            dup
            invokespecial org.jruby.util.io.EncodingUtils$1.<init>:()V
            putstatic org.jruby.util.io.EncodingUtils.strTranscodingResize:Lorg/jruby/util/io/EncodingUtils$ResizeFunction;
        11: .line 1251
            new org.jruby.util.io.EncodingUtils$2
            dup
            invokespecial org.jruby.util.io.EncodingUtils$2.<init>:()V
            putstatic org.jruby.util.io.EncodingUtils.HASH_FALLBACK:Lorg/jruby/util/io/EncodingUtils$AbstractTranscodeFallback;
        12: .line 1258
            new org.jruby.util.io.EncodingUtils$3
            dup
            invokespecial org.jruby.util.io.EncodingUtils$3.<init>:()V
            putstatic org.jruby.util.io.EncodingUtils.PROC_FALLBACK:Lorg/jruby/util/io/EncodingUtils$AbstractTranscodeFallback;
        13: .line 1265
            new org.jruby.util.io.EncodingUtils$4
            dup
            invokespecial org.jruby.util.io.EncodingUtils$4.<init>:()V
            putstatic org.jruby.util.io.EncodingUtils.METHOD_FALLBACK:Lorg/jruby/util/io/EncodingUtils$AbstractTranscodeFallback;
        14: .line 1272
            new org.jruby.util.io.EncodingUtils$5
            dup
            invokespecial org.jruby.util.io.EncodingUtils$5.<init>:()V
            putstatic org.jruby.util.io.EncodingUtils.AREF_FALLBACK:Lorg/jruby/util/io/EncodingUtils$AbstractTranscodeFallback;
        15: .line 2104
            invokestatic org.jcodings.EncodingDB.getEncodings:()Lorg/jcodings/util/CaseInsensitiveBytesHash;
            ldc "UTF-16"
            invokevirtual java.lang.String.getBytes:()[B
            invokevirtual org.jcodings.util.CaseInsensitiveBytesHash.get:([B)Ljava/lang/Object;
            checkcast org.jcodings.EncodingDB$Entry
            invokevirtual org.jcodings.EncodingDB$Entry.getEncoding:()Lorg/jcodings/Encoding;
            putstatic org.jruby.util.io.EncodingUtils.UTF16Dummy:Lorg/jcodings/Encoding;
        16: .line 2105
            invokestatic org.jcodings.EncodingDB.getEncodings:()Lorg/jcodings/util/CaseInsensitiveBytesHash;
            ldc "UTF-32"
            invokevirtual java.lang.String.getBytes:()[B
            invokevirtual org.jcodings.util.CaseInsensitiveBytesHash.get:([B)Ljava/lang/Object;
            checkcast org.jcodings.EncodingDB$Entry
            invokevirtual org.jcodings.EncodingDB$Entry.getEncoding:()Lorg/jcodings/Encoding;
            putstatic org.jruby.util.io.EncodingUtils.UTF32Dummy:Lorg/jcodings/Encoding;
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public void <init>();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.jruby.util.io.EncodingUtils this
         0: .line 59
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
            return
        end local 0 // org.jruby.util.io.EncodingUtils this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/jruby/util/io/EncodingUtils;

  public static org.jcodings.Encoding rbToEncoding(org.jruby.runtime.ThreadContext, org.jruby.runtime.builtin.IRubyObject);
    descriptor: (Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jcodings/Encoding;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.jruby.runtime.ThreadContext context
        start local 1 // org.jruby.runtime.builtin.IRubyObject enc
         0: .line 68
            aload 1 /* enc */
            instanceof org.jruby.RubyEncoding
            ifeq 1
            aload 1 /* enc */
            checkcast org.jruby.RubyEncoding
            invokevirtual org.jruby.RubyEncoding.getEncoding:()Lorg/jcodings/Encoding;
            areturn
         1: .line 70
      StackMap locals:
      StackMap stack:
            aload 0 /* context */
            aload 1 /* enc */
            invokestatic org.jruby.util.io.EncodingUtils.toEncoding:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jcodings/Encoding;
            areturn
        end local 1 // org.jruby.runtime.builtin.IRubyObject enc
        end local 0 // org.jruby.runtime.ThreadContext context
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    2     0  context  Lorg/jruby/runtime/ThreadContext;
            0    2     1      enc  Lorg/jruby/runtime/builtin/IRubyObject;
    MethodParameters:
         Name  Flags
      context  
      enc      

  public static org.jcodings.Encoding toEncoding(org.jruby.runtime.ThreadContext, org.jruby.runtime.builtin.IRubyObject);
    descriptor: (Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jcodings/Encoding;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=4, args_size=2
        start local 0 // org.jruby.runtime.ThreadContext context
        start local 1 // org.jruby.runtime.builtin.IRubyObject enc
         0: .line 75
            aload 1 /* enc */
            invokeinterface org.jruby.runtime.builtin.IRubyObject.convertToString:()Lorg/jruby/RubyString;
            astore 2 /* encStr */
        start local 2 // org.jruby.RubyString encStr
         1: .line 76
            aload 2 /* encStr */
            invokevirtual org.jruby.RubyString.getEncoding:()Lorg/jcodings/Encoding;
            invokevirtual org.jcodings.Encoding.isAsciiCompatible:()Z
            ifne 3
         2: .line 77
            aload 0 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            ldc "invalid name encoding (non ASCII)"
            invokevirtual org.jruby.Ruby.newArgumentError:(Ljava/lang/String;)Lorg/jruby/exceptions/RaiseException;
            athrow
         3: .line 79
      StackMap locals: org.jruby.RubyString
      StackMap stack:
            aload 0 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            invokevirtual org.jruby.Ruby.getEncodingService:()Lorg/jruby/runtime/encoding/EncodingService;
            aload 2 /* encStr */
            invokevirtual org.jruby.runtime.encoding.EncodingService.getEncodingFromObject:(Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jcodings/Encoding;
            astore 3 /* idx */
        start local 3 // org.jcodings.Encoding idx
         4: .line 81
            aload 3 /* idx */
            areturn
        end local 3 // org.jcodings.Encoding idx
        end local 2 // org.jruby.RubyString encStr
        end local 1 // org.jruby.runtime.builtin.IRubyObject enc
        end local 0 // org.jruby.runtime.ThreadContext context
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    5     0  context  Lorg/jruby/runtime/ThreadContext;
            0    5     1      enc  Lorg/jruby/runtime/builtin/IRubyObject;
            1    5     2   encStr  Lorg/jruby/RubyString;
            4    5     3      idx  Lorg/jcodings/Encoding;
    MethodParameters:
         Name  Flags
      context  
      enc      

  public static org.jruby.runtime.builtin.IRubyObject[] openArgsToArgs(org.jruby.Ruby, org.jruby.runtime.builtin.IRubyObject, org.jruby.RubyHash);
    descriptor: (Lorg/jruby/Ruby;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/RubyHash;)[Lorg/jruby/runtime/builtin/IRubyObject;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=5, locals=7, args_size=3
        start local 0 // org.jruby.Ruby runtime
        start local 1 // org.jruby.runtime.builtin.IRubyObject firstElement
        start local 2 // org.jruby.RubyHash options
         0: .line 85
            aload 0 /* runtime */
            aload 2 /* options */
            ldc "open_args"
            invokestatic org.jruby.util.io.EncodingUtils.hashARef:(Lorg/jruby/Ruby;Lorg/jruby/runtime/builtin/IRubyObject;Ljava/lang/String;)Lorg/jruby/runtime/builtin/IRubyObject;
            astore 3 /* value */
        start local 3 // org.jruby.runtime.builtin.IRubyObject value
         1: .line 87
            aload 3 /* value */
            invokeinterface org.jruby.runtime.builtin.IRubyObject.isNil:()Z
            ifeq 2
            iconst_2
            anewarray org.jruby.runtime.builtin.IRubyObject
            dup
            iconst_0
            aload 1 /* firstElement */
            aastore
            dup
            iconst_1
            aload 2 /* options */
            aastore
            areturn
         2: .line 89
      StackMap locals: org.jruby.runtime.builtin.IRubyObject
      StackMap stack:
            aload 3 /* value */
            invokeinterface org.jruby.runtime.builtin.IRubyObject.convertToArray:()Lorg/jruby/RubyArray;
            astore 4 /* array */
        start local 4 // org.jruby.RubyArray array
         3: .line 91
            aload 4 /* array */
            invokevirtual org.jruby.RubyArray.size:()I
            anewarray org.jruby.runtime.builtin.IRubyObject
            astore 5 /* openArgs */
        start local 5 // org.jruby.runtime.builtin.IRubyObject[] openArgs
         4: .line 92
            aload 3 /* value */
            invokeinterface org.jruby.runtime.builtin.IRubyObject.convertToArray:()Lorg/jruby/RubyArray;
            aload 5 /* openArgs */
            invokevirtual org.jruby.RubyArray.toArray:([Ljava/lang/Object;)[Ljava/lang/Object;
            pop
         5: .line 93
            aload 5 /* openArgs */
            arraylength
            iconst_1
            iadd
            anewarray org.jruby.runtime.builtin.IRubyObject
            astore 6 /* args */
        start local 6 // org.jruby.runtime.builtin.IRubyObject[] args
         6: .line 95
            aload 6 /* args */
            iconst_0
            aload 1 /* firstElement */
            aastore
         7: .line 97
            aload 5 /* openArgs */
            iconst_0
            aload 6 /* args */
            iconst_1
            aload 5 /* openArgs */
            arraylength
            invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
         8: .line 99
            aload 6 /* args */
            areturn
        end local 6 // org.jruby.runtime.builtin.IRubyObject[] args
        end local 5 // org.jruby.runtime.builtin.IRubyObject[] openArgs
        end local 4 // org.jruby.RubyArray array
        end local 3 // org.jruby.runtime.builtin.IRubyObject value
        end local 2 // org.jruby.RubyHash options
        end local 1 // org.jruby.runtime.builtin.IRubyObject firstElement
        end local 0 // org.jruby.Ruby runtime
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    9     0       runtime  Lorg/jruby/Ruby;
            0    9     1  firstElement  Lorg/jruby/runtime/builtin/IRubyObject;
            0    9     2       options  Lorg/jruby/RubyHash;
            1    9     3         value  Lorg/jruby/runtime/builtin/IRubyObject;
            3    9     4         array  Lorg/jruby/RubyArray;
            4    9     5      openArgs  [Lorg/jruby/runtime/builtin/IRubyObject;
            6    9     6          args  [Lorg/jruby/runtime/builtin/IRubyObject;
    MethodParameters:
              Name  Flags
      runtime       
      firstElement  
      options       

  public static void extractBinmode(org.jruby.Ruby, org.jruby.runtime.builtin.IRubyObject, int[]);
    descriptor: (Lorg/jruby/Ruby;Lorg/jruby/runtime/builtin/IRubyObject;[I)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=5, args_size=3
        start local 0 // org.jruby.Ruby runtime
        start local 1 // org.jruby.runtime.builtin.IRubyObject optionsArg
        start local 2 // int[] fmode_p
         0: .line 105
            iconst_0
            istore 3 /* fmodeMask */
        start local 3 // int fmodeMask
         1: .line 107
            aload 0 /* runtime */
            aload 1 /* optionsArg */
            ldc "textmode"
            invokestatic org.jruby.util.io.EncodingUtils.hashARef:(Lorg/jruby/Ruby;Lorg/jruby/runtime/builtin/IRubyObject;Ljava/lang/String;)Lorg/jruby/runtime/builtin/IRubyObject;
            astore 4 /* v */
        start local 4 // org.jruby.runtime.builtin.IRubyObject v
         2: .line 108
            aload 4 /* v */
            invokeinterface org.jruby.runtime.builtin.IRubyObject.isNil:()Z
            ifne 3
            aload 4 /* v */
            invokeinterface org.jruby.runtime.builtin.IRubyObject.isTrue:()Z
            ifeq 3
            iload 3 /* fmodeMask */
            sipush 4096
            ior
            istore 3 /* fmodeMask */
         3: .line 110
      StackMap locals: int org.jruby.runtime.builtin.IRubyObject
      StackMap stack:
            aload 0 /* runtime */
            aload 1 /* optionsArg */
            ldc "binmode"
            invokestatic org.jruby.util.io.EncodingUtils.hashARef:(Lorg/jruby/Ruby;Lorg/jruby/runtime/builtin/IRubyObject;Ljava/lang/String;)Lorg/jruby/runtime/builtin/IRubyObject;
            astore 4 /* v */
         4: .line 111
            aload 4 /* v */
            invokeinterface org.jruby.runtime.builtin.IRubyObject.isNil:()Z
            ifne 5
            aload 4 /* v */
            invokeinterface org.jruby.runtime.builtin.IRubyObject.isTrue:()Z
            ifeq 5
            iload 3 /* fmodeMask */
            iconst_4
            ior
            istore 3 /* fmodeMask */
         5: .line 113
      StackMap locals:
      StackMap stack:
            iload 3 /* fmodeMask */
            iconst_4
            iand
            ifeq 7
            iload 3 /* fmodeMask */
            sipush 4096
            iand
            ifeq 7
         6: .line 114
            aload 0 /* runtime */
            ldc "both textmode and binmode specified"
            invokevirtual org.jruby.Ruby.newArgumentError:(Ljava/lang/String;)Lorg/jruby/exceptions/RaiseException;
            athrow
         7: .line 117
      StackMap locals:
      StackMap stack:
            aload 2 /* fmode_p */
            iconst_0
            dup2
            iaload
            iload 3 /* fmodeMask */
            ior
            iastore
         8: .line 118
            return
        end local 4 // org.jruby.runtime.builtin.IRubyObject v
        end local 3 // int fmodeMask
        end local 2 // int[] fmode_p
        end local 1 // org.jruby.runtime.builtin.IRubyObject optionsArg
        end local 0 // org.jruby.Ruby runtime
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    9     0     runtime  Lorg/jruby/Ruby;
            0    9     1  optionsArg  Lorg/jruby/runtime/builtin/IRubyObject;
            0    9     2     fmode_p  [I
            1    9     3   fmodeMask  I
            2    9     4           v  Lorg/jruby/runtime/builtin/IRubyObject;
    MethodParameters:
            Name  Flags
      runtime     
      optionsArg  
      fmode_p     

  private static org.jruby.runtime.builtin.IRubyObject hashARef(org.jruby.Ruby, org.jruby.runtime.builtin.IRubyObject, java.lang.String);
    descriptor: (Lorg/jruby/Ruby;Lorg/jruby/runtime/builtin/IRubyObject;Ljava/lang/String;)Lorg/jruby/runtime/builtin/IRubyObject;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=3, locals=4, args_size=3
        start local 0 // org.jruby.Ruby runtime
        start local 1 // org.jruby.runtime.builtin.IRubyObject hash
        start local 2 // java.lang.String symbol
         0: .line 121
            aload 1 /* hash */
            ifnull 1
            aload 1 /* hash */
            instanceof org.jruby.RubyHash
            ifne 2
      StackMap locals:
      StackMap stack:
         1: aload 0 /* runtime */
            invokevirtual org.jruby.Ruby.getNil:()Lorg/jruby/runtime/builtin/IRubyObject;
            areturn
         2: .line 123
      StackMap locals:
      StackMap stack:
            aload 1 /* hash */
            checkcast org.jruby.RubyHash
            aload 0 /* runtime */
            aload 2 /* symbol */
            invokevirtual org.jruby.Ruby.newSymbol:(Ljava/lang/String;)Lorg/jruby/RubySymbol;
            invokevirtual org.jruby.RubyHash.fastARef:(Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
            astore 3 /* value */
        start local 3 // org.jruby.runtime.builtin.IRubyObject value
         3: .line 125
            aload 3 /* value */
            ifnonnull 4
            aload 0 /* runtime */
            invokevirtual org.jruby.Ruby.getNil:()Lorg/jruby/runtime/builtin/IRubyObject;
            goto 5
      StackMap locals: org.jruby.runtime.builtin.IRubyObject
      StackMap stack:
         4: aload 3 /* value */
      StackMap locals:
      StackMap stack: org.jruby.runtime.builtin.IRubyObject
         5: areturn
        end local 3 // org.jruby.runtime.builtin.IRubyObject value
        end local 2 // java.lang.String symbol
        end local 1 // org.jruby.runtime.builtin.IRubyObject hash
        end local 0 // org.jruby.Ruby runtime
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    6     0  runtime  Lorg/jruby/Ruby;
            0    6     1     hash  Lorg/jruby/runtime/builtin/IRubyObject;
            0    6     2   symbol  Ljava/lang/String;
            3    6     3    value  Lorg/jruby/runtime/builtin/IRubyObject;
    MethodParameters:
         Name  Flags
      runtime  
      hash     
      symbol   

  public static org.jcodings.Encoding ascii8bitEncoding(org.jruby.Ruby);
    descriptor: (Lorg/jruby/Ruby;)Lorg/jcodings/Encoding;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.jruby.Ruby runtime
         0: .line 129
            aload 0 /* runtime */
            invokevirtual org.jruby.Ruby.getEncodingService:()Lorg/jruby/runtime/encoding/EncodingService;
            invokevirtual org.jruby.runtime.encoding.EncodingService.getAscii8bitEncoding:()Lorg/jcodings/Encoding;
            areturn
        end local 0 // org.jruby.Ruby runtime
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     0  runtime  Lorg/jruby/Ruby;
    MethodParameters:
         Name  Flags
      runtime  

  public static java.lang.Object vmodeVperm(org.jruby.runtime.builtin.IRubyObject, org.jruby.runtime.builtin.IRubyObject);
    descriptor: (Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;)Ljava/lang/Object;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // org.jruby.runtime.builtin.IRubyObject vmode
        start local 1 // org.jruby.runtime.builtin.IRubyObject vperm
         0: .line 136
            iconst_2
            anewarray org.jruby.runtime.builtin.IRubyObject
            dup
            iconst_0
            aload 0 /* vmode */
            aastore
            dup
            iconst_1
            aload 1 /* vperm */
            aastore
            areturn
        end local 1 // org.jruby.runtime.builtin.IRubyObject vperm
        end local 0 // org.jruby.runtime.builtin.IRubyObject vmode
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    1     0  vmode  Lorg/jruby/runtime/builtin/IRubyObject;
            0    1     1  vperm  Lorg/jruby/runtime/builtin/IRubyObject;
    MethodParameters:
       Name  Flags
      vmode  
      vperm  

  public static org.jruby.runtime.builtin.IRubyObject vmode(java.lang.Object);
    descriptor: (Ljava/lang/Object;)Lorg/jruby/runtime/builtin/IRubyObject;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // java.lang.Object vmodeVperm
         0: .line 140
            aload 0 /* vmodeVperm */
            checkcast org.jruby.runtime.builtin.IRubyObject[]
            iconst_0
            aaload
            areturn
        end local 0 // java.lang.Object vmodeVperm
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    1     0  vmodeVperm  Ljava/lang/Object;
    MethodParameters:
            Name  Flags
      vmodeVperm  

  public static void vmode(java.lang.Object, org.jruby.runtime.builtin.IRubyObject);
    descriptor: (Ljava/lang/Object;Lorg/jruby/runtime/builtin/IRubyObject;)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // java.lang.Object vmodeVperm
        start local 1 // org.jruby.runtime.builtin.IRubyObject vmode
         0: .line 144
            aload 0 /* vmodeVperm */
            checkcast org.jruby.runtime.builtin.IRubyObject[]
            iconst_0
            aload 1 /* vmode */
            aastore
         1: .line 145
            return
        end local 1 // org.jruby.runtime.builtin.IRubyObject vmode
        end local 0 // java.lang.Object vmodeVperm
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    2     0  vmodeVperm  Ljava/lang/Object;
            0    2     1       vmode  Lorg/jruby/runtime/builtin/IRubyObject;
    MethodParameters:
            Name  Flags
      vmodeVperm  
      vmode       

  public static org.jruby.runtime.builtin.IRubyObject vperm(java.lang.Object);
    descriptor: (Ljava/lang/Object;)Lorg/jruby/runtime/builtin/IRubyObject;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // java.lang.Object vmodeVperm
         0: .line 148
            aload 0 /* vmodeVperm */
            checkcast org.jruby.runtime.builtin.IRubyObject[]
            iconst_1
            aaload
            areturn
        end local 0 // java.lang.Object vmodeVperm
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    1     0  vmodeVperm  Ljava/lang/Object;
    MethodParameters:
            Name  Flags
      vmodeVperm  

  public static void vperm(java.lang.Object, org.jruby.runtime.builtin.IRubyObject);
    descriptor: (Ljava/lang/Object;Lorg/jruby/runtime/builtin/IRubyObject;)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // java.lang.Object vmodeVperm
        start local 1 // org.jruby.runtime.builtin.IRubyObject vperm
         0: .line 152
            aload 0 /* vmodeVperm */
            checkcast org.jruby.runtime.builtin.IRubyObject[]
            iconst_1
            aload 1 /* vperm */
            aastore
         1: .line 153
            return
        end local 1 // org.jruby.runtime.builtin.IRubyObject vperm
        end local 0 // java.lang.Object vmodeVperm
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    2     0  vmodeVperm  Ljava/lang/Object;
            0    2     1       vperm  Lorg/jruby/runtime/builtin/IRubyObject;
    MethodParameters:
            Name  Flags
      vmodeVperm  
      vperm       

  public static final int MODE_BTMODE(int, int, int, int);
    descriptor: (IIII)I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    Code:
      stack=2, locals=4, args_size=4
        start local 0 // int fmode
        start local 1 // int a
        start local 2 // int b
        start local 3 // int c
         0: .line 156
            iload 0 /* fmode */
            iconst_4
            iand
            ifeq 2
         1: .line 157
            iload 2 /* b */
            ireturn
         2: .line 158
      StackMap locals:
      StackMap stack:
            iload 0 /* fmode */
            sipush 4096
            iand
            ifeq 4
         3: .line 159
            iload 3 /* c */
            ireturn
         4: .line 161
      StackMap locals:
      StackMap stack:
            iload 1 /* a */
            ireturn
        end local 3 // int c
        end local 2 // int b
        end local 1 // int a
        end local 0 // int fmode
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    5     0  fmode  I
            0    5     1      a  I
            0    5     2      b  I
            0    5     3      c  I
    MethodParameters:
       Name  Flags
      fmode  
      a      
      b      
      c      

  public static int SET_UNIVERSAL_NEWLINE_DECORATOR_IF_ENC2(org.jcodings.Encoding, int);
    descriptor: (Lorg/jcodings/Encoding;I)I
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.jcodings.Encoding enc2
        start local 1 // int ecflags
         0: .line 165
            aload 0 /* enc2 */
            ifnull 2
            iload 1 /* ecflags */
            getstatic org.jruby.util.io.EncodingUtils.ECONV_DEFAULT_NEWLINE_DECORATOR:I
            iand
            ifeq 2
         1: .line 166
            iload 1 /* ecflags */
            sipush 256
            ior
            ireturn
         2: .line 168
      StackMap locals:
      StackMap stack:
            iload 1 /* ecflags */
            ireturn
        end local 1 // int ecflags
        end local 0 // org.jcodings.Encoding enc2
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    3     0     enc2  Lorg/jcodings/Encoding;
            0    3     1  ecflags  I
    MethodParameters:
         Name  Flags
      enc2     
      ecflags  

  public static void extractModeEncoding(org.jruby.runtime.ThreadContext, org.jruby.util.io.IOEncodable, java.lang.Object, org.jruby.runtime.builtin.IRubyObject, int[], int[]);
    descriptor: (Lorg/jruby/runtime/ThreadContext;Lorg/jruby/util/io/IOEncodable;Ljava/lang/Object;Lorg/jruby/runtime/builtin/IRubyObject;[I[I)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=6, locals=15, args_size=6
        start local 0 // org.jruby.runtime.ThreadContext context
        start local 1 // org.jruby.util.io.IOEncodable ioEncodable
        start local 2 // java.lang.Object vmodeAndVperm_p
        start local 3 // org.jruby.runtime.builtin.IRubyObject options
        start local 4 // int[] oflags_p
        start local 5 // int[] fmode_p
         0: .line 181
            aload 0 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            astore 6 /* runtime */
        start local 6 // org.jruby.Ruby runtime
         1: .line 183
            iconst_1
            anewarray org.jruby.runtime.builtin.IRubyObject
            dup
            iconst_0
            aload 0 /* context */
            getfield org.jruby.runtime.ThreadContext.nil:Lorg/jruby/runtime/builtin/IRubyObject;
            aastore
            astore 8 /* ecopts_p */
        start local 8 // org.jruby.runtime.builtin.IRubyObject[] ecopts_p
         2: .line 184
            iconst_0
            istore 9 /* hasEnc */
        start local 9 // boolean hasEnc
         3: iconst_0
            istore 10 /* hasVmode */
        start local 10 // boolean hasVmode
         4: .line 188
            aload 0 /* context */
            aload 1 /* ioEncodable */
            aconst_null
            aconst_null
            iconst_0
            invokestatic org.jruby.util.io.EncodingUtils.ioExtIntToEncs:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/util/io/IOEncodable;Lorg/jcodings/Encoding;Lorg/jcodings/Encoding;I)V
         5: .line 191
      StackMap locals: org.jruby.runtime.ThreadContext org.jruby.util.io.IOEncodable java.lang.Object org.jruby.runtime.builtin.IRubyObject int[] int[] org.jruby.Ruby top org.jruby.runtime.builtin.IRubyObject[] int int
      StackMap stack:
            aload 2 /* vmodeAndVperm_p */
            invokestatic org.jruby.util.io.EncodingUtils.vmode:(Ljava/lang/Object;)Lorg/jruby/runtime/builtin/IRubyObject;
            ifnull 6
            aload 2 /* vmodeAndVperm_p */
            invokestatic org.jruby.util.io.EncodingUtils.vmode:(Ljava/lang/Object;)Lorg/jruby/runtime/builtin/IRubyObject;
            invokeinterface org.jruby.runtime.builtin.IRubyObject.isNil:()Z
            ifeq 9
         6: .line 192
      StackMap locals:
      StackMap stack:
            aload 5 /* fmode_p */
            iconst_0
            iconst_1
            iastore
         7: .line 193
            aload 4 /* oflags_p */
            iconst_0
            getstatic org.jruby.util.io.ModeFlags.RDONLY:I
            iastore
         8: .line 194
            goto 27
         9: .line 195
      StackMap locals:
      StackMap stack:
            aload 0 /* context */
            aload 2 /* vmodeAndVperm_p */
            invokestatic org.jruby.util.io.EncodingUtils.vmode:(Ljava/lang/Object;)Lorg/jruby/runtime/builtin/IRubyObject;
            invokestatic org.jruby.util.TypeConverter.checkIntegerType:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
            astore 11 /* intmode */
        start local 11 // org.jruby.runtime.builtin.IRubyObject intmode
        10: .line 197
            aload 11 /* intmode */
            invokeinterface org.jruby.runtime.builtin.IRubyObject.isNil:()Z
            ifne 15
        11: .line 198
            aload 2 /* vmodeAndVperm_p */
            aload 11 /* intmode */
            invokestatic org.jruby.util.io.EncodingUtils.vmode:(Ljava/lang/Object;Lorg/jruby/runtime/builtin/IRubyObject;)V
        12: .line 199
            aload 4 /* oflags_p */
            iconst_0
            aload 11 /* intmode */
            invokestatic org.jruby.RubyNumeric.num2int:(Lorg/jruby/runtime/builtin/IRubyObject;)I
            iastore
        13: .line 200
            aload 5 /* fmode_p */
            iconst_0
            aload 4 /* oflags_p */
            iconst_0
            iaload
            invokestatic org.jruby.util.io.ModeFlags.getOpenFileFlagsFor:(I)I
            iastore
        14: .line 201
            goto 27
        15: .line 202
      StackMap locals: org.jruby.runtime.builtin.IRubyObject
      StackMap stack:
            aload 2 /* vmodeAndVperm_p */
            invokestatic org.jruby.util.io.EncodingUtils.vmode:(Ljava/lang/Object;)Lorg/jruby/runtime/builtin/IRubyObject;
            invokeinterface org.jruby.runtime.builtin.IRubyObject.convertToString:()Lorg/jruby/RubyString;
            invokevirtual org.jruby.RubyString.asJavaString:()Ljava/lang/String;
            astore 12 /* p */
        start local 12 // java.lang.String p
        16: .line 203
            aload 5 /* fmode_p */
            iconst_0
            aload 6 /* runtime */
            aload 12 /* p */
            invokestatic org.jruby.util.io.OpenFile.ioModestrFmode:(Lorg/jruby/Ruby;Ljava/lang/String;)I
            iastore
        17: .line 204
            aload 4 /* oflags_p */
            iconst_0
            aload 5 /* fmode_p */
            iconst_0
            iaload
            invokestatic org.jruby.util.io.OpenFile.ioFmodeOflags:(I)I
            iastore
        18: .line 205
            aload 12 /* p */
            ldc ":"
            invokevirtual java.lang.String.indexOf:(Ljava/lang/String;)I
            istore 13 /* colonSplit */
        start local 13 // int colonSplit
        19: .line 207
            iload 13 /* colonSplit */
            iconst_m1
            if_icmpeq 23
        20: .line 208
            iconst_1
            istore 9 /* hasEnc */
        21: .line 209
            aload 0 /* context */
            aload 1 /* ioEncodable */
            aload 12 /* p */
            iload 13 /* colonSplit */
            iconst_1
            iadd
            invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
            aload 5 /* fmode_p */
            invokestatic org.jruby.util.io.EncodingUtils.parseModeEncoding:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/util/io/IOEncodable;Ljava/lang/String;[I)V
        22: .line 210
            goto 27
        23: .line 211
      StackMap locals: java.lang.String int
      StackMap stack:
            aload 5 /* fmode_p */
            iconst_0
            iaload
            iconst_4
            iand
            ifeq 24
            aload 6 /* runtime */
            invokestatic org.jruby.util.io.EncodingUtils.ascii8bitEncoding:(Lorg/jruby/Ruby;)Lorg/jcodings/Encoding;
            goto 25
      StackMap locals:
      StackMap stack:
        24: aconst_null
      StackMap locals:
      StackMap stack: org.jcodings.Encoding
        25: astore 14 /* e */
        start local 14 // org.jcodings.Encoding e
        26: .line 212
            aload 0 /* context */
            aload 1 /* ioEncodable */
            aload 14 /* e */
            aconst_null
            aload 5 /* fmode_p */
            iconst_0
            iaload
            invokestatic org.jruby.util.io.EncodingUtils.ioExtIntToEncs:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/util/io/IOEncodable;Lorg/jcodings/Encoding;Lorg/jcodings/Encoding;I)V
        end local 14 // org.jcodings.Encoding e
        end local 13 // int colonSplit
        end local 12 // java.lang.String p
        end local 11 // org.jruby.runtime.builtin.IRubyObject intmode
        27: .line 217
      StackMap locals:
      StackMap stack:
            aload 3 /* options */
            ifnull 28
            aload 3 /* options */
            invokeinterface org.jruby.runtime.builtin.IRubyObject.isNil:()Z
            ifeq 40
        28: .line 218
      StackMap locals:
      StackMap stack:
            aload 5 /* fmode_p */
            iconst_0
            iaload
            iconst_1
            iand
            ifeq 30
        29: .line 219
            aload 5 /* fmode_p */
            iconst_0
            iaload
            getstatic org.jruby.util.io.EncodingUtils.ECONV_DEFAULT_NEWLINE_DECORATOR:I
            iconst_0
            sipush 256
            invokestatic org.jruby.util.io.EncodingUtils.MODE_BTMODE:(IIII)I
            goto 31
        30: .line 220
      StackMap locals:
      StackMap stack:
            iconst_0
        31: .line 218
      StackMap locals:
      StackMap stack: int
            istore 7 /* ecflags */
        start local 7 // int ecflags
        32: .line 221
            getstatic org.jruby.util.io.EncodingUtils.TEXTMODE_NEWLINE_DECORATOR_ON_WRITE:I
            ifeq 37
        33: .line 222
            iload 7 /* ecflags */
            aload 5 /* fmode_p */
            iconst_0
            iaload
            iconst_2
            iand
            ifeq 35
        34: .line 223
            aload 5 /* fmode_p */
            iconst_0
            iaload
            getstatic org.jruby.util.io.EncodingUtils.TEXTMODE_NEWLINE_DECORATOR_ON_WRITE:I
            iconst_0
            getstatic org.jruby.util.io.EncodingUtils.TEXTMODE_NEWLINE_DECORATOR_ON_WRITE:I
            invokestatic org.jruby.util.io.EncodingUtils.MODE_BTMODE:(IIII)I
            goto 36
        35: .line 224
      StackMap locals: org.jruby.runtime.ThreadContext org.jruby.util.io.IOEncodable java.lang.Object org.jruby.runtime.builtin.IRubyObject int[] int[] org.jruby.Ruby int org.jruby.runtime.builtin.IRubyObject[] int int
      StackMap stack: int
            iconst_0
      StackMap locals: org.jruby.runtime.ThreadContext org.jruby.util.io.IOEncodable java.lang.Object org.jruby.runtime.builtin.IRubyObject int[] int[] org.jruby.Ruby int org.jruby.runtime.builtin.IRubyObject[] int int
      StackMap stack: int int
        36: ior
            istore 7 /* ecflags */
        37: .line 226
      StackMap locals:
      StackMap stack:
            aload 1 /* ioEncodable */
            invokeinterface org.jruby.util.io.IOEncodable.getEnc2:()Lorg/jcodings/Encoding;
            iload 7 /* ecflags */
            invokestatic org.jruby.util.io.EncodingUtils.SET_UNIVERSAL_NEWLINE_DECORATOR_IF_ENC2:(Lorg/jcodings/Encoding;I)I
            istore 7 /* ecflags */
        38: .line 227
            aload 8 /* ecopts_p */
            iconst_0
            aload 0 /* context */
            getfield org.jruby.runtime.ThreadContext.nil:Lorg/jruby/runtime/builtin/IRubyObject;
            aastore
        39: .line 228
            goto 83
        end local 7 // int ecflags
        40: .line 229
      StackMap locals: org.jruby.runtime.ThreadContext org.jruby.util.io.IOEncodable java.lang.Object org.jruby.runtime.builtin.IRubyObject int[] int[] org.jruby.Ruby top org.jruby.runtime.builtin.IRubyObject[] int int
      StackMap stack:
            iload 10 /* hasVmode */
            ifne 48
        41: .line 230
            aload 3 /* options */
            checkcast org.jruby.RubyHash
            aload 0 /* context */
            aload 6 /* runtime */
            ldc "mode"
            invokevirtual org.jruby.Ruby.newSymbol:(Ljava/lang/String;)Lorg/jruby/RubySymbol;
            invokevirtual org.jruby.RubyHash.op_aref:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
            astore 12 /* v */
        start local 12 // org.jruby.runtime.builtin.IRubyObject v
        42: .line 231
            aload 12 /* v */
            invokeinterface org.jruby.runtime.builtin.IRubyObject.isNil:()Z
            ifne 48
        43: .line 232
            aload 2 /* vmodeAndVperm_p */
            invokestatic org.jruby.util.io.EncodingUtils.vmode:(Ljava/lang/Object;)Lorg/jruby/runtime/builtin/IRubyObject;
            ifnull 45
            aload 2 /* vmodeAndVperm_p */
            invokestatic org.jruby.util.io.EncodingUtils.vmode:(Ljava/lang/Object;)Lorg/jruby/runtime/builtin/IRubyObject;
            invokeinterface org.jruby.runtime.builtin.IRubyObject.isNil:()Z
            ifne 45
        44: .line 233
            aload 6 /* runtime */
            ldc "mode specified twice"
            invokevirtual org.jruby.Ruby.newArgumentError:(Ljava/lang/String;)Lorg/jruby/exceptions/RaiseException;
            athrow
        45: .line 235
      StackMap locals: org.jruby.runtime.ThreadContext org.jruby.util.io.IOEncodable java.lang.Object org.jruby.runtime.builtin.IRubyObject int[] int[] org.jruby.Ruby top org.jruby.runtime.builtin.IRubyObject[] int int top org.jruby.runtime.builtin.IRubyObject
      StackMap stack:
            iconst_1
            istore 10 /* hasVmode */
        46: .line 236
            aload 2 /* vmodeAndVperm_p */
            aload 12 /* v */
            invokestatic org.jruby.util.io.EncodingUtils.vmode:(Ljava/lang/Object;Lorg/jruby/runtime/builtin/IRubyObject;)V
        47: .line 237
            goto 5
        end local 12 // org.jruby.runtime.builtin.IRubyObject v
        48: .line 241
      StackMap locals: org.jruby.runtime.ThreadContext org.jruby.util.io.IOEncodable java.lang.Object org.jruby.runtime.builtin.IRubyObject int[] int[] org.jruby.Ruby top org.jruby.runtime.builtin.IRubyObject[] int int
      StackMap stack:
            aload 3 /* options */
            checkcast org.jruby.RubyHash
            aload 0 /* context */
            aload 6 /* runtime */
            ldc "flags"
            invokevirtual org.jruby.Ruby.newSymbol:(Ljava/lang/String;)Lorg/jruby/RubySymbol;
            invokevirtual org.jruby.RubyHash.op_aref:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
            astore 12 /* v */
        start local 12 // org.jruby.runtime.builtin.IRubyObject v
        49: .line 242
            aload 12 /* v */
            invokeinterface org.jruby.runtime.builtin.IRubyObject.isNil:()Z
            ifne 54
        50: .line 243
            aload 12 /* v */
            invokeinterface org.jruby.runtime.builtin.IRubyObject.convertToInteger:()Lorg/jruby/RubyInteger;
            astore 12 /* v */
        51: .line 244
            aload 4 /* oflags_p */
            iconst_0
            dup2
            iaload
            aload 12 /* v */
            invokestatic org.jruby.RubyNumeric.num2int:(Lorg/jruby/runtime/builtin/IRubyObject;)I
            ior
            iastore
        52: .line 245
            aload 2 /* vmodeAndVperm_p */
            aload 6 /* runtime */
            aload 4 /* oflags_p */
            iconst_0
            iaload
            invokevirtual org.jruby.Ruby.newFixnum:(I)Lorg/jruby/RubyFixnum;
            invokestatic org.jruby.util.io.EncodingUtils.vmode:(Ljava/lang/Object;Lorg/jruby/runtime/builtin/IRubyObject;)V
        53: .line 246
            aload 5 /* fmode_p */
            iconst_0
            aload 4 /* oflags_p */
            iconst_0
            iaload
            invokestatic org.jruby.util.io.ModeFlags.getOpenFileFlagsFor:(I)I
            iastore
        54: .line 249
      StackMap locals: org.jruby.runtime.ThreadContext org.jruby.util.io.IOEncodable java.lang.Object org.jruby.runtime.builtin.IRubyObject int[] int[] org.jruby.Ruby top org.jruby.runtime.builtin.IRubyObject[] int int top org.jruby.runtime.builtin.IRubyObject
      StackMap stack:
            aload 6 /* runtime */
            aload 3 /* options */
            aload 5 /* fmode_p */
            invokestatic org.jruby.util.io.EncodingUtils.extractBinmode:(Lorg/jruby/Ruby;Lorg/jruby/runtime/builtin/IRubyObject;[I)V
        55: .line 251
            aload 5 /* fmode_p */
            iconst_0
            iaload
            iconst_4
            iand
            ifeq 60
        56: .line 252
            aload 4 /* oflags_p */
            iconst_0
            dup2
            iaload
            getstatic org.jruby.util.io.ModeFlags.BINARY:I
            ior
            iastore
        57: .line 254
            iload 9 /* hasEnc */
            ifne 62
        58: .line 255
            aload 0 /* context */
            aload 1 /* ioEncodable */
            aload 6 /* runtime */
            invokestatic org.jruby.util.io.EncodingUtils.ascii8bitEncoding:(Lorg/jruby/Ruby;)Lorg/jcodings/Encoding;
            aconst_null
            aload 5 /* fmode_p */
            iconst_0
            iaload
            invokestatic org.jruby.util.io.EncodingUtils.ioExtIntToEncs:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/util/io/IOEncodable;Lorg/jcodings/Encoding;Lorg/jcodings/Encoding;I)V
        59: .line 257
            goto 62
      StackMap locals:
      StackMap stack:
        60: getstatic org.jruby.util.io.EncodingUtils.DEFAULT_TEXTMODE:I
            ifeq 62
            aload 2 /* vmodeAndVperm_p */
            invokestatic org.jruby.util.io.EncodingUtils.vmode:(Ljava/lang/Object;)Lorg/jruby/runtime/builtin/IRubyObject;
            ifnull 61
            aload 2 /* vmodeAndVperm_p */
            invokestatic org.jruby.util.io.EncodingUtils.vmode:(Ljava/lang/Object;)Lorg/jruby/runtime/builtin/IRubyObject;
            invokeinterface org.jruby.runtime.builtin.IRubyObject.isNil:()Z
            ifeq 62
        61: .line 258
      StackMap locals:
      StackMap stack:
            aload 5 /* fmode_p */
            iconst_0
            dup2
            iaload
            getstatic org.jruby.util.io.EncodingUtils.DEFAULT_TEXTMODE:I
            ior
            iastore
        62: .line 261
      StackMap locals:
      StackMap stack:
            aload 6 /* runtime */
            aload 3 /* options */
            ldc "perm"
            invokestatic org.jruby.util.io.EncodingUtils.hashARef:(Lorg/jruby/Ruby;Lorg/jruby/runtime/builtin/IRubyObject;Ljava/lang/String;)Lorg/jruby/runtime/builtin/IRubyObject;
            astore 12 /* v */
        63: .line 262
            aload 12 /* v */
            invokeinterface org.jruby.runtime.builtin.IRubyObject.isNil:()Z
            ifne 67
        64: .line 263
            aload 2 /* vmodeAndVperm_p */
            invokestatic org.jruby.util.io.EncodingUtils.vperm:(Ljava/lang/Object;)Lorg/jruby/runtime/builtin/IRubyObject;
            ifnull 67
        65: .line 264
            aload 2 /* vmodeAndVperm_p */
            invokestatic org.jruby.util.io.EncodingUtils.vperm:(Ljava/lang/Object;)Lorg/jruby/runtime/builtin/IRubyObject;
            invokeinterface org.jruby.runtime.builtin.IRubyObject.isNil:()Z
            ifne 66
            aload 6 /* runtime */
            ldc "perm specified twice"
            invokevirtual org.jruby.Ruby.newArgumentError:(Ljava/lang/String;)Lorg/jruby/exceptions/RaiseException;
            athrow
        66: .line 266
      StackMap locals:
      StackMap stack:
            aload 2 /* vmodeAndVperm_p */
            aload 12 /* v */
            invokestatic org.jruby.util.io.EncodingUtils.vperm:(Ljava/lang/Object;Lorg/jruby/runtime/builtin/IRubyObject;)V
        67: .line 270
      StackMap locals:
      StackMap stack:
            aload 6 /* runtime */
            aload 3 /* options */
            ldc "flags"
            invokestatic org.jruby.util.io.EncodingUtils.hashARef:(Lorg/jruby/Ruby;Lorg/jruby/runtime/builtin/IRubyObject;Ljava/lang/String;)Lorg/jruby/runtime/builtin/IRubyObject;
            astore 13 /* extraFlags */
        start local 13 // org.jruby.runtime.builtin.IRubyObject extraFlags
        68: .line 271
            aload 13 /* extraFlags */
            invokeinterface org.jruby.runtime.builtin.IRubyObject.isNil:()Z
            ifne 70
        69: .line 272
            aload 4 /* oflags_p */
            iconst_0
            dup2
            iaload
            aload 13 /* extraFlags */
            invokeinterface org.jruby.runtime.builtin.IRubyObject.convertToInteger:()Lorg/jruby/RubyInteger;
            invokevirtual org.jruby.RubyInteger.getIntValue:()I
            ior
            iastore
        70: .line 275
      StackMap locals: org.jruby.runtime.builtin.IRubyObject
      StackMap stack:
            aload 5 /* fmode_p */
            iconst_0
            iaload
            iconst_1
            iand
            ifeq 72
        71: .line 276
            aload 5 /* fmode_p */
            iconst_0
            iaload
            getstatic org.jruby.util.io.EncodingUtils.ECONV_DEFAULT_NEWLINE_DECORATOR:I
            iconst_0
            sipush 256
            invokestatic org.jruby.util.io.EncodingUtils.MODE_BTMODE:(IIII)I
            goto 73
      StackMap locals:
      StackMap stack:
        72: iconst_0
        73: .line 275
      StackMap locals:
      StackMap stack: int
            istore 7 /* ecflags */
        start local 7 // int ecflags
        74: .line 277
            getstatic org.jruby.util.io.EncodingUtils.TEXTMODE_NEWLINE_DECORATOR_ON_WRITE:I
            iconst_m1
            if_icmpeq 79
        75: .line 278
            iload 7 /* ecflags */
            aload 5 /* fmode_p */
            iconst_0
            iaload
            iconst_2
            iand
            ifeq 77
        76: .line 279
            aload 5 /* fmode_p */
            iconst_0
            iaload
            getstatic org.jruby.util.io.EncodingUtils.TEXTMODE_NEWLINE_DECORATOR_ON_WRITE:I
            iconst_0
            getstatic org.jruby.util.io.EncodingUtils.TEXTMODE_NEWLINE_DECORATOR_ON_WRITE:I
            invokestatic org.jruby.util.io.EncodingUtils.MODE_BTMODE:(IIII)I
            goto 78
      StackMap locals: org.jruby.runtime.ThreadContext org.jruby.util.io.IOEncodable java.lang.Object org.jruby.runtime.builtin.IRubyObject int[] int[] org.jruby.Ruby int org.jruby.runtime.builtin.IRubyObject[] int int top org.jruby.runtime.builtin.IRubyObject org.jruby.runtime.builtin.IRubyObject
      StackMap stack: int
        77: iconst_0
      StackMap locals: org.jruby.runtime.ThreadContext org.jruby.util.io.IOEncodable java.lang.Object org.jruby.runtime.builtin.IRubyObject int[] int[] org.jruby.Ruby int org.jruby.runtime.builtin.IRubyObject[] int int top org.jruby.runtime.builtin.IRubyObject org.jruby.runtime.builtin.IRubyObject
      StackMap stack: int int
        78: ior
            istore 7 /* ecflags */
        79: .line 282
      StackMap locals:
      StackMap stack:
            aload 0 /* context */
            aload 1 /* ioEncodable */
            aload 3 /* options */
            aload 5 /* fmode_p */
            invokestatic org.jruby.util.io.EncodingUtils.ioExtractEncodingOption:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/util/io/IOEncodable;Lorg/jruby/runtime/builtin/IRubyObject;[I)Z
            ifeq 81
        80: .line 283
            iload 9 /* hasEnc */
            ifeq 81
            aload 6 /* runtime */
            ldc "encoding specified twice"
            invokevirtual org.jruby.Ruby.newArgumentError:(Ljava/lang/String;)Lorg/jruby/exceptions/RaiseException;
            athrow
        81: .line 286
      StackMap locals:
      StackMap stack:
            aload 1 /* ioEncodable */
            invokeinterface org.jruby.util.io.IOEncodable.getEnc2:()Lorg/jcodings/Encoding;
            iload 7 /* ecflags */
            invokestatic org.jruby.util.io.EncodingUtils.SET_UNIVERSAL_NEWLINE_DECORATOR_IF_ENC2:(Lorg/jcodings/Encoding;I)I
            istore 7 /* ecflags */
        82: .line 287
            aload 0 /* context */
            aload 3 /* options */
            aload 8 /* ecopts_p */
            iload 7 /* ecflags */
            invokestatic org.jruby.util.io.EncodingUtils.econvPrepareOptions:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;[Lorg/jruby/runtime/builtin/IRubyObject;I)I
            istore 7 /* ecflags */
        end local 13 // org.jruby.runtime.builtin.IRubyObject extraFlags
        end local 12 // org.jruby.runtime.builtin.IRubyObject v
        83: .line 290
      StackMap locals: org.jruby.runtime.ThreadContext org.jruby.util.io.IOEncodable java.lang.Object org.jruby.runtime.builtin.IRubyObject int[] int[] org.jruby.Ruby int org.jruby.runtime.builtin.IRubyObject[] int int
      StackMap stack:
            aload 0 /* context */
            aload 5 /* fmode_p */
            iload 7 /* ecflags */
            aload 1 /* ioEncodable */
            invokestatic org.jruby.util.io.EncodingUtils.validateEncodingBinmode:(Lorg/jruby/runtime/ThreadContext;[IILorg/jruby/util/io/IOEncodable;)V
        84: .line 292
            aload 1 /* ioEncodable */
            iload 7 /* ecflags */
            invokeinterface org.jruby.util.io.IOEncodable.setEcflags:(I)V
        85: .line 293
            aload 1 /* ioEncodable */
            aload 8 /* ecopts_p */
            iconst_0
            aaload
            invokeinterface org.jruby.util.io.IOEncodable.setEcopts:(Lorg/jruby/runtime/builtin/IRubyObject;)V
        86: .line 294
            return
        end local 10 // boolean hasVmode
        end local 9 // boolean hasEnc
        end local 8 // org.jruby.runtime.builtin.IRubyObject[] ecopts_p
        end local 7 // int ecflags
        end local 6 // org.jruby.Ruby runtime
        end local 5 // int[] fmode_p
        end local 4 // int[] oflags_p
        end local 3 // org.jruby.runtime.builtin.IRubyObject options
        end local 2 // java.lang.Object vmodeAndVperm_p
        end local 1 // org.jruby.util.io.IOEncodable ioEncodable
        end local 0 // org.jruby.runtime.ThreadContext context
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0   87     0          context  Lorg/jruby/runtime/ThreadContext;
            0   87     1      ioEncodable  Lorg/jruby/util/io/IOEncodable;
            0   87     2  vmodeAndVperm_p  Ljava/lang/Object;
            0   87     3          options  Lorg/jruby/runtime/builtin/IRubyObject;
            0   87     4         oflags_p  [I
            0   87     5          fmode_p  [I
            1   87     6          runtime  Lorg/jruby/Ruby;
           32   40     7          ecflags  I
           74   87     7          ecflags  I
            2   87     8         ecopts_p  [Lorg/jruby/runtime/builtin/IRubyObject;
            3   87     9           hasEnc  Z
            4   87    10         hasVmode  Z
           10   27    11          intmode  Lorg/jruby/runtime/builtin/IRubyObject;
           16   27    12                p  Ljava/lang/String;
           19   27    13       colonSplit  I
           26   27    14                e  Lorg/jcodings/Encoding;
           42   48    12                v  Lorg/jruby/runtime/builtin/IRubyObject;
           49   83    12                v  Lorg/jruby/runtime/builtin/IRubyObject;
           68   83    13       extraFlags  Lorg/jruby/runtime/builtin/IRubyObject;
    MethodParameters:
                 Name  Flags
      context          
      ioEncodable      
      vmodeAndVperm_p  
      options          
      oflags_p         
      fmode_p          

  public static boolean ioExtractEncodingOption(org.jruby.runtime.ThreadContext, org.jruby.util.io.IOEncodable, org.jruby.runtime.builtin.IRubyObject, int[]);
    descriptor: (Lorg/jruby/runtime/ThreadContext;Lorg/jruby/util/io/IOEncodable;Lorg/jruby/runtime/builtin/IRubyObject;[I)Z
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=5, locals=16, args_size=4
        start local 0 // org.jruby.runtime.ThreadContext context
        start local 1 // org.jruby.util.io.IOEncodable ioEncodable
        start local 2 // org.jruby.runtime.builtin.IRubyObject options
        start local 3 // int[] fmode_p
         0: .line 300
            aload 0 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            astore 4 /* runtime */
        start local 4 // org.jruby.Ruby runtime
         1: .line 302
            aload 0 /* context */
            getfield org.jruby.runtime.ThreadContext.nil:Lorg/jruby/runtime/builtin/IRubyObject;
            astore 5 /* encoding */
        start local 5 // org.jruby.runtime.builtin.IRubyObject encoding
         2: .line 303
            aconst_null
            astore 6 /* extenc */
        start local 6 // org.jruby.runtime.builtin.IRubyObject extenc
         3: .line 304
            aconst_null
            astore 7 /* intenc */
        start local 7 // org.jruby.runtime.builtin.IRubyObject intenc
         4: .line 306
            iconst_0
            istore 9 /* extracted */
        start local 9 // boolean extracted
         5: .line 307
            aconst_null
            astore 10 /* extencoding */
        start local 10 // org.jcodings.Encoding extencoding
         6: .line 308
            aconst_null
            astore 11 /* intencoding */
        start local 11 // org.jcodings.Encoding intencoding
         7: .line 310
            aload 2 /* options */
            ifnull 15
            aload 2 /* options */
            invokeinterface org.jruby.runtime.builtin.IRubyObject.isNil:()Z
            ifne 15
         8: .line 311
            aload 2 /* options */
            checkcast org.jruby.RubyHash
            astore 12 /* opts */
        start local 12 // org.jruby.RubyHash opts
         9: .line 313
            aload 12 /* opts */
            aload 0 /* context */
            aload 4 /* runtime */
            ldc "encoding"
            invokevirtual org.jruby.Ruby.newSymbol:(Ljava/lang/String;)Lorg/jruby/RubySymbol;
            invokevirtual org.jruby.RubyHash.op_aref:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
            astore 13 /* encodingOpt */
        start local 13 // org.jruby.runtime.builtin.IRubyObject encodingOpt
        10: .line 314
            aload 13 /* encodingOpt */
            invokeinterface org.jruby.runtime.builtin.IRubyObject.isNil:()Z
            ifne 11
            aload 13 /* encodingOpt */
            astore 5 /* encoding */
        11: .line 315
      StackMap locals: org.jruby.runtime.ThreadContext org.jruby.util.io.IOEncodable org.jruby.runtime.builtin.IRubyObject int[] org.jruby.Ruby org.jruby.runtime.builtin.IRubyObject org.jruby.runtime.builtin.IRubyObject org.jruby.runtime.builtin.IRubyObject top int org.jcodings.Encoding org.jcodings.Encoding org.jruby.RubyHash org.jruby.runtime.builtin.IRubyObject
      StackMap stack:
            aload 12 /* opts */
            aload 0 /* context */
            aload 4 /* runtime */
            ldc "external_encoding"
            invokevirtual org.jruby.Ruby.newSymbol:(Ljava/lang/String;)Lorg/jruby/RubySymbol;
            invokevirtual org.jruby.RubyHash.op_aref:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
            astore 14 /* externalOpt */
        start local 14 // org.jruby.runtime.builtin.IRubyObject externalOpt
        12: .line 316
            aload 14 /* externalOpt */
            invokeinterface org.jruby.runtime.builtin.IRubyObject.isNil:()Z
            ifne 13
            aload 14 /* externalOpt */
            astore 6 /* extenc */
        13: .line 317
      StackMap locals: org.jruby.runtime.builtin.IRubyObject
      StackMap stack:
            aload 12 /* opts */
            aload 0 /* context */
            aload 4 /* runtime */
            ldc "internal_encoding"
            invokevirtual org.jruby.Ruby.newSymbol:(Ljava/lang/String;)Lorg/jruby/RubySymbol;
            invokevirtual org.jruby.RubyHash.op_aref:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
            astore 15 /* internalOpt */
        start local 15 // org.jruby.runtime.builtin.IRubyObject internalOpt
        14: .line 318
            aload 15 /* internalOpt */
            invokeinterface org.jruby.runtime.builtin.IRubyObject.isNil:()Z
            ifne 15
            aload 15 /* internalOpt */
            astore 7 /* intenc */
        end local 15 // org.jruby.runtime.builtin.IRubyObject internalOpt
        end local 14 // org.jruby.runtime.builtin.IRubyObject externalOpt
        end local 13 // org.jruby.runtime.builtin.IRubyObject encodingOpt
        end local 12 // org.jruby.RubyHash opts
        15: .line 321
      StackMap locals:
      StackMap stack:
            aload 6 /* extenc */
            ifnonnull 16
            aload 7 /* intenc */
            ifnull 24
      StackMap locals:
      StackMap stack:
        16: aload 5 /* encoding */
            invokeinterface org.jruby.runtime.builtin.IRubyObject.isNil:()Z
            ifne 24
        17: .line 322
            aload 4 /* runtime */
            invokevirtual org.jruby.Ruby.isVerbose:()Z
            ifeq 23
        18: .line 323
            aload 4 /* runtime */
            invokevirtual org.jruby.Ruby.getWarnings:()Lorg/jruby/common/RubyWarnings;
            new java.lang.StringBuilder
            dup
            ldc "Ignoring encoding parameter '"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 5 /* encoding */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            ldc "': "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        19: .line 324
            aload 6 /* extenc */
            ifnonnull 20
            ldc "internal"
            goto 21
      StackMap locals: org.jruby.runtime.ThreadContext org.jruby.util.io.IOEncodable org.jruby.runtime.builtin.IRubyObject int[] org.jruby.Ruby org.jruby.runtime.builtin.IRubyObject org.jruby.runtime.builtin.IRubyObject org.jruby.runtime.builtin.IRubyObject top int org.jcodings.Encoding org.jcodings.Encoding
      StackMap stack: org.jruby.common.RubyWarnings java.lang.StringBuilder
        20: ldc "external"
      StackMap locals: org.jruby.runtime.ThreadContext org.jruby.util.io.IOEncodable org.jruby.runtime.builtin.IRubyObject int[] org.jruby.Ruby org.jruby.runtime.builtin.IRubyObject org.jruby.runtime.builtin.IRubyObject org.jruby.runtime.builtin.IRubyObject top int org.jcodings.Encoding org.jcodings.Encoding
      StackMap stack: org.jruby.common.RubyWarnings java.lang.StringBuilder java.lang.String
        21: invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc "_encoding is used"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        22: .line 323
            invokevirtual org.jruby.common.RubyWarnings.warn:(Ljava/lang/String;)V
        23: .line 326
      StackMap locals:
      StackMap stack:
            aload 0 /* context */
            getfield org.jruby.runtime.ThreadContext.nil:Lorg/jruby/runtime/builtin/IRubyObject;
            astore 5 /* encoding */
        24: .line 329
      StackMap locals:
      StackMap stack:
            aload 6 /* extenc */
            ifnull 26
            aload 6 /* extenc */
            invokeinterface org.jruby.runtime.builtin.IRubyObject.isNil:()Z
            ifne 26
        25: .line 330
            aload 0 /* context */
            aload 6 /* extenc */
            invokestatic org.jruby.util.io.EncodingUtils.rbToEncoding:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jcodings/Encoding;
            astore 10 /* extencoding */
        26: .line 333
      StackMap locals:
      StackMap stack:
            aload 7 /* intenc */
            ifnull 41
        27: .line 334
            aload 7 /* intenc */
            invokeinterface org.jruby.runtime.builtin.IRubyObject.isNil:()Z
            ifeq 30
        28: .line 335
            aconst_null
            astore 11 /* intencoding */
        29: .line 336
            goto 39
      StackMap locals:
      StackMap stack:
        30: aload 7 /* intenc */
            invokeinterface org.jruby.runtime.builtin.IRubyObject.checkStringType:()Lorg/jruby/runtime/builtin/IRubyObject;
            dup
            astore 8 /* tmp */
        start local 8 // org.jruby.runtime.builtin.IRubyObject tmp
        31: invokeinterface org.jruby.runtime.builtin.IRubyObject.isNil:()Z
            ifne 38
        32: .line 337
            aload 8 /* tmp */
            invokevirtual java.lang.Object.toString:()Ljava/lang/String;
            astore 12 /* p */
        start local 12 // java.lang.String p
        33: .line 338
            aload 12 /* p */
            ldc "-"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 36
        34: .line 339
            aconst_null
            astore 11 /* intencoding */
        35: .line 340
            goto 39
        36: .line 341
      StackMap locals: org.jruby.runtime.ThreadContext org.jruby.util.io.IOEncodable org.jruby.runtime.builtin.IRubyObject int[] org.jruby.Ruby org.jruby.runtime.builtin.IRubyObject org.jruby.runtime.builtin.IRubyObject org.jruby.runtime.builtin.IRubyObject org.jruby.runtime.builtin.IRubyObject int org.jcodings.Encoding org.jcodings.Encoding java.lang.String
      StackMap stack:
            aload 0 /* context */
            aload 7 /* intenc */
            invokestatic org.jruby.util.io.EncodingUtils.rbToEncoding:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jcodings/Encoding;
            astore 11 /* intencoding */
        end local 12 // java.lang.String p
        37: .line 343
            goto 39
        38: .line 344
      StackMap locals:
      StackMap stack:
            aload 0 /* context */
            aload 7 /* intenc */
            invokestatic org.jruby.util.io.EncodingUtils.rbToEncoding:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jcodings/Encoding;
            astore 11 /* intencoding */
        end local 8 // org.jruby.runtime.builtin.IRubyObject tmp
        39: .line 346
      StackMap locals: org.jruby.runtime.ThreadContext org.jruby.util.io.IOEncodable org.jruby.runtime.builtin.IRubyObject int[] org.jruby.Ruby org.jruby.runtime.builtin.IRubyObject org.jruby.runtime.builtin.IRubyObject org.jruby.runtime.builtin.IRubyObject top int org.jcodings.Encoding org.jcodings.Encoding
      StackMap stack:
            aload 10 /* extencoding */
            aload 11 /* intencoding */
            if_acmpne 41
        40: .line 347
            aconst_null
            astore 11 /* intencoding */
        41: .line 351
      StackMap locals:
      StackMap stack:
            aload 5 /* encoding */
            invokeinterface org.jruby.runtime.builtin.IRubyObject.isNil:()Z
            ifne 49
        42: .line 352
            iconst_1
            istore 9 /* extracted */
        43: .line 354
            aload 5 /* encoding */
            invokeinterface org.jruby.runtime.builtin.IRubyObject.checkStringType:()Lorg/jruby/runtime/builtin/IRubyObject;
            dup
            astore 8 /* tmp */
        start local 8 // org.jruby.runtime.builtin.IRubyObject tmp
        44: invokeinterface org.jruby.runtime.builtin.IRubyObject.isNil:()Z
            ifne 47
        45: .line 355
            aload 0 /* context */
            aload 1 /* ioEncodable */
            aload 8 /* tmp */
            invokeinterface org.jruby.runtime.builtin.IRubyObject.asJavaString:()Ljava/lang/String;
            aload 3 /* fmode_p */
            invokestatic org.jruby.util.io.EncodingUtils.parseModeEncoding:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/util/io/IOEncodable;Ljava/lang/String;[I)V
        46: .line 356
            goto 52
        47: .line 357
      StackMap locals: org.jruby.runtime.ThreadContext org.jruby.util.io.IOEncodable org.jruby.runtime.builtin.IRubyObject int[] org.jruby.Ruby org.jruby.runtime.builtin.IRubyObject org.jruby.runtime.builtin.IRubyObject org.jruby.runtime.builtin.IRubyObject org.jruby.runtime.builtin.IRubyObject int org.jcodings.Encoding org.jcodings.Encoding
      StackMap stack:
            aload 0 /* context */
            aload 1 /* ioEncodable */
            aload 0 /* context */
            aload 5 /* encoding */
            invokestatic org.jruby.util.io.EncodingUtils.rbToEncoding:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jcodings/Encoding;
            aconst_null
            iconst_0
            invokestatic org.jruby.util.io.EncodingUtils.ioExtIntToEncs:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/util/io/IOEncodable;Lorg/jcodings/Encoding;Lorg/jcodings/Encoding;I)V
        48: .line 359
            goto 52
        end local 8 // org.jruby.runtime.builtin.IRubyObject tmp
      StackMap locals: org.jruby.runtime.ThreadContext org.jruby.util.io.IOEncodable org.jruby.runtime.builtin.IRubyObject int[] org.jruby.Ruby org.jruby.runtime.builtin.IRubyObject org.jruby.runtime.builtin.IRubyObject org.jruby.runtime.builtin.IRubyObject top int org.jcodings.Encoding org.jcodings.Encoding
      StackMap stack:
        49: aload 6 /* extenc */
            ifnonnull 50
            aload 7 /* intenc */
            ifnull 52
        50: .line 360
      StackMap locals:
      StackMap stack:
            iconst_1
            istore 9 /* extracted */
        51: .line 361
            aload 0 /* context */
            aload 1 /* ioEncodable */
            aload 10 /* extencoding */
            aload 11 /* intencoding */
            iconst_0
            invokestatic org.jruby.util.io.EncodingUtils.ioExtIntToEncs:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/util/io/IOEncodable;Lorg/jcodings/Encoding;Lorg/jcodings/Encoding;I)V
        52: .line 364
      StackMap locals:
      StackMap stack:
            iload 9 /* extracted */
            ireturn
        end local 11 // org.jcodings.Encoding intencoding
        end local 10 // org.jcodings.Encoding extencoding
        end local 9 // boolean extracted
        end local 7 // org.jruby.runtime.builtin.IRubyObject intenc
        end local 6 // org.jruby.runtime.builtin.IRubyObject extenc
        end local 5 // org.jruby.runtime.builtin.IRubyObject encoding
        end local 4 // org.jruby.Ruby runtime
        end local 3 // int[] fmode_p
        end local 2 // org.jruby.runtime.builtin.IRubyObject options
        end local 1 // org.jruby.util.io.IOEncodable ioEncodable
        end local 0 // org.jruby.runtime.ThreadContext context
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   53     0      context  Lorg/jruby/runtime/ThreadContext;
            0   53     1  ioEncodable  Lorg/jruby/util/io/IOEncodable;
            0   53     2      options  Lorg/jruby/runtime/builtin/IRubyObject;
            0   53     3      fmode_p  [I
            1   53     4      runtime  Lorg/jruby/Ruby;
            2   53     5     encoding  Lorg/jruby/runtime/builtin/IRubyObject;
            3   53     6       extenc  Lorg/jruby/runtime/builtin/IRubyObject;
            4   53     7       intenc  Lorg/jruby/runtime/builtin/IRubyObject;
           31   39     8          tmp  Lorg/jruby/runtime/builtin/IRubyObject;
           44   49     8          tmp  Lorg/jruby/runtime/builtin/IRubyObject;
            5   53     9    extracted  Z
            6   53    10  extencoding  Lorg/jcodings/Encoding;
            7   53    11  intencoding  Lorg/jcodings/Encoding;
            9   15    12         opts  Lorg/jruby/RubyHash;
           10   15    13  encodingOpt  Lorg/jruby/runtime/builtin/IRubyObject;
           12   15    14  externalOpt  Lorg/jruby/runtime/builtin/IRubyObject;
           14   15    15  internalOpt  Lorg/jruby/runtime/builtin/IRubyObject;
           33   37    12            p  Ljava/lang/String;
    MethodParameters:
             Name  Flags
      context      
      ioEncodable  
      options      
      fmode_p      

  public static void ioExtIntToEncs(org.jruby.runtime.ThreadContext, org.jruby.util.io.IOEncodable, org.jcodings.Encoding, org.jcodings.Encoding, int);
    descriptor: (Lorg/jruby/runtime/ThreadContext;Lorg/jruby/util/io/IOEncodable;Lorg/jcodings/Encoding;Lorg/jcodings/Encoding;I)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=6, args_size=5
        start local 0 // org.jruby.runtime.ThreadContext context
        start local 1 // org.jruby.util.io.IOEncodable encodable
        start local 2 // org.jcodings.Encoding external
        start local 3 // org.jcodings.Encoding internal
        start local 4 // int fmode
         0: .line 369
            iconst_0
            istore 5 /* defaultExternal */
        start local 5 // boolean defaultExternal
         1: .line 371
            aload 2 /* external */
            ifnonnull 4
         2: .line 372
            aload 0 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            invokevirtual org.jruby.Ruby.getDefaultExternalEncoding:()Lorg/jcodings/Encoding;
            astore 2 /* external */
         3: .line 373
            iconst_1
            istore 5 /* defaultExternal */
         4: .line 376
      StackMap locals: int
      StackMap stack:
            aload 2 /* external */
            aload 0 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            invokestatic org.jruby.util.io.EncodingUtils.ascii8bitEncoding:(Lorg/jruby/Ruby;)Lorg/jcodings/Encoding;
            if_acmpne 7
         5: .line 377
            aconst_null
            astore 3 /* internal */
         6: .line 378
            goto 9
      StackMap locals:
      StackMap stack:
         7: aload 3 /* internal */
            ifnonnull 9
         8: .line 379
            aload 0 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            invokevirtual org.jruby.Ruby.getDefaultInternalEncoding:()Lorg/jcodings/Encoding;
            astore 3 /* internal */
         9: .line 382
      StackMap locals:
      StackMap stack:
            aload 3 /* internal */
            ifnull 11
        10: .line 383
            iload 4 /* fmode */
            ldc 1048576
            iand
            ifne 16
            aload 3 /* internal */
            aload 2 /* external */
            if_acmpne 16
        11: .line 384
      StackMap locals:
      StackMap stack:
            aload 1 /* encodable */
            iload 5 /* defaultExternal */
            ifeq 12
            aload 3 /* internal */
            aload 2 /* external */
            if_acmpeq 12
            aconst_null
            goto 13
      StackMap locals:
      StackMap stack: org.jruby.util.io.IOEncodable
        12: aload 2 /* external */
      StackMap locals: org.jruby.runtime.ThreadContext org.jruby.util.io.IOEncodable org.jcodings.Encoding org.jcodings.Encoding int int
      StackMap stack: org.jruby.util.io.IOEncodable org.jcodings.Encoding
        13: invokeinterface org.jruby.util.io.IOEncodable.setEnc:(Lorg/jcodings/Encoding;)V
        14: .line 385
            aload 1 /* encodable */
            aconst_null
            invokeinterface org.jruby.util.io.IOEncodable.setEnc2:(Lorg/jcodings/Encoding;)V
        15: .line 386
            goto 18
        16: .line 387
      StackMap locals:
      StackMap stack:
            aload 1 /* encodable */
            aload 3 /* internal */
            invokeinterface org.jruby.util.io.IOEncodable.setEnc:(Lorg/jcodings/Encoding;)V
        17: .line 388
            aload 1 /* encodable */
            aload 2 /* external */
            invokeinterface org.jruby.util.io.IOEncodable.setEnc2:(Lorg/jcodings/Encoding;)V
        18: .line 390
      StackMap locals:
      StackMap stack:
            return
        end local 5 // boolean defaultExternal
        end local 4 // int fmode
        end local 3 // org.jcodings.Encoding internal
        end local 2 // org.jcodings.Encoding external
        end local 1 // org.jruby.util.io.IOEncodable encodable
        end local 0 // org.jruby.runtime.ThreadContext context
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0   19     0          context  Lorg/jruby/runtime/ThreadContext;
            0   19     1        encodable  Lorg/jruby/util/io/IOEncodable;
            0   19     2         external  Lorg/jcodings/Encoding;
            0   19     3         internal  Lorg/jcodings/Encoding;
            0   19     4            fmode  I
            1   19     5  defaultExternal  Z
    MethodParameters:
           Name  Flags
      context    
      encodable  
      external   
      internal   
      fmode      

  public static void parseModeEncoding(org.jruby.runtime.ThreadContext, org.jruby.util.io.IOEncodable, java.lang.String, int[]);
    descriptor: (Lorg/jruby/runtime/ThreadContext;Lorg/jruby/util/io/IOEncodable;Ljava/lang/String;[I)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=6, locals=12, args_size=4
        start local 0 // org.jruby.runtime.ThreadContext context
        start local 1 // org.jruby.util.io.IOEncodable ioEncodable
        start local 2 // java.lang.String option
        start local 3 // int[] fmode_p
         0: .line 394
            aload 0 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            astore 4 /* runtime */
        start local 4 // org.jruby.Ruby runtime
         1: .line 395
            aload 4 /* runtime */
            invokevirtual org.jruby.Ruby.getEncodingService:()Lorg/jruby/runtime/encoding/EncodingService;
            astore 5 /* service */
        start local 5 // org.jruby.runtime.encoding.EncodingService service
         2: .line 397
            aload 3 /* fmode_p */
            ifnonnull 3
            iconst_1
            newarray 10
            astore 3 /* fmode_p */
         3: .line 399
      StackMap locals: org.jruby.Ruby org.jruby.runtime.encoding.EncodingService
      StackMap stack:
            aload 2 /* option */
            bipush 58
            iconst_2
            invokestatic org.jruby.util.StringSupport.split:(Ljava/lang/String;CI)Ljava/util/List;
            astore 8 /* encs */
        start local 8 // java.util.List encs
         4: .line 401
            aload 8 /* encs */
            invokeinterface java.util.List.size:()I
            iconst_2
            if_icmpne 5
            aload 8 /* encs */
            iconst_0
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            checkcast java.lang.String
            goto 6
      StackMap locals: org.jruby.runtime.ThreadContext org.jruby.util.io.IOEncodable java.lang.String int[] org.jruby.Ruby org.jruby.runtime.encoding.EncodingService top top java.util.List
      StackMap stack:
         5: aload 2 /* option */
      StackMap locals:
      StackMap stack: java.lang.String
         6: astore 9 /* estr */
        start local 9 // java.lang.String estr
         7: .line 403
            aload 9 /* estr */
            invokevirtual java.lang.String.toLowerCase:()Ljava/lang/String;
            ldc "bom|"
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
            ifeq 15
         8: .line 404
            aload 9 /* estr */
            iconst_4
            invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
            astore 9 /* estr */
         9: .line 405
            aload 9 /* estr */
            invokevirtual java.lang.String.toLowerCase:()Ljava/lang/String;
            ldc "utf-"
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
            ifeq 13
        10: .line 406
            aload 3 /* fmode_p */
            iconst_0
            dup2
            iaload
            ldc 1048576
            ior
            iastore
        11: .line 407
            aload 1 /* ioEncodable */
            iconst_1
            invokeinterface org.jruby.util.io.IOEncodable.setBOM:(Z)V
        12: .line 408
            goto 15
        13: .line 409
      StackMap locals: java.lang.String
      StackMap stack:
            aload 4 /* runtime */
            invokevirtual org.jruby.Ruby.getWarnings:()Lorg/jruby/common/RubyWarnings;
            new java.lang.StringBuilder
            dup
            ldc "BOM with non-UTF encoding "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 9 /* estr */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc " is nonsense"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual org.jruby.common.RubyWarnings.warn:(Ljava/lang/String;)V
        14: .line 410
            aload 3 /* fmode_p */
            iconst_0
            dup2
            iaload
            ldc -1048577
            iand
            iastore
        15: .line 414
      StackMap locals:
      StackMap stack:
            aload 5 /* service */
            new org.jruby.util.ByteList
            dup
            aload 9 /* estr */
            invokevirtual java.lang.String.getBytes:()[B
            iconst_0
            invokespecial org.jruby.util.ByteList.<init>:([BZ)V
            invokevirtual org.jruby.runtime.encoding.EncodingService.findEncodingNoError:(Lorg/jruby/util/ByteList;)Lorg/jcodings/Encoding;
            astore 10 /* idx */
        start local 10 // org.jcodings.Encoding idx
        16: .line 416
            aload 10 /* idx */
            ifnonnull 20
        17: .line 417
            aload 4 /* runtime */
            invokevirtual org.jruby.Ruby.getWarnings:()Lorg/jruby/common/RubyWarnings;
            new java.lang.StringBuilder
            dup
            ldc "Unsupported encoding "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 9 /* estr */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc " ignored"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual org.jruby.common.RubyWarnings.warn:(Ljava/lang/String;)V
        18: .line 418
            aconst_null
            astore 7 /* extEnc */
        start local 7 // org.jcodings.Encoding extEnc
        19: .line 419
            goto 21
        end local 7 // org.jcodings.Encoding extEnc
        20: .line 420
      StackMap locals: org.jcodings.Encoding
      StackMap stack:
            aload 10 /* idx */
            astore 7 /* extEnc */
        start local 7 // org.jcodings.Encoding extEnc
        21: .line 423
      StackMap locals: org.jruby.runtime.ThreadContext org.jruby.util.io.IOEncodable java.lang.String int[] org.jruby.Ruby org.jruby.runtime.encoding.EncodingService top org.jcodings.Encoding java.util.List java.lang.String org.jcodings.Encoding
      StackMap stack:
            aconst_null
            astore 6 /* intEnc */
        start local 6 // org.jcodings.Encoding intEnc
        22: .line 424
            aload 8 /* encs */
            invokeinterface java.util.List.size:()I
            iconst_2
            if_icmpne 33
        23: .line 425
            aload 8 /* encs */
            iconst_1
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            checkcast java.lang.String
            astore 11 /* istr */
        start local 11 // java.lang.String istr
        24: .line 426
            aload 11 /* istr */
            ldc "-"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 27
        25: .line 427
            aconst_null
            astore 6 /* intEnc */
        26: .line 428
            goto 33
        27: .line 429
      StackMap locals: org.jruby.runtime.ThreadContext org.jruby.util.io.IOEncodable java.lang.String int[] org.jruby.Ruby org.jruby.runtime.encoding.EncodingService org.jcodings.Encoding org.jcodings.Encoding java.util.List java.lang.String org.jcodings.Encoding java.lang.String
      StackMap stack:
            aload 5 /* service */
            aload 11 /* istr */
            invokevirtual org.jruby.runtime.encoding.EncodingService.getEncodingFromString:(Ljava/lang/String;)Lorg/jcodings/Encoding;
            astore 10 /* idx */
        28: .line 430
            aload 10 /* idx */
            ifnonnull 32
        29: .line 431
            aload 4 /* runtime */
            invokevirtual org.jruby.Ruby.getWarnings:()Lorg/jruby/common/RubyWarnings;
            new java.lang.StringBuilder
            dup
            ldc "ignoring internal encoding "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 10 /* idx */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            ldc ": it is identical to external encoding "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 10 /* idx */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual org.jruby.common.RubyWarnings.warn:(Ljava/lang/String;)V
        30: .line 432
            aconst_null
            astore 6 /* intEnc */
        31: .line 433
            goto 33
        32: .line 434
      StackMap locals:
      StackMap stack:
            aload 10 /* idx */
            astore 6 /* intEnc */
        end local 11 // java.lang.String istr
        33: .line 439
      StackMap locals:
      StackMap stack:
            aload 0 /* context */
            aload 1 /* ioEncodable */
            aload 7 /* extEnc */
            aload 6 /* intEnc */
            aload 3 /* fmode_p */
            iconst_0
            iaload
            invokestatic org.jruby.util.io.EncodingUtils.ioExtIntToEncs:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/util/io/IOEncodable;Lorg/jcodings/Encoding;Lorg/jcodings/Encoding;I)V
        34: .line 440
            return
        end local 10 // org.jcodings.Encoding idx
        end local 9 // java.lang.String estr
        end local 8 // java.util.List encs
        end local 7 // org.jcodings.Encoding extEnc
        end local 6 // org.jcodings.Encoding intEnc
        end local 5 // org.jruby.runtime.encoding.EncodingService service
        end local 4 // org.jruby.Ruby runtime
        end local 3 // int[] fmode_p
        end local 2 // java.lang.String option
        end local 1 // org.jruby.util.io.IOEncodable ioEncodable
        end local 0 // org.jruby.runtime.ThreadContext context
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   35     0      context  Lorg/jruby/runtime/ThreadContext;
            0   35     1  ioEncodable  Lorg/jruby/util/io/IOEncodable;
            0   35     2       option  Ljava/lang/String;
            0   35     3      fmode_p  [I
            1   35     4      runtime  Lorg/jruby/Ruby;
            2   35     5      service  Lorg/jruby/runtime/encoding/EncodingService;
           22   35     6       intEnc  Lorg/jcodings/Encoding;
           19   20     7       extEnc  Lorg/jcodings/Encoding;
           21   35     7       extEnc  Lorg/jcodings/Encoding;
            4   35     8         encs  Ljava/util/List<Ljava/lang/String;>;
            7   35     9         estr  Ljava/lang/String;
           16   35    10          idx  Lorg/jcodings/Encoding;
           24   33    11         istr  Ljava/lang/String;
    MethodParameters:
             Name  Flags
      context      
      ioEncodable  
      option       
      fmode_p      

  public static org.jruby.util.ByteList econvStrConvert(org.jruby.runtime.ThreadContext, org.jcodings.transcode.EConv, org.jruby.util.ByteList, int);
    descriptor: (Lorg/jruby/runtime/ThreadContext;Lorg/jcodings/transcode/EConv;Lorg/jruby/util/ByteList;I)Lorg/jruby/util/ByteList;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=5, locals=4, args_size=4
        start local 0 // org.jruby.runtime.ThreadContext context
        start local 1 // org.jcodings.transcode.EConv ec
        start local 2 // org.jruby.util.ByteList src
        start local 3 // int flags
         0: .line 444
            aload 0 /* context */
            aload 1 /* ec */
            aload 2 /* src */
            aconst_null
            iload 3 /* flags */
            invokestatic org.jruby.util.io.EncodingUtils.econvSubstrAppend:(Lorg/jruby/runtime/ThreadContext;Lorg/jcodings/transcode/EConv;Lorg/jruby/util/ByteList;Lorg/jruby/util/ByteList;I)Lorg/jruby/util/ByteList;
            areturn
        end local 3 // int flags
        end local 2 // org.jruby.util.ByteList src
        end local 1 // org.jcodings.transcode.EConv ec
        end local 0 // org.jruby.runtime.ThreadContext context
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     0  context  Lorg/jruby/runtime/ThreadContext;
            0    1     1       ec  Lorg/jcodings/transcode/EConv;
            0    1     2      src  Lorg/jruby/util/ByteList;
            0    1     3    flags  I
    MethodParameters:
         Name  Flags
      context  
      ec       
      src      
      flags    

  public static org.jruby.util.ByteList econvSubstrAppend(org.jruby.runtime.ThreadContext, org.jcodings.transcode.EConv, org.jruby.util.ByteList, org.jruby.util.ByteList, int);
    descriptor: (Lorg/jruby/runtime/ThreadContext;Lorg/jcodings/transcode/EConv;Lorg/jruby/util/ByteList;Lorg/jruby/util/ByteList;I)Lorg/jruby/util/ByteList;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=5, locals=5, args_size=5
        start local 0 // org.jruby.runtime.ThreadContext context
        start local 1 // org.jcodings.transcode.EConv ec
        start local 2 // org.jruby.util.ByteList src
        start local 3 // org.jruby.util.ByteList dst
        start local 4 // int flags
         0: .line 449
            aload 0 /* context */
            aload 1 /* ec */
            aload 2 /* src */
            aload 3 /* dst */
            iload 4 /* flags */
            invokestatic org.jruby.util.io.EncodingUtils.econvAppend:(Lorg/jruby/runtime/ThreadContext;Lorg/jcodings/transcode/EConv;Lorg/jruby/util/ByteList;Lorg/jruby/util/ByteList;I)Lorg/jruby/util/ByteList;
            areturn
        end local 4 // int flags
        end local 3 // org.jruby.util.ByteList dst
        end local 2 // org.jruby.util.ByteList src
        end local 1 // org.jcodings.transcode.EConv ec
        end local 0 // org.jruby.runtime.ThreadContext context
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     0  context  Lorg/jruby/runtime/ThreadContext;
            0    1     1       ec  Lorg/jcodings/transcode/EConv;
            0    1     2      src  Lorg/jruby/util/ByteList;
            0    1     3      dst  Lorg/jruby/util/ByteList;
            0    1     4    flags  I
    MethodParameters:
         Name  Flags
      context  
      ec       
      src      
      dst      
      flags    

  public static org.jruby.util.ByteList econvAppend(org.jruby.runtime.ThreadContext, org.jcodings.transcode.EConv, org.jruby.util.ByteList, org.jruby.util.ByteList, int);
    descriptor: (Lorg/jruby/runtime/ThreadContext;Lorg/jcodings/transcode/EConv;Lorg/jruby/util/ByteList;Lorg/jruby/util/ByteList;I)Lorg/jruby/util/ByteList;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=8, locals=18, args_size=5
        start local 0 // org.jruby.runtime.ThreadContext context
        start local 1 // org.jcodings.transcode.EConv ec
        start local 2 // org.jruby.util.ByteList sByteList
        start local 3 // org.jruby.util.ByteList dst
        start local 4 // int flags
         0: .line 454
            aload 2 /* sByteList */
            invokevirtual org.jruby.util.ByteList.getRealSize:()I
            istore 5 /* len */
        start local 5 // int len
         1: .line 456
            new org.jcodings.Ptr
            dup
            iconst_0
            invokespecial org.jcodings.Ptr.<init>:(I)V
            astore 6 /* sp */
        start local 6 // org.jcodings.Ptr sp
         2: .line 457
            iconst_0
            istore 7 /* se */
        start local 7 // int se
         3: .line 458
            iconst_0
            istore 8 /* ds */
        start local 8 // int ds
         4: .line 459
            aload 2 /* sByteList */
            invokevirtual org.jruby.util.ByteList.getBegin:()I
            istore 9 /* ss */
        start local 9 // int ss
         5: .line 461
            new org.jcodings.Ptr
            dup
            iconst_0
            invokespecial org.jcodings.Ptr.<init>:(I)V
            astore 11 /* dp */
        start local 11 // org.jcodings.Ptr dp
         6: .line 462
            iconst_0
            istore 12 /* de */
        start local 12 // int de
         7: .line 466
            aload 3 /* dst */
            ifnonnull 11
         8: .line 467
            new org.jruby.util.ByteList
            dup
            iload 5 /* len */
            invokespecial org.jruby.util.ByteList.<init>:(I)V
            astore 3 /* dst */
         9: .line 468
            aload 1 /* ec */
            getfield org.jcodings.transcode.EConv.destinationEncoding:Lorg/jcodings/Encoding;
            ifnull 11
        10: .line 469
            aload 3 /* dst */
            aload 1 /* ec */
            getfield org.jcodings.transcode.EConv.destinationEncoding:Lorg/jcodings/Encoding;
            invokevirtual org.jruby.util.ByteList.setEncoding:(Lorg/jcodings/Encoding;)V
        11: .line 473
      StackMap locals: org.jruby.runtime.ThreadContext org.jcodings.transcode.EConv org.jruby.util.ByteList org.jruby.util.ByteList int int org.jcodings.Ptr int int int top org.jcodings.Ptr int
      StackMap stack:
            aload 1 /* ec */
            getfield org.jcodings.transcode.EConv.lastTranscoding:Lorg/jcodings/transcode/Transcoding;
            ifnull 14
        12: .line 474
            aload 1 /* ec */
            getfield org.jcodings.transcode.EConv.lastTranscoding:Lorg/jcodings/transcode/Transcoding;
            getfield org.jcodings.transcode.Transcoding.transcoder:Lorg/jcodings/transcode/Transcoder;
            getfield org.jcodings.transcode.Transcoder.maxOutput:I
            istore 14 /* maxOutput */
        start local 14 // int maxOutput
        13: .line 475
            goto 15
        end local 14 // int maxOutput
        14: .line 476
      StackMap locals:
      StackMap stack:
            iconst_1
            istore 14 /* maxOutput */
        start local 14 // int maxOutput
        15: .line 480
      StackMap locals: org.jruby.runtime.ThreadContext org.jcodings.transcode.EConv org.jruby.util.ByteList org.jruby.util.ByteList int int org.jcodings.Ptr int int int top org.jcodings.Ptr int top int
      StackMap stack:
            aload 3 /* dst */
            invokevirtual org.jruby.util.ByteList.getRealSize:()I
            istore 15 /* dlen */
        start local 15 // int dlen
        16: .line 481
            aload 3 /* dst */
            invokevirtual org.jruby.util.ByteList.getUnsafeBytes:()[B
            arraylength
            aload 3 /* dst */
            invokevirtual org.jruby.util.ByteList.getBegin:()I
            isub
            iload 15 /* dlen */
            isub
            iload 5 /* len */
            iload 14 /* maxOutput */
            iadd
            if_icmpge 22
        17: .line 482
            iload 15 /* dlen */
            iload 5 /* len */
            iadd
            iload 14 /* maxOutput */
            iadd
            i2l
            lstore 16 /* newCapa */
        start local 16 // long newCapa
        18: .line 483
            ldc 2147483647
            lload 16 /* newCapa */
            lcmp
            ifge 20
        19: .line 484
            aload 0 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            ldc "too long string"
            invokevirtual org.jruby.Ruby.newArgumentError:(Ljava/lang/String;)Lorg/jruby/exceptions/RaiseException;
            athrow
        20: .line 486
      StackMap locals: int long
      StackMap stack:
            aload 3 /* dst */
            lload 16 /* newCapa */
            l2i
            invokevirtual org.jruby.util.ByteList.ensure:(I)V
        21: .line 487
            aload 3 /* dst */
            iload 15 /* dlen */
            invokevirtual org.jruby.util.ByteList.setRealSize:(I)V
        end local 16 // long newCapa
        22: .line 489
      StackMap locals:
      StackMap stack:
            aload 6 /* sp */
            iload 9 /* ss */
            putfield org.jcodings.Ptr.p:I
        23: .line 490
            aload 6 /* sp */
            getfield org.jcodings.Ptr.p:I
            iload 5 /* len */
            iadd
            istore 7 /* se */
        24: .line 491
            aload 3 /* dst */
            invokevirtual org.jruby.util.ByteList.getUnsafeBytes:()[B
            astore 10 /* dBytes */
        start local 10 // byte[] dBytes
        25: .line 492
            aload 3 /* dst */
            invokevirtual org.jruby.util.ByteList.getBegin:()I
            istore 8 /* ds */
        26: .line 493
            aload 10 /* dBytes */
            arraylength
            istore 12 /* de */
        27: .line 494
            aload 11 /* dp */
            iload 8 /* ds */
            iload 15 /* dlen */
            iadd
            dup
            istore 8 /* ds */
            putfield org.jcodings.Ptr.p:I
        28: .line 495
            aload 1 /* ec */
            aload 2 /* sByteList */
            invokevirtual org.jruby.util.ByteList.getUnsafeBytes:()[B
            aload 6 /* sp */
            iload 7 /* se */
            aload 10 /* dBytes */
            aload 11 /* dp */
            iload 12 /* de */
            iload 4 /* flags */
            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
        29: .line 496
            iload 5 /* len */
            aload 6 /* sp */
            getfield org.jcodings.Ptr.p:I
            iload 9 /* ss */
            isub
            isub
            istore 5 /* len */
        30: .line 497
            aload 6 /* sp */
            getfield org.jcodings.Ptr.p:I
            istore 9 /* ss */
        31: .line 498
            aload 3 /* dst */
            iload 15 /* dlen */
            aload 11 /* dp */
            getfield org.jcodings.Ptr.p:I
            iload 8 /* ds */
            isub
            iadd
            invokevirtual org.jruby.util.ByteList.setRealSize:(I)V
        32: .line 499
            aload 0 /* context */
            aload 1 /* ec */
            invokestatic org.jruby.util.io.EncodingUtils.econvCheckError:(Lorg/jruby/runtime/ThreadContext;Lorg/jcodings/transcode/EConv;)V
        end local 15 // int dlen
        33: .line 500
            aload 13 /* res */
            getstatic org.jcodings.transcode.EConvResult.DestinationBufferFull:Lorg/jcodings/transcode/EConvResult;
            if_acmpeq 15
        34: .line 502
            aload 3 /* dst */
            areturn
        end local 14 // int maxOutput
        end local 13 // org.jcodings.transcode.EConvResult res
        end local 12 // int de
        end local 11 // org.jcodings.Ptr dp
        end local 10 // byte[] dBytes
        end local 9 // int ss
        end local 8 // int ds
        end local 7 // int se
        end local 6 // org.jcodings.Ptr sp
        end local 5 // int len
        end local 4 // int flags
        end local 3 // org.jruby.util.ByteList dst
        end local 2 // org.jruby.util.ByteList sByteList
        end local 1 // org.jcodings.transcode.EConv ec
        end local 0 // org.jruby.runtime.ThreadContext context
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   35     0    context  Lorg/jruby/runtime/ThreadContext;
            0   35     1         ec  Lorg/jcodings/transcode/EConv;
            0   35     2  sByteList  Lorg/jruby/util/ByteList;
            0   35     3        dst  Lorg/jruby/util/ByteList;
            0   35     4      flags  I
            1   35     5        len  I
            2   35     6         sp  Lorg/jcodings/Ptr;
            3   35     7         se  I
            4   35     8         ds  I
            5   35     9         ss  I
           25   35    10     dBytes  [B
            6   35    11         dp  Lorg/jcodings/Ptr;
            7   35    12         de  I
           29   35    13        res  Lorg/jcodings/transcode/EConvResult;
           13   14    14  maxOutput  I
           15   35    14  maxOutput  I
           16   33    15       dlen  I
           18   22    16    newCapa  J
    MethodParameters:
           Name  Flags
      context    
      ec         
      sByteList  
      dst        
      flags      

  public static void econvCheckError(org.jruby.runtime.ThreadContext, org.jcodings.transcode.EConv);
    descriptor: (Lorg/jruby/runtime/ThreadContext;Lorg/jcodings/transcode/EConv;)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // org.jruby.runtime.ThreadContext context
        start local 1 // org.jcodings.transcode.EConv ec
         0: .line 507
            aload 0 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            aload 1 /* ec */
            invokestatic org.jruby.util.io.EncodingUtils.makeEconvException:(Lorg/jruby/Ruby;Lorg/jcodings/transcode/EConv;)Lorg/jruby/exceptions/RaiseException;
            astore 2 /* re */
        start local 2 // org.jruby.exceptions.RaiseException re
         1: .line 508
            aload 2 /* re */
            ifnull 2
            aload 2 /* re */
            athrow
         2: .line 509
      StackMap locals: org.jruby.exceptions.RaiseException
      StackMap stack:
            return
        end local 2 // org.jruby.exceptions.RaiseException re
        end local 1 // org.jcodings.transcode.EConv ec
        end local 0 // org.jruby.runtime.ThreadContext context
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    3     0  context  Lorg/jruby/runtime/ThreadContext;
            0    3     1       ec  Lorg/jcodings/transcode/EConv;
            1    3     2       re  Lorg/jruby/exceptions/RaiseException;
    MethodParameters:
         Name  Flags
      context  
      ec       

  public static int econvPrepareOpts(org.jruby.runtime.ThreadContext, org.jruby.runtime.builtin.IRubyObject, org.jruby.runtime.builtin.IRubyObject[]);
    descriptor: (Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;[Lorg/jruby/runtime/builtin/IRubyObject;)I
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // org.jruby.runtime.ThreadContext context
        start local 1 // org.jruby.runtime.builtin.IRubyObject opthash
        start local 2 // org.jruby.runtime.builtin.IRubyObject[] opts
         0: .line 513
            aload 0 /* context */
            aload 1 /* opthash */
            aload 2 /* opts */
            iconst_0
            invokestatic org.jruby.util.io.EncodingUtils.econvPrepareOptions:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;[Lorg/jruby/runtime/builtin/IRubyObject;I)I
            ireturn
        end local 2 // org.jruby.runtime.builtin.IRubyObject[] opts
        end local 1 // org.jruby.runtime.builtin.IRubyObject opthash
        end local 0 // org.jruby.runtime.ThreadContext context
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     0  context  Lorg/jruby/runtime/ThreadContext;
            0    1     1  opthash  Lorg/jruby/runtime/builtin/IRubyObject;
            0    1     2     opts  [Lorg/jruby/runtime/builtin/IRubyObject;
    MethodParameters:
         Name  Flags
      context  
      opthash  
      opts     

  public static int econvPrepareOptions(org.jruby.runtime.ThreadContext, org.jruby.runtime.builtin.IRubyObject, org.jruby.runtime.builtin.IRubyObject[], int);
    descriptor: (Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;[Lorg/jruby/runtime/builtin/IRubyObject;I)I
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=9, args_size=4
        start local 0 // org.jruby.runtime.ThreadContext context
        start local 1 // org.jruby.runtime.builtin.IRubyObject opthash
        start local 2 // org.jruby.runtime.builtin.IRubyObject[] opts
        start local 3 // int ecflags
         0: .line 518
            aload 0 /* context */
            getfield org.jruby.runtime.ThreadContext.nil:Lorg/jruby/runtime/builtin/IRubyObject;
            astore 4 /* newhash */
        start local 4 // org.jruby.runtime.builtin.IRubyObject newhash
         1: .line 521
            aload 1 /* opthash */
            invokeinterface org.jruby.runtime.builtin.IRubyObject.isNil:()Z
            ifeq 4
         2: .line 522
            aload 2 /* opts */
            iconst_0
            aload 0 /* context */
            getfield org.jruby.runtime.ThreadContext.nil:Lorg/jruby/runtime/builtin/IRubyObject;
            aastore
         3: .line 523
            iload 3 /* ecflags */
            ireturn
         4: .line 526
      StackMap locals: org.jruby.runtime.builtin.IRubyObject
      StackMap stack:
            aload 1 /* opthash */
            checkcast org.jruby.RubyHash
            astore 6 /* optHash2 */
        start local 6 // org.jruby.RubyHash optHash2
         5: .line 527
            aload 0 /* context */
            aload 1 /* opthash */
            iload 3 /* ecflags */
            invokestatic org.jruby.util.io.EncodingUtils.econvOpts:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;I)I
            istore 3 /* ecflags */
         6: .line 529
            aload 6 /* optHash2 */
            aload 0 /* context */
            aload 0 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            ldc "replace"
            invokevirtual org.jruby.Ruby.newSymbol:(Ljava/lang/String;)Lorg/jruby/RubySymbol;
            invokevirtual org.jruby.RubyHash.op_aref:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
            astore 5 /* v */
        start local 5 // org.jruby.runtime.builtin.IRubyObject v
         7: .line 530
            aload 5 /* v */
            invokeinterface org.jruby.runtime.builtin.IRubyObject.isNil:()Z
            ifne 14
         8: .line 531
            aload 5 /* v */
            invokeinterface org.jruby.runtime.builtin.IRubyObject.convertToString:()Lorg/jruby/RubyString;
            astore 7 /* v_str */
        start local 7 // org.jruby.RubyString v_str
         9: .line 532
            aload 7 /* v_str */
            invokevirtual org.jruby.RubyString.scanForCodeRange:()I
            bipush 48
            if_icmpne 11
        10: .line 533
            aload 0 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            new java.lang.StringBuilder
            dup
            ldc "replacement string is broken: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 7 /* v_str */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual org.jruby.Ruby.newArgumentError:(Ljava/lang/String;)Lorg/jruby/exceptions/RaiseException;
            athrow
        11: .line 535
      StackMap locals: org.jruby.runtime.builtin.IRubyObject org.jruby.RubyHash org.jruby.RubyString
      StackMap stack:
            aload 7 /* v_str */
            aload 0 /* context */
            invokevirtual org.jruby.RubyString.freeze:(Lorg/jruby/runtime/ThreadContext;)Lorg/jruby/runtime/builtin/IRubyObject;
            astore 5 /* v */
        12: .line 536
            aload 0 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            invokestatic org.jruby.RubyHash.newHash:(Lorg/jruby/Ruby;)Lorg/jruby/RubyHash;
            astore 4 /* newhash */
        13: .line 537
            aload 4 /* newhash */
            checkcast org.jruby.RubyHash
            aload 0 /* context */
            aload 0 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            ldc "replace"
            invokevirtual org.jruby.Ruby.newSymbol:(Ljava/lang/String;)Lorg/jruby/RubySymbol;
            aload 5 /* v */
            invokevirtual org.jruby.RubyHash.op_aset:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
            pop
        end local 7 // org.jruby.RubyString v_str
        14: .line 540
      StackMap locals:
      StackMap stack:
            aload 6 /* optHash2 */
            aload 0 /* context */
            aload 0 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            ldc "fallback"
            invokevirtual org.jruby.Ruby.newSymbol:(Ljava/lang/String;)Lorg/jruby/RubySymbol;
            invokevirtual org.jruby.RubyHash.op_aref:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
            astore 5 /* v */
        15: .line 541
            aload 5 /* v */
            invokeinterface org.jruby.runtime.builtin.IRubyObject.isNil:()Z
            ifne 28
        16: .line 542
            aload 0 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            aload 5 /* v */
            invokestatic org.jruby.util.TypeConverter.checkHashType:(Lorg/jruby/Ruby;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
            astore 7 /* h */
        start local 7 // org.jruby.runtime.builtin.IRubyObject h
        17: .line 544
            aload 7 /* h */
            invokeinterface org.jruby.runtime.builtin.IRubyObject.isNil:()Z
            ifeq 22
        18: .line 545
            aload 5 /* v */
            instanceof org.jruby.RubyProc
            ifne 19
            aload 5 /* v */
            instanceof org.jruby.RubyMethod
            ifne 19
            aload 5 /* v */
            ldc "[]"
            invokeinterface org.jruby.runtime.builtin.IRubyObject.respondsTo:(Ljava/lang/String;)Z
            ifne 19
            iconst_0
            goto 20
      StackMap locals: org.jruby.runtime.builtin.IRubyObject
      StackMap stack:
        19: iconst_1
      StackMap locals:
      StackMap stack: int
        20: istore 8 /* condition */
        start local 8 // boolean condition
        21: .line 546
            goto 24
        end local 8 // boolean condition
        22: .line 547
      StackMap locals:
      StackMap stack:
            aload 7 /* h */
            astore 5 /* v */
        23: .line 548
            iconst_1
            istore 8 /* condition */
        start local 8 // boolean condition
        24: .line 551
      StackMap locals: int
      StackMap stack:
            iload 8 /* condition */
            ifeq 28
        25: .line 552
            aload 4 /* newhash */
            invokeinterface org.jruby.runtime.builtin.IRubyObject.isNil:()Z
            ifeq 27
        26: .line 553
            aload 0 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            invokestatic org.jruby.RubyHash.newHash:(Lorg/jruby/Ruby;)Lorg/jruby/RubyHash;
            astore 4 /* newhash */
        27: .line 555
      StackMap locals:
      StackMap stack:
            aload 4 /* newhash */
            checkcast org.jruby.RubyHash
            aload 0 /* context */
            aload 0 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            ldc "fallback"
            invokevirtual org.jruby.Ruby.newSymbol:(Ljava/lang/String;)Lorg/jruby/RubySymbol;
            aload 5 /* v */
            invokevirtual org.jruby.RubyHash.op_aset:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
            pop
        end local 8 // boolean condition
        end local 7 // org.jruby.runtime.builtin.IRubyObject h
        28: .line 559
      StackMap locals:
      StackMap stack:
            aload 4 /* newhash */
            invokeinterface org.jruby.runtime.builtin.IRubyObject.isNil:()Z
            ifne 30
        29: .line 560
            aload 4 /* newhash */
            iconst_1
            invokeinterface org.jruby.runtime.builtin.IRubyObject.setFrozen:(Z)V
        30: .line 562
      StackMap locals:
      StackMap stack:
            aload 2 /* opts */
            iconst_0
            aload 4 /* newhash */
            aastore
        31: .line 564
            iload 3 /* ecflags */
            ireturn
        end local 6 // org.jruby.RubyHash optHash2
        end local 5 // org.jruby.runtime.builtin.IRubyObject v
        end local 4 // org.jruby.runtime.builtin.IRubyObject newhash
        end local 3 // int ecflags
        end local 2 // org.jruby.runtime.builtin.IRubyObject[] opts
        end local 1 // org.jruby.runtime.builtin.IRubyObject opthash
        end local 0 // org.jruby.runtime.ThreadContext context
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   32     0    context  Lorg/jruby/runtime/ThreadContext;
            0   32     1    opthash  Lorg/jruby/runtime/builtin/IRubyObject;
            0   32     2       opts  [Lorg/jruby/runtime/builtin/IRubyObject;
            0   32     3    ecflags  I
            1   32     4    newhash  Lorg/jruby/runtime/builtin/IRubyObject;
            7   32     5          v  Lorg/jruby/runtime/builtin/IRubyObject;
            5   32     6   optHash2  Lorg/jruby/RubyHash;
            9   14     7      v_str  Lorg/jruby/RubyString;
           17   28     7          h  Lorg/jruby/runtime/builtin/IRubyObject;
           21   22     8  condition  Z
           24   28     8  condition  Z
    MethodParameters:
         Name  Flags
      context  
      opthash  
      opts     
      ecflags  

  public static int econvOpts(org.jruby.runtime.ThreadContext, org.jruby.runtime.builtin.IRubyObject, int);
    descriptor: (Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;I)I
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=7, args_size=3
        start local 0 // org.jruby.runtime.ThreadContext context
        start local 1 // org.jruby.runtime.builtin.IRubyObject opt
        start local 2 // int ecflags
         0: .line 569
            aload 0 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            astore 3 /* runtime */
        start local 3 // org.jruby.Ruby runtime
         1: .line 572
            aload 1 /* opt */
            checkcast org.jruby.RubyHash
            aload 0 /* context */
            aload 3 /* runtime */
            ldc "invalid"
            invokevirtual org.jruby.Ruby.newSymbol:(Ljava/lang/String;)Lorg/jruby/RubySymbol;
            invokevirtual org.jruby.RubyHash.op_aref:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
            astore 4 /* v */
        start local 4 // org.jruby.runtime.builtin.IRubyObject v
         2: .line 573
            aload 4 /* v */
            invokeinterface org.jruby.runtime.builtin.IRubyObject.isNil:()Z
            ifne 7
         3: .line 574
            aload 4 /* v */
            invokevirtual java.lang.Object.toString:()Ljava/lang/String;
            ldc "replace"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 6
         4: .line 575
            iload 2 /* ecflags */
            iconst_2
            ior
            istore 2 /* ecflags */
         5: .line 576
            goto 7
         6: .line 577
      StackMap locals: org.jruby.Ruby org.jruby.runtime.builtin.IRubyObject
      StackMap stack:
            aload 3 /* runtime */
            ldc "unknown value for invalid character option"
            invokevirtual org.jruby.Ruby.newArgumentError:(Ljava/lang/String;)Lorg/jruby/exceptions/RaiseException;
            athrow
         7: .line 580
      StackMap locals:
      StackMap stack:
            aload 1 /* opt */
            checkcast org.jruby.RubyHash
            aload 0 /* context */
            aload 3 /* runtime */
            ldc "undef"
            invokevirtual org.jruby.Ruby.newSymbol:(Ljava/lang/String;)Lorg/jruby/RubySymbol;
            invokevirtual org.jruby.RubyHash.op_aref:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
            astore 4 /* v */
         8: .line 581
            aload 4 /* v */
            invokeinterface org.jruby.runtime.builtin.IRubyObject.isNil:()Z
            ifne 13
         9: .line 582
            aload 4 /* v */
            invokevirtual java.lang.Object.toString:()Ljava/lang/String;
            ldc "replace"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 12
        10: .line 583
            iload 2 /* ecflags */
            bipush 32
            ior
            istore 2 /* ecflags */
        11: .line 584
            goto 13
        12: .line 585
      StackMap locals:
      StackMap stack:
            aload 3 /* runtime */
            ldc "unknown value for undefined character option"
            invokevirtual org.jruby.Ruby.newArgumentError:(Ljava/lang/String;)Lorg/jruby/exceptions/RaiseException;
            athrow
        13: .line 588
      StackMap locals:
      StackMap stack:
            aload 1 /* opt */
            checkcast org.jruby.RubyHash
            aload 0 /* context */
            aload 3 /* runtime */
            ldc "replace"
            invokevirtual org.jruby.Ruby.newSymbol:(Ljava/lang/String;)Lorg/jruby/RubySymbol;
            invokevirtual org.jruby.RubyHash.op_aref:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
            astore 4 /* v */
        14: .line 589
            aload 4 /* v */
            invokeinterface org.jruby.runtime.builtin.IRubyObject.isNil:()Z
            ifne 16
            iload 2 /* ecflags */
            iconst_2
            iand
            ifeq 16
        15: .line 590
            iload 2 /* ecflags */
            bipush 32
            ior
            istore 2 /* ecflags */
        16: .line 593
      StackMap locals:
      StackMap stack:
            aload 1 /* opt */
            checkcast org.jruby.RubyHash
            aload 0 /* context */
            aload 3 /* runtime */
            ldc "xml"
            invokevirtual org.jruby.Ruby.newSymbol:(Ljava/lang/String;)Lorg/jruby/RubySymbol;
            invokevirtual org.jruby.RubyHash.op_aref:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
            astore 4 /* v */
        17: .line 594
            aload 4 /* v */
            invokeinterface org.jruby.runtime.builtin.IRubyObject.isNil:()Z
            ifne 25
        18: .line 595
            aload 4 /* v */
            invokevirtual java.lang.Object.toString:()Ljava/lang/String;
            ldc "text"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 21
        19: .line 596
            iload 2 /* ecflags */
            sipush 16432
            ior
            istore 2 /* ecflags */
        20: .line 597
            goto 25
      StackMap locals:
      StackMap stack:
        21: aload 4 /* v */
            invokevirtual java.lang.Object.toString:()Ljava/lang/String;
            ldc "attr"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 24
        22: .line 598
            iload 2 /* ecflags */
            ldc 1081392
            ior
            istore 2 /* ecflags */
        23: .line 599
            goto 25
        24: .line 600
      StackMap locals:
      StackMap stack:
            aload 3 /* runtime */
            new java.lang.StringBuilder
            dup
            ldc "unexpected value for xml option: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 4 /* v */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual org.jruby.Ruby.newArgumentError:(Ljava/lang/String;)Lorg/jruby/exceptions/RaiseException;
            athrow
        25: .line 604
      StackMap locals:
      StackMap stack:
            aload 1 /* opt */
            checkcast org.jruby.RubyHash
            aload 0 /* context */
            aload 3 /* runtime */
            ldc "newline"
            invokevirtual org.jruby.Ruby.newSymbol:(Ljava/lang/String;)Lorg/jruby/RubySymbol;
            invokevirtual org.jruby.RubyHash.op_aref:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
            astore 4 /* v */
        26: .line 605
            aload 4 /* v */
            invokeinterface org.jruby.runtime.builtin.IRubyObject.isNil:()Z
            ifne 41
        27: .line 606
            iload 2 /* ecflags */
            sipush -16129
            iand
            istore 2 /* ecflags */
        28: .line 607
            aload 4 /* v */
            invokevirtual java.lang.Object.toString:()Ljava/lang/String;
            ldc "universal"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 31
        29: .line 608
            iload 2 /* ecflags */
            sipush 256
            ior
            istore 2 /* ecflags */
        30: .line 609
            goto 41
      StackMap locals:
      StackMap stack:
        31: aload 4 /* v */
            invokevirtual java.lang.Object.toString:()Ljava/lang/String;
            ldc "crlf"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 34
        32: .line 610
            iload 2 /* ecflags */
            sipush 4096
            ior
            istore 2 /* ecflags */
        33: .line 611
            goto 41
      StackMap locals:
      StackMap stack:
        34: aload 4 /* v */
            invokevirtual java.lang.Object.toString:()Ljava/lang/String;
            ldc "cr"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 37
        35: .line 612
            iload 2 /* ecflags */
            sipush 8192
            ior
            istore 2 /* ecflags */
        36: .line 613
            goto 41
      StackMap locals:
      StackMap stack:
        37: aload 4 /* v */
            invokevirtual java.lang.Object.toString:()Ljava/lang/String;
            ldc "lf"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 41
        38: .line 615
            aload 4 /* v */
            instanceof org.jruby.RubySymbol
            ifeq 40
        39: .line 616
            aload 3 /* runtime */
            new java.lang.StringBuilder
            dup
            ldc "unexpected value for newline option: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 4 /* v */
            checkcast org.jruby.RubySymbol
            aload 0 /* context */
            invokevirtual org.jruby.RubySymbol.to_s:(Lorg/jruby/runtime/ThreadContext;)Lorg/jruby/runtime/builtin/IRubyObject;
            invokevirtual java.lang.Object.toString:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual org.jruby.Ruby.newArgumentError:(Ljava/lang/String;)Lorg/jruby/exceptions/RaiseException;
            athrow
        40: .line 618
      StackMap locals:
      StackMap stack:
            aload 3 /* runtime */
            ldc "unexpected value for newline option"
            invokevirtual org.jruby.Ruby.newArgumentError:(Ljava/lang/String;)Lorg/jruby/exceptions/RaiseException;
            athrow
        41: .line 622
      StackMap locals:
      StackMap stack:
            iconst_0
            istore 5 /* setflags */
        start local 5 // int setflags
        42: .line 623
            iconst_0
            istore 6 /* newlineflag */
        start local 6 // boolean newlineflag
        43: .line 625
            aload 1 /* opt */
            checkcast org.jruby.RubyHash
            aload 0 /* context */
            aload 3 /* runtime */
            ldc "universal_newline"
            invokevirtual org.jruby.Ruby.newSymbol:(Ljava/lang/String;)Lorg/jruby/RubySymbol;
            invokevirtual org.jruby.RubyHash.op_aref:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
            astore 4 /* v */
        44: .line 626
            aload 4 /* v */
            invokeinterface org.jruby.runtime.builtin.IRubyObject.isTrue:()Z
            ifeq 46
        45: .line 627
            iload 5 /* setflags */
            sipush 256
            ior
            istore 5 /* setflags */
        46: .line 629
      StackMap locals: int int
      StackMap stack:
            iload 6 /* newlineflag */
            aload 4 /* v */
            invokeinterface org.jruby.runtime.builtin.IRubyObject.isNil:()Z
            ifeq 47
            iconst_0
            goto 48
      StackMap locals:
      StackMap stack: int
        47: iconst_1
      StackMap locals: org.jruby.runtime.ThreadContext org.jruby.runtime.builtin.IRubyObject int org.jruby.Ruby org.jruby.runtime.builtin.IRubyObject int int
      StackMap stack: int int
        48: ior
            istore 6 /* newlineflag */
        49: .line 631
            aload 1 /* opt */
            checkcast org.jruby.RubyHash
            aload 0 /* context */
            aload 3 /* runtime */
            ldc "crlf_newline"
            invokevirtual org.jruby.Ruby.newSymbol:(Ljava/lang/String;)Lorg/jruby/RubySymbol;
            invokevirtual org.jruby.RubyHash.op_aref:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
            astore 4 /* v */
        50: .line 632
            aload 4 /* v */
            invokeinterface org.jruby.runtime.builtin.IRubyObject.isTrue:()Z
            ifeq 52
        51: .line 633
            iload 5 /* setflags */
            sipush 4096
            ior
            istore 5 /* setflags */
        52: .line 635
      StackMap locals:
      StackMap stack:
            iload 6 /* newlineflag */
            aload 4 /* v */
            invokeinterface org.jruby.runtime.builtin.IRubyObject.isNil:()Z
            ifeq 53
            iconst_0
            goto 54
      StackMap locals:
      StackMap stack: int
        53: iconst_1
      StackMap locals: org.jruby.runtime.ThreadContext org.jruby.runtime.builtin.IRubyObject int org.jruby.Ruby org.jruby.runtime.builtin.IRubyObject int int
      StackMap stack: int int
        54: ior
            istore 6 /* newlineflag */
        55: .line 637
            aload 1 /* opt */
            checkcast org.jruby.RubyHash
            aload 0 /* context */
            aload 3 /* runtime */
            ldc "cr_newline"
            invokevirtual org.jruby.Ruby.newSymbol:(Ljava/lang/String;)Lorg/jruby/RubySymbol;
            invokevirtual org.jruby.RubyHash.op_aref:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
            astore 4 /* v */
        56: .line 638
            aload 4 /* v */
            invokeinterface org.jruby.runtime.builtin.IRubyObject.isTrue:()Z
            ifeq 58
        57: .line 639
            iload 5 /* setflags */
            sipush 8192
            ior
            istore 5 /* setflags */
        58: .line 641
      StackMap locals:
      StackMap stack:
            iload 6 /* newlineflag */
            aload 4 /* v */
            invokeinterface org.jruby.runtime.builtin.IRubyObject.isNil:()Z
            ifeq 59
            iconst_0
            goto 60
      StackMap locals:
      StackMap stack: int
        59: iconst_1
      StackMap locals: org.jruby.runtime.ThreadContext org.jruby.runtime.builtin.IRubyObject int org.jruby.Ruby org.jruby.runtime.builtin.IRubyObject int int
      StackMap stack: int int
        60: ior
            istore 6 /* newlineflag */
        61: .line 643
            iload 6 /* newlineflag */
            ifeq 64
        62: .line 644
            iload 2 /* ecflags */
            sipush -16129
            iand
            istore 2 /* ecflags */
        63: .line 645
            iload 2 /* ecflags */
            iload 5 /* setflags */
            ior
            istore 2 /* ecflags */
        64: .line 648
      StackMap locals:
      StackMap stack:
            iload 2 /* ecflags */
            ireturn
        end local 6 // boolean newlineflag
        end local 5 // int setflags
        end local 4 // org.jruby.runtime.builtin.IRubyObject v
        end local 3 // org.jruby.Ruby runtime
        end local 2 // int ecflags
        end local 1 // org.jruby.runtime.builtin.IRubyObject opt
        end local 0 // org.jruby.runtime.ThreadContext context
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   65     0      context  Lorg/jruby/runtime/ThreadContext;
            0   65     1          opt  Lorg/jruby/runtime/builtin/IRubyObject;
            0   65     2      ecflags  I
            1   65     3      runtime  Lorg/jruby/Ruby;
            2   65     4            v  Lorg/jruby/runtime/builtin/IRubyObject;
           42   65     5     setflags  I
           43   65     6  newlineflag  Z
    MethodParameters:
         Name  Flags
      context  
      opt      
      ecflags  

  public static org.jcodings.transcode.EConv econvOpenOpts(org.jruby.runtime.ThreadContext, byte[], byte[], int, org.jruby.runtime.builtin.IRubyObject);
    descriptor: (Lorg/jruby/runtime/ThreadContext;[B[BILorg/jruby/runtime/builtin/IRubyObject;)Lorg/jcodings/transcode/EConv;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=5, locals=11, args_size=5
        start local 0 // org.jruby.runtime.ThreadContext context
        start local 1 // byte[] sourceEncoding
        start local 2 // byte[] destinationEncoding
        start local 3 // int ecflags
        start local 4 // org.jruby.runtime.builtin.IRubyObject opthash
         0: .line 653
            aload 0 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            astore 5 /* runtime */
        start local 5 // org.jruby.Ruby runtime
         1: .line 656
            aload 4 /* opthash */
            ifnull 2
            aload 4 /* opthash */
            invokeinterface org.jruby.runtime.builtin.IRubyObject.isNil:()Z
            ifeq 4
         2: .line 657
      StackMap locals: org.jruby.Ruby
      StackMap stack:
            aload 0 /* context */
            getfield org.jruby.runtime.ThreadContext.nil:Lorg/jruby/runtime/builtin/IRubyObject;
            astore 6 /* replacement */
        start local 6 // org.jruby.runtime.builtin.IRubyObject replacement
         3: .line 658
            goto 7
        end local 6 // org.jruby.runtime.builtin.IRubyObject replacement
         4: .line 659
      StackMap locals:
      StackMap stack:
            aload 4 /* opthash */
            instanceof org.jruby.RubyHash
            ifeq 5
            aload 4 /* opthash */
            invokeinterface org.jruby.runtime.builtin.IRubyObject.isFrozen:()Z
            ifne 6
         5: .line 660
      StackMap locals:
      StackMap stack:
            aload 5 /* runtime */
            ldc "bug: EncodingUtils.econvOpenOpts called with invalid opthash"
            invokevirtual org.jruby.Ruby.newRuntimeError:(Ljava/lang/String;)Lorg/jruby/exceptions/RaiseException;
            athrow
         6: .line 662
      StackMap locals:
      StackMap stack:
            aload 4 /* opthash */
            checkcast org.jruby.RubyHash
            aload 0 /* context */
            aload 5 /* runtime */
            ldc "replace"
            invokevirtual org.jruby.Ruby.newSymbol:(Ljava/lang/String;)Lorg/jruby/RubySymbol;
            invokevirtual org.jruby.RubyHash.op_aref:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
            astore 6 /* replacement */
        start local 6 // org.jruby.runtime.builtin.IRubyObject replacement
         7: .line 665
      StackMap locals: org.jruby.runtime.builtin.IRubyObject
      StackMap stack:
            aload 1 /* sourceEncoding */
            aload 2 /* destinationEncoding */
            iload 3 /* ecflags */
            invokestatic org.jcodings.transcode.TranscoderDB.open:([B[BI)Lorg/jcodings/transcode/EConv;
            astore 7 /* ec */
        start local 7 // org.jcodings.transcode.EConv ec
         8: .line 666
            aload 7 /* ec */
            ifnonnull 9
            aload 7 /* ec */
            areturn
         9: .line 668
      StackMap locals: org.jcodings.transcode.EConv
      StackMap stack:
            aload 6 /* replacement */
            invokeinterface org.jruby.runtime.builtin.IRubyObject.isNil:()Z
            ifne 17
        10: .line 670
            aload 6 /* replacement */
            checkcast org.jruby.RubyString
            astore 9 /* replStr */
        start local 9 // org.jruby.RubyString replStr
        11: .line 671
            aload 9 /* replStr */
            invokevirtual org.jruby.RubyString.getByteList:()Lorg/jruby/util/ByteList;
            astore 10 /* replBL */
        start local 10 // org.jruby.util.ByteList replBL
        12: .line 672
            aload 7 /* ec */
            invokevirtual org.jcodings.transcode.EConv.makeReplacement:()I
            pop
        13: .line 674
            aload 7 /* ec */
            aload 10 /* replBL */
            invokevirtual org.jruby.util.ByteList.getUnsafeBytes:()[B
            aload 10 /* replBL */
            invokevirtual org.jruby.util.ByteList.getBegin:()I
            aload 10 /* replBL */
            invokevirtual org.jruby.util.ByteList.getRealSize:()I
            aload 10 /* replBL */
            invokevirtual org.jruby.util.ByteList.getEncoding:()Lorg/jcodings/Encoding;
            invokevirtual org.jcodings.Encoding.getName:()[B
            invokevirtual org.jcodings.transcode.EConv.setReplacement:([BII[B)I
            istore 8 /* ret */
        start local 8 // int ret
        14: .line 676
            iload 8 /* ret */
            iconst_m1
            if_icmpne 17
        15: .line 677
            aload 7 /* ec */
            invokevirtual org.jcodings.transcode.EConv.close:()V
        16: .line 678
            aconst_null
            areturn
        end local 10 // org.jruby.util.ByteList replBL
        end local 9 // org.jruby.RubyString replStr
        end local 8 // int ret
        17: .line 682
      StackMap locals:
      StackMap stack:
            aload 7 /* ec */
            areturn
        end local 7 // org.jcodings.transcode.EConv ec
        end local 6 // org.jruby.runtime.builtin.IRubyObject replacement
        end local 5 // org.jruby.Ruby runtime
        end local 4 // org.jruby.runtime.builtin.IRubyObject opthash
        end local 3 // int ecflags
        end local 2 // byte[] destinationEncoding
        end local 1 // byte[] sourceEncoding
        end local 0 // org.jruby.runtime.ThreadContext context
      LocalVariableTable:
        Start  End  Slot                 Name  Signature
            0   18     0              context  Lorg/jruby/runtime/ThreadContext;
            0   18     1       sourceEncoding  [B
            0   18     2  destinationEncoding  [B
            0   18     3              ecflags  I
            0   18     4              opthash  Lorg/jruby/runtime/builtin/IRubyObject;
            1   18     5              runtime  Lorg/jruby/Ruby;
            3    4     6          replacement  Lorg/jruby/runtime/builtin/IRubyObject;
            7   18     6          replacement  Lorg/jruby/runtime/builtin/IRubyObject;
            8   18     7                   ec  Lorg/jcodings/transcode/EConv;
           14   17     8                  ret  I
           11   17     9              replStr  Lorg/jruby/RubyString;
           12   17    10               replBL  Lorg/jruby/util/ByteList;
    MethodParameters:
                     Name  Flags
      context              
      sourceEncoding       
      destinationEncoding  
      ecflags              
      opthash              

  public static org.jruby.exceptions.RaiseException econvOpenExc(org.jruby.runtime.ThreadContext, byte[], byte[], int);
    descriptor: (Lorg/jruby/runtime/ThreadContext;[B[BI)Lorg/jruby/exceptions/RaiseException;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=7, locals=5, args_size=4
        start local 0 // org.jruby.runtime.ThreadContext context
        start local 1 // byte[] sourceEncoding
        start local 2 // byte[] destinationEncoding
        start local 3 // int ecflags
         0: .line 687
            new java.lang.StringBuilder
            dup
            aload 0 /* context */
            aload 1 /* sourceEncoding */
            aload 2 /* destinationEncoding */
            iload 3 /* ecflags */
            ldc "code converter not found ("
            invokestatic org.jruby.util.io.EncodingUtils.econvDescription:(Lorg/jruby/runtime/ThreadContext;[B[BILjava/lang/String;)Ljava/lang/String;
            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;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 4 /* message */
        start local 4 // java.lang.String message
         1: .line 688
            aload 0 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            aload 4 /* message */
            invokevirtual org.jruby.Ruby.newConverterNotFoundError:(Ljava/lang/String;)Lorg/jruby/exceptions/RaiseException;
            areturn
        end local 4 // java.lang.String message
        end local 3 // int ecflags
        end local 2 // byte[] destinationEncoding
        end local 1 // byte[] sourceEncoding
        end local 0 // org.jruby.runtime.ThreadContext context
      LocalVariableTable:
        Start  End  Slot                 Name  Signature
            0    2     0              context  Lorg/jruby/runtime/ThreadContext;
            0    2     1       sourceEncoding  [B
            0    2     2  destinationEncoding  [B
            0    2     3              ecflags  I
            1    2     4              message  Ljava/lang/String;
    MethodParameters:
                     Name  Flags
      context              
      sourceEncoding       
      destinationEncoding  
      ecflags              

  public static java.lang.String econvDescription(org.jruby.runtime.ThreadContext, byte[], byte[], int, java.lang.String);
    descriptor: (Lorg/jruby/runtime/ThreadContext;[B[BILjava/lang/String;)Ljava/lang/String;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=5, args_size=5
        start local 0 // org.jruby.runtime.ThreadContext context
        start local 1 // byte[] sourceEncoding
        start local 2 // byte[] destinationEncoding
        start local 3 // int ecflags
        start local 4 // java.lang.String message
         0: .line 694
            new java.lang.StringBuilder
            dup
            aload 4 /* message */
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            new java.lang.String
            dup
            aload 1 /* sourceEncoding */
            invokespecial java.lang.String.<init>:([B)V
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc " to "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            new java.lang.String
            dup
            aload 2 /* destinationEncoding */
            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 4 // java.lang.String message
        end local 3 // int ecflags
        end local 2 // byte[] destinationEncoding
        end local 1 // byte[] sourceEncoding
        end local 0 // org.jruby.runtime.ThreadContext context
      LocalVariableTable:
        Start  End  Slot                 Name  Signature
            0    1     0              context  Lorg/jruby/runtime/ThreadContext;
            0    1     1       sourceEncoding  [B
            0    1     2  destinationEncoding  [B
            0    1     3              ecflags  I
            0    1     4              message  Ljava/lang/String;
    MethodParameters:
                     Name  Flags
      context              
      sourceEncoding       
      destinationEncoding  
      ecflags              
      message              

  public static org.jcodings.Encoding econvAsciicompatEncoding(org.jcodings.Encoding);
    descriptor: (Lorg/jcodings/Encoding;)Lorg/jcodings/Encoding;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.jcodings.Encoding enc
         0: .line 700
            getstatic org.jruby.RubyConverter.NONASCII_TO_ASCII:Ljava/util/Map;
            aload 0 /* enc */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast org.jcodings.Encoding
            areturn
        end local 0 // org.jcodings.Encoding enc
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0   enc  Lorg/jcodings/Encoding;
    MethodParameters:
      Name  Flags
      enc   

  public static boolean encAsciicompat(org.jcodings.Encoding);
    descriptor: (Lorg/jcodings/Encoding;)Z
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.jcodings.Encoding enc
         0: .line 705
            aload 0 /* enc */
            invokestatic org.jruby.util.io.EncodingUtils.encMbminlen:(Lorg/jcodings/Encoding;)I
            iconst_1
            if_icmpne 1
            aload 0 /* enc */
            invokestatic org.jruby.util.io.EncodingUtils.encDummy:(Lorg/jcodings/Encoding;)Z
            ifne 1
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         1: iconst_0
            ireturn
        end local 0 // org.jcodings.Encoding enc
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0   enc  Lorg/jcodings/Encoding;
    MethodParameters:
      Name  Flags
      enc   

  public static int encAscget(byte[], int, int, int[], org.jcodings.Encoding);
    descriptor: ([BII[ILorg/jcodings/Encoding;)I
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=7, args_size=5
        start local 0 // byte[] pBytes
        start local 1 // int p
        start local 2 // int e
        start local 3 // int[] len
        start local 4 // org.jcodings.Encoding enc
         0: .line 713
            iload 2 /* e */
            iload 1 /* p */
            if_icmpgt 2
         1: .line 714
            iconst_m1
            ireturn
         2: .line 717
      StackMap locals:
      StackMap stack:
            aload 4 /* enc */
            invokestatic org.jruby.util.io.EncodingUtils.encAsciicompat:(Lorg/jcodings/Encoding;)Z
            ifeq 8
         3: .line 718
            aload 0 /* pBytes */
            iload 1 /* p */
            baload
            sipush 255
            iand
            istore 5 /* c */
        start local 5 // int c
         4: .line 719
            iload 5 /* c */
            i2b
            invokestatic org.jcodings.Encoding.isAscii:(B)Z
            ifne 6
         5: .line 720
            iconst_m1
            ireturn
         6: .line 722
      StackMap locals: int
      StackMap stack:
            aload 3 /* len */
            ifnull 7
            aload 3 /* len */
            iconst_0
            iconst_1
            iastore
         7: .line 723
      StackMap locals:
      StackMap stack:
            iload 5 /* c */
            ireturn
        end local 5 // int c
         8: .line 725
      StackMap locals:
      StackMap stack:
            aload 4 /* enc */
            aload 0 /* pBytes */
            iload 1 /* p */
            iload 2 /* e */
            invokestatic org.jruby.util.StringSupport.preciseLength:(Lorg/jcodings/Encoding;[BII)I
            istore 6 /* l */
        start local 6 // int l
         9: .line 726
            iload 6 /* l */
            invokestatic org.jruby.util.StringSupport.MBCLEN_CHARFOUND_P:(I)Z
            ifne 11
        10: .line 727
            iconst_m1
            ireturn
        11: .line 729
      StackMap locals: byte[] int int int[] org.jcodings.Encoding top int
      StackMap stack:
            aload 4 /* enc */
            aload 0 /* pBytes */
            iload 1 /* p */
            iload 2 /* e */
            invokevirtual org.jcodings.Encoding.mbcToCode:([BII)I
            istore 5 /* c */
        start local 5 // int c
        12: .line 730
            iload 5 /* c */
            invokestatic org.jcodings.Encoding.isAscii:(I)Z
            ifne 14
        13: .line 731
            iconst_m1
            ireturn
        14: .line 733
      StackMap locals: byte[] int int int[] org.jcodings.Encoding int int
      StackMap stack:
            aload 3 /* len */
            ifnull 15
            aload 3 /* len */
            iconst_0
            iload 6 /* l */
            iastore
        15: .line 734
      StackMap locals:
      StackMap stack:
            iload 5 /* c */
            ireturn
        end local 6 // int l
        end local 5 // int c
        end local 4 // org.jcodings.Encoding enc
        end local 3 // int[] len
        end local 2 // int e
        end local 1 // int p
        end local 0 // byte[] pBytes
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   16     0  pBytes  [B
            0   16     1       p  I
            0   16     2       e  I
            0   16     3     len  [I
            0   16     4     enc  Lorg/jcodings/Encoding;
            4    8     5       c  I
           12   16     5       c  I
            9   16     6       l  I
    MethodParameters:
        Name  Flags
      pBytes  
      p       
      e       
      len     
      enc     

  public static int encMbminlen(org.jcodings.Encoding);
    descriptor: (Lorg/jcodings/Encoding;)I
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.jcodings.Encoding encoding
         0: .line 739
            aload 0 /* encoding */
            invokevirtual org.jcodings.Encoding.minLength:()I
            ireturn
        end local 0 // org.jcodings.Encoding encoding
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    1     0  encoding  Lorg/jcodings/Encoding;
    MethodParameters:
          Name  Flags
      encoding  

  public static boolean encDummy(org.jcodings.Encoding);
    descriptor: (Lorg/jcodings/Encoding;)Z
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.jcodings.Encoding enc
         0: .line 744
            aload 0 /* enc */
            invokevirtual org.jcodings.Encoding.isDummy:()Z
            ireturn
        end local 0 // org.jcodings.Encoding enc
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0   enc  Lorg/jcodings/Encoding;
    MethodParameters:
      Name  Flags
      enc   

  public static org.jcodings.Encoding encGet(org.jruby.runtime.ThreadContext, org.jruby.runtime.builtin.IRubyObject);
    descriptor: (Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jcodings/Encoding;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=1, locals=2, args_size=2
        start local 0 // org.jruby.runtime.ThreadContext context
        start local 1 // org.jruby.runtime.builtin.IRubyObject obj
         0: .line 749
            aload 1 /* obj */
            instanceof org.jruby.runtime.encoding.EncodingCapable
            ifeq 2
         1: .line 750
            aload 1 /* obj */
            checkcast org.jruby.runtime.encoding.EncodingCapable
            invokeinterface org.jruby.runtime.encoding.EncodingCapable.getEncoding:()Lorg/jcodings/Encoding;
            areturn
         2: .line 753
      StackMap locals:
      StackMap stack:
            aload 0 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            invokevirtual org.jruby.Ruby.getDefaultInternalEncoding:()Lorg/jcodings/Encoding;
            areturn
        end local 1 // org.jruby.runtime.builtin.IRubyObject obj
        end local 0 // org.jruby.runtime.ThreadContext context
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    3     0  context  Lorg/jruby/runtime/ThreadContext;
            0    3     1      obj  Lorg/jruby/runtime/builtin/IRubyObject;
    MethodParameters:
         Name  Flags
      context  
      obj      

  public static boolean encodingEqual(byte[], byte[]);
    descriptor: ([B[B)Z
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // byte[] enc1
        start local 1 // byte[] enc2
         0: .line 758
            new java.lang.String
            dup
            aload 0 /* enc1 */
            invokespecial java.lang.String.<init>:([B)V
            new java.lang.String
            dup
            aload 1 /* enc2 */
            invokespecial java.lang.String.<init>:([B)V
            invokevirtual java.lang.String.equalsIgnoreCase:(Ljava/lang/String;)Z
            ireturn
        end local 1 // byte[] enc2
        end local 0 // byte[] enc1
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  enc1  [B
            0    1     1  enc2  [B
    MethodParameters:
      Name  Flags
      enc1  
      enc2  

  public static org.jcodings.Encoding encArg(org.jruby.runtime.ThreadContext, org.jruby.runtime.builtin.IRubyObject, byte[][], org.jcodings.Encoding[]);
    descriptor: (Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;[[B[Lorg/jcodings/Encoding;)Lorg/jcodings/Encoding;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=5, args_size=4
        start local 0 // org.jruby.runtime.ThreadContext context
        start local 1 // org.jruby.runtime.builtin.IRubyObject encval
        start local 2 // byte[][] name_p
        start local 3 // org.jcodings.Encoding[] enc_p
         0: .line 764
            aload 0 /* context */
            aload 1 /* encval */
            invokestatic org.jruby.util.io.EncodingUtils.toEncodingIndex:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jcodings/Encoding;
            dup
            astore 4 /* enc */
        start local 4 // org.jcodings.Encoding enc
         1: ifnonnull 4
         2: .line 765
            aload 2 /* name_p */
            iconst_0
            aload 1 /* encval */
            invokeinterface org.jruby.runtime.builtin.IRubyObject.convertToString:()Lorg/jruby/RubyString;
            invokevirtual org.jruby.RubyString.getBytes:()[B
            aastore
         3: .line 766
            goto 5
         4: .line 767
      StackMap locals: org.jcodings.Encoding
      StackMap stack:
            aload 2 /* name_p */
            iconst_0
            aload 4 /* enc */
            invokevirtual org.jcodings.Encoding.getName:()[B
            aastore
         5: .line 770
      StackMap locals:
      StackMap stack:
            aload 3 /* enc_p */
            iconst_0
            aload 4 /* enc */
            dup_x2
            aastore
            areturn
        end local 4 // org.jcodings.Encoding enc
        end local 3 // org.jcodings.Encoding[] enc_p
        end local 2 // byte[][] name_p
        end local 1 // org.jruby.runtime.builtin.IRubyObject encval
        end local 0 // org.jruby.runtime.ThreadContext context
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    6     0  context  Lorg/jruby/runtime/ThreadContext;
            0    6     1   encval  Lorg/jruby/runtime/builtin/IRubyObject;
            0    6     2   name_p  [[B
            0    6     3    enc_p  [Lorg/jcodings/Encoding;
            1    6     4      enc  Lorg/jcodings/Encoding;
    MethodParameters:
         Name  Flags
      context  
      encval   
      name_p   
      enc_p    

  public static org.jcodings.Encoding toEncodingIndex(org.jruby.runtime.ThreadContext, org.jruby.runtime.builtin.IRubyObject);
    descriptor: (Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jcodings/Encoding;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.jruby.runtime.ThreadContext context
        start local 1 // org.jruby.runtime.builtin.IRubyObject enc
         0: .line 775
            aload 1 /* enc */
            instanceof org.jruby.RubyEncoding
            ifeq 2
         1: .line 776
            aload 1 /* enc */
            checkcast org.jruby.RubyEncoding
            invokevirtual org.jruby.RubyEncoding.getEncoding:()Lorg/jcodings/Encoding;
            areturn
         2: .line 777
      StackMap locals:
      StackMap stack:
            aload 1 /* enc */
            invokeinterface org.jruby.runtime.builtin.IRubyObject.checkStringType:()Lorg/jruby/runtime/builtin/IRubyObject;
            dup
            astore 1 /* enc */
            invokeinterface org.jruby.runtime.builtin.IRubyObject.isNil:()Z
            ifeq 4
         3: .line 778
            aconst_null
            areturn
         4: .line 780
      StackMap locals:
      StackMap stack:
            aload 1 /* enc */
            checkcast org.jruby.RubyString
            invokevirtual org.jruby.RubyString.getEncoding:()Lorg/jcodings/Encoding;
            invokevirtual org.jcodings.Encoding.isAsciiCompatible:()Z
            ifne 6
         5: .line 781
            aconst_null
            areturn
         6: .line 783
      StackMap locals:
      StackMap stack:
            aload 0 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            invokevirtual org.jruby.Ruby.getEncodingService:()Lorg/jruby/runtime/encoding/EncodingService;
            aload 1 /* enc */
            invokevirtual org.jruby.runtime.encoding.EncodingService.getEncodingFromObjectNoError:(Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jcodings/Encoding;
            areturn
        end local 1 // org.jruby.runtime.builtin.IRubyObject enc
        end local 0 // org.jruby.runtime.ThreadContext context
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    7     0  context  Lorg/jruby/runtime/ThreadContext;
            0    7     1      enc  Lorg/jruby/runtime/builtin/IRubyObject;
    MethodParameters:
         Name  Flags
      context  
      enc      

  public static org.jruby.runtime.builtin.IRubyObject encodedDup(org.jruby.runtime.ThreadContext, org.jruby.runtime.builtin.IRubyObject, org.jruby.runtime.builtin.IRubyObject, org.jcodings.Encoding);
    descriptor: (Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jcodings/Encoding;)Lorg/jruby/runtime/builtin/IRubyObject;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=4, args_size=4
        start local 0 // org.jruby.runtime.ThreadContext context
        start local 1 // org.jruby.runtime.builtin.IRubyObject newstr
        start local 2 // org.jruby.runtime.builtin.IRubyObject str
        start local 3 // org.jcodings.Encoding encindex
         0: .line 788
            aload 3 /* encindex */
            ifnonnull 1
            aload 2 /* str */
            invokeinterface org.jruby.runtime.builtin.IRubyObject.dup:()Lorg/jruby/runtime/builtin/IRubyObject;
            areturn
         1: .line 789
      StackMap locals:
      StackMap stack:
            aload 1 /* newstr */
            aload 2 /* str */
            if_acmpne 4
         2: .line 790
            aload 2 /* str */
            invokeinterface org.jruby.runtime.builtin.IRubyObject.dup:()Lorg/jruby/runtime/builtin/IRubyObject;
            astore 1 /* newstr */
         3: .line 791
            goto 5
         4: .line 793
      StackMap locals:
      StackMap stack:
            aload 1 /* newstr */
            checkcast org.jruby.RubyBasicObject
            aload 2 /* str */
            invokeinterface org.jruby.runtime.builtin.IRubyObject.getMetaClass:()Lorg/jruby/RubyClass;
            invokevirtual org.jruby.RubyBasicObject.setMetaClass:(Lorg/jruby/RubyClass;)V
         5: .line 795
      StackMap locals:
      StackMap stack:
            aload 1 /* newstr */
            checkcast org.jruby.RubyString
            invokevirtual org.jruby.RubyString.modify19:()V
         6: .line 796
            aload 0 /* context */
            aload 1 /* newstr */
            aload 3 /* encindex */
            invokestatic org.jruby.util.io.EncodingUtils.strEncodeAssociate:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jcodings/Encoding;)Lorg/jruby/runtime/builtin/IRubyObject;
            areturn
        end local 3 // org.jcodings.Encoding encindex
        end local 2 // org.jruby.runtime.builtin.IRubyObject str
        end local 1 // org.jruby.runtime.builtin.IRubyObject newstr
        end local 0 // org.jruby.runtime.ThreadContext context
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    7     0   context  Lorg/jruby/runtime/ThreadContext;
            0    7     1    newstr  Lorg/jruby/runtime/builtin/IRubyObject;
            0    7     2       str  Lorg/jruby/runtime/builtin/IRubyObject;
            0    7     3  encindex  Lorg/jcodings/Encoding;
    MethodParameters:
          Name  Flags
      context   
      newstr    
      str       
      encindex  

  public static org.jruby.runtime.builtin.IRubyObject strEncodeAssociate(org.jruby.runtime.ThreadContext, org.jruby.runtime.builtin.IRubyObject, org.jcodings.Encoding);
    descriptor: (Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jcodings/Encoding;)Lorg/jruby/runtime/builtin/IRubyObject;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=3, args_size=3
        start local 0 // org.jruby.runtime.ThreadContext context
        start local 1 // org.jruby.runtime.builtin.IRubyObject str
        start local 2 // org.jcodings.Encoding encidx
         0: .line 801
            aload 1 /* str */
            aload 2 /* encidx */
            invokestatic org.jruby.util.io.EncodingUtils.encAssociateIndex:(Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jcodings/Encoding;)Lorg/jruby/runtime/builtin/IRubyObject;
            pop
         1: .line 803
            aload 2 /* encidx */
            invokestatic org.jruby.util.io.EncodingUtils.encAsciicompat:(Lorg/jcodings/Encoding;)Z
            ifeq 4
         2: .line 804
            aload 1 /* str */
            checkcast org.jruby.RubyString
            invokevirtual org.jruby.RubyString.scanForCodeRange:()I
            pop
         3: .line 805
            goto 5
         4: .line 806
      StackMap locals:
      StackMap stack:
            aload 1 /* str */
            checkcast org.jruby.RubyString
            bipush 32
            invokevirtual org.jruby.RubyString.setCodeRange:(I)V
         5: .line 809
      StackMap locals:
      StackMap stack:
            aload 1 /* str */
            areturn
        end local 2 // org.jcodings.Encoding encidx
        end local 1 // org.jruby.runtime.builtin.IRubyObject str
        end local 0 // org.jruby.runtime.ThreadContext context
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    6     0  context  Lorg/jruby/runtime/ThreadContext;
            0    6     1      str  Lorg/jruby/runtime/builtin/IRubyObject;
            0    6     2   encidx  Lorg/jcodings/Encoding;
    MethodParameters:
         Name  Flags
      context  
      str      
      encidx   

  public static org.jruby.runtime.builtin.IRubyObject encAssociateIndex(org.jruby.runtime.builtin.IRubyObject, org.jcodings.Encoding);
    descriptor: (Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jcodings/Encoding;)Lorg/jruby/runtime/builtin/IRubyObject;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.jruby.runtime.builtin.IRubyObject obj
        start local 1 // org.jcodings.Encoding encidx
         0: .line 814
            aload 0 /* obj */
            checkcast org.jruby.RubyBasicObject
            invokevirtual org.jruby.RubyBasicObject.checkFrozen:()V
         1: .line 815
            aload 1 /* encidx */
            ifnonnull 2
            getstatic org.jcodings.specific.ASCIIEncoding.INSTANCE:Lorg/jcodings/specific/ASCIIEncoding;
            astore 1 /* encidx */
         2: .line 816
      StackMap locals:
      StackMap stack:
            aload 0 /* obj */
            checkcast org.jruby.runtime.encoding.EncodingCapable
            invokeinterface org.jruby.runtime.encoding.EncodingCapable.getEncoding:()Lorg/jcodings/Encoding;
            aload 1 /* encidx */
            if_acmpne 4
         3: .line 817
            aload 0 /* obj */
            areturn
         4: .line 819
      StackMap locals:
      StackMap stack:
            aload 0 /* obj */
            instanceof org.jruby.RubyString
            ifeq 6
         5: .line 820
            aload 0 /* obj */
            checkcast org.jruby.RubyString
            invokestatic org.jruby.util.CodeRangeSupport.isCodeRangeAsciiOnly:(Lorg/jruby/util/CodeRangeable;)Z
            ifeq 7
         6: .line 821
      StackMap locals:
      StackMap stack:
            aload 1 /* encidx */
            invokestatic org.jruby.util.io.EncodingUtils.encAsciicompat:(Lorg/jcodings/Encoding;)Z
            ifeq 8
         7: .line 822
      StackMap locals:
      StackMap stack:
            aload 0 /* obj */
            checkcast org.jruby.RubyString
            invokevirtual org.jruby.RubyString.clearCodeRange:()V
         8: .line 824
      StackMap locals:
      StackMap stack:
            aload 0 /* obj */
            checkcast org.jruby.runtime.encoding.EncodingCapable
            aload 1 /* encidx */
            invokeinterface org.jruby.runtime.encoding.EncodingCapable.setEncoding:(Lorg/jcodings/Encoding;)V
         9: .line 825
            aload 0 /* obj */
            areturn
        end local 1 // org.jcodings.Encoding encidx
        end local 0 // org.jruby.runtime.builtin.IRubyObject obj
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   10     0     obj  Lorg/jruby/runtime/builtin/IRubyObject;
            0   10     1  encidx  Lorg/jcodings/Encoding;
    MethodParameters:
        Name  Flags
      obj     
      encidx  

  public static org.jruby.runtime.builtin.IRubyObject strEncode(org.jruby.runtime.ThreadContext, org.jruby.runtime.builtin.IRubyObject, org.jruby.runtime.builtin.IRubyObject[]);
    descriptor: (Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;[Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
    flags: (0x0089) ACC_PUBLIC, ACC_STATIC, ACC_VARARGS
    Code:
      stack=4, locals=5, args_size=3
        start local 0 // org.jruby.runtime.ThreadContext context
        start local 1 // org.jruby.runtime.builtin.IRubyObject str
        start local 2 // org.jruby.runtime.builtin.IRubyObject[] args
         0: .line 830
            iconst_1
            anewarray org.jruby.runtime.builtin.IRubyObject
            dup
            iconst_0
            aload 1 /* str */
            aastore
            astore 3 /* newstr_p */
        start local 3 // org.jruby.runtime.builtin.IRubyObject[] newstr_p
         1: .line 832
            aload 0 /* context */
            aload 2 /* args */
            aload 3 /* newstr_p */
            invokestatic org.jruby.util.io.EncodingUtils.strTranscode:(Lorg/jruby/runtime/ThreadContext;[Lorg/jruby/runtime/builtin/IRubyObject;[Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jcodings/Encoding;
            astore 4 /* dencindex */
        start local 4 // org.jcodings.Encoding dencindex
         2: .line 834
            aload 0 /* context */
            aload 3 /* newstr_p */
            iconst_0
            aaload
            aload 1 /* str */
            aload 4 /* dencindex */
            invokestatic org.jruby.util.io.EncodingUtils.encodedDup:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jcodings/Encoding;)Lorg/jruby/runtime/builtin/IRubyObject;
            areturn
        end local 4 // org.jcodings.Encoding dencindex
        end local 3 // org.jruby.runtime.builtin.IRubyObject[] newstr_p
        end local 2 // org.jruby.runtime.builtin.IRubyObject[] args
        end local 1 // org.jruby.runtime.builtin.IRubyObject str
        end local 0 // org.jruby.runtime.ThreadContext context
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    3     0    context  Lorg/jruby/runtime/ThreadContext;
            0    3     1        str  Lorg/jruby/runtime/builtin/IRubyObject;
            0    3     2       args  [Lorg/jruby/runtime/builtin/IRubyObject;
            1    3     3   newstr_p  [Lorg/jruby/runtime/builtin/IRubyObject;
            2    3     4  dencindex  Lorg/jcodings/Encoding;
    MethodParameters:
         Name  Flags
      context  
      str      
      args     

  public static org.jruby.runtime.builtin.IRubyObject rbStrEncode(org.jruby.runtime.ThreadContext, org.jruby.runtime.builtin.IRubyObject, org.jruby.runtime.builtin.IRubyObject, int, org.jruby.runtime.builtin.IRubyObject);
    descriptor: (Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;ILorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=6, locals=7, args_size=5
        start local 0 // org.jruby.runtime.ThreadContext context
        start local 1 // org.jruby.runtime.builtin.IRubyObject str
        start local 2 // org.jruby.runtime.builtin.IRubyObject to
        start local 3 // int ecflags
        start local 4 // org.jruby.runtime.builtin.IRubyObject ecopt
         0: .line 839
            iconst_1
            anewarray org.jruby.runtime.builtin.IRubyObject
            dup
            iconst_0
            aload 1 /* str */
            aastore
            astore 5 /* newstr_p */
        start local 5 // org.jruby.runtime.builtin.IRubyObject[] newstr_p
         1: .line 841
            aload 0 /* context */
            iconst_1
            iconst_1
            anewarray org.jruby.runtime.builtin.IRubyObject
            dup
            iconst_0
            aload 2 /* to */
            aastore
            aload 5 /* newstr_p */
            iload 3 /* ecflags */
            aload 4 /* ecopt */
            invokestatic org.jruby.util.io.EncodingUtils.strTranscode0:(Lorg/jruby/runtime/ThreadContext;I[Lorg/jruby/runtime/builtin/IRubyObject;[Lorg/jruby/runtime/builtin/IRubyObject;ILorg/jruby/runtime/builtin/IRubyObject;)Lorg/jcodings/Encoding;
            astore 6 /* dencindex */
        start local 6 // org.jcodings.Encoding dencindex
         2: .line 843
            aload 0 /* context */
            aload 5 /* newstr_p */
            iconst_0
            aaload
            aload 1 /* str */
            aload 6 /* dencindex */
            invokestatic org.jruby.util.io.EncodingUtils.encodedDup:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jcodings/Encoding;)Lorg/jruby/runtime/builtin/IRubyObject;
            areturn
        end local 6 // org.jcodings.Encoding dencindex
        end local 5 // org.jruby.runtime.builtin.IRubyObject[] newstr_p
        end local 4 // org.jruby.runtime.builtin.IRubyObject ecopt
        end local 3 // int ecflags
        end local 2 // org.jruby.runtime.builtin.IRubyObject to
        end local 1 // org.jruby.runtime.builtin.IRubyObject str
        end local 0 // org.jruby.runtime.ThreadContext context
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    3     0    context  Lorg/jruby/runtime/ThreadContext;
            0    3     1        str  Lorg/jruby/runtime/builtin/IRubyObject;
            0    3     2         to  Lorg/jruby/runtime/builtin/IRubyObject;
            0    3     3    ecflags  I
            0    3     4      ecopt  Lorg/jruby/runtime/builtin/IRubyObject;
            1    3     5   newstr_p  [Lorg/jruby/runtime/builtin/IRubyObject;
            2    3     6  dencindex  Lorg/jcodings/Encoding;
    MethodParameters:
         Name  Flags
      context  
      str      
      to       
      ecflags  
      ecopt    

  public static org.jcodings.Encoding strTranscode(org.jruby.runtime.ThreadContext, org.jruby.runtime.builtin.IRubyObject[], org.jruby.runtime.builtin.IRubyObject[]);
    descriptor: (Lorg/jruby/runtime/ThreadContext;[Lorg/jruby/runtime/builtin/IRubyObject;[Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jcodings/Encoding;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=7, locals=7, args_size=3
        start local 0 // org.jruby.runtime.ThreadContext context
        start local 1 // org.jruby.runtime.builtin.IRubyObject[] args
        start local 2 // org.jruby.runtime.builtin.IRubyObject[] self_p
         0: .line 848
            iconst_0
            istore 3 /* ecflags */
        start local 3 // int ecflags
         1: .line 849
            aload 1 /* args */
            arraylength
            istore 4 /* argc */
        start local 4 // int argc
         2: .line 850
            iconst_1
            anewarray org.jruby.runtime.builtin.IRubyObject
            dup
            iconst_0
            aload 0 /* context */
            getfield org.jruby.runtime.ThreadContext.nil:Lorg/jruby/runtime/builtin/IRubyObject;
            aastore
            astore 5 /* ecopts_p */
        start local 5 // org.jruby.runtime.builtin.IRubyObject[] ecopts_p
         3: .line 852
            aload 1 /* args */
            arraylength
            iconst_1
            if_icmplt 8
         4: .line 853
            aload 0 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            aload 1 /* args */
            aload 1 /* args */
            arraylength
            iconst_1
            isub
            aaload
            invokestatic org.jruby.util.TypeConverter.checkHashType:(Lorg/jruby/Ruby;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
            astore 6 /* tmp */
        start local 6 // org.jruby.runtime.builtin.IRubyObject tmp
         5: .line 854
            aload 6 /* tmp */
            invokeinterface org.jruby.runtime.builtin.IRubyObject.isNil:()Z
            ifne 8
         6: .line 855
            iinc 4 /* argc */ -1
         7: .line 856
            aload 0 /* context */
            aload 6 /* tmp */
            aload 5 /* ecopts_p */
            invokestatic org.jruby.util.io.EncodingUtils.econvPrepareOpts:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;[Lorg/jruby/runtime/builtin/IRubyObject;)I
            istore 3 /* ecflags */
        end local 6 // org.jruby.runtime.builtin.IRubyObject tmp
         8: .line 860
      StackMap locals: int int org.jruby.runtime.builtin.IRubyObject[]
      StackMap stack:
            aload 0 /* context */
            iload 4 /* argc */
            aload 1 /* args */
            aload 2 /* self_p */
            iload 3 /* ecflags */
            aload 5 /* ecopts_p */
            iconst_0
            aaload
            invokestatic org.jruby.util.io.EncodingUtils.strTranscode0:(Lorg/jruby/runtime/ThreadContext;I[Lorg/jruby/runtime/builtin/IRubyObject;[Lorg/jruby/runtime/builtin/IRubyObject;ILorg/jruby/runtime/builtin/IRubyObject;)Lorg/jcodings/Encoding;
            areturn
        end local 5 // org.jruby.runtime.builtin.IRubyObject[] ecopts_p
        end local 4 // int argc
        end local 3 // int ecflags
        end local 2 // org.jruby.runtime.builtin.IRubyObject[] self_p
        end local 1 // org.jruby.runtime.builtin.IRubyObject[] args
        end local 0 // org.jruby.runtime.ThreadContext context
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    9     0   context  Lorg/jruby/runtime/ThreadContext;
            0    9     1      args  [Lorg/jruby/runtime/builtin/IRubyObject;
            0    9     2    self_p  [Lorg/jruby/runtime/builtin/IRubyObject;
            1    9     3   ecflags  I
            2    9     4      argc  I
            3    9     5  ecopts_p  [Lorg/jruby/runtime/builtin/IRubyObject;
            5    8     6       tmp  Lorg/jruby/runtime/builtin/IRubyObject;
    MethodParameters:
         Name  Flags
      context  
      args     
      self_p   

  public static org.jcodings.Encoding strTranscode0(org.jruby.runtime.ThreadContext, int, org.jruby.runtime.builtin.IRubyObject[], org.jruby.runtime.builtin.IRubyObject[], int, org.jruby.runtime.builtin.IRubyObject);
    descriptor: (Lorg/jruby/runtime/ThreadContext;I[Lorg/jruby/runtime/builtin/IRubyObject;[Lorg/jruby/runtime/builtin/IRubyObject;ILorg/jruby/runtime/builtin/IRubyObject;)Lorg/jcodings/Encoding;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=13, locals=26, args_size=6
        start local 0 // org.jruby.runtime.ThreadContext context
        start local 1 // int argc
        start local 2 // org.jruby.runtime.builtin.IRubyObject[] args
        start local 3 // org.jruby.runtime.builtin.IRubyObject[] self_p
        start local 4 // int ecflags
        start local 5 // org.jruby.runtime.builtin.IRubyObject ecopts
         0: .line 865
            aload 0 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            astore 6 /* runtime */
        start local 6 // org.jruby.Ruby runtime
         1: .line 867
            aload 3 /* self_p */
            iconst_0
            aaload
            astore 7 /* str */
        start local 7 // org.jruby.runtime.builtin.IRubyObject str
         2: .line 869
            iconst_1
            anewarray org.jcodings.Encoding
            astore 10 /* senc_p */
        start local 10 // org.jcodings.Encoding[] senc_p
         3: iconst_1
            anewarray org.jcodings.Encoding
            astore 11 /* denc_p */
        start local 11 // org.jcodings.Encoding[] denc_p
         4: .line 870
            iconst_1
            anewarray byte[]
            astore 12 /* sname_p */
        start local 12 // byte[][] sname_p
         5: iconst_1
            anewarray byte[]
            astore 13 /* dname_p */
        start local 13 // byte[][] dname_p
         6: .line 872
            iconst_1
            istore 15 /* explicitlyInvalidReplace */
        start local 15 // boolean explicitlyInvalidReplace
         7: .line 874
            iload 1 /* argc */
            iconst_2
            if_icmple 9
         8: .line 875
            aload 0 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            aload 2 /* args */
            arraylength
            iconst_2
            invokevirtual org.jruby.Ruby.newArgumentError:(II)Lorg/jruby/exceptions/RaiseException;
            athrow
         9: .line 878
      StackMap locals: org.jruby.runtime.ThreadContext int org.jruby.runtime.builtin.IRubyObject[] org.jruby.runtime.builtin.IRubyObject[] int org.jruby.runtime.builtin.IRubyObject org.jruby.Ruby org.jruby.runtime.builtin.IRubyObject top top org.jcodings.Encoding[] org.jcodings.Encoding[] byte[][] byte[][] top int
      StackMap stack:
            iload 1 /* argc */
            ifne 18
        10: .line 879
            aload 6 /* runtime */
            invokevirtual org.jruby.Ruby.getEncodingService:()Lorg/jruby/runtime/encoding/EncodingService;
            invokevirtual org.jruby.runtime.encoding.EncodingService.getDefaultInternal:()Lorg/jruby/runtime/builtin/IRubyObject;
            astore 8 /* arg1 */
        start local 8 // org.jruby.runtime.builtin.IRubyObject arg1
        11: .line 880
            aload 8 /* arg1 */
            ifnull 12
            aload 8 /* arg1 */
            invokeinterface org.jruby.runtime.builtin.IRubyObject.isNil:()Z
            ifeq 14
        12: .line 881
      StackMap locals: org.jruby.runtime.ThreadContext int org.jruby.runtime.builtin.IRubyObject[] org.jruby.runtime.builtin.IRubyObject[] int org.jruby.runtime.builtin.IRubyObject org.jruby.Ruby org.jruby.runtime.builtin.IRubyObject org.jruby.runtime.builtin.IRubyObject top org.jcodings.Encoding[] org.jcodings.Encoding[] byte[][] byte[][] top int
      StackMap stack:
            iload 4 /* ecflags */
            ifne 13
            aconst_null
            areturn
        13: .line 882
      StackMap locals:
      StackMap stack:
            aload 0 /* context */
            aload 7 /* str */
            invokestatic org.jruby.util.io.EncodingUtils.objEncoding:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
            astore 8 /* arg1 */
        14: .line 884
      StackMap locals:
      StackMap stack:
            iload 4 /* ecflags */
            bipush 15
            iand
            ifne 16
        15: .line 885
            iconst_0
            istore 15 /* explicitlyInvalidReplace */
        16: .line 887
      StackMap locals:
      StackMap stack:
            iload 4 /* ecflags */
            bipush 34
            ior
            istore 4 /* ecflags */
        17: .line 888
            goto 19
        end local 8 // org.jruby.runtime.builtin.IRubyObject arg1
        18: .line 889
      StackMap locals: org.jruby.runtime.ThreadContext int org.jruby.runtime.builtin.IRubyObject[] org.jruby.runtime.builtin.IRubyObject[] int org.jruby.runtime.builtin.IRubyObject org.jruby.Ruby org.jruby.runtime.builtin.IRubyObject top top org.jcodings.Encoding[] org.jcodings.Encoding[] byte[][] byte[][] top int
      StackMap stack:
            aload 2 /* args */
            iconst_0
            aaload
            astore 8 /* arg1 */
        start local 8 // org.jruby.runtime.builtin.IRubyObject arg1
        19: .line 892
      StackMap locals: org.jruby.runtime.ThreadContext int org.jruby.runtime.builtin.IRubyObject[] org.jruby.runtime.builtin.IRubyObject[] int org.jruby.runtime.builtin.IRubyObject org.jruby.Ruby org.jruby.runtime.builtin.IRubyObject org.jruby.runtime.builtin.IRubyObject top org.jcodings.Encoding[] org.jcodings.Encoding[] byte[][] byte[][] top int
      StackMap stack:
            iload 1 /* argc */
            iconst_1
            if_icmpgt 20
            aload 0 /* context */
            getfield org.jruby.runtime.ThreadContext.nil:Lorg/jruby/runtime/builtin/IRubyObject;
            goto 21
      StackMap locals:
      StackMap stack:
        20: aload 2 /* args */
            iconst_1
            aaload
      StackMap locals:
      StackMap stack: org.jruby.runtime.builtin.IRubyObject
        21: astore 9 /* arg2 */
        start local 9 // org.jruby.runtime.builtin.IRubyObject arg2
        22: .line 893
            aload 0 /* context */
            aload 7 /* str */
            aload 8 /* arg1 */
            aload 9 /* arg2 */
            aload 12 /* sname_p */
            aload 10 /* senc_p */
            aload 13 /* dname_p */
            aload 11 /* denc_p */
            invokestatic org.jruby.util.io.EncodingUtils.strTranscodeEncArgs:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;[[B[Lorg/jcodings/Encoding;[[B[Lorg/jcodings/Encoding;)Lorg/jcodings/Encoding;
            astore 14 /* dencindex */
        start local 14 // org.jcodings.Encoding dencindex
        23: .line 897
            iload 4 /* ecflags */
            ldc 1113856
            iand
            ifne 43
        24: .line 901
            aload 10 /* senc_p */
            iconst_0
            aaload
            ifnull 36
            aload 10 /* senc_p */
            iconst_0
            aaload
            aload 11 /* denc_p */
            iconst_0
            aaload
            if_acmpne 36
        25: .line 902
            iload 4 /* ecflags */
            bipush 15
            iand
            ifeq 33
            iload 15 /* explicitlyInvalidReplace */
            ifeq 33
        26: .line 903
            aload 0 /* context */
            getfield org.jruby.runtime.ThreadContext.nil:Lorg/jruby/runtime/builtin/IRubyObject;
            astore 17 /* rep */
        start local 17 // org.jruby.runtime.builtin.IRubyObject rep
        27: .line 904
            aload 5 /* ecopts */
            invokeinterface org.jruby.runtime.builtin.IRubyObject.isNil:()Z
            ifne 29
        28: .line 905
            aload 5 /* ecopts */
            checkcast org.jruby.RubyHash
            aload 0 /* context */
            aload 6 /* runtime */
            ldc "replace"
            invokevirtual org.jruby.Ruby.newSymbol:(Ljava/lang/String;)Lorg/jruby/RubySymbol;
            invokevirtual org.jruby.RubyHash.op_aref:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
            astore 17 /* rep */
        29: .line 907
      StackMap locals: org.jruby.runtime.ThreadContext int org.jruby.runtime.builtin.IRubyObject[] org.jruby.runtime.builtin.IRubyObject[] int org.jruby.runtime.builtin.IRubyObject org.jruby.Ruby org.jruby.runtime.builtin.IRubyObject org.jruby.runtime.builtin.IRubyObject org.jruby.runtime.builtin.IRubyObject org.jcodings.Encoding[] org.jcodings.Encoding[] byte[][] byte[][] org.jcodings.Encoding int top org.jruby.runtime.builtin.IRubyObject
      StackMap stack:
            aload 7 /* str */
            checkcast org.jruby.RubyString
            aload 0 /* context */
            aload 17 /* rep */
            getstatic org.jruby.runtime.Block.NULL_BLOCK:Lorg/jruby/runtime/Block;
            invokevirtual org.jruby.RubyString.scrub:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/Block;)Lorg/jruby/runtime/builtin/IRubyObject;
            astore 16 /* dest */
        start local 16 // org.jruby.runtime.builtin.IRubyObject dest
        30: .line 908
            aload 16 /* dest */
            invokeinterface org.jruby.runtime.builtin.IRubyObject.isNil:()Z
            ifeq 31
            aload 7 /* str */
            astore 16 /* dest */
        31: .line 909
      StackMap locals: org.jruby.runtime.ThreadContext int org.jruby.runtime.builtin.IRubyObject[] org.jruby.runtime.builtin.IRubyObject[] int org.jruby.runtime.builtin.IRubyObject org.jruby.Ruby org.jruby.runtime.builtin.IRubyObject org.jruby.runtime.builtin.IRubyObject org.jruby.runtime.builtin.IRubyObject org.jcodings.Encoding[] org.jcodings.Encoding[] byte[][] byte[][] org.jcodings.Encoding int org.jruby.runtime.builtin.IRubyObject org.jruby.runtime.builtin.IRubyObject
      StackMap stack:
            aload 3 /* self_p */
            iconst_0
            aload 16 /* dest */
            aastore
        32: .line 910
            aload 14 /* dencindex */
            areturn
        end local 17 // org.jruby.runtime.builtin.IRubyObject rep
        end local 16 // org.jruby.runtime.builtin.IRubyObject dest
        33: .line 912
      StackMap locals:
      StackMap stack:
            aload 9 /* arg2 */
            invokeinterface org.jruby.runtime.builtin.IRubyObject.isNil:()Z
            ifeq 34
            aconst_null
            goto 35
      StackMap locals:
      StackMap stack:
        34: aload 14 /* dencindex */
      StackMap locals:
      StackMap stack: org.jcodings.Encoding
        35: areturn
        36: .line 913
      StackMap locals:
      StackMap stack:
            aload 10 /* senc_p */
            iconst_0
            aaload
            ifnull 39
            aload 11 /* denc_p */
            iconst_0
            aaload
            ifnull 39
            aload 10 /* senc_p */
            iconst_0
            aaload
            invokevirtual org.jcodings.Encoding.isAsciiCompatible:()Z
            ifeq 39
            aload 11 /* denc_p */
            iconst_0
            aaload
            invokevirtual org.jcodings.Encoding.isAsciiCompatible:()Z
            ifeq 39
        37: .line 914
            aload 7 /* str */
            checkcast org.jruby.RubyString
            invokevirtual org.jruby.RubyString.scanForCodeRange:()I
            bipush 16
            if_icmpne 39
        38: .line 915
            aload 14 /* dencindex */
            areturn
        39: .line 918
      StackMap locals:
      StackMap stack:
            aload 12 /* sname_p */
            iconst_0
            aaload
            aload 13 /* dname_p */
            iconst_0
            aaload
            invokestatic org.jruby.util.io.EncodingUtils.encodingEqual:([B[B)Z
            ifeq 46
        40: .line 919
            aload 9 /* arg2 */
            invokeinterface org.jruby.runtime.builtin.IRubyObject.isNil:()Z
            ifeq 41
            aconst_null
            goto 42
      StackMap locals:
      StackMap stack:
        41: aload 14 /* dencindex */
      StackMap locals:
      StackMap stack: org.jcodings.Encoding
        42: areturn
        43: .line 922
      StackMap locals:
      StackMap stack:
            aload 12 /* sname_p */
            iconst_0
            aaload
            aload 13 /* dname_p */
            iconst_0
            aaload
            invokestatic org.jruby.util.io.EncodingUtils.encodingEqual:([B[B)Z
            ifeq 46
        44: .line 923
            aload 12 /* sname_p */
            iconst_0
            getstatic org.jruby.util.io.EncodingUtils.NULL_BYTE_ARRAY:[B
            aastore
        45: .line 924
            aload 13 /* dname_p */
            iconst_0
            getstatic org.jruby.util.io.EncodingUtils.NULL_BYTE_ARRAY:[B
            aastore
        46: .line 928
      StackMap locals:
      StackMap stack:
            aload 7 /* str */
            checkcast org.jruby.RubyString
            invokevirtual org.jruby.RubyString.getByteList:()Lorg/jruby/util/ByteList;
            astore 17 /* sp */
        start local 17 // org.jruby.util.ByteList sp
        47: .line 929
            aload 17 /* sp */
            astore 18 /* fromp */
        start local 18 // org.jruby.util.ByteList fromp
        48: .line 930
            aload 7 /* str */
            checkcast org.jruby.RubyString
            invokevirtual org.jruby.RubyString.size:()I
            istore 19 /* slen */
        start local 19 // int slen
        49: .line 931
            iload 19 /* slen */
            bipush 30
            iadd
            istore 20 /* blen */
        start local 20 // int blen
        50: .line 932
            aload 6 /* runtime */
            iload 20 /* blen */
            invokestatic org.jruby.RubyString.newStringLight:(Lorg/jruby/Ruby;I)Lorg/jruby/RubyString;
            astore 16 /* dest */
        start local 16 // org.jruby.runtime.builtin.IRubyObject dest
        51: .line 933
            aload 16 /* dest */
            checkcast org.jruby.RubyString
            invokevirtual org.jruby.RubyString.getByteList:()Lorg/jruby/util/ByteList;
            astore 21 /* destp */
        start local 21 // org.jruby.util.ByteList destp
        52: .line 935
            aload 18 /* fromp */
            invokevirtual org.jruby.util.ByteList.unsafeBytes:()[B
            astore 22 /* frompBytes */
        start local 22 // byte[] frompBytes
        53: .line 936
            aload 21 /* destp */
            invokevirtual org.jruby.util.ByteList.unsafeBytes:()[B
            astore 23 /* destpBytes */
        start local 23 // byte[] destpBytes
        54: .line 937
            new org.jcodings.Ptr
            dup
            aload 18 /* fromp */
            invokevirtual org.jruby.util.ByteList.getBegin:()I
            invokespecial org.jcodings.Ptr.<init>:(I)V
            astore 24 /* frompPos */
        start local 24 // org.jcodings.Ptr frompPos
        55: .line 938
            new org.jcodings.Ptr
            dup
            aload 21 /* destp */
            invokevirtual org.jruby.util.ByteList.getBegin:()I
            invokespecial org.jcodings.Ptr.<init>:(I)V
            astore 25 /* destpPos */
        start local 25 // org.jcodings.Ptr destpPos
        56: .line 939
            aload 0 /* context */
            aload 22 /* frompBytes */
            aload 24 /* frompPos */
            aload 23 /* destpBytes */
            aload 25 /* destpPos */
            aload 24 /* frompPos */
            getfield org.jcodings.Ptr.p:I
            iload 19 /* slen */
            iadd
            aload 25 /* destpPos */
            getfield org.jcodings.Ptr.p:I
            iload 20 /* blen */
            iadd
            aload 21 /* destp */
            getstatic org.jruby.util.io.EncodingUtils.strTranscodingResize:Lorg/jruby/util/io/EncodingUtils$ResizeFunction;
            aload 12 /* sname_p */
            iconst_0
            aaload
            aload 13 /* dname_p */
            iconst_0
            aaload
            iload 4 /* ecflags */
            aload 5 /* ecopts */
            invokestatic org.jruby.util.io.EncodingUtils.transcodeLoop:(Lorg/jruby/runtime/ThreadContext;[BLorg/jcodings/Ptr;[BLorg/jcodings/Ptr;IILorg/jruby/util/ByteList;Lorg/jruby/util/io/EncodingUtils$ResizeFunction;[B[BILorg/jruby/runtime/builtin/IRubyObject;)V
        57: .line 941
            aload 24 /* frompPos */
            getfield org.jcodings.Ptr.p:I
            aload 17 /* sp */
            invokevirtual org.jruby.util.ByteList.begin:()I
            iload 19 /* slen */
            iadd
            if_icmpeq 59
        58: .line 942
            aload 6 /* runtime */
            new java.lang.StringBuilder
            dup
            ldc "not fully converted, "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            iload 19 /* slen */
            aload 24 /* frompPos */
            getfield org.jcodings.Ptr.p:I
            isub
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            ldc " bytes left"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual org.jruby.Ruby.newArgumentError:(Ljava/lang/String;)Lorg/jruby/exceptions/RaiseException;
            athrow
        59: .line 947
      StackMap locals: org.jruby.runtime.ThreadContext int org.jruby.runtime.builtin.IRubyObject[] org.jruby.runtime.builtin.IRubyObject[] int org.jruby.runtime.builtin.IRubyObject org.jruby.Ruby org.jruby.runtime.builtin.IRubyObject org.jruby.runtime.builtin.IRubyObject org.jruby.runtime.builtin.IRubyObject org.jcodings.Encoding[] org.jcodings.Encoding[] byte[][] byte[][] org.jcodings.Encoding int org.jruby.runtime.builtin.IRubyObject org.jruby.util.ByteList org.jruby.util.ByteList int int org.jruby.util.ByteList byte[] byte[] org.jcodings.Ptr org.jcodings.Ptr
      StackMap stack:
            aload 11 /* denc_p */
            iconst_0
            aaload
            ifnonnull 61
        60: .line 948
            aload 0 /* context */
            aload 13 /* dname_p */
            iconst_0
            aaload
            invokestatic org.jruby.util.io.EncodingUtils.defineDummyEncoding:(Lorg/jruby/runtime/ThreadContext;[B)Lorg/jcodings/Encoding;
            astore 14 /* dencindex */
        61: .line 951
      StackMap locals:
      StackMap stack:
            aload 3 /* self_p */
            iconst_0
            aload 16 /* dest */
            aastore
        62: .line 953
            aload 14 /* dencindex */
            areturn
        end local 25 // org.jcodings.Ptr destpPos
        end local 24 // org.jcodings.Ptr frompPos
        end local 23 // byte[] destpBytes
        end local 22 // byte[] frompBytes
        end local 21 // org.jruby.util.ByteList destp
        end local 20 // int blen
        end local 19 // int slen
        end local 18 // org.jruby.util.ByteList fromp
        end local 17 // org.jruby.util.ByteList sp
        end local 16 // org.jruby.runtime.builtin.IRubyObject dest
        end local 15 // boolean explicitlyInvalidReplace
        end local 14 // org.jcodings.Encoding dencindex
        end local 13 // byte[][] dname_p
        end local 12 // byte[][] sname_p
        end local 11 // org.jcodings.Encoding[] denc_p
        end local 10 // org.jcodings.Encoding[] senc_p
        end local 9 // org.jruby.runtime.builtin.IRubyObject arg2
        end local 8 // org.jruby.runtime.builtin.IRubyObject arg1
        end local 7 // org.jruby.runtime.builtin.IRubyObject str
        end local 6 // org.jruby.Ruby runtime
        end local 5 // org.jruby.runtime.builtin.IRubyObject ecopts
        end local 4 // int ecflags
        end local 3 // org.jruby.runtime.builtin.IRubyObject[] self_p
        end local 2 // org.jruby.runtime.builtin.IRubyObject[] args
        end local 1 // int argc
        end local 0 // org.jruby.runtime.ThreadContext context
      LocalVariableTable:
        Start  End  Slot                      Name  Signature
            0   63     0                   context  Lorg/jruby/runtime/ThreadContext;
            0   63     1                      argc  I
            0   63     2                      args  [Lorg/jruby/runtime/builtin/IRubyObject;
            0   63     3                    self_p  [Lorg/jruby/runtime/builtin/IRubyObject;
            0   63     4                   ecflags  I
            0   63     5                    ecopts  Lorg/jruby/runtime/builtin/IRubyObject;
            1   63     6                   runtime  Lorg/jruby/Ruby;
            2   63     7                       str  Lorg/jruby/runtime/builtin/IRubyObject;
           11   18     8                      arg1  Lorg/jruby/runtime/builtin/IRubyObject;
           19   63     8                      arg1  Lorg/jruby/runtime/builtin/IRubyObject;
           22   63     9                      arg2  Lorg/jruby/runtime/builtin/IRubyObject;
            3   63    10                    senc_p  [Lorg/jcodings/Encoding;
            4   63    11                    denc_p  [Lorg/jcodings/Encoding;
            5   63    12                   sname_p  [[B
            6   63    13                   dname_p  [[B
           23   63    14                 dencindex  Lorg/jcodings/Encoding;
            7   63    15  explicitlyInvalidReplace  Z
           30   33    16                      dest  Lorg/jruby/runtime/builtin/IRubyObject;
           51   63    16                      dest  Lorg/jruby/runtime/builtin/IRubyObject;
           27   33    17                       rep  Lorg/jruby/runtime/builtin/IRubyObject;
           47   63    17                        sp  Lorg/jruby/util/ByteList;
           48   63    18                     fromp  Lorg/jruby/util/ByteList;
           49   63    19                      slen  I
           50   63    20                      blen  I
           52   63    21                     destp  Lorg/jruby/util/ByteList;
           53   63    22                frompBytes  [B
           54   63    23                destpBytes  [B
           55   63    24                  frompPos  Lorg/jcodings/Ptr;
           56   63    25                  destpPos  Lorg/jcodings/Ptr;
    MethodParameters:
         Name  Flags
      context  
      argc     
      args     
      self_p   
      ecflags  
      ecopts   

  public static org.jruby.runtime.builtin.IRubyObject objEncoding(org.jruby.runtime.ThreadContext, org.jruby.runtime.builtin.IRubyObject);
    descriptor: (Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // org.jruby.runtime.ThreadContext context
        start local 1 // org.jruby.runtime.builtin.IRubyObject obj
         0: .line 958
            aload 0 /* context */
            aload 1 /* obj */
            invokestatic org.jruby.util.io.EncodingUtils.encGet:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jcodings/Encoding;
            astore 2 /* enc */
        start local 2 // org.jcodings.Encoding enc
         1: .line 959
            aload 2 /* enc */
            ifnonnull 3
         2: .line 960
            aload 0 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            ldc "unknown encoding"
            invokevirtual org.jruby.Ruby.newTypeError:(Ljava/lang/String;)Lorg/jruby/exceptions/RaiseException;
            athrow
         3: .line 962
      StackMap locals: org.jcodings.Encoding
      StackMap stack:
            aload 0 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            invokevirtual org.jruby.Ruby.getEncodingService:()Lorg/jruby/runtime/encoding/EncodingService;
            aload 2 /* enc */
            invokevirtual org.jruby.runtime.encoding.EncodingService.convertEncodingToRubyEncoding:(Lorg/jcodings/Encoding;)Lorg/jruby/runtime/builtin/IRubyObject;
            areturn
        end local 2 // org.jcodings.Encoding enc
        end local 1 // org.jruby.runtime.builtin.IRubyObject obj
        end local 0 // org.jruby.runtime.ThreadContext context
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    4     0  context  Lorg/jruby/runtime/ThreadContext;
            0    4     1      obj  Lorg/jruby/runtime/builtin/IRubyObject;
            1    4     2      enc  Lorg/jcodings/Encoding;
    MethodParameters:
         Name  Flags
      context  
      obj      

  public static org.jcodings.Encoding strTranscodeEncArgs(org.jruby.runtime.ThreadContext, org.jruby.runtime.builtin.IRubyObject, org.jruby.runtime.builtin.IRubyObject, org.jruby.runtime.builtin.IRubyObject, byte[][], org.jcodings.Encoding[], byte[][], org.jcodings.Encoding[]);
    descriptor: (Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;[[B[Lorg/jcodings/Encoding;[[B[Lorg/jcodings/Encoding;)Lorg/jcodings/Encoding;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=9, args_size=8
        start local 0 // org.jruby.runtime.ThreadContext context
        start local 1 // org.jruby.runtime.builtin.IRubyObject str
        start local 2 // org.jruby.runtime.builtin.IRubyObject arg1
        start local 3 // org.jruby.runtime.builtin.IRubyObject arg2
        start local 4 // byte[][] sname_p
        start local 5 // org.jcodings.Encoding[] senc_p
        start local 6 // byte[][] dname_p
        start local 7 // org.jcodings.Encoding[] denc_p
         0: .line 968
            aload 0 /* context */
            aload 2 /* arg1 */
            aload 6 /* dname_p */
            aload 7 /* denc_p */
            invokestatic org.jruby.util.io.EncodingUtils.encArg:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;[[B[Lorg/jcodings/Encoding;)Lorg/jcodings/Encoding;
            astore 8 /* dencindex */
        start local 8 // org.jcodings.Encoding dencindex
         1: .line 970
            aload 3 /* arg2 */
            invokeinterface org.jruby.runtime.builtin.IRubyObject.isNil:()Z
            ifeq 5
         2: .line 971
            aload 5 /* senc_p */
            iconst_0
            aload 0 /* context */
            aload 1 /* str */
            invokestatic org.jruby.util.io.EncodingUtils.encGet:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jcodings/Encoding;
            aastore
         3: .line 972
            aload 4 /* sname_p */
            iconst_0
            aload 5 /* senc_p */
            iconst_0
            aaload
            invokevirtual org.jcodings.Encoding.getName:()[B
            aastore
         4: .line 973
            goto 6
         5: .line 974
      StackMap locals: org.jcodings.Encoding
      StackMap stack:
            aload 0 /* context */
            aload 3 /* arg2 */
            aload 4 /* sname_p */
            aload 5 /* senc_p */
            invokestatic org.jruby.util.io.EncodingUtils.encArg:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;[[B[Lorg/jcodings/Encoding;)Lorg/jcodings/Encoding;
            pop
         6: .line 977
      StackMap locals:
      StackMap stack:
            aload 8 /* dencindex */
            areturn
        end local 8 // org.jcodings.Encoding dencindex
        end local 7 // org.jcodings.Encoding[] denc_p
        end local 6 // byte[][] dname_p
        end local 5 // org.jcodings.Encoding[] senc_p
        end local 4 // byte[][] sname_p
        end local 3 // org.jruby.runtime.builtin.IRubyObject arg2
        end local 2 // org.jruby.runtime.builtin.IRubyObject arg1
        end local 1 // org.jruby.runtime.builtin.IRubyObject str
        end local 0 // org.jruby.runtime.ThreadContext context
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    7     0    context  Lorg/jruby/runtime/ThreadContext;
            0    7     1        str  Lorg/jruby/runtime/builtin/IRubyObject;
            0    7     2       arg1  Lorg/jruby/runtime/builtin/IRubyObject;
            0    7     3       arg2  Lorg/jruby/runtime/builtin/IRubyObject;
            0    7     4    sname_p  [[B
            0    7     5     senc_p  [Lorg/jcodings/Encoding;
            0    7     6    dname_p  [[B
            0    7     7     denc_p  [Lorg/jcodings/Encoding;
            1    7     8  dencindex  Lorg/jcodings/Encoding;
    MethodParameters:
         Name  Flags
      context  
      str      
      arg1     
      arg2     
      sname_p  
      senc_p   
      dname_p  
      denc_p   

  public static boolean encRegistered(byte[]);
    descriptor: ([B)Z
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // byte[] name
         0: .line 981
            invokestatic org.jcodings.EncodingDB.getEncodings:()Lorg/jcodings/util/CaseInsensitiveBytesHash;
            aload 0 /* name */
            invokevirtual org.jcodings.util.CaseInsensitiveBytesHash.get:([B)Ljava/lang/Object;
            ifnull 1
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         1: iconst_0
            ireturn
        end local 0 // byte[] name
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  name  [B
    MethodParameters:
      Name  Flags
      name  

  public static void encCheckDuplication(org.jruby.runtime.ThreadContext, byte[]);
    descriptor: (Lorg/jruby/runtime/ThreadContext;[B)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=5, locals=2, args_size=2
        start local 0 // org.jruby.runtime.ThreadContext context
        start local 1 // byte[] name
         0: .line 986
            aload 1 /* name */
            invokestatic org.jruby.util.io.EncodingUtils.encRegistered:([B)Z
            ifeq 2
         1: .line 987
            aload 0 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            new java.lang.StringBuilder
            dup
            ldc "encoding "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            new java.lang.String
            dup
            aload 1 /* name */
            invokespecial java.lang.String.<init>:([B)V
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc " is already registered"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual org.jruby.Ruby.newArgumentError:(Ljava/lang/String;)Lorg/jruby/exceptions/RaiseException;
            athrow
         2: .line 989
      StackMap locals:
      StackMap stack:
            return
        end local 1 // byte[] name
        end local 0 // org.jruby.runtime.ThreadContext context
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    3     0  context  Lorg/jruby/runtime/ThreadContext;
            0    3     1     name  [B
    MethodParameters:
         Name  Flags
      context  
      name     

  public static org.jcodings.Encoding encReplicate(org.jruby.runtime.ThreadContext, byte[], org.jcodings.Encoding);
    descriptor: (Lorg/jruby/runtime/ThreadContext;[BLorg/jcodings/Encoding;)Lorg/jcodings/Encoding;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // org.jruby.runtime.ThreadContext context
        start local 1 // byte[] name
        start local 2 // org.jcodings.Encoding encoding
         0: .line 993
            aload 0 /* context */
            aload 1 /* name */
            invokestatic org.jruby.util.io.EncodingUtils.encCheckDuplication:(Lorg/jruby/runtime/ThreadContext;[B)V
         1: .line 994
            new java.lang.String
            dup
            aload 1 /* name */
            invokespecial java.lang.String.<init>:([B)V
            new java.lang.String
            dup
            aload 2 /* encoding */
            invokevirtual org.jcodings.Encoding.getName:()[B
            invokespecial java.lang.String.<init>:([B)V
            invokestatic org.jcodings.EncodingDB.replicate:(Ljava/lang/String;Ljava/lang/String;)V
         2: .line 995
            invokestatic org.jcodings.EncodingDB.getEncodings:()Lorg/jcodings/util/CaseInsensitiveBytesHash;
            aload 1 /* name */
            invokevirtual org.jcodings.util.CaseInsensitiveBytesHash.get:([B)Ljava/lang/Object;
            checkcast org.jcodings.EncodingDB$Entry
            invokevirtual org.jcodings.EncodingDB$Entry.getEncoding:()Lorg/jcodings/Encoding;
            areturn
        end local 2 // org.jcodings.Encoding encoding
        end local 1 // byte[] name
        end local 0 // org.jruby.runtime.ThreadContext context
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    3     0   context  Lorg/jruby/runtime/ThreadContext;
            0    3     1      name  [B
            0    3     2  encoding  Lorg/jcodings/Encoding;
    MethodParameters:
          Name  Flags
      context   
      name      
      encoding  

  public static org.jcodings.Encoding defineDummyEncoding(org.jruby.runtime.ThreadContext, byte[]);
    descriptor: (Lorg/jruby/runtime/ThreadContext;[B)Lorg/jcodings/Encoding;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // org.jruby.runtime.ThreadContext context
        start local 1 // byte[] name
         0: .line 1000
            aload 0 /* context */
            aload 1 /* name */
            aload 0 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            invokestatic org.jruby.util.io.EncodingUtils.ascii8bitEncoding:(Lorg/jruby/Ruby;)Lorg/jcodings/Encoding;
            invokestatic org.jruby.util.io.EncodingUtils.encReplicate:(Lorg/jruby/runtime/ThreadContext;[BLorg/jcodings/Encoding;)Lorg/jcodings/Encoding;
            astore 2 /* dummy */
        start local 2 // org.jcodings.Encoding dummy
         1: .line 1002
            aload 2 /* dummy */
            areturn
        end local 2 // org.jcodings.Encoding dummy
        end local 1 // byte[] name
        end local 0 // org.jruby.runtime.ThreadContext context
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    2     0  context  Lorg/jruby/runtime/ThreadContext;
            0    2     1     name  [B
            1    2     2    dummy  Lorg/jcodings/Encoding;
    MethodParameters:
         Name  Flags
      context  
      name     

  public static boolean DECORATOR_P(byte[], byte[]);
    descriptor: ([B[B)Z
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // byte[] sname
        start local 1 // byte[] dname
         0: .line 1006
            aload 0 /* sname */
            ifnull 1
            aload 0 /* sname */
            arraylength
            ifeq 1
            aload 0 /* sname */
            iconst_0
            baload
            ifeq 1
            iconst_0
            ireturn
      StackMap locals:
      StackMap stack:
         1: iconst_1
            ireturn
        end local 1 // byte[] dname
        end local 0 // byte[] sname
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    2     0  sname  [B
            0    2     1  dname  [B
    MethodParameters:
       Name  Flags
      sname  
      dname  

  public static org.jruby.util.ByteList strConvEncOpts(org.jruby.runtime.ThreadContext, org.jruby.util.ByteList, org.jcodings.Encoding, org.jcodings.Encoding, int, org.jruby.runtime.builtin.IRubyObject);
    descriptor: (Lorg/jruby/runtime/ThreadContext;Lorg/jruby/util/ByteList;Lorg/jcodings/Encoding;Lorg/jcodings/Encoding;ILorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/util/ByteList;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=6, locals=6, args_size=6
        start local 0 // org.jruby.runtime.ThreadContext context
        start local 1 // org.jruby.util.ByteList str
        start local 2 // org.jcodings.Encoding fromEncoding
        start local 3 // org.jcodings.Encoding toEncoding
        start local 4 // int ecflags
        start local 5 // org.jruby.runtime.builtin.IRubyObject ecopts
         0: .line 1013
            aload 0 /* context */
         1: .line 1014
            aload 0 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            aload 1 /* str */
            invokestatic org.jruby.RubyString.newString:(Lorg/jruby/Ruby;Lorg/jruby/util/ByteList;)Lorg/jruby/RubyString;
         2: .line 1015
            aload 2 /* fromEncoding */
            aload 3 /* toEncoding */
            iload 4 /* ecflags */
            aload 5 /* ecopts */
         3: .line 1012
            invokestatic org.jruby.util.io.EncodingUtils.strConvEncOpts:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/RubyString;Lorg/jcodings/Encoding;Lorg/jcodings/Encoding;ILorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/RubyString;
         4: .line 1015
            invokevirtual org.jruby.RubyString.getByteList:()Lorg/jruby/util/ByteList;
         5: .line 1012
            areturn
        end local 5 // org.jruby.runtime.builtin.IRubyObject ecopts
        end local 4 // int ecflags
        end local 3 // org.jcodings.Encoding toEncoding
        end local 2 // org.jcodings.Encoding fromEncoding
        end local 1 // org.jruby.util.ByteList str
        end local 0 // org.jruby.runtime.ThreadContext context
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    6     0       context  Lorg/jruby/runtime/ThreadContext;
            0    6     1           str  Lorg/jruby/util/ByteList;
            0    6     2  fromEncoding  Lorg/jcodings/Encoding;
            0    6     3    toEncoding  Lorg/jcodings/Encoding;
            0    6     4       ecflags  I
            0    6     5        ecopts  Lorg/jruby/runtime/builtin/IRubyObject;
    MethodParameters:
              Name  Flags
      context       
      str           
      fromEncoding  
      toEncoding    
      ecflags       
      ecopts        

  public static org.jruby.RubyString strConvEncOpts(org.jruby.runtime.ThreadContext, org.jruby.RubyString, org.jcodings.Encoding, org.jcodings.Encoding, int, org.jruby.runtime.builtin.IRubyObject);
    descriptor: (Lorg/jruby/runtime/ThreadContext;Lorg/jruby/RubyString;Lorg/jcodings/Encoding;Lorg/jcodings/Encoding;ILorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/RubyString;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=8, locals=21, args_size=6
        start local 0 // org.jruby.runtime.ThreadContext context
        start local 1 // org.jruby.RubyString str
        start local 2 // org.jcodings.Encoding fromEncoding
        start local 3 // org.jcodings.Encoding toEncoding
        start local 4 // int ecflags
        start local 5 // org.jruby.runtime.builtin.IRubyObject ecopts
         0: .line 1029
            aload 3 /* toEncoding */
            ifnonnull 1
            aload 1 /* str */
            areturn
         1: .line 1030
      StackMap locals:
      StackMap stack:
            aload 2 /* fromEncoding */
            ifnonnull 2
            aload 1 /* str */
            invokevirtual org.jruby.RubyString.getEncoding:()Lorg/jcodings/Encoding;
            astore 2 /* fromEncoding */
         2: .line 1031
      StackMap locals:
      StackMap stack:
            aload 2 /* fromEncoding */
            aload 3 /* toEncoding */
            if_acmpne 3
            aload 1 /* str */
            areturn
         3: .line 1032
      StackMap locals:
      StackMap stack:
            aload 3 /* toEncoding */
            invokevirtual org.jcodings.Encoding.isAsciiCompatible:()Z
            ifeq 4
            aload 1 /* str */
            invokevirtual org.jruby.RubyString.isAsciiOnly:()Z
            ifne 5
         4: .line 1033
      StackMap locals:
      StackMap stack:
            aload 3 /* toEncoding */
            getstatic org.jcodings.specific.ASCIIEncoding.INSTANCE:Lorg/jcodings/specific/ASCIIEncoding;
            if_acmpne 9
         5: .line 1034
      StackMap locals:
      StackMap stack:
            aload 1 /* str */
            invokevirtual org.jruby.RubyString.getEncoding:()Lorg/jcodings/Encoding;
            aload 3 /* toEncoding */
            if_acmpeq 8
         6: .line 1035
            aload 1 /* str */
            invokevirtual org.jruby.RubyString.dup:()Lorg/jruby/runtime/builtin/IRubyObject;
            checkcast org.jruby.RubyString
            astore 1 /* str */
         7: .line 1036
            aload 1 /* str */
            aload 3 /* toEncoding */
            invokevirtual org.jruby.RubyString.setEncoding:(Lorg/jcodings/Encoding;)V
         8: .line 1038
      StackMap locals:
      StackMap stack:
            aload 1 /* str */
            areturn
         9: .line 1041
      StackMap locals:
      StackMap stack:
            aload 1 /* str */
            invokevirtual org.jruby.RubyString.getByteList:()Lorg/jruby/util/ByteList;
            astore 6 /* strByteList */
        start local 6 // org.jruby.util.ByteList strByteList
        10: .line 1042
            aload 6 /* strByteList */
            invokevirtual org.jruby.util.ByteList.getRealSize:()I
            istore 7 /* len */
        start local 7 // int len
        11: .line 1043
            new org.jruby.util.ByteList
            dup
            iload 7 /* len */
            invokespecial org.jruby.util.ByteList.<init>:(I)V
            astore 8 /* newStr */
        start local 8 // org.jruby.util.ByteList newStr
        12: .line 1044
            iload 7 /* len */
            istore 9 /* olen */
        start local 9 // int olen
        13: .line 1046
            aload 0 /* context */
            aload 2 /* fromEncoding */
            invokevirtual org.jcodings.Encoding.getName:()[B
            aload 3 /* toEncoding */
            invokevirtual org.jcodings.Encoding.getName:()[B
            iload 4 /* ecflags */
            aload 5 /* ecopts */
            invokestatic org.jruby.util.io.EncodingUtils.econvOpenOpts:(Lorg/jruby/runtime/ThreadContext;[B[BILorg/jruby/runtime/builtin/IRubyObject;)Lorg/jcodings/transcode/EConv;
            astore 10 /* ec */
        start local 10 // org.jcodings.transcode.EConv ec
        14: .line 1047
            aload 10 /* ec */
            ifnonnull 15
            aload 1 /* str */
            areturn
        15: .line 1049
      StackMap locals: org.jruby.runtime.ThreadContext org.jruby.RubyString org.jcodings.Encoding org.jcodings.Encoding int org.jruby.runtime.builtin.IRubyObject org.jruby.util.ByteList int org.jruby.util.ByteList int org.jcodings.transcode.EConv
      StackMap stack:
            aload 6 /* strByteList */
            invokevirtual org.jruby.util.ByteList.getUnsafeBytes:()[B
            astore 11 /* sbytes */
        start local 11 // byte[] sbytes
        16: .line 1050
            new org.jcodings.Ptr
            dup
            aload 6 /* strByteList */
            invokevirtual org.jruby.util.ByteList.getBegin:()I
            invokespecial org.jcodings.Ptr.<init>:(I)V
            astore 12 /* sp */
        start local 12 // org.jcodings.Ptr sp
        17: .line 1051
            aload 12 /* sp */
            getfield org.jcodings.Ptr.p:I
            istore 13 /* start */
        start local 13 // int start
        18: .line 1054
            new org.jcodings.Ptr
            dup
            iconst_0
            invokespecial org.jcodings.Ptr.<init>:(I)V
            astore 15 /* dp */
        start local 15 // org.jcodings.Ptr dp
        19: .line 1056
            iconst_0
            istore 17 /* convertedOutput */
        start local 17 // int convertedOutput
        20: .line 1059
            aload 8 /* newStr */
            invokevirtual org.jruby.util.ByteList.getUnsafeBytes:()[B
            astore 14 /* destbytes */
        start local 14 // byte[] destbytes
        21: .line 1060
            aload 8 /* newStr */
            invokevirtual org.jruby.util.ByteList.begin:()I
            istore 18 /* dest */
        start local 18 // int dest
        22: .line 1061
            aload 15 /* dp */
            iload 18 /* dest */
            iload 17 /* convertedOutput */
            iadd
            putfield org.jcodings.Ptr.p:I
        23: .line 1062
            aload 10 /* ec */
            aload 11 /* sbytes */
            aload 12 /* sp */
            iload 13 /* start */
            iload 7 /* len */
            iadd
            aload 14 /* destbytes */
            aload 15 /* dp */
            iload 18 /* dest */
            iload 9 /* olen */
            iadd
            iconst_0
            invokevirtual org.jcodings.transcode.EConv.convert:([BLorg/jcodings/Ptr;I[BLorg/jcodings/Ptr;II)Lorg/jcodings/transcode/EConvResult;
            astore 16 /* ret */
        start local 16 // org.jcodings.transcode.EConvResult ret
        24: .line 1064
            goto 42
        25: .line 1065
      StackMap locals: org.jruby.runtime.ThreadContext org.jruby.RubyString org.jcodings.Encoding org.jcodings.Encoding int org.jruby.runtime.builtin.IRubyObject org.jruby.util.ByteList int org.jruby.util.ByteList int org.jcodings.transcode.EConv byte[] org.jcodings.Ptr int byte[] org.jcodings.Ptr org.jcodings.transcode.EConvResult int int
      StackMap stack:
            aload 12 /* sp */
            getfield org.jcodings.Ptr.p:I
            iload 13 /* start */
            isub
            istore 19 /* convertedInput */
        start local 19 // int convertedInput
        26: .line 1066
            iload 7 /* len */
            iload 19 /* convertedInput */
            isub
            istore 20 /* rest */
        start local 20 // int rest
        27: .line 1067
            aload 15 /* dp */
            getfield org.jcodings.Ptr.p:I
            iload 18 /* dest */
            isub
            istore 17 /* convertedOutput */
        28: .line 1068
            aload 8 /* newStr */
            iload 17 /* convertedOutput */
            invokevirtual org.jruby.util.ByteList.setRealSize:(I)V
        29: .line 1069
            iload 19 /* convertedInput */
            ifeq 33
            iload 17 /* convertedOutput */
            ifeq 33
        30: .line 1070
            iload 20 /* rest */
            ldc 2147483647
            iload 17 /* convertedOutput */
            idiv
            if_icmpge 33
        31: .line 1071
            iload 20 /* rest */
            iload 17 /* convertedOutput */
            imul
            iload 19 /* convertedInput */
            idiv
            istore 20 /* rest */
        32: .line 1072
            goto 34
        33: .line 1073
      StackMap locals: int int
      StackMap stack:
            iload 9 /* olen */
            istore 20 /* rest */
        34: .line 1075
      StackMap locals:
      StackMap stack:
            iload 9 /* olen */
            iload 20 /* rest */
            iconst_2
            if_icmpge 35
            iconst_2
            goto 36
      StackMap locals:
      StackMap stack: int
        35: iload 20 /* rest */
      StackMap locals: org.jruby.runtime.ThreadContext org.jruby.RubyString org.jcodings.Encoding org.jcodings.Encoding int org.jruby.runtime.builtin.IRubyObject org.jruby.util.ByteList int org.jruby.util.ByteList int org.jcodings.transcode.EConv byte[] org.jcodings.Ptr int byte[] org.jcodings.Ptr org.jcodings.transcode.EConvResult int int int int
      StackMap stack: int int
        36: iadd
            istore 9 /* olen */
        37: .line 1076
            aload 8 /* newStr */
            iload 9 /* olen */
            invokevirtual org.jruby.util.ByteList.ensure:(I)V
        38: .line 1079
            aload 8 /* newStr */
            invokevirtual org.jruby.util.ByteList.getUnsafeBytes:()[B
            astore 14 /* destbytes */
        39: .line 1080
            aload 8 /* newStr */
            invokevirtual org.jruby.util.ByteList.begin:()I
            istore 18 /* dest */
        40: .line 1081
            aload 15 /* dp */
            iload 18 /* dest */
            iload 17 /* convertedOutput */
            iadd
            putfield org.jcodings.Ptr.p:I
        41: .line 1082
            aload 10 /* ec */
            aload 11 /* sbytes */
            aload 12 /* sp */
            iload 13 /* start */
            iload 7 /* len */
            iadd
            aload 14 /* destbytes */
            aload 15 /* dp */
            iload 18 /* dest */
            iload 9 /* olen */
            iadd
            iconst_0
            invokevirtual org.jcodings.transcode.EConv.convert:([BLorg/jcodings/Ptr;I[BLorg/jcodings/Ptr;II)Lorg/jcodings/transcode/EConvResult;
            astore 16 /* ret */
        end local 20 // int rest
        end local 19 // int convertedInput
        42: .line 1064
      StackMap locals:
      StackMap stack:
            aload 16 /* ret */
            getstatic org.jcodings.transcode.EConvResult.DestinationBufferFull:Lorg/jcodings/transcode/EConvResult;
            if_acmpeq 25
        43: .line 1084
            aload 10 /* ec */
            invokevirtual org.jcodings.transcode.EConv.close:()V
        44: .line 1086
            invokestatic org.jruby.util.io.EncodingUtils.$SWITCH_TABLE$org$jcodings$transcode$EConvResult:()[I
            aload 16 /* ret */
            invokevirtual org.jcodings.transcode.EConvResult.ordinal:()I
            iaload
            tableswitch { // 5 - 5
                    5: 45
              default: 49
          }
        45: .line 1088
      StackMap locals:
      StackMap stack:
            aload 15 /* dp */
            getfield org.jcodings.Ptr.p:I
            istore 7 /* len */
        46: .line 1089
            aload 8 /* newStr */
            iload 7 /* len */
            invokevirtual org.jruby.util.ByteList.setRealSize:(I)V
        47: .line 1090
            aload 8 /* newStr */
            aload 3 /* toEncoding */
            invokevirtual org.jruby.util.ByteList.setEncoding:(Lorg/jcodings/Encoding;)V
        48: .line 1091
            aload 0 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            aload 8 /* newStr */
            invokestatic org.jruby.RubyString.newString:(Lorg/jruby/Ruby;Lorg/jruby/util/ByteList;)Lorg/jruby/RubyString;
            areturn
        49: .line 1095
      StackMap locals:
      StackMap stack:
            aload 1 /* str */
            areturn
        end local 18 // int dest
        end local 17 // int convertedOutput
        end local 16 // org.jcodings.transcode.EConvResult ret
        end local 15 // org.jcodings.Ptr dp
        end local 14 // byte[] destbytes
        end local 13 // int start
        end local 12 // org.jcodings.Ptr sp
        end local 11 // byte[] sbytes
        end local 10 // org.jcodings.transcode.EConv ec
        end local 9 // int olen
        end local 8 // org.jruby.util.ByteList newStr
        end local 7 // int len
        end local 6 // org.jruby.util.ByteList strByteList
        end local 5 // org.jruby.runtime.builtin.IRubyObject ecopts
        end local 4 // int ecflags
        end local 3 // org.jcodings.Encoding toEncoding
        end local 2 // org.jcodings.Encoding fromEncoding
        end local 1 // org.jruby.RubyString str
        end local 0 // org.jruby.runtime.ThreadContext context
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0   50     0          context  Lorg/jruby/runtime/ThreadContext;
            0   50     1              str  Lorg/jruby/RubyString;
            0   50     2     fromEncoding  Lorg/jcodings/Encoding;
            0   50     3       toEncoding  Lorg/jcodings/Encoding;
            0   50     4          ecflags  I
            0   50     5           ecopts  Lorg/jruby/runtime/builtin/IRubyObject;
           10   50     6      strByteList  Lorg/jruby/util/ByteList;
           11   50     7              len  I
           12   50     8           newStr  Lorg/jruby/util/ByteList;
           13   50     9             olen  I
           14   50    10               ec  Lorg/jcodings/transcode/EConv;
           16   50    11           sbytes  [B
           17   50    12               sp  Lorg/jcodings/Ptr;
           18   50    13            start  I
           21   50    14        destbytes  [B
           19   50    15               dp  Lorg/jcodings/Ptr;
           24   50    16              ret  Lorg/jcodings/transcode/EConvResult;
           20   50    17  convertedOutput  I
           22   50    18             dest  I
           26   42    19   convertedInput  I
           27   42    20             rest  I
    MethodParameters:
              Name  Flags
      context       
      str           
      fromEncoding  
      toEncoding    
      ecflags       
      ecopts        

  public static org.jruby.RubyString strConvEnc(org.jruby.runtime.ThreadContext, org.jruby.RubyString, org.jcodings.Encoding, org.jcodings.Encoding);
    descriptor: (Lorg/jruby/runtime/ThreadContext;Lorg/jruby/RubyString;Lorg/jcodings/Encoding;Lorg/jcodings/Encoding;)Lorg/jruby/RubyString;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=6, locals=4, args_size=4
        start local 0 // org.jruby.runtime.ThreadContext context
        start local 1 // org.jruby.RubyString value
        start local 2 // org.jcodings.Encoding fromEncoding
        start local 3 // org.jcodings.Encoding toEncoding
         0: .line 1101
            aload 0 /* context */
            aload 1 /* value */
            aload 2 /* fromEncoding */
            aload 3 /* toEncoding */
            iconst_0
            aload 0 /* context */
            getfield org.jruby.runtime.ThreadContext.nil:Lorg/jruby/runtime/builtin/IRubyObject;
            invokestatic org.jruby.util.io.EncodingUtils.strConvEncOpts:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/RubyString;Lorg/jcodings/Encoding;Lorg/jcodings/Encoding;ILorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/RubyString;
            areturn
        end local 3 // org.jcodings.Encoding toEncoding
        end local 2 // org.jcodings.Encoding fromEncoding
        end local 1 // org.jruby.RubyString value
        end local 0 // org.jruby.runtime.ThreadContext context
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    1     0       context  Lorg/jruby/runtime/ThreadContext;
            0    1     1         value  Lorg/jruby/RubyString;
            0    1     2  fromEncoding  Lorg/jcodings/Encoding;
            0    1     3    toEncoding  Lorg/jcodings/Encoding;
    MethodParameters:
              Name  Flags
      context       
      value         
      fromEncoding  
      toEncoding    

  public static org.jruby.util.ByteList strConvEnc(org.jruby.runtime.ThreadContext, org.jruby.util.ByteList, org.jcodings.Encoding, org.jcodings.Encoding);
    descriptor: (Lorg/jruby/runtime/ThreadContext;Lorg/jruby/util/ByteList;Lorg/jcodings/Encoding;Lorg/jcodings/Encoding;)Lorg/jruby/util/ByteList;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=6, locals=4, args_size=4
        start local 0 // org.jruby.runtime.ThreadContext context
        start local 1 // org.jruby.util.ByteList value
        start local 2 // org.jcodings.Encoding fromEncoding
        start local 3 // org.jcodings.Encoding toEncoding
         0: .line 1105
            aload 0 /* context */
            aload 1 /* value */
            aload 2 /* fromEncoding */
            aload 3 /* toEncoding */
            iconst_0
            aload 0 /* context */
            getfield org.jruby.runtime.ThreadContext.nil:Lorg/jruby/runtime/builtin/IRubyObject;
            invokestatic org.jruby.util.io.EncodingUtils.strConvEncOpts:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/util/ByteList;Lorg/jcodings/Encoding;Lorg/jcodings/Encoding;ILorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/util/ByteList;
            areturn
        end local 3 // org.jcodings.Encoding toEncoding
        end local 2 // org.jcodings.Encoding fromEncoding
        end local 1 // org.jruby.util.ByteList value
        end local 0 // org.jruby.runtime.ThreadContext context
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    1     0       context  Lorg/jruby/runtime/ThreadContext;
            0    1     1         value  Lorg/jruby/util/ByteList;
            0    1     2  fromEncoding  Lorg/jcodings/Encoding;
            0    1     3    toEncoding  Lorg/jcodings/Encoding;
    MethodParameters:
              Name  Flags
      context       
      value         
      fromEncoding  
      toEncoding    

  public static org.jruby.RubyString setStrBuf(org.jruby.Ruby, org.jruby.runtime.builtin.IRubyObject, int);
    descriptor: (Lorg/jruby/Ruby;Lorg/jruby/runtime/builtin/IRubyObject;I)Lorg/jruby/RubyString;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=5, args_size=3
        start local 0 // org.jruby.Ruby runtime
        start local 1 // org.jruby.runtime.builtin.IRubyObject obj
        start local 2 // int len
         0: .line 1110
            aload 1 /* obj */
            ifnull 1
            aload 1 /* obj */
            invokeinterface org.jruby.runtime.builtin.IRubyObject.isNil:()Z
            ifeq 3
         1: .line 1111
      StackMap locals:
      StackMap stack:
            aload 0 /* runtime */
            iload 2 /* len */
            invokestatic org.jruby.RubyString.newStringLight:(Lorg/jruby/Ruby;I)Lorg/jruby/RubyString;
            astore 3 /* str */
        start local 3 // org.jruby.RubyString str
         2: .line 1112
            goto 9
        end local 3 // org.jruby.RubyString str
         3: .line 1114
      StackMap locals:
      StackMap stack:
            aload 1 /* obj */
            invokeinterface org.jruby.runtime.builtin.IRubyObject.convertToString:()Lorg/jruby/RubyString;
            astore 3 /* str */
        start local 3 // org.jruby.RubyString str
         4: .line 1115
            aload 3 /* str */
            invokevirtual org.jruby.RubyString.size:()I
            istore 4 /* clen */
        start local 4 // int clen
         5: .line 1116
            iload 4 /* clen */
            iload 2 /* len */
            if_icmplt 8
         6: .line 1117
            aload 3 /* str */
            invokevirtual org.jruby.RubyString.modify:()V
         7: .line 1118
            aload 3 /* str */
            areturn
         8: .line 1120
      StackMap locals: org.jruby.RubyString int
      StackMap stack:
            aload 3 /* str */
            iload 2 /* len */
            invokevirtual org.jruby.RubyString.modifyExpand:(I)V
        end local 4 // int clen
         9: .line 1122
      StackMap locals:
      StackMap stack:
            aload 3 /* str */
            areturn
        end local 3 // org.jruby.RubyString str
        end local 2 // int len
        end local 1 // org.jruby.runtime.builtin.IRubyObject obj
        end local 0 // org.jruby.Ruby runtime
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   10     0  runtime  Lorg/jruby/Ruby;
            0   10     1      obj  Lorg/jruby/runtime/builtin/IRubyObject;
            0   10     2      len  I
            2    3     3      str  Lorg/jruby/RubyString;
            4   10     3      str  Lorg/jruby/RubyString;
            5    9     4     clen  I
    MethodParameters:
         Name  Flags
      runtime  
      obj      final
      len      final

  public static java.util.List<java.lang.String> encodingNames(byte[], int, int);
    descriptor: ([BII)Ljava/util/List;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=6, locals=11, args_size=3
        start local 0 // byte[] name
        start local 1 // int p
        start local 2 // int end
         0: .line 1126
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 3 /* names */
        start local 3 // java.util.List names
         1: .line 1128
            getstatic org.jcodings.specific.ASCIIEncoding.INSTANCE:Lorg/jcodings/specific/ASCIIEncoding;
            astore 4 /* enc */
        start local 4 // org.jcodings.Encoding enc
         2: .line 1129
            iload 1 /* p */
            istore 5 /* s */
        start local 5 // int s
         3: .line 1131
            aload 0 /* name */
            iload 5 /* s */
            baload
            sipush 255
            iand
            istore 6 /* code */
        start local 6 // int code
         4: .line 1132
            aload 4 /* enc */
            iload 6 /* code */
            invokevirtual org.jcodings.Encoding.isDigit:(I)Z
            ifeq 5
            aload 3 /* names */
            areturn
         5: .line 1134
      StackMap locals: byte[] int int java.util.List org.jcodings.Encoding int int
      StackMap stack:
            iconst_0
            istore 7 /* hasUpper */
        start local 7 // boolean hasUpper
         6: .line 1135
            iconst_0
            istore 8 /* hasLower */
        start local 8 // boolean hasLower
         7: .line 1136
            aload 4 /* enc */
            iload 6 /* code */
            invokevirtual org.jcodings.Encoding.isUpper:(I)Z
            ifeq 12
         8: .line 1137
            iconst_1
            istore 7 /* hasUpper */
         9: .line 1138
            goto 11
        10: .line 1139
      StackMap locals: int int
      StackMap stack:
            aload 4 /* enc */
            aload 0 /* name */
            iload 5 /* s */
            baload
            sipush 255
            iand
            invokevirtual org.jcodings.Encoding.isLower:(I)Z
            ifeq 11
            iconst_1
            istore 8 /* hasLower */
        11: .line 1138
      StackMap locals:
      StackMap stack:
            iinc 5 /* s */ 1
            iload 5 /* s */
            iload 2 /* end */
            if_icmpge 12
            aload 4 /* enc */
            aload 0 /* name */
            iload 5 /* s */
            baload
            sipush 255
            iand
            invokevirtual org.jcodings.Encoding.isAlnum:(I)Z
            ifne 10
            aload 0 /* name */
            iload 5 /* s */
            baload
            bipush 95
            if_icmpeq 10
        12: .line 1143
      StackMap locals:
      StackMap stack:
            iconst_0
            istore 9 /* isValid */
        start local 9 // boolean isValid
        13: .line 1144
            iload 5 /* s */
            iload 2 /* end */
            if_icmplt 16
        14: .line 1145
            iconst_1
            istore 9 /* isValid */
        15: .line 1146
            aload 3 /* names */
            new java.lang.String
            dup
            aload 0 /* name */
            iload 1 /* p */
            iload 2 /* end */
            invokespecial java.lang.String.<init>:([BII)V
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        16: .line 1149
      StackMap locals: int
      StackMap stack:
            iload 9 /* isValid */
            ifeq 17
            iload 8 /* hasLower */
            ifeq 41
        17: .line 1150
      StackMap locals:
      StackMap stack:
            iload 8 /* hasLower */
            ifeq 18
            iload 7 /* hasUpper */
            ifne 22
        18: .line 1152
      StackMap locals:
      StackMap stack:
            aload 0 /* name */
            iload 5 /* s */
            baload
            sipush 255
            iand
            istore 6 /* code */
        19: .line 1153
            aload 4 /* enc */
            iload 6 /* code */
            invokevirtual org.jcodings.Encoding.isLower:(I)Z
            ifeq 20
            iconst_1
            istore 8 /* hasLower */
        20: .line 1154
      StackMap locals:
      StackMap stack:
            aload 4 /* enc */
            iload 6 /* code */
            invokevirtual org.jcodings.Encoding.isUpper:(I)Z
            ifeq 21
            iconst_1
            istore 7 /* hasUpper */
        21: .line 1155
      StackMap locals:
      StackMap stack:
            iinc 5 /* s */ 1
            iload 5 /* s */
            iload 2 /* end */
            if_icmpge 22
            iload 8 /* hasLower */
            ifeq 18
            iload 7 /* hasUpper */
            ifeq 18
        22: .line 1158
      StackMap locals:
      StackMap stack:
            iload 2 /* end */
            iload 1 /* p */
            isub
            newarray 8
            astore 10 /* constName */
        start local 10 // byte[] constName
        23: .line 1159
            aload 0 /* name */
            iload 1 /* p */
            aload 10 /* constName */
            iconst_0
            iload 2 /* end */
            iload 1 /* p */
            isub
            invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
        24: .line 1160
            iconst_0
            istore 5 /* s */
        25: .line 1161
            aload 10 /* constName */
            iload 5 /* s */
            baload
            sipush 255
            iand
            istore 6 /* code */
        26: .line 1163
            iload 9 /* isValid */
            ifne 34
        27: .line 1164
            aload 4 /* enc */
            iload 6 /* code */
            invokevirtual org.jcodings.Encoding.isLower:(I)Z
            ifeq 31
            aload 10 /* constName */
            iload 5 /* s */
            getstatic org.jcodings.ascii.AsciiTables.ToUpperCaseTable:[B
            iload 6 /* code */
            baload
            bastore
        28: .line 1165
            goto 31
        29: .line 1166
      StackMap locals: byte[]
      StackMap stack:
            aload 4 /* enc */
            aload 10 /* constName */
            iload 5 /* s */
            baload
            sipush 255
            iand
            invokevirtual org.jcodings.Encoding.isAlnum:(I)Z
            ifne 30
            aload 10 /* constName */
            iload 5 /* s */
            bipush 95
            bastore
        30: .line 1165
      StackMap locals:
      StackMap stack:
            iinc 5 /* s */ 1
      StackMap locals:
      StackMap stack:
        31: iload 5 /* s */
            aload 10 /* constName */
            arraylength
            if_icmplt 29
        32: .line 1168
            iload 7 /* hasUpper */
            ifeq 34
        33: .line 1169
            aload 3 /* names */
            new java.lang.String
            dup
            aload 10 /* constName */
            iconst_0
            aload 10 /* constName */
            arraylength
            invokespecial java.lang.String.<init>:([BII)V
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        34: .line 1172
      StackMap locals:
      StackMap stack:
            iload 8 /* hasLower */
            ifeq 41
        35: .line 1173
            iconst_0
            istore 5 /* s */
            goto 39
        36: .line 1174
      StackMap locals:
      StackMap stack:
            aload 10 /* constName */
            iload 5 /* s */
            baload
            sipush 255
            iand
            istore 6 /* code */
        37: .line 1175
            aload 4 /* enc */
            iload 6 /* code */
            invokevirtual org.jcodings.Encoding.isLower:(I)Z
            ifeq 38
            aload 10 /* constName */
            iload 5 /* s */
            getstatic org.jcodings.ascii.AsciiTables.ToUpperCaseTable:[B
            iload 6 /* code */
            baload
            bastore
        38: .line 1173
      StackMap locals:
      StackMap stack:
            iinc 5 /* s */ 1
      StackMap locals:
      StackMap stack:
        39: iload 5 /* s */
            aload 10 /* constName */
            arraylength
            if_icmplt 36
        40: .line 1177
            aload 3 /* names */
            new java.lang.String
            dup
            aload 10 /* constName */
            iconst_0
            aload 10 /* constName */
            arraylength
            invokespecial java.lang.String.<init>:([BII)V
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        end local 10 // byte[] constName
        41: .line 1181
      StackMap locals:
      StackMap stack:
            aload 3 /* names */
            areturn
        end local 9 // boolean isValid
        end local 8 // boolean hasLower
        end local 7 // boolean hasUpper
        end local 6 // int code
        end local 5 // int s
        end local 4 // org.jcodings.Encoding enc
        end local 3 // java.util.List names
        end local 2 // int end
        end local 1 // int p
        end local 0 // byte[] name
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   42     0       name  [B
            0   42     1          p  I
            0   42     2        end  I
            1   42     3      names  Ljava/util/List<Ljava/lang/String;>;
            2   42     4        enc  Lorg/jcodings/Encoding;
            3   42     5          s  I
            4   42     6       code  I
            6   42     7   hasUpper  Z
            7   42     8   hasLower  Z
           13   42     9    isValid  Z
           23   41    10  constName  [B
    Signature: ([BII)Ljava/util/List<Ljava/lang/String;>;
    MethodParameters:
      Name  Flags
      name  
      p     
      end   

  public static void transcodeLoop(org.jruby.runtime.ThreadContext, byte[], org.jcodings.Ptr, byte[], org.jcodings.Ptr, int, int, org.jruby.util.ByteList, org.jruby.util.io.EncodingUtils$ResizeFunction, byte[], byte[], int, org.jruby.runtime.builtin.IRubyObject);
    descriptor: (Lorg/jruby/runtime/ThreadContext;[BLorg/jcodings/Ptr;[BLorg/jcodings/Ptr;IILorg/jruby/util/ByteList;Lorg/jruby/util/io/EncodingUtils$ResizeFunction;[B[BILorg/jruby/runtime/builtin/IRubyObject;)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=12, locals=19, args_size=13
        start local 0 // org.jruby.runtime.ThreadContext context
        start local 1 // byte[] inBytes
        start local 2 // org.jcodings.Ptr inPos
        start local 3 // byte[] outBytes
        start local 4 // org.jcodings.Ptr outPos
        start local 5 // int inStop
        start local 6 // int _outStop
        start local 7 // org.jruby.util.ByteList destination
        start local 8 // org.jruby.util.io.EncodingUtils$ResizeFunction resizeFunction
        start local 9 // byte[] sname
        start local 10 // byte[] dname
        start local 11 // int ecflags
        start local 12 // org.jruby.runtime.builtin.IRubyObject ecopts
         0: .line 1289
            aload 0 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            astore 13 /* runtime */
        start local 13 // org.jruby.Ruby runtime
         1: .line 1291
            aload 0 /* context */
            getfield org.jruby.runtime.ThreadContext.nil:Lorg/jruby/runtime/builtin/IRubyObject;
            astore 15 /* fallback */
        start local 15 // org.jruby.runtime.builtin.IRubyObject fallback
         2: .line 1292
            aconst_null
            astore 16 /* fallbackFunc */
        start local 16 // org.jruby.util.io.EncodingUtils$TranscodeFallback fallbackFunc
         3: .line 1294
            aload 0 /* context */
            aload 9 /* sname */
            aload 10 /* dname */
            iload 11 /* ecflags */
            aload 12 /* ecopts */
            invokestatic org.jruby.util.io.EncodingUtils.econvOpenOpts:(Lorg/jruby/runtime/ThreadContext;[B[BILorg/jruby/runtime/builtin/IRubyObject;)Lorg/jcodings/transcode/EConv;
            astore 14 /* ec */
        start local 14 // org.jcodings.transcode.EConv ec
         4: .line 1296
            aload 14 /* ec */
            ifnonnull 6
         5: .line 1297
            aload 0 /* context */
            aload 9 /* sname */
            aload 10 /* dname */
            iload 11 /* ecflags */
            invokestatic org.jruby.util.io.EncodingUtils.econvOpenExc:(Lorg/jruby/runtime/ThreadContext;[B[BI)Lorg/jruby/exceptions/RaiseException;
            athrow
         6: .line 1300
      StackMap locals: org.jruby.runtime.ThreadContext byte[] org.jcodings.Ptr byte[] org.jcodings.Ptr int int org.jruby.util.ByteList org.jruby.util.io.EncodingUtils$ResizeFunction byte[] byte[] int org.jruby.runtime.builtin.IRubyObject org.jruby.Ruby org.jcodings.transcode.EConv org.jruby.runtime.builtin.IRubyObject org.jruby.util.io.EncodingUtils$TranscodeFallback
      StackMap stack:
            aload 12 /* ecopts */
            invokeinterface org.jruby.runtime.builtin.IRubyObject.isNil:()Z
            ifne 18
            aload 12 /* ecopts */
            instanceof org.jruby.RubyHash
            ifeq 18
         7: .line 1301
            aload 12 /* ecopts */
            checkcast org.jruby.RubyHash
            aload 0 /* context */
            aload 13 /* runtime */
            ldc "fallback"
            invokevirtual org.jruby.Ruby.newSymbol:(Ljava/lang/String;)Lorg/jruby/RubySymbol;
            invokevirtual org.jruby.RubyHash.op_aref:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
            astore 15 /* fallback */
         8: .line 1302
            aload 15 /* fallback */
            instanceof org.jruby.RubyHash
            ifeq 11
         9: .line 1303
            getstatic org.jruby.util.io.EncodingUtils.HASH_FALLBACK:Lorg/jruby/util/io/EncodingUtils$AbstractTranscodeFallback;
            astore 16 /* fallbackFunc */
        10: .line 1304
            goto 18
      StackMap locals:
      StackMap stack:
        11: aload 15 /* fallback */
            instanceof org.jruby.RubyProc
            ifeq 14
        12: .line 1305
            getstatic org.jruby.util.io.EncodingUtils.PROC_FALLBACK:Lorg/jruby/util/io/EncodingUtils$AbstractTranscodeFallback;
            astore 16 /* fallbackFunc */
        13: .line 1306
            goto 18
      StackMap locals:
      StackMap stack:
        14: aload 15 /* fallback */
            instanceof org.jruby.RubyMethod
            ifeq 17
        15: .line 1307
            getstatic org.jruby.util.io.EncodingUtils.METHOD_FALLBACK:Lorg/jruby/util/io/EncodingUtils$AbstractTranscodeFallback;
            astore 16 /* fallbackFunc */
        16: .line 1308
            goto 18
        17: .line 1309
      StackMap locals:
      StackMap stack:
            getstatic org.jruby.util.io.EncodingUtils.AREF_FALLBACK:Lorg/jruby/util/io/EncodingUtils$AbstractTranscodeFallback;
            astore 16 /* fallbackFunc */
        18: .line 1313
      StackMap locals:
      StackMap stack:
            aload 14 /* ec */
            aload 16 /* fallbackFunc */
            aload 0 /* context */
            aload 15 /* fallback */
            aload 1 /* inBytes */
            aload 2 /* inPos */
            aload 3 /* outBytes */
            aload 4 /* outPos */
            iload 5 /* inStop */
            iload 6 /* _outStop */
            aload 7 /* destination */
            aload 8 /* resizeFunction */
            invokestatic org.jruby.util.io.EncodingUtils.transcodeLoop:(Lorg/jcodings/transcode/EConv;Lorg/jruby/util/io/EncodingUtils$TranscodeFallback;Lorg/jruby/runtime/ThreadContext;Ljava/lang/Object;[BLorg/jcodings/Ptr;[BLorg/jcodings/Ptr;IILorg/jruby/util/ByteList;Lorg/jruby/util/io/EncodingUtils$ResizeFunction;)Z
            istore 17 /* success */
        start local 17 // boolean success
        19: .line 1315
            iload 17 /* success */
            ifne 23
        20: .line 1316
            aload 13 /* runtime */
            aload 14 /* ec */
            invokestatic org.jruby.util.io.EncodingUtils.makeEconvException:(Lorg/jruby/Ruby;Lorg/jcodings/transcode/EConv;)Lorg/jruby/exceptions/RaiseException;
            astore 18 /* re */
        start local 18 // org.jruby.exceptions.RaiseException re
        21: .line 1317
            aload 14 /* ec */
            invokevirtual org.jcodings.transcode.EConv.close:()V
        22: .line 1318
            aload 18 /* re */
            athrow
        end local 18 // org.jruby.exceptions.RaiseException re
        23: .line 1320
      StackMap locals: int
      StackMap stack:
            return
        end local 17 // boolean success
        end local 16 // org.jruby.util.io.EncodingUtils$TranscodeFallback fallbackFunc
        end local 15 // org.jruby.runtime.builtin.IRubyObject fallback
        end local 14 // org.jcodings.transcode.EConv ec
        end local 13 // org.jruby.Ruby runtime
        end local 12 // org.jruby.runtime.builtin.IRubyObject ecopts
        end local 11 // int ecflags
        end local 10 // byte[] dname
        end local 9 // byte[] sname
        end local 8 // org.jruby.util.io.EncodingUtils$ResizeFunction resizeFunction
        end local 7 // org.jruby.util.ByteList destination
        end local 6 // int _outStop
        end local 5 // int inStop
        end local 4 // org.jcodings.Ptr outPos
        end local 3 // byte[] outBytes
        end local 2 // org.jcodings.Ptr inPos
        end local 1 // byte[] inBytes
        end local 0 // org.jruby.runtime.ThreadContext context
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   24     0         context  Lorg/jruby/runtime/ThreadContext;
            0   24     1         inBytes  [B
            0   24     2           inPos  Lorg/jcodings/Ptr;
            0   24     3        outBytes  [B
            0   24     4          outPos  Lorg/jcodings/Ptr;
            0   24     5          inStop  I
            0   24     6        _outStop  I
            0   24     7     destination  Lorg/jruby/util/ByteList;
            0   24     8  resizeFunction  Lorg/jruby/util/io/EncodingUtils$ResizeFunction;
            0   24     9           sname  [B
            0   24    10           dname  [B
            0   24    11         ecflags  I
            0   24    12          ecopts  Lorg/jruby/runtime/builtin/IRubyObject;
            1   24    13         runtime  Lorg/jruby/Ruby;
            4   24    14              ec  Lorg/jcodings/transcode/EConv;
            2   24    15        fallback  Lorg/jruby/runtime/builtin/IRubyObject;
            3   24    16    fallbackFunc  Lorg/jruby/util/io/EncodingUtils$TranscodeFallback;
           19   24    17         success  Z
           21   23    18              re  Lorg/jruby/exceptions/RaiseException;
    MethodParameters:
                Name  Flags
      context         
      inBytes         
      inPos           
      outBytes        
      outPos          
      inStop          
      _outStop        
      destination     
      resizeFunction  
      sname           
      dname           
      ecflags         
      ecopts          

  public static org.jruby.util.ByteList transcodeString(java.lang.String, org.jcodings.Encoding, int);
    descriptor: (Ljava/lang/String;Lorg/jcodings/Encoding;I)Lorg/jruby/util/ByteList;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=12, locals=13, args_size=3
        start local 0 // java.lang.String string
        start local 1 // org.jcodings.Encoding toEncoding
        start local 2 // int ecflags
         0: .line 1330
            invokestatic org.jruby.util.io.EncodingUtils.getUTF16ForPlatform:()Lorg/jcodings/Encoding;
            astore 3 /* encoding */
        start local 3 // org.jcodings.Encoding encoding
         1: .line 1332
            aload 3 /* encoding */
            invokevirtual org.jcodings.Encoding.getName:()[B
            aload 1 /* toEncoding */
            invokevirtual org.jcodings.Encoding.getName:()[B
            iload 2 /* ecflags */
            invokestatic org.jcodings.transcode.TranscoderDB.open:([B[BI)Lorg/jcodings/transcode/EConv;
            astore 4 /* ec */
        start local 4 // org.jcodings.transcode.EConv ec
         2: .line 1334
            aload 0 /* string */
            aload 3 /* encoding */
            invokestatic org.jruby.util.io.EncodingUtils.charsetForEncoding:(Lorg/jcodings/Encoding;)Ljava/nio/charset/Charset;
            invokevirtual java.lang.String.getBytes:(Ljava/nio/charset/Charset;)[B
            astore 5 /* inBytes */
        start local 5 // byte[] inBytes
         3: .line 1335
            new org.jcodings.Ptr
            dup
            iconst_0
            invokespecial org.jcodings.Ptr.<init>:(I)V
            astore 6 /* inPos */
        start local 6 // org.jcodings.Ptr inPos
         4: .line 1337
            aload 5 /* inBytes */
            arraylength
            istore 7 /* inStop */
        start local 7 // int inStop
         5: .line 1339
            aload 5 /* inBytes */
            arraylength
            i2d
            ldc 1.5
            ddiv
            dconst_1
            dadd
            d2i
            istore 8 /* outStop */
        start local 8 // int outStop
         6: .line 1341
            iload 8 /* outStop */
            newarray 8
            astore 9 /* outBytes */
        start local 9 // byte[] outBytes
         7: .line 1342
            new org.jcodings.Ptr
            dup
            iconst_0
            invokespecial org.jcodings.Ptr.<init>:(I)V
            astore 10 /* outPos */
        start local 10 // org.jcodings.Ptr outPos
         8: .line 1344
            new org.jruby.util.ByteList
            dup
            aload 9 /* outBytes */
            aload 1 /* toEncoding */
            iconst_0
            invokespecial org.jruby.util.ByteList.<init>:([BLorg/jcodings/Encoding;Z)V
            astore 11 /* destination */
        start local 11 // org.jruby.util.ByteList destination
         9: .line 1346
            aload 4 /* ec */
            aconst_null
            aconst_null
            aconst_null
            aload 5 /* inBytes */
            aload 6 /* inPos */
            aload 9 /* outBytes */
            aload 10 /* outPos */
            iload 7 /* inStop */
            iload 8 /* outStop */
            aload 11 /* destination */
            getstatic org.jruby.util.io.EncodingUtils.strTranscodingResize:Lorg/jruby/util/io/EncodingUtils$ResizeFunction;
            invokestatic org.jruby.util.io.EncodingUtils.transcodeLoop:(Lorg/jcodings/transcode/EConv;Lorg/jruby/util/io/EncodingUtils$TranscodeFallback;Lorg/jruby/runtime/ThreadContext;Ljava/lang/Object;[BLorg/jcodings/Ptr;[BLorg/jcodings/Ptr;IILorg/jruby/util/ByteList;Lorg/jruby/util/io/EncodingUtils$ResizeFunction;)Z
            istore 12 /* success */
        start local 12 // boolean success
        10: .line 1352
            aload 11 /* destination */
            areturn
        end local 12 // boolean success
        end local 11 // org.jruby.util.ByteList destination
        end local 10 // org.jcodings.Ptr outPos
        end local 9 // byte[] outBytes
        end local 8 // int outStop
        end local 7 // int inStop
        end local 6 // org.jcodings.Ptr inPos
        end local 5 // byte[] inBytes
        end local 4 // org.jcodings.transcode.EConv ec
        end local 3 // org.jcodings.Encoding encoding
        end local 2 // int ecflags
        end local 1 // org.jcodings.Encoding toEncoding
        end local 0 // java.lang.String string
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   11     0       string  Ljava/lang/String;
            0   11     1   toEncoding  Lorg/jcodings/Encoding;
            0   11     2      ecflags  I
            1   11     3     encoding  Lorg/jcodings/Encoding;
            2   11     4           ec  Lorg/jcodings/transcode/EConv;
            3   11     5      inBytes  [B
            4   11     6        inPos  Lorg/jcodings/Ptr;
            5   11     7       inStop  I
            6   11     8      outStop  I
            7   11     9     outBytes  [B
            8   11    10       outPos  Lorg/jcodings/Ptr;
            9   11    11  destination  Lorg/jruby/util/ByteList;
           10   11    12      success  Z
    MethodParameters:
            Name  Flags
      string      
      toEncoding  
      ecflags     

  public static org.jcodings.Encoding getUTF16ForPlatform();
    descriptor: ()Lorg/jcodings/Encoding;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=1, args_size=0
         0: .line 1357
            getstatic org.jruby.platform.Platform.BYTE_ORDER:I
            sipush 1234
            if_icmpne 3
         1: .line 1358
            getstatic org.jcodings.specific.UTF16LEEncoding.INSTANCE:Lorg/jcodings/specific/UTF16LEEncoding;
            astore 0 /* encoding */
        start local 0 // org.jcodings.Encoding encoding
         2: .line 1359
            goto 4
        end local 0 // org.jcodings.Encoding encoding
         3: .line 1360
      StackMap locals:
      StackMap stack:
            getstatic org.jcodings.specific.UTF16BEEncoding.INSTANCE:Lorg/jcodings/specific/UTF16BEEncoding;
            astore 0 /* encoding */
        start local 0 // org.jcodings.Encoding encoding
         4: .line 1362
      StackMap locals: org.jcodings.Encoding
      StackMap stack:
            aload 0 /* encoding */
            areturn
        end local 0 // org.jcodings.Encoding encoding
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            2    3     0  encoding  Lorg/jcodings/Encoding;
            4    5     0  encoding  Lorg/jcodings/Encoding;

  public static <Data> boolean transcodeLoop(org.jcodings.transcode.EConv, org.jruby.util.io.EncodingUtils$TranscodeFallback<Data>, org.jruby.runtime.ThreadContext, Data, byte[], org.jcodings.Ptr, byte[], org.jcodings.Ptr, int, int, org.jruby.util.ByteList, org.jruby.util.io.EncodingUtils$ResizeFunction);
    descriptor: (Lorg/jcodings/transcode/EConv;Lorg/jruby/util/io/EncodingUtils$TranscodeFallback;Lorg/jruby/runtime/ThreadContext;Ljava/lang/Object;[BLorg/jcodings/Ptr;[BLorg/jcodings/Ptr;IILorg/jruby/util/ByteList;Lorg/jruby/util/io/EncodingUtils$ResizeFunction;)Z
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=8, locals=18, args_size=12
        start local 0 // org.jcodings.transcode.EConv ec
        start local 1 // org.jruby.util.io.EncodingUtils$TranscodeFallback fallbackFunc
        start local 2 // org.jruby.runtime.ThreadContext context
        start local 3 // java.lang.Object fallbackData
        start local 4 // byte[] inBytes
        start local 5 // org.jcodings.Ptr inPos
        start local 6 // byte[] outBytes
        start local 7 // org.jcodings.Ptr outPos
        start local 8 // int inStop
        start local 9 // int outStop
        start local 10 // org.jruby.util.ByteList destination
        start local 11 // org.jruby.util.io.EncodingUtils$ResizeFunction resizeFunction
         0: .line 1392
            new org.jcodings.Ptr
            dup
            iload 9 /* outStop */
            invokespecial org.jcodings.Ptr.<init>:(I)V
            astore 12 /* outstopPos */
        start local 12 // org.jcodings.Ptr outstopPos
         1: .line 1393
            aload 0 /* ec */
            getfield org.jcodings.transcode.EConv.lastTranscoding:Lorg/jcodings/transcode/Transcoding;
            astore 13 /* lastTC */
        start local 13 // org.jcodings.transcode.Transcoding lastTC
         2: .line 1394
            aload 13 /* lastTC */
            ifnull 3
            aload 13 /* lastTC */
            getfield org.jcodings.transcode.Transcoding.transcoder:Lorg/jcodings/transcode/Transcoder;
            getfield org.jcodings.transcode.Transcoder.maxOutput:I
            goto 4
      StackMap locals: org.jcodings.Ptr org.jcodings.transcode.Transcoding
      StackMap stack:
         3: iconst_1
      StackMap locals:
      StackMap stack: int
         4: istore 14 /* maxOutput */
        start local 14 // int maxOutput
         5: .line 1396
            new org.jcodings.Ptr
            dup
            aload 7 /* outPos */
            getfield org.jcodings.Ptr.p:I
            invokespecial org.jcodings.Ptr.<init>:(I)V
            astore 15 /* outStart */
        start local 15 // org.jcodings.Ptr outStart
         6: .line 1400
      StackMap locals: int org.jcodings.Ptr
      StackMap stack:
            aload 0 /* ec */
            aload 4 /* inBytes */
            aload 5 /* inPos */
            iload 8 /* inStop */
            aload 6 /* outBytes */
            aload 7 /* outPos */
            aload 12 /* outstopPos */
            getfield org.jcodings.Ptr.p:I
            iconst_0
            invokevirtual org.jcodings.transcode.EConv.convert:([BLorg/jcodings/Ptr;I[BLorg/jcodings/Ptr;II)Lorg/jcodings/transcode/EConvResult;
            astore 16 /* ret */
        start local 16 // org.jcodings.transcode.EConvResult ret
         7: .line 1402
            aload 1 /* fallbackFunc */
            ifnull 10
            aload 16 /* ret */
            getstatic org.jcodings.transcode.EConvResult.UndefinedConversion:Lorg/jcodings/transcode/EConvResult;
            if_acmpne 10
         8: .line 1403
            aload 1 /* fallbackFunc */
            aload 2 /* context */
            aload 3 /* fallbackData */
            aload 0 /* ec */
            invokeinterface org.jruby.util.io.EncodingUtils$TranscodeFallback.call:(Lorg/jruby/runtime/ThreadContext;Ljava/lang/Object;Lorg/jcodings/transcode/EConv;)Z
            ifeq 10
         9: .line 1404
            goto 6
        10: .line 1408
      StackMap locals: org.jcodings.transcode.EConvResult
      StackMap stack:
            aload 16 /* ret */
            getstatic org.jcodings.transcode.EConvResult.InvalidByteSequence:Lorg/jcodings/transcode/EConvResult;
            if_acmpeq 13
        11: .line 1409
            aload 16 /* ret */
            getstatic org.jcodings.transcode.EConvResult.IncompleteInput:Lorg/jcodings/transcode/EConvResult;
            if_acmpeq 13
        12: .line 1410
            aload 16 /* ret */
            getstatic org.jcodings.transcode.EConvResult.UndefinedConversion:Lorg/jcodings/transcode/EConvResult;
            if_acmpne 17
        13: .line 1412
      StackMap locals:
      StackMap stack:
            aload 2 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            aload 0 /* ec */
            invokestatic org.jruby.util.io.EncodingUtils.makeEconvException:(Lorg/jruby/Ruby;Lorg/jcodings/transcode/EConv;)Lorg/jruby/exceptions/RaiseException;
            astore 17 /* exc */
        start local 17 // org.jruby.exceptions.RaiseException exc
        14: .line 1414
            aload 0 /* ec */
            invokevirtual org.jcodings.transcode.EConv.close:()V
        15: .line 1416
            aload 10 /* destination */
            aload 7 /* outPos */
            getfield org.jcodings.Ptr.p:I
            invokevirtual org.jruby.util.ByteList.setRealSize:(I)V
        16: .line 1418
            aload 17 /* exc */
            athrow
        end local 17 // org.jruby.exceptions.RaiseException exc
        17: .line 1421
      StackMap locals:
      StackMap stack:
            aload 16 /* ret */
            getstatic org.jcodings.transcode.EConvResult.DestinationBufferFull:Lorg/jcodings/transcode/EConvResult;
            if_acmpne 21
        18: .line 1422
            aload 10 /* destination */
            aload 11 /* resizeFunction */
            iload 14 /* maxOutput */
            aload 15 /* outStart */
            aload 7 /* outPos */
            aload 12 /* outstopPos */
            invokestatic org.jruby.util.io.EncodingUtils.moreOutputBuffer:(Lorg/jruby/util/ByteList;Lorg/jruby/util/io/EncodingUtils$ResizeFunction;ILorg/jcodings/Ptr;Lorg/jcodings/Ptr;Lorg/jcodings/Ptr;)V
        19: .line 1423
            aload 10 /* destination */
            invokevirtual org.jruby.util.ByteList.getUnsafeBytes:()[B
            astore 6 /* outBytes */
        20: .line 1424
            goto 6
        21: .line 1427
      StackMap locals:
      StackMap stack:
            aload 0 /* ec */
            invokevirtual org.jcodings.transcode.EConv.close:()V
        22: .line 1429
            aload 10 /* destination */
            aload 7 /* outPos */
            getfield org.jcodings.Ptr.p:I
            invokevirtual org.jruby.util.ByteList.setRealSize:(I)V
        23: .line 1431
            iconst_1
            ireturn
        end local 16 // org.jcodings.transcode.EConvResult ret
        end local 15 // org.jcodings.Ptr outStart
        end local 14 // int maxOutput
        end local 13 // org.jcodings.transcode.Transcoding lastTC
        end local 12 // org.jcodings.Ptr outstopPos
        end local 11 // org.jruby.util.io.EncodingUtils$ResizeFunction resizeFunction
        end local 10 // org.jruby.util.ByteList destination
        end local 9 // int outStop
        end local 8 // int inStop
        end local 7 // org.jcodings.Ptr outPos
        end local 6 // byte[] outBytes
        end local 5 // org.jcodings.Ptr inPos
        end local 4 // byte[] inBytes
        end local 3 // java.lang.Object fallbackData
        end local 2 // org.jruby.runtime.ThreadContext context
        end local 1 // org.jruby.util.io.EncodingUtils$TranscodeFallback fallbackFunc
        end local 0 // org.jcodings.transcode.EConv ec
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   24     0              ec  Lorg/jcodings/transcode/EConv;
            0   24     1    fallbackFunc  Lorg/jruby/util/io/EncodingUtils$TranscodeFallback<TData;>;
            0   24     2         context  Lorg/jruby/runtime/ThreadContext;
            0   24     3    fallbackData  TData;
            0   24     4         inBytes  [B
            0   24     5           inPos  Lorg/jcodings/Ptr;
            0   24     6        outBytes  [B
            0   24     7          outPos  Lorg/jcodings/Ptr;
            0   24     8          inStop  I
            0   24     9         outStop  I
            0   24    10     destination  Lorg/jruby/util/ByteList;
            0   24    11  resizeFunction  Lorg/jruby/util/io/EncodingUtils$ResizeFunction;
            1   24    12      outstopPos  Lorg/jcodings/Ptr;
            2   24    13          lastTC  Lorg/jcodings/transcode/Transcoding;
            5   24    14       maxOutput  I
            6   24    15        outStart  Lorg/jcodings/Ptr;
            7   24    16             ret  Lorg/jcodings/transcode/EConvResult;
           14   17    17             exc  Lorg/jruby/exceptions/RaiseException;
    Signature: <Data:Ljava/lang/Object;>(Lorg/jcodings/transcode/EConv;Lorg/jruby/util/io/EncodingUtils$TranscodeFallback<TData;>;Lorg/jruby/runtime/ThreadContext;TData;[BLorg/jcodings/Ptr;[BLorg/jcodings/Ptr;IILorg/jruby/util/ByteList;Lorg/jruby/util/io/EncodingUtils$ResizeFunction;)Z
    MethodParameters:
                Name  Flags
      ec              
      fallbackFunc    
      context         
      fallbackData    
      inBytes         
      inPos           
      outBytes        
      outPos          
      inStop          
      outStop         
      destination     
      resizeFunction  

  public static org.jruby.exceptions.RaiseException makeEconvException(org.jruby.Ruby, org.jcodings.transcode.EConv);
    descriptor: (Lorg/jruby/Ruby;Lorg/jcodings/transcode/EConv;)Lorg/jruby/exceptions/RaiseException;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=7, locals=14, args_size=2
        start local 0 // org.jruby.Ruby runtime
        start local 1 // org.jcodings.transcode.EConv ec
         0: .line 1437
            new java.lang.StringBuilder
            dup
            invokespecial java.lang.StringBuilder.<init>:()V
            astore 2 /* mesg */
        start local 2 // java.lang.StringBuilder mesg
         1: .line 1439
            aload 1 /* ec */
            getfield org.jcodings.transcode.EConv.lastError:Lorg/jcodings/transcode/EConv$LastError;
            invokevirtual org.jcodings.transcode.EConv$LastError.getResult:()Lorg/jcodings/transcode/EConvResult;
            astore 4 /* result */
        start local 4 // org.jcodings.transcode.EConvResult result
         2: .line 1440
            aload 4 /* result */
            getstatic org.jcodings.transcode.EConvResult.InvalidByteSequence:Lorg/jcodings/transcode/EConvResult;
            if_acmpeq 3
            aload 4 /* result */
            getstatic org.jcodings.transcode.EConvResult.IncompleteInput:Lorg/jcodings/transcode/EConvResult;
            if_acmpne 27
         3: .line 1441
      StackMap locals: org.jruby.Ruby org.jcodings.transcode.EConv java.lang.StringBuilder top org.jcodings.transcode.EConvResult
      StackMap stack:
            aload 1 /* ec */
            getfield org.jcodings.transcode.EConv.lastError:Lorg/jcodings/transcode/EConv$LastError;
            invokevirtual org.jcodings.transcode.EConv$LastError.getErrorBytes:()[B
            astore 5 /* errBytes */
        start local 5 // byte[] errBytes
         4: .line 1442
            aload 1 /* ec */
            getfield org.jcodings.transcode.EConv.lastError:Lorg/jcodings/transcode/EConv$LastError;
            invokevirtual org.jcodings.transcode.EConv$LastError.getErrorBytesP:()I
            istore 6 /* errBytesP */
        start local 6 // int errBytesP
         5: .line 1443
            aload 1 /* ec */
            getfield org.jcodings.transcode.EConv.lastError:Lorg/jcodings/transcode/EConv$LastError;
            invokevirtual org.jcodings.transcode.EConv$LastError.getErrorBytesLength:()I
            istore 7 /* errorLen */
        start local 7 // int errorLen
         6: .line 1444
            new org.jruby.util.ByteList
            dup
            aload 5 /* errBytes */
            iload 6 /* errBytesP */
            iload 7 /* errorLen */
            iload 6 /* errBytesP */
            isub
            invokespecial org.jruby.util.ByteList.<init>:([BII)V
            astore 8 /* _bytes */
        start local 8 // org.jruby.util.ByteList _bytes
         7: .line 1445
            aload 0 /* runtime */
            aload 8 /* _bytes */
            invokestatic org.jruby.RubyString.newString:(Lorg/jruby/Ruby;Lorg/jruby/util/ByteList;)Lorg/jruby/RubyString;
            astore 9 /* bytes */
        start local 9 // org.jruby.RubyString bytes
         8: .line 1446
            aload 9 /* bytes */
            invokevirtual org.jruby.RubyString.dump:()Lorg/jruby/runtime/builtin/IRubyObject;
            checkcast org.jruby.RubyString
            astore 10 /* dumped */
        start local 10 // org.jruby.RubyString dumped
         9: .line 1447
            aload 1 /* ec */
            getfield org.jcodings.transcode.EConv.lastError:Lorg/jcodings/transcode/EConv$LastError;
            invokevirtual org.jcodings.transcode.EConv$LastError.getReadAgainLength:()I
            istore 11 /* readagainLen */
        start local 11 // int readagainLen
        10: .line 1448
            aload 0 /* runtime */
            invokevirtual org.jruby.Ruby.getNil:()Lorg/jruby/runtime/builtin/IRubyObject;
            astore 12 /* bytes2 */
        start local 12 // org.jruby.runtime.builtin.IRubyObject bytes2
        11: .line 1449
            aload 4 /* result */
            getstatic org.jcodings.transcode.EConvResult.IncompleteInput:Lorg/jcodings/transcode/EConvResult;
            if_acmpne 14
        12: .line 1450
            aload 2 /* mesg */
            ldc "incomplete "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 10 /* dumped */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/CharSequence;)Ljava/lang/StringBuilder;
            ldc " on "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            new java.lang.String
            dup
            aload 1 /* ec */
            getfield org.jcodings.transcode.EConv.lastError:Lorg/jcodings/transcode/EConv$LastError;
            invokevirtual org.jcodings.transcode.EConv$LastError.getSource:()[B
            invokespecial java.lang.String.<init>:([B)V
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        13: .line 1451
            goto 20
      StackMap locals: org.jruby.Ruby org.jcodings.transcode.EConv java.lang.StringBuilder top org.jcodings.transcode.EConvResult byte[] int int org.jruby.util.ByteList org.jruby.RubyString org.jruby.RubyString int org.jruby.runtime.builtin.IRubyObject
      StackMap stack:
        14: iload 11 /* readagainLen */
            ifeq 19
        15: .line 1452
            aload 0 /* runtime */
            new org.jruby.util.ByteList
            dup
            aload 5 /* errBytes */
            iload 7 /* errorLen */
            iload 6 /* errBytesP */
            iadd
            aload 1 /* ec */
            getfield org.jcodings.transcode.EConv.lastError:Lorg/jcodings/transcode/EConv$LastError;
            invokevirtual org.jcodings.transcode.EConv$LastError.getReadAgainLength:()I
            invokespecial org.jruby.util.ByteList.<init>:([BII)V
            invokestatic org.jruby.RubyString.newString:(Lorg/jruby/Ruby;Lorg/jruby/util/ByteList;)Lorg/jruby/RubyString;
            astore 12 /* bytes2 */
        16: .line 1453
            aload 12 /* bytes2 */
            checkcast org.jruby.RubyString
            invokevirtual org.jruby.RubyString.dump:()Lorg/jruby/runtime/builtin/IRubyObject;
            astore 13 /* dumped2 */
        start local 13 // org.jruby.runtime.builtin.IRubyObject dumped2
        17: .line 1454
            aload 2 /* mesg */
            aload 10 /* dumped */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/CharSequence;)Ljava/lang/StringBuilder;
            ldc " followed by "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 13 /* dumped2 */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            ldc " on "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            new java.lang.String
            dup
            aload 1 /* ec */
            getfield org.jcodings.transcode.EConv.lastError:Lorg/jcodings/transcode/EConv$LastError;
            invokevirtual org.jcodings.transcode.EConv$LastError.getSource:()[B
            invokespecial java.lang.String.<init>:([B)V
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        end local 13 // org.jruby.runtime.builtin.IRubyObject dumped2
        18: .line 1455
            goto 20
        19: .line 1456
      StackMap locals:
      StackMap stack:
            aload 2 /* mesg */
            aload 10 /* dumped */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/CharSequence;)Ljava/lang/StringBuilder;
            ldc " on "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            new java.lang.String
            dup
            aload 1 /* ec */
            getfield org.jcodings.transcode.EConv.lastError:Lorg/jcodings/transcode/EConv$LastError;
            invokevirtual org.jcodings.transcode.EConv$LastError.getSource:()[B
            invokespecial java.lang.String.<init>:([B)V
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        20: .line 1459
      StackMap locals:
      StackMap stack:
            aload 0 /* runtime */
            aload 2 /* mesg */
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual org.jruby.Ruby.newInvalidByteSequenceError:(Ljava/lang/String;)Lorg/jruby/exceptions/RaiseException;
            astore 3 /* exc */
        start local 3 // org.jruby.exceptions.RaiseException exc
        21: .line 1460
            aload 3 /* exc */
            invokevirtual org.jruby.exceptions.RaiseException.getException:()Lorg/jruby/RubyException;
            ldc "error_bytes"
            aload 9 /* bytes */
            invokevirtual org.jruby.RubyException.setInternalVariable:(Ljava/lang/String;Ljava/lang/Object;)V
        22: .line 1461
            aload 3 /* exc */
            invokevirtual org.jruby.exceptions.RaiseException.getException:()Lorg/jruby/RubyException;
            ldc "readagain_bytes"
            aload 12 /* bytes2 */
            invokevirtual org.jruby.RubyException.setInternalVariable:(Ljava/lang/String;Ljava/lang/Object;)V
        23: .line 1462
            aload 3 /* exc */
            invokevirtual org.jruby.exceptions.RaiseException.getException:()Lorg/jruby/RubyException;
            ldc "incomplete_input"
            aload 4 /* result */
            getstatic org.jcodings.transcode.EConvResult.IncompleteInput:Lorg/jcodings/transcode/EConvResult;
            if_acmpne 24
            aload 0 /* runtime */
            invokevirtual org.jruby.Ruby.getTrue:()Lorg/jruby/RubyBoolean;
            goto 25
      StackMap locals: org.jruby.Ruby org.jcodings.transcode.EConv java.lang.StringBuilder org.jruby.exceptions.RaiseException org.jcodings.transcode.EConvResult byte[] int int org.jruby.util.ByteList org.jruby.RubyString org.jruby.RubyString int org.jruby.runtime.builtin.IRubyObject
      StackMap stack: org.jruby.RubyException java.lang.String
        24: aload 0 /* runtime */
            invokevirtual org.jruby.Ruby.getFalse:()Lorg/jruby/RubyBoolean;
      StackMap locals: org.jruby.Ruby org.jcodings.transcode.EConv java.lang.StringBuilder org.jruby.exceptions.RaiseException org.jcodings.transcode.EConvResult byte[] int int org.jruby.util.ByteList org.jruby.RubyString org.jruby.RubyString int org.jruby.runtime.builtin.IRubyObject
      StackMap stack: org.jruby.RubyException java.lang.String org.jruby.RubyBoolean
        25: invokevirtual org.jruby.RubyException.setInternalVariable:(Ljava/lang/String;Ljava/lang/Object;)V
        26: .line 1464
            aload 3 /* exc */
            aload 0 /* runtime */
            aload 1 /* ec */
            invokestatic org.jruby.util.io.EncodingUtils.makeEConvExceptionSetEncs:(Lorg/jruby/exceptions/RaiseException;Lorg/jruby/Ruby;Lorg/jcodings/transcode/EConv;)Lorg/jruby/exceptions/RaiseException;
            areturn
        end local 12 // org.jruby.runtime.builtin.IRubyObject bytes2
        end local 11 // int readagainLen
        end local 10 // org.jruby.RubyString dumped
        end local 9 // org.jruby.RubyString bytes
        end local 8 // org.jruby.util.ByteList _bytes
        end local 7 // int errorLen
        end local 6 // int errBytesP
        end local 5 // byte[] errBytes
        end local 3 // org.jruby.exceptions.RaiseException exc
        27: .line 1466
      StackMap locals: org.jruby.Ruby org.jcodings.transcode.EConv java.lang.StringBuilder top org.jcodings.transcode.EConvResult
      StackMap stack:
            aload 4 /* result */
            getstatic org.jcodings.transcode.EConvResult.UndefinedConversion:Lorg/jcodings/transcode/EConvResult;
            if_acmpne 50
        28: .line 1467
            aload 1 /* ec */
            getfield org.jcodings.transcode.EConv.lastError:Lorg/jcodings/transcode/EConv$LastError;
            invokevirtual org.jcodings.transcode.EConv$LastError.getErrorBytes:()[B
            astore 5 /* errBytes */
        start local 5 // byte[] errBytes
        29: .line 1468
            aload 1 /* ec */
            getfield org.jcodings.transcode.EConv.lastError:Lorg/jcodings/transcode/EConv$LastError;
            invokevirtual org.jcodings.transcode.EConv$LastError.getErrorBytesP:()I
            istore 6 /* errBytesP */
        start local 6 // int errBytesP
        30: .line 1469
            aload 1 /* ec */
            getfield org.jcodings.transcode.EConv.lastError:Lorg/jcodings/transcode/EConv$LastError;
            invokevirtual org.jcodings.transcode.EConv$LastError.getErrorBytesLength:()I
            istore 7 /* errorLen */
        start local 7 // int errorLen
        31: .line 1470
            aload 1 /* ec */
            getfield org.jcodings.transcode.EConv.lastError:Lorg/jcodings/transcode/EConv$LastError;
            invokevirtual org.jcodings.transcode.EConv$LastError.getSource:()[B
            astore 8 /* errSource */
        start local 8 // byte[] errSource
        32: .line 1471
            aload 8 /* errSource */
            ldc "UTF-8"
            invokevirtual java.lang.String.getBytes:()[B
            invokestatic java.util.Arrays.equals:([B[B)Z
            pop
        33: .line 1475
            aload 0 /* runtime */
            new org.jruby.util.ByteList
            dup
            aload 5 /* errBytes */
            iload 6 /* errBytesP */
            iload 7 /* errorLen */
            iload 6 /* errBytesP */
            isub
            invokespecial org.jruby.util.ByteList.<init>:([BII)V
            invokestatic org.jruby.RubyString.newString:(Lorg/jruby/Ruby;Lorg/jruby/util/ByteList;)Lorg/jruby/RubyString;
            astore 9 /* bytes */
        start local 9 // org.jruby.RubyString bytes
        34: .line 1476
            aload 9 /* bytes */
            invokevirtual org.jruby.RubyString.dump:()Lorg/jruby/runtime/builtin/IRubyObject;
            checkcast org.jruby.RubyString
            astore 10 /* dumped */
        start local 10 // org.jruby.RubyString dumped
        35: .line 1478
            aload 8 /* errSource */
            aload 1 /* ec */
            getfield org.jcodings.transcode.EConv.source:[B
            invokestatic java.util.Arrays.equals:([B[B)Z
            ifeq 38
            aload 1 /* ec */
            getfield org.jcodings.transcode.EConv.lastError:Lorg/jcodings/transcode/EConv$LastError;
            invokevirtual org.jcodings.transcode.EConv$LastError.getDestination:()[B
            aload 1 /* ec */
            getfield org.jcodings.transcode.EConv.destination:[B
            invokestatic java.util.Arrays.equals:([B[B)Z
            ifeq 38
        36: .line 1479
            aload 2 /* mesg */
            aload 10 /* dumped */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/CharSequence;)Ljava/lang/StringBuilder;
            ldc " from "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            new java.lang.String
            dup
            aload 8 /* errSource */
            invokespecial java.lang.String.<init>:([B)V
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc " to "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            new java.lang.String
            dup
            aload 1 /* ec */
            getfield org.jcodings.transcode.EConv.lastError:Lorg/jcodings/transcode/EConv$LastError;
            invokevirtual org.jcodings.transcode.EConv$LastError.getDestination:()[B
            invokespecial java.lang.String.<init>:([B)V
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        37: .line 1480
            goto 44
        38: .line 1481
      StackMap locals: org.jruby.Ruby org.jcodings.transcode.EConv java.lang.StringBuilder top org.jcodings.transcode.EConvResult byte[] int int byte[] org.jruby.RubyString org.jruby.RubyString
      StackMap stack:
            aload 2 /* mesg */
            aload 10 /* dumped */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/CharSequence;)Ljava/lang/StringBuilder;
            ldc " to "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            new java.lang.String
            dup
            aload 1 /* ec */
            getfield org.jcodings.transcode.EConv.lastError:Lorg/jcodings/transcode/EConv$LastError;
            invokevirtual org.jcodings.transcode.EConv$LastError.getDestination:()[B
            invokespecial java.lang.String.<init>:([B)V
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc " in conversion from "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            new java.lang.String
            dup
            aload 1 /* ec */
            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;
            pop
        39: .line 1482
            iconst_0
            istore 11 /* i */
        start local 11 // int i
        40: goto 43
        41: .line 1483
      StackMap locals: int
      StackMap stack:
            aload 2 /* mesg */
            ldc " to "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            new java.lang.String
            dup
            aload 1 /* ec */
            getfield org.jcodings.transcode.EConv.elements:[Lorg/jcodings/transcode/EConv$EConvElement;
            iload 11 /* i */
            aaload
            getfield org.jcodings.transcode.EConv$EConvElement.transcoding:Lorg/jcodings/transcode/Transcoding;
            getfield org.jcodings.transcode.Transcoding.transcoder:Lorg/jcodings/transcode/Transcoder;
            invokevirtual org.jcodings.transcode.Transcoder.getDestination:()[B
            invokespecial java.lang.String.<init>:([B)V
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        42: .line 1482
            iinc 11 /* i */ 1
      StackMap locals:
      StackMap stack:
        43: iload 11 /* i */
            aload 1 /* ec */
            getfield org.jcodings.transcode.EConv.numTranscoders:I
            if_icmplt 41
        end local 11 // int i
        44: .line 1487
      StackMap locals:
      StackMap stack:
            aload 0 /* runtime */
            aload 2 /* mesg */
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual org.jruby.Ruby.newUndefinedConversionError:(Ljava/lang/String;)Lorg/jruby/exceptions/RaiseException;
            astore 3 /* exc */
        start local 3 // org.jruby.exceptions.RaiseException exc
        45: .line 1489
            aload 0 /* runtime */
            invokevirtual org.jruby.Ruby.getEncodingService:()Lorg/jruby/runtime/encoding/EncodingService;
            aload 8 /* errSource */
            invokevirtual org.jruby.runtime.encoding.EncodingService.findEncodingOrAliasEntry:([B)Lorg/jcodings/EncodingDB$Entry;
            astore 11 /* entry */
        start local 11 // org.jcodings.EncodingDB$Entry entry
        46: .line 1490
            aload 11 /* entry */
            ifnull 49
        47: .line 1491
            aload 9 /* bytes */
            aload 11 /* entry */
            invokevirtual org.jcodings.EncodingDB$Entry.getEncoding:()Lorg/jcodings/Encoding;
            invokevirtual org.jruby.RubyString.setEncoding:(Lorg/jcodings/Encoding;)V
        48: .line 1492
            aload 3 /* exc */
            invokevirtual org.jruby.exceptions.RaiseException.getException:()Lorg/jruby/RubyException;
            ldc "error_char"
            aload 9 /* bytes */
            invokevirtual org.jruby.RubyException.setInternalVariable:(Ljava/lang/String;Ljava/lang/Object;)V
        49: .line 1495
      StackMap locals: org.jruby.Ruby org.jcodings.transcode.EConv java.lang.StringBuilder org.jruby.exceptions.RaiseException org.jcodings.transcode.EConvResult byte[] int int byte[] org.jruby.RubyString org.jruby.RubyString org.jcodings.EncodingDB$Entry
      StackMap stack:
            aload 3 /* exc */
            aload 0 /* runtime */
            aload 1 /* ec */
            invokestatic org.jruby.util.io.EncodingUtils.makeEConvExceptionSetEncs:(Lorg/jruby/exceptions/RaiseException;Lorg/jruby/Ruby;Lorg/jcodings/transcode/EConv;)Lorg/jruby/exceptions/RaiseException;
            areturn
        end local 11 // org.jcodings.EncodingDB$Entry entry
        end local 10 // org.jruby.RubyString dumped
        end local 9 // org.jruby.RubyString bytes
        end local 8 // byte[] errSource
        end local 7 // int errorLen
        end local 6 // int errBytesP
        end local 5 // byte[] errBytes
        end local 3 // org.jruby.exceptions.RaiseException exc
        50: .line 1497
      StackMap locals: org.jruby.Ruby org.jcodings.transcode.EConv java.lang.StringBuilder top org.jcodings.transcode.EConvResult
      StackMap stack:
            aconst_null
            areturn
        end local 4 // org.jcodings.transcode.EConvResult result
        end local 2 // java.lang.StringBuilder mesg
        end local 1 // org.jcodings.transcode.EConv ec
        end local 0 // org.jruby.Ruby runtime
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0   51     0       runtime  Lorg/jruby/Ruby;
            0   51     1            ec  Lorg/jcodings/transcode/EConv;
            1   51     2          mesg  Ljava/lang/StringBuilder;
           21   27     3           exc  Lorg/jruby/exceptions/RaiseException;
           45   50     3           exc  Lorg/jruby/exceptions/RaiseException;
            2   51     4        result  Lorg/jcodings/transcode/EConvResult;
            4   27     5      errBytes  [B
            5   27     6     errBytesP  I
            6   27     7      errorLen  I
            7   27     8        _bytes  Lorg/jruby/util/ByteList;
            8   27     9         bytes  Lorg/jruby/RubyString;
            9   27    10        dumped  Lorg/jruby/RubyString;
           10   27    11  readagainLen  I
           11   27    12        bytes2  Lorg/jruby/runtime/builtin/IRubyObject;
           17   18    13       dumped2  Lorg/jruby/runtime/builtin/IRubyObject;
           29   50     5      errBytes  [B
           30   50     6     errBytesP  I
           31   50     7      errorLen  I
           32   50     8     errSource  [B
           34   50     9         bytes  Lorg/jruby/RubyString;
           35   50    10        dumped  Lorg/jruby/RubyString;
           40   44    11             i  I
           46   50    11         entry  Lorg/jcodings/EncodingDB$Entry;
    MethodParameters:
         Name  Flags
      runtime  
      ec       

  private static org.jruby.exceptions.RaiseException makeEConvExceptionSetEncs(org.jruby.exceptions.RaiseException, org.jruby.Ruby, org.jcodings.transcode.EConv);
    descriptor: (Lorg/jruby/exceptions/RaiseException;Lorg/jruby/Ruby;Lorg/jcodings/transcode/EConv;)Lorg/jruby/exceptions/RaiseException;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=4, locals=4, args_size=3
        start local 0 // org.jruby.exceptions.RaiseException exc
        start local 1 // org.jruby.Ruby runtime
        start local 2 // org.jcodings.transcode.EConv ec
         0: .line 1501
            aload 0 /* exc */
            invokevirtual org.jruby.exceptions.RaiseException.getException:()Lorg/jruby/RubyException;
            ldc "source_encoding_name"
            aload 1 /* runtime */
            aload 2 /* ec */
            getfield org.jcodings.transcode.EConv.lastError:Lorg/jcodings/transcode/EConv$LastError;
            invokevirtual org.jcodings.transcode.EConv$LastError.getSource:()[B
            invokestatic org.jruby.RubyString.newString:(Lorg/jruby/Ruby;[B)Lorg/jruby/RubyString;
            invokevirtual org.jruby.RubyException.setInternalVariable:(Ljava/lang/String;Ljava/lang/Object;)V
         1: .line 1502
            aload 0 /* exc */
            invokevirtual org.jruby.exceptions.RaiseException.getException:()Lorg/jruby/RubyException;
            ldc "destination_encoding_name"
            aload 1 /* runtime */
            aload 2 /* ec */
            getfield org.jcodings.transcode.EConv.lastError:Lorg/jcodings/transcode/EConv$LastError;
            invokevirtual org.jcodings.transcode.EConv$LastError.getDestination:()[B
            invokestatic org.jruby.RubyString.newString:(Lorg/jruby/Ruby;[B)Lorg/jruby/RubyString;
            invokevirtual org.jruby.RubyException.setInternalVariable:(Ljava/lang/String;Ljava/lang/Object;)V
         2: .line 1504
            aload 1 /* runtime */
            invokevirtual org.jruby.Ruby.getEncodingService:()Lorg/jruby/runtime/encoding/EncodingService;
            aload 2 /* ec */
            getfield org.jcodings.transcode.EConv.lastError:Lorg/jcodings/transcode/EConv$LastError;
            invokevirtual org.jcodings.transcode.EConv$LastError.getSource:()[B
            invokevirtual org.jruby.runtime.encoding.EncodingService.findEncodingOrAliasEntry:([B)Lorg/jcodings/EncodingDB$Entry;
            astore 3 /* entry */
        start local 3 // org.jcodings.EncodingDB$Entry entry
         3: .line 1505
            aload 3 /* entry */
            ifnull 5
         4: .line 1506
            aload 0 /* exc */
            invokevirtual org.jruby.exceptions.RaiseException.getException:()Lorg/jruby/RubyException;
            ldc "source_encoding"
            aload 1 /* runtime */
            invokevirtual org.jruby.Ruby.getEncodingService:()Lorg/jruby/runtime/encoding/EncodingService;
            aload 3 /* entry */
            invokevirtual org.jcodings.EncodingDB$Entry.getEncoding:()Lorg/jcodings/Encoding;
            invokevirtual org.jruby.runtime.encoding.EncodingService.convertEncodingToRubyEncoding:(Lorg/jcodings/Encoding;)Lorg/jruby/runtime/builtin/IRubyObject;
            invokevirtual org.jruby.RubyException.setInternalVariable:(Ljava/lang/String;Ljava/lang/Object;)V
         5: .line 1508
      StackMap locals: org.jcodings.EncodingDB$Entry
      StackMap stack:
            aload 1 /* runtime */
            invokevirtual org.jruby.Ruby.getEncodingService:()Lorg/jruby/runtime/encoding/EncodingService;
            aload 2 /* ec */
            getfield org.jcodings.transcode.EConv.lastError:Lorg/jcodings/transcode/EConv$LastError;
            invokevirtual org.jcodings.transcode.EConv$LastError.getDestination:()[B
            invokevirtual org.jruby.runtime.encoding.EncodingService.findEncodingOrAliasEntry:([B)Lorg/jcodings/EncodingDB$Entry;
            astore 3 /* entry */
         6: .line 1509
            aload 3 /* entry */
            ifnull 8
         7: .line 1510
            aload 0 /* exc */
            invokevirtual org.jruby.exceptions.RaiseException.getException:()Lorg/jruby/RubyException;
            ldc "destination_encoding"
            aload 1 /* runtime */
            invokevirtual org.jruby.Ruby.getEncodingService:()Lorg/jruby/runtime/encoding/EncodingService;
            aload 3 /* entry */
            invokevirtual org.jcodings.EncodingDB$Entry.getEncoding:()Lorg/jcodings/Encoding;
            invokevirtual org.jruby.runtime.encoding.EncodingService.convertEncodingToRubyEncoding:(Lorg/jcodings/Encoding;)Lorg/jruby/runtime/builtin/IRubyObject;
            invokevirtual org.jruby.RubyException.setInternalVariable:(Ljava/lang/String;Ljava/lang/Object;)V
         8: .line 1513
      StackMap locals:
      StackMap stack:
            aload 0 /* exc */
            areturn
        end local 3 // org.jcodings.EncodingDB$Entry entry
        end local 2 // org.jcodings.transcode.EConv ec
        end local 1 // org.jruby.Ruby runtime
        end local 0 // org.jruby.exceptions.RaiseException exc
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    9     0      exc  Lorg/jruby/exceptions/RaiseException;
            0    9     1  runtime  Lorg/jruby/Ruby;
            0    9     2       ec  Lorg/jcodings/transcode/EConv;
            3    9     3    entry  Lorg/jcodings/EncodingDB$Entry;
    MethodParameters:
         Name  Flags
      exc      
      runtime  
      ec       

  static void moreOutputBuffer(org.jruby.util.ByteList, org.jruby.util.io.EncodingUtils$ResizeFunction, int, org.jcodings.Ptr, org.jcodings.Ptr, org.jcodings.Ptr);
    descriptor: (Lorg/jruby/util/ByteList;Lorg/jruby/util/io/EncodingUtils$ResizeFunction;ILorg/jcodings/Ptr;Lorg/jcodings/Ptr;Lorg/jcodings/Ptr;)V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=5, locals=8, args_size=6
        start local 0 // org.jruby.util.ByteList destination
        start local 1 // org.jruby.util.io.EncodingUtils$ResizeFunction resizeDestination
        start local 2 // int maxOutput
        start local 3 // org.jcodings.Ptr outStart
        start local 4 // org.jcodings.Ptr outPos
        start local 5 // org.jcodings.Ptr outStop
         0: .line 1518
            aload 4 /* outPos */
            getfield org.jcodings.Ptr.p:I
            aload 3 /* outStart */
            getfield org.jcodings.Ptr.p:I
            isub
            istore 6 /* len */
        start local 6 // int len
         1: .line 1519
            iload 6 /* len */
            iload 2 /* maxOutput */
            iadd
            iconst_2
            imul
            istore 7 /* newLen */
        start local 7 // int newLen
         2: .line 1520
            aload 3 /* outStart */
            aload 1 /* resizeDestination */
            aload 0 /* destination */
            iload 6 /* len */
            iload 7 /* newLen */
            invokeinterface org.jruby.util.io.EncodingUtils$ResizeFunction.resize:(Lorg/jruby/util/ByteList;II)I
            putfield org.jcodings.Ptr.p:I
         3: .line 1521
            aload 4 /* outPos */
            aload 3 /* outStart */
            getfield org.jcodings.Ptr.p:I
            iload 6 /* len */
            iadd
            putfield org.jcodings.Ptr.p:I
         4: .line 1522
            aload 5 /* outStop */
            aload 3 /* outStart */
            getfield org.jcodings.Ptr.p:I
            iload 7 /* newLen */
            iadd
            putfield org.jcodings.Ptr.p:I
         5: .line 1523
            return
        end local 7 // int newLen
        end local 6 // int len
        end local 5 // org.jcodings.Ptr outStop
        end local 4 // org.jcodings.Ptr outPos
        end local 3 // org.jcodings.Ptr outStart
        end local 2 // int maxOutput
        end local 1 // org.jruby.util.io.EncodingUtils$ResizeFunction resizeDestination
        end local 0 // org.jruby.util.ByteList destination
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0    6     0        destination  Lorg/jruby/util/ByteList;
            0    6     1  resizeDestination  Lorg/jruby/util/io/EncodingUtils$ResizeFunction;
            0    6     2          maxOutput  I
            0    6     3           outStart  Lorg/jcodings/Ptr;
            0    6     4             outPos  Lorg/jcodings/Ptr;
            0    6     5            outStop  Lorg/jcodings/Ptr;
            1    6     6                len  I
            2    6     7             newLen  I
    MethodParameters:
                   Name  Flags
      destination        
      resizeDestination  
      maxOutput          
      outStart           
      outPos             
      outStop            

  public static void ioSetEncodingByBOM(org.jruby.runtime.ThreadContext, org.jruby.RubyIO);
    descriptor: (Lorg/jruby/runtime/ThreadContext;Lorg/jruby/RubyIO;)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=5, locals=6, args_size=2
        start local 0 // org.jruby.runtime.ThreadContext context
        start local 1 // org.jruby.RubyIO io
         0: .line 1527
            aload 0 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            astore 2 /* runtime */
        start local 2 // org.jruby.Ruby runtime
         1: .line 1528
            aload 0 /* context */
            aload 1 /* io */
            invokestatic org.jruby.util.io.EncodingUtils.ioStripBOM:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/RubyIO;)Lorg/jcodings/Encoding;
            astore 3 /* bomEncoding */
        start local 3 // org.jcodings.Encoding bomEncoding
         2: .line 1530
            aload 3 /* bomEncoding */
            ifnull 7
         3: .line 1532
            aload 2 /* runtime */
            invokevirtual org.jruby.Ruby.getEncodingService:()Lorg/jruby/runtime/encoding/EncodingService;
            aload 3 /* bomEncoding */
            invokevirtual org.jruby.runtime.encoding.EncodingService.getEncoding:(Lorg/jcodings/Encoding;)Lorg/jruby/RubyEncoding;
            astore 4 /* theBom */
        start local 4 // org.jruby.runtime.builtin.IRubyObject theBom
         4: .line 1533
            aload 1 /* io */
            aload 0 /* context */
            invokevirtual org.jruby.RubyIO.internal_encoding:(Lorg/jruby/runtime/ThreadContext;)Lorg/jruby/runtime/builtin/IRubyObject;
            astore 5 /* theInternal */
        start local 5 // org.jruby.runtime.builtin.IRubyObject theInternal
         5: .line 1535
            aload 1 /* io */
            aload 2 /* runtime */
            invokevirtual org.jruby.Ruby.getCurrentContext:()Lorg/jruby/runtime/ThreadContext;
            aload 4 /* theBom */
            aload 5 /* theInternal */
            aload 0 /* context */
            getfield org.jruby.runtime.ThreadContext.nil:Lorg/jruby/runtime/builtin/IRubyObject;
            invokevirtual org.jruby.RubyIO.setEncoding:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;)V
        end local 5 // org.jruby.runtime.builtin.IRubyObject theInternal
        end local 4 // org.jruby.runtime.builtin.IRubyObject theBom
         6: .line 1536
            goto 8
         7: .line 1537
      StackMap locals: org.jruby.Ruby org.jcodings.Encoding
      StackMap stack:
            aload 1 /* io */
            aconst_null
            invokevirtual org.jruby.RubyIO.setEnc2:(Lorg/jcodings/Encoding;)V
         8: .line 1539
      StackMap locals:
      StackMap stack:
            return
        end local 3 // org.jcodings.Encoding bomEncoding
        end local 2 // org.jruby.Ruby runtime
        end local 1 // org.jruby.RubyIO io
        end local 0 // org.jruby.runtime.ThreadContext context
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    9     0      context  Lorg/jruby/runtime/ThreadContext;
            0    9     1           io  Lorg/jruby/RubyIO;
            1    9     2      runtime  Lorg/jruby/Ruby;
            2    9     3  bomEncoding  Lorg/jcodings/Encoding;
            4    6     4       theBom  Lorg/jruby/runtime/builtin/IRubyObject;
            5    6     5  theInternal  Lorg/jruby/runtime/builtin/IRubyObject;
    MethodParameters:
         Name  Flags
      context  
      io       

  public static org.jcodings.Encoding ioStripBOM(org.jruby.runtime.ThreadContext, org.jruby.RubyIO);
    descriptor: (Lorg/jruby/runtime/ThreadContext;Lorg/jruby/RubyIO;)Lorg/jcodings/Encoding;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=6, args_size=2
        start local 0 // org.jruby.runtime.ThreadContext context
        start local 1 // org.jruby.RubyIO io
         0: .line 1545
            aload 1 /* io */
            invokevirtual org.jruby.RubyIO.getOpenFile:()Lorg/jruby/util/io/OpenFile;
            invokevirtual org.jruby.util.io.OpenFile.getMode:()I
            iconst_1
            iand
            ifne 1
            aconst_null
            areturn
         1: .line 1546
      StackMap locals:
      StackMap stack:
            aload 1 /* io */
            aload 0 /* context */
            invokevirtual org.jruby.RubyIO.getbyte:(Lorg/jruby/runtime/ThreadContext;)Lorg/jruby/runtime/builtin/IRubyObject;
            dup
            astore 2 /* b1 */
        start local 2 // org.jruby.runtime.builtin.IRubyObject b1
         2: invokeinterface org.jruby.runtime.builtin.IRubyObject.isNil:()Z
            ifeq 3
            aconst_null
            areturn
         3: .line 1548
      StackMap locals: org.jruby.runtime.builtin.IRubyObject
      StackMap stack:
            aload 2 /* b1 */
            checkcast org.jruby.RubyFixnum
            invokevirtual org.jruby.RubyFixnum.getLongValue:()J
            l2i
            lookupswitch { // 4
                    0: 34
                  239: 4
                  254: 13
                  255: 19
              default: 45
          }
         4: .line 1550
      StackMap locals:
      StackMap stack:
            aload 1 /* io */
            aload 0 /* context */
            invokevirtual org.jruby.RubyIO.getbyte:(Lorg/jruby/runtime/ThreadContext;)Lorg/jruby/runtime/builtin/IRubyObject;
            dup
            astore 3 /* b2 */
        start local 3 // org.jruby.runtime.builtin.IRubyObject b2
         5: invokeinterface org.jruby.runtime.builtin.IRubyObject.isNil:()Z
            ifeq 6
            goto 45
         6: .line 1551
      StackMap locals: org.jruby.runtime.builtin.IRubyObject
      StackMap stack:
            aload 3 /* b2 */
            instanceof org.jruby.RubyFixnum
            ifeq 11
            aload 3 /* b2 */
            checkcast org.jruby.RubyFixnum
            invokevirtual org.jruby.RubyFixnum.getLongValue:()J
            ldc 187
            lcmp
            ifne 11
            aload 1 /* io */
            aload 0 /* context */
            invokevirtual org.jruby.RubyIO.getbyte:(Lorg/jruby/runtime/ThreadContext;)Lorg/jruby/runtime/builtin/IRubyObject;
            dup
            astore 4 /* b3 */
        start local 4 // org.jruby.runtime.builtin.IRubyObject b3
         7: invokeinterface org.jruby.runtime.builtin.IRubyObject.isNil:()Z
            ifne 11
         8: .line 1552
            aload 4 /* b3 */
            checkcast org.jruby.RubyFixnum
            invokevirtual org.jruby.RubyFixnum.getLongValue:()J
            ldc 191
            lcmp
            ifne 10
         9: .line 1553
            getstatic org.jcodings.specific.UTF8Encoding.INSTANCE:Lorg/jcodings/specific/UTF8Encoding;
            areturn
        10: .line 1555
      StackMap locals: org.jruby.runtime.builtin.IRubyObject
      StackMap stack:
            aload 1 /* io */
            aload 0 /* context */
            aload 4 /* b3 */
            invokevirtual org.jruby.RubyIO.ungetbyte:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
            pop
        end local 4 // org.jruby.runtime.builtin.IRubyObject b3
        11: .line 1557
      StackMap locals:
      StackMap stack:
            aload 1 /* io */
            aload 0 /* context */
            aload 3 /* b2 */
            invokevirtual org.jruby.RubyIO.ungetbyte:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
            pop
        12: .line 1558
            goto 45
        end local 3 // org.jruby.runtime.builtin.IRubyObject b2
        13: .line 1560
      StackMap locals:
      StackMap stack:
            aload 1 /* io */
            aload 0 /* context */
            invokevirtual org.jruby.RubyIO.getbyte:(Lorg/jruby/runtime/ThreadContext;)Lorg/jruby/runtime/builtin/IRubyObject;
            dup
            astore 3 /* b2 */
        start local 3 // org.jruby.runtime.builtin.IRubyObject b2
        14: invokeinterface org.jruby.runtime.builtin.IRubyObject.isNil:()Z
            ifeq 15
            goto 45
        15: .line 1561
      StackMap locals: org.jruby.runtime.builtin.IRubyObject
      StackMap stack:
            aload 3 /* b2 */
            instanceof org.jruby.RubyFixnum
            ifeq 17
            aload 3 /* b2 */
            checkcast org.jruby.RubyFixnum
            invokevirtual org.jruby.RubyFixnum.getLongValue:()J
            ldc 255
            lcmp
            ifne 17
        16: .line 1562
            getstatic org.jcodings.specific.UTF16BEEncoding.INSTANCE:Lorg/jcodings/specific/UTF16BEEncoding;
            areturn
        17: .line 1564
      StackMap locals:
      StackMap stack:
            aload 1 /* io */
            aload 0 /* context */
            aload 3 /* b2 */
            invokevirtual org.jruby.RubyIO.ungetbyte:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
            pop
        18: .line 1565
            goto 45
        end local 3 // org.jruby.runtime.builtin.IRubyObject b2
        19: .line 1567
      StackMap locals:
      StackMap stack:
            aload 1 /* io */
            aload 0 /* context */
            invokevirtual org.jruby.RubyIO.getbyte:(Lorg/jruby/runtime/ThreadContext;)Lorg/jruby/runtime/builtin/IRubyObject;
            dup
            astore 3 /* b2 */
        start local 3 // org.jruby.runtime.builtin.IRubyObject b2
        20: invokeinterface org.jruby.runtime.builtin.IRubyObject.isNil:()Z
            ifeq 21
            goto 45
        21: .line 1568
      StackMap locals: org.jruby.runtime.builtin.IRubyObject
      StackMap stack:
            aload 3 /* b2 */
            instanceof org.jruby.RubyFixnum
            ifeq 32
            aload 3 /* b2 */
            checkcast org.jruby.RubyFixnum
            invokevirtual org.jruby.RubyFixnum.getLongValue:()J
            ldc 254
            lcmp
            ifne 32
        22: .line 1569
            aload 1 /* io */
            aload 0 /* context */
            invokevirtual org.jruby.RubyIO.getbyte:(Lorg/jruby/runtime/ThreadContext;)Lorg/jruby/runtime/builtin/IRubyObject;
            astore 4 /* b3 */
        start local 4 // org.jruby.runtime.builtin.IRubyObject b3
        23: .line 1570
            aload 4 /* b3 */
            instanceof org.jruby.RubyFixnum
            ifeq 29
            aload 4 /* b3 */
            checkcast org.jruby.RubyFixnum
            invokevirtual org.jruby.RubyFixnum.getLongValue:()J
            lconst_0
            lcmp
            ifne 29
            aload 1 /* io */
            aload 0 /* context */
            invokevirtual org.jruby.RubyIO.getbyte:(Lorg/jruby/runtime/ThreadContext;)Lorg/jruby/runtime/builtin/IRubyObject;
            dup
            astore 5 /* b4 */
        start local 5 // org.jruby.runtime.builtin.IRubyObject b4
        24: invokeinterface org.jruby.runtime.builtin.IRubyObject.isNil:()Z
            ifne 29
        25: .line 1571
            aload 5 /* b4 */
            checkcast org.jruby.RubyFixnum
            invokevirtual org.jruby.RubyFixnum.getLongValue:()J
            lconst_0
            lcmp
            ifne 27
        26: .line 1572
            getstatic org.jcodings.specific.UTF32LEEncoding.INSTANCE:Lorg/jcodings/specific/UTF32LEEncoding;
            areturn
        27: .line 1574
      StackMap locals: org.jruby.runtime.builtin.IRubyObject org.jruby.runtime.builtin.IRubyObject
      StackMap stack:
            aload 1 /* io */
            aload 0 /* context */
            aload 5 /* b4 */
            invokevirtual org.jruby.RubyIO.ungetbyte:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
            pop
        28: .line 1575
            goto 31
        end local 5 // org.jruby.runtime.builtin.IRubyObject b4
        29: .line 1576
      StackMap locals:
      StackMap stack:
            aload 1 /* io */
            aload 0 /* context */
            aload 4 /* b3 */
            invokevirtual org.jruby.RubyIO.ungetbyte:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
            pop
        30: .line 1577
            getstatic org.jcodings.specific.UTF16LEEncoding.INSTANCE:Lorg/jcodings/specific/UTF16LEEncoding;
            areturn
        start local 5 // org.jruby.runtime.builtin.IRubyObject b4
        31: .line 1579
      StackMap locals: org.jruby.runtime.builtin.IRubyObject
      StackMap stack:
            aload 1 /* io */
            aload 0 /* context */
            aload 4 /* b3 */
            invokevirtual org.jruby.RubyIO.ungetbyte:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
            pop
        end local 5 // org.jruby.runtime.builtin.IRubyObject b4
        end local 4 // org.jruby.runtime.builtin.IRubyObject b3
        32: .line 1581
      StackMap locals:
      StackMap stack:
            aload 1 /* io */
            aload 0 /* context */
            aload 3 /* b2 */
            invokevirtual org.jruby.RubyIO.ungetbyte:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
            pop
        33: .line 1582
            goto 45
        end local 3 // org.jruby.runtime.builtin.IRubyObject b2
        34: .line 1584
      StackMap locals:
      StackMap stack:
            aload 1 /* io */
            aload 0 /* context */
            invokevirtual org.jruby.RubyIO.getbyte:(Lorg/jruby/runtime/ThreadContext;)Lorg/jruby/runtime/builtin/IRubyObject;
            dup
            astore 3 /* b2 */
        start local 3 // org.jruby.runtime.builtin.IRubyObject b2
        35: invokeinterface org.jruby.runtime.builtin.IRubyObject.isNil:()Z
            ifeq 36
            goto 45
        36: .line 1585
      StackMap locals: org.jruby.runtime.builtin.IRubyObject
      StackMap stack:
            aload 3 /* b2 */
            instanceof org.jruby.RubyFixnum
            ifeq 44
            aload 3 /* b2 */
            checkcast org.jruby.RubyFixnum
            invokevirtual org.jruby.RubyFixnum.getLongValue:()J
            lconst_0
            lcmp
            ifne 44
            aload 1 /* io */
            aload 0 /* context */
            invokevirtual org.jruby.RubyIO.getbyte:(Lorg/jruby/runtime/ThreadContext;)Lorg/jruby/runtime/builtin/IRubyObject;
            dup
            astore 4 /* b3 */
        start local 4 // org.jruby.runtime.builtin.IRubyObject b3
        37: invokeinterface org.jruby.runtime.builtin.IRubyObject.isNil:()Z
            ifne 44
        38: .line 1586
            aload 4 /* b3 */
            instanceof org.jruby.RubyFixnum
            ifeq 43
            aload 4 /* b3 */
            checkcast org.jruby.RubyFixnum
            invokevirtual org.jruby.RubyFixnum.getLongValue:()J
            ldc 254
            lcmp
            ifne 43
            aload 1 /* io */
            aload 0 /* context */
            invokevirtual org.jruby.RubyIO.getbyte:(Lorg/jruby/runtime/ThreadContext;)Lorg/jruby/runtime/builtin/IRubyObject;
            dup
            astore 5 /* b4 */
        start local 5 // org.jruby.runtime.builtin.IRubyObject b4
        39: invokeinterface org.jruby.runtime.builtin.IRubyObject.isNil:()Z
            ifne 43
        40: .line 1587
            aload 5 /* b4 */
            instanceof org.jruby.RubyFixnum
            ifeq 42
            aload 5 /* b4 */
            checkcast org.jruby.RubyFixnum
            invokevirtual org.jruby.RubyFixnum.getLongValue:()J
            ldc 255
            lcmp
            ifne 42
        41: .line 1588
            getstatic org.jcodings.specific.UTF32BEEncoding.INSTANCE:Lorg/jcodings/specific/UTF32BEEncoding;
            areturn
        42: .line 1590
      StackMap locals: org.jruby.runtime.builtin.IRubyObject org.jruby.runtime.builtin.IRubyObject
      StackMap stack:
            aload 1 /* io */
            aload 0 /* context */
            aload 5 /* b4 */
            invokevirtual org.jruby.RubyIO.ungetbyte:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
            pop
        end local 5 // org.jruby.runtime.builtin.IRubyObject b4
        43: .line 1592
      StackMap locals:
      StackMap stack:
            aload 1 /* io */
            aload 0 /* context */
            aload 4 /* b3 */
            invokevirtual org.jruby.RubyIO.ungetbyte:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
            pop
        end local 4 // org.jruby.runtime.builtin.IRubyObject b3
        44: .line 1594
      StackMap locals:
      StackMap stack:
            aload 1 /* io */
            aload 0 /* context */
            aload 3 /* b2 */
            invokevirtual org.jruby.RubyIO.ungetbyte:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
            pop
        end local 3 // org.jruby.runtime.builtin.IRubyObject b2
        45: .line 1597
      StackMap locals:
      StackMap stack:
            aload 1 /* io */
            aload 0 /* context */
            aload 2 /* b1 */
            invokevirtual org.jruby.RubyIO.ungetbyte:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
            pop
        46: .line 1598
            aconst_null
            areturn
        end local 2 // org.jruby.runtime.builtin.IRubyObject b1
        end local 1 // org.jruby.RubyIO io
        end local 0 // org.jruby.runtime.ThreadContext context
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   47     0  context  Lorg/jruby/runtime/ThreadContext;
            0   47     1       io  Lorg/jruby/RubyIO;
            2   47     2       b1  Lorg/jruby/runtime/builtin/IRubyObject;
            5   13     3       b2  Lorg/jruby/runtime/builtin/IRubyObject;
           14   19     3       b2  Lorg/jruby/runtime/builtin/IRubyObject;
           20   34     3       b2  Lorg/jruby/runtime/builtin/IRubyObject;
           35   45     3       b2  Lorg/jruby/runtime/builtin/IRubyObject;
            7   11     4       b3  Lorg/jruby/runtime/builtin/IRubyObject;
           23   32     4       b3  Lorg/jruby/runtime/builtin/IRubyObject;
           37   44     4       b3  Lorg/jruby/runtime/builtin/IRubyObject;
           24   29     5       b4  Lorg/jruby/runtime/builtin/IRubyObject;
           31   32     5       b4  Lorg/jruby/runtime/builtin/IRubyObject;
           39   43     5       b4  Lorg/jruby/runtime/builtin/IRubyObject;
    MethodParameters:
         Name  Flags
      context  
      io       

  public static void validateEncodingBinmode(org.jruby.runtime.ThreadContext, int[], int, org.jruby.util.io.IOEncodable);
    descriptor: (Lorg/jruby/runtime/ThreadContext;[IILorg/jruby/util/io/IOEncodable;)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=6, args_size=4
        start local 0 // org.jruby.runtime.ThreadContext context
        start local 1 // int[] fmode_p
        start local 2 // int ecflags
        start local 3 // org.jruby.util.io.IOEncodable ioEncodable
         0: .line 1603
            aload 0 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            astore 4 /* runtime */
        start local 4 // org.jruby.Ruby runtime
         1: .line 1604
            aload 1 /* fmode_p */
            iconst_0
            iaload
            istore 5 /* fmode */
        start local 5 // int fmode
         2: .line 1606
            iload 5 /* fmode */
            iconst_1
            iand
            ifeq 9
         3: .line 1607
            aload 3 /* ioEncodable */
            invokeinterface org.jruby.util.io.IOEncodable.getEnc2:()Lorg/jcodings/Encoding;
            ifnonnull 9
         4: .line 1608
            iload 5 /* fmode */
            iconst_4
            iand
            ifne 9
         5: .line 1609
            aload 3 /* ioEncodable */
            invokeinterface org.jruby.util.io.IOEncodable.getEnc:()Lorg/jcodings/Encoding;
            ifnull 6
            aload 3 /* ioEncodable */
            invokeinterface org.jruby.util.io.IOEncodable.getEnc:()Lorg/jcodings/Encoding;
            goto 7
      StackMap locals: org.jruby.Ruby int
      StackMap stack:
         6: aload 4 /* runtime */
            invokevirtual org.jruby.Ruby.getDefaultExternalEncoding:()Lorg/jcodings/Encoding;
      StackMap locals:
      StackMap stack: org.jcodings.Encoding
         7: invokevirtual org.jcodings.Encoding.isAsciiCompatible:()Z
            ifne 9
         8: .line 1610
            aload 4 /* runtime */
            ldc "ASCII incompatible encoding needs binmode"
            invokevirtual org.jruby.Ruby.newArgumentError:(Ljava/lang/String;)Lorg/jruby/exceptions/RaiseException;
            athrow
         9: .line 1613
      StackMap locals:
      StackMap stack:
            iload 5 /* fmode */
            iconst_4
            iand
            ifeq 11
            iload 2 /* ecflags */
            sipush 16128
            iand
            ifeq 11
        10: .line 1614
            aload 4 /* runtime */
            ldc "newline decorator with binary mode"
            invokevirtual org.jruby.Ruby.newArgumentError:(Ljava/lang/String;)Lorg/jruby/exceptions/RaiseException;
            athrow
        11: .line 1617
      StackMap locals:
      StackMap stack:
            iload 5 /* fmode */
            iconst_4
            iand
            ifne 15
            getstatic org.jruby.util.io.EncodingUtils.DEFAULT_TEXTMODE:I
            ifne 12
            iload 2 /* ecflags */
            sipush 16128
            iand
            ifeq 15
        12: .line 1618
      StackMap locals:
      StackMap stack:
            iload 5 /* fmode */
            sipush 4096
            ior
            istore 5 /* fmode */
        13: .line 1619
            aload 1 /* fmode_p */
            iconst_0
            iload 5 /* fmode */
            iastore
        14: .line 1620
            goto 18
      StackMap locals:
      StackMap stack:
        15: getstatic org.jruby.util.io.EncodingUtils.DEFAULT_TEXTMODE:I
            ifne 18
            iload 2 /* ecflags */
            sipush 16128
            iand
            ifne 18
        16: .line 1621
            iload 5 /* fmode */
            sipush -4097
            iand
            istore 5 /* fmode */
        17: .line 1622
            aload 1 /* fmode_p */
            iconst_0
            iload 5 /* fmode */
            iastore
        18: .line 1624
      StackMap locals:
      StackMap stack:
            return
        end local 5 // int fmode
        end local 4 // org.jruby.Ruby runtime
        end local 3 // org.jruby.util.io.IOEncodable ioEncodable
        end local 2 // int ecflags
        end local 1 // int[] fmode_p
        end local 0 // org.jruby.runtime.ThreadContext context
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   19     0      context  Lorg/jruby/runtime/ThreadContext;
            0   19     1      fmode_p  [I
            0   19     2      ecflags  I
            0   19     3  ioEncodable  Lorg/jruby/util/io/IOEncodable;
            1   19     4      runtime  Lorg/jruby/Ruby;
            2   19     5        fmode  I
    MethodParameters:
             Name  Flags
      context      
      fmode_p      
      ecflags      
      ioEncodable  

  public static void rbEncSetDefaultExternal(org.jruby.runtime.ThreadContext, org.jruby.runtime.builtin.IRubyObject);
    descriptor: (Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=3, args_size=2
        start local 0 // org.jruby.runtime.ThreadContext context
        start local 1 // org.jruby.runtime.builtin.IRubyObject encoding
         0: .line 1628
            aload 1 /* encoding */
            invokeinterface org.jruby.runtime.builtin.IRubyObject.isNil:()Z
            ifeq 2
         1: .line 1629
            aload 0 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            ldc "default external can not be nil"
            invokevirtual org.jruby.Ruby.newArgumentError:(Ljava/lang/String;)Lorg/jruby/exceptions/RaiseException;
            athrow
         2: .line 1632
      StackMap locals:
      StackMap stack:
            iconst_1
            anewarray org.jcodings.Encoding
            dup
            iconst_0
            aload 0 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            invokevirtual org.jruby.Ruby.getDefaultExternalEncoding:()Lorg/jcodings/Encoding;
            aastore
            astore 2 /* enc_p */
        start local 2 // org.jcodings.Encoding[] enc_p
         3: .line 1633
            aload 0 /* context */
            aload 2 /* enc_p */
            aload 1 /* encoding */
            ldc "external"
            invokestatic org.jruby.util.io.EncodingUtils.encSetDefaultEncoding:(Lorg/jruby/runtime/ThreadContext;[Lorg/jcodings/Encoding;Lorg/jruby/runtime/builtin/IRubyObject;Ljava/lang/String;)Z
            pop
         4: .line 1634
            aload 0 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            aload 2 /* enc_p */
            iconst_0
            aaload
            invokevirtual org.jruby.Ruby.setDefaultExternalEncoding:(Lorg/jcodings/Encoding;)V
         5: .line 1635
            return
        end local 2 // org.jcodings.Encoding[] enc_p
        end local 1 // org.jruby.runtime.builtin.IRubyObject encoding
        end local 0 // org.jruby.runtime.ThreadContext context
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    6     0   context  Lorg/jruby/runtime/ThreadContext;
            0    6     1  encoding  Lorg/jruby/runtime/builtin/IRubyObject;
            3    6     2     enc_p  [Lorg/jcodings/Encoding;
    MethodParameters:
          Name  Flags
      context   
      encoding  

  public static void rbEncSetDefaultInternal(org.jruby.runtime.ThreadContext, org.jruby.runtime.builtin.IRubyObject);
    descriptor: (Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=3, args_size=2
        start local 0 // org.jruby.runtime.ThreadContext context
        start local 1 // org.jruby.runtime.builtin.IRubyObject encoding
         0: .line 1639
            iconst_1
            anewarray org.jcodings.Encoding
            dup
            iconst_0
            aload 0 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            invokevirtual org.jruby.Ruby.getDefaultInternalEncoding:()Lorg/jcodings/Encoding;
            aastore
            astore 2 /* enc_p */
        start local 2 // org.jcodings.Encoding[] enc_p
         1: .line 1640
            aload 0 /* context */
            aload 2 /* enc_p */
            aload 1 /* encoding */
            ldc "internal"
            invokestatic org.jruby.util.io.EncodingUtils.encSetDefaultEncoding:(Lorg/jruby/runtime/ThreadContext;[Lorg/jcodings/Encoding;Lorg/jruby/runtime/builtin/IRubyObject;Ljava/lang/String;)Z
            pop
         2: .line 1641
            aload 0 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            aload 2 /* enc_p */
            iconst_0
            aaload
            invokevirtual org.jruby.Ruby.setDefaultInternalEncoding:(Lorg/jcodings/Encoding;)V
         3: .line 1642
            return
        end local 2 // org.jcodings.Encoding[] enc_p
        end local 1 // org.jruby.runtime.builtin.IRubyObject encoding
        end local 0 // org.jruby.runtime.ThreadContext context
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    4     0   context  Lorg/jruby/runtime/ThreadContext;
            0    4     1  encoding  Lorg/jruby/runtime/builtin/IRubyObject;
            1    4     2     enc_p  [Lorg/jcodings/Encoding;
    MethodParameters:
          Name  Flags
      context   
      encoding  

  public static boolean encSetDefaultEncoding(org.jruby.runtime.ThreadContext, org.jcodings.Encoding[], org.jruby.runtime.builtin.IRubyObject, java.lang.String);
    descriptor: (Lorg/jruby/runtime/ThreadContext;[Lorg/jcodings/Encoding;Lorg/jruby/runtime/builtin/IRubyObject;Ljava/lang/String;)Z
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=5, args_size=4
        start local 0 // org.jruby.runtime.ThreadContext context
        start local 1 // org.jcodings.Encoding[] def_p
        start local 2 // org.jruby.runtime.builtin.IRubyObject encoding
        start local 3 // java.lang.String name
         0: .line 1646
            iconst_0
            istore 4 /* overridden */
        start local 4 // boolean overridden
         1: .line 1648
            aload 1 /* def_p */
            ifnull 3
         2: .line 1649
            iconst_1
            istore 4 /* overridden */
         3: .line 1652
      StackMap locals: int
      StackMap stack:
            aload 2 /* encoding */
            invokeinterface org.jruby.runtime.builtin.IRubyObject.isNil:()Z
            ifeq 6
         4: .line 1653
            aload 1 /* def_p */
            iconst_0
            aconst_null
            aastore
         5: .line 1655
            goto 7
         6: .line 1656
      StackMap locals:
      StackMap stack:
            aload 1 /* def_p */
            iconst_0
            aload 0 /* context */
            aload 2 /* encoding */
            invokestatic org.jruby.util.io.EncodingUtils.rbToEncoding:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jcodings/Encoding;
            aastore
         7: .line 1660
      StackMap locals:
      StackMap stack:
            aload 3 /* name */
            ldc "external"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            pop
         8: .line 1664
            iload 4 /* overridden */
            ireturn
        end local 4 // boolean overridden
        end local 3 // java.lang.String name
        end local 2 // org.jruby.runtime.builtin.IRubyObject encoding
        end local 1 // org.jcodings.Encoding[] def_p
        end local 0 // org.jruby.runtime.ThreadContext context
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    9     0     context  Lorg/jruby/runtime/ThreadContext;
            0    9     1       def_p  [Lorg/jcodings/Encoding;
            0    9     2    encoding  Lorg/jruby/runtime/builtin/IRubyObject;
            0    9     3        name  Ljava/lang/String;
            1    9     4  overridden  Z
    MethodParameters:
          Name  Flags
      context   
      def_p     
      encoding  
      name      

  public static org.jcodings.Encoding defaultExternalEncoding(org.jruby.Ruby);
    descriptor: (Lorg/jruby/Ruby;)Lorg/jcodings/Encoding;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.jruby.Ruby runtime
         0: .line 1669
            aload 0 /* runtime */
            invokevirtual org.jruby.Ruby.getDefaultExternalEncoding:()Lorg/jcodings/Encoding;
            ifnull 1
            aload 0 /* runtime */
            invokevirtual org.jruby.Ruby.getDefaultExternalEncoding:()Lorg/jcodings/Encoding;
            areturn
         1: .line 1671
      StackMap locals:
      StackMap stack:
            aload 0 /* runtime */
            invokevirtual org.jruby.Ruby.getEncodingService:()Lorg/jruby/runtime/encoding/EncodingService;
            invokevirtual org.jruby.runtime.encoding.EncodingService.getLocaleEncoding:()Lorg/jcodings/Encoding;
            areturn
        end local 0 // org.jruby.Ruby runtime
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    2     0  runtime  Lorg/jruby/Ruby;
    MethodParameters:
         Name  Flags
      runtime  

  public static void rbStrBufCat(org.jruby.Ruby, org.jruby.RubyString, org.jruby.util.ByteList);
    descriptor: (Lorg/jruby/Ruby;Lorg/jruby/RubyString;Lorg/jruby/util/ByteList;)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // org.jruby.Ruby runtime
        start local 1 // org.jruby.RubyString str
        start local 2 // org.jruby.util.ByteList ptr
         0: .line 1676
            aload 2 /* ptr */
            invokevirtual org.jruby.util.ByteList.length:()I
            ifne 1
            return
         1: .line 1678
      StackMap locals:
      StackMap stack:
            aload 0 /* runtime */
            aload 1 /* str */
            aload 2 /* ptr */
            invokestatic org.jruby.util.io.EncodingUtils.strBufCat:(Lorg/jruby/Ruby;Lorg/jruby/RubyString;Lorg/jruby/util/ByteList;)V
         2: .line 1679
            return
        end local 2 // org.jruby.util.ByteList ptr
        end local 1 // org.jruby.RubyString str
        end local 0 // org.jruby.Ruby runtime
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    3     0  runtime  Lorg/jruby/Ruby;
            0    3     1      str  Lorg/jruby/RubyString;
            0    3     2      ptr  Lorg/jruby/util/ByteList;
    MethodParameters:
         Name  Flags
      runtime  
      str      
      ptr      

  public static void rbStrBufCat(org.jruby.Ruby, org.jruby.util.ByteListHolder, byte[], int, int);
    descriptor: (Lorg/jruby/Ruby;Lorg/jruby/util/ByteListHolder;[BII)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=5, locals=5, args_size=5
        start local 0 // org.jruby.Ruby runtime
        start local 1 // org.jruby.util.ByteListHolder str
        start local 2 // byte[] ptrBytes
        start local 3 // int ptr
        start local 4 // int len
         0: .line 1681
            iload 4 /* len */
            ifne 1
            return
         1: .line 1683
      StackMap locals:
      StackMap stack:
            aload 0 /* runtime */
            aload 1 /* str */
            aload 2 /* ptrBytes */
            iload 3 /* ptr */
            iload 4 /* len */
            invokestatic org.jruby.util.io.EncodingUtils.strBufCat:(Lorg/jruby/Ruby;Lorg/jruby/util/ByteListHolder;[BII)V
         2: .line 1684
            return
        end local 4 // int len
        end local 3 // int ptr
        end local 2 // byte[] ptrBytes
        end local 1 // org.jruby.util.ByteListHolder str
        end local 0 // org.jruby.Ruby runtime
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    3     0   runtime  Lorg/jruby/Ruby;
            0    3     1       str  Lorg/jruby/util/ByteListHolder;
            0    3     2  ptrBytes  [B
            0    3     3       ptr  I
            0    3     4       len  I
    MethodParameters:
          Name  Flags
      runtime   
      str       
      ptrBytes  
      ptr       
      len       

  public static void rbStrBufCat(org.jruby.Ruby, org.jruby.util.ByteList, byte[], int, int);
    descriptor: (Lorg/jruby/Ruby;Lorg/jruby/util/ByteList;[BII)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=5, args_size=5
        start local 0 // org.jruby.Ruby runtime
        start local 1 // org.jruby.util.ByteList str
        start local 2 // byte[] ptrBytes
        start local 3 // int ptr
        start local 4 // int len
         0: .line 1686
            iload 4 /* len */
            ifne 1
            return
         1: .line 1688
      StackMap locals:
      StackMap stack:
            aload 1 /* str */
            aload 2 /* ptrBytes */
            iload 3 /* ptr */
            iload 4 /* len */
            invokestatic org.jruby.util.io.EncodingUtils.strBufCat:(Lorg/jruby/util/ByteList;[BII)V
         2: .line 1689
            return
        end local 4 // int len
        end local 3 // int ptr
        end local 2 // byte[] ptrBytes
        end local 1 // org.jruby.util.ByteList str
        end local 0 // org.jruby.Ruby runtime
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    3     0   runtime  Lorg/jruby/Ruby;
            0    3     1       str  Lorg/jruby/util/ByteList;
            0    3     2  ptrBytes  [B
            0    3     3       ptr  I
            0    3     4       len  I
    MethodParameters:
          Name  Flags
      runtime   
      str       
      ptrBytes  
      ptr       
      len       

  public static void strBufCat(org.jruby.Ruby, org.jruby.RubyString, org.jruby.util.ByteList);
    descriptor: (Lorg/jruby/Ruby;Lorg/jruby/RubyString;Lorg/jruby/util/ByteList;)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=5, locals=3, args_size=3
        start local 0 // org.jruby.Ruby runtime
        start local 1 // org.jruby.RubyString str
        start local 2 // org.jruby.util.ByteList ptr
         0: .line 1693
            aload 0 /* runtime */
            aload 1 /* str */
            aload 2 /* ptr */
            invokevirtual org.jruby.util.ByteList.getUnsafeBytes:()[B
            aload 2 /* ptr */
            invokevirtual org.jruby.util.ByteList.getBegin:()I
            aload 2 /* ptr */
            invokevirtual org.jruby.util.ByteList.getRealSize:()I
            invokestatic org.jruby.util.io.EncodingUtils.strBufCat:(Lorg/jruby/Ruby;Lorg/jruby/util/ByteListHolder;[BII)V
         1: .line 1694
            return
        end local 2 // org.jruby.util.ByteList ptr
        end local 1 // org.jruby.RubyString str
        end local 0 // org.jruby.Ruby runtime
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    2     0  runtime  Lorg/jruby/Ruby;
            0    2     1      str  Lorg/jruby/RubyString;
            0    2     2      ptr  Lorg/jruby/util/ByteList;
    MethodParameters:
         Name  Flags
      runtime  
      str      
      ptr      

  public static void strBufCat(org.jruby.Ruby, org.jruby.util.ByteListHolder, byte[], int, int);
    descriptor: (Lorg/jruby/Ruby;Lorg/jruby/util/ByteListHolder;[BII)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=5, args_size=5
        start local 0 // org.jruby.Ruby runtime
        start local 1 // org.jruby.util.ByteListHolder str
        start local 2 // byte[] ptrBytes
        start local 3 // int ptr
        start local 4 // int len
         0: .line 1696
            aload 1 /* str */
            invokeinterface org.jruby.util.ByteListHolder.modify:()V
         1: .line 1697
            aload 1 /* str */
            invokeinterface org.jruby.util.ByteListHolder.getByteList:()Lorg/jruby/util/ByteList;
            aload 2 /* ptrBytes */
            iload 3 /* ptr */
            iload 4 /* len */
            invokestatic org.jruby.util.io.EncodingUtils.strBufCat:(Lorg/jruby/util/ByteList;[BII)V
         2: .line 1698
            return
        end local 4 // int len
        end local 3 // int ptr
        end local 2 // byte[] ptrBytes
        end local 1 // org.jruby.util.ByteListHolder str
        end local 0 // org.jruby.Ruby runtime
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    3     0   runtime  Lorg/jruby/Ruby;
            0    3     1       str  Lorg/jruby/util/ByteListHolder;
            0    3     2  ptrBytes  [B
            0    3     3       ptr  I
            0    3     4       len  I
    MethodParameters:
          Name  Flags
      runtime   
      str       
      ptrBytes  
      ptr       
      len       

  public static void strBufCat(org.jruby.util.ByteList, byte[], int, int);
    descriptor: (Lorg/jruby/util/ByteList;[BII)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=5, args_size=4
        start local 0 // org.jruby.util.ByteList str
        start local 1 // byte[] ptrBytes
        start local 2 // int ptr
        start local 3 // int len
         0: .line 1707
            iload 3 /* len */
            ifne 1
            return
         1: .line 1711
      StackMap locals:
      StackMap stack:
            aload 0 /* str */
            invokevirtual org.jruby.util.ByteList.getRealSize:()I
            iload 3 /* len */
            iadd
            istore 4 /* total */
        start local 4 // int total
         2: .line 1712
            aload 0 /* str */
            iload 4 /* total */
            invokevirtual org.jruby.util.ByteList.ensure:(I)V
         3: .line 1713
            aload 0 /* str */
            aload 1 /* ptrBytes */
            iload 2 /* ptr */
            iload 3 /* len */
            invokevirtual org.jruby.util.ByteList.append:([BII)V
         4: .line 1714
            return
        end local 4 // int total
        end local 3 // int len
        end local 2 // int ptr
        end local 1 // byte[] ptrBytes
        end local 0 // org.jruby.util.ByteList str
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    5     0       str  Lorg/jruby/util/ByteList;
            0    5     1  ptrBytes  [B
            0    5     2       ptr  I
            0    5     3       len  I
            2    5     4     total  I
    MethodParameters:
          Name  Flags
      str       
      ptrBytes  
      ptr       
      len       

  public static void encStrBufCat(org.jruby.Ruby, org.jruby.RubyString, org.jruby.util.ByteList, org.jcodings.Encoding);
    descriptor: (Lorg/jruby/Ruby;Lorg/jruby/RubyString;Lorg/jruby/util/ByteList;Lorg/jcodings/Encoding;)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=7, locals=4, args_size=4
        start local 0 // org.jruby.Ruby runtime
        start local 1 // org.jruby.RubyString str
        start local 2 // org.jruby.util.ByteList ptr
        start local 3 // org.jcodings.Encoding enc
         0: .line 1718
            aload 0 /* runtime */
            aload 1 /* str */
            aload 2 /* ptr */
            invokevirtual org.jruby.util.ByteList.getUnsafeBytes:()[B
            aload 2 /* ptr */
            invokevirtual org.jruby.util.ByteList.getBegin:()I
            aload 2 /* ptr */
            invokevirtual org.jruby.util.ByteList.getRealSize:()I
         1: .line 1719
            aload 3 /* enc */
            iconst_0
         2: .line 1718
            invokestatic org.jruby.util.io.EncodingUtils.encCrStrBufCat:(Lorg/jruby/Ruby;Lorg/jruby/util/CodeRangeable;[BIILorg/jcodings/Encoding;I)I
            pop
         3: .line 1720
            return
        end local 3 // org.jcodings.Encoding enc
        end local 2 // org.jruby.util.ByteList ptr
        end local 1 // org.jruby.RubyString str
        end local 0 // org.jruby.Ruby runtime
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    4     0  runtime  Lorg/jruby/Ruby;
            0    4     1      str  Lorg/jruby/RubyString;
            0    4     2      ptr  Lorg/jruby/util/ByteList;
            0    4     3      enc  Lorg/jcodings/Encoding;
    MethodParameters:
         Name  Flags
      runtime  
      str      
      ptr      
      enc      

  public static void encStrBufCat(org.jruby.Ruby, org.jruby.RubyString, org.jruby.util.ByteList);
    descriptor: (Lorg/jruby/Ruby;Lorg/jruby/RubyString;Lorg/jruby/util/ByteList;)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=7, locals=3, args_size=3
        start local 0 // org.jruby.Ruby runtime
        start local 1 // org.jruby.RubyString str
        start local 2 // org.jruby.util.ByteList ptr
         0: .line 1723
            aload 0 /* runtime */
            aload 1 /* str */
            aload 2 /* ptr */
            invokevirtual org.jruby.util.ByteList.getUnsafeBytes:()[B
            aload 2 /* ptr */
            invokevirtual org.jruby.util.ByteList.getBegin:()I
            aload 2 /* ptr */
            invokevirtual org.jruby.util.ByteList.getRealSize:()I
         1: .line 1724
            aload 2 /* ptr */
            invokevirtual org.jruby.util.ByteList.getEncoding:()Lorg/jcodings/Encoding;
            iconst_0
         2: .line 1723
            invokestatic org.jruby.util.io.EncodingUtils.encCrStrBufCat:(Lorg/jruby/Ruby;Lorg/jruby/util/CodeRangeable;[BIILorg/jcodings/Encoding;I)I
            pop
         3: .line 1725
            return
        end local 2 // org.jruby.util.ByteList ptr
        end local 1 // org.jruby.RubyString str
        end local 0 // org.jruby.Ruby runtime
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    4     0  runtime  Lorg/jruby/Ruby;
            0    4     1      str  Lorg/jruby/RubyString;
            0    4     2      ptr  Lorg/jruby/util/ByteList;
    MethodParameters:
         Name  Flags
      runtime  
      str      
      ptr      

  public static void encStrBufCat(org.jruby.Ruby, org.jruby.RubyString, byte[]);
    descriptor: (Lorg/jruby/Ruby;Lorg/jruby/RubyString;[B)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=7, locals=3, args_size=3
        start local 0 // org.jruby.Ruby runtime
        start local 1 // org.jruby.RubyString str
        start local 2 // byte[] ptrBytes
         0: .line 1728
            aload 0 /* runtime */
            aload 1 /* str */
            aload 2 /* ptrBytes */
            iconst_0
            aload 2 /* ptrBytes */
            arraylength
            getstatic org.jcodings.specific.USASCIIEncoding.INSTANCE:Lorg/jcodings/specific/USASCIIEncoding;
            iconst_0
            invokestatic org.jruby.util.io.EncodingUtils.encCrStrBufCat:(Lorg/jruby/Ruby;Lorg/jruby/util/CodeRangeable;[BIILorg/jcodings/Encoding;I)I
            pop
         1: .line 1729
            return
        end local 2 // byte[] ptrBytes
        end local 1 // org.jruby.RubyString str
        end local 0 // org.jruby.Ruby runtime
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    2     0   runtime  Lorg/jruby/Ruby;
            0    2     1       str  Lorg/jruby/RubyString;
            0    2     2  ptrBytes  [B
    MethodParameters:
          Name  Flags
      runtime   
      str       
      ptrBytes  

  public static void encStrBufCat(org.jruby.Ruby, org.jruby.RubyString, byte[], org.jcodings.Encoding);
    descriptor: (Lorg/jruby/Ruby;Lorg/jruby/RubyString;[BLorg/jcodings/Encoding;)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=7, locals=4, args_size=4
        start local 0 // org.jruby.Ruby runtime
        start local 1 // org.jruby.RubyString str
        start local 2 // byte[] ptrBytes
        start local 3 // org.jcodings.Encoding enc
         0: .line 1732
            aload 0 /* runtime */
            aload 1 /* str */
            aload 2 /* ptrBytes */
            iconst_0
            aload 2 /* ptrBytes */
            arraylength
            aload 3 /* enc */
            iconst_0
            invokestatic org.jruby.util.io.EncodingUtils.encCrStrBufCat:(Lorg/jruby/Ruby;Lorg/jruby/util/CodeRangeable;[BIILorg/jcodings/Encoding;I)I
            pop
         1: .line 1733
            return
        end local 3 // org.jcodings.Encoding enc
        end local 2 // byte[] ptrBytes
        end local 1 // org.jruby.RubyString str
        end local 0 // org.jruby.Ruby runtime
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    2     0   runtime  Lorg/jruby/Ruby;
            0    2     1       str  Lorg/jruby/RubyString;
            0    2     2  ptrBytes  [B
            0    2     3       enc  Lorg/jcodings/Encoding;
    MethodParameters:
          Name  Flags
      runtime   
      str       
      ptrBytes  
      enc       

  public static void encStrBufCat(org.jruby.Ruby, org.jruby.RubyString, byte[], int, int, org.jcodings.Encoding);
    descriptor: (Lorg/jruby/Ruby;Lorg/jruby/RubyString;[BIILorg/jcodings/Encoding;)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=7, locals=6, args_size=6
        start local 0 // org.jruby.Ruby runtime
        start local 1 // org.jruby.RubyString str
        start local 2 // byte[] ptrBytes
        start local 3 // int ptr
        start local 4 // int len
        start local 5 // org.jcodings.Encoding enc
         0: .line 1736
            aload 0 /* runtime */
            aload 1 /* str */
            aload 2 /* ptrBytes */
            iload 3 /* ptr */
            iload 4 /* len */
         1: .line 1737
            aload 5 /* enc */
            iconst_0
         2: .line 1736
            invokestatic org.jruby.util.io.EncodingUtils.encCrStrBufCat:(Lorg/jruby/Ruby;Lorg/jruby/util/CodeRangeable;[BIILorg/jcodings/Encoding;I)I
            pop
         3: .line 1738
            return
        end local 5 // org.jcodings.Encoding enc
        end local 4 // int len
        end local 3 // int ptr
        end local 2 // byte[] ptrBytes
        end local 1 // org.jruby.RubyString str
        end local 0 // org.jruby.Ruby runtime
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    4     0   runtime  Lorg/jruby/Ruby;
            0    4     1       str  Lorg/jruby/RubyString;
            0    4     2  ptrBytes  [B
            0    4     3       ptr  I
            0    4     4       len  I
            0    4     5       enc  Lorg/jcodings/Encoding;
    MethodParameters:
          Name  Flags
      runtime   
      str       
      ptrBytes  
      ptr       
      len       
      enc       

  public static void encStrBufCat(org.jruby.Ruby, org.jruby.RubyString, java.lang.CharSequence);
    descriptor: (Lorg/jruby/Ruby;Lorg/jruby/RubyString;Ljava/lang/CharSequence;)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=7, locals=4, args_size=3
        start local 0 // org.jruby.Ruby runtime
        start local 1 // org.jruby.RubyString str
        start local 2 // java.lang.CharSequence cseq
         0: .line 1741
            aload 2 /* cseq */
            invokeinterface java.lang.CharSequence.toString:()Ljava/lang/String;
            invokestatic org.jruby.RubyEncoding.encodeUTF8:(Ljava/lang/String;)[B
            astore 3 /* utf8 */
        start local 3 // byte[] utf8
         1: .line 1742
            aload 0 /* runtime */
            aload 1 /* str */
            aload 3 /* utf8 */
            iconst_0
            aload 3 /* utf8 */
            arraylength
            getstatic org.jcodings.specific.UTF8Encoding.INSTANCE:Lorg/jcodings/specific/UTF8Encoding;
            iconst_0
            invokestatic org.jruby.util.io.EncodingUtils.encCrStrBufCat:(Lorg/jruby/Ruby;Lorg/jruby/util/CodeRangeable;[BIILorg/jcodings/Encoding;I)I
            pop
         2: .line 1743
            return
        end local 3 // byte[] utf8
        end local 2 // java.lang.CharSequence cseq
        end local 1 // org.jruby.RubyString str
        end local 0 // org.jruby.Ruby runtime
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    3     0  runtime  Lorg/jruby/Ruby;
            0    3     1      str  Lorg/jruby/RubyString;
            0    3     2     cseq  Ljava/lang/CharSequence;
            1    3     3     utf8  [B
    MethodParameters:
         Name  Flags
      runtime  
      str      
      cseq     

  public static int encCrStrBufCat(org.jruby.Ruby, org.jruby.util.CodeRangeable, org.jruby.util.ByteList, org.jcodings.Encoding, int);
    descriptor: (Lorg/jruby/Ruby;Lorg/jruby/util/CodeRangeable;Lorg/jruby/util/ByteList;Lorg/jcodings/Encoding;I)I
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=7, locals=5, args_size=5
        start local 0 // org.jruby.Ruby runtime
        start local 1 // org.jruby.util.CodeRangeable str
        start local 2 // org.jruby.util.ByteList ptr
        start local 3 // org.jcodings.Encoding ptrEnc
        start local 4 // int ptr_cr
         0: .line 1747
            aload 0 /* runtime */
            aload 1 /* str */
            aload 2 /* ptr */
            invokevirtual org.jruby.util.ByteList.getUnsafeBytes:()[B
            aload 2 /* ptr */
            invokevirtual org.jruby.util.ByteList.getBegin:()I
            aload 2 /* ptr */
            invokevirtual org.jruby.util.ByteList.getRealSize:()I
            aload 3 /* ptrEnc */
            iload 4 /* ptr_cr */
            invokestatic org.jruby.util.io.EncodingUtils.encCrStrBufCat:(Lorg/jruby/Ruby;Lorg/jruby/util/CodeRangeable;[BIILorg/jcodings/Encoding;I)I
            ireturn
        end local 4 // int ptr_cr
        end local 3 // org.jcodings.Encoding ptrEnc
        end local 2 // org.jruby.util.ByteList ptr
        end local 1 // org.jruby.util.CodeRangeable str
        end local 0 // org.jruby.Ruby runtime
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     0  runtime  Lorg/jruby/Ruby;
            0    1     1      str  Lorg/jruby/util/CodeRangeable;
            0    1     2      ptr  Lorg/jruby/util/ByteList;
            0    1     3   ptrEnc  Lorg/jcodings/Encoding;
            0    1     4   ptr_cr  I
    MethodParameters:
         Name  Flags
      runtime  
      str      
      ptr      
      ptrEnc   
      ptr_cr   

  public static int encCrStrBufCat(org.jruby.Ruby, org.jruby.util.CodeRangeable, byte[], int, int, org.jcodings.Encoding, int);
    descriptor: (Lorg/jruby/Ruby;Lorg/jruby/util/CodeRangeable;[BIILorg/jcodings/Encoding;I)I
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=5, locals=12, args_size=7
        start local 0 // org.jruby.Ruby runtime
        start local 1 // org.jruby.util.CodeRangeable str
        start local 2 // byte[] ptrBytes
        start local 3 // int ptr
        start local 4 // int len
        start local 5 // org.jcodings.Encoding ptrEnc
        start local 6 // int ptr_cr
         0: .line 1751
            aload 1 /* str */
            invokeinterface org.jruby.util.CodeRangeable.getByteList:()Lorg/jruby/util/ByteList;
            invokevirtual org.jruby.util.ByteList.getEncoding:()Lorg/jcodings/Encoding;
            astore 7 /* strEnc */
        start local 7 // org.jcodings.Encoding strEnc
         1: .line 1754
            iconst_0
            istore 11 /* incompatible */
        start local 11 // boolean incompatible
         2: .line 1756
            aload 1 /* str */
            invokeinterface org.jruby.util.CodeRangeable.getByteList:()Lorg/jruby/util/ByteList;
            invokevirtual org.jruby.util.ByteList.getRealSize:()I
            ifle 3
            aload 1 /* str */
            invokeinterface org.jruby.util.CodeRangeable.getCodeRange:()I
            goto 4
      StackMap locals: org.jruby.Ruby org.jruby.util.CodeRangeable byte[] int int org.jcodings.Encoding int org.jcodings.Encoding top top top int
      StackMap stack:
         3: bipush 16
      StackMap locals:
      StackMap stack: int
         4: istore 9 /* str_cr */
        start local 9 // int str_cr
         5: .line 1758
            aload 7 /* strEnc */
            aload 5 /* ptrEnc */
            if_acmpne 12
         6: .line 1759
            iload 9 /* str_cr */
            ifne 9
         7: .line 1760
            iconst_0
            istore 6 /* ptr_cr */
         8: .line 1761
            goto 26
      StackMap locals: org.jruby.Ruby org.jruby.util.CodeRangeable byte[] int int org.jcodings.Encoding int org.jcodings.Encoding top int top int
      StackMap stack:
         9: iload 6 /* ptr_cr */
            ifne 26
        10: .line 1762
            aload 5 /* ptrEnc */
            aload 2 /* ptrBytes */
            iload 3 /* ptr */
            iload 4 /* len */
            invokestatic org.jruby.util.StringSupport.codeRangeScan:(Lorg/jcodings/Encoding;[BII)I
            istore 6 /* ptr_cr */
        11: .line 1764
            goto 26
        12: .line 1765
      StackMap locals:
      StackMap stack:
            aload 7 /* strEnc */
            invokestatic org.jruby.util.io.EncodingUtils.encAsciicompat:(Lorg/jcodings/Encoding;)Z
            ifeq 13
            aload 5 /* ptrEnc */
            invokestatic org.jruby.util.io.EncodingUtils.encAsciicompat:(Lorg/jcodings/Encoding;)Z
            ifne 20
        13: .line 1766
      StackMap locals:
      StackMap stack:
            iload 4 /* len */
            ifne 14
            iload 6 /* ptr_cr */
            ireturn
        14: .line 1767
      StackMap locals:
      StackMap stack:
            aload 1 /* str */
            invokeinterface org.jruby.util.CodeRangeable.getByteList:()Lorg/jruby/util/ByteList;
            invokevirtual org.jruby.util.ByteList.getRealSize:()I
            ifne 19
        15: .line 1768
            aload 0 /* runtime */
            aload 1 /* str */
            aload 2 /* ptrBytes */
            iload 3 /* ptr */
            iload 4 /* len */
            invokestatic org.jruby.util.io.EncodingUtils.strBufCat:(Lorg/jruby/Ruby;Lorg/jruby/util/ByteListHolder;[BII)V
        16: .line 1769
            aload 1 /* str */
            invokeinterface org.jruby.util.CodeRangeable.getByteList:()Lorg/jruby/util/ByteList;
            aload 5 /* ptrEnc */
            invokevirtual org.jruby.util.ByteList.setEncoding:(Lorg/jcodings/Encoding;)V
        17: .line 1770
            aload 1 /* str */
            iload 6 /* ptr_cr */
            invokeinterface org.jruby.util.CodeRangeable.setCodeRange:(I)V
        18: .line 1771
            iload 6 /* ptr_cr */
            ireturn
        19: .line 1773
      StackMap locals:
      StackMap stack:
            iconst_1
            istore 11 /* incompatible */
        20: .line 1775
      StackMap locals:
      StackMap stack:
            iload 11 /* incompatible */
            ifne 26
        21: .line 1776
            iload 6 /* ptr_cr */
            ifne 23
        22: .line 1777
            aload 5 /* ptrEnc */
            aload 2 /* ptrBytes */
            iload 3 /* ptr */
            iload 4 /* len */
            invokestatic org.jruby.util.StringSupport.codeRangeScan:(Lorg/jcodings/Encoding;[BII)I
            istore 6 /* ptr_cr */
        23: .line 1779
      StackMap locals:
      StackMap stack:
            iload 9 /* str_cr */
            ifne 26
        24: .line 1780
            aload 7 /* strEnc */
            getstatic org.jcodings.specific.ASCIIEncoding.INSTANCE:Lorg/jcodings/specific/ASCIIEncoding;
            if_acmpeq 25
            iload 6 /* ptr_cr */
            bipush 16
            if_icmpeq 26
        25: .line 1781
      StackMap locals:
      StackMap stack:
            aload 1 /* str */
            invokeinterface org.jruby.util.CodeRangeable.scanForCodeRange:()I
            istore 9 /* str_cr */
        26: .line 1787
      StackMap locals:
      StackMap stack:
            iload 11 /* incompatible */
            ifne 30
        27: .line 1788
            aload 7 /* strEnc */
            aload 5 /* ptrEnc */
            if_acmpeq 31
        28: .line 1789
            iload 9 /* str_cr */
            bipush 16
            if_icmpeq 31
        29: .line 1790
            iload 6 /* ptr_cr */
            bipush 16
            if_icmpeq 31
        30: .line 1791
      StackMap locals:
      StackMap stack:
            aload 0 /* runtime */
            new java.lang.StringBuilder
            dup
            ldc "incompatible encodings: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 7 /* strEnc */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            ldc " and "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 5 /* ptrEnc */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual org.jruby.Ruby.newEncodingCompatibilityError:(Ljava/lang/String;)Lorg/jruby/exceptions/RaiseException;
            athrow
        31: .line 1794
      StackMap locals:
      StackMap stack:
            iload 9 /* str_cr */
            ifne 35
        32: .line 1795
            aload 7 /* strEnc */
            astore 8 /* resEnc */
        start local 8 // org.jcodings.Encoding resEnc
        33: .line 1796
            iconst_0
            istore 10 /* res_cr */
        start local 10 // int res_cr
        34: .line 1797
            goto 53
        end local 10 // int res_cr
        end local 8 // org.jcodings.Encoding resEnc
      StackMap locals:
      StackMap stack:
        35: iload 9 /* str_cr */
            bipush 16
            if_icmpne 43
        36: .line 1798
            iload 6 /* ptr_cr */
            bipush 16
            if_icmpne 40
        37: .line 1799
            aload 7 /* strEnc */
            astore 8 /* resEnc */
        start local 8 // org.jcodings.Encoding resEnc
        38: .line 1800
            bipush 16
            istore 10 /* res_cr */
        start local 10 // int res_cr
        39: .line 1801
            goto 53
        end local 10 // int res_cr
        end local 8 // org.jcodings.Encoding resEnc
        40: .line 1802
      StackMap locals:
      StackMap stack:
            aload 5 /* ptrEnc */
            astore 8 /* resEnc */
        start local 8 // org.jcodings.Encoding resEnc
        41: .line 1803
            iload 6 /* ptr_cr */
            istore 10 /* res_cr */
        start local 10 // int res_cr
        42: .line 1805
            goto 53
        end local 10 // int res_cr
        end local 8 // org.jcodings.Encoding resEnc
      StackMap locals:
      StackMap stack:
        43: iload 9 /* str_cr */
            bipush 32
            if_icmpne 50
        44: .line 1806
            aload 7 /* strEnc */
            astore 8 /* resEnc */
        start local 8 // org.jcodings.Encoding resEnc
        45: .line 1807
            iload 6 /* ptr_cr */
            bipush 16
            if_icmpeq 46
            iload 6 /* ptr_cr */
            bipush 32
            if_icmpne 48
        46: .line 1808
      StackMap locals: org.jruby.Ruby org.jruby.util.CodeRangeable byte[] int int org.jcodings.Encoding int org.jcodings.Encoding org.jcodings.Encoding int top int
      StackMap stack:
            iload 9 /* str_cr */
            istore 10 /* res_cr */
        start local 10 // int res_cr
        47: .line 1809
            goto 53
        end local 10 // int res_cr
        48: .line 1810
      StackMap locals:
      StackMap stack:
            iload 6 /* ptr_cr */
            istore 10 /* res_cr */
        start local 10 // int res_cr
        49: .line 1812
            goto 53
        end local 10 // int res_cr
        end local 8 // org.jcodings.Encoding resEnc
        50: .line 1813
      StackMap locals: org.jruby.Ruby org.jruby.util.CodeRangeable byte[] int int org.jcodings.Encoding int org.jcodings.Encoding top int top int
      StackMap stack:
            aload 7 /* strEnc */
            astore 8 /* resEnc */
        start local 8 // org.jcodings.Encoding resEnc
        51: .line 1814
            iload 9 /* str_cr */
            istore 10 /* res_cr */
        start local 10 // int res_cr
        52: .line 1815
            iload 4 /* len */
            ifle 53
            iconst_0
            istore 10 /* res_cr */
        53: .line 1820
      StackMap locals: org.jruby.Ruby org.jruby.util.CodeRangeable byte[] int int org.jcodings.Encoding int org.jcodings.Encoding org.jcodings.Encoding int int int
      StackMap stack:
            aload 0 /* runtime */
            aload 1 /* str */
            aload 2 /* ptrBytes */
            iload 3 /* ptr */
            iload 4 /* len */
            invokestatic org.jruby.util.io.EncodingUtils.strBufCat:(Lorg/jruby/Ruby;Lorg/jruby/util/ByteListHolder;[BII)V
        54: .line 1821
            aload 1 /* str */
            invokeinterface org.jruby.util.CodeRangeable.getByteList:()Lorg/jruby/util/ByteList;
            aload 8 /* resEnc */
            invokevirtual org.jruby.util.ByteList.setEncoding:(Lorg/jcodings/Encoding;)V
        55: .line 1822
            aload 1 /* str */
            iload 10 /* res_cr */
            invokeinterface org.jruby.util.CodeRangeable.setCodeRange:(I)V
        56: .line 1824
            iload 6 /* ptr_cr */
            ireturn
        end local 11 // boolean incompatible
        end local 10 // int res_cr
        end local 9 // int str_cr
        end local 8 // org.jcodings.Encoding resEnc
        end local 7 // org.jcodings.Encoding strEnc
        end local 6 // int ptr_cr
        end local 5 // org.jcodings.Encoding ptrEnc
        end local 4 // int len
        end local 3 // int ptr
        end local 2 // byte[] ptrBytes
        end local 1 // org.jruby.util.CodeRangeable str
        end local 0 // org.jruby.Ruby runtime
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0   57     0       runtime  Lorg/jruby/Ruby;
            0   57     1           str  Lorg/jruby/util/CodeRangeable;
            0   57     2      ptrBytes  [B
            0   57     3           ptr  I
            0   57     4           len  I
            0   57     5        ptrEnc  Lorg/jcodings/Encoding;
            0   57     6        ptr_cr  I
            1   57     7        strEnc  Lorg/jcodings/Encoding;
           33   35     8        resEnc  Lorg/jcodings/Encoding;
           38   40     8        resEnc  Lorg/jcodings/Encoding;
           41   43     8        resEnc  Lorg/jcodings/Encoding;
           45   50     8        resEnc  Lorg/jcodings/Encoding;
           51   57     8        resEnc  Lorg/jcodings/Encoding;
            5   57     9        str_cr  I
           34   35    10        res_cr  I
           39   40    10        res_cr  I
           42   43    10        res_cr  I
           47   48    10        res_cr  I
           49   50    10        res_cr  I
           52   57    10        res_cr  I
            2   57    11  incompatible  Z
    MethodParameters:
          Name  Flags
      runtime   
      str       
      ptrBytes  
      ptr       
      len       
      ptrEnc    
      ptr_cr    

  public static void econvArgs(org.jruby.runtime.ThreadContext, org.jruby.runtime.builtin.IRubyObject[], byte[][], org.jcodings.Encoding[], int[], org.jruby.runtime.builtin.IRubyObject[]);
    descriptor: (Lorg/jruby/runtime/ThreadContext;[Lorg/jruby/runtime/builtin/IRubyObject;[[B[Lorg/jcodings/Encoding;[I[Lorg/jruby/runtime/builtin/IRubyObject;)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=5, locals=12, args_size=6
        start local 0 // org.jruby.runtime.ThreadContext context
        start local 1 // org.jruby.runtime.builtin.IRubyObject[] args
        start local 2 // byte[][] encNames
        start local 3 // org.jcodings.Encoding[] encs
        start local 4 // int[] ecflags_p
        start local 5 // org.jruby.runtime.builtin.IRubyObject[] ecopts_p
         0: .line 1829
            aload 0 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            astore 6 /* runtime */
        start local 6 // org.jruby.Ruby runtime
         1: .line 1830
            aload 0 /* context */
            getfield org.jruby.runtime.ThreadContext.nil:Lorg/jruby/runtime/builtin/IRubyObject;
            astore 7 /* snamev */
        start local 7 // org.jruby.runtime.builtin.IRubyObject snamev
         2: .line 1831
            aload 0 /* context */
            getfield org.jruby.runtime.ThreadContext.nil:Lorg/jruby/runtime/builtin/IRubyObject;
            astore 8 /* dnamev */
        start local 8 // org.jruby.runtime.builtin.IRubyObject dnamev
         3: .line 1832
            aload 0 /* context */
            getfield org.jruby.runtime.ThreadContext.nil:Lorg/jruby/runtime/builtin/IRubyObject;
            astore 9 /* flags */
        start local 9 // org.jruby.runtime.builtin.IRubyObject flags
         4: .line 1833
            aload 0 /* context */
            getfield org.jruby.runtime.ThreadContext.nil:Lorg/jruby/runtime/builtin/IRubyObject;
            astore 10 /* opt */
        start local 10 // org.jruby.runtime.builtin.IRubyObject opt
         5: .line 1837
            aload 1 /* args */
            arraylength
            tableswitch { // 1 - 3
                    1: 8
                    2: 7
                    3: 6
              default: 9
          }
         6: .line 1839
      StackMap locals: org.jruby.runtime.ThreadContext org.jruby.runtime.builtin.IRubyObject[] byte[][] org.jcodings.Encoding[] int[] org.jruby.runtime.builtin.IRubyObject[] org.jruby.Ruby org.jruby.runtime.builtin.IRubyObject org.jruby.runtime.builtin.IRubyObject org.jruby.runtime.builtin.IRubyObject org.jruby.runtime.builtin.IRubyObject
      StackMap stack:
            aload 1 /* args */
            iconst_2
            aaload
            astore 9 /* flags */
         7: .line 1841
      StackMap locals:
      StackMap stack:
            aload 1 /* args */
            iconst_1
            aaload
            astore 8 /* dnamev */
         8: .line 1843
      StackMap locals:
      StackMap stack:
            aload 1 /* args */
            iconst_0
            aaload
            astore 7 /* snamev */
         9: .line 1847
      StackMap locals:
      StackMap stack:
            aload 6 /* runtime */
            aload 9 /* flags */
            invokestatic org.jruby.util.TypeConverter.checkHashType:(Lorg/jruby/Ruby;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
            dup
            astore 11 /* tmp */
        start local 11 // org.jruby.runtime.builtin.IRubyObject tmp
        10: invokeinterface org.jruby.runtime.builtin.IRubyObject.isNil:()Z
            ifne 13
        11: .line 1848
            aload 11 /* tmp */
            astore 10 /* opt */
        12: .line 1849
            aload 0 /* context */
            getfield org.jruby.runtime.ThreadContext.nil:Lorg/jruby/runtime/builtin/IRubyObject;
            astore 9 /* flags */
        end local 11 // org.jruby.runtime.builtin.IRubyObject tmp
        13: .line 1853
      StackMap locals:
      StackMap stack:
            aload 9 /* flags */
            invokeinterface org.jruby.runtime.builtin.IRubyObject.isNil:()Z
            ifne 19
        14: .line 1854
            aload 10 /* opt */
            invokeinterface org.jruby.runtime.builtin.IRubyObject.isNil:()Z
            ifne 16
        15: .line 1855
            aload 6 /* runtime */
            aload 1 /* args */
            arraylength
            iconst_3
            invokevirtual org.jruby.Ruby.newArgumentError:(II)Lorg/jruby/exceptions/RaiseException;
            athrow
        16: .line 1857
      StackMap locals:
      StackMap stack:
            aload 4 /* ecflags_p */
            iconst_0
            aload 9 /* flags */
            invokeinterface org.jruby.runtime.builtin.IRubyObject.convertToInteger:()Lorg/jruby/RubyInteger;
            invokevirtual org.jruby.RubyInteger.getLongValue:()J
            l2i
            iastore
        17: .line 1858
            aload 5 /* ecopts_p */
            iconst_0
            aload 0 /* context */
            getfield org.jruby.runtime.ThreadContext.nil:Lorg/jruby/runtime/builtin/IRubyObject;
            aastore
        18: .line 1859
            goto 24
      StackMap locals:
      StackMap stack:
        19: aload 10 /* opt */
            invokeinterface org.jruby.runtime.builtin.IRubyObject.isNil:()Z
            ifne 22
        20: .line 1860
            aload 4 /* ecflags_p */
            iconst_0
            aload 0 /* context */
            aload 10 /* opt */
            aload 5 /* ecopts_p */
            invokestatic org.jruby.util.io.EncodingUtils.econvPrepareOpts:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;[Lorg/jruby/runtime/builtin/IRubyObject;)I
            iastore
        21: .line 1861
            goto 24
        22: .line 1862
      StackMap locals:
      StackMap stack:
            aload 4 /* ecflags_p */
            iconst_0
            iconst_0
            iastore
        23: .line 1863
            aload 5 /* ecopts_p */
            iconst_0
            aload 0 /* context */
            getfield org.jruby.runtime.ThreadContext.nil:Lorg/jruby/runtime/builtin/IRubyObject;
            aastore
        24: .line 1866
      StackMap locals:
      StackMap stack:
            aload 3 /* encs */
            iconst_0
            aload 6 /* runtime */
            invokevirtual org.jruby.Ruby.getEncodingService:()Lorg/jruby/runtime/encoding/EncodingService;
            aload 7 /* snamev */
            invokevirtual org.jruby.runtime.encoding.EncodingService.getEncodingFromObjectNoError:(Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jcodings/Encoding;
            aastore
        25: .line 1867
            aload 3 /* encs */
            iconst_0
            aaload
            ifnonnull 27
        26: .line 1868
            aload 7 /* snamev */
            invokeinterface org.jruby.runtime.builtin.IRubyObject.convertToString:()Lorg/jruby/RubyString;
            astore 7 /* snamev */
        27: .line 1870
      StackMap locals:
      StackMap stack:
            aload 3 /* encs */
            iconst_1
            aload 6 /* runtime */
            invokevirtual org.jruby.Ruby.getEncodingService:()Lorg/jruby/runtime/encoding/EncodingService;
            aload 8 /* dnamev */
            invokevirtual org.jruby.runtime.encoding.EncodingService.getEncodingFromObjectNoError:(Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jcodings/Encoding;
            aastore
        28: .line 1871
            aload 3 /* encs */
            iconst_1
            aaload
            ifnonnull 30
        29: .line 1872
            aload 8 /* dnamev */
            invokeinterface org.jruby.runtime.builtin.IRubyObject.convertToString:()Lorg/jruby/RubyString;
            astore 8 /* dnamev */
        30: .line 1875
      StackMap locals:
      StackMap stack:
            aload 2 /* encNames */
            iconst_0
            aload 3 /* encs */
            iconst_0
            aaload
            ifnull 31
            aload 3 /* encs */
            iconst_0
            aaload
            invokevirtual org.jcodings.Encoding.getName:()[B
            goto 32
      StackMap locals: org.jruby.runtime.ThreadContext org.jruby.runtime.builtin.IRubyObject[] byte[][] org.jcodings.Encoding[] int[] org.jruby.runtime.builtin.IRubyObject[] org.jruby.Ruby org.jruby.runtime.builtin.IRubyObject org.jruby.runtime.builtin.IRubyObject org.jruby.runtime.builtin.IRubyObject org.jruby.runtime.builtin.IRubyObject
      StackMap stack: byte[][] int
        31: aload 7 /* snamev */
            checkcast org.jruby.RubyString
            invokevirtual org.jruby.RubyString.getBytes:()[B
      StackMap locals: org.jruby.runtime.ThreadContext org.jruby.runtime.builtin.IRubyObject[] byte[][] org.jcodings.Encoding[] int[] org.jruby.runtime.builtin.IRubyObject[] org.jruby.Ruby org.jruby.runtime.builtin.IRubyObject org.jruby.runtime.builtin.IRubyObject org.jruby.runtime.builtin.IRubyObject org.jruby.runtime.builtin.IRubyObject
      StackMap stack: byte[][] int byte[]
        32: aastore
        33: .line 1876
            aload 2 /* encNames */
            iconst_1
            aload 3 /* encs */
            iconst_1
            aaload
            ifnull 34
            aload 3 /* encs */
            iconst_1
            aaload
            invokevirtual org.jcodings.Encoding.getName:()[B
            goto 35
      StackMap locals: org.jruby.runtime.ThreadContext org.jruby.runtime.builtin.IRubyObject[] byte[][] org.jcodings.Encoding[] int[] org.jruby.runtime.builtin.IRubyObject[] org.jruby.Ruby org.jruby.runtime.builtin.IRubyObject org.jruby.runtime.builtin.IRubyObject org.jruby.runtime.builtin.IRubyObject org.jruby.runtime.builtin.IRubyObject
      StackMap stack: byte[][] int
        34: aload 8 /* dnamev */
            checkcast org.jruby.RubyString
            invokevirtual org.jruby.RubyString.getBytes:()[B
      StackMap locals: org.jruby.runtime.ThreadContext org.jruby.runtime.builtin.IRubyObject[] byte[][] org.jcodings.Encoding[] int[] org.jruby.runtime.builtin.IRubyObject[] org.jruby.Ruby org.jruby.runtime.builtin.IRubyObject org.jruby.runtime.builtin.IRubyObject org.jruby.runtime.builtin.IRubyObject org.jruby.runtime.builtin.IRubyObject
      StackMap stack: byte[][] int byte[]
        35: aastore
        36: .line 1878
            return
        end local 10 // org.jruby.runtime.builtin.IRubyObject opt
        end local 9 // org.jruby.runtime.builtin.IRubyObject flags
        end local 8 // org.jruby.runtime.builtin.IRubyObject dnamev
        end local 7 // org.jruby.runtime.builtin.IRubyObject snamev
        end local 6 // org.jruby.Ruby runtime
        end local 5 // org.jruby.runtime.builtin.IRubyObject[] ecopts_p
        end local 4 // int[] ecflags_p
        end local 3 // org.jcodings.Encoding[] encs
        end local 2 // byte[][] encNames
        end local 1 // org.jruby.runtime.builtin.IRubyObject[] args
        end local 0 // org.jruby.runtime.ThreadContext context
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   37     0    context  Lorg/jruby/runtime/ThreadContext;
            0   37     1       args  [Lorg/jruby/runtime/builtin/IRubyObject;
            0   37     2   encNames  [[B
            0   37     3       encs  [Lorg/jcodings/Encoding;
            0   37     4  ecflags_p  [I
            0   37     5   ecopts_p  [Lorg/jruby/runtime/builtin/IRubyObject;
            1   37     6    runtime  Lorg/jruby/Ruby;
            2   37     7     snamev  Lorg/jruby/runtime/builtin/IRubyObject;
            3   37     8     dnamev  Lorg/jruby/runtime/builtin/IRubyObject;
            4   37     9      flags  Lorg/jruby/runtime/builtin/IRubyObject;
            5   37    10        opt  Lorg/jruby/runtime/builtin/IRubyObject;
           10   13    11        tmp  Lorg/jruby/runtime/builtin/IRubyObject;
    MethodParameters:
           Name  Flags
      context    
      args       
      encNames   
      encs       
      ecflags_p  
      ecopts_p   

  public static org.jcodings.transcode.EConv econvInitByConvpath(org.jruby.runtime.ThreadContext, org.jruby.runtime.builtin.IRubyObject, byte[][], org.jcodings.Encoding[]);
    descriptor: (Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;[[B[Lorg/jcodings/Encoding;)Lorg/jcodings/transcode/EConv;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=6, locals=19, args_size=4
        start local 0 // org.jruby.runtime.ThreadContext context
        start local 1 // org.jruby.runtime.builtin.IRubyObject convpath
        start local 2 // byte[][] encNames
        start local 3 // org.jcodings.Encoding[] encs
         0: .line 1883
            aload 0 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            astore 4 /* runtime */
        start local 4 // org.jruby.Ruby runtime
         1: .line 1884
            aload 1 /* convpath */
            invokeinterface org.jruby.runtime.builtin.IRubyObject.convertToArray:()Lorg/jruby/RubyArray;
            invokevirtual org.jruby.RubyArray.size:()I
            invokestatic org.jcodings.transcode.TranscoderDB.alloc:(I)Lorg/jcodings/transcode/EConv;
            astore 5 /* ec */
        start local 5 // org.jcodings.transcode.EConv ec
         2: .line 1886
            iconst_1
            anewarray org.jruby.runtime.builtin.IRubyObject
            dup
            iconst_0
            aload 0 /* context */
            getfield org.jruby.runtime.ThreadContext.nil:Lorg/jruby/runtime/builtin/IRubyObject;
            aastore
            astore 6 /* sname_v */
        start local 6 // org.jruby.runtime.builtin.IRubyObject[] sname_v
         3: .line 1887
            iconst_1
            anewarray org.jruby.runtime.builtin.IRubyObject
            dup
            iconst_0
            aload 0 /* context */
            getfield org.jruby.runtime.ThreadContext.nil:Lorg/jruby/runtime/builtin/IRubyObject;
            aastore
            astore 7 /* dname_v */
        start local 7 // org.jruby.runtime.builtin.IRubyObject[] dname_v
         4: .line 1888
            iconst_1
            anewarray byte[]
            astore 8 /* sname */
        start local 8 // byte[][] sname
         5: .line 1889
            iconst_1
            anewarray byte[]
            astore 9 /* dname */
        start local 9 // byte[][] dname
         6: .line 1890
            iconst_1
            anewarray org.jcodings.Encoding
            astore 10 /* senc */
        start local 10 // org.jcodings.Encoding[] senc
         7: .line 1891
            iconst_1
            anewarray org.jcodings.Encoding
            astore 11 /* denc */
        start local 11 // org.jcodings.Encoding[] denc
         8: .line 1893
            iconst_1
            istore 12 /* first */
        start local 12 // boolean first
         9: .line 1895
            iconst_0
            istore 13 /* i */
        start local 13 // int i
        10: goto 39
        11: .line 1896
      StackMap locals: org.jruby.runtime.ThreadContext org.jruby.runtime.builtin.IRubyObject byte[][] org.jcodings.Encoding[] org.jruby.Ruby org.jcodings.transcode.EConv org.jruby.runtime.builtin.IRubyObject[] org.jruby.runtime.builtin.IRubyObject[] byte[][] byte[][] org.jcodings.Encoding[] org.jcodings.Encoding[] int int
      StackMap stack:
            aload 1 /* convpath */
            checkcast org.jruby.RubyArray
            iload 13 /* i */
            i2l
            invokevirtual org.jruby.RubyArray.eltOk:(J)Lorg/jruby/runtime/builtin/IRubyObject;
            astore 14 /* elt */
        start local 14 // org.jruby.runtime.builtin.IRubyObject elt
        12: .line 1898
            aload 14 /* elt */
            invokeinterface org.jruby.runtime.builtin.IRubyObject.checkArrayType:()Lorg/jruby/runtime/builtin/IRubyObject;
            dup
            astore 15 /* pair */
        start local 15 // org.jruby.runtime.builtin.IRubyObject pair
        13: invokeinterface org.jruby.runtime.builtin.IRubyObject.isNil:()Z
            ifne 21
        14: .line 1899
            aload 15 /* pair */
            checkcast org.jruby.RubyArray
            invokevirtual org.jruby.RubyArray.size:()I
            iconst_2
            if_icmpeq 16
        15: .line 1900
            aload 0 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            ldc "not a 2-element array in convpath"
            invokevirtual org.jruby.Ruby.newArgumentError:(Ljava/lang/String;)Lorg/jruby/exceptions/RaiseException;
            athrow
        16: .line 1902
      StackMap locals: org.jruby.runtime.builtin.IRubyObject org.jruby.runtime.builtin.IRubyObject
      StackMap stack:
            aload 6 /* sname_v */
            iconst_0
            aload 15 /* pair */
            checkcast org.jruby.RubyArray
            lconst_0
            invokevirtual org.jruby.RubyArray.eltOk:(J)Lorg/jruby/runtime/builtin/IRubyObject;
            aastore
        17: .line 1903
            aload 0 /* context */
            aload 6 /* sname_v */
            iconst_0
            aaload
            aload 8 /* sname */
            aload 10 /* senc */
            invokestatic org.jruby.util.io.EncodingUtils.encArg:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;[[B[Lorg/jcodings/Encoding;)Lorg/jcodings/Encoding;
            pop
        18: .line 1904
            aload 7 /* dname_v */
            iconst_0
            aload 15 /* pair */
            checkcast org.jruby.RubyArray
            lconst_1
            invokevirtual org.jruby.RubyArray.eltOk:(J)Lorg/jruby/runtime/builtin/IRubyObject;
            aastore
        19: .line 1905
            aload 0 /* context */
            aload 7 /* dname_v */
            iconst_0
            aaload
            aload 9 /* dname */
            aload 11 /* denc */
            invokestatic org.jruby.util.io.EncodingUtils.encArg:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;[[B[Lorg/jcodings/Encoding;)Lorg/jcodings/Encoding;
            pop
        20: .line 1906
            goto 23
        21: .line 1907
      StackMap locals:
      StackMap stack:
            aload 8 /* sname */
            iconst_0
            getstatic org.jruby.util.io.EncodingUtils.NULL_BYTE_ARRAY:[B
            aastore
        22: .line 1908
            aload 9 /* dname */
            iconst_0
            aload 14 /* elt */
            invokeinterface org.jruby.runtime.builtin.IRubyObject.convertToString:()Lorg/jruby/RubyString;
            invokevirtual org.jruby.RubyString.getBytes:()[B
            aastore
        23: .line 1910
      StackMap locals:
      StackMap stack:
            aload 8 /* sname */
            iconst_0
            aaload
            aload 9 /* dname */
            iconst_0
            aaload
            invokestatic org.jruby.util.io.EncodingUtils.DECORATOR_P:([B[B)Z
            ifeq 27
        24: .line 1911
            aload 5 /* ec */
            aload 8 /* sname */
            iconst_0
            aaload
            aload 9 /* dname */
            iconst_0
            aaload
            aload 5 /* ec */
            getfield org.jcodings.transcode.EConv.numTranscoders:I
            invokevirtual org.jcodings.transcode.EConv.addConverter:([B[BI)Z
            istore 16 /* ret */
        start local 16 // boolean ret
        25: .line 1912
            iload 16 /* ret */
            ifne 38
        26: .line 1913
            aload 4 /* runtime */
            new java.lang.StringBuilder
            dup
            ldc "decoration failed: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            new java.lang.String
            dup
            aload 9 /* dname */
            iconst_0
            aaload
            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;
            invokevirtual org.jruby.Ruby.newArgumentError:(Ljava/lang/String;)Lorg/jruby/exceptions/RaiseException;
            athrow
        end local 16 // boolean ret
        27: .line 1916
      StackMap locals:
      StackMap stack:
            aload 5 /* ec */
            getfield org.jcodings.transcode.EConv.numTranscoders:I
            istore 16 /* j */
        start local 16 // int j
        28: .line 1917
            iconst_2
            newarray 10
            dup
            iconst_0
            iload 16 /* j */
            iastore
            astore 17 /* arg */
        start local 17 // int[] arg
        29: .line 1918
            aload 8 /* sname */
            iconst_0
            aaload
            aload 9 /* dname */
            iconst_0
            aaload
            new org.jruby.util.io.EncodingUtils$6
            dup
            aload 17 /* arg */
            aload 5 /* ec */
            invokespecial org.jruby.util.io.EncodingUtils$6.<init>:([ILorg/jcodings/transcode/EConv;)V
            invokestatic org.jcodings.transcode.TranscoderDB.searchPath:([B[BLorg/jcodings/transcode/TranscoderDB$SearchPathCallback;)I
            istore 18 /* ret */
        start local 18 // int ret
        30: .line 1926
            iload 18 /* ret */
            iconst_m1
            if_icmpeq 31
            aload 17 /* arg */
            iconst_1
            iaload
            iconst_m1
            if_icmpne 32
        31: .line 1927
      StackMap locals: int int[] int
      StackMap stack:
            aload 4 /* runtime */
            new java.lang.StringBuilder
            dup
            ldc "adding conversion failed: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            new java.lang.String
            dup
            aload 8 /* sname */
            iconst_0
            aaload
            invokespecial java.lang.String.<init>:([B)V
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc " to "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            new java.lang.String
            dup
            aload 9 /* dname */
            iconst_0
            aaload
            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;
            invokevirtual org.jruby.Ruby.newArgumentError:(Ljava/lang/String;)Lorg/jruby/exceptions/RaiseException;
            athrow
        32: .line 1929
      StackMap locals:
      StackMap stack:
            iload 12 /* first */
            ifeq 36
        33: .line 1930
            iconst_0
            istore 12 /* first */
        34: .line 1931
            aload 3 /* encs */
            iconst_0
            aload 10 /* senc */
            iconst_0
            aaload
            aastore
        35: .line 1932
            aload 2 /* encNames */
            iconst_0
            aload 5 /* ec */
            getfield org.jcodings.transcode.EConv.elements:[Lorg/jcodings/transcode/EConv$EConvElement;
            iload 16 /* j */
            aaload
            getfield org.jcodings.transcode.EConv$EConvElement.transcoding:Lorg/jcodings/transcode/Transcoding;
            getfield org.jcodings.transcode.Transcoding.transcoder:Lorg/jcodings/transcode/Transcoder;
            invokevirtual org.jcodings.transcode.Transcoder.getSource:()[B
            aastore
        36: .line 1934
      StackMap locals:
      StackMap stack:
            aload 3 /* encs */
            iconst_1
            aload 11 /* denc */
            iconst_0
            aaload
            aastore
        37: .line 1935
            aload 2 /* encNames */
            iconst_1
            aload 5 /* ec */
            getfield org.jcodings.transcode.EConv.elements:[Lorg/jcodings/transcode/EConv$EConvElement;
            aload 5 /* ec */
            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;
            invokevirtual org.jcodings.transcode.Transcoder.getDestination:()[B
            aastore
        end local 18 // int ret
        end local 17 // int[] arg
        end local 16 // int j
        end local 15 // org.jruby.runtime.builtin.IRubyObject pair
        end local 14 // org.jruby.runtime.builtin.IRubyObject elt
        38: .line 1895
      StackMap locals: org.jruby.runtime.ThreadContext org.jruby.runtime.builtin.IRubyObject byte[][] org.jcodings.Encoding[] org.jruby.Ruby org.jcodings.transcode.EConv org.jruby.runtime.builtin.IRubyObject[] org.jruby.runtime.builtin.IRubyObject[] byte[][] byte[][] org.jcodings.Encoding[] org.jcodings.Encoding[] int int
      StackMap stack:
            iinc 13 /* i */ 1
      StackMap locals:
      StackMap stack:
        39: iload 13 /* i */
            aload 1 /* convpath */
            checkcast org.jruby.RubyArray
            invokevirtual org.jruby.RubyArray.size:()I
            if_icmplt 11
        end local 13 // int i
        40: .line 1939
            iload 12 /* first */
            ifeq 45
        41: .line 1940
            aload 3 /* encs */
            iconst_0
            aconst_null
            aastore
        42: .line 1941
            aload 3 /* encs */
            iconst_1
            aconst_null
            aastore
        43: .line 1942
            aload 2 /* encNames */
            iconst_0
            getstatic org.jruby.util.io.EncodingUtils.NULL_BYTE_ARRAY:[B
            aastore
        44: .line 1943
            aload 2 /* encNames */
            iconst_1
            getstatic org.jruby.util.io.EncodingUtils.NULL_BYTE_ARRAY:[B
            aastore
        45: .line 1946
      StackMap locals:
      StackMap stack:
            aload 5 /* ec */
            aload 2 /* encNames */
            iconst_0
            aaload
            putfield org.jcodings.transcode.EConv.source:[B
        46: .line 1947
            aload 5 /* ec */
            aload 2 /* encNames */
            iconst_0
            aaload
            putfield org.jcodings.transcode.EConv.destination:[B
        47: .line 1949
            aload 5 /* ec */
            areturn
        end local 12 // boolean first
        end local 11 // org.jcodings.Encoding[] denc
        end local 10 // org.jcodings.Encoding[] senc
        end local 9 // byte[][] dname
        end local 8 // byte[][] sname
        end local 7 // org.jruby.runtime.builtin.IRubyObject[] dname_v
        end local 6 // org.jruby.runtime.builtin.IRubyObject[] sname_v
        end local 5 // org.jcodings.transcode.EConv ec
        end local 4 // org.jruby.Ruby runtime
        end local 3 // org.jcodings.Encoding[] encs
        end local 2 // byte[][] encNames
        end local 1 // org.jruby.runtime.builtin.IRubyObject convpath
        end local 0 // org.jruby.runtime.ThreadContext context
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   48     0   context  Lorg/jruby/runtime/ThreadContext;
            0   48     1  convpath  Lorg/jruby/runtime/builtin/IRubyObject;
            0   48     2  encNames  [[B
            0   48     3      encs  [Lorg/jcodings/Encoding;
            1   48     4   runtime  Lorg/jruby/Ruby;
            2   48     5        ec  Lorg/jcodings/transcode/EConv;
            3   48     6   sname_v  [Lorg/jruby/runtime/builtin/IRubyObject;
            4   48     7   dname_v  [Lorg/jruby/runtime/builtin/IRubyObject;
            5   48     8     sname  [[B
            6   48     9     dname  [[B
            7   48    10      senc  [Lorg/jcodings/Encoding;
            8   48    11      denc  [Lorg/jcodings/Encoding;
            9   48    12     first  Z
           10   40    13         i  I
           12   38    14       elt  Lorg/jruby/runtime/builtin/IRubyObject;
           13   38    15      pair  Lorg/jruby/runtime/builtin/IRubyObject;
           25   27    16       ret  Z
           28   38    16         j  I
           29   38    17       arg  [I
           30   38    18       ret  I
    MethodParameters:
          Name  Flags
      context   
      convpath  
      encNames  
      encs      

  public static int decorateConvpath(org.jruby.runtime.ThreadContext, org.jruby.runtime.builtin.IRubyObject, int);
    descriptor: (Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;I)I
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=6, locals=14, args_size=3
        start local 0 // org.jruby.runtime.ThreadContext context
        start local 1 // org.jruby.runtime.builtin.IRubyObject convpath
        start local 2 // int ecflags
         0: .line 1954
            aload 0 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            astore 3 /* runtime */
        start local 3 // org.jruby.Ruby runtime
         1: .line 1956
            bipush 32
            anewarray byte[]
            astore 5 /* decorators */
        start local 5 // byte[][] decorators
         2: .line 1960
            iload 2 /* ecflags */
            aload 5 /* decorators */
            invokestatic org.jcodings.transcode.TranscoderDB.decoratorNames:(I[[B)I
            istore 4 /* num_decorators */
        start local 4 // int num_decorators
         3: .line 1961
            iload 4 /* num_decorators */
            iconst_m1
            if_icmpne 5
         4: .line 1962
            iconst_m1
            ireturn
         5: .line 1964
      StackMap locals: org.jruby.Ruby int byte[][]
      StackMap stack:
            aload 1 /* convpath */
            checkcast org.jruby.RubyArray
            invokevirtual org.jruby.RubyArray.size:()I
            dup
            istore 7 /* n */
        start local 7 // int n
         6: istore 8 /* len */
        start local 8 // int len
         7: .line 1965
            iload 7 /* n */
            ifeq 22
         8: .line 1966
            aload 1 /* convpath */
            checkcast org.jruby.RubyArray
            iload 7 /* n */
            iconst_1
            isub
            i2l
            invokevirtual org.jruby.RubyArray.eltOk:(J)Lorg/jruby/runtime/builtin/IRubyObject;
            astore 9 /* pair */
        start local 9 // org.jruby.runtime.builtin.IRubyObject pair
         9: .line 1967
            aload 9 /* pair */
            instanceof org.jruby.RubyArray
            ifeq 21
        10: .line 1968
            aload 3 /* runtime */
            invokevirtual org.jruby.Ruby.getEncodingService:()Lorg/jruby/runtime/encoding/EncodingService;
            aload 9 /* pair */
            checkcast org.jruby.RubyArray
            lconst_0
            invokevirtual org.jruby.RubyArray.eltOk:(J)Lorg/jruby/runtime/builtin/IRubyObject;
            invokevirtual org.jruby.runtime.encoding.EncodingService.getEncodingFromObject:(Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jcodings/Encoding;
            invokevirtual org.jcodings.Encoding.getName:()[B
            astore 10 /* sname */
        start local 10 // byte[] sname
        11: .line 1969
            aload 3 /* runtime */
            invokevirtual org.jruby.Ruby.getEncodingService:()Lorg/jruby/runtime/encoding/EncodingService;
            aload 9 /* pair */
            checkcast org.jruby.RubyArray
            lconst_1
            invokevirtual org.jruby.RubyArray.eltOk:(J)Lorg/jruby/runtime/builtin/IRubyObject;
            invokevirtual org.jruby.runtime.encoding.EncodingService.getEncodingFromObject:(Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jcodings/Encoding;
            invokevirtual org.jcodings.Encoding.getName:()[B
            astore 11 /* dname */
        start local 11 // byte[] dname
        12: .line 1970
            aload 10 /* sname */
            aload 11 /* dname */
            invokestatic org.jcodings.transcode.TranscoderDB.getEntry:([B[B)Lorg/jcodings/transcode/TranscoderDB$Entry;
            astore 12 /* entry */
        start local 12 // org.jcodings.transcode.TranscoderDB$Entry entry
        13: .line 1971
            aload 12 /* entry */
            invokevirtual org.jcodings.transcode.TranscoderDB$Entry.getTranscoder:()Lorg/jcodings/transcode/Transcoder;
            astore 13 /* tr */
        start local 13 // org.jcodings.transcode.Transcoder tr
        14: .line 1972
            aload 13 /* tr */
            ifnonnull 16
        15: .line 1973
            iconst_m1
            ireturn
        16: .line 1974
      StackMap locals: org.jruby.runtime.ThreadContext org.jruby.runtime.builtin.IRubyObject int org.jruby.Ruby int byte[][] top int int org.jruby.runtime.builtin.IRubyObject byte[] byte[] org.jcodings.transcode.TranscoderDB$Entry org.jcodings.transcode.Transcoder
      StackMap stack:
            aload 13 /* tr */
            invokevirtual org.jcodings.transcode.Transcoder.getSource:()[B
            aload 13 /* tr */
            invokevirtual org.jcodings.transcode.Transcoder.getDestination:()[B
            invokestatic org.jruby.util.io.EncodingUtils.DECORATOR_P:([B[B)Z
            ifne 22
        17: .line 1975
            aload 13 /* tr */
            getfield org.jcodings.transcode.Transcoder.compatibility:Lorg/jcodings/transcode/AsciiCompatibility;
            invokevirtual org.jcodings.transcode.AsciiCompatibility.isEncoder:()Z
            ifeq 22
        18: .line 1976
            iinc 7 /* n */ -1
        19: .line 1977
            aload 1 /* convpath */
            checkcast org.jruby.RubyArray
            iload 8 /* len */
            iload 4 /* num_decorators */
            iadd
            iconst_1
            isub
            i2l
            aload 9 /* pair */
            invokevirtual org.jruby.RubyArray.store:(JLorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
            pop
        end local 13 // org.jcodings.transcode.Transcoder tr
        end local 12 // org.jcodings.transcode.TranscoderDB$Entry entry
        end local 11 // byte[] dname
        end local 10 // byte[] sname
        20: .line 1979
            goto 22
        21: .line 1980
      StackMap locals: org.jruby.runtime.ThreadContext org.jruby.runtime.builtin.IRubyObject int org.jruby.Ruby int byte[][] top int int org.jruby.runtime.builtin.IRubyObject
      StackMap stack:
            aload 1 /* convpath */
            checkcast org.jruby.RubyArray
            iload 8 /* len */
            iload 4 /* num_decorators */
            iadd
            iconst_1
            isub
            i2l
            aload 9 /* pair */
            invokevirtual org.jruby.RubyArray.store:(JLorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
            pop
        end local 9 // org.jruby.runtime.builtin.IRubyObject pair
        22: .line 1984
      StackMap locals:
      StackMap stack:
            iconst_0
            istore 6 /* i */
        start local 6 // int i
        23: goto 26
        24: .line 1985
      StackMap locals: org.jruby.runtime.ThreadContext org.jruby.runtime.builtin.IRubyObject int org.jruby.Ruby int byte[][] int int int
      StackMap stack:
            aload 1 /* convpath */
            checkcast org.jruby.RubyArray
            iload 7 /* n */
            iload 6 /* i */
            iadd
            i2l
            aload 3 /* runtime */
            aload 5 /* decorators */
            iload 6 /* i */
            aaload
            invokestatic org.jruby.RubyString.newString:(Lorg/jruby/Ruby;[B)Lorg/jruby/RubyString;
            invokevirtual org.jruby.RubyArray.store:(JLorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
            pop
        25: .line 1984
            iinc 6 /* i */ 1
      StackMap locals:
      StackMap stack:
        26: iload 6 /* i */
            iload 4 /* num_decorators */
            if_icmplt 24
        27: .line 1987
            iconst_0
            ireturn
        end local 8 // int len
        end local 7 // int n
        end local 6 // int i
        end local 5 // byte[][] decorators
        end local 4 // int num_decorators
        end local 3 // org.jruby.Ruby runtime
        end local 2 // int ecflags
        end local 1 // org.jruby.runtime.builtin.IRubyObject convpath
        end local 0 // org.jruby.runtime.ThreadContext context
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   28     0         context  Lorg/jruby/runtime/ThreadContext;
            0   28     1        convpath  Lorg/jruby/runtime/builtin/IRubyObject;
            0   28     2         ecflags  I
            1   28     3         runtime  Lorg/jruby/Ruby;
            3   28     4  num_decorators  I
            2   28     5      decorators  [[B
           23   28     6               i  I
            6   28     7               n  I
            7   28     8             len  I
            9   22     9            pair  Lorg/jruby/runtime/builtin/IRubyObject;
           11   20    10           sname  [B
           12   20    11           dname  [B
           13   20    12           entry  Lorg/jcodings/transcode/TranscoderDB$Entry;
           14   20    13              tr  Lorg/jcodings/transcode/Transcoder;
    MethodParameters:
          Name  Flags
      context   
      convpath  
      ecflags   

  public static org.jruby.runtime.builtin.IRubyObject ioEncStr(org.jruby.Ruby, org.jruby.runtime.builtin.IRubyObject, org.jruby.util.io.OpenFile);
    descriptor: (Lorg/jruby/Ruby;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/util/io/OpenFile;)Lorg/jruby/runtime/builtin/IRubyObject;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // org.jruby.Ruby runtime
        start local 1 // org.jruby.runtime.builtin.IRubyObject str
        start local 2 // org.jruby.util.io.OpenFile fptr
         0: .line 1993
            aload 1 /* str */
            iconst_1
            invokeinterface org.jruby.runtime.builtin.IRubyObject.setTaint:(Z)V
         1: .line 1994
            aload 1 /* str */
            checkcast org.jruby.RubyString
            aload 2 /* fptr */
            aload 0 /* runtime */
            invokevirtual org.jruby.util.io.OpenFile.readEncoding:(Lorg/jruby/Ruby;)Lorg/jcodings/Encoding;
            invokevirtual org.jruby.RubyString.setEncoding:(Lorg/jcodings/Encoding;)V
         2: .line 1995
            aload 1 /* str */
            areturn
        end local 2 // org.jruby.util.io.OpenFile fptr
        end local 1 // org.jruby.runtime.builtin.IRubyObject str
        end local 0 // org.jruby.Ruby runtime
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    3     0  runtime  Lorg/jruby/Ruby;
            0    3     1      str  Lorg/jruby/runtime/builtin/IRubyObject;
            0    3     2     fptr  Lorg/jruby/util/io/OpenFile;
    MethodParameters:
         Name  Flags
      runtime  
      str      
      fptr     

  public static org.jruby.RubyString encUintChr(org.jruby.runtime.ThreadContext, int, org.jcodings.Encoding);
    descriptor: (Lorg/jruby/runtime/ThreadContext;ILorg/jcodings/Encoding;)Lorg/jruby/RubyString;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=5, locals=11, args_size=3
        start local 0 // org.jruby.runtime.ThreadContext context
        start local 1 // int code
        start local 2 // org.jcodings.Encoding enc
         0: .line 2000
            aload 0 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            astore 3 /* runtime */
        start local 3 // org.jruby.Ruby runtime
         1: .line 2002
            iload 1 /* code */
            i2l
            ldc 4294967295
            land
            lstore 4 /* i */
        start local 4 // long i
         2: .line 2005
            aload 0 /* context */
            iload 1 /* code */
            aload 2 /* enc */
            invokestatic org.jruby.util.io.EncodingUtils.encCodelen:(Lorg/jruby/runtime/ThreadContext;ILorg/jcodings/Encoding;)I
            dup
            istore 6 /* n */
        start local 6 // int n
         3: lookupswitch { // 3
                 -401: 5
                 -400: 4
                    0: 5
              default: 6
          }
         4: .line 2007
      StackMap locals: org.jruby.Ruby long int
      StackMap stack:
            aload 3 /* runtime */
            new java.lang.StringBuilder
            dup
            ldc "invalid codepoint "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            lload 4 /* i */
            invokestatic java.lang.Long.toHexString:(J)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc " in "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 2 /* enc */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual org.jruby.Ruby.newRangeError:(Ljava/lang/String;)Lorg/jruby/exceptions/RaiseException;
            athrow
         5: .line 2010
      StackMap locals:
      StackMap stack:
            aload 3 /* runtime */
            new java.lang.StringBuilder
            dup
            lload 4 /* i */
            invokestatic java.lang.Long.toString:(J)Ljava/lang/String;
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc " out of char range"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual org.jruby.Ruby.newRangeError:(Ljava/lang/String;)Lorg/jruby/exceptions/RaiseException;
            athrow
         6: .line 2013
      StackMap locals:
      StackMap stack:
            new org.jruby.util.ByteList
            dup
            iload 6 /* n */
            invokespecial org.jruby.util.ByteList.<init>:(I)V
            astore 7 /* strBytes */
        start local 7 // org.jruby.util.ByteList strBytes
         7: .line 2014
            aload 7 /* strBytes */
            aload 2 /* enc */
            invokevirtual org.jruby.util.ByteList.setEncoding:(Lorg/jcodings/Encoding;)V
         8: .line 2015
            aload 7 /* strBytes */
            iload 6 /* n */
            invokevirtual org.jruby.util.ByteList.length:(I)V
         9: .line 2016
            aload 7 /* strBytes */
            invokevirtual org.jruby.util.ByteList.unsafeBytes:()[B
            astore 8 /* bytes */
        start local 8 // byte[] bytes
        10: .line 2017
            aload 7 /* strBytes */
            invokevirtual org.jruby.util.ByteList.begin:()I
            istore 9 /* begin */
        start local 9 // int begin
        11: .line 2018
            aload 7 /* strBytes */
            invokevirtual org.jruby.util.ByteList.realSize:()I
            istore 10 /* end */
        start local 10 // int end
        12: .line 2020
            aload 0 /* context */
            iload 1 /* code */
            aload 8 /* bytes */
            iload 9 /* begin */
            aload 2 /* enc */
            invokestatic org.jruby.util.io.EncodingUtils.encMbcput:(Lorg/jruby/runtime/ThreadContext;I[BILorg/jcodings/Encoding;)I
            pop
        13: .line 2021
            aload 2 /* enc */
            aload 8 /* bytes */
            iload 9 /* begin */
            iload 10 /* end */
            invokestatic org.jruby.util.StringSupport.preciseLength:(Lorg/jcodings/Encoding;[BII)I
            iload 6 /* n */
            if_icmpeq 15
        14: .line 2022
            aload 3 /* runtime */
            new java.lang.StringBuilder
            dup
            ldc "invalid codepoint "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            lload 4 /* i */
            invokestatic java.lang.Long.toHexString:(J)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc " in "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 2 /* enc */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual org.jruby.Ruby.newRangeError:(Ljava/lang/String;)Lorg/jruby/exceptions/RaiseException;
            athrow
        15: .line 2025
      StackMap locals: org.jruby.runtime.ThreadContext int org.jcodings.Encoding org.jruby.Ruby long int org.jruby.util.ByteList byte[] int int
      StackMap stack:
            aload 3 /* runtime */
            aload 7 /* strBytes */
            invokestatic org.jruby.RubyString.newString:(Lorg/jruby/Ruby;Lorg/jruby/util/ByteList;)Lorg/jruby/RubyString;
            areturn
        end local 10 // int end
        end local 9 // int begin
        end local 8 // byte[] bytes
        end local 7 // org.jruby.util.ByteList strBytes
        end local 6 // int n
        end local 4 // long i
        end local 3 // org.jruby.Ruby runtime
        end local 2 // org.jcodings.Encoding enc
        end local 1 // int code
        end local 0 // org.jruby.runtime.ThreadContext context
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   16     0   context  Lorg/jruby/runtime/ThreadContext;
            0   16     1      code  I
            0   16     2       enc  Lorg/jcodings/Encoding;
            1   16     3   runtime  Lorg/jruby/Ruby;
            2   16     4         i  J
            3   16     6         n  I
            7   16     7  strBytes  Lorg/jruby/util/ByteList;
           10   16     8     bytes  [B
           11   16     9     begin  I
           12   16    10       end  I
    MethodParameters:
         Name  Flags
      context  
      code     
      enc      

  public static int encMbcput(int, byte[], int, org.jcodings.Encoding);
    descriptor: (I[BILorg/jcodings/Encoding;)I
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=5, args_size=4
        start local 0 // int c
        start local 1 // byte[] buf
        start local 2 // int p
        start local 3 // org.jcodings.Encoding enc
         0: .line 2031
            aload 3 /* enc */
            iload 0 /* c */
            aload 1 /* buf */
            iload 2 /* p */
            invokevirtual org.jcodings.Encoding.codeToMbc:(I[BI)I
            istore 4 /* len */
        start local 4 // int len
         1: .line 2032
            iload 4 /* len */
            ifge 3
         2: .line 2033
            new org.jcodings.exception.EncodingException
            dup
            iload 4 /* len */
            invokestatic org.jcodings.exception.EncodingError.fromCode:(I)Lorg/jcodings/exception/EncodingError;
            invokespecial org.jcodings.exception.EncodingException.<init>:(Lorg/jcodings/exception/EncodingError;)V
            athrow
         3: .line 2036
      StackMap locals: int
      StackMap stack:
            iload 4 /* len */
            ireturn
        end local 4 // int len
        end local 3 // org.jcodings.Encoding enc
        end local 2 // int p
        end local 1 // byte[] buf
        end local 0 // int c
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0     c  I
            0    4     1   buf  [B
            0    4     2     p  I
            0    4     3   enc  Lorg/jcodings/Encoding;
            1    4     4   len  I
    MethodParameters:
      Name  Flags
      c     
      buf   
      p     
      enc   

  public static int encMbcput(org.jruby.runtime.ThreadContext, int, byte[], int, org.jcodings.Encoding);
    descriptor: (Lorg/jruby/runtime/ThreadContext;I[BILorg/jcodings/Encoding;)I
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=6, locals=6, args_size=5
        start local 0 // org.jruby.runtime.ThreadContext context
        start local 1 // int c
        start local 2 // byte[] buf
        start local 3 // int p
        start local 4 // org.jcodings.Encoding enc
         0: .line 2041
            aload 4 /* enc */
            iload 1 /* c */
            aload 2 /* buf */
            iload 3 /* p */
            invokevirtual org.jcodings.Encoding.codeToMbc:(I[BI)I
            istore 5 /* len */
        start local 5 // int len
         1: .line 2048
            iload 5 /* len */
            ifge 7
         2: .line 2049
            iload 5 /* len */
            tableswitch { // -401 - -400
                 -401: 4
                 -400: 3
              default: 5
          }
         3: .line 2051
      StackMap locals: int
      StackMap stack:
            aload 0 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            new java.lang.StringBuilder
            dup
            ldc "invalid codepoint "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            iload 1 /* c */
            i2l
            ldc 4294967295
            land
            invokestatic java.lang.Long.toHexString:(J)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc " in "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 4 /* enc */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual org.jruby.Ruby.newRangeError:(Ljava/lang/String;)Lorg/jruby/exceptions/RaiseException;
            athrow
         4: .line 2053
      StackMap locals:
      StackMap stack:
            aload 0 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            new java.lang.StringBuilder
            dup
            invokespecial java.lang.StringBuilder.<init>:()V
            iload 1 /* c */
            i2l
            ldc 4294967295
            land
            invokevirtual java.lang.StringBuilder.append:(J)Ljava/lang/StringBuilder;
            ldc " out of char range"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual org.jruby.Ruby.newRangeError:(Ljava/lang/String;)Lorg/jruby/exceptions/RaiseException;
            athrow
         5: .line 2054
      StackMap locals:
      StackMap stack:
            aload 0 /* context */
         6: .line 2055
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            iload 5 /* len */
            invokestatic org.jcodings.exception.EncodingError.fromCode:(I)Lorg/jcodings/exception/EncodingError;
            invokevirtual org.jcodings.exception.EncodingError.getMessage:()Ljava/lang/String;
            invokevirtual org.jruby.Ruby.newEncodingError:(Ljava/lang/String;)Lorg/jruby/exceptions/RaiseException;
            athrow
         7: .line 2058
      StackMap locals:
      StackMap stack:
            iload 5 /* len */
            ireturn
        end local 5 // int len
        end local 4 // org.jcodings.Encoding enc
        end local 3 // int p
        end local 2 // byte[] buf
        end local 1 // int c
        end local 0 // org.jruby.runtime.ThreadContext context
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    8     0  context  Lorg/jruby/runtime/ThreadContext;
            0    8     1        c  I
            0    8     2      buf  [B
            0    8     3        p  I
            0    8     4      enc  Lorg/jcodings/Encoding;
            1    8     5      len  I
    MethodParameters:
         Name  Flags
      context  
      c        
      buf      
      p        
      enc      

  public static int encCodepointLength(byte[], int, int, int[], org.jcodings.Encoding);
    descriptor: ([BII[ILorg/jcodings/Encoding;)I
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=5, locals=6, args_size=5
        start local 0 // byte[] pBytes
        start local 1 // int p
        start local 2 // int e
        start local 3 // int[] len_p
        start local 4 // org.jcodings.Encoding enc
         0: .line 2064
            iload 2 /* e */
            iload 1 /* p */
            if_icmpgt 2
         1: .line 2065
            new java.lang.IllegalArgumentException
            dup
            ldc "empty string"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 2066
      StackMap locals:
      StackMap stack:
            aload 4 /* enc */
            aload 0 /* pBytes */
            iload 1 /* p */
            iload 2 /* e */
            invokestatic org.jruby.util.StringSupport.preciseLength:(Lorg/jcodings/Encoding;[BII)I
            istore 5 /* r */
        start local 5 // int r
         3: .line 2067
            iload 5 /* r */
            invokestatic org.jruby.util.StringSupport.MBCLEN_CHARFOUND_P:(I)Z
            ifne 5
         4: .line 2068
            new java.lang.IllegalArgumentException
            dup
            new java.lang.StringBuilder
            dup
            ldc "invalid byte sequence in "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 4 /* enc */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         5: .line 2070
      StackMap locals: int
      StackMap stack:
            aload 3 /* len_p */
            ifnull 6
            aload 3 /* len_p */
            iconst_0
            iload 5 /* r */
            invokestatic org.jruby.util.StringSupport.MBCLEN_CHARFOUND_LEN:(I)I
            iastore
         6: .line 2071
      StackMap locals:
      StackMap stack:
            aload 4 /* enc */
            aload 0 /* pBytes */
            iload 1 /* p */
            iload 2 /* e */
            invokestatic org.jruby.util.StringSupport.codePoint:(Lorg/jcodings/Encoding;[BII)I
            ireturn
        end local 5 // int r
        end local 4 // org.jcodings.Encoding enc
        end local 3 // int[] len_p
        end local 2 // int e
        end local 1 // int p
        end local 0 // byte[] pBytes
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    7     0  pBytes  [B
            0    7     1       p  I
            0    7     2       e  I
            0    7     3   len_p  [I
            0    7     4     enc  Lorg/jcodings/Encoding;
            3    7     5       r  I
    MethodParameters:
        Name  Flags
      pBytes  
      p       
      e       
      len_p   
      enc     

  public static int encCodepointLength(org.jruby.Ruby, byte[], int, int, int[], org.jcodings.Encoding);
    descriptor: (Lorg/jruby/Ruby;[BII[ILorg/jcodings/Encoding;)I
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=5, locals=7, args_size=6
        start local 0 // org.jruby.Ruby runtime
        start local 1 // byte[] pBytes
        start local 2 // int p
        start local 3 // int e
        start local 4 // int[] len_p
        start local 5 // org.jcodings.Encoding enc
         0: .line 2076
            aload 1 /* pBytes */
            iload 2 /* p */
            iload 3 /* e */
            aload 4 /* len_p */
            aload 5 /* enc */
            invokestatic org.jruby.util.io.EncodingUtils.encCodepointLength:([BII[ILorg/jcodings/Encoding;)I
         1: ireturn
         2: .line 2077
      StackMap locals:
      StackMap stack: java.lang.IllegalArgumentException
            astore 6 /* ex */
        start local 6 // java.lang.IllegalArgumentException ex
         3: .line 2078
            aload 0 /* runtime */
            aload 6 /* ex */
            invokevirtual java.lang.IllegalArgumentException.getMessage:()Ljava/lang/String;
            invokevirtual org.jruby.Ruby.newArgumentError:(Ljava/lang/String;)Lorg/jruby/exceptions/RaiseException;
            athrow
        end local 6 // java.lang.IllegalArgumentException ex
        end local 5 // org.jcodings.Encoding enc
        end local 4 // int[] len_p
        end local 3 // int e
        end local 2 // int p
        end local 1 // byte[] pBytes
        end local 0 // org.jruby.Ruby runtime
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    4     0  runtime  Lorg/jruby/Ruby;
            0    4     1   pBytes  [B
            0    4     2        p  I
            0    4     3        e  I
            0    4     4    len_p  [I
            0    4     5      enc  Lorg/jcodings/Encoding;
            3    4     6       ex  Ljava/lang/IllegalArgumentException;
      Exception table:
        from    to  target  type
           0     1       2  Class java.lang.IllegalArgumentException
    MethodParameters:
         Name  Flags
      runtime  
      pBytes   
      p        
      e        
      len_p    
      enc      

  public static org.jruby.runtime.builtin.IRubyObject strCompatAndValid(org.jruby.runtime.ThreadContext, org.jruby.runtime.builtin.IRubyObject, org.jcodings.Encoding);
    descriptor: (Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jcodings/Encoding;)Lorg/jruby/runtime/builtin/IRubyObject;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=6, args_size=3
        start local 0 // org.jruby.runtime.ThreadContext context
        start local 1 // org.jruby.runtime.builtin.IRubyObject _str
        start local 2 // org.jcodings.Encoding enc
         0: .line 2085
            aload 1 /* _str */
            invokeinterface org.jruby.runtime.builtin.IRubyObject.convertToString:()Lorg/jruby/RubyString;
            astore 4 /* str */
        start local 4 // org.jruby.RubyString str
         1: .line 2086
            aload 4 /* str */
            invokevirtual org.jruby.RubyString.scanForCodeRange:()I
            istore 3 /* cr */
        start local 3 // int cr
         2: .line 2087
            iload 3 /* cr */
            bipush 48
            if_icmpne 4
         3: .line 2088
            aload 0 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            new java.lang.StringBuilder
            dup
            ldc "replacement must be valid byte sequence '"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 4 /* str */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            ldc "'"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual org.jruby.Ruby.newArgumentError:(Ljava/lang/String;)Lorg/jruby/exceptions/RaiseException;
            athrow
         4: .line 2091
      StackMap locals: int org.jruby.RubyString
      StackMap stack:
            aload 4 /* str */
            invokestatic org.jruby.util.io.EncodingUtils.STR_ENC_GET:(Lorg/jruby/util/ByteListHolder;)Lorg/jcodings/Encoding;
            astore 5 /* e */
        start local 5 // org.jcodings.Encoding e
         5: .line 2092
            iload 3 /* cr */
            bipush 16
            if_icmpne 6
            aload 2 /* enc */
            invokevirtual org.jcodings.Encoding.minLength:()I
            iconst_1
            if_icmpeq 8
            goto 7
      StackMap locals: org.jcodings.Encoding
      StackMap stack:
         6: aload 2 /* enc */
            aload 5 /* e */
            if_acmpeq 8
         7: .line 2093
      StackMap locals:
      StackMap stack:
            aload 0 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            new java.lang.StringBuilder
            dup
            ldc "incompatible character encodings: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 2 /* enc */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            ldc " and "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 5 /* e */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual org.jruby.Ruby.newEncodingCompatibilityError:(Ljava/lang/String;)Lorg/jruby/exceptions/RaiseException;
            athrow
        end local 5 // org.jcodings.Encoding e
         8: .line 2096
      StackMap locals:
      StackMap stack:
            aload 4 /* str */
            areturn
        end local 4 // org.jruby.RubyString str
        end local 3 // int cr
        end local 2 // org.jcodings.Encoding enc
        end local 1 // org.jruby.runtime.builtin.IRubyObject _str
        end local 0 // org.jruby.runtime.ThreadContext context
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    9     0  context  Lorg/jruby/runtime/ThreadContext;
            0    9     1     _str  Lorg/jruby/runtime/builtin/IRubyObject;
            0    9     2      enc  Lorg/jcodings/Encoding;
            2    9     3       cr  I
            1    9     4      str  Lorg/jruby/RubyString;
            5    8     5        e  Lorg/jcodings/Encoding;
    MethodParameters:
         Name  Flags
      context  
      _str     
      enc      

  public static org.jcodings.Encoding getEncoding(org.jruby.util.ByteList);
    descriptor: (Lorg/jruby/util/ByteList;)Lorg/jcodings/Encoding;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.jruby.util.ByteList str
         0: .line 2101
            aload 0 /* str */
            invokevirtual org.jruby.util.ByteList.getEncoding:()Lorg/jcodings/Encoding;
            aload 0 /* str */
            invokestatic org.jruby.util.io.EncodingUtils.getActualEncoding:(Lorg/jcodings/Encoding;Lorg/jruby/util/ByteList;)Lorg/jcodings/Encoding;
            areturn
        end local 0 // org.jruby.util.ByteList str
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0   str  Lorg/jruby/util/ByteList;
    MethodParameters:
      Name  Flags
      str   

  public static org.jcodings.Encoding getActualEncoding(org.jcodings.Encoding, org.jruby.util.ByteList);
    descriptor: (Lorg/jcodings/Encoding;Lorg/jruby/util/ByteList;)Lorg/jcodings/Encoding;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=5, locals=2, args_size=2
        start local 0 // org.jcodings.Encoding enc
        start local 1 // org.jruby.util.ByteList byteList
         0: .line 2109
            aload 0 /* enc */
            aload 1 /* byteList */
            invokevirtual org.jruby.util.ByteList.getUnsafeBytes:()[B
            aload 1 /* byteList */
            invokevirtual org.jruby.util.ByteList.begin:()I
            aload 1 /* byteList */
            invokevirtual org.jruby.util.ByteList.begin:()I
            aload 1 /* byteList */
            invokevirtual org.jruby.util.ByteList.realSize:()I
            iadd
            invokestatic org.jruby.util.io.EncodingUtils.getActualEncoding:(Lorg/jcodings/Encoding;[BII)Lorg/jcodings/Encoding;
            areturn
        end local 1 // org.jruby.util.ByteList byteList
        end local 0 // org.jcodings.Encoding enc
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    1     0       enc  Lorg/jcodings/Encoding;
            0    1     1  byteList  Lorg/jruby/util/ByteList;
    MethodParameters:
          Name  Flags
      enc       
      byteList  

  public static org.jcodings.Encoding getActualEncoding(org.jcodings.Encoding, byte[], int, int);
    descriptor: (Lorg/jcodings/Encoding;[BII)Lorg/jcodings/Encoding;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=8, args_size=4
        start local 0 // org.jcodings.Encoding enc
        start local 1 // byte[] bytes
        start local 2 // int p
        start local 3 // int end
         0: .line 2113
            aload 0 /* enc */
            invokevirtual org.jcodings.Encoding.isDummy:()Z
            ifeq 19
            aload 0 /* enc */
            instanceof org.jcodings.unicode.UnicodeEncoding
            ifeq 19
         1: .line 2115
            aload 0 /* enc */
            getstatic org.jruby.util.io.EncodingUtils.UTF16Dummy:Lorg/jcodings/Encoding;
            if_acmpne 9
            iload 3 /* end */
            iload 2 /* p */
            isub
            iconst_2
            if_icmplt 9
         2: .line 2116
            aload 1 /* bytes */
            iload 2 /* p */
            baload
            sipush 255
            iand
            istore 4 /* c0 */
        start local 4 // int c0
         3: .line 2117
            aload 1 /* bytes */
            iload 2 /* p */
            iconst_1
            iadd
            baload
            sipush 255
            iand
            istore 5 /* c1 */
        start local 5 // int c1
         4: .line 2119
            iload 4 /* c0 */
            sipush 254
            if_icmpne 6
            iload 5 /* c1 */
            sipush 255
            if_icmpne 6
         5: .line 2120
            getstatic org.jcodings.specific.UTF16BEEncoding.INSTANCE:Lorg/jcodings/specific/UTF16BEEncoding;
            areturn
         6: .line 2121
      StackMap locals: int int
      StackMap stack:
            iload 4 /* c0 */
            sipush 255
            if_icmpne 8
            iload 5 /* c1 */
            sipush 254
            if_icmpne 8
         7: .line 2122
            getstatic org.jcodings.specific.UTF16LEEncoding.INSTANCE:Lorg/jcodings/specific/UTF16LEEncoding;
            areturn
         8: .line 2124
      StackMap locals:
      StackMap stack:
            getstatic org.jcodings.specific.ASCIIEncoding.INSTANCE:Lorg/jcodings/specific/ASCIIEncoding;
            areturn
        end local 5 // int c1
        end local 4 // int c0
         9: .line 2125
      StackMap locals:
      StackMap stack:
            aload 0 /* enc */
            getstatic org.jruby.util.io.EncodingUtils.UTF32Dummy:Lorg/jcodings/Encoding;
            if_acmpne 19
            iload 3 /* end */
            iload 2 /* p */
            isub
            iconst_4
            if_icmplt 19
        10: .line 2126
            aload 1 /* bytes */
            iload 2 /* p */
            baload
            sipush 255
            iand
            istore 4 /* c0 */
        start local 4 // int c0
        11: .line 2127
            aload 1 /* bytes */
            iload 2 /* p */
            iconst_1
            iadd
            baload
            sipush 255
            iand
            istore 5 /* c1 */
        start local 5 // int c1
        12: .line 2128
            aload 1 /* bytes */
            iload 2 /* p */
            iconst_2
            iadd
            baload
            sipush 255
            iand
            istore 6 /* c2 */
        start local 6 // int c2
        13: .line 2129
            aload 1 /* bytes */
            iload 2 /* p */
            iconst_3
            iadd
            baload
            sipush 255
            iand
            istore 7 /* c3 */
        start local 7 // int c3
        14: .line 2131
            iload 4 /* c0 */
            ifne 16
            iload 5 /* c1 */
            ifne 16
            iload 6 /* c2 */
            sipush 254
            if_icmpne 16
            iload 7 /* c3 */
            sipush 255
            if_icmpne 16
        15: .line 2132
            getstatic org.jcodings.specific.UTF32BEEncoding.INSTANCE:Lorg/jcodings/specific/UTF32BEEncoding;
            areturn
        16: .line 2133
      StackMap locals: org.jcodings.Encoding byte[] int int int int int int
      StackMap stack:
            iload 7 /* c3 */
            ifne 18
            iload 6 /* c2 */
            ifne 18
            iload 5 /* c1 */
            sipush 254
            if_icmpne 18
            iload 4 /* c0 */
            sipush 255
            if_icmpne 18
        17: .line 2134
            getstatic org.jcodings.specific.UTF32LEEncoding.INSTANCE:Lorg/jcodings/specific/UTF32LEEncoding;
            areturn
        18: .line 2136
      StackMap locals:
      StackMap stack:
            getstatic org.jcodings.specific.ASCIIEncoding.INSTANCE:Lorg/jcodings/specific/ASCIIEncoding;
            areturn
        end local 7 // int c3
        end local 6 // int c2
        end local 5 // int c1
        end local 4 // int c0
        19: .line 2139
      StackMap locals: org.jcodings.Encoding byte[] int int
      StackMap stack:
            aload 0 /* enc */
            areturn
        end local 3 // int end
        end local 2 // int p
        end local 1 // byte[] bytes
        end local 0 // org.jcodings.Encoding enc
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0   20     0    enc  Lorg/jcodings/Encoding;
            0   20     1  bytes  [B
            0   20     2      p  I
            0   20     3    end  I
            3    9     4     c0  I
            4    9     5     c1  I
           11   19     4     c0  I
           12   19     5     c1  I
           13   19     6     c2  I
           14   19     7     c3  I
    MethodParameters:
       Name  Flags
      enc    
      bytes  
      p      
      end    

  public static org.jcodings.Encoding STR_ENC_GET(org.jruby.util.ByteListHolder);
    descriptor: (Lorg/jruby/util/ByteListHolder;)Lorg/jcodings/Encoding;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.jruby.util.ByteListHolder str
         0: .line 2143
            aload 0 /* str */
            invokeinterface org.jruby.util.ByteListHolder.getByteList:()Lorg/jruby/util/ByteList;
            invokestatic org.jruby.util.io.EncodingUtils.getEncoding:(Lorg/jruby/util/ByteList;)Lorg/jcodings/Encoding;
            areturn
        end local 0 // org.jruby.util.ByteListHolder str
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0   str  Lorg/jruby/util/ByteListHolder;
    MethodParameters:
      Name  Flags
      str   

  public static org.jruby.RubyString rbStrEscape(org.jruby.Ruby, org.jruby.RubyString);
    descriptor: (Lorg/jruby/Ruby;Lorg/jruby/RubyString;)Lorg/jruby/RubyString;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=6, locals=17, args_size=2
        start local 0 // org.jruby.Ruby runtime
        start local 1 // org.jruby.RubyString str
         0: .line 2147
            aload 1 /* str */
            invokevirtual org.jruby.RubyString.getEncoding:()Lorg/jcodings/Encoding;
            astore 2 /* enc */
        start local 2 // org.jcodings.Encoding enc
         1: .line 2148
            aload 1 /* str */
            invokevirtual org.jruby.RubyString.getByteList:()Lorg/jruby/util/ByteList;
            astore 3 /* pByteList */
        start local 3 // org.jruby.util.ByteList pByteList
         2: .line 2149
            aload 3 /* pByteList */
            invokevirtual org.jruby.util.ByteList.unsafeBytes:()[B
            astore 4 /* pBytes */
        start local 4 // byte[] pBytes
         3: .line 2150
            aload 3 /* pByteList */
            invokevirtual org.jruby.util.ByteList.begin:()I
            istore 5 /* p */
        start local 5 // int p
         4: .line 2151
            iload 5 /* p */
            aload 3 /* pByteList */
            invokevirtual org.jruby.util.ByteList.realSize:()I
            iadd
            istore 6 /* pend */
        start local 6 // int pend
         5: .line 2152
            iload 5 /* p */
            istore 7 /* prev */
        start local 7 // int prev
         6: .line 2154
            aload 0 /* runtime */
            invokestatic org.jruby.RubyString.newEmptyString:(Lorg/jruby/Ruby;)Lorg/jruby/RubyString;
            astore 9 /* result */
        start local 9 // org.jruby.RubyString result
         7: .line 2155
            aload 2 /* enc */
            invokevirtual org.jcodings.Encoding.isUnicode:()Z
            istore 10 /* unicode_p */
        start local 10 // boolean unicode_p
         8: .line 2156
            aload 2 /* enc */
            invokevirtual org.jcodings.Encoding.isAsciiCompatible:()Z
            istore 11 /* asciicompat */
        start local 11 // boolean asciicompat
         9: .line 2158
            goto 53
        10: .line 2160
      StackMap locals: org.jruby.Ruby org.jruby.RubyString org.jcodings.Encoding org.jruby.util.ByteList byte[] int int int top org.jruby.RubyString int int
      StackMap stack:
            aload 2 /* enc */
            aload 4 /* pBytes */
            iload 5 /* p */
            iload 6 /* pend */
            invokestatic org.jruby.util.StringSupport.preciseLength:(Lorg/jcodings/Encoding;[BII)I
            istore 16 /* n */
        start local 16 // int n
        11: .line 2161
            iload 16 /* n */
            invokestatic org.jruby.util.StringSupport.MBCLEN_CHARFOUND_P:(I)Z
            ifne 22
        12: .line 2162
            iload 5 /* p */
            iload 7 /* prev */
            if_icmple 13
            aload 9 /* result */
            aload 4 /* pBytes */
            iload 7 /* prev */
            iload 5 /* p */
            iload 7 /* prev */
            isub
            invokevirtual org.jruby.RubyString.cat:([BII)Lorg/jruby/RubyString;
            pop
        13: .line 2163
      StackMap locals: org.jruby.Ruby org.jruby.RubyString org.jcodings.Encoding org.jruby.util.ByteList byte[] int int int top org.jruby.RubyString int int top top top top int
      StackMap stack:
            aload 2 /* enc */
            invokevirtual org.jcodings.Encoding.minLength:()I
            istore 16 /* n */
        14: .line 2164
            iload 6 /* pend */
            iload 5 /* p */
            iload 16 /* n */
            iadd
            if_icmpge 20
        15: .line 2165
            iload 6 /* pend */
            iload 5 /* p */
            isub
            istore 16 /* n */
        16: .line 2166
            goto 20
        17: .line 2167
      StackMap locals:
      StackMap stack:
            ldc "x%02X"
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            aload 4 /* pBytes */
            iload 5 /* p */
            baload
            sipush 255
            iand
            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 8 /* buf */
        start local 8 // byte[] buf
        18: .line 2168
            aload 9 /* result */
            aload 8 /* buf */
            iconst_0
            aload 8 /* buf */
            arraylength
            invokevirtual org.jruby.RubyString.cat:([BII)Lorg/jruby/RubyString;
            pop
        19: .line 2169
            iinc 5 /* p */ 1
            iload 5 /* p */
            istore 7 /* prev */
        end local 8 // byte[] buf
        20: .line 2166
      StackMap locals:
      StackMap stack:
            iload 16 /* n */
            iinc 16 /* n */ -1
            ifne 17
        21: .line 2171
            goto 53
        22: .line 2173
      StackMap locals:
      StackMap stack:
            iload 16 /* n */
            invokestatic org.jruby.util.StringSupport.MBCLEN_CHARFOUND_LEN:(I)I
            istore 16 /* n */
        23: .line 2174
            aload 2 /* enc */
            aload 4 /* pBytes */
            iload 5 /* p */
            iload 6 /* pend */
            invokevirtual org.jcodings.Encoding.mbcToCode:([BII)I
            i2l
            lstore 12 /* c */
        start local 12 // long c
        24: .line 2175
            iload 5 /* p */
            iload 16 /* n */
            iadd
            istore 5 /* p */
        25: .line 2176
            lload 12 /* c */
            l2i
            lookupswitch { // 8
                    7: 38
                    8: 36
                    9: 30
                   10: 26
                   11: 34
                   12: 32
                   13: 28
                   27: 40
              default: 42
          }
        26: .line 2178
      StackMap locals: org.jruby.Ruby org.jruby.RubyString org.jcodings.Encoding org.jruby.util.ByteList byte[] int int int top org.jruby.RubyString int int long top top int
      StackMap stack:
            ldc 110
            lstore 14 /* cc */
        start local 14 // long cc
        27: .line 2179
            goto 43
        end local 14 // long cc
        28: .line 2181
      StackMap locals:
      StackMap stack:
            ldc 114
            lstore 14 /* cc */
        start local 14 // long cc
        29: .line 2182
            goto 43
        end local 14 // long cc
        30: .line 2184
      StackMap locals:
      StackMap stack:
            ldc 116
            lstore 14 /* cc */
        start local 14 // long cc
        31: .line 2185
            goto 43
        end local 14 // long cc
        32: .line 2187
      StackMap locals:
      StackMap stack:
            ldc 102
            lstore 14 /* cc */
        start local 14 // long cc
        33: .line 2188
            goto 43
        end local 14 // long cc
        34: .line 2190
      StackMap locals:
      StackMap stack:
            ldc 118
            lstore 14 /* cc */
        start local 14 // long cc
        35: .line 2191
            goto 43
        end local 14 // long cc
        36: .line 2193
      StackMap locals:
      StackMap stack:
            ldc 98
            lstore 14 /* cc */
        start local 14 // long cc
        37: .line 2194
            goto 43
        end local 14 // long cc
        38: .line 2196
      StackMap locals:
      StackMap stack:
            ldc 97
            lstore 14 /* cc */
        start local 14 // long cc
        39: .line 2197
            goto 43
        end local 14 // long cc
        40: .line 2199
      StackMap locals:
      StackMap stack:
            ldc 101
            lstore 14 /* cc */
        start local 14 // long cc
        41: .line 2200
            goto 43
        end local 14 // long cc
        42: .line 2202
      StackMap locals:
      StackMap stack:
            lconst_0
            lstore 14 /* cc */
        start local 14 // long cc
        43: .line 2205
      StackMap locals: org.jruby.Ruby org.jruby.RubyString org.jcodings.Encoding org.jruby.util.ByteList byte[] int int int top org.jruby.RubyString int int long long int
      StackMap stack:
            lload 14 /* cc */
            lconst_0
            lcmp
            ifeq 49
        44: .line 2206
            iload 5 /* p */
            iload 16 /* n */
            isub
            iload 7 /* prev */
            if_icmple 45
            aload 9 /* result */
            aload 4 /* pBytes */
            iload 7 /* prev */
            iload 5 /* p */
            iload 16 /* n */
            isub
            iload 7 /* prev */
            isub
            invokevirtual org.jruby.RubyString.cat:([BII)Lorg/jruby/RubyString;
            pop
        45: .line 2207
      StackMap locals:
      StackMap stack:
            iconst_2
            newarray 8
            dup
            iconst_0
            bipush 92
            bastore
            dup
            iconst_1
            lload 14 /* cc */
            l2i
            i2b
            bastore
            astore 8 /* buf */
        start local 8 // byte[] buf
        46: .line 2208
            aload 9 /* result */
            aload 8 /* buf */
            iconst_0
            iconst_2
            invokevirtual org.jruby.RubyString.cat:([BII)Lorg/jruby/RubyString;
            pop
        47: .line 2209
            iload 5 /* p */
            istore 7 /* prev */
        48: .line 2210
            goto 53
        end local 8 // byte[] buf
      StackMap locals:
      StackMap stack:
        49: iload 11 /* asciicompat */
            ifeq 50
            lload 12 /* c */
            l2i
            i2b
            invokestatic org.jcodings.Encoding.isAscii:(B)Z
            ifeq 50
            lload 12 /* c */
            ldc 31
            lcmp
            ifgt 53
        50: .line 2212
      StackMap locals:
      StackMap stack:
            iload 5 /* p */
            iload 16 /* n */
            isub
            iload 7 /* prev */
            if_icmple 51
            aload 9 /* result */
            aload 4 /* pBytes */
            iload 7 /* prev */
            iload 5 /* p */
            iload 16 /* n */
            isub
            iload 7 /* prev */
            isub
            invokevirtual org.jruby.RubyString.cat:([BII)Lorg/jruby/RubyString;
            pop
        51: .line 2213
      StackMap locals:
      StackMap stack:
            aload 9 /* result */
            lload 12 /* c */
            iload 10 /* unicode_p */
            invokestatic org.jruby.util.io.EncodingUtils.rbStrBufCatEscapedChar:(Lorg/jruby/RubyString;JZ)I
            pop
        52: .line 2214
            iload 5 /* p */
            istore 7 /* prev */
        end local 16 // int n
        end local 14 // long cc
        end local 12 // long c
        53: .line 2158
      StackMap locals:
      StackMap stack:
            iload 5 /* p */
            iload 6 /* pend */
            if_icmplt 10
        54: .line 2217
            iload 5 /* p */
            iload 7 /* prev */
            if_icmple 55
            aload 9 /* result */
            aload 4 /* pBytes */
            iload 7 /* prev */
            iload 5 /* p */
            iload 7 /* prev */
            isub
            invokevirtual org.jruby.RubyString.cat:([BII)Lorg/jruby/RubyString;
            pop
        55: .line 2218
      StackMap locals:
      StackMap stack:
            aload 9 /* result */
            getstatic org.jcodings.specific.USASCIIEncoding.INSTANCE:Lorg/jcodings/specific/USASCIIEncoding;
            bipush 16
            invokevirtual org.jruby.RubyString.setEncodingAndCodeRange:(Lorg/jcodings/Encoding;I)V
        56: .line 2220
            aload 9 /* result */
            aload 1 /* str */
            invokevirtual org.jruby.RubyString.isTaint:()Z
            invokevirtual org.jruby.RubyString.setTaint:(Z)V
        57: .line 2221
            aload 9 /* result */
            areturn
        end local 11 // boolean asciicompat
        end local 10 // boolean unicode_p
        end local 9 // org.jruby.RubyString result
        end local 7 // int prev
        end local 6 // int pend
        end local 5 // int p
        end local 4 // byte[] pBytes
        end local 3 // org.jruby.util.ByteList pByteList
        end local 2 // org.jcodings.Encoding enc
        end local 1 // org.jruby.RubyString str
        end local 0 // org.jruby.Ruby runtime
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   58     0      runtime  Lorg/jruby/Ruby;
            0   58     1          str  Lorg/jruby/RubyString;
            1   58     2          enc  Lorg/jcodings/Encoding;
            2   58     3    pByteList  Lorg/jruby/util/ByteList;
            3   58     4       pBytes  [B
            4   58     5            p  I
            5   58     6         pend  I
            6   58     7         prev  I
           18   20     8          buf  [B
           46   49     8          buf  [B
            7   58     9       result  Lorg/jruby/RubyString;
            8   58    10    unicode_p  Z
            9   58    11  asciicompat  Z
           24   53    12            c  J
           27   28    14           cc  J
           29   30    14           cc  J
           31   32    14           cc  J
           33   34    14           cc  J
           35   36    14           cc  J
           37   38    14           cc  J
           39   40    14           cc  J
           41   42    14           cc  J
           43   53    14           cc  J
           11   53    16            n  I
    MethodParameters:
         Name  Flags
      runtime  
      str      

  public static int rbStrBufCatEscapedChar(org.jruby.RubyString, long, boolean);
    descriptor: (Lorg/jruby/RubyString;JZ)I
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=6, locals=5, args_size=3
        start local 0 // org.jruby.RubyString result
        start local 1 // long c
        start local 3 // boolean unicode_p
         0: .line 2229
            lload 1 /* c */
            ldc -1
            land
            lstore 1 /* c */
         1: .line 2231
            iload 3 /* unicode_p */
            ifeq 10
         2: .line 2232
            lload 1 /* c */
            ldc 127
            lcmp
            ifge 5
            lload 1 /* c */
            ldc 31
            lcmp
            ifle 5
         3: .line 2233
            ldc "%c"
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            lload 1 /* c */
            l2i
            i2c
            invokestatic java.lang.Character.valueOf:(C)Ljava/lang/Character;
            aastore
            invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
            invokevirtual java.lang.String.getBytes:()[B
            astore 4 /* buf */
        start local 4 // byte[] buf
         4: .line 2234
            goto 14
        end local 4 // byte[] buf
         5: .line 2235
      StackMap locals:
      StackMap stack:
            lload 1 /* c */
            ldc 65536
            lcmp
            ifge 8
         6: .line 2236
            ldc "\\u%04X"
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            lload 1 /* c */
            invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
            aastore
            invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
            invokevirtual java.lang.String.getBytes:()[B
            astore 4 /* buf */
        start local 4 // byte[] buf
         7: .line 2237
            goto 14
        end local 4 // byte[] buf
         8: .line 2239
      StackMap locals:
      StackMap stack:
            ldc "\\u{%X}"
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            lload 1 /* c */
            invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
            aastore
            invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
            invokevirtual java.lang.String.getBytes:()[B
            astore 4 /* buf */
        start local 4 // byte[] buf
         9: .line 2241
            goto 14
        end local 4 // byte[] buf
        10: .line 2243
      StackMap locals:
      StackMap stack:
            lload 1 /* c */
            ldc 256
            lcmp
            ifge 13
        11: .line 2244
            ldc "\\x{%02X}"
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            lload 1 /* c */
            invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
            aastore
            invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
            invokevirtual java.lang.String.getBytes:()[B
            astore 4 /* buf */
        start local 4 // byte[] buf
        12: .line 2245
            goto 14
        end local 4 // byte[] buf
        13: .line 2247
      StackMap locals:
      StackMap stack:
            ldc "\\x{%X}"
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            lload 1 /* c */
            invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
            aastore
            invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
            invokevirtual java.lang.String.getBytes:()[B
            astore 4 /* buf */
        start local 4 // byte[] buf
        14: .line 2250
      StackMap locals: byte[]
      StackMap stack:
            aload 0 /* result */
            aload 4 /* buf */
            invokevirtual org.jruby.RubyString.cat:([B)Lorg/jruby/RubyString;
            pop
        15: .line 2251
            aload 4 /* buf */
            arraylength
            ireturn
        end local 4 // byte[] buf
        end local 3 // boolean unicode_p
        end local 1 // long c
        end local 0 // org.jruby.RubyString result
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   16     0     result  Lorg/jruby/RubyString;
            0   16     1          c  J
            0   16     3  unicode_p  Z
            4    5     4        buf  [B
            7    8     4        buf  [B
            9   10     4        buf  [B
           12   13     4        buf  [B
           14   16     4        buf  [B
    MethodParameters:
           Name  Flags
      result     
      c          
      unicode_p  

  public static java.nio.charset.Charset charsetForEncoding(org.jcodings.Encoding);
    descriptor: (Lorg/jcodings/Encoding;)Ljava/nio/charset/Charset;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=1, locals=2, args_size=1
        start local 0 // org.jcodings.Encoding enc
         0: .line 2266
            aload 0 /* enc */
            invokevirtual org.jcodings.Encoding.getCharset:()Ljava/nio/charset/Charset;
            astore 1 /* charset */
        start local 1 // java.nio.charset.Charset charset
         1: .line 2268
            aload 1 /* charset */
            ifnonnull 3
         2: .line 2269
            aload 0 /* enc */
            invokevirtual org.jcodings.Encoding.toString:()Ljava/lang/String;
            invokestatic java.nio.charset.Charset.forName:(Ljava/lang/String;)Ljava/nio/charset/Charset;
            astore 1 /* charset */
         3: .line 2272
      StackMap locals: java.nio.charset.Charset
      StackMap stack:
            aload 1 /* charset */
            areturn
        end local 1 // java.nio.charset.Charset charset
        end local 0 // org.jcodings.Encoding enc
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    4     0      enc  Lorg/jcodings/Encoding;
            1    4     1  charset  Ljava/nio/charset/Charset;
    MethodParameters:
      Name  Flags
      enc   

  public static int encCodelen(org.jruby.runtime.ThreadContext, int, org.jcodings.Encoding);
    descriptor: (Lorg/jruby/runtime/ThreadContext;ILorg/jcodings/Encoding;)I
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=6, locals=4, args_size=3
        start local 0 // org.jruby.runtime.ThreadContext context
        start local 1 // int c
        start local 2 // org.jcodings.Encoding enc
         0: .line 2276
            aload 2 /* enc */
            iload 1 /* c */
            invokevirtual org.jcodings.Encoding.codeToMbcLength:(I)I
            istore 3 /* n */
        start local 3 // int n
         1: .line 2277
            iload 3 /* n */
            ifne 3
         2: .line 2278
            aload 0 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            new java.lang.StringBuilder
            dup
            ldc "invalid codepoint "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            iload 1 /* c */
            i2l
            ldc 4294967295
            land
            invokestatic java.lang.Long.toHexString:(J)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc " in "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 2 /* enc */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual org.jruby.Ruby.newArgumentError:(Ljava/lang/String;)Lorg/jruby/exceptions/RaiseException;
            athrow
         3: .line 2280
      StackMap locals: int
      StackMap stack:
            iload 3 /* n */
            ireturn
        end local 3 // int n
        end local 2 // org.jcodings.Encoding enc
        end local 1 // int c
        end local 0 // org.jruby.runtime.ThreadContext context
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    4     0  context  Lorg/jruby/runtime/ThreadContext;
            0    4     1        c  I
            0    4     2      enc  Lorg/jcodings/Encoding;
            1    4     3        n  I
    MethodParameters:
         Name  Flags
      context  
      c        
      enc      

  public static org.jcodings.Encoding ioStripBOM(org.jruby.RubyIO);
    descriptor: (Lorg/jruby/RubyIO;)Lorg/jcodings/Encoding;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.jruby.RubyIO io
         0: .line 2285
            aload 0 /* io */
            invokevirtual org.jruby.RubyIO.getRuntime:()Lorg/jruby/Ruby;
            invokevirtual org.jruby.Ruby.getCurrentContext:()Lorg/jruby/runtime/ThreadContext;
            aload 0 /* io */
            invokestatic org.jruby.util.io.EncodingUtils.ioStripBOM:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/RubyIO;)Lorg/jcodings/Encoding;
            areturn
        end local 0 // org.jruby.RubyIO io
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0    io  Lorg/jruby/RubyIO;
    RuntimeVisibleAnnotations: 
      java.lang.Deprecated()
    MethodParameters:
      Name  Flags
      io    

  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 59
            getstatic org.jruby.util.io.EncodingUtils.$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.jruby.util.io.EncodingUtils.$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: "EncodingUtils.java"
NestMembers:
  org.jruby.util.io.EncodingUtils$1  org.jruby.util.io.EncodingUtils$2  org.jruby.util.io.EncodingUtils$3  org.jruby.util.io.EncodingUtils$4  org.jruby.util.io.EncodingUtils$5  org.jruby.util.io.EncodingUtils$6  org.jruby.util.io.EncodingUtils$AbstractTranscodeFallback  org.jruby.util.io.EncodingUtils$ResizeFunction  org.jruby.util.io.EncodingUtils$TranscodeFallback
InnerClasses:
  public final Entry = org.jcodings.EncodingDB$Entry of org.jcodings.EncodingDB
  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
  public abstract SearchPathCallback = org.jcodings.transcode.TranscoderDB$SearchPathCallback of org.jcodings.transcode.TranscoderDB
  org.jruby.util.io.EncodingUtils$1
  org.jruby.util.io.EncodingUtils$2
  org.jruby.util.io.EncodingUtils$3
  org.jruby.util.io.EncodingUtils$4
  org.jruby.util.io.EncodingUtils$5
  org.jruby.util.io.EncodingUtils$6
  private abstract AbstractTranscodeFallback = org.jruby.util.io.EncodingUtils$AbstractTranscodeFallback of org.jruby.util.io.EncodingUtils
  public abstract ResizeFunction = org.jruby.util.io.EncodingUtils$ResizeFunction of org.jruby.util.io.EncodingUtils
  public abstract TranscodeFallback = org.jruby.util.io.EncodingUtils$TranscodeFallback of org.jruby.util.io.EncodingUtils