public class com.sun.org.apache.xml.internal.security.c14n.implementations.UtfHelpper
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: com.sun.org.apache.xml.internal.security.c14n.implementations.UtfHelpper
  super_class: java.lang.Object
{
  public void <init>();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.sun.org.apache.xml.internal.security.c14n.implementations.UtfHelpper this
         0: .line 7
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
            return
        end local 0 // com.sun.org.apache.xml.internal.security.c14n.implementations.UtfHelpper this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/sun/org/apache/xml/internal/security/c14n/implementations/UtfHelpper;

  static final void writeByte(java.lang.String, java.io.OutputStream, java.util.Map);
    descriptor: (Ljava/lang/String;Ljava/io/OutputStream;Ljava/util/Map;)V
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    Code:
      stack=3, locals=4, args_size=3
        start local 0 // java.lang.String str
        start local 1 // java.io.OutputStream out
        start local 2 // java.util.Map cache
         0: .line 10
            aload 2 /* cache */
            aload 0 /* str */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast byte[]
            astore 3 /* result */
        start local 3 // byte[] result
         1: .line 11
            aload 3 /* result */
            ifnonnull 4
         2: .line 12
            aload 0 /* str */
            invokestatic com.sun.org.apache.xml.internal.security.c14n.implementations.UtfHelpper.getStringInUtf8:(Ljava/lang/String;)[B
            astore 3 /* result */
         3: .line 13
            aload 2 /* cache */
            aload 0 /* str */
            aload 3 /* result */
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         4: .line 16
      StackMap locals: byte[]
      StackMap stack:
            aload 1 /* out */
            aload 3 /* result */
            invokevirtual java.io.OutputStream.write:([B)V
         5: .line 18
            return
        end local 3 // byte[] result
        end local 2 // java.util.Map cache
        end local 1 // java.io.OutputStream out
        end local 0 // java.lang.String str
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    6     0     str  Ljava/lang/String;
            0    6     1     out  Ljava/io/OutputStream;
            0    6     2   cache  Ljava/util/Map;
            1    6     3  result  [B
    Exceptions:
      throws java.io.IOException
    MethodParameters:
       Name  Flags
      str    final
      out    final
      cache  

  static final void writeCharToUtf8(char, java.io.OutputStream);
    descriptor: (CLjava/io/OutputStream;)V
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    Code:
      stack=4, locals=5, args_size=2
        start local 0 // char c
        start local 1 // java.io.OutputStream out
         0: .line 21
            iload 0 /* c */
            sipush 128
            if_icmpge 3
         1: .line 22
            aload 1 /* out */
            iload 0 /* c */
            invokevirtual java.io.OutputStream.write:(I)V
         2: .line 23
            return
         3: .line 25
      StackMap locals:
      StackMap stack:
            iload 0 /* c */
            ldc 55296
            if_icmplt 4
            iload 0 /* c */
            ldc 56319
            if_icmple 5
      StackMap locals:
      StackMap stack:
         4: iload 0 /* c */
            ldc 56320
            if_icmplt 7
            iload 0 /* c */
            ldc 57343
            if_icmpgt 7
         5: .line 27
      StackMap locals:
      StackMap stack:
            aload 1 /* out */
            bipush 63
            invokevirtual java.io.OutputStream.write:(I)V
         6: .line 28
            return
         7: .line 33
      StackMap locals:
      StackMap stack:
            iload 0 /* c */
            sipush 2047
            if_icmple 16
         8: .line 34
            iload 0 /* c */
            bipush 12
            iushr
            i2c
            istore 4 /* ch */
        start local 4 // char ch
         9: .line 35
            sipush 224
            istore 3 /* write */
        start local 3 // int write
        10: .line 36
            iload 4 /* ch */
            ifle 12
        11: .line 37
            iload 3 /* write */
            iload 4 /* ch */
            bipush 15
            iand
            ior
            istore 3 /* write */
        12: .line 39
      StackMap locals: int java.io.OutputStream top int int
      StackMap stack:
            aload 1 /* out */
            iload 3 /* write */
            invokevirtual java.io.OutputStream.write:(I)V
        13: .line 40
            sipush 128
            istore 3 /* write */
        14: .line 41
            bipush 63
            istore 2 /* bias */
        start local 2 // int bias
        15: .line 42
            goto 18
        end local 4 // char ch
        end local 3 // int write
        end local 2 // int bias
        16: .line 43
      StackMap locals: int java.io.OutputStream
      StackMap stack:
            sipush 192
            istore 3 /* write */
        start local 3 // int write
        17: .line 44
            bipush 31
            istore 2 /* bias */
        start local 2 // int bias
        18: .line 46
      StackMap locals: int int
      StackMap stack:
            iload 0 /* c */
            bipush 6
            iushr
            i2c
            istore 4 /* ch */
        start local 4 // char ch
        19: .line 47
            iload 4 /* ch */
            ifle 21
        20: .line 48
            iload 3 /* write */
            iload 4 /* ch */
            iload 2 /* bias */
            iand
            ior
            istore 3 /* write */
        21: .line 50
      StackMap locals: int
      StackMap stack:
            aload 1 /* out */
            iload 3 /* write */
            invokevirtual java.io.OutputStream.write:(I)V
        22: .line 51
            aload 1 /* out */
            sipush 128
            iload 0 /* c */
            bipush 63
            iand
            ior
            invokevirtual java.io.OutputStream.write:(I)V
        23: .line 53
            return
        end local 4 // char ch
        end local 3 // int write
        end local 2 // int bias
        end local 1 // java.io.OutputStream out
        end local 0 // char c
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0   24     0      c  C
            0   24     1    out  Ljava/io/OutputStream;
           15   16     2   bias  I
           18   24     2   bias  I
           10   16     3  write  I
           17   24     3  write  I
            9   16     4     ch  C
           19   24     4     ch  C
    Exceptions:
      throws java.io.IOException
    MethodParameters:
      Name  Flags
      c     final
      out   final

  static final void writeStringToUtf8(java.lang.String, java.io.OutputStream);
    descriptor: (Ljava/lang/String;Ljava/io/OutputStream;)V
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    Code:
      stack=4, locals=8, args_size=2
        start local 0 // java.lang.String str
        start local 1 // java.io.OutputStream out
         0: .line 56
            aload 0 /* str */
            invokevirtual java.lang.String.length:()I
            istore 2 /* length */
        start local 2 // int length
         1: .line 57
            iconst_0
            istore 3 /* i */
        start local 3 // int i
         2: .line 59
            goto 27
         3: .line 60
      StackMap locals: int int
      StackMap stack:
            aload 0 /* str */
            iload 3 /* i */
            iinc 3 /* i */ 1
            invokevirtual java.lang.String.charAt:(I)C
            istore 4 /* c */
        start local 4 // char c
         4: .line 61
            iload 4 /* c */
            sipush 128
            if_icmpge 7
         5: .line 62
            aload 1 /* out */
            iload 4 /* c */
            invokevirtual java.io.OutputStream.write:(I)V
         6: .line 63
            goto 27
         7: .line 65
      StackMap locals: int
      StackMap stack:
            iload 4 /* c */
            ldc 55296
            if_icmplt 8
            iload 4 /* c */
            ldc 56319
            if_icmple 9
      StackMap locals:
      StackMap stack:
         8: iload 4 /* c */
            ldc 56320
            if_icmplt 11
            iload 4 /* c */
            ldc 57343
            if_icmpgt 11
         9: .line 67
      StackMap locals:
      StackMap stack:
            aload 1 /* out */
            bipush 63
            invokevirtual java.io.OutputStream.write:(I)V
        10: .line 68
            goto 27
        11: .line 73
      StackMap locals:
      StackMap stack:
            iload 4 /* c */
            sipush 2047
            if_icmple 20
        12: .line 74
            iload 4 /* c */
            bipush 12
            iushr
            i2c
            istore 5 /* ch */
        start local 5 // char ch
        13: .line 75
            sipush 224
            istore 7 /* write */
        start local 7 // int write
        14: .line 76
            iload 5 /* ch */
            ifle 16
        15: .line 77
            iload 7 /* write */
            iload 5 /* ch */
            bipush 15
            iand
            ior
            istore 7 /* write */
        16: .line 79
      StackMap locals: java.lang.String java.io.OutputStream int int int int top int
      StackMap stack:
            aload 1 /* out */
            iload 7 /* write */
            invokevirtual java.io.OutputStream.write:(I)V
        17: .line 80
            sipush 128
            istore 7 /* write */
        18: .line 81
            bipush 63
            istore 6 /* bias */
        start local 6 // int bias
        19: .line 82
            goto 22
        end local 7 // int write
        end local 6 // int bias
        end local 5 // char ch
        20: .line 83
      StackMap locals: java.lang.String java.io.OutputStream int int int
      StackMap stack:
            sipush 192
            istore 7 /* write */
        start local 7 // int write
        21: .line 84
            bipush 31
            istore 6 /* bias */
        start local 6 // int bias
        22: .line 86
      StackMap locals: java.lang.String java.io.OutputStream int int int top int int
      StackMap stack:
            iload 4 /* c */
            bipush 6
            iushr
            i2c
            istore 5 /* ch */
        start local 5 // char ch
        23: .line 87
            iload 5 /* ch */
            ifle 25
        24: .line 88
            iload 7 /* write */
            iload 5 /* ch */
            iload 6 /* bias */
            iand
            ior
            istore 7 /* write */
        25: .line 90
      StackMap locals: java.lang.String java.io.OutputStream int int int int int int
      StackMap stack:
            aload 1 /* out */
            iload 7 /* write */
            invokevirtual java.io.OutputStream.write:(I)V
        26: .line 91
            aload 1 /* out */
            sipush 128
            iload 4 /* c */
            bipush 63
            iand
            ior
            invokevirtual java.io.OutputStream.write:(I)V
        end local 7 // int write
        end local 6 // int bias
        end local 5 // char ch
        end local 4 // char c
        27: .line 59
      StackMap locals: java.lang.String java.io.OutputStream int int
      StackMap stack:
            iload 3 /* i */
            iload 2 /* length */
            if_icmplt 3
        28: .line 95
            return
        end local 3 // int i
        end local 2 // int length
        end local 1 // java.io.OutputStream out
        end local 0 // java.lang.String str
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   29     0     str  Ljava/lang/String;
            0   29     1     out  Ljava/io/OutputStream;
            1   29     2  length  I
            2   29     3       i  I
            4   27     4       c  C
           13   20     5      ch  C
           23   27     5      ch  C
           19   20     6    bias  I
           22   27     6    bias  I
           14   20     7   write  I
           21   27     7   write  I
    Exceptions:
      throws java.io.IOException
    MethodParameters:
      Name  Flags
      str   final
      out   final

  public static final byte[] getStringInUtf8(java.lang.String);
    descriptor: (Ljava/lang/String;)[B
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    Code:
      stack=5, locals=10, args_size=1
        start local 0 // java.lang.String str
         0: .line 97
            aload 0 /* str */
            invokevirtual java.lang.String.length:()I
            istore 1 /* length */
        start local 1 // int length
         1: .line 98
            iconst_0
            istore 2 /* expanded */
        start local 2 // boolean expanded
         2: .line 99
            iload 1 /* length */
            newarray 8
            astore 3 /* result */
        start local 3 // byte[] result
         3: .line 100
            iconst_0
            istore 4 /* i */
        start local 4 // int i
         4: .line 101
            iconst_0
            istore 5 /* out */
        start local 5 // int out
         5: .line 103
            goto 35
         6: .line 104
      StackMap locals: java.lang.String int int byte[] int int
      StackMap stack:
            aload 0 /* str */
            iload 4 /* i */
            iinc 4 /* i */ 1
            invokevirtual java.lang.String.charAt:(I)C
            istore 6 /* c */
        start local 6 // char c
         7: .line 105
            iload 6 /* c */
            sipush 128
            if_icmpge 10
         8: .line 106
            aload 3 /* result */
            iload 5 /* out */
            iinc 5 /* out */ 1
            iload 6 /* c */
            i2b
            bastore
         9: .line 107
            goto 35
        10: .line 109
      StackMap locals: int
      StackMap stack:
            iload 6 /* c */
            ldc 55296
            if_icmplt 11
            iload 6 /* c */
            ldc 56319
            if_icmple 12
      StackMap locals:
      StackMap stack:
        11: iload 6 /* c */
            ldc 56320
            if_icmplt 14
            iload 6 /* c */
            ldc 57343
            if_icmpgt 14
        12: .line 111
      StackMap locals:
      StackMap stack:
            aload 3 /* result */
            iload 5 /* out */
            iinc 5 /* out */ 1
            bipush 63
            bastore
        13: .line 113
            goto 35
        14: .line 115
      StackMap locals:
      StackMap stack:
            iload 2 /* expanded */
            ifne 19
        15: .line 116
            iconst_3
            iload 1 /* length */
            imul
            newarray 8
            astore 7 /* newResult */
        start local 7 // byte[] newResult
        16: .line 117
            aload 3 /* result */
            iconst_0
            aload 7 /* newResult */
            iconst_0
            iload 5 /* out */
            invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
        17: .line 118
            aload 7 /* newResult */
            astore 3 /* result */
        18: .line 119
            iconst_1
            istore 2 /* expanded */
        end local 7 // byte[] newResult
        19: .line 124
      StackMap locals:
      StackMap stack:
            iload 6 /* c */
            sipush 2047
            if_icmple 28
        20: .line 125
            iload 6 /* c */
            bipush 12
            iushr
            i2c
            istore 7 /* ch */
        start local 7 // char ch
        21: .line 126
            bipush -32
            istore 9 /* write */
        start local 9 // byte write
        22: .line 127
            iload 7 /* ch */
            ifle 24
        23: .line 128
            iload 9 /* write */
            iload 7 /* ch */
            bipush 15
            iand
            ior
            i2b
            istore 9 /* write */
        24: .line 130
      StackMap locals: java.lang.String int int byte[] int int int int top int
      StackMap stack:
            aload 3 /* result */
            iload 5 /* out */
            iinc 5 /* out */ 1
            iload 9 /* write */
            bastore
        25: .line 131
            bipush -128
            istore 9 /* write */
        26: .line 132
            bipush 63
            istore 8 /* bias */
        start local 8 // int bias
        27: .line 133
            goto 30
        end local 9 // byte write
        end local 8 // int bias
        end local 7 // char ch
        28: .line 134
      StackMap locals: java.lang.String int int byte[] int int int
      StackMap stack:
            bipush -64
            istore 9 /* write */
        start local 9 // byte write
        29: .line 135
            bipush 31
            istore 8 /* bias */
        start local 8 // int bias
        30: .line 137
      StackMap locals: java.lang.String int int byte[] int int int top int int
      StackMap stack:
            iload 6 /* c */
            bipush 6
            iushr
            i2c
            istore 7 /* ch */
        start local 7 // char ch
        31: .line 138
            iload 7 /* ch */
            ifle 33
        32: .line 139
            iload 9 /* write */
            iload 7 /* ch */
            iload 8 /* bias */
            iand
            ior
            i2b
            istore 9 /* write */
        33: .line 141
      StackMap locals: java.lang.String int int byte[] int int int int int int
      StackMap stack:
            aload 3 /* result */
            iload 5 /* out */
            iinc 5 /* out */ 1
            iload 9 /* write */
            bastore
        34: .line 142
            aload 3 /* result */
            iload 5 /* out */
            iinc 5 /* out */ 1
            sipush 128
            iload 6 /* c */
            bipush 63
            iand
            ior
            i2b
            bastore
        end local 9 // byte write
        end local 8 // int bias
        end local 7 // char ch
        end local 6 // char c
        35: .line 103
      StackMap locals: java.lang.String int int byte[] int int
      StackMap stack:
            iload 4 /* i */
            iload 1 /* length */
            if_icmplt 6
        36: .line 145
            iload 2 /* expanded */
            ifeq 40
        37: .line 146
            iload 5 /* out */
            newarray 8
            astore 7 /* newResult */
        start local 7 // byte[] newResult
        38: .line 147
            aload 3 /* result */
            iconst_0
            aload 7 /* newResult */
            iconst_0
            iload 5 /* out */
            invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
        39: .line 148
            aload 7 /* newResult */
            astore 3 /* result */
        end local 7 // byte[] newResult
        40: .line 150
      StackMap locals:
      StackMap stack:
            aload 3 /* result */
            areturn
        end local 5 // int out
        end local 4 // int i
        end local 3 // byte[] result
        end local 2 // boolean expanded
        end local 1 // int length
        end local 0 // java.lang.String str
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   41     0        str  Ljava/lang/String;
            1   41     1     length  I
            2   41     2   expanded  Z
            3   41     3     result  [B
            4   41     4          i  I
            5   41     5        out  I
            7   35     6          c  C
           16   19     7  newResult  [B
           21   28     7         ch  C
           31   35     7         ch  C
           27   28     8       bias  I
           30   35     8       bias  I
           22   28     9      write  B
           29   35     9      write  B
           38   40     7  newResult  [B
    MethodParameters:
      Name  Flags
      str   final
}
SourceFile: "UtfHelpper.java"