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