public class org.bouncycastle.crypto.util.CipherFactory
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: org.bouncycastle.crypto.util.CipherFactory
  super_class: java.lang.Object
{
  private static final short[] rc2Ekb;
    descriptor: [S
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=4, locals=0, args_size=0
         0: .line 43
            sipush 256
            newarray 9
            dup
            iconst_0
         1: .line 44
            bipush 93
            sastore
            dup
            iconst_1
            sipush 190
            sastore
            dup
            iconst_2
            sipush 155
            sastore
            dup
            iconst_3
            sipush 139
            sastore
            dup
            iconst_4
            bipush 17
            sastore
            dup
            iconst_5
            sipush 153
            sastore
            dup
            bipush 6
            bipush 110
            sastore
            dup
            bipush 7
            bipush 77
            sastore
            dup
            bipush 8
            bipush 89
            sastore
            dup
            bipush 9
            sipush 243
            sastore
            dup
            bipush 10
            sipush 133
            sastore
            dup
            bipush 11
            sipush 166
            sastore
            dup
            bipush 12
            bipush 63
            sastore
            dup
            bipush 13
            sipush 183
            sastore
            dup
            bipush 14
            sipush 131
            sastore
            dup
            bipush 15
            sipush 197
            sastore
            dup
            bipush 16
         2: .line 45
            sipush 228
            sastore
            dup
            bipush 17
            bipush 115
            sastore
            dup
            bipush 18
            bipush 107
            sastore
            dup
            bipush 19
            bipush 58
            sastore
            dup
            bipush 20
            bipush 104
            sastore
            dup
            bipush 21
            bipush 90
            sastore
            dup
            bipush 22
            sipush 192
            sastore
            dup
            bipush 23
            bipush 71
            sastore
            dup
            bipush 24
            sipush 160
            sastore
            dup
            bipush 25
            bipush 100
            sastore
            dup
            bipush 26
            bipush 52
            sastore
            dup
            bipush 27
            bipush 12
            sastore
            dup
            bipush 28
            sipush 241
            sastore
            dup
            bipush 29
            sipush 208
            sastore
            dup
            bipush 30
            bipush 82
            sastore
            dup
            bipush 31
            sipush 165
            sastore
            dup
            bipush 32
         3: .line 46
            sipush 185
            sastore
            dup
            bipush 33
            bipush 30
            sastore
            dup
            bipush 34
            sipush 150
            sastore
            dup
            bipush 35
            bipush 67
            sastore
            dup
            bipush 36
            bipush 65
            sastore
            dup
            bipush 37
            sipush 216
            sastore
            dup
            bipush 38
            sipush 212
            sastore
            dup
            bipush 39
            bipush 44
            sastore
            dup
            bipush 40
            sipush 219
            sastore
            dup
            bipush 41
            sipush 248
            sastore
            dup
            bipush 42
            bipush 7
            sastore
            dup
            bipush 43
            bipush 119
            sastore
            dup
            bipush 44
            bipush 42
            sastore
            dup
            bipush 45
            sipush 202
            sastore
            dup
            bipush 46
            sipush 235
            sastore
            dup
            bipush 47
            sipush 239
            sastore
            dup
            bipush 48
         4: .line 47
            bipush 16
            sastore
            dup
            bipush 49
            bipush 28
            sastore
            dup
            bipush 50
            bipush 22
            sastore
            dup
            bipush 51
            bipush 13
            sastore
            dup
            bipush 52
            bipush 56
            sastore
            dup
            bipush 53
            bipush 114
            sastore
            dup
            bipush 54
            bipush 47
            sastore
            dup
            bipush 55
            sipush 137
            sastore
            dup
            bipush 56
            sipush 193
            sastore
            dup
            bipush 57
            sipush 249
            sastore
            dup
            bipush 58
            sipush 128
            sastore
            dup
            bipush 59
            sipush 196
            sastore
            dup
            bipush 60
            bipush 109
            sastore
            dup
            bipush 61
            sipush 174
            sastore
            dup
            bipush 62
            bipush 48
            sastore
            dup
            bipush 63
            bipush 61
            sastore
            dup
            bipush 64
         5: .line 48
            sipush 206
            sastore
            dup
            bipush 65
            bipush 32
            sastore
            dup
            bipush 66
            bipush 99
            sastore
            dup
            bipush 67
            sipush 254
            sastore
            dup
            bipush 68
            sipush 230
            sastore
            dup
            bipush 69
            bipush 26
            sastore
            dup
            bipush 70
            sipush 199
            sastore
            dup
            bipush 71
            sipush 184
            sastore
            dup
            bipush 72
            bipush 80
            sastore
            dup
            bipush 73
            sipush 232
            sastore
            dup
            bipush 74
            bipush 36
            sastore
            dup
            bipush 75
            bipush 23
            sastore
            dup
            bipush 76
            sipush 252
            sastore
            dup
            bipush 77
            bipush 37
            sastore
            dup
            bipush 78
            bipush 111
            sastore
            dup
            bipush 79
            sipush 187
            sastore
            dup
            bipush 80
         6: .line 49
            bipush 106
            sastore
            dup
            bipush 81
            sipush 163
            sastore
            dup
            bipush 82
            bipush 68
            sastore
            dup
            bipush 83
            bipush 83
            sastore
            dup
            bipush 84
            sipush 217
            sastore
            dup
            bipush 85
            sipush 162
            sastore
            dup
            bipush 86
            iconst_1
            sastore
            dup
            bipush 87
            sipush 171
            sastore
            dup
            bipush 88
            sipush 188
            sastore
            dup
            bipush 89
            sipush 182
            sastore
            dup
            bipush 90
            bipush 31
            sastore
            dup
            bipush 91
            sipush 152
            sastore
            dup
            bipush 92
            sipush 238
            sastore
            dup
            bipush 93
            sipush 154
            sastore
            dup
            bipush 94
            sipush 167
            sastore
            dup
            bipush 95
            bipush 45
            sastore
            dup
            bipush 96
         7: .line 50
            bipush 79
            sastore
            dup
            bipush 97
            sipush 158
            sastore
            dup
            bipush 98
            sipush 142
            sastore
            dup
            bipush 99
            sipush 172
            sastore
            dup
            bipush 100
            sipush 224
            sastore
            dup
            bipush 101
            sipush 198
            sastore
            dup
            bipush 102
            bipush 73
            sastore
            dup
            bipush 103
            bipush 70
            sastore
            dup
            bipush 104
            bipush 41
            sastore
            dup
            bipush 105
            sipush 244
            sastore
            dup
            bipush 106
            sipush 148
            sastore
            dup
            bipush 107
            sipush 138
            sastore
            dup
            bipush 108
            sipush 175
            sastore
            dup
            bipush 109
            sipush 225
            sastore
            dup
            bipush 110
            bipush 91
            sastore
            dup
            bipush 111
            sipush 195
            sastore
            dup
            bipush 112
         8: .line 51
            sipush 179
            sastore
            dup
            bipush 113
            bipush 123
            sastore
            dup
            bipush 114
            bipush 87
            sastore
            dup
            bipush 115
            sipush 209
            sastore
            dup
            bipush 116
            bipush 124
            sastore
            dup
            bipush 117
            sipush 156
            sastore
            dup
            bipush 118
            sipush 237
            sastore
            dup
            bipush 119
            sipush 135
            sastore
            dup
            bipush 120
            bipush 64
            sastore
            dup
            bipush 121
            sipush 140
            sastore
            dup
            bipush 122
            sipush 226
            sastore
            dup
            bipush 123
            sipush 203
            sastore
            dup
            bipush 124
            sipush 147
            sastore
            dup
            bipush 125
            bipush 20
            sastore
            dup
            bipush 126
            sipush 201
            sastore
            dup
            bipush 127
            bipush 97
            sastore
            dup
            sipush 128
         9: .line 52
            bipush 46
            sastore
            dup
            sipush 129
            sipush 229
            sastore
            dup
            sipush 130
            sipush 204
            sastore
            dup
            sipush 131
            sipush 246
            sastore
            dup
            sipush 132
            bipush 94
            sastore
            dup
            sipush 133
            sipush 168
            sastore
            dup
            sipush 134
            bipush 92
            sastore
            dup
            sipush 135
            sipush 214
            sastore
            dup
            sipush 136
            bipush 117
            sastore
            dup
            sipush 137
            sipush 141
            sastore
            dup
            sipush 138
            bipush 98
            sastore
            dup
            sipush 139
            sipush 149
            sastore
            dup
            sipush 140
            bipush 88
            sastore
            dup
            sipush 141
            bipush 105
            sastore
            dup
            sipush 142
            bipush 118
            sastore
            dup
            sipush 143
            sipush 161
            sastore
            dup
            sipush 144
        10: .line 53
            bipush 74
            sastore
            dup
            sipush 145
            sipush 181
            sastore
            dup
            sipush 146
            bipush 85
            sastore
            dup
            sipush 147
            bipush 9
            sastore
            dup
            sipush 148
            bipush 120
            sastore
            dup
            sipush 149
            bipush 51
            sastore
            dup
            sipush 150
            sipush 130
            sastore
            dup
            sipush 151
            sipush 215
            sastore
            dup
            sipush 152
            sipush 221
            sastore
            dup
            sipush 153
            bipush 121
            sastore
            dup
            sipush 154
            sipush 245
            sastore
            dup
            sipush 155
            bipush 27
            sastore
            dup
            sipush 156
            bipush 11
            sastore
            dup
            sipush 157
            sipush 222
            sastore
            dup
            sipush 158
            bipush 38
            sastore
            dup
            sipush 159
            bipush 33
            sastore
            dup
            sipush 160
        11: .line 54
            bipush 40
            sastore
            dup
            sipush 161
            bipush 116
            sastore
            dup
            sipush 162
            iconst_4
            sastore
            dup
            sipush 163
            sipush 151
            sastore
            dup
            sipush 164
            bipush 86
            sastore
            dup
            sipush 165
            sipush 223
            sastore
            dup
            sipush 166
            bipush 60
            sastore
            dup
            sipush 167
            sipush 240
            sastore
            dup
            sipush 168
            bipush 55
            sastore
            dup
            sipush 169
            bipush 57
            sastore
            dup
            sipush 170
            sipush 220
            sastore
            dup
            sipush 171
            sipush 255
            sastore
            dup
            sipush 172
            bipush 6
            sastore
            dup
            sipush 173
            sipush 164
            sastore
            dup
            sipush 174
            sipush 234
            sastore
            dup
            sipush 175
            bipush 66
            sastore
            dup
            sipush 176
        12: .line 55
            bipush 8
            sastore
            dup
            sipush 177
            sipush 218
            sastore
            dup
            sipush 178
            sipush 180
            sastore
            dup
            sipush 179
            bipush 113
            sastore
            dup
            sipush 180
            sipush 176
            sastore
            dup
            sipush 181
            sipush 207
            sastore
            dup
            sipush 182
            bipush 18
            sastore
            dup
            sipush 183
            bipush 122
            sastore
            dup
            sipush 184
            bipush 78
            sastore
            dup
            sipush 185
            sipush 250
            sastore
            dup
            sipush 186
            bipush 108
            sastore
            dup
            sipush 187
            bipush 29
            sastore
            dup
            sipush 188
            sipush 132
            sastore
            dup
            sipush 190
            sipush 200
            sastore
            dup
            sipush 191
            bipush 127
            sastore
            dup
            sipush 192
        13: .line 56
            sipush 145
            sastore
            dup
            sipush 193
            bipush 69
            sastore
            dup
            sipush 194
            sipush 170
            sastore
            dup
            sipush 195
            bipush 43
            sastore
            dup
            sipush 196
            sipush 194
            sastore
            dup
            sipush 197
            sipush 177
            sastore
            dup
            sipush 198
            sipush 143
            sastore
            dup
            sipush 199
            sipush 213
            sastore
            dup
            sipush 200
            sipush 186
            sastore
            dup
            sipush 201
            sipush 242
            sastore
            dup
            sipush 202
            sipush 173
            sastore
            dup
            sipush 203
            bipush 25
            sastore
            dup
            sipush 204
            sipush 178
            sastore
            dup
            sipush 205
            bipush 103
            sastore
            dup
            sipush 206
            bipush 54
            sastore
            dup
            sipush 207
            sipush 247
            sastore
            dup
            sipush 208
        14: .line 57
            bipush 15
            sastore
            dup
            sipush 209
            bipush 10
            sastore
            dup
            sipush 210
            sipush 146
            sastore
            dup
            sipush 211
            bipush 125
            sastore
            dup
            sipush 212
            sipush 227
            sastore
            dup
            sipush 213
            sipush 157
            sastore
            dup
            sipush 214
            sipush 233
            sastore
            dup
            sipush 215
            sipush 144
            sastore
            dup
            sipush 216
            bipush 62
            sastore
            dup
            sipush 217
            bipush 35
            sastore
            dup
            sipush 218
            bipush 39
            sastore
            dup
            sipush 219
            bipush 102
            sastore
            dup
            sipush 220
            bipush 19
            sastore
            dup
            sipush 221
            sipush 236
            sastore
            dup
            sipush 222
            sipush 129
            sastore
            dup
            sipush 223
            bipush 21
            sastore
            dup
            sipush 224
        15: .line 58
            sipush 189
            sastore
            dup
            sipush 225
            bipush 34
            sastore
            dup
            sipush 226
            sipush 191
            sastore
            dup
            sipush 227
            sipush 159
            sastore
            dup
            sipush 228
            bipush 126
            sastore
            dup
            sipush 229
            sipush 169
            sastore
            dup
            sipush 230
            bipush 81
            sastore
            dup
            sipush 231
            bipush 75
            sastore
            dup
            sipush 232
            bipush 76
            sastore
            dup
            sipush 233
            sipush 251
            sastore
            dup
            sipush 234
            iconst_2
            sastore
            dup
            sipush 235
            sipush 211
            sastore
            dup
            sipush 236
            bipush 112
            sastore
            dup
            sipush 237
            sipush 134
            sastore
            dup
            sipush 238
            bipush 49
            sastore
            dup
            sipush 239
            sipush 231
            sastore
            dup
            sipush 240
        16: .line 59
            bipush 59
            sastore
            dup
            sipush 241
            iconst_5
            sastore
            dup
            sipush 242
            iconst_3
            sastore
            dup
            sipush 243
            bipush 84
            sastore
            dup
            sipush 244
            bipush 96
            sastore
            dup
            sipush 245
            bipush 72
            sastore
            dup
            sipush 246
            bipush 101
            sastore
            dup
            sipush 247
            bipush 24
            sastore
            dup
            sipush 248
            sipush 210
            sastore
            dup
            sipush 249
            sipush 205
            sastore
            dup
            sipush 250
            bipush 95
            sastore
            dup
            sipush 251
            bipush 50
            sastore
            dup
            sipush 252
            sipush 136
            sastore
            dup
            sipush 253
            bipush 14
            sastore
            dup
            sipush 254
            bipush 53
            sastore
            dup
            sipush 255
            sipush 253
            sastore
        17: .line 43
            putstatic org.bouncycastle.crypto.util.CipherFactory.rc2Ekb:[S
        18: .line 60
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

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

  public static java.lang.Object createContentCipher(boolean, org.bouncycastle.crypto.CipherParameters, org.bouncycastle.asn1.x509.AlgorithmIdentifier);
    descriptor: (ZLorg/bouncycastle/crypto/CipherParameters;Lorg/bouncycastle/asn1/x509/AlgorithmIdentifier;)Ljava/lang/Object;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=9, locals=7, args_size=3
        start local 0 // boolean forEncryption
        start local 1 // org.bouncycastle.crypto.CipherParameters encKey
        start local 2 // org.bouncycastle.asn1.x509.AlgorithmIdentifier encryptionAlgID
         0: .line 74
            aload 2 /* encryptionAlgID */
            invokevirtual org.bouncycastle.asn1.x509.AlgorithmIdentifier.getAlgorithm:()Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;
            astore 3 /* encAlg */
        start local 3 // org.bouncycastle.asn1.ASN1ObjectIdentifier encAlg
         1: .line 76
            aload 3 /* encAlg */
            getstatic org.bouncycastle.asn1.pkcs.PKCSObjectIdentifiers.rc4:Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;
            invokevirtual org.bouncycastle.asn1.ASN1ObjectIdentifier.equals:(Ljava/lang/Object;)Z
            ifeq 5
         2: .line 78
            new org.bouncycastle.crypto.engines.RC4Engine
            dup
            invokespecial org.bouncycastle.crypto.engines.RC4Engine.<init>:()V
            astore 4 /* cipher */
        start local 4 // org.bouncycastle.crypto.StreamCipher cipher
         3: .line 80
            aload 4 /* cipher */
            iload 0 /* forEncryption */
            aload 1 /* encKey */
            invokeinterface org.bouncycastle.crypto.StreamCipher.init:(ZLorg/bouncycastle/crypto/CipherParameters;)V
         4: .line 82
            aload 4 /* cipher */
            areturn
        end local 4 // org.bouncycastle.crypto.StreamCipher cipher
         5: .line 86
      StackMap locals: org.bouncycastle.asn1.ASN1ObjectIdentifier
      StackMap stack:
            aload 2 /* encryptionAlgID */
            invokevirtual org.bouncycastle.asn1.x509.AlgorithmIdentifier.getAlgorithm:()Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;
            invokestatic org.bouncycastle.crypto.util.CipherFactory.createCipher:(Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;)Lorg/bouncycastle/crypto/BufferedBlockCipher;
            astore 4 /* cipher */
        start local 4 // org.bouncycastle.crypto.BufferedBlockCipher cipher
         6: .line 87
            aload 2 /* encryptionAlgID */
            invokevirtual org.bouncycastle.asn1.x509.AlgorithmIdentifier.getParameters:()Lorg/bouncycastle/asn1/ASN1Encodable;
            invokeinterface org.bouncycastle.asn1.ASN1Encodable.toASN1Primitive:()Lorg/bouncycastle/asn1/ASN1Primitive;
            astore 5 /* sParams */
        start local 5 // org.bouncycastle.asn1.ASN1Primitive sParams
         7: .line 89
            aload 5 /* sParams */
            ifnull 31
            aload 5 /* sParams */
            instanceof org.bouncycastle.asn1.ASN1Null
            ifne 31
         8: .line 91
            aload 3 /* encAlg */
            getstatic org.bouncycastle.asn1.pkcs.PKCSObjectIdentifiers.des_EDE3_CBC:Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;
            invokevirtual org.bouncycastle.asn1.ASN1ObjectIdentifier.equals:(Ljava/lang/Object;)Z
            ifne 18
         9: .line 92
            aload 3 /* encAlg */
            getstatic org.bouncycastle.crypto.util.AlgorithmIdentifierFactory.IDEA_CBC:Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;
            invokevirtual org.bouncycastle.asn1.ASN1ObjectIdentifier.equals:(Ljava/lang/Object;)Z
            ifne 18
        10: .line 93
            aload 3 /* encAlg */
            getstatic org.bouncycastle.asn1.nist.NISTObjectIdentifiers.id_aes128_CBC:Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;
            invokevirtual org.bouncycastle.asn1.ASN1ObjectIdentifier.equals:(Ljava/lang/Object;)Z
            ifne 18
        11: .line 94
            aload 3 /* encAlg */
            getstatic org.bouncycastle.asn1.nist.NISTObjectIdentifiers.id_aes192_CBC:Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;
            invokevirtual org.bouncycastle.asn1.ASN1ObjectIdentifier.equals:(Ljava/lang/Object;)Z
            ifne 18
        12: .line 95
            aload 3 /* encAlg */
            getstatic org.bouncycastle.asn1.nist.NISTObjectIdentifiers.id_aes256_CBC:Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;
            invokevirtual org.bouncycastle.asn1.ASN1ObjectIdentifier.equals:(Ljava/lang/Object;)Z
            ifne 18
        13: .line 96
            aload 3 /* encAlg */
            getstatic org.bouncycastle.asn1.ntt.NTTObjectIdentifiers.id_camellia128_cbc:Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;
            invokevirtual org.bouncycastle.asn1.ASN1ObjectIdentifier.equals:(Ljava/lang/Object;)Z
            ifne 18
        14: .line 97
            aload 3 /* encAlg */
            getstatic org.bouncycastle.asn1.ntt.NTTObjectIdentifiers.id_camellia192_cbc:Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;
            invokevirtual org.bouncycastle.asn1.ASN1ObjectIdentifier.equals:(Ljava/lang/Object;)Z
            ifne 18
        15: .line 98
            aload 3 /* encAlg */
            getstatic org.bouncycastle.asn1.ntt.NTTObjectIdentifiers.id_camellia256_cbc:Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;
            invokevirtual org.bouncycastle.asn1.ASN1ObjectIdentifier.equals:(Ljava/lang/Object;)Z
            ifne 18
        16: .line 99
            aload 3 /* encAlg */
            getstatic org.bouncycastle.asn1.kisa.KISAObjectIdentifiers.id_seedCBC:Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;
            invokevirtual org.bouncycastle.asn1.ASN1ObjectIdentifier.equals:(Ljava/lang/Object;)Z
            ifne 18
        17: .line 100
            aload 3 /* encAlg */
            getstatic org.bouncycastle.asn1.oiw.OIWObjectIdentifiers.desCBC:Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;
            invokevirtual org.bouncycastle.asn1.ASN1ObjectIdentifier.equals:(Ljava/lang/Object;)Z
            ifeq 22
        18: .line 102
      StackMap locals: org.bouncycastle.crypto.BufferedBlockCipher org.bouncycastle.asn1.ASN1Primitive
      StackMap stack:
            aload 4 /* cipher */
            iload 0 /* forEncryption */
            new org.bouncycastle.crypto.params.ParametersWithIV
            dup
            aload 1 /* encKey */
        19: .line 103
            aload 5 /* sParams */
            invokestatic org.bouncycastle.asn1.ASN1OctetString.getInstance:(Ljava/lang/Object;)Lorg/bouncycastle/asn1/ASN1OctetString;
            invokevirtual org.bouncycastle.asn1.ASN1OctetString.getOctets:()[B
            invokespecial org.bouncycastle.crypto.params.ParametersWithIV.<init>:(Lorg/bouncycastle/crypto/CipherParameters;[B)V
        20: .line 102
            invokevirtual org.bouncycastle.crypto.BufferedBlockCipher.init:(ZLorg/bouncycastle/crypto/CipherParameters;)V
        21: .line 104
            goto 37
        22: .line 105
      StackMap locals:
      StackMap stack:
            aload 3 /* encAlg */
            getstatic org.bouncycastle.crypto.util.AlgorithmIdentifierFactory.CAST5_CBC:Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;
            invokevirtual org.bouncycastle.asn1.ASN1ObjectIdentifier.equals:(Ljava/lang/Object;)Z
            ifeq 26
        23: .line 107
            aload 5 /* sParams */
            invokestatic org.bouncycastle.asn1.misc.CAST5CBCParameters.getInstance:(Ljava/lang/Object;)Lorg/bouncycastle/asn1/misc/CAST5CBCParameters;
            astore 6 /* cbcParams */
        start local 6 // org.bouncycastle.asn1.misc.CAST5CBCParameters cbcParams
        24: .line 109
            aload 4 /* cipher */
            iload 0 /* forEncryption */
            new org.bouncycastle.crypto.params.ParametersWithIV
            dup
            aload 1 /* encKey */
            aload 6 /* cbcParams */
            invokevirtual org.bouncycastle.asn1.misc.CAST5CBCParameters.getIV:()[B
            invokespecial org.bouncycastle.crypto.params.ParametersWithIV.<init>:(Lorg/bouncycastle/crypto/CipherParameters;[B)V
            invokevirtual org.bouncycastle.crypto.BufferedBlockCipher.init:(ZLorg/bouncycastle/crypto/CipherParameters;)V
        end local 6 // org.bouncycastle.asn1.misc.CAST5CBCParameters cbcParams
        25: .line 110
            goto 37
        26: .line 111
      StackMap locals:
      StackMap stack:
            aload 3 /* encAlg */
            getstatic org.bouncycastle.asn1.pkcs.PKCSObjectIdentifiers.RC2_CBC:Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;
            invokevirtual org.bouncycastle.asn1.ASN1ObjectIdentifier.equals:(Ljava/lang/Object;)Z
            ifeq 30
        27: .line 113
            aload 5 /* sParams */
            invokestatic org.bouncycastle.asn1.pkcs.RC2CBCParameter.getInstance:(Ljava/lang/Object;)Lorg/bouncycastle/asn1/pkcs/RC2CBCParameter;
            astore 6 /* cbcParams */
        start local 6 // org.bouncycastle.asn1.pkcs.RC2CBCParameter cbcParams
        28: .line 115
            aload 4 /* cipher */
            iload 0 /* forEncryption */
            new org.bouncycastle.crypto.params.ParametersWithIV
            dup
            new org.bouncycastle.crypto.params.RC2Parameters
            dup
            aload 1 /* encKey */
            checkcast org.bouncycastle.crypto.params.KeyParameter
            invokevirtual org.bouncycastle.crypto.params.KeyParameter.getKey:()[B
            getstatic org.bouncycastle.crypto.util.CipherFactory.rc2Ekb:[S
            aload 6 /* cbcParams */
            invokevirtual org.bouncycastle.asn1.pkcs.RC2CBCParameter.getRC2ParameterVersion:()Ljava/math/BigInteger;
            invokevirtual java.math.BigInteger.intValue:()I
            saload
            invokespecial org.bouncycastle.crypto.params.RC2Parameters.<init>:([BI)V
            aload 6 /* cbcParams */
            invokevirtual org.bouncycastle.asn1.pkcs.RC2CBCParameter.getIV:()[B
            invokespecial org.bouncycastle.crypto.params.ParametersWithIV.<init>:(Lorg/bouncycastle/crypto/CipherParameters;[B)V
            invokevirtual org.bouncycastle.crypto.BufferedBlockCipher.init:(ZLorg/bouncycastle/crypto/CipherParameters;)V
        end local 6 // org.bouncycastle.asn1.pkcs.RC2CBCParameter cbcParams
        29: .line 116
            goto 37
        30: .line 119
      StackMap locals:
      StackMap stack:
            new java.lang.IllegalArgumentException
            dup
            ldc "cannot match parameters"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
        31: .line 124
      StackMap locals:
      StackMap stack:
            aload 3 /* encAlg */
            getstatic org.bouncycastle.asn1.pkcs.PKCSObjectIdentifiers.des_EDE3_CBC:Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;
            invokevirtual org.bouncycastle.asn1.ASN1ObjectIdentifier.equals:(Ljava/lang/Object;)Z
            ifne 34
        32: .line 125
            aload 3 /* encAlg */
            getstatic org.bouncycastle.crypto.util.AlgorithmIdentifierFactory.IDEA_CBC:Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;
            invokevirtual org.bouncycastle.asn1.ASN1ObjectIdentifier.equals:(Ljava/lang/Object;)Z
            ifne 34
        33: .line 126
            aload 3 /* encAlg */
            getstatic org.bouncycastle.crypto.util.AlgorithmIdentifierFactory.CAST5_CBC:Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;
            invokevirtual org.bouncycastle.asn1.ASN1ObjectIdentifier.equals:(Ljava/lang/Object;)Z
            ifeq 36
        34: .line 128
      StackMap locals:
      StackMap stack:
            aload 4 /* cipher */
            iload 0 /* forEncryption */
            new org.bouncycastle.crypto.params.ParametersWithIV
            dup
            aload 1 /* encKey */
            bipush 8
            newarray 8
            invokespecial org.bouncycastle.crypto.params.ParametersWithIV.<init>:(Lorg/bouncycastle/crypto/CipherParameters;[B)V
            invokevirtual org.bouncycastle.crypto.BufferedBlockCipher.init:(ZLorg/bouncycastle/crypto/CipherParameters;)V
        35: .line 129
            goto 37
        36: .line 132
      StackMap locals:
      StackMap stack:
            aload 4 /* cipher */
            iload 0 /* forEncryption */
            aload 1 /* encKey */
            invokevirtual org.bouncycastle.crypto.BufferedBlockCipher.init:(ZLorg/bouncycastle/crypto/CipherParameters;)V
        37: .line 136
      StackMap locals:
      StackMap stack:
            aload 4 /* cipher */
            areturn
        end local 5 // org.bouncycastle.asn1.ASN1Primitive sParams
        end local 4 // org.bouncycastle.crypto.BufferedBlockCipher cipher
        end local 3 // org.bouncycastle.asn1.ASN1ObjectIdentifier encAlg
        end local 2 // org.bouncycastle.asn1.x509.AlgorithmIdentifier encryptionAlgID
        end local 1 // org.bouncycastle.crypto.CipherParameters encKey
        end local 0 // boolean forEncryption
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0   38     0    forEncryption  Z
            0   38     1           encKey  Lorg/bouncycastle/crypto/CipherParameters;
            0   38     2  encryptionAlgID  Lorg/bouncycastle/asn1/x509/AlgorithmIdentifier;
            1   38     3           encAlg  Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;
            3    5     4           cipher  Lorg/bouncycastle/crypto/StreamCipher;
            6   38     4           cipher  Lorg/bouncycastle/crypto/BufferedBlockCipher;
            7   38     5          sParams  Lorg/bouncycastle/asn1/ASN1Primitive;
           24   25     6        cbcParams  Lorg/bouncycastle/asn1/misc/CAST5CBCParameters;
           28   29     6        cbcParams  Lorg/bouncycastle/asn1/pkcs/RC2CBCParameter;
    Exceptions:
      throws java.lang.IllegalArgumentException
    MethodParameters:
                 Name  Flags
      forEncryption    
      encKey           
      encryptionAlgID  

  private static org.bouncycastle.crypto.BufferedBlockCipher createCipher(org.bouncycastle.asn1.ASN1ObjectIdentifier);
    descriptor: (Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;)Lorg/bouncycastle/crypto/BufferedBlockCipher;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=5, locals=2, args_size=1
        start local 0 // org.bouncycastle.asn1.ASN1ObjectIdentifier algorithm
         0: .line 145
            getstatic org.bouncycastle.asn1.nist.NISTObjectIdentifiers.id_aes128_CBC:Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;
            aload 0 /* algorithm */
            invokevirtual org.bouncycastle.asn1.ASN1ObjectIdentifier.equals:(Ljava/lang/Object;)Z
            ifne 3
         1: .line 146
            getstatic org.bouncycastle.asn1.nist.NISTObjectIdentifiers.id_aes192_CBC:Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;
            aload 0 /* algorithm */
            invokevirtual org.bouncycastle.asn1.ASN1ObjectIdentifier.equals:(Ljava/lang/Object;)Z
            ifne 3
         2: .line 147
            getstatic org.bouncycastle.asn1.nist.NISTObjectIdentifiers.id_aes256_CBC:Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;
            aload 0 /* algorithm */
            invokevirtual org.bouncycastle.asn1.ASN1ObjectIdentifier.equals:(Ljava/lang/Object;)Z
            ifeq 5
         3: .line 149
      StackMap locals:
      StackMap stack:
            new org.bouncycastle.crypto.modes.CBCBlockCipher
            dup
            new org.bouncycastle.crypto.engines.AESEngine
            dup
            invokespecial org.bouncycastle.crypto.engines.AESEngine.<init>:()V
            invokespecial org.bouncycastle.crypto.modes.CBCBlockCipher.<init>:(Lorg/bouncycastle/crypto/BlockCipher;)V
            astore 1 /* cipher */
        start local 1 // org.bouncycastle.crypto.BlockCipher cipher
         4: .line 150
            goto 18
        end local 1 // org.bouncycastle.crypto.BlockCipher cipher
         5: .line 151
      StackMap locals:
      StackMap stack:
            getstatic org.bouncycastle.asn1.pkcs.PKCSObjectIdentifiers.des_EDE3_CBC:Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;
            aload 0 /* algorithm */
            invokevirtual org.bouncycastle.asn1.ASN1ObjectIdentifier.equals:(Ljava/lang/Object;)Z
            ifeq 8
         6: .line 153
            new org.bouncycastle.crypto.modes.CBCBlockCipher
            dup
            new org.bouncycastle.crypto.engines.DESedeEngine
            dup
            invokespecial org.bouncycastle.crypto.engines.DESedeEngine.<init>:()V
            invokespecial org.bouncycastle.crypto.modes.CBCBlockCipher.<init>:(Lorg/bouncycastle/crypto/BlockCipher;)V
            astore 1 /* cipher */
        start local 1 // org.bouncycastle.crypto.BlockCipher cipher
         7: .line 154
            goto 18
        end local 1 // org.bouncycastle.crypto.BlockCipher cipher
         8: .line 155
      StackMap locals:
      StackMap stack:
            getstatic org.bouncycastle.asn1.oiw.OIWObjectIdentifiers.desCBC:Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;
            aload 0 /* algorithm */
            invokevirtual org.bouncycastle.asn1.ASN1ObjectIdentifier.equals:(Ljava/lang/Object;)Z
            ifeq 11
         9: .line 157
            new org.bouncycastle.crypto.modes.CBCBlockCipher
            dup
            new org.bouncycastle.crypto.engines.DESEngine
            dup
            invokespecial org.bouncycastle.crypto.engines.DESEngine.<init>:()V
            invokespecial org.bouncycastle.crypto.modes.CBCBlockCipher.<init>:(Lorg/bouncycastle/crypto/BlockCipher;)V
            astore 1 /* cipher */
        start local 1 // org.bouncycastle.crypto.BlockCipher cipher
        10: .line 158
            goto 18
        end local 1 // org.bouncycastle.crypto.BlockCipher cipher
        11: .line 159
      StackMap locals:
      StackMap stack:
            getstatic org.bouncycastle.asn1.pkcs.PKCSObjectIdentifiers.RC2_CBC:Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;
            aload 0 /* algorithm */
            invokevirtual org.bouncycastle.asn1.ASN1ObjectIdentifier.equals:(Ljava/lang/Object;)Z
            ifeq 14
        12: .line 161
            new org.bouncycastle.crypto.modes.CBCBlockCipher
            dup
            new org.bouncycastle.crypto.engines.RC2Engine
            dup
            invokespecial org.bouncycastle.crypto.engines.RC2Engine.<init>:()V
            invokespecial org.bouncycastle.crypto.modes.CBCBlockCipher.<init>:(Lorg/bouncycastle/crypto/BlockCipher;)V
            astore 1 /* cipher */
        start local 1 // org.bouncycastle.crypto.BlockCipher cipher
        13: .line 162
            goto 18
        end local 1 // org.bouncycastle.crypto.BlockCipher cipher
        14: .line 163
      StackMap locals:
      StackMap stack:
            getstatic org.bouncycastle.asn1.misc.MiscObjectIdentifiers.cast5CBC:Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;
            aload 0 /* algorithm */
            invokevirtual org.bouncycastle.asn1.ASN1ObjectIdentifier.equals:(Ljava/lang/Object;)Z
            ifeq 17
        15: .line 165
            new org.bouncycastle.crypto.modes.CBCBlockCipher
            dup
            new org.bouncycastle.crypto.engines.CAST5Engine
            dup
            invokespecial org.bouncycastle.crypto.engines.CAST5Engine.<init>:()V
            invokespecial org.bouncycastle.crypto.modes.CBCBlockCipher.<init>:(Lorg/bouncycastle/crypto/BlockCipher;)V
            astore 1 /* cipher */
        start local 1 // org.bouncycastle.crypto.BlockCipher cipher
        16: .line 166
            goto 18
        end local 1 // org.bouncycastle.crypto.BlockCipher cipher
        17: .line 169
      StackMap locals:
      StackMap stack:
            new java.lang.IllegalArgumentException
            dup
            new java.lang.StringBuilder
            dup
            ldc "cannot recognise cipher: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* algorithm */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
        start local 1 // org.bouncycastle.crypto.BlockCipher cipher
        18: .line 172
      StackMap locals: org.bouncycastle.crypto.BlockCipher
      StackMap stack:
            new org.bouncycastle.crypto.paddings.PaddedBufferedBlockCipher
            dup
            aload 1 /* cipher */
            new org.bouncycastle.crypto.paddings.PKCS7Padding
            dup
            invokespecial org.bouncycastle.crypto.paddings.PKCS7Padding.<init>:()V
            invokespecial org.bouncycastle.crypto.paddings.PaddedBufferedBlockCipher.<init>:(Lorg/bouncycastle/crypto/BlockCipher;Lorg/bouncycastle/crypto/paddings/BlockCipherPadding;)V
            areturn
        end local 1 // org.bouncycastle.crypto.BlockCipher cipher
        end local 0 // org.bouncycastle.asn1.ASN1ObjectIdentifier algorithm
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   19     0  algorithm  Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;
            4    5     1     cipher  Lorg/bouncycastle/crypto/BlockCipher;
            7    8     1     cipher  Lorg/bouncycastle/crypto/BlockCipher;
           10   11     1     cipher  Lorg/bouncycastle/crypto/BlockCipher;
           13   14     1     cipher  Lorg/bouncycastle/crypto/BlockCipher;
           16   17     1     cipher  Lorg/bouncycastle/crypto/BlockCipher;
           18   19     1     cipher  Lorg/bouncycastle/crypto/BlockCipher;
    Exceptions:
      throws java.lang.IllegalArgumentException
    MethodParameters:
           Name  Flags
      algorithm  

  public static org.bouncycastle.crypto.io.CipherOutputStream createOutputStream(java.io.OutputStream, java.lang.Object);
    descriptor: (Ljava/io/OutputStream;Ljava/lang/Object;)Lorg/bouncycastle/crypto/io/CipherOutputStream;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=5, locals=2, args_size=2
        start local 0 // java.io.OutputStream dOut
        start local 1 // java.lang.Object cipher
         0: .line 184
            aload 1 /* cipher */
            instanceof org.bouncycastle.crypto.BufferedBlockCipher
            ifeq 2
         1: .line 186
            new org.bouncycastle.crypto.io.CipherOutputStream
            dup
            aload 0 /* dOut */
            aload 1 /* cipher */
            checkcast org.bouncycastle.crypto.BufferedBlockCipher
            invokespecial org.bouncycastle.crypto.io.CipherOutputStream.<init>:(Ljava/io/OutputStream;Lorg/bouncycastle/crypto/BufferedBlockCipher;)V
            areturn
         2: .line 188
      StackMap locals:
      StackMap stack:
            aload 1 /* cipher */
            instanceof org.bouncycastle.crypto.StreamCipher
            ifeq 4
         3: .line 190
            new org.bouncycastle.crypto.io.CipherOutputStream
            dup
            aload 0 /* dOut */
            aload 1 /* cipher */
            checkcast org.bouncycastle.crypto.StreamCipher
            invokespecial org.bouncycastle.crypto.io.CipherOutputStream.<init>:(Ljava/io/OutputStream;Lorg/bouncycastle/crypto/StreamCipher;)V
            areturn
         4: .line 192
      StackMap locals:
      StackMap stack:
            aload 1 /* cipher */
            instanceof org.bouncycastle.crypto.modes.AEADBlockCipher
            ifeq 6
         5: .line 194
            new org.bouncycastle.crypto.io.CipherOutputStream
            dup
            aload 0 /* dOut */
            aload 1 /* cipher */
            checkcast org.bouncycastle.crypto.modes.AEADBlockCipher
            invokespecial org.bouncycastle.crypto.io.CipherOutputStream.<init>:(Ljava/io/OutputStream;Lorg/bouncycastle/crypto/modes/AEADBlockCipher;)V
            areturn
         6: .line 196
      StackMap locals:
      StackMap stack:
            new java.lang.IllegalArgumentException
            dup
            new java.lang.StringBuilder
            dup
            ldc "unknown cipher object: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* cipher */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
        end local 1 // java.lang.Object cipher
        end local 0 // java.io.OutputStream dOut
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    7     0    dOut  Ljava/io/OutputStream;
            0    7     1  cipher  Ljava/lang/Object;
    MethodParameters:
        Name  Flags
      dOut    
      cipher  
}
SourceFile: "CipherFactory.java"