public class org.bouncycastle.util.encoders.Base64Encoder 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.Base64Encoder
  super_class: java.lang.Object
{
  protected final byte[] encodingTable;
    descriptor: [B
    flags: (0x0014) ACC_PROTECTED, ACC_FINAL

  protected byte padding;
    descriptor: B
    flags: (0x0004) ACC_PROTECTED

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

  protected void initialiseDecodingTable();
    descriptor: ()V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=3, locals=2, args_size=1
        start local 0 // org.bouncycastle.util.encoders.Base64Encoder this
         0: .line 34
            iconst_0
            istore 1 /* i */
        start local 1 // int i
         1: goto 4
         2: .line 36
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            getfield org.bouncycastle.util.encoders.Base64Encoder.decodingTable:[B
            aload 0 /* this */
            getfield org.bouncycastle.util.encoders.Base64Encoder.encodingTable:[B
            iload 1 /* i */
            baload
            iload 1 /* i */
            i2b
            bastore
         3: .line 34
            iinc 1 /* i */ 1
      StackMap locals:
      StackMap stack:
         4: iload 1 /* i */
            aload 0 /* this */
            getfield org.bouncycastle.util.encoders.Base64Encoder.encodingTable:[B
            arraylength
            if_icmplt 2
        end local 1 // int i
         5: .line 38
            return
        end local 0 // org.bouncycastle.util.encoders.Base64Encoder this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    6     0  this  Lorg/bouncycastle/util/encoders/Base64Encoder;
            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.Base64Encoder this
         0: .line 40
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 9
            aload 0 /* this */
         2: .line 10
            bipush 64
            newarray 8
            dup
            iconst_0
         3: .line 11
            bipush 65
            bastore
            dup
            iconst_1
            bipush 66
            bastore
            dup
            iconst_2
            bipush 67
            bastore
            dup
            iconst_3
            bipush 68
            bastore
            dup
            iconst_4
            bipush 69
            bastore
            dup
            iconst_5
            bipush 70
            bastore
            dup
            bipush 6
            bipush 71
            bastore
            dup
            bipush 7
         4: .line 12
            bipush 72
            bastore
            dup
            bipush 8
            bipush 73
            bastore
            dup
            bipush 9
            bipush 74
            bastore
            dup
            bipush 10
            bipush 75
            bastore
            dup
            bipush 11
            bipush 76
            bastore
            dup
            bipush 12
            bipush 77
            bastore
            dup
            bipush 13
            bipush 78
            bastore
            dup
            bipush 14
         5: .line 13
            bipush 79
            bastore
            dup
            bipush 15
            bipush 80
            bastore
            dup
            bipush 16
            bipush 81
            bastore
            dup
            bipush 17
            bipush 82
            bastore
            dup
            bipush 18
            bipush 83
            bastore
            dup
            bipush 19
            bipush 84
            bastore
            dup
            bipush 20
            bipush 85
            bastore
            dup
            bipush 21
         6: .line 14
            bipush 86
            bastore
            dup
            bipush 22
            bipush 87
            bastore
            dup
            bipush 23
            bipush 88
            bastore
            dup
            bipush 24
            bipush 89
            bastore
            dup
            bipush 25
            bipush 90
            bastore
            dup
            bipush 26
         7: .line 15
            bipush 97
            bastore
            dup
            bipush 27
            bipush 98
            bastore
            dup
            bipush 28
            bipush 99
            bastore
            dup
            bipush 29
            bipush 100
            bastore
            dup
            bipush 30
            bipush 101
            bastore
            dup
            bipush 31
            bipush 102
            bastore
            dup
            bipush 32
            bipush 103
            bastore
            dup
            bipush 33
         8: .line 16
            bipush 104
            bastore
            dup
            bipush 34
            bipush 105
            bastore
            dup
            bipush 35
            bipush 106
            bastore
            dup
            bipush 36
            bipush 107
            bastore
            dup
            bipush 37
            bipush 108
            bastore
            dup
            bipush 38
            bipush 109
            bastore
            dup
            bipush 39
            bipush 110
            bastore
            dup
            bipush 40
         9: .line 17
            bipush 111
            bastore
            dup
            bipush 41
            bipush 112
            bastore
            dup
            bipush 42
            bipush 113
            bastore
            dup
            bipush 43
            bipush 114
            bastore
            dup
            bipush 44
            bipush 115
            bastore
            dup
            bipush 45
            bipush 116
            bastore
            dup
            bipush 46
            bipush 117
            bastore
            dup
            bipush 47
        10: .line 18
            bipush 118
            bastore
            dup
            bipush 48
        11: .line 19
            bipush 119
            bastore
            dup
            bipush 49
            bipush 120
            bastore
            dup
            bipush 50
            bipush 121
            bastore
            dup
            bipush 51
            bipush 122
            bastore
            dup
            bipush 52
        12: .line 20
            bipush 48
            bastore
            dup
            bipush 53
            bipush 49
            bastore
            dup
            bipush 54
            bipush 50
            bastore
            dup
            bipush 55
            bipush 51
            bastore
            dup
            bipush 56
            bipush 52
            bastore
            dup
            bipush 57
            bipush 53
            bastore
            dup
            bipush 58
            bipush 54
            bastore
            dup
            bipush 59
        13: .line 21
            bipush 55
            bastore
            dup
            bipush 60
            bipush 56
            bastore
            dup
            bipush 61
            bipush 57
            bastore
            dup
            bipush 62
        14: .line 22
            bipush 43
            bastore
            dup
            bipush 63
            bipush 47
            bastore
            putfield org.bouncycastle.util.encoders.Base64Encoder.encodingTable:[B
        15: .line 25
            aload 0 /* this */
            bipush 61
            putfield org.bouncycastle.util.encoders.Base64Encoder.padding:B
        16: .line 30
            aload 0 /* this */
            sipush 128
            newarray 8
            putfield org.bouncycastle.util.encoders.Base64Encoder.decodingTable:[B
        17: .line 42
            aload 0 /* this */
            invokevirtual org.bouncycastle.util.encoders.Base64Encoder.initialiseDecodingTable:()V
        18: .line 43
            return
        end local 0 // org.bouncycastle.util.encoders.Base64Encoder this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   19     0  this  Lorg/bouncycastle/util/encoders/Base64Encoder;

  public int encode(byte[], int, int, java.io.OutputStream);
    descriptor: ([BIILjava/io/OutputStream;)I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=15, args_size=5
        start local 0 // org.bouncycastle.util.encoders.Base64Encoder 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 57
            iload 3 /* length */
            iconst_3
            irem
            istore 5 /* modulus */
        start local 5 // int modulus
         1: .line 58
            iload 3 /* length */
            iload 5 /* modulus */
            isub
            istore 6 /* dataLength */
        start local 6 // int dataLength
         2: .line 61
            iload 2 /* off */
            istore 10 /* i */
        start local 10 // int i
         3: goto 12
         4: .line 63
      StackMap locals: org.bouncycastle.util.encoders.Base64Encoder byte[] int int java.io.OutputStream int int top top top int
      StackMap stack:
            aload 1 /* data */
            iload 10 /* i */
            baload
            sipush 255
            iand
            istore 7 /* a1 */
        start local 7 // int a1
         5: .line 64
            aload 1 /* data */
            iload 10 /* i */
            iconst_1
            iadd
            baload
            sipush 255
            iand
            istore 8 /* a2 */
        start local 8 // int a2
         6: .line 65
            aload 1 /* data */
            iload 10 /* i */
            iconst_2
            iadd
            baload
            sipush 255
            iand
            istore 9 /* a3 */
        start local 9 // int a3
         7: .line 67
            aload 4 /* out */
            aload 0 /* this */
            getfield org.bouncycastle.util.encoders.Base64Encoder.encodingTable:[B
            iload 7 /* a1 */
            iconst_2
            iushr
            bipush 63
            iand
            baload
            invokevirtual java.io.OutputStream.write:(I)V
         8: .line 68
            aload 4 /* out */
            aload 0 /* this */
            getfield org.bouncycastle.util.encoders.Base64Encoder.encodingTable:[B
            iload 7 /* a1 */
            iconst_4
            ishl
            iload 8 /* a2 */
            iconst_4
            iushr
            ior
            bipush 63
            iand
            baload
            invokevirtual java.io.OutputStream.write:(I)V
         9: .line 69
            aload 4 /* out */
            aload 0 /* this */
            getfield org.bouncycastle.util.encoders.Base64Encoder.encodingTable:[B
            iload 8 /* a2 */
            iconst_2
            ishl
            iload 9 /* a3 */
            bipush 6
            iushr
            ior
            bipush 63
            iand
            baload
            invokevirtual java.io.OutputStream.write:(I)V
        10: .line 70
            aload 4 /* out */
            aload 0 /* this */
            getfield org.bouncycastle.util.encoders.Base64Encoder.encodingTable:[B
            iload 9 /* a3 */
            bipush 63
            iand
            baload
            invokevirtual java.io.OutputStream.write:(I)V
        11: .line 61
            iinc 10 /* i */ 3
        end local 9 // int a3
        end local 8 // int a2
        end local 7 // int a1
      StackMap locals:
      StackMap stack:
        12: iload 10 /* i */
            iload 2 /* off */
            iload 6 /* dataLength */
            iadd
            if_icmplt 4
        end local 10 // int i
        13: .line 79
            iload 5 /* modulus */
            tableswitch { // 0 - 2
                    0: 14
                    1: 15
                    2: 23
              default: 32
          }
        14: .line 82
      StackMap locals: org.bouncycastle.util.encoders.Base64Encoder byte[] int int java.io.OutputStream int int
      StackMap stack:
            goto 32
        15: .line 84
      StackMap locals:
      StackMap stack:
            aload 1 /* data */
            iload 2 /* off */
            iload 6 /* dataLength */
            iadd
            baload
            sipush 255
            iand
            istore 13 /* d1 */
        start local 13 // int d1
        16: .line 85
            iload 13 /* d1 */
            iconst_2
            iushr
            bipush 63
            iand
            istore 10 /* b1 */
        start local 10 // int b1
        17: .line 86
            iload 13 /* d1 */
            iconst_4
            ishl
            bipush 63
            iand
            istore 11 /* b2 */
        start local 11 // int b2
        18: .line 88
            aload 4 /* out */
            aload 0 /* this */
            getfield org.bouncycastle.util.encoders.Base64Encoder.encodingTable:[B
            iload 10 /* b1 */
            baload
            invokevirtual java.io.OutputStream.write:(I)V
        19: .line 89
            aload 4 /* out */
            aload 0 /* this */
            getfield org.bouncycastle.util.encoders.Base64Encoder.encodingTable:[B
            iload 11 /* b2 */
            baload
            invokevirtual java.io.OutputStream.write:(I)V
        20: .line 90
            aload 4 /* out */
            aload 0 /* this */
            getfield org.bouncycastle.util.encoders.Base64Encoder.padding:B
            invokevirtual java.io.OutputStream.write:(I)V
        21: .line 91
            aload 4 /* out */
            aload 0 /* this */
            getfield org.bouncycastle.util.encoders.Base64Encoder.padding:B
            invokevirtual java.io.OutputStream.write:(I)V
        22: .line 92
            goto 32
        end local 13 // int d1
        end local 11 // int b2
        end local 10 // int b1
        23: .line 94
      StackMap locals:
      StackMap stack:
            aload 1 /* data */
            iload 2 /* off */
            iload 6 /* dataLength */
            iadd
            baload
            sipush 255
            iand
            istore 13 /* d1 */
        start local 13 // int d1
        24: .line 95
            aload 1 /* data */
            iload 2 /* off */
            iload 6 /* dataLength */
            iadd
            iconst_1
            iadd
            baload
            sipush 255
            iand
            istore 14 /* d2 */
        start local 14 // int d2
        25: .line 97
            iload 13 /* d1 */
            iconst_2
            iushr
            bipush 63
            iand
            istore 10 /* b1 */
        start local 10 // int b1
        26: .line 98
            iload 13 /* d1 */
            iconst_4
            ishl
            iload 14 /* d2 */
            iconst_4
            iushr
            ior
            bipush 63
            iand
            istore 11 /* b2 */
        start local 11 // int b2
        27: .line 99
            iload 14 /* d2 */
            iconst_2
            ishl
            bipush 63
            iand
            istore 12 /* b3 */
        start local 12 // int b3
        28: .line 101
            aload 4 /* out */
            aload 0 /* this */
            getfield org.bouncycastle.util.encoders.Base64Encoder.encodingTable:[B
            iload 10 /* b1 */
            baload
            invokevirtual java.io.OutputStream.write:(I)V
        29: .line 102
            aload 4 /* out */
            aload 0 /* this */
            getfield org.bouncycastle.util.encoders.Base64Encoder.encodingTable:[B
            iload 11 /* b2 */
            baload
            invokevirtual java.io.OutputStream.write:(I)V
        30: .line 103
            aload 4 /* out */
            aload 0 /* this */
            getfield org.bouncycastle.util.encoders.Base64Encoder.encodingTable:[B
            iload 12 /* b3 */
            baload
            invokevirtual java.io.OutputStream.write:(I)V
        31: .line 104
            aload 4 /* out */
            aload 0 /* this */
            getfield org.bouncycastle.util.encoders.Base64Encoder.padding:B
            invokevirtual java.io.OutputStream.write:(I)V
        end local 14 // int d2
        end local 13 // int d1
        end local 12 // int b3
        end local 11 // int b2
        end local 10 // int b1
        32: .line 108
      StackMap locals:
      StackMap stack:
            iload 6 /* dataLength */
            iconst_3
            idiv
            iconst_4
            imul
            iload 5 /* modulus */
            ifne 33
            iconst_0
            goto 34
      StackMap locals:
      StackMap stack: int
        33: iconst_4
      StackMap locals: org.bouncycastle.util.encoders.Base64Encoder byte[] int int java.io.OutputStream int int
      StackMap stack: int int
        34: iadd
            ireturn
        end local 6 // int dataLength
        end local 5 // int modulus
        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.Base64Encoder this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   35     0        this  Lorg/bouncycastle/util/encoders/Base64Encoder;
            0   35     1        data  [B
            0   35     2         off  I
            0   35     3      length  I
            0   35     4         out  Ljava/io/OutputStream;
            1   35     5     modulus  I
            2   35     6  dataLength  I
            5   12     7          a1  I
            6   12     8          a2  I
            7   12     9          a3  I
            3   13    10           i  I
           17   23    10          b1  I
           26   32    10          b1  I
           18   23    11          b2  I
           27   32    11          b2  I
           28   32    12          b3  I
           16   23    13          d1  I
           24   32    13          d1  I
           25   32    14          d2  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.Base64Encoder this
        start local 1 // char c
         0: .line 114
            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.Base64Encoder this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/bouncycastle/util/encoders/Base64Encoder;
            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=9, locals=13, args_size=5
        start local 0 // org.bouncycastle.util.encoders.Base64Encoder 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 131
            iconst_0
            istore 9 /* outLen */
        start local 9 // int outLen
         1: .line 133
            iload 2 /* off */
            iload 3 /* length */
            iadd
            istore 10 /* end */
        start local 10 // int end
         2: .line 135
            goto 6
         3: .line 137
      StackMap locals: org.bouncycastle.util.encoders.Base64Encoder byte[] int int java.io.OutputStream top top top top int int
      StackMap stack:
            aload 0 /* this */
            aload 1 /* data */
            iload 10 /* end */
            iconst_1
            isub
            baload
            i2c
            invokevirtual org.bouncycastle.util.encoders.Base64Encoder.ignore:(C)Z
            ifne 5
         4: .line 139
            goto 7
         5: .line 142
      StackMap locals:
      StackMap stack:
            iinc 10 /* end */ -1
         6: .line 135
      StackMap locals:
      StackMap stack:
            iload 10 /* end */
            iload 2 /* off */
            if_icmpgt 3
         7: .line 145
      StackMap locals:
      StackMap stack:
            iload 2 /* off */
            istore 11 /* i */
        start local 11 // int i
         8: .line 146
            iload 10 /* end */
            iconst_4
            isub
            istore 12 /* finish */
        start local 12 // int finish
         9: .line 148
            aload 0 /* this */
            aload 1 /* data */
            iload 11 /* i */
            iload 12 /* finish */
            invokevirtual org.bouncycastle.util.encoders.Base64Encoder.nextI:([BII)I
            istore 11 /* i */
        10: .line 150
            goto 23
        11: .line 152
      StackMap locals: int int
      StackMap stack:
            aload 0 /* this */
            getfield org.bouncycastle.util.encoders.Base64Encoder.decodingTable:[B
            aload 1 /* data */
            iload 11 /* i */
            iinc 11 /* i */ 1
            baload
            baload
            istore 5 /* b1 */
        start local 5 // byte b1
        12: .line 154
            aload 0 /* this */
            aload 1 /* data */
            iload 11 /* i */
            iload 12 /* finish */
            invokevirtual org.bouncycastle.util.encoders.Base64Encoder.nextI:([BII)I
            istore 11 /* i */
        13: .line 156
            aload 0 /* this */
            getfield org.bouncycastle.util.encoders.Base64Encoder.decodingTable:[B
            aload 1 /* data */
            iload 11 /* i */
            iinc 11 /* i */ 1
            baload
            baload
            istore 6 /* b2 */
        start local 6 // byte b2
        14: .line 158
            aload 0 /* this */
            aload 1 /* data */
            iload 11 /* i */
            iload 12 /* finish */
            invokevirtual org.bouncycastle.util.encoders.Base64Encoder.nextI:([BII)I
            istore 11 /* i */
        15: .line 160
            aload 0 /* this */
            getfield org.bouncycastle.util.encoders.Base64Encoder.decodingTable:[B
            aload 1 /* data */
            iload 11 /* i */
            iinc 11 /* i */ 1
            baload
            baload
            istore 7 /* b3 */
        start local 7 // byte b3
        16: .line 162
            aload 0 /* this */
            aload 1 /* data */
            iload 11 /* i */
            iload 12 /* finish */
            invokevirtual org.bouncycastle.util.encoders.Base64Encoder.nextI:([BII)I
            istore 11 /* i */
        17: .line 164
            aload 0 /* this */
            getfield org.bouncycastle.util.encoders.Base64Encoder.decodingTable:[B
            aload 1 /* data */
            iload 11 /* i */
            iinc 11 /* i */ 1
            baload
            baload
            istore 8 /* b4 */
        start local 8 // byte b4
        18: .line 166
            aload 4 /* out */
            iload 5 /* b1 */
            iconst_2
            ishl
            iload 6 /* b2 */
            iconst_4
            ishr
            ior
            invokevirtual java.io.OutputStream.write:(I)V
        19: .line 167
            aload 4 /* out */
            iload 6 /* b2 */
            iconst_4
            ishl
            iload 7 /* b3 */
            iconst_2
            ishr
            ior
            invokevirtual java.io.OutputStream.write:(I)V
        20: .line 168
            aload 4 /* out */
            iload 7 /* b3 */
            bipush 6
            ishl
            iload 8 /* b4 */
            ior
            invokevirtual java.io.OutputStream.write:(I)V
        21: .line 170
            iinc 9 /* outLen */ 3
        22: .line 172
            aload 0 /* this */
            aload 1 /* data */
            iload 11 /* i */
            iload 12 /* finish */
            invokevirtual org.bouncycastle.util.encoders.Base64Encoder.nextI:([BII)I
            istore 11 /* i */
        end local 8 // byte b4
        end local 7 // byte b3
        end local 6 // byte b2
        end local 5 // byte b1
        23: .line 150
      StackMap locals:
      StackMap stack:
            iload 11 /* i */
            iload 12 /* finish */
            if_icmplt 11
        24: .line 175
            iload 9 /* outLen */
            aload 0 /* this */
            aload 4 /* out */
            aload 1 /* data */
            iload 10 /* end */
            iconst_4
            isub
            baload
            i2c
            aload 1 /* data */
            iload 10 /* end */
            iconst_3
            isub
            baload
            i2c
            aload 1 /* data */
            iload 10 /* end */
            iconst_2
            isub
            baload
            i2c
            aload 1 /* data */
            iload 10 /* end */
            iconst_1
            isub
            baload
            i2c
            invokevirtual org.bouncycastle.util.encoders.Base64Encoder.decodeLastBlock:(Ljava/io/OutputStream;CCCC)I
            iadd
            istore 9 /* outLen */
        25: .line 177
            iload 9 /* outLen */
            ireturn
        end local 12 // int finish
        end local 11 // int i
        end local 10 // int end
        end local 9 // 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.Base64Encoder this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   26     0    this  Lorg/bouncycastle/util/encoders/Base64Encoder;
            0   26     1    data  [B
            0   26     2     off  I
            0   26     3  length  I
            0   26     4     out  Ljava/io/OutputStream;
           12   23     5      b1  B
           14   23     6      b2  B
           16   23     7      b3  B
           18   23     8      b4  B
            1   26     9  outLen  I
            2   26    10     end  I
            8   26    11       i  I
            9   26    12  finish  I
    Exceptions:
      throws java.io.IOException
    MethodParameters:
        Name  Flags
      data    
      off     
      length  
      out     

  private int nextI(byte[], int, int);
    descriptor: ([BII)I
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=4, args_size=4
        start local 0 // org.bouncycastle.util.encoders.Base64Encoder this
        start local 1 // byte[] data
        start local 2 // int i
        start local 3 // int finish
         0: .line 182
            goto 2
         1: .line 184
      StackMap locals:
      StackMap stack:
            iinc 2 /* i */ 1
         2: .line 182
      StackMap locals:
      StackMap stack:
            iload 2 /* i */
            iload 3 /* finish */
            if_icmpge 3
            aload 0 /* this */
            aload 1 /* data */
            iload 2 /* i */
            baload
            i2c
            invokevirtual org.bouncycastle.util.encoders.Base64Encoder.ignore:(C)Z
            ifne 1
         3: .line 186
      StackMap locals:
      StackMap stack:
            iload 2 /* i */
            ireturn
        end local 3 // int finish
        end local 2 // int i
        end local 1 // byte[] data
        end local 0 // org.bouncycastle.util.encoders.Base64Encoder this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    4     0    this  Lorg/bouncycastle/util/encoders/Base64Encoder;
            0    4     1    data  [B
            0    4     2       i  I
            0    4     3  finish  I
    MethodParameters:
        Name  Flags
      data    
      i       
      finish  

  public int decode(java.lang.String, java.io.OutputStream);
    descriptor: (Ljava/lang/String;Ljava/io/OutputStream;)I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=9, locals=11, args_size=3
        start local 0 // org.bouncycastle.util.encoders.Base64Encoder this
        start local 1 // java.lang.String data
        start local 2 // java.io.OutputStream out
         0: .line 201
            iconst_0
            istore 7 /* length */
        start local 7 // int length
         1: .line 203
            aload 1 /* data */
            invokevirtual java.lang.String.length:()I
            istore 8 /* end */
        start local 8 // int end
         2: .line 205
            goto 6
         3: .line 207
      StackMap locals: org.bouncycastle.util.encoders.Base64Encoder java.lang.String java.io.OutputStream top top top top int int
      StackMap stack:
            aload 0 /* this */
            aload 1 /* data */
            iload 8 /* end */
            iconst_1
            isub
            invokevirtual java.lang.String.charAt:(I)C
            invokevirtual org.bouncycastle.util.encoders.Base64Encoder.ignore:(C)Z
            ifne 5
         4: .line 209
            goto 7
         5: .line 212
      StackMap locals:
      StackMap stack:
            iinc 8 /* end */ -1
         6: .line 205
      StackMap locals:
      StackMap stack:
            iload 8 /* end */
            ifgt 3
         7: .line 215
      StackMap locals:
      StackMap stack:
            iconst_0
            istore 9 /* i */
        start local 9 // int i
         8: .line 216
            iload 8 /* end */
            iconst_4
            isub
            istore 10 /* finish */
        start local 10 // int finish
         9: .line 218
            aload 0 /* this */
            aload 1 /* data */
            iload 9 /* i */
            iload 10 /* finish */
            invokevirtual org.bouncycastle.util.encoders.Base64Encoder.nextI:(Ljava/lang/String;II)I
            istore 9 /* i */
        10: .line 220
            goto 23
        11: .line 222
      StackMap locals: int int
      StackMap stack:
            aload 0 /* this */
            getfield org.bouncycastle.util.encoders.Base64Encoder.decodingTable:[B
            aload 1 /* data */
            iload 9 /* i */
            iinc 9 /* i */ 1
            invokevirtual java.lang.String.charAt:(I)C
            baload
            istore 3 /* b1 */
        start local 3 // byte b1
        12: .line 224
            aload 0 /* this */
            aload 1 /* data */
            iload 9 /* i */
            iload 10 /* finish */
            invokevirtual org.bouncycastle.util.encoders.Base64Encoder.nextI:(Ljava/lang/String;II)I
            istore 9 /* i */
        13: .line 226
            aload 0 /* this */
            getfield org.bouncycastle.util.encoders.Base64Encoder.decodingTable:[B
            aload 1 /* data */
            iload 9 /* i */
            iinc 9 /* i */ 1
            invokevirtual java.lang.String.charAt:(I)C
            baload
            istore 4 /* b2 */
        start local 4 // byte b2
        14: .line 228
            aload 0 /* this */
            aload 1 /* data */
            iload 9 /* i */
            iload 10 /* finish */
            invokevirtual org.bouncycastle.util.encoders.Base64Encoder.nextI:(Ljava/lang/String;II)I
            istore 9 /* i */
        15: .line 230
            aload 0 /* this */
            getfield org.bouncycastle.util.encoders.Base64Encoder.decodingTable:[B
            aload 1 /* data */
            iload 9 /* i */
            iinc 9 /* i */ 1
            invokevirtual java.lang.String.charAt:(I)C
            baload
            istore 5 /* b3 */
        start local 5 // byte b3
        16: .line 232
            aload 0 /* this */
            aload 1 /* data */
            iload 9 /* i */
            iload 10 /* finish */
            invokevirtual org.bouncycastle.util.encoders.Base64Encoder.nextI:(Ljava/lang/String;II)I
            istore 9 /* i */
        17: .line 234
            aload 0 /* this */
            getfield org.bouncycastle.util.encoders.Base64Encoder.decodingTable:[B
            aload 1 /* data */
            iload 9 /* i */
            iinc 9 /* i */ 1
            invokevirtual java.lang.String.charAt:(I)C
            baload
            istore 6 /* b4 */
        start local 6 // byte b4
        18: .line 236
            aload 2 /* out */
            iload 3 /* b1 */
            iconst_2
            ishl
            iload 4 /* b2 */
            iconst_4
            ishr
            ior
            invokevirtual java.io.OutputStream.write:(I)V
        19: .line 237
            aload 2 /* out */
            iload 4 /* b2 */
            iconst_4
            ishl
            iload 5 /* b3 */
            iconst_2
            ishr
            ior
            invokevirtual java.io.OutputStream.write:(I)V
        20: .line 238
            aload 2 /* out */
            iload 5 /* b3 */
            bipush 6
            ishl
            iload 6 /* b4 */
            ior
            invokevirtual java.io.OutputStream.write:(I)V
        21: .line 240
            iinc 7 /* length */ 3
        22: .line 242
            aload 0 /* this */
            aload 1 /* data */
            iload 9 /* i */
            iload 10 /* finish */
            invokevirtual org.bouncycastle.util.encoders.Base64Encoder.nextI:(Ljava/lang/String;II)I
            istore 9 /* i */
        end local 6 // byte b4
        end local 5 // byte b3
        end local 4 // byte b2
        end local 3 // byte b1
        23: .line 220
      StackMap locals:
      StackMap stack:
            iload 9 /* i */
            iload 10 /* finish */
            if_icmplt 11
        24: .line 245
            iload 7 /* length */
            aload 0 /* this */
            aload 2 /* out */
            aload 1 /* data */
            iload 8 /* end */
            iconst_4
            isub
            invokevirtual java.lang.String.charAt:(I)C
            aload 1 /* data */
            iload 8 /* end */
            iconst_3
            isub
            invokevirtual java.lang.String.charAt:(I)C
            aload 1 /* data */
            iload 8 /* end */
            iconst_2
            isub
            invokevirtual java.lang.String.charAt:(I)C
            aload 1 /* data */
            iload 8 /* end */
            iconst_1
            isub
            invokevirtual java.lang.String.charAt:(I)C
            invokevirtual org.bouncycastle.util.encoders.Base64Encoder.decodeLastBlock:(Ljava/io/OutputStream;CCCC)I
            iadd
            istore 7 /* length */
        25: .line 247
            iload 7 /* length */
            ireturn
        end local 10 // int finish
        end local 9 // int i
        end local 8 // int end
        end local 7 // int length
        end local 2 // java.io.OutputStream out
        end local 1 // java.lang.String data
        end local 0 // org.bouncycastle.util.encoders.Base64Encoder this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   26     0    this  Lorg/bouncycastle/util/encoders/Base64Encoder;
            0   26     1    data  Ljava/lang/String;
            0   26     2     out  Ljava/io/OutputStream;
           12   23     3      b1  B
           14   23     4      b2  B
           16   23     5      b3  B
           18   23     6      b4  B
            1   26     7  length  I
            2   26     8     end  I
            8   26     9       i  I
            9   26    10  finish  I
    Exceptions:
      throws java.io.IOException
    MethodParameters:
      Name  Flags
      data  
      out   

  private int decodeLastBlock(java.io.OutputStream, char, char, char, char);
    descriptor: (Ljava/io/OutputStream;CCCC)I
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=10, args_size=6
        start local 0 // org.bouncycastle.util.encoders.Base64Encoder this
        start local 1 // java.io.OutputStream out
        start local 2 // char c1
        start local 3 // char c2
        start local 4 // char c3
        start local 5 // char c4
         0: .line 255
            iload 4 /* c3 */
            aload 0 /* this */
            getfield org.bouncycastle.util.encoders.Base64Encoder.padding:B
            if_icmpne 5
         1: .line 257
            aload 0 /* this */
            getfield org.bouncycastle.util.encoders.Base64Encoder.decodingTable:[B
            iload 2 /* c1 */
            baload
            istore 6 /* b1 */
        start local 6 // byte b1
         2: .line 258
            aload 0 /* this */
            getfield org.bouncycastle.util.encoders.Base64Encoder.decodingTable:[B
            iload 3 /* c2 */
            baload
            istore 7 /* b2 */
        start local 7 // byte b2
         3: .line 260
            aload 1 /* out */
            iload 6 /* b1 */
            iconst_2
            ishl
            iload 7 /* b2 */
            iconst_4
            ishr
            ior
            invokevirtual java.io.OutputStream.write:(I)V
         4: .line 262
            iconst_1
            ireturn
        end local 7 // byte b2
        end local 6 // byte b1
         5: .line 264
      StackMap locals:
      StackMap stack:
            iload 5 /* c4 */
            aload 0 /* this */
            getfield org.bouncycastle.util.encoders.Base64Encoder.padding:B
            if_icmpne 12
         6: .line 266
            aload 0 /* this */
            getfield org.bouncycastle.util.encoders.Base64Encoder.decodingTable:[B
            iload 2 /* c1 */
            baload
            istore 6 /* b1 */
        start local 6 // byte b1
         7: .line 267
            aload 0 /* this */
            getfield org.bouncycastle.util.encoders.Base64Encoder.decodingTable:[B
            iload 3 /* c2 */
            baload
            istore 7 /* b2 */
        start local 7 // byte b2
         8: .line 268
            aload 0 /* this */
            getfield org.bouncycastle.util.encoders.Base64Encoder.decodingTable:[B
            iload 4 /* c3 */
            baload
            istore 8 /* b3 */
        start local 8 // byte b3
         9: .line 270
            aload 1 /* out */
            iload 6 /* b1 */
            iconst_2
            ishl
            iload 7 /* b2 */
            iconst_4
            ishr
            ior
            invokevirtual java.io.OutputStream.write:(I)V
        10: .line 271
            aload 1 /* out */
            iload 7 /* b2 */
            iconst_4
            ishl
            iload 8 /* b3 */
            iconst_2
            ishr
            ior
            invokevirtual java.io.OutputStream.write:(I)V
        11: .line 273
            iconst_2
            ireturn
        end local 8 // byte b3
        end local 7 // byte b2
        end local 6 // byte b1
        12: .line 277
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.bouncycastle.util.encoders.Base64Encoder.decodingTable:[B
            iload 2 /* c1 */
            baload
            istore 6 /* b1 */
        start local 6 // byte b1
        13: .line 278
            aload 0 /* this */
            getfield org.bouncycastle.util.encoders.Base64Encoder.decodingTable:[B
            iload 3 /* c2 */
            baload
            istore 7 /* b2 */
        start local 7 // byte b2
        14: .line 279
            aload 0 /* this */
            getfield org.bouncycastle.util.encoders.Base64Encoder.decodingTable:[B
            iload 4 /* c3 */
            baload
            istore 8 /* b3 */
        start local 8 // byte b3
        15: .line 280
            aload 0 /* this */
            getfield org.bouncycastle.util.encoders.Base64Encoder.decodingTable:[B
            iload 5 /* c4 */
            baload
            istore 9 /* b4 */
        start local 9 // byte b4
        16: .line 282
            aload 1 /* out */
            iload 6 /* b1 */
            iconst_2
            ishl
            iload 7 /* b2 */
            iconst_4
            ishr
            ior
            invokevirtual java.io.OutputStream.write:(I)V
        17: .line 283
            aload 1 /* out */
            iload 7 /* b2 */
            iconst_4
            ishl
            iload 8 /* b3 */
            iconst_2
            ishr
            ior
            invokevirtual java.io.OutputStream.write:(I)V
        18: .line 284
            aload 1 /* out */
            iload 8 /* b3 */
            bipush 6
            ishl
            iload 9 /* b4 */
            ior
            invokevirtual java.io.OutputStream.write:(I)V
        19: .line 286
            iconst_3
            ireturn
        end local 9 // byte b4
        end local 8 // byte b3
        end local 7 // byte b2
        end local 6 // byte b1
        end local 5 // char c4
        end local 4 // char c3
        end local 3 // char c2
        end local 2 // char c1
        end local 1 // java.io.OutputStream out
        end local 0 // org.bouncycastle.util.encoders.Base64Encoder this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   20     0  this  Lorg/bouncycastle/util/encoders/Base64Encoder;
            0   20     1   out  Ljava/io/OutputStream;
            0   20     2    c1  C
            0   20     3    c2  C
            0   20     4    c3  C
            0   20     5    c4  C
            2    5     6    b1  B
            7   12     6    b1  B
           13   20     6    b1  B
            3    5     7    b2  B
            8   12     7    b2  B
           14   20     7    b2  B
            9   12     8    b3  B
           15   20     8    b3  B
           16   20     9    b4  B
    Exceptions:
      throws java.io.IOException
    MethodParameters:
      Name  Flags
      out   
      c1    
      c2    
      c3    
      c4    

  private int nextI(java.lang.String, int, int);
    descriptor: (Ljava/lang/String;II)I
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=4, args_size=4
        start local 0 // org.bouncycastle.util.encoders.Base64Encoder this
        start local 1 // java.lang.String data
        start local 2 // int i
        start local 3 // int finish
         0: .line 292
            goto 2
         1: .line 294
      StackMap locals:
      StackMap stack:
            iinc 2 /* i */ 1
         2: .line 292
      StackMap locals:
      StackMap stack:
            iload 2 /* i */
            iload 3 /* finish */
            if_icmpge 3
            aload 0 /* this */
            aload 1 /* data */
            iload 2 /* i */
            invokevirtual java.lang.String.charAt:(I)C
            invokevirtual org.bouncycastle.util.encoders.Base64Encoder.ignore:(C)Z
            ifne 1
         3: .line 296
      StackMap locals:
      StackMap stack:
            iload 2 /* i */
            ireturn
        end local 3 // int finish
        end local 2 // int i
        end local 1 // java.lang.String data
        end local 0 // org.bouncycastle.util.encoders.Base64Encoder this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    4     0    this  Lorg/bouncycastle/util/encoders/Base64Encoder;
            0    4     1    data  Ljava/lang/String;
            0    4     2       i  I
            0    4     3  finish  I
    MethodParameters:
        Name  Flags
      data    
      i       
      finish  
}
SourceFile: "Base64Encoder.java"