public final class org.bouncycastle.crypto.engines.TwofishEngine implements org.bouncycastle.crypto.BlockCipher
minor version: 0
major version: 59
flags: flags: (0x0031) ACC_PUBLIC, ACC_FINAL, ACC_SUPER
this_class: org.bouncycastle.crypto.engines.TwofishEngine
super_class: java.lang.Object
{
private static final byte[][] P;
descriptor: [[B
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private static final int P_00;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 1
private static final int P_01;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 0
private static final int P_02;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 0
private static final int P_03;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 1
private static final int P_04;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 1
private static final int P_10;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 0
private static final int P_11;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 0
private static final int P_12;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 1
private static final int P_13;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 1
private static final int P_14;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 0
private static final int P_20;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 1
private static final int P_21;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 1
private static final int P_22;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 0
private static final int P_23;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 0
private static final int P_24;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 0
private static final int P_30;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 0
private static final int P_31;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 1
private static final int P_32;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 1
private static final int P_33;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 0
private static final int P_34;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 1
private static final int GF256_FDBK;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 361
private static final int GF256_FDBK_2;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 180
private static final int GF256_FDBK_4;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 90
private static final int RS_GF_FDBK;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 333
private static final int ROUNDS;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 16
private static final int MAX_ROUNDS;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 16
private static final int BLOCK_SIZE;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 16
private static final int MAX_KEY_BITS;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 256
private static final int INPUT_WHITEN;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 0
private static final int OUTPUT_WHITEN;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 4
private static final int ROUND_SUBKEYS;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 8
private static final int TOTAL_SUBKEYS;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 40
private static final int SK_STEP;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 33686018
private static final int SK_BUMP;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 16843009
private static final int SK_ROTL;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 9
private boolean encrypting;
descriptor: Z
flags: (0x0002) ACC_PRIVATE
private int[] gMDS0;
descriptor: [I
flags: (0x0002) ACC_PRIVATE
private int[] gMDS1;
descriptor: [I
flags: (0x0002) ACC_PRIVATE
private int[] gMDS2;
descriptor: [I
flags: (0x0002) ACC_PRIVATE
private int[] gMDS3;
descriptor: [I
flags: (0x0002) ACC_PRIVATE
private int[] gSubKeys;
descriptor: [I
flags: (0x0002) ACC_PRIVATE
private int[] gSBox;
descriptor: [I
flags: (0x0002) ACC_PRIVATE
private int k64Cnt;
descriptor: I
flags: (0x0002) ACC_PRIVATE
private byte[] workingKey;
descriptor: [B
flags: (0x0002) ACC_PRIVATE
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=7, locals=0, args_size=0
0: .line 18
iconst_2
anewarray byte[]
dup
iconst_0
1: .line 19
sipush 256
newarray 8
dup
iconst_0
2: .line 20
bipush -87
bastore
dup
iconst_1
bipush 103
bastore
dup
iconst_2
bipush -77
bastore
dup
iconst_3
bipush -24
bastore
dup
iconst_4
3: .line 21
iconst_4
bastore
dup
iconst_5
bipush -3
bastore
dup
bipush 6
bipush -93
bastore
dup
bipush 7
bipush 118
bastore
dup
bipush 8
4: .line 22
bipush -102
bastore
dup
bipush 9
bipush -110
bastore
dup
bipush 10
bipush -128
bastore
dup
bipush 11
bipush 120
bastore
dup
bipush 12
5: .line 23
bipush -28
bastore
dup
bipush 13
bipush -35
bastore
dup
bipush 14
bipush -47
bastore
dup
bipush 15
bipush 56
bastore
dup
bipush 16
6: .line 24
bipush 13
bastore
dup
bipush 17
bipush -58
bastore
dup
bipush 18
bipush 53
bastore
dup
bipush 19
bipush -104
bastore
dup
bipush 20
7: .line 25
bipush 24
bastore
dup
bipush 21
bipush -9
bastore
dup
bipush 22
bipush -20
bastore
dup
bipush 23
bipush 108
bastore
dup
bipush 24
8: .line 26
bipush 67
bastore
dup
bipush 25
bipush 117
bastore
dup
bipush 26
bipush 55
bastore
dup
bipush 27
bipush 38
bastore
dup
bipush 28
9: .line 27
bipush -6
bastore
dup
bipush 29
bipush 19
bastore
dup
bipush 30
bipush -108
bastore
dup
bipush 31
bipush 72
bastore
dup
bipush 32
10: .line 28
bipush -14
bastore
dup
bipush 33
bipush -48
bastore
dup
bipush 34
bipush -117
bastore
dup
bipush 35
bipush 48
bastore
dup
bipush 36
11: .line 29
bipush -124
bastore
dup
bipush 37
bipush 84
bastore
dup
bipush 38
bipush -33
bastore
dup
bipush 39
bipush 35
bastore
dup
bipush 40
12: .line 30
bipush 25
bastore
dup
bipush 41
bipush 91
bastore
dup
bipush 42
bipush 61
bastore
dup
bipush 43
bipush 89
bastore
dup
bipush 44
13: .line 31
bipush -13
bastore
dup
bipush 45
bipush -82
bastore
dup
bipush 46
bipush -94
bastore
dup
bipush 47
bipush -126
bastore
dup
bipush 48
14: .line 32
bipush 99
bastore
dup
bipush 49
iconst_1
bastore
dup
bipush 50
bipush -125
bastore
dup
bipush 51
bipush 46
bastore
dup
bipush 52
15: .line 33
bipush -39
bastore
dup
bipush 53
bipush 81
bastore
dup
bipush 54
bipush -101
bastore
dup
bipush 55
bipush 124
bastore
dup
bipush 56
16: .line 34
bipush -90
bastore
dup
bipush 57
bipush -21
bastore
dup
bipush 58
bipush -91
bastore
dup
bipush 59
bipush -66
bastore
dup
bipush 60
17: .line 35
bipush 22
bastore
dup
bipush 61
bipush 12
bastore
dup
bipush 62
bipush -29
bastore
dup
bipush 63
bipush 97
bastore
dup
bipush 64
18: .line 36
bipush -64
bastore
dup
bipush 65
bipush -116
bastore
dup
bipush 66
bipush 58
bastore
dup
bipush 67
bipush -11
bastore
dup
bipush 68
19: .line 37
bipush 115
bastore
dup
bipush 69
bipush 44
bastore
dup
bipush 70
bipush 37
bastore
dup
bipush 71
bipush 11
bastore
dup
bipush 72
20: .line 38
bipush -69
bastore
dup
bipush 73
bipush 78
bastore
dup
bipush 74
bipush -119
bastore
dup
bipush 75
bipush 107
bastore
dup
bipush 76
21: .line 39
bipush 83
bastore
dup
bipush 77
bipush 106
bastore
dup
bipush 78
bipush -76
bastore
dup
bipush 79
bipush -15
bastore
dup
bipush 80
22: .line 40
bipush -31
bastore
dup
bipush 81
bipush -26
bastore
dup
bipush 82
bipush -67
bastore
dup
bipush 83
bipush 69
bastore
dup
bipush 84
23: .line 41
bipush -30
bastore
dup
bipush 85
bipush -12
bastore
dup
bipush 86
bipush -74
bastore
dup
bipush 87
bipush 102
bastore
dup
bipush 88
24: .line 42
bipush -52
bastore
dup
bipush 89
bipush -107
bastore
dup
bipush 90
iconst_3
bastore
dup
bipush 91
bipush 86
bastore
dup
bipush 92
25: .line 43
bipush -44
bastore
dup
bipush 93
bipush 28
bastore
dup
bipush 94
bipush 30
bastore
dup
bipush 95
bipush -41
bastore
dup
bipush 96
26: .line 44
bipush -5
bastore
dup
bipush 97
bipush -61
bastore
dup
bipush 98
bipush -114
bastore
dup
bipush 99
bipush -75
bastore
dup
bipush 100
27: .line 45
bipush -23
bastore
dup
bipush 101
bipush -49
bastore
dup
bipush 102
bipush -65
bastore
dup
bipush 103
bipush -70
bastore
dup
bipush 104
28: .line 46
bipush -22
bastore
dup
bipush 105
bipush 119
bastore
dup
bipush 106
bipush 57
bastore
dup
bipush 107
bipush -81
bastore
dup
bipush 108
29: .line 47
bipush 51
bastore
dup
bipush 109
bipush -55
bastore
dup
bipush 110
bipush 98
bastore
dup
bipush 111
bipush 113
bastore
dup
bipush 112
30: .line 48
bipush -127
bastore
dup
bipush 113
bipush 121
bastore
dup
bipush 114
bipush 9
bastore
dup
bipush 115
bipush -83
bastore
dup
bipush 116
31: .line 49
bipush 36
bastore
dup
bipush 117
bipush -51
bastore
dup
bipush 118
bipush -7
bastore
dup
bipush 119
bipush -40
bastore
dup
bipush 120
32: .line 50
bipush -27
bastore
dup
bipush 121
bipush -59
bastore
dup
bipush 122
bipush -71
bastore
dup
bipush 123
bipush 77
bastore
dup
bipush 124
33: .line 51
bipush 68
bastore
dup
bipush 125
bipush 8
bastore
dup
bipush 126
bipush -122
bastore
dup
bipush 127
bipush -25
bastore
dup
sipush 128
34: .line 52
bipush -95
bastore
dup
sipush 129
bipush 29
bastore
dup
sipush 130
bipush -86
bastore
dup
sipush 131
bipush -19
bastore
dup
sipush 132
35: .line 53
bipush 6
bastore
dup
sipush 133
bipush 112
bastore
dup
sipush 134
bipush -78
bastore
dup
sipush 135
bipush -46
bastore
dup
sipush 136
36: .line 54
bipush 65
bastore
dup
sipush 137
bipush 123
bastore
dup
sipush 138
bipush -96
bastore
dup
sipush 139
bipush 17
bastore
dup
sipush 140
37: .line 55
bipush 49
bastore
dup
sipush 141
bipush -62
bastore
dup
sipush 142
bipush 39
bastore
dup
sipush 143
bipush -112
bastore
dup
sipush 144
38: .line 56
bipush 32
bastore
dup
sipush 145
bipush -10
bastore
dup
sipush 146
bipush 96
bastore
dup
sipush 147
iconst_m1
bastore
dup
sipush 148
39: .line 57
bipush -106
bastore
dup
sipush 149
bipush 92
bastore
dup
sipush 150
bipush -79
bastore
dup
sipush 151
bipush -85
bastore
dup
sipush 152
40: .line 58
bipush -98
bastore
dup
sipush 153
bipush -100
bastore
dup
sipush 154
bipush 82
bastore
dup
sipush 155
bipush 27
bastore
dup
sipush 156
41: .line 59
bipush 95
bastore
dup
sipush 157
bipush -109
bastore
dup
sipush 158
bipush 10
bastore
dup
sipush 159
bipush -17
bastore
dup
sipush 160
42: .line 60
bipush -111
bastore
dup
sipush 161
bipush -123
bastore
dup
sipush 162
bipush 73
bastore
dup
sipush 163
bipush -18
bastore
dup
sipush 164
43: .line 61
bipush 45
bastore
dup
sipush 165
bipush 79
bastore
dup
sipush 166
bipush -113
bastore
dup
sipush 167
bipush 59
bastore
dup
sipush 168
44: .line 62
bipush 71
bastore
dup
sipush 169
bipush -121
bastore
dup
sipush 170
bipush 109
bastore
dup
sipush 171
bipush 70
bastore
dup
sipush 172
45: .line 63
bipush -42
bastore
dup
sipush 173
bipush 62
bastore
dup
sipush 174
bipush 105
bastore
dup
sipush 175
bipush 100
bastore
dup
sipush 176
46: .line 64
bipush 42
bastore
dup
sipush 177
bipush -50
bastore
dup
sipush 178
bipush -53
bastore
dup
sipush 179
bipush 47
bastore
dup
sipush 180
47: .line 65
bipush -4
bastore
dup
sipush 181
bipush -105
bastore
dup
sipush 182
iconst_5
bastore
dup
sipush 183
bipush 122
bastore
dup
sipush 184
48: .line 66
bipush -84
bastore
dup
sipush 185
bipush 127
bastore
dup
sipush 186
bipush -43
bastore
dup
sipush 187
bipush 26
bastore
dup
sipush 188
49: .line 67
bipush 75
bastore
dup
sipush 189
bipush 14
bastore
dup
sipush 190
bipush -89
bastore
dup
sipush 191
bipush 90
bastore
dup
sipush 192
50: .line 68
bipush 40
bastore
dup
sipush 193
bipush 20
bastore
dup
sipush 194
bipush 63
bastore
dup
sipush 195
bipush 41
bastore
dup
sipush 196
51: .line 69
bipush -120
bastore
dup
sipush 197
bipush 60
bastore
dup
sipush 198
bipush 76
bastore
dup
sipush 199
iconst_2
bastore
dup
sipush 200
52: .line 70
bipush -72
bastore
dup
sipush 201
bipush -38
bastore
dup
sipush 202
bipush -80
bastore
dup
sipush 203
bipush 23
bastore
dup
sipush 204
53: .line 71
bipush 85
bastore
dup
sipush 205
bipush 31
bastore
dup
sipush 206
bipush -118
bastore
dup
sipush 207
bipush 125
bastore
dup
sipush 208
54: .line 72
bipush 87
bastore
dup
sipush 209
bipush -57
bastore
dup
sipush 210
bipush -115
bastore
dup
sipush 211
bipush 116
bastore
dup
sipush 212
55: .line 73
bipush -73
bastore
dup
sipush 213
bipush -60
bastore
dup
sipush 214
bipush -97
bastore
dup
sipush 215
bipush 114
bastore
dup
sipush 216
56: .line 74
bipush 126
bastore
dup
sipush 217
bipush 21
bastore
dup
sipush 218
bipush 34
bastore
dup
sipush 219
bipush 18
bastore
dup
sipush 220
57: .line 75
bipush 88
bastore
dup
sipush 221
bipush 7
bastore
dup
sipush 222
bipush -103
bastore
dup
sipush 223
bipush 52
bastore
dup
sipush 224
58: .line 76
bipush 110
bastore
dup
sipush 225
bipush 80
bastore
dup
sipush 226
bipush -34
bastore
dup
sipush 227
bipush 104
bastore
dup
sipush 228
59: .line 77
bipush 101
bastore
dup
sipush 229
bipush -68
bastore
dup
sipush 230
bipush -37
bastore
dup
sipush 231
bipush -8
bastore
dup
sipush 232
60: .line 78
bipush -56
bastore
dup
sipush 233
bipush -88
bastore
dup
sipush 234
bipush 43
bastore
dup
sipush 235
bipush 64
bastore
dup
sipush 236
61: .line 79
bipush -36
bastore
dup
sipush 237
bipush -2
bastore
dup
sipush 238
bipush 50
bastore
dup
sipush 239
bipush -92
bastore
dup
sipush 240
62: .line 80
bipush -54
bastore
dup
sipush 241
bipush 16
bastore
dup
sipush 242
bipush 33
bastore
dup
sipush 243
bipush -16
bastore
dup
sipush 244
63: .line 81
bipush -45
bastore
dup
sipush 245
bipush 93
bastore
dup
sipush 246
bipush 15
bastore
dup
sipush 248
64: .line 82
bipush 111
bastore
dup
sipush 249
bipush -99
bastore
dup
sipush 250
bipush 54
bastore
dup
sipush 251
bipush 66
bastore
dup
sipush 252
65: .line 83
bipush 74
bastore
dup
sipush 253
bipush 94
bastore
dup
sipush 254
bipush -63
bastore
dup
sipush 255
bipush -32
bastore
aastore
dup
iconst_1
66: .line 84
sipush 256
newarray 8
dup
iconst_0
67: .line 85
bipush 117
bastore
dup
iconst_1
bipush -13
bastore
dup
iconst_2
bipush -58
bastore
dup
iconst_3
bipush -12
bastore
dup
iconst_4
68: .line 86
bipush -37
bastore
dup
iconst_5
bipush 123
bastore
dup
bipush 6
bipush -5
bastore
dup
bipush 7
bipush -56
bastore
dup
bipush 8
69: .line 87
bipush 74
bastore
dup
bipush 9
bipush -45
bastore
dup
bipush 10
bipush -26
bastore
dup
bipush 11
bipush 107
bastore
dup
bipush 12
70: .line 88
bipush 69
bastore
dup
bipush 13
bipush 125
bastore
dup
bipush 14
bipush -24
bastore
dup
bipush 15
bipush 75
bastore
dup
bipush 16
71: .line 89
bipush -42
bastore
dup
bipush 17
bipush 50
bastore
dup
bipush 18
bipush -40
bastore
dup
bipush 19
bipush -3
bastore
dup
bipush 20
72: .line 90
bipush 55
bastore
dup
bipush 21
bipush 113
bastore
dup
bipush 22
bipush -15
bastore
dup
bipush 23
bipush -31
bastore
dup
bipush 24
73: .line 91
bipush 48
bastore
dup
bipush 25
bipush 15
bastore
dup
bipush 26
bipush -8
bastore
dup
bipush 27
bipush 27
bastore
dup
bipush 28
74: .line 92
bipush -121
bastore
dup
bipush 29
bipush -6
bastore
dup
bipush 30
bipush 6
bastore
dup
bipush 31
bipush 63
bastore
dup
bipush 32
75: .line 93
bipush 94
bastore
dup
bipush 33
bipush -70
bastore
dup
bipush 34
bipush -82
bastore
dup
bipush 35
bipush 91
bastore
dup
bipush 36
76: .line 94
bipush -118
bastore
dup
bipush 38
bipush -68
bastore
dup
bipush 39
bipush -99
bastore
dup
bipush 40
77: .line 95
bipush 109
bastore
dup
bipush 41
bipush -63
bastore
dup
bipush 42
bipush -79
bastore
dup
bipush 43
bipush 14
bastore
dup
bipush 44
78: .line 96
bipush -128
bastore
dup
bipush 45
bipush 93
bastore
dup
bipush 46
bipush -46
bastore
dup
bipush 47
bipush -43
bastore
dup
bipush 48
79: .line 97
bipush -96
bastore
dup
bipush 49
bipush -124
bastore
dup
bipush 50
bipush 7
bastore
dup
bipush 51
bipush 20
bastore
dup
bipush 52
80: .line 98
bipush -75
bastore
dup
bipush 53
bipush -112
bastore
dup
bipush 54
bipush 44
bastore
dup
bipush 55
bipush -93
bastore
dup
bipush 56
81: .line 99
bipush -78
bastore
dup
bipush 57
bipush 115
bastore
dup
bipush 58
bipush 76
bastore
dup
bipush 59
bipush 84
bastore
dup
bipush 60
82: .line 100
bipush -110
bastore
dup
bipush 61
bipush 116
bastore
dup
bipush 62
bipush 54
bastore
dup
bipush 63
bipush 81
bastore
dup
bipush 64
83: .line 101
bipush 56
bastore
dup
bipush 65
bipush -80
bastore
dup
bipush 66
bipush -67
bastore
dup
bipush 67
bipush 90
bastore
dup
bipush 68
84: .line 102
bipush -4
bastore
dup
bipush 69
bipush 96
bastore
dup
bipush 70
bipush 98
bastore
dup
bipush 71
bipush -106
bastore
dup
bipush 72
85: .line 103
bipush 108
bastore
dup
bipush 73
bipush 66
bastore
dup
bipush 74
bipush -9
bastore
dup
bipush 75
bipush 16
bastore
dup
bipush 76
86: .line 104
bipush 124
bastore
dup
bipush 77
bipush 40
bastore
dup
bipush 78
bipush 39
bastore
dup
bipush 79
bipush -116
bastore
dup
bipush 80
87: .line 105
bipush 19
bastore
dup
bipush 81
bipush -107
bastore
dup
bipush 82
bipush -100
bastore
dup
bipush 83
bipush -57
bastore
dup
bipush 84
88: .line 106
bipush 36
bastore
dup
bipush 85
bipush 70
bastore
dup
bipush 86
bipush 59
bastore
dup
bipush 87
bipush 112
bastore
dup
bipush 88
89: .line 107
bipush -54
bastore
dup
bipush 89
bipush -29
bastore
dup
bipush 90
bipush -123
bastore
dup
bipush 91
bipush -53
bastore
dup
bipush 92
90: .line 108
bipush 17
bastore
dup
bipush 93
bipush -48
bastore
dup
bipush 94
bipush -109
bastore
dup
bipush 95
bipush -72
bastore
dup
bipush 96
91: .line 109
bipush -90
bastore
dup
bipush 97
bipush -125
bastore
dup
bipush 98
bipush 32
bastore
dup
bipush 99
iconst_m1
bastore
dup
bipush 100
92: .line 110
bipush -97
bastore
dup
bipush 101
bipush 119
bastore
dup
bipush 102
bipush -61
bastore
dup
bipush 103
bipush -52
bastore
dup
bipush 104
93: .line 111
iconst_3
bastore
dup
bipush 105
bipush 111
bastore
dup
bipush 106
bipush 8
bastore
dup
bipush 107
bipush -65
bastore
dup
bipush 108
94: .line 112
bipush 64
bastore
dup
bipush 109
bipush -25
bastore
dup
bipush 110
bipush 43
bastore
dup
bipush 111
bipush -30
bastore
dup
bipush 112
95: .line 113
bipush 121
bastore
dup
bipush 113
bipush 12
bastore
dup
bipush 114
bipush -86
bastore
dup
bipush 115
bipush -126
bastore
dup
bipush 116
96: .line 114
bipush 65
bastore
dup
bipush 117
bipush 58
bastore
dup
bipush 118
bipush -22
bastore
dup
bipush 119
bipush -71
bastore
dup
bipush 120
97: .line 115
bipush -28
bastore
dup
bipush 121
bipush -102
bastore
dup
bipush 122
bipush -92
bastore
dup
bipush 123
bipush -105
bastore
dup
bipush 124
98: .line 116
bipush 126
bastore
dup
bipush 125
bipush -38
bastore
dup
bipush 126
bipush 122
bastore
dup
bipush 127
bipush 23
bastore
dup
sipush 128
99: .line 117
bipush 102
bastore
dup
sipush 129
bipush -108
bastore
dup
sipush 130
bipush -95
bastore
dup
sipush 131
bipush 29
bastore
dup
sipush 132
100: .line 118
bipush 61
bastore
dup
sipush 133
bipush -16
bastore
dup
sipush 134
bipush -34
bastore
dup
sipush 135
bipush -77
bastore
dup
sipush 136
101: .line 119
bipush 11
bastore
dup
sipush 137
bipush 114
bastore
dup
sipush 138
bipush -89
bastore
dup
sipush 139
bipush 28
bastore
dup
sipush 140
102: .line 120
bipush -17
bastore
dup
sipush 141
bipush -47
bastore
dup
sipush 142
bipush 83
bastore
dup
sipush 143
bipush 62
bastore
dup
sipush 144
103: .line 121
bipush -113
bastore
dup
sipush 145
bipush 51
bastore
dup
sipush 146
bipush 38
bastore
dup
sipush 147
bipush 95
bastore
dup
sipush 148
104: .line 122
bipush -20
bastore
dup
sipush 149
bipush 118
bastore
dup
sipush 150
bipush 42
bastore
dup
sipush 151
bipush 73
bastore
dup
sipush 152
105: .line 123
bipush -127
bastore
dup
sipush 153
bipush -120
bastore
dup
sipush 154
bipush -18
bastore
dup
sipush 155
bipush 33
bastore
dup
sipush 156
106: .line 124
bipush -60
bastore
dup
sipush 157
bipush 26
bastore
dup
sipush 158
bipush -21
bastore
dup
sipush 159
bipush -39
bastore
dup
sipush 160
107: .line 125
bipush -59
bastore
dup
sipush 161
bipush 57
bastore
dup
sipush 162
bipush -103
bastore
dup
sipush 163
bipush -51
bastore
dup
sipush 164
108: .line 126
bipush -83
bastore
dup
sipush 165
bipush 49
bastore
dup
sipush 166
bipush -117
bastore
dup
sipush 167
iconst_1
bastore
dup
sipush 168
109: .line 127
bipush 24
bastore
dup
sipush 169
bipush 35
bastore
dup
sipush 170
bipush -35
bastore
dup
sipush 171
bipush 31
bastore
dup
sipush 172
110: .line 128
bipush 78
bastore
dup
sipush 173
bipush 45
bastore
dup
sipush 174
bipush -7
bastore
dup
sipush 175
bipush 72
bastore
dup
sipush 176
111: .line 129
bipush 79
bastore
dup
sipush 177
bipush -14
bastore
dup
sipush 178
bipush 101
bastore
dup
sipush 179
bipush -114
bastore
dup
sipush 180
112: .line 130
bipush 120
bastore
dup
sipush 181
bipush 92
bastore
dup
sipush 182
bipush 88
bastore
dup
sipush 183
bipush 25
bastore
dup
sipush 184
113: .line 131
bipush -115
bastore
dup
sipush 185
bipush -27
bastore
dup
sipush 186
bipush -104
bastore
dup
sipush 187
bipush 87
bastore
dup
sipush 188
114: .line 132
bipush 103
bastore
dup
sipush 189
bipush 127
bastore
dup
sipush 190
iconst_5
bastore
dup
sipush 191
bipush 100
bastore
dup
sipush 192
115: .line 133
bipush -81
bastore
dup
sipush 193
bipush 99
bastore
dup
sipush 194
bipush -74
bastore
dup
sipush 195
bipush -2
bastore
dup
sipush 196
116: .line 134
bipush -11
bastore
dup
sipush 197
bipush -73
bastore
dup
sipush 198
bipush 60
bastore
dup
sipush 199
bipush -91
bastore
dup
sipush 200
117: .line 135
bipush -50
bastore
dup
sipush 201
bipush -23
bastore
dup
sipush 202
bipush 104
bastore
dup
sipush 203
bipush 68
bastore
dup
sipush 204
118: .line 136
bipush -32
bastore
dup
sipush 205
bipush 77
bastore
dup
sipush 206
bipush 67
bastore
dup
sipush 207
bipush 105
bastore
dup
sipush 208
119: .line 137
bipush 41
bastore
dup
sipush 209
bipush 46
bastore
dup
sipush 210
bipush -84
bastore
dup
sipush 211
bipush 21
bastore
dup
sipush 212
120: .line 138
bipush 89
bastore
dup
sipush 213
bipush -88
bastore
dup
sipush 214
bipush 10
bastore
dup
sipush 215
bipush -98
bastore
dup
sipush 216
121: .line 139
bipush 110
bastore
dup
sipush 217
bipush 71
bastore
dup
sipush 218
bipush -33
bastore
dup
sipush 219
bipush 52
bastore
dup
sipush 220
122: .line 140
bipush 53
bastore
dup
sipush 221
bipush 106
bastore
dup
sipush 222
bipush -49
bastore
dup
sipush 223
bipush -36
bastore
dup
sipush 224
123: .line 141
bipush 34
bastore
dup
sipush 225
bipush -55
bastore
dup
sipush 226
bipush -64
bastore
dup
sipush 227
bipush -101
bastore
dup
sipush 228
124: .line 142
bipush -119
bastore
dup
sipush 229
bipush -44
bastore
dup
sipush 230
bipush -19
bastore
dup
sipush 231
bipush -85
bastore
dup
sipush 232
125: .line 143
bipush 18
bastore
dup
sipush 233
bipush -94
bastore
dup
sipush 234
bipush 13
bastore
dup
sipush 235
bipush 82
bastore
dup
sipush 236
126: .line 144
bipush -69
bastore
dup
sipush 237
iconst_2
bastore
dup
sipush 238
bipush 47
bastore
dup
sipush 239
bipush -87
bastore
dup
sipush 240
127: .line 145
bipush -41
bastore
dup
sipush 241
bipush 97
bastore
dup
sipush 242
bipush 30
bastore
dup
sipush 243
bipush -76
bastore
dup
sipush 244
128: .line 146
bipush 80
bastore
dup
sipush 245
iconst_4
bastore
dup
sipush 246
bipush -10
bastore
dup
sipush 247
bipush -62
bastore
dup
sipush 248
129: .line 147
bipush 22
bastore
dup
sipush 249
bipush 37
bastore
dup
sipush 250
bipush -122
bastore
dup
sipush 251
bipush 86
bastore
dup
sipush 252
130: .line 148
bipush 85
bastore
dup
sipush 253
bipush 9
bastore
dup
sipush 254
bipush -66
bastore
dup
sipush 255
bipush -111
bastore
aastore
131: .line 18
putstatic org.bouncycastle.crypto.engines.TwofishEngine.P:[[B
132: .line 204
return
LocalVariableTable:
Start End Slot Name Signature
public void <init>();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=6, args_size=1
start local 0 // org.bouncycastle.crypto.engines.TwofishEngine this
0: .line 224
aload 0 /* this */
invokespecial java.lang.Object.<init>:()V
1: .line 206
aload 0 /* this */
iconst_0
putfield org.bouncycastle.crypto.engines.TwofishEngine.encrypting:Z
2: .line 208
aload 0 /* this */
sipush 256
newarray 10
putfield org.bouncycastle.crypto.engines.TwofishEngine.gMDS0:[I
3: .line 209
aload 0 /* this */
sipush 256
newarray 10
putfield org.bouncycastle.crypto.engines.TwofishEngine.gMDS1:[I
4: .line 210
aload 0 /* this */
sipush 256
newarray 10
putfield org.bouncycastle.crypto.engines.TwofishEngine.gMDS2:[I
5: .line 211
aload 0 /* this */
sipush 256
newarray 10
putfield org.bouncycastle.crypto.engines.TwofishEngine.gMDS3:[I
6: .line 220
aload 0 /* this */
iconst_0
putfield org.bouncycastle.crypto.engines.TwofishEngine.k64Cnt:I
7: .line 222
aload 0 /* this */
aconst_null
putfield org.bouncycastle.crypto.engines.TwofishEngine.workingKey:[B
8: .line 227
iconst_2
newarray 10
astore 1 /* m1 */
start local 1 // int[] m1
9: .line 228
iconst_2
newarray 10
astore 2 /* mX */
start local 2 // int[] mX
10: .line 229
iconst_2
newarray 10
astore 3 /* mY */
start local 3 // int[] mY
11: .line 232
iconst_0
istore 5 /* i */
start local 5 // int i
12: goto 34
13: .line 234
StackMap locals: org.bouncycastle.crypto.engines.TwofishEngine int[] int[] int[] top int
StackMap stack:
getstatic org.bouncycastle.crypto.engines.TwofishEngine.P:[[B
iconst_0
aaload
iload 5 /* i */
baload
sipush 255
iand
istore 4 /* j */
start local 4 // int j
14: .line 235
aload 1 /* m1 */
iconst_0
iload 4 /* j */
iastore
15: .line 236
aload 2 /* mX */
iconst_0
aload 0 /* this */
iload 4 /* j */
invokevirtual org.bouncycastle.crypto.engines.TwofishEngine.Mx_X:(I)I
sipush 255
iand
iastore
16: .line 237
aload 3 /* mY */
iconst_0
aload 0 /* this */
iload 4 /* j */
invokevirtual org.bouncycastle.crypto.engines.TwofishEngine.Mx_Y:(I)I
sipush 255
iand
iastore
17: .line 239
getstatic org.bouncycastle.crypto.engines.TwofishEngine.P:[[B
iconst_1
aaload
iload 5 /* i */
baload
sipush 255
iand
istore 4 /* j */
18: .line 240
aload 1 /* m1 */
iconst_1
iload 4 /* j */
iastore
19: .line 241
aload 2 /* mX */
iconst_1
aload 0 /* this */
iload 4 /* j */
invokevirtual org.bouncycastle.crypto.engines.TwofishEngine.Mx_X:(I)I
sipush 255
iand
iastore
20: .line 242
aload 3 /* mY */
iconst_1
aload 0 /* this */
iload 4 /* j */
invokevirtual org.bouncycastle.crypto.engines.TwofishEngine.Mx_Y:(I)I
sipush 255
iand
iastore
21: .line 244
aload 0 /* this */
getfield org.bouncycastle.crypto.engines.TwofishEngine.gMDS0:[I
iload 5 /* i */
aload 1 /* m1 */
iconst_1
iaload
aload 2 /* mX */
iconst_1
iaload
bipush 8
ishl
ior
22: .line 245
aload 3 /* mY */
iconst_1
iaload
bipush 16
ishl
ior
aload 3 /* mY */
iconst_1
iaload
bipush 24
ishl
ior
23: .line 244
iastore
24: .line 247
aload 0 /* this */
getfield org.bouncycastle.crypto.engines.TwofishEngine.gMDS1:[I
iload 5 /* i */
aload 3 /* mY */
iconst_0
iaload
aload 3 /* mY */
iconst_0
iaload
bipush 8
ishl
ior
25: .line 248
aload 2 /* mX */
iconst_0
iaload
bipush 16
ishl
ior
aload 1 /* m1 */
iconst_0
iaload
bipush 24
ishl
ior
26: .line 247
iastore
27: .line 250
aload 0 /* this */
getfield org.bouncycastle.crypto.engines.TwofishEngine.gMDS2:[I
iload 5 /* i */
aload 2 /* mX */
iconst_1
iaload
aload 3 /* mY */
iconst_1
iaload
bipush 8
ishl
ior
28: .line 251
aload 1 /* m1 */
iconst_1
iaload
bipush 16
ishl
ior
aload 3 /* mY */
iconst_1
iaload
bipush 24
ishl
ior
29: .line 250
iastore
30: .line 253
aload 0 /* this */
getfield org.bouncycastle.crypto.engines.TwofishEngine.gMDS3:[I
iload 5 /* i */
aload 2 /* mX */
iconst_0
iaload
aload 1 /* m1 */
iconst_0
iaload
bipush 8
ishl
ior
31: .line 254
aload 3 /* mY */
iconst_0
iaload
bipush 16
ishl
ior
aload 2 /* mX */
iconst_0
iaload
bipush 24
ishl
ior
32: .line 253
iastore
33: .line 232
iinc 5 /* i */ 1
end local 4 // int j
StackMap locals:
StackMap stack:
34: iload 5 /* i */
sipush 256
if_icmplt 13
end local 5 // int i
35: .line 256
return
end local 3 // int[] mY
end local 2 // int[] mX
end local 1 // int[] m1
end local 0 // org.bouncycastle.crypto.engines.TwofishEngine this
LocalVariableTable:
Start End Slot Name Signature
0 36 0 this Lorg/bouncycastle/crypto/engines/TwofishEngine;
9 36 1 m1 [I
10 36 2 mX [I
11 36 3 mY [I
14 34 4 j I
12 35 5 i I
public void init(boolean, org.bouncycastle.crypto.CipherParameters);
descriptor: (ZLorg/bouncycastle/crypto/CipherParameters;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=3, args_size=3
start local 0 // org.bouncycastle.crypto.engines.TwofishEngine this
start local 1 // boolean encrypting
start local 2 // org.bouncycastle.crypto.CipherParameters params
0: .line 270
aload 2 /* params */
instanceof org.bouncycastle.crypto.params.KeyParameter
ifeq 6
1: .line 272
aload 0 /* this */
iload 1 /* encrypting */
putfield org.bouncycastle.crypto.engines.TwofishEngine.encrypting:Z
2: .line 273
aload 0 /* this */
aload 2 /* params */
checkcast org.bouncycastle.crypto.params.KeyParameter
invokevirtual org.bouncycastle.crypto.params.KeyParameter.getKey:()[B
putfield org.bouncycastle.crypto.engines.TwofishEngine.workingKey:[B
3: .line 274
aload 0 /* this */
aload 0 /* this */
getfield org.bouncycastle.crypto.engines.TwofishEngine.workingKey:[B
arraylength
bipush 8
idiv
putfield org.bouncycastle.crypto.engines.TwofishEngine.k64Cnt:I
4: .line 275
aload 0 /* this */
aload 0 /* this */
getfield org.bouncycastle.crypto.engines.TwofishEngine.workingKey:[B
invokevirtual org.bouncycastle.crypto.engines.TwofishEngine.setKey:([B)V
5: .line 277
return
6: .line 280
StackMap locals:
StackMap stack:
new java.lang.IllegalArgumentException
dup
new java.lang.StringBuilder
dup
ldc "invalid parameter passed to Twofish init - "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 2 /* params */
invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
invokevirtual java.lang.Class.getName:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
end local 2 // org.bouncycastle.crypto.CipherParameters params
end local 1 // boolean encrypting
end local 0 // org.bouncycastle.crypto.engines.TwofishEngine this
LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Lorg/bouncycastle/crypto/engines/TwofishEngine;
0 7 1 encrypting Z
0 7 2 params Lorg/bouncycastle/crypto/CipherParameters;
MethodParameters:
Name Flags
encrypting
params
public java.lang.String getAlgorithmName();
descriptor: ()Ljava/lang/String;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 // org.bouncycastle.crypto.engines.TwofishEngine this
0: .line 285
ldc "Twofish"
areturn
end local 0 // org.bouncycastle.crypto.engines.TwofishEngine this
LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/bouncycastle/crypto/engines/TwofishEngine;
public int processBlock(byte[], int, byte[], int);
descriptor: ([BI[BI)I
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=5, args_size=5
start local 0 // org.bouncycastle.crypto.engines.TwofishEngine this
start local 1 // byte[] in
start local 2 // int inOff
start local 3 // byte[] out
start local 4 // int outOff
0: .line 294
aload 0 /* this */
getfield org.bouncycastle.crypto.engines.TwofishEngine.workingKey:[B
ifnonnull 2
1: .line 296
new java.lang.IllegalStateException
dup
ldc "Twofish not initialised"
invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
athrow
2: .line 299
StackMap locals:
StackMap stack:
iload 2 /* inOff */
bipush 16
iadd
aload 1 /* in */
arraylength
if_icmple 4
3: .line 301
new org.bouncycastle.crypto.DataLengthException
dup
ldc "input buffer too short"
invokespecial org.bouncycastle.crypto.DataLengthException.<init>:(Ljava/lang/String;)V
athrow
4: .line 304
StackMap locals:
StackMap stack:
iload 4 /* outOff */
bipush 16
iadd
aload 3 /* out */
arraylength
if_icmple 6
5: .line 306
new org.bouncycastle.crypto.DataLengthException
dup
ldc "output buffer too short"
invokespecial org.bouncycastle.crypto.DataLengthException.<init>:(Ljava/lang/String;)V
athrow
6: .line 309
StackMap locals:
StackMap stack:
aload 0 /* this */
getfield org.bouncycastle.crypto.engines.TwofishEngine.encrypting:Z
ifeq 9
7: .line 311
aload 0 /* this */
aload 1 /* in */
iload 2 /* inOff */
aload 3 /* out */
iload 4 /* outOff */
invokevirtual org.bouncycastle.crypto.engines.TwofishEngine.encryptBlock:([BI[BI)V
8: .line 312
goto 10
9: .line 315
StackMap locals:
StackMap stack:
aload 0 /* this */
aload 1 /* in */
iload 2 /* inOff */
aload 3 /* out */
iload 4 /* outOff */
invokevirtual org.bouncycastle.crypto.engines.TwofishEngine.decryptBlock:([BI[BI)V
10: .line 318
StackMap locals:
StackMap stack:
bipush 16
ireturn
end local 4 // int outOff
end local 3 // byte[] out
end local 2 // int inOff
end local 1 // byte[] in
end local 0 // org.bouncycastle.crypto.engines.TwofishEngine this
LocalVariableTable:
Start End Slot Name Signature
0 11 0 this Lorg/bouncycastle/crypto/engines/TwofishEngine;
0 11 1 in [B
0 11 2 inOff I
0 11 3 out [B
0 11 4 outOff I
MethodParameters:
Name Flags
in
inOff
out
outOff
public void reset();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=1, args_size=1
start local 0 // org.bouncycastle.crypto.engines.TwofishEngine this
0: .line 323
aload 0 /* this */
getfield org.bouncycastle.crypto.engines.TwofishEngine.workingKey:[B
ifnull 2
1: .line 325
aload 0 /* this */
aload 0 /* this */
getfield org.bouncycastle.crypto.engines.TwofishEngine.workingKey:[B
invokevirtual org.bouncycastle.crypto.engines.TwofishEngine.setKey:([B)V
2: .line 327
StackMap locals:
StackMap stack:
return
end local 0 // org.bouncycastle.crypto.engines.TwofishEngine this
LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lorg/bouncycastle/crypto/engines/TwofishEngine;
public int getBlockSize();
descriptor: ()I
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 // org.bouncycastle.crypto.engines.TwofishEngine this
0: .line 331
bipush 16
ireturn
end local 0 // org.bouncycastle.crypto.engines.TwofishEngine this
LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/bouncycastle/crypto/engines/TwofishEngine;
private void setKey(byte[]);
descriptor: ([B)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=7, locals=17, args_size=2
start local 0 // org.bouncycastle.crypto.engines.TwofishEngine this
start local 1 // byte[] key
0: .line 340
iconst_4
newarray 10
astore 2 /* k32e */
start local 2 // int[] k32e
1: .line 341
iconst_4
newarray 10
astore 3 /* k32o */
start local 3 // int[] k32o
2: .line 343
iconst_4
newarray 10
astore 4 /* sBoxKeys */
start local 4 // int[] sBoxKeys
3: .line 344
aload 0 /* this */
bipush 40
newarray 10
putfield org.bouncycastle.crypto.engines.TwofishEngine.gSubKeys:[I
4: .line 346
aload 0 /* this */
getfield org.bouncycastle.crypto.engines.TwofishEngine.k64Cnt:I
iconst_1
if_icmpge 6
5: .line 348
new java.lang.IllegalArgumentException
dup
ldc "Key size less than 64 bits"
invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
6: .line 351
StackMap locals: int[] int[] int[]
StackMap stack:
aload 0 /* this */
getfield org.bouncycastle.crypto.engines.TwofishEngine.k64Cnt:I
iconst_4
if_icmple 8
7: .line 353
new java.lang.IllegalArgumentException
dup
ldc "Key size larger than 256 bits"
invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
8: .line 362
StackMap locals:
StackMap stack:
iconst_0
istore 5 /* i */
start local 5 // int i
9: goto 15
10: .line 364
StackMap locals: int
StackMap stack:
iload 5 /* i */
bipush 8
imul
istore 6 /* p */
start local 6 // int p
11: .line 366
aload 2 /* k32e */
iload 5 /* i */
aload 0 /* this */
aload 1 /* key */
iload 6 /* p */
invokevirtual org.bouncycastle.crypto.engines.TwofishEngine.BytesTo32Bits:([BI)I
iastore
12: .line 367
aload 3 /* k32o */
iload 5 /* i */
aload 0 /* this */
aload 1 /* key */
iload 6 /* p */
iconst_4
iadd
invokevirtual org.bouncycastle.crypto.engines.TwofishEngine.BytesTo32Bits:([BI)I
iastore
13: .line 369
aload 4 /* sBoxKeys */
aload 0 /* this */
getfield org.bouncycastle.crypto.engines.TwofishEngine.k64Cnt:I
iconst_1
isub
iload 5 /* i */
isub
aload 0 /* this */
aload 2 /* k32e */
iload 5 /* i */
iaload
aload 3 /* k32o */
iload 5 /* i */
iaload
invokevirtual org.bouncycastle.crypto.engines.TwofishEngine.RS_MDS_Encode:(II)I
iastore
end local 6 // int p
14: .line 362
iinc 5 /* i */ 1
StackMap locals:
StackMap stack:
15: iload 5 /* i */
aload 0 /* this */
getfield org.bouncycastle.crypto.engines.TwofishEngine.k64Cnt:I
if_icmplt 10
end local 5 // int i
16: .line 373
iconst_0
istore 8 /* i */
start local 8 // int i
17: goto 27
18: .line 375
StackMap locals: org.bouncycastle.crypto.engines.TwofishEngine byte[] int[] int[] int[] top top top int
StackMap stack:
iload 8 /* i */
ldc 33686018
imul
istore 5 /* q */
start local 5 // int q
19: .line 376
aload 0 /* this */
iload 5 /* q */
aload 2 /* k32e */
invokevirtual org.bouncycastle.crypto.engines.TwofishEngine.F32:(I[I)I
istore 6 /* A */
start local 6 // int A
20: .line 377
aload 0 /* this */
iload 5 /* q */
ldc 16843009
iadd
aload 3 /* k32o */
invokevirtual org.bouncycastle.crypto.engines.TwofishEngine.F32:(I[I)I
istore 7 /* B */
start local 7 // int B
21: .line 378
iload 7 /* B */
bipush 8
ishl
iload 7 /* B */
bipush 24
iushr
ior
istore 7 /* B */
22: .line 379
iload 6 /* A */
iload 7 /* B */
iadd
istore 6 /* A */
23: .line 380
aload 0 /* this */
getfield org.bouncycastle.crypto.engines.TwofishEngine.gSubKeys:[I
iload 8 /* i */
iconst_2
imul
iload 6 /* A */
iastore
24: .line 381
iload 6 /* A */
iload 7 /* B */
iadd
istore 6 /* A */
25: .line 382
aload 0 /* this */
getfield org.bouncycastle.crypto.engines.TwofishEngine.gSubKeys:[I
iload 8 /* i */
iconst_2
imul
iconst_1
iadd
iload 6 /* A */
bipush 9
ishl
iload 6 /* A */
bipush 23
iushr
ior
iastore
26: .line 373
iinc 8 /* i */ 1
end local 7 // int B
end local 6 // int A
end local 5 // int q
StackMap locals:
StackMap stack:
27: iload 8 /* i */
bipush 20
if_icmplt 18
end local 8 // int i
28: .line 388
aload 4 /* sBoxKeys */
iconst_0
iaload
istore 8 /* k0 */
start local 8 // int k0
29: .line 389
aload 4 /* sBoxKeys */
iconst_1
iaload
istore 9 /* k1 */
start local 9 // int k1
30: .line 390
aload 4 /* sBoxKeys */
iconst_2
iaload
istore 10 /* k2 */
start local 10 // int k2
31: .line 391
aload 4 /* sBoxKeys */
iconst_3
iaload
istore 11 /* k3 */
start local 11 // int k3
32: .line 393
aload 0 /* this */
sipush 1024
newarray 10
putfield org.bouncycastle.crypto.engines.TwofishEngine.gSBox:[I
33: .line 394
iconst_0
istore 16 /* i */
start local 16 // int i
34: goto 66
35: .line 396
StackMap locals: org.bouncycastle.crypto.engines.TwofishEngine byte[] int[] int[] int[] top top top int int int int top top top top int
StackMap stack:
iload 16 /* i */
dup
istore 15 /* b3 */
start local 15 // int b3
36: dup
istore 14 /* b2 */
start local 14 // int b2
37: dup
istore 13 /* b1 */
start local 13 // int b1
38: istore 12 /* b0 */
start local 12 // int b0
39: .line 397
aload 0 /* this */
getfield org.bouncycastle.crypto.engines.TwofishEngine.k64Cnt:I
iconst_3
iand
tableswitch { // 0 - 3
0: 45
1: 40
2: 53
3: 49
default: 65
}
40: .line 400
StackMap locals: org.bouncycastle.crypto.engines.TwofishEngine byte[] int[] int[] int[] top top top int int int int int int int int int
StackMap stack:
aload 0 /* this */
getfield org.bouncycastle.crypto.engines.TwofishEngine.gSBox:[I
iload 16 /* i */
iconst_2
imul
aload 0 /* this */
getfield org.bouncycastle.crypto.engines.TwofishEngine.gMDS0:[I
getstatic org.bouncycastle.crypto.engines.TwofishEngine.P:[[B
iconst_0
aaload
iload 12 /* b0 */
baload
sipush 255
iand
aload 0 /* this */
iload 8 /* k0 */
invokevirtual org.bouncycastle.crypto.engines.TwofishEngine.b0:(I)I
ixor
iaload
iastore
41: .line 401
aload 0 /* this */
getfield org.bouncycastle.crypto.engines.TwofishEngine.gSBox:[I
iload 16 /* i */
iconst_2
imul
iconst_1
iadd
aload 0 /* this */
getfield org.bouncycastle.crypto.engines.TwofishEngine.gMDS1:[I
getstatic org.bouncycastle.crypto.engines.TwofishEngine.P:[[B
iconst_0
aaload
iload 13 /* b1 */
baload
sipush 255
iand
aload 0 /* this */
iload 8 /* k0 */
invokevirtual org.bouncycastle.crypto.engines.TwofishEngine.b1:(I)I
ixor
iaload
iastore
42: .line 402
aload 0 /* this */
getfield org.bouncycastle.crypto.engines.TwofishEngine.gSBox:[I
iload 16 /* i */
iconst_2
imul
sipush 512
iadd
aload 0 /* this */
getfield org.bouncycastle.crypto.engines.TwofishEngine.gMDS2:[I
getstatic org.bouncycastle.crypto.engines.TwofishEngine.P:[[B
iconst_1
aaload
iload 14 /* b2 */
baload
sipush 255
iand
aload 0 /* this */
iload 8 /* k0 */
invokevirtual org.bouncycastle.crypto.engines.TwofishEngine.b2:(I)I
ixor
iaload
iastore
43: .line 403
aload 0 /* this */
getfield org.bouncycastle.crypto.engines.TwofishEngine.gSBox:[I
iload 16 /* i */
iconst_2
imul
sipush 513
iadd
aload 0 /* this */
getfield org.bouncycastle.crypto.engines.TwofishEngine.gMDS3:[I
getstatic org.bouncycastle.crypto.engines.TwofishEngine.P:[[B
iconst_1
aaload
iload 15 /* b3 */
baload
sipush 255
iand
aload 0 /* this */
iload 8 /* k0 */
invokevirtual org.bouncycastle.crypto.engines.TwofishEngine.b3:(I)I
ixor
iaload
iastore
44: .line 404
goto 65
45: .line 406
StackMap locals:
StackMap stack:
getstatic org.bouncycastle.crypto.engines.TwofishEngine.P:[[B
iconst_1
aaload
iload 12 /* b0 */
baload
sipush 255
iand
aload 0 /* this */
iload 11 /* k3 */
invokevirtual org.bouncycastle.crypto.engines.TwofishEngine.b0:(I)I
ixor
istore 12 /* b0 */
46: .line 407
getstatic org.bouncycastle.crypto.engines.TwofishEngine.P:[[B
iconst_0
aaload
iload 13 /* b1 */
baload
sipush 255
iand
aload 0 /* this */
iload 11 /* k3 */
invokevirtual org.bouncycastle.crypto.engines.TwofishEngine.b1:(I)I
ixor
istore 13 /* b1 */
47: .line 408
getstatic org.bouncycastle.crypto.engines.TwofishEngine.P:[[B
iconst_0
aaload
iload 14 /* b2 */
baload
sipush 255
iand
aload 0 /* this */
iload 11 /* k3 */
invokevirtual org.bouncycastle.crypto.engines.TwofishEngine.b2:(I)I
ixor
istore 14 /* b2 */
48: .line 409
getstatic org.bouncycastle.crypto.engines.TwofishEngine.P:[[B
iconst_1
aaload
iload 15 /* b3 */
baload
sipush 255
iand
aload 0 /* this */
iload 11 /* k3 */
invokevirtual org.bouncycastle.crypto.engines.TwofishEngine.b3:(I)I
ixor
istore 15 /* b3 */
49: .line 411
StackMap locals:
StackMap stack:
getstatic org.bouncycastle.crypto.engines.TwofishEngine.P:[[B
iconst_1
aaload
iload 12 /* b0 */
baload
sipush 255
iand
aload 0 /* this */
iload 10 /* k2 */
invokevirtual org.bouncycastle.crypto.engines.TwofishEngine.b0:(I)I
ixor
istore 12 /* b0 */
50: .line 412
getstatic org.bouncycastle.crypto.engines.TwofishEngine.P:[[B
iconst_1
aaload
iload 13 /* b1 */
baload
sipush 255
iand
aload 0 /* this */
iload 10 /* k2 */
invokevirtual org.bouncycastle.crypto.engines.TwofishEngine.b1:(I)I
ixor
istore 13 /* b1 */
51: .line 413
getstatic org.bouncycastle.crypto.engines.TwofishEngine.P:[[B
iconst_0
aaload
iload 14 /* b2 */
baload
sipush 255
iand
aload 0 /* this */
iload 10 /* k2 */
invokevirtual org.bouncycastle.crypto.engines.TwofishEngine.b2:(I)I
ixor
istore 14 /* b2 */
52: .line 414
getstatic org.bouncycastle.crypto.engines.TwofishEngine.P:[[B
iconst_0
aaload
iload 15 /* b3 */
baload
sipush 255
iand
aload 0 /* this */
iload 10 /* k2 */
invokevirtual org.bouncycastle.crypto.engines.TwofishEngine.b3:(I)I
ixor
istore 15 /* b3 */
53: .line 416
StackMap locals:
StackMap stack:
aload 0 /* this */
getfield org.bouncycastle.crypto.engines.TwofishEngine.gSBox:[I
iload 16 /* i */
iconst_2
imul
aload 0 /* this */
getfield org.bouncycastle.crypto.engines.TwofishEngine.gMDS0:[I
getstatic org.bouncycastle.crypto.engines.TwofishEngine.P:[[B
iconst_0
aaload
54: .line 417
getstatic org.bouncycastle.crypto.engines.TwofishEngine.P:[[B
iconst_0
aaload
iload 12 /* b0 */
baload
sipush 255
iand
aload 0 /* this */
iload 9 /* k1 */
invokevirtual org.bouncycastle.crypto.engines.TwofishEngine.b0:(I)I
ixor
baload
sipush 255
iand
aload 0 /* this */
iload 8 /* k0 */
invokevirtual org.bouncycastle.crypto.engines.TwofishEngine.b0:(I)I
ixor
iaload
55: .line 416
iastore
56: .line 418
aload 0 /* this */
getfield org.bouncycastle.crypto.engines.TwofishEngine.gSBox:[I
iload 16 /* i */
iconst_2
imul
iconst_1
iadd
aload 0 /* this */
getfield org.bouncycastle.crypto.engines.TwofishEngine.gMDS1:[I
getstatic org.bouncycastle.crypto.engines.TwofishEngine.P:[[B
iconst_0
aaload
57: .line 419
getstatic org.bouncycastle.crypto.engines.TwofishEngine.P:[[B
iconst_1
aaload
iload 13 /* b1 */
baload
sipush 255
iand
aload 0 /* this */
iload 9 /* k1 */
invokevirtual org.bouncycastle.crypto.engines.TwofishEngine.b1:(I)I
ixor
baload
sipush 255
iand
aload 0 /* this */
iload 8 /* k0 */
invokevirtual org.bouncycastle.crypto.engines.TwofishEngine.b1:(I)I
ixor
iaload
58: .line 418
iastore
59: .line 420
aload 0 /* this */
getfield org.bouncycastle.crypto.engines.TwofishEngine.gSBox:[I
iload 16 /* i */
iconst_2
imul
sipush 512
iadd
aload 0 /* this */
getfield org.bouncycastle.crypto.engines.TwofishEngine.gMDS2:[I
getstatic org.bouncycastle.crypto.engines.TwofishEngine.P:[[B
iconst_1
aaload
60: .line 421
getstatic org.bouncycastle.crypto.engines.TwofishEngine.P:[[B
iconst_0
aaload
iload 14 /* b2 */
baload
sipush 255
iand
aload 0 /* this */
iload 9 /* k1 */
invokevirtual org.bouncycastle.crypto.engines.TwofishEngine.b2:(I)I
ixor
baload
sipush 255
iand
aload 0 /* this */
iload 8 /* k0 */
invokevirtual org.bouncycastle.crypto.engines.TwofishEngine.b2:(I)I
ixor
iaload
61: .line 420
iastore
62: .line 422
aload 0 /* this */
getfield org.bouncycastle.crypto.engines.TwofishEngine.gSBox:[I
iload 16 /* i */
iconst_2
imul
sipush 513
iadd
aload 0 /* this */
getfield org.bouncycastle.crypto.engines.TwofishEngine.gMDS3:[I
getstatic org.bouncycastle.crypto.engines.TwofishEngine.P:[[B
iconst_1
aaload
63: .line 423
getstatic org.bouncycastle.crypto.engines.TwofishEngine.P:[[B
iconst_1
aaload
iload 15 /* b3 */
baload
sipush 255
iand
aload 0 /* this */
iload 9 /* k1 */
invokevirtual org.bouncycastle.crypto.engines.TwofishEngine.b3:(I)I
ixor
baload
sipush 255
iand
aload 0 /* this */
iload 8 /* k0 */
invokevirtual org.bouncycastle.crypto.engines.TwofishEngine.b3:(I)I
ixor
iaload
64: .line 422
iastore
65: .line 394
StackMap locals:
StackMap stack:
iinc 16 /* i */ 1
end local 15 // int b3
end local 14 // int b2
end local 13 // int b1
end local 12 // int b0
StackMap locals: org.bouncycastle.crypto.engines.TwofishEngine byte[] int[] int[] int[] top top top int int int int top top top top int
StackMap stack:
66: iload 16 /* i */
sipush 256
if_icmplt 35
end local 16 // int i
67: .line 432
return
end local 11 // int k3
end local 10 // int k2
end local 9 // int k1
end local 8 // int k0
end local 4 // int[] sBoxKeys
end local 3 // int[] k32o
end local 2 // int[] k32e
end local 1 // byte[] key
end local 0 // org.bouncycastle.crypto.engines.TwofishEngine this
LocalVariableTable:
Start End Slot Name Signature
0 68 0 this Lorg/bouncycastle/crypto/engines/TwofishEngine;
0 68 1 key [B
1 68 2 k32e [I
2 68 3 k32o [I
3 68 4 sBoxKeys [I
9 16 5 i I
11 14 6 p I
19 27 5 q I
20 27 6 A I
21 27 7 B I
17 28 8 i I
29 68 8 k0 I
30 68 9 k1 I
31 68 10 k2 I
32 68 11 k3 I
39 66 12 b0 I
38 66 13 b1 I
37 66 14 b2 I
36 66 15 b3 I
34 67 16 i I
MethodParameters:
Name Flags
key
private void encryptBlock(byte[], int, byte[], int);
descriptor: ([BI[BI)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=13, args_size=5
start local 0 // org.bouncycastle.crypto.engines.TwofishEngine this
start local 1 // byte[] src
start local 2 // int srcIndex
start local 3 // byte[] dst
start local 4 // int dstIndex
0: .line 448
aload 0 /* this */
aload 1 /* src */
iload 2 /* srcIndex */
invokevirtual org.bouncycastle.crypto.engines.TwofishEngine.BytesTo32Bits:([BI)I
aload 0 /* this */
getfield org.bouncycastle.crypto.engines.TwofishEngine.gSubKeys:[I
iconst_0
iaload
ixor
istore 5 /* x0 */
start local 5 // int x0
1: .line 449
aload 0 /* this */
aload 1 /* src */
iload 2 /* srcIndex */
iconst_4
iadd
invokevirtual org.bouncycastle.crypto.engines.TwofishEngine.BytesTo32Bits:([BI)I
aload 0 /* this */
getfield org.bouncycastle.crypto.engines.TwofishEngine.gSubKeys:[I
iconst_1
iaload
ixor
istore 6 /* x1 */
start local 6 // int x1
2: .line 450
aload 0 /* this */
aload 1 /* src */
iload 2 /* srcIndex */
bipush 8
iadd
invokevirtual org.bouncycastle.crypto.engines.TwofishEngine.BytesTo32Bits:([BI)I
aload 0 /* this */
getfield org.bouncycastle.crypto.engines.TwofishEngine.gSubKeys:[I
iconst_2
iaload
ixor
istore 7 /* x2 */
start local 7 // int x2
3: .line 451
aload 0 /* this */
aload 1 /* src */
iload 2 /* srcIndex */
bipush 12
iadd
invokevirtual org.bouncycastle.crypto.engines.TwofishEngine.BytesTo32Bits:([BI)I
aload 0 /* this */
getfield org.bouncycastle.crypto.engines.TwofishEngine.gSubKeys:[I
iconst_3
iaload
ixor
istore 8 /* x3 */
start local 8 // int x3
4: .line 453
bipush 8
istore 9 /* k */
start local 9 // int k
5: .line 455
iconst_0
istore 12 /* r */
start local 12 // int r
6: goto 18
7: .line 457
StackMap locals: org.bouncycastle.crypto.engines.TwofishEngine byte[] int byte[] int int int int int int top top int
StackMap stack:
aload 0 /* this */
iload 5 /* x0 */
invokevirtual org.bouncycastle.crypto.engines.TwofishEngine.Fe32_0:(I)I
istore 10 /* t0 */
start local 10 // int t0
8: .line 458
aload 0 /* this */
iload 6 /* x1 */
invokevirtual org.bouncycastle.crypto.engines.TwofishEngine.Fe32_3:(I)I
istore 11 /* t1 */
start local 11 // int t1
9: .line 459
iload 7 /* x2 */
iload 10 /* t0 */
iload 11 /* t1 */
iadd
aload 0 /* this */
getfield org.bouncycastle.crypto.engines.TwofishEngine.gSubKeys:[I
iload 9 /* k */
iinc 9 /* k */ 1
iaload
iadd
ixor
istore 7 /* x2 */
10: .line 460
iload 7 /* x2 */
iconst_1
iushr
iload 7 /* x2 */
bipush 31
ishl
ior
istore 7 /* x2 */
11: .line 461
iload 8 /* x3 */
iconst_1
ishl
iload 8 /* x3 */
bipush 31
iushr
ior
iload 10 /* t0 */
iconst_2
iload 11 /* t1 */
imul
iadd
aload 0 /* this */
getfield org.bouncycastle.crypto.engines.TwofishEngine.gSubKeys:[I
iload 9 /* k */
iinc 9 /* k */ 1
iaload
iadd
ixor
istore 8 /* x3 */
12: .line 463
aload 0 /* this */
iload 7 /* x2 */
invokevirtual org.bouncycastle.crypto.engines.TwofishEngine.Fe32_0:(I)I
istore 10 /* t0 */
13: .line 464
aload 0 /* this */
iload 8 /* x3 */
invokevirtual org.bouncycastle.crypto.engines.TwofishEngine.Fe32_3:(I)I
istore 11 /* t1 */
14: .line 465
iload 5 /* x0 */
iload 10 /* t0 */
iload 11 /* t1 */
iadd
aload 0 /* this */
getfield org.bouncycastle.crypto.engines.TwofishEngine.gSubKeys:[I
iload 9 /* k */
iinc 9 /* k */ 1
iaload
iadd
ixor
istore 5 /* x0 */
15: .line 466
iload 5 /* x0 */
iconst_1
iushr
iload 5 /* x0 */
bipush 31
ishl
ior
istore 5 /* x0 */
16: .line 467
iload 6 /* x1 */
iconst_1
ishl
iload 6 /* x1 */
bipush 31
iushr
ior
iload 10 /* t0 */
iconst_2
iload 11 /* t1 */
imul
iadd
aload 0 /* this */
getfield org.bouncycastle.crypto.engines.TwofishEngine.gSubKeys:[I
iload 9 /* k */
iinc 9 /* k */ 1
iaload
iadd
ixor
istore 6 /* x1 */
17: .line 455
iinc 12 /* r */ 2
end local 11 // int t1
end local 10 // int t0
StackMap locals:
StackMap stack:
18: iload 12 /* r */
bipush 16
if_icmplt 7
end local 12 // int r
19: .line 470
aload 0 /* this */
iload 7 /* x2 */
aload 0 /* this */
getfield org.bouncycastle.crypto.engines.TwofishEngine.gSubKeys:[I
iconst_4
iaload
ixor
aload 3 /* dst */
iload 4 /* dstIndex */
invokevirtual org.bouncycastle.crypto.engines.TwofishEngine.Bits32ToBytes:(I[BI)V
20: .line 471
aload 0 /* this */
iload 8 /* x3 */
aload 0 /* this */
getfield org.bouncycastle.crypto.engines.TwofishEngine.gSubKeys:[I
iconst_5
iaload
ixor
aload 3 /* dst */
iload 4 /* dstIndex */
iconst_4
iadd
invokevirtual org.bouncycastle.crypto.engines.TwofishEngine.Bits32ToBytes:(I[BI)V
21: .line 472
aload 0 /* this */
iload 5 /* x0 */
aload 0 /* this */
getfield org.bouncycastle.crypto.engines.TwofishEngine.gSubKeys:[I
bipush 6
iaload
ixor
aload 3 /* dst */
iload 4 /* dstIndex */
bipush 8
iadd
invokevirtual org.bouncycastle.crypto.engines.TwofishEngine.Bits32ToBytes:(I[BI)V
22: .line 473
aload 0 /* this */
iload 6 /* x1 */
aload 0 /* this */
getfield org.bouncycastle.crypto.engines.TwofishEngine.gSubKeys:[I
bipush 7
iaload
ixor
aload 3 /* dst */
iload 4 /* dstIndex */
bipush 12
iadd
invokevirtual org.bouncycastle.crypto.engines.TwofishEngine.Bits32ToBytes:(I[BI)V
23: .line 474
return
end local 9 // int k
end local 8 // int x3
end local 7 // int x2
end local 6 // int x1
end local 5 // int x0
end local 4 // int dstIndex
end local 3 // byte[] dst
end local 2 // int srcIndex
end local 1 // byte[] src
end local 0 // org.bouncycastle.crypto.engines.TwofishEngine this
LocalVariableTable:
Start End Slot Name Signature
0 24 0 this Lorg/bouncycastle/crypto/engines/TwofishEngine;
0 24 1 src [B
0 24 2 srcIndex I
0 24 3 dst [B
0 24 4 dstIndex I
1 24 5 x0 I
2 24 6 x1 I
3 24 7 x2 I
4 24 8 x3 I
5 24 9 k I
8 18 10 t0 I
9 18 11 t1 I
6 19 12 r I
MethodParameters:
Name Flags
src
srcIndex
dst
dstIndex
private void decryptBlock(byte[], int, byte[], int);
descriptor: ([BI[BI)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=13, args_size=5
start local 0 // org.bouncycastle.crypto.engines.TwofishEngine this
start local 1 // byte[] src
start local 2 // int srcIndex
start local 3 // byte[] dst
start local 4 // int dstIndex
0: .line 487
aload 0 /* this */
aload 1 /* src */
iload 2 /* srcIndex */
invokevirtual org.bouncycastle.crypto.engines.TwofishEngine.BytesTo32Bits:([BI)I
aload 0 /* this */
getfield org.bouncycastle.crypto.engines.TwofishEngine.gSubKeys:[I
iconst_4
iaload
ixor
istore 5 /* x2 */
start local 5 // int x2
1: .line 488
aload 0 /* this */
aload 1 /* src */
iload 2 /* srcIndex */
iconst_4
iadd
invokevirtual org.bouncycastle.crypto.engines.TwofishEngine.BytesTo32Bits:([BI)I
aload 0 /* this */
getfield org.bouncycastle.crypto.engines.TwofishEngine.gSubKeys:[I
iconst_5
iaload
ixor
istore 6 /* x3 */
start local 6 // int x3
2: .line 489
aload 0 /* this */
aload 1 /* src */
iload 2 /* srcIndex */
bipush 8
iadd
invokevirtual org.bouncycastle.crypto.engines.TwofishEngine.BytesTo32Bits:([BI)I
aload 0 /* this */
getfield org.bouncycastle.crypto.engines.TwofishEngine.gSubKeys:[I
bipush 6
iaload
ixor
istore 7 /* x0 */
start local 7 // int x0
3: .line 490
aload 0 /* this */
aload 1 /* src */
iload 2 /* srcIndex */
bipush 12
iadd
invokevirtual org.bouncycastle.crypto.engines.TwofishEngine.BytesTo32Bits:([BI)I
aload 0 /* this */
getfield org.bouncycastle.crypto.engines.TwofishEngine.gSubKeys:[I
bipush 7
iaload
ixor
istore 8 /* x1 */
start local 8 // int x1
4: .line 492
bipush 39
istore 9 /* k */
start local 9 // int k
5: .line 494
iconst_0
istore 12 /* r */
start local 12 // int r
6: goto 18
7: .line 496
StackMap locals: org.bouncycastle.crypto.engines.TwofishEngine byte[] int byte[] int int int int int int top top int
StackMap stack:
aload 0 /* this */
iload 5 /* x2 */
invokevirtual org.bouncycastle.crypto.engines.TwofishEngine.Fe32_0:(I)I
istore 10 /* t0 */
start local 10 // int t0
8: .line 497
aload 0 /* this */
iload 6 /* x3 */
invokevirtual org.bouncycastle.crypto.engines.TwofishEngine.Fe32_3:(I)I
istore 11 /* t1 */
start local 11 // int t1
9: .line 498
iload 8 /* x1 */
iload 10 /* t0 */
iconst_2
iload 11 /* t1 */
imul
iadd
aload 0 /* this */
getfield org.bouncycastle.crypto.engines.TwofishEngine.gSubKeys:[I
iload 9 /* k */
iinc 9 /* k */ -1
iaload
iadd
ixor
istore 8 /* x1 */
10: .line 499
iload 7 /* x0 */
iconst_1
ishl
iload 7 /* x0 */
bipush 31
iushr
ior
iload 10 /* t0 */
iload 11 /* t1 */
iadd
aload 0 /* this */
getfield org.bouncycastle.crypto.engines.TwofishEngine.gSubKeys:[I
iload 9 /* k */
iinc 9 /* k */ -1
iaload
iadd
ixor
istore 7 /* x0 */
11: .line 500
iload 8 /* x1 */
iconst_1
iushr
iload 8 /* x1 */
bipush 31
ishl
ior
istore 8 /* x1 */
12: .line 502
aload 0 /* this */
iload 7 /* x0 */
invokevirtual org.bouncycastle.crypto.engines.TwofishEngine.Fe32_0:(I)I
istore 10 /* t0 */
13: .line 503
aload 0 /* this */
iload 8 /* x1 */
invokevirtual org.bouncycastle.crypto.engines.TwofishEngine.Fe32_3:(I)I
istore 11 /* t1 */
14: .line 504
iload 6 /* x3 */
iload 10 /* t0 */
iconst_2
iload 11 /* t1 */
imul
iadd
aload 0 /* this */
getfield org.bouncycastle.crypto.engines.TwofishEngine.gSubKeys:[I
iload 9 /* k */
iinc 9 /* k */ -1
iaload
iadd
ixor
istore 6 /* x3 */
15: .line 505
iload 5 /* x2 */
iconst_1
ishl
iload 5 /* x2 */
bipush 31
iushr
ior
iload 10 /* t0 */
iload 11 /* t1 */
iadd
aload 0 /* this */
getfield org.bouncycastle.crypto.engines.TwofishEngine.gSubKeys:[I
iload 9 /* k */
iinc 9 /* k */ -1
iaload
iadd
ixor
istore 5 /* x2 */
16: .line 506
iload 6 /* x3 */
iconst_1
iushr
iload 6 /* x3 */
bipush 31
ishl
ior
istore 6 /* x3 */
17: .line 494
iinc 12 /* r */ 2
end local 11 // int t1
end local 10 // int t0
StackMap locals:
StackMap stack:
18: iload 12 /* r */
bipush 16
if_icmplt 7
end local 12 // int r
19: .line 509
aload 0 /* this */
iload 7 /* x0 */
aload 0 /* this */
getfield org.bouncycastle.crypto.engines.TwofishEngine.gSubKeys:[I
iconst_0
iaload
ixor
aload 3 /* dst */
iload 4 /* dstIndex */
invokevirtual org.bouncycastle.crypto.engines.TwofishEngine.Bits32ToBytes:(I[BI)V
20: .line 510
aload 0 /* this */
iload 8 /* x1 */
aload 0 /* this */
getfield org.bouncycastle.crypto.engines.TwofishEngine.gSubKeys:[I
iconst_1
iaload
ixor
aload 3 /* dst */
iload 4 /* dstIndex */
iconst_4
iadd
invokevirtual org.bouncycastle.crypto.engines.TwofishEngine.Bits32ToBytes:(I[BI)V
21: .line 511
aload 0 /* this */
iload 5 /* x2 */
aload 0 /* this */
getfield org.bouncycastle.crypto.engines.TwofishEngine.gSubKeys:[I
iconst_2
iaload
ixor
aload 3 /* dst */
iload 4 /* dstIndex */
bipush 8
iadd
invokevirtual org.bouncycastle.crypto.engines.TwofishEngine.Bits32ToBytes:(I[BI)V
22: .line 512
aload 0 /* this */
iload 6 /* x3 */
aload 0 /* this */
getfield org.bouncycastle.crypto.engines.TwofishEngine.gSubKeys:[I
iconst_3
iaload
ixor
aload 3 /* dst */
iload 4 /* dstIndex */
bipush 12
iadd
invokevirtual org.bouncycastle.crypto.engines.TwofishEngine.Bits32ToBytes:(I[BI)V
23: .line 513
return
end local 9 // int k
end local 8 // int x1
end local 7 // int x0
end local 6 // int x3
end local 5 // int x2
end local 4 // int dstIndex
end local 3 // byte[] dst
end local 2 // int srcIndex
end local 1 // byte[] src
end local 0 // org.bouncycastle.crypto.engines.TwofishEngine this
LocalVariableTable:
Start End Slot Name Signature
0 24 0 this Lorg/bouncycastle/crypto/engines/TwofishEngine;
0 24 1 src [B
0 24 2 srcIndex I
0 24 3 dst [B
0 24 4 dstIndex I
1 24 5 x2 I
2 24 6 x3 I
3 24 7 x0 I
4 24 8 x1 I
5 24 9 k I
8 18 10 t0 I
9 18 11 t1 I
6 19 12 r I
MethodParameters:
Name Flags
src
srcIndex
dst
dstIndex
private int F32(int, int[]);
descriptor: (I[I)I
flags: (0x0002) ACC_PRIVATE
Code:
stack=6, locals=12, args_size=3
start local 0 // org.bouncycastle.crypto.engines.TwofishEngine this
start local 1 // int x
start local 2 // int[] k32
0: .line 522
aload 0 /* this */
iload 1 /* x */
invokevirtual org.bouncycastle.crypto.engines.TwofishEngine.b0:(I)I
istore 3 /* b0 */
start local 3 // int b0
1: .line 523
aload 0 /* this */
iload 1 /* x */
invokevirtual org.bouncycastle.crypto.engines.TwofishEngine.b1:(I)I
istore 4 /* b1 */
start local 4 // int b1
2: .line 524
aload 0 /* this */
iload 1 /* x */
invokevirtual org.bouncycastle.crypto.engines.TwofishEngine.b2:(I)I
istore 5 /* b2 */
start local 5 // int b2
3: .line 525
aload 0 /* this */
iload 1 /* x */
invokevirtual org.bouncycastle.crypto.engines.TwofishEngine.b3:(I)I
istore 6 /* b3 */
start local 6 // int b3
4: .line 526
aload 2 /* k32 */
iconst_0
iaload
istore 7 /* k0 */
start local 7 // int k0
5: .line 527
aload 2 /* k32 */
iconst_1
iaload
istore 8 /* k1 */
start local 8 // int k1
6: .line 528
aload 2 /* k32 */
iconst_2
iaload
istore 9 /* k2 */
start local 9 // int k2
7: .line 529
aload 2 /* k32 */
iconst_3
iaload
istore 10 /* k3 */
start local 10 // int k3
8: .line 531
iconst_0
istore 11 /* result */
start local 11 // int result
9: .line 532
aload 0 /* this */
getfield org.bouncycastle.crypto.engines.TwofishEngine.k64Cnt:I
iconst_3
iand
tableswitch { // 0 - 3
0: 18
1: 10
2: 26
3: 22
default: 34
}
10: .line 535
StackMap locals: org.bouncycastle.crypto.engines.TwofishEngine int int[] int int int int int int int int int
StackMap stack:
aload 0 /* this */
getfield org.bouncycastle.crypto.engines.TwofishEngine.gMDS0:[I
getstatic org.bouncycastle.crypto.engines.TwofishEngine.P:[[B
iconst_0
aaload
iload 3 /* b0 */
baload
sipush 255
iand
aload 0 /* this */
iload 7 /* k0 */
invokevirtual org.bouncycastle.crypto.engines.TwofishEngine.b0:(I)I
ixor
iaload
11: .line 536
aload 0 /* this */
getfield org.bouncycastle.crypto.engines.TwofishEngine.gMDS1:[I
getstatic org.bouncycastle.crypto.engines.TwofishEngine.P:[[B
iconst_0
aaload
iload 4 /* b1 */
baload
sipush 255
iand
aload 0 /* this */
iload 7 /* k0 */
invokevirtual org.bouncycastle.crypto.engines.TwofishEngine.b1:(I)I
ixor
iaload
12: .line 535
ixor
13: .line 537
aload 0 /* this */
getfield org.bouncycastle.crypto.engines.TwofishEngine.gMDS2:[I
getstatic org.bouncycastle.crypto.engines.TwofishEngine.P:[[B
iconst_1
aaload
iload 5 /* b2 */
baload
sipush 255
iand
aload 0 /* this */
iload 7 /* k0 */
invokevirtual org.bouncycastle.crypto.engines.TwofishEngine.b2:(I)I
ixor
iaload
14: .line 535
ixor
15: .line 538
aload 0 /* this */
getfield org.bouncycastle.crypto.engines.TwofishEngine.gMDS3:[I
getstatic org.bouncycastle.crypto.engines.TwofishEngine.P:[[B
iconst_1
aaload
iload 6 /* b3 */
baload
sipush 255
iand
aload 0 /* this */
iload 7 /* k0 */
invokevirtual org.bouncycastle.crypto.engines.TwofishEngine.b3:(I)I
ixor
iaload
16: .line 535
ixor
istore 11 /* result */
17: .line 539
goto 34
18: .line 541
StackMap locals:
StackMap stack:
getstatic org.bouncycastle.crypto.engines.TwofishEngine.P:[[B
iconst_1
aaload
iload 3 /* b0 */
baload
sipush 255
iand
aload 0 /* this */
iload 10 /* k3 */
invokevirtual org.bouncycastle.crypto.engines.TwofishEngine.b0:(I)I
ixor
istore 3 /* b0 */
19: .line 542
getstatic org.bouncycastle.crypto.engines.TwofishEngine.P:[[B
iconst_0
aaload
iload 4 /* b1 */
baload
sipush 255
iand
aload 0 /* this */
iload 10 /* k3 */
invokevirtual org.bouncycastle.crypto.engines.TwofishEngine.b1:(I)I
ixor
istore 4 /* b1 */
20: .line 543
getstatic org.bouncycastle.crypto.engines.TwofishEngine.P:[[B
iconst_0
aaload
iload 5 /* b2 */
baload
sipush 255
iand
aload 0 /* this */
iload 10 /* k3 */
invokevirtual org.bouncycastle.crypto.engines.TwofishEngine.b2:(I)I
ixor
istore 5 /* b2 */
21: .line 544
getstatic org.bouncycastle.crypto.engines.TwofishEngine.P:[[B
iconst_1
aaload
iload 6 /* b3 */
baload
sipush 255
iand
aload 0 /* this */
iload 10 /* k3 */
invokevirtual org.bouncycastle.crypto.engines.TwofishEngine.b3:(I)I
ixor
istore 6 /* b3 */
22: .line 546
StackMap locals:
StackMap stack:
getstatic org.bouncycastle.crypto.engines.TwofishEngine.P:[[B
iconst_1
aaload
iload 3 /* b0 */
baload
sipush 255
iand
aload 0 /* this */
iload 9 /* k2 */
invokevirtual org.bouncycastle.crypto.engines.TwofishEngine.b0:(I)I
ixor
istore 3 /* b0 */
23: .line 547
getstatic org.bouncycastle.crypto.engines.TwofishEngine.P:[[B
iconst_1
aaload
iload 4 /* b1 */
baload
sipush 255
iand
aload 0 /* this */
iload 9 /* k2 */
invokevirtual org.bouncycastle.crypto.engines.TwofishEngine.b1:(I)I
ixor
istore 4 /* b1 */
24: .line 548
getstatic org.bouncycastle.crypto.engines.TwofishEngine.P:[[B
iconst_0
aaload
iload 5 /* b2 */
baload
sipush 255
iand
aload 0 /* this */
iload 9 /* k2 */
invokevirtual org.bouncycastle.crypto.engines.TwofishEngine.b2:(I)I
ixor
istore 5 /* b2 */
25: .line 549
getstatic org.bouncycastle.crypto.engines.TwofishEngine.P:[[B
iconst_0
aaload
iload 6 /* b3 */
baload
sipush 255
iand
aload 0 /* this */
iload 9 /* k2 */
invokevirtual org.bouncycastle.crypto.engines.TwofishEngine.b3:(I)I
ixor
istore 6 /* b3 */
26: .line 552
StackMap locals:
StackMap stack:
aload 0 /* this */
getfield org.bouncycastle.crypto.engines.TwofishEngine.gMDS0:[I
getstatic org.bouncycastle.crypto.engines.TwofishEngine.P:[[B
iconst_0
aaload
getstatic org.bouncycastle.crypto.engines.TwofishEngine.P:[[B
iconst_0
aaload
iload 3 /* b0 */
baload
sipush 255
iand
aload 0 /* this */
iload 8 /* k1 */
invokevirtual org.bouncycastle.crypto.engines.TwofishEngine.b0:(I)I
ixor
baload
sipush 255
iand
aload 0 /* this */
iload 7 /* k0 */
invokevirtual org.bouncycastle.crypto.engines.TwofishEngine.b0:(I)I
ixor
iaload
27: .line 553
aload 0 /* this */
getfield org.bouncycastle.crypto.engines.TwofishEngine.gMDS1:[I
getstatic org.bouncycastle.crypto.engines.TwofishEngine.P:[[B
iconst_0
aaload
getstatic org.bouncycastle.crypto.engines.TwofishEngine.P:[[B
iconst_1
aaload
iload 4 /* b1 */
baload
sipush 255
iand
aload 0 /* this */
iload 8 /* k1 */
invokevirtual org.bouncycastle.crypto.engines.TwofishEngine.b1:(I)I
ixor
baload
sipush 255
iand
aload 0 /* this */
iload 7 /* k0 */
invokevirtual org.bouncycastle.crypto.engines.TwofishEngine.b1:(I)I
ixor
iaload
28: .line 552
ixor
29: .line 554
aload 0 /* this */
getfield org.bouncycastle.crypto.engines.TwofishEngine.gMDS2:[I
getstatic org.bouncycastle.crypto.engines.TwofishEngine.P:[[B
iconst_1
aaload
getstatic org.bouncycastle.crypto.engines.TwofishEngine.P:[[B
iconst_0
aaload
iload 5 /* b2 */
baload
sipush 255
iand
aload 0 /* this */
iload 8 /* k1 */
invokevirtual org.bouncycastle.crypto.engines.TwofishEngine.b2:(I)I
ixor
baload
sipush 255
iand
aload 0 /* this */
iload 7 /* k0 */
invokevirtual org.bouncycastle.crypto.engines.TwofishEngine.b2:(I)I
ixor
iaload
30: .line 552
ixor
31: .line 555
aload 0 /* this */
getfield org.bouncycastle.crypto.engines.TwofishEngine.gMDS3:[I
getstatic org.bouncycastle.crypto.engines.TwofishEngine.P:[[B
iconst_1
aaload
getstatic org.bouncycastle.crypto.engines.TwofishEngine.P:[[B
iconst_1
aaload
iload 6 /* b3 */
baload
sipush 255
iand
aload 0 /* this */
iload 8 /* k1 */
invokevirtual org.bouncycastle.crypto.engines.TwofishEngine.b3:(I)I
ixor
baload
sipush 255
iand
aload 0 /* this */
iload 7 /* k0 */
invokevirtual org.bouncycastle.crypto.engines.TwofishEngine.b3:(I)I
ixor
iaload
32: .line 552
ixor
33: .line 551
istore 11 /* result */
34: .line 558
StackMap locals:
StackMap stack:
iload 11 /* result */
ireturn
end local 11 // int result
end local 10 // int k3
end local 9 // int k2
end local 8 // int k1
end local 7 // int k0
end local 6 // int b3
end local 5 // int b2
end local 4 // int b1
end local 3 // int b0
end local 2 // int[] k32
end local 1 // int x
end local 0 // org.bouncycastle.crypto.engines.TwofishEngine this
LocalVariableTable:
Start End Slot Name Signature
0 35 0 this Lorg/bouncycastle/crypto/engines/TwofishEngine;
0 35 1 x I
0 35 2 k32 [I
1 35 3 b0 I
2 35 4 b1 I
3 35 5 b2 I
4 35 6 b3 I
5 35 7 k0 I
6 35 8 k1 I
7 35 9 k2 I
8 35 10 k3 I
9 35 11 result I
MethodParameters:
Name Flags
x
k32
private int RS_MDS_Encode(int, int);
descriptor: (II)I
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=5, args_size=3
start local 0 // org.bouncycastle.crypto.engines.TwofishEngine this
start local 1 // int k0
start local 2 // int k1
0: .line 572
iload 2 /* k1 */
istore 3 /* r */
start local 3 // int r
1: .line 573
iconst_0
istore 4 /* i */
start local 4 // int i
2: goto 5
3: .line 575
StackMap locals: int int
StackMap stack:
aload 0 /* this */
iload 3 /* r */
invokevirtual org.bouncycastle.crypto.engines.TwofishEngine.RS_rem:(I)I
istore 3 /* r */
4: .line 573
iinc 4 /* i */ 1
StackMap locals:
StackMap stack:
5: iload 4 /* i */
iconst_4
if_icmplt 3
end local 4 // int i
6: .line 577
iload 3 /* r */
iload 1 /* k0 */
ixor
istore 3 /* r */
7: .line 578
iconst_0
istore 4 /* i */
start local 4 // int i
8: goto 11
9: .line 580
StackMap locals:
StackMap stack:
aload 0 /* this */
iload 3 /* r */
invokevirtual org.bouncycastle.crypto.engines.TwofishEngine.RS_rem:(I)I
istore 3 /* r */
10: .line 578
iinc 4 /* i */ 1
StackMap locals:
StackMap stack:
11: iload 4 /* i */
iconst_4
if_icmplt 9
end local 4 // int i
12: .line 583
iload 3 /* r */
ireturn
end local 3 // int r
end local 2 // int k1
end local 1 // int k0
end local 0 // org.bouncycastle.crypto.engines.TwofishEngine this
LocalVariableTable:
Start End Slot Name Signature
0 13 0 this Lorg/bouncycastle/crypto/engines/TwofishEngine;
0 13 1 k0 I
0 13 2 k1 I
1 13 3 r I
2 6 4 i I
8 12 4 i I
MethodParameters:
Name Flags
k0
k1
private int RS_rem(int);
descriptor: (I)I
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=5, args_size=2
start local 0 // org.bouncycastle.crypto.engines.TwofishEngine this
start local 1 // int x
0: .line 595
iload 1 /* x */
bipush 24
iushr
sipush 255
iand
istore 2 /* b */
start local 2 // int b
1: .line 596
iload 2 /* b */
iconst_1
ishl
2: .line 597
iload 2 /* b */
sipush 128
iand
ifeq 3
sipush 333
goto 4
StackMap locals: org.bouncycastle.crypto.engines.TwofishEngine int int
StackMap stack: int
3: iconst_0
4: .line 596
StackMap locals: org.bouncycastle.crypto.engines.TwofishEngine int int
StackMap stack: int int
ixor
5: .line 597
sipush 255
6: .line 596
iand
istore 3 /* g2 */
start local 3 // int g2
7: .line 598
iload 2 /* b */
iconst_1
iushr
8: .line 599
iload 2 /* b */
iconst_1
iand
ifeq 9
sipush 166
goto 10
StackMap locals: org.bouncycastle.crypto.engines.TwofishEngine int int int
StackMap stack: int
9: iconst_0
10: .line 598
StackMap locals: org.bouncycastle.crypto.engines.TwofishEngine int int int
StackMap stack: int int
ixor
11: .line 599
iload 3 /* g2 */
12: .line 598
ixor
istore 4 /* g3 */
start local 4 // int g3
13: .line 600
iload 1 /* x */
bipush 8
ishl
iload 4 /* g3 */
bipush 24
ishl
ixor
iload 3 /* g2 */
bipush 16
ishl
ixor
iload 4 /* g3 */
bipush 8
ishl
ixor
iload 2 /* b */
ixor
ireturn
end local 4 // int g3
end local 3 // int g2
end local 2 // int b
end local 1 // int x
end local 0 // org.bouncycastle.crypto.engines.TwofishEngine this
LocalVariableTable:
Start End Slot Name Signature
0 14 0 this Lorg/bouncycastle/crypto/engines/TwofishEngine;
0 14 1 x I
1 14 2 b I
7 14 3 g2 I
13 14 4 g3 I
MethodParameters:
Name Flags
x
private int LFSR1(int);
descriptor: (I)I
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=2, args_size=2
start local 0 // org.bouncycastle.crypto.engines.TwofishEngine this
start local 1 // int x
0: .line 605
iload 1 /* x */
iconst_1
ishr
1: .line 606
iload 1 /* x */
iconst_1
iand
ifeq 2
sipush 180
goto 3
StackMap locals:
StackMap stack: int
2: iconst_0
3: .line 605
StackMap locals: org.bouncycastle.crypto.engines.TwofishEngine int
StackMap stack: int int
ixor
ireturn
end local 1 // int x
end local 0 // org.bouncycastle.crypto.engines.TwofishEngine this
LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lorg/bouncycastle/crypto/engines/TwofishEngine;
0 4 1 x I
MethodParameters:
Name Flags
x
private int LFSR2(int);
descriptor: (I)I
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=2, args_size=2
start local 0 // org.bouncycastle.crypto.engines.TwofishEngine this
start local 1 // int x
0: .line 611
iload 1 /* x */
iconst_2
ishr
1: .line 612
iload 1 /* x */
iconst_2
iand
ifeq 2
sipush 180
goto 3
StackMap locals:
StackMap stack: int
2: iconst_0
3: .line 611
StackMap locals: org.bouncycastle.crypto.engines.TwofishEngine int
StackMap stack: int int
ixor
4: .line 613
iload 1 /* x */
iconst_1
iand
ifeq 5
bipush 90
goto 6
StackMap locals:
StackMap stack: int
5: iconst_0
6: .line 611
StackMap locals: org.bouncycastle.crypto.engines.TwofishEngine int
StackMap stack: int int
ixor
ireturn
end local 1 // int x
end local 0 // org.bouncycastle.crypto.engines.TwofishEngine this
LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Lorg/bouncycastle/crypto/engines/TwofishEngine;
0 7 1 x I
MethodParameters:
Name Flags
x
private int Mx_X(int);
descriptor: (I)I
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=2, args_size=2
start local 0 // org.bouncycastle.crypto.engines.TwofishEngine this
start local 1 // int x
0: .line 618
iload 1 /* x */
aload 0 /* this */
iload 1 /* x */
invokevirtual org.bouncycastle.crypto.engines.TwofishEngine.LFSR2:(I)I
ixor
ireturn
end local 1 // int x
end local 0 // org.bouncycastle.crypto.engines.TwofishEngine this
LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/bouncycastle/crypto/engines/TwofishEngine;
0 1 1 x I
MethodParameters:
Name Flags
x
private int Mx_Y(int);
descriptor: (I)I
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=2, args_size=2
start local 0 // org.bouncycastle.crypto.engines.TwofishEngine this
start local 1 // int x
0: .line 623
iload 1 /* x */
aload 0 /* this */
iload 1 /* x */
invokevirtual org.bouncycastle.crypto.engines.TwofishEngine.LFSR1:(I)I
ixor
aload 0 /* this */
iload 1 /* x */
invokevirtual org.bouncycastle.crypto.engines.TwofishEngine.LFSR2:(I)I
ixor
ireturn
end local 1 // int x
end local 0 // org.bouncycastle.crypto.engines.TwofishEngine this
LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/bouncycastle/crypto/engines/TwofishEngine;
0 1 1 x I
MethodParameters:
Name Flags
x
private int b0(int);
descriptor: (I)I
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=2, args_size=2
start local 0 // org.bouncycastle.crypto.engines.TwofishEngine this
start local 1 // int x
0: .line 628
iload 1 /* x */
sipush 255
iand
ireturn
end local 1 // int x
end local 0 // org.bouncycastle.crypto.engines.TwofishEngine this
LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/bouncycastle/crypto/engines/TwofishEngine;
0 1 1 x I
MethodParameters:
Name Flags
x
private int b1(int);
descriptor: (I)I
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=2, args_size=2
start local 0 // org.bouncycastle.crypto.engines.TwofishEngine this
start local 1 // int x
0: .line 633
iload 1 /* x */
bipush 8
iushr
sipush 255
iand
ireturn
end local 1 // int x
end local 0 // org.bouncycastle.crypto.engines.TwofishEngine this
LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/bouncycastle/crypto/engines/TwofishEngine;
0 1 1 x I
MethodParameters:
Name Flags
x
private int b2(int);
descriptor: (I)I
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=2, args_size=2
start local 0 // org.bouncycastle.crypto.engines.TwofishEngine this
start local 1 // int x
0: .line 638
iload 1 /* x */
bipush 16
iushr
sipush 255
iand
ireturn
end local 1 // int x
end local 0 // org.bouncycastle.crypto.engines.TwofishEngine this
LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/bouncycastle/crypto/engines/TwofishEngine;
0 1 1 x I
MethodParameters:
Name Flags
x
private int b3(int);
descriptor: (I)I
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=2, args_size=2
start local 0 // org.bouncycastle.crypto.engines.TwofishEngine this
start local 1 // int x
0: .line 643
iload 1 /* x */
bipush 24
iushr
sipush 255
iand
ireturn
end local 1 // int x
end local 0 // org.bouncycastle.crypto.engines.TwofishEngine this
LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/bouncycastle/crypto/engines/TwofishEngine;
0 1 1 x I
MethodParameters:
Name Flags
x
private int Fe32_0(int);
descriptor: (I)I
flags: (0x0002) ACC_PRIVATE
Code:
stack=6, locals=2, args_size=2
start local 0 // org.bouncycastle.crypto.engines.TwofishEngine this
start local 1 // int x
0: .line 648
aload 0 /* this */
getfield org.bouncycastle.crypto.engines.TwofishEngine.gSBox:[I
iconst_0
iconst_2
iload 1 /* x */
sipush 255
iand
imul
iadd
iaload
1: .line 649
aload 0 /* this */
getfield org.bouncycastle.crypto.engines.TwofishEngine.gSBox:[I
iconst_1
iconst_2
iload 1 /* x */
bipush 8
iushr
sipush 255
iand
imul
iadd
iaload
2: .line 648
ixor
3: .line 650
aload 0 /* this */
getfield org.bouncycastle.crypto.engines.TwofishEngine.gSBox:[I
sipush 512
iconst_2
iload 1 /* x */
bipush 16
iushr
sipush 255
iand
imul
iadd
iaload
4: .line 648
ixor
5: .line 651
aload 0 /* this */
getfield org.bouncycastle.crypto.engines.TwofishEngine.gSBox:[I
sipush 513
iconst_2
iload 1 /* x */
bipush 24
iushr
sipush 255
iand
imul
iadd
iaload
6: .line 648
ixor
ireturn
end local 1 // int x
end local 0 // org.bouncycastle.crypto.engines.TwofishEngine this
LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Lorg/bouncycastle/crypto/engines/TwofishEngine;
0 7 1 x I
MethodParameters:
Name Flags
x
private int Fe32_3(int);
descriptor: (I)I
flags: (0x0002) ACC_PRIVATE
Code:
stack=6, locals=2, args_size=2
start local 0 // org.bouncycastle.crypto.engines.TwofishEngine this
start local 1 // int x
0: .line 656
aload 0 /* this */
getfield org.bouncycastle.crypto.engines.TwofishEngine.gSBox:[I
iconst_0
iconst_2
iload 1 /* x */
bipush 24
iushr
sipush 255
iand
imul
iadd
iaload
1: .line 657
aload 0 /* this */
getfield org.bouncycastle.crypto.engines.TwofishEngine.gSBox:[I
iconst_1
iconst_2
iload 1 /* x */
sipush 255
iand
imul
iadd
iaload
2: .line 656
ixor
3: .line 658
aload 0 /* this */
getfield org.bouncycastle.crypto.engines.TwofishEngine.gSBox:[I
sipush 512
iconst_2
iload 1 /* x */
bipush 8
iushr
sipush 255
iand
imul
iadd
iaload
4: .line 656
ixor
5: .line 659
aload 0 /* this */
getfield org.bouncycastle.crypto.engines.TwofishEngine.gSBox:[I
sipush 513
iconst_2
iload 1 /* x */
bipush 16
iushr
sipush 255
iand
imul
iadd
iaload
6: .line 656
ixor
ireturn
end local 1 // int x
end local 0 // org.bouncycastle.crypto.engines.TwofishEngine this
LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Lorg/bouncycastle/crypto/engines/TwofishEngine;
0 7 1 x I
MethodParameters:
Name Flags
x
private int BytesTo32Bits(byte[], int);
descriptor: ([BI)I
flags: (0x0002) ACC_PRIVATE
Code:
stack=4, locals=3, args_size=3
start local 0 // org.bouncycastle.crypto.engines.TwofishEngine this
start local 1 // byte[] b
start local 2 // int p
0: .line 664
aload 1 /* b */
iload 2 /* p */
baload
sipush 255
iand
1: .line 665
aload 1 /* b */
iload 2 /* p */
iconst_1
iadd
baload
sipush 255
iand
bipush 8
ishl
2: .line 664
ior
3: .line 666
aload 1 /* b */
iload 2 /* p */
iconst_2
iadd
baload
sipush 255
iand
bipush 16
ishl
4: .line 664
ior
5: .line 667
aload 1 /* b */
iload 2 /* p */
iconst_3
iadd
baload
sipush 255
iand
bipush 24
ishl
6: .line 664
ior
ireturn
end local 2 // int p
end local 1 // byte[] b
end local 0 // org.bouncycastle.crypto.engines.TwofishEngine this
LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Lorg/bouncycastle/crypto/engines/TwofishEngine;
0 7 1 b [B
0 7 2 p I
MethodParameters:
Name Flags
b
p
private void Bits32ToBytes(int, byte[], int);
descriptor: (I[BI)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=4, locals=4, args_size=4
start local 0 // org.bouncycastle.crypto.engines.TwofishEngine this
start local 1 // int in
start local 2 // byte[] b
start local 3 // int offset
0: .line 672
aload 2 /* b */
iload 3 /* offset */
iload 1 /* in */
i2b
bastore
1: .line 673
aload 2 /* b */
iload 3 /* offset */
iconst_1
iadd
iload 1 /* in */
bipush 8
ishr
i2b
bastore
2: .line 674
aload 2 /* b */
iload 3 /* offset */
iconst_2
iadd
iload 1 /* in */
bipush 16
ishr
i2b
bastore
3: .line 675
aload 2 /* b */
iload 3 /* offset */
iconst_3
iadd
iload 1 /* in */
bipush 24
ishr
i2b
bastore
4: .line 676
return
end local 3 // int offset
end local 2 // byte[] b
end local 1 // int in
end local 0 // org.bouncycastle.crypto.engines.TwofishEngine this
LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lorg/bouncycastle/crypto/engines/TwofishEngine;
0 5 1 in I
0 5 2 b [B
0 5 3 offset I
MethodParameters:
Name Flags
in
b
offset
}
SourceFile: "TwofishEngine.java"