1 .text
2 .globl	BF_encrypt
3 .type	BF_encrypt,@function
4 .align	16
5 BF_encrypt:
6 .L_BF_encrypt_begin:
7 	%ifdef __CET__
8 
9 .byte	243,15,30,251
10 	%endif
11 
12 
13 	pushl	%ebp
14 	pushl	%ebx
15 	movl	12(%esp),%ebx
16 	movl	16(%esp),%ebp
17 	pushl	%esi
18 	pushl	%edi
19 
20 	movl	(%ebx),%edi
21 	movl	4(%ebx),%esi
22 	xorl	%eax,%eax
23 	movl	(%ebp),%ebx
24 	xorl	%ecx,%ecx
25 	xorl	%ebx,%edi
26 
27 
28 	movl	4(%ebp),%edx
29 	movl	%edi,%ebx
30 	xorl	%edx,%esi
31 	shrl	$16,%ebx
32 	movl	%edi,%edx
33 	movb	%bh,%al
34 	andl	$255,%ebx
35 	movb	%dh,%cl
36 	andl	$255,%edx
37 	movl	72(%ebp,%eax,4),%eax
38 	movl	1096(%ebp,%ebx,4),%ebx
39 	addl	%eax,%ebx
40 	movl	2120(%ebp,%ecx,4),%eax
41 	xorl	%eax,%ebx
42 	movl	3144(%ebp,%edx,4),%edx
43 	addl	%edx,%ebx
44 	xorl	%eax,%eax
45 	xorl	%ebx,%esi
46 
47 
48 	movl	8(%ebp),%edx
49 	movl	%esi,%ebx
50 	xorl	%edx,%edi
51 	shrl	$16,%ebx
52 	movl	%esi,%edx
53 	movb	%bh,%al
54 	andl	$255,%ebx
55 	movb	%dh,%cl
56 	andl	$255,%edx
57 	movl	72(%ebp,%eax,4),%eax
58 	movl	1096(%ebp,%ebx,4),%ebx
59 	addl	%eax,%ebx
60 	movl	2120(%ebp,%ecx,4),%eax
61 	xorl	%eax,%ebx
62 	movl	3144(%ebp,%edx,4),%edx
63 	addl	%edx,%ebx
64 	xorl	%eax,%eax
65 	xorl	%ebx,%edi
66 
67 
68 	movl	12(%ebp),%edx
69 	movl	%edi,%ebx
70 	xorl	%edx,%esi
71 	shrl	$16,%ebx
72 	movl	%edi,%edx
73 	movb	%bh,%al
74 	andl	$255,%ebx
75 	movb	%dh,%cl
76 	andl	$255,%edx
77 	movl	72(%ebp,%eax,4),%eax
78 	movl	1096(%ebp,%ebx,4),%ebx
79 	addl	%eax,%ebx
80 	movl	2120(%ebp,%ecx,4),%eax
81 	xorl	%eax,%ebx
82 	movl	3144(%ebp,%edx,4),%edx
83 	addl	%edx,%ebx
84 	xorl	%eax,%eax
85 	xorl	%ebx,%esi
86 
87 
88 	movl	16(%ebp),%edx
89 	movl	%esi,%ebx
90 	xorl	%edx,%edi
91 	shrl	$16,%ebx
92 	movl	%esi,%edx
93 	movb	%bh,%al
94 	andl	$255,%ebx
95 	movb	%dh,%cl
96 	andl	$255,%edx
97 	movl	72(%ebp,%eax,4),%eax
98 	movl	1096(%ebp,%ebx,4),%ebx
99 	addl	%eax,%ebx
100 	movl	2120(%ebp,%ecx,4),%eax
101 	xorl	%eax,%ebx
102 	movl	3144(%ebp,%edx,4),%edx
103 	addl	%edx,%ebx
104 	xorl	%eax,%eax
105 	xorl	%ebx,%edi
106 
107 
108 	movl	20(%ebp),%edx
109 	movl	%edi,%ebx
110 	xorl	%edx,%esi
111 	shrl	$16,%ebx
112 	movl	%edi,%edx
113 	movb	%bh,%al
114 	andl	$255,%ebx
115 	movb	%dh,%cl
116 	andl	$255,%edx
117 	movl	72(%ebp,%eax,4),%eax
118 	movl	1096(%ebp,%ebx,4),%ebx
119 	addl	%eax,%ebx
120 	movl	2120(%ebp,%ecx,4),%eax
121 	xorl	%eax,%ebx
122 	movl	3144(%ebp,%edx,4),%edx
123 	addl	%edx,%ebx
124 	xorl	%eax,%eax
125 	xorl	%ebx,%esi
126 
127 
128 	movl	24(%ebp),%edx
129 	movl	%esi,%ebx
130 	xorl	%edx,%edi
131 	shrl	$16,%ebx
132 	movl	%esi,%edx
133 	movb	%bh,%al
134 	andl	$255,%ebx
135 	movb	%dh,%cl
136 	andl	$255,%edx
137 	movl	72(%ebp,%eax,4),%eax
138 	movl	1096(%ebp,%ebx,4),%ebx
139 	addl	%eax,%ebx
140 	movl	2120(%ebp,%ecx,4),%eax
141 	xorl	%eax,%ebx
142 	movl	3144(%ebp,%edx,4),%edx
143 	addl	%edx,%ebx
144 	xorl	%eax,%eax
145 	xorl	%ebx,%edi
146 
147 
148 	movl	28(%ebp),%edx
149 	movl	%edi,%ebx
150 	xorl	%edx,%esi
151 	shrl	$16,%ebx
152 	movl	%edi,%edx
153 	movb	%bh,%al
154 	andl	$255,%ebx
155 	movb	%dh,%cl
156 	andl	$255,%edx
157 	movl	72(%ebp,%eax,4),%eax
158 	movl	1096(%ebp,%ebx,4),%ebx
159 	addl	%eax,%ebx
160 	movl	2120(%ebp,%ecx,4),%eax
161 	xorl	%eax,%ebx
162 	movl	3144(%ebp,%edx,4),%edx
163 	addl	%edx,%ebx
164 	xorl	%eax,%eax
165 	xorl	%ebx,%esi
166 
167 
168 	movl	32(%ebp),%edx
169 	movl	%esi,%ebx
170 	xorl	%edx,%edi
171 	shrl	$16,%ebx
172 	movl	%esi,%edx
173 	movb	%bh,%al
174 	andl	$255,%ebx
175 	movb	%dh,%cl
176 	andl	$255,%edx
177 	movl	72(%ebp,%eax,4),%eax
178 	movl	1096(%ebp,%ebx,4),%ebx
179 	addl	%eax,%ebx
180 	movl	2120(%ebp,%ecx,4),%eax
181 	xorl	%eax,%ebx
182 	movl	3144(%ebp,%edx,4),%edx
183 	addl	%edx,%ebx
184 	xorl	%eax,%eax
185 	xorl	%ebx,%edi
186 
187 
188 	movl	36(%ebp),%edx
189 	movl	%edi,%ebx
190 	xorl	%edx,%esi
191 	shrl	$16,%ebx
192 	movl	%edi,%edx
193 	movb	%bh,%al
194 	andl	$255,%ebx
195 	movb	%dh,%cl
196 	andl	$255,%edx
197 	movl	72(%ebp,%eax,4),%eax
198 	movl	1096(%ebp,%ebx,4),%ebx
199 	addl	%eax,%ebx
200 	movl	2120(%ebp,%ecx,4),%eax
201 	xorl	%eax,%ebx
202 	movl	3144(%ebp,%edx,4),%edx
203 	addl	%edx,%ebx
204 	xorl	%eax,%eax
205 	xorl	%ebx,%esi
206 
207 
208 	movl	40(%ebp),%edx
209 	movl	%esi,%ebx
210 	xorl	%edx,%edi
211 	shrl	$16,%ebx
212 	movl	%esi,%edx
213 	movb	%bh,%al
214 	andl	$255,%ebx
215 	movb	%dh,%cl
216 	andl	$255,%edx
217 	movl	72(%ebp,%eax,4),%eax
218 	movl	1096(%ebp,%ebx,4),%ebx
219 	addl	%eax,%ebx
220 	movl	2120(%ebp,%ecx,4),%eax
221 	xorl	%eax,%ebx
222 	movl	3144(%ebp,%edx,4),%edx
223 	addl	%edx,%ebx
224 	xorl	%eax,%eax
225 	xorl	%ebx,%edi
226 
227 
228 	movl	44(%ebp),%edx
229 	movl	%edi,%ebx
230 	xorl	%edx,%esi
231 	shrl	$16,%ebx
232 	movl	%edi,%edx
233 	movb	%bh,%al
234 	andl	$255,%ebx
235 	movb	%dh,%cl
236 	andl	$255,%edx
237 	movl	72(%ebp,%eax,4),%eax
238 	movl	1096(%ebp,%ebx,4),%ebx
239 	addl	%eax,%ebx
240 	movl	2120(%ebp,%ecx,4),%eax
241 	xorl	%eax,%ebx
242 	movl	3144(%ebp,%edx,4),%edx
243 	addl	%edx,%ebx
244 	xorl	%eax,%eax
245 	xorl	%ebx,%esi
246 
247 
248 	movl	48(%ebp),%edx
249 	movl	%esi,%ebx
250 	xorl	%edx,%edi
251 	shrl	$16,%ebx
252 	movl	%esi,%edx
253 	movb	%bh,%al
254 	andl	$255,%ebx
255 	movb	%dh,%cl
256 	andl	$255,%edx
257 	movl	72(%ebp,%eax,4),%eax
258 	movl	1096(%ebp,%ebx,4),%ebx
259 	addl	%eax,%ebx
260 	movl	2120(%ebp,%ecx,4),%eax
261 	xorl	%eax,%ebx
262 	movl	3144(%ebp,%edx,4),%edx
263 	addl	%edx,%ebx
264 	xorl	%eax,%eax
265 	xorl	%ebx,%edi
266 
267 
268 	movl	52(%ebp),%edx
269 	movl	%edi,%ebx
270 	xorl	%edx,%esi
271 	shrl	$16,%ebx
272 	movl	%edi,%edx
273 	movb	%bh,%al
274 	andl	$255,%ebx
275 	movb	%dh,%cl
276 	andl	$255,%edx
277 	movl	72(%ebp,%eax,4),%eax
278 	movl	1096(%ebp,%ebx,4),%ebx
279 	addl	%eax,%ebx
280 	movl	2120(%ebp,%ecx,4),%eax
281 	xorl	%eax,%ebx
282 	movl	3144(%ebp,%edx,4),%edx
283 	addl	%edx,%ebx
284 	xorl	%eax,%eax
285 	xorl	%ebx,%esi
286 
287 
288 	movl	56(%ebp),%edx
289 	movl	%esi,%ebx
290 	xorl	%edx,%edi
291 	shrl	$16,%ebx
292 	movl	%esi,%edx
293 	movb	%bh,%al
294 	andl	$255,%ebx
295 	movb	%dh,%cl
296 	andl	$255,%edx
297 	movl	72(%ebp,%eax,4),%eax
298 	movl	1096(%ebp,%ebx,4),%ebx
299 	addl	%eax,%ebx
300 	movl	2120(%ebp,%ecx,4),%eax
301 	xorl	%eax,%ebx
302 	movl	3144(%ebp,%edx,4),%edx
303 	addl	%edx,%ebx
304 	xorl	%eax,%eax
305 	xorl	%ebx,%edi
306 
307 
308 	movl	60(%ebp),%edx
309 	movl	%edi,%ebx
310 	xorl	%edx,%esi
311 	shrl	$16,%ebx
312 	movl	%edi,%edx
313 	movb	%bh,%al
314 	andl	$255,%ebx
315 	movb	%dh,%cl
316 	andl	$255,%edx
317 	movl	72(%ebp,%eax,4),%eax
318 	movl	1096(%ebp,%ebx,4),%ebx
319 	addl	%eax,%ebx
320 	movl	2120(%ebp,%ecx,4),%eax
321 	xorl	%eax,%ebx
322 	movl	3144(%ebp,%edx,4),%edx
323 	addl	%edx,%ebx
324 	xorl	%eax,%eax
325 	xorl	%ebx,%esi
326 
327 
328 	movl	64(%ebp),%edx
329 	movl	%esi,%ebx
330 	xorl	%edx,%edi
331 	shrl	$16,%ebx
332 	movl	%esi,%edx
333 	movb	%bh,%al
334 	andl	$255,%ebx
335 	movb	%dh,%cl
336 	andl	$255,%edx
337 	movl	72(%ebp,%eax,4),%eax
338 	movl	1096(%ebp,%ebx,4),%ebx
339 	addl	%eax,%ebx
340 	movl	2120(%ebp,%ecx,4),%eax
341 	xorl	%eax,%ebx
342 	movl	3144(%ebp,%edx,4),%edx
343 	addl	%edx,%ebx
344 
345 	movl	20(%esp),%eax
346 	xorl	%ebx,%edi
347 	movl	68(%ebp),%edx
348 	xorl	%edx,%esi
349 	movl	%edi,4(%eax)
350 	movl	%esi,(%eax)
351 	popl	%edi
352 	popl	%esi
353 	popl	%ebx
354 	popl	%ebp
355 	ret
356 .size	BF_encrypt,.-.L_BF_encrypt_begin
357 .globl	BF_decrypt
358 .type	BF_decrypt,@function
359 .align	16
360 BF_decrypt:
361 .L_BF_decrypt_begin:
362 	%ifdef __CET__
363 
364 .byte	243,15,30,251
365 	%endif
366 
367 
368 	pushl	%ebp
369 	pushl	%ebx
370 	movl	12(%esp),%ebx
371 	movl	16(%esp),%ebp
372 	pushl	%esi
373 	pushl	%edi
374 
375 	movl	(%ebx),%edi
376 	movl	4(%ebx),%esi
377 	xorl	%eax,%eax
378 	movl	68(%ebp),%ebx
379 	xorl	%ecx,%ecx
380 	xorl	%ebx,%edi
381 
382 
383 	movl	64(%ebp),%edx
384 	movl	%edi,%ebx
385 	xorl	%edx,%esi
386 	shrl	$16,%ebx
387 	movl	%edi,%edx
388 	movb	%bh,%al
389 	andl	$255,%ebx
390 	movb	%dh,%cl
391 	andl	$255,%edx
392 	movl	72(%ebp,%eax,4),%eax
393 	movl	1096(%ebp,%ebx,4),%ebx
394 	addl	%eax,%ebx
395 	movl	2120(%ebp,%ecx,4),%eax
396 	xorl	%eax,%ebx
397 	movl	3144(%ebp,%edx,4),%edx
398 	addl	%edx,%ebx
399 	xorl	%eax,%eax
400 	xorl	%ebx,%esi
401 
402 
403 	movl	60(%ebp),%edx
404 	movl	%esi,%ebx
405 	xorl	%edx,%edi
406 	shrl	$16,%ebx
407 	movl	%esi,%edx
408 	movb	%bh,%al
409 	andl	$255,%ebx
410 	movb	%dh,%cl
411 	andl	$255,%edx
412 	movl	72(%ebp,%eax,4),%eax
413 	movl	1096(%ebp,%ebx,4),%ebx
414 	addl	%eax,%ebx
415 	movl	2120(%ebp,%ecx,4),%eax
416 	xorl	%eax,%ebx
417 	movl	3144(%ebp,%edx,4),%edx
418 	addl	%edx,%ebx
419 	xorl	%eax,%eax
420 	xorl	%ebx,%edi
421 
422 
423 	movl	56(%ebp),%edx
424 	movl	%edi,%ebx
425 	xorl	%edx,%esi
426 	shrl	$16,%ebx
427 	movl	%edi,%edx
428 	movb	%bh,%al
429 	andl	$255,%ebx
430 	movb	%dh,%cl
431 	andl	$255,%edx
432 	movl	72(%ebp,%eax,4),%eax
433 	movl	1096(%ebp,%ebx,4),%ebx
434 	addl	%eax,%ebx
435 	movl	2120(%ebp,%ecx,4),%eax
436 	xorl	%eax,%ebx
437 	movl	3144(%ebp,%edx,4),%edx
438 	addl	%edx,%ebx
439 	xorl	%eax,%eax
440 	xorl	%ebx,%esi
441 
442 
443 	movl	52(%ebp),%edx
444 	movl	%esi,%ebx
445 	xorl	%edx,%edi
446 	shrl	$16,%ebx
447 	movl	%esi,%edx
448 	movb	%bh,%al
449 	andl	$255,%ebx
450 	movb	%dh,%cl
451 	andl	$255,%edx
452 	movl	72(%ebp,%eax,4),%eax
453 	movl	1096(%ebp,%ebx,4),%ebx
454 	addl	%eax,%ebx
455 	movl	2120(%ebp,%ecx,4),%eax
456 	xorl	%eax,%ebx
457 	movl	3144(%ebp,%edx,4),%edx
458 	addl	%edx,%ebx
459 	xorl	%eax,%eax
460 	xorl	%ebx,%edi
461 
462 
463 	movl	48(%ebp),%edx
464 	movl	%edi,%ebx
465 	xorl	%edx,%esi
466 	shrl	$16,%ebx
467 	movl	%edi,%edx
468 	movb	%bh,%al
469 	andl	$255,%ebx
470 	movb	%dh,%cl
471 	andl	$255,%edx
472 	movl	72(%ebp,%eax,4),%eax
473 	movl	1096(%ebp,%ebx,4),%ebx
474 	addl	%eax,%ebx
475 	movl	2120(%ebp,%ecx,4),%eax
476 	xorl	%eax,%ebx
477 	movl	3144(%ebp,%edx,4),%edx
478 	addl	%edx,%ebx
479 	xorl	%eax,%eax
480 	xorl	%ebx,%esi
481 
482 
483 	movl	44(%ebp),%edx
484 	movl	%esi,%ebx
485 	xorl	%edx,%edi
486 	shrl	$16,%ebx
487 	movl	%esi,%edx
488 	movb	%bh,%al
489 	andl	$255,%ebx
490 	movb	%dh,%cl
491 	andl	$255,%edx
492 	movl	72(%ebp,%eax,4),%eax
493 	movl	1096(%ebp,%ebx,4),%ebx
494 	addl	%eax,%ebx
495 	movl	2120(%ebp,%ecx,4),%eax
496 	xorl	%eax,%ebx
497 	movl	3144(%ebp,%edx,4),%edx
498 	addl	%edx,%ebx
499 	xorl	%eax,%eax
500 	xorl	%ebx,%edi
501 
502 
503 	movl	40(%ebp),%edx
504 	movl	%edi,%ebx
505 	xorl	%edx,%esi
506 	shrl	$16,%ebx
507 	movl	%edi,%edx
508 	movb	%bh,%al
509 	andl	$255,%ebx
510 	movb	%dh,%cl
511 	andl	$255,%edx
512 	movl	72(%ebp,%eax,4),%eax
513 	movl	1096(%ebp,%ebx,4),%ebx
514 	addl	%eax,%ebx
515 	movl	2120(%ebp,%ecx,4),%eax
516 	xorl	%eax,%ebx
517 	movl	3144(%ebp,%edx,4),%edx
518 	addl	%edx,%ebx
519 	xorl	%eax,%eax
520 	xorl	%ebx,%esi
521 
522 
523 	movl	36(%ebp),%edx
524 	movl	%esi,%ebx
525 	xorl	%edx,%edi
526 	shrl	$16,%ebx
527 	movl	%esi,%edx
528 	movb	%bh,%al
529 	andl	$255,%ebx
530 	movb	%dh,%cl
531 	andl	$255,%edx
532 	movl	72(%ebp,%eax,4),%eax
533 	movl	1096(%ebp,%ebx,4),%ebx
534 	addl	%eax,%ebx
535 	movl	2120(%ebp,%ecx,4),%eax
536 	xorl	%eax,%ebx
537 	movl	3144(%ebp,%edx,4),%edx
538 	addl	%edx,%ebx
539 	xorl	%eax,%eax
540 	xorl	%ebx,%edi
541 
542 
543 	movl	32(%ebp),%edx
544 	movl	%edi,%ebx
545 	xorl	%edx,%esi
546 	shrl	$16,%ebx
547 	movl	%edi,%edx
548 	movb	%bh,%al
549 	andl	$255,%ebx
550 	movb	%dh,%cl
551 	andl	$255,%edx
552 	movl	72(%ebp,%eax,4),%eax
553 	movl	1096(%ebp,%ebx,4),%ebx
554 	addl	%eax,%ebx
555 	movl	2120(%ebp,%ecx,4),%eax
556 	xorl	%eax,%ebx
557 	movl	3144(%ebp,%edx,4),%edx
558 	addl	%edx,%ebx
559 	xorl	%eax,%eax
560 	xorl	%ebx,%esi
561 
562 
563 	movl	28(%ebp),%edx
564 	movl	%esi,%ebx
565 	xorl	%edx,%edi
566 	shrl	$16,%ebx
567 	movl	%esi,%edx
568 	movb	%bh,%al
569 	andl	$255,%ebx
570 	movb	%dh,%cl
571 	andl	$255,%edx
572 	movl	72(%ebp,%eax,4),%eax
573 	movl	1096(%ebp,%ebx,4),%ebx
574 	addl	%eax,%ebx
575 	movl	2120(%ebp,%ecx,4),%eax
576 	xorl	%eax,%ebx
577 	movl	3144(%ebp,%edx,4),%edx
578 	addl	%edx,%ebx
579 	xorl	%eax,%eax
580 	xorl	%ebx,%edi
581 
582 
583 	movl	24(%ebp),%edx
584 	movl	%edi,%ebx
585 	xorl	%edx,%esi
586 	shrl	$16,%ebx
587 	movl	%edi,%edx
588 	movb	%bh,%al
589 	andl	$255,%ebx
590 	movb	%dh,%cl
591 	andl	$255,%edx
592 	movl	72(%ebp,%eax,4),%eax
593 	movl	1096(%ebp,%ebx,4),%ebx
594 	addl	%eax,%ebx
595 	movl	2120(%ebp,%ecx,4),%eax
596 	xorl	%eax,%ebx
597 	movl	3144(%ebp,%edx,4),%edx
598 	addl	%edx,%ebx
599 	xorl	%eax,%eax
600 	xorl	%ebx,%esi
601 
602 
603 	movl	20(%ebp),%edx
604 	movl	%esi,%ebx
605 	xorl	%edx,%edi
606 	shrl	$16,%ebx
607 	movl	%esi,%edx
608 	movb	%bh,%al
609 	andl	$255,%ebx
610 	movb	%dh,%cl
611 	andl	$255,%edx
612 	movl	72(%ebp,%eax,4),%eax
613 	movl	1096(%ebp,%ebx,4),%ebx
614 	addl	%eax,%ebx
615 	movl	2120(%ebp,%ecx,4),%eax
616 	xorl	%eax,%ebx
617 	movl	3144(%ebp,%edx,4),%edx
618 	addl	%edx,%ebx
619 	xorl	%eax,%eax
620 	xorl	%ebx,%edi
621 
622 
623 	movl	16(%ebp),%edx
624 	movl	%edi,%ebx
625 	xorl	%edx,%esi
626 	shrl	$16,%ebx
627 	movl	%edi,%edx
628 	movb	%bh,%al
629 	andl	$255,%ebx
630 	movb	%dh,%cl
631 	andl	$255,%edx
632 	movl	72(%ebp,%eax,4),%eax
633 	movl	1096(%ebp,%ebx,4),%ebx
634 	addl	%eax,%ebx
635 	movl	2120(%ebp,%ecx,4),%eax
636 	xorl	%eax,%ebx
637 	movl	3144(%ebp,%edx,4),%edx
638 	addl	%edx,%ebx
639 	xorl	%eax,%eax
640 	xorl	%ebx,%esi
641 
642 
643 	movl	12(%ebp),%edx
644 	movl	%esi,%ebx
645 	xorl	%edx,%edi
646 	shrl	$16,%ebx
647 	movl	%esi,%edx
648 	movb	%bh,%al
649 	andl	$255,%ebx
650 	movb	%dh,%cl
651 	andl	$255,%edx
652 	movl	72(%ebp,%eax,4),%eax
653 	movl	1096(%ebp,%ebx,4),%ebx
654 	addl	%eax,%ebx
655 	movl	2120(%ebp,%ecx,4),%eax
656 	xorl	%eax,%ebx
657 	movl	3144(%ebp,%edx,4),%edx
658 	addl	%edx,%ebx
659 	xorl	%eax,%eax
660 	xorl	%ebx,%edi
661 
662 
663 	movl	8(%ebp),%edx
664 	movl	%edi,%ebx
665 	xorl	%edx,%esi
666 	shrl	$16,%ebx
667 	movl	%edi,%edx
668 	movb	%bh,%al
669 	andl	$255,%ebx
670 	movb	%dh,%cl
671 	andl	$255,%edx
672 	movl	72(%ebp,%eax,4),%eax
673 	movl	1096(%ebp,%ebx,4),%ebx
674 	addl	%eax,%ebx
675 	movl	2120(%ebp,%ecx,4),%eax
676 	xorl	%eax,%ebx
677 	movl	3144(%ebp,%edx,4),%edx
678 	addl	%edx,%ebx
679 	xorl	%eax,%eax
680 	xorl	%ebx,%esi
681 
682 
683 	movl	4(%ebp),%edx
684 	movl	%esi,%ebx
685 	xorl	%edx,%edi
686 	shrl	$16,%ebx
687 	movl	%esi,%edx
688 	movb	%bh,%al
689 	andl	$255,%ebx
690 	movb	%dh,%cl
691 	andl	$255,%edx
692 	movl	72(%ebp,%eax,4),%eax
693 	movl	1096(%ebp,%ebx,4),%ebx
694 	addl	%eax,%ebx
695 	movl	2120(%ebp,%ecx,4),%eax
696 	xorl	%eax,%ebx
697 	movl	3144(%ebp,%edx,4),%edx
698 	addl	%edx,%ebx
699 
700 	movl	20(%esp),%eax
701 	xorl	%ebx,%edi
702 	movl	(%ebp),%edx
703 	xorl	%edx,%esi
704 	movl	%edi,4(%eax)
705 	movl	%esi,(%eax)
706 	popl	%edi
707 	popl	%esi
708 	popl	%ebx
709 	popl	%ebp
710 	ret
711 .size	BF_decrypt,.-.L_BF_decrypt_begin
712 .globl	BF_cbc_encrypt
713 .type	BF_cbc_encrypt,@function
714 .align	16
715 BF_cbc_encrypt:
716 .L_BF_cbc_encrypt_begin:
717 	%ifdef __CET__
718 
719 .byte	243,15,30,251
720 	%endif
721 
722 
723 	pushl	%ebp
724 	pushl	%ebx
725 	pushl	%esi
726 	pushl	%edi
727 	movl	28(%esp),%ebp
728 
729 	movl	36(%esp),%ebx
730 	movl	(%ebx),%esi
731 	movl	4(%ebx),%edi
732 	pushl	%edi
733 	pushl	%esi
734 	pushl	%edi
735 	pushl	%esi
736 	movl	%esp,%ebx
737 	movl	36(%esp),%esi
738 	movl	40(%esp),%edi
739 
740 	movl	56(%esp),%ecx
741 
742 	movl	48(%esp),%eax
743 	pushl	%eax
744 	pushl	%ebx
745 	cmpl	$0,%ecx
746 	jz	.L000decrypt
747 	andl	$4294967288,%ebp
748 	movl	8(%esp),%eax
749 	movl	12(%esp),%ebx
750 	jz	.L001encrypt_finish
751 .L002encrypt_loop:
752 	movl	(%esi),%ecx
753 	movl	4(%esi),%edx
754 	xorl	%ecx,%eax
755 	xorl	%edx,%ebx
756 	bswap	%eax
757 	bswap	%ebx
758 	movl	%eax,8(%esp)
759 	movl	%ebx,12(%esp)
760 	call	.L_BF_encrypt_begin
761 	movl	8(%esp),%eax
762 	movl	12(%esp),%ebx
763 	bswap	%eax
764 	bswap	%ebx
765 	movl	%eax,(%edi)
766 	movl	%ebx,4(%edi)
767 	addl	$8,%esi
768 	addl	$8,%edi
769 	subl	$8,%ebp
770 	jnz	.L002encrypt_loop
771 .L001encrypt_finish:
772 	movl	52(%esp),%ebp
773 	andl	$7,%ebp
774 	jz	.L003finish
775 	call	.L004PIC_point
776 .L004PIC_point:
777 	popl	%edx
778 	leal	.L005cbc_enc_jmp_table-.L004PIC_point(%edx),%ecx
779 	movl	(%ecx,%ebp,4),%ebp
780 	addl	%edx,%ebp
781 	xorl	%ecx,%ecx
782 	xorl	%edx,%edx
783 	jmp	*%ebp
784 .L006ej7:
785 	%ifdef __CET__
786 
787 .byte	243,15,30,251
788 	%endif
789 
790 	movb	6(%esi),%dh
791 	shll	$8,%edx
792 .L007ej6:
793 	%ifdef __CET__
794 
795 .byte	243,15,30,251
796 	%endif
797 
798 	movb	5(%esi),%dh
799 .L008ej5:
800 	%ifdef __CET__
801 
802 .byte	243,15,30,251
803 	%endif
804 
805 	movb	4(%esi),%dl
806 .L009ej4:
807 	%ifdef __CET__
808 
809 .byte	243,15,30,251
810 	%endif
811 
812 	movl	(%esi),%ecx
813 	jmp	.L010ejend
814 .L011ej3:
815 	%ifdef __CET__
816 
817 .byte	243,15,30,251
818 	%endif
819 
820 	movb	2(%esi),%ch
821 	shll	$8,%ecx
822 .L012ej2:
823 	%ifdef __CET__
824 
825 .byte	243,15,30,251
826 	%endif
827 
828 	movb	1(%esi),%ch
829 .L013ej1:
830 	%ifdef __CET__
831 
832 .byte	243,15,30,251
833 	%endif
834 
835 	movb	(%esi),%cl
836 .L010ejend:
837 	xorl	%ecx,%eax
838 	xorl	%edx,%ebx
839 	bswap	%eax
840 	bswap	%ebx
841 	movl	%eax,8(%esp)
842 	movl	%ebx,12(%esp)
843 	call	.L_BF_encrypt_begin
844 	movl	8(%esp),%eax
845 	movl	12(%esp),%ebx
846 	bswap	%eax
847 	bswap	%ebx
848 	movl	%eax,(%edi)
849 	movl	%ebx,4(%edi)
850 	jmp	.L003finish
851 .L000decrypt:
852 	andl	$4294967288,%ebp
853 	movl	16(%esp),%eax
854 	movl	20(%esp),%ebx
855 	jz	.L014decrypt_finish
856 .L015decrypt_loop:
857 	movl	(%esi),%eax
858 	movl	4(%esi),%ebx
859 	bswap	%eax
860 	bswap	%ebx
861 	movl	%eax,8(%esp)
862 	movl	%ebx,12(%esp)
863 	call	.L_BF_decrypt_begin
864 	movl	8(%esp),%eax
865 	movl	12(%esp),%ebx
866 	bswap	%eax
867 	bswap	%ebx
868 	movl	16(%esp),%ecx
869 	movl	20(%esp),%edx
870 	xorl	%eax,%ecx
871 	xorl	%ebx,%edx
872 	movl	(%esi),%eax
873 	movl	4(%esi),%ebx
874 	movl	%ecx,(%edi)
875 	movl	%edx,4(%edi)
876 	movl	%eax,16(%esp)
877 	movl	%ebx,20(%esp)
878 	addl	$8,%esi
879 	addl	$8,%edi
880 	subl	$8,%ebp
881 	jnz	.L015decrypt_loop
882 .L014decrypt_finish:
883 	movl	52(%esp),%ebp
884 	andl	$7,%ebp
885 	jz	.L003finish
886 	movl	(%esi),%eax
887 	movl	4(%esi),%ebx
888 	bswap	%eax
889 	bswap	%ebx
890 	movl	%eax,8(%esp)
891 	movl	%ebx,12(%esp)
892 	call	.L_BF_decrypt_begin
893 	movl	8(%esp),%eax
894 	movl	12(%esp),%ebx
895 	bswap	%eax
896 	bswap	%ebx
897 	movl	16(%esp),%ecx
898 	movl	20(%esp),%edx
899 	xorl	%eax,%ecx
900 	xorl	%ebx,%edx
901 	movl	(%esi),%eax
902 	movl	4(%esi),%ebx
903 .L016dj7:
904 	rorl	$16,%edx
905 	movb	%dl,6(%edi)
906 	shrl	$16,%edx
907 .L017dj6:
908 	movb	%dh,5(%edi)
909 .L018dj5:
910 	movb	%dl,4(%edi)
911 .L019dj4:
912 	movl	%ecx,(%edi)
913 	jmp	.L020djend
914 .L021dj3:
915 	rorl	$16,%ecx
916 	movb	%cl,2(%edi)
917 	shll	$16,%ecx
918 .L022dj2:
919 	movb	%ch,1(%esi)
920 .L023dj1:
921 	movb	%cl,(%esi)
922 .L020djend:
923 	jmp	.L003finish
924 .L003finish:
925 	movl	60(%esp),%ecx
926 	addl	$24,%esp
927 	movl	%eax,(%ecx)
928 	movl	%ebx,4(%ecx)
929 	popl	%edi
930 	popl	%esi
931 	popl	%ebx
932 	popl	%ebp
933 	ret
934 .align	64
935 .L005cbc_enc_jmp_table:
936 .long	0
937 .long	.L013ej1-.L004PIC_point
938 .long	.L012ej2-.L004PIC_point
939 .long	.L011ej3-.L004PIC_point
940 .long	.L009ej4-.L004PIC_point
941 .long	.L008ej5-.L004PIC_point
942 .long	.L007ej6-.L004PIC_point
943 .long	.L006ej7-.L004PIC_point
944 .align	64
945 .size	BF_cbc_encrypt,.-.L_BF_cbc_encrypt_begin
946 
947 	.section ".note.gnu.property", "a"
948 	.p2align 2
949 	.long 1f - 0f
950 	.long 4f - 1f
951 	.long 5
952 0:
953 	.asciz "GNU"
954 1:
955 	.p2align 2
956 	.long 0xc0000002
957 	.long 3f - 2f
958 2:
959 	.long 3
960 3:
961 	.p2align 2
962 4:
963