• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1.text
2.globl	BF_encrypt
3.type	BF_encrypt,@function
4.align	16
5BF_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
360BF_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
715BF_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
9520:
953	.asciz "GNU"
9541:
955	.p2align 2
956	.long 0xc0000002
957	.long 3f - 2f
9582:
959	.long 3
9603:
961	.p2align 2
9624:
963