]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/blob - secure/lib/libcrypto/i386/rc5-586.S
Regen assembly files for i386.
[FreeBSD/FreeBSD.git] / secure / lib / libcrypto / i386 / rc5-586.S
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