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