1 /* $FreeBSD$ */
2 /* Do not modify. This file is auto-generated from bf-586.pl. */
3 #ifdef PIC
4 .text
5 .globl BF_encrypt
6 .type BF_encrypt,@function
7 .align 16
8 BF_encrypt:
9 .L_BF_encrypt_begin:
10
11 pushl %ebp
12 pushl %ebx
13 movl 12(%esp),%ebx
14 movl 16(%esp),%ebp
15 pushl %esi
16 pushl %edi
17
18 movl (%ebx),%edi
19 movl 4(%ebx),%esi
20 xorl %eax,%eax
21 movl (%ebp),%ebx
22 xorl %ecx,%ecx
23 xorl %ebx,%edi
24
25
26 movl 4(%ebp),%edx
27 movl %edi,%ebx
28 xorl %edx,%esi
29 shrl $16,%ebx
30 movl %edi,%edx
31 movb %bh,%al
32 andl $255,%ebx
33 movb %dh,%cl
34 andl $255,%edx
35 movl 72(%ebp,%eax,4),%eax
36 movl 1096(%ebp,%ebx,4),%ebx
37 addl %eax,%ebx
38 movl 2120(%ebp,%ecx,4),%eax
39 xorl %eax,%ebx
40 movl 3144(%ebp,%edx,4),%edx
41 addl %edx,%ebx
42 xorl %eax,%eax
43 xorl %ebx,%esi
44
45
46 movl 8(%ebp),%edx
47 movl %esi,%ebx
48 xorl %edx,%edi
49 shrl $16,%ebx
50 movl %esi,%edx
51 movb %bh,%al
52 andl $255,%ebx
53 movb %dh,%cl
54 andl $255,%edx
55 movl 72(%ebp,%eax,4),%eax
56 movl 1096(%ebp,%ebx,4),%ebx
57 addl %eax,%ebx
58 movl 2120(%ebp,%ecx,4),%eax
59 xorl %eax,%ebx
60 movl 3144(%ebp,%edx,4),%edx
61 addl %edx,%ebx
62 xorl %eax,%eax
63 xorl %ebx,%edi
64
65
66 movl 12(%ebp),%edx
67 movl %edi,%ebx
68 xorl %edx,%esi
69 shrl $16,%ebx
70 movl %edi,%edx
71 movb %bh,%al
72 andl $255,%ebx
73 movb %dh,%cl
74 andl $255,%edx
75 movl 72(%ebp,%eax,4),%eax
76 movl 1096(%ebp,%ebx,4),%ebx
77 addl %eax,%ebx
78 movl 2120(%ebp,%ecx,4),%eax
79 xorl %eax,%ebx
80 movl 3144(%ebp,%edx,4),%edx
81 addl %edx,%ebx
82 xorl %eax,%eax
83 xorl %ebx,%esi
84
85
86 movl 16(%ebp),%edx
87 movl %esi,%ebx
88 xorl %edx,%edi
89 shrl $16,%ebx
90 movl %esi,%edx
91 movb %bh,%al
92 andl $255,%ebx
93 movb %dh,%cl
94 andl $255,%edx
95 movl 72(%ebp,%eax,4),%eax
96 movl 1096(%ebp,%ebx,4),%ebx
97 addl %eax,%ebx
98 movl 2120(%ebp,%ecx,4),%eax
99 xorl %eax,%ebx
100 movl 3144(%ebp,%edx,4),%edx
101 addl %edx,%ebx
102 xorl %eax,%eax
103 xorl %ebx,%edi
104
105
106 movl 20(%ebp),%edx
107 movl %edi,%ebx
108 xorl %edx,%esi
109 shrl $16,%ebx
110 movl %edi,%edx
111 movb %bh,%al
112 andl $255,%ebx
113 movb %dh,%cl
114 andl $255,%edx
115 movl 72(%ebp,%eax,4),%eax
116 movl 1096(%ebp,%ebx,4),%ebx
117 addl %eax,%ebx
118 movl 2120(%ebp,%ecx,4),%eax
119 xorl %eax,%ebx
120 movl 3144(%ebp,%edx,4),%edx
121 addl %edx,%ebx
122 xorl %eax,%eax
123 xorl %ebx,%esi
124
125
126 movl 24(%ebp),%edx
127 movl %esi,%ebx
128 xorl %edx,%edi
129 shrl $16,%ebx
130 movl %esi,%edx
131 movb %bh,%al
132 andl $255,%ebx
133 movb %dh,%cl
134 andl $255,%edx
135 movl 72(%ebp,%eax,4),%eax
136 movl 1096(%ebp,%ebx,4),%ebx
137 addl %eax,%ebx
138 movl 2120(%ebp,%ecx,4),%eax
139 xorl %eax,%ebx
140 movl 3144(%ebp,%edx,4),%edx
141 addl %edx,%ebx
142 xorl %eax,%eax
143 xorl %ebx,%edi
144
145
146 movl 28(%ebp),%edx
147 movl %edi,%ebx
148 xorl %edx,%esi
149 shrl $16,%ebx
150 movl %edi,%edx
151 movb %bh,%al
152 andl $255,%ebx
153 movb %dh,%cl
154 andl $255,%edx
155 movl 72(%ebp,%eax,4),%eax
156 movl 1096(%ebp,%ebx,4),%ebx
157 addl %eax,%ebx
158 movl 2120(%ebp,%ecx,4),%eax
159 xorl %eax,%ebx
160 movl 3144(%ebp,%edx,4),%edx
161 addl %edx,%ebx
162 xorl %eax,%eax
163 xorl %ebx,%esi
164
165
166 movl 32(%ebp),%edx
167 movl %esi,%ebx
168 xorl %edx,%edi
169 shrl $16,%ebx
170 movl %esi,%edx
171 movb %bh,%al
172 andl $255,%ebx
173 movb %dh,%cl
174 andl $255,%edx
175 movl 72(%ebp,%eax,4),%eax
176 movl 1096(%ebp,%ebx,4),%ebx
177 addl %eax,%ebx
178 movl 2120(%ebp,%ecx,4),%eax
179 xorl %eax,%ebx
180 movl 3144(%ebp,%edx,4),%edx
181 addl %edx,%ebx
182 xorl %eax,%eax
183 xorl %ebx,%edi
184
185
186 movl 36(%ebp),%edx
187 movl %edi,%ebx
188 xorl %edx,%esi
189 shrl $16,%ebx
190 movl %edi,%edx
191 movb %bh,%al
192 andl $255,%ebx
193 movb %dh,%cl
194 andl $255,%edx
195 movl 72(%ebp,%eax,4),%eax
196 movl 1096(%ebp,%ebx,4),%ebx
197 addl %eax,%ebx
198 movl 2120(%ebp,%ecx,4),%eax
199 xorl %eax,%ebx
200 movl 3144(%ebp,%edx,4),%edx
201 addl %edx,%ebx
202 xorl %eax,%eax
203 xorl %ebx,%esi
204
205
206 movl 40(%ebp),%edx
207 movl %esi,%ebx
208 xorl %edx,%edi
209 shrl $16,%ebx
210 movl %esi,%edx
211 movb %bh,%al
212 andl $255,%ebx
213 movb %dh,%cl
214 andl $255,%edx
215 movl 72(%ebp,%eax,4),%eax
216 movl 1096(%ebp,%ebx,4),%ebx
217 addl %eax,%ebx
218 movl 2120(%ebp,%ecx,4),%eax
219 xorl %eax,%ebx
220 movl 3144(%ebp,%edx,4),%edx
221 addl %edx,%ebx
222 xorl %eax,%eax
223 xorl %ebx,%edi
224
225
226 movl 44(%ebp),%edx
227 movl %edi,%ebx
228 xorl %edx,%esi
229 shrl $16,%ebx
230 movl %edi,%edx
231 movb %bh,%al
232 andl $255,%ebx
233 movb %dh,%cl
234 andl $255,%edx
235 movl 72(%ebp,%eax,4),%eax
236 movl 1096(%ebp,%ebx,4),%ebx
237 addl %eax,%ebx
238 movl 2120(%ebp,%ecx,4),%eax
239 xorl %eax,%ebx
240 movl 3144(%ebp,%edx,4),%edx
241 addl %edx,%ebx
242 xorl %eax,%eax
243 xorl %ebx,%esi
244
245
246 movl 48(%ebp),%edx
247 movl %esi,%ebx
248 xorl %edx,%edi
249 shrl $16,%ebx
250 movl %esi,%edx
251 movb %bh,%al
252 andl $255,%ebx
253 movb %dh,%cl
254 andl $255,%edx
255 movl 72(%ebp,%eax,4),%eax
256 movl 1096(%ebp,%ebx,4),%ebx
257 addl %eax,%ebx
258 movl 2120(%ebp,%ecx,4),%eax
259 xorl %eax,%ebx
260 movl 3144(%ebp,%edx,4),%edx
261 addl %edx,%ebx
262 xorl %eax,%eax
263 xorl %ebx,%edi
264
265
266 movl 52(%ebp),%edx
267 movl %edi,%ebx
268 xorl %edx,%esi
269 shrl $16,%ebx
270 movl %edi,%edx
271 movb %bh,%al
272 andl $255,%ebx
273 movb %dh,%cl
274 andl $255,%edx
275 movl 72(%ebp,%eax,4),%eax
276 movl 1096(%ebp,%ebx,4),%ebx
277 addl %eax,%ebx
278 movl 2120(%ebp,%ecx,4),%eax
279 xorl %eax,%ebx
280 movl 3144(%ebp,%edx,4),%edx
281 addl %edx,%ebx
282 xorl %eax,%eax
283 xorl %ebx,%esi
284
285
286 movl 56(%ebp),%edx
287 movl %esi,%ebx
288 xorl %edx,%edi
289 shrl $16,%ebx
290 movl %esi,%edx
291 movb %bh,%al
292 andl $255,%ebx
293 movb %dh,%cl
294 andl $255,%edx
295 movl 72(%ebp,%eax,4),%eax
296 movl 1096(%ebp,%ebx,4),%ebx
297 addl %eax,%ebx
298 movl 2120(%ebp,%ecx,4),%eax
299 xorl %eax,%ebx
300 movl 3144(%ebp,%edx,4),%edx
301 addl %edx,%ebx
302 xorl %eax,%eax
303 xorl %ebx,%edi
304
305
306 movl 60(%ebp),%edx
307 movl %edi,%ebx
308 xorl %edx,%esi
309 shrl $16,%ebx
310 movl %edi,%edx
311 movb %bh,%al
312 andl $255,%ebx
313 movb %dh,%cl
314 andl $255,%edx
315 movl 72(%ebp,%eax,4),%eax
316 movl 1096(%ebp,%ebx,4),%ebx
317 addl %eax,%ebx
318 movl 2120(%ebp,%ecx,4),%eax
319 xorl %eax,%ebx
320 movl 3144(%ebp,%edx,4),%edx
321 addl %edx,%ebx
322 xorl %eax,%eax
323 xorl %ebx,%esi
324
325
326 movl 64(%ebp),%edx
327 movl %esi,%ebx
328 xorl %edx,%edi
329 shrl $16,%ebx
330 movl %esi,%edx
331 movb %bh,%al
332 andl $255,%ebx
333 movb %dh,%cl
334 andl $255,%edx
335 movl 72(%ebp,%eax,4),%eax
336 movl 1096(%ebp,%ebx,4),%ebx
337 addl %eax,%ebx
338 movl 2120(%ebp,%ecx,4),%eax
339 xorl %eax,%ebx
340 movl 3144(%ebp,%edx,4),%edx
341 addl %edx,%ebx
342
343 movl 20(%esp),%eax
344 xorl %ebx,%edi
345 movl 68(%ebp),%edx
346 xorl %edx,%esi
347 movl %edi,4(%eax)
348 movl %esi,(%eax)
349 popl %edi
350 popl %esi
351 popl %ebx
352 popl %ebp
353 ret
354 .size BF_encrypt,.-.L_BF_encrypt_begin
355 .globl BF_decrypt
356 .type BF_decrypt,@function
357 .align 16
358 BF_decrypt:
359 .L_BF_decrypt_begin:
360
361 pushl %ebp
362 pushl %ebx
363 movl 12(%esp),%ebx
364 movl 16(%esp),%ebp
365 pushl %esi
366 pushl %edi
367
368 movl (%ebx),%edi
369 movl 4(%ebx),%esi
370 xorl %eax,%eax
371 movl 68(%ebp),%ebx
372 xorl %ecx,%ecx
373 xorl %ebx,%edi
374
375
376 movl 64(%ebp),%edx
377 movl %edi,%ebx
378 xorl %edx,%esi
379 shrl $16,%ebx
380 movl %edi,%edx
381 movb %bh,%al
382 andl $255,%ebx
383 movb %dh,%cl
384 andl $255,%edx
385 movl 72(%ebp,%eax,4),%eax
386 movl 1096(%ebp,%ebx,4),%ebx
387 addl %eax,%ebx
388 movl 2120(%ebp,%ecx,4),%eax
389 xorl %eax,%ebx
390 movl 3144(%ebp,%edx,4),%edx
391 addl %edx,%ebx
392 xorl %eax,%eax
393 xorl %ebx,%esi
394
395
396 movl 60(%ebp),%edx
397 movl %esi,%ebx
398 xorl %edx,%edi
399 shrl $16,%ebx
400 movl %esi,%edx
401 movb %bh,%al
402 andl $255,%ebx
403 movb %dh,%cl
404 andl $255,%edx
405 movl 72(%ebp,%eax,4),%eax
406 movl 1096(%ebp,%ebx,4),%ebx
407 addl %eax,%ebx
408 movl 2120(%ebp,%ecx,4),%eax
409 xorl %eax,%ebx
410 movl 3144(%ebp,%edx,4),%edx
411 addl %edx,%ebx
412 xorl %eax,%eax
413 xorl %ebx,%edi
414
415
416 movl 56(%ebp),%edx
417 movl %edi,%ebx
418 xorl %edx,%esi
419 shrl $16,%ebx
420 movl %edi,%edx
421 movb %bh,%al
422 andl $255,%ebx
423 movb %dh,%cl
424 andl $255,%edx
425 movl 72(%ebp,%eax,4),%eax
426 movl 1096(%ebp,%ebx,4),%ebx
427 addl %eax,%ebx
428 movl 2120(%ebp,%ecx,4),%eax
429 xorl %eax,%ebx
430 movl 3144(%ebp,%edx,4),%edx
431 addl %edx,%ebx
432 xorl %eax,%eax
433 xorl %ebx,%esi
434
435
436 movl 52(%ebp),%edx
437 movl %esi,%ebx
438 xorl %edx,%edi
439 shrl $16,%ebx
440 movl %esi,%edx
441 movb %bh,%al
442 andl $255,%ebx
443 movb %dh,%cl
444 andl $255,%edx
445 movl 72(%ebp,%eax,4),%eax
446 movl 1096(%ebp,%ebx,4),%ebx
447 addl %eax,%ebx
448 movl 2120(%ebp,%ecx,4),%eax
449 xorl %eax,%ebx
450 movl 3144(%ebp,%edx,4),%edx
451 addl %edx,%ebx
452 xorl %eax,%eax
453 xorl %ebx,%edi
454
455
456 movl 48(%ebp),%edx
457 movl %edi,%ebx
458 xorl %edx,%esi
459 shrl $16,%ebx
460 movl %edi,%edx
461 movb %bh,%al
462 andl $255,%ebx
463 movb %dh,%cl
464 andl $255,%edx
465 movl 72(%ebp,%eax,4),%eax
466 movl 1096(%ebp,%ebx,4),%ebx
467 addl %eax,%ebx
468 movl 2120(%ebp,%ecx,4),%eax
469 xorl %eax,%ebx
470 movl 3144(%ebp,%edx,4),%edx
471 addl %edx,%ebx
472 xorl %eax,%eax
473 xorl %ebx,%esi
474
475
476 movl 44(%ebp),%edx
477 movl %esi,%ebx
478 xorl %edx,%edi
479 shrl $16,%ebx
480 movl %esi,%edx
481 movb %bh,%al
482 andl $255,%ebx
483 movb %dh,%cl
484 andl $255,%edx
485 movl 72(%ebp,%eax,4),%eax
486 movl 1096(%ebp,%ebx,4),%ebx
487 addl %eax,%ebx
488 movl 2120(%ebp,%ecx,4),%eax
489 xorl %eax,%ebx
490 movl 3144(%ebp,%edx,4),%edx
491 addl %edx,%ebx
492 xorl %eax,%eax
493 xorl %ebx,%edi
494
495
496 movl 40(%ebp),%edx
497 movl %edi,%ebx
498 xorl %edx,%esi
499 shrl $16,%ebx
500 movl %edi,%edx
501 movb %bh,%al
502 andl $255,%ebx
503 movb %dh,%cl
504 andl $255,%edx
505 movl 72(%ebp,%eax,4),%eax
506 movl 1096(%ebp,%ebx,4),%ebx
507 addl %eax,%ebx
508 movl 2120(%ebp,%ecx,4),%eax
509 xorl %eax,%ebx
510 movl 3144(%ebp,%edx,4),%edx
511 addl %edx,%ebx
512 xorl %eax,%eax
513 xorl %ebx,%esi
514
515
516 movl 36(%ebp),%edx
517 movl %esi,%ebx
518 xorl %edx,%edi
519 shrl $16,%ebx
520 movl %esi,%edx
521 movb %bh,%al
522 andl $255,%ebx
523 movb %dh,%cl
524 andl $255,%edx
525 movl 72(%ebp,%eax,4),%eax
526 movl 1096(%ebp,%ebx,4),%ebx
527 addl %eax,%ebx
528 movl 2120(%ebp,%ecx,4),%eax
529 xorl %eax,%ebx
530 movl 3144(%ebp,%edx,4),%edx
531 addl %edx,%ebx
532 xorl %eax,%eax
533 xorl %ebx,%edi
534
535
536 movl 32(%ebp),%edx
537 movl %edi,%ebx
538 xorl %edx,%esi
539 shrl $16,%ebx
540 movl %edi,%edx
541 movb %bh,%al
542 andl $255,%ebx
543 movb %dh,%cl
544 andl $255,%edx
545 movl 72(%ebp,%eax,4),%eax
546 movl 1096(%ebp,%ebx,4),%ebx
547 addl %eax,%ebx
548 movl 2120(%ebp,%ecx,4),%eax
549 xorl %eax,%ebx
550 movl 3144(%ebp,%edx,4),%edx
551 addl %edx,%ebx
552 xorl %eax,%eax
553 xorl %ebx,%esi
554
555
556 movl 28(%ebp),%edx
557 movl %esi,%ebx
558 xorl %edx,%edi
559 shrl $16,%ebx
560 movl %esi,%edx
561 movb %bh,%al
562 andl $255,%ebx
563 movb %dh,%cl
564 andl $255,%edx
565 movl 72(%ebp,%eax,4),%eax
566 movl 1096(%ebp,%ebx,4),%ebx
567 addl %eax,%ebx
568 movl 2120(%ebp,%ecx,4),%eax
569 xorl %eax,%ebx
570 movl 3144(%ebp,%edx,4),%edx
571 addl %edx,%ebx
572 xorl %eax,%eax
573 xorl %ebx,%edi
574
575
576 movl 24(%ebp),%edx
577 movl %edi,%ebx
578 xorl %edx,%esi
579 shrl $16,%ebx
580 movl %edi,%edx
581 movb %bh,%al
582 andl $255,%ebx
583 movb %dh,%cl
584 andl $255,%edx
585 movl 72(%ebp,%eax,4),%eax
586 movl 1096(%ebp,%ebx,4),%ebx
587 addl %eax,%ebx
588 movl 2120(%ebp,%ecx,4),%eax
589 xorl %eax,%ebx
590 movl 3144(%ebp,%edx,4),%edx
591 addl %edx,%ebx
592 xorl %eax,%eax
593 xorl %ebx,%esi
594
595
596 movl 20(%ebp),%edx
597 movl %esi,%ebx
598 xorl %edx,%edi
599 shrl $16,%ebx
600 movl %esi,%edx
601 movb %bh,%al
602 andl $255,%ebx
603 movb %dh,%cl
604 andl $255,%edx
605 movl 72(%ebp,%eax,4),%eax
606 movl 1096(%ebp,%ebx,4),%ebx
607 addl %eax,%ebx
608 movl 2120(%ebp,%ecx,4),%eax
609 xorl %eax,%ebx
610 movl 3144(%ebp,%edx,4),%edx
611 addl %edx,%ebx
612 xorl %eax,%eax
613 xorl %ebx,%edi
614
615
616 movl 16(%ebp),%edx
617 movl %edi,%ebx
618 xorl %edx,%esi
619 shrl $16,%ebx
620 movl %edi,%edx
621 movb %bh,%al
622 andl $255,%ebx
623 movb %dh,%cl
624 andl $255,%edx
625 movl 72(%ebp,%eax,4),%eax
626 movl 1096(%ebp,%ebx,4),%ebx
627 addl %eax,%ebx
628 movl 2120(%ebp,%ecx,4),%eax
629 xorl %eax,%ebx
630 movl 3144(%ebp,%edx,4),%edx
631 addl %edx,%ebx
632 xorl %eax,%eax
633 xorl %ebx,%esi
634
635
636 movl 12(%ebp),%edx
637 movl %esi,%ebx
638 xorl %edx,%edi
639 shrl $16,%ebx
640 movl %esi,%edx
641 movb %bh,%al
642 andl $255,%ebx
643 movb %dh,%cl
644 andl $255,%edx
645 movl 72(%ebp,%eax,4),%eax
646 movl 1096(%ebp,%ebx,4),%ebx
647 addl %eax,%ebx
648 movl 2120(%ebp,%ecx,4),%eax
649 xorl %eax,%ebx
650 movl 3144(%ebp,%edx,4),%edx
651 addl %edx,%ebx
652 xorl %eax,%eax
653 xorl %ebx,%edi
654
655
656 movl 8(%ebp),%edx
657 movl %edi,%ebx
658 xorl %edx,%esi
659 shrl $16,%ebx
660 movl %edi,%edx
661 movb %bh,%al
662 andl $255,%ebx
663 movb %dh,%cl
664 andl $255,%edx
665 movl 72(%ebp,%eax,4),%eax
666 movl 1096(%ebp,%ebx,4),%ebx
667 addl %eax,%ebx
668 movl 2120(%ebp,%ecx,4),%eax
669 xorl %eax,%ebx
670 movl 3144(%ebp,%edx,4),%edx
671 addl %edx,%ebx
672 xorl %eax,%eax
673 xorl %ebx,%esi
674
675
676 movl 4(%ebp),%edx
677 movl %esi,%ebx
678 xorl %edx,%edi
679 shrl $16,%ebx
680 movl %esi,%edx
681 movb %bh,%al
682 andl $255,%ebx
683 movb %dh,%cl
684 andl $255,%edx
685 movl 72(%ebp,%eax,4),%eax
686 movl 1096(%ebp,%ebx,4),%ebx
687 addl %eax,%ebx
688 movl 2120(%ebp,%ecx,4),%eax
689 xorl %eax,%ebx
690 movl 3144(%ebp,%edx,4),%edx
691 addl %edx,%ebx
692
693 movl 20(%esp),%eax
694 xorl %ebx,%edi
695 movl (%ebp),%edx
696 xorl %edx,%esi
697 movl %edi,4(%eax)
698 movl %esi,(%eax)
699 popl %edi
700 popl %esi
701 popl %ebx
702 popl %ebp
703 ret
704 .size BF_decrypt,.-.L_BF_decrypt_begin
705 .globl BF_cbc_encrypt
706 .type BF_cbc_encrypt,@function
707 .align 16
708 BF_cbc_encrypt:
709 .L_BF_cbc_encrypt_begin:
710
711 pushl %ebp
712 pushl %ebx
713 pushl %esi
714 pushl %edi
715 movl 28(%esp),%ebp
716
717 movl 36(%esp),%ebx
718 movl (%ebx),%esi
719 movl 4(%ebx),%edi
720 pushl %edi
721 pushl %esi
722 pushl %edi
723 pushl %esi
724 movl %esp,%ebx
725 movl 36(%esp),%esi
726 movl 40(%esp),%edi
727
728 movl 56(%esp),%ecx
729
730 movl 48(%esp),%eax
731 pushl %eax
732 pushl %ebx
733 cmpl $0,%ecx
734 jz .L000decrypt
735 andl $4294967288,%ebp
736 movl 8(%esp),%eax
737 movl 12(%esp),%ebx
738 jz .L001encrypt_finish
739 .L002encrypt_loop:
740 movl (%esi),%ecx
741 movl 4(%esi),%edx
742 xorl %ecx,%eax
743 xorl %edx,%ebx
744 bswap %eax
745 bswap %ebx
746 movl %eax,8(%esp)
747 movl %ebx,12(%esp)
748 call .L_BF_encrypt_begin
749 movl 8(%esp),%eax
750 movl 12(%esp),%ebx
751 bswap %eax
752 bswap %ebx
753 movl %eax,(%edi)
754 movl %ebx,4(%edi)
755 addl $8,%esi
756 addl $8,%edi
757 subl $8,%ebp
758 jnz .L002encrypt_loop
759 .L001encrypt_finish:
760 movl 52(%esp),%ebp
761 andl $7,%ebp
762 jz .L003finish
763 call .L004PIC_point
764 .L004PIC_point:
765 popl %edx
766 leal .L005cbc_enc_jmp_table-.L004PIC_point(%edx),%ecx
767 movl (%ecx,%ebp,4),%ebp
768 addl %edx,%ebp
769 xorl %ecx,%ecx
770 xorl %edx,%edx
771 jmp *%ebp
772 .L006ej7:
773 movb 6(%esi),%dh
774 shll $8,%edx
775 .L007ej6:
776 movb 5(%esi),%dh
777 .L008ej5:
778 movb 4(%esi),%dl
779 .L009ej4:
780 movl (%esi),%ecx
781 jmp .L010ejend
782 .L011ej3:
783 movb 2(%esi),%ch
784 shll $8,%ecx
785 .L012ej2:
786 movb 1(%esi),%ch
787 .L013ej1:
788 movb (%esi),%cl
789 .L010ejend:
790 xorl %ecx,%eax
791 xorl %edx,%ebx
792 bswap %eax
793 bswap %ebx
794 movl %eax,8(%esp)
795 movl %ebx,12(%esp)
796 call .L_BF_encrypt_begin
797 movl 8(%esp),%eax
798 movl 12(%esp),%ebx
799 bswap %eax
800 bswap %ebx
801 movl %eax,(%edi)
802 movl %ebx,4(%edi)
803 jmp .L003finish
804 .L000decrypt:
805 andl $4294967288,%ebp
806 movl 16(%esp),%eax
807 movl 20(%esp),%ebx
808 jz .L014decrypt_finish
809 .L015decrypt_loop:
810 movl (%esi),%eax
811 movl 4(%esi),%ebx
812 bswap %eax
813 bswap %ebx
814 movl %eax,8(%esp)
815 movl %ebx,12(%esp)
816 call .L_BF_decrypt_begin
817 movl 8(%esp),%eax
818 movl 12(%esp),%ebx
819 bswap %eax
820 bswap %ebx
821 movl 16(%esp),%ecx
822 movl 20(%esp),%edx
823 xorl %eax,%ecx
824 xorl %ebx,%edx
825 movl (%esi),%eax
826 movl 4(%esi),%ebx
827 movl %ecx,(%edi)
828 movl %edx,4(%edi)
829 movl %eax,16(%esp)
830 movl %ebx,20(%esp)
831 addl $8,%esi
832 addl $8,%edi
833 subl $8,%ebp
834 jnz .L015decrypt_loop
835 .L014decrypt_finish:
836 movl 52(%esp),%ebp
837 andl $7,%ebp
838 jz .L003finish
839 movl (%esi),%eax
840 movl 4(%esi),%ebx
841 bswap %eax
842 bswap %ebx
843 movl %eax,8(%esp)
844 movl %ebx,12(%esp)
845 call .L_BF_decrypt_begin
846 movl 8(%esp),%eax
847 movl 12(%esp),%ebx
848 bswap %eax
849 bswap %ebx
850 movl 16(%esp),%ecx
851 movl 20(%esp),%edx
852 xorl %eax,%ecx
853 xorl %ebx,%edx
854 movl (%esi),%eax
855 movl 4(%esi),%ebx
856 .L016dj7:
857 rorl $16,%edx
858 movb %dl,6(%edi)
859 shrl $16,%edx
860 .L017dj6:
861 movb %dh,5(%edi)
862 .L018dj5:
863 movb %dl,4(%edi)
864 .L019dj4:
865 movl %ecx,(%edi)
866 jmp .L020djend
867 .L021dj3:
868 rorl $16,%ecx
869 movb %cl,2(%edi)
870 shll $16,%ecx
871 .L022dj2:
872 movb %ch,1(%esi)
873 .L023dj1:
874 movb %cl,(%esi)
875 .L020djend:
876 jmp .L003finish
877 .L003finish:
878 movl 60(%esp),%ecx
879 addl $24,%esp
880 movl %eax,(%ecx)
881 movl %ebx,4(%ecx)
882 popl %edi
883 popl %esi
884 popl %ebx
885 popl %ebp
886 ret
887 .align 64
888 .L005cbc_enc_jmp_table:
889 .long 0
890 .long .L013ej1-.L004PIC_point
891 .long .L012ej2-.L004PIC_point
892 .long .L011ej3-.L004PIC_point
893 .long .L009ej4-.L004PIC_point
894 .long .L008ej5-.L004PIC_point
895 .long .L007ej6-.L004PIC_point
896 .long .L006ej7-.L004PIC_point
897 .align 64
898 .size BF_cbc_encrypt,.-.L_BF_cbc_encrypt_begin
899 #else
900 .text
901 .globl BF_encrypt
902 .type BF_encrypt,@function
903 .align 16
904 BF_encrypt:
905 .L_BF_encrypt_begin:
906
907 pushl %ebp
908 pushl %ebx
909 movl 12(%esp),%ebx
910 movl 16(%esp),%ebp
911 pushl %esi
912 pushl %edi
913
914 movl (%ebx),%edi
915 movl 4(%ebx),%esi
916 xorl %eax,%eax
917 movl (%ebp),%ebx
918 xorl %ecx,%ecx
919 xorl %ebx,%edi
920
921
922 movl 4(%ebp),%edx
923 movl %edi,%ebx
924 xorl %edx,%esi
925 shrl $16,%ebx
926 movl %edi,%edx
927 movb %bh,%al
928 andl $255,%ebx
929 movb %dh,%cl
930 andl $255,%edx
931 movl 72(%ebp,%eax,4),%eax
932 movl 1096(%ebp,%ebx,4),%ebx
933 addl %eax,%ebx
934 movl 2120(%ebp,%ecx,4),%eax
935 xorl %eax,%ebx
936 movl 3144(%ebp,%edx,4),%edx
937 addl %edx,%ebx
938 xorl %eax,%eax
939 xorl %ebx,%esi
940
941
942 movl 8(%ebp),%edx
943 movl %esi,%ebx
944 xorl %edx,%edi
945 shrl $16,%ebx
946 movl %esi,%edx
947 movb %bh,%al
948 andl $255,%ebx
949 movb %dh,%cl
950 andl $255,%edx
951 movl 72(%ebp,%eax,4),%eax
952 movl 1096(%ebp,%ebx,4),%ebx
953 addl %eax,%ebx
954 movl 2120(%ebp,%ecx,4),%eax
955 xorl %eax,%ebx
956 movl 3144(%ebp,%edx,4),%edx
957 addl %edx,%ebx
958 xorl %eax,%eax
959 xorl %ebx,%edi
960
961
962 movl 12(%ebp),%edx
963 movl %edi,%ebx
964 xorl %edx,%esi
965 shrl $16,%ebx
966 movl %edi,%edx
967 movb %bh,%al
968 andl $255,%ebx
969 movb %dh,%cl
970 andl $255,%edx
971 movl 72(%ebp,%eax,4),%eax
972 movl 1096(%ebp,%ebx,4),%ebx
973 addl %eax,%ebx
974 movl 2120(%ebp,%ecx,4),%eax
975 xorl %eax,%ebx
976 movl 3144(%ebp,%edx,4),%edx
977 addl %edx,%ebx
978 xorl %eax,%eax
979 xorl %ebx,%esi
980
981
982 movl 16(%ebp),%edx
983 movl %esi,%ebx
984 xorl %edx,%edi
985 shrl $16,%ebx
986 movl %esi,%edx
987 movb %bh,%al
988 andl $255,%ebx
989 movb %dh,%cl
990 andl $255,%edx
991 movl 72(%ebp,%eax,4),%eax
992 movl 1096(%ebp,%ebx,4),%ebx
993 addl %eax,%ebx
994 movl 2120(%ebp,%ecx,4),%eax
995 xorl %eax,%ebx
996 movl 3144(%ebp,%edx,4),%edx
997 addl %edx,%ebx
998 xorl %eax,%eax
999 xorl %ebx,%edi
1000
1001
1002 movl 20(%ebp),%edx
1003 movl %edi,%ebx
1004 xorl %edx,%esi
1005 shrl $16,%ebx
1006 movl %edi,%edx
1007 movb %bh,%al
1008 andl $255,%ebx
1009 movb %dh,%cl
1010 andl $255,%edx
1011 movl 72(%ebp,%eax,4),%eax
1012 movl 1096(%ebp,%ebx,4),%ebx
1013 addl %eax,%ebx
1014 movl 2120(%ebp,%ecx,4),%eax
1015 xorl %eax,%ebx
1016 movl 3144(%ebp,%edx,4),%edx
1017 addl %edx,%ebx
1018 xorl %eax,%eax
1019 xorl %ebx,%esi
1020
1021
1022 movl 24(%ebp),%edx
1023 movl %esi,%ebx
1024 xorl %edx,%edi
1025 shrl $16,%ebx
1026 movl %esi,%edx
1027 movb %bh,%al
1028 andl $255,%ebx
1029 movb %dh,%cl
1030 andl $255,%edx
1031 movl 72(%ebp,%eax,4),%eax
1032 movl 1096(%ebp,%ebx,4),%ebx
1033 addl %eax,%ebx
1034 movl 2120(%ebp,%ecx,4),%eax
1035 xorl %eax,%ebx
1036 movl 3144(%ebp,%edx,4),%edx
1037 addl %edx,%ebx
1038 xorl %eax,%eax
1039 xorl %ebx,%edi
1040
1041
1042 movl 28(%ebp),%edx
1043 movl %edi,%ebx
1044 xorl %edx,%esi
1045 shrl $16,%ebx
1046 movl %edi,%edx
1047 movb %bh,%al
1048 andl $255,%ebx
1049 movb %dh,%cl
1050 andl $255,%edx
1051 movl 72(%ebp,%eax,4),%eax
1052 movl 1096(%ebp,%ebx,4),%ebx
1053 addl %eax,%ebx
1054 movl 2120(%ebp,%ecx,4),%eax
1055 xorl %eax,%ebx
1056 movl 3144(%ebp,%edx,4),%edx
1057 addl %edx,%ebx
1058 xorl %eax,%eax
1059 xorl %ebx,%esi
1060
1061
1062 movl 32(%ebp),%edx
1063 movl %esi,%ebx
1064 xorl %edx,%edi
1065 shrl $16,%ebx
1066 movl %esi,%edx
1067 movb %bh,%al
1068 andl $255,%ebx
1069 movb %dh,%cl
1070 andl $255,%edx
1071 movl 72(%ebp,%eax,4),%eax
1072 movl 1096(%ebp,%ebx,4),%ebx
1073 addl %eax,%ebx
1074 movl 2120(%ebp,%ecx,4),%eax
1075 xorl %eax,%ebx
1076 movl 3144(%ebp,%edx,4),%edx
1077 addl %edx,%ebx
1078 xorl %eax,%eax
1079 xorl %ebx,%edi
1080
1081
1082 movl 36(%ebp),%edx
1083 movl %edi,%ebx
1084 xorl %edx,%esi
1085 shrl $16,%ebx
1086 movl %edi,%edx
1087 movb %bh,%al
1088 andl $255,%ebx
1089 movb %dh,%cl
1090 andl $255,%edx
1091 movl 72(%ebp,%eax,4),%eax
1092 movl 1096(%ebp,%ebx,4),%ebx
1093 addl %eax,%ebx
1094 movl 2120(%ebp,%ecx,4),%eax
1095 xorl %eax,%ebx
1096 movl 3144(%ebp,%edx,4),%edx
1097 addl %edx,%ebx
1098 xorl %eax,%eax
1099 xorl %ebx,%esi
1100
1101
1102 movl 40(%ebp),%edx
1103 movl %esi,%ebx
1104 xorl %edx,%edi
1105 shrl $16,%ebx
1106 movl %esi,%edx
1107 movb %bh,%al
1108 andl $255,%ebx
1109 movb %dh,%cl
1110 andl $255,%edx
1111 movl 72(%ebp,%eax,4),%eax
1112 movl 1096(%ebp,%ebx,4),%ebx
1113 addl %eax,%ebx
1114 movl 2120(%ebp,%ecx,4),%eax
1115 xorl %eax,%ebx
1116 movl 3144(%ebp,%edx,4),%edx
1117 addl %edx,%ebx
1118 xorl %eax,%eax
1119 xorl %ebx,%edi
1120
1121
1122 movl 44(%ebp),%edx
1123 movl %edi,%ebx
1124 xorl %edx,%esi
1125 shrl $16,%ebx
1126 movl %edi,%edx
1127 movb %bh,%al
1128 andl $255,%ebx
1129 movb %dh,%cl
1130 andl $255,%edx
1131 movl 72(%ebp,%eax,4),%eax
1132 movl 1096(%ebp,%ebx,4),%ebx
1133 addl %eax,%ebx
1134 movl 2120(%ebp,%ecx,4),%eax
1135 xorl %eax,%ebx
1136 movl 3144(%ebp,%edx,4),%edx
1137 addl %edx,%ebx
1138 xorl %eax,%eax
1139 xorl %ebx,%esi
1140
1141
1142 movl 48(%ebp),%edx
1143 movl %esi,%ebx
1144 xorl %edx,%edi
1145 shrl $16,%ebx
1146 movl %esi,%edx
1147 movb %bh,%al
1148 andl $255,%ebx
1149 movb %dh,%cl
1150 andl $255,%edx
1151 movl 72(%ebp,%eax,4),%eax
1152 movl 1096(%ebp,%ebx,4),%ebx
1153 addl %eax,%ebx
1154 movl 2120(%ebp,%ecx,4),%eax
1155 xorl %eax,%ebx
1156 movl 3144(%ebp,%edx,4),%edx
1157 addl %edx,%ebx
1158 xorl %eax,%eax
1159 xorl %ebx,%edi
1160
1161
1162 movl 52(%ebp),%edx
1163 movl %edi,%ebx
1164 xorl %edx,%esi
1165 shrl $16,%ebx
1166 movl %edi,%edx
1167 movb %bh,%al
1168 andl $255,%ebx
1169 movb %dh,%cl
1170 andl $255,%edx
1171 movl 72(%ebp,%eax,4),%eax
1172 movl 1096(%ebp,%ebx,4),%ebx
1173 addl %eax,%ebx
1174 movl 2120(%ebp,%ecx,4),%eax
1175 xorl %eax,%ebx
1176 movl 3144(%ebp,%edx,4),%edx
1177 addl %edx,%ebx
1178 xorl %eax,%eax
1179 xorl %ebx,%esi
1180
1181
1182 movl 56(%ebp),%edx
1183 movl %esi,%ebx
1184 xorl %edx,%edi
1185 shrl $16,%ebx
1186 movl %esi,%edx
1187 movb %bh,%al
1188 andl $255,%ebx
1189 movb %dh,%cl
1190 andl $255,%edx
1191 movl 72(%ebp,%eax,4),%eax
1192 movl 1096(%ebp,%ebx,4),%ebx
1193 addl %eax,%ebx
1194 movl 2120(%ebp,%ecx,4),%eax
1195 xorl %eax,%ebx
1196 movl 3144(%ebp,%edx,4),%edx
1197 addl %edx,%ebx
1198 xorl %eax,%eax
1199 xorl %ebx,%edi
1200
1201
1202 movl 60(%ebp),%edx
1203 movl %edi,%ebx
1204 xorl %edx,%esi
1205 shrl $16,%ebx
1206 movl %edi,%edx
1207 movb %bh,%al
1208 andl $255,%ebx
1209 movb %dh,%cl
1210 andl $255,%edx
1211 movl 72(%ebp,%eax,4),%eax
1212 movl 1096(%ebp,%ebx,4),%ebx
1213 addl %eax,%ebx
1214 movl 2120(%ebp,%ecx,4),%eax
1215 xorl %eax,%ebx
1216 movl 3144(%ebp,%edx,4),%edx
1217 addl %edx,%ebx
1218 xorl %eax,%eax
1219 xorl %ebx,%esi
1220
1221
1222 movl 64(%ebp),%edx
1223 movl %esi,%ebx
1224 xorl %edx,%edi
1225 shrl $16,%ebx
1226 movl %esi,%edx
1227 movb %bh,%al
1228 andl $255,%ebx
1229 movb %dh,%cl
1230 andl $255,%edx
1231 movl 72(%ebp,%eax,4),%eax
1232 movl 1096(%ebp,%ebx,4),%ebx
1233 addl %eax,%ebx
1234 movl 2120(%ebp,%ecx,4),%eax
1235 xorl %eax,%ebx
1236 movl 3144(%ebp,%edx,4),%edx
1237 addl %edx,%ebx
1238
1239 movl 20(%esp),%eax
1240 xorl %ebx,%edi
1241 movl 68(%ebp),%edx
1242 xorl %edx,%esi
1243 movl %edi,4(%eax)
1244 movl %esi,(%eax)
1245 popl %edi
1246 popl %esi
1247 popl %ebx
1248 popl %ebp
1249 ret
1250 .size BF_encrypt,.-.L_BF_encrypt_begin
1251 .globl BF_decrypt
1252 .type BF_decrypt,@function
1253 .align 16
1254 BF_decrypt:
1255 .L_BF_decrypt_begin:
1256
1257 pushl %ebp
1258 pushl %ebx
1259 movl 12(%esp),%ebx
1260 movl 16(%esp),%ebp
1261 pushl %esi
1262 pushl %edi
1263
1264 movl (%ebx),%edi
1265 movl 4(%ebx),%esi
1266 xorl %eax,%eax
1267 movl 68(%ebp),%ebx
1268 xorl %ecx,%ecx
1269 xorl %ebx,%edi
1270
1271
1272 movl 64(%ebp),%edx
1273 movl %edi,%ebx
1274 xorl %edx,%esi
1275 shrl $16,%ebx
1276 movl %edi,%edx
1277 movb %bh,%al
1278 andl $255,%ebx
1279 movb %dh,%cl
1280 andl $255,%edx
1281 movl 72(%ebp,%eax,4),%eax
1282 movl 1096(%ebp,%ebx,4),%ebx
1283 addl %eax,%ebx
1284 movl 2120(%ebp,%ecx,4),%eax
1285 xorl %eax,%ebx
1286 movl 3144(%ebp,%edx,4),%edx
1287 addl %edx,%ebx
1288 xorl %eax,%eax
1289 xorl %ebx,%esi
1290
1291
1292 movl 60(%ebp),%edx
1293 movl %esi,%ebx
1294 xorl %edx,%edi
1295 shrl $16,%ebx
1296 movl %esi,%edx
1297 movb %bh,%al
1298 andl $255,%ebx
1299 movb %dh,%cl
1300 andl $255,%edx
1301 movl 72(%ebp,%eax,4),%eax
1302 movl 1096(%ebp,%ebx,4),%ebx
1303 addl %eax,%ebx
1304 movl 2120(%ebp,%ecx,4),%eax
1305 xorl %eax,%ebx
1306 movl 3144(%ebp,%edx,4),%edx
1307 addl %edx,%ebx
1308 xorl %eax,%eax
1309 xorl %ebx,%edi
1310
1311
1312 movl 56(%ebp),%edx
1313 movl %edi,%ebx
1314 xorl %edx,%esi
1315 shrl $16,%ebx
1316 movl %edi,%edx
1317 movb %bh,%al
1318 andl $255,%ebx
1319 movb %dh,%cl
1320 andl $255,%edx
1321 movl 72(%ebp,%eax,4),%eax
1322 movl 1096(%ebp,%ebx,4),%ebx
1323 addl %eax,%ebx
1324 movl 2120(%ebp,%ecx,4),%eax
1325 xorl %eax,%ebx
1326 movl 3144(%ebp,%edx,4),%edx
1327 addl %edx,%ebx
1328 xorl %eax,%eax
1329 xorl %ebx,%esi
1330
1331
1332 movl 52(%ebp),%edx
1333 movl %esi,%ebx
1334 xorl %edx,%edi
1335 shrl $16,%ebx
1336 movl %esi,%edx
1337 movb %bh,%al
1338 andl $255,%ebx
1339 movb %dh,%cl
1340 andl $255,%edx
1341 movl 72(%ebp,%eax,4),%eax
1342 movl 1096(%ebp,%ebx,4),%ebx
1343 addl %eax,%ebx
1344 movl 2120(%ebp,%ecx,4),%eax
1345 xorl %eax,%ebx
1346 movl 3144(%ebp,%edx,4),%edx
1347 addl %edx,%ebx
1348 xorl %eax,%eax
1349 xorl %ebx,%edi
1350
1351
1352 movl 48(%ebp),%edx
1353 movl %edi,%ebx
1354 xorl %edx,%esi
1355 shrl $16,%ebx
1356 movl %edi,%edx
1357 movb %bh,%al
1358 andl $255,%ebx
1359 movb %dh,%cl
1360 andl $255,%edx
1361 movl 72(%ebp,%eax,4),%eax
1362 movl 1096(%ebp,%ebx,4),%ebx
1363 addl %eax,%ebx
1364 movl 2120(%ebp,%ecx,4),%eax
1365 xorl %eax,%ebx
1366 movl 3144(%ebp,%edx,4),%edx
1367 addl %edx,%ebx
1368 xorl %eax,%eax
1369 xorl %ebx,%esi
1370
1371
1372 movl 44(%ebp),%edx
1373 movl %esi,%ebx
1374 xorl %edx,%edi
1375 shrl $16,%ebx
1376 movl %esi,%edx
1377 movb %bh,%al
1378 andl $255,%ebx
1379 movb %dh,%cl
1380 andl $255,%edx
1381 movl 72(%ebp,%eax,4),%eax
1382 movl 1096(%ebp,%ebx,4),%ebx
1383 addl %eax,%ebx
1384 movl 2120(%ebp,%ecx,4),%eax
1385 xorl %eax,%ebx
1386 movl 3144(%ebp,%edx,4),%edx
1387 addl %edx,%ebx
1388 xorl %eax,%eax
1389 xorl %ebx,%edi
1390
1391
1392 movl 40(%ebp),%edx
1393 movl %edi,%ebx
1394 xorl %edx,%esi
1395 shrl $16,%ebx
1396 movl %edi,%edx
1397 movb %bh,%al
1398 andl $255,%ebx
1399 movb %dh,%cl
1400 andl $255,%edx
1401 movl 72(%ebp,%eax,4),%eax
1402 movl 1096(%ebp,%ebx,4),%ebx
1403 addl %eax,%ebx
1404 movl 2120(%ebp,%ecx,4),%eax
1405 xorl %eax,%ebx
1406 movl 3144(%ebp,%edx,4),%edx
1407 addl %edx,%ebx
1408 xorl %eax,%eax
1409 xorl %ebx,%esi
1410
1411
1412 movl 36(%ebp),%edx
1413 movl %esi,%ebx
1414 xorl %edx,%edi
1415 shrl $16,%ebx
1416 movl %esi,%edx
1417 movb %bh,%al
1418 andl $255,%ebx
1419 movb %dh,%cl
1420 andl $255,%edx
1421 movl 72(%ebp,%eax,4),%eax
1422 movl 1096(%ebp,%ebx,4),%ebx
1423 addl %eax,%ebx
1424 movl 2120(%ebp,%ecx,4),%eax
1425 xorl %eax,%ebx
1426 movl 3144(%ebp,%edx,4),%edx
1427 addl %edx,%ebx
1428 xorl %eax,%eax
1429 xorl %ebx,%edi
1430
1431
1432 movl 32(%ebp),%edx
1433 movl %edi,%ebx
1434 xorl %edx,%esi
1435 shrl $16,%ebx
1436 movl %edi,%edx
1437 movb %bh,%al
1438 andl $255,%ebx
1439 movb %dh,%cl
1440 andl $255,%edx
1441 movl 72(%ebp,%eax,4),%eax
1442 movl 1096(%ebp,%ebx,4),%ebx
1443 addl %eax,%ebx
1444 movl 2120(%ebp,%ecx,4),%eax
1445 xorl %eax,%ebx
1446 movl 3144(%ebp,%edx,4),%edx
1447 addl %edx,%ebx
1448 xorl %eax,%eax
1449 xorl %ebx,%esi
1450
1451
1452 movl 28(%ebp),%edx
1453 movl %esi,%ebx
1454 xorl %edx,%edi
1455 shrl $16,%ebx
1456 movl %esi,%edx
1457 movb %bh,%al
1458 andl $255,%ebx
1459 movb %dh,%cl
1460 andl $255,%edx
1461 movl 72(%ebp,%eax,4),%eax
1462 movl 1096(%ebp,%ebx,4),%ebx
1463 addl %eax,%ebx
1464 movl 2120(%ebp,%ecx,4),%eax
1465 xorl %eax,%ebx
1466 movl 3144(%ebp,%edx,4),%edx
1467 addl %edx,%ebx
1468 xorl %eax,%eax
1469 xorl %ebx,%edi
1470
1471
1472 movl 24(%ebp),%edx
1473 movl %edi,%ebx
1474 xorl %edx,%esi
1475 shrl $16,%ebx
1476 movl %edi,%edx
1477 movb %bh,%al
1478 andl $255,%ebx
1479 movb %dh,%cl
1480 andl $255,%edx
1481 movl 72(%ebp,%eax,4),%eax
1482 movl 1096(%ebp,%ebx,4),%ebx
1483 addl %eax,%ebx
1484 movl 2120(%ebp,%ecx,4),%eax
1485 xorl %eax,%ebx
1486 movl 3144(%ebp,%edx,4),%edx
1487 addl %edx,%ebx
1488 xorl %eax,%eax
1489 xorl %ebx,%esi
1490
1491
1492 movl 20(%ebp),%edx
1493 movl %esi,%ebx
1494 xorl %edx,%edi
1495 shrl $16,%ebx
1496 movl %esi,%edx
1497 movb %bh,%al
1498 andl $255,%ebx
1499 movb %dh,%cl
1500 andl $255,%edx
1501 movl 72(%ebp,%eax,4),%eax
1502 movl 1096(%ebp,%ebx,4),%ebx
1503 addl %eax,%ebx
1504 movl 2120(%ebp,%ecx,4),%eax
1505 xorl %eax,%ebx
1506 movl 3144(%ebp,%edx,4),%edx
1507 addl %edx,%ebx
1508 xorl %eax,%eax
1509 xorl %ebx,%edi
1510
1511
1512 movl 16(%ebp),%edx
1513 movl %edi,%ebx
1514 xorl %edx,%esi
1515 shrl $16,%ebx
1516 movl %edi,%edx
1517 movb %bh,%al
1518 andl $255,%ebx
1519 movb %dh,%cl
1520 andl $255,%edx
1521 movl 72(%ebp,%eax,4),%eax
1522 movl 1096(%ebp,%ebx,4),%ebx
1523 addl %eax,%ebx
1524 movl 2120(%ebp,%ecx,4),%eax
1525 xorl %eax,%ebx
1526 movl 3144(%ebp,%edx,4),%edx
1527 addl %edx,%ebx
1528 xorl %eax,%eax
1529 xorl %ebx,%esi
1530
1531
1532 movl 12(%ebp),%edx
1533 movl %esi,%ebx
1534 xorl %edx,%edi
1535 shrl $16,%ebx
1536 movl %esi,%edx
1537 movb %bh,%al
1538 andl $255,%ebx
1539 movb %dh,%cl
1540 andl $255,%edx
1541 movl 72(%ebp,%eax,4),%eax
1542 movl 1096(%ebp,%ebx,4),%ebx
1543 addl %eax,%ebx
1544 movl 2120(%ebp,%ecx,4),%eax
1545 xorl %eax,%ebx
1546 movl 3144(%ebp,%edx,4),%edx
1547 addl %edx,%ebx
1548 xorl %eax,%eax
1549 xorl %ebx,%edi
1550
1551
1552 movl 8(%ebp),%edx
1553 movl %edi,%ebx
1554 xorl %edx,%esi
1555 shrl $16,%ebx
1556 movl %edi,%edx
1557 movb %bh,%al
1558 andl $255,%ebx
1559 movb %dh,%cl
1560 andl $255,%edx
1561 movl 72(%ebp,%eax,4),%eax
1562 movl 1096(%ebp,%ebx,4),%ebx
1563 addl %eax,%ebx
1564 movl 2120(%ebp,%ecx,4),%eax
1565 xorl %eax,%ebx
1566 movl 3144(%ebp,%edx,4),%edx
1567 addl %edx,%ebx
1568 xorl %eax,%eax
1569 xorl %ebx,%esi
1570
1571
1572 movl 4(%ebp),%edx
1573 movl %esi,%ebx
1574 xorl %edx,%edi
1575 shrl $16,%ebx
1576 movl %esi,%edx
1577 movb %bh,%al
1578 andl $255,%ebx
1579 movb %dh,%cl
1580 andl $255,%edx
1581 movl 72(%ebp,%eax,4),%eax
1582 movl 1096(%ebp,%ebx,4),%ebx
1583 addl %eax,%ebx
1584 movl 2120(%ebp,%ecx,4),%eax
1585 xorl %eax,%ebx
1586 movl 3144(%ebp,%edx,4),%edx
1587 addl %edx,%ebx
1588
1589 movl 20(%esp),%eax
1590 xorl %ebx,%edi
1591 movl (%ebp),%edx
1592 xorl %edx,%esi
1593 movl %edi,4(%eax)
1594 movl %esi,(%eax)
1595 popl %edi
1596 popl %esi
1597 popl %ebx
1598 popl %ebp
1599 ret
1600 .size BF_decrypt,.-.L_BF_decrypt_begin
1601 .globl BF_cbc_encrypt
1602 .type BF_cbc_encrypt,@function
1603 .align 16
1604 BF_cbc_encrypt:
1605 .L_BF_cbc_encrypt_begin:
1606
1607 pushl %ebp
1608 pushl %ebx
1609 pushl %esi
1610 pushl %edi
1611 movl 28(%esp),%ebp
1612
1613 movl 36(%esp),%ebx
1614 movl (%ebx),%esi
1615 movl 4(%ebx),%edi
1616 pushl %edi
1617 pushl %esi
1618 pushl %edi
1619 pushl %esi
1620 movl %esp,%ebx
1621 movl 36(%esp),%esi
1622 movl 40(%esp),%edi
1623
1624 movl 56(%esp),%ecx
1625
1626 movl 48(%esp),%eax
1627 pushl %eax
1628 pushl %ebx
1629 cmpl $0,%ecx
1630 jz .L000decrypt
1631 andl $4294967288,%ebp
1632 movl 8(%esp),%eax
1633 movl 12(%esp),%ebx
1634 jz .L001encrypt_finish
1635 .L002encrypt_loop:
1636 movl (%esi),%ecx
1637 movl 4(%esi),%edx
1638 xorl %ecx,%eax
1639 xorl %edx,%ebx
1640 bswap %eax
1641 bswap %ebx
1642 movl %eax,8(%esp)
1643 movl %ebx,12(%esp)
1644 call .L_BF_encrypt_begin
1645 movl 8(%esp),%eax
1646 movl 12(%esp),%ebx
1647 bswap %eax
1648 bswap %ebx
1649 movl %eax,(%edi)
1650 movl %ebx,4(%edi)
1651 addl $8,%esi
1652 addl $8,%edi
1653 subl $8,%ebp
1654 jnz .L002encrypt_loop
1655 .L001encrypt_finish:
1656 movl 52(%esp),%ebp
1657 andl $7,%ebp
1658 jz .L003finish
1659 call .L004PIC_point
1660 .L004PIC_point:
1661 popl %edx
1662 leal .L005cbc_enc_jmp_table-.L004PIC_point(%edx),%ecx
1663 movl (%ecx,%ebp,4),%ebp
1664 addl %edx,%ebp
1665 xorl %ecx,%ecx
1666 xorl %edx,%edx
1667 jmp *%ebp
1668 .L006ej7:
1669 movb 6(%esi),%dh
1670 shll $8,%edx
1671 .L007ej6:
1672 movb 5(%esi),%dh
1673 .L008ej5:
1674 movb 4(%esi),%dl
1675 .L009ej4:
1676 movl (%esi),%ecx
1677 jmp .L010ejend
1678 .L011ej3:
1679 movb 2(%esi),%ch
1680 shll $8,%ecx
1681 .L012ej2:
1682 movb 1(%esi),%ch
1683 .L013ej1:
1684 movb (%esi),%cl
1685 .L010ejend:
1686 xorl %ecx,%eax
1687 xorl %edx,%ebx
1688 bswap %eax
1689 bswap %ebx
1690 movl %eax,8(%esp)
1691 movl %ebx,12(%esp)
1692 call .L_BF_encrypt_begin
1693 movl 8(%esp),%eax
1694 movl 12(%esp),%ebx
1695 bswap %eax
1696 bswap %ebx
1697 movl %eax,(%edi)
1698 movl %ebx,4(%edi)
1699 jmp .L003finish
1700 .L000decrypt:
1701 andl $4294967288,%ebp
1702 movl 16(%esp),%eax
1703 movl 20(%esp),%ebx
1704 jz .L014decrypt_finish
1705 .L015decrypt_loop:
1706 movl (%esi),%eax
1707 movl 4(%esi),%ebx
1708 bswap %eax
1709 bswap %ebx
1710 movl %eax,8(%esp)
1711 movl %ebx,12(%esp)
1712 call .L_BF_decrypt_begin
1713 movl 8(%esp),%eax
1714 movl 12(%esp),%ebx
1715 bswap %eax
1716 bswap %ebx
1717 movl 16(%esp),%ecx
1718 movl 20(%esp),%edx
1719 xorl %eax,%ecx
1720 xorl %ebx,%edx
1721 movl (%esi),%eax
1722 movl 4(%esi),%ebx
1723 movl %ecx,(%edi)
1724 movl %edx,4(%edi)
1725 movl %eax,16(%esp)
1726 movl %ebx,20(%esp)
1727 addl $8,%esi
1728 addl $8,%edi
1729 subl $8,%ebp
1730 jnz .L015decrypt_loop
1731 .L014decrypt_finish:
1732 movl 52(%esp),%ebp
1733 andl $7,%ebp
1734 jz .L003finish
1735 movl (%esi),%eax
1736 movl 4(%esi),%ebx
1737 bswap %eax
1738 bswap %ebx
1739 movl %eax,8(%esp)
1740 movl %ebx,12(%esp)
1741 call .L_BF_decrypt_begin
1742 movl 8(%esp),%eax
1743 movl 12(%esp),%ebx
1744 bswap %eax
1745 bswap %ebx
1746 movl 16(%esp),%ecx
1747 movl 20(%esp),%edx
1748 xorl %eax,%ecx
1749 xorl %ebx,%edx
1750 movl (%esi),%eax
1751 movl 4(%esi),%ebx
1752 .L016dj7:
1753 rorl $16,%edx
1754 movb %dl,6(%edi)
1755 shrl $16,%edx
1756 .L017dj6:
1757 movb %dh,5(%edi)
1758 .L018dj5:
1759 movb %dl,4(%edi)
1760 .L019dj4:
1761 movl %ecx,(%edi)
1762 jmp .L020djend
1763 .L021dj3:
1764 rorl $16,%ecx
1765 movb %cl,2(%edi)
1766 shll $16,%ecx
1767 .L022dj2:
1768 movb %ch,1(%esi)
1769 .L023dj1:
1770 movb %cl,(%esi)
1771 .L020djend:
1772 jmp .L003finish
1773 .L003finish:
1774 movl 60(%esp),%ecx
1775 addl $24,%esp
1776 movl %eax,(%ecx)
1777 movl %ebx,4(%ecx)
1778 popl %edi
1779 popl %esi
1780 popl %ebx
1781 popl %ebp
1782 ret
1783 .align 64
1784 .L005cbc_enc_jmp_table:
1785 .long 0
1786 .long .L013ej1-.L004PIC_point
1787 .long .L012ej2-.L004PIC_point
1788 .long .L011ej3-.L004PIC_point
1789 .long .L009ej4-.L004PIC_point
1790 .long .L008ej5-.L004PIC_point
1791 .long .L007ej6-.L004PIC_point
1792 .long .L006ej7-.L004PIC_point
1793 .align 64
1794 .size BF_cbc_encrypt,.-.L_BF_cbc_encrypt_begin
1795 #endif
Cache object: a27a85550baef04a109439066c8c4d5e
|