Object
[] result
=
new
Object
[
2
];
byte[] rc4
=
new byte[
16
];
long
local_1
=
fix.length, local_4
=
1
, local_5
=
0
, local_6
=
0
;
long
local_7
=
fix.length <<
1
, local_8
=
0
, local_9, local_A
=
0
, local_B
=
0
;
int
local_C
=
0
;
for
(local_C
=
0
; local_C < local_1; local_C
+
+
){
local_5
=
fix[local_C] &
0xFFL
;
local_6
=
local_4 <<
5
;
local_4
=
local_6
-
local_4;
local_6
=
local_C &
0xFL
;
local_4
+
=
local_5;
local_4 &
=
0xFFL
;
rc4[(
int
) local_6]
=
(byte) (local_5 &
0xFFL
);
}
local_C
=
0
;
local_6
=
xor;
local_5
=
(local_7
+
(local_7 <<
1
)) &
0xFFL
;
local_9
=
local_C
+
local_4
+
local_7;
for
(local_C
=
0
; local_C < local_1; local_C
+
+
){
local_7
=
local_C &
0xFL
;
local_8
=
rc4[(
int
) local_7] &
0xFFL
;
local_6
=
(local_4 ^ local_6) &
0xFFFFFFFFL
;
local_A
=
fix[local_C] &
0xFFL
;
local_B
=
local_8 &
0xFL
;
local_B
=
(local_4 ^ local_B) &
0xFFFFFFFFL
;
local_8
=
(local_4 ^ (local_8 >>
4
)) &
0xFFFFFFFFL
;
local_8
=
(local_8 | local_B) &
0xFFFFFFFFL
;
local_6
=
(local_6 ^ local_8) &
0xFFFFFFFFL
;
rc4[(
int
) local_7]
=
(byte) (local_6 &
0xFFL
);
local_8
=
xor;
local_7
=
(local_A ^ local_C) &
0xFFFFFFFFL
;
local_7
=
(local_7 ^ local_5) &
0xFFFFFFFFL
;
local_7
=
local_7 &
0xFFL
;
local_6
=
(local_9
+
local_C) &
0xFFFFFFFFL
;
local_6
=
(local_6 ^ local_8) &
0xFFFFFFFFL
;
local_5
+
=
3
;
local_6
=
(local_6 ^ local_7) &
0xFFFFFFFFL
;
local_5 &
=
0xFFL
;
xor
=
local_6;
}
result[
0
]
=
rc4;
result[
1
]
=
xor;
return
result;