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