1 /* $FreeBSD$ */
2 /* Do not modify. This file is auto-generated from rc5-586.pl. */
3 #ifdef PIC
4 .text
5 .globl RC5_32_encrypt
6 .type RC5_32_encrypt,@function
7 .align 16
8 RC5_32_encrypt:
9 .L_RC5_32_encrypt_begin:
10
11 pushl %ebp
12 pushl %esi
13 pushl %edi
14 movl 16(%esp),%edx
15 movl 20(%esp),%ebp
16
17 movl (%edx),%edi
18 movl 4(%edx),%esi
19 pushl %ebx
20 movl (%ebp),%ebx
21 addl 4(%ebp),%edi
22 addl 8(%ebp),%esi
23 xorl %esi,%edi
24 movl 12(%ebp),%eax
25 movl %esi,%ecx
26 roll %cl,%edi
27 addl %eax,%edi
28 xorl %edi,%esi
29 movl 16(%ebp),%eax
30 movl %edi,%ecx
31 roll %cl,%esi
32 addl %eax,%esi
33 xorl %esi,%edi
34 movl 20(%ebp),%eax
35 movl %esi,%ecx
36 roll %cl,%edi
37 addl %eax,%edi
38 xorl %edi,%esi
39 movl 24(%ebp),%eax
40 movl %edi,%ecx
41 roll %cl,%esi
42 addl %eax,%esi
43 xorl %esi,%edi
44 movl 28(%ebp),%eax
45 movl %esi,%ecx
46 roll %cl,%edi
47 addl %eax,%edi
48 xorl %edi,%esi
49 movl 32(%ebp),%eax
50 movl %edi,%ecx
51 roll %cl,%esi
52 addl %eax,%esi
53 xorl %esi,%edi
54 movl 36(%ebp),%eax
55 movl %esi,%ecx
56 roll %cl,%edi
57 addl %eax,%edi
58 xorl %edi,%esi
59 movl 40(%ebp),%eax
60 movl %edi,%ecx
61 roll %cl,%esi
62 addl %eax,%esi
63 xorl %esi,%edi
64 movl 44(%ebp),%eax
65 movl %esi,%ecx
66 roll %cl,%edi
67 addl %eax,%edi
68 xorl %edi,%esi
69 movl 48(%ebp),%eax
70 movl %edi,%ecx
71 roll %cl,%esi
72 addl %eax,%esi
73 xorl %esi,%edi
74 movl 52(%ebp),%eax
75 movl %esi,%ecx
76 roll %cl,%edi
77 addl %eax,%edi
78 xorl %edi,%esi
79 movl 56(%ebp),%eax
80 movl %edi,%ecx
81 roll %cl,%esi
82 addl %eax,%esi
83 xorl %esi,%edi
84 movl 60(%ebp),%eax
85 movl %esi,%ecx
86 roll %cl,%edi
87 addl %eax,%edi
88 xorl %edi,%esi
89 movl 64(%ebp),%eax
90 movl %edi,%ecx
91 roll %cl,%esi
92 addl %eax,%esi
93 xorl %esi,%edi
94 movl 68(%ebp),%eax
95 movl %esi,%ecx
96 roll %cl,%edi
97 addl %eax,%edi
98 xorl %edi,%esi
99 movl 72(%ebp),%eax
100 movl %edi,%ecx
101 roll %cl,%esi
102 addl %eax,%esi
103 cmpl $8,%ebx
104 je .L000rc5_exit
105 xorl %esi,%edi
106 movl 76(%ebp),%eax
107 movl %esi,%ecx
108 roll %cl,%edi
109 addl %eax,%edi
110 xorl %edi,%esi
111 movl 80(%ebp),%eax
112 movl %edi,%ecx
113 roll %cl,%esi
114 addl %eax,%esi
115 xorl %esi,%edi
116 movl 84(%ebp),%eax
117 movl %esi,%ecx
118 roll %cl,%edi
119 addl %eax,%edi
120 xorl %edi,%esi
121 movl 88(%ebp),%eax
122 movl %edi,%ecx
123 roll %cl,%esi
124 addl %eax,%esi
125 xorl %esi,%edi
126 movl 92(%ebp),%eax
127 movl %esi,%ecx
128 roll %cl,%edi
129 addl %eax,%edi
130 xorl %edi,%esi
131 movl 96(%ebp),%eax
132 movl %edi,%ecx
133 roll %cl,%esi
134 addl %eax,%esi
135 xorl %esi,%edi
136 movl 100(%ebp),%eax
137 movl %esi,%ecx
138 roll %cl,%edi
139 addl %eax,%edi
140 xorl %edi,%esi
141 movl 104(%ebp),%eax
142 movl %edi,%ecx
143 roll %cl,%esi
144 addl %eax,%esi
145 cmpl $12,%ebx
146 je .L000rc5_exit
147 xorl %esi,%edi
148 movl 108(%ebp),%eax
149 movl %esi,%ecx
150 roll %cl,%edi
151 addl %eax,%edi
152 xorl %edi,%esi
153 movl 112(%ebp),%eax
154 movl %edi,%ecx
155 roll %cl,%esi
156 addl %eax,%esi
157 xorl %esi,%edi
158 movl 116(%ebp),%eax
159 movl %esi,%ecx
160 roll %cl,%edi
161 addl %eax,%edi
162 xorl %edi,%esi
163 movl 120(%ebp),%eax
164 movl %edi,%ecx
165 roll %cl,%esi
166 addl %eax,%esi
167 xorl %esi,%edi
168 movl 124(%ebp),%eax
169 movl %esi,%ecx
170 roll %cl,%edi
171 addl %eax,%edi
172 xorl %edi,%esi
173 movl 128(%ebp),%eax
174 movl %edi,%ecx
175 roll %cl,%esi
176 addl %eax,%esi
177 xorl %esi,%edi
178 movl 132(%ebp),%eax
179 movl %esi,%ecx
180 roll %cl,%edi
181 addl %eax,%edi
182 xorl %edi,%esi
183 movl 136(%ebp),%eax
184 movl %edi,%ecx
185 roll %cl,%esi
186 addl %eax,%esi
187 .L000rc5_exit:
188 movl %edi,(%edx)
189 movl %esi,4(%edx)
190 popl %ebx
191 popl %edi
192 popl %esi
193 popl %ebp
194 ret
195 .size RC5_32_encrypt,.-.L_RC5_32_encrypt_begin
196 .globl RC5_32_decrypt
197 .type RC5_32_decrypt,@function
198 .align 16
199 RC5_32_decrypt:
200 .L_RC5_32_decrypt_begin:
201
202 pushl %ebp
203 pushl %esi
204 pushl %edi
205 movl 16(%esp),%edx
206 movl 20(%esp),%ebp
207
208 movl (%edx),%edi
209 movl 4(%edx),%esi
210 pushl %ebx
211 movl (%ebp),%ebx
212 cmpl $12,%ebx
213 je .L001rc5_dec_12
214 cmpl $8,%ebx
215 je .L002rc5_dec_8
216 movl 136(%ebp),%eax
217 subl %eax,%esi
218 movl %edi,%ecx
219 rorl %cl,%esi
220 xorl %edi,%esi
221 movl 132(%ebp),%eax
222 subl %eax,%edi
223 movl %esi,%ecx
224 rorl %cl,%edi
225 xorl %esi,%edi
226 movl 128(%ebp),%eax
227 subl %eax,%esi
228 movl %edi,%ecx
229 rorl %cl,%esi
230 xorl %edi,%esi
231 movl 124(%ebp),%eax
232 subl %eax,%edi
233 movl %esi,%ecx
234 rorl %cl,%edi
235 xorl %esi,%edi
236 movl 120(%ebp),%eax
237 subl %eax,%esi
238 movl %edi,%ecx
239 rorl %cl,%esi
240 xorl %edi,%esi
241 movl 116(%ebp),%eax
242 subl %eax,%edi
243 movl %esi,%ecx
244 rorl %cl,%edi
245 xorl %esi,%edi
246 movl 112(%ebp),%eax
247 subl %eax,%esi
248 movl %edi,%ecx
249 rorl %cl,%esi
250 xorl %edi,%esi
251 movl 108(%ebp),%eax
252 subl %eax,%edi
253 movl %esi,%ecx
254 rorl %cl,%edi
255 xorl %esi,%edi
256 .L001rc5_dec_12:
257 movl 104(%ebp),%eax
258 subl %eax,%esi
259 movl %edi,%ecx
260 rorl %cl,%esi
261 xorl %edi,%esi
262 movl 100(%ebp),%eax
263 subl %eax,%edi
264 movl %esi,%ecx
265 rorl %cl,%edi
266 xorl %esi,%edi
267 movl 96(%ebp),%eax
268 subl %eax,%esi
269 movl %edi,%ecx
270 rorl %cl,%esi
271 xorl %edi,%esi
272 movl 92(%ebp),%eax
273 subl %eax,%edi
274 movl %esi,%ecx
275 rorl %cl,%edi
276 xorl %esi,%edi
277 movl 88(%ebp),%eax
278 subl %eax,%esi
279 movl %edi,%ecx
280 rorl %cl,%esi
281 xorl %edi,%esi
282 movl 84(%ebp),%eax
283 subl %eax,%edi
284 movl %esi,%ecx
285 rorl %cl,%edi
286 xorl %esi,%edi
287 movl 80(%ebp),%eax
288 subl %eax,%esi
289 movl %edi,%ecx
290 rorl %cl,%esi
291 xorl %edi,%esi
292 movl 76(%ebp),%eax
293 subl %eax,%edi
294 movl %esi,%ecx
295 rorl %cl,%edi
296 xorl %esi,%edi
297 .L002rc5_dec_8:
298 movl 72(%ebp),%eax
299 subl %eax,%esi
300 movl %edi,%ecx
301 rorl %cl,%esi
302 xorl %edi,%esi
303 movl 68(%ebp),%eax
304 subl %eax,%edi
305 movl %esi,%ecx
306 rorl %cl,%edi
307 xorl %esi,%edi
308 movl 64(%ebp),%eax
309 subl %eax,%esi
310 movl %edi,%ecx
311 rorl %cl,%esi
312 xorl %edi,%esi
313 movl 60(%ebp),%eax
314 subl %eax,%edi
315 movl %esi,%ecx
316 rorl %cl,%edi
317 xorl %esi,%edi
318 movl 56(%ebp),%eax
319 subl %eax,%esi
320 movl %edi,%ecx
321 rorl %cl,%esi
322 xorl %edi,%esi
323 movl 52(%ebp),%eax
324 subl %eax,%edi
325 movl %esi,%ecx
326 rorl %cl,%edi
327 xorl %esi,%edi
328 movl 48(%ebp),%eax
329 subl %eax,%esi
330 movl %edi,%ecx
331 rorl %cl,%esi
332 xorl %edi,%esi
333 movl 44(%ebp),%eax
334 subl %eax,%edi
335 movl %esi,%ecx
336 rorl %cl,%edi
337 xorl %esi,%edi
338 movl 40(%ebp),%eax
339 subl %eax,%esi
340 movl %edi,%ecx
341 rorl %cl,%esi
342 xorl %edi,%esi
343 movl 36(%ebp),%eax
344 subl %eax,%edi
345 movl %esi,%ecx
346 rorl %cl,%edi
347 xorl %esi,%edi
348 movl 32(%ebp),%eax
349 subl %eax,%esi
350 movl %edi,%ecx
351 rorl %cl,%esi
352 xorl %edi,%esi
353 movl 28(%ebp),%eax
354 subl %eax,%edi
355 movl %esi,%ecx
356 rorl %cl,%edi
357 xorl %esi,%edi
358 movl 24(%ebp),%eax
359 subl %eax,%esi
360 movl %edi,%ecx
361 rorl %cl,%esi
362 xorl %edi,%esi
363 movl 20(%ebp),%eax
364 subl %eax,%edi
365 movl %esi,%ecx
366 rorl %cl,%edi
367 xorl %esi,%edi
368 movl 16(%ebp),%eax
369 subl %eax,%esi
370 movl %edi,%ecx
371 rorl %cl,%esi
372 xorl %edi,%esi
373 movl 12(%ebp),%eax
374 subl %eax,%edi
375 movl %esi,%ecx
376 rorl %cl,%edi
377 xorl %esi,%edi
378 subl 8(%ebp),%esi
379 subl 4(%ebp),%edi
380 .L003rc5_exit:
381 movl %edi,(%edx)
382 movl %esi,4(%edx)
383 popl %ebx
384 popl %edi
385 popl %esi
386 popl %ebp
387 ret
388 .size RC5_32_decrypt,.-.L_RC5_32_decrypt_begin
389 .globl RC5_32_cbc_encrypt
390 .type RC5_32_cbc_encrypt,@function
391 .align 16
392 RC5_32_cbc_encrypt:
393 .L_RC5_32_cbc_encrypt_begin:
394
395 pushl %ebp
396 pushl %ebx
397 pushl %esi
398 pushl %edi
399 movl 28(%esp),%ebp
400
401 movl 36(%esp),%ebx
402 movl (%ebx),%esi
403 movl 4(%ebx),%edi
404 pushl %edi
405 pushl %esi
406 pushl %edi
407 pushl %esi
408 movl %esp,%ebx
409 movl 36(%esp),%esi
410 movl 40(%esp),%edi
411
412 movl 56(%esp),%ecx
413
414 movl 48(%esp),%eax
415 pushl %eax
416 pushl %ebx
417 cmpl $0,%ecx
418 jz .L004decrypt
419 andl $4294967288,%ebp
420 movl 8(%esp),%eax
421 movl 12(%esp),%ebx
422 jz .L005encrypt_finish
423 .L006encrypt_loop:
424 movl (%esi),%ecx
425 movl 4(%esi),%edx
426 xorl %ecx,%eax
427 xorl %edx,%ebx
428 movl %eax,8(%esp)
429 movl %ebx,12(%esp)
430 call .L_RC5_32_encrypt_begin
431 movl 8(%esp),%eax
432 movl 12(%esp),%ebx
433 movl %eax,(%edi)
434 movl %ebx,4(%edi)
435 addl $8,%esi
436 addl $8,%edi
437 subl $8,%ebp
438 jnz .L006encrypt_loop
439 .L005encrypt_finish:
440 movl 52(%esp),%ebp
441 andl $7,%ebp
442 jz .L007finish
443 call .L008PIC_point
444 .L008PIC_point:
445 popl %edx
446 leal .L009cbc_enc_jmp_table-.L008PIC_point(%edx),%ecx
447 movl (%ecx,%ebp,4),%ebp
448 addl %edx,%ebp
449 xorl %ecx,%ecx
450 xorl %edx,%edx
451 jmp *%ebp
452 .L010ej7:
453 movb 6(%esi),%dh
454 shll $8,%edx
455 .L011ej6:
456 movb 5(%esi),%dh
457 .L012ej5:
458 movb 4(%esi),%dl
459 .L013ej4:
460 movl (%esi),%ecx
461 jmp .L014ejend
462 .L015ej3:
463 movb 2(%esi),%ch
464 shll $8,%ecx
465 .L016ej2:
466 movb 1(%esi),%ch
467 .L017ej1:
468 movb (%esi),%cl
469 .L014ejend:
470 xorl %ecx,%eax
471 xorl %edx,%ebx
472 movl %eax,8(%esp)
473 movl %ebx,12(%esp)
474 call .L_RC5_32_encrypt_begin
475 movl 8(%esp),%eax
476 movl 12(%esp),%ebx
477 movl %eax,(%edi)
478 movl %ebx,4(%edi)
479 jmp .L007finish
480 .L004decrypt:
481 andl $4294967288,%ebp
482 movl 16(%esp),%eax
483 movl 20(%esp),%ebx
484 jz .L018decrypt_finish
485 .L019decrypt_loop:
486 movl (%esi),%eax
487 movl 4(%esi),%ebx
488 movl %eax,8(%esp)
489 movl %ebx,12(%esp)
490 call .L_RC5_32_decrypt_begin
491 movl 8(%esp),%eax
492 movl 12(%esp),%ebx
493 movl 16(%esp),%ecx
494 movl 20(%esp),%edx
495 xorl %eax,%ecx
496 xorl %ebx,%edx
497 movl (%esi),%eax
498 movl 4(%esi),%ebx
499 movl %ecx,(%edi)
500 movl %edx,4(%edi)
501 movl %eax,16(%esp)
502 movl %ebx,20(%esp)
503 addl $8,%esi
504 addl $8,%edi
505 subl $8,%ebp
506 jnz .L019decrypt_loop
507 .L018decrypt_finish:
508 movl 52(%esp),%ebp
509 andl $7,%ebp
510 jz .L007finish
511 movl (%esi),%eax
512 movl 4(%esi),%ebx
513 movl %eax,8(%esp)
514 movl %ebx,12(%esp)
515 call .L_RC5_32_decrypt_begin
516 movl 8(%esp),%eax
517 movl 12(%esp),%ebx
518 movl 16(%esp),%ecx
519 movl 20(%esp),%edx
520 xorl %eax,%ecx
521 xorl %ebx,%edx
522 movl (%esi),%eax
523 movl 4(%esi),%ebx
524 .L020dj7:
525 rorl $16,%edx
526 movb %dl,6(%edi)
527 shrl $16,%edx
528 .L021dj6:
529 movb %dh,5(%edi)
530 .L022dj5:
531 movb %dl,4(%edi)
532 .L023dj4:
533 movl %ecx,(%edi)
534 jmp .L024djend
535 .L025dj3:
536 rorl $16,%ecx
537 movb %cl,2(%edi)
538 shll $16,%ecx
539 .L026dj2:
540 movb %ch,1(%esi)
541 .L027dj1:
542 movb %cl,(%esi)
543 .L024djend:
544 jmp .L007finish
545 .L007finish:
546 movl 60(%esp),%ecx
547 addl $24,%esp
548 movl %eax,(%ecx)
549 movl %ebx,4(%ecx)
550 popl %edi
551 popl %esi
552 popl %ebx
553 popl %ebp
554 ret
555 .align 64
556 .L009cbc_enc_jmp_table:
557 .long 0
558 .long .L017ej1-.L008PIC_point
559 .long .L016ej2-.L008PIC_point
560 .long .L015ej3-.L008PIC_point
561 .long .L013ej4-.L008PIC_point
562 .long .L012ej5-.L008PIC_point
563 .long .L011ej6-.L008PIC_point
564 .long .L010ej7-.L008PIC_point
565 .align 64
566 .size RC5_32_cbc_encrypt,.-.L_RC5_32_cbc_encrypt_begin
567 #else
568 .text
569 .globl RC5_32_encrypt
570 .type RC5_32_encrypt,@function
571 .align 16
572 RC5_32_encrypt:
573 .L_RC5_32_encrypt_begin:
574
575 pushl %ebp
576 pushl %esi
577 pushl %edi
578 movl 16(%esp),%edx
579 movl 20(%esp),%ebp
580
581 movl (%edx),%edi
582 movl 4(%edx),%esi
583 pushl %ebx
584 movl (%ebp),%ebx
585 addl 4(%ebp),%edi
586 addl 8(%ebp),%esi
587 xorl %esi,%edi
588 movl 12(%ebp),%eax
589 movl %esi,%ecx
590 roll %cl,%edi
591 addl %eax,%edi
592 xorl %edi,%esi
593 movl 16(%ebp),%eax
594 movl %edi,%ecx
595 roll %cl,%esi
596 addl %eax,%esi
597 xorl %esi,%edi
598 movl 20(%ebp),%eax
599 movl %esi,%ecx
600 roll %cl,%edi
601 addl %eax,%edi
602 xorl %edi,%esi
603 movl 24(%ebp),%eax
604 movl %edi,%ecx
605 roll %cl,%esi
606 addl %eax,%esi
607 xorl %esi,%edi
608 movl 28(%ebp),%eax
609 movl %esi,%ecx
610 roll %cl,%edi
611 addl %eax,%edi
612 xorl %edi,%esi
613 movl 32(%ebp),%eax
614 movl %edi,%ecx
615 roll %cl,%esi
616 addl %eax,%esi
617 xorl %esi,%edi
618 movl 36(%ebp),%eax
619 movl %esi,%ecx
620 roll %cl,%edi
621 addl %eax,%edi
622 xorl %edi,%esi
623 movl 40(%ebp),%eax
624 movl %edi,%ecx
625 roll %cl,%esi
626 addl %eax,%esi
627 xorl %esi,%edi
628 movl 44(%ebp),%eax
629 movl %esi,%ecx
630 roll %cl,%edi
631 addl %eax,%edi
632 xorl %edi,%esi
633 movl 48(%ebp),%eax
634 movl %edi,%ecx
635 roll %cl,%esi
636 addl %eax,%esi
637 xorl %esi,%edi
638 movl 52(%ebp),%eax
639 movl %esi,%ecx
640 roll %cl,%edi
641 addl %eax,%edi
642 xorl %edi,%esi
643 movl 56(%ebp),%eax
644 movl %edi,%ecx
645 roll %cl,%esi
646 addl %eax,%esi
647 xorl %esi,%edi
648 movl 60(%ebp),%eax
649 movl %esi,%ecx
650 roll %cl,%edi
651 addl %eax,%edi
652 xorl %edi,%esi
653 movl 64(%ebp),%eax
654 movl %edi,%ecx
655 roll %cl,%esi
656 addl %eax,%esi
657 xorl %esi,%edi
658 movl 68(%ebp),%eax
659 movl %esi,%ecx
660 roll %cl,%edi
661 addl %eax,%edi
662 xorl %edi,%esi
663 movl 72(%ebp),%eax
664 movl %edi,%ecx
665 roll %cl,%esi
666 addl %eax,%esi
667 cmpl $8,%ebx
668 je .L000rc5_exit
669 xorl %esi,%edi
670 movl 76(%ebp),%eax
671 movl %esi,%ecx
672 roll %cl,%edi
673 addl %eax,%edi
674 xorl %edi,%esi
675 movl 80(%ebp),%eax
676 movl %edi,%ecx
677 roll %cl,%esi
678 addl %eax,%esi
679 xorl %esi,%edi
680 movl 84(%ebp),%eax
681 movl %esi,%ecx
682 roll %cl,%edi
683 addl %eax,%edi
684 xorl %edi,%esi
685 movl 88(%ebp),%eax
686 movl %edi,%ecx
687 roll %cl,%esi
688 addl %eax,%esi
689 xorl %esi,%edi
690 movl 92(%ebp),%eax
691 movl %esi,%ecx
692 roll %cl,%edi
693 addl %eax,%edi
694 xorl %edi,%esi
695 movl 96(%ebp),%eax
696 movl %edi,%ecx
697 roll %cl,%esi
698 addl %eax,%esi
699 xorl %esi,%edi
700 movl 100(%ebp),%eax
701 movl %esi,%ecx
702 roll %cl,%edi
703 addl %eax,%edi
704 xorl %edi,%esi
705 movl 104(%ebp),%eax
706 movl %edi,%ecx
707 roll %cl,%esi
708 addl %eax,%esi
709 cmpl $12,%ebx
710 je .L000rc5_exit
711 xorl %esi,%edi
712 movl 108(%ebp),%eax
713 movl %esi,%ecx
714 roll %cl,%edi
715 addl %eax,%edi
716 xorl %edi,%esi
717 movl 112(%ebp),%eax
718 movl %edi,%ecx
719 roll %cl,%esi
720 addl %eax,%esi
721 xorl %esi,%edi
722 movl 116(%ebp),%eax
723 movl %esi,%ecx
724 roll %cl,%edi
725 addl %eax,%edi
726 xorl %edi,%esi
727 movl 120(%ebp),%eax
728 movl %edi,%ecx
729 roll %cl,%esi
730 addl %eax,%esi
731 xorl %esi,%edi
732 movl 124(%ebp),%eax
733 movl %esi,%ecx
734 roll %cl,%edi
735 addl %eax,%edi
736 xorl %edi,%esi
737 movl 128(%ebp),%eax
738 movl %edi,%ecx
739 roll %cl,%esi
740 addl %eax,%esi
741 xorl %esi,%edi
742 movl 132(%ebp),%eax
743 movl %esi,%ecx
744 roll %cl,%edi
745 addl %eax,%edi
746 xorl %edi,%esi
747 movl 136(%ebp),%eax
748 movl %edi,%ecx
749 roll %cl,%esi
750 addl %eax,%esi
751 .L000rc5_exit:
752 movl %edi,(%edx)
753 movl %esi,4(%edx)
754 popl %ebx
755 popl %edi
756 popl %esi
757 popl %ebp
758 ret
759 .size RC5_32_encrypt,.-.L_RC5_32_encrypt_begin
760 .globl RC5_32_decrypt
761 .type RC5_32_decrypt,@function
762 .align 16
763 RC5_32_decrypt:
764 .L_RC5_32_decrypt_begin:
765
766 pushl %ebp
767 pushl %esi
768 pushl %edi
769 movl 16(%esp),%edx
770 movl 20(%esp),%ebp
771
772 movl (%edx),%edi
773 movl 4(%edx),%esi
774 pushl %ebx
775 movl (%ebp),%ebx
776 cmpl $12,%ebx
777 je .L001rc5_dec_12
778 cmpl $8,%ebx
779 je .L002rc5_dec_8
780 movl 136(%ebp),%eax
781 subl %eax,%esi
782 movl %edi,%ecx
783 rorl %cl,%esi
784 xorl %edi,%esi
785 movl 132(%ebp),%eax
786 subl %eax,%edi
787 movl %esi,%ecx
788 rorl %cl,%edi
789 xorl %esi,%edi
790 movl 128(%ebp),%eax
791 subl %eax,%esi
792 movl %edi,%ecx
793 rorl %cl,%esi
794 xorl %edi,%esi
795 movl 124(%ebp),%eax
796 subl %eax,%edi
797 movl %esi,%ecx
798 rorl %cl,%edi
799 xorl %esi,%edi
800 movl 120(%ebp),%eax
801 subl %eax,%esi
802 movl %edi,%ecx
803 rorl %cl,%esi
804 xorl %edi,%esi
805 movl 116(%ebp),%eax
806 subl %eax,%edi
807 movl %esi,%ecx
808 rorl %cl,%edi
809 xorl %esi,%edi
810 movl 112(%ebp),%eax
811 subl %eax,%esi
812 movl %edi,%ecx
813 rorl %cl,%esi
814 xorl %edi,%esi
815 movl 108(%ebp),%eax
816 subl %eax,%edi
817 movl %esi,%ecx
818 rorl %cl,%edi
819 xorl %esi,%edi
820 .L001rc5_dec_12:
821 movl 104(%ebp),%eax
822 subl %eax,%esi
823 movl %edi,%ecx
824 rorl %cl,%esi
825 xorl %edi,%esi
826 movl 100(%ebp),%eax
827 subl %eax,%edi
828 movl %esi,%ecx
829 rorl %cl,%edi
830 xorl %esi,%edi
831 movl 96(%ebp),%eax
832 subl %eax,%esi
833 movl %edi,%ecx
834 rorl %cl,%esi
835 xorl %edi,%esi
836 movl 92(%ebp),%eax
837 subl %eax,%edi
838 movl %esi,%ecx
839 rorl %cl,%edi
840 xorl %esi,%edi
841 movl 88(%ebp),%eax
842 subl %eax,%esi
843 movl %edi,%ecx
844 rorl %cl,%esi
845 xorl %edi,%esi
846 movl 84(%ebp),%eax
847 subl %eax,%edi
848 movl %esi,%ecx
849 rorl %cl,%edi
850 xorl %esi,%edi
851 movl 80(%ebp),%eax
852 subl %eax,%esi
853 movl %edi,%ecx
854 rorl %cl,%esi
855 xorl %edi,%esi
856 movl 76(%ebp),%eax
857 subl %eax,%edi
858 movl %esi,%ecx
859 rorl %cl,%edi
860 xorl %esi,%edi
861 .L002rc5_dec_8:
862 movl 72(%ebp),%eax
863 subl %eax,%esi
864 movl %edi,%ecx
865 rorl %cl,%esi
866 xorl %edi,%esi
867 movl 68(%ebp),%eax
868 subl %eax,%edi
869 movl %esi,%ecx
870 rorl %cl,%edi
871 xorl %esi,%edi
872 movl 64(%ebp),%eax
873 subl %eax,%esi
874 movl %edi,%ecx
875 rorl %cl,%esi
876 xorl %edi,%esi
877 movl 60(%ebp),%eax
878 subl %eax,%edi
879 movl %esi,%ecx
880 rorl %cl,%edi
881 xorl %esi,%edi
882 movl 56(%ebp),%eax
883 subl %eax,%esi
884 movl %edi,%ecx
885 rorl %cl,%esi
886 xorl %edi,%esi
887 movl 52(%ebp),%eax
888 subl %eax,%edi
889 movl %esi,%ecx
890 rorl %cl,%edi
891 xorl %esi,%edi
892 movl 48(%ebp),%eax
893 subl %eax,%esi
894 movl %edi,%ecx
895 rorl %cl,%esi
896 xorl %edi,%esi
897 movl 44(%ebp),%eax
898 subl %eax,%edi
899 movl %esi,%ecx
900 rorl %cl,%edi
901 xorl %esi,%edi
902 movl 40(%ebp),%eax
903 subl %eax,%esi
904 movl %edi,%ecx
905 rorl %cl,%esi
906 xorl %edi,%esi
907 movl 36(%ebp),%eax
908 subl %eax,%edi
909 movl %esi,%ecx
910 rorl %cl,%edi
911 xorl %esi,%edi
912 movl 32(%ebp),%eax
913 subl %eax,%esi
914 movl %edi,%ecx
915 rorl %cl,%esi
916 xorl %edi,%esi
917 movl 28(%ebp),%eax
918 subl %eax,%edi
919 movl %esi,%ecx
920 rorl %cl,%edi
921 xorl %esi,%edi
922 movl 24(%ebp),%eax
923 subl %eax,%esi
924 movl %edi,%ecx
925 rorl %cl,%esi
926 xorl %edi,%esi
927 movl 20(%ebp),%eax
928 subl %eax,%edi
929 movl %esi,%ecx
930 rorl %cl,%edi
931 xorl %esi,%edi
932 movl 16(%ebp),%eax
933 subl %eax,%esi
934 movl %edi,%ecx
935 rorl %cl,%esi
936 xorl %edi,%esi
937 movl 12(%ebp),%eax
938 subl %eax,%edi
939 movl %esi,%ecx
940 rorl %cl,%edi
941 xorl %esi,%edi
942 subl 8(%ebp),%esi
943 subl 4(%ebp),%edi
944 .L003rc5_exit:
945 movl %edi,(%edx)
946 movl %esi,4(%edx)
947 popl %ebx
948 popl %edi
949 popl %esi
950 popl %ebp
951 ret
952 .size RC5_32_decrypt,.-.L_RC5_32_decrypt_begin
953 .globl RC5_32_cbc_encrypt
954 .type RC5_32_cbc_encrypt,@function
955 .align 16
956 RC5_32_cbc_encrypt:
957 .L_RC5_32_cbc_encrypt_begin:
958
959 pushl %ebp
960 pushl %ebx
961 pushl %esi
962 pushl %edi
963 movl 28(%esp),%ebp
964
965 movl 36(%esp),%ebx
966 movl (%ebx),%esi
967 movl 4(%ebx),%edi
968 pushl %edi
969 pushl %esi
970 pushl %edi
971 pushl %esi
972 movl %esp,%ebx
973 movl 36(%esp),%esi
974 movl 40(%esp),%edi
975
976 movl 56(%esp),%ecx
977
978 movl 48(%esp),%eax
979 pushl %eax
980 pushl %ebx
981 cmpl $0,%ecx
982 jz .L004decrypt
983 andl $4294967288,%ebp
984 movl 8(%esp),%eax
985 movl 12(%esp),%ebx
986 jz .L005encrypt_finish
987 .L006encrypt_loop:
988 movl (%esi),%ecx
989 movl 4(%esi),%edx
990 xorl %ecx,%eax
991 xorl %edx,%ebx
992 movl %eax,8(%esp)
993 movl %ebx,12(%esp)
994 call .L_RC5_32_encrypt_begin
995 movl 8(%esp),%eax
996 movl 12(%esp),%ebx
997 movl %eax,(%edi)
998 movl %ebx,4(%edi)
999 addl $8,%esi
1000 addl $8,%edi
1001 subl $8,%ebp
1002 jnz .L006encrypt_loop
1003 .L005encrypt_finish:
1004 movl 52(%esp),%ebp
1005 andl $7,%ebp
1006 jz .L007finish
1007 call .L008PIC_point
1008 .L008PIC_point:
1009 popl %edx
1010 leal .L009cbc_enc_jmp_table-.L008PIC_point(%edx),%ecx
1011 movl (%ecx,%ebp,4),%ebp
1012 addl %edx,%ebp
1013 xorl %ecx,%ecx
1014 xorl %edx,%edx
1015 jmp *%ebp
1016 .L010ej7:
1017 movb 6(%esi),%dh
1018 shll $8,%edx
1019 .L011ej6:
1020 movb 5(%esi),%dh
1021 .L012ej5:
1022 movb 4(%esi),%dl
1023 .L013ej4:
1024 movl (%esi),%ecx
1025 jmp .L014ejend
1026 .L015ej3:
1027 movb 2(%esi),%ch
1028 shll $8,%ecx
1029 .L016ej2:
1030 movb 1(%esi),%ch
1031 .L017ej1:
1032 movb (%esi),%cl
1033 .L014ejend:
1034 xorl %ecx,%eax
1035 xorl %edx,%ebx
1036 movl %eax,8(%esp)
1037 movl %ebx,12(%esp)
1038 call .L_RC5_32_encrypt_begin
1039 movl 8(%esp),%eax
1040 movl 12(%esp),%ebx
1041 movl %eax,(%edi)
1042 movl %ebx,4(%edi)
1043 jmp .L007finish
1044 .L004decrypt:
1045 andl $4294967288,%ebp
1046 movl 16(%esp),%eax
1047 movl 20(%esp),%ebx
1048 jz .L018decrypt_finish
1049 .L019decrypt_loop:
1050 movl (%esi),%eax
1051 movl 4(%esi),%ebx
1052 movl %eax,8(%esp)
1053 movl %ebx,12(%esp)
1054 call .L_RC5_32_decrypt_begin
1055 movl 8(%esp),%eax
1056 movl 12(%esp),%ebx
1057 movl 16(%esp),%ecx
1058 movl 20(%esp),%edx
1059 xorl %eax,%ecx
1060 xorl %ebx,%edx
1061 movl (%esi),%eax
1062 movl 4(%esi),%ebx
1063 movl %ecx,(%edi)
1064 movl %edx,4(%edi)
1065 movl %eax,16(%esp)
1066 movl %ebx,20(%esp)
1067 addl $8,%esi
1068 addl $8,%edi
1069 subl $8,%ebp
1070 jnz .L019decrypt_loop
1071 .L018decrypt_finish:
1072 movl 52(%esp),%ebp
1073 andl $7,%ebp
1074 jz .L007finish
1075 movl (%esi),%eax
1076 movl 4(%esi),%ebx
1077 movl %eax,8(%esp)
1078 movl %ebx,12(%esp)
1079 call .L_RC5_32_decrypt_begin
1080 movl 8(%esp),%eax
1081 movl 12(%esp),%ebx
1082 movl 16(%esp),%ecx
1083 movl 20(%esp),%edx
1084 xorl %eax,%ecx
1085 xorl %ebx,%edx
1086 movl (%esi),%eax
1087 movl 4(%esi),%ebx
1088 .L020dj7:
1089 rorl $16,%edx
1090 movb %dl,6(%edi)
1091 shrl $16,%edx
1092 .L021dj6:
1093 movb %dh,5(%edi)
1094 .L022dj5:
1095 movb %dl,4(%edi)
1096 .L023dj4:
1097 movl %ecx,(%edi)
1098 jmp .L024djend
1099 .L025dj3:
1100 rorl $16,%ecx
1101 movb %cl,2(%edi)
1102 shll $16,%ecx
1103 .L026dj2:
1104 movb %ch,1(%esi)
1105 .L027dj1:
1106 movb %cl,(%esi)
1107 .L024djend:
1108 jmp .L007finish
1109 .L007finish:
1110 movl 60(%esp),%ecx
1111 addl $24,%esp
1112 movl %eax,(%ecx)
1113 movl %ebx,4(%ecx)
1114 popl %edi
1115 popl %esi
1116 popl %ebx
1117 popl %ebp
1118 ret
1119 .align 64
1120 .L009cbc_enc_jmp_table:
1121 .long 0
1122 .long .L017ej1-.L008PIC_point
1123 .long .L016ej2-.L008PIC_point
1124 .long .L015ej3-.L008PIC_point
1125 .long .L013ej4-.L008PIC_point
1126 .long .L012ej5-.L008PIC_point
1127 .long .L011ej6-.L008PIC_point
1128 .long .L010ej7-.L008PIC_point
1129 .align 64
1130 .size RC5_32_cbc_encrypt,.-.L_RC5_32_cbc_encrypt_begin
1131 #endif
Cache object: f4f61a76a1c124e99aa702a49df5eff7
|