public class org.bouncycastle.util.encoders.HexEncoder implements org.bouncycastle.util.encoders.Encoder
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: org.bouncycastle.util.encoders.HexEncoder
  super_class: java.lang.Object
{
  protected final byte[] encodingTable;
    descriptor: [B
    flags: (0x0014) ACC_PROTECTED, ACC_FINAL

  protected final byte[] decodingTable;
    descriptor: [B
    flags: (0x0014) ACC_PROTECTED, ACC_FINAL

  protected void initialiseDecodingTable();
    descriptor: ()V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=4, locals=2, args_size=1
        start local 0 // org.bouncycastle.util.encoders.HexEncoder this
         0: .line 22
            iconst_0
            istore 1 /* i */
        start local 1 // int i
         1: goto 4
         2: .line 24
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            getfield org.bouncycastle.util.encoders.HexEncoder.decodingTable:[B
            aload 0 /* this */
            getfield org.bouncycastle.util.encoders.HexEncoder.encodingTable:[B
            iload 1 /* i */
            baload
            iload 1 /* i */
            i2b
            bastore
         3: .line 22
            iinc 1 /* i */ 1
      StackMap locals:
      StackMap stack:
         4: iload 1 /* i */
            aload 0 /* this */
            getfield org.bouncycastle.util.encoders.HexEncoder.encodingTable:[B
            arraylength
            if_icmplt 2
        end local 1 // int i
         5: .line 27
            aload 0 /* this */
            getfield org.bouncycastle.util.encoders.HexEncoder.decodingTable:[B
            bipush 65
            aload 0 /* this */
            getfield org.bouncycastle.util.encoders.HexEncoder.decodingTable:[B
            bipush 97
            baload
            bastore
         6: .line 28
            aload 0 /* this */
            getfield org.bouncycastle.util.encoders.HexEncoder.decodingTable:[B
            bipush 66
            aload 0 /* this */
            getfield org.bouncycastle.util.encoders.HexEncoder.decodingTable:[B
            bipush 98
            baload
            bastore
         7: .line 29
            aload 0 /* this */
            getfield org.bouncycastle.util.encoders.HexEncoder.decodingTable:[B
            bipush 67
            aload 0 /* this */
            getfield org.bouncycastle.util.encoders.HexEncoder.decodingTable:[B
            bipush 99
            baload
            bastore
         8: .line 30
            aload 0 /* this */
            getfield org.bouncycastle.util.encoders.HexEncoder.decodingTable:[B
            bipush 68
            aload 0 /* this */
            getfield org.bouncycastle.util.encoders.HexEncoder.decodingTable:[B
            bipush 100
            baload
            bastore
         9: .line 31
            aload 0 /* this */
            getfield org.bouncycastle.util.encoders.HexEncoder.decodingTable:[B
            bipush 69
            aload 0 /* this */
            getfield org.bouncycastle.util.encoders.HexEncoder.decodingTable:[B
            bipush 101
            baload
            bastore
        10: .line 32
            aload 0 /* this */
            getfield org.bouncycastle.util.encoders.HexEncoder.decodingTable:[B
            bipush 70
            aload 0 /* this */
            getfield org.bouncycastle.util.encoders.HexEncoder.decodingTable:[B
            bipush 102
            baload
            bastore
        11: .line 33
            return
        end local 0 // org.bouncycastle.util.encoders.HexEncoder this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   12     0  this  Lorg/bouncycastle/util/encoders/HexEncoder;
            1    5     1     i  I

  public void <init>();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=1, args_size=1
        start local 0 // org.bouncycastle.util.encoders.HexEncoder this
         0: .line 35
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 9
            aload 0 /* this */
         2: .line 10
            bipush 16
            newarray 8
            dup
            iconst_0
         3: .line 11
            bipush 48
            bastore
            dup
            iconst_1
            bipush 49
            bastore
            dup
            iconst_2
            bipush 50
            bastore
            dup
            iconst_3
            bipush 51
            bastore
            dup
            iconst_4
            bipush 52
            bastore
            dup
            iconst_5
            bipush 53
            bastore
            dup
            bipush 6
            bipush 54
            bastore
            dup
            bipush 7
            bipush 55
            bastore
            dup
            bipush 8
         4: .line 12
            bipush 56
            bastore
            dup
            bipush 9
            bipush 57
            bastore
            dup
            bipush 10
            bipush 97
            bastore
            dup
            bipush 11
            bipush 98
            bastore
            dup
            bipush 12
            bipush 99
            bastore
            dup
            bipush 13
            bipush 100
            bastore
            dup
            bipush 14
            bipush 101
            bastore
            dup
            bipush 15
            bipush 102
            bastore
            putfield org.bouncycastle.util.encoders.HexEncoder.encodingTable:[B
         5: .line 18
            aload 0 /* this */
            sipush 128
            newarray 8
            putfield org.bouncycastle.util.encoders.HexEncoder.decodingTable:[B
         6: .line 37
            aload 0 /* this */
            invokevirtual org.bouncycastle.util.encoders.HexEncoder.initialiseDecodingTable:()V
         7: .line 38
            return
        end local 0 // org.bouncycastle.util.encoders.HexEncoder this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    8     0  this  Lorg/bouncycastle/util/encoders/HexEncoder;

  public int encode(byte[], int, int, java.io.OutputStream);
    descriptor: ([BIILjava/io/OutputStream;)I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=7, args_size=5
        start local 0 // org.bouncycastle.util.encoders.HexEncoder this
        start local 1 // byte[] data
        start local 2 // int off
        start local 3 // int length
        start local 4 // java.io.OutputStream out
         0: .line 52
            iload 2 /* off */
            istore 5 /* i */
        start local 5 // int i
         1: goto 6
         2: .line 54
      StackMap locals: int
      StackMap stack:
            aload 1 /* data */
            iload 5 /* i */
            baload
            sipush 255
            iand
            istore 6 /* v */
        start local 6 // int v
         3: .line 56
            aload 4 /* out */
            aload 0 /* this */
            getfield org.bouncycastle.util.encoders.HexEncoder.encodingTable:[B
            iload 6 /* v */
            iconst_4
            iushr
            baload
            invokevirtual java.io.OutputStream.write:(I)V
         4: .line 57
            aload 4 /* out */
            aload 0 /* this */
            getfield org.bouncycastle.util.encoders.HexEncoder.encodingTable:[B
            iload 6 /* v */
            bipush 15
            iand
            baload
            invokevirtual java.io.OutputStream.write:(I)V
        end local 6 // int v
         5: .line 52
            iinc 5 /* i */ 1
      StackMap locals:
      StackMap stack:
         6: iload 5 /* i */
            iload 2 /* off */
            iload 3 /* length */
            iadd
            if_icmplt 2
        end local 5 // int i
         7: .line 60
            iload 3 /* length */
            iconst_2
            imul
            ireturn
        end local 4 // java.io.OutputStream out
        end local 3 // int length
        end local 2 // int off
        end local 1 // byte[] data
        end local 0 // org.bouncycastle.util.encoders.HexEncoder this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    8     0    this  Lorg/bouncycastle/util/encoders/HexEncoder;
            0    8     1    data  [B
            0    8     2     off  I
            0    8     3  length  I
            0    8     4     out  Ljava/io/OutputStream;
            1    7     5       i  I
            3    5     6       v  I
    Exceptions:
      throws java.io.IOException
    MethodParameters:
        Name  Flags
      data    
      off     
      length  
      out     

  private boolean ignore(char);
    descriptor: (C)Z
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.bouncycastle.util.encoders.HexEncoder this
        start local 1 // char c
         0: .line 66
            iload 1 /* c */
            bipush 10
            if_icmpeq 1
            iload 1 /* c */
            bipush 13
            if_icmpeq 1
            iload 1 /* c */
            bipush 9
            if_icmpeq 1
            iload 1 /* c */
            bipush 32
            if_icmpeq 1
            iconst_0
            ireturn
      StackMap locals:
      StackMap stack:
         1: iconst_1
            ireturn
        end local 1 // char c
        end local 0 // org.bouncycastle.util.encoders.HexEncoder this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/bouncycastle/util/encoders/HexEncoder;
            0    2     1     c  C
    MethodParameters:
      Name  Flags
      c     

  public int decode(byte[], int, int, java.io.OutputStream);
    descriptor: ([BIILjava/io/OutputStream;)I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=10, args_size=5
        start local 0 // org.bouncycastle.util.encoders.HexEncoder this
        start local 1 // byte[] data
        start local 2 // int off
        start local 3 // int length
        start local 4 // java.io.OutputStream out
         0: .line 83
            iconst_0
            istore 7 /* outLen */
        start local 7 // int outLen
         1: .line 85
            iload 2 /* off */
            iload 3 /* length */
            iadd
            istore 8 /* end */
        start local 8 // int end
         2: .line 87
            goto 6
         3: .line 89
      StackMap locals: org.bouncycastle.util.encoders.HexEncoder byte[] int int java.io.OutputStream top top int int
      StackMap stack:
            aload 0 /* this */
            aload 1 /* data */
            iload 8 /* end */
            iconst_1
            isub
            baload
            i2c
            invokevirtual org.bouncycastle.util.encoders.HexEncoder.ignore:(C)Z
            ifne 5
         4: .line 91
            goto 7
         5: .line 94
      StackMap locals:
      StackMap stack:
            iinc 8 /* end */ -1
         6: .line 87
      StackMap locals:
      StackMap stack:
            iload 8 /* end */
            iload 2 /* off */
            if_icmpgt 3
         7: .line 97
      StackMap locals:
      StackMap stack:
            iload 2 /* off */
            istore 9 /* i */
        start local 9 // int i
         8: .line 98
            goto 18
         9: .line 102
      StackMap locals: int
      StackMap stack:
            iinc 9 /* i */ 1
        10: .line 100
      StackMap locals:
      StackMap stack:
            iload 9 /* i */
            iload 8 /* end */
            if_icmpge 11
            aload 0 /* this */
            aload 1 /* data */
            iload 9 /* i */
            baload
            i2c
            invokevirtual org.bouncycastle.util.encoders.HexEncoder.ignore:(C)Z
            ifne 9
        11: .line 105
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.bouncycastle.util.encoders.HexEncoder.decodingTable:[B
            aload 1 /* data */
            iload 9 /* i */
            iinc 9 /* i */ 1
            baload
            baload
            istore 5 /* b1 */
        start local 5 // byte b1
        12: .line 107
            goto 14
        13: .line 109
      StackMap locals: org.bouncycastle.util.encoders.HexEncoder byte[] int int java.io.OutputStream int top int int int
      StackMap stack:
            iinc 9 /* i */ 1
        14: .line 107
      StackMap locals:
      StackMap stack:
            iload 9 /* i */
            iload 8 /* end */
            if_icmpge 15
            aload 0 /* this */
            aload 1 /* data */
            iload 9 /* i */
            baload
            i2c
            invokevirtual org.bouncycastle.util.encoders.HexEncoder.ignore:(C)Z
            ifne 13
        15: .line 112
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.bouncycastle.util.encoders.HexEncoder.decodingTable:[B
            aload 1 /* data */
            iload 9 /* i */
            iinc 9 /* i */ 1
            baload
            baload
            istore 6 /* b2 */
        start local 6 // byte b2
        16: .line 114
            aload 4 /* out */
            iload 5 /* b1 */
            iconst_4
            ishl
            iload 6 /* b2 */
            ior
            invokevirtual java.io.OutputStream.write:(I)V
        17: .line 116
            iinc 7 /* outLen */ 1
        end local 6 // byte b2
        end local 5 // byte b1
        18: .line 98
      StackMap locals: org.bouncycastle.util.encoders.HexEncoder byte[] int int java.io.OutputStream top top int int int
      StackMap stack:
            iload 9 /* i */
            iload 8 /* end */
            if_icmplt 10
        19: .line 119
            iload 7 /* outLen */
            ireturn
        end local 9 // int i
        end local 8 // int end
        end local 7 // int outLen
        end local 4 // java.io.OutputStream out
        end local 3 // int length
        end local 2 // int off
        end local 1 // byte[] data
        end local 0 // org.bouncycastle.util.encoders.HexEncoder this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   20     0    this  Lorg/bouncycastle/util/encoders/HexEncoder;
            0   20     1    data  [B
            0   20     2     off  I
            0   20     3  length  I
            0   20     4     out  Ljava/io/OutputStream;
           12   18     5      b1  B
           16   18     6      b2  B
            1   20     7  outLen  I
            2   20     8     end  I
            8   20     9       i  I
    Exceptions:
      throws java.io.IOException
    MethodParameters:
        Name  Flags
      data    
      off     
      length  
      out     

  public int decode(java.lang.String, java.io.OutputStream);
    descriptor: (Ljava/lang/String;Ljava/io/OutputStream;)I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=8, args_size=3
        start local 0 // org.bouncycastle.util.encoders.HexEncoder this
        start local 1 // java.lang.String data
        start local 2 // java.io.OutputStream out
         0: .line 134
            iconst_0
            istore 5 /* length */
        start local 5 // int length
         1: .line 136
            aload 1 /* data */
            invokevirtual java.lang.String.length:()I
            istore 6 /* end */
        start local 6 // int end
         2: .line 138
            goto 6
         3: .line 140
      StackMap locals: org.bouncycastle.util.encoders.HexEncoder java.lang.String java.io.OutputStream top top int int
      StackMap stack:
            aload 0 /* this */
            aload 1 /* data */
            iload 6 /* end */
            iconst_1
            isub
            invokevirtual java.lang.String.charAt:(I)C
            invokevirtual org.bouncycastle.util.encoders.HexEncoder.ignore:(C)Z
            ifne 5
         4: .line 142
            goto 7
         5: .line 145
      StackMap locals:
      StackMap stack:
            iinc 6 /* end */ -1
         6: .line 138
      StackMap locals:
      StackMap stack:
            iload 6 /* end */
            ifgt 3
         7: .line 148
      StackMap locals:
      StackMap stack:
            iconst_0
            istore 7 /* i */
        start local 7 // int i
         8: .line 149
            goto 18
         9: .line 153
      StackMap locals: int
      StackMap stack:
            iinc 7 /* i */ 1
        10: .line 151
      StackMap locals:
      StackMap stack:
            iload 7 /* i */
            iload 6 /* end */
            if_icmpge 11
            aload 0 /* this */
            aload 1 /* data */
            iload 7 /* i */
            invokevirtual java.lang.String.charAt:(I)C
            invokevirtual org.bouncycastle.util.encoders.HexEncoder.ignore:(C)Z
            ifne 9
        11: .line 156
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.bouncycastle.util.encoders.HexEncoder.decodingTable:[B
            aload 1 /* data */
            iload 7 /* i */
            iinc 7 /* i */ 1
            invokevirtual java.lang.String.charAt:(I)C
            baload
            istore 3 /* b1 */
        start local 3 // byte b1
        12: .line 158
            goto 14
        13: .line 160
      StackMap locals: org.bouncycastle.util.encoders.HexEncoder java.lang.String java.io.OutputStream int top int int int
      StackMap stack:
            iinc 7 /* i */ 1
        14: .line 158
      StackMap locals:
      StackMap stack:
            iload 7 /* i */
            iload 6 /* end */
            if_icmpge 15
            aload 0 /* this */
            aload 1 /* data */
            iload 7 /* i */
            invokevirtual java.lang.String.charAt:(I)C
            invokevirtual org.bouncycastle.util.encoders.HexEncoder.ignore:(C)Z
            ifne 13
        15: .line 163
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.bouncycastle.util.encoders.HexEncoder.decodingTable:[B
            aload 1 /* data */
            iload 7 /* i */
            iinc 7 /* i */ 1
            invokevirtual java.lang.String.charAt:(I)C
            baload
            istore 4 /* b2 */
        start local 4 // byte b2
        16: .line 165
            aload 2 /* out */
            iload 3 /* b1 */
            iconst_4
            ishl
            iload 4 /* b2 */
            ior
            invokevirtual java.io.OutputStream.write:(I)V
        17: .line 167
            iinc 5 /* length */ 1
        end local 4 // byte b2
        end local 3 // byte b1
        18: .line 149
      StackMap locals: org.bouncycastle.util.encoders.HexEncoder java.lang.String java.io.OutputStream top top int int int
      StackMap stack:
            iload 7 /* i */
            iload 6 /* end */
            if_icmplt 10
        19: .line 170
            iload 5 /* length */
            ireturn
        end local 7 // int i
        end local 6 // int end
        end local 5 // int length
        end local 2 // java.io.OutputStream out
        end local 1 // java.lang.String data
        end local 0 // org.bouncycastle.util.encoders.HexEncoder this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   20     0    this  Lorg/bouncycastle/util/encoders/HexEncoder;
            0   20     1    data  Ljava/lang/String;
            0   20     2     out  Ljava/io/OutputStream;
           12   18     3      b1  B
           16   18     4      b2  B
            1   20     5  length  I
            2   20     6     end  I
            8   20     7       i  I
    Exceptions:
      throws java.io.IOException
    MethodParameters:
      Name  Flags
      data  
      out   
}
SourceFile: "HexEncoder.java"