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