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

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

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

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

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

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

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

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

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

  public static final org.jruby.util.ByteList[] EMPTY_BYTELIST_ARRAY;
    descriptor: [Lorg/jruby/util/ByteList;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL

  public static final java.lang.String[] EMPTY_STRING_ARRAY;
    descriptor: [Ljava/lang/String;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL

  private static final long NONASCII_MASK;
    descriptor: J
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: -9187201950435737472

  private static final int LONG_SIZE;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 8

  private static final int LOWBITS;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 7

  private static final java.lang.Object DUMMY_VALUE;
    descriptor: Ljava/lang/Object;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  private static final int NULL_POINTER;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: -1

  private static final int CASE_MAPPING_ADDITIONAL_LENGTH;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 20

  static final boolean $assertionsDisabled;
    descriptor: Z
    flags: (0x1018) ACC_STATIC, ACC_FINAL, ACC_SYNTHETIC

  private static volatile int[] $SWITCH_TABLE$org$jruby$util$StringSupport$NeighborChar;
    descriptor: [I
    flags: (0x104a) ACC_PRIVATE, ACC_STATIC, ACC_VOLATILE, ACC_SYNTHETIC

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=5, locals=1, args_size=0
         0: .line 67
            ldc Lorg/jruby/util/StringSupport;
            invokevirtual java.lang.Class.desiredAssertionStatus:()Z
            ifne 1
            iconst_1
            goto 2
      StackMap locals:
      StackMap stack:
         1: iconst_0
      StackMap locals:
      StackMap stack: int
         2: putstatic org.jruby.util.StringSupport.$assertionsDisabled:Z
         3: .line 68
            getstatic org.jruby.ObjectFlags.CR_7BIT_F:I
            putstatic org.jruby.util.StringSupport.CR_7BIT_F:I
         4: .line 69
            getstatic org.jruby.ObjectFlags.CR_VALID_F:I
            putstatic org.jruby.util.StringSupport.CR_VALID_F:I
         5: .line 76
            getstatic org.jruby.util.StringSupport.$assertionsDisabled:Z
            ifne 6
            bipush 16
            getstatic org.jruby.util.StringSupport.CR_7BIT_F:I
            if_icmpeq 6
            new java.lang.AssertionError
            dup
            new java.lang.StringBuilder
            dup
            ldc "CR_7BIT = 16 but should be "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            getstatic org.jruby.util.StringSupport.CR_7BIT_F:I
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
            athrow
         6: .line 77
      StackMap locals:
      StackMap stack:
            getstatic org.jruby.util.StringSupport.$assertionsDisabled:Z
            ifne 7
            bipush 32
            getstatic org.jruby.util.StringSupport.CR_VALID_F:I
            if_icmpeq 7
            new java.lang.AssertionError
            dup
            new java.lang.StringBuilder
            dup
            ldc "CR_VALID = 32 but should be "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            getstatic org.jruby.util.StringSupport.CR_VALID_F:I
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
            athrow
         7: .line 85
      StackMap locals:
      StackMap stack:
            getstatic org.jruby.util.unsafe.UnsafeHolder.U:Lsun/misc/Unsafe;
            astore 0 /* unsafe */
        start local 0 // sun.misc.Unsafe unsafe
         8: .line 86
            aload 0 /* unsafe */
            ifnull 9
            aload 0 /* unsafe */
            ldc [B
            invokevirtual sun.misc.Unsafe.arrayBaseOffset:(Ljava/lang/Class;)I
            goto 10
      StackMap locals: sun.misc.Unsafe
      StackMap stack:
         9: iconst_0
      StackMap locals:
      StackMap stack: int
        10: putstatic org.jruby.util.StringSupport.ARRAY_BYTE_BASE_OFFSET:I
        end local 0 // sun.misc.Unsafe unsafe
        11: .line 91
            iconst_0
            anewarray org.jruby.util.ByteList
            putstatic org.jruby.util.StringSupport.EMPTY_BYTELIST_ARRAY:[Lorg/jruby/util/ByteList;
        12: .line 92
            iconst_0
            anewarray java.lang.String
            putstatic org.jruby.util.StringSupport.EMPTY_STRING_ARRAY:[Ljava/lang/String;
        13: .line 1224
            ldc ""
            putstatic org.jruby.util.StringSupport.DUMMY_VALUE:Ljava/lang/Object;
        14: .line 2645
            return
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            8   11     0  unsafe  Lsun/misc/Unsafe;

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

  public static java.util.List<java.lang.String> split(java.lang.String, char);
    descriptor: (Ljava/lang/String;C)Ljava/util/List;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // java.lang.String str
        start local 1 // char sep
         0: .line 105
            aload 0 /* str */
            iload 1 /* sep */
            iconst_0
            invokestatic org.jruby.util.StringSupport.split:(Ljava/lang/String;CI)Ljava/util/List;
            areturn
        end local 1 // char sep
        end local 0 // java.lang.String str
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0   str  Ljava/lang/String;
            0    1     1   sep  C
    Signature: (Ljava/lang/String;C)Ljava/util/List<Ljava/lang/String;>;
    MethodParameters:
      Name  Flags
      str   final
      sep   final

  public static java.util.List<java.lang.String> split(java.lang.String, char, int);
    descriptor: (Ljava/lang/String;CI)Ljava/util/List;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=8, args_size=3
        start local 0 // java.lang.String str
        start local 1 // char sep
        start local 2 // int lim
         0: .line 115
            aload 0 /* str */
            invokevirtual java.lang.String.length:()I
            istore 3 /* len */
        start local 3 // int len
         1: .line 116
            iload 3 /* len */
            ifne 2
            aload 0 /* str */
            invokestatic java.util.Collections.singletonList:(Ljava/lang/Object;)Ljava/util/List;
            areturn
         2: .line 118
      StackMap locals: int
      StackMap stack:
            new java.util.ArrayList
            dup
            iload 2 /* lim */
            ifgt 3
            bipush 8
            goto 4
      StackMap locals: java.lang.String int int int
      StackMap stack: new 2 new 2
         3: iload 2 /* lim */
      StackMap locals: java.lang.String int int int
      StackMap stack: new 2 new 2 int
         4: invokespecial java.util.ArrayList.<init>:(I)V
            astore 4 /* result */
        start local 4 // java.util.ArrayList result
         5: .line 120
            iconst_0
            istore 6 /* s */
        start local 6 // int s
         6: iconst_0
            istore 7 /* count */
        start local 7 // int count
         7: .line 121
            goto 13
        start local 5 // int e
         8: .line 122
      StackMap locals: java.lang.String int int int java.util.ArrayList int int int
      StackMap stack:
            iload 2 /* lim */
            iinc 7 /* count */ 1
            iload 7 /* count */
            if_icmpne 11
         9: .line 123
            aload 4 /* result */
            aload 0 /* str */
            iload 6 /* s */
            invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
            invokevirtual java.util.ArrayList.add:(Ljava/lang/Object;)Z
            pop
        10: .line 124
            aload 4 /* result */
            areturn
        11: .line 126
      StackMap locals:
      StackMap stack:
            aload 4 /* result */
            aload 0 /* str */
            iload 6 /* s */
            iload 5 /* e */
            invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
            invokevirtual java.util.ArrayList.add:(Ljava/lang/Object;)Z
            pop
        12: .line 127
            iload 5 /* e */
            iconst_1
            iadd
            istore 6 /* s */
        end local 5 // int e
        13: .line 121
      StackMap locals: java.lang.String int int int java.util.ArrayList top int int
      StackMap stack:
            aload 0 /* str */
            iload 1 /* sep */
            iload 6 /* s */
            invokevirtual java.lang.String.indexOf:(II)I
            dup
            istore 5 /* e */
        start local 5 // int e
        14: iconst_m1
            if_icmpne 8
        15: .line 129
            iload 6 /* s */
            iload 3 /* len */
            if_icmplt 16
            iload 6 /* s */
            iload 3 /* len */
            if_icmpne 17
            iload 2 /* lim */
            ifle 17
      StackMap locals: java.lang.String int int int java.util.ArrayList int int int
      StackMap stack:
        16: aload 4 /* result */
            aload 0 /* str */
            iload 6 /* s */
            invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
            invokevirtual java.util.ArrayList.add:(Ljava/lang/Object;)Z
            pop
        17: .line 131
      StackMap locals:
      StackMap stack:
            aload 4 /* result */
            areturn
        end local 7 // int count
        end local 6 // int s
        end local 5 // int e
        end local 4 // java.util.ArrayList result
        end local 3 // int len
        end local 2 // int lim
        end local 1 // char sep
        end local 0 // java.lang.String str
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   18     0     str  Ljava/lang/String;
            0   18     1     sep  C
            0   18     2     lim  I
            1   18     3     len  I
            5   18     4  result  Ljava/util/ArrayList<Ljava/lang/String;>;
            8   13     5       e  I
           14   18     5       e  I
            6   18     6       s  I
            7   18     7   count  I
    Signature: (Ljava/lang/String;CI)Ljava/util/List<Ljava/lang/String;>;
    MethodParameters:
      Name  Flags
      str   final
      sep   final
      lim   final

  public static boolean startsWith(java.lang.CharSequence, java.lang.String);
    descriptor: (Ljava/lang/CharSequence;Ljava/lang/String;)Z
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=4, args_size=2
        start local 0 // java.lang.CharSequence str
        start local 1 // java.lang.String prefix
         0: .line 136
            aload 1 /* prefix */
            invokevirtual java.lang.String.length:()I
            istore 2 /* p */
        start local 2 // int p
         1: .line 137
            iload 2 /* p */
            aload 0 /* str */
            invokeinterface java.lang.CharSequence.length:()I
            if_icmple 2
            iconst_0
            ireturn
         2: .line 138
      StackMap locals: int
      StackMap stack:
            iconst_0
            istore 3 /* i */
        start local 3 // int i
         3: .line 139
            goto 6
         4: .line 140
      StackMap locals: int
      StackMap stack:
            aload 0 /* str */
            iload 3 /* i */
            invokeinterface java.lang.CharSequence.charAt:(I)C
            aload 1 /* prefix */
            iload 3 /* i */
            invokevirtual java.lang.String.charAt:(I)C
            if_icmpeq 5
            iconst_0
            ireturn
         5: .line 141
      StackMap locals:
      StackMap stack:
            iinc 3 /* i */ 1
         6: .line 139
      StackMap locals:
      StackMap stack:
            iinc 2 /* p */ -1
            iload 2 /* p */
            ifge 4
         7: .line 143
            iconst_1
            ireturn
        end local 3 // int i
        end local 2 // int p
        end local 1 // java.lang.String prefix
        end local 0 // java.lang.CharSequence str
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    8     0     str  Ljava/lang/CharSequence;
            0    8     1  prefix  Ljava/lang/String;
            1    8     2       p  I
            3    8     3       i  I
    MethodParameters:
        Name  Flags
      str     final
      prefix  final

  public static boolean startsWith(java.lang.CharSequence, char);
    descriptor: (Ljava/lang/CharSequence;C)Z
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // java.lang.CharSequence str
        start local 1 // char c
         0: .line 147
            aload 0 /* str */
            invokeinterface java.lang.CharSequence.length:()I
            iconst_1
            if_icmplt 1
            aload 0 /* str */
            iconst_0
            invokeinterface java.lang.CharSequence.charAt:(I)C
            iload 1 /* c */
            if_icmpne 1
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         1: iconst_0
            ireturn
        end local 1 // char c
        end local 0 // java.lang.CharSequence str
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0   str  Ljava/lang/CharSequence;
            0    2     1     c  C
    MethodParameters:
      Name  Flags
      str   final
      c     final

  public static boolean startsWith(java.lang.CharSequence, char, char);
    descriptor: (Ljava/lang/CharSequence;CC)Z
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=3, args_size=3
        start local 0 // java.lang.CharSequence str
        start local 1 // char c1
        start local 2 // char c2
         0: .line 151
            aload 0 /* str */
            invokeinterface java.lang.CharSequence.length:()I
            iconst_2
            if_icmplt 1
            aload 0 /* str */
            iconst_0
            invokeinterface java.lang.CharSequence.charAt:(I)C
            iload 1 /* c1 */
            if_icmpne 1
            aload 0 /* str */
            iconst_1
            invokeinterface java.lang.CharSequence.charAt:(I)C
            iload 2 /* c2 */
            if_icmpne 1
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         1: iconst_0
            ireturn
        end local 2 // char c2
        end local 1 // char c1
        end local 0 // java.lang.CharSequence str
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0   str  Ljava/lang/CharSequence;
            0    2     1    c1  C
            0    2     2    c2  C
    MethodParameters:
      Name  Flags
      str   final
      c1    final
      c2    final

  public static int lastIndexOf(java.lang.CharSequence, char, int);
    descriptor: (Ljava/lang/CharSequence;CI)I
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=3, args_size=3
        start local 0 // java.lang.CharSequence str
        start local 1 // char c
        start local 2 // int index
         0: .line 156
            goto 3
         1: .line 157
      StackMap locals:
      StackMap stack:
            aload 0 /* str */
            iload 2 /* index */
            invokeinterface java.lang.CharSequence.charAt:(I)C
            iload 1 /* c */
            if_icmpne 2
            iload 2 /* index */
            ireturn
         2: .line 158
      StackMap locals:
      StackMap stack:
            iinc 2 /* index */ -1
         3: .line 156
      StackMap locals:
      StackMap stack:
            iload 2 /* index */
            ifge 1
         4: .line 160
            iconst_m1
            ireturn
        end local 2 // int index
        end local 1 // char c
        end local 0 // java.lang.CharSequence str
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    5     0    str  Ljava/lang/CharSequence;
            0    5     1      c  C
            0    5     2  index  I
    MethodParameters:
       Name  Flags
      str    final
      c      final
      index  

  public static boolean contentEquals(java.lang.CharSequence, int);
    descriptor: (Ljava/lang/CharSequence;I)Z
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // java.lang.CharSequence str
        start local 1 // int chr
         0: .line 164
            aload 0 /* str */
            invokeinterface java.lang.CharSequence.length:()I
            iconst_1
            if_icmpne 1
            aload 0 /* str */
            iconst_0
            invokeinterface java.lang.CharSequence.charAt:(I)C
            iload 1 /* chr */
            if_icmpne 1
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         1: iconst_0
            ireturn
        end local 1 // int chr
        end local 0 // java.lang.CharSequence str
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0   str  Ljava/lang/CharSequence;
            0    2     1   chr  I
    MethodParameters:
      Name  Flags
      str   final
      chr   final

  public static boolean contentEquals(java.lang.CharSequence, int, int);
    descriptor: (Ljava/lang/CharSequence;II)Z
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=3, args_size=3
        start local 0 // java.lang.CharSequence str
        start local 1 // int chr1
        start local 2 // int chr2
         0: .line 168
            aload 0 /* str */
            invokeinterface java.lang.CharSequence.length:()I
            iconst_2
            if_icmpne 1
            aload 0 /* str */
            iconst_0
            invokeinterface java.lang.CharSequence.charAt:(I)C
            iload 1 /* chr1 */
            if_icmpne 1
            aload 0 /* str */
            iconst_1
            invokeinterface java.lang.CharSequence.charAt:(I)C
            iload 2 /* chr2 */
            if_icmpne 1
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         1: iconst_0
            ireturn
        end local 2 // int chr2
        end local 1 // int chr1
        end local 0 // java.lang.CharSequence str
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0   str  Ljava/lang/CharSequence;
            0    2     1  chr1  I
            0    2     2  chr2  I
    MethodParameters:
      Name  Flags
      str   final
      chr1  final
      chr2  final

  public static java.lang.CharSequence concat(java.lang.CharSequence, java.lang.CharSequence);
    descriptor: (Ljava/lang/CharSequence;Ljava/lang/CharSequence;)Ljava/lang/CharSequence;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // java.lang.CharSequence str1
        start local 1 // java.lang.CharSequence str2
         0: .line 172
            new java.lang.StringBuilder
            dup
            aload 0 /* str1 */
            invokeinterface java.lang.CharSequence.length:()I
            aload 1 /* str2 */
            invokeinterface java.lang.CharSequence.length:()I
            iadd
            invokespecial java.lang.StringBuilder.<init>:(I)V
            aload 0 /* str1 */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/CharSequence;)Ljava/lang/StringBuilder;
            aload 1 /* str2 */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/CharSequence;)Ljava/lang/StringBuilder;
            areturn
        end local 1 // java.lang.CharSequence str2
        end local 0 // java.lang.CharSequence str1
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  str1  Ljava/lang/CharSequence;
            0    1     1  str2  Ljava/lang/CharSequence;
    MethodParameters:
      Name  Flags
      str1  final
      str2  final

  public static java.lang.String concat(java.lang.String, java.lang.String);
    descriptor: (Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // java.lang.String str1
        start local 1 // java.lang.String str2
         0: .line 176
            new java.lang.StringBuilder
            dup
            aload 0 /* str1 */
            invokevirtual java.lang.String.length:()I
            aload 1 /* str2 */
            invokevirtual java.lang.String.length:()I
            iadd
            invokespecial java.lang.StringBuilder.<init>:(I)V
            aload 0 /* str1 */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 1 /* str2 */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            areturn
        end local 1 // java.lang.String str2
        end local 0 // java.lang.String str1
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  str1  Ljava/lang/String;
            0    1     1  str2  Ljava/lang/String;
    MethodParameters:
      Name  Flags
      str1  final
      str2  final

  public static java.lang.String delete(java.lang.String, char);
    descriptor: (Ljava/lang/String;C)Ljava/lang/String;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=5, locals=6, args_size=2
        start local 0 // java.lang.String str
        start local 1 // char c
         0: .line 180
            aconst_null
            astore 2 /* ary */
        start local 2 // char[] ary
         1: iconst_0
            istore 3 /* end */
        start local 3 // int end
         2: iconst_0
            istore 4 /* s */
        start local 4 // int s
         3: .line 181
            iconst_0
            istore 5 /* i */
        start local 5 // int i
         4: goto 11
         5: .line 182
      StackMap locals: java.lang.String int char[] int int int
      StackMap stack:
            aload 0 /* str */
            iload 5 /* i */
            invokevirtual java.lang.String.charAt:(I)C
            iload 1 /* c */
            if_icmpne 10
         6: .line 183
            aload 2 /* ary */
            ifnonnull 8
         7: .line 184
            aload 0 /* str */
            invokevirtual java.lang.String.length:()I
            iconst_1
            isub
            newarray 5
            astore 2 /* ary */
         8: .line 186
      StackMap locals:
      StackMap stack:
            aload 0 /* str */
            iload 4 /* s */
            iload 5 /* i */
            iload 4 /* s */
            isub
            aload 2 /* ary */
            iload 3 /* end */
            invokestatic org.jruby.util.StringSupport.copy:(Ljava/lang/String;II[CI)I
            istore 3 /* end */
         9: .line 187
            iload 5 /* i */
            iconst_1
            iadd
            istore 4 /* s */
        10: .line 181
      StackMap locals:
      StackMap stack:
            iinc 5 /* i */ 1
      StackMap locals:
      StackMap stack:
        11: iload 5 /* i */
            aload 0 /* str */
            invokevirtual java.lang.String.length:()I
            if_icmplt 5
        end local 5 // int i
        12: .line 190
            aload 2 /* ary */
            ifnonnull 13
            aload 0 /* str */
            goto 14
      StackMap locals:
      StackMap stack:
        13: new java.lang.String
            dup
            aload 2 /* ary */
            iconst_0
            iload 3 /* end */
            invokespecial java.lang.String.<init>:([CII)V
      StackMap locals:
      StackMap stack: java.lang.String
        14: areturn
        end local 4 // int s
        end local 3 // int end
        end local 2 // char[] ary
        end local 1 // char c
        end local 0 // java.lang.String str
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   15     0   str  Ljava/lang/String;
            0   15     1     c  C
            1   15     2   ary  [C
            2   15     3   end  I
            3   15     4     s  I
            4   12     5     i  I
    MethodParameters:
      Name  Flags
      str   final
      c     final

  public static java.lang.CharSequence replaceFirst(java.lang.String, java.lang.String, java.lang.String);
    descriptor: (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ljava/lang/CharSequence;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=5, locals=3, args_size=3
        start local 0 // java.lang.String str
        start local 1 // java.lang.String sub
        start local 2 // java.lang.String repl
         0: .line 194
            aload 0 /* str */
            aload 1 /* sub */
            aload 2 /* repl */
            iconst_1
            iconst_0
            invokestatic org.jruby.util.StringSupport.replaceImpl:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;IZ)Ljava/lang/CharSequence;
            areturn
        end local 2 // java.lang.String repl
        end local 1 // java.lang.String sub
        end local 0 // java.lang.String str
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0   str  Ljava/lang/String;
            0    1     1   sub  Ljava/lang/String;
            0    1     2  repl  Ljava/lang/String;
    MethodParameters:
      Name  Flags
      str   final
      sub   final
      repl  final

  public static java.lang.CharSequence replaceAll(java.lang.String, java.lang.String, java.lang.String);
    descriptor: (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ljava/lang/CharSequence;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=5, locals=3, args_size=3
        start local 0 // java.lang.String str
        start local 1 // java.lang.String sub
        start local 2 // java.lang.String repl
         0: .line 198
            aload 0 /* str */
            aload 1 /* sub */
            aload 2 /* repl */
            iconst_m1
            iconst_0
            invokestatic org.jruby.util.StringSupport.replaceImpl:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;IZ)Ljava/lang/CharSequence;
            areturn
        end local 2 // java.lang.String repl
        end local 1 // java.lang.String sub
        end local 0 // java.lang.String str
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0   str  Ljava/lang/String;
            0    1     1   sub  Ljava/lang/String;
            0    1     2  repl  Ljava/lang/String;
    MethodParameters:
      Name  Flags
      str   final
      sub   final
      repl  final

  private static java.lang.CharSequence replaceImpl(java.lang.String, java.lang.String, java.lang.String, int, boolean);
    descriptor: (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;IZ)Ljava/lang/CharSequence;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=4, locals=11, args_size=5
        start local 0 // java.lang.String str
        start local 1 // java.lang.String sub
        start local 2 // java.lang.String repl
        start local 3 // int max
        start local 4 // boolean ignoreCase
         0: .line 203
            aload 0 /* str */
            invokevirtual java.lang.String.length:()I
            ifeq 1
            aload 1 /* sub */
            invokevirtual java.lang.String.length:()I
            ifne 2
      StackMap locals:
      StackMap stack:
         1: aload 0 /* str */
            areturn
         2: .line 205
      StackMap locals:
      StackMap stack:
            aload 0 /* str */
            astore 5 /* search */
        start local 5 // java.lang.String search
         3: .line 206
            iload 4 /* ignoreCase */
            ifeq 6
         4: .line 207
            aload 0 /* str */
            invokevirtual java.lang.String.toLowerCase:()Ljava/lang/String;
            astore 5 /* search */
         5: .line 208
            aload 1 /* sub */
            invokevirtual java.lang.String.toLowerCase:()Ljava/lang/String;
            astore 1 /* sub */
         6: .line 210
      StackMap locals: java.lang.String
      StackMap stack:
            iconst_0
            istore 6 /* start */
        start local 6 // int start
         7: .line 211
            aload 5 /* search */
            aload 1 /* sub */
            iload 6 /* start */
            invokevirtual java.lang.String.indexOf:(Ljava/lang/String;I)I
            istore 7 /* end */
        start local 7 // int end
         8: .line 212
            iload 7 /* end */
            iconst_m1
            if_icmpne 9
            aload 0 /* str */
            areturn
         9: .line 214
      StackMap locals: int int
      StackMap stack:
            aload 1 /* sub */
            invokevirtual java.lang.String.length:()I
            istore 8 /* replLength */
        start local 8 // int replLength
        10: .line 215
            aload 2 /* repl */
            invokevirtual java.lang.String.length:()I
            iload 8 /* replLength */
            isub
            istore 9 /* increase */
        start local 9 // int increase
        11: .line 216
            iload 9 /* increase */
            ifge 12
            iconst_0
            goto 13
      StackMap locals: int int
      StackMap stack:
        12: iload 9 /* increase */
      StackMap locals:
      StackMap stack: int
        13: istore 9 /* increase */
        14: .line 217
            iload 9 /* increase */
            iload 3 /* max */
            ifge 15
            bipush 16
            goto 17
      StackMap locals:
      StackMap stack: int
        15: iload 3 /* max */
            bipush 64
            if_icmple 16
            bipush 64
            goto 17
      StackMap locals:
      StackMap stack: int
        16: iload 3 /* max */
      StackMap locals: java.lang.String java.lang.String java.lang.String int int java.lang.String int int int int
      StackMap stack: int int
        17: imul
            istore 9 /* increase */
        18: .line 218
            new java.lang.StringBuilder
            dup
            aload 0 /* str */
            invokevirtual java.lang.String.length:()I
            iload 9 /* increase */
            iadd
            invokespecial java.lang.StringBuilder.<init>:(I)V
            astore 10 /* buf */
        start local 10 // java.lang.StringBuilder buf
        19: .line 219
            goto 24
        20: .line 220
      StackMap locals: java.lang.StringBuilder
      StackMap stack:
            aload 10 /* buf */
            aload 0 /* str */
            iload 6 /* start */
            iload 7 /* end */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/CharSequence;II)Ljava/lang/StringBuilder;
            aload 2 /* repl */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        21: .line 221
            iload 7 /* end */
            iload 8 /* replLength */
            iadd
            istore 6 /* start */
        22: .line 222
            iinc 3 /* max */ -1
            iload 3 /* max */
            ifne 23
            goto 25
        23: .line 223
      StackMap locals:
      StackMap stack:
            aload 5 /* search */
            aload 1 /* sub */
            iload 6 /* start */
            invokevirtual java.lang.String.indexOf:(Ljava/lang/String;I)I
            istore 7 /* end */
        24: .line 219
      StackMap locals:
      StackMap stack:
            iload 7 /* end */
            iconst_m1
            if_icmpne 20
        25: .line 225
      StackMap locals:
      StackMap stack:
            aload 10 /* buf */
            aload 0 /* str */
            iload 6 /* start */
            aload 0 /* str */
            invokevirtual java.lang.String.length:()I
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/CharSequence;II)Ljava/lang/StringBuilder;
            pop
        26: .line 226
            aload 10 /* buf */
            areturn
        end local 10 // java.lang.StringBuilder buf
        end local 9 // int increase
        end local 8 // int replLength
        end local 7 // int end
        end local 6 // int start
        end local 5 // java.lang.String search
        end local 4 // boolean ignoreCase
        end local 3 // int max
        end local 2 // java.lang.String repl
        end local 1 // java.lang.String sub
        end local 0 // java.lang.String str
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   27     0         str  Ljava/lang/String;
            0   27     1         sub  Ljava/lang/String;
            0   27     2        repl  Ljava/lang/String;
            0   27     3         max  I
            0   27     4  ignoreCase  Z
            3   27     5      search  Ljava/lang/String;
            7   27     6       start  I
            8   27     7         end  I
           10   27     8  replLength  I
           11   27     9    increase  I
           19   27    10         buf  Ljava/lang/StringBuilder;
    MethodParameters:
            Name  Flags
      str         final
      sub         
      repl        final
      max         
      ignoreCase  final

  private static int copy(java.lang.String, int, int, char[], int);
    descriptor: (Ljava/lang/String;II[CI)I
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=5, locals=6, args_size=5
        start local 0 // java.lang.String str
        start local 1 // int soff
        start local 2 // int slen
        start local 3 // char[] dest
        start local 4 // int doff
         0: .line 230
            iload 2 /* slen */
            tableswitch { // 0 - 3
                    0: 1
                    1: 2
                    2: 4
                    3: 7
              default: 11
          }
         1: .line 232
      StackMap locals:
      StackMap stack:
            goto 15
         2: .line 234
      StackMap locals:
      StackMap stack:
            aload 3 /* dest */
            iload 4 /* doff */
            iinc 4 /* doff */ 1
            aload 0 /* str */
            iload 1 /* soff */
            invokevirtual java.lang.String.charAt:(I)C
            castore
         3: .line 235
            goto 15
         4: .line 237
      StackMap locals:
      StackMap stack:
            aload 3 /* dest */
            iload 4 /* doff */
            iinc 4 /* doff */ 1
            aload 0 /* str */
            iload 1 /* soff */
            invokevirtual java.lang.String.charAt:(I)C
            castore
         5: .line 238
            aload 3 /* dest */
            iload 4 /* doff */
            iinc 4 /* doff */ 1
            aload 0 /* str */
            iload 1 /* soff */
            iconst_1
            iadd
            invokevirtual java.lang.String.charAt:(I)C
            castore
         6: .line 239
            goto 15
         7: .line 241
      StackMap locals:
      StackMap stack:
            aload 3 /* dest */
            iload 4 /* doff */
            iinc 4 /* doff */ 1
            aload 0 /* str */
            iload 1 /* soff */
            invokevirtual java.lang.String.charAt:(I)C
            castore
         8: .line 242
            aload 3 /* dest */
            iload 4 /* doff */
            iinc 4 /* doff */ 1
            aload 0 /* str */
            iload 1 /* soff */
            iconst_1
            iadd
            invokevirtual java.lang.String.charAt:(I)C
            castore
         9: .line 243
            aload 3 /* dest */
            iload 4 /* doff */
            iinc 4 /* doff */ 1
            aload 0 /* str */
            iload 1 /* soff */
            iconst_2
            iadd
            invokevirtual java.lang.String.charAt:(I)C
            castore
        10: .line 244
            goto 15
        11: .line 246
      StackMap locals:
      StackMap stack:
            iload 1 /* soff */
            istore 5 /* s */
        start local 5 // int s
        12: goto 14
      StackMap locals: int
      StackMap stack:
        13: aload 3 /* dest */
            iload 4 /* doff */
            iinc 4 /* doff */ 1
            aload 0 /* str */
            iload 5 /* s */
            invokevirtual java.lang.String.charAt:(I)C
            castore
            iinc 5 /* s */ 1
      StackMap locals:
      StackMap stack:
        14: iload 5 /* s */
            iload 2 /* slen */
            if_icmplt 13
        end local 5 // int s
        15: .line 248
      StackMap locals:
      StackMap stack:
            iload 4 /* doff */
            ireturn
        end local 4 // int doff
        end local 3 // char[] dest
        end local 2 // int slen
        end local 1 // int soff
        end local 0 // java.lang.String str
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   16     0   str  Ljava/lang/String;
            0   16     1  soff  I
            0   16     2  slen  I
            0   16     3  dest  [C
            0   16     4  doff  I
           12   15     5     s  I
    MethodParameters:
      Name  Flags
      str   final
      soff  final
      slen  final
      dest  final
      doff  

  public static java.lang.String codeRangeAsString(int);
    descriptor: (I)Ljava/lang/String;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // int codeRange
         0: .line 252
            iload 0 /* codeRange */
            lookupswitch { // 4
                    0: 1
                   16: 2
                   32: 3
                   48: 4
              default: 5
          }
         1: .line 253
      StackMap locals:
      StackMap stack:
            ldc "unknown"
            areturn
         2: .line 254
      StackMap locals:
      StackMap stack:
            ldc "7bit"
            areturn
         3: .line 255
      StackMap locals:
      StackMap stack:
            ldc "valid"
            areturn
         4: .line 256
      StackMap locals:
      StackMap stack:
            ldc "broken"
            areturn
         5: .line 259
      StackMap locals:
      StackMap stack:
            ldc "???"
            areturn
        end local 0 // int codeRange
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    6     0  codeRange  I
    MethodParameters:
           Name  Flags
      codeRange  

  public static int encFastMBCLen(byte[], int, int, org.jcodings.Encoding);
    descriptor: ([BIILorg/jcodings/Encoding;)I
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=4, args_size=4
        start local 0 // byte[] bytes
        start local 1 // int p
        start local 2 // int e
        start local 3 // org.jcodings.Encoding enc
         0: .line 264
            aload 3 /* enc */
            aload 0 /* bytes */
            iload 1 /* p */
            iload 2 /* e */
            invokevirtual org.jcodings.Encoding.length:([BII)I
            ireturn
        end local 3 // org.jcodings.Encoding enc
        end local 2 // int e
        end local 1 // int p
        end local 0 // byte[] bytes
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    1     0  bytes  [B
            0    1     1      p  I
            0    1     2      e  I
            0    1     3    enc  Lorg/jcodings/Encoding;
    MethodParameters:
       Name  Flags
      bytes  
      p      
      e      
      enc    

  public static int length(org.jcodings.Encoding, byte[], int, int);
    descriptor: (Lorg/jcodings/Encoding;[BII)I
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=6, 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 269
            aload 0 /* enc */
            aload 1 /* bytes */
            iload 2 /* p */
            iload 3 /* end */
            invokevirtual org.jcodings.Encoding.length:([BII)I
            istore 4 /* n */
        start local 4 // int n
         1: .line 270
            iload 4 /* n */
            invokestatic org.jruby.util.StringSupport.MBCLEN_CHARFOUND_P:(I)Z
            ifeq 2
            iload 4 /* n */
            invokestatic org.jruby.util.StringSupport.MBCLEN_CHARFOUND_LEN:(I)I
            iload 3 /* end */
            iload 2 /* p */
            isub
            if_icmpgt 2
            iload 4 /* n */
            invokestatic org.jruby.util.StringSupport.MBCLEN_CHARFOUND_LEN:(I)I
            ireturn
         2: .line 271
      StackMap locals: int
      StackMap stack:
            aload 0 /* enc */
            invokevirtual org.jcodings.Encoding.minLength:()I
            istore 5 /* min */
        start local 5 // int min
         3: .line 272
            iload 5 /* min */
            iload 3 /* end */
            iload 2 /* p */
            isub
            if_icmpgt 4
            iload 5 /* min */
            goto 5
      StackMap locals: int
      StackMap stack:
         4: iload 3 /* end */
            iload 2 /* p */
            isub
      StackMap locals:
      StackMap stack: int
         5: ireturn
        end local 5 // int min
        end local 4 // int n
        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    6     0    enc  Lorg/jcodings/Encoding;
            0    6     1  bytes  [B
            0    6     2      p  I
            0    6     3    end  I
            1    6     4      n  I
            3    6     5    min  I
    MethodParameters:
       Name  Flags
      enc    
      bytes  
      p      
      end    

  public static int preciseLength(org.jcodings.Encoding, byte[], int, int);
    descriptor: (Lorg/jcodings/Encoding;[BII)I
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=5, 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 277
            iload 2 /* p */
            iload 3 /* end */
            if_icmplt 1
            iconst_1
            invokestatic org.jruby.util.StringSupport.MBCLEN_NEEDMORE:(I)I
            ireturn
         1: .line 278
      StackMap locals:
      StackMap stack:
            aload 0 /* enc */
            aload 1 /* bytes */
            iload 2 /* p */
            iload 3 /* end */
            invokevirtual org.jcodings.Encoding.length:([BII)I
            istore 4 /* n */
        start local 4 // int n
         2: .line 279
            iload 4 /* n */
            iload 3 /* end */
            iload 2 /* p */
            isub
            if_icmple 3
            iload 4 /* n */
            iload 3 /* end */
            iload 2 /* p */
            isub
            isub
            invokestatic org.jruby.util.StringSupport.MBCLEN_NEEDMORE:(I)I
            ireturn
         3: .line 280
      StackMap locals: int
      StackMap stack:
            iload 4 /* n */
            ireturn
        end local 4 // int n
        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    4     0    enc  Lorg/jcodings/Encoding;
            0    4     1  bytes  [B
            0    4     2      p  I
            0    4     3    end  I
            2    4     4      n  I
    MethodParameters:
       Name  Flags
      enc    
      bytes  
      p      
      end    

  public static boolean MBCLEN_NEEDMORE_P(int);
    descriptor: (I)Z
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // int r
         0: .line 285
            iload 0 /* r */
            iconst_m1
            if_icmpge 1
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         1: iconst_0
            ireturn
        end local 0 // int r
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0     r  I
    MethodParameters:
      Name  Flags
      r     

  public static int MBCLEN_NEEDMORE(int);
    descriptor: (I)I
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // int n
         0: .line 290
            iconst_m1
            iload 0 /* n */
            isub
            ireturn
        end local 0 // int n
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0     n  I
    MethodParameters:
      Name  Flags
      n     

  public static int MBCLEN_NEEDMORE_LEN(int);
    descriptor: (I)I
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // int r
         0: .line 295
            iconst_m1
            iload 0 /* r */
            isub
            ireturn
        end local 0 // int r
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0     r  I
    MethodParameters:
      Name  Flags
      r     

  public static boolean MBCLEN_INVALID_P(int);
    descriptor: (I)Z
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // int r
         0: .line 300
            iload 0 /* r */
            iconst_m1
            if_icmpne 1
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         1: iconst_0
            ireturn
        end local 0 // int r
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0     r  I
    MethodParameters:
      Name  Flags
      r     

  public static int MBCLEN_CHARFOUND_LEN(int);
    descriptor: (I)I
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // int r
         0: .line 305
            iload 0 /* r */
            ireturn
        end local 0 // int r
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0     r  I
    MethodParameters:
      Name  Flags
      r     

  public static boolean MBCLEN_CHARFOUND_P(int);
    descriptor: (I)Z
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // int r
         0: .line 310
            iload 0 /* r */
            ifle 1
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         1: iconst_0
            ireturn
        end local 0 // int r
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0     r  I
    MethodParameters:
      Name  Flags
      r     

  public static int CONSTRUCT_MBCLEN_CHARFOUND(int);
    descriptor: (I)I
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // int n
         0: .line 315
            iload 0 /* n */
            ireturn
        end local 0 // int n
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0     n  I
    MethodParameters:
      Name  Flags
      n     

  public static int searchNonAscii(byte[], int, int);
    descriptor: ([BII)I
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=3, args_size=3
        start local 0 // byte[] bytes
        start local 1 // int p
        start local 2 // int end
         0: .line 320
            goto 3
         1: .line 321
      StackMap locals:
      StackMap stack:
            aload 0 /* bytes */
            iload 1 /* p */
            baload
            invokestatic org.jcodings.Encoding.isAscii:(B)Z
            ifne 2
            iload 1 /* p */
            ireturn
         2: .line 322
      StackMap locals:
      StackMap stack:
            iinc 1 /* p */ 1
         3: .line 320
      StackMap locals:
      StackMap stack:
            iload 1 /* p */
            iload 2 /* end */
            if_icmplt 1
         4: .line 324
            iconst_m1
            ireturn
        end local 2 // int end
        end local 1 // int p
        end local 0 // byte[] bytes
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    5     0  bytes  [B
            0    5     1      p  I
            0    5     2    end  I
    MethodParameters:
       Name  Flags
      bytes  
      p      
      end    

  public static int searchNonAscii(org.jruby.util.ByteList);
    descriptor: (Lorg/jruby/util/ByteList;)I
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=1, args_size=1
        start local 0 // org.jruby.util.ByteList bytes
         0: .line 328
            aload 0 /* bytes */
            invokevirtual org.jruby.util.ByteList.getUnsafeBytes:()[B
            aload 0 /* bytes */
            invokevirtual org.jruby.util.ByteList.getBegin:()I
            aload 0 /* bytes */
            invokevirtual org.jruby.util.ByteList.getBegin:()I
            aload 0 /* bytes */
            invokevirtual org.jruby.util.ByteList.getRealSize:()I
            iadd
            invokestatic org.jruby.util.StringSupport.searchNonAscii:([BII)I
            ireturn
        end local 0 // org.jruby.util.ByteList bytes
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    1     0  bytes  Lorg/jruby/util/ByteList;
    MethodParameters:
       Name  Flags
      bytes  

  public static int codeRangeScan(org.jcodings.Encoding, byte[], int, int);
    descriptor: (Lorg/jcodings/Encoding;[BII)I
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=4, args_size=4
        start local 0 // org.jcodings.Encoding enc
        start local 1 // byte[] bytes
        start local 2 // int p
        start local 3 // int len
         0: .line 332
            aload 0 /* enc */
            getstatic org.jcodings.specific.ASCIIEncoding.INSTANCE:Lorg/jcodings/specific/ASCIIEncoding;
            if_acmpne 4
         1: .line 333
            aload 1 /* bytes */
            iload 2 /* p */
            iload 2 /* p */
            iload 3 /* len */
            iadd
            invokestatic org.jruby.util.StringSupport.searchNonAscii:([BII)I
            iconst_m1
            if_icmpeq 2
            bipush 32
            goto 3
      StackMap locals:
      StackMap stack:
         2: bipush 16
      StackMap locals:
      StackMap stack: int
         3: ireturn
         4: .line 335
      StackMap locals:
      StackMap stack:
            aload 0 /* enc */
            invokevirtual org.jcodings.Encoding.isAsciiCompatible:()Z
            ifeq 6
         5: .line 336
            aload 0 /* enc */
            aload 1 /* bytes */
            iload 2 /* p */
            iload 3 /* len */
            invokestatic org.jruby.util.StringSupport.codeRangeScanAsciiCompatible:(Lorg/jcodings/Encoding;[BII)I
            ireturn
         6: .line 338
      StackMap locals:
      StackMap stack:
            aload 0 /* enc */
            aload 1 /* bytes */
            iload 2 /* p */
            iload 3 /* len */
            invokestatic org.jruby.util.StringSupport.codeRangeScanNonAsciiCompatible:(Lorg/jcodings/Encoding;[BII)I
            ireturn
        end local 3 // int len
        end local 2 // int p
        end local 1 // byte[] bytes
        end local 0 // org.jcodings.Encoding enc
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    7     0    enc  Lorg/jcodings/Encoding;
            0    7     1  bytes  [B
            0    7     2      p  I
            0    7     3    len  I
    MethodParameters:
       Name  Flags
      enc    
      bytes  
      p      
      len    

  private static int codeRangeScanAsciiCompatible(org.jcodings.Encoding, byte[], int, int);
    descriptor: (Lorg/jcodings/Encoding;[BII)I
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=4, locals=6, args_size=4
        start local 0 // org.jcodings.Encoding enc
        start local 1 // byte[] bytes
        start local 2 // int p
        start local 3 // int len
         0: .line 342
            iload 2 /* p */
            iload 3 /* len */
            iadd
            istore 4 /* end */
        start local 4 // int end
         1: .line 343
            aload 1 /* bytes */
            iload 2 /* p */
            iload 4 /* end */
            invokestatic org.jruby.util.StringSupport.searchNonAscii:([BII)I
            istore 2 /* p */
         2: .line 344
            iload 2 /* p */
            iconst_m1
            if_icmpne 9
            bipush 16
            ireturn
         3: .line 347
      StackMap locals: int
      StackMap stack:
            aload 0 /* enc */
            aload 1 /* bytes */
            iload 2 /* p */
            iload 4 /* end */
            invokestatic org.jruby.util.StringSupport.preciseLength:(Lorg/jcodings/Encoding;[BII)I
            istore 5 /* cl */
        start local 5 // int cl
         4: .line 348
            iload 5 /* cl */
            ifgt 5
            bipush 48
            ireturn
         5: .line 349
      StackMap locals: int
      StackMap stack:
            iload 2 /* p */
            iload 5 /* cl */
            iadd
            istore 2 /* p */
         6: .line 350
            iload 2 /* p */
            iload 4 /* end */
            if_icmpge 9
         7: .line 351
            aload 1 /* bytes */
            iload 2 /* p */
            iload 4 /* end */
            invokestatic org.jruby.util.StringSupport.searchNonAscii:([BII)I
            istore 2 /* p */
         8: .line 352
            iload 2 /* p */
            iconst_m1
            if_icmpne 9
            bipush 32
            ireturn
        end local 5 // int cl
         9: .line 346
      StackMap locals:
      StackMap stack:
            iload 2 /* p */
            iload 4 /* end */
            if_icmplt 3
        10: .line 355
            iload 2 /* p */
            iload 4 /* end */
            if_icmple 11
            bipush 48
            goto 12
      StackMap locals:
      StackMap stack:
        11: bipush 32
      StackMap locals:
      StackMap stack: int
        12: ireturn
        end local 4 // int end
        end local 3 // int len
        end local 2 // int p
        end local 1 // byte[] bytes
        end local 0 // org.jcodings.Encoding enc
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0   13     0    enc  Lorg/jcodings/Encoding;
            0   13     1  bytes  [B
            0   13     2      p  I
            0   13     3    len  I
            1   13     4    end  I
            4    9     5     cl  I
    MethodParameters:
       Name  Flags
      enc    
      bytes  
      p      
      len    

  private static int codeRangeScanNonAsciiCompatible(org.jcodings.Encoding, byte[], int, int);
    descriptor: (Lorg/jcodings/Encoding;[BII)I
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=4, locals=6, args_size=4
        start local 0 // org.jcodings.Encoding enc
        start local 1 // byte[] bytes
        start local 2 // int p
        start local 3 // int len
         0: .line 359
            iload 2 /* p */
            iload 3 /* len */
            iadd
            istore 4 /* end */
        start local 4 // int end
         1: .line 360
            goto 5
         2: .line 361
      StackMap locals: int
      StackMap stack:
            aload 0 /* enc */
            aload 1 /* bytes */
            iload 2 /* p */
            iload 4 /* end */
            invokestatic org.jruby.util.StringSupport.preciseLength:(Lorg/jcodings/Encoding;[BII)I
            istore 5 /* cl */
        start local 5 // int cl
         3: .line 362
            iload 5 /* cl */
            ifgt 4
            bipush 48
            ireturn
         4: .line 363
      StackMap locals: int
      StackMap stack:
            iload 2 /* p */
            iload 5 /* cl */
            iadd
            istore 2 /* p */
        end local 5 // int cl
         5: .line 360
      StackMap locals:
      StackMap stack:
            iload 2 /* p */
            iload 4 /* end */
            if_icmplt 2
         6: .line 365
            iload 2 /* p */
            iload 4 /* end */
            if_icmple 7
            bipush 48
            goto 8
      StackMap locals:
      StackMap stack:
         7: bipush 32
      StackMap locals:
      StackMap stack: int
         8: ireturn
        end local 4 // int end
        end local 3 // int len
        end local 2 // int p
        end local 1 // byte[] bytes
        end local 0 // org.jcodings.Encoding enc
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    9     0    enc  Lorg/jcodings/Encoding;
            0    9     1  bytes  [B
            0    9     2      p  I
            0    9     3    len  I
            1    9     4    end  I
            3    5     5     cl  I
    MethodParameters:
       Name  Flags
      enc    
      bytes  
      p      
      len    

  public static int codeRangeScan(org.jcodings.Encoding, org.jruby.util.ByteList);
    descriptor: (Lorg/jcodings/Encoding;Lorg/jruby/util/ByteList;)I
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // org.jcodings.Encoding enc
        start local 1 // org.jruby.util.ByteList bytes
         0: .line 369
            aload 0 /* enc */
            aload 1 /* bytes */
            invokevirtual org.jruby.util.ByteList.getUnsafeBytes:()[B
            aload 1 /* bytes */
            invokevirtual org.jruby.util.ByteList.getBegin:()I
            aload 1 /* bytes */
            invokevirtual org.jruby.util.ByteList.getRealSize:()I
            invokestatic org.jruby.util.StringSupport.codeRangeScan:(Lorg/jcodings/Encoding;[BII)I
            ireturn
        end local 1 // org.jruby.util.ByteList bytes
        end local 0 // org.jcodings.Encoding enc
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    1     0    enc  Lorg/jcodings/Encoding;
            0    1     1  bytes  Lorg/jruby/util/ByteList;
    MethodParameters:
       Name  Flags
      enc    
      bytes  

  public static long codeRangeScanRestartable(org.jcodings.Encoding, byte[], int, int, int);
    descriptor: (Lorg/jcodings/Encoding;[BIII)J
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=7, args_size=5
        start local 0 // org.jcodings.Encoding enc
        start local 1 // byte[] bytes
        start local 2 // int s
        start local 3 // int end
        start local 4 // int cr
         0: .line 373
            iload 4 /* cr */
            bipush 48
            if_icmpne 1
            iload 3 /* end */
            iload 2 /* s */
            isub
            iload 4 /* cr */
            invokestatic org.jruby.util.StringSupport.pack:(II)J
            lreturn
         1: .line 374
      StackMap locals:
      StackMap stack:
            iload 2 /* s */
            istore 5 /* p */
        start local 5 // int p
         2: .line 376
            aload 0 /* enc */
            getstatic org.jcodings.specific.ASCIIEncoding.INSTANCE:Lorg/jcodings/specific/ASCIIEncoding;
            if_acmpne 6
         3: .line 377
            iload 3 /* end */
            iload 2 /* s */
            isub
            aload 1 /* bytes */
            iload 5 /* p */
            iload 3 /* end */
            invokestatic org.jruby.util.StringSupport.searchNonAscii:([BII)I
            iconst_m1
            if_icmpne 4
            iload 4 /* cr */
            bipush 32
            if_icmpeq 4
            bipush 16
            goto 5
      StackMap locals: org.jcodings.Encoding byte[] int int int int
      StackMap stack: int
         4: bipush 32
      StackMap locals: org.jcodings.Encoding byte[] int int int int
      StackMap stack: int int
         5: invokestatic org.jruby.util.StringSupport.pack:(II)J
            lreturn
         6: .line 378
      StackMap locals:
      StackMap stack:
            aload 0 /* enc */
            invokevirtual org.jcodings.Encoding.isAsciiCompatible:()Z
            ifeq 26
         7: .line 379
            aload 1 /* bytes */
            iload 5 /* p */
            iload 3 /* end */
            invokestatic org.jruby.util.StringSupport.searchNonAscii:([BII)I
            istore 5 /* p */
         8: .line 380
            iload 5 /* p */
            iconst_m1
            if_icmpne 19
            iload 3 /* end */
            iload 2 /* s */
            isub
            iload 4 /* cr */
            bipush 32
            if_icmpeq 9
            bipush 16
            goto 10
      StackMap locals:
      StackMap stack: int
         9: iload 4 /* cr */
      StackMap locals: org.jcodings.Encoding byte[] int int int int
      StackMap stack: int int
        10: invokestatic org.jruby.util.StringSupport.pack:(II)J
            lreturn
        11: .line 383
      StackMap locals:
      StackMap stack:
            aload 0 /* enc */
            aload 1 /* bytes */
            iload 5 /* p */
            iload 3 /* end */
            invokestatic org.jruby.util.StringSupport.preciseLength:(Lorg/jcodings/Encoding;[BII)I
            istore 6 /* cl */
        start local 6 // int cl
        12: .line 384
            iload 6 /* cl */
            ifgt 15
            iload 5 /* p */
            iload 2 /* s */
            isub
            iload 6 /* cl */
            iconst_m1
            if_icmpne 13
            bipush 48
            goto 14
      StackMap locals: org.jcodings.Encoding byte[] int int int int int
      StackMap stack: int
        13: iconst_0
      StackMap locals: org.jcodings.Encoding byte[] int int int int int
      StackMap stack: int int
        14: invokestatic org.jruby.util.StringSupport.pack:(II)J
            lreturn
        15: .line 385
      StackMap locals:
      StackMap stack:
            iload 5 /* p */
            iload 6 /* cl */
            iadd
            istore 5 /* p */
        16: .line 387
            iload 5 /* p */
            iload 3 /* end */
            if_icmpge 19
        17: .line 388
            aload 1 /* bytes */
            iload 5 /* p */
            iload 3 /* end */
            invokestatic org.jruby.util.StringSupport.searchNonAscii:([BII)I
            istore 5 /* p */
        18: .line 389
            iload 5 /* p */
            iconst_m1
            if_icmpne 19
            iload 3 /* end */
            iload 2 /* s */
            isub
            bipush 32
            invokestatic org.jruby.util.StringSupport.pack:(II)J
            lreturn
        end local 6 // int cl
        19: .line 382
      StackMap locals:
      StackMap stack:
            iload 5 /* p */
            iload 3 /* end */
            if_icmplt 11
        20: .line 392
            goto 27
        21: .line 394
      StackMap locals:
      StackMap stack:
            aload 0 /* enc */
            aload 1 /* bytes */
            iload 5 /* p */
            iload 3 /* end */
            invokestatic org.jruby.util.StringSupport.preciseLength:(Lorg/jcodings/Encoding;[BII)I
            istore 6 /* cl */
        start local 6 // int cl
        22: .line 395
            iload 6 /* cl */
            ifgt 25
            iload 5 /* p */
            iload 2 /* s */
            isub
            iload 6 /* cl */
            iconst_m1
            if_icmpne 23
            bipush 48
            goto 24
      StackMap locals: org.jcodings.Encoding byte[] int int int int int
      StackMap stack: int
        23: iconst_0
      StackMap locals: org.jcodings.Encoding byte[] int int int int int
      StackMap stack: int int
        24: invokestatic org.jruby.util.StringSupport.pack:(II)J
            lreturn
        25: .line 396
      StackMap locals:
      StackMap stack:
            iload 5 /* p */
            iload 6 /* cl */
            iadd
            istore 5 /* p */
        end local 6 // int cl
        26: .line 393
      StackMap locals:
      StackMap stack:
            iload 5 /* p */
            iload 3 /* end */
            if_icmplt 21
        27: .line 399
      StackMap locals:
      StackMap stack:
            iload 5 /* p */
            iload 2 /* s */
            isub
            iload 5 /* p */
            iload 3 /* end */
            if_icmple 28
            bipush 48
            goto 29
      StackMap locals:
      StackMap stack: int
        28: bipush 32
      StackMap locals: org.jcodings.Encoding byte[] int int int int
      StackMap stack: int int
        29: invokestatic org.jruby.util.StringSupport.pack:(II)J
            lreturn
        end local 5 // int p
        end local 4 // int cr
        end local 3 // int end
        end local 2 // int s
        end local 1 // byte[] bytes
        end local 0 // org.jcodings.Encoding enc
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0   30     0    enc  Lorg/jcodings/Encoding;
            0   30     1  bytes  [B
            0   30     2      s  I
            0   30     3    end  I
            0   30     4     cr  I
            2   30     5      p  I
           12   19     6     cl  I
           22   26     6     cl  I
    MethodParameters:
       Name  Flags
      enc    
      bytes  
      s      
      end    
      cr     

  private static int countUtf8LeadBytes(long);
    descriptor: (J)I
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=6, locals=2, args_size=1
        start local 0 // long d
         0: .line 404
            lload 0 /* d */
            lload 0 /* d */
            iconst_1
            lushr
            ldc -1
            lxor
            lor
            lstore 0 /* d */
         1: .line 405
            lload 0 /* d */
            bipush 6
            lushr
            lstore 0 /* d */
         2: .line 406
            lload 0 /* d */
            ldc 72340172838076673
            land
            lstore 0 /* d */
         3: .line 407
            lload 0 /* d */
            lload 0 /* d */
            bipush 8
            lushr
            ladd
            lstore 0 /* d */
         4: .line 408
            lload 0 /* d */
            lload 0 /* d */
            bipush 16
            lushr
            ladd
            lstore 0 /* d */
         5: .line 409
            lload 0 /* d */
            lload 0 /* d */
            bipush 32
            lushr
            ladd
            lstore 0 /* d */
         6: .line 410
            lload 0 /* d */
            ldc 15
            land
            l2i
            ireturn
        end local 0 // long d
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    7     0     d  J
    MethodParameters:
      Name  Flags
      d     

  public static int utf8Length(byte[], int, int);
    descriptor: ([BII)I
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=5, locals=7, args_size=3
        start local 0 // byte[] bytes
        start local 1 // int p
        start local 2 // int end
         0: .line 417
            iconst_0
            istore 3 /* len */
        start local 3 // int len
         1: .line 418
            getstatic org.jruby.util.StringSupport.ARRAY_BYTE_BASE_OFFSET:I
            ifle 15
         2: .line 419
            iload 2 /* end */
            iload 1 /* p */
            isub
            bipush 16
            if_icmple 15
         3: .line 420
            bipush -8
            iload 1 /* p */
            bipush 7
            iadd
            iand
            istore 4 /* ep */
        start local 4 // int ep
         4: .line 421
            goto 6
         5: .line 422
      StackMap locals: int int
      StackMap stack:
            aload 0 /* bytes */
            iload 1 /* p */
            iinc 1 /* p */ 1
            baload
            sipush 192
            iand
            sipush 128
            if_icmpeq 6
            iinc 3 /* len */ 1
         6: .line 421
      StackMap locals:
      StackMap stack:
            iload 1 /* p */
            iload 4 /* ep */
            if_icmplt 5
         7: .line 424
            getstatic org.jruby.util.unsafe.UnsafeHolder.U:Lsun/misc/Unsafe;
            astore 5 /* unsafe */
        start local 5 // sun.misc.Unsafe unsafe
         8: .line 425
            bipush -8
            iload 2 /* end */
            iand
            istore 6 /* eend */
        start local 6 // int eend
         9: .line 426
            goto 12
        10: .line 427
      StackMap locals: sun.misc.Unsafe int
      StackMap stack:
            iload 3 /* len */
            aload 5 /* unsafe */
            aload 0 /* bytes */
            getstatic org.jruby.util.StringSupport.ARRAY_BYTE_BASE_OFFSET:I
            iload 1 /* p */
            iadd
            i2l
            invokevirtual sun.misc.Unsafe.getLong:(Ljava/lang/Object;J)J
            invokestatic org.jruby.util.StringSupport.countUtf8LeadBytes:(J)I
            iadd
            istore 3 /* len */
        11: .line 428
            iinc 1 /* p */ 8
        12: .line 426
      StackMap locals:
      StackMap stack:
            iload 1 /* p */
            iload 6 /* eend */
            if_icmplt 10
        end local 6 // int eend
        end local 5 // sun.misc.Unsafe unsafe
        end local 4 // int ep
        13: .line 432
            goto 15
        14: .line 433
      StackMap locals:
      StackMap stack:
            aload 0 /* bytes */
            iload 1 /* p */
            iinc 1 /* p */ 1
            baload
            sipush 192
            iand
            sipush 128
            if_icmpeq 15
            iinc 3 /* len */ 1
        15: .line 432
      StackMap locals:
      StackMap stack:
            iload 1 /* p */
            iload 2 /* end */
            if_icmplt 14
        16: .line 435
            iload 3 /* len */
            ireturn
        end local 3 // int len
        end local 2 // int end
        end local 1 // int p
        end local 0 // byte[] bytes
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   17     0   bytes  [B
            0   17     1       p  I
            0   17     2     end  I
            1   17     3     len  I
            4   13     4      ep  I
            8   13     5  unsafe  Lsun/misc/Unsafe;
            9   13     6    eend  I
    MethodParameters:
       Name  Flags
      bytes  
      p      
      end    

  public static int utf8Length(org.jruby.util.ByteList);
    descriptor: (Lorg/jruby/util/ByteList;)I
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=1, args_size=1
        start local 0 // org.jruby.util.ByteList bytes
         0: .line 439
            aload 0 /* bytes */
            invokevirtual org.jruby.util.ByteList.getUnsafeBytes:()[B
            aload 0 /* bytes */
            invokevirtual org.jruby.util.ByteList.getBegin:()I
            aload 0 /* bytes */
            invokevirtual org.jruby.util.ByteList.getBegin:()I
            aload 0 /* bytes */
            invokevirtual org.jruby.util.ByteList.getRealSize:()I
            iadd
            invokestatic org.jruby.util.StringSupport.utf8Length:([BII)I
            ireturn
        end local 0 // org.jruby.util.ByteList bytes
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    1     0  bytes  Lorg/jruby/util/ByteList;
    MethodParameters:
       Name  Flags
      bytes  

  public static int strLength(org.jcodings.Encoding, byte[], int, int);
    descriptor: (Lorg/jcodings/Encoding;[BII)I
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=5, locals=4, 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 444
            aload 0 /* enc */
            aload 1 /* bytes */
            iload 2 /* p */
            iload 3 /* end */
            iconst_0
            invokestatic org.jruby.util.StringSupport.strLength:(Lorg/jcodings/Encoding;[BIII)I
            ireturn
        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    1     0    enc  Lorg/jcodings/Encoding;
            0    1     1  bytes  [B
            0    1     2      p  I
            0    1     3    end  I
    MethodParameters:
       Name  Flags
      enc    
      bytes  
      p      
      end    

  public static int strLength(org.jcodings.Encoding, byte[], int, int, int);
    descriptor: (Lorg/jcodings/Encoding;[BIII)I
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=5, locals=7, args_size=5
        start local 0 // org.jcodings.Encoding enc
        start local 1 // byte[] bytes
        start local 2 // int p
        start local 3 // int e
        start local 4 // int cr
         0: .line 450
            aload 0 /* enc */
            invokevirtual org.jcodings.Encoding.isFixedWidth:()Z
            ifeq 2
         1: .line 451
            iload 3 /* e */
            iload 2 /* p */
            isub
            aload 0 /* enc */
            invokevirtual org.jcodings.Encoding.minLength:()I
            iadd
            iconst_1
            isub
            aload 0 /* enc */
            invokevirtual org.jcodings.Encoding.minLength:()I
            idiv
            ireturn
         2: .line 452
      StackMap locals:
      StackMap stack:
            aload 0 /* enc */
            invokevirtual org.jcodings.Encoding.isAsciiCompatible:()Z
            ifeq 24
         3: .line 453
            iconst_0
            istore 5 /* c */
        start local 5 // int c
         4: .line 454
            iload 4 /* cr */
            bipush 16
            if_icmpeq 13
            iload 4 /* cr */
            bipush 32
            if_icmpne 22
         5: .line 455
            goto 13
         6: .line 456
      StackMap locals: int
      StackMap stack:
            aload 1 /* bytes */
            iload 2 /* p */
            baload
            invokestatic org.jcodings.Encoding.isAscii:(B)Z
            ifeq 11
         7: .line 457
            aload 1 /* bytes */
            iload 2 /* p */
            iload 3 /* e */
            invokestatic org.jruby.util.StringSupport.searchNonAscii:([BII)I
            istore 6 /* q */
        start local 6 // int q
         8: .line 458
            iload 6 /* q */
            iconst_m1
            if_icmpne 9
            iload 5 /* c */
            iload 3 /* e */
            iload 2 /* p */
            isub
            iadd
            ireturn
         9: .line 459
      StackMap locals: int
      StackMap stack:
            iload 5 /* c */
            iload 6 /* q */
            iload 2 /* p */
            isub
            iadd
            istore 5 /* c */
        10: .line 460
            iload 6 /* q */
            istore 2 /* p */
        end local 6 // int q
        11: .line 462
      StackMap locals:
      StackMap stack:
            iload 2 /* p */
            aload 1 /* bytes */
            iload 2 /* p */
            iload 3 /* e */
            aload 0 /* enc */
            invokestatic org.jruby.util.StringSupport.encFastMBCLen:([BIILorg/jcodings/Encoding;)I
            iadd
            istore 2 /* p */
        12: .line 463
            iinc 5 /* c */ 1
        13: .line 455
      StackMap locals:
      StackMap stack:
            iload 2 /* p */
            iload 3 /* e */
            if_icmplt 6
        14: .line 465
            goto 23
        15: .line 467
      StackMap locals:
      StackMap stack:
            aload 1 /* bytes */
            iload 2 /* p */
            baload
            invokestatic org.jcodings.Encoding.isAscii:(B)Z
            ifeq 20
        16: .line 468
            aload 1 /* bytes */
            iload 2 /* p */
            iload 3 /* e */
            invokestatic org.jruby.util.StringSupport.searchNonAscii:([BII)I
            istore 6 /* q */
        start local 6 // int q
        17: .line 469
            iload 6 /* q */
            iconst_m1
            if_icmpne 18
            iload 5 /* c */
            iload 3 /* e */
            iload 2 /* p */
            isub
            iadd
            ireturn
        18: .line 470
      StackMap locals: int
      StackMap stack:
            iload 5 /* c */
            iload 6 /* q */
            iload 2 /* p */
            isub
            iadd
            istore 5 /* c */
        19: .line 471
            iload 6 /* q */
            istore 2 /* p */
        end local 6 // int q
        20: .line 473
      StackMap locals:
      StackMap stack:
            iload 2 /* p */
            aload 0 /* enc */
            aload 1 /* bytes */
            iload 2 /* p */
            iload 3 /* e */
            invokestatic org.jruby.util.StringSupport.length:(Lorg/jcodings/Encoding;[BII)I
            iadd
            istore 2 /* p */
        21: .line 474
            iinc 5 /* c */ 1
        22: .line 466
      StackMap locals:
      StackMap stack:
            iload 2 /* p */
            iload 3 /* e */
            if_icmplt 15
        23: .line 477
      StackMap locals:
      StackMap stack:
            iload 5 /* c */
            ireturn
        end local 5 // int c
        24: .line 480
      StackMap locals:
      StackMap stack:
            iconst_0
            istore 5 /* c */
        start local 5 // int c
        25: goto 28
        26: .line 481
      StackMap locals: int
      StackMap stack:
            iload 2 /* p */
            aload 0 /* enc */
            aload 1 /* bytes */
            iload 2 /* p */
            iload 3 /* e */
            invokestatic org.jruby.util.StringSupport.length:(Lorg/jcodings/Encoding;[BII)I
            iadd
            istore 2 /* p */
        27: .line 480
            iinc 5 /* c */ 1
      StackMap locals:
      StackMap stack:
        28: iload 2 /* p */
            iload 3 /* e */
            if_icmplt 26
        29: .line 483
            iload 5 /* c */
            ireturn
        end local 5 // int c
        end local 4 // int cr
        end local 3 // int e
        end local 2 // int p
        end local 1 // byte[] bytes
        end local 0 // org.jcodings.Encoding enc
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0   30     0    enc  Lorg/jcodings/Encoding;
            0   30     1  bytes  [B
            0   30     2      p  I
            0   30     3      e  I
            0   30     4     cr  I
            4   24     5      c  I
           25   30     5      c  I
            8   11     6      q  I
           17   20     6      q  I
    MethodParameters:
       Name  Flags
      enc    
      bytes  
      p      
      e      
      cr     

  public static int strLength(org.jruby.util.ByteList);
    descriptor: (Lorg/jruby/util/ByteList;)I
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=5, locals=1, args_size=1
        start local 0 // org.jruby.util.ByteList bytes
         0: .line 487
            aload 0 /* bytes */
            invokevirtual org.jruby.util.ByteList.getEncoding:()Lorg/jcodings/Encoding;
            aload 0 /* bytes */
            invokevirtual org.jruby.util.ByteList.getUnsafeBytes:()[B
            aload 0 /* bytes */
            invokevirtual org.jruby.util.ByteList.getBegin:()I
            aload 0 /* bytes */
            invokevirtual org.jruby.util.ByteList.getBegin:()I
            aload 0 /* bytes */
            invokevirtual org.jruby.util.ByteList.getRealSize:()I
            iadd
            invokestatic org.jruby.util.StringSupport.strLength:(Lorg/jcodings/Encoding;[BII)I
            ireturn
        end local 0 // org.jruby.util.ByteList bytes
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    1     0  bytes  Lorg/jruby/util/ByteList;
    MethodParameters:
       Name  Flags
      bytes  

  public static long strLengthWithCodeRange(org.jcodings.Encoding, byte[], int, int);
    descriptor: (Lorg/jcodings/Encoding;[BII)J
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=4, 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 491
            aload 0 /* enc */
            invokevirtual org.jcodings.Encoding.isFixedWidth:()Z
            ifeq 2
         1: .line 492
            iload 3 /* end */
            iload 2 /* p */
            isub
            aload 0 /* enc */
            invokevirtual org.jcodings.Encoding.minLength:()I
            iadd
            iconst_1
            isub
            aload 0 /* enc */
            invokevirtual org.jcodings.Encoding.minLength:()I
            idiv
            i2l
            lreturn
         2: .line 493
      StackMap locals:
      StackMap stack:
            aload 0 /* enc */
            invokevirtual org.jcodings.Encoding.isAsciiCompatible:()Z
            ifeq 4
         3: .line 494
            aload 0 /* enc */
            aload 1 /* bytes */
            iload 2 /* p */
            iload 3 /* end */
            invokestatic org.jruby.util.StringSupport.strLengthWithCodeRangeAsciiCompatible:(Lorg/jcodings/Encoding;[BII)J
            lreturn
         4: .line 496
      StackMap locals:
      StackMap stack:
            aload 0 /* enc */
            aload 1 /* bytes */
            iload 2 /* p */
            iload 3 /* end */
            invokestatic org.jruby.util.StringSupport.strLengthWithCodeRangeNonAsciiCompatible:(Lorg/jcodings/Encoding;[BII)J
            lreturn
        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    5     0    enc  Lorg/jcodings/Encoding;
            0    5     1  bytes  [B
            0    5     2      p  I
            0    5     3    end  I
    MethodParameters:
       Name  Flags
      enc    
      bytes  
      p      
      end    

  public static long strLengthWithCodeRangeAsciiCompatible(org.jcodings.Encoding, byte[], int, int);
    descriptor: (Lorg/jcodings/Encoding;[BII)J
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=7, 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 501
            iconst_0
            istore 4 /* cr */
        start local 4 // int cr
         1: iconst_0
            istore 5 /* c */
        start local 5 // int c
         2: .line 502
            goto 18
         3: .line 503
      StackMap locals: int int
      StackMap stack:
            aload 1 /* bytes */
            iload 2 /* p */
            baload
            invokestatic org.jcodings.Encoding.isAscii:(B)Z
            ifeq 10
         4: .line 504
            aload 1 /* bytes */
            iload 2 /* p */
            iload 3 /* end */
            invokestatic org.jruby.util.StringSupport.searchNonAscii:([BII)I
            istore 6 /* q */
        start local 6 // int q
         5: .line 505
            iload 6 /* q */
            iconst_m1
            if_icmpne 8
            iload 5 /* c */
            iload 3 /* end */
            iload 2 /* p */
            isub
            iadd
            iload 4 /* cr */
            ifne 6
            bipush 16
            goto 7
      StackMap locals: org.jcodings.Encoding byte[] int int int int int
      StackMap stack: int
         6: iload 4 /* cr */
      StackMap locals: org.jcodings.Encoding byte[] int int int int int
      StackMap stack: int int
         7: invokestatic org.jruby.util.StringSupport.pack:(II)J
            lreturn
         8: .line 506
      StackMap locals:
      StackMap stack:
            iload 5 /* c */
            iload 6 /* q */
            iload 2 /* p */
            isub
            iadd
            istore 5 /* c */
         9: .line 507
            iload 6 /* q */
            istore 2 /* p */
        end local 6 // int q
        10: .line 509
      StackMap locals:
      StackMap stack:
            aload 0 /* enc */
            aload 1 /* bytes */
            iload 2 /* p */
            iload 3 /* end */
            invokestatic org.jruby.util.StringSupport.preciseLength:(Lorg/jcodings/Encoding;[BII)I
            istore 6 /* cl */
        start local 6 // int cl
        11: .line 510
            iload 6 /* cl */
            ifle 15
        12: .line 511
            iload 4 /* cr */
            bipush 32
            ior
            istore 4 /* cr */
        13: .line 512
            iload 2 /* p */
            iload 6 /* cl */
            iadd
            istore 2 /* p */
        14: .line 513
            goto 17
        15: .line 514
      StackMap locals: int
      StackMap stack:
            bipush 48
            istore 4 /* cr */
        16: .line 515
            iinc 2 /* p */ 1
        17: .line 517
      StackMap locals:
      StackMap stack:
            iinc 5 /* c */ 1
        end local 6 // int cl
        18: .line 502
      StackMap locals:
      StackMap stack:
            iload 2 /* p */
            iload 3 /* end */
            if_icmplt 3
        19: .line 519
            iload 5 /* c */
            iload 4 /* cr */
            ifne 20
            bipush 16
            goto 21
      StackMap locals:
      StackMap stack: int
        20: iload 4 /* cr */
      StackMap locals: org.jcodings.Encoding byte[] int int int int
      StackMap stack: int int
        21: invokestatic org.jruby.util.StringSupport.pack:(II)J
            lreturn
        end local 5 // int c
        end local 4 // int cr
        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   22     0    enc  Lorg/jcodings/Encoding;
            0   22     1  bytes  [B
            0   22     2      p  I
            0   22     3    end  I
            1   22     4     cr  I
            2   22     5      c  I
            5   10     6      q  I
           11   18     6     cl  I
    MethodParameters:
       Name  Flags
      enc    
      bytes  
      p      
      end    

  public static long strLengthWithCodeRangeNonAsciiCompatible(org.jcodings.Encoding, byte[], int, int);
    descriptor: (Lorg/jcodings/Encoding;[BII)J
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=7, 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 523
            iconst_0
            istore 4 /* cr */
        start local 4 // int cr
         1: .line 524
            iconst_0
            istore 5 /* c */
        start local 5 // int c
         2: goto 11
         3: .line 525
      StackMap locals: int int
      StackMap stack:
            aload 0 /* enc */
            aload 1 /* bytes */
            iload 2 /* p */
            iload 3 /* end */
            invokestatic org.jruby.util.StringSupport.preciseLength:(Lorg/jcodings/Encoding;[BII)I
            istore 6 /* cl */
        start local 6 // int cl
         4: .line 526
            iload 6 /* cl */
            ifle 8
         5: .line 527
            iload 4 /* cr */
            bipush 32
            ior
            istore 4 /* cr */
         6: .line 528
            iload 2 /* p */
            iload 6 /* cl */
            iadd
            istore 2 /* p */
         7: .line 529
            goto 10
         8: .line 530
      StackMap locals: int
      StackMap stack:
            bipush 48
            istore 4 /* cr */
         9: .line 531
            iinc 2 /* p */ 1
        end local 6 // int cl
        10: .line 524
      StackMap locals:
      StackMap stack:
            iinc 5 /* c */ 1
      StackMap locals:
      StackMap stack:
        11: iload 2 /* p */
            iload 3 /* end */
            if_icmplt 3
        12: .line 534
            iload 5 /* c */
            iload 4 /* cr */
            ifne 13
            bipush 16
            goto 14
      StackMap locals:
      StackMap stack: int
        13: iload 4 /* cr */
      StackMap locals: org.jcodings.Encoding byte[] int int int int
      StackMap stack: int int
        14: invokestatic org.jruby.util.StringSupport.pack:(II)J
            lreturn
        end local 5 // int c
        end local 4 // int cr
        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   15     0    enc  Lorg/jcodings/Encoding;
            0   15     1  bytes  [B
            0   15     2      p  I
            0   15     3    end  I
            1   15     4     cr  I
            2   15     5      c  I
            4   10     6     cl  I
    MethodParameters:
       Name  Flags
      enc    
      bytes  
      p      
      end    

  public static long strLengthWithCodeRange(org.jruby.util.ByteList);
    descriptor: (Lorg/jruby/util/ByteList;)J
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=5, locals=1, args_size=1
        start local 0 // org.jruby.util.ByteList bytes
         0: .line 538
            aload 0 /* bytes */
            invokevirtual org.jruby.util.ByteList.getEncoding:()Lorg/jcodings/Encoding;
            aload 0 /* bytes */
            invokevirtual org.jruby.util.ByteList.getUnsafeBytes:()[B
            aload 0 /* bytes */
            invokevirtual org.jruby.util.ByteList.getBegin:()I
            aload 0 /* bytes */
            invokevirtual org.jruby.util.ByteList.getBegin:()I
            aload 0 /* bytes */
            invokevirtual org.jruby.util.ByteList.getRealSize:()I
            iadd
            invokestatic org.jruby.util.StringSupport.strLengthWithCodeRange:(Lorg/jcodings/Encoding;[BII)J
            lreturn
        end local 0 // org.jruby.util.ByteList bytes
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    1     0  bytes  Lorg/jruby/util/ByteList;
    MethodParameters:
       Name  Flags
      bytes  

  public static long strLengthWithCodeRange(org.jruby.util.ByteList, org.jcodings.Encoding);
    descriptor: (Lorg/jruby/util/ByteList;Lorg/jcodings/Encoding;)J
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=5, locals=2, args_size=2
        start local 0 // org.jruby.util.ByteList bytes
        start local 1 // org.jcodings.Encoding enc
         0: .line 542
            aload 1 /* enc */
            aload 0 /* bytes */
            invokevirtual org.jruby.util.ByteList.getUnsafeBytes:()[B
            aload 0 /* bytes */
            invokevirtual org.jruby.util.ByteList.getBegin:()I
            aload 0 /* bytes */
            invokevirtual org.jruby.util.ByteList.getBegin:()I
            aload 0 /* bytes */
            invokevirtual org.jruby.util.ByteList.getRealSize:()I
            iadd
            invokestatic org.jruby.util.StringSupport.strLengthWithCodeRange:(Lorg/jcodings/Encoding;[BII)J
            lreturn
        end local 1 // org.jcodings.Encoding enc
        end local 0 // org.jruby.util.ByteList bytes
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    1     0  bytes  Lorg/jruby/util/ByteList;
            0    1     1    enc  Lorg/jcodings/Encoding;
    MethodParameters:
       Name  Flags
      bytes  
      enc    

  public static long pack(int, int);
    descriptor: (II)J
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // int result
        start local 1 // int arg
         0: .line 547
            iload 1 /* arg */
            i2l
            bipush 31
            lshl
            iload 0 /* result */
            i2l
            lor
            lreturn
        end local 1 // int arg
        end local 0 // int result
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    1     0  result  I
            0    1     1     arg  I
    MethodParameters:
        Name  Flags
      result  
      arg     

  public static int unpackResult(long);
    descriptor: (J)I
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=2, args_size=1
        start local 0 // long len
         0: .line 551
            lload 0 /* len */
            l2i
            ldc 2147483647
            iand
            ireturn
        end local 0 // long len
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0   len  J
    MethodParameters:
      Name  Flags
      len   

  public static int unpackArg(long);
    descriptor: (J)I
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=2, args_size=1
        start local 0 // long cr
         0: .line 555
            lload 0 /* cr */
            bipush 31
            lushr
            l2i
            ireturn
        end local 0 // long cr
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0    cr  J
    MethodParameters:
      Name  Flags
      cr    

  public static int codePoint(org.jcodings.Encoding, byte[], int, int);
    descriptor: (Lorg/jcodings/Encoding;[BII)I
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=5, locals=5, 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 559
            iload 2 /* p */
            iload 3 /* end */
            if_icmplt 1
            new java.lang.IllegalArgumentException
            dup
            ldc "empty string"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         1: .line 560
      StackMap locals:
      StackMap stack:
            aload 0 /* enc */
            aload 1 /* bytes */
            iload 2 /* p */
            iload 3 /* end */
            invokestatic org.jruby.util.StringSupport.preciseLength:(Lorg/jcodings/Encoding;[BII)I
            istore 4 /* cl */
        start local 4 // int cl
         2: .line 561
            iload 4 /* cl */
            ifgt 3
            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 0 /* 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
         3: .line 562
      StackMap locals: int
      StackMap stack:
            aload 0 /* enc */
            aload 1 /* bytes */
            iload 2 /* p */
            iload 3 /* end */
            invokevirtual org.jcodings.Encoding.mbcToCode:([BII)I
            ireturn
        end local 4 // int cl
        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    4     0    enc  Lorg/jcodings/Encoding;
            0    4     1  bytes  [B
            0    4     2      p  I
            0    4     3    end  I
            2    4     4     cl  I
    MethodParameters:
       Name  Flags
      enc    
      bytes  
      p      
      end    

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

  public static int codePoint(org.jruby.Ruby, org.jruby.util.ByteList);
    descriptor: (Lorg/jruby/Ruby;Lorg/jruby/util/ByteList;)I
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=6, locals=2, args_size=2
        start local 0 // org.jruby.Ruby runtime
        start local 1 // org.jruby.util.ByteList value
         0: .line 574
            aload 0 /* runtime */
            aload 1 /* value */
            invokestatic org.jruby.util.io.EncodingUtils.getEncoding:(Lorg/jruby/util/ByteList;)Lorg/jcodings/Encoding;
         1: .line 575
            aload 1 /* value */
            invokevirtual org.jruby.util.ByteList.getUnsafeBytes:()[B
            aload 1 /* value */
            invokevirtual org.jruby.util.ByteList.getBegin:()I
            aload 1 /* value */
            invokevirtual org.jruby.util.ByteList.getBegin:()I
            aload 1 /* value */
            invokevirtual org.jruby.util.ByteList.getRealSize:()I
            iadd
         2: .line 574
            invokestatic org.jruby.util.StringSupport.codePoint:(Lorg/jruby/Ruby;Lorg/jcodings/Encoding;[BII)I
            ireturn
        end local 1 // org.jruby.util.ByteList value
        end local 0 // org.jruby.Ruby runtime
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    3     0  runtime  Lorg/jruby/Ruby;
            0    3     1    value  Lorg/jruby/util/ByteList;
    MethodParameters:
         Name  Flags
      runtime  final
      value    final

  public static int codeLength(org.jcodings.Encoding, int);
    descriptor: (Lorg/jcodings/Encoding;I)I
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // org.jcodings.Encoding enc
        start local 1 // int c
         0: .line 579
            aload 0 /* enc */
            iload 1 /* c */
            invokevirtual org.jcodings.Encoding.codeToMbcLength:(I)I
            istore 2 /* i */
        start local 2 // int i
         1: .line 580
            iload 2 /* i */
            invokestatic org.jruby.util.StringSupport.checkCodepointError:(I)I
            ireturn
        end local 2 // int i
        end local 1 // int c
        end local 0 // org.jcodings.Encoding enc
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0   enc  Lorg/jcodings/Encoding;
            0    2     1     c  I
            1    2     2     i  I
    MethodParameters:
      Name  Flags
      enc   
      c     

  public static int checkCodepointError(int);
    descriptor: (I)I
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // int i
         0: .line 584
            iload 0 /* i */
            ifge 2
         1: .line 586
            new org.jcodings.exception.EncodingException
            dup
            iload 0 /* i */
            invokestatic org.jcodings.exception.EncodingError.fromCode:(I)Lorg/jcodings/exception/EncodingError;
            invokespecial org.jcodings.exception.EncodingException.<init>:(Lorg/jcodings/exception/EncodingError;)V
            athrow
         2: .line 588
      StackMap locals:
      StackMap stack:
            iload 0 /* i */
            ireturn
        end local 0 // int i
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0     i  I
    MethodParameters:
      Name  Flags
      i     

  public static long getAscii(org.jcodings.Encoding, byte[], int, int);
    descriptor: (Lorg/jcodings/Encoding;[BII)J
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=5, locals=4, 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 592
            aload 0 /* enc */
            aload 1 /* bytes */
            iload 2 /* p */
            iload 3 /* end */
            iconst_0
            invokestatic org.jruby.util.StringSupport.getAscii:(Lorg/jcodings/Encoding;[BIII)J
            lreturn
        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    1     0    enc  Lorg/jcodings/Encoding;
            0    1     1  bytes  [B
            0    1     2      p  I
            0    1     3    end  I
    MethodParameters:
       Name  Flags
      enc    
      bytes  
      p      
      end    

  public static long getAscii(org.jcodings.Encoding, byte[], int, int, int);
    descriptor: (Lorg/jcodings/Encoding;[BIII)J
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=7, args_size=5
        start local 0 // org.jcodings.Encoding enc
        start local 1 // byte[] bytes
        start local 2 // int p
        start local 3 // int end
        start local 4 // int len
         0: .line 596
            iload 2 /* p */
            iload 3 /* end */
            if_icmplt 1
            iconst_m1
            iload 4 /* len */
            invokestatic org.jruby.util.StringSupport.pack:(II)J
            lreturn
         1: .line 598
      StackMap locals:
      StackMap stack:
            aload 0 /* enc */
            invokevirtual org.jcodings.Encoding.isAsciiCompatible:()Z
            ifeq 7
         2: .line 599
            aload 1 /* bytes */
            iload 2 /* p */
            baload
            sipush 255
            iand
            istore 5 /* c */
        start local 5 // int c
         3: .line 600
            iload 5 /* c */
            invokestatic org.jcodings.Encoding.isAscii:(I)Z
            ifne 4
            iconst_m1
            iload 4 /* len */
            invokestatic org.jruby.util.StringSupport.pack:(II)J
            lreturn
         4: .line 601
      StackMap locals: int
      StackMap stack:
            iload 5 /* c */
            iload 4 /* len */
            ifne 5
            iconst_0
            goto 6
      StackMap locals:
      StackMap stack: int
         5: iconst_1
      StackMap locals: org.jcodings.Encoding byte[] int int int int
      StackMap stack: int int
         6: invokestatic org.jruby.util.StringSupport.pack:(II)J
            lreturn
        end local 5 // int c
         7: .line 603
      StackMap locals:
      StackMap stack:
            aload 0 /* enc */
            aload 1 /* bytes */
            iload 2 /* p */
            iload 3 /* end */
            invokestatic org.jruby.util.StringSupport.preciseLength:(Lorg/jcodings/Encoding;[BII)I
            istore 5 /* cl */
        start local 5 // int cl
         8: .line 604
            iload 5 /* cl */
            ifgt 9
            iconst_m1
            iload 4 /* len */
            invokestatic org.jruby.util.StringSupport.pack:(II)J
            lreturn
         9: .line 605
      StackMap locals: int
      StackMap stack:
            aload 0 /* enc */
            aload 1 /* bytes */
            iload 2 /* p */
            iload 3 /* end */
            invokevirtual org.jcodings.Encoding.mbcToCode:([BII)I
            istore 6 /* c */
        start local 6 // int c
        10: .line 606
            iload 6 /* c */
            invokestatic org.jcodings.Encoding.isAscii:(I)Z
            ifne 11
            iconst_m1
            iload 4 /* len */
            invokestatic org.jruby.util.StringSupport.pack:(II)J
            lreturn
        11: .line 607
      StackMap locals: int
      StackMap stack:
            iload 6 /* c */
            iload 4 /* len */
            ifne 12
            iconst_0
            goto 13
      StackMap locals:
      StackMap stack: int
        12: iload 5 /* cl */
      StackMap locals: org.jcodings.Encoding byte[] int int int int int
      StackMap stack: int int
        13: invokestatic org.jruby.util.StringSupport.pack:(II)J
            lreturn
        end local 6 // int c
        end local 5 // int cl
        end local 4 // int len
        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   14     0    enc  Lorg/jcodings/Encoding;
            0   14     1  bytes  [B
            0   14     2      p  I
            0   14     3    end  I
            0   14     4    len  I
            3    7     5      c  I
            8   14     5     cl  I
           10   14     6      c  I
    MethodParameters:
       Name  Flags
      enc    
      bytes  
      p      
      end    
      len    

  public static int preciseCodePoint(org.jcodings.Encoding, byte[], int, int);
    descriptor: (Lorg/jcodings/Encoding;[BII)I
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=5, 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 612
            aload 0 /* enc */
            aload 1 /* bytes */
            iload 2 /* p */
            iload 3 /* end */
            invokestatic org.jruby.util.StringSupport.preciseLength:(Lorg/jcodings/Encoding;[BII)I
            istore 4 /* l */
        start local 4 // int l
         1: .line 613
            iload 4 /* l */
            ifle 2
            aload 0 /* enc */
            aload 1 /* bytes */
            iload 2 /* p */
            iload 3 /* end */
            invokevirtual org.jcodings.Encoding.mbcToCode:([BII)I
            ireturn
         2: .line 614
      StackMap locals: int
      StackMap stack:
            iconst_m1
            ireturn
        end local 4 // int l
        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    3     0    enc  Lorg/jcodings/Encoding;
            0    3     1  bytes  [B
            0    3     2      p  I
            0    3     3    end  I
            1    3     4      l  I
    MethodParameters:
       Name  Flags
      enc    
      bytes  
      p      
      end    

  public static int utf8Nth(byte[], int, int, int);
    descriptor: ([BIII)I
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=4, args_size=4
        start local 0 // byte[] bytes
        start local 1 // int p
        start local 2 // int e
        start local 3 // int nth
         0: .line 620
            goto 5
         1: .line 621
      StackMap locals:
      StackMap stack:
            aload 0 /* bytes */
            iload 1 /* p */
            baload
            sipush 192
            iand
            sipush 128
            if_icmpeq 4
         2: .line 622
            iload 3 /* nth */
            ifne 3
            goto 6
         3: .line 623
      StackMap locals:
      StackMap stack:
            iinc 3 /* nth */ -1
         4: .line 625
      StackMap locals:
      StackMap stack:
            iinc 1 /* p */ 1
         5: .line 620
      StackMap locals:
      StackMap stack:
            iload 1 /* p */
            iload 2 /* e */
            if_icmplt 1
         6: .line 627
      StackMap locals:
      StackMap stack:
            iload 1 /* p */
            ireturn
        end local 3 // int nth
        end local 2 // int e
        end local 1 // int p
        end local 0 // byte[] bytes
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    7     0  bytes  [B
            0    7     1      p  I
            0    7     2      e  I
            0    7     3    nth  I
    MethodParameters:
       Name  Flags
      bytes  
      p      
      e      
      nth    

  public static int nth(org.jcodings.Encoding, byte[], int, int, int);
    descriptor: (Lorg/jcodings/Encoding;[BIII)I
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=6, locals=5, args_size=5
        start local 0 // org.jcodings.Encoding enc
        start local 1 // byte[] bytes
        start local 2 // int p
        start local 3 // int end
        start local 4 // int n
         0: .line 646
            aload 0 /* enc */
            aload 1 /* bytes */
            iload 2 /* p */
            iload 3 /* end */
            iload 4 /* n */
            aload 0 /* enc */
            invokevirtual org.jcodings.Encoding.isSingleByte:()Z
            invokestatic org.jruby.util.StringSupport.nth:(Lorg/jcodings/Encoding;[BIIIZ)I
            ireturn
        end local 4 // int n
        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    1     0    enc  Lorg/jcodings/Encoding;
            0    1     1  bytes  [B
            0    1     2      p  I
            0    1     3    end  I
            0    1     4      n  I
    MethodParameters:
       Name  Flags
      enc    
      bytes  
      p      
      end    
      n      

  public static int nth(org.jcodings.Encoding, byte[], int, int, int, boolean);
    descriptor: (Lorg/jcodings/Encoding;[BIIIZ)I
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=5, locals=6, args_size=6
        start local 0 // org.jcodings.Encoding enc
        start local 1 // byte[] bytes
        start local 2 // int p
        start local 3 // int end
        start local 4 // int n
        start local 5 // boolean singlebyte
         0: .line 661
            iload 5 /* singlebyte */
            ifeq 3
         1: .line 662
            iload 2 /* p */
            iload 4 /* n */
            iadd
            istore 2 /* p */
         2: .line 663
            goto 10
      StackMap locals:
      StackMap stack:
         3: aload 0 /* enc */
            invokevirtual org.jcodings.Encoding.isFixedWidth:()Z
            ifeq 6
         4: .line 664
            iload 2 /* p */
            iload 4 /* n */
            aload 0 /* enc */
            invokevirtual org.jcodings.Encoding.maxLength:()I
            imul
            iadd
            istore 2 /* p */
         5: .line 665
            goto 10
      StackMap locals:
      StackMap stack:
         6: aload 0 /* enc */
            invokevirtual org.jcodings.Encoding.isAsciiCompatible:()Z
            ifeq 9
         7: .line 666
            aload 0 /* enc */
            aload 1 /* bytes */
            iload 2 /* p */
            iload 3 /* end */
            iload 4 /* n */
            invokestatic org.jruby.util.StringSupport.nthAsciiCompatible:(Lorg/jcodings/Encoding;[BIII)I
            istore 2 /* p */
         8: .line 667
            goto 10
         9: .line 668
      StackMap locals:
      StackMap stack:
            aload 0 /* enc */
            aload 1 /* bytes */
            iload 2 /* p */
            iload 3 /* end */
            iload 4 /* n */
            invokestatic org.jruby.util.StringSupport.nthNonAsciiCompatible:(Lorg/jcodings/Encoding;[BIII)I
            istore 2 /* p */
        10: .line 670
      StackMap locals:
      StackMap stack:
            iload 2 /* p */
            ifge 11
            iconst_m1
            ireturn
        11: .line 671
      StackMap locals:
      StackMap stack:
            iload 2 /* p */
            iload 3 /* end */
            if_icmple 12
            iload 3 /* end */
            goto 13
      StackMap locals:
      StackMap stack:
        12: iload 2 /* p */
      StackMap locals:
      StackMap stack: int
        13: ireturn
        end local 5 // boolean singlebyte
        end local 4 // int n
        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   14     0         enc  Lorg/jcodings/Encoding;
            0   14     1       bytes  [B
            0   14     2           p  I
            0   14     3         end  I
            0   14     4           n  I
            0   14     5  singlebyte  Z
    MethodParameters:
            Name  Flags
      enc         
      bytes       
      p           
      end         
      n           
      singlebyte  

  private static int nthAsciiCompatible(org.jcodings.Encoding, byte[], int, int, int);
    descriptor: (Lorg/jcodings/Encoding;[BIII)I
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=4, locals=7, args_size=5
        start local 0 // org.jcodings.Encoding enc
        start local 1 // byte[] bytes
        start local 2 // int p
        start local 3 // int end
        start local 4 // int n
         0: .line 675
            goto 11
         1: .line 676
      StackMap locals:
      StackMap stack:
            iload 2 /* p */
            iload 4 /* n */
            iadd
            istore 5 /* end2 */
        start local 5 // int end2
         2: .line 677
            iload 3 /* end */
            iload 5 /* end2 */
            if_icmpge 3
            iload 3 /* end */
            ireturn
         3: .line 678
      StackMap locals: int
      StackMap stack:
            aload 1 /* bytes */
            iload 2 /* p */
            baload
            invokestatic org.jcodings.Encoding.isAscii:(B)Z
            ifeq 8
         4: .line 679
            aload 1 /* bytes */
            iload 2 /* p */
            iload 5 /* end2 */
            invokestatic org.jruby.util.StringSupport.searchNonAscii:([BII)I
            istore 6 /* p2 */
        start local 6 // int p2
         5: .line 680
            iload 6 /* p2 */
            iconst_m1
            if_icmpne 6
            iload 5 /* end2 */
            ireturn
         6: .line 681
      StackMap locals: int
      StackMap stack:
            iload 4 /* n */
            iload 6 /* p2 */
            iload 2 /* p */
            isub
            isub
            istore 4 /* n */
         7: .line 682
            iload 6 /* p2 */
            istore 2 /* p */
        end local 6 // int p2
         8: .line 684
      StackMap locals:
      StackMap stack:
            aload 0 /* enc */
            aload 1 /* bytes */
            iload 2 /* p */
            iload 3 /* end */
            invokestatic org.jruby.util.StringSupport.length:(Lorg/jcodings/Encoding;[BII)I
            istore 6 /* cl */
        start local 6 // int cl
         9: .line 685
            iload 2 /* p */
            iload 6 /* cl */
            iadd
            istore 2 /* p */
        10: .line 686
            iinc 4 /* n */ -1
        end local 6 // int cl
        end local 5 // int end2
        11: .line 675
      StackMap locals:
      StackMap stack:
            iload 2 /* p */
            iload 3 /* end */
            if_icmpge 12
            iload 4 /* n */
            ifgt 1
        12: .line 688
      StackMap locals:
      StackMap stack:
            iload 4 /* n */
            ifeq 13
            iload 3 /* end */
            goto 14
      StackMap locals:
      StackMap stack:
        13: iload 2 /* p */
      StackMap locals:
      StackMap stack: int
        14: ireturn
        end local 4 // int n
        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   15     0    enc  Lorg/jcodings/Encoding;
            0   15     1  bytes  [B
            0   15     2      p  I
            0   15     3    end  I
            0   15     4      n  I
            2   11     5   end2  I
            5    8     6     p2  I
            9   11     6     cl  I
    MethodParameters:
       Name  Flags
      enc    
      bytes  
      p      
      end    
      n      

  private static int nthNonAsciiCompatible(org.jcodings.Encoding, byte[], int, int, int);
    descriptor: (Lorg/jcodings/Encoding;[BIII)I
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=5, locals=5, args_size=5
        start local 0 // org.jcodings.Encoding enc
        start local 1 // byte[] bytes
        start local 2 // int p
        start local 3 // int end
        start local 4 // int n
         0: .line 692
            goto 2
         1: .line 693
      StackMap locals:
      StackMap stack:
            iload 2 /* p */
            aload 0 /* enc */
            aload 1 /* bytes */
            iload 2 /* p */
            iload 3 /* end */
            invokestatic org.jruby.util.StringSupport.length:(Lorg/jcodings/Encoding;[BII)I
            iadd
            istore 2 /* p */
         2: .line 692
      StackMap locals:
      StackMap stack:
            iload 2 /* p */
            iload 3 /* end */
            if_icmpge 3
            iload 4 /* n */
            iinc 4 /* n */ -1
            ifne 1
         3: .line 695
      StackMap locals:
      StackMap stack:
            iload 2 /* p */
            ireturn
        end local 4 // int n
        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    4     0    enc  Lorg/jcodings/Encoding;
            0    4     1  bytes  [B
            0    4     2      p  I
            0    4     3    end  I
            0    4     4      n  I
    MethodParameters:
       Name  Flags
      enc    
      bytes  
      p      
      end    
      n      

  public static int utf8Offset(byte[], int, int, int);
    descriptor: ([BIII)I
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=5, args_size=4
        start local 0 // byte[] bytes
        start local 1 // int p
        start local 2 // int end
        start local 3 // int n
         0: .line 699
            aload 0 /* bytes */
            iload 1 /* p */
            iload 2 /* end */
            iload 3 /* n */
            invokestatic org.jruby.util.StringSupport.utf8Nth:([BIII)I
            istore 4 /* pp */
        start local 4 // int pp
         1: .line 700
            iload 4 /* pp */
            iconst_m1
            if_icmpne 2
            iload 2 /* end */
            iload 1 /* p */
            isub
            goto 3
      StackMap locals: int
      StackMap stack:
         2: iload 4 /* pp */
            iload 1 /* p */
            isub
      StackMap locals:
      StackMap stack: int
         3: ireturn
        end local 4 // int pp
        end local 3 // int n
        end local 2 // int end
        end local 1 // int p
        end local 0 // byte[] bytes
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    4     0  bytes  [B
            0    4     1      p  I
            0    4     2    end  I
            0    4     3      n  I
            1    4     4     pp  I
    MethodParameters:
       Name  Flags
      bytes  
      p      
      end    
      n      

  public static int offset(org.jcodings.Encoding, byte[], int, int, int);
    descriptor: (Lorg/jcodings/Encoding;[BIII)I
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=5, locals=6, args_size=5
        start local 0 // org.jcodings.Encoding enc
        start local 1 // byte[] bytes
        start local 2 // int p
        start local 3 // int end
        start local 4 // int n
         0: .line 704
            aload 0 /* enc */
            aload 1 /* bytes */
            iload 2 /* p */
            iload 3 /* end */
            iload 4 /* n */
            invokestatic org.jruby.util.StringSupport.nth:(Lorg/jcodings/Encoding;[BIII)I
            istore 5 /* pp */
        start local 5 // int pp
         1: .line 705
            iload 5 /* pp */
            iconst_m1
            if_icmpne 2
            iload 3 /* end */
            iload 2 /* p */
            isub
            goto 3
      StackMap locals: int
      StackMap stack:
         2: iload 5 /* pp */
            iload 2 /* p */
            isub
      StackMap locals:
      StackMap stack: int
         3: ireturn
        end local 5 // int pp
        end local 4 // int n
        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    4     0    enc  Lorg/jcodings/Encoding;
            0    4     1  bytes  [B
            0    4     2      p  I
            0    4     3    end  I
            0    4     4      n  I
            1    4     5     pp  I
    MethodParameters:
       Name  Flags
      enc    
      bytes  
      p      
      end    
      n      

  public static int offset(org.jcodings.Encoding, byte[], int, int, int, boolean);
    descriptor: (Lorg/jcodings/Encoding;[BIIIZ)I
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=6, locals=7, args_size=6
        start local 0 // org.jcodings.Encoding enc
        start local 1 // byte[] bytes
        start local 2 // int p
        start local 3 // int end
        start local 4 // int n
        start local 5 // boolean singlebyte
         0: .line 709
            aload 0 /* enc */
            aload 1 /* bytes */
            iload 2 /* p */
            iload 3 /* end */
            iload 4 /* n */
            iload 5 /* singlebyte */
            invokestatic org.jruby.util.StringSupport.nth:(Lorg/jcodings/Encoding;[BIIIZ)I
            istore 6 /* pp */
        start local 6 // int pp
         1: .line 710
            iload 6 /* pp */
            iconst_m1
            if_icmpne 2
            iload 3 /* end */
            iload 2 /* p */
            isub
            goto 3
      StackMap locals: int
      StackMap stack:
         2: iload 6 /* pp */
            iload 2 /* p */
            isub
      StackMap locals:
      StackMap stack: int
         3: ireturn
        end local 6 // int pp
        end local 5 // boolean singlebyte
        end local 4 // int n
        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    4     0         enc  Lorg/jcodings/Encoding;
            0    4     1       bytes  [B
            0    4     2           p  I
            0    4     3         end  I
            0    4     4           n  I
            0    4     5  singlebyte  Z
            1    4     6          pp  I
    MethodParameters:
            Name  Flags
      enc         
      bytes       
      p           
      end         
      n           
      singlebyte  

  public static int offset(org.jruby.RubyString, int);
    descriptor: (Lorg/jruby/RubyString;I)I
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=5, locals=3, args_size=2
        start local 0 // org.jruby.RubyString str
        start local 1 // int pos
         0: .line 714
            aload 0 /* str */
            invokevirtual org.jruby.RubyString.getByteList:()Lorg/jruby/util/ByteList;
            astore 2 /* value */
        start local 2 // org.jruby.util.ByteList value
         1: .line 715
            aload 0 /* str */
            invokevirtual org.jruby.RubyString.getEncoding:()Lorg/jcodings/Encoding;
            aload 2 /* value */
            invokevirtual org.jruby.util.ByteList.getUnsafeBytes:()[B
            aload 2 /* value */
            invokevirtual org.jruby.util.ByteList.getBegin:()I
            aload 2 /* value */
            invokevirtual org.jruby.util.ByteList.getBegin:()I
            aload 2 /* value */
            invokevirtual org.jruby.util.ByteList.getRealSize:()I
            iadd
            iload 1 /* pos */
            invokestatic org.jruby.util.StringSupport.offset:(Lorg/jcodings/Encoding;[BIII)I
            ireturn
        end local 2 // org.jruby.util.ByteList value
        end local 1 // int pos
        end local 0 // org.jruby.RubyString str
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    2     0    str  Lorg/jruby/RubyString;
            0    2     1    pos  I
            1    2     2  value  Lorg/jruby/util/ByteList;
    MethodParameters:
      Name  Flags
      str   
      pos   

  public static int toLower(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 enc
        start local 1 // int c
         0: .line 720
            iload 1 /* c */
            invokestatic org.jcodings.Encoding.isAscii:(I)Z
            ifeq 1
            getstatic org.jcodings.ascii.AsciiTables.ToLowerCaseTable:[B
            iload 1 /* c */
            baload
            goto 2
      StackMap locals:
      StackMap stack:
         1: iload 1 /* c */
      StackMap locals:
      StackMap stack: int
         2: ireturn
        end local 1 // int c
        end local 0 // org.jcodings.Encoding enc
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0   enc  Lorg/jcodings/Encoding;
            0    3     1     c  I
    RuntimeVisibleAnnotations: 
      java.lang.Deprecated()
    MethodParameters:
      Name  Flags
      enc   
      c     

  public static int toUpper(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 enc
        start local 1 // int c
         0: .line 725
            iload 1 /* c */
            invokestatic org.jcodings.Encoding.isAscii:(I)Z
            ifeq 1
            getstatic org.jcodings.ascii.AsciiTables.ToUpperCaseTable:[B
            iload 1 /* c */
            baload
            goto 2
      StackMap locals:
      StackMap stack:
         1: iload 1 /* c */
      StackMap locals:
      StackMap stack: int
         2: ireturn
        end local 1 // int c
        end local 0 // org.jcodings.Encoding enc
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0   enc  Lorg/jcodings/Encoding;
            0    3     1     c  I
    RuntimeVisibleAnnotations: 
      java.lang.Deprecated()
    MethodParameters:
      Name  Flags
      enc   
      c     

  public static int caseCmp(byte[], int, byte[], int, int);
    descriptor: ([BI[BII)I
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=6, args_size=5
        start local 0 // byte[] bytes1
        start local 1 // int p1
        start local 2 // byte[] bytes2
        start local 3 // int p2
        start local 4 // int len
         0: .line 729
            iconst_m1
            istore 5 /* i */
        start local 5 // int i
         1: .line 730
      StackMap locals: int
      StackMap stack:
            iinc 5 /* i */ 1
            iload 5 /* i */
            iload 4 /* len */
            if_icmpge 2
            aload 0 /* bytes1 */
            iload 1 /* p1 */
            iload 5 /* i */
            iadd
            baload
            aload 2 /* bytes2 */
            iload 3 /* p2 */
            iload 5 /* i */
            iadd
            baload
            if_icmpeq 1
         2: .line 731
      StackMap locals:
      StackMap stack:
            iload 5 /* i */
            iload 4 /* len */
            if_icmpge 5
            aload 0 /* bytes1 */
            iload 1 /* p1 */
            iload 5 /* i */
            iadd
            baload
            sipush 255
            iand
            aload 2 /* bytes2 */
            iload 3 /* p2 */
            iload 5 /* i */
            iadd
            baload
            sipush 255
            iand
            if_icmple 3
            iconst_1
            goto 4
      StackMap locals:
      StackMap stack:
         3: iconst_m1
      StackMap locals:
      StackMap stack: int
         4: ireturn
         5: .line 732
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
        end local 5 // int i
        end local 4 // int len
        end local 3 // int p2
        end local 2 // byte[] bytes2
        end local 1 // int p1
        end local 0 // byte[] bytes1
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    6     0  bytes1  [B
            0    6     1      p1  I
            0    6     2  bytes2  [B
            0    6     3      p2  I
            0    6     4     len  I
            1    6     5       i  I
    MethodParameters:
        Name  Flags
      bytes1  
      p1      
      bytes2  
      p2      
      len     

  public static int scanHex(byte[], int, int);
    descriptor: ([BII)I
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // byte[] bytes
        start local 1 // int p
        start local 2 // int len
         0: .line 736
            aload 0 /* bytes */
            iload 1 /* p */
            iload 2 /* len */
            getstatic org.jcodings.specific.ASCIIEncoding.INSTANCE:Lorg/jcodings/specific/ASCIIEncoding;
            invokestatic org.jruby.util.StringSupport.scanHex:([BIILorg/jcodings/Encoding;)I
            ireturn
        end local 2 // int len
        end local 1 // int p
        end local 0 // byte[] bytes
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    1     0  bytes  [B
            0    1     1      p  I
            0    1     2    len  I
    MethodParameters:
       Name  Flags
      bytes  
      p      
      len    

  public static int scanHex(byte[], int, int, org.jcodings.Encoding);
    descriptor: ([BIILorg/jcodings/Encoding;)I
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=6, args_size=4
        start local 0 // byte[] bytes
        start local 1 // int p
        start local 2 // int len
        start local 3 // org.jcodings.Encoding enc
         0: .line 740
            iconst_0
            istore 4 /* v */
        start local 4 // int v
         1: .line 742
            goto 3
        start local 5 // int c
         2: .line 743
      StackMap locals: int int
      StackMap stack:
            iload 4 /* v */
            iconst_4
            ishl
            aload 3 /* enc */
            iload 5 /* c */
            invokevirtual org.jcodings.Encoding.xdigitVal:(I)I
            iadd
            istore 4 /* v */
        end local 5 // int c
         3: .line 742
      StackMap locals:
      StackMap stack:
            iload 2 /* len */
            iinc 2 /* len */ -1
            ifle 5
            aload 3 /* enc */
            aload 0 /* bytes */
            iload 1 /* p */
            iinc 1 /* p */ 1
            baload
            sipush 255
            iand
            dup
            istore 5 /* c */
        start local 5 // int c
         4: invokevirtual org.jcodings.Encoding.isXDigit:(I)Z
            ifne 2
        end local 5 // int c
         5: .line 745
      StackMap locals:
      StackMap stack:
            iload 4 /* v */
            ireturn
        end local 4 // int v
        end local 3 // org.jcodings.Encoding enc
        end local 2 // int len
        end local 1 // int p
        end local 0 // byte[] bytes
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    6     0  bytes  [B
            0    6     1      p  I
            0    6     2    len  I
            0    6     3    enc  Lorg/jcodings/Encoding;
            1    6     4      v  I
            2    3     5      c  I
            4    5     5      c  I
    MethodParameters:
       Name  Flags
      bytes  
      p      
      len    
      enc    

  public static int hexLength(byte[], int, int);
    descriptor: ([BII)I
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // byte[] bytes
        start local 1 // int p
        start local 2 // int len
         0: .line 749
            aload 0 /* bytes */
            iload 1 /* p */
            iload 2 /* len */
            getstatic org.jcodings.specific.ASCIIEncoding.INSTANCE:Lorg/jcodings/specific/ASCIIEncoding;
            invokestatic org.jruby.util.StringSupport.hexLength:([BIILorg/jcodings/Encoding;)I
            ireturn
        end local 2 // int len
        end local 1 // int p
        end local 0 // byte[] bytes
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    1     0  bytes  [B
            0    1     1      p  I
            0    1     2    len  I
    MethodParameters:
       Name  Flags
      bytes  
      p      
      len    

  public static int hexLength(byte[], int, int, org.jcodings.Encoding);
    descriptor: ([BIILorg/jcodings/Encoding;)I
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=5, args_size=4
        start local 0 // byte[] bytes
        start local 1 // int p
        start local 2 // int len
        start local 3 // org.jcodings.Encoding enc
         0: .line 753
            iconst_0
            istore 4 /* hlen */
        start local 4 // int hlen
         1: .line 754
            goto 3
      StackMap locals: int
      StackMap stack:
         2: iinc 4 /* hlen */ 1
      StackMap locals:
      StackMap stack:
         3: iload 2 /* len */
            iinc 2 /* len */ -1
            ifle 4
            aload 3 /* enc */
            aload 0 /* bytes */
            iload 1 /* p */
            iinc 1 /* p */ 1
            baload
            sipush 255
            iand
            invokevirtual org.jcodings.Encoding.isXDigit:(I)Z
            ifne 2
         4: .line 755
      StackMap locals:
      StackMap stack:
            iload 4 /* hlen */
            ireturn
        end local 4 // int hlen
        end local 3 // org.jcodings.Encoding enc
        end local 2 // int len
        end local 1 // int p
        end local 0 // byte[] bytes
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    5     0  bytes  [B
            0    5     1      p  I
            0    5     2    len  I
            0    5     3    enc  Lorg/jcodings/Encoding;
            1    5     4   hlen  I
    MethodParameters:
       Name  Flags
      bytes  
      p      
      len    
      enc    

  public static int scanOct(byte[], int, int);
    descriptor: ([BII)I
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // byte[] bytes
        start local 1 // int p
        start local 2 // int len
         0: .line 759
            aload 0 /* bytes */
            iload 1 /* p */
            iload 2 /* len */
            getstatic org.jcodings.specific.ASCIIEncoding.INSTANCE:Lorg/jcodings/specific/ASCIIEncoding;
            invokestatic org.jruby.util.StringSupport.scanOct:([BIILorg/jcodings/Encoding;)I
            ireturn
        end local 2 // int len
        end local 1 // int p
        end local 0 // byte[] bytes
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    1     0  bytes  [B
            0    1     1      p  I
            0    1     2    len  I
    MethodParameters:
       Name  Flags
      bytes  
      p      
      len    

  public static int scanOct(byte[], int, int, org.jcodings.Encoding);
    descriptor: ([BIILorg/jcodings/Encoding;)I
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=6, args_size=4
        start local 0 // byte[] bytes
        start local 1 // int p
        start local 2 // int len
        start local 3 // org.jcodings.Encoding enc
         0: .line 763
            iconst_0
            istore 4 /* v */
        start local 4 // int v
         1: .line 765
            goto 3
        start local 5 // int c
         2: .line 766
      StackMap locals: int int
      StackMap stack:
            iload 4 /* v */
            iconst_3
            ishl
            iload 5 /* c */
            invokestatic org.jcodings.Encoding.digitVal:(I)I
            iadd
            istore 4 /* v */
        end local 5 // int c
         3: .line 765
      StackMap locals:
      StackMap stack:
            iload 2 /* len */
            iinc 2 /* len */ -1
            ifle 5
            aload 3 /* enc */
            aload 0 /* bytes */
            iload 1 /* p */
            iinc 1 /* p */ 1
            baload
            sipush 255
            iand
            dup
            istore 5 /* c */
        start local 5 // int c
         4: invokevirtual org.jcodings.Encoding.isDigit:(I)Z
            ifeq 5
            iload 5 /* c */
            bipush 56
            if_icmplt 2
        end local 5 // int c
         5: .line 768
      StackMap locals:
      StackMap stack:
            iload 4 /* v */
            ireturn
        end local 4 // int v
        end local 3 // org.jcodings.Encoding enc
        end local 2 // int len
        end local 1 // int p
        end local 0 // byte[] bytes
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    6     0  bytes  [B
            0    6     1      p  I
            0    6     2    len  I
            0    6     3    enc  Lorg/jcodings/Encoding;
            1    6     4      v  I
            2    3     5      c  I
            4    5     5      c  I
    MethodParameters:
       Name  Flags
      bytes  
      p      
      len    
      enc    

  public static int octLength(byte[], int, int);
    descriptor: ([BII)I
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // byte[] bytes
        start local 1 // int p
        start local 2 // int len
         0: .line 772
            aload 0 /* bytes */
            iload 1 /* p */
            iload 2 /* len */
            getstatic org.jcodings.specific.ASCIIEncoding.INSTANCE:Lorg/jcodings/specific/ASCIIEncoding;
            invokestatic org.jruby.util.StringSupport.octLength:([BIILorg/jcodings/Encoding;)I
            ireturn
        end local 2 // int len
        end local 1 // int p
        end local 0 // byte[] bytes
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    1     0  bytes  [B
            0    1     1      p  I
            0    1     2    len  I
    MethodParameters:
       Name  Flags
      bytes  
      p      
      len    

  public static int octLength(byte[], int, int, org.jcodings.Encoding);
    descriptor: ([BIILorg/jcodings/Encoding;)I
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=6, args_size=4
        start local 0 // byte[] bytes
        start local 1 // int p
        start local 2 // int len
        start local 3 // org.jcodings.Encoding enc
         0: .line 776
            iconst_0
            istore 4 /* olen */
        start local 4 // int olen
         1: .line 778
            goto 3
        start local 5 // int c
      StackMap locals: int int
      StackMap stack:
         2: iinc 4 /* olen */ 1
        end local 5 // int c
      StackMap locals:
      StackMap stack:
         3: iload 2 /* len */
            iinc 2 /* len */ -1
            ifle 5
            aload 3 /* enc */
            aload 0 /* bytes */
            iload 1 /* p */
            iinc 1 /* p */ 1
            baload
            sipush 255
            iand
            dup
            istore 5 /* c */
        start local 5 // int c
         4: invokevirtual org.jcodings.Encoding.isDigit:(I)Z
            ifeq 5
            iload 5 /* c */
            bipush 56
            if_icmplt 2
        end local 5 // int c
         5: .line 779
      StackMap locals:
      StackMap stack:
            iload 4 /* olen */
            ireturn
        end local 4 // int olen
        end local 3 // org.jcodings.Encoding enc
        end local 2 // int len
        end local 1 // int p
        end local 0 // byte[] bytes
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    6     0  bytes  [B
            0    6     1      p  I
            0    6     2    len  I
            0    6     3    enc  Lorg/jcodings/Encoding;
            1    6     4   olen  I
            2    3     5      c  I
            4    5     5      c  I
    MethodParameters:
       Name  Flags
      bytes  
      p      
      len    
      enc    

  public static final void checkStringSafety(org.jruby.Ruby, org.jruby.runtime.builtin.IRubyObject);
    descriptor: (Lorg/jruby/Ruby;Lorg/jruby/runtime/builtin/IRubyObject;)V
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    Code:
      stack=2, locals=7, args_size=2
        start local 0 // org.jruby.Ruby runtime
        start local 1 // org.jruby.runtime.builtin.IRubyObject value
         0: .line 789
            aload 1 /* value */
            invokeinterface org.jruby.runtime.builtin.IRubyObject.asString:()Lorg/jruby/RubyString;
            astore 2 /* s */
        start local 2 // org.jruby.RubyString s
         1: .line 790
            aload 2 /* s */
            invokevirtual org.jruby.RubyString.getByteList:()Lorg/jruby/util/ByteList;
            astore 3 /* bl */
        start local 3 // org.jruby.util.ByteList bl
         2: .line 791
            aload 3 /* bl */
            invokevirtual org.jruby.util.ByteList.getUnsafeBytes:()[B
            astore 4 /* array */
        start local 4 // byte[] array
         3: .line 792
            aload 3 /* bl */
            invokevirtual org.jruby.util.ByteList.length:()I
            istore 5 /* end */
        start local 5 // int end
         4: .line 793
            aload 3 /* bl */
            invokevirtual org.jruby.util.ByteList.begin:()I
            istore 6 /* i */
        start local 6 // int i
         5: goto 9
         6: .line 794
      StackMap locals: org.jruby.Ruby org.jruby.runtime.builtin.IRubyObject org.jruby.RubyString org.jruby.util.ByteList byte[] int int
      StackMap stack:
            aload 4 /* array */
            iload 6 /* i */
            baload
            ifne 8
         7: .line 795
            aload 0 /* runtime */
            ldc "string contains null byte"
            invokevirtual org.jruby.Ruby.newSecurityError:(Ljava/lang/String;)Lorg/jruby/exceptions/RaiseException;
            athrow
         8: .line 793
      StackMap locals:
      StackMap stack:
            iinc 6 /* i */ 1
      StackMap locals:
      StackMap stack:
         9: iload 6 /* i */
            iload 5 /* end */
            if_icmplt 6
        end local 6 // int i
        10: .line 798
            return
        end local 5 // int end
        end local 4 // byte[] array
        end local 3 // org.jruby.util.ByteList bl
        end local 2 // org.jruby.RubyString s
        end local 1 // org.jruby.runtime.builtin.IRubyObject value
        end local 0 // org.jruby.Ruby runtime
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   11     0  runtime  Lorg/jruby/Ruby;
            0   11     1    value  Lorg/jruby/runtime/builtin/IRubyObject;
            1   11     2        s  Lorg/jruby/RubyString;
            2   11     3       bl  Lorg/jruby/util/ByteList;
            3   11     4    array  [B
            4   11     5      end  I
            5   10     6        i  I
    MethodParameters:
         Name  Flags
      runtime  
      value    

  public static java.lang.String escapedCharFormat(int, boolean);
    descriptor: (IZ)Ljava/lang/String;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=3, args_size=2
        start local 0 // int c
        start local 1 // boolean isUnicode
         0: .line 803
            iload 1 /* isUnicode */
            ifeq 9
         1: .line 805
            iload 0 /* c */
            i2l
            ldc 4294967295
            land
            ldc 127
            lcmp
            ifge 4
            iload 0 /* c */
            invokestatic org.jcodings.Encoding.isAscii:(I)Z
            ifeq 4
            getstatic org.jcodings.specific.ASCIIEncoding.INSTANCE:Lorg/jcodings/specific/ASCIIEncoding;
            iload 0 /* c */
            invokevirtual org.jcodings.specific.ASCIIEncoding.isPrint:(I)Z
            ifeq 4
         2: .line 806
            ldc "%c"
            astore 2 /* format */
        start local 2 // java.lang.String format
         3: .line 807
            goto 13
        end local 2 // java.lang.String format
      StackMap locals:
      StackMap stack:
         4: iload 0 /* c */
            ldc 65536
            if_icmpge 7
         5: .line 808
            ldc "\\u%04X"
            astore 2 /* format */
        start local 2 // java.lang.String format
         6: .line 809
            goto 13
        end local 2 // java.lang.String format
         7: .line 810
      StackMap locals:
      StackMap stack:
            ldc "\\u{%X}"
            astore 2 /* format */
        start local 2 // java.lang.String format
         8: .line 812
            goto 13
        end local 2 // java.lang.String format
         9: .line 813
      StackMap locals:
      StackMap stack:
            iload 0 /* c */
            i2l
            ldc 4294967295
            land
            ldc 256
            lcmp
            ifge 12
        10: .line 814
            ldc "\\x%02X"
            astore 2 /* format */
        start local 2 // java.lang.String format
        11: .line 815
            goto 13
        end local 2 // java.lang.String format
        12: .line 816
      StackMap locals:
      StackMap stack:
            ldc "\\x{%X}"
            astore 2 /* format */
        start local 2 // java.lang.String format
        13: .line 819
      StackMap locals: java.lang.String
      StackMap stack:
            aload 2 /* format */
            areturn
        end local 2 // java.lang.String format
        end local 1 // boolean isUnicode
        end local 0 // int c
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   14     0          c  I
            0   14     1  isUnicode  Z
            3    4     2     format  Ljava/lang/String;
            6    7     2     format  Ljava/lang/String;
            8    9     2     format  Ljava/lang/String;
           11   12     2     format  Ljava/lang/String;
           13   14     2     format  Ljava/lang/String;
    MethodParameters:
           Name  Flags
      c          
      isUnicode  

  public static boolean isIncompleteChar(int);
    descriptor: (I)Z
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // int b
         0: .line 824
            iload 0 /* b */
            iconst_m1
            if_icmpge 1
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         1: iconst_0
            ireturn
        end local 0 // int b
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0     b  I
    MethodParameters:
      Name  Flags
      b     

  public static int bytesToFixBrokenTrailingCharacter(org.jruby.util.ByteList, int);
    descriptor: (Lorg/jruby/util/ByteList;I)I
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=5, locals=2, args_size=2
        start local 0 // org.jruby.util.ByteList val
        start local 1 // int usingLength
         0: .line 828
            aload 0 /* val */
            invokevirtual org.jruby.util.ByteList.getUnsafeBytes:()[B
            aload 0 /* val */
            invokevirtual org.jruby.util.ByteList.getBegin:()I
            aload 0 /* val */
            invokevirtual org.jruby.util.ByteList.getRealSize:()I
            aload 0 /* val */
            invokevirtual org.jruby.util.ByteList.getEncoding:()Lorg/jcodings/Encoding;
            iload 1 /* usingLength */
            invokestatic org.jruby.util.StringSupport.bytesToFixBrokenTrailingCharacter:([BIILorg/jcodings/Encoding;I)I
            ireturn
        end local 1 // int usingLength
        end local 0 // org.jruby.util.ByteList val
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    1     0          val  Lorg/jruby/util/ByteList;
            0    1     1  usingLength  I
    MethodParameters:
             Name  Flags
      val          
      usingLength  

  public static int bytesToFixBrokenTrailingCharacter(byte[], int, int, org.jcodings.Encoding, int);
    descriptor: ([BIILorg/jcodings/Encoding;I)I
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=6, locals=8, args_size=5
        start local 0 // byte[] bytes
        start local 1 // int begin
        start local 2 // int byteSize
        start local 3 // org.jcodings.Encoding encoding
        start local 4 // int usingLength
         0: .line 833
            iload 2 /* byteSize */
            ifle 12
         1: .line 835
            aload 3 /* encoding */
         2: .line 836
            aload 0 /* bytes */
         3: .line 837
            iload 1 /* begin */
         4: .line 838
            iload 1 /* begin */
            iload 4 /* usingLength */
            iadd
            iconst_1
            isub
         5: .line 839
            iload 1 /* begin */
            iload 4 /* usingLength */
            iadd
         6: .line 835
            invokevirtual org.jcodings.Encoding.leftAdjustCharHead:([BIII)I
            istore 5 /* charHead */
        start local 5 // int charHead
         7: .line 842
            iload 5 /* charHead */
            iload 1 /* begin */
            isub
            istore 5 /* charHead */
         8: .line 845
            aload 0 /* bytes */
            iload 1 /* begin */
            iload 5 /* charHead */
            iadd
            baload
            sipush 255
            iand
            i2b
            istore 6 /* byteHead */
        start local 6 // byte byteHead
         9: .line 848
            aload 3 /* encoding */
            iload 6 /* byteHead */
            invokevirtual org.jcodings.Encoding.length:(B)I
            istore 7 /* extra */
        start local 7 // int extra
        10: .line 851
            iload 7 /* extra */
            iload 4 /* usingLength */
            iload 5 /* charHead */
            isub
            isub
            istore 7 /* extra */
        11: .line 853
            iload 7 /* extra */
            ireturn
        end local 7 // int extra
        end local 6 // byte byteHead
        end local 5 // int charHead
        12: .line 856
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
        end local 4 // int usingLength
        end local 3 // org.jcodings.Encoding encoding
        end local 2 // int byteSize
        end local 1 // int begin
        end local 0 // byte[] bytes
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   13     0        bytes  [B
            0   13     1        begin  I
            0   13     2     byteSize  I
            0   13     3     encoding  Lorg/jcodings/Encoding;
            0   13     4  usingLength  I
            7   12     5     charHead  I
            9   12     6     byteHead  B
           10   12     7        extra  I
    MethodParameters:
             Name  Flags
      bytes        
      begin        
      byteSize     
      encoding     
      usingLength  

  public static int memchr(byte[], int, int, int);
    descriptor: ([BIII)I
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=5, args_size=4
        start local 0 // byte[] ptr
        start local 1 // int start
        start local 2 // int find
        start local 3 // int len
         0: .line 860
            iload 1 /* start */
            istore 4 /* i */
        start local 4 // int i
         1: goto 4
         2: .line 861
      StackMap locals: int
      StackMap stack:
            aload 0 /* ptr */
            iload 4 /* i */
            baload
            iload 2 /* find */
            if_icmpne 3
            iload 4 /* i */
            ireturn
         3: .line 860
      StackMap locals:
      StackMap stack:
            iinc 4 /* i */ 1
      StackMap locals:
      StackMap stack:
         4: iload 4 /* i */
            iload 1 /* start */
            iload 3 /* len */
            iadd
            if_icmplt 2
        end local 4 // int i
         5: .line 863
            iconst_m1
            ireturn
        end local 3 // int len
        end local 2 // int find
        end local 1 // int start
        end local 0 // byte[] ptr
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    6     0    ptr  [B
            0    6     1  start  I
            0    6     2   find  I
            0    6     3    len  I
            1    5     4      i  I
    MethodParameters:
       Name  Flags
      ptr    
      start  
      find   final
      len    

  public static org.jruby.RubyString checkEmbeddedNulls(org.jruby.Ruby, org.jruby.runtime.builtin.IRubyObject);
    descriptor: (Lorg/jruby/Ruby;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/RubyString;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=5, locals=9, args_size=2
        start local 0 // org.jruby.Ruby runtime
        start local 1 // org.jruby.runtime.builtin.IRubyObject ptr
         0: .line 868
            aload 1 /* ptr */
            invokeinterface org.jruby.runtime.builtin.IRubyObject.convertToString:()Lorg/jruby/RubyString;
            astore 2 /* s */
        start local 2 // org.jruby.RubyString s
         1: .line 869
            aload 2 /* s */
            invokevirtual org.jruby.RubyString.getByteList:()Lorg/jruby/util/ByteList;
            astore 3 /* sByteList */
        start local 3 // org.jruby.util.ByteList sByteList
         2: .line 870
            aload 3 /* sByteList */
            invokevirtual org.jruby.util.ByteList.unsafeBytes:()[B
            astore 4 /* sBytes */
        start local 4 // byte[] sBytes
         3: .line 871
            aload 3 /* sByteList */
            invokevirtual org.jruby.util.ByteList.begin:()I
            istore 5 /* beg */
        start local 5 // int beg
         4: .line 872
            aload 3 /* sByteList */
            invokevirtual org.jruby.util.ByteList.length:()I
            istore 6 /* len */
        start local 6 // int len
         5: .line 873
            aload 2 /* s */
            invokevirtual org.jruby.RubyString.getEncoding:()Lorg/jcodings/Encoding;
            astore 7 /* enc */
        start local 7 // org.jcodings.Encoding enc
         6: .line 874
            aload 7 /* enc */
            invokevirtual org.jcodings.Encoding.minLength:()I
            istore 8 /* minlen */
        start local 8 // int minlen
         7: .line 876
            iload 8 /* minlen */
            iconst_1
            if_icmple 11
         8: .line 877
            aload 4 /* sBytes */
            iload 5 /* beg */
            iload 6 /* len */
            iload 8 /* minlen */
            aload 7 /* enc */
            invokestatic org.jruby.util.StringSupport.strNullChar:([BIIILorg/jcodings/Encoding;)I
            iconst_m1
            if_icmpeq 10
         9: .line 878
            aload 0 /* runtime */
            ldc "string contains null char"
            invokevirtual org.jruby.Ruby.newArgumentError:(Ljava/lang/String;)Lorg/jruby/exceptions/RaiseException;
            athrow
        10: .line 880
      StackMap locals: org.jruby.Ruby org.jruby.runtime.builtin.IRubyObject org.jruby.RubyString org.jruby.util.ByteList byte[] int int org.jcodings.Encoding int
      StackMap stack:
            aload 2 /* s */
            aload 4 /* sBytes */
            iload 5 /* beg */
            iload 6 /* len */
            iload 8 /* minlen */
            invokestatic org.jruby.util.StringSupport.strFillTerm:(Lorg/jruby/RubyString;[BIII)Lorg/jruby/RubyString;
            areturn
        11: .line 882
      StackMap locals:
      StackMap stack:
            aload 4 /* sBytes */
            iload 5 /* beg */
            iconst_0
            iload 6 /* len */
            invokestatic org.jruby.util.StringSupport.memchr:([BIII)I
            iconst_m1
            if_icmpeq 13
        12: .line 883
            aload 0 /* runtime */
            ldc "string contains null byte"
            invokevirtual org.jruby.Ruby.newArgumentError:(Ljava/lang/String;)Lorg/jruby/exceptions/RaiseException;
            athrow
        13: .line 888
      StackMap locals:
      StackMap stack:
            aload 2 /* s */
            areturn
        end local 8 // int minlen
        end local 7 // org.jcodings.Encoding enc
        end local 6 // int len
        end local 5 // int beg
        end local 4 // byte[] sBytes
        end local 3 // org.jruby.util.ByteList sByteList
        end local 2 // org.jruby.RubyString s
        end local 1 // org.jruby.runtime.builtin.IRubyObject ptr
        end local 0 // org.jruby.Ruby runtime
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   14     0    runtime  Lorg/jruby/Ruby;
            0   14     1        ptr  Lorg/jruby/runtime/builtin/IRubyObject;
            1   14     2          s  Lorg/jruby/RubyString;
            2   14     3  sByteList  Lorg/jruby/util/ByteList;
            3   14     4     sBytes  [B
            4   14     5        beg  I
            5   14     6        len  I
            6   14     7        enc  Lorg/jcodings/Encoding;
            7   14     8     minlen  I
    MethodParameters:
         Name  Flags
      runtime  
      ptr      

  private static int strNullChar(byte[], int, int, int, org.jcodings.Encoding);
    descriptor: ([BIIILorg/jcodings/Encoding;)I
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=5, locals=6, args_size=5
        start local 0 // byte[] sBytes
        start local 1 // int s
        start local 2 // int len
        start local 3 // int minlen
        start local 4 // org.jcodings.Encoding enc
         0: .line 893
            iload 1 /* s */
            iload 2 /* len */
            iadd
            istore 5 /* e */
        start local 5 // int e
         1: .line 895
            goto 4
         2: .line 896
      StackMap locals: int
      StackMap stack:
            aload 0 /* sBytes */
            iload 1 /* s */
            iload 3 /* minlen */
            invokestatic org.jruby.util.StringSupport.zeroFilled:([BII)Z
            ifeq 3
            iload 1 /* s */
            ireturn
         3: .line 895
      StackMap locals:
      StackMap stack:
            iload 1 /* s */
            aload 4 /* enc */
            aload 0 /* sBytes */
            iload 1 /* s */
            iload 5 /* e */
            invokevirtual org.jcodings.Encoding.length:([BII)I
            iadd
            istore 1 /* s */
      StackMap locals:
      StackMap stack:
         4: iload 1 /* s */
            iload 3 /* minlen */
            iadd
            iload 5 /* e */
            if_icmple 2
         5: .line 898
            iconst_m1
            ireturn
        end local 5 // int e
        end local 4 // org.jcodings.Encoding enc
        end local 3 // int minlen
        end local 2 // int len
        end local 1 // int s
        end local 0 // byte[] sBytes
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    6     0  sBytes  [B
            0    6     1       s  I
            0    6     2     len  I
            0    6     3  minlen  I
            0    6     4     enc  Lorg/jcodings/Encoding;
            1    6     5       e  I
    MethodParameters:
        Name  Flags
      sBytes  
      s       
      len     
      minlen  final
      enc     

  private static boolean zeroFilled(byte[], int, int);
    descriptor: ([BII)Z
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=3, args_size=3
        start local 0 // byte[] sBytes
        start local 1 // int s
        start local 2 // int n
         0: .line 903
            goto 3
         1: .line 904
      StackMap locals:
      StackMap stack:
            aload 0 /* sBytes */
            iload 1 /* s */
            iinc 1 /* s */ 1
            baload
            ifeq 2
            iconst_0
            ireturn
         2: .line 903
      StackMap locals:
      StackMap stack:
            iinc 2 /* n */ -1
      StackMap locals:
      StackMap stack:
         3: iload 2 /* n */
            ifgt 1
         4: .line 906
            iconst_1
            ireturn
        end local 2 // int n
        end local 1 // int s
        end local 0 // byte[] sBytes
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    5     0  sBytes  [B
            0    5     1       s  I
            0    5     2       n  I
    MethodParameters:
        Name  Flags
      sBytes  
      s       
      n       

  private static org.jruby.RubyString strFillTerm(org.jruby.RubyString, byte[], int, int, int);
    descriptor: (Lorg/jruby/RubyString;[BIII)Lorg/jruby/RubyString;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=4, locals=6, args_size=5
        start local 0 // org.jruby.RubyString str
        start local 1 // byte[] sBytes
        start local 2 // int beg
        start local 3 // int len
        start local 4 // int termlen
         0: .line 911
            aload 1 /* sBytes */
            arraylength
            iload 2 /* beg */
            isub
            istore 5 /* capa */
        start local 5 // int capa
         1: .line 913
            iload 5 /* capa */
            iload 3 /* len */
            iload 4 /* termlen */
            iadd
            if_icmpge 6
         2: .line 915
            aload 0 /* str */
            iload 3 /* len */
            iload 4 /* termlen */
            iadd
            invokevirtual org.jruby.RubyString.makeIndependent:(I)Lorg/jruby/RubyString;
            astore 0 /* str */
         3: .line 916
            aload 0 /* str */
            invokevirtual org.jruby.RubyString.getByteList:()Lorg/jruby/util/ByteList;
            invokevirtual org.jruby.util.ByteList.unsafeBytes:()[B
            astore 1 /* sBytes */
         4: .line 917
            aload 0 /* str */
            invokevirtual org.jruby.RubyString.getByteList:()Lorg/jruby/util/ByteList;
            invokevirtual org.jruby.util.ByteList.begin:()I
            istore 2 /* beg */
         5: .line 918
            goto 11
         6: .line 919
      StackMap locals: int
      StackMap stack:
            aload 0 /* str */
            invokevirtual org.jruby.RubyString.independent:()Z
            ifne 11
         7: .line 920
            aload 1 /* sBytes */
            iload 2 /* beg */
            iload 3 /* len */
            iadd
            iload 4 /* termlen */
            invokestatic org.jruby.util.StringSupport.zeroFilled:([BII)Z
            ifne 11
         8: .line 921
            aload 0 /* str */
            iload 3 /* len */
            iload 4 /* termlen */
            iadd
            invokevirtual org.jruby.RubyString.makeIndependent:(I)Lorg/jruby/RubyString;
            astore 0 /* str */
         9: .line 922
            aload 0 /* str */
            invokevirtual org.jruby.RubyString.getByteList:()Lorg/jruby/util/ByteList;
            invokevirtual org.jruby.util.ByteList.unsafeBytes:()[B
            astore 1 /* sBytes */
        10: .line 923
            aload 0 /* str */
            invokevirtual org.jruby.RubyString.getByteList:()Lorg/jruby/util/ByteList;
            invokevirtual org.jruby.util.ByteList.begin:()I
            istore 2 /* beg */
        11: .line 927
      StackMap locals:
      StackMap stack:
            aload 1 /* sBytes */
            iload 2 /* beg */
            iload 3 /* len */
            iload 4 /* termlen */
            invokestatic org.jruby.util.StringSupport.TERM_FILL:([BIII)V
        12: .line 928
            aload 0 /* str */
            areturn
        end local 5 // int capa
        end local 4 // int termlen
        end local 3 // int len
        end local 2 // int beg
        end local 1 // byte[] sBytes
        end local 0 // org.jruby.RubyString str
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   13     0      str  Lorg/jruby/RubyString;
            0   13     1   sBytes  [B
            0   13     2      beg  I
            0   13     3      len  I
            0   13     4  termlen  I
            1   13     5     capa  I
    MethodParameters:
         Name  Flags
      str      
      sBytes   
      beg      
      len      
      termlen  

  private static void TERM_FILL(byte[], int, int, int);
    descriptor: ([BIII)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=4, locals=5, args_size=4
        start local 0 // byte[] ptr
        start local 1 // int beg
        start local 2 // int len
        start local 3 // int termlen
         0: .line 932
            iload 1 /* beg */
            iload 2 /* len */
            iadd
            istore 4 /* p */
        start local 4 // int p
         1: aload 0 /* ptr */
            iload 4 /* p */
            iload 4 /* p */
            iload 3 /* termlen */
            iadd
            iconst_0
            invokestatic java.util.Arrays.fill:([BIIB)V
         2: .line 933
            return
        end local 4 // int p
        end local 3 // int termlen
        end local 2 // int len
        end local 1 // int beg
        end local 0 // byte[] ptr
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    3     0      ptr  [B
            0    3     1      beg  I
            0    3     2      len  I
            0    3     3  termlen  I
            1    3     4        p  I
    MethodParameters:
         Name  Flags
      ptr      
      beg      final
      len      final
      termlen  final

  public static int positionEndForScan(org.jruby.util.ByteList, org.joni.Matcher, org.jcodings.Encoding, int, int);
    descriptor: (Lorg/jruby/util/ByteList;Lorg/joni/Matcher;Lorg/jcodings/Encoding;II)I
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=5, locals=6, args_size=5
        start local 0 // org.jruby.util.ByteList value
        start local 1 // org.joni.Matcher matcher
        start local 2 // org.jcodings.Encoding enc
        start local 3 // int begin
        start local 4 // int range
         0: .line 940
            aload 1 /* matcher */
            invokevirtual org.joni.Matcher.getEnd:()I
            istore 5 /* end */
        start local 5 // int end
         1: .line 941
            aload 1 /* matcher */
            invokevirtual org.joni.Matcher.getBegin:()I
            iload 5 /* end */
            if_icmpne 5
         2: .line 942
            aload 0 /* value */
            invokevirtual org.jruby.util.ByteList.getRealSize:()I
            iload 5 /* end */
            if_icmple 4
         3: .line 943
            iload 5 /* end */
            aload 2 /* enc */
            aload 0 /* value */
            invokevirtual org.jruby.util.ByteList.getUnsafeBytes:()[B
            iload 3 /* begin */
            iload 5 /* end */
            iadd
            iload 4 /* range */
            invokevirtual org.jcodings.Encoding.length:([BII)I
            iadd
            ireturn
         4: .line 945
      StackMap locals: int
      StackMap stack:
            iload 5 /* end */
            iconst_1
            iadd
            ireturn
         5: .line 948
      StackMap locals:
      StackMap stack:
            iload 5 /* end */
            ireturn
        end local 5 // int end
        end local 4 // int range
        end local 3 // int begin
        end local 2 // org.jcodings.Encoding enc
        end local 1 // org.joni.Matcher matcher
        end local 0 // org.jruby.util.ByteList value
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    6     0    value  Lorg/jruby/util/ByteList;
            0    6     1  matcher  Lorg/joni/Matcher;
            0    6     2      enc  Lorg/jcodings/Encoding;
            0    6     3    begin  I
            0    6     4    range  I
            1    6     5      end  I
    MethodParameters:
         Name  Flags
      value    
      matcher  
      enc      
      begin    
      range    

  public static org.jruby.util.ByteList dumpCommon(org.jruby.Ruby, org.jruby.util.ByteList);
    descriptor: (Lorg/jruby/Ruby;Lorg/jruby/util/ByteList;)Lorg/jruby/util/ByteList;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // org.jruby.Ruby runtime
        start local 1 // org.jruby.util.ByteList bytelist
         0: .line 956
            aload 0 /* runtime */
            aload 1 /* bytelist */
            iconst_0
            invokestatic org.jruby.util.StringSupport.dumpCommon:(Lorg/jruby/Ruby;Lorg/jruby/util/ByteList;Z)Lorg/jruby/util/ByteList;
            areturn
        end local 1 // org.jruby.util.ByteList bytelist
        end local 0 // org.jruby.Ruby runtime
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    1     0   runtime  Lorg/jruby/Ruby;
            0    1     1  bytelist  Lorg/jruby/util/ByteList;
    MethodParameters:
          Name  Flags
      runtime   
      bytelist  

  public static org.jruby.util.ByteList dumpCommon(org.jruby.Ruby, org.jruby.util.ByteList, boolean);
    descriptor: (Lorg/jruby/Ruby;Lorg/jruby/util/ByteList;Z)Lorg/jruby/util/ByteList;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=5, locals=15, args_size=3
        start local 0 // org.jruby.Ruby runtime
        start local 1 // org.jruby.util.ByteList byteList
        start local 2 // boolean quoteOnlyIfNeeded
         0: .line 960
            aload 1 /* byteList */
            invokevirtual org.jruby.util.ByteList.getEncoding:()Lorg/jcodings/Encoding;
            astore 3 /* enc */
        start local 3 // org.jcodings.Encoding enc
         1: .line 961
            iconst_0
            istore 4 /* includingsNonprintable */
        start local 4 // boolean includingsNonprintable
         2: .line 963
            aload 1 /* byteList */
            invokevirtual org.jruby.util.ByteList.getBegin:()I
            istore 5 /* p */
        start local 5 // int p
         3: .line 964
            iload 5 /* p */
            aload 1 /* byteList */
            invokevirtual org.jruby.util.ByteList.getRealSize:()I
            iadd
            istore 6 /* end */
        start local 6 // int end
         4: .line 965
            aload 1 /* byteList */
            invokevirtual org.jruby.util.ByteList.getUnsafeBytes:()[B
            astore 7 /* bytes */
        start local 7 // byte[] bytes
         5: .line 967
            iconst_2
            istore 8 /* len */
        start local 8 // int len
         6: .line 968
            goto 33
         7: .line 969
      StackMap locals: org.jruby.Ruby org.jruby.util.ByteList int org.jcodings.Encoding int int int byte[] int
      StackMap stack:
            aload 7 /* bytes */
            iload 5 /* p */
            iinc 5 /* p */ 1
            baload
            sipush 255
            iand
            istore 9 /* c */
        start local 9 // int c
         8: .line 971
            iload 9 /* c */
            lookupswitch { // 11
                    7: 9
                    8: 9
                    9: 9
                   10: 9
                   11: 9
                   12: 9
                   13: 9
                   27: 9
                   34: 9
                   35: 11
                   92: 9
              default: 15
          }
         9: .line 974
      StackMap locals: int
      StackMap stack:
            iinc 8 /* len */ 2
        10: .line 975
            goto 33
        11: .line 977
      StackMap locals:
      StackMap stack:
            iload 8 /* len */
            aload 7 /* bytes */
            iload 5 /* p */
            iload 6 /* end */
            invokestatic org.jruby.util.StringSupport.isEVStr:([BII)Z
            ifeq 12
            iconst_2
            goto 13
      StackMap locals:
      StackMap stack: int
        12: iconst_1
      StackMap locals: org.jruby.Ruby org.jruby.util.ByteList int org.jcodings.Encoding int int int byte[] int int
      StackMap stack: int int
        13: iadd
            istore 8 /* len */
        14: .line 978
            goto 33
        15: .line 980
      StackMap locals:
      StackMap stack:
            getstatic org.jcodings.specific.ASCIIEncoding.INSTANCE:Lorg/jcodings/specific/ASCIIEncoding;
            iload 9 /* c */
            invokevirtual org.jcodings.specific.ASCIIEncoding.isPrint:(I)Z
            ifeq 18
        16: .line 981
            iinc 8 /* len */ 1
        17: .line 982
            goto 33
        18: .line 983
      StackMap locals:
      StackMap stack:
            iconst_1
            istore 4 /* includingsNonprintable */
        19: .line 984
            aload 3 /* enc */
            invokevirtual org.jcodings.Encoding.isUTF8:()Z
            ifeq 32
            iload 9 /* c */
            bipush 127
            if_icmple 32
        20: .line 985
            aload 3 /* enc */
            aload 7 /* bytes */
            iload 5 /* p */
            iconst_1
            isub
            iload 6 /* end */
            invokestatic org.jruby.util.StringSupport.preciseLength:(Lorg/jcodings/Encoding;[BII)I
            iconst_1
            isub
            istore 10 /* n */
        start local 10 // int n
        21: .line 986
            iload 10 /* n */
            invokestatic org.jruby.util.StringSupport.MBCLEN_CHARFOUND_LEN:(I)I
            ifle 32
        22: .line 987
            aload 0 /* runtime */
            aload 3 /* enc */
            aload 7 /* bytes */
            iload 5 /* p */
            iconst_1
            isub
            iload 6 /* end */
            invokestatic org.jruby.util.StringSupport.codePoint:(Lorg/jruby/Ruby;Lorg/jcodings/Encoding;[BII)I
            istore 11 /* cc */
        start local 11 // int cc
        23: .line 988
            iload 11 /* cc */
            ldc 65535
            if_icmpgt 26
        24: .line 989
            iinc 8 /* len */ 6
        25: .line 990
            goto 30
      StackMap locals: int int
      StackMap stack:
        26: iload 11 /* cc */
            ldc 1048575
            if_icmpgt 29
        27: .line 991
            iinc 8 /* len */ 9
        28: .line 992
            goto 30
        29: .line 993
      StackMap locals:
      StackMap stack:
            iinc 8 /* len */ 10
        30: .line 995
      StackMap locals:
      StackMap stack:
            iload 5 /* p */
            iload 10 /* n */
            invokestatic org.jruby.util.StringSupport.MBCLEN_CHARFOUND_LEN:(I)I
            iconst_1
            isub
            iadd
            istore 5 /* p */
        31: .line 996
            goto 33
        end local 11 // int cc
        end local 10 // int n
        32: .line 999
      StackMap locals:
      StackMap stack:
            iinc 8 /* len */ 4
        end local 9 // int c
        33: .line 968
      StackMap locals:
      StackMap stack:
            iload 5 /* p */
            iload 6 /* end */
            if_icmplt 7
        34: .line 1005
            aload 3 /* enc */
            invokevirtual org.jcodings.Encoding.isAsciiCompatible:()Z
            ifne 36
        35: .line 1006
            iload 8 /* len */
            ldc ".force_encoding(\""
            invokevirtual java.lang.String.length:()I
            aload 3 /* enc */
            invokevirtual org.jcodings.Encoding.getName:()[B
            arraylength
            iadd
            ldc "\")"
            invokevirtual java.lang.String.length:()I
            iadd
            iadd
            istore 8 /* len */
        36: .line 1009
      StackMap locals:
      StackMap stack:
            new org.jruby.util.ByteList
            dup
            iload 8 /* len */
            invokespecial org.jruby.util.ByteList.<init>:(I)V
            astore 9 /* outBytes */
        start local 9 // org.jruby.util.ByteList outBytes
        37: .line 1010
            aload 9 /* outBytes */
            invokevirtual org.jruby.util.ByteList.getUnsafeBytes:()[B
            astore 10 /* out */
        start local 10 // byte[] out
        38: .line 1011
            iconst_0
            istore 11 /* q */
        start local 11 // int q
        39: .line 1012
            aload 1 /* byteList */
            invokevirtual org.jruby.util.ByteList.getBegin:()I
            istore 5 /* p */
        40: .line 1013
            iload 5 /* p */
            aload 1 /* byteList */
            invokevirtual org.jruby.util.ByteList.getRealSize:()I
            iadd
            istore 6 /* end */
        41: .line 1015
            iload 2 /* quoteOnlyIfNeeded */
            ifeq 42
            iload 4 /* includingsNonprintable */
            ifne 43
      StackMap locals: org.jruby.util.ByteList byte[] int
      StackMap stack:
        42: iload 2 /* quoteOnlyIfNeeded */
            ifne 78
      StackMap locals:
      StackMap stack:
        43: aload 10 /* out */
            iload 11 /* q */
            iinc 11 /* q */ 1
            bipush 34
            bastore
        44: .line 1016
            goto 78
        45: .line 1017
      StackMap locals:
      StackMap stack:
            aload 7 /* bytes */
            iload 5 /* p */
            iinc 5 /* p */ 1
            baload
            sipush 255
            iand
            istore 12 /* c */
        start local 12 // int c
        46: .line 1018
            iload 12 /* c */
            lookupswitch { // 11
                    7: 57
                    8: 56
                    9: 53
                   10: 51
                   11: 55
                   12: 54
                   13: 52
                   27: 58
                   34: 47
                   35: 48
                   92: 47
              default: 59
          }
        47: .line 1020
      StackMap locals: int
      StackMap stack:
            aload 10 /* out */
            iload 11 /* q */
            iinc 11 /* q */ 1
            bipush 92
            bastore
            aload 10 /* out */
            iload 11 /* q */
            iinc 11 /* q */ 1
            iload 12 /* c */
            i2b
            bastore
            goto 78
        48: .line 1022
      StackMap locals:
      StackMap stack:
            aload 7 /* bytes */
            iload 5 /* p */
            iload 6 /* end */
            invokestatic org.jruby.util.StringSupport.isEVStr:([BII)Z
            ifeq 49
            aload 10 /* out */
            iload 11 /* q */
            iinc 11 /* q */ 1
            bipush 92
            bastore
        49: .line 1023
      StackMap locals:
      StackMap stack:
            aload 10 /* out */
            iload 11 /* q */
            iinc 11 /* q */ 1
            bipush 35
            bastore
        50: .line 1024
            goto 78
        51: .line 1026
      StackMap locals:
      StackMap stack:
            aload 10 /* out */
            iload 11 /* q */
            iinc 11 /* q */ 1
            bipush 92
            bastore
            aload 10 /* out */
            iload 11 /* q */
            iinc 11 /* q */ 1
            bipush 110
            bastore
            goto 78
        52: .line 1028
      StackMap locals:
      StackMap stack:
            aload 10 /* out */
            iload 11 /* q */
            iinc 11 /* q */ 1
            bipush 92
            bastore
            aload 10 /* out */
            iload 11 /* q */
            iinc 11 /* q */ 1
            bipush 114
            bastore
            goto 78
        53: .line 1030
      StackMap locals:
      StackMap stack:
            aload 10 /* out */
            iload 11 /* q */
            iinc 11 /* q */ 1
            bipush 92
            bastore
            aload 10 /* out */
            iload 11 /* q */
            iinc 11 /* q */ 1
            bipush 116
            bastore
            goto 78
        54: .line 1032
      StackMap locals:
      StackMap stack:
            aload 10 /* out */
            iload 11 /* q */
            iinc 11 /* q */ 1
            bipush 92
            bastore
            aload 10 /* out */
            iload 11 /* q */
            iinc 11 /* q */ 1
            bipush 102
            bastore
            goto 78
        55: .line 1034
      StackMap locals:
      StackMap stack:
            aload 10 /* out */
            iload 11 /* q */
            iinc 11 /* q */ 1
            bipush 92
            bastore
            aload 10 /* out */
            iload 11 /* q */
            iinc 11 /* q */ 1
            bipush 118
            bastore
            goto 78
        56: .line 1036
      StackMap locals:
      StackMap stack:
            aload 10 /* out */
            iload 11 /* q */
            iinc 11 /* q */ 1
            bipush 92
            bastore
            aload 10 /* out */
            iload 11 /* q */
            iinc 11 /* q */ 1
            bipush 98
            bastore
            goto 78
        57: .line 1038
      StackMap locals:
      StackMap stack:
            aload 10 /* out */
            iload 11 /* q */
            iinc 11 /* q */ 1
            bipush 92
            bastore
            aload 10 /* out */
            iload 11 /* q */
            iinc 11 /* q */ 1
            bipush 97
            bastore
            goto 78
        58: .line 1040
      StackMap locals:
      StackMap stack:
            aload 10 /* out */
            iload 11 /* q */
            iinc 11 /* q */ 1
            bipush 92
            bastore
            aload 10 /* out */
            iload 11 /* q */
            iinc 11 /* q */ 1
            bipush 101
            bastore
            goto 78
        59: .line 1042
      StackMap locals:
      StackMap stack:
            getstatic org.jcodings.specific.ASCIIEncoding.INSTANCE:Lorg/jcodings/specific/ASCIIEncoding;
            iload 12 /* c */
            invokevirtual org.jcodings.specific.ASCIIEncoding.isPrint:(I)Z
            ifeq 62
        60: .line 1043
            aload 10 /* out */
            iload 11 /* q */
            iinc 11 /* q */ 1
            iload 12 /* c */
            i2b
            bastore
        61: .line 1044
            goto 78
        62: .line 1045
      StackMap locals:
      StackMap stack:
            aload 10 /* out */
            iload 11 /* q */
            iinc 11 /* q */ 1
            bipush 92
            bastore
        63: .line 1046
            aload 9 /* outBytes */
            iload 11 /* q */
            invokevirtual org.jruby.util.ByteList.setRealSize:(I)V
        64: .line 1047
            aload 3 /* enc */
            invokevirtual org.jcodings.Encoding.isUTF8:()Z
            ifeq 76
        65: .line 1048
            aload 3 /* enc */
            aload 7 /* bytes */
            iload 5 /* p */
            iconst_1
            isub
            iload 6 /* end */
            invokestatic org.jruby.util.StringSupport.preciseLength:(Lorg/jcodings/Encoding;[BII)I
            iconst_1
            isub
            istore 13 /* n */
        start local 13 // int n
        66: .line 1049
            iload 13 /* n */
            invokestatic org.jruby.util.StringSupport.MBCLEN_CHARFOUND_LEN:(I)I
            ifle 76
        67: .line 1050
            aload 0 /* runtime */
            aload 3 /* enc */
            aload 7 /* bytes */
            iload 5 /* p */
            iconst_1
            isub
            iload 6 /* end */
            invokestatic org.jruby.util.StringSupport.codePoint:(Lorg/jruby/Ruby;Lorg/jcodings/Encoding;[BII)I
            istore 14 /* cc */
        start local 14 // int cc
        68: .line 1051
            aload 9 /* outBytes */
            iload 11 /* q */
            invokevirtual org.jruby.util.ByteList.setRealSize:(I)V
        69: .line 1052
            iload 5 /* p */
            iload 13 /* n */
            iadd
            istore 5 /* p */
        70: .line 1053
            iload 14 /* cc */
            ldc 65535
            if_icmpgt 73
        71: .line 1054
            aload 0 /* runtime */
            aload 9 /* outBytes */
            ldc "u%04X"
            iload 14 /* cc */
            invokestatic org.jruby.util.Sprintf.sprintf:(Lorg/jruby/Ruby;Lorg/jruby/util/ByteList;Ljava/lang/CharSequence;I)Z
            pop
        72: .line 1055
            goto 74
        73: .line 1056
      StackMap locals: int int
      StackMap stack:
            aload 0 /* runtime */
            aload 9 /* outBytes */
            ldc "u{%X}"
            iload 14 /* cc */
            invokestatic org.jruby.util.Sprintf.sprintf:(Lorg/jruby/Ruby;Lorg/jruby/util/ByteList;Ljava/lang/CharSequence;I)Z
            pop
        74: .line 1058
      StackMap locals:
      StackMap stack:
            aload 9 /* outBytes */
            invokevirtual org.jruby.util.ByteList.getRealSize:()I
            istore 11 /* q */
        75: .line 1059
            goto 78
        end local 14 // int cc
        end local 13 // int n
        76: .line 1062
      StackMap locals:
      StackMap stack:
            aload 0 /* runtime */
            aload 9 /* outBytes */
            ldc "x%02X"
            iload 12 /* c */
            invokestatic org.jruby.util.Sprintf.sprintf:(Lorg/jruby/Ruby;Lorg/jruby/util/ByteList;Ljava/lang/CharSequence;I)Z
            pop
        77: .line 1063
            aload 9 /* outBytes */
            invokevirtual org.jruby.util.ByteList.getRealSize:()I
            istore 11 /* q */
        end local 12 // int c
        78: .line 1016
      StackMap locals:
      StackMap stack:
            iload 5 /* p */
            iload 6 /* end */
            if_icmplt 45
        79: .line 1067
            iload 2 /* quoteOnlyIfNeeded */
            ifeq 80
            iload 4 /* includingsNonprintable */
            ifne 81
      StackMap locals:
      StackMap stack:
        80: iload 2 /* quoteOnlyIfNeeded */
            ifne 82
      StackMap locals:
      StackMap stack:
        81: aload 10 /* out */
            iload 11 /* q */
            iinc 11 /* q */ 1
            bipush 34
            bastore
        82: .line 1068
      StackMap locals:
      StackMap stack:
            aload 9 /* outBytes */
            iload 11 /* q */
            invokevirtual org.jruby.util.ByteList.setRealSize:(I)V
        83: .line 1069
            getstatic org.jruby.util.StringSupport.$assertionsDisabled:Z
            ifne 84
            aload 10 /* out */
            aload 9 /* outBytes */
            invokevirtual org.jruby.util.ByteList.getUnsafeBytes:()[B
            if_acmpeq 84
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
        84: .line 1071
      StackMap locals:
      StackMap stack:
            aload 9 /* outBytes */
            areturn
        end local 11 // int q
        end local 10 // byte[] out
        end local 9 // org.jruby.util.ByteList outBytes
        end local 8 // int len
        end local 7 // byte[] bytes
        end local 6 // int end
        end local 5 // int p
        end local 4 // boolean includingsNonprintable
        end local 3 // org.jcodings.Encoding enc
        end local 2 // boolean quoteOnlyIfNeeded
        end local 1 // org.jruby.util.ByteList byteList
        end local 0 // org.jruby.Ruby runtime
      LocalVariableTable:
        Start  End  Slot                    Name  Signature
            0   85     0                 runtime  Lorg/jruby/Ruby;
            0   85     1                byteList  Lorg/jruby/util/ByteList;
            0   85     2       quoteOnlyIfNeeded  Z
            1   85     3                     enc  Lorg/jcodings/Encoding;
            2   85     4  includingsNonprintable  Z
            3   85     5                       p  I
            4   85     6                     end  I
            5   85     7                   bytes  [B
            6   85     8                     len  I
            8   33     9                       c  I
           21   32    10                       n  I
           23   32    11                      cc  I
           37   85     9                outBytes  Lorg/jruby/util/ByteList;
           38   85    10                     out  [B
           39   85    11                       q  I
           46   78    12                       c  I
           66   76    13                       n  I
           68   76    14                      cc  I
    MethodParameters:
                   Name  Flags
      runtime            
      byteList           
      quoteOnlyIfNeeded  

  public static boolean isEVStr(byte[], int, int);
    descriptor: ([BII)Z
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=3, args_size=3
        start local 0 // byte[] bytes
        start local 1 // int p
        start local 2 // int end
         0: .line 1075
            iload 1 /* p */
            iload 2 /* end */
            if_icmpge 1
            aload 0 /* bytes */
            iload 1 /* p */
            baload
            sipush 255
            iand
            invokestatic org.jruby.util.StringSupport.isEVStr:(I)Z
            goto 2
      StackMap locals:
      StackMap stack:
         1: iconst_0
      StackMap locals:
      StackMap stack: int
         2: ireturn
        end local 2 // int end
        end local 1 // int p
        end local 0 // byte[] bytes
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    3     0  bytes  [B
            0    3     1      p  I
            0    3     2    end  I
    MethodParameters:
       Name  Flags
      bytes  
      p      
      end    

  public static boolean isEVStr(int);
    descriptor: (I)Z
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // int c
         0: .line 1079
            iload 0 /* c */
            bipush 36
            if_icmpeq 1
            iload 0 /* c */
            bipush 64
            if_icmpeq 1
            iload 0 /* c */
            bipush 123
            if_icmpeq 1
            iconst_0
            ireturn
      StackMap locals:
      StackMap stack:
         1: iconst_1
            ireturn
        end local 0 // int c
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0     c  I
    MethodParameters:
      Name  Flags
      c     

  public static int strCount(org.jruby.util.ByteList, boolean[], org.jruby.util.StringSupport$TrTables, org.jcodings.Encoding);
    descriptor: (Lorg/jruby/util/ByteList;[ZLorg/jruby/util/StringSupport$TrTables;Lorg/jcodings/Encoding;)I
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=11, args_size=4
        start local 0 // org.jruby.util.ByteList str
        start local 1 // boolean[] table
        start local 2 // org.jruby.util.StringSupport$TrTables tables
        start local 3 // org.jcodings.Encoding enc
         0: .line 1086
            aload 0 /* str */
            invokevirtual org.jruby.util.ByteList.getUnsafeBytes:()[B
            astore 4 /* bytes */
        start local 4 // byte[] bytes
         1: .line 1087
            aload 0 /* str */
            invokevirtual org.jruby.util.ByteList.getBegin:()I
            istore 5 /* p */
        start local 5 // int p
         2: .line 1088
            iload 5 /* p */
            aload 0 /* str */
            invokevirtual org.jruby.util.ByteList.getRealSize:()I
            iadd
            istore 6 /* end */
        start local 6 // int end
         3: .line 1089
            aload 3 /* enc */
            invokevirtual org.jcodings.Encoding.isAsciiCompatible:()Z
            istore 7 /* asciiCompat */
        start local 7 // boolean asciiCompat
         4: .line 1091
            iconst_0
            istore 8 /* count */
        start local 8 // int count
         5: .line 1092
            goto 15
         6: .line 1094
      StackMap locals: org.jruby.util.ByteList boolean[] org.jruby.util.StringSupport$TrTables org.jcodings.Encoding byte[] int int int int
      StackMap stack:
            iload 7 /* asciiCompat */
            ifeq 11
            aload 4 /* bytes */
            iload 5 /* p */
            baload
            sipush 255
            iand
            dup
            istore 9 /* c */
        start local 9 // int c
         7: sipush 128
            if_icmpge 11
         8: .line 1095
            aload 1 /* table */
            iload 9 /* c */
            baload
            ifeq 9
            iinc 8 /* count */ 1
         9: .line 1096
      StackMap locals: int
      StackMap stack:
            iinc 5 /* p */ 1
        10: .line 1097
            goto 15
        end local 9 // int c
        11: .line 1098
      StackMap locals:
      StackMap stack:
            aload 3 /* enc */
            aload 4 /* bytes */
            iload 5 /* p */
            iload 6 /* end */
            invokestatic org.jruby.util.StringSupport.codePoint:(Lorg/jcodings/Encoding;[BII)I
            istore 9 /* c */
        start local 9 // int c
        12: .line 1099
            aload 3 /* enc */
            iload 9 /* c */
            invokestatic org.jruby.util.StringSupport.codeLength:(Lorg/jcodings/Encoding;I)I
            istore 10 /* cl */
        start local 10 // int cl
        13: .line 1100
            iload 9 /* c */
            aload 1 /* table */
            aload 2 /* tables */
            invokestatic org.jruby.util.StringSupport.trFind:(I[ZLorg/jruby/util/StringSupport$TrTables;)Z
            ifeq 14
            iinc 8 /* count */ 1
        14: .line 1101
      StackMap locals: int int
      StackMap stack:
            iload 5 /* p */
            iload 10 /* cl */
            iadd
            istore 5 /* p */
        end local 10 // int cl
        end local 9 // int c
        15: .line 1092
      StackMap locals:
      StackMap stack:
            iload 5 /* p */
            iload 6 /* end */
            if_icmplt 6
        16: .line 1105
            iload 8 /* count */
            ireturn
        end local 8 // int count
        end local 7 // boolean asciiCompat
        end local 6 // int end
        end local 5 // int p
        end local 4 // byte[] bytes
        end local 3 // org.jcodings.Encoding enc
        end local 2 // org.jruby.util.StringSupport$TrTables tables
        end local 1 // boolean[] table
        end local 0 // org.jruby.util.ByteList str
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   17     0          str  Lorg/jruby/util/ByteList;
            0   17     1        table  [Z
            0   17     2       tables  Lorg/jruby/util/StringSupport$TrTables;
            0   17     3          enc  Lorg/jcodings/Encoding;
            1   17     4        bytes  [B
            2   17     5            p  I
            3   17     6          end  I
            4   17     7  asciiCompat  Z
            5   17     8        count  I
            7   11     9            c  I
           12   15     9            c  I
           13   15    10           cl  I
    MethodParameters:
        Name  Flags
      str     
      table   
      tables  
      enc     

  public static int strCount(org.jruby.util.ByteList, org.jruby.Ruby, boolean[], org.jruby.util.StringSupport$TrTables, org.jcodings.Encoding);
    descriptor: (Lorg/jruby/util/ByteList;Lorg/jruby/Ruby;[ZLorg/jruby/util/StringSupport$TrTables;Lorg/jcodings/Encoding;)I
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=6, args_size=5
        start local 0 // org.jruby.util.ByteList str
        start local 1 // org.jruby.Ruby runtime
        start local 2 // boolean[] table
        start local 3 // org.jruby.util.StringSupport$TrTables tables
        start local 4 // org.jcodings.Encoding enc
         0: .line 1110
            aload 0 /* str */
            aload 2 /* table */
            aload 3 /* tables */
            aload 4 /* enc */
            invokestatic org.jruby.util.StringSupport.strCount:(Lorg/jruby/util/ByteList;[ZLorg/jruby/util/StringSupport$TrTables;Lorg/jcodings/Encoding;)I
         1: ireturn
         2: .line 1111
      StackMap locals:
      StackMap stack: java.lang.IllegalArgumentException
            astore 5 /* e */
        start local 5 // java.lang.IllegalArgumentException e
         3: .line 1112
            aload 1 /* runtime */
            aload 5 /* e */
            invokevirtual java.lang.IllegalArgumentException.getMessage:()Ljava/lang/String;
            invokevirtual org.jruby.Ruby.newArgumentError:(Ljava/lang/String;)Lorg/jruby/exceptions/RaiseException;
            athrow
        end local 5 // java.lang.IllegalArgumentException e
        end local 4 // org.jcodings.Encoding enc
        end local 3 // org.jruby.util.StringSupport$TrTables tables
        end local 2 // boolean[] table
        end local 1 // org.jruby.Ruby runtime
        end local 0 // org.jruby.util.ByteList str
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    4     0      str  Lorg/jruby/util/ByteList;
            0    4     1  runtime  Lorg/jruby/Ruby;
            0    4     2    table  [Z
            0    4     3   tables  Lorg/jruby/util/StringSupport$TrTables;
            0    4     4      enc  Lorg/jcodings/Encoding;
            3    4     5        e  Ljava/lang/IllegalArgumentException;
      Exception table:
        from    to  target  type
           0     1       2  Class java.lang.IllegalArgumentException
    MethodParameters:
         Name  Flags
      str      
      runtime  
      table    
      tables   
      enc      

  public static int countCommon19(org.jruby.util.ByteList, org.jruby.Ruby, boolean[], org.jruby.util.StringSupport$TrTables, org.jcodings.Encoding);
    descriptor: (Lorg/jruby/util/ByteList;Lorg/jruby/Ruby;[ZLorg/jruby/util/StringSupport$TrTables;Lorg/jcodings/Encoding;)I
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=5, locals=5, args_size=5
        start local 0 // org.jruby.util.ByteList str
        start local 1 // org.jruby.Ruby runtime
        start local 2 // boolean[] table
        start local 3 // org.jruby.util.StringSupport$TrTables tables
        start local 4 // org.jcodings.Encoding enc
         0: .line 1120
            aload 0 /* str */
            aload 1 /* runtime */
            aload 2 /* table */
            aload 3 /* tables */
            aload 4 /* enc */
            invokestatic org.jruby.util.StringSupport.strCount:(Lorg/jruby/util/ByteList;Lorg/jruby/Ruby;[ZLorg/jruby/util/StringSupport$TrTables;Lorg/jcodings/Encoding;)I
            ireturn
        end local 4 // org.jcodings.Encoding enc
        end local 3 // org.jruby.util.StringSupport$TrTables tables
        end local 2 // boolean[] table
        end local 1 // org.jruby.Ruby runtime
        end local 0 // org.jruby.util.ByteList str
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     0      str  Lorg/jruby/util/ByteList;
            0    1     1  runtime  Lorg/jruby/Ruby;
            0    1     2    table  [Z
            0    1     3   tables  Lorg/jruby/util/StringSupport$TrTables;
            0    1     4      enc  Lorg/jcodings/Encoding;
    MethodParameters:
         Name  Flags
      str      
      runtime  
      table    
      tables   
      enc      

  public static int rindex(org.jruby.util.ByteList, int, int, int, org.jruby.util.CodeRangeable, org.jcodings.Encoding);
    descriptor: (Lorg/jruby/util/ByteList;IIILorg/jruby/util/CodeRangeable;Lorg/jcodings/Encoding;)I
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=9, locals=12, args_size=6
        start local 0 // org.jruby.util.ByteList source
        start local 1 // int sourceChars
        start local 2 // int subChars
        start local 3 // int pos
        start local 4 // org.jruby.util.CodeRangeable subStringCodeRangeable
        start local 5 // org.jcodings.Encoding enc
         0: .line 1125
            aload 4 /* subStringCodeRangeable */
            invokeinterface org.jruby.util.CodeRangeable.scanForCodeRange:()I
            bipush 48
            if_icmpne 1
            iconst_m1
            ireturn
         1: .line 1127
      StackMap locals:
      StackMap stack:
            aload 4 /* subStringCodeRangeable */
            invokeinterface org.jruby.util.CodeRangeable.getByteList:()Lorg/jruby/util/ByteList;
            astore 6 /* subString */
        start local 6 // org.jruby.util.ByteList subString
         2: .line 1129
            aload 0 /* source */
            invokevirtual org.jruby.util.ByteList.getRealSize:()I
            istore 7 /* srcLen */
        start local 7 // int srcLen
         3: .line 1130
            aload 6 /* subString */
            invokevirtual org.jruby.util.ByteList.getRealSize:()I
            istore 8 /* subLen */
        start local 8 // int subLen
         4: .line 1132
            iload 1 /* sourceChars */
            iload 2 /* subChars */
            if_icmplt 5
            iload 7 /* srcLen */
            iload 8 /* subLen */
            if_icmpge 6
      StackMap locals: org.jruby.util.ByteList int int
      StackMap stack:
         5: iconst_m1
            ireturn
         6: .line 1133
      StackMap locals:
      StackMap stack:
            iload 1 /* sourceChars */
            iload 3 /* pos */
            isub
            iload 2 /* subChars */
            if_icmpge 7
            iload 1 /* sourceChars */
            iload 2 /* subChars */
            isub
            istore 3 /* pos */
         7: .line 1134
      StackMap locals:
      StackMap stack:
            iload 1 /* sourceChars */
            ifne 8
            iload 3 /* pos */
            ireturn
         8: .line 1136
      StackMap locals:
      StackMap stack:
            aload 0 /* source */
            invokevirtual org.jruby.util.ByteList.getUnsafeBytes:()[B
            astore 9 /* srcBytes */
        start local 9 // byte[] srcBytes
         9: .line 1137
            aload 0 /* source */
            invokevirtual org.jruby.util.ByteList.getBegin:()I
            istore 10 /* srcBeg */
        start local 10 // int srcBeg
        10: .line 1139
            iload 3 /* pos */
            ifne 14
        11: .line 1140
            aload 9 /* srcBytes */
            iload 10 /* srcBeg */
            aload 6 /* subString */
            invokevirtual org.jruby.util.ByteList.getUnsafeBytes:()[B
            aload 6 /* subString */
            invokevirtual org.jruby.util.ByteList.getBegin:()I
            iload 8 /* subLen */
            invokestatic org.jruby.util.ByteList.memcmp:([BI[BII)I
            ifne 13
        12: .line 1141
            iconst_0
            ireturn
        13: .line 1143
      StackMap locals: byte[] int
      StackMap stack:
            iconst_m1
            ireturn
        14: .line 1146
      StackMap locals:
      StackMap stack:
            aload 5 /* enc */
            aload 9 /* srcBytes */
            iload 10 /* srcBeg */
            iload 10 /* srcBeg */
            iload 7 /* srcLen */
            iadd
            iload 3 /* pos */
            invokestatic org.jruby.util.StringSupport.nth:(Lorg/jcodings/Encoding;[BIII)I
            istore 11 /* s */
        start local 11 // int s
        15: .line 1148
            aload 9 /* srcBytes */
            iload 10 /* srcBeg */
            iload 7 /* srcLen */
            aload 6 /* subString */
            invokevirtual org.jruby.util.ByteList.getUnsafeBytes:()[B
            aload 6 /* subString */
            invokevirtual org.jruby.util.ByteList.getBegin:()I
            iload 8 /* subLen */
            iload 11 /* s */
            iload 3 /* pos */
            aload 5 /* enc */
            invokestatic org.jruby.util.StringSupport.strRindex:([BII[BIIIILorg/jcodings/Encoding;)I
            ireturn
        end local 11 // int s
        end local 10 // int srcBeg
        end local 9 // byte[] srcBytes
        end local 8 // int subLen
        end local 7 // int srcLen
        end local 6 // org.jruby.util.ByteList subString
        end local 5 // org.jcodings.Encoding enc
        end local 4 // org.jruby.util.CodeRangeable subStringCodeRangeable
        end local 3 // int pos
        end local 2 // int subChars
        end local 1 // int sourceChars
        end local 0 // org.jruby.util.ByteList source
      LocalVariableTable:
        Start  End  Slot                    Name  Signature
            0   16     0                  source  Lorg/jruby/util/ByteList;
            0   16     1             sourceChars  I
            0   16     2                subChars  I
            0   16     3                     pos  I
            0   16     4  subStringCodeRangeable  Lorg/jruby/util/CodeRangeable;
            0   16     5                     enc  Lorg/jcodings/Encoding;
            2   16     6               subString  Lorg/jruby/util/ByteList;
            3   16     7                  srcLen  I
            4   16     8                  subLen  I
            9   16     9                srcBytes  [B
           10   16    10                  srcBeg  I
           15   16    11                       s  I
    MethodParameters:
                        Name  Flags
      source                  
      sourceChars             
      subChars                
      pos                     
      subStringCodeRangeable  
      enc                     

  private static int strRindex(byte[], int, int, byte[], int, int, int, int, org.jcodings.Encoding);
    descriptor: ([BII[BIIIILorg/jcodings/Encoding;)I
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=5, locals=10, args_size=9
        start local 0 // byte[] strBytes
        start local 1 // int strBeg
        start local 2 // int strLen
        start local 3 // byte[] subBytes
        start local 4 // int subBeg
        start local 5 // int subLen
        start local 6 // int s
        start local 7 // int pos
        start local 8 // org.jcodings.Encoding enc
         0: .line 1155
            iload 1 /* strBeg */
            iload 2 /* strLen */
            iadd
            istore 9 /* e */
        start local 9 // int e
         1: .line 1157
            goto 7
         2: .line 1158
      StackMap locals: int
      StackMap stack:
            iload 6 /* s */
            iload 5 /* subLen */
            iadd
            iload 9 /* e */
            if_icmpgt 4
            aload 0 /* strBytes */
            iload 6 /* s */
            aload 3 /* subBytes */
            iload 4 /* subBeg */
            iload 5 /* subLen */
            invokestatic org.jruby.util.ByteList.memcmp:([BI[BII)I
            ifne 4
         3: .line 1159
            iload 7 /* pos */
            ireturn
         4: .line 1161
      StackMap locals:
      StackMap stack:
            iload 7 /* pos */
            ifne 5
            goto 8
      StackMap locals:
      StackMap stack:
         5: iinc 7 /* pos */ -1
         6: .line 1162
            aload 8 /* enc */
            aload 0 /* strBytes */
            iload 1 /* strBeg */
            iload 6 /* s */
            iload 9 /* e */
            invokevirtual org.jcodings.Encoding.prevCharHead:([BIII)I
            istore 6 /* s */
         7: .line 1157
      StackMap locals:
      StackMap stack:
            iload 6 /* s */
            iload 1 /* strBeg */
            if_icmpge 2
         8: .line 1165
      StackMap locals:
      StackMap stack:
            iconst_m1
            ireturn
        end local 9 // int e
        end local 8 // org.jcodings.Encoding enc
        end local 7 // int pos
        end local 6 // int s
        end local 5 // int subLen
        end local 4 // int subBeg
        end local 3 // byte[] subBytes
        end local 2 // int strLen
        end local 1 // int strBeg
        end local 0 // byte[] strBytes
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    9     0  strBytes  [B
            0    9     1    strBeg  I
            0    9     2    strLen  I
            0    9     3  subBytes  [B
            0    9     4    subBeg  I
            0    9     5    subLen  I
            0    9     6         s  I
            0    9     7       pos  I
            0    9     8       enc  Lorg/jcodings/Encoding;
            1    9     9         e  I
    MethodParameters:
          Name  Flags
      strBytes  final
      strBeg    final
      strLen    final
      subBytes  final
      subBeg    final
      subLen    final
      s         
      pos       
      enc       final

  public static int strLengthFromRubyString(org.jruby.util.CodeRangeable, org.jcodings.Encoding);
    descriptor: (Lorg/jruby/util/CodeRangeable;Lorg/jcodings/Encoding;)I
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // org.jruby.util.CodeRangeable string
        start local 1 // org.jcodings.Encoding enc
         0: .line 1169
            aload 0 /* string */
            invokeinterface org.jruby.util.CodeRangeable.getByteList:()Lorg/jruby/util/ByteList;
            astore 2 /* bytes */
        start local 2 // org.jruby.util.ByteList bytes
         1: .line 1171
            aload 0 /* string */
            aload 1 /* enc */
            invokestatic org.jruby.util.StringSupport.isSingleByteOptimizable:(Lorg/jruby/util/CodeRangeable;Lorg/jcodings/Encoding;)Z
            ifeq 2
            aload 2 /* bytes */
            invokevirtual org.jruby.util.ByteList.getRealSize:()I
            ireturn
         2: .line 1172
      StackMap locals: org.jruby.util.ByteList
      StackMap stack:
            aload 0 /* string */
            aload 2 /* bytes */
            aload 1 /* enc */
            invokestatic org.jruby.util.StringSupport.strLengthFromRubyStringFull:(Lorg/jruby/util/CodeRangeable;Lorg/jruby/util/ByteList;Lorg/jcodings/Encoding;)I
            ireturn
        end local 2 // org.jruby.util.ByteList bytes
        end local 1 // org.jcodings.Encoding enc
        end local 0 // org.jruby.util.CodeRangeable string
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    3     0  string  Lorg/jruby/util/CodeRangeable;
            0    3     1     enc  Lorg/jcodings/Encoding;
            1    3     2   bytes  Lorg/jruby/util/ByteList;
    MethodParameters:
        Name  Flags
      string  
      enc     

  public static int strLengthFromRubyString(org.jruby.util.CodeRangeable);
    descriptor: (Lorg/jruby/util/CodeRangeable;)I
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=2, args_size=1
        start local 0 // org.jruby.util.CodeRangeable string
         0: .line 1176
            aload 0 /* string */
            invokeinterface org.jruby.util.CodeRangeable.getByteList:()Lorg/jruby/util/ByteList;
            astore 1 /* bytes */
        start local 1 // org.jruby.util.ByteList bytes
         1: .line 1178
            aload 0 /* string */
            aload 1 /* bytes */
            invokevirtual org.jruby.util.ByteList.getEncoding:()Lorg/jcodings/Encoding;
            invokestatic org.jruby.util.StringSupport.isSingleByteOptimizable:(Lorg/jruby/util/CodeRangeable;Lorg/jcodings/Encoding;)Z
            ifeq 2
            aload 1 /* bytes */
            invokevirtual org.jruby.util.ByteList.getRealSize:()I
            ireturn
         2: .line 1179
      StackMap locals: org.jruby.util.ByteList
      StackMap stack:
            aload 0 /* string */
            aload 1 /* bytes */
            aload 1 /* bytes */
            invokevirtual org.jruby.util.ByteList.getEncoding:()Lorg/jcodings/Encoding;
            invokestatic org.jruby.util.StringSupport.strLengthFromRubyStringFull:(Lorg/jruby/util/CodeRangeable;Lorg/jruby/util/ByteList;Lorg/jcodings/Encoding;)I
            ireturn
        end local 1 // org.jruby.util.ByteList bytes
        end local 0 // org.jruby.util.CodeRangeable string
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    3     0  string  Lorg/jruby/util/CodeRangeable;
            1    3     1   bytes  Lorg/jruby/util/ByteList;
    MethodParameters:
        Name  Flags
      string  

  public static int strLengthFromRubyString(org.jruby.util.CodeRangeable, org.jruby.util.ByteList, org.jcodings.Encoding);
    descriptor: (Lorg/jruby/util/CodeRangeable;Lorg/jruby/util/ByteList;Lorg/jcodings/Encoding;)I
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=5, args_size=3
        start local 0 // org.jruby.util.CodeRangeable string
        start local 1 // org.jruby.util.ByteList bytes
        start local 2 // org.jcodings.Encoding enc
         0: .line 1183
            aload 0 /* string */
            aload 2 /* enc */
            invokestatic org.jruby.util.StringSupport.isSingleByteOptimizable:(Lorg/jruby/util/CodeRangeable;Lorg/jcodings/Encoding;)Z
            ifeq 1
            aload 1 /* bytes */
            invokevirtual org.jruby.util.ByteList.getRealSize:()I
            ireturn
         1: .line 1185
      StackMap locals:
      StackMap stack:
            aload 0 /* string */
            invokeinterface org.jruby.util.CodeRangeable.isCodeRangeValid:()Z
            ifeq 2
            aload 2 /* enc */
            invokevirtual org.jcodings.Encoding.isUTF8:()Z
            ifeq 2
            aload 1 /* bytes */
            invokestatic org.jruby.util.StringSupport.utf8Length:(Lorg/jruby/util/ByteList;)I
            ireturn
         2: .line 1187
      StackMap locals:
      StackMap stack:
            aload 1 /* bytes */
            aload 2 /* enc */
            invokestatic org.jruby.util.StringSupport.strLengthWithCodeRange:(Lorg/jruby/util/ByteList;Lorg/jcodings/Encoding;)J
            lstore 3 /* lencr */
        start local 3 // long lencr
         3: .line 1188
            lload 3 /* lencr */
            invokestatic org.jruby.util.StringSupport.unpackResult:(J)I
            ireturn
        end local 3 // long lencr
        end local 2 // org.jcodings.Encoding enc
        end local 1 // org.jruby.util.ByteList bytes
        end local 0 // org.jruby.util.CodeRangeable string
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    4     0  string  Lorg/jruby/util/CodeRangeable;
            0    4     1   bytes  Lorg/jruby/util/ByteList;
            0    4     2     enc  Lorg/jcodings/Encoding;
            3    4     3   lencr  J
    MethodParameters:
        Name  Flags
      string  
      bytes   final
      enc     final

  private static int strLengthFromRubyStringFull(org.jruby.util.CodeRangeable, org.jruby.util.ByteList, org.jcodings.Encoding);
    descriptor: (Lorg/jruby/util/CodeRangeable;Lorg/jruby/util/ByteList;Lorg/jcodings/Encoding;)I
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=6, args_size=3
        start local 0 // org.jruby.util.CodeRangeable string
        start local 1 // org.jruby.util.ByteList bytes
        start local 2 // org.jcodings.Encoding enc
         0: .line 1192
            aload 0 /* string */
            invokeinterface org.jruby.util.CodeRangeable.isCodeRangeValid:()Z
            ifeq 1
            aload 2 /* enc */
            invokevirtual org.jcodings.Encoding.isUTF8:()Z
            ifeq 1
            aload 1 /* bytes */
            invokestatic org.jruby.util.StringSupport.utf8Length:(Lorg/jruby/util/ByteList;)I
            ireturn
         1: .line 1194
      StackMap locals:
      StackMap stack:
            aload 1 /* bytes */
            aload 2 /* enc */
            invokestatic org.jruby.util.StringSupport.strLengthWithCodeRange:(Lorg/jruby/util/ByteList;Lorg/jcodings/Encoding;)J
            lstore 3 /* lencr */
        start local 3 // long lencr
         2: .line 1195
            lload 3 /* lencr */
            invokestatic org.jruby.util.StringSupport.unpackArg:(J)I
            istore 5 /* cr */
        start local 5 // int cr
         3: .line 1196
            iload 5 /* cr */
            ifeq 4
            aload 0 /* string */
            iload 5 /* cr */
            invokeinterface org.jruby.util.CodeRangeable.setCodeRange:(I)V
         4: .line 1197
      StackMap locals: long int
      StackMap stack:
            lload 3 /* lencr */
            invokestatic org.jruby.util.StringSupport.unpackResult:(J)I
            ireturn
        end local 5 // int cr
        end local 3 // long lencr
        end local 2 // org.jcodings.Encoding enc
        end local 1 // org.jruby.util.ByteList bytes
        end local 0 // org.jruby.util.CodeRangeable string
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    5     0  string  Lorg/jruby/util/CodeRangeable;
            0    5     1   bytes  Lorg/jruby/util/ByteList;
            0    5     2     enc  Lorg/jcodings/Encoding;
            2    5     3   lencr  J
            3    5     5      cr  I
    MethodParameters:
        Name  Flags
      string  
      bytes   
      enc     

  public static org.jruby.util.StringSupport$TrTables trSetupTable(org.jruby.util.ByteList, boolean[], org.jruby.util.StringSupport$TrTables, boolean, org.jcodings.Encoding);
    descriptor: (Lorg/jruby/util/ByteList;[ZLorg/jruby/util/StringSupport$TrTables;ZLorg/jcodings/Encoding;)Lorg/jruby/util/StringSupport$TrTables;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=5, locals=15, args_size=5
        start local 0 // org.jruby.util.ByteList str
        start local 1 // boolean[] stable
        start local 2 // org.jruby.util.StringSupport$TrTables tables
        start local 3 // boolean first
        start local 4 // org.jcodings.Encoding enc
         0: .line 1228
            iconst_1
            newarray 10
            astore 6 /* l */
        start local 6 // int[] l
         1: .line 1231
            new org.jruby.util.StringSupport$TR
            dup
            aload 0 /* str */
            invokespecial org.jruby.util.StringSupport$TR.<init>:(Lorg/jruby/util/ByteList;)V
            astore 8 /* tr */
        start local 8 // org.jruby.util.StringSupport$TR tr
         2: .line 1233
            aload 0 /* str */
            invokevirtual org.jruby.util.ByteList.realSize:()I
            iconst_1
            if_icmple 6
            aload 8 /* tr */
            getfield org.jruby.util.StringSupport$TR.buf:[B
            aload 8 /* tr */
            getfield org.jruby.util.StringSupport$TR.p:I
            aload 8 /* tr */
            getfield org.jruby.util.StringSupport$TR.pend:I
            aload 6 /* l */
            aload 4 /* enc */
            invokestatic org.jruby.util.io.EncodingUtils.encAscget:([BII[ILorg/jcodings/Encoding;)I
            bipush 94
            if_icmpne 6
         3: .line 1234
            iconst_1
            istore 7 /* cflag */
        start local 7 // boolean cflag
         4: .line 1235
            aload 8 /* tr */
            dup
            getfield org.jruby.util.StringSupport$TR.p:I
            aload 6 /* l */
            iconst_0
            iaload
            iadd
            putfield org.jruby.util.StringSupport$TR.p:I
         5: .line 1236
            goto 7
        end local 7 // boolean cflag
         6: .line 1238
      StackMap locals: org.jruby.util.ByteList boolean[] org.jruby.util.StringSupport$TrTables int org.jcodings.Encoding top int[] top org.jruby.util.StringSupport$TR
      StackMap stack:
            iconst_0
            istore 7 /* cflag */
        start local 7 // boolean cflag
         7: .line 1241
      StackMap locals: org.jruby.util.ByteList boolean[] org.jruby.util.StringSupport$TrTables int org.jcodings.Encoding top int[] int org.jruby.util.StringSupport$TR
      StackMap stack:
            iload 3 /* first */
            ifeq 14
         8: .line 1242
            iconst_0
            istore 5 /* i */
        start local 5 // int i
         9: goto 11
      StackMap locals: org.jruby.util.ByteList boolean[] org.jruby.util.StringSupport$TrTables int org.jcodings.Encoding int int[] int org.jruby.util.StringSupport$TR
      StackMap stack:
        10: aload 1 /* stable */
            iload 5 /* i */
            iconst_1
            bastore
            iinc 5 /* i */ 1
      StackMap locals:
      StackMap stack:
        11: iload 5 /* i */
            sipush 256
            if_icmplt 10
        12: .line 1243
            aload 1 /* stable */
            sipush 256
            iload 7 /* cflag */
            bastore
        13: .line 1244
            goto 16
        end local 5 // int i
        14: .line 1245
      StackMap locals: org.jruby.util.ByteList boolean[] org.jruby.util.StringSupport$TrTables int org.jcodings.Encoding top int[] int org.jruby.util.StringSupport$TR
      StackMap stack:
            aload 1 /* stable */
            sipush 256
            baload
            ifeq 16
            iload 7 /* cflag */
            ifne 16
        15: .line 1246
            aload 1 /* stable */
            sipush 256
            iconst_0
            bastore
        16: .line 1249
      StackMap locals:
      StackMap stack:
            aload 2 /* tables */
            ifnonnull 17
            new org.jruby.util.StringSupport$TrTables
            dup
            invokespecial org.jruby.util.StringSupport$TrTables.<init>:()V
            astore 2 /* tables */
        17: .line 1251
      StackMap locals:
      StackMap stack:
            aconst_null
            astore 9 /* buf */
        start local 9 // byte[] buf
        18: .line 1252
            aconst_null
            astore 10 /* table */
        start local 10 // org.jruby.util.collections.IntHashMap table
        19: aconst_null
            astore 11 /* ptable */
        start local 11 // org.jruby.util.collections.IntHashMap ptable
        20: .line 1255
            goto 56
        start local 12 // int c
        21: .line 1256
      StackMap locals: org.jruby.util.ByteList boolean[] org.jruby.util.StringSupport$TrTables int org.jcodings.Encoding top int[] int org.jruby.util.StringSupport$TR byte[] org.jruby.util.collections.IntHashMap org.jruby.util.collections.IntHashMap int
      StackMap stack:
            iload 12 /* c */
            sipush 256
            if_icmpge 35
        22: .line 1257
            aload 9 /* buf */
            ifnonnull 31
        23: .line 1258
            sipush 256
            newarray 8
            astore 9 /* buf */
        24: .line 1259
            iconst_0
            istore 5 /* i */
        start local 5 // int i
        25: goto 30
        26: .line 1260
      StackMap locals: org.jruby.util.ByteList boolean[] org.jruby.util.StringSupport$TrTables int org.jcodings.Encoding int int[] int org.jruby.util.StringSupport$TR byte[] org.jruby.util.collections.IntHashMap org.jruby.util.collections.IntHashMap int
      StackMap stack:
            aload 9 /* buf */
            iload 5 /* i */
            iload 7 /* cflag */
            ifeq 27
            iconst_1
            goto 28
      StackMap locals: org.jruby.util.ByteList boolean[] org.jruby.util.StringSupport$TrTables int org.jcodings.Encoding int int[] int org.jruby.util.StringSupport$TR byte[] org.jruby.util.collections.IntHashMap org.jruby.util.collections.IntHashMap int
      StackMap stack: byte[] int
        27: iconst_0
      StackMap locals: org.jruby.util.ByteList boolean[] org.jruby.util.StringSupport$TrTables int org.jcodings.Encoding int int[] int org.jruby.util.StringSupport$TR byte[] org.jruby.util.collections.IntHashMap org.jruby.util.collections.IntHashMap int
      StackMap stack: byte[] int int
        28: i2b
            bastore
        29: .line 1259
            iinc 5 /* i */ 1
      StackMap locals:
      StackMap stack:
        30: iload 5 /* i */
            sipush 256
            if_icmplt 26
        end local 5 // int i
        31: .line 1264
      StackMap locals: org.jruby.util.ByteList boolean[] org.jruby.util.StringSupport$TrTables int org.jcodings.Encoding top int[] int org.jruby.util.StringSupport$TR byte[] org.jruby.util.collections.IntHashMap org.jruby.util.collections.IntHashMap int
      StackMap stack:
            aload 9 /* buf */
            iload 12 /* c */
            sipush 255
            iand
            iload 7 /* cflag */
            ifeq 32
            iconst_0
            goto 33
      StackMap locals: org.jruby.util.ByteList boolean[] org.jruby.util.StringSupport$TrTables int org.jcodings.Encoding top int[] int org.jruby.util.StringSupport$TR byte[] org.jruby.util.collections.IntHashMap org.jruby.util.collections.IntHashMap int
      StackMap stack: byte[] int
        32: iconst_1
      StackMap locals: org.jruby.util.ByteList boolean[] org.jruby.util.StringSupport$TrTables int org.jcodings.Encoding top int[] int org.jruby.util.StringSupport$TR byte[] org.jruby.util.collections.IntHashMap org.jruby.util.collections.IntHashMap int
      StackMap stack: byte[] int int
        33: i2b
            bastore
        34: .line 1265
            goto 56
        35: .line 1267
      StackMap locals:
      StackMap stack:
            aload 10 /* table */
            ifnonnull 46
            iload 3 /* first */
            ifne 36
            aload 2 /* tables */
            getfield org.jruby.util.StringSupport$TrTables.del:Lorg/jruby/util/collections/IntHashMap;
            ifnonnull 36
            aload 1 /* stable */
            sipush 256
            baload
            ifeq 46
        36: .line 1268
      StackMap locals:
      StackMap stack:
            iload 7 /* cflag */
            ifeq 43
        37: .line 1269
            aload 2 /* tables */
            getfield org.jruby.util.StringSupport$TrTables.noDel:Lorg/jruby/util/collections/IntHashMap;
            astore 11 /* ptable */
        38: .line 1270
            aload 11 /* ptable */
            ifnull 39
            aload 11 /* ptable */
            goto 40
      StackMap locals:
      StackMap stack:
        39: new org.jruby.util.collections.IntHashMap
            dup
            bipush 8
            invokespecial org.jruby.util.collections.IntHashMap.<init>:(I)V
      StackMap locals:
      StackMap stack: org.jruby.util.collections.IntHashMap
        40: astore 10 /* table */
        41: .line 1271
            aload 2 /* tables */
            aload 10 /* table */
            putfield org.jruby.util.StringSupport$TrTables.noDel:Lorg/jruby/util/collections/IntHashMap;
        42: .line 1272
            goto 46
        43: .line 1274
      StackMap locals:
      StackMap stack:
            new org.jruby.util.collections.IntHashMap
            dup
            bipush 8
            invokespecial org.jruby.util.collections.IntHashMap.<init>:(I)V
            astore 10 /* table */
        44: .line 1275
            aload 2 /* tables */
            getfield org.jruby.util.StringSupport$TrTables.del:Lorg/jruby/util/collections/IntHashMap;
            astore 11 /* ptable */
        45: .line 1276
            aload 2 /* tables */
            aload 10 /* table */
            putfield org.jruby.util.StringSupport$TrTables.del:Lorg/jruby/util/collections/IntHashMap;
        46: .line 1280
      StackMap locals:
      StackMap stack:
            aload 10 /* table */
            ifnull 56
        47: .line 1281
            iload 12 /* c */
            istore 13 /* key */
        start local 13 // int key
        48: .line 1282
            aload 11 /* ptable */
            ifnonnull 49
            aload 10 /* table */
            iload 13 /* key */
            getstatic org.jruby.util.StringSupport.DUMMY_VALUE:Ljava/lang/Object;
            invokevirtual org.jruby.util.collections.IntHashMap.put:(ILjava/lang/Object;)Ljava/lang/Object;
            pop
            goto 56
        49: .line 1284
      StackMap locals: int
      StackMap stack:
            iload 7 /* cflag */
            ifeq 50
            aload 10 /* table */
            iload 13 /* key */
            getstatic org.jruby.util.StringSupport.DUMMY_VALUE:Ljava/lang/Object;
            invokevirtual org.jruby.util.collections.IntHashMap.put:(ILjava/lang/Object;)Ljava/lang/Object;
            pop
            goto 56
        50: .line 1286
      StackMap locals:
      StackMap stack:
            aload 11 /* ptable */
            iload 13 /* key */
            invokevirtual org.jruby.util.collections.IntHashMap.get:(I)Ljava/lang/Object;
            ifnull 51
            iconst_1
            goto 52
      StackMap locals:
      StackMap stack:
        51: iconst_0
      StackMap locals:
      StackMap stack: int
        52: istore 14 /* val */
        start local 14 // boolean val
        53: .line 1287
            aload 10 /* table */
            iload 13 /* key */
            iload 14 /* val */
            ifeq 54
            getstatic org.jruby.util.StringSupport.DUMMY_VALUE:Ljava/lang/Object;
            goto 55
      StackMap locals: org.jruby.util.ByteList boolean[] org.jruby.util.StringSupport$TrTables int org.jcodings.Encoding top int[] int org.jruby.util.StringSupport$TR byte[] org.jruby.util.collections.IntHashMap org.jruby.util.collections.IntHashMap int int int
      StackMap stack: org.jruby.util.collections.IntHashMap int
        54: aconst_null
      StackMap locals: org.jruby.util.ByteList boolean[] org.jruby.util.StringSupport$TrTables int org.jcodings.Encoding top int[] int org.jruby.util.StringSupport$TR byte[] org.jruby.util.collections.IntHashMap org.jruby.util.collections.IntHashMap int int int
      StackMap stack: org.jruby.util.collections.IntHashMap int java.lang.Object
        55: invokevirtual org.jruby.util.collections.IntHashMap.put:(ILjava/lang/Object;)Ljava/lang/Object;
            pop
        end local 14 // boolean val
        end local 13 // int key
        end local 12 // int c
        56: .line 1255
      StackMap locals:
      StackMap stack:
            aload 8 /* tr */
            aload 4 /* enc */
            invokestatic org.jruby.util.StringSupport.trNext:(Lorg/jruby/util/StringSupport$TR;Lorg/jcodings/Encoding;)I
            dup
            istore 12 /* c */
        start local 12 // int c
        57: iconst_m1
            if_icmpne 21
        58: .line 1293
            aload 9 /* buf */
            ifnull 67
        59: .line 1294
            iconst_0
            istore 5 /* i */
        start local 5 // int i
        60: goto 65
        61: .line 1295
      StackMap locals: org.jruby.util.ByteList boolean[] org.jruby.util.StringSupport$TrTables int org.jcodings.Encoding int int[] int org.jruby.util.StringSupport$TR byte[] org.jruby.util.collections.IntHashMap org.jruby.util.collections.IntHashMap int
      StackMap stack:
            aload 1 /* stable */
            iload 5 /* i */
            aload 1 /* stable */
            iload 5 /* i */
            baload
            ifeq 62
            aload 9 /* buf */
            iload 5 /* i */
            baload
            ifeq 62
            iconst_1
            goto 63
      StackMap locals: org.jruby.util.ByteList boolean[] org.jruby.util.StringSupport$TrTables int org.jcodings.Encoding int int[] int org.jruby.util.StringSupport$TR byte[] org.jruby.util.collections.IntHashMap org.jruby.util.collections.IntHashMap int
      StackMap stack: boolean[] int
        62: iconst_0
      StackMap locals: org.jruby.util.ByteList boolean[] org.jruby.util.StringSupport$TrTables int org.jcodings.Encoding int int[] int org.jruby.util.StringSupport$TR byte[] org.jruby.util.collections.IntHashMap org.jruby.util.collections.IntHashMap int
      StackMap stack: boolean[] int int
        63: bastore
        64: .line 1294
            iinc 5 /* i */ 1
      StackMap locals:
      StackMap stack:
        65: iload 5 /* i */
            sipush 256
            if_icmplt 61
        66: .line 1297
            goto 74
        end local 5 // int i
        67: .line 1299
      StackMap locals: org.jruby.util.ByteList boolean[] org.jruby.util.StringSupport$TrTables int org.jcodings.Encoding top int[] int org.jruby.util.StringSupport$TR byte[] org.jruby.util.collections.IntHashMap org.jruby.util.collections.IntHashMap int
      StackMap stack:
            iconst_0
            istore 5 /* i */
        start local 5 // int i
        68: goto 73
        69: .line 1300
      StackMap locals: org.jruby.util.ByteList boolean[] org.jruby.util.StringSupport$TrTables int org.jcodings.Encoding int int[] int org.jruby.util.StringSupport$TR byte[] org.jruby.util.collections.IntHashMap org.jruby.util.collections.IntHashMap int
      StackMap stack:
            aload 1 /* stable */
            iload 5 /* i */
            aload 1 /* stable */
            iload 5 /* i */
            baload
            ifeq 70
            iload 7 /* cflag */
            ifeq 70
            iconst_1
            goto 71
      StackMap locals: org.jruby.util.ByteList boolean[] org.jruby.util.StringSupport$TrTables int org.jcodings.Encoding int int[] int org.jruby.util.StringSupport$TR byte[] org.jruby.util.collections.IntHashMap org.jruby.util.collections.IntHashMap int
      StackMap stack: boolean[] int
        70: iconst_0
      StackMap locals: org.jruby.util.ByteList boolean[] org.jruby.util.StringSupport$TrTables int org.jcodings.Encoding int int[] int org.jruby.util.StringSupport$TR byte[] org.jruby.util.collections.IntHashMap org.jruby.util.collections.IntHashMap int
      StackMap stack: boolean[] int int
        71: bastore
        72: .line 1299
            iinc 5 /* i */ 1
      StackMap locals:
      StackMap stack:
        73: iload 5 /* i */
            sipush 256
            if_icmplt 69
        74: .line 1304
      StackMap locals:
      StackMap stack:
            aload 10 /* table */
            ifnonnull 75
            iload 7 /* cflag */
            ifne 75
            aload 2 /* tables */
            aconst_null
            putfield org.jruby.util.StringSupport$TrTables.del:Lorg/jruby/util/collections/IntHashMap;
        75: .line 1306
      StackMap locals:
      StackMap stack:
            aload 2 /* tables */
            areturn
        end local 12 // int c
        end local 11 // org.jruby.util.collections.IntHashMap ptable
        end local 10 // org.jruby.util.collections.IntHashMap table
        end local 9 // byte[] buf
        end local 8 // org.jruby.util.StringSupport$TR tr
        end local 7 // boolean cflag
        end local 6 // int[] l
        end local 5 // int i
        end local 4 // org.jcodings.Encoding enc
        end local 3 // boolean first
        end local 2 // org.jruby.util.StringSupport$TrTables tables
        end local 1 // boolean[] stable
        end local 0 // org.jruby.util.ByteList str
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   76     0     str  Lorg/jruby/util/ByteList;
            0   76     1  stable  [Z
            0   76     2  tables  Lorg/jruby/util/StringSupport$TrTables;
            0   76     3   first  Z
            0   76     4     enc  Lorg/jcodings/Encoding;
            9   14     5       i  I
           25   31     5       i  I
           60   67     5       i  I
           68   76     5       i  I
            1   76     6       l  [I
            4    6     7   cflag  Z
            7   76     7   cflag  Z
            2   76     8      tr  Lorg/jruby/util/StringSupport$TR;
           18   76     9     buf  [B
           19   76    10   table  Lorg/jruby/util/collections/IntHashMap<Ljava/lang/Object;>;
           20   76    11  ptable  Lorg/jruby/util/collections/IntHashMap<Ljava/lang/Object;>;
           21   56    12       c  I
           57   76    12       c  I
           48   56    13     key  I
           53   56    14     val  Z
    MethodParameters:
        Name  Flags
      str     final
      stable  final
      tables  
      first   final
      enc     final

  public static org.jruby.util.StringSupport$TrTables trSetupTable(org.jruby.util.ByteList, org.jruby.Ruby, boolean[], org.jruby.util.StringSupport$TrTables, boolean, org.jcodings.Encoding);
    descriptor: (Lorg/jruby/util/ByteList;Lorg/jruby/Ruby;[ZLorg/jruby/util/StringSupport$TrTables;ZLorg/jcodings/Encoding;)Lorg/jruby/util/StringSupport$TrTables;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=5, locals=7, args_size=6
        start local 0 // org.jruby.util.ByteList str
        start local 1 // org.jruby.Ruby runtime
        start local 2 // boolean[] stable
        start local 3 // org.jruby.util.StringSupport$TrTables tables
        start local 4 // boolean first
        start local 5 // org.jcodings.Encoding enc
         0: .line 1313
            aload 0 /* str */
            aload 2 /* stable */
            aload 3 /* tables */
            iload 4 /* first */
            aload 5 /* enc */
            invokestatic org.jruby.util.StringSupport.trSetupTable:(Lorg/jruby/util/ByteList;[ZLorg/jruby/util/StringSupport$TrTables;ZLorg/jcodings/Encoding;)Lorg/jruby/util/StringSupport$TrTables;
         1: areturn
         2: .line 1314
      StackMap locals:
      StackMap stack: java.lang.IllegalArgumentException
            astore 6 /* e */
        start local 6 // java.lang.IllegalArgumentException e
         3: .line 1315
            aload 1 /* runtime */
            aload 6 /* e */
            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 e
        end local 5 // org.jcodings.Encoding enc
        end local 4 // boolean first
        end local 3 // org.jruby.util.StringSupport$TrTables tables
        end local 2 // boolean[] stable
        end local 1 // org.jruby.Ruby runtime
        end local 0 // org.jruby.util.ByteList str
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    4     0      str  Lorg/jruby/util/ByteList;
            0    4     1  runtime  Lorg/jruby/Ruby;
            0    4     2   stable  [Z
            0    4     3   tables  Lorg/jruby/util/StringSupport$TrTables;
            0    4     4    first  Z
            0    4     5      enc  Lorg/jcodings/Encoding;
            3    4     6        e  Ljava/lang/IllegalArgumentException;
      Exception table:
        from    to  target  type
           0     1       2  Class java.lang.IllegalArgumentException
    MethodParameters:
         Name  Flags
      str      final
      runtime  final
      stable   final
      tables   
      first    final
      enc      final

  public static boolean trFind(int, boolean[], org.jruby.util.StringSupport$TrTables);
    descriptor: (I[ZLorg/jruby/util/StringSupport$TrTables;)Z
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=5, args_size=3
        start local 0 // int c
        start local 1 // boolean[] table
        start local 2 // org.jruby.util.StringSupport$TrTables tables
         0: .line 1320
            iload 0 /* c */
            sipush 256
            if_icmpge 1
            aload 1 /* table */
            iload 0 /* c */
            baload
            ireturn
         1: .line 1322
      StackMap locals:
      StackMap stack:
            aload 2 /* tables */
            getfield org.jruby.util.StringSupport$TrTables.del:Lorg/jruby/util/collections/IntHashMap;
            astore 3 /* del */
        start local 3 // org.jruby.util.collections.IntHashMap del
         2: aload 2 /* tables */
            getfield org.jruby.util.StringSupport$TrTables.noDel:Lorg/jruby/util/collections/IntHashMap;
            astore 4 /* noDel */
        start local 4 // org.jruby.util.collections.IntHashMap noDel
         3: .line 1324
            aload 3 /* del */
            ifnull 7
         4: .line 1325
            aload 3 /* del */
            iload 0 /* c */
            invokevirtual org.jruby.util.collections.IntHashMap.get:(I)Ljava/lang/Object;
            ifnull 9
         5: .line 1326
            aload 4 /* noDel */
            ifnull 6
            aload 4 /* noDel */
            iload 0 /* c */
            invokevirtual org.jruby.util.collections.IntHashMap.get:(I)Ljava/lang/Object;
            ifnonnull 9
         6: .line 1327
      StackMap locals: org.jruby.util.collections.IntHashMap org.jruby.util.collections.IntHashMap
      StackMap stack:
            iconst_1
            ireturn
         7: .line 1330
      StackMap locals:
      StackMap stack:
            aload 4 /* noDel */
            ifnull 9
            aload 4 /* noDel */
            iload 0 /* c */
            invokevirtual org.jruby.util.collections.IntHashMap.get:(I)Ljava/lang/Object;
            ifnull 9
         8: .line 1331
            iconst_0
            ireturn
         9: .line 1334
      StackMap locals:
      StackMap stack:
            aload 1 /* table */
            sipush 256
            baload
            ireturn
        end local 4 // org.jruby.util.collections.IntHashMap noDel
        end local 3 // org.jruby.util.collections.IntHashMap del
        end local 2 // org.jruby.util.StringSupport$TrTables tables
        end local 1 // boolean[] table
        end local 0 // int c
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   10     0       c  I
            0   10     1   table  [Z
            0   10     2  tables  Lorg/jruby/util/StringSupport$TrTables;
            2   10     3     del  Lorg/jruby/util/collections/IntHashMap<Ljava/lang/Object;>;
            3   10     4   noDel  Lorg/jruby/util/collections/IntHashMap<Ljava/lang/Object;>;
    MethodParameters:
        Name  Flags
      c       final
      table   final
      tables  final

  public static int trNext(org.jruby.util.StringSupport$TR, org.jcodings.Encoding);
    descriptor: (Lorg/jruby/util/StringSupport$TR;Lorg/jcodings/Encoding;)I
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // org.jruby.util.StringSupport$TR tr
        start local 1 // org.jcodings.Encoding enc
         0: .line 1339
            aload 0 /* tr */
            getfield org.jruby.util.StringSupport$TR.gen:Z
            ifne 5
         1: .line 1340
            aload 0 /* tr */
            aload 1 /* enc */
            invokestatic org.jruby.util.StringSupport.trNext_nextpart:(Lorg/jruby/util/StringSupport$TR;Lorg/jcodings/Encoding;)I
            ireturn
         2: .line 1344
      StackMap locals:
      StackMap stack:
            aload 0 /* tr */
            getfield org.jruby.util.StringSupport$TR.now:I
            aload 0 /* tr */
            getfield org.jruby.util.StringSupport$TR.max:I
            if_icmpne 5
         3: .line 1345
            aload 0 /* tr */
            iconst_0
            putfield org.jruby.util.StringSupport$TR.gen:Z
         4: .line 1346
            aload 0 /* tr */
            aload 1 /* enc */
            invokestatic org.jruby.util.StringSupport.trNext_nextpart:(Lorg/jruby/util/StringSupport$TR;Lorg/jcodings/Encoding;)I
            ireturn
         5: .line 1343
      StackMap locals:
      StackMap stack:
            aload 1 /* enc */
            aload 0 /* tr */
            dup
            getfield org.jruby.util.StringSupport$TR.now:I
            iconst_1
            iadd
            dup_x1
            putfield org.jruby.util.StringSupport$TR.now:I
            invokevirtual org.jcodings.Encoding.codeToMbcLength:(I)I
            ifle 2
         6: .line 1349
            aload 0 /* tr */
            getfield org.jruby.util.StringSupport$TR.now:I
            aload 0 /* tr */
            getfield org.jruby.util.StringSupport$TR.max:I
            if_icmpge 8
         7: .line 1350
            aload 0 /* tr */
            getfield org.jruby.util.StringSupport$TR.now:I
            ireturn
         8: .line 1352
      StackMap locals:
      StackMap stack:
            aload 0 /* tr */
            iconst_0
            putfield org.jruby.util.StringSupport$TR.gen:Z
         9: .line 1353
            aload 0 /* tr */
            getfield org.jruby.util.StringSupport$TR.max:I
            ireturn
        end local 1 // org.jcodings.Encoding enc
        end local 0 // org.jruby.util.StringSupport$TR tr
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   10     0    tr  Lorg/jruby/util/StringSupport$TR;
            0   10     1   enc  Lorg/jcodings/Encoding;
    MethodParameters:
      Name  Flags
      tr    final
      enc   

  public static int trNext(org.jruby.util.StringSupport$TR, org.jruby.Ruby, org.jcodings.Encoding);
    descriptor: (Lorg/jruby/util/StringSupport$TR;Lorg/jruby/Ruby;Lorg/jcodings/Encoding;)I
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=4, args_size=3
        start local 0 // org.jruby.util.StringSupport$TR tr
        start local 1 // org.jruby.Ruby runtime
        start local 2 // org.jcodings.Encoding enc
         0: .line 1360
            aload 0 /* tr */
            aload 2 /* enc */
            invokestatic org.jruby.util.StringSupport.trNext:(Lorg/jruby/util/StringSupport$TR;Lorg/jcodings/Encoding;)I
         1: ireturn
         2: .line 1361
      StackMap locals:
      StackMap stack: java.lang.IllegalArgumentException
            astore 3 /* e */
        start local 3 // java.lang.IllegalArgumentException e
         3: .line 1362
            aload 1 /* runtime */
            aload 3 /* e */
            invokevirtual java.lang.IllegalArgumentException.getMessage:()Ljava/lang/String;
            invokevirtual org.jruby.Ruby.newArgumentError:(Ljava/lang/String;)Lorg/jruby/exceptions/RaiseException;
            athrow
        end local 3 // java.lang.IllegalArgumentException e
        end local 2 // org.jcodings.Encoding enc
        end local 1 // org.jruby.Ruby runtime
        end local 0 // org.jruby.util.StringSupport$TR tr
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    4     0       tr  Lorg/jruby/util/StringSupport$TR;
            0    4     1  runtime  Lorg/jruby/Ruby;
            0    4     2      enc  Lorg/jcodings/Encoding;
            3    4     3        e  Ljava/lang/IllegalArgumentException;
      Exception table:
        from    to  target  type
           0     1       2  Class java.lang.IllegalArgumentException
    MethodParameters:
         Name  Flags
      tr       final
      runtime  
      enc      

  private static int trNext_nextpart(org.jruby.util.StringSupport$TR, org.jcodings.Encoding);
    descriptor: (Lorg/jruby/util/StringSupport$TR;Lorg/jcodings/Encoding;)I
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=6, locals=4, args_size=2
        start local 0 // org.jruby.util.StringSupport$TR tr
        start local 1 // org.jcodings.Encoding enc
         0: .line 1367
            iconst_1
            newarray 10
            astore 2 /* n */
        start local 2 // int[] n
         1: .line 1369
            aload 0 /* tr */
            getfield org.jruby.util.StringSupport$TR.p:I
            aload 0 /* tr */
            getfield org.jruby.util.StringSupport$TR.pend:I
            if_icmpne 2
            iconst_m1
            ireturn
         2: .line 1370
      StackMap locals: int[]
      StackMap stack:
            aload 0 /* tr */
            getfield org.jruby.util.StringSupport$TR.buf:[B
            aload 0 /* tr */
            getfield org.jruby.util.StringSupport$TR.p:I
            aload 0 /* tr */
            getfield org.jruby.util.StringSupport$TR.pend:I
            aload 2 /* n */
            aload 1 /* enc */
            invokestatic org.jruby.util.io.EncodingUtils.encAscget:([BII[ILorg/jcodings/Encoding;)I
            bipush 92
            if_icmpne 4
            aload 0 /* tr */
            getfield org.jruby.util.StringSupport$TR.p:I
            aload 2 /* n */
            iconst_0
            iaload
            iadd
            aload 0 /* tr */
            getfield org.jruby.util.StringSupport$TR.pend:I
            if_icmpge 4
         3: .line 1371
            aload 0 /* tr */
            dup
            getfield org.jruby.util.StringSupport$TR.p:I
            aload 2 /* n */
            iconst_0
            iaload
            iadd
            putfield org.jruby.util.StringSupport$TR.p:I
         4: .line 1373
      StackMap locals:
      StackMap stack:
            aload 0 /* tr */
            aload 0 /* tr */
            getfield org.jruby.util.StringSupport$TR.buf:[B
            aload 0 /* tr */
            getfield org.jruby.util.StringSupport$TR.p:I
            aload 0 /* tr */
            getfield org.jruby.util.StringSupport$TR.pend:I
            aload 2 /* n */
            aload 1 /* enc */
            invokestatic org.jruby.util.io.EncodingUtils.encCodepointLength:([BII[ILorg/jcodings/Encoding;)I
            putfield org.jruby.util.StringSupport$TR.now:I
         5: .line 1374
            aload 0 /* tr */
            dup
            getfield org.jruby.util.StringSupport$TR.p:I
            aload 2 /* n */
            iconst_0
            iaload
            iadd
            putfield org.jruby.util.StringSupport$TR.p:I
         6: .line 1375
            aload 0 /* tr */
            getfield org.jruby.util.StringSupport$TR.buf:[B
            aload 0 /* tr */
            getfield org.jruby.util.StringSupport$TR.p:I
            aload 0 /* tr */
            getfield org.jruby.util.StringSupport$TR.pend:I
            aload 2 /* n */
            aload 1 /* enc */
            invokestatic org.jruby.util.io.EncodingUtils.encAscget:([BII[ILorg/jcodings/Encoding;)I
            bipush 45
            if_icmpne 19
            aload 0 /* tr */
            getfield org.jruby.util.StringSupport$TR.p:I
            aload 2 /* n */
            iconst_0
            iaload
            iadd
            aload 0 /* tr */
            getfield org.jruby.util.StringSupport$TR.pend:I
            if_icmpge 19
         7: .line 1376
            aload 0 /* tr */
            dup
            getfield org.jruby.util.StringSupport$TR.p:I
            aload 2 /* n */
            iconst_0
            iaload
            iadd
            putfield org.jruby.util.StringSupport$TR.p:I
         8: .line 1377
            aload 0 /* tr */
            getfield org.jruby.util.StringSupport$TR.p:I
            aload 0 /* tr */
            getfield org.jruby.util.StringSupport$TR.pend:I
            if_icmpge 19
         9: .line 1378
            aload 0 /* tr */
            getfield org.jruby.util.StringSupport$TR.buf:[B
            aload 0 /* tr */
            getfield org.jruby.util.StringSupport$TR.p:I
            aload 0 /* tr */
            getfield org.jruby.util.StringSupport$TR.pend:I
            aload 2 /* n */
            aload 1 /* enc */
            invokestatic org.jruby.util.io.EncodingUtils.encCodepointLength:([BII[ILorg/jcodings/Encoding;)I
            istore 3 /* c */
        start local 3 // int c
        10: .line 1379
            aload 0 /* tr */
            dup
            getfield org.jruby.util.StringSupport$TR.p:I
            aload 2 /* n */
            iconst_0
            iaload
            iadd
            putfield org.jruby.util.StringSupport$TR.p:I
        11: .line 1380
            aload 0 /* tr */
            getfield org.jruby.util.StringSupport$TR.now:I
            iload 3 /* c */
            if_icmple 17
        12: .line 1381
            aload 0 /* tr */
            getfield org.jruby.util.StringSupport$TR.now:I
            sipush 128
            if_icmpge 16
            iload 3 /* c */
            sipush 128
            if_icmpge 16
        13: .line 1382
            new java.lang.IllegalArgumentException
            dup
            new java.lang.StringBuilder
            dup
            ldc "invalid range \""
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
        14: .line 1383
            aload 0 /* tr */
            getfield org.jruby.util.StringSupport$TR.now:I
            i2c
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            bipush 45
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            iload 3 /* c */
            i2c
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            ldc "\" in string transliteration"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        15: .line 1382
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
        16: .line 1386
      StackMap locals: int
      StackMap stack:
            new java.lang.IllegalArgumentException
            dup
            ldc "invalid range in string transliteration"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
        17: .line 1388
      StackMap locals:
      StackMap stack:
            aload 0 /* tr */
            iconst_1
            putfield org.jruby.util.StringSupport$TR.gen:Z
        18: .line 1389
            aload 0 /* tr */
            iload 3 /* c */
            putfield org.jruby.util.StringSupport$TR.max:I
        end local 3 // int c
        19: .line 1392
      StackMap locals:
      StackMap stack:
            aload 0 /* tr */
            getfield org.jruby.util.StringSupport$TR.now:I
            ireturn
        end local 2 // int[] n
        end local 1 // org.jcodings.Encoding enc
        end local 0 // org.jruby.util.StringSupport$TR tr
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   20     0    tr  Lorg/jruby/util/StringSupport$TR;
            0   20     1   enc  Lorg/jcodings/Encoding;
            1   20     2     n  [I
           10   19     3     c  I
    MethodParameters:
      Name  Flags
      tr    final
      enc   

  public static org.jruby.util.ByteList succCommon(org.jruby.util.ByteList);
    descriptor: (Lorg/jruby/util/ByteList;)Lorg/jruby/util/ByteList;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=7, locals=14, args_size=1
        start local 0 // org.jruby.util.ByteList original
         0: .line 1399
            bipush 7
            newarray 8
            astore 1 /* carry */
        start local 1 // byte[] carry
         1: .line 1400
            iconst_0
            istore 2 /* carryP */
        start local 2 // int carryP
         2: .line 1401
            aload 1 /* carry */
            iconst_0
            iconst_1
            bastore
         3: .line 1402
            iconst_1
            istore 3 /* carryLen */
        start local 3 // int carryLen
         4: .line 1404
            new org.jruby.util.ByteList
            dup
            aload 0 /* original */
            invokespecial org.jruby.util.ByteList.<init>:(Lorg/jruby/util/ByteList;)V
            astore 4 /* valueCopy */
        start local 4 // org.jruby.util.ByteList valueCopy
         5: .line 1405
            aload 4 /* valueCopy */
            aload 0 /* original */
            invokevirtual org.jruby.util.ByteList.getEncoding:()Lorg/jcodings/Encoding;
            invokevirtual org.jruby.util.ByteList.setEncoding:(Lorg/jcodings/Encoding;)V
         6: .line 1406
            aload 0 /* original */
            invokevirtual org.jruby.util.ByteList.getEncoding:()Lorg/jcodings/Encoding;
            astore 5 /* enc */
        start local 5 // org.jcodings.Encoding enc
         7: .line 1407
            aload 4 /* valueCopy */
            invokevirtual org.jruby.util.ByteList.getBegin:()I
            istore 6 /* p */
        start local 6 // int p
         8: .line 1408
            iload 6 /* p */
            aload 4 /* valueCopy */
            invokevirtual org.jruby.util.ByteList.getRealSize:()I
            iadd
            istore 7 /* end */
        start local 7 // int end
         9: .line 1409
            iload 7 /* end */
            istore 8 /* s */
        start local 8 // int s
        10: .line 1410
            aload 4 /* valueCopy */
            invokevirtual org.jruby.util.ByteList.getUnsafeBytes:()[B
            astore 9 /* bytes */
        start local 9 // byte[] bytes
        11: .line 1412
            getstatic org.jruby.util.StringSupport$NeighborChar.FOUND:Lorg/jruby/util/StringSupport$NeighborChar;
            astore 10 /* neighbor */
        start local 10 // org.jruby.util.StringSupport$NeighborChar neighbor
        12: .line 1413
            iconst_m1
            istore 11 /* lastAlnum */
        start local 11 // int lastAlnum
        13: .line 1414
            iconst_0
            istore 12 /* alnumSeen */
        start local 12 // boolean alnumSeen
        14: .line 1415
            goto 32
        15: .line 1416
      StackMap locals: org.jruby.util.ByteList byte[] int int org.jruby.util.ByteList org.jcodings.Encoding int int int byte[] org.jruby.util.StringSupport$NeighborChar int int
      StackMap stack:
            aload 10 /* neighbor */
            getstatic org.jruby.util.StringSupport$NeighborChar.NOT_CHAR:Lorg/jruby/util/StringSupport$NeighborChar;
            if_acmpne 23
            iload 11 /* lastAlnum */
            iconst_m1
            if_icmpeq 23
        16: .line 1417
            getstatic org.jcodings.specific.ASCIIEncoding.INSTANCE:Lorg/jcodings/specific/ASCIIEncoding;
            astore 13 /* ascii */
        start local 13 // org.jcodings.specific.ASCIIEncoding ascii
        17: .line 1418
            aload 13 /* ascii */
            aload 9 /* bytes */
            iload 11 /* lastAlnum */
            baload
            sipush 255
            iand
            invokevirtual org.jcodings.specific.ASCIIEncoding.isAlpha:(I)Z
            ifeq 19
        18: .line 1419
            aload 13 /* ascii */
            aload 9 /* bytes */
            iload 8 /* s */
            baload
            sipush 255
            iand
            invokevirtual org.jcodings.specific.ASCIIEncoding.isDigit:(I)Z
            ifeq 23
            goto 21
        19: .line 1420
      StackMap locals: org.jcodings.specific.ASCIIEncoding
      StackMap stack:
            aload 13 /* ascii */
            aload 9 /* bytes */
            iload 11 /* lastAlnum */
            baload
            sipush 255
            iand
            invokevirtual org.jcodings.specific.ASCIIEncoding.isDigit:(I)Z
            ifeq 23
        20: .line 1421
            aload 13 /* ascii */
            aload 9 /* bytes */
            iload 8 /* s */
            baload
            sipush 255
            iand
            invokevirtual org.jcodings.specific.ASCIIEncoding.isAlpha:(I)Z
            ifeq 23
        21: .line 1422
      StackMap locals:
      StackMap stack:
            iload 11 /* lastAlnum */
            istore 8 /* s */
        22: .line 1423
            goto 33
        end local 13 // org.jcodings.specific.ASCIIEncoding ascii
        23: .line 1427
      StackMap locals:
      StackMap stack:
            aload 5 /* enc */
            aload 9 /* bytes */
            iload 8 /* s */
            iload 7 /* end */
            invokestatic org.jruby.util.StringSupport.preciseLength:(Lorg/jcodings/Encoding;[BII)I
            istore 13 /* cl */
        start local 13 // int cl
        24: .line 1428
            iload 13 /* cl */
            ifgt 25
            goto 32
        25: .line 1429
      StackMap locals: int
      StackMap stack:
            invokestatic org.jruby.util.StringSupport.$SWITCH_TABLE$org$jruby$util$StringSupport$NeighborChar:()[I
            aload 5 /* enc */
            aload 9 /* bytes */
            iload 8 /* s */
            iload 13 /* cl */
            aload 1 /* carry */
            iconst_0
            invokestatic org.jruby.util.StringSupport.succAlnumChar:(Lorg/jcodings/Encoding;[BII[BI)Lorg/jruby/util/StringSupport$NeighborChar;
            dup
            astore 10 /* neighbor */
            invokevirtual org.jruby.util.StringSupport$NeighborChar.ordinal:()I
            iaload
            tableswitch { // 1 - 3
                    1: 26
                    2: 27
                    3: 28
              default: 29
          }
        26: .line 1430
      StackMap locals:
      StackMap stack:
            goto 32
        27: .line 1431
      StackMap locals:
      StackMap stack:
            aload 4 /* valueCopy */
            areturn
        28: .line 1432
      StackMap locals:
      StackMap stack:
            iload 8 /* s */
            istore 11 /* lastAlnum */
        29: .line 1434
      StackMap locals:
      StackMap stack:
            iconst_1
            istore 12 /* alnumSeen */
        30: .line 1435
            iload 8 /* s */
            iload 6 /* p */
            isub
            istore 2 /* carryP */
        31: .line 1436
            iload 13 /* cl */
            istore 3 /* carryLen */
        end local 13 // int cl
        32: .line 1415
      StackMap locals:
      StackMap stack:
            aload 5 /* enc */
            aload 9 /* bytes */
            iload 6 /* p */
            iload 8 /* s */
            iload 7 /* end */
            invokevirtual org.jcodings.Encoding.prevCharHead:([BIII)I
            dup
            istore 8 /* s */
            iconst_m1
            if_icmpne 15
        33: .line 1439
      StackMap locals:
      StackMap stack:
            iload 12 /* alnumSeen */
            ifne 46
        34: .line 1440
            iload 7 /* end */
            istore 8 /* s */
        35: .line 1441
            goto 45
        36: .line 1442
      StackMap locals:
      StackMap stack:
            aload 5 /* enc */
            aload 9 /* bytes */
            iload 8 /* s */
            iload 7 /* end */
            invokestatic org.jruby.util.StringSupport.preciseLength:(Lorg/jcodings/Encoding;[BII)I
            istore 13 /* cl */
        start local 13 // int cl
        37: .line 1443
            iload 13 /* cl */
            ifgt 38
            goto 45
        38: .line 1444
      StackMap locals: int
      StackMap stack:
            aload 5 /* enc */
            aload 9 /* bytes */
            iload 8 /* s */
            iload 13 /* cl */
            invokestatic org.jruby.util.StringSupport.succChar:(Lorg/jcodings/Encoding;[BII)Lorg/jruby/util/StringSupport$NeighborChar;
            astore 10 /* neighbor */
        39: .line 1445
            aload 10 /* neighbor */
            getstatic org.jruby.util.StringSupport$NeighborChar.FOUND:Lorg/jruby/util/StringSupport$NeighborChar;
            if_acmpne 40
            aload 4 /* valueCopy */
            areturn
        40: .line 1446
      StackMap locals:
      StackMap stack:
            aload 5 /* enc */
            aload 9 /* bytes */
            iload 8 /* s */
            iload 8 /* s */
            iconst_1
            iadd
            invokestatic org.jruby.util.StringSupport.preciseLength:(Lorg/jcodings/Encoding;[BII)I
            iload 13 /* cl */
            if_icmpeq 41
            aload 5 /* enc */
            aload 9 /* bytes */
            iload 8 /* s */
            iload 13 /* cl */
            invokestatic org.jruby.util.StringSupport.succChar:(Lorg/jcodings/Encoding;[BII)Lorg/jruby/util/StringSupport$NeighborChar;
            pop
        41: .line 1447
      StackMap locals:
      StackMap stack:
            aload 5 /* enc */
            invokevirtual org.jcodings.Encoding.isAsciiCompatible:()Z
            ifne 44
        42: .line 1448
            aload 9 /* bytes */
            iload 8 /* s */
            aload 1 /* carry */
            iconst_0
            iload 13 /* cl */
            invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
        43: .line 1449
            iload 13 /* cl */
            istore 3 /* carryLen */
        44: .line 1451
      StackMap locals:
      StackMap stack:
            iload 8 /* s */
            iload 6 /* p */
            isub
            istore 2 /* carryP */
        end local 13 // int cl
        45: .line 1441
      StackMap locals:
      StackMap stack:
            aload 5 /* enc */
            aload 9 /* bytes */
            iload 6 /* p */
            iload 8 /* s */
            iload 7 /* end */
            invokevirtual org.jcodings.Encoding.prevCharHead:([BIII)I
            dup
            istore 8 /* s */
            iconst_m1
            if_icmpne 36
        46: .line 1454
      StackMap locals:
      StackMap stack:
            aload 4 /* valueCopy */
            aload 4 /* valueCopy */
            invokevirtual org.jruby.util.ByteList.getBegin:()I
            aload 4 /* valueCopy */
            invokevirtual org.jruby.util.ByteList.getRealSize:()I
            iadd
            iload 3 /* carryLen */
            iadd
            invokevirtual org.jruby.util.ByteList.ensure:(I)V
        47: .line 1455
            aload 4 /* valueCopy */
            invokevirtual org.jruby.util.ByteList.getBegin:()I
            iload 2 /* carryP */
            iadd
            istore 8 /* s */
        48: .line 1456
            aload 4 /* valueCopy */
            invokevirtual org.jruby.util.ByteList.getUnsafeBytes:()[B
            iload 8 /* s */
            aload 4 /* valueCopy */
            invokevirtual org.jruby.util.ByteList.getUnsafeBytes:()[B
            iload 8 /* s */
            iload 3 /* carryLen */
            iadd
            aload 4 /* valueCopy */
            invokevirtual org.jruby.util.ByteList.getRealSize:()I
            iload 2 /* carryP */
            isub
            invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
        49: .line 1457
            aload 1 /* carry */
            iconst_0
            aload 4 /* valueCopy */
            invokevirtual org.jruby.util.ByteList.getUnsafeBytes:()[B
            iload 8 /* s */
            iload 3 /* carryLen */
            invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
        50: .line 1458
            aload 4 /* valueCopy */
            aload 4 /* valueCopy */
            invokevirtual org.jruby.util.ByteList.getRealSize:()I
            iload 3 /* carryLen */
            iadd
            invokevirtual org.jruby.util.ByteList.setRealSize:(I)V
        51: .line 1459
            aload 4 /* valueCopy */
            areturn
        end local 12 // boolean alnumSeen
        end local 11 // int lastAlnum
        end local 10 // org.jruby.util.StringSupport$NeighborChar neighbor
        end local 9 // byte[] bytes
        end local 8 // int s
        end local 7 // int end
        end local 6 // int p
        end local 5 // org.jcodings.Encoding enc
        end local 4 // org.jruby.util.ByteList valueCopy
        end local 3 // int carryLen
        end local 2 // int carryP
        end local 1 // byte[] carry
        end local 0 // org.jruby.util.ByteList original
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   52     0   original  Lorg/jruby/util/ByteList;
            1   52     1      carry  [B
            2   52     2     carryP  I
            4   52     3   carryLen  I
            5   52     4  valueCopy  Lorg/jruby/util/ByteList;
            7   52     5        enc  Lorg/jcodings/Encoding;
            8   52     6          p  I
            9   52     7        end  I
           10   52     8          s  I
           11   52     9      bytes  [B
           12   52    10   neighbor  Lorg/jruby/util/StringSupport$NeighborChar;
           13   52    11  lastAlnum  I
           14   52    12  alnumSeen  Z
           17   23    13      ascii  Lorg/jcodings/specific/ASCIIEncoding;
           24   32    13         cl  I
           37   45    13         cl  I
    MethodParameters:
          Name  Flags
      original  

  public static org.jruby.util.ByteList succCommon(org.jruby.Ruby, org.jruby.util.ByteList);
    descriptor: (Lorg/jruby/Ruby;Lorg/jruby/util/ByteList;)Lorg/jruby/util/ByteList;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // org.jruby.Ruby runtime
        start local 1 // org.jruby.util.ByteList original
         0: .line 1464
            aload 1 /* original */
            invokestatic org.jruby.util.StringSupport.succCommon:(Lorg/jruby/util/ByteList;)Lorg/jruby/util/ByteList;
         1: areturn
         2: .line 1465
      StackMap locals:
      StackMap stack: java.lang.IllegalArgumentException
            astore 2 /* e */
        start local 2 // java.lang.IllegalArgumentException e
         3: .line 1466
            aload 0 /* runtime */
            aload 2 /* e */
            invokevirtual java.lang.IllegalArgumentException.getMessage:()Ljava/lang/String;
            invokevirtual org.jruby.Ruby.newArgumentError:(Ljava/lang/String;)Lorg/jruby/exceptions/RaiseException;
            athrow
        end local 2 // java.lang.IllegalArgumentException e
        end local 1 // org.jruby.util.ByteList original
        end local 0 // org.jruby.Ruby runtime
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    4     0   runtime  Lorg/jruby/Ruby;
            0    4     1  original  Lorg/jruby/util/ByteList;
            3    4     2         e  Ljava/lang/IllegalArgumentException;
      Exception table:
        from    to  target  type
           0     1       2  Class java.lang.IllegalArgumentException
    MethodParameters:
          Name  Flags
      runtime   
      original  

  public static org.jruby.util.StringSupport$NeighborChar succChar(org.jcodings.Encoding, byte[], int, int);
    descriptor: (Lorg/jcodings/Encoding;[BII)Lorg/jruby/util/StringSupport$NeighborChar;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=5, locals=10, args_size=4
        start local 0 // org.jcodings.Encoding enc
        start local 1 // byte[] bytes
        start local 2 // int p
        start local 3 // int len
         0: .line 1473
            aload 0 /* enc */
            invokevirtual org.jcodings.Encoding.minLength:()I
            iconst_1
            if_icmple 13
         1: .line 1475
            aload 0 /* enc */
            aload 1 /* bytes */
            iload 2 /* p */
            iload 2 /* p */
            iload 3 /* len */
            iadd
            invokestatic org.jruby.util.StringSupport.preciseLength:(Lorg/jcodings/Encoding;[BII)I
            istore 5 /* r */
        start local 5 // int r
         2: .line 1476
            iload 5 /* r */
            invokestatic org.jruby.util.StringSupport.MBCLEN_CHARFOUND_P:(I)Z
            ifne 4
         3: .line 1477
            getstatic org.jruby.util.StringSupport$NeighborChar.NOT_CHAR:Lorg/jruby/util/StringSupport$NeighborChar;
            areturn
         4: .line 1479
      StackMap locals: org.jcodings.Encoding byte[] int int top int
      StackMap stack:
            aload 0 /* enc */
            aload 1 /* bytes */
            iload 2 /* p */
            iload 2 /* p */
            iload 3 /* len */
            iadd
            invokestatic org.jruby.util.StringSupport.codePoint:(Lorg/jcodings/Encoding;[BII)I
            iconst_1
            iadd
            istore 6 /* c */
        start local 6 // int c
         5: .line 1480
            aload 0 /* enc */
            iload 6 /* c */
            invokestatic org.jruby.util.StringSupport.codeLength:(Lorg/jcodings/Encoding;I)I
            istore 4 /* l */
        start local 4 // int l
         6: .line 1481
            iload 4 /* l */
            ifne 7
            getstatic org.jruby.util.StringSupport$NeighborChar.NOT_CHAR:Lorg/jruby/util/StringSupport$NeighborChar;
            areturn
         7: .line 1482
      StackMap locals: org.jcodings.Encoding byte[] int int int int int
      StackMap stack:
            iload 4 /* l */
            iload 3 /* len */
            if_icmpeq 8
            getstatic org.jruby.util.StringSupport$NeighborChar.WRAPPED:Lorg/jruby/util/StringSupport$NeighborChar;
            areturn
         8: .line 1483
      StackMap locals:
      StackMap stack:
            iload 6 /* c */
            aload 1 /* bytes */
            iload 2 /* p */
            aload 0 /* enc */
            invokestatic org.jruby.util.io.EncodingUtils.encMbcput:(I[BILorg/jcodings/Encoding;)I
            pop
         9: .line 1484
            aload 0 /* enc */
            aload 1 /* bytes */
            iload 2 /* p */
            iload 2 /* p */
            iload 3 /* len */
            iadd
            invokestatic org.jruby.util.StringSupport.preciseLength:(Lorg/jcodings/Encoding;[BII)I
            istore 5 /* r */
        10: .line 1485
            iload 5 /* r */
            invokestatic org.jruby.util.StringSupport.MBCLEN_CHARFOUND_P:(I)Z
            ifne 12
        11: .line 1486
            getstatic org.jruby.util.StringSupport$NeighborChar.NOT_CHAR:Lorg/jruby/util/StringSupport$NeighborChar;
            areturn
        12: .line 1488
      StackMap locals:
      StackMap stack:
            getstatic org.jruby.util.StringSupport$NeighborChar.FOUND:Lorg/jruby/util/StringSupport$NeighborChar;
            areturn
        end local 6 // int c
        end local 5 // int r
        end local 4 // int l
        13: .line 1492
      StackMap locals:
      StackMap stack:
            iload 3 /* len */
            iconst_1
            isub
            istore 5 /* i */
        start local 5 // int i
        14: .line 1493
            goto 16
      StackMap locals: org.jcodings.Encoding byte[] int int top int
      StackMap stack:
        15: aload 1 /* bytes */
            iload 2 /* p */
            iload 5 /* i */
            iadd
            iconst_0
            bastore
            iinc 5 /* i */ -1
      StackMap locals:
      StackMap stack:
        16: iload 5 /* i */
            iflt 17
            aload 1 /* bytes */
            iload 2 /* p */
            iload 5 /* i */
            iadd
            baload
            iconst_m1
            if_icmpeq 15
        17: .line 1494
      StackMap locals:
      StackMap stack:
            iload 5 /* i */
            ifge 18
            getstatic org.jruby.util.StringSupport$NeighborChar.WRAPPED:Lorg/jruby/util/StringSupport$NeighborChar;
            areturn
        18: .line 1495
      StackMap locals:
      StackMap stack:
            aload 1 /* bytes */
            iload 2 /* p */
            iload 5 /* i */
            iadd
            aload 1 /* bytes */
            iload 2 /* p */
            iload 5 /* i */
            iadd
            baload
            sipush 255
            iand
            iconst_1
            iadd
            i2b
            bastore
        19: .line 1496
            aload 0 /* enc */
            aload 1 /* bytes */
            iload 2 /* p */
            iload 2 /* p */
            iload 3 /* len */
            iadd
            invokestatic org.jruby.util.StringSupport.preciseLength:(Lorg/jcodings/Encoding;[BII)I
            istore 4 /* l */
        start local 4 // int l
        20: .line 1497
            iload 4 /* l */
            invokestatic org.jruby.util.StringSupport.MBCLEN_CHARFOUND_P:(I)Z
            ifeq 27
        21: .line 1498
            iload 4 /* l */
            invokestatic org.jruby.util.StringSupport.MBCLEN_CHARFOUND_LEN:(I)I
            istore 4 /* l */
        22: .line 1499
            iload 4 /* l */
            iload 3 /* len */
            if_icmpne 24
        23: .line 1500
            getstatic org.jruby.util.StringSupport$NeighborChar.FOUND:Lorg/jruby/util/StringSupport$NeighborChar;
            areturn
        24: .line 1502
      StackMap locals: org.jcodings.Encoding byte[] int int int int
      StackMap stack:
            iload 2 /* p */
            iload 4 /* l */
            iadd
            istore 6 /* start */
        start local 6 // int start
        25: .line 1503
            iload 6 /* start */
            iload 3 /* len */
            iload 4 /* l */
            isub
            iadd
            istore 7 /* end */
        start local 7 // int end
        26: .line 1504
            aload 1 /* bytes */
            iload 6 /* start */
            iload 7 /* end */
            iconst_m1
            invokestatic java.util.Arrays.fill:([BIIB)V
        end local 7 // int end
        end local 6 // int start
        27: .line 1507
      StackMap locals:
      StackMap stack:
            iload 4 /* l */
            invokestatic org.jruby.util.StringSupport.MBCLEN_INVALID_P:(I)Z
            ifeq 13
            iload 5 /* i */
            iload 3 /* len */
            iconst_1
            isub
            if_icmpge 13
        28: .line 1510
            iload 3 /* len */
            iconst_1
            isub
            istore 6 /* len2 */
        start local 6 // int len2
        29: goto 34
        30: .line 1511
      StackMap locals: int
      StackMap stack:
            aload 0 /* enc */
            aload 1 /* bytes */
            iload 2 /* p */
            iload 2 /* p */
            iload 6 /* len2 */
            iadd
            invokestatic org.jruby.util.StringSupport.preciseLength:(Lorg/jcodings/Encoding;[BII)I
            istore 7 /* l2 */
        start local 7 // int l2
        31: .line 1512
            iload 7 /* l2 */
            invokestatic org.jruby.util.StringSupport.MBCLEN_INVALID_P:(I)Z
            ifne 33
        32: .line 1513
            goto 35
        33: .line 1510
      StackMap locals: int
      StackMap stack:
            iinc 6 /* len2 */ -1
        end local 7 // int l2
      StackMap locals:
      StackMap stack:
        34: iload 6 /* len2 */
            ifgt 30
        35: .line 1515
      StackMap locals:
      StackMap stack:
            iload 2 /* p */
            iload 6 /* len2 */
            iadd
            iconst_1
            iadd
            istore 8 /* start */
        start local 8 // int start
        36: .line 1516
            iload 8 /* start */
            iload 3 /* len */
            iadd
            iload 6 /* len2 */
            iconst_1
            iadd
            isub
            istore 9 /* end */
        start local 9 // int end
        37: .line 1517
            aload 1 /* bytes */
            iload 8 /* start */
            iload 9 /* end */
            iconst_m1
            invokestatic java.util.Arrays.fill:([BIIB)V
        end local 9 // int end
        end local 8 // int start
        end local 6 // int len2
        end local 5 // int i
        end local 4 // int l
        38: .line 1491
            goto 13
        end local 3 // int len
        end local 2 // int p
        end local 1 // byte[] bytes
        end local 0 // org.jcodings.Encoding enc
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0   39     0    enc  Lorg/jcodings/Encoding;
            0   39     1  bytes  [B
            0   39     2      p  I
            0   39     3    len  I
            6   13     4      l  I
           20   38     4      l  I
            2   13     5      r  I
            5   13     6      c  I
           14   38     5      i  I
           25   27     6  start  I
           26   27     7    end  I
           29   38     6   len2  I
           31   34     7     l2  I
           36   38     8  start  I
           37   38     9    end  I
    MethodParameters:
       Name  Flags
      enc    
      bytes  
      p      
      len    

  public static org.jruby.util.StringSupport$NeighborChar succChar(org.jruby.Ruby, org.jcodings.Encoding, byte[], int, int);
    descriptor: (Lorg/jruby/Ruby;Lorg/jcodings/Encoding;[BII)Lorg/jruby/util/StringSupport$NeighborChar;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=6, args_size=5
        start local 0 // org.jruby.Ruby runtime
        start local 1 // org.jcodings.Encoding enc
        start local 2 // byte[] bytes
        start local 3 // int p
        start local 4 // int len
         0: .line 1524
            aload 1 /* enc */
            aload 2 /* bytes */
            iload 3 /* p */
            iload 4 /* len */
            invokestatic org.jruby.util.StringSupport.succChar:(Lorg/jcodings/Encoding;[BII)Lorg/jruby/util/StringSupport$NeighborChar;
         1: areturn
         2: .line 1525
      StackMap locals:
      StackMap stack: java.lang.IllegalArgumentException
            astore 5 /* e */
        start local 5 // java.lang.IllegalArgumentException e
         3: .line 1526
            aload 0 /* runtime */
            aload 5 /* e */
            invokevirtual java.lang.IllegalArgumentException.getMessage:()Ljava/lang/String;
            invokevirtual org.jruby.Ruby.newArgumentError:(Ljava/lang/String;)Lorg/jruby/exceptions/RaiseException;
            athrow
        end local 5 // java.lang.IllegalArgumentException e
        end local 4 // int len
        end local 3 // int p
        end local 2 // byte[] bytes
        end local 1 // org.jcodings.Encoding enc
        end local 0 // org.jruby.Ruby runtime
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    4     0  runtime  Lorg/jruby/Ruby;
            0    4     1      enc  Lorg/jcodings/Encoding;
            0    4     2    bytes  [B
            0    4     3        p  I
            0    4     4      len  I
            3    4     5        e  Ljava/lang/IllegalArgumentException;
      Exception table:
        from    to  target  type
           0     1       2  Class java.lang.IllegalArgumentException
    MethodParameters:
         Name  Flags
      runtime  
      enc      
      bytes    
      p        
      len      

  private static org.jruby.util.StringSupport$NeighborChar succAlnumChar(org.jcodings.Encoding, byte[], int, int, byte[], int);
    descriptor: (Lorg/jcodings/Encoding;[BII[BI)Lorg/jruby/util/StringSupport$NeighborChar;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=5, locals=11, args_size=6
        start local 0 // org.jcodings.Encoding enc
        start local 1 // byte[] bytes
        start local 2 // int p
        start local 3 // int len
        start local 4 // byte[] carry
        start local 5 // int carryP
         0: .line 1532
            bipush 7
            newarray 8
            astore 6 /* save */
        start local 6 // byte[] save
         1: .line 1533
            aload 0 /* enc */
            aload 1 /* bytes */
            iload 2 /* p */
            iload 2 /* p */
            iload 3 /* len */
            iadd
            invokevirtual org.jcodings.Encoding.mbcToCode:([BII)I
            istore 7 /* c */
        start local 7 // int c
         2: .line 1536
            aload 0 /* enc */
            iload 7 /* c */
            invokevirtual org.jcodings.Encoding.isDigit:(I)Z
            ifeq 5
         3: .line 1537
            iconst_4
            istore 8 /* cType */
        start local 8 // int cType
         4: .line 1538
            goto 9
        end local 8 // int cType
      StackMap locals: byte[] int
      StackMap stack:
         5: aload 0 /* enc */
            iload 7 /* c */
            invokevirtual org.jcodings.Encoding.isAlpha:(I)Z
            ifeq 8
         6: .line 1539
            iconst_1
            istore 8 /* cType */
        start local 8 // int cType
         7: .line 1540
            goto 9
        end local 8 // int cType
         8: .line 1541
      StackMap locals:
      StackMap stack:
            getstatic org.jruby.util.StringSupport$NeighborChar.NOT_CHAR:Lorg/jruby/util/StringSupport$NeighborChar;
            areturn
        start local 8 // int cType
         9: .line 1544
      StackMap locals: int
      StackMap stack:
            aload 1 /* bytes */
            iload 2 /* p */
            aload 6 /* save */
            iconst_0
            iload 3 /* len */
            invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
        10: .line 1545
            aload 0 /* enc */
            aload 1 /* bytes */
            iload 2 /* p */
            iload 3 /* len */
            invokestatic org.jruby.util.StringSupport.succChar:(Lorg/jcodings/Encoding;[BII)Lorg/jruby/util/StringSupport$NeighborChar;
            astore 9 /* ret */
        start local 9 // org.jruby.util.StringSupport$NeighborChar ret
        11: .line 1546
            aload 9 /* ret */
            getstatic org.jruby.util.StringSupport$NeighborChar.FOUND:Lorg/jruby/util/StringSupport$NeighborChar;
            if_acmpne 14
        12: .line 1547
            aload 0 /* enc */
            aload 1 /* bytes */
            iload 2 /* p */
            iload 2 /* p */
            iload 3 /* len */
            iadd
            invokevirtual org.jcodings.Encoding.mbcToCode:([BII)I
            istore 7 /* c */
        13: .line 1548
            aload 0 /* enc */
            iload 7 /* c */
            iload 8 /* cType */
            invokevirtual org.jcodings.Encoding.isCodeCType:(II)Z
            ifeq 14
            getstatic org.jruby.util.StringSupport$NeighborChar.FOUND:Lorg/jruby/util/StringSupport$NeighborChar;
            areturn
        14: .line 1551
      StackMap locals: org.jruby.util.StringSupport$NeighborChar
      StackMap stack:
            aload 6 /* save */
            iconst_0
            aload 1 /* bytes */
            iload 2 /* p */
            iload 3 /* len */
            invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
        15: .line 1552
            iconst_1
            istore 10 /* range */
        start local 10 // int range
        16: .line 1555
      StackMap locals: int
      StackMap stack:
            aload 1 /* bytes */
            iload 2 /* p */
            aload 6 /* save */
            iconst_0
            iload 3 /* len */
            invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
        17: .line 1556
            aload 0 /* enc */
            aload 1 /* bytes */
            iload 2 /* p */
            iload 3 /* len */
            invokestatic org.jruby.util.StringSupport.predChar:(Lorg/jcodings/Encoding;[BII)Lorg/jruby/util/StringSupport$NeighborChar;
            astore 9 /* ret */
        18: .line 1557
            aload 9 /* ret */
            getstatic org.jruby.util.StringSupport$NeighborChar.FOUND:Lorg/jruby/util/StringSupport$NeighborChar;
            if_acmpne 23
        19: .line 1558
            aload 0 /* enc */
            aload 1 /* bytes */
            iload 2 /* p */
            iload 2 /* p */
            iload 3 /* len */
            iadd
            invokevirtual org.jcodings.Encoding.mbcToCode:([BII)I
            istore 7 /* c */
        20: .line 1559
            aload 0 /* enc */
            iload 7 /* c */
            iload 8 /* cType */
            invokevirtual org.jcodings.Encoding.isCodeCType:(II)Z
            ifne 25
        21: .line 1560
            aload 6 /* save */
            iconst_0
            aload 1 /* bytes */
            iload 2 /* p */
            iload 3 /* len */
            invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
        22: .line 1561
            goto 27
        23: .line 1564
      StackMap locals:
      StackMap stack:
            aload 6 /* save */
            iconst_0
            aload 1 /* bytes */
            iload 2 /* p */
            iload 3 /* len */
            invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
        24: .line 1565
            goto 27
        25: .line 1567
      StackMap locals:
      StackMap stack:
            iinc 10 /* range */ 1
        26: .line 1554
            goto 16
        27: .line 1570
      StackMap locals:
      StackMap stack:
            iload 10 /* range */
            iconst_1
            if_icmpne 28
            getstatic org.jruby.util.StringSupport$NeighborChar.NOT_CHAR:Lorg/jruby/util/StringSupport$NeighborChar;
            areturn
        28: .line 1572
      StackMap locals:
      StackMap stack:
            iload 8 /* cType */
            iconst_4
            if_icmpeq 31
        29: .line 1573
            aload 1 /* bytes */
            iload 2 /* p */
            aload 4 /* carry */
            iload 5 /* carryP */
            iload 3 /* len */
            invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
        30: .line 1574
            getstatic org.jruby.util.StringSupport$NeighborChar.WRAPPED:Lorg/jruby/util/StringSupport$NeighborChar;
            areturn
        31: .line 1577
      StackMap locals:
      StackMap stack:
            aload 1 /* bytes */
            iload 2 /* p */
            aload 4 /* carry */
            iload 5 /* carryP */
            iload 3 /* len */
            invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
        32: .line 1578
            aload 0 /* enc */
            aload 4 /* carry */
            iload 5 /* carryP */
            iload 3 /* len */
            invokestatic org.jruby.util.StringSupport.succChar:(Lorg/jcodings/Encoding;[BII)Lorg/jruby/util/StringSupport$NeighborChar;
            pop
        33: .line 1579
            getstatic org.jruby.util.StringSupport$NeighborChar.WRAPPED:Lorg/jruby/util/StringSupport$NeighborChar;
            areturn
        end local 10 // int range
        end local 9 // org.jruby.util.StringSupport$NeighborChar ret
        end local 8 // int cType
        end local 7 // int c
        end local 6 // byte[] save
        end local 5 // int carryP
        end local 4 // byte[] carry
        end local 3 // int len
        end local 2 // int p
        end local 1 // byte[] bytes
        end local 0 // org.jcodings.Encoding enc
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   34     0     enc  Lorg/jcodings/Encoding;
            0   34     1   bytes  [B
            0   34     2       p  I
            0   34     3     len  I
            0   34     4   carry  [B
            0   34     5  carryP  I
            1   34     6    save  [B
            2   34     7       c  I
            4    5     8   cType  I
            7    8     8   cType  I
            9   34     8   cType  I
           11   34     9     ret  Lorg/jruby/util/StringSupport$NeighborChar;
           16   34    10   range  I
    MethodParameters:
        Name  Flags
      enc     
      bytes   
      p       
      len     
      carry   
      carryP  

  private static org.jruby.util.StringSupport$NeighborChar predChar(org.jcodings.Encoding, byte[], int, int);
    descriptor: (Lorg/jcodings/Encoding;[BII)Lorg/jruby/util/StringSupport$NeighborChar;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=5, locals=10, args_size=4
        start local 0 // org.jcodings.Encoding enc
        start local 1 // byte[] bytes
        start local 2 // int p
        start local 3 // int len
         0: .line 1584
            aload 0 /* enc */
            invokevirtual org.jcodings.Encoding.minLength:()I
            iconst_1
            if_icmple 15
         1: .line 1586
            aload 0 /* enc */
            aload 1 /* bytes */
            iload 2 /* p */
            iload 2 /* p */
            iload 3 /* len */
            iadd
            invokestatic org.jruby.util.StringSupport.preciseLength:(Lorg/jcodings/Encoding;[BII)I
            istore 5 /* r */
        start local 5 // int r
         2: .line 1587
            iload 5 /* r */
            invokestatic org.jruby.util.StringSupport.MBCLEN_CHARFOUND_P:(I)Z
            ifne 4
         3: .line 1588
            getstatic org.jruby.util.StringSupport$NeighborChar.NOT_CHAR:Lorg/jruby/util/StringSupport$NeighborChar;
            areturn
         4: .line 1590
      StackMap locals: org.jcodings.Encoding byte[] int int top int
      StackMap stack:
            aload 0 /* enc */
            aload 1 /* bytes */
            iload 2 /* p */
            iload 2 /* p */
            iload 3 /* len */
            iadd
            invokestatic org.jruby.util.StringSupport.codePoint:(Lorg/jcodings/Encoding;[BII)I
            istore 6 /* c */
        start local 6 // int c
         5: .line 1591
            iload 6 /* c */
            ifne 6
            getstatic org.jruby.util.StringSupport$NeighborChar.NOT_CHAR:Lorg/jruby/util/StringSupport$NeighborChar;
            areturn
         6: .line 1592
      StackMap locals: int
      StackMap stack:
            iinc 6 /* c */ -1
         7: .line 1593
            aload 0 /* enc */
            iload 6 /* c */
            invokestatic org.jruby.util.StringSupport.codeLength:(Lorg/jcodings/Encoding;I)I
            istore 4 /* l */
        start local 4 // int l
         8: .line 1594
            iload 4 /* l */
            ifne 9
            getstatic org.jruby.util.StringSupport$NeighborChar.NOT_CHAR:Lorg/jruby/util/StringSupport$NeighborChar;
            areturn
         9: .line 1595
      StackMap locals: org.jcodings.Encoding byte[] int int int int int
      StackMap stack:
            iload 4 /* l */
            iload 3 /* len */
            if_icmpeq 10
            getstatic org.jruby.util.StringSupport$NeighborChar.WRAPPED:Lorg/jruby/util/StringSupport$NeighborChar;
            areturn
        10: .line 1596
      StackMap locals:
      StackMap stack:
            iload 6 /* c */
            aload 1 /* bytes */
            iload 2 /* p */
            aload 0 /* enc */
            invokestatic org.jruby.util.io.EncodingUtils.encMbcput:(I[BILorg/jcodings/Encoding;)I
            pop
        11: .line 1597
            aload 0 /* enc */
            aload 1 /* bytes */
            iload 2 /* p */
            iload 2 /* p */
            iload 3 /* len */
            iadd
            invokestatic org.jruby.util.StringSupport.preciseLength:(Lorg/jcodings/Encoding;[BII)I
            istore 5 /* r */
        12: .line 1598
            iload 5 /* r */
            invokestatic org.jruby.util.StringSupport.MBCLEN_CHARFOUND_P:(I)Z
            ifne 14
        13: .line 1599
            getstatic org.jruby.util.StringSupport$NeighborChar.NOT_CHAR:Lorg/jruby/util/StringSupport$NeighborChar;
            areturn
        14: .line 1601
      StackMap locals:
      StackMap stack:
            getstatic org.jruby.util.StringSupport$NeighborChar.FOUND:Lorg/jruby/util/StringSupport$NeighborChar;
            areturn
        end local 6 // int c
        end local 5 // int r
        end local 4 // int l
        15: .line 1604
      StackMap locals:
      StackMap stack:
            iload 3 /* len */
            iconst_1
            isub
            istore 5 /* i */
        start local 5 // int i
        16: .line 1605
            goto 18
      StackMap locals: org.jcodings.Encoding byte[] int int top int
      StackMap stack:
        17: aload 1 /* bytes */
            iload 2 /* p */
            iload 5 /* i */
            iadd
            iconst_m1
            bastore
            iinc 5 /* i */ -1
      StackMap locals:
      StackMap stack:
        18: iload 5 /* i */
            iflt 19
            aload 1 /* bytes */
            iload 2 /* p */
            iload 5 /* i */
            iadd
            baload
            ifeq 17
        19: .line 1606
      StackMap locals:
      StackMap stack:
            iload 5 /* i */
            ifge 20
            getstatic org.jruby.util.StringSupport$NeighborChar.WRAPPED:Lorg/jruby/util/StringSupport$NeighborChar;
            areturn
        20: .line 1607
      StackMap locals:
      StackMap stack:
            aload 1 /* bytes */
            iload 2 /* p */
            iload 5 /* i */
            iadd
            aload 1 /* bytes */
            iload 2 /* p */
            iload 5 /* i */
            iadd
            baload
            sipush 255
            iand
            iconst_1
            isub
            i2b
            bastore
        21: .line 1608
            aload 0 /* enc */
            aload 1 /* bytes */
            iload 2 /* p */
            iload 2 /* p */
            iload 3 /* len */
            iadd
            invokestatic org.jruby.util.StringSupport.preciseLength:(Lorg/jcodings/Encoding;[BII)I
            istore 4 /* l */
        start local 4 // int l
        22: .line 1609
            iload 4 /* l */
            invokestatic org.jruby.util.StringSupport.MBCLEN_CHARFOUND_P:(I)Z
            ifeq 29
        23: .line 1610
            iload 4 /* l */
            invokestatic org.jruby.util.StringSupport.MBCLEN_CHARFOUND_LEN:(I)I
            istore 4 /* l */
        24: .line 1611
            iload 4 /* l */
            iload 3 /* len */
            if_icmpne 26
        25: .line 1612
            getstatic org.jruby.util.StringSupport$NeighborChar.FOUND:Lorg/jruby/util/StringSupport$NeighborChar;
            areturn
        26: .line 1614
      StackMap locals: org.jcodings.Encoding byte[] int int int int
      StackMap stack:
            iload 2 /* p */
            iload 4 /* l */
            iadd
            istore 6 /* start */
        start local 6 // int start
        27: .line 1615
            iload 6 /* start */
            iload 3 /* len */
            iload 4 /* l */
            isub
            iadd
            istore 7 /* end */
        start local 7 // int end
        28: .line 1616
            aload 1 /* bytes */
            iload 6 /* start */
            iload 7 /* end */
            iconst_0
            invokestatic java.util.Arrays.fill:([BIIB)V
        end local 7 // int end
        end local 6 // int start
        29: .line 1619
      StackMap locals:
      StackMap stack:
            iload 4 /* l */
            invokestatic org.jruby.util.StringSupport.MBCLEN_CHARFOUND_P:(I)Z
            ifne 15
            iload 5 /* i */
            iload 3 /* len */
            iconst_1
            isub
            if_icmpge 15
        30: .line 1622
            iload 3 /* len */
            iconst_1
            isub
            istore 6 /* len2 */
        start local 6 // int len2
        31: goto 36
        32: .line 1623
      StackMap locals: int
      StackMap stack:
            aload 0 /* enc */
            aload 1 /* bytes */
            iload 2 /* p */
            iload 2 /* p */
            iload 6 /* len2 */
            iadd
            invokestatic org.jruby.util.StringSupport.preciseLength:(Lorg/jcodings/Encoding;[BII)I
            istore 7 /* l2 */
        start local 7 // int l2
        33: .line 1624
            iload 7 /* l2 */
            invokestatic org.jruby.util.StringSupport.MBCLEN_INVALID_P:(I)Z
            ifne 35
        34: .line 1625
            goto 37
        35: .line 1622
      StackMap locals: int
      StackMap stack:
            iinc 6 /* len2 */ -1
        end local 7 // int l2
      StackMap locals:
      StackMap stack:
        36: iload 6 /* len2 */
            ifgt 32
        37: .line 1627
      StackMap locals:
      StackMap stack:
            iload 2 /* p */
            iload 6 /* len2 */
            iadd
            iconst_1
            iadd
            istore 8 /* start */
        start local 8 // int start
        38: .line 1628
            iload 8 /* start */
            iload 3 /* len */
            iload 6 /* len2 */
            iconst_1
            iadd
            isub
            iadd
            istore 9 /* end */
        start local 9 // int end
        39: .line 1629
            aload 1 /* bytes */
            iload 8 /* start */
            iload 9 /* end */
            iconst_0
            invokestatic java.util.Arrays.fill:([BIIB)V
        end local 9 // int end
        end local 8 // int start
        end local 6 // int len2
        end local 5 // int i
        end local 4 // int l
        40: .line 1603
            goto 15
        end local 3 // int len
        end local 2 // int p
        end local 1 // byte[] bytes
        end local 0 // org.jcodings.Encoding enc
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0   41     0    enc  Lorg/jcodings/Encoding;
            0   41     1  bytes  [B
            0   41     2      p  I
            0   41     3    len  I
            8   15     4      l  I
           22   40     4      l  I
            2   15     5      r  I
            5   15     6      c  I
           16   40     5      i  I
           27   29     6  start  I
           28   29     7    end  I
           31   40     6   len2  I
           33   36     7     l2  I
           38   40     8  start  I
           39   40     9    end  I
    MethodParameters:
       Name  Flags
      enc    
      bytes  
      p      
      len    

  public static boolean isSingleByteOptimizable(org.jruby.util.CodeRangeable, org.jcodings.Encoding);
    descriptor: (Lorg/jruby/util/CodeRangeable;Lorg/jcodings/Encoding;)Z
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.jruby.util.CodeRangeable string
        start local 1 // org.jcodings.Encoding encoding
         0: .line 1635
            aload 0 /* string */
            invokeinterface org.jruby.util.CodeRangeable.getCodeRange:()I
            bipush 16
            if_icmpeq 1
            aload 1 /* encoding */
            invokevirtual org.jcodings.Encoding.maxLength:()I
            iconst_1
            if_icmpeq 1
            iconst_0
            ireturn
      StackMap locals:
      StackMap stack:
         1: iconst_1
            ireturn
        end local 1 // org.jcodings.Encoding encoding
        end local 0 // org.jruby.util.CodeRangeable string
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    2     0    string  Lorg/jruby/util/CodeRangeable;
            0    2     1  encoding  Lorg/jcodings/Encoding;
    MethodParameters:
          Name  Flags
      string    
      encoding  

  public static int index(org.jruby.util.ByteList, org.jruby.util.ByteList, int, org.jcodings.Encoding);
    descriptor: (Lorg/jruby/util/ByteList;Lorg/jruby/util/ByteList;ILorg/jcodings/Encoding;)I
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=5, locals=12, args_size=4
        start local 0 // org.jruby.util.ByteList source
        start local 1 // org.jruby.util.ByteList other
        start local 2 // int offset
        start local 3 // org.jcodings.Encoding enc
         0: .line 1647
            aload 0 /* source */
            invokevirtual org.jruby.util.ByteList.realSize:()I
            istore 4 /* sourceLen */
        start local 4 // int sourceLen
         1: .line 1648
            aload 0 /* source */
            invokevirtual org.jruby.util.ByteList.begin:()I
            istore 5 /* sourceBegin */
        start local 5 // int sourceBegin
         2: .line 1649
            aload 1 /* other */
            invokevirtual org.jruby.util.ByteList.realSize:()I
            istore 6 /* otherLen */
        start local 6 // int otherLen
         3: .line 1651
            iload 6 /* otherLen */
            ifne 4
            iload 2 /* offset */
            ireturn
         4: .line 1652
      StackMap locals: int int int
      StackMap stack:
            iload 4 /* sourceLen */
            iload 2 /* offset */
            isub
            iload 6 /* otherLen */
            if_icmpge 5
            iconst_m1
            ireturn
         5: .line 1654
      StackMap locals:
      StackMap stack:
            aload 0 /* source */
            invokevirtual org.jruby.util.ByteList.getUnsafeBytes:()[B
            astore 7 /* sourceBytes */
        start local 7 // byte[] sourceBytes
         6: .line 1655
            iload 5 /* sourceBegin */
            iload 2 /* offset */
            iadd
            istore 8 /* p */
        start local 8 // int p
         7: .line 1656
            iload 8 /* p */
            iload 4 /* sourceLen */
            iadd
            istore 9 /* end */
        start local 9 // int end
         8: .line 1659
      StackMap locals: byte[] int int
      StackMap stack:
            aload 0 /* source */
            aload 1 /* other */
            iload 8 /* p */
            iload 5 /* sourceBegin */
            isub
            invokevirtual org.jruby.util.ByteList.indexOf:(Lorg/jruby/util/ByteList;I)I
            istore 10 /* pos */
        start local 10 // int pos
         9: .line 1660
            iload 10 /* pos */
            ifge 10
            iload 10 /* pos */
            ireturn
        10: .line 1661
      StackMap locals: int
      StackMap stack:
            iload 10 /* pos */
            iload 8 /* p */
            iload 5 /* sourceBegin */
            isub
            isub
            istore 10 /* pos */
        11: .line 1662
            aload 3 /* enc */
            aload 7 /* sourceBytes */
            iload 8 /* p */
            iload 8 /* p */
            iload 10 /* pos */
            iadd
            iload 9 /* end */
            invokevirtual org.jcodings.Encoding.rightAdjustCharHead:([BIII)I
            istore 11 /* t */
        start local 11 // int t
        12: .line 1663
            iload 11 /* t */
            iload 8 /* p */
            iload 10 /* pos */
            iadd
            if_icmpne 13
            iload 10 /* pos */
            iload 2 /* offset */
            iadd
            ireturn
        13: .line 1664
      StackMap locals: int
      StackMap stack:
            iload 4 /* sourceLen */
            iload 11 /* t */
            iload 8 /* p */
            isub
            isub
            dup
            istore 4 /* sourceLen */
            ifgt 14
            iconst_m1
            ireturn
        14: .line 1665
      StackMap locals:
      StackMap stack:
            iload 2 /* offset */
            iload 11 /* t */
            iload 8 /* p */
            isub
            iadd
            istore 2 /* offset */
        15: .line 1666
            iload 11 /* t */
            istore 8 /* p */
        end local 11 // int t
        end local 10 // int pos
        16: .line 1658
            goto 8
        end local 9 // int end
        end local 8 // int p
        end local 7 // byte[] sourceBytes
        end local 6 // int otherLen
        end local 5 // int sourceBegin
        end local 4 // int sourceLen
        end local 3 // org.jcodings.Encoding enc
        end local 2 // int offset
        end local 1 // org.jruby.util.ByteList other
        end local 0 // org.jruby.util.ByteList source
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   17     0       source  Lorg/jruby/util/ByteList;
            0   17     1        other  Lorg/jruby/util/ByteList;
            0   17     2       offset  I
            0   17     3          enc  Lorg/jcodings/Encoding;
            1   17     4    sourceLen  I
            2   17     5  sourceBegin  I
            3   17     6     otherLen  I
            6   17     7  sourceBytes  [B
            7   17     8            p  I
            8   17     9          end  I
            9   16    10          pos  I
           12   16    11            t  I
    MethodParameters:
        Name  Flags
      source  
      other   
      offset  
      enc     

  public static int index(org.jruby.util.CodeRangeable, org.jruby.util.CodeRangeable, int, org.jcodings.Encoding);
    descriptor: (Lorg/jruby/util/CodeRangeable;Lorg/jruby/util/CodeRangeable;ILorg/jcodings/Encoding;)I
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=5, locals=13, args_size=4
        start local 0 // org.jruby.util.CodeRangeable sourceString
        start local 1 // org.jruby.util.CodeRangeable otherString
        start local 2 // int offset
        start local 3 // org.jcodings.Encoding enc
         0: .line 1671
            aload 1 /* otherString */
            invokeinterface org.jruby.util.CodeRangeable.scanForCodeRange:()I
            bipush 48
            if_icmpne 1
            iconst_m1
            ireturn
         1: .line 1673
      StackMap locals:
      StackMap stack:
            aload 0 /* sourceString */
            invokestatic org.jruby.util.StringSupport.strLengthFromRubyString:(Lorg/jruby/util/CodeRangeable;)I
            istore 4 /* sourceLen */
        start local 4 // int sourceLen
         2: .line 1674
            aload 1 /* otherString */
            invokestatic org.jruby.util.StringSupport.strLengthFromRubyString:(Lorg/jruby/util/CodeRangeable;)I
            istore 5 /* otherLen */
        start local 5 // int otherLen
         3: .line 1676
            iload 2 /* offset */
            ifge 6
         4: .line 1677
            iload 2 /* offset */
            iload 4 /* sourceLen */
            iadd
            istore 2 /* offset */
         5: .line 1678
            iload 2 /* offset */
            ifge 6
            iconst_m1
            ireturn
         6: .line 1681
      StackMap locals: int int
      StackMap stack:
            aload 0 /* sourceString */
            invokeinterface org.jruby.util.CodeRangeable.getByteList:()Lorg/jruby/util/ByteList;
            astore 6 /* source */
        start local 6 // org.jruby.util.ByteList source
         7: .line 1682
            aload 1 /* otherString */
            invokeinterface org.jruby.util.CodeRangeable.getByteList:()Lorg/jruby/util/ByteList;
            astore 7 /* other */
        start local 7 // org.jruby.util.ByteList other
         8: .line 1684
            iload 4 /* sourceLen */
            iload 2 /* offset */
            isub
            iload 5 /* otherLen */
            if_icmpge 9
            iconst_m1
            ireturn
         9: .line 1685
      StackMap locals: org.jruby.util.ByteList org.jruby.util.ByteList
      StackMap stack:
            aload 6 /* source */
            invokevirtual org.jruby.util.ByteList.getUnsafeBytes:()[B
            astore 8 /* bytes */
        start local 8 // byte[] bytes
        10: .line 1686
            aload 6 /* source */
            invokevirtual org.jruby.util.ByteList.getBegin:()I
            istore 9 /* p */
        start local 9 // int p
        11: .line 1687
            iload 9 /* p */
            aload 6 /* source */
            invokevirtual org.jruby.util.ByteList.getRealSize:()I
            iadd
            istore 10 /* end */
        start local 10 // int end
        12: .line 1688
            iload 2 /* offset */
            ifeq 17
        13: .line 1689
            aload 0 /* sourceString */
            aload 3 /* enc */
            invokestatic org.jruby.util.StringSupport.isSingleByteOptimizable:(Lorg/jruby/util/CodeRangeable;Lorg/jcodings/Encoding;)Z
            ifeq 14
            iload 2 /* offset */
            goto 15
      StackMap locals: byte[] int int
      StackMap stack:
        14: aload 3 /* enc */
            aload 8 /* bytes */
            iload 9 /* p */
            iload 10 /* end */
            iload 2 /* offset */
            invokestatic org.jruby.util.StringSupport.offset:(Lorg/jcodings/Encoding;[BIII)I
      StackMap locals:
      StackMap stack: int
        15: istore 2 /* offset */
        16: .line 1690
            iload 9 /* p */
            iload 2 /* offset */
            iadd
            istore 9 /* p */
        17: .line 1692
      StackMap locals:
      StackMap stack:
            iload 5 /* otherLen */
            ifne 18
            iload 2 /* offset */
            ireturn
        18: .line 1695
      StackMap locals:
      StackMap stack:
            aload 6 /* source */
            aload 7 /* other */
            iload 9 /* p */
            aload 6 /* source */
            invokevirtual org.jruby.util.ByteList.getBegin:()I
            isub
            invokevirtual org.jruby.util.ByteList.indexOf:(Lorg/jruby/util/ByteList;I)I
            istore 11 /* pos */
        start local 11 // int pos
        19: .line 1696
            iload 11 /* pos */
            ifge 20
            iload 11 /* pos */
            ireturn
        20: .line 1697
      StackMap locals: int
      StackMap stack:
            iload 11 /* pos */
            iload 9 /* p */
            aload 6 /* source */
            invokevirtual org.jruby.util.ByteList.getBegin:()I
            isub
            isub
            istore 11 /* pos */
        21: .line 1698
            aload 3 /* enc */
            aload 8 /* bytes */
            iload 9 /* p */
            iload 9 /* p */
            iload 11 /* pos */
            iadd
            iload 10 /* end */
            invokevirtual org.jcodings.Encoding.rightAdjustCharHead:([BIII)I
            istore 12 /* t */
        start local 12 // int t
        22: .line 1699
            iload 12 /* t */
            iload 9 /* p */
            iload 11 /* pos */
            iadd
            if_icmpne 23
            iload 11 /* pos */
            iload 2 /* offset */
            iadd
            ireturn
        23: .line 1700
      StackMap locals: int
      StackMap stack:
            iload 4 /* sourceLen */
            iload 12 /* t */
            iload 9 /* p */
            isub
            isub
            dup
            istore 4 /* sourceLen */
            ifgt 24
            iconst_m1
            ireturn
        24: .line 1701
      StackMap locals:
      StackMap stack:
            iload 2 /* offset */
            iload 12 /* t */
            iload 9 /* p */
            isub
            iadd
            istore 2 /* offset */
        25: .line 1702
            iload 12 /* t */
            istore 9 /* p */
        end local 12 // int t
        end local 11 // int pos
        26: .line 1694
            goto 18
        end local 10 // int end
        end local 9 // int p
        end local 8 // byte[] bytes
        end local 7 // org.jruby.util.ByteList other
        end local 6 // org.jruby.util.ByteList source
        end local 5 // int otherLen
        end local 4 // int sourceLen
        end local 3 // org.jcodings.Encoding enc
        end local 2 // int offset
        end local 1 // org.jruby.util.CodeRangeable otherString
        end local 0 // org.jruby.util.CodeRangeable sourceString
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0   27     0  sourceString  Lorg/jruby/util/CodeRangeable;
            0   27     1   otherString  Lorg/jruby/util/CodeRangeable;
            0   27     2        offset  I
            0   27     3           enc  Lorg/jcodings/Encoding;
            2   27     4     sourceLen  I
            3   27     5      otherLen  I
            7   27     6        source  Lorg/jruby/util/ByteList;
            8   27     7         other  Lorg/jruby/util/ByteList;
           10   27     8         bytes  [B
           11   27     9             p  I
           12   27    10           end  I
           19   26    11           pos  I
           22   26    12             t  I
    MethodParameters:
              Name  Flags
      sourceString  
      otherString   
      offset        
      enc           

  public static void associateEncoding(org.jruby.util.CodeRangeable, org.jcodings.Encoding);
    descriptor: (Lorg/jruby/util/CodeRangeable;Lorg/jcodings/Encoding;)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // org.jruby.util.CodeRangeable string
        start local 1 // org.jcodings.Encoding enc
         0: .line 1707
            aload 0 /* string */
            invokeinterface org.jruby.util.CodeRangeable.getByteList:()Lorg/jruby/util/ByteList;
            astore 2 /* value */
        start local 2 // org.jruby.util.ByteList value
         1: .line 1709
            aload 2 /* value */
            invokevirtual org.jruby.util.ByteList.getEncoding:()Lorg/jcodings/Encoding;
            aload 1 /* enc */
            if_acmpeq 5
         2: .line 1710
            aload 0 /* string */
            invokestatic org.jruby.util.CodeRangeSupport.isCodeRangeAsciiOnly:(Lorg/jruby/util/CodeRangeable;)Z
            ifeq 3
            aload 1 /* enc */
            invokevirtual org.jcodings.Encoding.isAsciiCompatible:()Z
            ifne 4
      StackMap locals: org.jruby.util.ByteList
      StackMap stack:
         3: aload 0 /* string */
            invokeinterface org.jruby.util.CodeRangeable.clearCodeRange:()V
         4: .line 1711
      StackMap locals:
      StackMap stack:
            aload 2 /* value */
            aload 1 /* enc */
            invokevirtual org.jruby.util.ByteList.setEncoding:(Lorg/jcodings/Encoding;)V
         5: .line 1713
      StackMap locals:
      StackMap stack:
            return
        end local 2 // org.jruby.util.ByteList value
        end local 1 // org.jcodings.Encoding enc
        end local 0 // org.jruby.util.CodeRangeable string
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    6     0  string  Lorg/jruby/util/CodeRangeable;
            0    6     1     enc  Lorg/jcodings/Encoding;
            1    6     2   value  Lorg/jruby/util/ByteList;
    MethodParameters:
        Name  Flags
      string  
      enc     

  public static org.jruby.util.ByteList replaceInternal(int, int, org.jruby.util.ByteListHolder, org.jruby.util.CodeRangeable);
    descriptor: (IILorg/jruby/util/ByteListHolder;Lorg/jruby/util/CodeRangeable;)Lorg/jruby/util/ByteList;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=7, locals=10, args_size=4
        start local 0 // int beg
        start local 1 // int len
        start local 2 // org.jruby.util.ByteListHolder source
        start local 3 // org.jruby.util.CodeRangeable repl
         0: .line 1716
            aload 2 /* source */
            invokeinterface org.jruby.util.ByteListHolder.getByteList:()Lorg/jruby/util/ByteList;
            invokevirtual org.jruby.util.ByteList.getRealSize:()I
            istore 4 /* oldLength */
        start local 4 // int oldLength
         1: .line 1717
            iload 0 /* beg */
            iload 1 /* len */
            iadd
            iload 4 /* oldLength */
            if_icmplt 2
            iload 4 /* oldLength */
            iload 0 /* beg */
            isub
            istore 1 /* len */
         2: .line 1718
      StackMap locals: int
      StackMap stack:
            aload 3 /* repl */
            invokeinterface org.jruby.util.CodeRangeable.getByteList:()Lorg/jruby/util/ByteList;
            astore 5 /* replBytes */
        start local 5 // org.jruby.util.ByteList replBytes
         3: .line 1719
            aload 5 /* replBytes */
            invokevirtual org.jruby.util.ByteList.getRealSize:()I
            istore 6 /* replLength */
        start local 6 // int replLength
         4: .line 1720
            iload 4 /* oldLength */
            iload 6 /* replLength */
            iadd
            iload 1 /* len */
            isub
            istore 7 /* newLength */
        start local 7 // int newLength
         5: .line 1722
            aload 2 /* source */
            invokeinterface org.jruby.util.ByteListHolder.getByteList:()Lorg/jruby/util/ByteList;
            invokevirtual org.jruby.util.ByteList.getUnsafeBytes:()[B
            astore 8 /* oldBytes */
        start local 8 // byte[] oldBytes
         6: .line 1723
            aload 2 /* source */
            invokeinterface org.jruby.util.ByteListHolder.getByteList:()Lorg/jruby/util/ByteList;
            invokevirtual org.jruby.util.ByteList.getBegin:()I
            istore 9 /* oldBegin */
        start local 9 // int oldBegin
         7: .line 1725
            aload 2 /* source */
            iload 7 /* newLength */
            invokeinterface org.jruby.util.ByteListHolder.modify:(I)V
         8: .line 1726
            iload 6 /* replLength */
            iload 1 /* len */
            if_icmpeq 10
         9: .line 1727
            aload 8 /* oldBytes */
            iload 9 /* oldBegin */
            iload 0 /* beg */
            iadd
            iload 1 /* len */
            iadd
            aload 2 /* source */
            invokeinterface org.jruby.util.ByteListHolder.getByteList:()Lorg/jruby/util/ByteList;
            invokevirtual org.jruby.util.ByteList.getUnsafeBytes:()[B
            iload 0 /* beg */
            iload 6 /* replLength */
            iadd
            iload 4 /* oldLength */
            iload 0 /* beg */
            iload 1 /* len */
            iadd
            isub
            invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
        10: .line 1730
      StackMap locals: int int org.jruby.util.ByteListHolder org.jruby.util.CodeRangeable int org.jruby.util.ByteList int int byte[] int
      StackMap stack:
            iload 6 /* replLength */
            ifle 11
            aload 5 /* replBytes */
            invokevirtual org.jruby.util.ByteList.getUnsafeBytes:()[B
            aload 5 /* replBytes */
            invokevirtual org.jruby.util.ByteList.getBegin:()I
            aload 2 /* source */
            invokeinterface org.jruby.util.ByteListHolder.getByteList:()Lorg/jruby/util/ByteList;
            invokevirtual org.jruby.util.ByteList.getUnsafeBytes:()[B
            iload 0 /* beg */
            iload 6 /* replLength */
            invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
        11: .line 1731
      StackMap locals:
      StackMap stack:
            aload 2 /* source */
            invokeinterface org.jruby.util.ByteListHolder.getByteList:()Lorg/jruby/util/ByteList;
            iload 7 /* newLength */
            invokevirtual org.jruby.util.ByteList.setRealSize:(I)V
        12: .line 1733
            aload 2 /* source */
            invokeinterface org.jruby.util.ByteListHolder.getByteList:()Lorg/jruby/util/ByteList;
            areturn
        end local 9 // int oldBegin
        end local 8 // byte[] oldBytes
        end local 7 // int newLength
        end local 6 // int replLength
        end local 5 // org.jruby.util.ByteList replBytes
        end local 4 // int oldLength
        end local 3 // org.jruby.util.CodeRangeable repl
        end local 2 // org.jruby.util.ByteListHolder source
        end local 1 // int len
        end local 0 // int beg
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   13     0         beg  I
            0   13     1         len  I
            0   13     2      source  Lorg/jruby/util/ByteListHolder;
            0   13     3        repl  Lorg/jruby/util/CodeRangeable;
            1   13     4   oldLength  I
            3   13     5   replBytes  Lorg/jruby/util/ByteList;
            4   13     6  replLength  I
            5   13     7   newLength  I
            6   13     8    oldBytes  [B
            7   13     9    oldBegin  I
    MethodParameters:
        Name  Flags
      beg     
      len     
      source  
      repl    

  public static void replaceInternal19(int, int, org.jruby.util.CodeRangeable, org.jruby.util.CodeRangeable);
    descriptor: (IILorg/jruby/util/CodeRangeable;Lorg/jruby/util/CodeRangeable;)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=6, locals=13, args_size=4
        start local 0 // int beg
        start local 1 // int len
        start local 2 // org.jruby.util.CodeRangeable source
        start local 3 // org.jruby.util.CodeRangeable repl
         0: .line 1738
            aload 2 /* source */
            aload 3 /* repl */
            invokeinterface org.jruby.util.CodeRangeable.checkEncoding:(Lorg/jruby/util/CodeRangeable;)Lorg/jcodings/Encoding;
            astore 4 /* enc */
        start local 4 // org.jcodings.Encoding enc
         1: .line 1740
            aload 2 /* source */
            invokeinterface org.jruby.util.CodeRangeable.modify:()V
         2: .line 1741
            aload 2 /* source */
            invokeinterface org.jruby.util.CodeRangeable.keepCodeRange:()V
         3: .line 1742
            aload 2 /* source */
            invokeinterface org.jruby.util.CodeRangeable.getByteList:()Lorg/jruby/util/ByteList;
            astore 5 /* sourceBL */
        start local 5 // org.jruby.util.ByteList sourceBL
         4: .line 1743
            aload 5 /* sourceBL */
            invokevirtual org.jruby.util.ByteList.unsafeBytes:()[B
            astore 6 /* sourceBytes */
        start local 6 // byte[] sourceBytes
         5: .line 1744
            aload 5 /* sourceBL */
            invokevirtual org.jruby.util.ByteList.begin:()I
            istore 7 /* sourceBeg */
        start local 7 // int sourceBeg
         6: .line 1745
            iload 7 /* sourceBeg */
            aload 5 /* sourceBL */
            invokevirtual org.jruby.util.ByteList.realSize:()I
            iadd
            istore 8 /* sourceEnd */
        start local 8 // int sourceEnd
         7: .line 1746
            aload 2 /* source */
            aload 2 /* source */
            invokeinterface org.jruby.util.CodeRangeable.getByteList:()Lorg/jruby/util/ByteList;
            invokevirtual org.jruby.util.ByteList.getEncoding:()Lorg/jcodings/Encoding;
            invokestatic org.jruby.util.StringSupport.isSingleByteOptimizable:(Lorg/jruby/util/CodeRangeable;Lorg/jcodings/Encoding;)Z
            istore 9 /* singlebyte */
        start local 9 // boolean singlebyte
         8: .line 1747
            aload 4 /* enc */
            aload 6 /* sourceBytes */
            iload 7 /* sourceBeg */
            iload 8 /* sourceEnd */
            iload 0 /* beg */
            iload 9 /* singlebyte */
            invokestatic org.jruby.util.StringSupport.nth:(Lorg/jcodings/Encoding;[BIIIZ)I
            istore 10 /* p */
        start local 10 // int p
         9: .line 1748
            iload 10 /* p */
            iconst_m1
            if_icmpne 10
            iload 8 /* sourceEnd */
            istore 10 /* p */
        10: .line 1749
      StackMap locals: int int org.jruby.util.CodeRangeable org.jruby.util.CodeRangeable org.jcodings.Encoding org.jruby.util.ByteList byte[] int int int int
      StackMap stack:
            aload 4 /* enc */
            aload 6 /* sourceBytes */
            iload 10 /* p */
            iload 8 /* sourceEnd */
            iload 1 /* len */
            iload 9 /* singlebyte */
            invokestatic org.jruby.util.StringSupport.nth:(Lorg/jcodings/Encoding;[BIIIZ)I
            istore 11 /* e */
        start local 11 // int e
        11: .line 1750
            iload 11 /* e */
            iconst_m1
            if_icmpne 12
            iload 8 /* sourceEnd */
            istore 11 /* e */
        12: .line 1752
      StackMap locals: int
      StackMap stack:
            iload 10 /* p */
            iload 7 /* sourceBeg */
            isub
            istore 0 /* beg */
        13: .line 1753
            iload 11 /* e */
            iload 10 /* p */
            isub
            istore 1 /* len */
        14: .line 1754
            iload 0 /* beg */
            iload 1 /* len */
            aload 2 /* source */
            aload 3 /* repl */
            invokestatic org.jruby.util.StringSupport.replaceInternal:(IILorg/jruby/util/ByteListHolder;Lorg/jruby/util/CodeRangeable;)Lorg/jruby/util/ByteList;
            pop
        15: .line 1755
            aload 2 /* source */
            aload 4 /* enc */
            invokestatic org.jruby.util.StringSupport.associateEncoding:(Lorg/jruby/util/CodeRangeable;Lorg/jcodings/Encoding;)V
        16: .line 1756
            aload 2 /* source */
            invokeinterface org.jruby.util.CodeRangeable.getCodeRange:()I
            aload 3 /* repl */
            invokeinterface org.jruby.util.CodeRangeable.getCodeRange:()I
            invokestatic org.jruby.util.CodeRangeSupport.codeRangeAnd:(II)I
            istore 12 /* cr */
        start local 12 // int cr
        17: .line 1757
            iload 12 /* cr */
            bipush 48
            if_icmpeq 18
            aload 2 /* source */
            iload 12 /* cr */
            invokeinterface org.jruby.util.CodeRangeable.setCodeRange:(I)V
        18: .line 1758
      StackMap locals: int
      StackMap stack:
            return
        end local 12 // int cr
        end local 11 // int e
        end local 10 // int p
        end local 9 // boolean singlebyte
        end local 8 // int sourceEnd
        end local 7 // int sourceBeg
        end local 6 // byte[] sourceBytes
        end local 5 // org.jruby.util.ByteList sourceBL
        end local 4 // org.jcodings.Encoding enc
        end local 3 // org.jruby.util.CodeRangeable repl
        end local 2 // org.jruby.util.CodeRangeable source
        end local 1 // int len
        end local 0 // int beg
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   19     0          beg  I
            0   19     1          len  I
            0   19     2       source  Lorg/jruby/util/CodeRangeable;
            0   19     3         repl  Lorg/jruby/util/CodeRangeable;
            1   19     4          enc  Lorg/jcodings/Encoding;
            4   19     5     sourceBL  Lorg/jruby/util/ByteList;
            5   19     6  sourceBytes  [B
            6   19     7    sourceBeg  I
            7   19     8    sourceEnd  I
            8   19     9   singlebyte  Z
            9   19    10            p  I
           11   19    11            e  I
           17   19    12           cr  I
    MethodParameters:
        Name  Flags
      beg     
      len     
      source  
      repl    

  public static void replaceInternal19(org.jruby.Ruby, int, int, org.jruby.RubyString, org.jruby.RubyString);
    descriptor: (Lorg/jruby/Ruby;IILorg/jruby/RubyString;Lorg/jruby/RubyString;)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=6, args_size=5
        start local 0 // org.jruby.Ruby runtime
        start local 1 // int beg
        start local 2 // int len
        start local 3 // org.jruby.RubyString source
        start local 4 // org.jruby.RubyString repl
         0: .line 1762
            iload 2 /* len */
            ifge 1
            aload 0 /* runtime */
            new java.lang.StringBuilder
            dup
            ldc "negative length "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            iload 2 /* len */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual org.jruby.Ruby.newIndexError:(Ljava/lang/String;)Lorg/jruby/exceptions/RaiseException;
            athrow
         1: .line 1764
      StackMap locals:
      StackMap stack:
            aload 3 /* source */
            aload 3 /* source */
            aload 4 /* repl */
            invokevirtual org.jruby.RubyString.checkEncoding:(Lorg/jruby/RubyString;)Lorg/jcodings/Encoding;
            invokestatic org.jruby.util.StringSupport.strLengthFromRubyString:(Lorg/jruby/util/CodeRangeable;Lorg/jcodings/Encoding;)I
            istore 5 /* slen */
        start local 5 // int slen
         2: .line 1766
            iload 5 /* slen */
            iload 1 /* beg */
            if_icmpge 4
         3: .line 1767
            aload 0 /* runtime */
            new java.lang.StringBuilder
            dup
            ldc "index "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            iload 1 /* beg */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            ldc " out of string"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual org.jruby.Ruby.newIndexError:(Ljava/lang/String;)Lorg/jruby/exceptions/RaiseException;
            athrow
         4: .line 1769
      StackMap locals: int
      StackMap stack:
            iload 1 /* beg */
            ifge 8
         5: .line 1770
            iload 1 /* beg */
            ineg
            iload 5 /* slen */
            if_icmple 7
         6: .line 1771
            aload 0 /* runtime */
            new java.lang.StringBuilder
            dup
            ldc "index "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            iload 1 /* beg */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            ldc " out of string"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual org.jruby.Ruby.newIndexError:(Ljava/lang/String;)Lorg/jruby/exceptions/RaiseException;
            athrow
         7: .line 1773
      StackMap locals:
      StackMap stack:
            iload 1 /* beg */
            iload 5 /* slen */
            iadd
            istore 1 /* beg */
         8: .line 1775
      StackMap locals:
      StackMap stack:
            iload 5 /* slen */
            iload 2 /* len */
            if_icmplt 9
            iload 5 /* slen */
            iload 1 /* beg */
            iload 2 /* len */
            iadd
            if_icmpge 10
         9: .line 1776
      StackMap locals:
      StackMap stack:
            iload 5 /* slen */
            iload 1 /* beg */
            isub
            istore 2 /* len */
        10: .line 1779
      StackMap locals:
      StackMap stack:
            iload 1 /* beg */
            iload 2 /* len */
            aload 3 /* source */
            aload 4 /* repl */
            invokestatic org.jruby.util.StringSupport.replaceInternal19:(IILorg/jruby/util/CodeRangeable;Lorg/jruby/util/CodeRangeable;)V
        11: .line 1781
            aload 4 /* repl */
            invokevirtual org.jruby.RubyString.isTaint:()Z
            ifeq 12
            aload 3 /* source */
            iconst_1
            invokevirtual org.jruby.RubyString.setTaint:(Z)V
        12: .line 1782
      StackMap locals:
      StackMap stack:
            return
        end local 5 // int slen
        end local 4 // org.jruby.RubyString repl
        end local 3 // org.jruby.RubyString source
        end local 2 // int len
        end local 1 // int beg
        end local 0 // org.jruby.Ruby runtime
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   13     0  runtime  Lorg/jruby/Ruby;
            0   13     1      beg  I
            0   13     2      len  I
            0   13     3   source  Lorg/jruby/RubyString;
            0   13     4     repl  Lorg/jruby/RubyString;
            2   13     5     slen  I
    MethodParameters:
         Name  Flags
      runtime  
      beg      
      len      
      source   
      repl     

  public static boolean isAsciiOnly(org.jruby.util.CodeRangeable);
    descriptor: (Lorg/jruby/util/CodeRangeable;)Z
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.jruby.util.CodeRangeable string
         0: .line 1785
            aload 0 /* string */
            invokeinterface org.jruby.util.CodeRangeable.getByteList:()Lorg/jruby/util/ByteList;
            invokevirtual org.jruby.util.ByteList.getEncoding:()Lorg/jcodings/Encoding;
            aload 0 /* string */
            invokeinterface org.jruby.util.CodeRangeable.scanForCodeRange:()I
            invokestatic org.jruby.util.StringSupport.isAsciiOnly:(Lorg/jcodings/Encoding;I)Z
            ireturn
        end local 0 // org.jruby.util.CodeRangeable string
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    1     0  string  Lorg/jruby/util/CodeRangeable;
    MethodParameters:
        Name  Flags
      string  

  private static boolean isAsciiOnly(org.jcodings.Encoding, int);
    descriptor: (Lorg/jcodings/Encoding;I)Z
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.jcodings.Encoding encoding
        start local 1 // int codeRange
         0: .line 1789
            aload 0 /* encoding */
            invokevirtual org.jcodings.Encoding.isAsciiCompatible:()Z
            ifeq 1
            iload 1 /* codeRange */
            bipush 16
            if_icmpne 1
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         1: iconst_0
            ireturn
        end local 1 // int codeRange
        end local 0 // org.jcodings.Encoding encoding
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    2     0   encoding  Lorg/jcodings/Encoding;
            0    2     1  codeRange  I
    MethodParameters:
           Name  Flags
      encoding   
      codeRange  final

  static org.jruby.util.CodeRangeable strDeleteBang(org.jruby.util.CodeRangeable, boolean[], org.jruby.util.StringSupport$TrTables, org.jcodings.Encoding);
    descriptor: (Lorg/jruby/util/CodeRangeable;[ZLorg/jruby/util/StringSupport$TrTables;Lorg/jcodings/Encoding;)Lorg/jruby/util/CodeRangeable;
    flags: (0x0008) ACC_STATIC
    Code:
      stack=4, locals=14, args_size=4
        start local 0 // org.jruby.util.CodeRangeable rubyString
        start local 1 // boolean[] squeeze
        start local 2 // org.jruby.util.StringSupport$TrTables tables
        start local 3 // org.jcodings.Encoding enc
         0: .line 1796
            aload 0 /* rubyString */
            invokeinterface org.jruby.util.CodeRangeable.modify:()V
         1: .line 1797
            aload 0 /* rubyString */
            invokeinterface org.jruby.util.CodeRangeable.keepCodeRange:()V
         2: .line 1799
            aload 0 /* rubyString */
            invokeinterface org.jruby.util.CodeRangeable.getByteList:()Lorg/jruby/util/ByteList;
            astore 4 /* value */
        start local 4 // org.jruby.util.ByteList value
         3: .line 1801
            aload 4 /* value */
            invokevirtual org.jruby.util.ByteList.getBegin:()I
            istore 5 /* s */
        start local 5 // int s
         4: .line 1802
            iload 5 /* s */
            istore 6 /* t */
        start local 6 // int t
         5: .line 1803
            iload 5 /* s */
            aload 4 /* value */
            invokevirtual org.jruby.util.ByteList.getRealSize:()I
            iadd
            istore 7 /* send */
        start local 7 // int send
         6: .line 1804
            aload 4 /* value */
            invokevirtual org.jruby.util.ByteList.getUnsafeBytes:()[B
            astore 8 /* bytes */
        start local 8 // byte[] bytes
         7: .line 1805
            iconst_0
            istore 9 /* modify */
        start local 9 // boolean modify
         8: .line 1806
            aload 3 /* enc */
            invokevirtual org.jcodings.Encoding.isAsciiCompatible:()Z
            istore 10 /* asciiCompatible */
        start local 10 // boolean asciiCompatible
         9: .line 1807
            iload 10 /* asciiCompatible */
            ifeq 10
            bipush 16
            goto 11
      StackMap locals: org.jruby.util.CodeRangeable boolean[] org.jruby.util.StringSupport$TrTables org.jcodings.Encoding org.jruby.util.ByteList int int int byte[] int int
      StackMap stack:
        10: bipush 32
      StackMap locals:
      StackMap stack: int
        11: istore 11 /* cr */
        start local 11 // int cr
        12: .line 1808
            goto 31
        13: .line 1810
      StackMap locals: int
      StackMap stack:
            iload 10 /* asciiCompatible */
            ifeq 22
            aload 8 /* bytes */
            iload 5 /* s */
            baload
            sipush 255
            iand
            dup
            istore 12 /* c */
        start local 12 // int c
        14: invokestatic org.jcodings.Encoding.isAscii:(I)Z
            ifeq 22
        15: .line 1811
            aload 1 /* squeeze */
            iload 12 /* c */
            baload
            ifeq 18
        16: .line 1812
            iconst_1
            istore 9 /* modify */
        17: .line 1813
            goto 20
        18: .line 1814
      StackMap locals: int
      StackMap stack:
            iload 6 /* t */
            iload 5 /* s */
            if_icmpeq 19
            aload 8 /* bytes */
            iload 6 /* t */
            iload 12 /* c */
            i2b
            bastore
        19: .line 1815
      StackMap locals:
      StackMap stack:
            iinc 6 /* t */ 1
        20: .line 1817
      StackMap locals:
      StackMap stack:
            iinc 5 /* s */ 1
        21: .line 1818
            goto 31
        end local 12 // int c
        22: .line 1819
      StackMap locals:
      StackMap stack:
            aload 3 /* enc */
            aload 8 /* bytes */
            iload 5 /* s */
            iload 7 /* send */
            invokestatic org.jruby.util.StringSupport.codePoint:(Lorg/jcodings/Encoding;[BII)I
            istore 12 /* c */
        start local 12 // int c
        23: .line 1820
            aload 3 /* enc */
            iload 12 /* c */
            invokestatic org.jruby.util.StringSupport.codeLength:(Lorg/jcodings/Encoding;I)I
            istore 13 /* cl */
        start local 13 // int cl
        24: .line 1821
            iload 12 /* c */
            aload 1 /* squeeze */
            aload 2 /* tables */
            invokestatic org.jruby.util.StringSupport.trFind:(I[ZLorg/jruby/util/StringSupport$TrTables;)Z
            ifeq 27
        25: .line 1822
            iconst_1
            istore 9 /* modify */
        26: .line 1823
            goto 30
        27: .line 1824
      StackMap locals: int int
      StackMap stack:
            iload 6 /* t */
            iload 5 /* s */
            if_icmpeq 28
            aload 3 /* enc */
            iload 12 /* c */
            aload 8 /* bytes */
            iload 6 /* t */
            invokevirtual org.jcodings.Encoding.codeToMbc:(I[BI)I
            pop
        28: .line 1825
      StackMap locals:
      StackMap stack:
            iload 6 /* t */
            iload 13 /* cl */
            iadd
            istore 6 /* t */
        29: .line 1826
            iload 11 /* cr */
            bipush 16
            if_icmpne 30
            bipush 32
            istore 11 /* cr */
        30: .line 1828
      StackMap locals:
      StackMap stack:
            iload 5 /* s */
            iload 13 /* cl */
            iadd
            istore 5 /* s */
        end local 13 // int cl
        end local 12 // int c
        31: .line 1808
      StackMap locals:
      StackMap stack:
            iload 5 /* s */
            iload 7 /* send */
            if_icmplt 13
        32: .line 1831
            aload 4 /* value */
            iload 6 /* t */
            aload 4 /* value */
            invokevirtual org.jruby.util.ByteList.getBegin:()I
            isub
            invokevirtual org.jruby.util.ByteList.setRealSize:(I)V
        33: .line 1832
            aload 0 /* rubyString */
            iload 11 /* cr */
            invokeinterface org.jruby.util.CodeRangeable.setCodeRange:(I)V
        34: .line 1834
            iload 9 /* modify */
            ifeq 35
            aload 0 /* rubyString */
            goto 36
      StackMap locals:
      StackMap stack:
        35: aconst_null
      StackMap locals:
      StackMap stack: org.jruby.util.CodeRangeable
        36: areturn
        end local 11 // int cr
        end local 10 // boolean asciiCompatible
        end local 9 // boolean modify
        end local 8 // byte[] bytes
        end local 7 // int send
        end local 6 // int t
        end local 5 // int s
        end local 4 // org.jruby.util.ByteList value
        end local 3 // org.jcodings.Encoding enc
        end local 2 // org.jruby.util.StringSupport$TrTables tables
        end local 1 // boolean[] squeeze
        end local 0 // org.jruby.util.CodeRangeable rubyString
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0   37     0       rubyString  Lorg/jruby/util/CodeRangeable;
            0   37     1          squeeze  [Z
            0   37     2           tables  Lorg/jruby/util/StringSupport$TrTables;
            0   37     3              enc  Lorg/jcodings/Encoding;
            3   37     4            value  Lorg/jruby/util/ByteList;
            4   37     5                s  I
            5   37     6                t  I
            6   37     7             send  I
            7   37     8            bytes  [B
            8   37     9           modify  Z
            9   37    10  asciiCompatible  Z
           12   37    11               cr  I
           14   22    12                c  I
           23   31    12                c  I
           24   31    13               cl  I
    MethodParameters:
            Name  Flags
      rubyString  
      squeeze     
      tables      
      enc         

  public static org.jruby.util.CodeRangeable strDeleteBang(org.jruby.util.CodeRangeable, org.jruby.Ruby, boolean[], org.jruby.util.StringSupport$TrTables, org.jcodings.Encoding);
    descriptor: (Lorg/jruby/util/CodeRangeable;Lorg/jruby/Ruby;[ZLorg/jruby/util/StringSupport$TrTables;Lorg/jcodings/Encoding;)Lorg/jruby/util/CodeRangeable;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=6, args_size=5
        start local 0 // org.jruby.util.CodeRangeable rubyString
        start local 1 // org.jruby.Ruby runtime
        start local 2 // boolean[] squeeze
        start local 3 // org.jruby.util.StringSupport$TrTables tables
        start local 4 // org.jcodings.Encoding enc
         0: .line 1839
            aload 0 /* rubyString */
            aload 2 /* squeeze */
            aload 3 /* tables */
            aload 4 /* enc */
            invokestatic org.jruby.util.StringSupport.strDeleteBang:(Lorg/jruby/util/CodeRangeable;[ZLorg/jruby/util/StringSupport$TrTables;Lorg/jcodings/Encoding;)Lorg/jruby/util/CodeRangeable;
         1: areturn
         2: .line 1840
      StackMap locals:
      StackMap stack: java.lang.IllegalArgumentException
            astore 5 /* e */
        start local 5 // java.lang.IllegalArgumentException e
         3: .line 1841
            aload 1 /* runtime */
            aload 5 /* e */
            invokevirtual java.lang.IllegalArgumentException.getMessage:()Ljava/lang/String;
            invokevirtual org.jruby.Ruby.newArgumentError:(Ljava/lang/String;)Lorg/jruby/exceptions/RaiseException;
            athrow
        end local 5 // java.lang.IllegalArgumentException e
        end local 4 // org.jcodings.Encoding enc
        end local 3 // org.jruby.util.StringSupport$TrTables tables
        end local 2 // boolean[] squeeze
        end local 1 // org.jruby.Ruby runtime
        end local 0 // org.jruby.util.CodeRangeable rubyString
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    4     0  rubyString  Lorg/jruby/util/CodeRangeable;
            0    4     1     runtime  Lorg/jruby/Ruby;
            0    4     2     squeeze  [Z
            0    4     3      tables  Lorg/jruby/util/StringSupport$TrTables;
            0    4     4         enc  Lorg/jcodings/Encoding;
            3    4     5           e  Ljava/lang/IllegalArgumentException;
      Exception table:
        from    to  target  type
           0     1       2  Class java.lang.IllegalArgumentException
    MethodParameters:
            Name  Flags
      rubyString  
      runtime     
      squeeze     
      tables      
      enc         

  public static int choppedLength(org.jruby.util.CodeRangeable);
    descriptor: (Lorg/jruby/util/CodeRangeable;)I
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=5, locals=7, args_size=1
        start local 0 // org.jruby.util.CodeRangeable str
         0: .line 1849
            aload 0 /* str */
            invokeinterface org.jruby.util.CodeRangeable.getByteList:()Lorg/jruby/util/ByteList;
            astore 1 /* bl */
        start local 1 // org.jruby.util.ByteList bl
         1: .line 1850
            aload 1 /* bl */
            invokevirtual org.jruby.util.ByteList.getEncoding:()Lorg/jcodings/Encoding;
            astore 2 /* enc */
        start local 2 // org.jcodings.Encoding enc
         2: .line 1853
            aload 1 /* bl */
            invokevirtual org.jruby.util.ByteList.begin:()I
            istore 5 /* beg */
        start local 5 // int beg
         3: .line 1854
            iload 5 /* beg */
            aload 1 /* bl */
            invokevirtual org.jruby.util.ByteList.realSize:()I
            iadd
            istore 6 /* end */
        start local 6 // int end
         4: .line 1855
            iload 5 /* beg */
            iload 6 /* end */
            if_icmple 5
            iconst_0
            ireturn
         5: .line 1856
      StackMap locals: org.jruby.util.CodeRangeable org.jruby.util.ByteList org.jcodings.Encoding top top int int
      StackMap stack:
            aload 2 /* enc */
            aload 1 /* bl */
            invokevirtual org.jruby.util.ByteList.unsafeBytes:()[B
            iload 5 /* beg */
            iload 6 /* end */
            iload 6 /* end */
            invokevirtual org.jcodings.Encoding.prevCharHead:([BIII)I
            istore 3 /* p */
        start local 3 // int p
         6: .line 1857
            iload 3 /* p */
            ifne 7
            iconst_0
            ireturn
         7: .line 1858
      StackMap locals: org.jruby.util.CodeRangeable org.jruby.util.ByteList org.jcodings.Encoding int top int int
      StackMap stack:
            iload 3 /* p */
            iload 5 /* beg */
            if_icmple 10
            aload 1 /* bl */
            invokevirtual org.jruby.util.ByteList.unsafeBytes:()[B
            iload 3 /* p */
            iload 6 /* end */
            aconst_null
            aload 2 /* enc */
            invokestatic org.jruby.util.io.EncodingUtils.encAscget:([BII[ILorg/jcodings/Encoding;)I
            bipush 10
            if_icmpne 10
         8: .line 1859
            aload 2 /* enc */
            aload 1 /* bl */
            invokevirtual org.jruby.util.ByteList.unsafeBytes:()[B
            iload 5 /* beg */
            iload 3 /* p */
            iload 6 /* end */
            invokevirtual org.jcodings.Encoding.prevCharHead:([BIII)I
            istore 4 /* p2 */
        start local 4 // int p2
         9: .line 1860
            iload 4 /* p2 */
            iconst_m1
            if_icmpeq 10
            aload 1 /* bl */
            invokevirtual org.jruby.util.ByteList.unsafeBytes:()[B
            iload 4 /* p2 */
            iload 6 /* end */
            aconst_null
            aload 2 /* enc */
            invokestatic org.jruby.util.io.EncodingUtils.encAscget:([BII[ILorg/jcodings/Encoding;)I
            bipush 13
            if_icmpne 10
            iload 4 /* p2 */
            istore 3 /* p */
        end local 4 // int p2
        10: .line 1862
      StackMap locals:
      StackMap stack:
            iload 3 /* p */
            iload 5 /* beg */
            isub
            ireturn
        end local 6 // int end
        end local 5 // int beg
        end local 3 // int p
        end local 2 // org.jcodings.Encoding enc
        end local 1 // org.jruby.util.ByteList bl
        end local 0 // org.jruby.util.CodeRangeable str
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   11     0   str  Lorg/jruby/util/CodeRangeable;
            1   11     1    bl  Lorg/jruby/util/ByteList;
            2   11     2   enc  Lorg/jcodings/Encoding;
            6   11     3     p  I
            9   10     4    p2  I
            3   11     5   beg  I
            4   11     6   end  I
    MethodParameters:
      Name  Flags
      str   

  public static int choppedLength19(org.jruby.util.CodeRangeable, org.jruby.Ruby);
    descriptor: (Lorg/jruby/util/CodeRangeable;Lorg/jruby/Ruby;)I
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=1, locals=2, args_size=2
        start local 0 // org.jruby.util.CodeRangeable str
        start local 1 // org.jruby.Ruby runtime
         0: .line 1867
            aload 0 /* str */
            invokestatic org.jruby.util.StringSupport.choppedLength:(Lorg/jruby/util/CodeRangeable;)I
            ireturn
        end local 1 // org.jruby.Ruby runtime
        end local 0 // org.jruby.util.CodeRangeable str
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     0      str  Lorg/jruby/util/CodeRangeable;
            0    1     1  runtime  Lorg/jruby/Ruby;
    RuntimeVisibleAnnotations: 
      java.lang.Deprecated()
    MethodParameters:
         Name  Flags
      str      
      runtime  

  public static org.jcodings.Encoding areCompatible(org.jruby.util.CodeRangeable, org.jruby.util.CodeRangeable);
    descriptor: (Lorg/jruby/util/CodeRangeable;Lorg/jruby/util/CodeRangeable;)Lorg/jcodings/Encoding;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=4, args_size=2
        start local 0 // org.jruby.util.CodeRangeable str1
        start local 1 // org.jruby.util.CodeRangeable str2
         0: .line 1874
            aload 0 /* str1 */
            invokeinterface org.jruby.util.CodeRangeable.getByteList:()Lorg/jruby/util/ByteList;
            invokevirtual org.jruby.util.ByteList.getEncoding:()Lorg/jcodings/Encoding;
            astore 2 /* enc1 */
        start local 2 // org.jcodings.Encoding enc1
         1: .line 1875
            aload 1 /* str2 */
            invokeinterface org.jruby.util.CodeRangeable.getByteList:()Lorg/jruby/util/ByteList;
            invokevirtual org.jruby.util.ByteList.getEncoding:()Lorg/jcodings/Encoding;
            astore 3 /* enc2 */
        start local 3 // org.jcodings.Encoding enc2
         2: .line 1877
            aload 2 /* enc1 */
            aload 3 /* enc2 */
            if_acmpne 3
            aload 2 /* enc1 */
            areturn
         3: .line 1879
      StackMap locals: org.jcodings.Encoding org.jcodings.Encoding
      StackMap stack:
            aload 1 /* str2 */
            invokeinterface org.jruby.util.CodeRangeable.getByteList:()Lorg/jruby/util/ByteList;
            invokevirtual org.jruby.util.ByteList.getRealSize:()I
            ifne 4
            aload 2 /* enc1 */
            areturn
         4: .line 1880
      StackMap locals:
      StackMap stack:
            aload 0 /* str1 */
            invokeinterface org.jruby.util.CodeRangeable.getByteList:()Lorg/jruby/util/ByteList;
            invokevirtual org.jruby.util.ByteList.getRealSize:()I
            ifne 8
         5: .line 1881
            aload 2 /* enc1 */
            invokevirtual org.jcodings.Encoding.isAsciiCompatible:()Z
            ifeq 6
            aload 1 /* str2 */
            invokestatic org.jruby.util.StringSupport.isAsciiOnly:(Lorg/jruby/util/CodeRangeable;)Z
            ifeq 6
            aload 2 /* enc1 */
            goto 7
      StackMap locals:
      StackMap stack:
         6: aload 3 /* enc2 */
      StackMap locals:
      StackMap stack: org.jcodings.Encoding
         7: areturn
         8: .line 1884
      StackMap locals:
      StackMap stack:
            aload 2 /* enc1 */
            invokevirtual org.jcodings.Encoding.isAsciiCompatible:()Z
            ifeq 9
            aload 3 /* enc2 */
            invokevirtual org.jcodings.Encoding.isAsciiCompatible:()Z
            ifne 10
      StackMap locals:
      StackMap stack:
         9: aconst_null
            areturn
        10: .line 1886
      StackMap locals:
      StackMap stack:
            aload 2 /* enc1 */
            aload 0 /* str1 */
            invokeinterface org.jruby.util.CodeRangeable.scanForCodeRange:()I
            aload 3 /* enc2 */
            aload 1 /* str2 */
            invokeinterface org.jruby.util.CodeRangeable.scanForCodeRange:()I
            invokestatic org.jruby.RubyEncoding.areCompatible:(Lorg/jcodings/Encoding;ILorg/jcodings/Encoding;I)Lorg/jcodings/Encoding;
            areturn
        end local 3 // org.jcodings.Encoding enc2
        end local 2 // org.jcodings.Encoding enc1
        end local 1 // org.jruby.util.CodeRangeable str2
        end local 0 // org.jruby.util.CodeRangeable str1
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   11     0  str1  Lorg/jruby/util/CodeRangeable;
            0   11     1  str2  Lorg/jruby/util/CodeRangeable;
            1   11     2  enc1  Lorg/jcodings/Encoding;
            2   11     3  enc2  Lorg/jcodings/Encoding;
    MethodParameters:
      Name  Flags
      str1  
      str2  

  public static org.jcodings.Encoding areCompatible(org.jruby.util.ByteList, org.jruby.util.ByteList);
    descriptor: (Lorg/jruby/util/ByteList;Lorg/jruby/util/ByteList;)Lorg/jcodings/Encoding;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=4, args_size=2
        start local 0 // org.jruby.util.ByteList str1
        start local 1 // org.jruby.util.ByteList str2
         0: .line 1890
            aload 0 /* str1 */
            invokevirtual org.jruby.util.ByteList.getEncoding:()Lorg/jcodings/Encoding;
            astore 2 /* enc1 */
        start local 2 // org.jcodings.Encoding enc1
         1: .line 1891
            aload 1 /* str2 */
            invokevirtual org.jruby.util.ByteList.getEncoding:()Lorg/jcodings/Encoding;
            astore 3 /* enc2 */
        start local 3 // org.jcodings.Encoding enc2
         2: .line 1893
            aload 2 /* enc1 */
            aload 3 /* enc2 */
            if_acmpne 3
            aload 2 /* enc1 */
            areturn
         3: .line 1895
      StackMap locals: org.jcodings.Encoding org.jcodings.Encoding
      StackMap stack:
            aload 1 /* str2 */
            invokevirtual org.jruby.util.ByteList.getRealSize:()I
            ifne 4
            aload 2 /* enc1 */
            areturn
         4: .line 1896
      StackMap locals:
      StackMap stack:
            aload 0 /* str1 */
            invokevirtual org.jruby.util.ByteList.getRealSize:()I
            ifne 8
         5: .line 1897
            aload 2 /* enc1 */
            invokevirtual org.jcodings.Encoding.isAsciiCompatible:()Z
            ifeq 6
            aload 3 /* enc2 */
            aload 1 /* str2 */
            invokestatic org.jruby.RubyString.scanForCodeRange:(Lorg/jruby/util/ByteList;)I
            invokestatic org.jruby.util.StringSupport.isAsciiOnly:(Lorg/jcodings/Encoding;I)Z
            ifeq 6
            aload 2 /* enc1 */
            goto 7
      StackMap locals:
      StackMap stack:
         6: aload 3 /* enc2 */
      StackMap locals:
      StackMap stack: org.jcodings.Encoding
         7: areturn
         8: .line 1900
      StackMap locals:
      StackMap stack:
            aload 2 /* enc1 */
            invokevirtual org.jcodings.Encoding.isAsciiCompatible:()Z
            ifeq 9
            aload 3 /* enc2 */
            invokevirtual org.jcodings.Encoding.isAsciiCompatible:()Z
            ifne 10
      StackMap locals:
      StackMap stack:
         9: aconst_null
            areturn
        10: .line 1902
      StackMap locals:
      StackMap stack:
            aload 2 /* enc1 */
            aload 0 /* str1 */
            invokestatic org.jruby.RubyString.scanForCodeRange:(Lorg/jruby/util/ByteList;)I
            aload 3 /* enc2 */
            aload 1 /* str2 */
            invokestatic org.jruby.RubyString.scanForCodeRange:(Lorg/jruby/util/ByteList;)I
            invokestatic org.jruby.RubyEncoding.areCompatible:(Lorg/jcodings/Encoding;ILorg/jcodings/Encoding;I)Lorg/jcodings/Encoding;
            areturn
        end local 3 // org.jcodings.Encoding enc2
        end local 2 // org.jcodings.Encoding enc1
        end local 1 // org.jruby.util.ByteList str2
        end local 0 // org.jruby.util.ByteList str1
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   11     0  str1  Lorg/jruby/util/ByteList;
            0   11     1  str2  Lorg/jruby/util/ByteList;
            1   11     2  enc1  Lorg/jcodings/Encoding;
            2   11     3  enc2  Lorg/jcodings/Encoding;
    MethodParameters:
      Name  Flags
      str1  
      str2  

  public static org.jruby.util.ByteList addByteLists(org.jruby.util.ByteList, org.jruby.util.ByteList);
    descriptor: (Lorg/jruby/util/ByteList;Lorg/jruby/util/ByteList;)Lorg/jruby/util/ByteList;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=5, locals=3, args_size=2
        start local 0 // org.jruby.util.ByteList value1
        start local 1 // org.jruby.util.ByteList value2
         0: .line 1906
            new org.jruby.util.ByteList
            dup
            aload 0 /* value1 */
            invokevirtual org.jruby.util.ByteList.getRealSize:()I
            aload 1 /* value2 */
            invokevirtual org.jruby.util.ByteList.getRealSize:()I
            iadd
            invokespecial org.jruby.util.ByteList.<init>:(I)V
            astore 2 /* result */
        start local 2 // org.jruby.util.ByteList result
         1: .line 1907
            aload 2 /* result */
            aload 0 /* value1 */
            invokevirtual org.jruby.util.ByteList.getRealSize:()I
            aload 1 /* value2 */
            invokevirtual org.jruby.util.ByteList.getRealSize:()I
            iadd
            invokevirtual org.jruby.util.ByteList.setRealSize:(I)V
         2: .line 1908
            aload 0 /* value1 */
            invokevirtual org.jruby.util.ByteList.getUnsafeBytes:()[B
            aload 0 /* value1 */
            invokevirtual org.jruby.util.ByteList.getBegin:()I
            aload 2 /* result */
            invokevirtual org.jruby.util.ByteList.getUnsafeBytes:()[B
            iconst_0
            aload 0 /* value1 */
            invokevirtual org.jruby.util.ByteList.getRealSize:()I
            invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
         3: .line 1909
            aload 1 /* value2 */
            invokevirtual org.jruby.util.ByteList.getUnsafeBytes:()[B
            aload 1 /* value2 */
            invokevirtual org.jruby.util.ByteList.getBegin:()I
            aload 2 /* result */
            invokevirtual org.jruby.util.ByteList.getUnsafeBytes:()[B
            aload 0 /* value1 */
            invokevirtual org.jruby.util.ByteList.getRealSize:()I
            aload 1 /* value2 */
            invokevirtual org.jruby.util.ByteList.getRealSize:()I
            invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
         4: .line 1910
            aload 2 /* result */
            areturn
        end local 2 // org.jruby.util.ByteList result
        end local 1 // org.jruby.util.ByteList value2
        end local 0 // org.jruby.util.ByteList value1
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    5     0  value1  Lorg/jruby/util/ByteList;
            0    5     1  value2  Lorg/jruby/util/ByteList;
            1    5     2  result  Lorg/jruby/util/ByteList;
    MethodParameters:
        Name  Flags
      value1  
      value2  

  public static boolean areComparable(org.jruby.util.CodeRangeable, org.jruby.util.CodeRangeable);
    descriptor: (Lorg/jruby/util/CodeRangeable;Lorg/jruby/util/CodeRangeable;)Z
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // org.jruby.util.CodeRangeable string
        start local 1 // org.jruby.util.CodeRangeable other
         0: .line 1914
            aload 1 /* other */
            invokeinterface org.jruby.util.CodeRangeable.getByteList:()Lorg/jruby/util/ByteList;
            astore 2 /* otherValue */
        start local 2 // org.jruby.util.ByteList otherValue
         1: .line 1915
            aload 0 /* string */
            invokeinterface org.jruby.util.CodeRangeable.getByteList:()Lorg/jruby/util/ByteList;
            invokevirtual org.jruby.util.ByteList.getEncoding:()Lorg/jcodings/Encoding;
            aload 2 /* otherValue */
            invokevirtual org.jruby.util.ByteList.getEncoding:()Lorg/jcodings/Encoding;
            if_acmpeq 3
         2: .line 1916
            aload 0 /* string */
            invokeinterface org.jruby.util.CodeRangeable.getByteList:()Lorg/jruby/util/ByteList;
            invokevirtual org.jruby.util.ByteList.getRealSize:()I
            ifeq 3
            aload 2 /* otherValue */
            invokevirtual org.jruby.util.ByteList.getRealSize:()I
            ifne 4
      StackMap locals: org.jruby.util.ByteList
      StackMap stack:
         3: iconst_1
            ireturn
         4: .line 1917
      StackMap locals:
      StackMap stack:
            aload 0 /* string */
            aload 1 /* other */
            invokestatic org.jruby.util.StringSupport.areComparableViaCodeRange:(Lorg/jruby/util/CodeRangeable;Lorg/jruby/util/CodeRangeable;)Z
            ireturn
        end local 2 // org.jruby.util.ByteList otherValue
        end local 1 // org.jruby.util.CodeRangeable other
        end local 0 // org.jruby.util.CodeRangeable string
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    5     0      string  Lorg/jruby/util/CodeRangeable;
            0    5     1       other  Lorg/jruby/util/CodeRangeable;
            1    5     2  otherValue  Lorg/jruby/util/ByteList;
    MethodParameters:
        Name  Flags
      string  
      other   

  public static boolean areComparableViaCodeRange(org.jruby.util.CodeRangeable, org.jruby.util.CodeRangeable);
    descriptor: (Lorg/jruby/util/CodeRangeable;Lorg/jruby/util/CodeRangeable;)Z
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=4, args_size=2
        start local 0 // org.jruby.util.CodeRangeable string
        start local 1 // org.jruby.util.CodeRangeable other
         0: .line 1921
            aload 0 /* string */
            invokeinterface org.jruby.util.CodeRangeable.scanForCodeRange:()I
            istore 2 /* cr1 */
        start local 2 // int cr1
         1: .line 1922
            aload 1 /* other */
            invokeinterface org.jruby.util.CodeRangeable.scanForCodeRange:()I
            istore 3 /* cr2 */
        start local 3 // int cr2
         2: .line 1924
            iload 2 /* cr1 */
            bipush 16
            if_icmpne 4
            iload 3 /* cr2 */
            bipush 16
            if_icmpeq 3
            aload 1 /* other */
            invokeinterface org.jruby.util.CodeRangeable.getByteList:()Lorg/jruby/util/ByteList;
            invokevirtual org.jruby.util.ByteList.getEncoding:()Lorg/jcodings/Encoding;
            invokevirtual org.jcodings.Encoding.isAsciiCompatible:()Z
            ifeq 4
      StackMap locals: int int
      StackMap stack:
         3: iconst_1
            ireturn
         4: .line 1925
      StackMap locals:
      StackMap stack:
            iload 3 /* cr2 */
            bipush 16
            if_icmpne 5
            aload 0 /* string */
            invokeinterface org.jruby.util.CodeRangeable.getByteList:()Lorg/jruby/util/ByteList;
            invokevirtual org.jruby.util.ByteList.getEncoding:()Lorg/jcodings/Encoding;
            invokevirtual org.jcodings.Encoding.isAsciiCompatible:()Z
            ifeq 5
            iconst_1
            ireturn
         5: .line 1926
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
        end local 3 // int cr2
        end local 2 // int cr1
        end local 1 // org.jruby.util.CodeRangeable other
        end local 0 // org.jruby.util.CodeRangeable string
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    6     0  string  Lorg/jruby/util/CodeRangeable;
            0    6     1   other  Lorg/jruby/util/CodeRangeable;
            1    6     2     cr1  I
            2    6     3     cr2  I
    MethodParameters:
        Name  Flags
      string  
      other   

  public static org.jruby.runtime.builtin.IRubyObject rbStrEnumerateLines(org.jruby.RubyString, org.jruby.runtime.ThreadContext, java.lang.String, org.jruby.runtime.builtin.IRubyObject, org.jruby.runtime.Block, boolean);
    descriptor: (Lorg/jruby/RubyString;Lorg/jruby/runtime/ThreadContext;Ljava/lang/String;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/Block;Z)Lorg/jruby/runtime/builtin/IRubyObject;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=7, locals=7, args_size=6
        start local 0 // org.jruby.RubyString str
        start local 1 // org.jruby.runtime.ThreadContext context
        start local 2 // java.lang.String name
        start local 3 // org.jruby.runtime.builtin.IRubyObject arg
        start local 4 // org.jruby.runtime.Block block
        start local 5 // boolean wantarray
         0: .line 1930
            aload 1 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            aload 3 /* arg */
            invokestatic org.jruby.ast.util.ArgsUtil.getOptionsArg:(Lorg/jruby/Ruby;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
            astore 6 /* opts */
        start local 6 // org.jruby.runtime.builtin.IRubyObject opts
         1: .line 1931
            aload 6 /* opts */
            aload 1 /* context */
            getfield org.jruby.runtime.ThreadContext.nil:Lorg/jruby/runtime/builtin/IRubyObject;
            if_acmpne 3
         2: .line 1932
            aload 0 /* str */
            aload 1 /* context */
            aload 2 /* name */
            aload 3 /* arg */
            aload 1 /* context */
            getfield org.jruby.runtime.ThreadContext.nil:Lorg/jruby/runtime/builtin/IRubyObject;
            aload 4 /* block */
            iload 5 /* wantarray */
            invokestatic org.jruby.util.StringSupport.rbStrEnumerateLines:(Lorg/jruby/RubyString;Lorg/jruby/runtime/ThreadContext;Ljava/lang/String;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/Block;Z)Lorg/jruby/runtime/builtin/IRubyObject;
            areturn
         3: .line 1934
      StackMap locals: org.jruby.runtime.builtin.IRubyObject
      StackMap stack:
            aload 0 /* str */
            aload 1 /* context */
            aload 2 /* name */
            aload 1 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            invokevirtual org.jruby.Ruby.getGlobalVariables:()Lorg/jruby/internal/runtime/GlobalVariables;
            ldc "$/"
            invokevirtual org.jruby.internal.runtime.GlobalVariables.get:(Ljava/lang/String;)Lorg/jruby/runtime/builtin/IRubyObject;
            aload 6 /* opts */
            aload 4 /* block */
            iload 5 /* wantarray */
            invokestatic org.jruby.util.StringSupport.rbStrEnumerateLines:(Lorg/jruby/RubyString;Lorg/jruby/runtime/ThreadContext;Ljava/lang/String;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/Block;Z)Lorg/jruby/runtime/builtin/IRubyObject;
            areturn
        end local 6 // org.jruby.runtime.builtin.IRubyObject opts
        end local 5 // boolean wantarray
        end local 4 // org.jruby.runtime.Block block
        end local 3 // org.jruby.runtime.builtin.IRubyObject arg
        end local 2 // java.lang.String name
        end local 1 // org.jruby.runtime.ThreadContext context
        end local 0 // org.jruby.RubyString str
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    4     0        str  Lorg/jruby/RubyString;
            0    4     1    context  Lorg/jruby/runtime/ThreadContext;
            0    4     2       name  Ljava/lang/String;
            0    4     3        arg  Lorg/jruby/runtime/builtin/IRubyObject;
            0    4     4      block  Lorg/jruby/runtime/Block;
            0    4     5  wantarray  Z
            1    4     6       opts  Lorg/jruby/runtime/builtin/IRubyObject;
    MethodParameters:
           Name  Flags
      str        
      context    
      name       
      arg        
      block      
      wantarray  

  public static org.jruby.runtime.builtin.IRubyObject rbStrEnumerateLines(org.jruby.RubyString, org.jruby.runtime.ThreadContext, java.lang.String, org.jruby.runtime.builtin.IRubyObject, org.jruby.runtime.builtin.IRubyObject, org.jruby.runtime.Block, boolean);
    descriptor: (Lorg/jruby/RubyString;Lorg/jruby/runtime/ThreadContext;Ljava/lang/String;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/Block;Z)Lorg/jruby/runtime/builtin/IRubyObject;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=11, locals=29, args_size=7
        start local 0 // org.jruby.RubyString str
        start local 1 // org.jruby.runtime.ThreadContext context
        start local 2 // java.lang.String name
        start local 3 // org.jruby.runtime.builtin.IRubyObject arg
        start local 4 // org.jruby.runtime.builtin.IRubyObject opts
        start local 5 // org.jruby.runtime.Block block
        start local 6 // boolean wantarray
         0: .line 1940
            aload 1 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            astore 7 /* runtime */
        start local 7 // org.jruby.Ruby runtime
         1: .line 1942
            aload 0 /* str */
            astore 10 /* orig */
        start local 10 // org.jruby.runtime.builtin.IRubyObject orig
         2: .line 1945
            iconst_0
            istore 17 /* rsnewline */
        start local 17 // boolean rsnewline
         3: .line 1946
            iconst_0
            istore 18 /* chomp */
        start local 18 // boolean chomp
         4: .line 1948
            aload 4 /* opts */
            aload 1 /* context */
            getfield org.jruby.runtime.ThreadContext.nil:Lorg/jruby/runtime/builtin/IRubyObject;
            if_acmpeq 9
         5: .line 1949
            aload 1 /* context */
            ldc "chomp"
            aload 4 /* opts */
            invokestatic org.jruby.ast.util.ArgsUtil.extractKeywordArg:(Lorg/jruby/runtime/ThreadContext;Ljava/lang/String;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
            astore 19 /* _chomp */
        start local 19 // org.jruby.runtime.builtin.IRubyObject _chomp
         6: .line 1950
            aload 19 /* _chomp */
            ifnonnull 7
            aload 19 /* _chomp */
            invokeinterface org.jruby.runtime.builtin.IRubyObject.isTrue:()Z
            ifne 7
            iconst_0
            goto 8
      StackMap locals: org.jruby.RubyString org.jruby.runtime.ThreadContext java.lang.String org.jruby.runtime.builtin.IRubyObject org.jruby.runtime.builtin.IRubyObject org.jruby.runtime.Block int org.jruby.Ruby top top org.jruby.runtime.builtin.IRubyObject top top top top top top int int org.jruby.runtime.builtin.IRubyObject
      StackMap stack:
         7: iconst_1
      StackMap locals:
      StackMap stack: int
         8: istore 18 /* chomp */
        end local 19 // org.jruby.runtime.builtin.IRubyObject _chomp
         9: .line 1953
      StackMap locals:
      StackMap stack:
            aload 5 /* block */
            invokevirtual org.jruby.runtime.Block.isGiven:()Z
            ifeq 14
        10: .line 1954
            iload 6 /* wantarray */
            ifeq 16
        11: .line 1959
            aload 7 /* runtime */
            invokevirtual org.jruby.Ruby.getWarnings:()Lorg/jruby/common/RubyWarnings;
            ldc "passing a block to String#lines is deprecated"
            invokevirtual org.jruby.common.RubyWarnings.warning:(Ljava/lang/String;)V
        12: .line 1960
            iconst_0
            istore 6 /* wantarray */
        13: .line 1963
            goto 16
        14: .line 1964
      StackMap locals:
      StackMap stack:
            iload 6 /* wantarray */
            ifne 16
        15: .line 1965
            aload 7 /* runtime */
            aload 0 /* str */
            aload 2 /* name */
            aload 3 /* arg */
            iconst_1
            anewarray org.jruby.runtime.builtin.IRubyObject
            dup
            iconst_0
            aload 4 /* opts */
            aastore
            invokestatic org.jruby.runtime.Helpers.arrayOf:(Lorg/jruby/runtime/builtin/IRubyObject;[Lorg/jruby/runtime/builtin/IRubyObject;)[Lorg/jruby/runtime/builtin/IRubyObject;
            invokestatic org.jruby.RubyEnumerator.enumeratorize:(Lorg/jruby/Ruby;Lorg/jruby/runtime/builtin/IRubyObject;Ljava/lang/String;[Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
            areturn
        16: .line 1968
      StackMap locals:
      StackMap stack:
            aload 3 /* arg */
            aload 1 /* context */
            getfield org.jruby.runtime.ThreadContext.nil:Lorg/jruby/runtime/builtin/IRubyObject;
            if_acmpne 20
        17: .line 1969
            iload 6 /* wantarray */
            ifeq 18
            aload 7 /* runtime */
            aload 0 /* str */
            invokestatic org.jruby.RubyArray.newArray:(Lorg/jruby/Ruby;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/RubyArray;
            areturn
        18: .line 1971
      StackMap locals:
      StackMap stack:
            aload 5 /* block */
            aload 1 /* context */
            aload 0 /* str */
            invokevirtual org.jruby.runtime.Block.yieldSpecific:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
            pop
        19: .line 1972
            aload 10 /* orig */
            areturn
        20: .line 1976
      StackMap locals:
      StackMap stack:
            iload 6 /* wantarray */
            ifeq 21
            aload 7 /* runtime */
            invokestatic org.jruby.RubyArray.newArray:(Lorg/jruby/Ruby;)Lorg/jruby/RubyArray;
            goto 22
      StackMap locals:
      StackMap stack:
        21: aconst_null
      StackMap locals:
      StackMap stack: org.jruby.RubyArray
        22: astore 19 /* ary */
        start local 19 // org.jruby.RubyArray ary
        23: .line 1978
            aload 7 /* runtime */
            invokevirtual org.jruby.Ruby.getGlobalVariables:()Lorg/jruby/internal/runtime/GlobalVariables;
            ldc "$/"
            invokevirtual org.jruby.internal.runtime.GlobalVariables.get:(Ljava/lang/String;)Lorg/jruby/runtime/builtin/IRubyObject;
            astore 20 /* defaultSep */
        start local 20 // org.jruby.runtime.builtin.IRubyObject defaultSep
        24: .line 1979
            aload 3 /* arg */
            invokeinterface org.jruby.runtime.builtin.IRubyObject.convertToString:()Lorg/jruby/RubyString;
            astore 21 /* rs */
        start local 21 // org.jruby.RubyString rs
        25: .line 1981
            aload 0 /* str */
            invokevirtual org.jruby.RubyString.newFrozen:()Lorg/jruby/RubyString;
            astore 0 /* str */
        26: .line 1982
            aload 0 /* str */
            invokevirtual org.jruby.RubyString.getByteList:()Lorg/jruby/util/ByteList;
            invokevirtual org.jruby.util.ByteList.unsafeBytes:()[B
            astore 22 /* strBytes */
        start local 22 // byte[] strBytes
        27: .line 1983
            aload 0 /* str */
            invokevirtual org.jruby.RubyString.getByteList:()Lorg/jruby/util/ByteList;
            invokevirtual org.jruby.util.ByteList.begin:()I
            dup
            istore 13 /* subptr */
        start local 13 // int subptr
        28: istore 11 /* ptr */
        start local 11 // int ptr
        29: .line 1984
            aload 0 /* str */
            invokevirtual org.jruby.RubyString.size:()I
            istore 23 /* len */
        start local 23 // int len
        30: .line 1985
            iload 11 /* ptr */
            iload 23 /* len */
            iadd
            istore 12 /* pend */
        start local 12 // int pend
        31: .line 1986
            aload 21 /* rs */
            invokevirtual org.jruby.RubyString.size:()I
            istore 24 /* rslen */
        start local 24 // int rslen
        32: .line 1988
            aload 21 /* rs */
            aload 20 /* defaultSep */
            if_acmpne 33
            aload 0 /* str */
            invokevirtual org.jruby.RubyString.getEncoding:()Lorg/jcodings/Encoding;
            goto 34
      StackMap locals: org.jruby.RubyString org.jruby.runtime.ThreadContext java.lang.String org.jruby.runtime.builtin.IRubyObject org.jruby.runtime.builtin.IRubyObject org.jruby.runtime.Block int org.jruby.Ruby top top org.jruby.runtime.builtin.IRubyObject int int int top top top int int org.jruby.RubyArray org.jruby.runtime.builtin.IRubyObject org.jruby.RubyString byte[] int int
      StackMap stack:
        33: aload 0 /* str */
            aload 21 /* rs */
            invokevirtual org.jruby.RubyString.checkEncoding:(Lorg/jruby/RubyString;)Lorg/jcodings/Encoding;
      StackMap locals:
      StackMap stack: org.jcodings.Encoding
        34: astore 8 /* enc */
        start local 8 // org.jcodings.Encoding enc
        35: .line 1990
            iload 24 /* rslen */
            ifne 40
        36: .line 1991
            aload 0 /* str */
            aload 1 /* context */
            iload 18 /* chomp */
            aload 5 /* block */
            aload 19 /* ary */
            aload 22 /* strBytes */
            iload 11 /* ptr */
            iload 23 /* len */
            iload 12 /* pend */
            aload 8 /* enc */
            iload 13 /* subptr */
            invokestatic org.jruby.util.StringSupport.rbStrEnumerateLinesEmptySep:(Lorg/jruby/RubyString;Lorg/jruby/runtime/ThreadContext;ZLorg/jruby/runtime/Block;Lorg/jruby/RubyArray;[BIIILorg/jcodings/Encoding;I)V
        37: .line 1992
            iload 6 /* wantarray */
            ifeq 38
            aload 19 /* ary */
            goto 39
      StackMap locals: org.jruby.RubyString org.jruby.runtime.ThreadContext java.lang.String org.jruby.runtime.builtin.IRubyObject org.jruby.runtime.builtin.IRubyObject org.jruby.runtime.Block int org.jruby.Ruby org.jcodings.Encoding top org.jruby.runtime.builtin.IRubyObject int int int top top top int int org.jruby.RubyArray org.jruby.runtime.builtin.IRubyObject org.jruby.RubyString byte[] int int
      StackMap stack:
        38: aload 10 /* orig */
      StackMap locals:
      StackMap stack: org.jruby.runtime.builtin.IRubyObject
        39: areturn
        40: .line 1995
      StackMap locals:
      StackMap stack:
            aload 21 /* rs */
            invokevirtual org.jruby.RubyString.getByteList:()Lorg/jruby/util/ByteList;
            astore 25 /* rsByteList */
        start local 25 // org.jruby.util.ByteList rsByteList
        41: .line 1996
            aload 25 /* rsByteList */
            invokevirtual org.jruby.util.ByteList.unsafeBytes:()[B
            astore 26 /* rsbytes */
        start local 26 // byte[] rsbytes
        42: .line 1997
            aload 25 /* rsByteList */
            invokevirtual org.jruby.util.ByteList.begin:()I
            istore 27 /* rsptr */
        start local 27 // int rsptr
        43: .line 1998
            aload 25 /* rsByteList */
            invokevirtual org.jruby.util.ByteList.length:()I
            aload 8 /* enc */
            invokevirtual org.jcodings.Encoding.minLength:()I
            if_icmpne 45
            aload 8 /* enc */
            aload 26 /* rsbytes */
            iload 27 /* rsptr */
            aload 25 /* rsByteList */
            invokevirtual org.jruby.util.ByteList.length:()I
            invokevirtual org.jcodings.Encoding.isNewLine:([BII)Z
            ifeq 45
        44: .line 1999
            iconst_1
            istore 17 /* rsnewline */
        45: .line 2002
      StackMap locals: org.jruby.util.ByteList byte[] int
      StackMap stack:
            aload 21 /* rs */
            aload 20 /* defaultSep */
            if_acmpne 71
            aload 8 /* enc */
            invokevirtual org.jcodings.Encoding.isAsciiCompatible:()Z
            ifne 71
        46: .line 2003
            aload 7 /* runtime */
            aload 26 /* rsbytes */
            iload 27 /* rsptr */
            iload 24 /* rslen */
            invokestatic org.jruby.RubyString.newString:(Lorg/jruby/Ruby;[BII)Lorg/jruby/RubyString;
            astore 21 /* rs */
        47: .line 2004
            aload 1 /* context */
            aload 21 /* rs */
            aload 7 /* runtime */
            invokevirtual org.jruby.Ruby.getEncodingService:()Lorg/jruby/runtime/encoding/EncodingService;
            aload 8 /* enc */
            invokevirtual org.jruby.runtime.encoding.EncodingService.convertEncodingToRubyEncoding:(Lorg/jcodings/Encoding;)Lorg/jruby/runtime/builtin/IRubyObject;
            iconst_0
            aload 1 /* context */
            getfield org.jruby.runtime.ThreadContext.nil:Lorg/jruby/runtime/builtin/IRubyObject;
            invokestatic org.jruby.util.io.EncodingUtils.rbStrEncode:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;ILorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
            checkcast org.jruby.RubyString
            astore 21 /* rs */
        48: .line 2005
            aload 21 /* rs */
            invokevirtual org.jruby.RubyString.getByteList:()Lorg/jruby/util/ByteList;
            astore 25 /* rsByteList */
        49: .line 2006
            aload 25 /* rsByteList */
            invokevirtual org.jruby.util.ByteList.unsafeBytes:()[B
            astore 26 /* rsbytes */
        50: .line 2007
            aload 25 /* rsByteList */
            invokevirtual org.jruby.util.ByteList.begin:()I
            istore 27 /* rsptr */
        51: .line 2008
            aload 25 /* rsByteList */
            invokevirtual org.jruby.util.ByteList.realSize:()I
            istore 24 /* rslen */
        52: .line 2011
            goto 71
        53: .line 2012
      StackMap locals:
      StackMap stack:
            aload 26 /* rsbytes */
            iload 27 /* rsptr */
            iload 24 /* rslen */
            aload 22 /* strBytes */
            iload 13 /* subptr */
            iload 12 /* pend */
            iload 13 /* subptr */
            isub
            aload 8 /* enc */
            invokestatic org.jruby.util.StringSupport.memsearch:([BII[BIILorg/jcodings/Encoding;)I
            istore 28 /* pos */
        start local 28 // int pos
        54: .line 2013
            iload 28 /* pos */
            ifge 55
            goto 72
        55: .line 2014
      StackMap locals: int
      StackMap stack:
            iload 13 /* subptr */
            iload 28 /* pos */
            iadd
            istore 15 /* hit */
        start local 15 // int hit
        56: .line 2015
            aload 8 /* enc */
            aload 22 /* strBytes */
            iload 13 /* subptr */
            iload 15 /* hit */
            iload 12 /* pend */
            invokevirtual org.jcodings.Encoding.rightAdjustCharHead:([BIII)I
            istore 16 /* adjusted */
        start local 16 // int adjusted
        57: .line 2016
            iload 15 /* hit */
            iload 16 /* adjusted */
            if_icmpeq 60
        58: .line 2017
            iload 16 /* adjusted */
            istore 13 /* subptr */
        59: .line 2018
            goto 71
        60: .line 2020
      StackMap locals: org.jruby.RubyString org.jruby.runtime.ThreadContext java.lang.String org.jruby.runtime.builtin.IRubyObject org.jruby.runtime.builtin.IRubyObject org.jruby.runtime.Block int org.jruby.Ruby org.jcodings.Encoding top org.jruby.runtime.builtin.IRubyObject int int int top int int int int org.jruby.RubyArray org.jruby.runtime.builtin.IRubyObject org.jruby.RubyString byte[] int int org.jruby.util.ByteList byte[] int int
      StackMap stack:
            iload 15 /* hit */
            iload 24 /* rslen */
            iadd
            dup
            istore 15 /* hit */
            istore 14 /* subend */
        start local 14 // int subend
        61: .line 2021
            iload 18 /* chomp */
            ifeq 66
        62: .line 2022
            iload 17 /* rsnewline */
            ifeq 65
        63: .line 2023
            aload 22 /* strBytes */
            iload 13 /* subptr */
            iload 14 /* subend */
            aload 8 /* enc */
            invokestatic org.jruby.util.StringSupport.chomp_newline:([BIILorg/jcodings/Encoding;)I
            istore 14 /* subend */
        64: .line 2024
            goto 66
        65: .line 2025
      StackMap locals: org.jruby.RubyString org.jruby.runtime.ThreadContext java.lang.String org.jruby.runtime.builtin.IRubyObject org.jruby.runtime.builtin.IRubyObject org.jruby.runtime.Block int org.jruby.Ruby org.jcodings.Encoding top org.jruby.runtime.builtin.IRubyObject int int int int int int int int org.jruby.RubyArray org.jruby.runtime.builtin.IRubyObject org.jruby.RubyString byte[] int int org.jruby.util.ByteList byte[] int int
      StackMap stack:
            iload 14 /* subend */
            iload 24 /* rslen */
            isub
            istore 14 /* subend */
        66: .line 2028
      StackMap locals:
      StackMap stack:
            aload 0 /* str */
            aload 7 /* runtime */
            iload 13 /* subptr */
            iload 11 /* ptr */
            isub
            iload 14 /* subend */
            iload 13 /* subptr */
            isub
            invokevirtual org.jruby.RubyString.substr:(Lorg/jruby/Ruby;II)Lorg/jruby/runtime/builtin/IRubyObject;
            astore 9 /* line */
        start local 9 // org.jruby.runtime.builtin.IRubyObject line
        67: .line 2029
            iload 6 /* wantarray */
            ifeq 68
            aload 19 /* ary */
            aload 9 /* line */
            invokevirtual org.jruby.RubyArray.append:(Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/RubyArray;
            pop
            goto 70
        68: .line 2031
      StackMap locals: org.jruby.RubyString org.jruby.runtime.ThreadContext java.lang.String org.jruby.runtime.builtin.IRubyObject org.jruby.runtime.builtin.IRubyObject org.jruby.runtime.Block int org.jruby.Ruby org.jcodings.Encoding org.jruby.runtime.builtin.IRubyObject org.jruby.runtime.builtin.IRubyObject int int int int int int int int org.jruby.RubyArray org.jruby.runtime.builtin.IRubyObject org.jruby.RubyString byte[] int int org.jruby.util.ByteList byte[] int int
      StackMap stack:
            aload 5 /* block */
            aload 1 /* context */
            aload 9 /* line */
            invokevirtual org.jruby.runtime.Block.yieldSpecific:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
            pop
        69: .line 2032
            aload 0 /* str */
            aload 22 /* strBytes */
            iload 23 /* len */
            invokevirtual org.jruby.RubyString.modifyCheck:([BI)V
        70: .line 2034
      StackMap locals:
      StackMap stack:
            iload 15 /* hit */
            istore 13 /* subptr */
        end local 28 // int pos
        end local 16 // int adjusted
        end local 15 // int hit
        end local 14 // int subend
        end local 9 // org.jruby.runtime.builtin.IRubyObject line
        71: .line 2011
      StackMap locals: org.jruby.RubyString org.jruby.runtime.ThreadContext java.lang.String org.jruby.runtime.builtin.IRubyObject org.jruby.runtime.builtin.IRubyObject org.jruby.runtime.Block int org.jruby.Ruby org.jcodings.Encoding top org.jruby.runtime.builtin.IRubyObject int int int top top top int int org.jruby.RubyArray org.jruby.runtime.builtin.IRubyObject org.jruby.RubyString byte[] int int org.jruby.util.ByteList byte[] int
      StackMap stack:
            iload 13 /* subptr */
            iload 12 /* pend */
            if_icmplt 53
        72: .line 2037
      StackMap locals:
      StackMap stack:
            iload 13 /* subptr */
            iload 12 /* pend */
            if_icmpeq 83
        73: .line 2038
            iload 18 /* chomp */
            ifeq 80
        74: .line 2039
            iload 17 /* rsnewline */
            ifeq 77
        75: .line 2040
            aload 22 /* strBytes */
            iload 13 /* subptr */
            iload 12 /* pend */
            aload 8 /* enc */
            invokestatic org.jruby.util.StringSupport.chomp_newline:([BIILorg/jcodings/Encoding;)I
            istore 12 /* pend */
        76: .line 2041
            goto 80
      StackMap locals:
      StackMap stack:
        77: iload 12 /* pend */
            iload 13 /* subptr */
            isub
            iload 24 /* rslen */
            if_icmplt 80
        78: .line 2042
            aload 22 /* strBytes */
            iload 12 /* pend */
            iload 24 /* rslen */
            isub
            aload 26 /* rsbytes */
            iload 27 /* rsptr */
            iload 24 /* rslen */
            invokestatic org.jruby.util.ByteList.memcmp:([BI[BII)I
            ifne 80
        79: .line 2043
            iload 12 /* pend */
            iload 24 /* rslen */
            isub
            istore 12 /* pend */
        80: .line 2046
      StackMap locals:
      StackMap stack:
            aload 0 /* str */
            aload 7 /* runtime */
            iload 13 /* subptr */
            iload 11 /* ptr */
            isub
            iload 12 /* pend */
            iload 13 /* subptr */
            isub
            invokevirtual org.jruby.RubyString.substr:(Lorg/jruby/Ruby;II)Lorg/jruby/runtime/builtin/IRubyObject;
            astore 9 /* line */
        start local 9 // org.jruby.runtime.builtin.IRubyObject line
        81: .line 2047
            iload 6 /* wantarray */
            ifeq 82
            aload 19 /* ary */
            aload 9 /* line */
            invokevirtual org.jruby.RubyArray.append:(Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/RubyArray;
            pop
            goto 83
        82: .line 2048
      StackMap locals: org.jruby.RubyString org.jruby.runtime.ThreadContext java.lang.String org.jruby.runtime.builtin.IRubyObject org.jruby.runtime.builtin.IRubyObject org.jruby.runtime.Block int org.jruby.Ruby org.jcodings.Encoding org.jruby.runtime.builtin.IRubyObject org.jruby.runtime.builtin.IRubyObject int int int top top top int int org.jruby.RubyArray org.jruby.runtime.builtin.IRubyObject org.jruby.RubyString byte[] int int org.jruby.util.ByteList byte[] int
      StackMap stack:
            aload 5 /* block */
            aload 1 /* context */
            aload 9 /* line */
            invokevirtual org.jruby.runtime.Block.yieldSpecific:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
            pop
        end local 9 // org.jruby.runtime.builtin.IRubyObject line
        83: .line 2051
      StackMap locals: org.jruby.RubyString org.jruby.runtime.ThreadContext java.lang.String org.jruby.runtime.builtin.IRubyObject org.jruby.runtime.builtin.IRubyObject org.jruby.runtime.Block int org.jruby.Ruby org.jcodings.Encoding top org.jruby.runtime.builtin.IRubyObject int int int top top top int int org.jruby.RubyArray org.jruby.runtime.builtin.IRubyObject org.jruby.RubyString byte[] int int org.jruby.util.ByteList byte[] int
      StackMap stack:
            iload 6 /* wantarray */
            ifeq 84
            aload 19 /* ary */
            goto 85
      StackMap locals:
      StackMap stack:
        84: aload 10 /* orig */
      StackMap locals:
      StackMap stack: org.jruby.runtime.builtin.IRubyObject
        85: areturn
        end local 27 // int rsptr
        end local 26 // byte[] rsbytes
        end local 25 // org.jruby.util.ByteList rsByteList
        end local 24 // int rslen
        end local 23 // int len
        end local 22 // byte[] strBytes
        end local 21 // org.jruby.RubyString rs
        end local 20 // org.jruby.runtime.builtin.IRubyObject defaultSep
        end local 19 // org.jruby.RubyArray ary
        end local 18 // boolean chomp
        end local 17 // boolean rsnewline
        end local 13 // int subptr
        end local 12 // int pend
        end local 11 // int ptr
        end local 10 // org.jruby.runtime.builtin.IRubyObject orig
        end local 8 // org.jcodings.Encoding enc
        end local 7 // org.jruby.Ruby runtime
        end local 6 // boolean wantarray
        end local 5 // org.jruby.runtime.Block block
        end local 4 // org.jruby.runtime.builtin.IRubyObject opts
        end local 3 // org.jruby.runtime.builtin.IRubyObject arg
        end local 2 // java.lang.String name
        end local 1 // org.jruby.runtime.ThreadContext context
        end local 0 // org.jruby.RubyString str
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   86     0         str  Lorg/jruby/RubyString;
            0   86     1     context  Lorg/jruby/runtime/ThreadContext;
            0   86     2        name  Ljava/lang/String;
            0   86     3         arg  Lorg/jruby/runtime/builtin/IRubyObject;
            0   86     4        opts  Lorg/jruby/runtime/builtin/IRubyObject;
            0   86     5       block  Lorg/jruby/runtime/Block;
            0   86     6   wantarray  Z
            1   86     7     runtime  Lorg/jruby/Ruby;
           35   86     8         enc  Lorg/jcodings/Encoding;
           67   71     9        line  Lorg/jruby/runtime/builtin/IRubyObject;
           81   83     9        line  Lorg/jruby/runtime/builtin/IRubyObject;
            2   86    10        orig  Lorg/jruby/runtime/builtin/IRubyObject;
           29   86    11         ptr  I
           31   86    12        pend  I
           28   86    13      subptr  I
           61   71    14      subend  I
           56   71    15         hit  I
           57   71    16    adjusted  I
            3   86    17   rsnewline  Z
            4   86    18       chomp  Z
            6    9    19      _chomp  Lorg/jruby/runtime/builtin/IRubyObject;
           23   86    19         ary  Lorg/jruby/RubyArray;
           24   86    20  defaultSep  Lorg/jruby/runtime/builtin/IRubyObject;
           25   86    21          rs  Lorg/jruby/RubyString;
           27   86    22    strBytes  [B
           30   86    23         len  I
           32   86    24       rslen  I
           41   86    25  rsByteList  Lorg/jruby/util/ByteList;
           42   86    26     rsbytes  [B
           43   86    27       rsptr  I
           54   71    28         pos  I
    MethodParameters:
           Name  Flags
      str        
      context    
      name       
      arg        
      opts       
      block      
      wantarray  

  private static void rbStrEnumerateLinesEmptySep(org.jruby.RubyString, org.jruby.runtime.ThreadContext, boolean, org.jruby.runtime.Block, org.jruby.RubyArray, byte[], int, int, int, org.jcodings.Encoding, int);
    descriptor: (Lorg/jruby/RubyString;Lorg/jruby/runtime/ThreadContext;ZLorg/jruby/runtime/Block;Lorg/jruby/RubyArray;[BIIILorg/jcodings/Encoding;I)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=6, locals=16, args_size=11
        start local 0 // org.jruby.RubyString str
        start local 1 // org.jruby.runtime.ThreadContext context
        start local 2 // boolean chomp
        start local 3 // org.jruby.runtime.Block block
        start local 4 // org.jruby.RubyArray ary
        start local 5 // byte[] strBytes
        start local 6 // int ptr
        start local 7 // int len
        start local 8 // int pend
        start local 9 // org.jcodings.Encoding enc
        start local 10 // int subptr
         0: .line 2059
            iconst_1
            newarray 10
            astore 11 /* n */
        start local 11 // int[] n
         1: .line 2060
            iconst_m1
            istore 12 /* eol */
        start local 12 // int eol
         2: .line 2061
            iload 10 /* subptr */
            istore 13 /* subend */
        start local 13 // int subend
         3: .line 2062
            goto 26
         4: .line 2065
      StackMap locals: int[] int int
      StackMap stack:
            aload 5 /* strBytes */
            iload 13 /* subend */
            iload 8 /* pend */
            aload 11 /* n */
            aload 9 /* enc */
            invokestatic org.jruby.util.io.EncodingUtils.encAscget:([BII[ILorg/jcodings/Encoding;)I
            bipush 13
            if_icmpeq 5
            aload 11 /* n */
            iconst_0
            iconst_0
            iastore
         5: .line 2066
      StackMap locals:
      StackMap stack:
            aload 11 /* n */
            iconst_0
            iaload
            aload 9 /* enc */
            aload 5 /* strBytes */
            iload 13 /* subend */
            aload 11 /* n */
            iconst_0
            iaload
            iadd
            iload 8 /* pend */
            invokestatic org.jruby.util.StringSupport.length:(Lorg/jcodings/Encoding;[BII)I
            iadd
            istore 14 /* rslen */
        start local 14 // int rslen
         6: .line 2067
            aload 9 /* enc */
            aload 5 /* strBytes */
            iload 13 /* subend */
            aload 11 /* n */
            iconst_0
            iaload
            iadd
            iload 8 /* pend */
            invokevirtual org.jcodings.Encoding.isNewLine:([BII)Z
            ifeq 11
         7: .line 2068
            iload 12 /* eol */
            iload 13 /* subend */
            if_icmpne 8
            goto 16
         8: .line 2069
      StackMap locals: int
      StackMap stack:
            iload 13 /* subend */
            iload 14 /* rslen */
            iadd
            istore 13 /* subend */
         9: .line 2070
            iload 10 /* subptr */
            iconst_m1
            if_icmpeq 13
            iload 13 /* subend */
            istore 12 /* eol */
        10: .line 2071
            goto 13
        11: .line 2073
      StackMap locals:
      StackMap stack:
            iload 10 /* subptr */
            iconst_m1
            if_icmpne 12
            iload 13 /* subend */
            istore 10 /* subptr */
        12: .line 2074
      StackMap locals:
      StackMap stack:
            iload 13 /* subend */
            iload 14 /* rslen */
            iadd
            istore 13 /* subend */
        13: .line 2076
      StackMap locals:
      StackMap stack:
            iconst_0
            istore 14 /* rslen */
        14: .line 2077
            iload 13 /* subend */
            iload 8 /* pend */
        15: .line 2064
            if_icmplt 4
        16: .line 2078
      StackMap locals:
      StackMap stack:
            iload 10 /* subptr */
            iconst_m1
            if_icmpne 17
            goto 27
        17: .line 2079
      StackMap locals:
      StackMap stack:
            aload 0 /* str */
            aload 1 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            iload 10 /* subptr */
            iload 6 /* ptr */
            isub
        18: .line 2080
            iload 13 /* subend */
            iload 10 /* subptr */
            isub
            iload 2 /* chomp */
            ifeq 19
            iconst_0
            goto 20
      StackMap locals: org.jruby.RubyString org.jruby.runtime.ThreadContext int org.jruby.runtime.Block org.jruby.RubyArray byte[] int int int org.jcodings.Encoding int int[] int int int
      StackMap stack: org.jruby.RubyString org.jruby.Ruby int int
        19: iload 14 /* rslen */
      StackMap locals: org.jruby.RubyString org.jruby.runtime.ThreadContext int org.jruby.runtime.Block org.jruby.RubyArray byte[] int int int org.jcodings.Encoding int int[] int int int
      StackMap stack: org.jruby.RubyString org.jruby.Ruby int int int
        20: iadd
        21: .line 2079
            invokevirtual org.jruby.RubyString.makeSharedString:(Lorg/jruby/Ruby;II)Lorg/jruby/RubyString;
            astore 15 /* line */
        start local 15 // org.jruby.RubyString line
        22: .line 2081
            aload 4 /* ary */
            ifnull 23
            aload 4 /* ary */
            aload 15 /* line */
            invokevirtual org.jruby.RubyArray.append:(Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/RubyArray;
            pop
            goto 25
        23: .line 2083
      StackMap locals: org.jruby.RubyString
      StackMap stack:
            aload 3 /* block */
            aload 1 /* context */
            aload 15 /* line */
            invokevirtual org.jruby.runtime.Block.yield:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
            pop
        24: .line 2084
            aload 0 /* str */
            aload 5 /* strBytes */
            iload 7 /* len */
            invokevirtual org.jruby.RubyString.modifyCheck:([BI)V
        25: .line 2086
      StackMap locals:
      StackMap stack:
            iconst_m1
            dup
            istore 12 /* eol */
            istore 10 /* subptr */
        end local 15 // org.jruby.RubyString line
        end local 14 // int rslen
        26: .line 2062
      StackMap locals:
      StackMap stack:
            iload 13 /* subend */
            iload 8 /* pend */
            if_icmplt 4
        27: .line 2088
      StackMap locals:
      StackMap stack:
            return
        end local 13 // int subend
        end local 12 // int eol
        end local 11 // int[] n
        end local 10 // int subptr
        end local 9 // org.jcodings.Encoding enc
        end local 8 // int pend
        end local 7 // int len
        end local 6 // int ptr
        end local 5 // byte[] strBytes
        end local 4 // org.jruby.RubyArray ary
        end local 3 // org.jruby.runtime.Block block
        end local 2 // boolean chomp
        end local 1 // org.jruby.runtime.ThreadContext context
        end local 0 // org.jruby.RubyString str
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   28     0       str  Lorg/jruby/RubyString;
            0   28     1   context  Lorg/jruby/runtime/ThreadContext;
            0   28     2     chomp  Z
            0   28     3     block  Lorg/jruby/runtime/Block;
            0   28     4       ary  Lorg/jruby/RubyArray;
            0   28     5  strBytes  [B
            0   28     6       ptr  I
            0   28     7       len  I
            0   28     8      pend  I
            0   28     9       enc  Lorg/jcodings/Encoding;
            0   28    10    subptr  I
            1   28    11         n  [I
            2   28    12       eol  I
            3   28    13    subend  I
            6   26    14     rslen  I
           22   26    15      line  Lorg/jruby/RubyString;
    MethodParameters:
          Name  Flags
      str       
      context   
      chomp     final
      block     
      ary       
      strBytes  final
      ptr       final
      len       final
      pend      final
      enc       final
      subptr    

  private static int chomp_newline(byte[], int, int, org.jcodings.Encoding);
    descriptor: ([BIILorg/jcodings/Encoding;)I
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=5, locals=5, args_size=4
        start local 0 // byte[] bytes
        start local 1 // int p
        start local 2 // int e
        start local 3 // org.jcodings.Encoding enc
         0: .line 2091
            aload 3 /* enc */
            aload 0 /* bytes */
            iload 1 /* p */
            iload 2 /* e */
            iload 2 /* e */
            invokevirtual org.jcodings.Encoding.prevCharHead:([BIII)I
            istore 4 /* prev */
        start local 4 // int prev
         1: .line 2092
            aload 3 /* enc */
            aload 0 /* bytes */
            iload 4 /* prev */
            iload 2 /* e */
            invokevirtual org.jcodings.Encoding.isNewLine:([BII)Z
            ifeq 5
         2: .line 2093
            iload 4 /* prev */
            istore 2 /* e */
         3: .line 2094
            aload 3 /* enc */
            aload 0 /* bytes */
            iload 1 /* p */
            iload 2 /* e */
            iload 2 /* e */
            invokevirtual org.jcodings.Encoding.prevCharHead:([BIII)I
            istore 4 /* prev */
         4: .line 2095
            iload 4 /* prev */
            iconst_m1
            if_icmpeq 5
            aload 0 /* bytes */
            iload 4 /* prev */
            iload 2 /* e */
            aconst_null
            aload 3 /* enc */
            invokestatic org.jruby.util.io.EncodingUtils.encAscget:([BII[ILorg/jcodings/Encoding;)I
            bipush 13
            if_icmpne 5
            iload 4 /* prev */
            istore 2 /* e */
         5: .line 2097
      StackMap locals: int
      StackMap stack:
            iload 2 /* e */
            ireturn
        end local 4 // int prev
        end local 3 // org.jcodings.Encoding enc
        end local 2 // int e
        end local 1 // int p
        end local 0 // byte[] bytes
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    6     0  bytes  [B
            0    6     1      p  I
            0    6     2      e  I
            0    6     3    enc  Lorg/jcodings/Encoding;
            1    6     4   prev  I
    MethodParameters:
       Name  Flags
      bytes  
      p      
      e      
      enc    

  public static int memsearch(byte[], int, int, byte[], int, int, org.jcodings.Encoding);
    descriptor: ([BII[BIILorg/jcodings/Encoding;)I
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=6, locals=10, args_size=7
        start local 0 // byte[] xBytes
        start local 1 // int x0
        start local 2 // int m
        start local 3 // byte[] yBytes
        start local 4 // int y0
        start local 5 // int n
        start local 6 // org.jcodings.Encoding enc
         0: .line 2101
            iload 1 /* x0 */
            istore 7 /* x */
        start local 7 // int x
         1: iload 4 /* y0 */
            istore 8 /* y */
        start local 8 // int y
         2: .line 2103
            iload 2 /* m */
            iload 5 /* n */
            if_icmple 3
            iconst_m1
            ireturn
         3: .line 2104
      StackMap locals: int int
      StackMap stack:
            iload 2 /* m */
            iload 5 /* n */
            if_icmpne 7
         4: .line 2105
            aload 0 /* xBytes */
            iload 1 /* x0 */
            aload 3 /* yBytes */
            iload 4 /* y0 */
            iload 2 /* m */
            invokestatic org.jruby.util.ByteList.memcmp:([BI[BII)I
            ifne 5
            iconst_0
            goto 6
      StackMap locals:
      StackMap stack:
         5: iconst_m1
      StackMap locals:
      StackMap stack: int
         6: ireturn
         7: .line 2107
      StackMap locals:
      StackMap stack:
            iload 2 /* m */
            iconst_1
            if_icmpge 9
         8: .line 2108
            iconst_0
            ireturn
         9: .line 2110
      StackMap locals:
      StackMap stack:
            iload 2 /* m */
            iconst_1
            if_icmpne 14
        10: .line 2111
            aload 3 /* yBytes */
            iload 8 /* y */
            aload 0 /* xBytes */
            iload 7 /* x */
            baload
            iload 5 /* n */
            invokestatic org.jruby.util.StringSupport.memchr:([BIII)I
            istore 9 /* ys */
        start local 9 // int ys
        11: .line 2113
            iload 9 /* ys */
            iconst_m1
            if_icmpeq 13
        12: .line 2114
            iload 9 /* ys */
            iload 8 /* y */
            isub
            ireturn
        13: .line 2116
      StackMap locals: int
      StackMap stack:
            iconst_m1
            ireturn
        end local 9 // int ys
        14: .line 2118
      StackMap locals:
      StackMap stack:
            iload 2 /* m */
            bipush 8
            if_icmpgt 16
        15: .line 2119
            aload 0 /* xBytes */
            iload 1 /* x0 */
            iload 2 /* m */
            aload 3 /* yBytes */
            iload 4 /* y0 */
            iload 5 /* n */
            invokestatic org.jruby.util.StringSupport.rb_memsearch_ss:([BII[BII)I
            ireturn
        16: .line 2121
      StackMap locals:
      StackMap stack:
            aload 6 /* enc */
            getstatic org.jcodings.specific.UTF8Encoding.INSTANCE:Lorg/jcodings/specific/UTF8Encoding;
            if_acmpne 18
        17: .line 2122
            aload 0 /* xBytes */
            iload 1 /* x0 */
            iload 2 /* m */
            aload 3 /* yBytes */
            iload 4 /* y0 */
            iload 5 /* n */
            invokestatic org.jruby.util.StringSupport.rb_memsearch_qs_utf8:([BII[BII)I
            ireturn
        18: .line 2125
      StackMap locals:
      StackMap stack:
            aload 0 /* xBytes */
            iload 1 /* x0 */
            iload 2 /* m */
            aload 3 /* yBytes */
            iload 4 /* y0 */
            iload 5 /* n */
            invokestatic org.jruby.util.StringSupport.rb_memsearch_qs:([BII[BII)I
            ireturn
        end local 8 // int y
        end local 7 // int x
        end local 6 // org.jcodings.Encoding enc
        end local 5 // int n
        end local 4 // int y0
        end local 3 // byte[] yBytes
        end local 2 // int m
        end local 1 // int x0
        end local 0 // byte[] xBytes
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   19     0  xBytes  [B
            0   19     1      x0  I
            0   19     2       m  I
            0   19     3  yBytes  [B
            0   19     4      y0  I
            0   19     5       n  I
            0   19     6     enc  Lorg/jcodings/Encoding;
            1   19     7       x  I
            2   19     8       y  I
           11   14     9      ys  I
    MethodParameters:
        Name  Flags
      xBytes  
      x0      
      m       
      yBytes  
      y0      
      n       
      enc     

  public static org.jruby.util.CodeRangeable trTransHelper(org.jruby.util.CodeRangeable, org.jruby.util.CodeRangeable, org.jruby.util.CodeRangeable, boolean);
    descriptor: (Lorg/jruby/util/CodeRangeable;Lorg/jruby/util/CodeRangeable;Lorg/jruby/util/CodeRangeable;Z)Lorg/jruby/util/CodeRangeable;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=6, locals=32, args_size=4
        start local 0 // org.jruby.util.CodeRangeable self
        start local 1 // org.jruby.util.CodeRangeable srcStr
        start local 2 // org.jruby.util.CodeRangeable replStr
        start local 3 // boolean sflag
         0: .line 2137
            aload 1 /* srcStr */
            invokeinterface org.jruby.util.CodeRangeable.getByteList:()Lorg/jruby/util/ByteList;
            astore 4 /* srcList */
        start local 4 // org.jruby.util.ByteList srcList
         1: .line 2138
            aload 2 /* replStr */
            invokeinterface org.jruby.util.CodeRangeable.getByteList:()Lorg/jruby/util/ByteList;
            astore 5 /* replList */
        start local 5 // org.jruby.util.ByteList replList
         2: .line 2140
            aload 0 /* self */
            invokeinterface org.jruby.util.CodeRangeable.getCodeRange:()I
            istore 6 /* cr */
        start local 6 // int cr
         3: .line 2141
            aload 0 /* self */
            aload 1 /* srcStr */
            invokeinterface org.jruby.util.CodeRangeable.checkEncoding:(Lorg/jruby/util/CodeRangeable;)Lorg/jcodings/Encoding;
            astore 7 /* e1 */
        start local 7 // org.jcodings.Encoding e1
         4: .line 2142
            aload 0 /* self */
            aload 2 /* replStr */
            invokeinterface org.jruby.util.CodeRangeable.checkEncoding:(Lorg/jruby/util/CodeRangeable;)Lorg/jcodings/Encoding;
            astore 8 /* e2 */
        start local 8 // org.jcodings.Encoding e2
         5: .line 2143
            aload 7 /* e1 */
            aload 8 /* e2 */
            if_acmpne 6
            aload 7 /* e1 */
            goto 7
      StackMap locals: org.jruby.util.CodeRangeable org.jruby.util.CodeRangeable org.jruby.util.CodeRangeable int org.jruby.util.ByteList org.jruby.util.ByteList int org.jcodings.Encoding org.jcodings.Encoding
      StackMap stack:
         6: aload 1 /* srcStr */
            aload 2 /* replStr */
            invokeinterface org.jruby.util.CodeRangeable.checkEncoding:(Lorg/jruby/util/CodeRangeable;)Lorg/jcodings/Encoding;
      StackMap locals:
      StackMap stack: org.jcodings.Encoding
         7: astore 9 /* enc */
        start local 9 // org.jcodings.Encoding enc
         8: .line 2145
            new org.jruby.util.StringSupport$TR
            dup
            aload 4 /* srcList */
            invokespecial org.jruby.util.StringSupport$TR.<init>:(Lorg/jruby/util/ByteList;)V
            astore 10 /* trSrc */
        start local 10 // org.jruby.util.StringSupport$TR trSrc
         9: .line 2146
            iconst_0
            istore 11 /* cflag */
        start local 11 // boolean cflag
        10: .line 2147
            iconst_1
            newarray 10
            astore 12 /* l */
        start local 12 // int[] l
        11: .line 2149
            aload 1 /* srcStr */
            invokeinterface org.jruby.util.CodeRangeable.getByteList:()Lorg/jruby/util/ByteList;
            invokevirtual org.jruby.util.ByteList.getRealSize:()I
            iconst_1
            if_icmple 16
        12: .line 2150
            aload 10 /* trSrc */
            getfield org.jruby.util.StringSupport$TR.buf:[B
            aload 10 /* trSrc */
            getfield org.jruby.util.StringSupport$TR.p:I
            aload 10 /* trSrc */
            getfield org.jruby.util.StringSupport$TR.pend:I
            aload 12 /* l */
            aload 9 /* enc */
            invokestatic org.jruby.util.io.EncodingUtils.encAscget:([BII[ILorg/jcodings/Encoding;)I
            bipush 94
            if_icmpne 16
        13: .line 2151
            aload 10 /* trSrc */
            getfield org.jruby.util.StringSupport$TR.p:I
            iconst_1
            iadd
            aload 10 /* trSrc */
            getfield org.jruby.util.StringSupport$TR.pend:I
            if_icmpge 16
        14: .line 2152
            iconst_1
            istore 11 /* cflag */
        15: .line 2153
            aload 10 /* trSrc */
            dup
            getfield org.jruby.util.StringSupport$TR.p:I
            iconst_1
            iadd
            putfield org.jruby.util.StringSupport$TR.p:I
        16: .line 2156
      StackMap locals: org.jruby.util.CodeRangeable org.jruby.util.CodeRangeable org.jruby.util.CodeRangeable int org.jruby.util.ByteList org.jruby.util.ByteList int org.jcodings.Encoding org.jcodings.Encoding org.jcodings.Encoding org.jruby.util.StringSupport$TR int int[]
      StackMap stack:
            iconst_0
            istore 15 /* last */
        start local 15 // int last
        17: .line 2157
            sipush 256
            newarray 10
            astore 16 /* trans */
        start local 16 // int[] trans
        18: .line 2158
            new org.jruby.util.StringSupport$TR
            dup
            aload 5 /* replList */
            invokespecial org.jruby.util.StringSupport$TR.<init>:(Lorg/jruby/util/ByteList;)V
            astore 17 /* trRepl */
        start local 17 // org.jruby.util.StringSupport$TR trRepl
        19: .line 2159
            iconst_0
            istore 18 /* modify */
        start local 18 // boolean modify
        20: .line 2160
            aconst_null
            astore 19 /* hash */
        start local 19 // org.jcodings.util.IntHash hash
        21: .line 2161
            aload 0 /* self */
            aload 0 /* self */
            invokestatic org.jruby.util.io.EncodingUtils.STR_ENC_GET:(Lorg/jruby/util/ByteListHolder;)Lorg/jcodings/Encoding;
            invokestatic org.jruby.util.StringSupport.isSingleByteOptimizable:(Lorg/jruby/util/CodeRangeable;Lorg/jcodings/Encoding;)Z
            istore 20 /* singlebyte */
        start local 20 // boolean singlebyte
        22: .line 2163
            iload 11 /* cflag */
            ifeq 45
        23: .line 2164
            iconst_0
            istore 21 /* i */
        start local 21 // int i
        24: goto 27
        25: .line 2165
      StackMap locals: org.jruby.util.CodeRangeable org.jruby.util.CodeRangeable org.jruby.util.CodeRangeable int org.jruby.util.ByteList org.jruby.util.ByteList int org.jcodings.Encoding org.jcodings.Encoding org.jcodings.Encoding org.jruby.util.StringSupport$TR int int[] top top int int[] org.jruby.util.StringSupport$TR int org.jcodings.util.IntHash int int
      StackMap stack:
            aload 16 /* trans */
            iload 21 /* i */
            iconst_1
            iastore
        26: .line 2164
            iinc 21 /* i */ 1
      StackMap locals:
      StackMap stack:
        27: iload 21 /* i */
            sipush 256
            if_icmplt 25
        end local 21 // int i
        28: .line 2168
            goto 34
        start local 13 // int c
        29: .line 2169
      StackMap locals: org.jruby.util.CodeRangeable org.jruby.util.CodeRangeable org.jruby.util.CodeRangeable int org.jruby.util.ByteList org.jruby.util.ByteList int org.jcodings.Encoding org.jcodings.Encoding org.jcodings.Encoding org.jruby.util.StringSupport$TR int int[] int top int int[] org.jruby.util.StringSupport$TR int org.jcodings.util.IntHash int
      StackMap stack:
            iload 13 /* c */
            sipush 256
            if_icmpge 32
        30: .line 2170
            aload 16 /* trans */
            iload 13 /* c */
            iconst_m1
            iastore
        31: .line 2171
            goto 34
        32: .line 2172
      StackMap locals:
      StackMap stack:
            aload 19 /* hash */
            ifnonnull 33
            new org.jcodings.util.IntHash
            dup
            invokespecial org.jcodings.util.IntHash.<init>:()V
            astore 19 /* hash */
        33: .line 2173
      StackMap locals:
      StackMap stack:
            aload 19 /* hash */
            iload 13 /* c */
            iconst_1
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            invokevirtual org.jcodings.util.IntHash.put:(ILjava/lang/Object;)Ljava/lang/Object;
            pop
        end local 13 // int c
        34: .line 2168
      StackMap locals: org.jruby.util.CodeRangeable org.jruby.util.CodeRangeable org.jruby.util.CodeRangeable int org.jruby.util.ByteList org.jruby.util.ByteList int org.jcodings.Encoding org.jcodings.Encoding org.jcodings.Encoding org.jruby.util.StringSupport$TR int int[] top top int int[] org.jruby.util.StringSupport$TR int org.jcodings.util.IntHash int
      StackMap stack:
            aload 10 /* trSrc */
            aload 9 /* enc */
            invokestatic org.jruby.util.StringSupport.trNext:(Lorg/jruby/util/StringSupport$TR;Lorg/jcodings/Encoding;)I
            dup
            istore 13 /* c */
        start local 13 // int c
        35: iconst_m1
            if_icmpne 29
        36: .line 2176
      StackMap locals: org.jruby.util.CodeRangeable org.jruby.util.CodeRangeable org.jruby.util.CodeRangeable int org.jruby.util.ByteList org.jruby.util.ByteList int org.jcodings.Encoding org.jcodings.Encoding org.jcodings.Encoding org.jruby.util.StringSupport$TR int int[] int top int int[] org.jruby.util.StringSupport$TR int org.jcodings.util.IntHash int
      StackMap stack:
            aload 17 /* trRepl */
            aload 9 /* enc */
            invokestatic org.jruby.util.StringSupport.trNext:(Lorg/jruby/util/StringSupport$TR;Lorg/jcodings/Encoding;)I
            dup
            istore 13 /* c */
            iconst_m1
            if_icmpne 36
        37: .line 2177
            aload 17 /* trRepl */
            getfield org.jruby.util.StringSupport$TR.now:I
            istore 15 /* last */
        38: .line 2178
            iconst_0
            istore 21 /* i */
        start local 21 // int i
        39: goto 43
        40: .line 2179
      StackMap locals: int
      StackMap stack:
            aload 16 /* trans */
            iload 21 /* i */
            iaload
            iconst_m1
            if_icmpeq 42
        41: .line 2180
            aload 16 /* trans */
            iload 21 /* i */
            iload 15 /* last */
            iastore
        42: .line 2178
      StackMap locals:
      StackMap stack:
            iinc 21 /* i */ 1
      StackMap locals:
      StackMap stack:
        43: iload 21 /* i */
            sipush 256
            if_icmplt 40
        end local 21 // int i
        44: .line 2183
            goto 61
        end local 13 // int c
        45: .line 2184
      StackMap locals: org.jruby.util.CodeRangeable org.jruby.util.CodeRangeable org.jruby.util.CodeRangeable int org.jruby.util.ByteList org.jruby.util.ByteList int org.jcodings.Encoding org.jcodings.Encoding org.jcodings.Encoding org.jruby.util.StringSupport$TR int int[] top top int int[] org.jruby.util.StringSupport$TR int org.jcodings.util.IntHash int
      StackMap stack:
            iconst_0
            istore 21 /* i */
        start local 21 // int i
        46: goto 49
        47: .line 2185
      StackMap locals: int
      StackMap stack:
            aload 16 /* trans */
            iload 21 /* i */
            iconst_m1
            iastore
        48: .line 2184
            iinc 21 /* i */ 1
      StackMap locals:
      StackMap stack:
        49: iload 21 /* i */
            sipush 256
            if_icmplt 47
        end local 21 // int i
        50: .line 2188
            goto 59
        start local 13 // int c
        51: .line 2189
      StackMap locals: org.jruby.util.CodeRangeable org.jruby.util.CodeRangeable org.jruby.util.CodeRangeable int org.jruby.util.ByteList org.jruby.util.ByteList int org.jcodings.Encoding org.jcodings.Encoding org.jcodings.Encoding org.jruby.util.StringSupport$TR int int[] int top int int[] org.jruby.util.StringSupport$TR int org.jcodings.util.IntHash int
      StackMap stack:
            aload 17 /* trRepl */
            aload 9 /* enc */
            invokestatic org.jruby.util.StringSupport.trNext:(Lorg/jruby/util/StringSupport$TR;Lorg/jcodings/Encoding;)I
            istore 21 /* r */
        start local 21 // int r
        52: .line 2190
            iload 21 /* r */
            iconst_m1
            if_icmpne 53
            aload 17 /* trRepl */
            getfield org.jruby.util.StringSupport$TR.now:I
            istore 21 /* r */
        53: .line 2191
      StackMap locals: int
      StackMap stack:
            iload 13 /* c */
            sipush 256
            if_icmpge 57
        54: .line 2192
            aload 16 /* trans */
            iload 13 /* c */
            iload 21 /* r */
            iastore
        55: .line 2193
            aload 9 /* enc */
            iload 21 /* r */
            invokestatic org.jruby.util.StringSupport.codeLength:(Lorg/jcodings/Encoding;I)I
            iconst_1
            if_icmpeq 59
            iconst_0
            istore 20 /* singlebyte */
        56: .line 2194
            goto 59
        57: .line 2195
      StackMap locals:
      StackMap stack:
            aload 19 /* hash */
            ifnonnull 58
            new org.jcodings.util.IntHash
            dup
            invokespecial org.jcodings.util.IntHash.<init>:()V
            astore 19 /* hash */
        58: .line 2196
      StackMap locals:
      StackMap stack:
            aload 19 /* hash */
            iload 13 /* c */
            iload 21 /* r */
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            invokevirtual org.jcodings.util.IntHash.put:(ILjava/lang/Object;)Ljava/lang/Object;
            pop
        end local 21 // int r
        end local 13 // int c
        59: .line 2188
      StackMap locals: org.jruby.util.CodeRangeable org.jruby.util.CodeRangeable org.jruby.util.CodeRangeable int org.jruby.util.ByteList org.jruby.util.ByteList int org.jcodings.Encoding org.jcodings.Encoding org.jcodings.Encoding org.jruby.util.StringSupport$TR int int[] top top int int[] org.jruby.util.StringSupport$TR int org.jcodings.util.IntHash int
      StackMap stack:
            aload 10 /* trSrc */
            aload 9 /* enc */
            invokestatic org.jruby.util.StringSupport.trNext:(Lorg/jruby/util/StringSupport$TR;Lorg/jcodings/Encoding;)I
            dup
            istore 13 /* c */
        start local 13 // int c
        60: iconst_m1
            if_icmpne 51
        61: .line 2201
      StackMap locals: org.jruby.util.CodeRangeable org.jruby.util.CodeRangeable org.jruby.util.CodeRangeable int org.jruby.util.ByteList org.jruby.util.ByteList int org.jcodings.Encoding org.jcodings.Encoding org.jcodings.Encoding org.jruby.util.StringSupport$TR int int[] int top int int[] org.jruby.util.StringSupport$TR int org.jcodings.util.IntHash int
      StackMap stack:
            iload 6 /* cr */
            bipush 32
            if_icmpne 63
            aload 9 /* enc */
            invokevirtual org.jcodings.Encoding.isAsciiCompatible:()Z
            ifeq 63
        62: .line 2202
            bipush 16
            istore 6 /* cr */
        63: .line 2204
      StackMap locals:
      StackMap stack:
            aload 0 /* self */
            invokeinterface org.jruby.util.CodeRangeable.modifyAndKeepCodeRange:()V
        64: .line 2205
            aload 0 /* self */
            invokeinterface org.jruby.util.CodeRangeable.getByteList:()Lorg/jruby/util/ByteList;
            invokevirtual org.jruby.util.ByteList.getBegin:()I
            istore 21 /* s */
        start local 21 // int s
        65: .line 2206
            iload 21 /* s */
            aload 0 /* self */
            invokeinterface org.jruby.util.CodeRangeable.getByteList:()Lorg/jruby/util/ByteList;
            invokevirtual org.jruby.util.ByteList.getRealSize:()I
            iadd
            istore 22 /* send */
        start local 22 // int send
        66: .line 2207
            aload 0 /* self */
            invokeinterface org.jruby.util.CodeRangeable.getByteList:()Lorg/jruby/util/ByteList;
            invokevirtual org.jruby.util.ByteList.getUnsafeBytes:()[B
            astore 23 /* sbytes */
        start local 23 // byte[] sbytes
        67: .line 2209
            iload 3 /* sflag */
            ifeq 121
        68: .line 2211
            aload 0 /* self */
            invokeinterface org.jruby.util.CodeRangeable.getByteList:()Lorg/jruby/util/ByteList;
            invokevirtual org.jruby.util.ByteList.getRealSize:()I
            istore 26 /* max */
        start local 26 // int max
        69: .line 2212
            iconst_m1
            istore 27 /* save */
        start local 27 // int save
        70: .line 2213
            iload 26 /* max */
            newarray 8
            astore 28 /* buf */
        start local 28 // byte[] buf
        71: .line 2214
            iconst_0
            istore 29 /* t */
        start local 29 // int t
        72: .line 2215
            goto 117
        73: .line 2216
      StackMap locals: org.jruby.util.CodeRangeable org.jruby.util.CodeRangeable org.jruby.util.CodeRangeable int org.jruby.util.ByteList org.jruby.util.ByteList int org.jcodings.Encoding org.jcodings.Encoding org.jcodings.Encoding org.jruby.util.StringSupport$TR int int[] int top int int[] org.jruby.util.StringSupport$TR int org.jcodings.util.IntHash int int int byte[] top top int int byte[] int
      StackMap stack:
            iconst_0
            istore 30 /* mayModify */
        start local 30 // boolean mayModify
        74: .line 2217
            aload 7 /* e1 */
            aload 23 /* sbytes */
            iload 21 /* s */
            iload 22 /* send */
            invokestatic org.jruby.util.StringSupport.codePoint:(Lorg/jcodings/Encoding;[BII)I
            dup
            istore 13 /* c */
            istore 14 /* c0 */
        start local 14 // int c0
        75: .line 2218
            aload 7 /* e1 */
            iload 13 /* c */
            invokestatic org.jruby.util.StringSupport.codeLength:(Lorg/jcodings/Encoding;I)I
            istore 24 /* clen */
        start local 24 // int clen
        76: .line 2219
            aload 9 /* enc */
            aload 7 /* e1 */
            if_acmpne 77
            iload 24 /* clen */
            goto 78
      StackMap locals: org.jruby.util.CodeRangeable org.jruby.util.CodeRangeable org.jruby.util.CodeRangeable int org.jruby.util.ByteList org.jruby.util.ByteList int org.jcodings.Encoding org.jcodings.Encoding org.jcodings.Encoding org.jruby.util.StringSupport$TR int int[] int int int int[] org.jruby.util.StringSupport$TR int org.jcodings.util.IntHash int int int byte[] int top int int byte[] int int
      StackMap stack:
        77: aload 9 /* enc */
            iload 13 /* c */
            invokestatic org.jruby.util.StringSupport.codeLength:(Lorg/jcodings/Encoding;I)I
      StackMap locals:
      StackMap stack: int
        78: istore 25 /* tlen */
        start local 25 // int tlen
        79: .line 2220
            iload 21 /* s */
            iload 24 /* clen */
            iadd
            istore 21 /* s */
        80: .line 2222
            iload 13 /* c */
            sipush 256
            if_icmpge 83
        81: .line 2223
            iload 13 /* c */
            aload 16 /* trans */
            aload 19 /* hash */
            iload 11 /* cflag */
            iload 15 /* last */
            iconst_0
            invokestatic org.jruby.util.StringSupport.trCode:(I[ILorg/jcodings/util/IntHash;ZIZ)I
            istore 13 /* c */
        82: .line 2224
            goto 97
      StackMap locals: org.jruby.util.CodeRangeable org.jruby.util.CodeRangeable org.jruby.util.CodeRangeable int org.jruby.util.ByteList org.jruby.util.ByteList int org.jcodings.Encoding org.jcodings.Encoding org.jcodings.Encoding org.jruby.util.StringSupport$TR int int[] int int int int[] org.jruby.util.StringSupport$TR int org.jcodings.util.IntHash int int int byte[] int int int int byte[] int int
      StackMap stack:
        83: aload 19 /* hash */
            ifnull 96
        84: .line 2225
            aload 19 /* hash */
            iload 13 /* c */
            invokevirtual org.jcodings.util.IntHash.get:(I)Ljava/lang/Object;
            checkcast java.lang.Integer
            astore 31 /* tmp */
        start local 31 // java.lang.Integer tmp
        85: .line 2226
            aload 31 /* tmp */
            ifnonnull 91
        86: .line 2227
            iload 11 /* cflag */
            ifeq 89
        87: .line 2228
            iload 15 /* last */
            istore 13 /* c */
        88: .line 2229
            goto 97
        89: .line 2230
      StackMap locals: java.lang.Integer
      StackMap stack:
            iconst_m1
            istore 13 /* c */
        90: .line 2232
            goto 97
      StackMap locals:
      StackMap stack:
        91: iload 11 /* cflag */
            ifeq 94
        92: .line 2233
            iconst_m1
            istore 13 /* c */
        93: .line 2234
            goto 97
        94: .line 2235
      StackMap locals:
      StackMap stack:
            aload 31 /* tmp */
            invokevirtual java.lang.Integer.intValue:()I
            istore 13 /* c */
        end local 31 // java.lang.Integer tmp
        95: .line 2237
            goto 97
        96: .line 2238
      StackMap locals:
      StackMap stack:
            iconst_m1
            istore 13 /* c */
        97: .line 2241
      StackMap locals:
      StackMap stack:
            iload 13 /* c */
            iconst_m1
            if_icmpeq 105
        98: .line 2242
            iload 27 /* save */
            iload 13 /* c */
            if_icmpne 101
        99: .line 2243
            iload 6 /* cr */
            bipush 16
            if_icmpne 117
            iload 13 /* c */
            invokestatic org.jcodings.Encoding.isAscii:(I)Z
            ifne 117
            bipush 32
            istore 6 /* cr */
       100: .line 2244
            goto 117
       101: .line 2246
      StackMap locals:
      StackMap stack:
            iload 13 /* c */
            istore 27 /* save */
       102: .line 2247
            aload 9 /* enc */
            iload 13 /* c */
            invokestatic org.jruby.util.StringSupport.codeLength:(Lorg/jcodings/Encoding;I)I
            istore 25 /* tlen */
       103: .line 2248
            iconst_1
            istore 18 /* modify */
       104: .line 2249
            goto 111
       105: .line 2250
      StackMap locals:
      StackMap stack:
            iconst_m1
            istore 27 /* save */
       106: .line 2251
            iload 14 /* c0 */
            istore 13 /* c */
       107: .line 2252
            aload 9 /* enc */
            aload 7 /* e1 */
            if_acmpeq 111
            iconst_1
            istore 30 /* mayModify */
       108: .line 2255
            goto 111
       109: .line 2256
      StackMap locals:
      StackMap stack:
            iload 26 /* max */
            iconst_2
            imul
            istore 26 /* max */
       110: .line 2257
            aload 28 /* buf */
            iload 26 /* max */
            invokestatic java.util.Arrays.copyOf:([BI)[B
            astore 28 /* buf */
       111: .line 2255
      StackMap locals:
      StackMap stack:
            iload 29 /* t */
            iload 25 /* tlen */
            iadd
            iload 26 /* max */
            if_icmpge 109
       112: .line 2259
            aload 9 /* enc */
            iload 13 /* c */
            aload 28 /* buf */
            iload 29 /* t */
            invokevirtual org.jcodings.Encoding.codeToMbc:(I[BI)I
            pop
       113: .line 2261
            iload 30 /* mayModify */
            ifeq 115
            iload 21 /* s */
            iload 22 /* send */
            if_icmpge 114
            aload 23 /* sbytes */
            iload 21 /* s */
            aload 28 /* buf */
            iload 29 /* t */
            iload 25 /* tlen */
            invokestatic org.jruby.util.ByteList.memcmp:([BI[BII)I
            ifeq 115
      StackMap locals:
      StackMap stack:
       114: iconst_1
            istore 18 /* modify */
       115: .line 2262
      StackMap locals:
      StackMap stack:
            iload 6 /* cr */
            bipush 16
            if_icmpne 116
            iload 13 /* c */
            invokestatic org.jcodings.Encoding.isAscii:(I)Z
            ifne 116
            bipush 32
            istore 6 /* cr */
       116: .line 2263
      StackMap locals:
      StackMap stack:
            iload 29 /* t */
            iload 25 /* tlen */
            iadd
            istore 29 /* t */
        end local 30 // boolean mayModify
        end local 25 // int tlen
        end local 24 // int clen
        end local 14 // int c0
       117: .line 2215
      StackMap locals: org.jruby.util.CodeRangeable org.jruby.util.CodeRangeable org.jruby.util.CodeRangeable int org.jruby.util.ByteList org.jruby.util.ByteList int org.jcodings.Encoding org.jcodings.Encoding org.jcodings.Encoding org.jruby.util.StringSupport$TR int int[] int top int int[] org.jruby.util.StringSupport$TR int org.jcodings.util.IntHash int int int byte[] top top int int byte[] int
      StackMap stack:
            iload 21 /* s */
            iload 22 /* send */
            if_icmplt 73
       118: .line 2265
            aload 0 /* self */
            invokeinterface org.jruby.util.CodeRangeable.getByteList:()Lorg/jruby/util/ByteList;
            aload 28 /* buf */
            invokevirtual org.jruby.util.ByteList.setUnsafeBytes:([B)V
       119: .line 2266
            aload 0 /* self */
            invokeinterface org.jruby.util.CodeRangeable.getByteList:()Lorg/jruby/util/ByteList;
            iload 29 /* t */
            invokevirtual org.jruby.util.ByteList.setRealSize:(I)V
        end local 29 // int t
        end local 28 // byte[] buf
        end local 27 // int save
        end local 26 // int max
       120: .line 2267
            goto 183
      StackMap locals: org.jruby.util.CodeRangeable org.jruby.util.CodeRangeable org.jruby.util.CodeRangeable int org.jruby.util.ByteList org.jruby.util.ByteList int org.jcodings.Encoding org.jcodings.Encoding org.jcodings.Encoding org.jruby.util.StringSupport$TR int int[] int top int int[] org.jruby.util.StringSupport$TR int org.jcodings.util.IntHash int int int byte[]
      StackMap stack:
       121: aload 9 /* enc */
            invokevirtual org.jcodings.Encoding.isSingleByte:()Z
            ifne 133
            iload 20 /* singlebyte */
            ifeq 135
            aload 19 /* hash */
            ifnonnull 135
       122: .line 2268
            goto 133
       123: .line 2269
      StackMap locals:
      StackMap stack:
            aload 23 /* sbytes */
            iload 21 /* s */
            baload
            sipush 255
            iand
            istore 13 /* c */
       124: .line 2270
            aload 16 /* trans */
            iload 13 /* c */
            iaload
            iconst_m1
            if_icmpeq 131
       125: .line 2271
            iload 11 /* cflag */
            ifne 129
       126: .line 2272
            aload 16 /* trans */
            iload 13 /* c */
            iaload
            istore 13 /* c */
       127: .line 2273
            aload 23 /* sbytes */
            iload 21 /* s */
            iload 13 /* c */
            i2b
            bastore
       128: .line 2274
            goto 130
       129: .line 2275
      StackMap locals:
      StackMap stack:
            aload 23 /* sbytes */
            iload 21 /* s */
            iload 15 /* last */
            i2b
            bastore
       130: .line 2277
      StackMap locals:
      StackMap stack:
            iconst_1
            istore 18 /* modify */
       131: .line 2279
      StackMap locals:
      StackMap stack:
            iload 6 /* cr */
            bipush 16
            if_icmpne 132
            iload 13 /* c */
            invokestatic org.jcodings.Encoding.isAscii:(I)Z
            ifne 132
            bipush 32
            istore 6 /* cr */
       132: .line 2280
      StackMap locals:
      StackMap stack:
            iinc 21 /* s */ 1
       133: .line 2268
      StackMap locals:
      StackMap stack:
            iload 21 /* s */
            iload 22 /* send */
            if_icmplt 123
       134: .line 2282
            goto 183
       135: .line 2283
      StackMap locals:
      StackMap stack:
            aload 0 /* self */
            invokeinterface org.jruby.util.CodeRangeable.getByteList:()Lorg/jruby/util/ByteList;
            invokevirtual org.jruby.util.ByteList.realSize:()I
            i2d
            ldc 1.2
            dmul
            d2i
            istore 26 /* max */
        start local 26 // int max
       136: .line 2284
            iload 26 /* max */
            newarray 8
            astore 27 /* buf */
        start local 27 // byte[] buf
       137: .line 2285
            iconst_0
            istore 28 /* t */
        start local 28 // int t
       138: .line 2287
            goto 180
       139: .line 2288
      StackMap locals: org.jruby.util.CodeRangeable org.jruby.util.CodeRangeable org.jruby.util.CodeRangeable int org.jruby.util.ByteList org.jruby.util.ByteList int org.jcodings.Encoding org.jcodings.Encoding org.jcodings.Encoding org.jruby.util.StringSupport$TR int int[] int top int int[] org.jruby.util.StringSupport$TR int org.jcodings.util.IntHash int int int byte[] top top int byte[] int
      StackMap stack:
            iconst_0
            istore 29 /* mayModify */
        start local 29 // boolean mayModify
       140: .line 2289
            aload 7 /* e1 */
            aload 23 /* sbytes */
            iload 21 /* s */
            iload 22 /* send */
            invokestatic org.jruby.util.StringSupport.codePoint:(Lorg/jcodings/Encoding;[BII)I
            dup
            istore 13 /* c */
            istore 14 /* c0 */
        start local 14 // int c0
       141: .line 2290
            aload 7 /* e1 */
            iload 13 /* c */
            invokestatic org.jruby.util.StringSupport.codeLength:(Lorg/jcodings/Encoding;I)I
            istore 24 /* clen */
        start local 24 // int clen
       142: .line 2291
            aload 9 /* enc */
            aload 7 /* e1 */
            if_acmpne 143
            iload 24 /* clen */
            goto 144
      StackMap locals: org.jruby.util.CodeRangeable org.jruby.util.CodeRangeable org.jruby.util.CodeRangeable int org.jruby.util.ByteList org.jruby.util.ByteList int org.jcodings.Encoding org.jcodings.Encoding org.jcodings.Encoding org.jruby.util.StringSupport$TR int int[] int int int int[] org.jruby.util.StringSupport$TR int org.jcodings.util.IntHash int int int byte[] int top int byte[] int int
      StackMap stack:
       143: aload 9 /* enc */
            iload 13 /* c */
            invokestatic org.jruby.util.StringSupport.codeLength:(Lorg/jcodings/Encoding;I)I
      StackMap locals:
      StackMap stack: int
       144: istore 25 /* tlen */
        start local 25 // int tlen
       145: .line 2293
            iload 13 /* c */
            sipush 256
            if_icmpge 148
       146: .line 2294
            aload 16 /* trans */
            iload 13 /* c */
            iaload
            istore 13 /* c */
       147: .line 2295
            goto 164
      StackMap locals: org.jruby.util.CodeRangeable org.jruby.util.CodeRangeable org.jruby.util.CodeRangeable int org.jruby.util.ByteList org.jruby.util.ByteList int org.jcodings.Encoding org.jcodings.Encoding org.jcodings.Encoding org.jruby.util.StringSupport$TR int int[] int int int int[] org.jruby.util.StringSupport$TR int org.jcodings.util.IntHash int int int byte[] int int int byte[] int int
      StackMap stack:
       148: aload 19 /* hash */
            ifnull 161
       149: .line 2296
            aload 19 /* hash */
            iload 13 /* c */
            invokevirtual org.jcodings.util.IntHash.get:(I)Ljava/lang/Object;
            checkcast java.lang.Integer
            astore 30 /* tmp */
        start local 30 // java.lang.Integer tmp
       150: .line 2297
            aload 30 /* tmp */
            ifnonnull 156
       151: .line 2298
            iload 11 /* cflag */
            ifeq 154
       152: .line 2299
            iload 15 /* last */
            istore 13 /* c */
       153: .line 2300
            goto 164
       154: .line 2301
      StackMap locals: java.lang.Integer
      StackMap stack:
            iconst_m1
            istore 13 /* c */
       155: .line 2303
            goto 164
      StackMap locals:
      StackMap stack:
       156: iload 11 /* cflag */
            ifeq 159
       157: .line 2304
            iconst_m1
            istore 13 /* c */
       158: .line 2305
            goto 164
       159: .line 2306
      StackMap locals:
      StackMap stack:
            aload 30 /* tmp */
            invokevirtual java.lang.Integer.intValue:()I
            istore 13 /* c */
        end local 30 // java.lang.Integer tmp
       160: .line 2308
            goto 164
       161: .line 2310
      StackMap locals:
      StackMap stack:
            iload 11 /* cflag */
            ifeq 162
            iload 15 /* last */
            goto 163
      StackMap locals:
      StackMap stack:
       162: iconst_m1
      StackMap locals:
      StackMap stack: int
       163: istore 13 /* c */
       164: .line 2312
      StackMap locals:
      StackMap stack:
            iload 13 /* c */
            iconst_m1
            if_icmpeq 168
       165: .line 2313
            aload 9 /* enc */
            iload 13 /* c */
            invokestatic org.jruby.util.StringSupport.codeLength:(Lorg/jcodings/Encoding;I)I
            istore 25 /* tlen */
       166: .line 2314
            iconst_1
            istore 18 /* modify */
       167: .line 2315
            goto 173
       168: .line 2316
      StackMap locals:
      StackMap stack:
            iload 14 /* c0 */
            istore 13 /* c */
       169: .line 2317
            aload 9 /* enc */
            aload 7 /* e1 */
            if_acmpeq 173
            iconst_1
            istore 29 /* mayModify */
       170: .line 2319
            goto 173
       171: .line 2320
      StackMap locals:
      StackMap stack:
            iload 26 /* max */
            iconst_1
            ishl
            istore 26 /* max */
       172: .line 2321
            aload 27 /* buf */
            iload 26 /* max */
            invokestatic java.util.Arrays.copyOf:([BI)[B
            astore 27 /* buf */
       173: .line 2319
      StackMap locals:
      StackMap stack:
            iload 28 /* t */
            iload 25 /* tlen */
            iadd
            iload 26 /* max */
            if_icmpge 171
       174: .line 2325
            aload 9 /* enc */
            iload 13 /* c */
            aload 27 /* buf */
            iload 28 /* t */
            invokevirtual org.jcodings.Encoding.codeToMbc:(I[BI)I
            pop
       175: .line 2326
            iload 29 /* mayModify */
            ifeq 177
            aload 23 /* sbytes */
            iload 21 /* s */
            aload 27 /* buf */
            iload 28 /* t */
            iload 25 /* tlen */
            invokestatic org.jruby.util.ByteList.memcmp:([BI[BII)I
            ifeq 177
       176: .line 2327
            iconst_1
            istore 18 /* modify */
       177: .line 2331
      StackMap locals:
      StackMap stack:
            iload 6 /* cr */
            bipush 16
            if_icmpne 178
            iload 13 /* c */
            invokestatic org.jcodings.Encoding.isAscii:(I)Z
            ifne 178
            bipush 32
            istore 6 /* cr */
       178: .line 2332
      StackMap locals:
      StackMap stack:
            iload 21 /* s */
            iload 24 /* clen */
            iadd
            istore 21 /* s */
       179: .line 2333
            iload 28 /* t */
            iload 25 /* tlen */
            iadd
            istore 28 /* t */
        end local 29 // boolean mayModify
        end local 25 // int tlen
        end local 24 // int clen
        end local 14 // int c0
       180: .line 2287
      StackMap locals: org.jruby.util.CodeRangeable org.jruby.util.CodeRangeable org.jruby.util.CodeRangeable int org.jruby.util.ByteList org.jruby.util.ByteList int org.jcodings.Encoding org.jcodings.Encoding org.jcodings.Encoding org.jruby.util.StringSupport$TR int int[] int top int int[] org.jruby.util.StringSupport$TR int org.jcodings.util.IntHash int int int byte[] top top int byte[] int
      StackMap stack:
            iload 21 /* s */
            iload 22 /* send */
            if_icmplt 139
       181: .line 2335
            aload 0 /* self */
            invokeinterface org.jruby.util.CodeRangeable.getByteList:()Lorg/jruby/util/ByteList;
            aload 27 /* buf */
            invokevirtual org.jruby.util.ByteList.setUnsafeBytes:([B)V
       182: .line 2336
            aload 0 /* self */
            invokeinterface org.jruby.util.CodeRangeable.getByteList:()Lorg/jruby/util/ByteList;
            iload 28 /* t */
            invokevirtual org.jruby.util.ByteList.setRealSize:(I)V
        end local 28 // int t
        end local 27 // byte[] buf
        end local 26 // int max
       183: .line 2339
      StackMap locals: org.jruby.util.CodeRangeable org.jruby.util.CodeRangeable org.jruby.util.CodeRangeable int org.jruby.util.ByteList org.jruby.util.ByteList int org.jcodings.Encoding org.jcodings.Encoding org.jcodings.Encoding org.jruby.util.StringSupport$TR int int[] int top int int[] org.jruby.util.StringSupport$TR int org.jcodings.util.IntHash int int int byte[]
      StackMap stack:
            iload 18 /* modify */
            ifeq 187
       184: .line 2340
            iload 6 /* cr */
            bipush 48
            if_icmpeq 185
            aload 0 /* self */
            iload 6 /* cr */
            invokeinterface org.jruby.util.CodeRangeable.setCodeRange:(I)V
       185: .line 2341
      StackMap locals:
      StackMap stack:
            aload 0 /* self */
            aload 9 /* enc */
            invokestatic org.jruby.util.StringSupport.associateEncoding:(Lorg/jruby/util/CodeRangeable;Lorg/jcodings/Encoding;)V
       186: .line 2342
            aload 0 /* self */
            areturn
       187: .line 2344
      StackMap locals:
      StackMap stack:
            aconst_null
            areturn
        end local 23 // byte[] sbytes
        end local 22 // int send
        end local 21 // int s
        end local 20 // boolean singlebyte
        end local 19 // org.jcodings.util.IntHash hash
        end local 18 // boolean modify
        end local 17 // org.jruby.util.StringSupport$TR trRepl
        end local 16 // int[] trans
        end local 15 // int last
        end local 13 // int c
        end local 12 // int[] l
        end local 11 // boolean cflag
        end local 10 // org.jruby.util.StringSupport$TR trSrc
        end local 9 // org.jcodings.Encoding enc
        end local 8 // org.jcodings.Encoding e2
        end local 7 // org.jcodings.Encoding e1
        end local 6 // int cr
        end local 5 // org.jruby.util.ByteList replList
        end local 4 // org.jruby.util.ByteList srcList
        end local 3 // boolean sflag
        end local 2 // org.jruby.util.CodeRangeable replStr
        end local 1 // org.jruby.util.CodeRangeable srcStr
        end local 0 // org.jruby.util.CodeRangeable self
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0  188     0        self  Lorg/jruby/util/CodeRangeable;
            0  188     1      srcStr  Lorg/jruby/util/CodeRangeable;
            0  188     2     replStr  Lorg/jruby/util/CodeRangeable;
            0  188     3       sflag  Z
            1  188     4     srcList  Lorg/jruby/util/ByteList;
            2  188     5    replList  Lorg/jruby/util/ByteList;
            3  188     6          cr  I
            4  188     7          e1  Lorg/jcodings/Encoding;
            5  188     8          e2  Lorg/jcodings/Encoding;
            8  188     9         enc  Lorg/jcodings/Encoding;
            9  188    10       trSrc  Lorg/jruby/util/StringSupport$TR;
           10  188    11       cflag  Z
           11  188    12           l  [I
           29   34    13           c  I
           35   45    13           c  I
           51   59    13           c  I
           60  188    13           c  I
           75  117    14          c0  I
          141  180    14          c0  I
           17  188    15        last  I
           18  188    16       trans  [I
           19  188    17      trRepl  Lorg/jruby/util/StringSupport$TR;
           20  188    18      modify  Z
           21  188    19        hash  Lorg/jcodings/util/IntHash<Ljava/lang/Integer;>;
           22  188    20  singlebyte  Z
           24   28    21           i  I
           39   44    21           i  I
           46   50    21           i  I
           52   59    21           r  I
           65  188    21           s  I
           66  188    22        send  I
           67  188    23      sbytes  [B
           76  117    24        clen  I
           79  117    25        tlen  I
           69  120    26         max  I
           70  120    27        save  I
           71  120    28         buf  [B
           72  120    29           t  I
           74  117    30   mayModify  Z
           85   95    31         tmp  Ljava/lang/Integer;
          142  180    24        clen  I
          145  180    25        tlen  I
          136  183    26         max  I
          137  183    27         buf  [B
          138  183    28           t  I
          140  180    29   mayModify  Z
          150  160    30         tmp  Ljava/lang/Integer;
    MethodParameters:
         Name  Flags
      self     
      srcStr   
      replStr  
      sflag    

  public static org.jruby.util.CodeRangeable trTransHelper(org.jruby.Ruby, org.jruby.util.CodeRangeable, org.jruby.util.CodeRangeable, org.jruby.util.CodeRangeable, boolean);
    descriptor: (Lorg/jruby/Ruby;Lorg/jruby/util/CodeRangeable;Lorg/jruby/util/CodeRangeable;Lorg/jruby/util/CodeRangeable;Z)Lorg/jruby/util/CodeRangeable;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=6, args_size=5
        start local 0 // org.jruby.Ruby runtime
        start local 1 // org.jruby.util.CodeRangeable self
        start local 2 // org.jruby.util.CodeRangeable srcStr
        start local 3 // org.jruby.util.CodeRangeable replStr
        start local 4 // boolean sflag
         0: .line 2349
            aload 1 /* self */
            aload 2 /* srcStr */
            aload 3 /* replStr */
            iload 4 /* sflag */
            invokestatic org.jruby.util.StringSupport.trTransHelper:(Lorg/jruby/util/CodeRangeable;Lorg/jruby/util/CodeRangeable;Lorg/jruby/util/CodeRangeable;Z)Lorg/jruby/util/CodeRangeable;
         1: areturn
         2: .line 2350
      StackMap locals:
      StackMap stack: java.lang.IllegalArgumentException
            astore 5 /* e */
        start local 5 // java.lang.IllegalArgumentException e
         3: .line 2351
            aload 0 /* runtime */
            aload 5 /* e */
            invokevirtual java.lang.IllegalArgumentException.getMessage:()Ljava/lang/String;
            invokevirtual org.jruby.Ruby.newArgumentError:(Ljava/lang/String;)Lorg/jruby/exceptions/RaiseException;
            athrow
        end local 5 // java.lang.IllegalArgumentException e
        end local 4 // boolean sflag
        end local 3 // org.jruby.util.CodeRangeable replStr
        end local 2 // org.jruby.util.CodeRangeable srcStr
        end local 1 // org.jruby.util.CodeRangeable self
        end local 0 // org.jruby.Ruby runtime
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    4     0  runtime  Lorg/jruby/Ruby;
            0    4     1     self  Lorg/jruby/util/CodeRangeable;
            0    4     2   srcStr  Lorg/jruby/util/CodeRangeable;
            0    4     3  replStr  Lorg/jruby/util/CodeRangeable;
            0    4     4    sflag  Z
            3    4     5        e  Ljava/lang/IllegalArgumentException;
      Exception table:
        from    to  target  type
           0     1       2  Class java.lang.IllegalArgumentException
    MethodParameters:
         Name  Flags
      runtime  
      self     
      srcStr   
      replStr  
      sflag    

  private static int trCode(int, int[], org.jcodings.util.IntHash<java.lang.Integer>, boolean, int, );
    descriptor: (I[ILorg/jcodings/util/IntHash;ZIZ)I
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=7, args_size=6
        start local 0 // int c
        start local 1 // int[] trans
        start local 2 // org.jcodings.util.IntHash hash
        start local 3 // boolean cflag
        start local 4 // int last
        start local 5 // boolean set
         0: .line 2356
            iload 0 /* c */
            sipush 256
            if_icmpge 2
         1: .line 2357
            aload 1 /* trans */
            iload 0 /* c */
            iaload
            ireturn
         2: .line 2358
      StackMap locals:
      StackMap stack:
            aload 2 /* hash */
            ifnull 11
         3: .line 2359
            aload 2 /* hash */
            iload 0 /* c */
            invokevirtual org.jcodings.util.IntHash.get:(I)Ljava/lang/Object;
            checkcast java.lang.Integer
            astore 6 /* tmp */
        start local 6 // java.lang.Integer tmp
         4: .line 2360
            aload 6 /* tmp */
            ifnonnull 8
         5: .line 2361
            iload 3 /* cflag */
            ifeq 6
            iload 4 /* last */
            goto 7
      StackMap locals: java.lang.Integer
      StackMap stack:
         6: iconst_m1
      StackMap locals:
      StackMap stack: int
         7: ireturn
         8: .line 2363
      StackMap locals:
      StackMap stack:
            iload 3 /* cflag */
            ifeq 9
            iconst_m1
            goto 10
      StackMap locals:
      StackMap stack:
         9: aload 6 /* tmp */
            invokevirtual java.lang.Integer.intValue:()I
      StackMap locals:
      StackMap stack: int
        10: ireturn
        end local 6 // java.lang.Integer tmp
        11: .line 2366
      StackMap locals:
      StackMap stack:
            iload 3 /* cflag */
            ifeq 12
            iload 5 /* set */
            ifeq 12
            iload 4 /* last */
            goto 13
      StackMap locals:
      StackMap stack:
        12: iconst_m1
      StackMap locals:
      StackMap stack: int
        13: ireturn
        end local 5 // boolean set
        end local 4 // int last
        end local 3 // boolean cflag
        end local 2 // org.jcodings.util.IntHash hash
        end local 1 // int[] trans
        end local 0 // int c
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0   14     0      c  I
            0   14     1  trans  [I
            0   14     2   hash  Lorg/jcodings/util/IntHash<Ljava/lang/Integer;>;
            0   14     3  cflag  Z
            0   14     4   last  I
            0   14     5    set  Z
            4   11     6    tmp  Ljava/lang/Integer;
    Signature: (I[ILorg/jcodings/util/IntHash<Ljava/lang/Integer;>;ZIZ)I
    MethodParameters:
       Name  Flags
      c      
      trans  
      hash   
      cflag  
      last   
      set    

  public static int multiByteCasecmp(org.jcodings.Encoding, org.jruby.util.ByteList, org.jruby.util.ByteList);
    descriptor: (Lorg/jcodings/Encoding;Lorg/jruby/util/ByteList;Lorg/jruby/util/ByteList;)I
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=6, locals=15, args_size=3
        start local 0 // org.jcodings.Encoding enc
        start local 1 // org.jruby.util.ByteList value
        start local 2 // org.jruby.util.ByteList otherValue
         0: .line 2371
            aload 1 /* value */
            invokevirtual org.jruby.util.ByteList.getUnsafeBytes:()[B
            astore 3 /* bytes */
        start local 3 // byte[] bytes
         1: .line 2372
            aload 1 /* value */
            invokevirtual org.jruby.util.ByteList.getBegin:()I
            istore 4 /* p */
        start local 4 // int p
         2: .line 2373
            iload 4 /* p */
            aload 1 /* value */
            invokevirtual org.jruby.util.ByteList.getRealSize:()I
            iadd
            istore 5 /* end */
        start local 5 // int end
         3: .line 2375
            aload 2 /* otherValue */
            invokevirtual org.jruby.util.ByteList.getUnsafeBytes:()[B
            astore 6 /* obytes */
        start local 6 // byte[] obytes
         4: .line 2376
            aload 2 /* otherValue */
            invokevirtual org.jruby.util.ByteList.getBegin:()I
            istore 7 /* op */
        start local 7 // int op
         5: .line 2377
            iload 7 /* op */
            aload 2 /* otherValue */
            invokevirtual org.jruby.util.ByteList.getRealSize:()I
            iadd
            istore 8 /* oend */
        start local 8 // int oend
         6: .line 2379
            goto 39
         7: .line 2381
      StackMap locals: org.jcodings.Encoding org.jruby.util.ByteList org.jruby.util.ByteList byte[] int int byte[] int int
      StackMap stack:
            aload 0 /* enc */
            invokevirtual org.jcodings.Encoding.isAsciiCompatible:()Z
            ifeq 11
         8: .line 2382
            aload 3 /* bytes */
            iload 4 /* p */
            baload
            sipush 255
            iand
            istore 9 /* c */
        start local 9 // int c
         9: .line 2383
            aload 6 /* obytes */
            iload 7 /* op */
            baload
            sipush 255
            iand
            istore 10 /* oc */
        start local 10 // int oc
        10: .line 2384
            goto 13
        end local 10 // int oc
        end local 9 // int c
        11: .line 2385
      StackMap locals:
      StackMap stack:
            aload 0 /* enc */
            aload 3 /* bytes */
            iload 4 /* p */
            iload 5 /* end */
            invokestatic org.jruby.util.StringSupport.preciseCodePoint:(Lorg/jcodings/Encoding;[BII)I
            istore 9 /* c */
        start local 9 // int c
        12: .line 2386
            aload 0 /* enc */
            aload 6 /* obytes */
            iload 7 /* op */
            iload 8 /* oend */
            invokestatic org.jruby.util.StringSupport.preciseCodePoint:(Lorg/jcodings/Encoding;[BII)I
            istore 10 /* oc */
        start local 10 // int oc
        13: .line 2390
      StackMap locals: int int
      StackMap stack:
            iload 9 /* c */
            invokestatic org.jcodings.Encoding.isAscii:(I)Z
            ifeq 26
            iload 10 /* oc */
            invokestatic org.jcodings.Encoding.isAscii:(I)Z
            ifeq 26
        14: .line 2391
            getstatic org.jcodings.ascii.AsciiTables.ToUpperCaseTable:[B
            iload 9 /* c */
            baload
            istore 13 /* dc */
        start local 13 // int dc
        15: .line 2392
            getstatic org.jcodings.ascii.AsciiTables.ToUpperCaseTable:[B
            iload 10 /* oc */
            baload
            istore 14 /* odc */
        start local 14 // int odc
        16: .line 2393
            iload 13 /* dc */
            iload 14 /* odc */
            if_icmpeq 19
            iload 13 /* dc */
            iload 14 /* odc */
            if_icmpge 17
            iconst_m1
            goto 18
      StackMap locals: org.jcodings.Encoding org.jruby.util.ByteList org.jruby.util.ByteList byte[] int int byte[] int int int int top top int int
      StackMap stack:
        17: iconst_1
      StackMap locals:
      StackMap stack: int
        18: ireturn
        19: .line 2395
      StackMap locals:
      StackMap stack:
            aload 0 /* enc */
            invokevirtual org.jcodings.Encoding.isAsciiCompatible:()Z
            ifeq 23
        20: .line 2396
            iconst_1
            dup
            istore 12 /* ocl */
        start local 12 // int ocl
        21: istore 11 /* cl */
        start local 11 // int cl
        22: .line 2397
            goto 37
        end local 12 // int ocl
        end local 11 // int cl
        23: .line 2398
      StackMap locals:
      StackMap stack:
            aload 0 /* enc */
            aload 3 /* bytes */
            iload 4 /* p */
            iload 5 /* end */
            invokestatic org.jruby.util.StringSupport.preciseLength:(Lorg/jcodings/Encoding;[BII)I
            istore 11 /* cl */
        start local 11 // int cl
        24: .line 2399
            aload 0 /* enc */
            aload 6 /* obytes */
            iload 7 /* op */
            iload 8 /* oend */
            invokestatic org.jruby.util.StringSupport.preciseLength:(Lorg/jcodings/Encoding;[BII)I
            istore 12 /* ocl */
        end local 14 // int odc
        end local 13 // int dc
        start local 12 // int ocl
        25: .line 2401
            goto 37
        end local 12 // int ocl
        end local 11 // int cl
        26: .line 2402
      StackMap locals: org.jcodings.Encoding org.jruby.util.ByteList org.jruby.util.ByteList byte[] int int byte[] int int int int
      StackMap stack:
            aload 0 /* enc */
            aload 3 /* bytes */
            iload 4 /* p */
            iload 5 /* end */
            invokestatic org.jruby.util.StringSupport.length:(Lorg/jcodings/Encoding;[BII)I
            istore 11 /* cl */
        start local 11 // int cl
        27: .line 2403
            aload 0 /* enc */
            aload 6 /* obytes */
            iload 7 /* op */
            iload 8 /* oend */
            invokestatic org.jruby.util.StringSupport.length:(Lorg/jcodings/Encoding;[BII)I
            istore 12 /* ocl */
        start local 12 // int ocl
        28: .line 2404
            aload 3 /* bytes */
            iload 4 /* p */
            aload 6 /* obytes */
            iload 7 /* op */
            iload 11 /* cl */
            iload 12 /* ocl */
            if_icmpge 29
            iload 11 /* cl */
            goto 30
      StackMap locals: org.jcodings.Encoding org.jruby.util.ByteList org.jruby.util.ByteList byte[] int int byte[] int int int int int int
      StackMap stack: byte[] int byte[] int
        29: iload 12 /* ocl */
      StackMap locals: org.jcodings.Encoding org.jruby.util.ByteList org.jruby.util.ByteList byte[] int int byte[] int int int int int int
      StackMap stack: byte[] int byte[] int int
        30: invokestatic org.jruby.util.StringSupport.caseCmp:([BI[BII)I
            istore 13 /* ret */
        start local 13 // int ret
        31: .line 2405
            iload 13 /* ret */
            ifeq 34
            iload 13 /* ret */
            ifge 32
            iconst_m1
            goto 33
      StackMap locals: int
      StackMap stack:
        32: iconst_1
      StackMap locals:
      StackMap stack: int
        33: ireturn
        34: .line 2406
      StackMap locals:
      StackMap stack:
            iload 11 /* cl */
            iload 12 /* ocl */
            if_icmpeq 37
            iload 11 /* cl */
            iload 12 /* ocl */
            if_icmpge 35
            iconst_m1
            goto 36
      StackMap locals:
      StackMap stack:
        35: iconst_1
      StackMap locals:
      StackMap stack: int
        36: ireturn
        end local 13 // int ret
        37: .line 2409
      StackMap locals:
      StackMap stack:
            iload 4 /* p */
            iload 11 /* cl */
            iadd
            istore 4 /* p */
        38: .line 2410
            iload 7 /* op */
            iload 12 /* ocl */
            iadd
            istore 7 /* op */
        end local 12 // int ocl
        end local 11 // int cl
        end local 10 // int oc
        end local 9 // int c
        39: .line 2379
      StackMap locals: org.jcodings.Encoding org.jruby.util.ByteList org.jruby.util.ByteList byte[] int int byte[] int int
      StackMap stack:
            iload 4 /* p */
            iload 5 /* end */
            if_icmpge 40
            iload 7 /* op */
            iload 8 /* oend */
            if_icmplt 7
        40: .line 2412
      StackMap locals:
      StackMap stack:
            iload 5 /* end */
            iload 4 /* p */
            isub
            iload 8 /* oend */
            iload 7 /* op */
            isub
            if_icmpne 41
            iconst_0
            ireturn
        41: .line 2413
      StackMap locals:
      StackMap stack:
            iload 5 /* end */
            iload 4 /* p */
            isub
            iload 8 /* oend */
            iload 7 /* op */
            isub
            if_icmple 42
            iconst_1
            goto 43
      StackMap locals:
      StackMap stack:
        42: iconst_m1
      StackMap locals:
      StackMap stack: int
        43: ireturn
        end local 8 // int oend
        end local 7 // int op
        end local 6 // byte[] obytes
        end local 5 // int end
        end local 4 // int p
        end local 3 // byte[] bytes
        end local 2 // org.jruby.util.ByteList otherValue
        end local 1 // org.jruby.util.ByteList value
        end local 0 // org.jcodings.Encoding enc
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   44     0         enc  Lorg/jcodings/Encoding;
            0   44     1       value  Lorg/jruby/util/ByteList;
            0   44     2  otherValue  Lorg/jruby/util/ByteList;
            1   44     3       bytes  [B
            2   44     4           p  I
            3   44     5         end  I
            4   44     6      obytes  [B
            5   44     7          op  I
            6   44     8        oend  I
            9   11     9           c  I
           12   39     9           c  I
           10   11    10          oc  I
           13   39    10          oc  I
           22   23    11          cl  I
           24   26    11          cl  I
           27   39    11          cl  I
           21   23    12         ocl  I
           25   26    12         ocl  I
           28   39    12         ocl  I
           15   25    13          dc  I
           16   25    14         odc  I
           31   37    13         ret  I
    MethodParameters:
            Name  Flags
      enc         
      value       
      otherValue  

  public static boolean singleByteSqueeze(org.jruby.util.ByteList, boolean[]);
    descriptor: (Lorg/jruby/util/ByteList;[Z)Z
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=8, args_size=2
        start local 0 // org.jruby.util.ByteList value
        start local 1 // boolean[] squeeze
         0: .line 2417
            aload 0 /* value */
            invokevirtual org.jruby.util.ByteList.getBegin:()I
            istore 2 /* s */
        start local 2 // int s
         1: .line 2418
            iload 2 /* s */
            istore 3 /* t */
        start local 3 // int t
         2: .line 2419
            iload 2 /* s */
            aload 0 /* value */
            invokevirtual org.jruby.util.ByteList.getRealSize:()I
            iadd
            istore 4 /* send */
        start local 4 // int send
         3: .line 2420
            aload 0 /* value */
            invokevirtual org.jruby.util.ByteList.getUnsafeBytes:()[B
            astore 5 /* bytes */
        start local 5 // byte[] bytes
         4: .line 2421
            iconst_m1
            istore 6 /* save */
        start local 6 // int save
         5: .line 2423
            goto 9
         6: .line 2424
      StackMap locals: org.jruby.util.ByteList boolean[] int int int byte[] int
      StackMap stack:
            aload 5 /* bytes */
            iload 2 /* s */
            iinc 2 /* s */ 1
            baload
            sipush 255
            iand
            istore 7 /* c */
        start local 7 // int c
         7: .line 2425
            iload 7 /* c */
            iload 6 /* save */
            if_icmpne 8
            aload 1 /* squeeze */
            iload 7 /* c */
            baload
            ifne 9
      StackMap locals: int
      StackMap stack:
         8: aload 5 /* bytes */
            iload 3 /* t */
            iinc 3 /* t */ 1
            iload 7 /* c */
            dup
            istore 6 /* save */
            i2b
            bastore
        end local 7 // int c
         9: .line 2423
      StackMap locals:
      StackMap stack:
            iload 2 /* s */
            iload 4 /* send */
            if_icmplt 6
        10: .line 2428
            iload 3 /* t */
            aload 0 /* value */
            invokevirtual org.jruby.util.ByteList.getBegin:()I
            isub
            aload 0 /* value */
            invokevirtual org.jruby.util.ByteList.getRealSize:()I
            if_icmpeq 13
        11: .line 2429
            aload 0 /* value */
            iload 3 /* t */
            aload 0 /* value */
            invokevirtual org.jruby.util.ByteList.getBegin:()I
            isub
            invokevirtual org.jruby.util.ByteList.setRealSize:(I)V
        12: .line 2430
            iconst_1
            ireturn
        13: .line 2433
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
        end local 6 // int save
        end local 5 // byte[] bytes
        end local 4 // int send
        end local 3 // int t
        end local 2 // int s
        end local 1 // boolean[] squeeze
        end local 0 // org.jruby.util.ByteList value
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   14     0    value  Lorg/jruby/util/ByteList;
            0   14     1  squeeze  [Z
            1   14     2        s  I
            2   14     3        t  I
            3   14     4     send  I
            4   14     5    bytes  [B
            5   14     6     save  I
            7    9     7        c  I
    MethodParameters:
         Name  Flags
      value    
      squeeze  

  public static boolean multiByteSqueeze(org.jruby.util.ByteList, boolean[], org.jruby.util.StringSupport$TrTables, org.jcodings.Encoding, boolean);
    descriptor: (Lorg/jruby/util/ByteList;[ZLorg/jruby/util/StringSupport$TrTables;Lorg/jcodings/Encoding;Z)Z
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=12, args_size=5
        start local 0 // org.jruby.util.ByteList value
        start local 1 // boolean[] squeeze
        start local 2 // org.jruby.util.StringSupport$TrTables tables
        start local 3 // org.jcodings.Encoding enc
        start local 4 // boolean isArg
         0: .line 2437
            aload 0 /* value */
            invokevirtual org.jruby.util.ByteList.getBegin:()I
            istore 5 /* s */
        start local 5 // int s
         1: .line 2438
            iload 5 /* s */
            istore 6 /* t */
        start local 6 // int t
         2: .line 2439
            iload 5 /* s */
            aload 0 /* value */
            invokevirtual org.jruby.util.ByteList.getRealSize:()I
            iadd
            istore 7 /* send */
        start local 7 // int send
         3: .line 2440
            aload 0 /* value */
            invokevirtual org.jruby.util.ByteList.getUnsafeBytes:()[B
            astore 8 /* bytes */
        start local 8 // byte[] bytes
         4: .line 2441
            iconst_m1
            istore 9 /* save */
        start local 9 // int save
         5: .line 2444
            goto 19
         6: .line 2445
      StackMap locals: org.jruby.util.ByteList boolean[] org.jruby.util.StringSupport$TrTables org.jcodings.Encoding int int int int byte[] int
      StackMap stack:
            aload 3 /* enc */
            invokevirtual org.jcodings.Encoding.isAsciiCompatible:()Z
            ifeq 12
            aload 8 /* bytes */
            iload 5 /* s */
            baload
            sipush 255
            iand
            dup
            istore 10 /* c */
        start local 10 // int c
         7: sipush 128
            if_icmpge 12
         8: .line 2446
            iload 10 /* c */
            iload 9 /* save */
            if_icmpne 9
            iload 4 /* isArg */
            ifeq 10
            aload 1 /* squeeze */
            iload 10 /* c */
            baload
            ifne 10
      StackMap locals: int
      StackMap stack:
         9: aload 8 /* bytes */
            iload 6 /* t */
            iinc 6 /* t */ 1
            iload 10 /* c */
            dup
            istore 9 /* save */
            i2b
            bastore
        10: .line 2447
      StackMap locals:
      StackMap stack:
            iinc 5 /* s */ 1
        11: .line 2448
            goto 19
        end local 10 // int c
        12: .line 2449
      StackMap locals:
      StackMap stack:
            aload 3 /* enc */
            aload 8 /* bytes */
            iload 5 /* s */
            iload 7 /* send */
            invokestatic org.jruby.util.StringSupport.codePoint:(Lorg/jcodings/Encoding;[BII)I
            istore 10 /* c */
        start local 10 // int c
        13: .line 2450
            aload 3 /* enc */
            iload 10 /* c */
            invokestatic org.jruby.util.StringSupport.codeLength:(Lorg/jcodings/Encoding;I)I
            istore 11 /* cl */
        start local 11 // int cl
        14: .line 2451
            iload 10 /* c */
            iload 9 /* save */
            if_icmpne 15
            iload 4 /* isArg */
            ifeq 18
            iload 10 /* c */
            aload 1 /* squeeze */
            aload 2 /* tables */
            invokestatic org.jruby.util.StringSupport.trFind:(I[ZLorg/jruby/util/StringSupport$TrTables;)Z
            ifne 18
        15: .line 2452
      StackMap locals: int int
      StackMap stack:
            iload 6 /* t */
            iload 5 /* s */
            if_icmpeq 16
            aload 3 /* enc */
            iload 10 /* c */
            aload 8 /* bytes */
            iload 6 /* t */
            invokevirtual org.jcodings.Encoding.codeToMbc:(I[BI)I
            pop
        16: .line 2453
      StackMap locals:
      StackMap stack:
            iload 10 /* c */
            istore 9 /* save */
        17: .line 2454
            iload 6 /* t */
            iload 11 /* cl */
            iadd
            istore 6 /* t */
        18: .line 2456
      StackMap locals:
      StackMap stack:
            iload 5 /* s */
            iload 11 /* cl */
            iadd
            istore 5 /* s */
        end local 11 // int cl
        end local 10 // int c
        19: .line 2444
      StackMap locals:
      StackMap stack:
            iload 5 /* s */
            iload 7 /* send */
            if_icmplt 6
        20: .line 2460
            iload 6 /* t */
            aload 0 /* value */
            invokevirtual org.jruby.util.ByteList.getBegin:()I
            isub
            aload 0 /* value */
            invokevirtual org.jruby.util.ByteList.getRealSize:()I
            if_icmpeq 23
        21: .line 2461
            aload 0 /* value */
            iload 6 /* t */
            aload 0 /* value */
            invokevirtual org.jruby.util.ByteList.getBegin:()I
            isub
            invokevirtual org.jruby.util.ByteList.setRealSize:(I)V
        22: .line 2462
            iconst_1
            ireturn
        23: .line 2465
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
        end local 9 // int save
        end local 8 // byte[] bytes
        end local 7 // int send
        end local 6 // int t
        end local 5 // int s
        end local 4 // boolean isArg
        end local 3 // org.jcodings.Encoding enc
        end local 2 // org.jruby.util.StringSupport$TrTables tables
        end local 1 // boolean[] squeeze
        end local 0 // org.jruby.util.ByteList value
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   24     0    value  Lorg/jruby/util/ByteList;
            0   24     1  squeeze  [Z
            0   24     2   tables  Lorg/jruby/util/StringSupport$TrTables;
            0   24     3      enc  Lorg/jcodings/Encoding;
            0   24     4    isArg  Z
            1   24     5        s  I
            2   24     6        t  I
            3   24     7     send  I
            4   24     8    bytes  [B
            5   24     9     save  I
            7   12    10        c  I
           13   19    10        c  I
           14   19    11       cl  I
    MethodParameters:
         Name  Flags
      value    
      squeeze  
      tables   
      enc      
      isArg    

  public static boolean multiByteSqueeze(org.jruby.Ruby, org.jruby.util.ByteList, boolean[], org.jruby.util.StringSupport$TrTables, org.jcodings.Encoding, boolean);
    descriptor: (Lorg/jruby/Ruby;Lorg/jruby/util/ByteList;[ZLorg/jruby/util/StringSupport$TrTables;Lorg/jcodings/Encoding;Z)Z
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=5, locals=7, args_size=6
        start local 0 // org.jruby.Ruby runtime
        start local 1 // org.jruby.util.ByteList value
        start local 2 // boolean[] squeeze
        start local 3 // org.jruby.util.StringSupport$TrTables tables
        start local 4 // org.jcodings.Encoding enc
        start local 5 // boolean isArg
         0: .line 2470
            aload 1 /* value */
            aload 2 /* squeeze */
            aload 3 /* tables */
            aload 4 /* enc */
            iload 5 /* isArg */
            invokestatic org.jruby.util.StringSupport.multiByteSqueeze:(Lorg/jruby/util/ByteList;[ZLorg/jruby/util/StringSupport$TrTables;Lorg/jcodings/Encoding;Z)Z
         1: ireturn
         2: .line 2471
      StackMap locals:
      StackMap stack: java.lang.IllegalArgumentException
            astore 6 /* e */
        start local 6 // java.lang.IllegalArgumentException e
         3: .line 2472
            aload 0 /* runtime */
            aload 6 /* e */
            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 e
        end local 5 // boolean isArg
        end local 4 // org.jcodings.Encoding enc
        end local 3 // org.jruby.util.StringSupport$TrTables tables
        end local 2 // boolean[] squeeze
        end local 1 // org.jruby.util.ByteList value
        end local 0 // org.jruby.Ruby runtime
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    4     0  runtime  Lorg/jruby/Ruby;
            0    4     1    value  Lorg/jruby/util/ByteList;
            0    4     2  squeeze  [Z
            0    4     3   tables  Lorg/jruby/util/StringSupport$TrTables;
            0    4     4      enc  Lorg/jcodings/Encoding;
            0    4     5    isArg  Z
            3    4     6        e  Ljava/lang/IllegalArgumentException;
      Exception table:
        from    to  target  type
           0     1       2  Class java.lang.IllegalArgumentException
    MethodParameters:
         Name  Flags
      runtime  
      value    
      squeeze  
      tables   
      enc      
      isArg    

  private static int rb_memsearch_ss(byte[], int, int, byte[], int, int);
    descriptor: ([BII[BII)I
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=6, locals=7, args_size=6
        start local 0 // byte[] xsBytes
        start local 1 // int xs
        start local 2 // int m
        start local 3 // byte[] ysBytes
        start local 4 // int ys
        start local 5 // int n
         0: .line 2479
            aload 3 /* ysBytes */
            iload 4 /* ys */
            iload 5 /* n */
            aload 0 /* xsBytes */
            iload 1 /* xs */
            iload 2 /* m */
            invokestatic org.jruby.util.StringSupport.memmem:([BII[BII)I
            dup
            istore 6 /* y */
        start local 6 // int y
         1: iconst_m1
            if_icmpeq 3
         2: .line 2480
            iload 6 /* y */
            iload 4 /* ys */
            isub
            ireturn
         3: .line 2482
      StackMap locals: int
      StackMap stack:
            iconst_m1
            ireturn
        end local 6 // int y
        end local 5 // int n
        end local 4 // int ys
        end local 3 // byte[] ysBytes
        end local 2 // int m
        end local 1 // int xs
        end local 0 // byte[] xsBytes
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    4     0  xsBytes  [B
            0    4     1       xs  I
            0    4     2        m  I
            0    4     3  ysBytes  [B
            0    4     4       ys  I
            0    4     5        n  I
            1    4     6        y  I
    MethodParameters:
         Name  Flags
      xsBytes  
      xs       
      m        
      ysBytes  
      ys       
      n        

  public static int memmem(byte[], int, int, byte[], int, int);
    descriptor: ([BII[BII)I
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=9, args_size=6
        start local 0 // byte[] aBytes
        start local 1 // int aStart
        start local 2 // int aLen
        start local 3 // byte[] p
        start local 4 // int pStart
        start local 5 // int pLen
         0: .line 2487
            aload 3 /* p */
            iload 4 /* pStart */
            iload 5 /* pLen */
            invokestatic org.jruby.util.StringSupport.failure:([BII)[I
            astore 6 /* f */
        start local 6 // int[] f
         1: .line 2489
            iconst_0
            istore 7 /* j */
        start local 7 // int j
         2: .line 2491
            iconst_0
            istore 8 /* i */
        start local 8 // int i
         3: goto 9
         4: .line 2492
      StackMap locals: int[] int int
      StackMap stack:
            aload 6 /* f */
            iload 7 /* j */
            iconst_1
            isub
            iaload
            istore 7 /* j */
      StackMap locals:
      StackMap stack:
         5: iload 7 /* j */
            ifle 6
            aload 3 /* p */
            iload 4 /* pStart */
            iload 7 /* j */
            iadd
            baload
            aload 0 /* aBytes */
            iload 1 /* aStart */
            iload 8 /* i */
            iadd
            baload
            if_icmpne 4
         6: .line 2494
      StackMap locals:
      StackMap stack:
            aload 3 /* p */
            iload 4 /* pStart */
            iload 7 /* j */
            iadd
            baload
            aload 0 /* aBytes */
            iload 1 /* aStart */
            iload 8 /* i */
            iadd
            baload
            if_icmpne 7
            iinc 7 /* j */ 1
         7: .line 2496
      StackMap locals:
      StackMap stack:
            iload 7 /* j */
            iload 5 /* pLen */
            if_icmpne 8
            iload 1 /* aStart */
            iload 8 /* i */
            iadd
            iload 5 /* pLen */
            isub
            iconst_1
            iadd
            ireturn
         8: .line 2491
      StackMap locals:
      StackMap stack:
            iinc 8 /* i */ 1
      StackMap locals:
      StackMap stack:
         9: iload 8 /* i */
            iload 2 /* aLen */
            if_icmplt 5
        end local 8 // int i
        10: .line 2498
            iconst_m1
            ireturn
        end local 7 // int j
        end local 6 // int[] f
        end local 5 // int pLen
        end local 4 // int pStart
        end local 3 // byte[] p
        end local 2 // int aLen
        end local 1 // int aStart
        end local 0 // byte[] aBytes
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   11     0  aBytes  [B
            0   11     1  aStart  I
            0   11     2    aLen  I
            0   11     3       p  [B
            0   11     4  pStart  I
            0   11     5    pLen  I
            1   11     6       f  [I
            2   11     7       j  I
            3   10     8       i  I
    MethodParameters:
        Name  Flags
      aBytes  
      aStart  
      aLen    
      p       
      pStart  
      pLen    

  private static int[] failure(byte[], int, int);
    descriptor: ([BII)[I
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=4, locals=6, args_size=3
        start local 0 // byte[] p
        start local 1 // int pStart
        start local 2 // int pLen
         0: .line 2502
            iload 2 /* pLen */
            newarray 10
            astore 3 /* f */
        start local 3 // int[] f
         1: .line 2504
            iconst_0
            istore 4 /* j */
        start local 4 // int j
         2: .line 2505
            iconst_1
            istore 5 /* i */
        start local 5 // int i
         3: goto 9
         4: .line 2506
      StackMap locals: int[] int int
      StackMap stack:
            aload 3 /* f */
            iload 4 /* j */
            iconst_1
            isub
            iaload
            istore 4 /* j */
      StackMap locals:
      StackMap stack:
         5: iload 4 /* j */
            ifle 6
            aload 0 /* p */
            iload 1 /* pStart */
            iload 4 /* j */
            iadd
            baload
            aload 0 /* p */
            iload 1 /* pStart */
            iload 5 /* i */
            iadd
            baload
            if_icmpne 4
         6: .line 2508
      StackMap locals:
      StackMap stack:
            aload 0 /* p */
            iload 1 /* pStart */
            iload 4 /* j */
            iadd
            baload
            aload 0 /* p */
            iload 1 /* pStart */
            iload 5 /* i */
            iadd
            baload
            if_icmpne 7
            iinc 4 /* j */ 1
         7: .line 2510
      StackMap locals:
      StackMap stack:
            aload 3 /* f */
            iload 5 /* i */
            iload 4 /* j */
            iastore
         8: .line 2505
            iinc 5 /* i */ 1
      StackMap locals:
      StackMap stack:
         9: iload 5 /* i */
            iload 2 /* pLen */
            if_icmplt 5
        end local 5 // int i
        10: .line 2513
            aload 3 /* f */
            areturn
        end local 4 // int j
        end local 3 // int[] f
        end local 2 // int pLen
        end local 1 // int pStart
        end local 0 // byte[] p
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   11     0       p  [B
            0   11     1  pStart  I
            0   11     2    pLen  I
            1   11     3       f  [I
            2   11     4       j  I
            3   10     5       i  I
    MethodParameters:
        Name  Flags
      p       
      pStart  
      pLen    

  private static int rb_memsearch_qs(byte[], int, int, byte[], int, int);
    descriptor: ([BII[BII)I
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=5, locals=10, args_size=6
        start local 0 // byte[] xsBytes
        start local 1 // int xs
        start local 2 // int m
        start local 3 // byte[] ysBytes
        start local 4 // int ys
        start local 5 // int n
         0: .line 2517
            iload 1 /* xs */
            istore 6 /* x */
        start local 6 // int x
         1: iload 1 /* xs */
            iload 2 /* m */
            iadd
            istore 7 /* xe */
        start local 7 // int xe
         2: .line 2518
            iload 4 /* ys */
            istore 8 /* y */
        start local 8 // int y
         3: .line 2519
            sipush 256
            newarray 10
            astore 9 /* qstable */
        start local 9 // int[] qstable
         4: .line 2522
            aload 9 /* qstable */
            iload 2 /* m */
            iconst_1
            iadd
            invokestatic java.util.Arrays.fill:([II)V
         5: .line 2523
            goto 8
         6: .line 2524
      StackMap locals: byte[] int int byte[] int int int int int int[]
      StackMap stack:
            aload 9 /* qstable */
            aload 0 /* xsBytes */
            iload 6 /* x */
            baload
            sipush 255
            iand
            iload 7 /* xe */
            iload 6 /* x */
            isub
            iastore
         7: .line 2523
            iinc 6 /* x */ 1
      StackMap locals:
      StackMap stack:
         8: iload 6 /* x */
            iload 7 /* xe */
            if_icmplt 6
         9: .line 2526
            goto 13
        10: .line 2527
      StackMap locals:
      StackMap stack:
            aload 0 /* xsBytes */
            iload 1 /* xs */
            baload
            aload 3 /* ysBytes */
            iload 8 /* y */
            baload
            if_icmpne 12
            aload 0 /* xsBytes */
            iload 1 /* xs */
            aload 3 /* ysBytes */
            iload 8 /* y */
            iload 2 /* m */
            invokestatic org.jruby.util.ByteList.memcmp:([BI[BII)I
            ifne 12
        11: .line 2528
            iload 8 /* y */
            iload 4 /* ys */
            isub
            ireturn
        12: .line 2526
      StackMap locals:
      StackMap stack:
            iload 8 /* y */
            aload 9 /* qstable */
            aload 3 /* ysBytes */
            iload 8 /* y */
            iload 2 /* m */
            iadd
            baload
            sipush 255
            iand
            iaload
            iadd
            istore 8 /* y */
      StackMap locals:
      StackMap stack:
        13: iload 8 /* y */
            iload 2 /* m */
            iadd
            iload 4 /* ys */
            iload 5 /* n */
            iadd
            if_icmple 10
        14: .line 2530
            iconst_m1
            ireturn
        end local 9 // int[] qstable
        end local 8 // int y
        end local 7 // int xe
        end local 6 // int x
        end local 5 // int n
        end local 4 // int ys
        end local 3 // byte[] ysBytes
        end local 2 // int m
        end local 1 // int xs
        end local 0 // byte[] xsBytes
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   15     0  xsBytes  [B
            0   15     1       xs  I
            0   15     2        m  I
            0   15     3  ysBytes  [B
            0   15     4       ys  I
            0   15     5        n  I
            1   15     6        x  I
            2   15     7       xe  I
            3   15     8        y  I
            4   15     9  qstable  [I
    MethodParameters:
         Name  Flags
      xsBytes  
      xs       
      m        
      ysBytes  
      ys       
      n        

  private static int rb_memsearch_qs_utf8_hash(byte[], int);
    descriptor: ([BI)I
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=4, locals=3, args_size=2
        start local 0 // byte[] xBytes
        start local 1 // int x
         0: .line 2536
            iload 1 /* x */
            aload 0 /* xBytes */
            arraylength
            if_icmpeq 3
         1: .line 2537
            aload 0 /* xBytes */
            iload 1 /* x */
            baload
            sipush 255
            iand
            istore 2 /* h */
        start local 2 // int h
         2: .line 2538
            goto 4
        end local 2 // int h
         3: .line 2540
      StackMap locals:
      StackMap stack:
            iconst_0
            istore 2 /* h */
        start local 2 // int h
         4: .line 2542
      StackMap locals: int
      StackMap stack:
            iload 2 /* h */
            sipush 192
            if_icmpge 6
         5: .line 2543
            iload 2 /* h */
            sipush 256
            iadd
            ireturn
         6: .line 2545
      StackMap locals:
      StackMap stack:
            iload 2 /* h */
            sipush 224
            if_icmpge 10
         7: .line 2546
            iload 2 /* h */
            sipush 8353
            imul
            istore 2 /* h */
         8: .line 2547
            iload 2 /* h */
            aload 0 /* xBytes */
            iload 1 /* x */
            iconst_1
            iadd
            baload
            sipush 255
            iand
            iadd
            istore 2 /* h */
         9: .line 2548
            goto 25
        10: .line 2549
      StackMap locals:
      StackMap stack:
            iload 2 /* h */
            sipush 240
            if_icmpge 16
        11: .line 2550
            iload 2 /* h */
            sipush 8353
            imul
            istore 2 /* h */
        12: .line 2551
            iload 2 /* h */
            aload 0 /* xBytes */
            iload 1 /* x */
            iconst_1
            iadd
            baload
            sipush 255
            iand
            iadd
            istore 2 /* h */
        13: .line 2552
            iload 2 /* h */
            sipush 8353
            imul
            istore 2 /* h */
        14: .line 2553
            iload 2 /* h */
            aload 0 /* xBytes */
            iload 1 /* x */
            iconst_2
            iadd
            baload
            sipush 255
            iand
            iadd
            istore 2 /* h */
        15: .line 2555
            goto 25
        16: .line 2556
      StackMap locals:
      StackMap stack:
            iload 2 /* h */
            sipush 245
            if_icmpge 24
        17: .line 2557
            iload 2 /* h */
            sipush 8353
            imul
            istore 2 /* h */
        18: .line 2558
            iload 2 /* h */
            aload 0 /* xBytes */
            iload 1 /* x */
            iconst_1
            iadd
            baload
            sipush 255
            iand
            iadd
            istore 2 /* h */
        19: .line 2559
            iload 2 /* h */
            sipush 8353
            imul
            istore 2 /* h */
        20: .line 2560
            iload 2 /* h */
            aload 0 /* xBytes */
            iload 1 /* x */
            iconst_2
            iadd
            baload
            sipush 255
            iand
            iadd
            istore 2 /* h */
        21: .line 2561
            iload 2 /* h */
            sipush 8353
            imul
            istore 2 /* h */
        22: .line 2562
            iload 2 /* h */
            aload 0 /* xBytes */
            iload 1 /* x */
            iconst_3
            iadd
            baload
            sipush 255
            iand
            iadd
            istore 2 /* h */
        23: .line 2563
            goto 25
        24: .line 2565
      StackMap locals:
      StackMap stack:
            iload 2 /* h */
            sipush 256
            iadd
            ireturn
        25: .line 2567
      StackMap locals:
      StackMap stack:
            iload 2 /* h */
            i2b
            sipush 255
            iand
            ireturn
        end local 2 // int h
        end local 1 // int x
        end local 0 // byte[] xBytes
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   26     0  xBytes  [B
            0   26     1       x  I
            2    3     2       h  I
            4   26     2       h  I
    MethodParameters:
        Name  Flags
      xBytes  
      x       final

  private static int rb_memsearch_qs_utf8(byte[], int, int, byte[], int, int);
    descriptor: ([BII[BII)I
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=5, locals=10, args_size=6
        start local 0 // byte[] xsBytes
        start local 1 // int xs
        start local 2 // int m
        start local 3 // byte[] ysBytes
        start local 4 // int ys
        start local 5 // int n
         0: .line 2571
            iload 1 /* xs */
            istore 6 /* x */
        start local 6 // int x
         1: iload 1 /* xs */
            iload 2 /* m */
            iadd
            istore 7 /* xe */
        start local 7 // int xe
         2: .line 2572
            iload 4 /* ys */
            istore 8 /* y */
        start local 8 // int y
         3: .line 2573
            sipush 512
            newarray 10
            astore 9 /* qstable */
        start local 9 // int[] qstable
         4: .line 2576
            aload 9 /* qstable */
            iload 2 /* m */
            iconst_1
            iadd
            invokestatic java.util.Arrays.fill:([II)V
         5: .line 2577
            goto 8
         6: .line 2578
      StackMap locals: byte[] int int byte[] int int int int int int[]
      StackMap stack:
            aload 9 /* qstable */
            aload 0 /* xsBytes */
            iload 6 /* x */
            invokestatic org.jruby.util.StringSupport.rb_memsearch_qs_utf8_hash:([BI)I
            iload 7 /* xe */
            iload 6 /* x */
            isub
            iastore
         7: .line 2577
            iinc 6 /* x */ 1
      StackMap locals:
      StackMap stack:
         8: iload 6 /* x */
            iload 7 /* xe */
            if_icmplt 6
         9: .line 2581
            goto 13
        10: .line 2582
      StackMap locals:
      StackMap stack:
            aload 0 /* xsBytes */
            iload 1 /* xs */
            baload
            aload 3 /* ysBytes */
            iload 8 /* y */
            baload
            if_icmpne 12
            aload 0 /* xsBytes */
            iload 1 /* xs */
            aload 3 /* ysBytes */
            iload 8 /* y */
            iload 2 /* m */
            invokestatic org.jruby.util.ByteList.memcmp:([BI[BII)I
            ifne 12
        11: .line 2583
            iload 8 /* y */
            iload 4 /* ys */
            isub
            ireturn
        12: .line 2581
      StackMap locals:
      StackMap stack:
            iload 8 /* y */
            aload 9 /* qstable */
            aload 3 /* ysBytes */
            iload 8 /* y */
            iload 2 /* m */
            iadd
            invokestatic org.jruby.util.StringSupport.rb_memsearch_qs_utf8_hash:([BI)I
            iaload
            iadd
            istore 8 /* y */
      StackMap locals:
      StackMap stack:
        13: iload 8 /* y */
            iload 2 /* m */
            iadd
            iload 4 /* ys */
            iload 5 /* n */
            iadd
            if_icmple 10
        14: .line 2585
            iconst_m1
            ireturn
        end local 9 // int[] qstable
        end local 8 // int y
        end local 7 // int xe
        end local 6 // int x
        end local 5 // int n
        end local 4 // int ys
        end local 3 // byte[] ysBytes
        end local 2 // int m
        end local 1 // int xs
        end local 0 // byte[] xsBytes
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   15     0  xsBytes  [B
            0   15     1       xs  I
            0   15     2        m  I
            0   15     3  ysBytes  [B
            0   15     4       ys  I
            0   15     5        n  I
            1   15     6        x  I
            2   15     7       xe  I
            3   15     8        y  I
            4   15     9  qstable  [I
    MethodParameters:
         Name  Flags
      xsBytes  
      xs       
      m        
      ysBytes  
      ys       
      n        

  public static int checkCaseMapOptions(org.jruby.Ruby, org.jruby.runtime.builtin.IRubyObject, org.jruby.runtime.builtin.IRubyObject, int);
    descriptor: (Lorg/jruby/Ruby;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;I)I
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=6, args_size=4
        start local 0 // org.jruby.Ruby runtime
        start local 1 // org.jruby.runtime.builtin.IRubyObject arg0
        start local 2 // org.jruby.runtime.builtin.IRubyObject arg1
        start local 3 // int flags
         0: .line 2589
            aload 0 /* runtime */
            ldc "turkic"
            invokevirtual org.jruby.Ruby.newSymbol:(Ljava/lang/String;)Lorg/jruby/RubySymbol;
            astore 4 /* turkic */
        start local 4 // org.jruby.RubySymbol turkic
         1: .line 2590
            aload 0 /* runtime */
            ldc "lithuanian"
            invokevirtual org.jruby.Ruby.newSymbol:(Ljava/lang/String;)Lorg/jruby/RubySymbol;
            astore 5 /* lithuanian */
        start local 5 // org.jruby.RubySymbol lithuanian
         2: .line 2592
            aload 1 /* arg0 */
            aload 4 /* turkic */
            invokevirtual java.lang.Object.equals:(Ljava/lang/Object;)Z
            ifeq 8
         3: .line 2593
            iload 3 /* flags */
            ldc 1048576
            ior
            istore 3 /* flags */
         4: .line 2594
            aload 2 /* arg1 */
            aload 5 /* lithuanian */
            invokevirtual java.lang.Object.equals:(Ljava/lang/Object;)Z
            ifeq 7
         5: .line 2595
            iload 3 /* flags */
            ldc 2097152
            ior
            istore 3 /* flags */
         6: .line 2596
            goto 15
         7: .line 2597
      StackMap locals: org.jruby.RubySymbol org.jruby.RubySymbol
      StackMap stack:
            aload 0 /* runtime */
            ldc "invalid second option"
            invokevirtual org.jruby.Ruby.newArgumentError:(Ljava/lang/String;)Lorg/jruby/exceptions/RaiseException;
            athrow
         8: .line 2599
      StackMap locals:
      StackMap stack:
            aload 1 /* arg0 */
            aload 5 /* lithuanian */
            invokevirtual java.lang.Object.equals:(Ljava/lang/Object;)Z
            ifeq 14
         9: .line 2600
            iload 3 /* flags */
            ldc 2097152
            ior
            istore 3 /* flags */
        10: .line 2601
            aload 2 /* arg1 */
            aload 4 /* turkic */
            invokevirtual java.lang.Object.equals:(Ljava/lang/Object;)Z
            ifeq 13
        11: .line 2602
            iload 3 /* flags */
            ldc 1048576
            ior
            istore 3 /* flags */
        12: .line 2603
            goto 15
        13: .line 2604
      StackMap locals:
      StackMap stack:
            aload 0 /* runtime */
            ldc "invalid second option"
            invokevirtual org.jruby.Ruby.newArgumentError:(Ljava/lang/String;)Lorg/jruby/exceptions/RaiseException;
            athrow
        14: .line 2607
      StackMap locals:
      StackMap stack:
            aload 0 /* runtime */
            ldc "invalid option"
            invokevirtual org.jruby.Ruby.newArgumentError:(Ljava/lang/String;)Lorg/jruby/exceptions/RaiseException;
            athrow
        15: .line 2609
      StackMap locals:
      StackMap stack:
            iload 3 /* flags */
            ireturn
        end local 5 // org.jruby.RubySymbol lithuanian
        end local 4 // org.jruby.RubySymbol turkic
        end local 3 // int flags
        end local 2 // org.jruby.runtime.builtin.IRubyObject arg1
        end local 1 // org.jruby.runtime.builtin.IRubyObject arg0
        end local 0 // org.jruby.Ruby runtime
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   16     0     runtime  Lorg/jruby/Ruby;
            0   16     1        arg0  Lorg/jruby/runtime/builtin/IRubyObject;
            0   16     2        arg1  Lorg/jruby/runtime/builtin/IRubyObject;
            0   16     3       flags  I
            1   16     4      turkic  Lorg/jruby/RubySymbol;
            2   16     5  lithuanian  Lorg/jruby/RubySymbol;
    MethodParameters:
         Name  Flags
      runtime  
      arg0     
      arg1     
      flags    

  public static int checkCaseMapOptions(org.jruby.Ruby, org.jruby.runtime.builtin.IRubyObject, int);
    descriptor: (Lorg/jruby/Ruby;Lorg/jruby/runtime/builtin/IRubyObject;I)I
    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 arg0
        start local 2 // int flags
         0: .line 2613
            aload 1 /* arg0 */
            aload 0 /* runtime */
            ldc "ascii"
            invokevirtual org.jruby.Ruby.newSymbol:(Ljava/lang/String;)Lorg/jruby/RubySymbol;
            invokevirtual java.lang.Object.equals:(Ljava/lang/Object;)Z
            ifeq 3
         1: .line 2614
            iload 2 /* flags */
            ldc 4194304
            ior
            istore 2 /* flags */
         2: .line 2615
            goto 15
      StackMap locals:
      StackMap stack:
         3: aload 1 /* arg0 */
            aload 0 /* runtime */
            ldc "fold"
            invokevirtual org.jruby.Ruby.newSymbol:(Ljava/lang/String;)Lorg/jruby/RubySymbol;
            invokevirtual java.lang.Object.equals:(Ljava/lang/Object;)Z
            ifeq 8
         4: .line 2616
            iload 2 /* flags */
            sipush 24576
            iand
            sipush 16384
            if_icmpne 7
         5: .line 2617
            iload 2 /* flags */
            ldc 540672
            ixor
            istore 2 /* flags */
         6: .line 2618
            goto 15
         7: .line 2619
      StackMap locals:
      StackMap stack:
            aload 0 /* runtime */
            ldc "option :fold only allowed for downcasing"
            invokevirtual org.jruby.Ruby.newArgumentError:(Ljava/lang/String;)Lorg/jruby/exceptions/RaiseException;
            athrow
         8: .line 2621
      StackMap locals:
      StackMap stack:
            aload 1 /* arg0 */
            aload 0 /* runtime */
            ldc "turkic"
            invokevirtual org.jruby.Ruby.newSymbol:(Ljava/lang/String;)Lorg/jruby/RubySymbol;
            invokevirtual java.lang.Object.equals:(Ljava/lang/Object;)Z
            ifeq 11
         9: .line 2622
            iload 2 /* flags */
            ldc 1048576
            ior
            istore 2 /* flags */
        10: .line 2623
            goto 15
      StackMap locals:
      StackMap stack:
        11: aload 1 /* arg0 */
            aload 0 /* runtime */
            ldc "lithuanian"
            invokevirtual org.jruby.Ruby.newSymbol:(Ljava/lang/String;)Lorg/jruby/RubySymbol;
            invokevirtual java.lang.Object.equals:(Ljava/lang/Object;)Z
            ifeq 14
        12: .line 2624
            iload 2 /* flags */
            ldc 2097152
            ior
            istore 2 /* flags */
        13: .line 2625
            goto 15
        14: .line 2626
      StackMap locals:
      StackMap stack:
            aload 0 /* runtime */
            ldc "invalid option"
            invokevirtual org.jruby.Ruby.newArgumentError:(Ljava/lang/String;)Lorg/jruby/exceptions/RaiseException;
            athrow
        15: .line 2628
      StackMap locals:
      StackMap stack:
            iload 2 /* flags */
            ireturn
        end local 2 // int flags
        end local 1 // org.jruby.runtime.builtin.IRubyObject arg0
        end local 0 // org.jruby.Ruby runtime
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   16     0  runtime  Lorg/jruby/Ruby;
            0   16     1     arg0  Lorg/jruby/runtime/builtin/IRubyObject;
            0   16     2    flags  I
    MethodParameters:
         Name  Flags
      runtime  
      arg0     
      flags    

  public static org.jruby.util.ByteList caseMap(org.jruby.Ruby, org.jruby.util.ByteList, org.jcodings.IntHolder, org.jcodings.Encoding);
    descriptor: (Lorg/jruby/Ruby;Lorg/jruby/util/ByteList;Lorg/jcodings/IntHolder;Lorg/jcodings/Encoding;)Lorg/jruby/util/ByteList;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=8, locals=13, args_size=4
        start local 0 // org.jruby.Ruby runtime
        start local 1 // org.jruby.util.ByteList src
        start local 2 // org.jcodings.IntHolder flags
        start local 3 // org.jcodings.Encoding enc
         0: .line 2648
            new org.jcodings.IntHolder
            dup
            invokespecial org.jcodings.IntHolder.<init>:()V
            astore 4 /* pp */
        start local 4 // org.jcodings.IntHolder pp
         1: .line 2649
            aload 4 /* pp */
            aload 1 /* src */
            invokevirtual org.jruby.util.ByteList.getBegin:()I
            putfield org.jcodings.IntHolder.value:I
         2: .line 2650
            aload 1 /* src */
            invokevirtual org.jruby.util.ByteList.getRealSize:()I
            aload 4 /* pp */
            getfield org.jcodings.IntHolder.value:I
            iadd
            istore 5 /* end */
        start local 5 // int end
         3: .line 2651
            aload 1 /* src */
            invokevirtual org.jruby.util.ByteList.getUnsafeBytes:()[B
            astore 6 /* bytes */
        start local 6 // byte[] bytes
         4: .line 2652
            iconst_0
            istore 7 /* tgtLen */
        start local 7 // int tgtLen
         5: .line 2654
            iconst_0
            istore 8 /* buffers */
        start local 8 // int buffers
         6: .line 2655
            new org.jruby.util.StringSupport$MappingBuffer
            dup
            invokespecial org.jruby.util.StringSupport$MappingBuffer.<init>:()V
            astore 9 /* root */
        start local 9 // org.jruby.util.StringSupport$MappingBuffer root
         7: .line 2656
            aload 9 /* root */
            astore 10 /* buffer */
        start local 10 // org.jruby.util.StringSupport$MappingBuffer buffer
         8: .line 2657
            goto 15
         9: .line 2658
      StackMap locals: org.jruby.Ruby org.jruby.util.ByteList org.jcodings.IntHolder org.jcodings.Encoding org.jcodings.IntHolder int byte[] int int org.jruby.util.StringSupport$MappingBuffer org.jruby.util.StringSupport$MappingBuffer
      StackMap stack:
            aload 10 /* buffer */
            new org.jruby.util.StringSupport$MappingBuffer
            dup
            iload 5 /* end */
            aload 4 /* pp */
            getfield org.jcodings.IntHolder.value:I
            isub
            iinc 8 /* buffers */ 1
            iload 8 /* buffers */
            imul
            bipush 20
            iadd
            invokespecial org.jruby.util.StringSupport$MappingBuffer.<init>:(I)V
            putfield org.jruby.util.StringSupport$MappingBuffer.next:Lorg/jruby/util/StringSupport$MappingBuffer;
        10: .line 2659
            aload 10 /* buffer */
            getfield org.jruby.util.StringSupport$MappingBuffer.next:Lorg/jruby/util/StringSupport$MappingBuffer;
            astore 10 /* buffer */
        11: .line 2660
            aload 3 /* enc */
            aload 2 /* flags */
            aload 6 /* bytes */
            aload 4 /* pp */
            iload 5 /* end */
            aload 10 /* buffer */
            getfield org.jruby.util.StringSupport$MappingBuffer.bytes:[B
            iconst_0
            aload 10 /* buffer */
            getfield org.jruby.util.StringSupport$MappingBuffer.bytes:[B
            arraylength
            invokevirtual org.jcodings.Encoding.caseMap:(Lorg/jcodings/IntHolder;[BLorg/jcodings/IntHolder;I[BII)I
            istore 11 /* len */
        start local 11 // int len
        12: .line 2661
            iload 11 /* len */
            ifge 13
            aload 0 /* runtime */
            ldc "input string invalid"
            invokevirtual org.jruby.Ruby.newArgumentError:(Ljava/lang/String;)Lorg/jruby/exceptions/RaiseException;
            athrow
        13: .line 2662
      StackMap locals: int
      StackMap stack:
            aload 10 /* buffer */
            iload 11 /* len */
            putfield org.jruby.util.StringSupport$MappingBuffer.used:I
        14: .line 2663
            iload 7 /* tgtLen */
            iload 11 /* len */
            iadd
            istore 7 /* tgtLen */
        end local 11 // int len
        15: .line 2657
      StackMap locals:
      StackMap stack:
            aload 4 /* pp */
            getfield org.jcodings.IntHolder.value:I
            iload 5 /* end */
            if_icmplt 9
        16: .line 2667
            iload 8 /* buffers */
            iconst_1
            if_icmpne 19
        17: .line 2668
            new org.jruby.util.ByteList
            dup
            aload 10 /* buffer */
            getfield org.jruby.util.StringSupport$MappingBuffer.bytes:[B
            iconst_0
            aload 10 /* buffer */
            getfield org.jruby.util.StringSupport$MappingBuffer.used:I
            aload 3 /* enc */
            iconst_0
            invokespecial org.jruby.util.ByteList.<init>:([BIILorg/jcodings/Encoding;Z)V
            astore 11 /* tgt */
        start local 11 // org.jruby.util.ByteList tgt
        18: .line 2669
            goto 28
        end local 11 // org.jruby.util.ByteList tgt
        19: .line 2670
      StackMap locals:
      StackMap stack:
            new org.jruby.util.ByteList
            dup
            iload 7 /* tgtLen */
            invokespecial org.jruby.util.ByteList.<init>:(I)V
            astore 11 /* tgt */
        start local 11 // org.jruby.util.ByteList tgt
        20: .line 2671
            aload 11 /* tgt */
            aload 3 /* enc */
            invokevirtual org.jruby.util.ByteList.setEncoding:(Lorg/jcodings/Encoding;)V
        21: .line 2672
            aload 9 /* root */
            getfield org.jruby.util.StringSupport$MappingBuffer.next:Lorg/jruby/util/StringSupport$MappingBuffer;
            astore 10 /* buffer */
        22: .line 2673
            iconst_0
            istore 12 /* tgtPos */
        start local 12 // int tgtPos
        23: .line 2674
            goto 27
        24: .line 2675
      StackMap locals: org.jruby.util.ByteList int
      StackMap stack:
            aload 10 /* buffer */
            getfield org.jruby.util.StringSupport$MappingBuffer.bytes:[B
            iconst_0
            aload 11 /* tgt */
            invokevirtual org.jruby.util.ByteList.getUnsafeBytes:()[B
            iload 12 /* tgtPos */
            aload 10 /* buffer */
            getfield org.jruby.util.StringSupport$MappingBuffer.used:I
            invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
        25: .line 2676
            iload 12 /* tgtPos */
            aload 10 /* buffer */
            getfield org.jruby.util.StringSupport$MappingBuffer.used:I
            iadd
            istore 12 /* tgtPos */
        26: .line 2677
            aload 10 /* buffer */
            getfield org.jruby.util.StringSupport$MappingBuffer.next:Lorg/jruby/util/StringSupport$MappingBuffer;
            astore 10 /* buffer */
        27: .line 2674
      StackMap locals:
      StackMap stack:
            aload 10 /* buffer */
            ifnonnull 24
        end local 12 // int tgtPos
        28: .line 2681
      StackMap locals:
      StackMap stack:
            aload 11 /* tgt */
            areturn
        end local 11 // org.jruby.util.ByteList tgt
        end local 10 // org.jruby.util.StringSupport$MappingBuffer buffer
        end local 9 // org.jruby.util.StringSupport$MappingBuffer root
        end local 8 // int buffers
        end local 7 // int tgtLen
        end local 6 // byte[] bytes
        end local 5 // int end
        end local 4 // org.jcodings.IntHolder pp
        end local 3 // org.jcodings.Encoding enc
        end local 2 // org.jcodings.IntHolder flags
        end local 1 // org.jruby.util.ByteList src
        end local 0 // org.jruby.Ruby runtime
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   29     0  runtime  Lorg/jruby/Ruby;
            0   29     1      src  Lorg/jruby/util/ByteList;
            0   29     2    flags  Lorg/jcodings/IntHolder;
            0   29     3      enc  Lorg/jcodings/Encoding;
            1   29     4       pp  Lorg/jcodings/IntHolder;
            3   29     5      end  I
            4   29     6    bytes  [B
            5   29     7   tgtLen  I
            6   29     8  buffers  I
            7   29     9     root  Lorg/jruby/util/StringSupport$MappingBuffer;
            8   29    10   buffer  Lorg/jruby/util/StringSupport$MappingBuffer;
           12   15    11      len  I
           18   19    11      tgt  Lorg/jruby/util/ByteList;
           20   29    11      tgt  Lorg/jruby/util/ByteList;
           23   28    12   tgtPos  I
    MethodParameters:
         Name  Flags
      runtime  
      src      
      flags    
      enc      

  public static void asciiOnlyCaseMap(org.jruby.Ruby, org.jruby.util.ByteList, org.jcodings.IntHolder, org.jcodings.Encoding);
    descriptor: (Lorg/jruby/Ruby;Lorg/jruby/util/ByteList;Lorg/jcodings/IntHolder;Lorg/jcodings/Encoding;)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=8, locals=9, args_size=4
        start local 0 // org.jruby.Ruby runtime
        start local 1 // org.jruby.util.ByteList value
        start local 2 // org.jcodings.IntHolder flags
        start local 3 // org.jcodings.Encoding enc
         0: .line 2685
            aload 1 /* value */
            invokevirtual org.jruby.util.ByteList.getRealSize:()I
            ifne 1
            return
         1: .line 2686
      StackMap locals:
      StackMap stack:
            aload 1 /* value */
            invokevirtual org.jruby.util.ByteList.getBegin:()I
            istore 4 /* s */
        start local 4 // int s
         2: .line 2687
            iload 4 /* s */
            aload 1 /* value */
            invokevirtual org.jruby.util.ByteList.getRealSize:()I
            iadd
            istore 5 /* end */
        start local 5 // int end
         3: .line 2688
            aload 1 /* value */
            invokevirtual org.jruby.util.ByteList.getUnsafeBytes:()[B
            astore 6 /* bytes */
        start local 6 // byte[] bytes
         4: .line 2690
            new org.jcodings.IntHolder
            dup
            invokespecial org.jcodings.IntHolder.<init>:()V
            astore 7 /* pp */
        start local 7 // org.jcodings.IntHolder pp
         5: .line 2691
            aload 7 /* pp */
            iload 4 /* s */
            putfield org.jcodings.IntHolder.value:I
         6: .line 2692
            getstatic org.jcodings.specific.ASCIIEncoding.INSTANCE:Lorg/jcodings/specific/ASCIIEncoding;
            aload 2 /* flags */
            aload 6 /* bytes */
            aload 7 /* pp */
            iload 5 /* end */
            aload 6 /* bytes */
            iload 4 /* s */
            iload 5 /* end */
            invokevirtual org.jcodings.specific.ASCIIEncoding.caseMap:(Lorg/jcodings/IntHolder;[BLorg/jcodings/IntHolder;I[BII)I
            istore 8 /* len */
        start local 8 // int len
         7: .line 2693
            iload 8 /* len */
            ifge 8
            aload 0 /* runtime */
            ldc "input string invalid"
            invokevirtual org.jruby.Ruby.newArgumentError:(Ljava/lang/String;)Lorg/jruby/exceptions/RaiseException;
            athrow
         8: .line 2694
      StackMap locals: org.jruby.Ruby org.jruby.util.ByteList org.jcodings.IntHolder org.jcodings.Encoding int int byte[] org.jcodings.IntHolder int
      StackMap stack:
            return
        end local 8 // int len
        end local 7 // org.jcodings.IntHolder pp
        end local 6 // byte[] bytes
        end local 5 // int end
        end local 4 // int s
        end local 3 // org.jcodings.Encoding enc
        end local 2 // org.jcodings.IntHolder flags
        end local 1 // org.jruby.util.ByteList value
        end local 0 // org.jruby.Ruby runtime
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    9     0  runtime  Lorg/jruby/Ruby;
            0    9     1    value  Lorg/jruby/util/ByteList;
            0    9     2    flags  Lorg/jcodings/IntHolder;
            0    9     3      enc  Lorg/jcodings/Encoding;
            2    9     4        s  I
            3    9     5      end  I
            4    9     6    bytes  [B
            5    9     7       pp  Lorg/jcodings/IntHolder;
            7    9     8      len  I
    MethodParameters:
         Name  Flags
      runtime  
      value    
      flags    
      enc      

  public static int encCoderangeClean(int);
    descriptor: (I)I
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // int cr
         0: .line 2697
            iload 0 /* cr */
            iload 0 /* cr */
            iconst_1
            ishr
            ixor
            bipush 16
            iand
            ireturn
        end local 0 // int cr
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0    cr  I
    MethodParameters:
      Name  Flags
      cr    

  public static java.lang.String byteListAsString(org.jruby.util.ByteList);
    descriptor: (Lorg/jruby/util/ByteList;)Ljava/lang/String;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=6, locals=2, args_size=1
        start local 0 // org.jruby.util.ByteList bytes
         0: .line 2702
            aload 0 /* bytes */
            invokevirtual org.jruby.util.ByteList.getEncoding:()Lorg/jcodings/Encoding;
            invokevirtual org.jcodings.Encoding.getCharset:()Ljava/nio/charset/Charset;
            astore 1 /* charset */
        start local 1 // java.nio.charset.Charset charset
         1: .line 2703
            aload 1 /* charset */
            ifnull 4
            new java.lang.String
            dup
            aload 0 /* bytes */
            invokevirtual org.jruby.util.ByteList.unsafeBytes:()[B
            aload 0 /* bytes */
            invokevirtual org.jruby.util.ByteList.begin:()I
            aload 0 /* bytes */
            invokevirtual org.jruby.util.ByteList.realSize:()I
            aload 1 /* charset */
            invokespecial java.lang.String.<init>:([BIILjava/nio/charset/Charset;)V
         2: areturn
        end local 1 // java.nio.charset.Charset charset
         3: .line 2704
      StackMap locals:
      StackMap stack: java.nio.charset.UnsupportedCharsetException
            pop
         4: .line 2706
      StackMap locals:
      StackMap stack:
            new java.lang.String
            dup
            aload 0 /* bytes */
            invokevirtual org.jruby.util.ByteList.unsafeBytes:()[B
            aload 0 /* bytes */
            invokevirtual org.jruby.util.ByteList.begin:()I
            aload 0 /* bytes */
            invokevirtual org.jruby.util.ByteList.realSize:()I
            invokespecial java.lang.String.<init>:([BII)V
            areturn
        end local 0 // org.jruby.util.ByteList bytes
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    5     0    bytes  Lorg/jruby/util/ByteList;
            1    3     1  charset  Ljava/nio/charset/Charset;
      Exception table:
        from    to  target  type
           0     2       3  Class java.nio.charset.UnsupportedCharsetException
    MethodParameters:
       Name  Flags
      bytes  

  public static boolean isUnicode(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 2711
            aload 0 /* enc */
            invokevirtual org.jcodings.Encoding.isUnicode:()Z
            ireturn
        end local 0 // org.jcodings.Encoding enc
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0   enc  Lorg/jcodings/Encoding;
    RuntimeVisibleAnnotations: 
      java.lang.Deprecated()
    MethodParameters:
      Name  Flags
      enc   

  static int[] $SWITCH_TABLE$org$jruby$util$StringSupport$NeighborChar();
    descriptor: ()[I
    flags: (0x1008) ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=3, locals=1, args_size=0
         0: .line 67
            getstatic org.jruby.util.StringSupport.$SWITCH_TABLE$org$jruby$util$StringSupport$NeighborChar:[I
            dup
            ifnull 1
            areturn
      StackMap locals:
      StackMap stack: int[]
         1: pop
            invokestatic org.jruby.util.StringSupport$NeighborChar.values:()[Lorg/jruby/util/StringSupport$NeighborChar;
            arraylength
            newarray 10
            astore 0
         2: aload 0
            getstatic org.jruby.util.StringSupport$NeighborChar.FOUND:Lorg/jruby/util/StringSupport$NeighborChar;
            invokevirtual org.jruby.util.StringSupport$NeighborChar.ordinal:()I
            iconst_2
            iastore
         3: goto 5
      StackMap locals: int[]
      StackMap stack: java.lang.NoSuchFieldError
         4: pop
      StackMap locals:
      StackMap stack:
         5: aload 0
            getstatic org.jruby.util.StringSupport$NeighborChar.NOT_CHAR:Lorg/jruby/util/StringSupport$NeighborChar;
            invokevirtual org.jruby.util.StringSupport$NeighborChar.ordinal:()I
            iconst_1
            iastore
         6: goto 8
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
         7: pop
      StackMap locals:
      StackMap stack:
         8: aload 0
            getstatic org.jruby.util.StringSupport$NeighborChar.WRAPPED:Lorg/jruby/util/StringSupport$NeighborChar;
            invokevirtual org.jruby.util.StringSupport$NeighborChar.ordinal:()I
            iconst_3
            iastore
         9: goto 11
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        10: pop
      StackMap locals:
      StackMap stack:
        11: aload 0
            dup
            putstatic org.jruby.util.StringSupport.$SWITCH_TABLE$org$jruby$util$StringSupport$NeighborChar:[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
}
SourceFile: "StringSupport.java"
NestMembers:
  org.jruby.util.StringSupport$MappingBuffer  org.jruby.util.StringSupport$NeighborChar  org.jruby.util.StringSupport$TR  org.jruby.util.StringSupport$TrTables
InnerClasses:
  private final MappingBuffer = org.jruby.util.StringSupport$MappingBuffer of org.jruby.util.StringSupport
  public final NeighborChar = org.jruby.util.StringSupport$NeighborChar of org.jruby.util.StringSupport
  public final TR = org.jruby.util.StringSupport$TR of org.jruby.util.StringSupport
  public final TrTables = org.jruby.util.StringSupport$TrTables of org.jruby.util.StringSupport