public class org.bouncycastle.util.encoders.HexTranslator implements org.bouncycastle.util.encoders.Translator
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: org.bouncycastle.util.encoders.HexTranslator
  super_class: java.lang.Object
{
  private static final byte[] hexTable;
    descriptor: [B
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=4, locals=0, args_size=0
         0: .line 10
            bipush 16
            newarray 8
            dup
            iconst_0
         1: .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
         2: .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
         3: .line 9
            putstatic org.bouncycastle.util.encoders.HexTranslator.hexTable:[B
         4: .line 13
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

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

  public int getEncodedBlockSize();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.bouncycastle.util.encoders.HexTranslator this
         0: .line 21
            iconst_2
            ireturn
        end local 0 // org.bouncycastle.util.encoders.HexTranslator this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/bouncycastle/util/encoders/HexTranslator;

  public int encode(byte[], int, int, byte[], int);
    descriptor: ([BII[BI)I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=8, args_size=6
        start local 0 // org.bouncycastle.util.encoders.HexTranslator this
        start local 1 // byte[] in
        start local 2 // int inOff
        start local 3 // int length
        start local 4 // byte[] out
        start local 5 // int outOff
         0: .line 31
            iconst_0
            istore 6 /* i */
        start local 6 // int i
         1: iconst_0
            istore 7 /* j */
        start local 7 // int j
         2: goto 7
         3: .line 33
      StackMap locals: int int
      StackMap stack:
            aload 4 /* out */
            iload 5 /* outOff */
            iload 7 /* j */
            iadd
            getstatic org.bouncycastle.util.encoders.HexTranslator.hexTable:[B
            aload 1 /* in */
            iload 2 /* inOff */
            baload
            iconst_4
            ishr
            bipush 15
            iand
            baload
            bastore
         4: .line 34
            aload 4 /* out */
            iload 5 /* outOff */
            iload 7 /* j */
            iadd
            iconst_1
            iadd
            getstatic org.bouncycastle.util.encoders.HexTranslator.hexTable:[B
            aload 1 /* in */
            iload 2 /* inOff */
            baload
            bipush 15
            iand
            baload
            bastore
         5: .line 36
            iinc 2 /* inOff */ 1
         6: .line 31
            iinc 6 /* i */ 1
            iinc 7 /* j */ 2
      StackMap locals:
      StackMap stack:
         7: iload 6 /* i */
            iload 3 /* length */
            if_icmplt 3
        end local 7 // int j
        end local 6 // int i
         8: .line 39
            iload 3 /* length */
            iconst_2
            imul
            ireturn
        end local 5 // int outOff
        end local 4 // byte[] out
        end local 3 // int length
        end local 2 // int inOff
        end local 1 // byte[] in
        end local 0 // org.bouncycastle.util.encoders.HexTranslator this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    9     0    this  Lorg/bouncycastle/util/encoders/HexTranslator;
            0    9     1      in  [B
            0    9     2   inOff  I
            0    9     3  length  I
            0    9     4     out  [B
            0    9     5  outOff  I
            1    8     6       i  I
            2    8     7       j  I
    MethodParameters:
        Name  Flags
      in      
      inOff   
      length  
      out     
      outOff  

  public int getDecodedBlockSize();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.bouncycastle.util.encoders.HexTranslator this
         0: .line 48
            iconst_1
            ireturn
        end local 0 // org.bouncycastle.util.encoders.HexTranslator this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/bouncycastle/util/encoders/HexTranslator;

  public int decode(byte[], int, int, byte[], int);
    descriptor: ([BII[BI)I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=10, args_size=6
        start local 0 // org.bouncycastle.util.encoders.HexTranslator this
        start local 1 // byte[] in
        start local 2 // int inOff
        start local 3 // int length
        start local 4 // byte[] out
        start local 5 // int outOff
         0: .line 58
            iload 3 /* length */
            iconst_2
            idiv
            istore 6 /* halfLength */
        start local 6 // int halfLength
         1: .line 60
            iconst_0
            istore 9 /* i */
        start local 9 // int i
         2: goto 15
         3: .line 62
      StackMap locals: org.bouncycastle.util.encoders.HexTranslator byte[] int int byte[] int int top top int
      StackMap stack:
            aload 1 /* in */
            iload 2 /* inOff */
            iload 9 /* i */
            iconst_2
            imul
            iadd
            baload
            istore 7 /* left */
        start local 7 // byte left
         4: .line 63
            aload 1 /* in */
            iload 2 /* inOff */
            iload 9 /* i */
            iconst_2
            imul
            iadd
            iconst_1
            iadd
            baload
            istore 8 /* right */
        start local 8 // byte right
         5: .line 65
            iload 7 /* left */
            bipush 97
            if_icmpge 8
         6: .line 67
            aload 4 /* out */
            iload 5 /* outOff */
            iload 7 /* left */
            bipush 48
            isub
            iconst_4
            ishl
            i2b
            bastore
         7: .line 68
            goto 9
         8: .line 71
      StackMap locals: org.bouncycastle.util.encoders.HexTranslator byte[] int int byte[] int int int int int
      StackMap stack:
            aload 4 /* out */
            iload 5 /* outOff */
            iload 7 /* left */
            bipush 97
            isub
            bipush 10
            iadd
            iconst_4
            ishl
            i2b
            bastore
         9: .line 73
      StackMap locals:
      StackMap stack:
            iload 8 /* right */
            bipush 97
            if_icmpge 12
        10: .line 75
            aload 4 /* out */
            iload 5 /* outOff */
            dup2
            baload
            iload 8 /* right */
            bipush 48
            isub
            i2b
            iadd
            i2b
            bastore
        11: .line 76
            goto 13
        12: .line 79
      StackMap locals:
      StackMap stack:
            aload 4 /* out */
            iload 5 /* outOff */
            dup2
            baload
            iload 8 /* right */
            bipush 97
            isub
            bipush 10
            iadd
            i2b
            iadd
            i2b
            bastore
        13: .line 82
      StackMap locals:
      StackMap stack:
            iinc 5 /* outOff */ 1
        14: .line 60
            iinc 9 /* i */ 1
        end local 8 // byte right
        end local 7 // byte left
      StackMap locals: org.bouncycastle.util.encoders.HexTranslator byte[] int int byte[] int int top top int
      StackMap stack:
        15: iload 9 /* i */
            iload 6 /* halfLength */
            if_icmplt 3
        end local 9 // int i
        16: .line 85
            iload 6 /* halfLength */
            ireturn
        end local 6 // int halfLength
        end local 5 // int outOff
        end local 4 // byte[] out
        end local 3 // int length
        end local 2 // int inOff
        end local 1 // byte[] in
        end local 0 // org.bouncycastle.util.encoders.HexTranslator this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   17     0        this  Lorg/bouncycastle/util/encoders/HexTranslator;
            0   17     1          in  [B
            0   17     2       inOff  I
            0   17     3      length  I
            0   17     4         out  [B
            0   17     5      outOff  I
            1   17     6  halfLength  I
            4   15     7        left  B
            5   15     8       right  B
            2   16     9           i  I
    MethodParameters:
        Name  Flags
      in      
      inOff   
      length  
      out     
      outOff  
}
SourceFile: "HexTranslator.java"