diff options
author | ryker <> | 1998-10-05 20:13:16 +0000 |
---|---|---|
committer | ryker <> | 1998-10-05 20:13:16 +0000 |
commit | 9e43e2ac1373d5be5c6500c1bc3b1dd6ee9584b4 (patch) | |
tree | 51ff319f3510104698e541954d10ad98f9125f36 /src/lib/libcrypto/des/asm/dx86unix.cpp | |
parent | 9e77c62555877f9a64805c49d0dcd7dbfbb40f4e (diff) | |
download | openbsd-9e43e2ac1373d5be5c6500c1bc3b1dd6ee9584b4.tar.gz openbsd-9e43e2ac1373d5be5c6500c1bc3b1dd6ee9584b4.tar.bz2 openbsd-9e43e2ac1373d5be5c6500c1bc3b1dd6ee9584b4.zip |
Import of SSLeay-0.9.0b with RSA and IDEA stubbed + OpenBSD build
functionality for shared libs.
Note that routines such as sslv2_init and friends that use RSA will
not work due to lack of RSA in this library.
Needs documentation and help from ports for easy upgrade to full
functionality where legally possible.
Diffstat (limited to 'src/lib/libcrypto/des/asm/dx86unix.cpp')
-rw-r--r-- | src/lib/libcrypto/des/asm/dx86unix.cpp | 3202 |
1 files changed, 3202 insertions, 0 deletions
diff --git a/src/lib/libcrypto/des/asm/dx86unix.cpp b/src/lib/libcrypto/des/asm/dx86unix.cpp new file mode 100644 index 0000000000..6fca9afa16 --- /dev/null +++ b/src/lib/libcrypto/des/asm/dx86unix.cpp | |||
@@ -0,0 +1,3202 @@ | |||
1 | /* Run the C pre-processor over this file with one of the following defined | ||
2 | * ELF - elf object files, | ||
3 | * OUT - a.out object files, | ||
4 | * BSDI - BSDI style a.out object files | ||
5 | * SOL - Solaris style elf | ||
6 | */ | ||
7 | |||
8 | #define TYPE(a,b) .type a,b | ||
9 | #define SIZE(a,b) .size a,b | ||
10 | |||
11 | #if defined(OUT) || defined(BSDI) | ||
12 | #define des_SPtrans _des_SPtrans | ||
13 | #define des_encrypt _des_encrypt | ||
14 | #define des_encrypt2 _des_encrypt2 | ||
15 | #define des_encrypt3 _des_encrypt3 | ||
16 | #define des_decrypt3 _des_decrypt3 | ||
17 | #define des_ncbc_encrypt _des_ncbc_encrypt | ||
18 | #define des_ede3_cbc_encrypt _des_ede3_cbc_encrypt | ||
19 | |||
20 | #endif | ||
21 | |||
22 | #ifdef OUT | ||
23 | #define OK 1 | ||
24 | #define ALIGN 4 | ||
25 | #endif | ||
26 | |||
27 | #ifdef BSDI | ||
28 | #define OK 1 | ||
29 | #define ALIGN 4 | ||
30 | #undef SIZE | ||
31 | #undef TYPE | ||
32 | #define SIZE(a,b) | ||
33 | #define TYPE(a,b) | ||
34 | #endif | ||
35 | |||
36 | #if defined(ELF) || defined(SOL) | ||
37 | #define OK 1 | ||
38 | #define ALIGN 16 | ||
39 | #endif | ||
40 | |||
41 | #ifndef OK | ||
42 | You need to define one of | ||
43 | ELF - elf systems - linux-elf, NetBSD and DG-UX | ||
44 | OUT - a.out systems - linux-a.out and FreeBSD | ||
45 | SOL - solaris systems, which are elf with strange comment lines | ||
46 | BSDI - a.out with a very primative version of as. | ||
47 | #endif | ||
48 | |||
49 | /* Let the Assembler begin :-) */ | ||
50 | /* Don't even think of reading this code */ | ||
51 | /* It was automatically generated by des-586.pl */ | ||
52 | /* Which is a perl program used to generate the x86 assember for */ | ||
53 | /* any of elf, a.out, BSDI,Win32, or Solaris */ | ||
54 | /* eric <eay@cryptsoft.com> */ | ||
55 | |||
56 | .file "des-586.s" | ||
57 | .version "01.01" | ||
58 | gcc2_compiled.: | ||
59 | .text | ||
60 | .align ALIGN | ||
61 | .globl des_encrypt | ||
62 | TYPE(des_encrypt,@function) | ||
63 | des_encrypt: | ||
64 | pushl %esi | ||
65 | pushl %edi | ||
66 | |||
67 | /* Load the 2 words */ | ||
68 | movl 12(%esp), %esi | ||
69 | xorl %ecx, %ecx | ||
70 | pushl %ebx | ||
71 | pushl %ebp | ||
72 | movl (%esi), %eax | ||
73 | movl 28(%esp), %ebx | ||
74 | movl 4(%esi), %edi | ||
75 | |||
76 | /* IP */ | ||
77 | roll $4, %eax | ||
78 | movl %eax, %esi | ||
79 | xorl %edi, %eax | ||
80 | andl $0xf0f0f0f0, %eax | ||
81 | xorl %eax, %esi | ||
82 | xorl %eax, %edi | ||
83 | |||
84 | roll $20, %edi | ||
85 | movl %edi, %eax | ||
86 | xorl %esi, %edi | ||
87 | andl $0xfff0000f, %edi | ||
88 | xorl %edi, %eax | ||
89 | xorl %edi, %esi | ||
90 | |||
91 | roll $14, %eax | ||
92 | movl %eax, %edi | ||
93 | xorl %esi, %eax | ||
94 | andl $0x33333333, %eax | ||
95 | xorl %eax, %edi | ||
96 | xorl %eax, %esi | ||
97 | |||
98 | roll $22, %esi | ||
99 | movl %esi, %eax | ||
100 | xorl %edi, %esi | ||
101 | andl $0x03fc03fc, %esi | ||
102 | xorl %esi, %eax | ||
103 | xorl %esi, %edi | ||
104 | |||
105 | roll $9, %eax | ||
106 | movl %eax, %esi | ||
107 | xorl %edi, %eax | ||
108 | andl $0xaaaaaaaa, %eax | ||
109 | xorl %eax, %esi | ||
110 | xorl %eax, %edi | ||
111 | |||
112 | .byte 209 | ||
113 | .byte 199 /* roll $1 %edi */ | ||
114 | movl 24(%esp), %ebp | ||
115 | cmpl $0, %ebx | ||
116 | je .L000start_decrypt | ||
117 | |||
118 | /* Round 0 */ | ||
119 | movl (%ebp), %eax | ||
120 | xorl %ebx, %ebx | ||
121 | movl 4(%ebp), %edx | ||
122 | xorl %esi, %eax | ||
123 | xorl %esi, %edx | ||
124 | andl $0xfcfcfcfc, %eax | ||
125 | andl $0xcfcfcfcf, %edx | ||
126 | movb %al, %bl | ||
127 | movb %ah, %cl | ||
128 | rorl $4, %edx | ||
129 | movl des_SPtrans(%ebx),%ebp | ||
130 | movb %dl, %bl | ||
131 | xorl %ebp, %edi | ||
132 | movl 0x200+des_SPtrans(%ecx),%ebp | ||
133 | xorl %ebp, %edi | ||
134 | movb %dh, %cl | ||
135 | shrl $16, %eax | ||
136 | movl 0x100+des_SPtrans(%ebx),%ebp | ||
137 | xorl %ebp, %edi | ||
138 | movb %ah, %bl | ||
139 | shrl $16, %edx | ||
140 | movl 0x300+des_SPtrans(%ecx),%ebp | ||
141 | xorl %ebp, %edi | ||
142 | movl 24(%esp), %ebp | ||
143 | movb %dh, %cl | ||
144 | andl $0xff, %eax | ||
145 | andl $0xff, %edx | ||
146 | movl 0x600+des_SPtrans(%ebx),%ebx | ||
147 | xorl %ebx, %edi | ||
148 | movl 0x700+des_SPtrans(%ecx),%ebx | ||
149 | xorl %ebx, %edi | ||
150 | movl 0x400+des_SPtrans(%eax),%ebx | ||
151 | xorl %ebx, %edi | ||
152 | movl 0x500+des_SPtrans(%edx),%ebx | ||
153 | xorl %ebx, %edi | ||
154 | |||
155 | /* Round 1 */ | ||
156 | movl 8(%ebp), %eax | ||
157 | xorl %ebx, %ebx | ||
158 | movl 12(%ebp), %edx | ||
159 | xorl %edi, %eax | ||
160 | xorl %edi, %edx | ||
161 | andl $0xfcfcfcfc, %eax | ||
162 | andl $0xcfcfcfcf, %edx | ||
163 | movb %al, %bl | ||
164 | movb %ah, %cl | ||
165 | rorl $4, %edx | ||
166 | movl des_SPtrans(%ebx),%ebp | ||
167 | movb %dl, %bl | ||
168 | xorl %ebp, %esi | ||
169 | movl 0x200+des_SPtrans(%ecx),%ebp | ||
170 | xorl %ebp, %esi | ||
171 | movb %dh, %cl | ||
172 | shrl $16, %eax | ||
173 | movl 0x100+des_SPtrans(%ebx),%ebp | ||
174 | xorl %ebp, %esi | ||
175 | movb %ah, %bl | ||
176 | shrl $16, %edx | ||
177 | movl 0x300+des_SPtrans(%ecx),%ebp | ||
178 | xorl %ebp, %esi | ||
179 | movl 24(%esp), %ebp | ||
180 | movb %dh, %cl | ||
181 | andl $0xff, %eax | ||
182 | andl $0xff, %edx | ||
183 | movl 0x600+des_SPtrans(%ebx),%ebx | ||
184 | xorl %ebx, %esi | ||
185 | movl 0x700+des_SPtrans(%ecx),%ebx | ||
186 | xorl %ebx, %esi | ||
187 | movl 0x400+des_SPtrans(%eax),%ebx | ||
188 | xorl %ebx, %esi | ||
189 | movl 0x500+des_SPtrans(%edx),%ebx | ||
190 | xorl %ebx, %esi | ||
191 | |||
192 | /* Round 2 */ | ||
193 | movl 16(%ebp), %eax | ||
194 | xorl %ebx, %ebx | ||
195 | movl 20(%ebp), %edx | ||
196 | xorl %esi, %eax | ||
197 | xorl %esi, %edx | ||
198 | andl $0xfcfcfcfc, %eax | ||
199 | andl $0xcfcfcfcf, %edx | ||
200 | movb %al, %bl | ||
201 | movb %ah, %cl | ||
202 | rorl $4, %edx | ||
203 | movl des_SPtrans(%ebx),%ebp | ||
204 | movb %dl, %bl | ||
205 | xorl %ebp, %edi | ||
206 | movl 0x200+des_SPtrans(%ecx),%ebp | ||
207 | xorl %ebp, %edi | ||
208 | movb %dh, %cl | ||
209 | shrl $16, %eax | ||
210 | movl 0x100+des_SPtrans(%ebx),%ebp | ||
211 | xorl %ebp, %edi | ||
212 | movb %ah, %bl | ||
213 | shrl $16, %edx | ||
214 | movl 0x300+des_SPtrans(%ecx),%ebp | ||
215 | xorl %ebp, %edi | ||
216 | movl 24(%esp), %ebp | ||
217 | movb %dh, %cl | ||
218 | andl $0xff, %eax | ||
219 | andl $0xff, %edx | ||
220 | movl 0x600+des_SPtrans(%ebx),%ebx | ||
221 | xorl %ebx, %edi | ||
222 | movl 0x700+des_SPtrans(%ecx),%ebx | ||
223 | xorl %ebx, %edi | ||
224 | movl 0x400+des_SPtrans(%eax),%ebx | ||
225 | xorl %ebx, %edi | ||
226 | movl 0x500+des_SPtrans(%edx),%ebx | ||
227 | xorl %ebx, %edi | ||
228 | |||
229 | /* Round 3 */ | ||
230 | movl 24(%ebp), %eax | ||
231 | xorl %ebx, %ebx | ||
232 | movl 28(%ebp), %edx | ||
233 | xorl %edi, %eax | ||
234 | xorl %edi, %edx | ||
235 | andl $0xfcfcfcfc, %eax | ||
236 | andl $0xcfcfcfcf, %edx | ||
237 | movb %al, %bl | ||
238 | movb %ah, %cl | ||
239 | rorl $4, %edx | ||
240 | movl des_SPtrans(%ebx),%ebp | ||
241 | movb %dl, %bl | ||
242 | xorl %ebp, %esi | ||
243 | movl 0x200+des_SPtrans(%ecx),%ebp | ||
244 | xorl %ebp, %esi | ||
245 | movb %dh, %cl | ||
246 | shrl $16, %eax | ||
247 | movl 0x100+des_SPtrans(%ebx),%ebp | ||
248 | xorl %ebp, %esi | ||
249 | movb %ah, %bl | ||
250 | shrl $16, %edx | ||
251 | movl 0x300+des_SPtrans(%ecx),%ebp | ||
252 | xorl %ebp, %esi | ||
253 | movl 24(%esp), %ebp | ||
254 | movb %dh, %cl | ||
255 | andl $0xff, %eax | ||
256 | andl $0xff, %edx | ||
257 | movl 0x600+des_SPtrans(%ebx),%ebx | ||
258 | xorl %ebx, %esi | ||
259 | movl 0x700+des_SPtrans(%ecx),%ebx | ||
260 | xorl %ebx, %esi | ||
261 | movl 0x400+des_SPtrans(%eax),%ebx | ||
262 | xorl %ebx, %esi | ||
263 | movl 0x500+des_SPtrans(%edx),%ebx | ||
264 | xorl %ebx, %esi | ||
265 | |||
266 | /* Round 4 */ | ||
267 | movl 32(%ebp), %eax | ||
268 | xorl %ebx, %ebx | ||
269 | movl 36(%ebp), %edx | ||
270 | xorl %esi, %eax | ||
271 | xorl %esi, %edx | ||
272 | andl $0xfcfcfcfc, %eax | ||
273 | andl $0xcfcfcfcf, %edx | ||
274 | movb %al, %bl | ||
275 | movb %ah, %cl | ||
276 | rorl $4, %edx | ||
277 | movl des_SPtrans(%ebx),%ebp | ||
278 | movb %dl, %bl | ||
279 | xorl %ebp, %edi | ||
280 | movl 0x200+des_SPtrans(%ecx),%ebp | ||
281 | xorl %ebp, %edi | ||
282 | movb %dh, %cl | ||
283 | shrl $16, %eax | ||
284 | movl 0x100+des_SPtrans(%ebx),%ebp | ||
285 | xorl %ebp, %edi | ||
286 | movb %ah, %bl | ||
287 | shrl $16, %edx | ||
288 | movl 0x300+des_SPtrans(%ecx),%ebp | ||
289 | xorl %ebp, %edi | ||
290 | movl 24(%esp), %ebp | ||
291 | movb %dh, %cl | ||
292 | andl $0xff, %eax | ||
293 | andl $0xff, %edx | ||
294 | movl 0x600+des_SPtrans(%ebx),%ebx | ||
295 | xorl %ebx, %edi | ||
296 | movl 0x700+des_SPtrans(%ecx),%ebx | ||
297 | xorl %ebx, %edi | ||
298 | movl 0x400+des_SPtrans(%eax),%ebx | ||
299 | xorl %ebx, %edi | ||
300 | movl 0x500+des_SPtrans(%edx),%ebx | ||
301 | xorl %ebx, %edi | ||
302 | |||
303 | /* Round 5 */ | ||
304 | movl 40(%ebp), %eax | ||
305 | xorl %ebx, %ebx | ||
306 | movl 44(%ebp), %edx | ||
307 | xorl %edi, %eax | ||
308 | xorl %edi, %edx | ||
309 | andl $0xfcfcfcfc, %eax | ||
310 | andl $0xcfcfcfcf, %edx | ||
311 | movb %al, %bl | ||
312 | movb %ah, %cl | ||
313 | rorl $4, %edx | ||
314 | movl des_SPtrans(%ebx),%ebp | ||
315 | movb %dl, %bl | ||
316 | xorl %ebp, %esi | ||
317 | movl 0x200+des_SPtrans(%ecx),%ebp | ||
318 | xorl %ebp, %esi | ||
319 | movb %dh, %cl | ||
320 | shrl $16, %eax | ||
321 | movl 0x100+des_SPtrans(%ebx),%ebp | ||
322 | xorl %ebp, %esi | ||
323 | movb %ah, %bl | ||
324 | shrl $16, %edx | ||
325 | movl 0x300+des_SPtrans(%ecx),%ebp | ||
326 | xorl %ebp, %esi | ||
327 | movl 24(%esp), %ebp | ||
328 | movb %dh, %cl | ||
329 | andl $0xff, %eax | ||
330 | andl $0xff, %edx | ||
331 | movl 0x600+des_SPtrans(%ebx),%ebx | ||
332 | xorl %ebx, %esi | ||
333 | movl 0x700+des_SPtrans(%ecx),%ebx | ||
334 | xorl %ebx, %esi | ||
335 | movl 0x400+des_SPtrans(%eax),%ebx | ||
336 | xorl %ebx, %esi | ||
337 | movl 0x500+des_SPtrans(%edx),%ebx | ||
338 | xorl %ebx, %esi | ||
339 | |||
340 | /* Round 6 */ | ||
341 | movl 48(%ebp), %eax | ||
342 | xorl %ebx, %ebx | ||
343 | movl 52(%ebp), %edx | ||
344 | xorl %esi, %eax | ||
345 | xorl %esi, %edx | ||
346 | andl $0xfcfcfcfc, %eax | ||
347 | andl $0xcfcfcfcf, %edx | ||
348 | movb %al, %bl | ||
349 | movb %ah, %cl | ||
350 | rorl $4, %edx | ||
351 | movl des_SPtrans(%ebx),%ebp | ||
352 | movb %dl, %bl | ||
353 | xorl %ebp, %edi | ||
354 | movl 0x200+des_SPtrans(%ecx),%ebp | ||
355 | xorl %ebp, %edi | ||
356 | movb %dh, %cl | ||
357 | shrl $16, %eax | ||
358 | movl 0x100+des_SPtrans(%ebx),%ebp | ||
359 | xorl %ebp, %edi | ||
360 | movb %ah, %bl | ||
361 | shrl $16, %edx | ||
362 | movl 0x300+des_SPtrans(%ecx),%ebp | ||
363 | xorl %ebp, %edi | ||
364 | movl 24(%esp), %ebp | ||
365 | movb %dh, %cl | ||
366 | andl $0xff, %eax | ||
367 | andl $0xff, %edx | ||
368 | movl 0x600+des_SPtrans(%ebx),%ebx | ||
369 | xorl %ebx, %edi | ||
370 | movl 0x700+des_SPtrans(%ecx),%ebx | ||
371 | xorl %ebx, %edi | ||
372 | movl 0x400+des_SPtrans(%eax),%ebx | ||
373 | xorl %ebx, %edi | ||
374 | movl 0x500+des_SPtrans(%edx),%ebx | ||
375 | xorl %ebx, %edi | ||
376 | |||
377 | /* Round 7 */ | ||
378 | movl 56(%ebp), %eax | ||
379 | xorl %ebx, %ebx | ||
380 | movl 60(%ebp), %edx | ||
381 | xorl %edi, %eax | ||
382 | xorl %edi, %edx | ||
383 | andl $0xfcfcfcfc, %eax | ||
384 | andl $0xcfcfcfcf, %edx | ||
385 | movb %al, %bl | ||
386 | movb %ah, %cl | ||
387 | rorl $4, %edx | ||
388 | movl des_SPtrans(%ebx),%ebp | ||
389 | movb %dl, %bl | ||
390 | xorl %ebp, %esi | ||
391 | movl 0x200+des_SPtrans(%ecx),%ebp | ||
392 | xorl %ebp, %esi | ||
393 | movb %dh, %cl | ||
394 | shrl $16, %eax | ||
395 | movl 0x100+des_SPtrans(%ebx),%ebp | ||
396 | xorl %ebp, %esi | ||
397 | movb %ah, %bl | ||
398 | shrl $16, %edx | ||
399 | movl 0x300+des_SPtrans(%ecx),%ebp | ||
400 | xorl %ebp, %esi | ||
401 | movl 24(%esp), %ebp | ||
402 | movb %dh, %cl | ||
403 | andl $0xff, %eax | ||
404 | andl $0xff, %edx | ||
405 | movl 0x600+des_SPtrans(%ebx),%ebx | ||
406 | xorl %ebx, %esi | ||
407 | movl 0x700+des_SPtrans(%ecx),%ebx | ||
408 | xorl %ebx, %esi | ||
409 | movl 0x400+des_SPtrans(%eax),%ebx | ||
410 | xorl %ebx, %esi | ||
411 | movl 0x500+des_SPtrans(%edx),%ebx | ||
412 | xorl %ebx, %esi | ||
413 | |||
414 | /* Round 8 */ | ||
415 | movl 64(%ebp), %eax | ||
416 | xorl %ebx, %ebx | ||
417 | movl 68(%ebp), %edx | ||
418 | xorl %esi, %eax | ||
419 | xorl %esi, %edx | ||
420 | andl $0xfcfcfcfc, %eax | ||
421 | andl $0xcfcfcfcf, %edx | ||
422 | movb %al, %bl | ||
423 | movb %ah, %cl | ||
424 | rorl $4, %edx | ||
425 | movl des_SPtrans(%ebx),%ebp | ||
426 | movb %dl, %bl | ||
427 | xorl %ebp, %edi | ||
428 | movl 0x200+des_SPtrans(%ecx),%ebp | ||
429 | xorl %ebp, %edi | ||
430 | movb %dh, %cl | ||
431 | shrl $16, %eax | ||
432 | movl 0x100+des_SPtrans(%ebx),%ebp | ||
433 | xorl %ebp, %edi | ||
434 | movb %ah, %bl | ||
435 | shrl $16, %edx | ||
436 | movl 0x300+des_SPtrans(%ecx),%ebp | ||
437 | xorl %ebp, %edi | ||
438 | movl 24(%esp), %ebp | ||
439 | movb %dh, %cl | ||
440 | andl $0xff, %eax | ||
441 | andl $0xff, %edx | ||
442 | movl 0x600+des_SPtrans(%ebx),%ebx | ||
443 | xorl %ebx, %edi | ||
444 | movl 0x700+des_SPtrans(%ecx),%ebx | ||
445 | xorl %ebx, %edi | ||
446 | movl 0x400+des_SPtrans(%eax),%ebx | ||
447 | xorl %ebx, %edi | ||
448 | movl 0x500+des_SPtrans(%edx),%ebx | ||
449 | xorl %ebx, %edi | ||
450 | |||
451 | /* Round 9 */ | ||
452 | movl 72(%ebp), %eax | ||
453 | xorl %ebx, %ebx | ||
454 | movl 76(%ebp), %edx | ||
455 | xorl %edi, %eax | ||
456 | xorl %edi, %edx | ||
457 | andl $0xfcfcfcfc, %eax | ||
458 | andl $0xcfcfcfcf, %edx | ||
459 | movb %al, %bl | ||
460 | movb %ah, %cl | ||
461 | rorl $4, %edx | ||
462 | movl des_SPtrans(%ebx),%ebp | ||
463 | movb %dl, %bl | ||
464 | xorl %ebp, %esi | ||
465 | movl 0x200+des_SPtrans(%ecx),%ebp | ||
466 | xorl %ebp, %esi | ||
467 | movb %dh, %cl | ||
468 | shrl $16, %eax | ||
469 | movl 0x100+des_SPtrans(%ebx),%ebp | ||
470 | xorl %ebp, %esi | ||
471 | movb %ah, %bl | ||
472 | shrl $16, %edx | ||
473 | movl 0x300+des_SPtrans(%ecx),%ebp | ||
474 | xorl %ebp, %esi | ||
475 | movl 24(%esp), %ebp | ||
476 | movb %dh, %cl | ||
477 | andl $0xff, %eax | ||
478 | andl $0xff, %edx | ||
479 | movl 0x600+des_SPtrans(%ebx),%ebx | ||
480 | xorl %ebx, %esi | ||
481 | movl 0x700+des_SPtrans(%ecx),%ebx | ||
482 | xorl %ebx, %esi | ||
483 | movl 0x400+des_SPtrans(%eax),%ebx | ||
484 | xorl %ebx, %esi | ||
485 | movl 0x500+des_SPtrans(%edx),%ebx | ||
486 | xorl %ebx, %esi | ||
487 | |||
488 | /* Round 10 */ | ||
489 | movl 80(%ebp), %eax | ||
490 | xorl %ebx, %ebx | ||
491 | movl 84(%ebp), %edx | ||
492 | xorl %esi, %eax | ||
493 | xorl %esi, %edx | ||
494 | andl $0xfcfcfcfc, %eax | ||
495 | andl $0xcfcfcfcf, %edx | ||
496 | movb %al, %bl | ||
497 | movb %ah, %cl | ||
498 | rorl $4, %edx | ||
499 | movl des_SPtrans(%ebx),%ebp | ||
500 | movb %dl, %bl | ||
501 | xorl %ebp, %edi | ||
502 | movl 0x200+des_SPtrans(%ecx),%ebp | ||
503 | xorl %ebp, %edi | ||
504 | movb %dh, %cl | ||
505 | shrl $16, %eax | ||
506 | movl 0x100+des_SPtrans(%ebx),%ebp | ||
507 | xorl %ebp, %edi | ||
508 | movb %ah, %bl | ||
509 | shrl $16, %edx | ||
510 | movl 0x300+des_SPtrans(%ecx),%ebp | ||
511 | xorl %ebp, %edi | ||
512 | movl 24(%esp), %ebp | ||
513 | movb %dh, %cl | ||
514 | andl $0xff, %eax | ||
515 | andl $0xff, %edx | ||
516 | movl 0x600+des_SPtrans(%ebx),%ebx | ||
517 | xorl %ebx, %edi | ||
518 | movl 0x700+des_SPtrans(%ecx),%ebx | ||
519 | xorl %ebx, %edi | ||
520 | movl 0x400+des_SPtrans(%eax),%ebx | ||
521 | xorl %ebx, %edi | ||
522 | movl 0x500+des_SPtrans(%edx),%ebx | ||
523 | xorl %ebx, %edi | ||
524 | |||
525 | /* Round 11 */ | ||
526 | movl 88(%ebp), %eax | ||
527 | xorl %ebx, %ebx | ||
528 | movl 92(%ebp), %edx | ||
529 | xorl %edi, %eax | ||
530 | xorl %edi, %edx | ||
531 | andl $0xfcfcfcfc, %eax | ||
532 | andl $0xcfcfcfcf, %edx | ||
533 | movb %al, %bl | ||
534 | movb %ah, %cl | ||
535 | rorl $4, %edx | ||
536 | movl des_SPtrans(%ebx),%ebp | ||
537 | movb %dl, %bl | ||
538 | xorl %ebp, %esi | ||
539 | movl 0x200+des_SPtrans(%ecx),%ebp | ||
540 | xorl %ebp, %esi | ||
541 | movb %dh, %cl | ||
542 | shrl $16, %eax | ||
543 | movl 0x100+des_SPtrans(%ebx),%ebp | ||
544 | xorl %ebp, %esi | ||
545 | movb %ah, %bl | ||
546 | shrl $16, %edx | ||
547 | movl 0x300+des_SPtrans(%ecx),%ebp | ||
548 | xorl %ebp, %esi | ||
549 | movl 24(%esp), %ebp | ||
550 | movb %dh, %cl | ||
551 | andl $0xff, %eax | ||
552 | andl $0xff, %edx | ||
553 | movl 0x600+des_SPtrans(%ebx),%ebx | ||
554 | xorl %ebx, %esi | ||
555 | movl 0x700+des_SPtrans(%ecx),%ebx | ||
556 | xorl %ebx, %esi | ||
557 | movl 0x400+des_SPtrans(%eax),%ebx | ||
558 | xorl %ebx, %esi | ||
559 | movl 0x500+des_SPtrans(%edx),%ebx | ||
560 | xorl %ebx, %esi | ||
561 | |||
562 | /* Round 12 */ | ||
563 | movl 96(%ebp), %eax | ||
564 | xorl %ebx, %ebx | ||
565 | movl 100(%ebp), %edx | ||
566 | xorl %esi, %eax | ||
567 | xorl %esi, %edx | ||
568 | andl $0xfcfcfcfc, %eax | ||
569 | andl $0xcfcfcfcf, %edx | ||
570 | movb %al, %bl | ||
571 | movb %ah, %cl | ||
572 | rorl $4, %edx | ||
573 | movl des_SPtrans(%ebx),%ebp | ||
574 | movb %dl, %bl | ||
575 | xorl %ebp, %edi | ||
576 | movl 0x200+des_SPtrans(%ecx),%ebp | ||
577 | xorl %ebp, %edi | ||
578 | movb %dh, %cl | ||
579 | shrl $16, %eax | ||
580 | movl 0x100+des_SPtrans(%ebx),%ebp | ||
581 | xorl %ebp, %edi | ||
582 | movb %ah, %bl | ||
583 | shrl $16, %edx | ||
584 | movl 0x300+des_SPtrans(%ecx),%ebp | ||
585 | xorl %ebp, %edi | ||
586 | movl 24(%esp), %ebp | ||
587 | movb %dh, %cl | ||
588 | andl $0xff, %eax | ||
589 | andl $0xff, %edx | ||
590 | movl 0x600+des_SPtrans(%ebx),%ebx | ||
591 | xorl %ebx, %edi | ||
592 | movl 0x700+des_SPtrans(%ecx),%ebx | ||
593 | xorl %ebx, %edi | ||
594 | movl 0x400+des_SPtrans(%eax),%ebx | ||
595 | xorl %ebx, %edi | ||
596 | movl 0x500+des_SPtrans(%edx),%ebx | ||
597 | xorl %ebx, %edi | ||
598 | |||
599 | /* Round 13 */ | ||
600 | movl 104(%ebp), %eax | ||
601 | xorl %ebx, %ebx | ||
602 | movl 108(%ebp), %edx | ||
603 | xorl %edi, %eax | ||
604 | xorl %edi, %edx | ||
605 | andl $0xfcfcfcfc, %eax | ||
606 | andl $0xcfcfcfcf, %edx | ||
607 | movb %al, %bl | ||
608 | movb %ah, %cl | ||
609 | rorl $4, %edx | ||
610 | movl des_SPtrans(%ebx),%ebp | ||
611 | movb %dl, %bl | ||
612 | xorl %ebp, %esi | ||
613 | movl 0x200+des_SPtrans(%ecx),%ebp | ||
614 | xorl %ebp, %esi | ||
615 | movb %dh, %cl | ||
616 | shrl $16, %eax | ||
617 | movl 0x100+des_SPtrans(%ebx),%ebp | ||
618 | xorl %ebp, %esi | ||
619 | movb %ah, %bl | ||
620 | shrl $16, %edx | ||
621 | movl 0x300+des_SPtrans(%ecx),%ebp | ||
622 | xorl %ebp, %esi | ||
623 | movl 24(%esp), %ebp | ||
624 | movb %dh, %cl | ||
625 | andl $0xff, %eax | ||
626 | andl $0xff, %edx | ||
627 | movl 0x600+des_SPtrans(%ebx),%ebx | ||
628 | xorl %ebx, %esi | ||
629 | movl 0x700+des_SPtrans(%ecx),%ebx | ||
630 | xorl %ebx, %esi | ||
631 | movl 0x400+des_SPtrans(%eax),%ebx | ||
632 | xorl %ebx, %esi | ||
633 | movl 0x500+des_SPtrans(%edx),%ebx | ||
634 | xorl %ebx, %esi | ||
635 | |||
636 | /* Round 14 */ | ||
637 | movl 112(%ebp), %eax | ||
638 | xorl %ebx, %ebx | ||
639 | movl 116(%ebp), %edx | ||
640 | xorl %esi, %eax | ||
641 | xorl %esi, %edx | ||
642 | andl $0xfcfcfcfc, %eax | ||
643 | andl $0xcfcfcfcf, %edx | ||
644 | movb %al, %bl | ||
645 | movb %ah, %cl | ||
646 | rorl $4, %edx | ||
647 | movl des_SPtrans(%ebx),%ebp | ||
648 | movb %dl, %bl | ||
649 | xorl %ebp, %edi | ||
650 | movl 0x200+des_SPtrans(%ecx),%ebp | ||
651 | xorl %ebp, %edi | ||
652 | movb %dh, %cl | ||
653 | shrl $16, %eax | ||
654 | movl 0x100+des_SPtrans(%ebx),%ebp | ||
655 | xorl %ebp, %edi | ||
656 | movb %ah, %bl | ||
657 | shrl $16, %edx | ||
658 | movl 0x300+des_SPtrans(%ecx),%ebp | ||
659 | xorl %ebp, %edi | ||
660 | movl 24(%esp), %ebp | ||
661 | movb %dh, %cl | ||
662 | andl $0xff, %eax | ||
663 | andl $0xff, %edx | ||
664 | movl 0x600+des_SPtrans(%ebx),%ebx | ||
665 | xorl %ebx, %edi | ||
666 | movl 0x700+des_SPtrans(%ecx),%ebx | ||
667 | xorl %ebx, %edi | ||
668 | movl 0x400+des_SPtrans(%eax),%ebx | ||
669 | xorl %ebx, %edi | ||
670 | movl 0x500+des_SPtrans(%edx),%ebx | ||
671 | xorl %ebx, %edi | ||
672 | |||
673 | /* Round 15 */ | ||
674 | movl 120(%ebp), %eax | ||
675 | xorl %ebx, %ebx | ||
676 | movl 124(%ebp), %edx | ||
677 | xorl %edi, %eax | ||
678 | xorl %edi, %edx | ||
679 | andl $0xfcfcfcfc, %eax | ||
680 | andl $0xcfcfcfcf, %edx | ||
681 | movb %al, %bl | ||
682 | movb %ah, %cl | ||
683 | rorl $4, %edx | ||
684 | movl des_SPtrans(%ebx),%ebp | ||
685 | movb %dl, %bl | ||
686 | xorl %ebp, %esi | ||
687 | movl 0x200+des_SPtrans(%ecx),%ebp | ||
688 | xorl %ebp, %esi | ||
689 | movb %dh, %cl | ||
690 | shrl $16, %eax | ||
691 | movl 0x100+des_SPtrans(%ebx),%ebp | ||
692 | xorl %ebp, %esi | ||
693 | movb %ah, %bl | ||
694 | shrl $16, %edx | ||
695 | movl 0x300+des_SPtrans(%ecx),%ebp | ||
696 | xorl %ebp, %esi | ||
697 | movl 24(%esp), %ebp | ||
698 | movb %dh, %cl | ||
699 | andl $0xff, %eax | ||
700 | andl $0xff, %edx | ||
701 | movl 0x600+des_SPtrans(%ebx),%ebx | ||
702 | xorl %ebx, %esi | ||
703 | movl 0x700+des_SPtrans(%ecx),%ebx | ||
704 | xorl %ebx, %esi | ||
705 | movl 0x400+des_SPtrans(%eax),%ebx | ||
706 | xorl %ebx, %esi | ||
707 | movl 0x500+des_SPtrans(%edx),%ebx | ||
708 | xorl %ebx, %esi | ||
709 | jmp .L001end | ||
710 | .L000start_decrypt: | ||
711 | |||
712 | /* Round 15 */ | ||
713 | movl 120(%ebp), %eax | ||
714 | xorl %ebx, %ebx | ||
715 | movl 124(%ebp), %edx | ||
716 | xorl %esi, %eax | ||
717 | xorl %esi, %edx | ||
718 | andl $0xfcfcfcfc, %eax | ||
719 | andl $0xcfcfcfcf, %edx | ||
720 | movb %al, %bl | ||
721 | movb %ah, %cl | ||
722 | rorl $4, %edx | ||
723 | movl des_SPtrans(%ebx),%ebp | ||
724 | movb %dl, %bl | ||
725 | xorl %ebp, %edi | ||
726 | movl 0x200+des_SPtrans(%ecx),%ebp | ||
727 | xorl %ebp, %edi | ||
728 | movb %dh, %cl | ||
729 | shrl $16, %eax | ||
730 | movl 0x100+des_SPtrans(%ebx),%ebp | ||
731 | xorl %ebp, %edi | ||
732 | movb %ah, %bl | ||
733 | shrl $16, %edx | ||
734 | movl 0x300+des_SPtrans(%ecx),%ebp | ||
735 | xorl %ebp, %edi | ||
736 | movl 24(%esp), %ebp | ||
737 | movb %dh, %cl | ||
738 | andl $0xff, %eax | ||
739 | andl $0xff, %edx | ||
740 | movl 0x600+des_SPtrans(%ebx),%ebx | ||
741 | xorl %ebx, %edi | ||
742 | movl 0x700+des_SPtrans(%ecx),%ebx | ||
743 | xorl %ebx, %edi | ||
744 | movl 0x400+des_SPtrans(%eax),%ebx | ||
745 | xorl %ebx, %edi | ||
746 | movl 0x500+des_SPtrans(%edx),%ebx | ||
747 | xorl %ebx, %edi | ||
748 | |||
749 | /* Round 14 */ | ||
750 | movl 112(%ebp), %eax | ||
751 | xorl %ebx, %ebx | ||
752 | movl 116(%ebp), %edx | ||
753 | xorl %edi, %eax | ||
754 | xorl %edi, %edx | ||
755 | andl $0xfcfcfcfc, %eax | ||
756 | andl $0xcfcfcfcf, %edx | ||
757 | movb %al, %bl | ||
758 | movb %ah, %cl | ||
759 | rorl $4, %edx | ||
760 | movl des_SPtrans(%ebx),%ebp | ||
761 | movb %dl, %bl | ||
762 | xorl %ebp, %esi | ||
763 | movl 0x200+des_SPtrans(%ecx),%ebp | ||
764 | xorl %ebp, %esi | ||
765 | movb %dh, %cl | ||
766 | shrl $16, %eax | ||
767 | movl 0x100+des_SPtrans(%ebx),%ebp | ||
768 | xorl %ebp, %esi | ||
769 | movb %ah, %bl | ||
770 | shrl $16, %edx | ||
771 | movl 0x300+des_SPtrans(%ecx),%ebp | ||
772 | xorl %ebp, %esi | ||
773 | movl 24(%esp), %ebp | ||
774 | movb %dh, %cl | ||
775 | andl $0xff, %eax | ||
776 | andl $0xff, %edx | ||
777 | movl 0x600+des_SPtrans(%ebx),%ebx | ||
778 | xorl %ebx, %esi | ||
779 | movl 0x700+des_SPtrans(%ecx),%ebx | ||
780 | xorl %ebx, %esi | ||
781 | movl 0x400+des_SPtrans(%eax),%ebx | ||
782 | xorl %ebx, %esi | ||
783 | movl 0x500+des_SPtrans(%edx),%ebx | ||
784 | xorl %ebx, %esi | ||
785 | |||
786 | /* Round 13 */ | ||
787 | movl 104(%ebp), %eax | ||
788 | xorl %ebx, %ebx | ||
789 | movl 108(%ebp), %edx | ||
790 | xorl %esi, %eax | ||
791 | xorl %esi, %edx | ||
792 | andl $0xfcfcfcfc, %eax | ||
793 | andl $0xcfcfcfcf, %edx | ||
794 | movb %al, %bl | ||
795 | movb %ah, %cl | ||
796 | rorl $4, %edx | ||
797 | movl des_SPtrans(%ebx),%ebp | ||
798 | movb %dl, %bl | ||
799 | xorl %ebp, %edi | ||
800 | movl 0x200+des_SPtrans(%ecx),%ebp | ||
801 | xorl %ebp, %edi | ||
802 | movb %dh, %cl | ||
803 | shrl $16, %eax | ||
804 | movl 0x100+des_SPtrans(%ebx),%ebp | ||
805 | xorl %ebp, %edi | ||
806 | movb %ah, %bl | ||
807 | shrl $16, %edx | ||
808 | movl 0x300+des_SPtrans(%ecx),%ebp | ||
809 | xorl %ebp, %edi | ||
810 | movl 24(%esp), %ebp | ||
811 | movb %dh, %cl | ||
812 | andl $0xff, %eax | ||
813 | andl $0xff, %edx | ||
814 | movl 0x600+des_SPtrans(%ebx),%ebx | ||
815 | xorl %ebx, %edi | ||
816 | movl 0x700+des_SPtrans(%ecx),%ebx | ||
817 | xorl %ebx, %edi | ||
818 | movl 0x400+des_SPtrans(%eax),%ebx | ||
819 | xorl %ebx, %edi | ||
820 | movl 0x500+des_SPtrans(%edx),%ebx | ||
821 | xorl %ebx, %edi | ||
822 | |||
823 | /* Round 12 */ | ||
824 | movl 96(%ebp), %eax | ||
825 | xorl %ebx, %ebx | ||
826 | movl 100(%ebp), %edx | ||
827 | xorl %edi, %eax | ||
828 | xorl %edi, %edx | ||
829 | andl $0xfcfcfcfc, %eax | ||
830 | andl $0xcfcfcfcf, %edx | ||
831 | movb %al, %bl | ||
832 | movb %ah, %cl | ||
833 | rorl $4, %edx | ||
834 | movl des_SPtrans(%ebx),%ebp | ||
835 | movb %dl, %bl | ||
836 | xorl %ebp, %esi | ||
837 | movl 0x200+des_SPtrans(%ecx),%ebp | ||
838 | xorl %ebp, %esi | ||
839 | movb %dh, %cl | ||
840 | shrl $16, %eax | ||
841 | movl 0x100+des_SPtrans(%ebx),%ebp | ||
842 | xorl %ebp, %esi | ||
843 | movb %ah, %bl | ||
844 | shrl $16, %edx | ||
845 | movl 0x300+des_SPtrans(%ecx),%ebp | ||
846 | xorl %ebp, %esi | ||
847 | movl 24(%esp), %ebp | ||
848 | movb %dh, %cl | ||
849 | andl $0xff, %eax | ||
850 | andl $0xff, %edx | ||
851 | movl 0x600+des_SPtrans(%ebx),%ebx | ||
852 | xorl %ebx, %esi | ||
853 | movl 0x700+des_SPtrans(%ecx),%ebx | ||
854 | xorl %ebx, %esi | ||
855 | movl 0x400+des_SPtrans(%eax),%ebx | ||
856 | xorl %ebx, %esi | ||
857 | movl 0x500+des_SPtrans(%edx),%ebx | ||
858 | xorl %ebx, %esi | ||
859 | |||
860 | /* Round 11 */ | ||
861 | movl 88(%ebp), %eax | ||
862 | xorl %ebx, %ebx | ||
863 | movl 92(%ebp), %edx | ||
864 | xorl %esi, %eax | ||
865 | xorl %esi, %edx | ||
866 | andl $0xfcfcfcfc, %eax | ||
867 | andl $0xcfcfcfcf, %edx | ||
868 | movb %al, %bl | ||
869 | movb %ah, %cl | ||
870 | rorl $4, %edx | ||
871 | movl des_SPtrans(%ebx),%ebp | ||
872 | movb %dl, %bl | ||
873 | xorl %ebp, %edi | ||
874 | movl 0x200+des_SPtrans(%ecx),%ebp | ||
875 | xorl %ebp, %edi | ||
876 | movb %dh, %cl | ||
877 | shrl $16, %eax | ||
878 | movl 0x100+des_SPtrans(%ebx),%ebp | ||
879 | xorl %ebp, %edi | ||
880 | movb %ah, %bl | ||
881 | shrl $16, %edx | ||
882 | movl 0x300+des_SPtrans(%ecx),%ebp | ||
883 | xorl %ebp, %edi | ||
884 | movl 24(%esp), %ebp | ||
885 | movb %dh, %cl | ||
886 | andl $0xff, %eax | ||
887 | andl $0xff, %edx | ||
888 | movl 0x600+des_SPtrans(%ebx),%ebx | ||
889 | xorl %ebx, %edi | ||
890 | movl 0x700+des_SPtrans(%ecx),%ebx | ||
891 | xorl %ebx, %edi | ||
892 | movl 0x400+des_SPtrans(%eax),%ebx | ||
893 | xorl %ebx, %edi | ||
894 | movl 0x500+des_SPtrans(%edx),%ebx | ||
895 | xorl %ebx, %edi | ||
896 | |||
897 | /* Round 10 */ | ||
898 | movl 80(%ebp), %eax | ||
899 | xorl %ebx, %ebx | ||
900 | movl 84(%ebp), %edx | ||
901 | xorl %edi, %eax | ||
902 | xorl %edi, %edx | ||
903 | andl $0xfcfcfcfc, %eax | ||
904 | andl $0xcfcfcfcf, %edx | ||
905 | movb %al, %bl | ||
906 | movb %ah, %cl | ||
907 | rorl $4, %edx | ||
908 | movl des_SPtrans(%ebx),%ebp | ||
909 | movb %dl, %bl | ||
910 | xorl %ebp, %esi | ||
911 | movl 0x200+des_SPtrans(%ecx),%ebp | ||
912 | xorl %ebp, %esi | ||
913 | movb %dh, %cl | ||
914 | shrl $16, %eax | ||
915 | movl 0x100+des_SPtrans(%ebx),%ebp | ||
916 | xorl %ebp, %esi | ||
917 | movb %ah, %bl | ||
918 | shrl $16, %edx | ||
919 | movl 0x300+des_SPtrans(%ecx),%ebp | ||
920 | xorl %ebp, %esi | ||
921 | movl 24(%esp), %ebp | ||
922 | movb %dh, %cl | ||
923 | andl $0xff, %eax | ||
924 | andl $0xff, %edx | ||
925 | movl 0x600+des_SPtrans(%ebx),%ebx | ||
926 | xorl %ebx, %esi | ||
927 | movl 0x700+des_SPtrans(%ecx),%ebx | ||
928 | xorl %ebx, %esi | ||
929 | movl 0x400+des_SPtrans(%eax),%ebx | ||
930 | xorl %ebx, %esi | ||
931 | movl 0x500+des_SPtrans(%edx),%ebx | ||
932 | xorl %ebx, %esi | ||
933 | |||
934 | /* Round 9 */ | ||
935 | movl 72(%ebp), %eax | ||
936 | xorl %ebx, %ebx | ||
937 | movl 76(%ebp), %edx | ||
938 | xorl %esi, %eax | ||
939 | xorl %esi, %edx | ||
940 | andl $0xfcfcfcfc, %eax | ||
941 | andl $0xcfcfcfcf, %edx | ||
942 | movb %al, %bl | ||
943 | movb %ah, %cl | ||
944 | rorl $4, %edx | ||
945 | movl des_SPtrans(%ebx),%ebp | ||
946 | movb %dl, %bl | ||
947 | xorl %ebp, %edi | ||
948 | movl 0x200+des_SPtrans(%ecx),%ebp | ||
949 | xorl %ebp, %edi | ||
950 | movb %dh, %cl | ||
951 | shrl $16, %eax | ||
952 | movl 0x100+des_SPtrans(%ebx),%ebp | ||
953 | xorl %ebp, %edi | ||
954 | movb %ah, %bl | ||
955 | shrl $16, %edx | ||
956 | movl 0x300+des_SPtrans(%ecx),%ebp | ||
957 | xorl %ebp, %edi | ||
958 | movl 24(%esp), %ebp | ||
959 | movb %dh, %cl | ||
960 | andl $0xff, %eax | ||
961 | andl $0xff, %edx | ||
962 | movl 0x600+des_SPtrans(%ebx),%ebx | ||
963 | xorl %ebx, %edi | ||
964 | movl 0x700+des_SPtrans(%ecx),%ebx | ||
965 | xorl %ebx, %edi | ||
966 | movl 0x400+des_SPtrans(%eax),%ebx | ||
967 | xorl %ebx, %edi | ||
968 | movl 0x500+des_SPtrans(%edx),%ebx | ||
969 | xorl %ebx, %edi | ||
970 | |||
971 | /* Round 8 */ | ||
972 | movl 64(%ebp), %eax | ||
973 | xorl %ebx, %ebx | ||
974 | movl 68(%ebp), %edx | ||
975 | xorl %edi, %eax | ||
976 | xorl %edi, %edx | ||
977 | andl $0xfcfcfcfc, %eax | ||
978 | andl $0xcfcfcfcf, %edx | ||
979 | movb %al, %bl | ||
980 | movb %ah, %cl | ||
981 | rorl $4, %edx | ||
982 | movl des_SPtrans(%ebx),%ebp | ||
983 | movb %dl, %bl | ||
984 | xorl %ebp, %esi | ||
985 | movl 0x200+des_SPtrans(%ecx),%ebp | ||
986 | xorl %ebp, %esi | ||
987 | movb %dh, %cl | ||
988 | shrl $16, %eax | ||
989 | movl 0x100+des_SPtrans(%ebx),%ebp | ||
990 | xorl %ebp, %esi | ||
991 | movb %ah, %bl | ||
992 | shrl $16, %edx | ||
993 | movl 0x300+des_SPtrans(%ecx),%ebp | ||
994 | xorl %ebp, %esi | ||
995 | movl 24(%esp), %ebp | ||
996 | movb %dh, %cl | ||
997 | andl $0xff, %eax | ||
998 | andl $0xff, %edx | ||
999 | movl 0x600+des_SPtrans(%ebx),%ebx | ||
1000 | xorl %ebx, %esi | ||
1001 | movl 0x700+des_SPtrans(%ecx),%ebx | ||
1002 | xorl %ebx, %esi | ||
1003 | movl 0x400+des_SPtrans(%eax),%ebx | ||
1004 | xorl %ebx, %esi | ||
1005 | movl 0x500+des_SPtrans(%edx),%ebx | ||
1006 | xorl %ebx, %esi | ||
1007 | |||
1008 | /* Round 7 */ | ||
1009 | movl 56(%ebp), %eax | ||
1010 | xorl %ebx, %ebx | ||
1011 | movl 60(%ebp), %edx | ||
1012 | xorl %esi, %eax | ||
1013 | xorl %esi, %edx | ||
1014 | andl $0xfcfcfcfc, %eax | ||
1015 | andl $0xcfcfcfcf, %edx | ||
1016 | movb %al, %bl | ||
1017 | movb %ah, %cl | ||
1018 | rorl $4, %edx | ||
1019 | movl des_SPtrans(%ebx),%ebp | ||
1020 | movb %dl, %bl | ||
1021 | xorl %ebp, %edi | ||
1022 | movl 0x200+des_SPtrans(%ecx),%ebp | ||
1023 | xorl %ebp, %edi | ||
1024 | movb %dh, %cl | ||
1025 | shrl $16, %eax | ||
1026 | movl 0x100+des_SPtrans(%ebx),%ebp | ||
1027 | xorl %ebp, %edi | ||
1028 | movb %ah, %bl | ||
1029 | shrl $16, %edx | ||
1030 | movl 0x300+des_SPtrans(%ecx),%ebp | ||
1031 | xorl %ebp, %edi | ||
1032 | movl 24(%esp), %ebp | ||
1033 | movb %dh, %cl | ||
1034 | andl $0xff, %eax | ||
1035 | andl $0xff, %edx | ||
1036 | movl 0x600+des_SPtrans(%ebx),%ebx | ||
1037 | xorl %ebx, %edi | ||
1038 | movl 0x700+des_SPtrans(%ecx),%ebx | ||
1039 | xorl %ebx, %edi | ||
1040 | movl 0x400+des_SPtrans(%eax),%ebx | ||
1041 | xorl %ebx, %edi | ||
1042 | movl 0x500+des_SPtrans(%edx),%ebx | ||
1043 | xorl %ebx, %edi | ||
1044 | |||
1045 | /* Round 6 */ | ||
1046 | movl 48(%ebp), %eax | ||
1047 | xorl %ebx, %ebx | ||
1048 | movl 52(%ebp), %edx | ||
1049 | xorl %edi, %eax | ||
1050 | xorl %edi, %edx | ||
1051 | andl $0xfcfcfcfc, %eax | ||
1052 | andl $0xcfcfcfcf, %edx | ||
1053 | movb %al, %bl | ||
1054 | movb %ah, %cl | ||
1055 | rorl $4, %edx | ||
1056 | movl des_SPtrans(%ebx),%ebp | ||
1057 | movb %dl, %bl | ||
1058 | xorl %ebp, %esi | ||
1059 | movl 0x200+des_SPtrans(%ecx),%ebp | ||
1060 | xorl %ebp, %esi | ||
1061 | movb %dh, %cl | ||
1062 | shrl $16, %eax | ||
1063 | movl 0x100+des_SPtrans(%ebx),%ebp | ||
1064 | xorl %ebp, %esi | ||
1065 | movb %ah, %bl | ||
1066 | shrl $16, %edx | ||
1067 | movl 0x300+des_SPtrans(%ecx),%ebp | ||
1068 | xorl %ebp, %esi | ||
1069 | movl 24(%esp), %ebp | ||
1070 | movb %dh, %cl | ||
1071 | andl $0xff, %eax | ||
1072 | andl $0xff, %edx | ||
1073 | movl 0x600+des_SPtrans(%ebx),%ebx | ||
1074 | xorl %ebx, %esi | ||
1075 | movl 0x700+des_SPtrans(%ecx),%ebx | ||
1076 | xorl %ebx, %esi | ||
1077 | movl 0x400+des_SPtrans(%eax),%ebx | ||
1078 | xorl %ebx, %esi | ||
1079 | movl 0x500+des_SPtrans(%edx),%ebx | ||
1080 | xorl %ebx, %esi | ||
1081 | |||
1082 | /* Round 5 */ | ||
1083 | movl 40(%ebp), %eax | ||
1084 | xorl %ebx, %ebx | ||
1085 | movl 44(%ebp), %edx | ||
1086 | xorl %esi, %eax | ||
1087 | xorl %esi, %edx | ||
1088 | andl $0xfcfcfcfc, %eax | ||
1089 | andl $0xcfcfcfcf, %edx | ||
1090 | movb %al, %bl | ||
1091 | movb %ah, %cl | ||
1092 | rorl $4, %edx | ||
1093 | movl des_SPtrans(%ebx),%ebp | ||
1094 | movb %dl, %bl | ||
1095 | xorl %ebp, %edi | ||
1096 | movl 0x200+des_SPtrans(%ecx),%ebp | ||
1097 | xorl %ebp, %edi | ||
1098 | movb %dh, %cl | ||
1099 | shrl $16, %eax | ||
1100 | movl 0x100+des_SPtrans(%ebx),%ebp | ||
1101 | xorl %ebp, %edi | ||
1102 | movb %ah, %bl | ||
1103 | shrl $16, %edx | ||
1104 | movl 0x300+des_SPtrans(%ecx),%ebp | ||
1105 | xorl %ebp, %edi | ||
1106 | movl 24(%esp), %ebp | ||
1107 | movb %dh, %cl | ||
1108 | andl $0xff, %eax | ||
1109 | andl $0xff, %edx | ||
1110 | movl 0x600+des_SPtrans(%ebx),%ebx | ||
1111 | xorl %ebx, %edi | ||
1112 | movl 0x700+des_SPtrans(%ecx),%ebx | ||
1113 | xorl %ebx, %edi | ||
1114 | movl 0x400+des_SPtrans(%eax),%ebx | ||
1115 | xorl %ebx, %edi | ||
1116 | movl 0x500+des_SPtrans(%edx),%ebx | ||
1117 | xorl %ebx, %edi | ||
1118 | |||
1119 | /* Round 4 */ | ||
1120 | movl 32(%ebp), %eax | ||
1121 | xorl %ebx, %ebx | ||
1122 | movl 36(%ebp), %edx | ||
1123 | xorl %edi, %eax | ||
1124 | xorl %edi, %edx | ||
1125 | andl $0xfcfcfcfc, %eax | ||
1126 | andl $0xcfcfcfcf, %edx | ||
1127 | movb %al, %bl | ||
1128 | movb %ah, %cl | ||
1129 | rorl $4, %edx | ||
1130 | movl des_SPtrans(%ebx),%ebp | ||
1131 | movb %dl, %bl | ||
1132 | xorl %ebp, %esi | ||
1133 | movl 0x200+des_SPtrans(%ecx),%ebp | ||
1134 | xorl %ebp, %esi | ||
1135 | movb %dh, %cl | ||
1136 | shrl $16, %eax | ||
1137 | movl 0x100+des_SPtrans(%ebx),%ebp | ||
1138 | xorl %ebp, %esi | ||
1139 | movb %ah, %bl | ||
1140 | shrl $16, %edx | ||
1141 | movl 0x300+des_SPtrans(%ecx),%ebp | ||
1142 | xorl %ebp, %esi | ||
1143 | movl 24(%esp), %ebp | ||
1144 | movb %dh, %cl | ||
1145 | andl $0xff, %eax | ||
1146 | andl $0xff, %edx | ||
1147 | movl 0x600+des_SPtrans(%ebx),%ebx | ||
1148 | xorl %ebx, %esi | ||
1149 | movl 0x700+des_SPtrans(%ecx),%ebx | ||
1150 | xorl %ebx, %esi | ||
1151 | movl 0x400+des_SPtrans(%eax),%ebx | ||
1152 | xorl %ebx, %esi | ||
1153 | movl 0x500+des_SPtrans(%edx),%ebx | ||
1154 | xorl %ebx, %esi | ||
1155 | |||
1156 | /* Round 3 */ | ||
1157 | movl 24(%ebp), %eax | ||
1158 | xorl %ebx, %ebx | ||
1159 | movl 28(%ebp), %edx | ||
1160 | xorl %esi, %eax | ||
1161 | xorl %esi, %edx | ||
1162 | andl $0xfcfcfcfc, %eax | ||
1163 | andl $0xcfcfcfcf, %edx | ||
1164 | movb %al, %bl | ||
1165 | movb %ah, %cl | ||
1166 | rorl $4, %edx | ||
1167 | movl des_SPtrans(%ebx),%ebp | ||
1168 | movb %dl, %bl | ||
1169 | xorl %ebp, %edi | ||
1170 | movl 0x200+des_SPtrans(%ecx),%ebp | ||
1171 | xorl %ebp, %edi | ||
1172 | movb %dh, %cl | ||
1173 | shrl $16, %eax | ||
1174 | movl 0x100+des_SPtrans(%ebx),%ebp | ||
1175 | xorl %ebp, %edi | ||
1176 | movb %ah, %bl | ||
1177 | shrl $16, %edx | ||
1178 | movl 0x300+des_SPtrans(%ecx),%ebp | ||
1179 | xorl %ebp, %edi | ||
1180 | movl 24(%esp), %ebp | ||
1181 | movb %dh, %cl | ||
1182 | andl $0xff, %eax | ||
1183 | andl $0xff, %edx | ||
1184 | movl 0x600+des_SPtrans(%ebx),%ebx | ||
1185 | xorl %ebx, %edi | ||
1186 | movl 0x700+des_SPtrans(%ecx),%ebx | ||
1187 | xorl %ebx, %edi | ||
1188 | movl 0x400+des_SPtrans(%eax),%ebx | ||
1189 | xorl %ebx, %edi | ||
1190 | movl 0x500+des_SPtrans(%edx),%ebx | ||
1191 | xorl %ebx, %edi | ||
1192 | |||
1193 | /* Round 2 */ | ||
1194 | movl 16(%ebp), %eax | ||
1195 | xorl %ebx, %ebx | ||
1196 | movl 20(%ebp), %edx | ||
1197 | xorl %edi, %eax | ||
1198 | xorl %edi, %edx | ||
1199 | andl $0xfcfcfcfc, %eax | ||
1200 | andl $0xcfcfcfcf, %edx | ||
1201 | movb %al, %bl | ||
1202 | movb %ah, %cl | ||
1203 | rorl $4, %edx | ||
1204 | movl des_SPtrans(%ebx),%ebp | ||
1205 | movb %dl, %bl | ||
1206 | xorl %ebp, %esi | ||
1207 | movl 0x200+des_SPtrans(%ecx),%ebp | ||
1208 | xorl %ebp, %esi | ||
1209 | movb %dh, %cl | ||
1210 | shrl $16, %eax | ||
1211 | movl 0x100+des_SPtrans(%ebx),%ebp | ||
1212 | xorl %ebp, %esi | ||
1213 | movb %ah, %bl | ||
1214 | shrl $16, %edx | ||
1215 | movl 0x300+des_SPtrans(%ecx),%ebp | ||
1216 | xorl %ebp, %esi | ||
1217 | movl 24(%esp), %ebp | ||
1218 | movb %dh, %cl | ||
1219 | andl $0xff, %eax | ||
1220 | andl $0xff, %edx | ||
1221 | movl 0x600+des_SPtrans(%ebx),%ebx | ||
1222 | xorl %ebx, %esi | ||
1223 | movl 0x700+des_SPtrans(%ecx),%ebx | ||
1224 | xorl %ebx, %esi | ||
1225 | movl 0x400+des_SPtrans(%eax),%ebx | ||
1226 | xorl %ebx, %esi | ||
1227 | movl 0x500+des_SPtrans(%edx),%ebx | ||
1228 | xorl %ebx, %esi | ||
1229 | |||
1230 | /* Round 1 */ | ||
1231 | movl 8(%ebp), %eax | ||
1232 | xorl %ebx, %ebx | ||
1233 | movl 12(%ebp), %edx | ||
1234 | xorl %esi, %eax | ||
1235 | xorl %esi, %edx | ||
1236 | andl $0xfcfcfcfc, %eax | ||
1237 | andl $0xcfcfcfcf, %edx | ||
1238 | movb %al, %bl | ||
1239 | movb %ah, %cl | ||
1240 | rorl $4, %edx | ||
1241 | movl des_SPtrans(%ebx),%ebp | ||
1242 | movb %dl, %bl | ||
1243 | xorl %ebp, %edi | ||
1244 | movl 0x200+des_SPtrans(%ecx),%ebp | ||
1245 | xorl %ebp, %edi | ||
1246 | movb %dh, %cl | ||
1247 | shrl $16, %eax | ||
1248 | movl 0x100+des_SPtrans(%ebx),%ebp | ||
1249 | xorl %ebp, %edi | ||
1250 | movb %ah, %bl | ||
1251 | shrl $16, %edx | ||
1252 | movl 0x300+des_SPtrans(%ecx),%ebp | ||
1253 | xorl %ebp, %edi | ||
1254 | movl 24(%esp), %ebp | ||
1255 | movb %dh, %cl | ||
1256 | andl $0xff, %eax | ||
1257 | andl $0xff, %edx | ||
1258 | movl 0x600+des_SPtrans(%ebx),%ebx | ||
1259 | xorl %ebx, %edi | ||
1260 | movl 0x700+des_SPtrans(%ecx),%ebx | ||
1261 | xorl %ebx, %edi | ||
1262 | movl 0x400+des_SPtrans(%eax),%ebx | ||
1263 | xorl %ebx, %edi | ||
1264 | movl 0x500+des_SPtrans(%edx),%ebx | ||
1265 | xorl %ebx, %edi | ||
1266 | |||
1267 | /* Round 0 */ | ||
1268 | movl (%ebp), %eax | ||
1269 | xorl %ebx, %ebx | ||
1270 | movl 4(%ebp), %edx | ||
1271 | xorl %edi, %eax | ||
1272 | xorl %edi, %edx | ||
1273 | andl $0xfcfcfcfc, %eax | ||
1274 | andl $0xcfcfcfcf, %edx | ||
1275 | movb %al, %bl | ||
1276 | movb %ah, %cl | ||
1277 | rorl $4, %edx | ||
1278 | movl des_SPtrans(%ebx),%ebp | ||
1279 | movb %dl, %bl | ||
1280 | xorl %ebp, %esi | ||
1281 | movl 0x200+des_SPtrans(%ecx),%ebp | ||
1282 | xorl %ebp, %esi | ||
1283 | movb %dh, %cl | ||
1284 | shrl $16, %eax | ||
1285 | movl 0x100+des_SPtrans(%ebx),%ebp | ||
1286 | xorl %ebp, %esi | ||
1287 | movb %ah, %bl | ||
1288 | shrl $16, %edx | ||
1289 | movl 0x300+des_SPtrans(%ecx),%ebp | ||
1290 | xorl %ebp, %esi | ||
1291 | movl 24(%esp), %ebp | ||
1292 | movb %dh, %cl | ||
1293 | andl $0xff, %eax | ||
1294 | andl $0xff, %edx | ||
1295 | movl 0x600+des_SPtrans(%ebx),%ebx | ||
1296 | xorl %ebx, %esi | ||
1297 | movl 0x700+des_SPtrans(%ecx),%ebx | ||
1298 | xorl %ebx, %esi | ||
1299 | movl 0x400+des_SPtrans(%eax),%ebx | ||
1300 | xorl %ebx, %esi | ||
1301 | movl 0x500+des_SPtrans(%edx),%ebx | ||
1302 | xorl %ebx, %esi | ||
1303 | .L001end: | ||
1304 | |||
1305 | /* FP */ | ||
1306 | movl 20(%esp), %edx | ||
1307 | .byte 209 | ||
1308 | .byte 206 /* rorl $1 %esi */ | ||
1309 | movl %edi, %eax | ||
1310 | xorl %esi, %edi | ||
1311 | andl $0xaaaaaaaa, %edi | ||
1312 | xorl %edi, %eax | ||
1313 | xorl %edi, %esi | ||
1314 | |||
1315 | roll $23, %eax | ||
1316 | movl %eax, %edi | ||
1317 | xorl %esi, %eax | ||
1318 | andl $0x03fc03fc, %eax | ||
1319 | xorl %eax, %edi | ||
1320 | xorl %eax, %esi | ||
1321 | |||
1322 | roll $10, %edi | ||
1323 | movl %edi, %eax | ||
1324 | xorl %esi, %edi | ||
1325 | andl $0x33333333, %edi | ||
1326 | xorl %edi, %eax | ||
1327 | xorl %edi, %esi | ||
1328 | |||
1329 | roll $18, %esi | ||
1330 | movl %esi, %edi | ||
1331 | xorl %eax, %esi | ||
1332 | andl $0xfff0000f, %esi | ||
1333 | xorl %esi, %edi | ||
1334 | xorl %esi, %eax | ||
1335 | |||
1336 | roll $12, %edi | ||
1337 | movl %edi, %esi | ||
1338 | xorl %eax, %edi | ||
1339 | andl $0xf0f0f0f0, %edi | ||
1340 | xorl %edi, %esi | ||
1341 | xorl %edi, %eax | ||
1342 | |||
1343 | rorl $4, %eax | ||
1344 | movl %eax, (%edx) | ||
1345 | movl %esi, 4(%edx) | ||
1346 | popl %ebp | ||
1347 | popl %ebx | ||
1348 | popl %edi | ||
1349 | popl %esi | ||
1350 | ret | ||
1351 | .des_encrypt_end: | ||
1352 | SIZE(des_encrypt,.des_encrypt_end-des_encrypt) | ||
1353 | .ident "desasm.pl" | ||
1354 | .text | ||
1355 | .align ALIGN | ||
1356 | .globl des_encrypt2 | ||
1357 | TYPE(des_encrypt2,@function) | ||
1358 | des_encrypt2: | ||
1359 | pushl %esi | ||
1360 | pushl %edi | ||
1361 | |||
1362 | /* Load the 2 words */ | ||
1363 | movl 12(%esp), %eax | ||
1364 | xorl %ecx, %ecx | ||
1365 | pushl %ebx | ||
1366 | pushl %ebp | ||
1367 | movl (%eax), %esi | ||
1368 | movl 28(%esp), %ebx | ||
1369 | roll $3, %esi | ||
1370 | movl 4(%eax), %edi | ||
1371 | roll $3, %edi | ||
1372 | movl 24(%esp), %ebp | ||
1373 | cmpl $0, %ebx | ||
1374 | je .L002start_decrypt | ||
1375 | |||
1376 | /* Round 0 */ | ||
1377 | movl (%ebp), %eax | ||
1378 | xorl %ebx, %ebx | ||
1379 | movl 4(%ebp), %edx | ||
1380 | xorl %esi, %eax | ||
1381 | xorl %esi, %edx | ||
1382 | andl $0xfcfcfcfc, %eax | ||
1383 | andl $0xcfcfcfcf, %edx | ||
1384 | movb %al, %bl | ||
1385 | movb %ah, %cl | ||
1386 | rorl $4, %edx | ||
1387 | movl des_SPtrans(%ebx),%ebp | ||
1388 | movb %dl, %bl | ||
1389 | xorl %ebp, %edi | ||
1390 | movl 0x200+des_SPtrans(%ecx),%ebp | ||
1391 | xorl %ebp, %edi | ||
1392 | movb %dh, %cl | ||
1393 | shrl $16, %eax | ||
1394 | movl 0x100+des_SPtrans(%ebx),%ebp | ||
1395 | xorl %ebp, %edi | ||
1396 | movb %ah, %bl | ||
1397 | shrl $16, %edx | ||
1398 | movl 0x300+des_SPtrans(%ecx),%ebp | ||
1399 | xorl %ebp, %edi | ||
1400 | movl 24(%esp), %ebp | ||
1401 | movb %dh, %cl | ||
1402 | andl $0xff, %eax | ||
1403 | andl $0xff, %edx | ||
1404 | movl 0x600+des_SPtrans(%ebx),%ebx | ||
1405 | xorl %ebx, %edi | ||
1406 | movl 0x700+des_SPtrans(%ecx),%ebx | ||
1407 | xorl %ebx, %edi | ||
1408 | movl 0x400+des_SPtrans(%eax),%ebx | ||
1409 | xorl %ebx, %edi | ||
1410 | movl 0x500+des_SPtrans(%edx),%ebx | ||
1411 | xorl %ebx, %edi | ||
1412 | |||
1413 | /* Round 1 */ | ||
1414 | movl 8(%ebp), %eax | ||
1415 | xorl %ebx, %ebx | ||
1416 | movl 12(%ebp), %edx | ||
1417 | xorl %edi, %eax | ||
1418 | xorl %edi, %edx | ||
1419 | andl $0xfcfcfcfc, %eax | ||
1420 | andl $0xcfcfcfcf, %edx | ||
1421 | movb %al, %bl | ||
1422 | movb %ah, %cl | ||
1423 | rorl $4, %edx | ||
1424 | movl des_SPtrans(%ebx),%ebp | ||
1425 | movb %dl, %bl | ||
1426 | xorl %ebp, %esi | ||
1427 | movl 0x200+des_SPtrans(%ecx),%ebp | ||
1428 | xorl %ebp, %esi | ||
1429 | movb %dh, %cl | ||
1430 | shrl $16, %eax | ||
1431 | movl 0x100+des_SPtrans(%ebx),%ebp | ||
1432 | xorl %ebp, %esi | ||
1433 | movb %ah, %bl | ||
1434 | shrl $16, %edx | ||
1435 | movl 0x300+des_SPtrans(%ecx),%ebp | ||
1436 | xorl %ebp, %esi | ||
1437 | movl 24(%esp), %ebp | ||
1438 | movb %dh, %cl | ||
1439 | andl $0xff, %eax | ||
1440 | andl $0xff, %edx | ||
1441 | movl 0x600+des_SPtrans(%ebx),%ebx | ||
1442 | xorl %ebx, %esi | ||
1443 | movl 0x700+des_SPtrans(%ecx),%ebx | ||
1444 | xorl %ebx, %esi | ||
1445 | movl 0x400+des_SPtrans(%eax),%ebx | ||
1446 | xorl %ebx, %esi | ||
1447 | movl 0x500+des_SPtrans(%edx),%ebx | ||
1448 | xorl %ebx, %esi | ||
1449 | |||
1450 | /* Round 2 */ | ||
1451 | movl 16(%ebp), %eax | ||
1452 | xorl %ebx, %ebx | ||
1453 | movl 20(%ebp), %edx | ||
1454 | xorl %esi, %eax | ||
1455 | xorl %esi, %edx | ||
1456 | andl $0xfcfcfcfc, %eax | ||
1457 | andl $0xcfcfcfcf, %edx | ||
1458 | movb %al, %bl | ||
1459 | movb %ah, %cl | ||
1460 | rorl $4, %edx | ||
1461 | movl des_SPtrans(%ebx),%ebp | ||
1462 | movb %dl, %bl | ||
1463 | xorl %ebp, %edi | ||
1464 | movl 0x200+des_SPtrans(%ecx),%ebp | ||
1465 | xorl %ebp, %edi | ||
1466 | movb %dh, %cl | ||
1467 | shrl $16, %eax | ||
1468 | movl 0x100+des_SPtrans(%ebx),%ebp | ||
1469 | xorl %ebp, %edi | ||
1470 | movb %ah, %bl | ||
1471 | shrl $16, %edx | ||
1472 | movl 0x300+des_SPtrans(%ecx),%ebp | ||
1473 | xorl %ebp, %edi | ||
1474 | movl 24(%esp), %ebp | ||
1475 | movb %dh, %cl | ||
1476 | andl $0xff, %eax | ||
1477 | andl $0xff, %edx | ||
1478 | movl 0x600+des_SPtrans(%ebx),%ebx | ||
1479 | xorl %ebx, %edi | ||
1480 | movl 0x700+des_SPtrans(%ecx),%ebx | ||
1481 | xorl %ebx, %edi | ||
1482 | movl 0x400+des_SPtrans(%eax),%ebx | ||
1483 | xorl %ebx, %edi | ||
1484 | movl 0x500+des_SPtrans(%edx),%ebx | ||
1485 | xorl %ebx, %edi | ||
1486 | |||
1487 | /* Round 3 */ | ||
1488 | movl 24(%ebp), %eax | ||
1489 | xorl %ebx, %ebx | ||
1490 | movl 28(%ebp), %edx | ||
1491 | xorl %edi, %eax | ||
1492 | xorl %edi, %edx | ||
1493 | andl $0xfcfcfcfc, %eax | ||
1494 | andl $0xcfcfcfcf, %edx | ||
1495 | movb %al, %bl | ||
1496 | movb %ah, %cl | ||
1497 | rorl $4, %edx | ||
1498 | movl des_SPtrans(%ebx),%ebp | ||
1499 | movb %dl, %bl | ||
1500 | xorl %ebp, %esi | ||
1501 | movl 0x200+des_SPtrans(%ecx),%ebp | ||
1502 | xorl %ebp, %esi | ||
1503 | movb %dh, %cl | ||
1504 | shrl $16, %eax | ||
1505 | movl 0x100+des_SPtrans(%ebx),%ebp | ||
1506 | xorl %ebp, %esi | ||
1507 | movb %ah, %bl | ||
1508 | shrl $16, %edx | ||
1509 | movl 0x300+des_SPtrans(%ecx),%ebp | ||
1510 | xorl %ebp, %esi | ||
1511 | movl 24(%esp), %ebp | ||
1512 | movb %dh, %cl | ||
1513 | andl $0xff, %eax | ||
1514 | andl $0xff, %edx | ||
1515 | movl 0x600+des_SPtrans(%ebx),%ebx | ||
1516 | xorl %ebx, %esi | ||
1517 | movl 0x700+des_SPtrans(%ecx),%ebx | ||
1518 | xorl %ebx, %esi | ||
1519 | movl 0x400+des_SPtrans(%eax),%ebx | ||
1520 | xorl %ebx, %esi | ||
1521 | movl 0x500+des_SPtrans(%edx),%ebx | ||
1522 | xorl %ebx, %esi | ||
1523 | |||
1524 | /* Round 4 */ | ||
1525 | movl 32(%ebp), %eax | ||
1526 | xorl %ebx, %ebx | ||
1527 | movl 36(%ebp), %edx | ||
1528 | xorl %esi, %eax | ||
1529 | xorl %esi, %edx | ||
1530 | andl $0xfcfcfcfc, %eax | ||
1531 | andl $0xcfcfcfcf, %edx | ||
1532 | movb %al, %bl | ||
1533 | movb %ah, %cl | ||
1534 | rorl $4, %edx | ||
1535 | movl des_SPtrans(%ebx),%ebp | ||
1536 | movb %dl, %bl | ||
1537 | xorl %ebp, %edi | ||
1538 | movl 0x200+des_SPtrans(%ecx),%ebp | ||
1539 | xorl %ebp, %edi | ||
1540 | movb %dh, %cl | ||
1541 | shrl $16, %eax | ||
1542 | movl 0x100+des_SPtrans(%ebx),%ebp | ||
1543 | xorl %ebp, %edi | ||
1544 | movb %ah, %bl | ||
1545 | shrl $16, %edx | ||
1546 | movl 0x300+des_SPtrans(%ecx),%ebp | ||
1547 | xorl %ebp, %edi | ||
1548 | movl 24(%esp), %ebp | ||
1549 | movb %dh, %cl | ||
1550 | andl $0xff, %eax | ||
1551 | andl $0xff, %edx | ||
1552 | movl 0x600+des_SPtrans(%ebx),%ebx | ||
1553 | xorl %ebx, %edi | ||
1554 | movl 0x700+des_SPtrans(%ecx),%ebx | ||
1555 | xorl %ebx, %edi | ||
1556 | movl 0x400+des_SPtrans(%eax),%ebx | ||
1557 | xorl %ebx, %edi | ||
1558 | movl 0x500+des_SPtrans(%edx),%ebx | ||
1559 | xorl %ebx, %edi | ||
1560 | |||
1561 | /* Round 5 */ | ||
1562 | movl 40(%ebp), %eax | ||
1563 | xorl %ebx, %ebx | ||
1564 | movl 44(%ebp), %edx | ||
1565 | xorl %edi, %eax | ||
1566 | xorl %edi, %edx | ||
1567 | andl $0xfcfcfcfc, %eax | ||
1568 | andl $0xcfcfcfcf, %edx | ||
1569 | movb %al, %bl | ||
1570 | movb %ah, %cl | ||
1571 | rorl $4, %edx | ||
1572 | movl des_SPtrans(%ebx),%ebp | ||
1573 | movb %dl, %bl | ||
1574 | xorl %ebp, %esi | ||
1575 | movl 0x200+des_SPtrans(%ecx),%ebp | ||
1576 | xorl %ebp, %esi | ||
1577 | movb %dh, %cl | ||
1578 | shrl $16, %eax | ||
1579 | movl 0x100+des_SPtrans(%ebx),%ebp | ||
1580 | xorl %ebp, %esi | ||
1581 | movb %ah, %bl | ||
1582 | shrl $16, %edx | ||
1583 | movl 0x300+des_SPtrans(%ecx),%ebp | ||
1584 | xorl %ebp, %esi | ||
1585 | movl 24(%esp), %ebp | ||
1586 | movb %dh, %cl | ||
1587 | andl $0xff, %eax | ||
1588 | andl $0xff, %edx | ||
1589 | movl 0x600+des_SPtrans(%ebx),%ebx | ||
1590 | xorl %ebx, %esi | ||
1591 | movl 0x700+des_SPtrans(%ecx),%ebx | ||
1592 | xorl %ebx, %esi | ||
1593 | movl 0x400+des_SPtrans(%eax),%ebx | ||
1594 | xorl %ebx, %esi | ||
1595 | movl 0x500+des_SPtrans(%edx),%ebx | ||
1596 | xorl %ebx, %esi | ||
1597 | |||
1598 | /* Round 6 */ | ||
1599 | movl 48(%ebp), %eax | ||
1600 | xorl %ebx, %ebx | ||
1601 | movl 52(%ebp), %edx | ||
1602 | xorl %esi, %eax | ||
1603 | xorl %esi, %edx | ||
1604 | andl $0xfcfcfcfc, %eax | ||
1605 | andl $0xcfcfcfcf, %edx | ||
1606 | movb %al, %bl | ||
1607 | movb %ah, %cl | ||
1608 | rorl $4, %edx | ||
1609 | movl des_SPtrans(%ebx),%ebp | ||
1610 | movb %dl, %bl | ||
1611 | xorl %ebp, %edi | ||
1612 | movl 0x200+des_SPtrans(%ecx),%ebp | ||
1613 | xorl %ebp, %edi | ||
1614 | movb %dh, %cl | ||
1615 | shrl $16, %eax | ||
1616 | movl 0x100+des_SPtrans(%ebx),%ebp | ||
1617 | xorl %ebp, %edi | ||
1618 | movb %ah, %bl | ||
1619 | shrl $16, %edx | ||
1620 | movl 0x300+des_SPtrans(%ecx),%ebp | ||
1621 | xorl %ebp, %edi | ||
1622 | movl 24(%esp), %ebp | ||
1623 | movb %dh, %cl | ||
1624 | andl $0xff, %eax | ||
1625 | andl $0xff, %edx | ||
1626 | movl 0x600+des_SPtrans(%ebx),%ebx | ||
1627 | xorl %ebx, %edi | ||
1628 | movl 0x700+des_SPtrans(%ecx),%ebx | ||
1629 | xorl %ebx, %edi | ||
1630 | movl 0x400+des_SPtrans(%eax),%ebx | ||
1631 | xorl %ebx, %edi | ||
1632 | movl 0x500+des_SPtrans(%edx),%ebx | ||
1633 | xorl %ebx, %edi | ||
1634 | |||
1635 | /* Round 7 */ | ||
1636 | movl 56(%ebp), %eax | ||
1637 | xorl %ebx, %ebx | ||
1638 | movl 60(%ebp), %edx | ||
1639 | xorl %edi, %eax | ||
1640 | xorl %edi, %edx | ||
1641 | andl $0xfcfcfcfc, %eax | ||
1642 | andl $0xcfcfcfcf, %edx | ||
1643 | movb %al, %bl | ||
1644 | movb %ah, %cl | ||
1645 | rorl $4, %edx | ||
1646 | movl des_SPtrans(%ebx),%ebp | ||
1647 | movb %dl, %bl | ||
1648 | xorl %ebp, %esi | ||
1649 | movl 0x200+des_SPtrans(%ecx),%ebp | ||
1650 | xorl %ebp, %esi | ||
1651 | movb %dh, %cl | ||
1652 | shrl $16, %eax | ||
1653 | movl 0x100+des_SPtrans(%ebx),%ebp | ||
1654 | xorl %ebp, %esi | ||
1655 | movb %ah, %bl | ||
1656 | shrl $16, %edx | ||
1657 | movl 0x300+des_SPtrans(%ecx),%ebp | ||
1658 | xorl %ebp, %esi | ||
1659 | movl 24(%esp), %ebp | ||
1660 | movb %dh, %cl | ||
1661 | andl $0xff, %eax | ||
1662 | andl $0xff, %edx | ||
1663 | movl 0x600+des_SPtrans(%ebx),%ebx | ||
1664 | xorl %ebx, %esi | ||
1665 | movl 0x700+des_SPtrans(%ecx),%ebx | ||
1666 | xorl %ebx, %esi | ||
1667 | movl 0x400+des_SPtrans(%eax),%ebx | ||
1668 | xorl %ebx, %esi | ||
1669 | movl 0x500+des_SPtrans(%edx),%ebx | ||
1670 | xorl %ebx, %esi | ||
1671 | |||
1672 | /* Round 8 */ | ||
1673 | movl 64(%ebp), %eax | ||
1674 | xorl %ebx, %ebx | ||
1675 | movl 68(%ebp), %edx | ||
1676 | xorl %esi, %eax | ||
1677 | xorl %esi, %edx | ||
1678 | andl $0xfcfcfcfc, %eax | ||
1679 | andl $0xcfcfcfcf, %edx | ||
1680 | movb %al, %bl | ||
1681 | movb %ah, %cl | ||
1682 | rorl $4, %edx | ||
1683 | movl des_SPtrans(%ebx),%ebp | ||
1684 | movb %dl, %bl | ||
1685 | xorl %ebp, %edi | ||
1686 | movl 0x200+des_SPtrans(%ecx),%ebp | ||
1687 | xorl %ebp, %edi | ||
1688 | movb %dh, %cl | ||
1689 | shrl $16, %eax | ||
1690 | movl 0x100+des_SPtrans(%ebx),%ebp | ||
1691 | xorl %ebp, %edi | ||
1692 | movb %ah, %bl | ||
1693 | shrl $16, %edx | ||
1694 | movl 0x300+des_SPtrans(%ecx),%ebp | ||
1695 | xorl %ebp, %edi | ||
1696 | movl 24(%esp), %ebp | ||
1697 | movb %dh, %cl | ||
1698 | andl $0xff, %eax | ||
1699 | andl $0xff, %edx | ||
1700 | movl 0x600+des_SPtrans(%ebx),%ebx | ||
1701 | xorl %ebx, %edi | ||
1702 | movl 0x700+des_SPtrans(%ecx),%ebx | ||
1703 | xorl %ebx, %edi | ||
1704 | movl 0x400+des_SPtrans(%eax),%ebx | ||
1705 | xorl %ebx, %edi | ||
1706 | movl 0x500+des_SPtrans(%edx),%ebx | ||
1707 | xorl %ebx, %edi | ||
1708 | |||
1709 | /* Round 9 */ | ||
1710 | movl 72(%ebp), %eax | ||
1711 | xorl %ebx, %ebx | ||
1712 | movl 76(%ebp), %edx | ||
1713 | xorl %edi, %eax | ||
1714 | xorl %edi, %edx | ||
1715 | andl $0xfcfcfcfc, %eax | ||
1716 | andl $0xcfcfcfcf, %edx | ||
1717 | movb %al, %bl | ||
1718 | movb %ah, %cl | ||
1719 | rorl $4, %edx | ||
1720 | movl des_SPtrans(%ebx),%ebp | ||
1721 | movb %dl, %bl | ||
1722 | xorl %ebp, %esi | ||
1723 | movl 0x200+des_SPtrans(%ecx),%ebp | ||
1724 | xorl %ebp, %esi | ||
1725 | movb %dh, %cl | ||
1726 | shrl $16, %eax | ||
1727 | movl 0x100+des_SPtrans(%ebx),%ebp | ||
1728 | xorl %ebp, %esi | ||
1729 | movb %ah, %bl | ||
1730 | shrl $16, %edx | ||
1731 | movl 0x300+des_SPtrans(%ecx),%ebp | ||
1732 | xorl %ebp, %esi | ||
1733 | movl 24(%esp), %ebp | ||
1734 | movb %dh, %cl | ||
1735 | andl $0xff, %eax | ||
1736 | andl $0xff, %edx | ||
1737 | movl 0x600+des_SPtrans(%ebx),%ebx | ||
1738 | xorl %ebx, %esi | ||
1739 | movl 0x700+des_SPtrans(%ecx),%ebx | ||
1740 | xorl %ebx, %esi | ||
1741 | movl 0x400+des_SPtrans(%eax),%ebx | ||
1742 | xorl %ebx, %esi | ||
1743 | movl 0x500+des_SPtrans(%edx),%ebx | ||
1744 | xorl %ebx, %esi | ||
1745 | |||
1746 | /* Round 10 */ | ||
1747 | movl 80(%ebp), %eax | ||
1748 | xorl %ebx, %ebx | ||
1749 | movl 84(%ebp), %edx | ||
1750 | xorl %esi, %eax | ||
1751 | xorl %esi, %edx | ||
1752 | andl $0xfcfcfcfc, %eax | ||
1753 | andl $0xcfcfcfcf, %edx | ||
1754 | movb %al, %bl | ||
1755 | movb %ah, %cl | ||
1756 | rorl $4, %edx | ||
1757 | movl des_SPtrans(%ebx),%ebp | ||
1758 | movb %dl, %bl | ||
1759 | xorl %ebp, %edi | ||
1760 | movl 0x200+des_SPtrans(%ecx),%ebp | ||
1761 | xorl %ebp, %edi | ||
1762 | movb %dh, %cl | ||
1763 | shrl $16, %eax | ||
1764 | movl 0x100+des_SPtrans(%ebx),%ebp | ||
1765 | xorl %ebp, %edi | ||
1766 | movb %ah, %bl | ||
1767 | shrl $16, %edx | ||
1768 | movl 0x300+des_SPtrans(%ecx),%ebp | ||
1769 | xorl %ebp, %edi | ||
1770 | movl 24(%esp), %ebp | ||
1771 | movb %dh, %cl | ||
1772 | andl $0xff, %eax | ||
1773 | andl $0xff, %edx | ||
1774 | movl 0x600+des_SPtrans(%ebx),%ebx | ||
1775 | xorl %ebx, %edi | ||
1776 | movl 0x700+des_SPtrans(%ecx),%ebx | ||
1777 | xorl %ebx, %edi | ||
1778 | movl 0x400+des_SPtrans(%eax),%ebx | ||
1779 | xorl %ebx, %edi | ||
1780 | movl 0x500+des_SPtrans(%edx),%ebx | ||
1781 | xorl %ebx, %edi | ||
1782 | |||
1783 | /* Round 11 */ | ||
1784 | movl 88(%ebp), %eax | ||
1785 | xorl %ebx, %ebx | ||
1786 | movl 92(%ebp), %edx | ||
1787 | xorl %edi, %eax | ||
1788 | xorl %edi, %edx | ||
1789 | andl $0xfcfcfcfc, %eax | ||
1790 | andl $0xcfcfcfcf, %edx | ||
1791 | movb %al, %bl | ||
1792 | movb %ah, %cl | ||
1793 | rorl $4, %edx | ||
1794 | movl des_SPtrans(%ebx),%ebp | ||
1795 | movb %dl, %bl | ||
1796 | xorl %ebp, %esi | ||
1797 | movl 0x200+des_SPtrans(%ecx),%ebp | ||
1798 | xorl %ebp, %esi | ||
1799 | movb %dh, %cl | ||
1800 | shrl $16, %eax | ||
1801 | movl 0x100+des_SPtrans(%ebx),%ebp | ||
1802 | xorl %ebp, %esi | ||
1803 | movb %ah, %bl | ||
1804 | shrl $16, %edx | ||
1805 | movl 0x300+des_SPtrans(%ecx),%ebp | ||
1806 | xorl %ebp, %esi | ||
1807 | movl 24(%esp), %ebp | ||
1808 | movb %dh, %cl | ||
1809 | andl $0xff, %eax | ||
1810 | andl $0xff, %edx | ||
1811 | movl 0x600+des_SPtrans(%ebx),%ebx | ||
1812 | xorl %ebx, %esi | ||
1813 | movl 0x700+des_SPtrans(%ecx),%ebx | ||
1814 | xorl %ebx, %esi | ||
1815 | movl 0x400+des_SPtrans(%eax),%ebx | ||
1816 | xorl %ebx, %esi | ||
1817 | movl 0x500+des_SPtrans(%edx),%ebx | ||
1818 | xorl %ebx, %esi | ||
1819 | |||
1820 | /* Round 12 */ | ||
1821 | movl 96(%ebp), %eax | ||
1822 | xorl %ebx, %ebx | ||
1823 | movl 100(%ebp), %edx | ||
1824 | xorl %esi, %eax | ||
1825 | xorl %esi, %edx | ||
1826 | andl $0xfcfcfcfc, %eax | ||
1827 | andl $0xcfcfcfcf, %edx | ||
1828 | movb %al, %bl | ||
1829 | movb %ah, %cl | ||
1830 | rorl $4, %edx | ||
1831 | movl des_SPtrans(%ebx),%ebp | ||
1832 | movb %dl, %bl | ||
1833 | xorl %ebp, %edi | ||
1834 | movl 0x200+des_SPtrans(%ecx),%ebp | ||
1835 | xorl %ebp, %edi | ||
1836 | movb %dh, %cl | ||
1837 | shrl $16, %eax | ||
1838 | movl 0x100+des_SPtrans(%ebx),%ebp | ||
1839 | xorl %ebp, %edi | ||
1840 | movb %ah, %bl | ||
1841 | shrl $16, %edx | ||
1842 | movl 0x300+des_SPtrans(%ecx),%ebp | ||
1843 | xorl %ebp, %edi | ||
1844 | movl 24(%esp), %ebp | ||
1845 | movb %dh, %cl | ||
1846 | andl $0xff, %eax | ||
1847 | andl $0xff, %edx | ||
1848 | movl 0x600+des_SPtrans(%ebx),%ebx | ||
1849 | xorl %ebx, %edi | ||
1850 | movl 0x700+des_SPtrans(%ecx),%ebx | ||
1851 | xorl %ebx, %edi | ||
1852 | movl 0x400+des_SPtrans(%eax),%ebx | ||
1853 | xorl %ebx, %edi | ||
1854 | movl 0x500+des_SPtrans(%edx),%ebx | ||
1855 | xorl %ebx, %edi | ||
1856 | |||
1857 | /* Round 13 */ | ||
1858 | movl 104(%ebp), %eax | ||
1859 | xorl %ebx, %ebx | ||
1860 | movl 108(%ebp), %edx | ||
1861 | xorl %edi, %eax | ||
1862 | xorl %edi, %edx | ||
1863 | andl $0xfcfcfcfc, %eax | ||
1864 | andl $0xcfcfcfcf, %edx | ||
1865 | movb %al, %bl | ||
1866 | movb %ah, %cl | ||
1867 | rorl $4, %edx | ||
1868 | movl des_SPtrans(%ebx),%ebp | ||
1869 | movb %dl, %bl | ||
1870 | xorl %ebp, %esi | ||
1871 | movl 0x200+des_SPtrans(%ecx),%ebp | ||
1872 | xorl %ebp, %esi | ||
1873 | movb %dh, %cl | ||
1874 | shrl $16, %eax | ||
1875 | movl 0x100+des_SPtrans(%ebx),%ebp | ||
1876 | xorl %ebp, %esi | ||
1877 | movb %ah, %bl | ||
1878 | shrl $16, %edx | ||
1879 | movl 0x300+des_SPtrans(%ecx),%ebp | ||
1880 | xorl %ebp, %esi | ||
1881 | movl 24(%esp), %ebp | ||
1882 | movb %dh, %cl | ||
1883 | andl $0xff, %eax | ||
1884 | andl $0xff, %edx | ||
1885 | movl 0x600+des_SPtrans(%ebx),%ebx | ||
1886 | xorl %ebx, %esi | ||
1887 | movl 0x700+des_SPtrans(%ecx),%ebx | ||
1888 | xorl %ebx, %esi | ||
1889 | movl 0x400+des_SPtrans(%eax),%ebx | ||
1890 | xorl %ebx, %esi | ||
1891 | movl 0x500+des_SPtrans(%edx),%ebx | ||
1892 | xorl %ebx, %esi | ||
1893 | |||
1894 | /* Round 14 */ | ||
1895 | movl 112(%ebp), %eax | ||
1896 | xorl %ebx, %ebx | ||
1897 | movl 116(%ebp), %edx | ||
1898 | xorl %esi, %eax | ||
1899 | xorl %esi, %edx | ||
1900 | andl $0xfcfcfcfc, %eax | ||
1901 | andl $0xcfcfcfcf, %edx | ||
1902 | movb %al, %bl | ||
1903 | movb %ah, %cl | ||
1904 | rorl $4, %edx | ||
1905 | movl des_SPtrans(%ebx),%ebp | ||
1906 | movb %dl, %bl | ||
1907 | xorl %ebp, %edi | ||
1908 | movl 0x200+des_SPtrans(%ecx),%ebp | ||
1909 | xorl %ebp, %edi | ||
1910 | movb %dh, %cl | ||
1911 | shrl $16, %eax | ||
1912 | movl 0x100+des_SPtrans(%ebx),%ebp | ||
1913 | xorl %ebp, %edi | ||
1914 | movb %ah, %bl | ||
1915 | shrl $16, %edx | ||
1916 | movl 0x300+des_SPtrans(%ecx),%ebp | ||
1917 | xorl %ebp, %edi | ||
1918 | movl 24(%esp), %ebp | ||
1919 | movb %dh, %cl | ||
1920 | andl $0xff, %eax | ||
1921 | andl $0xff, %edx | ||
1922 | movl 0x600+des_SPtrans(%ebx),%ebx | ||
1923 | xorl %ebx, %edi | ||
1924 | movl 0x700+des_SPtrans(%ecx),%ebx | ||
1925 | xorl %ebx, %edi | ||
1926 | movl 0x400+des_SPtrans(%eax),%ebx | ||
1927 | xorl %ebx, %edi | ||
1928 | movl 0x500+des_SPtrans(%edx),%ebx | ||
1929 | xorl %ebx, %edi | ||
1930 | |||
1931 | /* Round 15 */ | ||
1932 | movl 120(%ebp), %eax | ||
1933 | xorl %ebx, %ebx | ||
1934 | movl 124(%ebp), %edx | ||
1935 | xorl %edi, %eax | ||
1936 | xorl %edi, %edx | ||
1937 | andl $0xfcfcfcfc, %eax | ||
1938 | andl $0xcfcfcfcf, %edx | ||
1939 | movb %al, %bl | ||
1940 | movb %ah, %cl | ||
1941 | rorl $4, %edx | ||
1942 | movl des_SPtrans(%ebx),%ebp | ||
1943 | movb %dl, %bl | ||
1944 | xorl %ebp, %esi | ||
1945 | movl 0x200+des_SPtrans(%ecx),%ebp | ||
1946 | xorl %ebp, %esi | ||
1947 | movb %dh, %cl | ||
1948 | shrl $16, %eax | ||
1949 | movl 0x100+des_SPtrans(%ebx),%ebp | ||
1950 | xorl %ebp, %esi | ||
1951 | movb %ah, %bl | ||
1952 | shrl $16, %edx | ||
1953 | movl 0x300+des_SPtrans(%ecx),%ebp | ||
1954 | xorl %ebp, %esi | ||
1955 | movl 24(%esp), %ebp | ||
1956 | movb %dh, %cl | ||
1957 | andl $0xff, %eax | ||
1958 | andl $0xff, %edx | ||
1959 | movl 0x600+des_SPtrans(%ebx),%ebx | ||
1960 | xorl %ebx, %esi | ||
1961 | movl 0x700+des_SPtrans(%ecx),%ebx | ||
1962 | xorl %ebx, %esi | ||
1963 | movl 0x400+des_SPtrans(%eax),%ebx | ||
1964 | xorl %ebx, %esi | ||
1965 | movl 0x500+des_SPtrans(%edx),%ebx | ||
1966 | xorl %ebx, %esi | ||
1967 | jmp .L003end | ||
1968 | .L002start_decrypt: | ||
1969 | |||
1970 | /* Round 15 */ | ||
1971 | movl 120(%ebp), %eax | ||
1972 | xorl %ebx, %ebx | ||
1973 | movl 124(%ebp), %edx | ||
1974 | xorl %esi, %eax | ||
1975 | xorl %esi, %edx | ||
1976 | andl $0xfcfcfcfc, %eax | ||
1977 | andl $0xcfcfcfcf, %edx | ||
1978 | movb %al, %bl | ||
1979 | movb %ah, %cl | ||
1980 | rorl $4, %edx | ||
1981 | movl des_SPtrans(%ebx),%ebp | ||
1982 | movb %dl, %bl | ||
1983 | xorl %ebp, %edi | ||
1984 | movl 0x200+des_SPtrans(%ecx),%ebp | ||
1985 | xorl %ebp, %edi | ||
1986 | movb %dh, %cl | ||
1987 | shrl $16, %eax | ||
1988 | movl 0x100+des_SPtrans(%ebx),%ebp | ||
1989 | xorl %ebp, %edi | ||
1990 | movb %ah, %bl | ||
1991 | shrl $16, %edx | ||
1992 | movl 0x300+des_SPtrans(%ecx),%ebp | ||
1993 | xorl %ebp, %edi | ||
1994 | movl 24(%esp), %ebp | ||
1995 | movb %dh, %cl | ||
1996 | andl $0xff, %eax | ||
1997 | andl $0xff, %edx | ||
1998 | movl 0x600+des_SPtrans(%ebx),%ebx | ||
1999 | xorl %ebx, %edi | ||
2000 | movl 0x700+des_SPtrans(%ecx),%ebx | ||
2001 | xorl %ebx, %edi | ||
2002 | movl 0x400+des_SPtrans(%eax),%ebx | ||
2003 | xorl %ebx, %edi | ||
2004 | movl 0x500+des_SPtrans(%edx),%ebx | ||
2005 | xorl %ebx, %edi | ||
2006 | |||
2007 | /* Round 14 */ | ||
2008 | movl 112(%ebp), %eax | ||
2009 | xorl %ebx, %ebx | ||
2010 | movl 116(%ebp), %edx | ||
2011 | xorl %edi, %eax | ||
2012 | xorl %edi, %edx | ||
2013 | andl $0xfcfcfcfc, %eax | ||
2014 | andl $0xcfcfcfcf, %edx | ||
2015 | movb %al, %bl | ||
2016 | movb %ah, %cl | ||
2017 | rorl $4, %edx | ||
2018 | movl des_SPtrans(%ebx),%ebp | ||
2019 | movb %dl, %bl | ||
2020 | xorl %ebp, %esi | ||
2021 | movl 0x200+des_SPtrans(%ecx),%ebp | ||
2022 | xorl %ebp, %esi | ||
2023 | movb %dh, %cl | ||
2024 | shrl $16, %eax | ||
2025 | movl 0x100+des_SPtrans(%ebx),%ebp | ||
2026 | xorl %ebp, %esi | ||
2027 | movb %ah, %bl | ||
2028 | shrl $16, %edx | ||
2029 | movl 0x300+des_SPtrans(%ecx),%ebp | ||
2030 | xorl %ebp, %esi | ||
2031 | movl 24(%esp), %ebp | ||
2032 | movb %dh, %cl | ||
2033 | andl $0xff, %eax | ||
2034 | andl $0xff, %edx | ||
2035 | movl 0x600+des_SPtrans(%ebx),%ebx | ||
2036 | xorl %ebx, %esi | ||
2037 | movl 0x700+des_SPtrans(%ecx),%ebx | ||
2038 | xorl %ebx, %esi | ||
2039 | movl 0x400+des_SPtrans(%eax),%ebx | ||
2040 | xorl %ebx, %esi | ||
2041 | movl 0x500+des_SPtrans(%edx),%ebx | ||
2042 | xorl %ebx, %esi | ||
2043 | |||
2044 | /* Round 13 */ | ||
2045 | movl 104(%ebp), %eax | ||
2046 | xorl %ebx, %ebx | ||
2047 | movl 108(%ebp), %edx | ||
2048 | xorl %esi, %eax | ||
2049 | xorl %esi, %edx | ||
2050 | andl $0xfcfcfcfc, %eax | ||
2051 | andl $0xcfcfcfcf, %edx | ||
2052 | movb %al, %bl | ||
2053 | movb %ah, %cl | ||
2054 | rorl $4, %edx | ||
2055 | movl des_SPtrans(%ebx),%ebp | ||
2056 | movb %dl, %bl | ||
2057 | xorl %ebp, %edi | ||
2058 | movl 0x200+des_SPtrans(%ecx),%ebp | ||
2059 | xorl %ebp, %edi | ||
2060 | movb %dh, %cl | ||
2061 | shrl $16, %eax | ||
2062 | movl 0x100+des_SPtrans(%ebx),%ebp | ||
2063 | xorl %ebp, %edi | ||
2064 | movb %ah, %bl | ||
2065 | shrl $16, %edx | ||
2066 | movl 0x300+des_SPtrans(%ecx),%ebp | ||
2067 | xorl %ebp, %edi | ||
2068 | movl 24(%esp), %ebp | ||
2069 | movb %dh, %cl | ||
2070 | andl $0xff, %eax | ||
2071 | andl $0xff, %edx | ||
2072 | movl 0x600+des_SPtrans(%ebx),%ebx | ||
2073 | xorl %ebx, %edi | ||
2074 | movl 0x700+des_SPtrans(%ecx),%ebx | ||
2075 | xorl %ebx, %edi | ||
2076 | movl 0x400+des_SPtrans(%eax),%ebx | ||
2077 | xorl %ebx, %edi | ||
2078 | movl 0x500+des_SPtrans(%edx),%ebx | ||
2079 | xorl %ebx, %edi | ||
2080 | |||
2081 | /* Round 12 */ | ||
2082 | movl 96(%ebp), %eax | ||
2083 | xorl %ebx, %ebx | ||
2084 | movl 100(%ebp), %edx | ||
2085 | xorl %edi, %eax | ||
2086 | xorl %edi, %edx | ||
2087 | andl $0xfcfcfcfc, %eax | ||
2088 | andl $0xcfcfcfcf, %edx | ||
2089 | movb %al, %bl | ||
2090 | movb %ah, %cl | ||
2091 | rorl $4, %edx | ||
2092 | movl des_SPtrans(%ebx),%ebp | ||
2093 | movb %dl, %bl | ||
2094 | xorl %ebp, %esi | ||
2095 | movl 0x200+des_SPtrans(%ecx),%ebp | ||
2096 | xorl %ebp, %esi | ||
2097 | movb %dh, %cl | ||
2098 | shrl $16, %eax | ||
2099 | movl 0x100+des_SPtrans(%ebx),%ebp | ||
2100 | xorl %ebp, %esi | ||
2101 | movb %ah, %bl | ||
2102 | shrl $16, %edx | ||
2103 | movl 0x300+des_SPtrans(%ecx),%ebp | ||
2104 | xorl %ebp, %esi | ||
2105 | movl 24(%esp), %ebp | ||
2106 | movb %dh, %cl | ||
2107 | andl $0xff, %eax | ||
2108 | andl $0xff, %edx | ||
2109 | movl 0x600+des_SPtrans(%ebx),%ebx | ||
2110 | xorl %ebx, %esi | ||
2111 | movl 0x700+des_SPtrans(%ecx),%ebx | ||
2112 | xorl %ebx, %esi | ||
2113 | movl 0x400+des_SPtrans(%eax),%ebx | ||
2114 | xorl %ebx, %esi | ||
2115 | movl 0x500+des_SPtrans(%edx),%ebx | ||
2116 | xorl %ebx, %esi | ||
2117 | |||
2118 | /* Round 11 */ | ||
2119 | movl 88(%ebp), %eax | ||
2120 | xorl %ebx, %ebx | ||
2121 | movl 92(%ebp), %edx | ||
2122 | xorl %esi, %eax | ||
2123 | xorl %esi, %edx | ||
2124 | andl $0xfcfcfcfc, %eax | ||
2125 | andl $0xcfcfcfcf, %edx | ||
2126 | movb %al, %bl | ||
2127 | movb %ah, %cl | ||
2128 | rorl $4, %edx | ||
2129 | movl des_SPtrans(%ebx),%ebp | ||
2130 | movb %dl, %bl | ||
2131 | xorl %ebp, %edi | ||
2132 | movl 0x200+des_SPtrans(%ecx),%ebp | ||
2133 | xorl %ebp, %edi | ||
2134 | movb %dh, %cl | ||
2135 | shrl $16, %eax | ||
2136 | movl 0x100+des_SPtrans(%ebx),%ebp | ||
2137 | xorl %ebp, %edi | ||
2138 | movb %ah, %bl | ||
2139 | shrl $16, %edx | ||
2140 | movl 0x300+des_SPtrans(%ecx),%ebp | ||
2141 | xorl %ebp, %edi | ||
2142 | movl 24(%esp), %ebp | ||
2143 | movb %dh, %cl | ||
2144 | andl $0xff, %eax | ||
2145 | andl $0xff, %edx | ||
2146 | movl 0x600+des_SPtrans(%ebx),%ebx | ||
2147 | xorl %ebx, %edi | ||
2148 | movl 0x700+des_SPtrans(%ecx),%ebx | ||
2149 | xorl %ebx, %edi | ||
2150 | movl 0x400+des_SPtrans(%eax),%ebx | ||
2151 | xorl %ebx, %edi | ||
2152 | movl 0x500+des_SPtrans(%edx),%ebx | ||
2153 | xorl %ebx, %edi | ||
2154 | |||
2155 | /* Round 10 */ | ||
2156 | movl 80(%ebp), %eax | ||
2157 | xorl %ebx, %ebx | ||
2158 | movl 84(%ebp), %edx | ||
2159 | xorl %edi, %eax | ||
2160 | xorl %edi, %edx | ||
2161 | andl $0xfcfcfcfc, %eax | ||
2162 | andl $0xcfcfcfcf, %edx | ||
2163 | movb %al, %bl | ||
2164 | movb %ah, %cl | ||
2165 | rorl $4, %edx | ||
2166 | movl des_SPtrans(%ebx),%ebp | ||
2167 | movb %dl, %bl | ||
2168 | xorl %ebp, %esi | ||
2169 | movl 0x200+des_SPtrans(%ecx),%ebp | ||
2170 | xorl %ebp, %esi | ||
2171 | movb %dh, %cl | ||
2172 | shrl $16, %eax | ||
2173 | movl 0x100+des_SPtrans(%ebx),%ebp | ||
2174 | xorl %ebp, %esi | ||
2175 | movb %ah, %bl | ||
2176 | shrl $16, %edx | ||
2177 | movl 0x300+des_SPtrans(%ecx),%ebp | ||
2178 | xorl %ebp, %esi | ||
2179 | movl 24(%esp), %ebp | ||
2180 | movb %dh, %cl | ||
2181 | andl $0xff, %eax | ||
2182 | andl $0xff, %edx | ||
2183 | movl 0x600+des_SPtrans(%ebx),%ebx | ||
2184 | xorl %ebx, %esi | ||
2185 | movl 0x700+des_SPtrans(%ecx),%ebx | ||
2186 | xorl %ebx, %esi | ||
2187 | movl 0x400+des_SPtrans(%eax),%ebx | ||
2188 | xorl %ebx, %esi | ||
2189 | movl 0x500+des_SPtrans(%edx),%ebx | ||
2190 | xorl %ebx, %esi | ||
2191 | |||
2192 | /* Round 9 */ | ||
2193 | movl 72(%ebp), %eax | ||
2194 | xorl %ebx, %ebx | ||
2195 | movl 76(%ebp), %edx | ||
2196 | xorl %esi, %eax | ||
2197 | xorl %esi, %edx | ||
2198 | andl $0xfcfcfcfc, %eax | ||
2199 | andl $0xcfcfcfcf, %edx | ||
2200 | movb %al, %bl | ||
2201 | movb %ah, %cl | ||
2202 | rorl $4, %edx | ||
2203 | movl des_SPtrans(%ebx),%ebp | ||
2204 | movb %dl, %bl | ||
2205 | xorl %ebp, %edi | ||
2206 | movl 0x200+des_SPtrans(%ecx),%ebp | ||
2207 | xorl %ebp, %edi | ||
2208 | movb %dh, %cl | ||
2209 | shrl $16, %eax | ||
2210 | movl 0x100+des_SPtrans(%ebx),%ebp | ||
2211 | xorl %ebp, %edi | ||
2212 | movb %ah, %bl | ||
2213 | shrl $16, %edx | ||
2214 | movl 0x300+des_SPtrans(%ecx),%ebp | ||
2215 | xorl %ebp, %edi | ||
2216 | movl 24(%esp), %ebp | ||
2217 | movb %dh, %cl | ||
2218 | andl $0xff, %eax | ||
2219 | andl $0xff, %edx | ||
2220 | movl 0x600+des_SPtrans(%ebx),%ebx | ||
2221 | xorl %ebx, %edi | ||
2222 | movl 0x700+des_SPtrans(%ecx),%ebx | ||
2223 | xorl %ebx, %edi | ||
2224 | movl 0x400+des_SPtrans(%eax),%ebx | ||
2225 | xorl %ebx, %edi | ||
2226 | movl 0x500+des_SPtrans(%edx),%ebx | ||
2227 | xorl %ebx, %edi | ||
2228 | |||
2229 | /* Round 8 */ | ||
2230 | movl 64(%ebp), %eax | ||
2231 | xorl %ebx, %ebx | ||
2232 | movl 68(%ebp), %edx | ||
2233 | xorl %edi, %eax | ||
2234 | xorl %edi, %edx | ||
2235 | andl $0xfcfcfcfc, %eax | ||
2236 | andl $0xcfcfcfcf, %edx | ||
2237 | movb %al, %bl | ||
2238 | movb %ah, %cl | ||
2239 | rorl $4, %edx | ||
2240 | movl des_SPtrans(%ebx),%ebp | ||
2241 | movb %dl, %bl | ||
2242 | xorl %ebp, %esi | ||
2243 | movl 0x200+des_SPtrans(%ecx),%ebp | ||
2244 | xorl %ebp, %esi | ||
2245 | movb %dh, %cl | ||
2246 | shrl $16, %eax | ||
2247 | movl 0x100+des_SPtrans(%ebx),%ebp | ||
2248 | xorl %ebp, %esi | ||
2249 | movb %ah, %bl | ||
2250 | shrl $16, %edx | ||
2251 | movl 0x300+des_SPtrans(%ecx),%ebp | ||
2252 | xorl %ebp, %esi | ||
2253 | movl 24(%esp), %ebp | ||
2254 | movb %dh, %cl | ||
2255 | andl $0xff, %eax | ||
2256 | andl $0xff, %edx | ||
2257 | movl 0x600+des_SPtrans(%ebx),%ebx | ||
2258 | xorl %ebx, %esi | ||
2259 | movl 0x700+des_SPtrans(%ecx),%ebx | ||
2260 | xorl %ebx, %esi | ||
2261 | movl 0x400+des_SPtrans(%eax),%ebx | ||
2262 | xorl %ebx, %esi | ||
2263 | movl 0x500+des_SPtrans(%edx),%ebx | ||
2264 | xorl %ebx, %esi | ||
2265 | |||
2266 | /* Round 7 */ | ||
2267 | movl 56(%ebp), %eax | ||
2268 | xorl %ebx, %ebx | ||
2269 | movl 60(%ebp), %edx | ||
2270 | xorl %esi, %eax | ||
2271 | xorl %esi, %edx | ||
2272 | andl $0xfcfcfcfc, %eax | ||
2273 | andl $0xcfcfcfcf, %edx | ||
2274 | movb %al, %bl | ||
2275 | movb %ah, %cl | ||
2276 | rorl $4, %edx | ||
2277 | movl des_SPtrans(%ebx),%ebp | ||
2278 | movb %dl, %bl | ||
2279 | xorl %ebp, %edi | ||
2280 | movl 0x200+des_SPtrans(%ecx),%ebp | ||
2281 | xorl %ebp, %edi | ||
2282 | movb %dh, %cl | ||
2283 | shrl $16, %eax | ||
2284 | movl 0x100+des_SPtrans(%ebx),%ebp | ||
2285 | xorl %ebp, %edi | ||
2286 | movb %ah, %bl | ||
2287 | shrl $16, %edx | ||
2288 | movl 0x300+des_SPtrans(%ecx),%ebp | ||
2289 | xorl %ebp, %edi | ||
2290 | movl 24(%esp), %ebp | ||
2291 | movb %dh, %cl | ||
2292 | andl $0xff, %eax | ||
2293 | andl $0xff, %edx | ||
2294 | movl 0x600+des_SPtrans(%ebx),%ebx | ||
2295 | xorl %ebx, %edi | ||
2296 | movl 0x700+des_SPtrans(%ecx),%ebx | ||
2297 | xorl %ebx, %edi | ||
2298 | movl 0x400+des_SPtrans(%eax),%ebx | ||
2299 | xorl %ebx, %edi | ||
2300 | movl 0x500+des_SPtrans(%edx),%ebx | ||
2301 | xorl %ebx, %edi | ||
2302 | |||
2303 | /* Round 6 */ | ||
2304 | movl 48(%ebp), %eax | ||
2305 | xorl %ebx, %ebx | ||
2306 | movl 52(%ebp), %edx | ||
2307 | xorl %edi, %eax | ||
2308 | xorl %edi, %edx | ||
2309 | andl $0xfcfcfcfc, %eax | ||
2310 | andl $0xcfcfcfcf, %edx | ||
2311 | movb %al, %bl | ||
2312 | movb %ah, %cl | ||
2313 | rorl $4, %edx | ||
2314 | movl des_SPtrans(%ebx),%ebp | ||
2315 | movb %dl, %bl | ||
2316 | xorl %ebp, %esi | ||
2317 | movl 0x200+des_SPtrans(%ecx),%ebp | ||
2318 | xorl %ebp, %esi | ||
2319 | movb %dh, %cl | ||
2320 | shrl $16, %eax | ||
2321 | movl 0x100+des_SPtrans(%ebx),%ebp | ||
2322 | xorl %ebp, %esi | ||
2323 | movb %ah, %bl | ||
2324 | shrl $16, %edx | ||
2325 | movl 0x300+des_SPtrans(%ecx),%ebp | ||
2326 | xorl %ebp, %esi | ||
2327 | movl 24(%esp), %ebp | ||
2328 | movb %dh, %cl | ||
2329 | andl $0xff, %eax | ||
2330 | andl $0xff, %edx | ||
2331 | movl 0x600+des_SPtrans(%ebx),%ebx | ||
2332 | xorl %ebx, %esi | ||
2333 | movl 0x700+des_SPtrans(%ecx),%ebx | ||
2334 | xorl %ebx, %esi | ||
2335 | movl 0x400+des_SPtrans(%eax),%ebx | ||
2336 | xorl %ebx, %esi | ||
2337 | movl 0x500+des_SPtrans(%edx),%ebx | ||
2338 | xorl %ebx, %esi | ||
2339 | |||
2340 | /* Round 5 */ | ||
2341 | movl 40(%ebp), %eax | ||
2342 | xorl %ebx, %ebx | ||
2343 | movl 44(%ebp), %edx | ||
2344 | xorl %esi, %eax | ||
2345 | xorl %esi, %edx | ||
2346 | andl $0xfcfcfcfc, %eax | ||
2347 | andl $0xcfcfcfcf, %edx | ||
2348 | movb %al, %bl | ||
2349 | movb %ah, %cl | ||
2350 | rorl $4, %edx | ||
2351 | movl des_SPtrans(%ebx),%ebp | ||
2352 | movb %dl, %bl | ||
2353 | xorl %ebp, %edi | ||
2354 | movl 0x200+des_SPtrans(%ecx),%ebp | ||
2355 | xorl %ebp, %edi | ||
2356 | movb %dh, %cl | ||
2357 | shrl $16, %eax | ||
2358 | movl 0x100+des_SPtrans(%ebx),%ebp | ||
2359 | xorl %ebp, %edi | ||
2360 | movb %ah, %bl | ||
2361 | shrl $16, %edx | ||
2362 | movl 0x300+des_SPtrans(%ecx),%ebp | ||
2363 | xorl %ebp, %edi | ||
2364 | movl 24(%esp), %ebp | ||
2365 | movb %dh, %cl | ||
2366 | andl $0xff, %eax | ||
2367 | andl $0xff, %edx | ||
2368 | movl 0x600+des_SPtrans(%ebx),%ebx | ||
2369 | xorl %ebx, %edi | ||
2370 | movl 0x700+des_SPtrans(%ecx),%ebx | ||
2371 | xorl %ebx, %edi | ||
2372 | movl 0x400+des_SPtrans(%eax),%ebx | ||
2373 | xorl %ebx, %edi | ||
2374 | movl 0x500+des_SPtrans(%edx),%ebx | ||
2375 | xorl %ebx, %edi | ||
2376 | |||
2377 | /* Round 4 */ | ||
2378 | movl 32(%ebp), %eax | ||
2379 | xorl %ebx, %ebx | ||
2380 | movl 36(%ebp), %edx | ||
2381 | xorl %edi, %eax | ||
2382 | xorl %edi, %edx | ||
2383 | andl $0xfcfcfcfc, %eax | ||
2384 | andl $0xcfcfcfcf, %edx | ||
2385 | movb %al, %bl | ||
2386 | movb %ah, %cl | ||
2387 | rorl $4, %edx | ||
2388 | movl des_SPtrans(%ebx),%ebp | ||
2389 | movb %dl, %bl | ||
2390 | xorl %ebp, %esi | ||
2391 | movl 0x200+des_SPtrans(%ecx),%ebp | ||
2392 | xorl %ebp, %esi | ||
2393 | movb %dh, %cl | ||
2394 | shrl $16, %eax | ||
2395 | movl 0x100+des_SPtrans(%ebx),%ebp | ||
2396 | xorl %ebp, %esi | ||
2397 | movb %ah, %bl | ||
2398 | shrl $16, %edx | ||
2399 | movl 0x300+des_SPtrans(%ecx),%ebp | ||
2400 | xorl %ebp, %esi | ||
2401 | movl 24(%esp), %ebp | ||
2402 | movb %dh, %cl | ||
2403 | andl $0xff, %eax | ||
2404 | andl $0xff, %edx | ||
2405 | movl 0x600+des_SPtrans(%ebx),%ebx | ||
2406 | xorl %ebx, %esi | ||
2407 | movl 0x700+des_SPtrans(%ecx),%ebx | ||
2408 | xorl %ebx, %esi | ||
2409 | movl 0x400+des_SPtrans(%eax),%ebx | ||
2410 | xorl %ebx, %esi | ||
2411 | movl 0x500+des_SPtrans(%edx),%ebx | ||
2412 | xorl %ebx, %esi | ||
2413 | |||
2414 | /* Round 3 */ | ||
2415 | movl 24(%ebp), %eax | ||
2416 | xorl %ebx, %ebx | ||
2417 | movl 28(%ebp), %edx | ||
2418 | xorl %esi, %eax | ||
2419 | xorl %esi, %edx | ||
2420 | andl $0xfcfcfcfc, %eax | ||
2421 | andl $0xcfcfcfcf, %edx | ||
2422 | movb %al, %bl | ||
2423 | movb %ah, %cl | ||
2424 | rorl $4, %edx | ||
2425 | movl des_SPtrans(%ebx),%ebp | ||
2426 | movb %dl, %bl | ||
2427 | xorl %ebp, %edi | ||
2428 | movl 0x200+des_SPtrans(%ecx),%ebp | ||
2429 | xorl %ebp, %edi | ||
2430 | movb %dh, %cl | ||
2431 | shrl $16, %eax | ||
2432 | movl 0x100+des_SPtrans(%ebx),%ebp | ||
2433 | xorl %ebp, %edi | ||
2434 | movb %ah, %bl | ||
2435 | shrl $16, %edx | ||
2436 | movl 0x300+des_SPtrans(%ecx),%ebp | ||
2437 | xorl %ebp, %edi | ||
2438 | movl 24(%esp), %ebp | ||
2439 | movb %dh, %cl | ||
2440 | andl $0xff, %eax | ||
2441 | andl $0xff, %edx | ||
2442 | movl 0x600+des_SPtrans(%ebx),%ebx | ||
2443 | xorl %ebx, %edi | ||
2444 | movl 0x700+des_SPtrans(%ecx),%ebx | ||
2445 | xorl %ebx, %edi | ||
2446 | movl 0x400+des_SPtrans(%eax),%ebx | ||
2447 | xorl %ebx, %edi | ||
2448 | movl 0x500+des_SPtrans(%edx),%ebx | ||
2449 | xorl %ebx, %edi | ||
2450 | |||
2451 | /* Round 2 */ | ||
2452 | movl 16(%ebp), %eax | ||
2453 | xorl %ebx, %ebx | ||
2454 | movl 20(%ebp), %edx | ||
2455 | xorl %edi, %eax | ||
2456 | xorl %edi, %edx | ||
2457 | andl $0xfcfcfcfc, %eax | ||
2458 | andl $0xcfcfcfcf, %edx | ||
2459 | movb %al, %bl | ||
2460 | movb %ah, %cl | ||
2461 | rorl $4, %edx | ||
2462 | movl des_SPtrans(%ebx),%ebp | ||
2463 | movb %dl, %bl | ||
2464 | xorl %ebp, %esi | ||
2465 | movl 0x200+des_SPtrans(%ecx),%ebp | ||
2466 | xorl %ebp, %esi | ||
2467 | movb %dh, %cl | ||
2468 | shrl $16, %eax | ||
2469 | movl 0x100+des_SPtrans(%ebx),%ebp | ||
2470 | xorl %ebp, %esi | ||
2471 | movb %ah, %bl | ||
2472 | shrl $16, %edx | ||
2473 | movl 0x300+des_SPtrans(%ecx),%ebp | ||
2474 | xorl %ebp, %esi | ||
2475 | movl 24(%esp), %ebp | ||
2476 | movb %dh, %cl | ||
2477 | andl $0xff, %eax | ||
2478 | andl $0xff, %edx | ||
2479 | movl 0x600+des_SPtrans(%ebx),%ebx | ||
2480 | xorl %ebx, %esi | ||
2481 | movl 0x700+des_SPtrans(%ecx),%ebx | ||
2482 | xorl %ebx, %esi | ||
2483 | movl 0x400+des_SPtrans(%eax),%ebx | ||
2484 | xorl %ebx, %esi | ||
2485 | movl 0x500+des_SPtrans(%edx),%ebx | ||
2486 | xorl %ebx, %esi | ||
2487 | |||
2488 | /* Round 1 */ | ||
2489 | movl 8(%ebp), %eax | ||
2490 | xorl %ebx, %ebx | ||
2491 | movl 12(%ebp), %edx | ||
2492 | xorl %esi, %eax | ||
2493 | xorl %esi, %edx | ||
2494 | andl $0xfcfcfcfc, %eax | ||
2495 | andl $0xcfcfcfcf, %edx | ||
2496 | movb %al, %bl | ||
2497 | movb %ah, %cl | ||
2498 | rorl $4, %edx | ||
2499 | movl des_SPtrans(%ebx),%ebp | ||
2500 | movb %dl, %bl | ||
2501 | xorl %ebp, %edi | ||
2502 | movl 0x200+des_SPtrans(%ecx),%ebp | ||
2503 | xorl %ebp, %edi | ||
2504 | movb %dh, %cl | ||
2505 | shrl $16, %eax | ||
2506 | movl 0x100+des_SPtrans(%ebx),%ebp | ||
2507 | xorl %ebp, %edi | ||
2508 | movb %ah, %bl | ||
2509 | shrl $16, %edx | ||
2510 | movl 0x300+des_SPtrans(%ecx),%ebp | ||
2511 | xorl %ebp, %edi | ||
2512 | movl 24(%esp), %ebp | ||
2513 | movb %dh, %cl | ||
2514 | andl $0xff, %eax | ||
2515 | andl $0xff, %edx | ||
2516 | movl 0x600+des_SPtrans(%ebx),%ebx | ||
2517 | xorl %ebx, %edi | ||
2518 | movl 0x700+des_SPtrans(%ecx),%ebx | ||
2519 | xorl %ebx, %edi | ||
2520 | movl 0x400+des_SPtrans(%eax),%ebx | ||
2521 | xorl %ebx, %edi | ||
2522 | movl 0x500+des_SPtrans(%edx),%ebx | ||
2523 | xorl %ebx, %edi | ||
2524 | |||
2525 | /* Round 0 */ | ||
2526 | movl (%ebp), %eax | ||
2527 | xorl %ebx, %ebx | ||
2528 | movl 4(%ebp), %edx | ||
2529 | xorl %edi, %eax | ||
2530 | xorl %edi, %edx | ||
2531 | andl $0xfcfcfcfc, %eax | ||
2532 | andl $0xcfcfcfcf, %edx | ||
2533 | movb %al, %bl | ||
2534 | movb %ah, %cl | ||
2535 | rorl $4, %edx | ||
2536 | movl des_SPtrans(%ebx),%ebp | ||
2537 | movb %dl, %bl | ||
2538 | xorl %ebp, %esi | ||
2539 | movl 0x200+des_SPtrans(%ecx),%ebp | ||
2540 | xorl %ebp, %esi | ||
2541 | movb %dh, %cl | ||
2542 | shrl $16, %eax | ||
2543 | movl 0x100+des_SPtrans(%ebx),%ebp | ||
2544 | xorl %ebp, %esi | ||
2545 | movb %ah, %bl | ||
2546 | shrl $16, %edx | ||
2547 | movl 0x300+des_SPtrans(%ecx),%ebp | ||
2548 | xorl %ebp, %esi | ||
2549 | movl 24(%esp), %ebp | ||
2550 | movb %dh, %cl | ||
2551 | andl $0xff, %eax | ||
2552 | andl $0xff, %edx | ||
2553 | movl 0x600+des_SPtrans(%ebx),%ebx | ||
2554 | xorl %ebx, %esi | ||
2555 | movl 0x700+des_SPtrans(%ecx),%ebx | ||
2556 | xorl %ebx, %esi | ||
2557 | movl 0x400+des_SPtrans(%eax),%ebx | ||
2558 | xorl %ebx, %esi | ||
2559 | movl 0x500+des_SPtrans(%edx),%ebx | ||
2560 | xorl %ebx, %esi | ||
2561 | .L003end: | ||
2562 | |||
2563 | /* Fixup */ | ||
2564 | rorl $3, %edi | ||
2565 | movl 20(%esp), %eax | ||
2566 | rorl $3, %esi | ||
2567 | movl %edi, (%eax) | ||
2568 | movl %esi, 4(%eax) | ||
2569 | popl %ebp | ||
2570 | popl %ebx | ||
2571 | popl %edi | ||
2572 | popl %esi | ||
2573 | ret | ||
2574 | .des_encrypt2_end: | ||
2575 | SIZE(des_encrypt2,.des_encrypt2_end-des_encrypt2) | ||
2576 | .ident "desasm.pl" | ||
2577 | .text | ||
2578 | .align ALIGN | ||
2579 | .globl des_encrypt3 | ||
2580 | TYPE(des_encrypt3,@function) | ||
2581 | des_encrypt3: | ||
2582 | pushl %ebx | ||
2583 | movl 8(%esp), %ebx | ||
2584 | pushl %ebp | ||
2585 | pushl %esi | ||
2586 | pushl %edi | ||
2587 | |||
2588 | /* Load the data words */ | ||
2589 | movl (%ebx), %edi | ||
2590 | movl 4(%ebx), %esi | ||
2591 | subl $12, %esp | ||
2592 | |||
2593 | /* IP */ | ||
2594 | roll $4, %edi | ||
2595 | movl %edi, %edx | ||
2596 | xorl %esi, %edi | ||
2597 | andl $0xf0f0f0f0, %edi | ||
2598 | xorl %edi, %edx | ||
2599 | xorl %edi, %esi | ||
2600 | |||
2601 | roll $20, %esi | ||
2602 | movl %esi, %edi | ||
2603 | xorl %edx, %esi | ||
2604 | andl $0xfff0000f, %esi | ||
2605 | xorl %esi, %edi | ||
2606 | xorl %esi, %edx | ||
2607 | |||
2608 | roll $14, %edi | ||
2609 | movl %edi, %esi | ||
2610 | xorl %edx, %edi | ||
2611 | andl $0x33333333, %edi | ||
2612 | xorl %edi, %esi | ||
2613 | xorl %edi, %edx | ||
2614 | |||
2615 | roll $22, %edx | ||
2616 | movl %edx, %edi | ||
2617 | xorl %esi, %edx | ||
2618 | andl $0x03fc03fc, %edx | ||
2619 | xorl %edx, %edi | ||
2620 | xorl %edx, %esi | ||
2621 | |||
2622 | roll $9, %edi | ||
2623 | movl %edi, %edx | ||
2624 | xorl %esi, %edi | ||
2625 | andl $0xaaaaaaaa, %edi | ||
2626 | xorl %edi, %edx | ||
2627 | xorl %edi, %esi | ||
2628 | |||
2629 | rorl $3, %edx | ||
2630 | rorl $2, %esi | ||
2631 | movl %esi, 4(%ebx) | ||
2632 | movl 36(%esp), %eax | ||
2633 | movl %edx, (%ebx) | ||
2634 | movl 40(%esp), %edi | ||
2635 | movl 44(%esp), %esi | ||
2636 | movl $1, 8(%esp) | ||
2637 | movl %eax, 4(%esp) | ||
2638 | movl %ebx, (%esp) | ||
2639 | call des_encrypt2 | ||
2640 | movl $0, 8(%esp) | ||
2641 | movl %edi, 4(%esp) | ||
2642 | movl %ebx, (%esp) | ||
2643 | call des_encrypt2 | ||
2644 | movl $1, 8(%esp) | ||
2645 | movl %esi, 4(%esp) | ||
2646 | movl %ebx, (%esp) | ||
2647 | call des_encrypt2 | ||
2648 | addl $12, %esp | ||
2649 | movl (%ebx), %edi | ||
2650 | movl 4(%ebx), %esi | ||
2651 | |||
2652 | /* FP */ | ||
2653 | roll $2, %esi | ||
2654 | roll $3, %edi | ||
2655 | movl %edi, %eax | ||
2656 | xorl %esi, %edi | ||
2657 | andl $0xaaaaaaaa, %edi | ||
2658 | xorl %edi, %eax | ||
2659 | xorl %edi, %esi | ||
2660 | |||
2661 | roll $23, %eax | ||
2662 | movl %eax, %edi | ||
2663 | xorl %esi, %eax | ||
2664 | andl $0x03fc03fc, %eax | ||
2665 | xorl %eax, %edi | ||
2666 | xorl %eax, %esi | ||
2667 | |||
2668 | roll $10, %edi | ||
2669 | movl %edi, %eax | ||
2670 | xorl %esi, %edi | ||
2671 | andl $0x33333333, %edi | ||
2672 | xorl %edi, %eax | ||
2673 | xorl %edi, %esi | ||
2674 | |||
2675 | roll $18, %esi | ||
2676 | movl %esi, %edi | ||
2677 | xorl %eax, %esi | ||
2678 | andl $0xfff0000f, %esi | ||
2679 | xorl %esi, %edi | ||
2680 | xorl %esi, %eax | ||
2681 | |||
2682 | roll $12, %edi | ||
2683 | movl %edi, %esi | ||
2684 | xorl %eax, %edi | ||
2685 | andl $0xf0f0f0f0, %edi | ||
2686 | xorl %edi, %esi | ||
2687 | xorl %edi, %eax | ||
2688 | |||
2689 | rorl $4, %eax | ||
2690 | movl %eax, (%ebx) | ||
2691 | movl %esi, 4(%ebx) | ||
2692 | popl %edi | ||
2693 | popl %esi | ||
2694 | popl %ebp | ||
2695 | popl %ebx | ||
2696 | ret | ||
2697 | .des_encrypt3_end: | ||
2698 | SIZE(des_encrypt3,.des_encrypt3_end-des_encrypt3) | ||
2699 | .ident "desasm.pl" | ||
2700 | .text | ||
2701 | .align ALIGN | ||
2702 | .globl des_decrypt3 | ||
2703 | TYPE(des_decrypt3,@function) | ||
2704 | des_decrypt3: | ||
2705 | pushl %ebx | ||
2706 | movl 8(%esp), %ebx | ||
2707 | pushl %ebp | ||
2708 | pushl %esi | ||
2709 | pushl %edi | ||
2710 | |||
2711 | /* Load the data words */ | ||
2712 | movl (%ebx), %edi | ||
2713 | movl 4(%ebx), %esi | ||
2714 | subl $12, %esp | ||
2715 | |||
2716 | /* IP */ | ||
2717 | roll $4, %edi | ||
2718 | movl %edi, %edx | ||
2719 | xorl %esi, %edi | ||
2720 | andl $0xf0f0f0f0, %edi | ||
2721 | xorl %edi, %edx | ||
2722 | xorl %edi, %esi | ||
2723 | |||
2724 | roll $20, %esi | ||
2725 | movl %esi, %edi | ||
2726 | xorl %edx, %esi | ||
2727 | andl $0xfff0000f, %esi | ||
2728 | xorl %esi, %edi | ||
2729 | xorl %esi, %edx | ||
2730 | |||
2731 | roll $14, %edi | ||
2732 | movl %edi, %esi | ||
2733 | xorl %edx, %edi | ||
2734 | andl $0x33333333, %edi | ||
2735 | xorl %edi, %esi | ||
2736 | xorl %edi, %edx | ||
2737 | |||
2738 | roll $22, %edx | ||
2739 | movl %edx, %edi | ||
2740 | xorl %esi, %edx | ||
2741 | andl $0x03fc03fc, %edx | ||
2742 | xorl %edx, %edi | ||
2743 | xorl %edx, %esi | ||
2744 | |||
2745 | roll $9, %edi | ||
2746 | movl %edi, %edx | ||
2747 | xorl %esi, %edi | ||
2748 | andl $0xaaaaaaaa, %edi | ||
2749 | xorl %edi, %edx | ||
2750 | xorl %edi, %esi | ||
2751 | |||
2752 | rorl $3, %edx | ||
2753 | rorl $2, %esi | ||
2754 | movl %esi, 4(%ebx) | ||
2755 | movl 36(%esp), %esi | ||
2756 | movl %edx, (%ebx) | ||
2757 | movl 40(%esp), %edi | ||
2758 | movl 44(%esp), %eax | ||
2759 | movl $0, 8(%esp) | ||
2760 | movl %eax, 4(%esp) | ||
2761 | movl %ebx, (%esp) | ||
2762 | call des_encrypt2 | ||
2763 | movl $1, 8(%esp) | ||
2764 | movl %edi, 4(%esp) | ||
2765 | movl %ebx, (%esp) | ||
2766 | call des_encrypt2 | ||
2767 | movl $0, 8(%esp) | ||
2768 | movl %esi, 4(%esp) | ||
2769 | movl %ebx, (%esp) | ||
2770 | call des_encrypt2 | ||
2771 | addl $12, %esp | ||
2772 | movl (%ebx), %edi | ||
2773 | movl 4(%ebx), %esi | ||
2774 | |||
2775 | /* FP */ | ||
2776 | roll $2, %esi | ||
2777 | roll $3, %edi | ||
2778 | movl %edi, %eax | ||
2779 | xorl %esi, %edi | ||
2780 | andl $0xaaaaaaaa, %edi | ||
2781 | xorl %edi, %eax | ||
2782 | xorl %edi, %esi | ||
2783 | |||
2784 | roll $23, %eax | ||
2785 | movl %eax, %edi | ||
2786 | xorl %esi, %eax | ||
2787 | andl $0x03fc03fc, %eax | ||
2788 | xorl %eax, %edi | ||
2789 | xorl %eax, %esi | ||
2790 | |||
2791 | roll $10, %edi | ||
2792 | movl %edi, %eax | ||
2793 | xorl %esi, %edi | ||
2794 | andl $0x33333333, %edi | ||
2795 | xorl %edi, %eax | ||
2796 | xorl %edi, %esi | ||
2797 | |||
2798 | roll $18, %esi | ||
2799 | movl %esi, %edi | ||
2800 | xorl %eax, %esi | ||
2801 | andl $0xfff0000f, %esi | ||
2802 | xorl %esi, %edi | ||
2803 | xorl %esi, %eax | ||
2804 | |||
2805 | roll $12, %edi | ||
2806 | movl %edi, %esi | ||
2807 | xorl %eax, %edi | ||
2808 | andl $0xf0f0f0f0, %edi | ||
2809 | xorl %edi, %esi | ||
2810 | xorl %edi, %eax | ||
2811 | |||
2812 | rorl $4, %eax | ||
2813 | movl %eax, (%ebx) | ||
2814 | movl %esi, 4(%ebx) | ||
2815 | popl %edi | ||
2816 | popl %esi | ||
2817 | popl %ebp | ||
2818 | popl %ebx | ||
2819 | ret | ||
2820 | .des_decrypt3_end: | ||
2821 | SIZE(des_decrypt3,.des_decrypt3_end-des_decrypt3) | ||
2822 | .ident "desasm.pl" | ||
2823 | .text | ||
2824 | .align ALIGN | ||
2825 | .globl des_ncbc_encrypt | ||
2826 | TYPE(des_ncbc_encrypt,@function) | ||
2827 | des_ncbc_encrypt: | ||
2828 | |||
2829 | pushl %ebp | ||
2830 | pushl %ebx | ||
2831 | pushl %esi | ||
2832 | pushl %edi | ||
2833 | movl 28(%esp), %ebp | ||
2834 | /* getting iv ptr from parameter 4 */ | ||
2835 | movl 36(%esp), %ebx | ||
2836 | movl (%ebx), %esi | ||
2837 | movl 4(%ebx), %edi | ||
2838 | pushl %edi | ||
2839 | pushl %esi | ||
2840 | pushl %edi | ||
2841 | pushl %esi | ||
2842 | movl %esp, %ebx | ||
2843 | movl 36(%esp), %esi | ||
2844 | movl 40(%esp), %edi | ||
2845 | /* getting encrypt flag from parameter 5 */ | ||
2846 | movl 56(%esp), %ecx | ||
2847 | /* get and push parameter 5 */ | ||
2848 | pushl %ecx | ||
2849 | /* get and push parameter 3 */ | ||
2850 | movl 52(%esp), %eax | ||
2851 | pushl %eax | ||
2852 | pushl %ebx | ||
2853 | cmpl $0, %ecx | ||
2854 | jz .L004decrypt | ||
2855 | andl $4294967288, %ebp | ||
2856 | movl 12(%esp), %eax | ||
2857 | movl 16(%esp), %ebx | ||
2858 | jz .L005encrypt_finish | ||
2859 | .L006encrypt_loop: | ||
2860 | movl (%esi), %ecx | ||
2861 | movl 4(%esi), %edx | ||
2862 | xorl %ecx, %eax | ||
2863 | xorl %edx, %ebx | ||
2864 | movl %eax, 12(%esp) | ||
2865 | movl %ebx, 16(%esp) | ||
2866 | call des_encrypt | ||
2867 | movl 12(%esp), %eax | ||
2868 | movl 16(%esp), %ebx | ||
2869 | movl %eax, (%edi) | ||
2870 | movl %ebx, 4(%edi) | ||
2871 | addl $8, %esi | ||
2872 | addl $8, %edi | ||
2873 | subl $8, %ebp | ||
2874 | jnz .L006encrypt_loop | ||
2875 | .L005encrypt_finish: | ||
2876 | movl 56(%esp), %ebp | ||
2877 | andl $7, %ebp | ||
2878 | jz .L007finish | ||
2879 | xorl %ecx, %ecx | ||
2880 | xorl %edx, %edx | ||
2881 | movl .L008cbc_enc_jmp_table(,%ebp,4),%ebp | ||
2882 | jmp *%ebp | ||
2883 | .L009ej7: | ||
2884 | movb 6(%esi), %dh | ||
2885 | sall $8, %edx | ||
2886 | .L010ej6: | ||
2887 | movb 5(%esi), %dh | ||
2888 | .L011ej5: | ||
2889 | movb 4(%esi), %dl | ||
2890 | .L012ej4: | ||
2891 | movl (%esi), %ecx | ||
2892 | jmp .L013ejend | ||
2893 | .L014ej3: | ||
2894 | movb 2(%esi), %ch | ||
2895 | sall $8, %ecx | ||
2896 | .L015ej2: | ||
2897 | movb 1(%esi), %ch | ||
2898 | .L016ej1: | ||
2899 | movb (%esi), %cl | ||
2900 | .L013ejend: | ||
2901 | xorl %ecx, %eax | ||
2902 | xorl %edx, %ebx | ||
2903 | movl %eax, 12(%esp) | ||
2904 | movl %ebx, 16(%esp) | ||
2905 | call des_encrypt | ||
2906 | movl 12(%esp), %eax | ||
2907 | movl 16(%esp), %ebx | ||
2908 | movl %eax, (%edi) | ||
2909 | movl %ebx, 4(%edi) | ||
2910 | jmp .L007finish | ||
2911 | .align ALIGN | ||
2912 | .L004decrypt: | ||
2913 | andl $4294967288, %ebp | ||
2914 | movl 20(%esp), %eax | ||
2915 | movl 24(%esp), %ebx | ||
2916 | jz .L017decrypt_finish | ||
2917 | .L018decrypt_loop: | ||
2918 | movl (%esi), %eax | ||
2919 | movl 4(%esi), %ebx | ||
2920 | movl %eax, 12(%esp) | ||
2921 | movl %ebx, 16(%esp) | ||
2922 | call des_encrypt | ||
2923 | movl 12(%esp), %eax | ||
2924 | movl 16(%esp), %ebx | ||
2925 | movl 20(%esp), %ecx | ||
2926 | movl 24(%esp), %edx | ||
2927 | xorl %eax, %ecx | ||
2928 | xorl %ebx, %edx | ||
2929 | movl (%esi), %eax | ||
2930 | movl 4(%esi), %ebx | ||
2931 | movl %ecx, (%edi) | ||
2932 | movl %edx, 4(%edi) | ||
2933 | movl %eax, 20(%esp) | ||
2934 | movl %ebx, 24(%esp) | ||
2935 | addl $8, %esi | ||
2936 | addl $8, %edi | ||
2937 | subl $8, %ebp | ||
2938 | jnz .L018decrypt_loop | ||
2939 | .L017decrypt_finish: | ||
2940 | movl 56(%esp), %ebp | ||
2941 | andl $7, %ebp | ||
2942 | jz .L007finish | ||
2943 | movl (%esi), %eax | ||
2944 | movl 4(%esi), %ebx | ||
2945 | movl %eax, 12(%esp) | ||
2946 | movl %ebx, 16(%esp) | ||
2947 | call des_encrypt | ||
2948 | movl 12(%esp), %eax | ||
2949 | movl 16(%esp), %ebx | ||
2950 | movl 20(%esp), %ecx | ||
2951 | movl 24(%esp), %edx | ||
2952 | xorl %eax, %ecx | ||
2953 | xorl %ebx, %edx | ||
2954 | movl (%esi), %eax | ||
2955 | movl 4(%esi), %ebx | ||
2956 | .L019dj7: | ||
2957 | rorl $16, %edx | ||
2958 | movb %dl, 6(%edi) | ||
2959 | shrl $16, %edx | ||
2960 | .L020dj6: | ||
2961 | movb %dh, 5(%edi) | ||
2962 | .L021dj5: | ||
2963 | movb %dl, 4(%edi) | ||
2964 | .L022dj4: | ||
2965 | movl %ecx, (%edi) | ||
2966 | jmp .L023djend | ||
2967 | .L024dj3: | ||
2968 | rorl $16, %ecx | ||
2969 | movb %cl, 2(%edi) | ||
2970 | sall $16, %ecx | ||
2971 | .L025dj2: | ||
2972 | movb %ch, 1(%esi) | ||
2973 | .L026dj1: | ||
2974 | movb %cl, (%esi) | ||
2975 | .L023djend: | ||
2976 | jmp .L007finish | ||
2977 | .align ALIGN | ||
2978 | .L007finish: | ||
2979 | movl 64(%esp), %ecx | ||
2980 | addl $28, %esp | ||
2981 | movl %eax, (%ecx) | ||
2982 | movl %ebx, 4(%ecx) | ||
2983 | popl %edi | ||
2984 | popl %esi | ||
2985 | popl %ebx | ||
2986 | popl %ebp | ||
2987 | ret | ||
2988 | .align ALIGN | ||
2989 | .L008cbc_enc_jmp_table: | ||
2990 | .long 0 | ||
2991 | .long .L016ej1 | ||
2992 | .long .L015ej2 | ||
2993 | .long .L014ej3 | ||
2994 | .long .L012ej4 | ||
2995 | .long .L011ej5 | ||
2996 | .long .L010ej6 | ||
2997 | .long .L009ej7 | ||
2998 | .align ALIGN | ||
2999 | .L027cbc_dec_jmp_table: | ||
3000 | .long 0 | ||
3001 | .long .L026dj1 | ||
3002 | .long .L025dj2 | ||
3003 | .long .L024dj3 | ||
3004 | .long .L022dj4 | ||
3005 | .long .L021dj5 | ||
3006 | .long .L020dj6 | ||
3007 | .long .L019dj7 | ||
3008 | .des_ncbc_encrypt_end: | ||
3009 | SIZE(des_ncbc_encrypt,.des_ncbc_encrypt_end-des_ncbc_encrypt) | ||
3010 | .ident "desasm.pl" | ||
3011 | .text | ||
3012 | .align ALIGN | ||
3013 | .globl des_ede3_cbc_encrypt | ||
3014 | TYPE(des_ede3_cbc_encrypt,@function) | ||
3015 | des_ede3_cbc_encrypt: | ||
3016 | |||
3017 | pushl %ebp | ||
3018 | pushl %ebx | ||
3019 | pushl %esi | ||
3020 | pushl %edi | ||
3021 | movl 28(%esp), %ebp | ||
3022 | /* getting iv ptr from parameter 6 */ | ||
3023 | movl 44(%esp), %ebx | ||
3024 | movl (%ebx), %esi | ||
3025 | movl 4(%ebx), %edi | ||
3026 | pushl %edi | ||
3027 | pushl %esi | ||
3028 | pushl %edi | ||
3029 | pushl %esi | ||
3030 | movl %esp, %ebx | ||
3031 | movl 36(%esp), %esi | ||
3032 | movl 40(%esp), %edi | ||
3033 | /* getting encrypt flag from parameter 7 */ | ||
3034 | movl 64(%esp), %ecx | ||
3035 | /* get and push parameter 5 */ | ||
3036 | movl 56(%esp), %eax | ||
3037 | pushl %eax | ||
3038 | /* get and push parameter 4 */ | ||
3039 | movl 56(%esp), %eax | ||
3040 | pushl %eax | ||
3041 | /* get and push parameter 3 */ | ||
3042 | movl 56(%esp), %eax | ||
3043 | pushl %eax | ||
3044 | pushl %ebx | ||
3045 | cmpl $0, %ecx | ||
3046 | jz .L028decrypt | ||
3047 | andl $4294967288, %ebp | ||
3048 | movl 16(%esp), %eax | ||
3049 | movl 20(%esp), %ebx | ||
3050 | jz .L029encrypt_finish | ||
3051 | .L030encrypt_loop: | ||
3052 | movl (%esi), %ecx | ||
3053 | movl 4(%esi), %edx | ||
3054 | xorl %ecx, %eax | ||
3055 | xorl %edx, %ebx | ||
3056 | movl %eax, 16(%esp) | ||
3057 | movl %ebx, 20(%esp) | ||
3058 | call des_encrypt3 | ||
3059 | movl 16(%esp), %eax | ||
3060 | movl 20(%esp), %ebx | ||
3061 | movl %eax, (%edi) | ||
3062 | movl %ebx, 4(%edi) | ||
3063 | addl $8, %esi | ||
3064 | addl $8, %edi | ||
3065 | subl $8, %ebp | ||
3066 | jnz .L030encrypt_loop | ||
3067 | .L029encrypt_finish: | ||
3068 | movl 60(%esp), %ebp | ||
3069 | andl $7, %ebp | ||
3070 | jz .L031finish | ||
3071 | xorl %ecx, %ecx | ||
3072 | xorl %edx, %edx | ||
3073 | movl .L032cbc_enc_jmp_table(,%ebp,4),%ebp | ||
3074 | jmp *%ebp | ||
3075 | .L033ej7: | ||
3076 | movb 6(%esi), %dh | ||
3077 | sall $8, %edx | ||
3078 | .L034ej6: | ||
3079 | movb 5(%esi), %dh | ||
3080 | .L035ej5: | ||
3081 | movb 4(%esi), %dl | ||
3082 | .L036ej4: | ||
3083 | movl (%esi), %ecx | ||
3084 | jmp .L037ejend | ||
3085 | .L038ej3: | ||
3086 | movb 2(%esi), %ch | ||
3087 | sall $8, %ecx | ||
3088 | .L039ej2: | ||
3089 | movb 1(%esi), %ch | ||
3090 | .L040ej1: | ||
3091 | movb (%esi), %cl | ||
3092 | .L037ejend: | ||
3093 | xorl %ecx, %eax | ||
3094 | xorl %edx, %ebx | ||
3095 | movl %eax, 16(%esp) | ||
3096 | movl %ebx, 20(%esp) | ||
3097 | call des_encrypt3 | ||
3098 | movl 16(%esp), %eax | ||
3099 | movl 20(%esp), %ebx | ||
3100 | movl %eax, (%edi) | ||
3101 | movl %ebx, 4(%edi) | ||
3102 | jmp .L031finish | ||
3103 | .align ALIGN | ||
3104 | .L028decrypt: | ||
3105 | andl $4294967288, %ebp | ||
3106 | movl 24(%esp), %eax | ||
3107 | movl 28(%esp), %ebx | ||
3108 | jz .L041decrypt_finish | ||
3109 | .L042decrypt_loop: | ||
3110 | movl (%esi), %eax | ||
3111 | movl 4(%esi), %ebx | ||
3112 | movl %eax, 16(%esp) | ||
3113 | movl %ebx, 20(%esp) | ||
3114 | call des_decrypt3 | ||
3115 | movl 16(%esp), %eax | ||
3116 | movl 20(%esp), %ebx | ||
3117 | movl 24(%esp), %ecx | ||
3118 | movl 28(%esp), %edx | ||
3119 | xorl %eax, %ecx | ||
3120 | xorl %ebx, %edx | ||
3121 | movl (%esi), %eax | ||
3122 | movl 4(%esi), %ebx | ||
3123 | movl %ecx, (%edi) | ||
3124 | movl %edx, 4(%edi) | ||
3125 | movl %eax, 24(%esp) | ||
3126 | movl %ebx, 28(%esp) | ||
3127 | addl $8, %esi | ||
3128 | addl $8, %edi | ||
3129 | subl $8, %ebp | ||
3130 | jnz .L042decrypt_loop | ||
3131 | .L041decrypt_finish: | ||
3132 | movl 60(%esp), %ebp | ||
3133 | andl $7, %ebp | ||
3134 | jz .L031finish | ||
3135 | movl (%esi), %eax | ||
3136 | movl 4(%esi), %ebx | ||
3137 | movl %eax, 16(%esp) | ||
3138 | movl %ebx, 20(%esp) | ||
3139 | call des_decrypt3 | ||
3140 | movl 16(%esp), %eax | ||
3141 | movl 20(%esp), %ebx | ||
3142 | movl 24(%esp), %ecx | ||
3143 | movl 28(%esp), %edx | ||
3144 | xorl %eax, %ecx | ||
3145 | xorl %ebx, %edx | ||
3146 | movl (%esi), %eax | ||
3147 | movl 4(%esi), %ebx | ||
3148 | .L043dj7: | ||
3149 | rorl $16, %edx | ||
3150 | movb %dl, 6(%edi) | ||
3151 | shrl $16, %edx | ||
3152 | .L044dj6: | ||
3153 | movb %dh, 5(%edi) | ||
3154 | .L045dj5: | ||
3155 | movb %dl, 4(%edi) | ||
3156 | .L046dj4: | ||
3157 | movl %ecx, (%edi) | ||
3158 | jmp .L047djend | ||
3159 | .L048dj3: | ||
3160 | rorl $16, %ecx | ||
3161 | movb %cl, 2(%edi) | ||
3162 | sall $16, %ecx | ||
3163 | .L049dj2: | ||
3164 | movb %ch, 1(%esi) | ||
3165 | .L050dj1: | ||
3166 | movb %cl, (%esi) | ||
3167 | .L047djend: | ||
3168 | jmp .L031finish | ||
3169 | .align ALIGN | ||
3170 | .L031finish: | ||
3171 | movl 76(%esp), %ecx | ||
3172 | addl $32, %esp | ||
3173 | movl %eax, (%ecx) | ||
3174 | movl %ebx, 4(%ecx) | ||
3175 | popl %edi | ||
3176 | popl %esi | ||
3177 | popl %ebx | ||
3178 | popl %ebp | ||
3179 | ret | ||
3180 | .align ALIGN | ||
3181 | .L032cbc_enc_jmp_table: | ||
3182 | .long 0 | ||
3183 | .long .L040ej1 | ||
3184 | .long .L039ej2 | ||
3185 | .long .L038ej3 | ||
3186 | .long .L036ej4 | ||
3187 | .long .L035ej5 | ||
3188 | .long .L034ej6 | ||
3189 | .long .L033ej7 | ||
3190 | .align ALIGN | ||
3191 | .L051cbc_dec_jmp_table: | ||
3192 | .long 0 | ||
3193 | .long .L050dj1 | ||
3194 | .long .L049dj2 | ||
3195 | .long .L048dj3 | ||
3196 | .long .L046dj4 | ||
3197 | .long .L045dj5 | ||
3198 | .long .L044dj6 | ||
3199 | .long .L043dj7 | ||
3200 | .des_ede3_cbc_encrypt_end: | ||
3201 | SIZE(des_ede3_cbc_encrypt,.des_ede3_cbc_encrypt_end-des_ede3_cbc_encrypt) | ||
3202 | .ident "desasm.pl" | ||