public final class com.oracle.objectfile.io.Utf8
  minor version: 0
  major version: 59
  flags: flags: (0x0031) ACC_PUBLIC, ACC_FINAL, ACC_SUPER
  this_class: com.oracle.objectfile.io.Utf8
  super_class: java.lang.Object
{
  private void <init>();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.oracle.objectfile.io.Utf8 this
         0: .line 36
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 37
            return
        end local 0 // com.oracle.objectfile.io.Utf8 this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lcom/oracle/objectfile/io/Utf8;

  public static int utf8Length(java.lang.String);
    descriptor: (Ljava/lang/String;)I
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // java.lang.String string
         0: .line 43
            aload 0 /* string */
            iconst_0
            aload 0 /* string */
            invokevirtual java.lang.String.length:()I
            invokestatic com.oracle.objectfile.io.Utf8.utf8Length:(Ljava/lang/String;II)I
            ireturn
        end local 0 // java.lang.String string
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    1     0  string  Ljava/lang/String;
    MethodParameters:
        Name  Flags
      string  

  public static int utf8Length(java.lang.String, int, int);
    descriptor: (Ljava/lang/String;II)I
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=6, args_size=3
        start local 0 // java.lang.String s
        start local 1 // int beginIndex
        start local 2 // int endIndex
         0: .line 52
            iload 1 /* beginIndex */
            iflt 1
            iload 2 /* endIndex */
            aload 0 /* s */
            invokevirtual java.lang.String.length:()I
            if_icmpgt 1
            iload 1 /* beginIndex */
            iload 2 /* endIndex */
            if_icmple 2
         1: .line 53
      StackMap locals:
      StackMap stack:
            new java.lang.StringIndexOutOfBoundsException
            dup
            invokespecial java.lang.StringIndexOutOfBoundsException.<init>:()V
            athrow
         2: .line 55
      StackMap locals:
      StackMap stack:
            iconst_0
            istore 3 /* length */
        start local 3 // int length
         3: .line 56
            iload 1 /* beginIndex */
            istore 4 /* i */
        start local 4 // int i
         4: goto 14
         5: .line 57
      StackMap locals: int int
      StackMap stack:
            aload 0 /* s */
            iload 4 /* i */
            invokevirtual java.lang.String.charAt:(I)C
            istore 5 /* c */
        start local 5 // int c
         6: .line 58
            iload 5 /* c */
            iconst_1
            if_icmplt 9
            iload 5 /* c */
            bipush 127
            if_icmpgt 9
         7: .line 59
            iinc 3 /* length */ 1
         8: .line 60
            goto 13
      StackMap locals: int
      StackMap stack:
         9: iload 5 /* c */
            sipush 2047
            if_icmple 12
        10: .line 61
            iinc 3 /* length */ 3
        11: .line 62
            goto 13
        12: .line 63
      StackMap locals:
      StackMap stack:
            iinc 3 /* length */ 2
        end local 5 // int c
        13: .line 56
      StackMap locals:
      StackMap stack:
            iinc 4 /* i */ 1
      StackMap locals:
      StackMap stack:
        14: iload 4 /* i */
            iload 2 /* endIndex */
            if_icmplt 5
        end local 4 // int i
        15: .line 66
            iload 3 /* length */
            ireturn
        end local 3 // int length
        end local 2 // int endIndex
        end local 1 // int beginIndex
        end local 0 // java.lang.String s
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   16     0           s  Ljava/lang/String;
            0   16     1  beginIndex  I
            0   16     2    endIndex  I
            3   16     3      length  I
            4   15     4           i  I
            6   13     5           c  I
    MethodParameters:
            Name  Flags
      s           
      beginIndex  
      endIndex    

  public static void substringToUtf8(java.nio.ByteBuffer, java.lang.String, int, int, boolean);
    descriptor: (Ljava/nio/ByteBuffer;Ljava/lang/String;IIZ)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=7, args_size=5
        start local 0 // java.nio.ByteBuffer dest
        start local 1 // java.lang.String source
        start local 2 // int beginIndex
        start local 3 // int endIndex
        start local 4 // boolean zeroTerminate
         0: .line 79
            iload 2 /* beginIndex */
            iflt 1
            iload 3 /* endIndex */
            aload 1 /* source */
            invokevirtual java.lang.String.length:()I
            if_icmpgt 1
            iload 2 /* beginIndex */
            iload 3 /* endIndex */
            if_icmple 2
         1: .line 80
      StackMap locals:
      StackMap stack:
            new java.lang.StringIndexOutOfBoundsException
            dup
            invokespecial java.lang.StringIndexOutOfBoundsException.<init>:()V
            athrow
         2: .line 82
      StackMap locals:
      StackMap stack:
            iload 2 /* beginIndex */
            istore 5 /* i */
        start local 5 // int i
         3: goto 16
         4: .line 83
      StackMap locals: int
      StackMap stack:
            aload 1 /* source */
            iload 5 /* i */
            invokevirtual java.lang.String.charAt:(I)C
            istore 6 /* c */
        start local 6 // char c
         5: .line 84
            iload 6 /* c */
            iconst_1
            if_icmplt 8
            iload 6 /* c */
            bipush 127
            if_icmpgt 8
         6: .line 85
            aload 0 /* dest */
            iload 6 /* c */
            i2b
            invokevirtual java.nio.ByteBuffer.put:(B)Ljava/nio/ByteBuffer;
            pop
         7: .line 86
            goto 15
      StackMap locals: int
      StackMap stack:
         8: iload 6 /* c */
            sipush 2047
            if_icmple 13
         9: .line 87
            aload 0 /* dest */
            sipush 224
            iload 6 /* c */
            bipush 12
            ishr
            i2b
            ior
            i2b
            invokevirtual java.nio.ByteBuffer.put:(B)Ljava/nio/ByteBuffer;
            pop
        10: .line 88
            aload 0 /* dest */
            sipush 128
            iload 6 /* c */
            sipush 4032
            iand
            bipush 6
            ishr
            ior
            i2b
            invokevirtual java.nio.ByteBuffer.put:(B)Ljava/nio/ByteBuffer;
            pop
        11: .line 89
            aload 0 /* dest */
            sipush 128
            iload 6 /* c */
            bipush 63
            iand
            ior
            i2b
            invokevirtual java.nio.ByteBuffer.put:(B)Ljava/nio/ByteBuffer;
            pop
        12: .line 90
            goto 15
        13: .line 91
      StackMap locals:
      StackMap stack:
            aload 0 /* dest */
            sipush 192
            iload 6 /* c */
            bipush 6
            ishr
            i2b
            ior
            i2b
            invokevirtual java.nio.ByteBuffer.put:(B)Ljava/nio/ByteBuffer;
            pop
        14: .line 92
            aload 0 /* dest */
            sipush 128
            iload 6 /* c */
            bipush 63
            iand
            ior
            i2b
            invokevirtual java.nio.ByteBuffer.put:(B)Ljava/nio/ByteBuffer;
            pop
        end local 6 // char c
        15: .line 82
      StackMap locals:
      StackMap stack:
            iinc 5 /* i */ 1
      StackMap locals:
      StackMap stack:
        16: iload 5 /* i */
            iload 3 /* endIndex */
            if_icmplt 4
        end local 5 // int i
        17: .line 95
            iload 4 /* zeroTerminate */
            ifeq 19
        18: .line 96
            aload 0 /* dest */
            iconst_0
            invokevirtual java.nio.ByteBuffer.put:(B)Ljava/nio/ByteBuffer;
            pop
        19: .line 98
      StackMap locals:
      StackMap stack:
            return
        end local 4 // boolean zeroTerminate
        end local 3 // int endIndex
        end local 2 // int beginIndex
        end local 1 // java.lang.String source
        end local 0 // java.nio.ByteBuffer dest
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0   20     0           dest  Ljava/nio/ByteBuffer;
            0   20     1         source  Ljava/lang/String;
            0   20     2     beginIndex  I
            0   20     3       endIndex  I
            0   20     4  zeroTerminate  Z
            3   17     5              i  I
            5   15     6              c  C
    MethodParameters:
               Name  Flags
      dest           
      source         
      beginIndex     
      endIndex       
      zeroTerminate  

  public static java.lang.String utf8ToString(boolean, java.nio.ByteBuffer);
    descriptor: (ZLjava/nio/ByteBuffer;)Ljava/lang/String;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=6, args_size=2
        start local 0 // boolean zeroTerminated
        start local 1 // java.nio.ByteBuffer source
         0: .line 111
            new java.lang.StringBuilder
            dup
            invokespecial java.lang.StringBuilder.<init>:()V
            astore 2 /* sb */
        start local 2 // java.lang.StringBuilder sb
         1: .line 112
            goto 20
         2: .line 113
      StackMap locals: java.lang.StringBuilder
      StackMap stack:
            aload 1 /* source */
            invokevirtual java.nio.ByteBuffer.get:()B
            sipush 255
            iand
            istore 3 /* c0 */
        start local 3 // int c0
         3: .line 114
            iload 0 /* zeroTerminated */
            ifeq 5
            iload 3 /* c0 */
            ifne 5
         4: .line 115
            goto 21
         5: .line 117
      StackMap locals: int
      StackMap stack:
            iload 3 /* c0 */
            iconst_4
            ishr
            tableswitch { // 0 - 14
                    0: 6
                    1: 6
                    2: 6
                    3: 6
                    4: 6
                    5: 6
                    6: 6
                    7: 6
                    8: 19
                    9: 19
                   10: 19
                   11: 19
                   12: 8
                   13: 8
                   14: 13
              default: 19
          }
         6: .line 127
      StackMap locals:
      StackMap stack:
            aload 2 /* sb */
            iload 3 /* c0 */
            i2c
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            pop
         7: .line 128
            goto 20
         8: .line 133
      StackMap locals:
      StackMap stack:
            aload 1 /* source */
            invokevirtual java.nio.ByteBuffer.get:()B
            istore 4 /* c1 */
        start local 4 // int c1
         9: .line 134
            iload 4 /* c1 */
            sipush 192
            iand
            sipush 128
            if_icmpeq 11
        10: .line 135
            new java.io.CharConversionException
            dup
            invokespecial java.io.CharConversionException.<init>:()V
            athrow
        11: .line 137
      StackMap locals: int
      StackMap stack:
            aload 2 /* sb */
            iload 3 /* c0 */
            bipush 31
            iand
            bipush 6
            ishl
            iload 4 /* c1 */
            bipush 63
            iand
            ior
            i2c
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            pop
        12: .line 138
            goto 20
        end local 4 // int c1
        13: .line 142
      StackMap locals:
      StackMap stack:
            aload 1 /* source */
            invokevirtual java.nio.ByteBuffer.get:()B
            istore 4 /* c1 */
        start local 4 // int c1
        14: .line 143
            aload 1 /* source */
            invokevirtual java.nio.ByteBuffer.get:()B
            istore 5 /* c2 */
        start local 5 // int c2
        15: .line 144
            iload 4 /* c1 */
            sipush 192
            iand
            sipush 128
            if_icmpne 16
            iload 5 /* c2 */
            sipush 192
            iand
            sipush 128
            if_icmpeq 17
        16: .line 145
      StackMap locals: int int
      StackMap stack:
            new java.io.CharConversionException
            dup
            invokespecial java.io.CharConversionException.<init>:()V
            athrow
        17: .line 147
      StackMap locals:
      StackMap stack:
            aload 2 /* sb */
            iload 3 /* c0 */
            bipush 15
            iand
            bipush 12
            ishl
            iload 4 /* c1 */
            bipush 63
            iand
            bipush 6
            ishl
            ior
            iload 5 /* c2 */
            bipush 63
            iand
            ior
            i2c
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            pop
        18: .line 148
            goto 20
        end local 5 // int c2
        end local 4 // int c1
        19: .line 152
      StackMap locals:
      StackMap stack:
            new java.io.CharConversionException
            dup
            invokespecial java.io.CharConversionException.<init>:()V
            athrow
        end local 3 // int c0
        20: .line 112
      StackMap locals:
      StackMap stack:
            aload 1 /* source */
            invokevirtual java.nio.ByteBuffer.hasRemaining:()Z
            ifne 2
        21: .line 156
      StackMap locals:
      StackMap stack:
            aload 2 /* sb */
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            areturn
        end local 2 // java.lang.StringBuilder sb
        end local 1 // java.nio.ByteBuffer source
        end local 0 // boolean zeroTerminated
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   22     0  zeroTerminated  Z
            0   22     1          source  Ljava/nio/ByteBuffer;
            1   22     2              sb  Ljava/lang/StringBuilder;
            3   20     3              c0  I
            9   13     4              c1  I
           14   19     4              c1  I
           15   19     5              c2  I
    Exceptions:
      throws java.io.CharConversionException
    MethodParameters:
                Name  Flags
      zeroTerminated  
      source          
}
SourceFile: "Utf8.java"