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 37
            iconst_0
            istore 1 /* i */
        start local 1 // int i
         1: goto 4
         2: .line 39
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            getfield org.bouncycastle.util.encoders.Base64Encoder.decodingTable:[B
            iload 1 /* i */
            iconst_m1
            bastore
         3: .line 37
            iinc 1 /* i */ 1
      StackMap locals:
      StackMap stack:
         4: iload 1 /* i */
            aload 0 /* this */
            getfield org.bouncycastle.util.encoders.Base64Encoder.decodingTable:[B
            arraylength
            if_icmplt 2
        end local 1 // int i
         5: .line 42
            iconst_0
            istore 1 /* i */
        start local 1 // int i
         6: goto 9
         7: .line 44
      StackMap locals:
      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
         8: .line 42
            iinc 1 /* i */ 1
      StackMap locals:
      StackMap stack:
         9: iload 1 /* i */
            aload 0 /* this */
            getfield org.bouncycastle.util.encoders.Base64Encoder.encodingTable:[B
            arraylength
            if_icmplt 7
        end local 1 // int i
        10: .line 46
            return
        end local 0 // org.bouncycastle.util.encoders.Base64Encoder this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   11     0  this  Lorg/bouncycastle/util/encoders/Base64Encoder;
            1    5     1     i  I
            6   10     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 48
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 12
            aload 0 /* this */
         2: .line 13
            bipush 64
            newarray 8
            dup
            iconst_0
         3: .line 14
            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 15
            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 16
            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 17
            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 18
            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 19
            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 20
            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 21
            bipush 118
            bastore
            dup
            bipush 48
        11: .line 22
            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 23
            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 24
            bipush 55
            bastore
            dup
            bipush 60
            bipush 56
            bastore
            dup
            bipush 61
            bipush 57
            bastore
            dup
            bipush 62
        14: .line 25
            bipush 43
            bastore
            dup
            bipush 63
            bipush 47
            bastore
            putfield org.bouncycastle.util.encoders.Base64Encoder.encodingTable:[B
        15: .line 28
            aload 0 /* this */
            bipush 61
            putfield org.bouncycastle.util.encoders.Base64Encoder.padding:B
        16: .line 33
            aload 0 /* this */
            sipush 128
            newarray 8
            putfield org.bouncycastle.util.encoders.Base64Encoder.decodingTable:[B
        17: .line 50
            aload 0 /* this */
            invokevirtual org.bouncycastle.util.encoders.Base64Encoder.initialiseDecodingTable:()V
        18: .line 51
            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 65
            iload 3 /* length */
            iconst_3
            irem
            istore 5 /* modulus */
        start local 5 // int modulus
         1: .line 66
            iload 3 /* length */
            iload 5 /* modulus */
            isub
            istore 6 /* dataLength */
        start local 6 // int dataLength
         2: .line 69
            iload 2 /* off */
            istore 10 /* i */
        start local 10 // int i
         3: goto 12
         4: .line 71
      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 72
            aload 1 /* data */
            iload 10 /* i */
            iconst_1
            iadd
            baload
            sipush 255
            iand
            istore 8 /* a2 */
        start local 8 // int a2
         6: .line 73
            aload 1 /* data */
            iload 10 /* i */
            iconst_2
            iadd
            baload
            sipush 255
            iand
            istore 9 /* a3 */
        start local 9 // int a3
         7: .line 75
            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 76
            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 77
            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 78
            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 69
            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 87
            iload 5 /* modulus */
            tableswitch { // 0 - 2
                    0: 14
                    1: 15
                    2: 23
              default: 32
          }
        14: .line 90
      StackMap locals: org.bouncycastle.util.encoders.Base64Encoder byte[] int int java.io.OutputStream int int
      StackMap stack:
            goto 32
        15: .line 92
      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 93
            iload 13 /* d1 */
            iconst_2
            iushr
            bipush 63
            iand
            istore 10 /* b1 */
        start local 10 // int b1
        17: .line 94
            iload 13 /* d1 */
            iconst_4
            ishl
            bipush 63
            iand
            istore 11 /* b2 */
        start local 11 // int b2
        18: .line 96
            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 97
            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 98
            aload 4 /* out */
            aload 0 /* this */
            getfield org.bouncycastle.util.encoders.Base64Encoder.padding:B
            invokevirtual java.io.OutputStream.write:(I)V
        21: .line 99
            aload 4 /* out */
            aload 0 /* this */
            getfield org.bouncycastle.util.encoders.Base64Encoder.padding:B
            invokevirtual java.io.OutputStream.write:(I)V
        22: .line 100
            goto 32
        end local 13 // int d1
        end local 11 // int b2
        end local 10 // int b1
        23: .line 102
      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 103
            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 105
            iload 13 /* d1 */
            iconst_2
            iushr
            bipush 63
            iand
            istore 10 /* b1 */
        start local 10 // int b1
        26: .line 106
            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 107
            iload 14 /* d2 */
            iconst_2
            ishl
            bipush 63
            iand
            istore 12 /* b3 */
        start local 12 // int b3
        28: .line 109
            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 110
            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 111
            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 112
            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 116
      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 122
            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=8, locals=17, 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 139
            iconst_0
            istore 9 /* outLen */
        start local 9 // int outLen
         1: .line 141
            iload 2 /* off */
            iload 3 /* length */
            iadd
            istore 10 /* end */
        start local 10 // int end
         2: .line 143
            goto 6
         3: .line 145
      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 147
            goto 7
         5: .line 150
      StackMap locals:
      StackMap stack:
            iinc 10 /* end */ -1
         6: .line 143
      StackMap locals:
      StackMap stack:
            iload 10 /* end */
            iload 2 /* off */
            if_icmpgt 3
         7: .line 154
      StackMap locals:
      StackMap stack:
            iload 10 /* end */
            ifne 9
         8: .line 156
            iconst_0
            ireturn
         9: .line 159
      StackMap locals:
      StackMap stack:
            iconst_0
            istore 11 /* i */
        start local 11 // int i
        10: .line 160
            iload 10 /* end */
            istore 12 /* finish */
        start local 12 // int finish
        11: .line 162
            goto 15
        12: .line 164
      StackMap locals: int int
      StackMap stack:
            aload 0 /* this */
            aload 1 /* data */
            iload 12 /* finish */
            iconst_1
            isub
            baload
            i2c
            invokevirtual org.bouncycastle.util.encoders.Base64Encoder.ignore:(C)Z
            ifne 14
        13: .line 166
            iinc 11 /* i */ 1
        14: .line 169
      StackMap locals:
      StackMap stack:
            iinc 12 /* finish */ -1
        15: .line 162
      StackMap locals:
      StackMap stack:
            iload 12 /* finish */
            iload 2 /* off */
            if_icmple 16
            iload 11 /* i */
            iconst_4
            if_icmpne 12
        16: .line 172
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* data */
            iload 2 /* off */
            iload 12 /* finish */
            invokevirtual org.bouncycastle.util.encoders.Base64Encoder.nextI:([BII)I
            istore 11 /* i */
        17: .line 174
            goto 32
        18: .line 176
      StackMap locals:
      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
        19: .line 178
            aload 0 /* this */
            aload 1 /* data */
            iload 11 /* i */
            iload 12 /* finish */
            invokevirtual org.bouncycastle.util.encoders.Base64Encoder.nextI:([BII)I
            istore 11 /* i */
        20: .line 180
            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
        21: .line 182
            aload 0 /* this */
            aload 1 /* data */
            iload 11 /* i */
            iload 12 /* finish */
            invokevirtual org.bouncycastle.util.encoders.Base64Encoder.nextI:([BII)I
            istore 11 /* i */
        22: .line 184
            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
        23: .line 186
            aload 0 /* this */
            aload 1 /* data */
            iload 11 /* i */
            iload 12 /* finish */
            invokevirtual org.bouncycastle.util.encoders.Base64Encoder.nextI:([BII)I
            istore 11 /* i */
        24: .line 188
            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
        25: .line 190
            iload 5 /* b1 */
            iload 6 /* b2 */
            ior
            iload 7 /* b3 */
            ior
            iload 8 /* b4 */
            ior
            ifge 27
        26: .line 192
            new java.io.IOException
            dup
            ldc "invalid characters encountered in base64 data"
            invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
            athrow
        27: .line 195
      StackMap locals: org.bouncycastle.util.encoders.Base64Encoder byte[] int int java.io.OutputStream int int int int int int int int
      StackMap stack:
            aload 4 /* out */
            iload 5 /* b1 */
            iconst_2
            ishl
            iload 6 /* b2 */
            iconst_4
            ishr
            ior
            invokevirtual java.io.OutputStream.write:(I)V
        28: .line 196
            aload 4 /* out */
            iload 6 /* b2 */
            iconst_4
            ishl
            iload 7 /* b3 */
            iconst_2
            ishr
            ior
            invokevirtual java.io.OutputStream.write:(I)V
        29: .line 197
            aload 4 /* out */
            iload 7 /* b3 */
            bipush 6
            ishl
            iload 8 /* b4 */
            ior
            invokevirtual java.io.OutputStream.write:(I)V
        30: .line 199
            iinc 9 /* outLen */ 3
        31: .line 201
            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
        32: .line 174
      StackMap locals: org.bouncycastle.util.encoders.Base64Encoder byte[] int int java.io.OutputStream top top top top int int int int
      StackMap stack:
            iload 11 /* i */
            iload 12 /* finish */
            if_icmplt 18
        33: .line 204
            aload 0 /* this */
            aload 1 /* data */
            iload 11 /* i */
            iload 10 /* end */
            invokevirtual org.bouncycastle.util.encoders.Base64Encoder.nextI:([BII)I
            istore 13 /* e0 */
        start local 13 // int e0
        34: .line 205
            aload 0 /* this */
            aload 1 /* data */
            iload 13 /* e0 */
            iconst_1
            iadd
            iload 10 /* end */
            invokevirtual org.bouncycastle.util.encoders.Base64Encoder.nextI:([BII)I
            istore 14 /* e1 */
        start local 14 // int e1
        35: .line 206
            aload 0 /* this */
            aload 1 /* data */
            iload 14 /* e1 */
            iconst_1
            iadd
            iload 10 /* end */
            invokevirtual org.bouncycastle.util.encoders.Base64Encoder.nextI:([BII)I
            istore 15 /* e2 */
        start local 15 // int e2
        36: .line 207
            aload 0 /* this */
            aload 1 /* data */
            iload 15 /* e2 */
            iconst_1
            iadd
            iload 10 /* end */
            invokevirtual org.bouncycastle.util.encoders.Base64Encoder.nextI:([BII)I
            istore 16 /* e3 */
        start local 16 // int e3
        37: .line 209
            iload 9 /* outLen */
            aload 0 /* this */
            aload 4 /* out */
            aload 1 /* data */
            iload 13 /* e0 */
            baload
            i2c
            aload 1 /* data */
            iload 14 /* e1 */
            baload
            i2c
            aload 1 /* data */
            iload 15 /* e2 */
            baload
            i2c
            aload 1 /* data */
            iload 16 /* e3 */
            baload
            i2c
            invokevirtual org.bouncycastle.util.encoders.Base64Encoder.decodeLastBlock:(Ljava/io/OutputStream;CCCC)I
            iadd
            istore 9 /* outLen */
        38: .line 211
            iload 9 /* outLen */
            ireturn
        end local 16 // int e3
        end local 15 // int e2
        end local 14 // int e1
        end local 13 // int e0
        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   39     0    this  Lorg/bouncycastle/util/encoders/Base64Encoder;
            0   39     1    data  [B
            0   39     2     off  I
            0   39     3  length  I
            0   39     4     out  Ljava/io/OutputStream;
           19   32     5      b1  B
           21   32     6      b2  B
           23   32     7      b3  B
           25   32     8      b4  B
            1   39     9  outLen  I
            2   39    10     end  I
           10   39    11       i  I
           11   39    12  finish  I
           34   39    13      e0  I
           35   39    14      e1  I
           36   39    15      e2  I
           37   39    16      e3  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 216
            goto 2
         1: .line 218
      StackMap locals:
      StackMap stack:
            iinc 2 /* i */ 1
         2: .line 216
      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 220
      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=8, locals=15, 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 235
            iconst_0
            istore 7 /* length */
        start local 7 // int length
         1: .line 237
            aload 1 /* data */
            invokevirtual java.lang.String.length:()I
            istore 8 /* end */
        start local 8 // int end
         2: .line 239
            goto 6
         3: .line 241
      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 243
            goto 7
         5: .line 246
      StackMap locals:
      StackMap stack:
            iinc 8 /* end */ -1
         6: .line 239
      StackMap locals:
      StackMap stack:
            iload 8 /* end */
            ifgt 3
         7: .line 250
      StackMap locals:
      StackMap stack:
            iload 8 /* end */
            ifne 9
         8: .line 252
            iconst_0
            ireturn
         9: .line 255
      StackMap locals:
      StackMap stack:
            iconst_0
            istore 9 /* i */
        start local 9 // int i
        10: .line 256
            iload 8 /* end */
            istore 10 /* finish */
        start local 10 // int finish
        11: .line 258
            goto 15
        12: .line 260
      StackMap locals: int int
      StackMap stack:
            aload 0 /* this */
            aload 1 /* data */
            iload 10 /* finish */
            iconst_1
            isub
            invokevirtual java.lang.String.charAt:(I)C
            invokevirtual org.bouncycastle.util.encoders.Base64Encoder.ignore:(C)Z
            ifne 14
        13: .line 262
            iinc 9 /* i */ 1
        14: .line 265
      StackMap locals:
      StackMap stack:
            iinc 10 /* finish */ -1
        15: .line 258
      StackMap locals:
      StackMap stack:
            iload 10 /* finish */
            ifle 16
            iload 9 /* i */
            iconst_4
            if_icmpne 12
        16: .line 268
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* data */
            iconst_0
            iload 10 /* finish */
            invokevirtual org.bouncycastle.util.encoders.Base64Encoder.nextI:(Ljava/lang/String;II)I
            istore 9 /* i */
        17: .line 270
            goto 32
        18: .line 272
      StackMap locals:
      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
        19: .line 274
            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 */
        20: .line 276
            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
        21: .line 278
            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 */
        22: .line 280
            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
        23: .line 282
            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 */
        24: .line 284
            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
        25: .line 286
            iload 3 /* b1 */
            iload 4 /* b2 */
            ior
            iload 5 /* b3 */
            ior
            iload 6 /* b4 */
            ior
            ifge 27
        26: .line 288
            new java.io.IOException
            dup
            ldc "invalid characters encountered in base64 data"
            invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
            athrow
        27: .line 291
      StackMap locals: org.bouncycastle.util.encoders.Base64Encoder java.lang.String java.io.OutputStream int int int int int int int int
      StackMap stack:
            aload 2 /* out */
            iload 3 /* b1 */
            iconst_2
            ishl
            iload 4 /* b2 */
            iconst_4
            ishr
            ior
            invokevirtual java.io.OutputStream.write:(I)V
        28: .line 292
            aload 2 /* out */
            iload 4 /* b2 */
            iconst_4
            ishl
            iload 5 /* b3 */
            iconst_2
            ishr
            ior
            invokevirtual java.io.OutputStream.write:(I)V
        29: .line 293
            aload 2 /* out */
            iload 5 /* b3 */
            bipush 6
            ishl
            iload 6 /* b4 */
            ior
            invokevirtual java.io.OutputStream.write:(I)V
        30: .line 295
            iinc 7 /* length */ 3
        31: .line 297
            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
        32: .line 270
      StackMap locals: org.bouncycastle.util.encoders.Base64Encoder java.lang.String java.io.OutputStream top top top top int int int int
      StackMap stack:
            iload 9 /* i */
            iload 10 /* finish */
            if_icmplt 18
        33: .line 300
            aload 0 /* this */
            aload 1 /* data */
            iload 9 /* i */
            iload 8 /* end */
            invokevirtual org.bouncycastle.util.encoders.Base64Encoder.nextI:(Ljava/lang/String;II)I
            istore 11 /* e0 */
        start local 11 // int e0
        34: .line 301
            aload 0 /* this */
            aload 1 /* data */
            iload 11 /* e0 */
            iconst_1
            iadd
            iload 8 /* end */
            invokevirtual org.bouncycastle.util.encoders.Base64Encoder.nextI:(Ljava/lang/String;II)I
            istore 12 /* e1 */
        start local 12 // int e1
        35: .line 302
            aload 0 /* this */
            aload 1 /* data */
            iload 12 /* e1 */
            iconst_1
            iadd
            iload 8 /* end */
            invokevirtual org.bouncycastle.util.encoders.Base64Encoder.nextI:(Ljava/lang/String;II)I
            istore 13 /* e2 */
        start local 13 // int e2
        36: .line 303
            aload 0 /* this */
            aload 1 /* data */
            iload 13 /* e2 */
            iconst_1
            iadd
            iload 8 /* end */
            invokevirtual org.bouncycastle.util.encoders.Base64Encoder.nextI:(Ljava/lang/String;II)I
            istore 14 /* e3 */
        start local 14 // int e3
        37: .line 305
            iload 7 /* length */
            aload 0 /* this */
            aload 2 /* out */
            aload 1 /* data */
            iload 11 /* e0 */
            invokevirtual java.lang.String.charAt:(I)C
            aload 1 /* data */
            iload 12 /* e1 */
            invokevirtual java.lang.String.charAt:(I)C
            aload 1 /* data */
            iload 13 /* e2 */
            invokevirtual java.lang.String.charAt:(I)C
            aload 1 /* data */
            iload 14 /* e3 */
            invokevirtual java.lang.String.charAt:(I)C
            invokevirtual org.bouncycastle.util.encoders.Base64Encoder.decodeLastBlock:(Ljava/io/OutputStream;CCCC)I
            iadd
            istore 7 /* length */
        38: .line 307
            iload 7 /* length */
            ireturn
        end local 14 // int e3
        end local 13 // int e2
        end local 12 // int e1
        end local 11 // int e0
        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   39     0    this  Lorg/bouncycastle/util/encoders/Base64Encoder;
            0   39     1    data  Ljava/lang/String;
            0   39     2     out  Ljava/io/OutputStream;
           19   32     3      b1  B
           21   32     4      b2  B
           23   32     5      b3  B
           25   32     6      b4  B
            1   39     7  length  I
            2   39     8     end  I
           10   39     9       i  I
           11   39    10  finish  I
           34   39    11      e0  I
           35   39    12      e1  I
           36   39    13      e2  I
           37   39    14      e3  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 315
            iload 4 /* c3 */
            aload 0 /* this */
            getfield org.bouncycastle.util.encoders.Base64Encoder.padding:B
            if_icmpne 9
         1: .line 317
            iload 5 /* c4 */
            aload 0 /* this */
            getfield org.bouncycastle.util.encoders.Base64Encoder.padding:B
            if_icmpeq 3
         2: .line 319
            new java.io.IOException
            dup
            ldc "invalid characters encountered at end of base64 data"
            invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
            athrow
         3: .line 322
      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
         4: .line 323
            aload 0 /* this */
            getfield org.bouncycastle.util.encoders.Base64Encoder.decodingTable:[B
            iload 3 /* c2 */
            baload
            istore 7 /* b2 */
        start local 7 // byte b2
         5: .line 325
            iload 6 /* b1 */
            iload 7 /* b2 */
            ior
            ifge 7
         6: .line 327
            new java.io.IOException
            dup
            ldc "invalid characters encountered at end of base64 data"
            invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
            athrow
         7: .line 330
      StackMap locals: int int
      StackMap stack:
            aload 1 /* out */
            iload 6 /* b1 */
            iconst_2
            ishl
            iload 7 /* b2 */
            iconst_4
            ishr
            ior
            invokevirtual java.io.OutputStream.write:(I)V
         8: .line 332
            iconst_1
            ireturn
        end local 7 // byte b2
        end local 6 // byte b1
         9: .line 334
      StackMap locals:
      StackMap stack:
            iload 5 /* c4 */
            aload 0 /* this */
            getfield org.bouncycastle.util.encoders.Base64Encoder.padding:B
            if_icmpne 18
        10: .line 336
            aload 0 /* this */
            getfield org.bouncycastle.util.encoders.Base64Encoder.decodingTable:[B
            iload 2 /* c1 */
            baload
            istore 6 /* b1 */
        start local 6 // byte b1
        11: .line 337
            aload 0 /* this */
            getfield org.bouncycastle.util.encoders.Base64Encoder.decodingTable:[B
            iload 3 /* c2 */
            baload
            istore 7 /* b2 */
        start local 7 // byte b2
        12: .line 338
            aload 0 /* this */
            getfield org.bouncycastle.util.encoders.Base64Encoder.decodingTable:[B
            iload 4 /* c3 */
            baload
            istore 8 /* b3 */
        start local 8 // byte b3
        13: .line 340
            iload 6 /* b1 */
            iload 7 /* b2 */
            ior
            iload 8 /* b3 */
            ior
            ifge 15
        14: .line 342
            new java.io.IOException
            dup
            ldc "invalid characters encountered at end of base64 data"
            invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
            athrow
        15: .line 345
      StackMap locals: int int int
      StackMap stack:
            aload 1 /* out */
            iload 6 /* b1 */
            iconst_2
            ishl
            iload 7 /* b2 */
            iconst_4
            ishr
            ior
            invokevirtual java.io.OutputStream.write:(I)V
        16: .line 346
            aload 1 /* out */
            iload 7 /* b2 */
            iconst_4
            ishl
            iload 8 /* b3 */
            iconst_2
            ishr
            ior
            invokevirtual java.io.OutputStream.write:(I)V
        17: .line 348
            iconst_2
            ireturn
        end local 8 // byte b3
        end local 7 // byte b2
        end local 6 // byte b1
        18: .line 352
      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
        19: .line 353
            aload 0 /* this */
            getfield org.bouncycastle.util.encoders.Base64Encoder.decodingTable:[B
            iload 3 /* c2 */
            baload
            istore 7 /* b2 */
        start local 7 // byte b2
        20: .line 354
            aload 0 /* this */
            getfield org.bouncycastle.util.encoders.Base64Encoder.decodingTable:[B
            iload 4 /* c3 */
            baload
            istore 8 /* b3 */
        start local 8 // byte b3
        21: .line 355
            aload 0 /* this */
            getfield org.bouncycastle.util.encoders.Base64Encoder.decodingTable:[B
            iload 5 /* c4 */
            baload
            istore 9 /* b4 */
        start local 9 // byte b4
        22: .line 357
            iload 6 /* b1 */
            iload 7 /* b2 */
            ior
            iload 8 /* b3 */
            ior
            iload 9 /* b4 */
            ior
            ifge 24
        23: .line 359
            new java.io.IOException
            dup
            ldc "invalid characters encountered at end of base64 data"
            invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
            athrow
        24: .line 362
      StackMap locals: org.bouncycastle.util.encoders.Base64Encoder java.io.OutputStream int int int int int int int int
      StackMap stack:
            aload 1 /* out */
            iload 6 /* b1 */
            iconst_2
            ishl
            iload 7 /* b2 */
            iconst_4
            ishr
            ior
            invokevirtual java.io.OutputStream.write:(I)V
        25: .line 363
            aload 1 /* out */
            iload 7 /* b2 */
            iconst_4
            ishl
            iload 8 /* b3 */
            iconst_2
            ishr
            ior
            invokevirtual java.io.OutputStream.write:(I)V
        26: .line 364
            aload 1 /* out */
            iload 8 /* b3 */
            bipush 6
            ishl
            iload 9 /* b4 */
            ior
            invokevirtual java.io.OutputStream.write:(I)V
        27: .line 366
            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   28     0  this  Lorg/bouncycastle/util/encoders/Base64Encoder;
            0   28     1   out  Ljava/io/OutputStream;
            0   28     2    c1  C
            0   28     3    c2  C
            0   28     4    c3  C
            0   28     5    c4  C
            4    9     6    b1  B
           11   18     6    b1  B
           19   28     6    b1  B
            5    9     7    b2  B
           12   18     7    b2  B
           20   28     7    b2  B
           13   18     8    b3  B
           21   28     8    b3  B
           22   28     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 372
            goto 2
         1: .line 374
      StackMap locals:
      StackMap stack:
            iinc 2 /* i */ 1
         2: .line 372
      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 376
      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"