195967Speter	# $FreeBSD$
2238405Sjkim.file	"bf-686.s"
395967Speter.text
4238405Sjkim.globl	BF_encrypt
5238405Sjkim.type	BF_encrypt,@function
6238405Sjkim.align	16
795967SpeterBF_encrypt:
8238405Sjkim.L_BF_encrypt_begin:
995967Speter	pushl	%ebp
1095967Speter	pushl	%ebx
1195967Speter	pushl	%esi
1295967Speter	pushl	%edi
1395967Speter
1495967Speter
15238405Sjkim	movl	20(%esp),%eax
16238405Sjkim	movl	(%eax),%ecx
17238405Sjkim	movl	4(%eax),%edx
18127326Smarkm
1995967Speter
20238405Sjkim	movl	24(%esp),%edi
21238405Sjkim	xorl	%eax,%eax
22238405Sjkim	xorl	%ebx,%ebx
23238405Sjkim	xorl	(%edi),%ecx
24127326Smarkm
2595967Speter
26238405Sjkim	rorl	$16,%ecx
27238405Sjkim	movl	4(%edi),%esi
28238405Sjkim	movb	%ch,%al
29238405Sjkim	movb	%cl,%bl
30238405Sjkim	rorl	$16,%ecx
31238405Sjkim	xorl	%esi,%edx
3295967Speter	movl	72(%edi,%eax,4),%esi
3395967Speter	movl	1096(%edi,%ebx,4),%ebp
34238405Sjkim	movb	%ch,%al
35238405Sjkim	movb	%cl,%bl
36238405Sjkim	addl	%ebp,%esi
3795967Speter	movl	2120(%edi,%eax,4),%eax
38238405Sjkim	xorl	%eax,%esi
3995967Speter	movl	3144(%edi,%ebx,4),%ebp
40238405Sjkim	addl	%ebp,%esi
41238405Sjkim	xorl	%eax,%eax
42238405Sjkim	xorl	%esi,%edx
4395967Speter
44127326Smarkm
45238405Sjkim	rorl	$16,%edx
46238405Sjkim	movl	8(%edi),%esi
47238405Sjkim	movb	%dh,%al
48238405Sjkim	movb	%dl,%bl
49238405Sjkim	rorl	$16,%edx
50238405Sjkim	xorl	%esi,%ecx
5195967Speter	movl	72(%edi,%eax,4),%esi
5295967Speter	movl	1096(%edi,%ebx,4),%ebp
53238405Sjkim	movb	%dh,%al
54238405Sjkim	movb	%dl,%bl
55238405Sjkim	addl	%ebp,%esi
5695967Speter	movl	2120(%edi,%eax,4),%eax
57238405Sjkim	xorl	%eax,%esi
5895967Speter	movl	3144(%edi,%ebx,4),%ebp
59238405Sjkim	addl	%ebp,%esi
60238405Sjkim	xorl	%eax,%eax
61238405Sjkim	xorl	%esi,%ecx
6295967Speter
63127326Smarkm
64238405Sjkim	rorl	$16,%ecx
65238405Sjkim	movl	12(%edi),%esi
66238405Sjkim	movb	%ch,%al
67238405Sjkim	movb	%cl,%bl
68238405Sjkim	rorl	$16,%ecx
69238405Sjkim	xorl	%esi,%edx
7095967Speter	movl	72(%edi,%eax,4),%esi
7195967Speter	movl	1096(%edi,%ebx,4),%ebp
72238405Sjkim	movb	%ch,%al
73238405Sjkim	movb	%cl,%bl
74238405Sjkim	addl	%ebp,%esi
7595967Speter	movl	2120(%edi,%eax,4),%eax
76238405Sjkim	xorl	%eax,%esi
7795967Speter	movl	3144(%edi,%ebx,4),%ebp
78238405Sjkim	addl	%ebp,%esi
79238405Sjkim	xorl	%eax,%eax
80238405Sjkim	xorl	%esi,%edx
8195967Speter
82127326Smarkm
83238405Sjkim	rorl	$16,%edx
84238405Sjkim	movl	16(%edi),%esi
85238405Sjkim	movb	%dh,%al
86238405Sjkim	movb	%dl,%bl
87238405Sjkim	rorl	$16,%edx
88238405Sjkim	xorl	%esi,%ecx
8995967Speter	movl	72(%edi,%eax,4),%esi
9095967Speter	movl	1096(%edi,%ebx,4),%ebp
91238405Sjkim	movb	%dh,%al
92238405Sjkim	movb	%dl,%bl
93238405Sjkim	addl	%ebp,%esi
9495967Speter	movl	2120(%edi,%eax,4),%eax
95238405Sjkim	xorl	%eax,%esi
9695967Speter	movl	3144(%edi,%ebx,4),%ebp
97238405Sjkim	addl	%ebp,%esi
98238405Sjkim	xorl	%eax,%eax
99238405Sjkim	xorl	%esi,%ecx
10095967Speter
101127326Smarkm
102238405Sjkim	rorl	$16,%ecx
103238405Sjkim	movl	20(%edi),%esi
104238405Sjkim	movb	%ch,%al
105238405Sjkim	movb	%cl,%bl
106238405Sjkim	rorl	$16,%ecx
107238405Sjkim	xorl	%esi,%edx
10895967Speter	movl	72(%edi,%eax,4),%esi
10995967Speter	movl	1096(%edi,%ebx,4),%ebp
110238405Sjkim	movb	%ch,%al
111238405Sjkim	movb	%cl,%bl
112238405Sjkim	addl	%ebp,%esi
11395967Speter	movl	2120(%edi,%eax,4),%eax
114238405Sjkim	xorl	%eax,%esi
11595967Speter	movl	3144(%edi,%ebx,4),%ebp
116238405Sjkim	addl	%ebp,%esi
117238405Sjkim	xorl	%eax,%eax
118238405Sjkim	xorl	%esi,%edx
11995967Speter
120127326Smarkm
121238405Sjkim	rorl	$16,%edx
122238405Sjkim	movl	24(%edi),%esi
123238405Sjkim	movb	%dh,%al
124238405Sjkim	movb	%dl,%bl
125238405Sjkim	rorl	$16,%edx
126238405Sjkim	xorl	%esi,%ecx
12795967Speter	movl	72(%edi,%eax,4),%esi
12895967Speter	movl	1096(%edi,%ebx,4),%ebp
129238405Sjkim	movb	%dh,%al
130238405Sjkim	movb	%dl,%bl
131238405Sjkim	addl	%ebp,%esi
13295967Speter	movl	2120(%edi,%eax,4),%eax
133238405Sjkim	xorl	%eax,%esi
13495967Speter	movl	3144(%edi,%ebx,4),%ebp
135238405Sjkim	addl	%ebp,%esi
136238405Sjkim	xorl	%eax,%eax
137238405Sjkim	xorl	%esi,%ecx
13895967Speter
139127326Smarkm
140238405Sjkim	rorl	$16,%ecx
141238405Sjkim	movl	28(%edi),%esi
142238405Sjkim	movb	%ch,%al
143238405Sjkim	movb	%cl,%bl
144238405Sjkim	rorl	$16,%ecx
145238405Sjkim	xorl	%esi,%edx
14695967Speter	movl	72(%edi,%eax,4),%esi
14795967Speter	movl	1096(%edi,%ebx,4),%ebp
148238405Sjkim	movb	%ch,%al
149238405Sjkim	movb	%cl,%bl
150238405Sjkim	addl	%ebp,%esi
15195967Speter	movl	2120(%edi,%eax,4),%eax
152238405Sjkim	xorl	%eax,%esi
15395967Speter	movl	3144(%edi,%ebx,4),%ebp
154238405Sjkim	addl	%ebp,%esi
155238405Sjkim	xorl	%eax,%eax
156238405Sjkim	xorl	%esi,%edx
15795967Speter
158127326Smarkm
159238405Sjkim	rorl	$16,%edx
160238405Sjkim	movl	32(%edi),%esi
161238405Sjkim	movb	%dh,%al
162238405Sjkim	movb	%dl,%bl
163238405Sjkim	rorl	$16,%edx
164238405Sjkim	xorl	%esi,%ecx
16595967Speter	movl	72(%edi,%eax,4),%esi
16695967Speter	movl	1096(%edi,%ebx,4),%ebp
167238405Sjkim	movb	%dh,%al
168238405Sjkim	movb	%dl,%bl
169238405Sjkim	addl	%ebp,%esi
17095967Speter	movl	2120(%edi,%eax,4),%eax
171238405Sjkim	xorl	%eax,%esi
17295967Speter	movl	3144(%edi,%ebx,4),%ebp
173238405Sjkim	addl	%ebp,%esi
174238405Sjkim	xorl	%eax,%eax
175238405Sjkim	xorl	%esi,%ecx
17695967Speter
177127326Smarkm
178238405Sjkim	rorl	$16,%ecx
179238405Sjkim	movl	36(%edi),%esi
180238405Sjkim	movb	%ch,%al
181238405Sjkim	movb	%cl,%bl
182238405Sjkim	rorl	$16,%ecx
183238405Sjkim	xorl	%esi,%edx
18495967Speter	movl	72(%edi,%eax,4),%esi
18595967Speter	movl	1096(%edi,%ebx,4),%ebp
186238405Sjkim	movb	%ch,%al
187238405Sjkim	movb	%cl,%bl
188238405Sjkim	addl	%ebp,%esi
18995967Speter	movl	2120(%edi,%eax,4),%eax
190238405Sjkim	xorl	%eax,%esi
19195967Speter	movl	3144(%edi,%ebx,4),%ebp
192238405Sjkim	addl	%ebp,%esi
193238405Sjkim	xorl	%eax,%eax
194238405Sjkim	xorl	%esi,%edx
19595967Speter
196127326Smarkm
197238405Sjkim	rorl	$16,%edx
198238405Sjkim	movl	40(%edi),%esi
199238405Sjkim	movb	%dh,%al
200238405Sjkim	movb	%dl,%bl
201238405Sjkim	rorl	$16,%edx
202238405Sjkim	xorl	%esi,%ecx
20395967Speter	movl	72(%edi,%eax,4),%esi
20495967Speter	movl	1096(%edi,%ebx,4),%ebp
205238405Sjkim	movb	%dh,%al
206238405Sjkim	movb	%dl,%bl
207238405Sjkim	addl	%ebp,%esi
20895967Speter	movl	2120(%edi,%eax,4),%eax
209238405Sjkim	xorl	%eax,%esi
21095967Speter	movl	3144(%edi,%ebx,4),%ebp
211238405Sjkim	addl	%ebp,%esi
212238405Sjkim	xorl	%eax,%eax
213238405Sjkim	xorl	%esi,%ecx
21495967Speter
215127326Smarkm
216238405Sjkim	rorl	$16,%ecx
217238405Sjkim	movl	44(%edi),%esi
218238405Sjkim	movb	%ch,%al
219238405Sjkim	movb	%cl,%bl
220238405Sjkim	rorl	$16,%ecx
221238405Sjkim	xorl	%esi,%edx
22295967Speter	movl	72(%edi,%eax,4),%esi
22395967Speter	movl	1096(%edi,%ebx,4),%ebp
224238405Sjkim	movb	%ch,%al
225238405Sjkim	movb	%cl,%bl
226238405Sjkim	addl	%ebp,%esi
22795967Speter	movl	2120(%edi,%eax,4),%eax
228238405Sjkim	xorl	%eax,%esi
22995967Speter	movl	3144(%edi,%ebx,4),%ebp
230238405Sjkim	addl	%ebp,%esi
231238405Sjkim	xorl	%eax,%eax
232238405Sjkim	xorl	%esi,%edx
23395967Speter
234127326Smarkm
235238405Sjkim	rorl	$16,%edx
236238405Sjkim	movl	48(%edi),%esi
237238405Sjkim	movb	%dh,%al
238238405Sjkim	movb	%dl,%bl
239238405Sjkim	rorl	$16,%edx
240238405Sjkim	xorl	%esi,%ecx
24195967Speter	movl	72(%edi,%eax,4),%esi
24295967Speter	movl	1096(%edi,%ebx,4),%ebp
243238405Sjkim	movb	%dh,%al
244238405Sjkim	movb	%dl,%bl
245238405Sjkim	addl	%ebp,%esi
24695967Speter	movl	2120(%edi,%eax,4),%eax
247238405Sjkim	xorl	%eax,%esi
24895967Speter	movl	3144(%edi,%ebx,4),%ebp
249238405Sjkim	addl	%ebp,%esi
250238405Sjkim	xorl	%eax,%eax
251238405Sjkim	xorl	%esi,%ecx
25295967Speter
253127326Smarkm
254238405Sjkim	rorl	$16,%ecx
255238405Sjkim	movl	52(%edi),%esi
256238405Sjkim	movb	%ch,%al
257238405Sjkim	movb	%cl,%bl
258238405Sjkim	rorl	$16,%ecx
259238405Sjkim	xorl	%esi,%edx
26095967Speter	movl	72(%edi,%eax,4),%esi
26195967Speter	movl	1096(%edi,%ebx,4),%ebp
262238405Sjkim	movb	%ch,%al
263238405Sjkim	movb	%cl,%bl
264238405Sjkim	addl	%ebp,%esi
26595967Speter	movl	2120(%edi,%eax,4),%eax
266238405Sjkim	xorl	%eax,%esi
26795967Speter	movl	3144(%edi,%ebx,4),%ebp
268238405Sjkim	addl	%ebp,%esi
269238405Sjkim	xorl	%eax,%eax
270238405Sjkim	xorl	%esi,%edx
27195967Speter
272127326Smarkm
273238405Sjkim	rorl	$16,%edx
274238405Sjkim	movl	56(%edi),%esi
275238405Sjkim	movb	%dh,%al
276238405Sjkim	movb	%dl,%bl
277238405Sjkim	rorl	$16,%edx
278238405Sjkim	xorl	%esi,%ecx
27995967Speter	movl	72(%edi,%eax,4),%esi
28095967Speter	movl	1096(%edi,%ebx,4),%ebp
281238405Sjkim	movb	%dh,%al
282238405Sjkim	movb	%dl,%bl
283238405Sjkim	addl	%ebp,%esi
28495967Speter	movl	2120(%edi,%eax,4),%eax
285238405Sjkim	xorl	%eax,%esi
28695967Speter	movl	3144(%edi,%ebx,4),%ebp
287238405Sjkim	addl	%ebp,%esi
288238405Sjkim	xorl	%eax,%eax
289238405Sjkim	xorl	%esi,%ecx
29095967Speter
291127326Smarkm
292238405Sjkim	rorl	$16,%ecx
293238405Sjkim	movl	60(%edi),%esi
294238405Sjkim	movb	%ch,%al
295238405Sjkim	movb	%cl,%bl
296238405Sjkim	rorl	$16,%ecx
297238405Sjkim	xorl	%esi,%edx
29895967Speter	movl	72(%edi,%eax,4),%esi
29995967Speter	movl	1096(%edi,%ebx,4),%ebp
300238405Sjkim	movb	%ch,%al
301238405Sjkim	movb	%cl,%bl
302238405Sjkim	addl	%ebp,%esi
30395967Speter	movl	2120(%edi,%eax,4),%eax
304238405Sjkim	xorl	%eax,%esi
30595967Speter	movl	3144(%edi,%ebx,4),%ebp
306238405Sjkim	addl	%ebp,%esi
307238405Sjkim	xorl	%eax,%eax
308238405Sjkim	xorl	%esi,%edx
30995967Speter
310127326Smarkm
311238405Sjkim	rorl	$16,%edx
312238405Sjkim	movl	64(%edi),%esi
313238405Sjkim	movb	%dh,%al
314238405Sjkim	movb	%dl,%bl
315238405Sjkim	rorl	$16,%edx
316238405Sjkim	xorl	%esi,%ecx
31795967Speter	movl	72(%edi,%eax,4),%esi
31895967Speter	movl	1096(%edi,%ebx,4),%ebp
319238405Sjkim	movb	%dh,%al
320238405Sjkim	movb	%dl,%bl
321238405Sjkim	addl	%ebp,%esi
32295967Speter	movl	2120(%edi,%eax,4),%eax
323238405Sjkim	xorl	%eax,%esi
32495967Speter	movl	3144(%edi,%ebx,4),%ebp
325238405Sjkim	addl	%ebp,%esi
326238405Sjkim	xorl	%eax,%eax
327238405Sjkim	xorl	%esi,%ecx
328238405Sjkim	xorl	68(%edi),%edx
329238405Sjkim	movl	20(%esp),%eax
330238405Sjkim	movl	%edx,(%eax)
331238405Sjkim	movl	%ecx,4(%eax)
33295967Speter	popl	%edi
33395967Speter	popl	%esi
33495967Speter	popl	%ebx
33595967Speter	popl	%ebp
33695967Speter	ret
337238405Sjkim.size	BF_encrypt,.-.L_BF_encrypt_begin
338238405Sjkim.globl	BF_decrypt
339238405Sjkim.type	BF_decrypt,@function
340238405Sjkim.align	16
34195967SpeterBF_decrypt:
342238405Sjkim.L_BF_decrypt_begin:
34395967Speter	pushl	%ebp
34495967Speter	pushl	%ebx
34595967Speter	pushl	%esi
34695967Speter	pushl	%edi
34795967Speter
34895967Speter
349238405Sjkim	movl	20(%esp),%eax
350238405Sjkim	movl	(%eax),%ecx
351238405Sjkim	movl	4(%eax),%edx
352127326Smarkm
35395967Speter
354238405Sjkim	movl	24(%esp),%edi
355238405Sjkim	xorl	%eax,%eax
356238405Sjkim	xorl	%ebx,%ebx
357238405Sjkim	xorl	68(%edi),%ecx
358127326Smarkm
35995967Speter
360238405Sjkim	rorl	$16,%ecx
361238405Sjkim	movl	64(%edi),%esi
362238405Sjkim	movb	%ch,%al
363238405Sjkim	movb	%cl,%bl
364238405Sjkim	rorl	$16,%ecx
365238405Sjkim	xorl	%esi,%edx
36695967Speter	movl	72(%edi,%eax,4),%esi
36795967Speter	movl	1096(%edi,%ebx,4),%ebp
368238405Sjkim	movb	%ch,%al
369238405Sjkim	movb	%cl,%bl
370238405Sjkim	addl	%ebp,%esi
37195967Speter	movl	2120(%edi,%eax,4),%eax
372238405Sjkim	xorl	%eax,%esi
37395967Speter	movl	3144(%edi,%ebx,4),%ebp
374238405Sjkim	addl	%ebp,%esi
375238405Sjkim	xorl	%eax,%eax
376238405Sjkim	xorl	%esi,%edx
37795967Speter
378127326Smarkm
379238405Sjkim	rorl	$16,%edx
380238405Sjkim	movl	60(%edi),%esi
381238405Sjkim	movb	%dh,%al
382238405Sjkim	movb	%dl,%bl
383238405Sjkim	rorl	$16,%edx
384238405Sjkim	xorl	%esi,%ecx
38595967Speter	movl	72(%edi,%eax,4),%esi
38695967Speter	movl	1096(%edi,%ebx,4),%ebp
387238405Sjkim	movb	%dh,%al
388238405Sjkim	movb	%dl,%bl
389238405Sjkim	addl	%ebp,%esi
39095967Speter	movl	2120(%edi,%eax,4),%eax
391238405Sjkim	xorl	%eax,%esi
39295967Speter	movl	3144(%edi,%ebx,4),%ebp
393238405Sjkim	addl	%ebp,%esi
394238405Sjkim	xorl	%eax,%eax
395238405Sjkim	xorl	%esi,%ecx
39695967Speter
397127326Smarkm
398238405Sjkim	rorl	$16,%ecx
399238405Sjkim	movl	56(%edi),%esi
400238405Sjkim	movb	%ch,%al
401238405Sjkim	movb	%cl,%bl
402238405Sjkim	rorl	$16,%ecx
403238405Sjkim	xorl	%esi,%edx
40495967Speter	movl	72(%edi,%eax,4),%esi
40595967Speter	movl	1096(%edi,%ebx,4),%ebp
406238405Sjkim	movb	%ch,%al
407238405Sjkim	movb	%cl,%bl
408238405Sjkim	addl	%ebp,%esi
40995967Speter	movl	2120(%edi,%eax,4),%eax
410238405Sjkim	xorl	%eax,%esi
41195967Speter	movl	3144(%edi,%ebx,4),%ebp
412238405Sjkim	addl	%ebp,%esi
413238405Sjkim	xorl	%eax,%eax
414238405Sjkim	xorl	%esi,%edx
41595967Speter
416127326Smarkm
417238405Sjkim	rorl	$16,%edx
418238405Sjkim	movl	52(%edi),%esi
419238405Sjkim	movb	%dh,%al
420238405Sjkim	movb	%dl,%bl
421238405Sjkim	rorl	$16,%edx
422238405Sjkim	xorl	%esi,%ecx
42395967Speter	movl	72(%edi,%eax,4),%esi
42495967Speter	movl	1096(%edi,%ebx,4),%ebp
425238405Sjkim	movb	%dh,%al
426238405Sjkim	movb	%dl,%bl
427238405Sjkim	addl	%ebp,%esi
42895967Speter	movl	2120(%edi,%eax,4),%eax
429238405Sjkim	xorl	%eax,%esi
43095967Speter	movl	3144(%edi,%ebx,4),%ebp
431238405Sjkim	addl	%ebp,%esi
432238405Sjkim	xorl	%eax,%eax
433238405Sjkim	xorl	%esi,%ecx
43495967Speter
435127326Smarkm
436238405Sjkim	rorl	$16,%ecx
437238405Sjkim	movl	48(%edi),%esi
438238405Sjkim	movb	%ch,%al
439238405Sjkim	movb	%cl,%bl
440238405Sjkim	rorl	$16,%ecx
441238405Sjkim	xorl	%esi,%edx
44295967Speter	movl	72(%edi,%eax,4),%esi
44395967Speter	movl	1096(%edi,%ebx,4),%ebp
444238405Sjkim	movb	%ch,%al
445238405Sjkim	movb	%cl,%bl
446238405Sjkim	addl	%ebp,%esi
44795967Speter	movl	2120(%edi,%eax,4),%eax
448238405Sjkim	xorl	%eax,%esi
44995967Speter	movl	3144(%edi,%ebx,4),%ebp
450238405Sjkim	addl	%ebp,%esi
451238405Sjkim	xorl	%eax,%eax
452238405Sjkim	xorl	%esi,%edx
45395967Speter
454127326Smarkm
455238405Sjkim	rorl	$16,%edx
456238405Sjkim	movl	44(%edi),%esi
457238405Sjkim	movb	%dh,%al
458238405Sjkim	movb	%dl,%bl
459238405Sjkim	rorl	$16,%edx
460238405Sjkim	xorl	%esi,%ecx
46195967Speter	movl	72(%edi,%eax,4),%esi
46295967Speter	movl	1096(%edi,%ebx,4),%ebp
463238405Sjkim	movb	%dh,%al
464238405Sjkim	movb	%dl,%bl
465238405Sjkim	addl	%ebp,%esi
46695967Speter	movl	2120(%edi,%eax,4),%eax
467238405Sjkim	xorl	%eax,%esi
46895967Speter	movl	3144(%edi,%ebx,4),%ebp
469238405Sjkim	addl	%ebp,%esi
470238405Sjkim	xorl	%eax,%eax
471238405Sjkim	xorl	%esi,%ecx
47295967Speter
473127326Smarkm
474238405Sjkim	rorl	$16,%ecx
475238405Sjkim	movl	40(%edi),%esi
476238405Sjkim	movb	%ch,%al
477238405Sjkim	movb	%cl,%bl
478238405Sjkim	rorl	$16,%ecx
479238405Sjkim	xorl	%esi,%edx
48095967Speter	movl	72(%edi,%eax,4),%esi
48195967Speter	movl	1096(%edi,%ebx,4),%ebp
482238405Sjkim	movb	%ch,%al
483238405Sjkim	movb	%cl,%bl
484238405Sjkim	addl	%ebp,%esi
48595967Speter	movl	2120(%edi,%eax,4),%eax
486238405Sjkim	xorl	%eax,%esi
48795967Speter	movl	3144(%edi,%ebx,4),%ebp
488238405Sjkim	addl	%ebp,%esi
489238405Sjkim	xorl	%eax,%eax
490238405Sjkim	xorl	%esi,%edx
49195967Speter
492127326Smarkm
493238405Sjkim	rorl	$16,%edx
494238405Sjkim	movl	36(%edi),%esi
495238405Sjkim	movb	%dh,%al
496238405Sjkim	movb	%dl,%bl
497238405Sjkim	rorl	$16,%edx
498238405Sjkim	xorl	%esi,%ecx
49995967Speter	movl	72(%edi,%eax,4),%esi
50095967Speter	movl	1096(%edi,%ebx,4),%ebp
501238405Sjkim	movb	%dh,%al
502238405Sjkim	movb	%dl,%bl
503238405Sjkim	addl	%ebp,%esi
50495967Speter	movl	2120(%edi,%eax,4),%eax
505238405Sjkim	xorl	%eax,%esi
50695967Speter	movl	3144(%edi,%ebx,4),%ebp
507238405Sjkim	addl	%ebp,%esi
508238405Sjkim	xorl	%eax,%eax
509238405Sjkim	xorl	%esi,%ecx
51095967Speter
511127326Smarkm
512238405Sjkim	rorl	$16,%ecx
513238405Sjkim	movl	32(%edi),%esi
514238405Sjkim	movb	%ch,%al
515238405Sjkim	movb	%cl,%bl
516238405Sjkim	rorl	$16,%ecx
517238405Sjkim	xorl	%esi,%edx
51895967Speter	movl	72(%edi,%eax,4),%esi
51995967Speter	movl	1096(%edi,%ebx,4),%ebp
520238405Sjkim	movb	%ch,%al
521238405Sjkim	movb	%cl,%bl
522238405Sjkim	addl	%ebp,%esi
52395967Speter	movl	2120(%edi,%eax,4),%eax
524238405Sjkim	xorl	%eax,%esi
52595967Speter	movl	3144(%edi,%ebx,4),%ebp
526238405Sjkim	addl	%ebp,%esi
527238405Sjkim	xorl	%eax,%eax
528238405Sjkim	xorl	%esi,%edx
52995967Speter
530127326Smarkm
531238405Sjkim	rorl	$16,%edx
532238405Sjkim	movl	28(%edi),%esi
533238405Sjkim	movb	%dh,%al
534238405Sjkim	movb	%dl,%bl
535238405Sjkim	rorl	$16,%edx
536238405Sjkim	xorl	%esi,%ecx
53795967Speter	movl	72(%edi,%eax,4),%esi
53895967Speter	movl	1096(%edi,%ebx,4),%ebp
539238405Sjkim	movb	%dh,%al
540238405Sjkim	movb	%dl,%bl
541238405Sjkim	addl	%ebp,%esi
54295967Speter	movl	2120(%edi,%eax,4),%eax
543238405Sjkim	xorl	%eax,%esi
54495967Speter	movl	3144(%edi,%ebx,4),%ebp
545238405Sjkim	addl	%ebp,%esi
546238405Sjkim	xorl	%eax,%eax
547238405Sjkim	xorl	%esi,%ecx
54895967Speter
549127326Smarkm
550238405Sjkim	rorl	$16,%ecx
551238405Sjkim	movl	24(%edi),%esi
552238405Sjkim	movb	%ch,%al
553238405Sjkim	movb	%cl,%bl
554238405Sjkim	rorl	$16,%ecx
555238405Sjkim	xorl	%esi,%edx
55695967Speter	movl	72(%edi,%eax,4),%esi
55795967Speter	movl	1096(%edi,%ebx,4),%ebp
558238405Sjkim	movb	%ch,%al
559238405Sjkim	movb	%cl,%bl
560238405Sjkim	addl	%ebp,%esi
56195967Speter	movl	2120(%edi,%eax,4),%eax
562238405Sjkim	xorl	%eax,%esi
56395967Speter	movl	3144(%edi,%ebx,4),%ebp
564238405Sjkim	addl	%ebp,%esi
565238405Sjkim	xorl	%eax,%eax
566238405Sjkim	xorl	%esi,%edx
56795967Speter
568127326Smarkm
569238405Sjkim	rorl	$16,%edx
570238405Sjkim	movl	20(%edi),%esi
571238405Sjkim	movb	%dh,%al
572238405Sjkim	movb	%dl,%bl
573238405Sjkim	rorl	$16,%edx
574238405Sjkim	xorl	%esi,%ecx
57595967Speter	movl	72(%edi,%eax,4),%esi
57695967Speter	movl	1096(%edi,%ebx,4),%ebp
577238405Sjkim	movb	%dh,%al
578238405Sjkim	movb	%dl,%bl
579238405Sjkim	addl	%ebp,%esi
58095967Speter	movl	2120(%edi,%eax,4),%eax
581238405Sjkim	xorl	%eax,%esi
58295967Speter	movl	3144(%edi,%ebx,4),%ebp
583238405Sjkim	addl	%ebp,%esi
584238405Sjkim	xorl	%eax,%eax
585238405Sjkim	xorl	%esi,%ecx
58695967Speter
587127326Smarkm
588238405Sjkim	rorl	$16,%ecx
589238405Sjkim	movl	16(%edi),%esi
590238405Sjkim	movb	%ch,%al
591238405Sjkim	movb	%cl,%bl
592238405Sjkim	rorl	$16,%ecx
593238405Sjkim	xorl	%esi,%edx
59495967Speter	movl	72(%edi,%eax,4),%esi
59595967Speter	movl	1096(%edi,%ebx,4),%ebp
596238405Sjkim	movb	%ch,%al
597238405Sjkim	movb	%cl,%bl
598238405Sjkim	addl	%ebp,%esi
59995967Speter	movl	2120(%edi,%eax,4),%eax
600238405Sjkim	xorl	%eax,%esi
60195967Speter	movl	3144(%edi,%ebx,4),%ebp
602238405Sjkim	addl	%ebp,%esi
603238405Sjkim	xorl	%eax,%eax
604238405Sjkim	xorl	%esi,%edx
60595967Speter
606127326Smarkm
607238405Sjkim	rorl	$16,%edx
608238405Sjkim	movl	12(%edi),%esi
609238405Sjkim	movb	%dh,%al
610238405Sjkim	movb	%dl,%bl
611238405Sjkim	rorl	$16,%edx
612238405Sjkim	xorl	%esi,%ecx
61395967Speter	movl	72(%edi,%eax,4),%esi
61495967Speter	movl	1096(%edi,%ebx,4),%ebp
615238405Sjkim	movb	%dh,%al
616238405Sjkim	movb	%dl,%bl
617238405Sjkim	addl	%ebp,%esi
61895967Speter	movl	2120(%edi,%eax,4),%eax
619238405Sjkim	xorl	%eax,%esi
62095967Speter	movl	3144(%edi,%ebx,4),%ebp
621238405Sjkim	addl	%ebp,%esi
622238405Sjkim	xorl	%eax,%eax
623238405Sjkim	xorl	%esi,%ecx
62495967Speter
625127326Smarkm
626238405Sjkim	rorl	$16,%ecx
627238405Sjkim	movl	8(%edi),%esi
628238405Sjkim	movb	%ch,%al
629238405Sjkim	movb	%cl,%bl
630238405Sjkim	rorl	$16,%ecx
631238405Sjkim	xorl	%esi,%edx
63295967Speter	movl	72(%edi,%eax,4),%esi
63395967Speter	movl	1096(%edi,%ebx,4),%ebp
634238405Sjkim	movb	%ch,%al
635238405Sjkim	movb	%cl,%bl
636238405Sjkim	addl	%ebp,%esi
63795967Speter	movl	2120(%edi,%eax,4),%eax
638238405Sjkim	xorl	%eax,%esi
63995967Speter	movl	3144(%edi,%ebx,4),%ebp
640238405Sjkim	addl	%ebp,%esi
641238405Sjkim	xorl	%eax,%eax
642238405Sjkim	xorl	%esi,%edx
64395967Speter
644127326Smarkm
645238405Sjkim	rorl	$16,%edx
646238405Sjkim	movl	4(%edi),%esi
647238405Sjkim	movb	%dh,%al
648238405Sjkim	movb	%dl,%bl
649238405Sjkim	rorl	$16,%edx
650238405Sjkim	xorl	%esi,%ecx
65195967Speter	movl	72(%edi,%eax,4),%esi
65295967Speter	movl	1096(%edi,%ebx,4),%ebp
653238405Sjkim	movb	%dh,%al
654238405Sjkim	movb	%dl,%bl
655238405Sjkim	addl	%ebp,%esi
65695967Speter	movl	2120(%edi,%eax,4),%eax
657238405Sjkim	xorl	%eax,%esi
65895967Speter	movl	3144(%edi,%ebx,4),%ebp
659238405Sjkim	addl	%ebp,%esi
660238405Sjkim	xorl	%eax,%eax
661238405Sjkim	xorl	%esi,%ecx
662238405Sjkim	xorl	(%edi),%edx
663238405Sjkim	movl	20(%esp),%eax
664238405Sjkim	movl	%edx,(%eax)
665238405Sjkim	movl	%ecx,4(%eax)
66695967Speter	popl	%edi
66795967Speter	popl	%esi
66895967Speter	popl	%ebx
66995967Speter	popl	%ebp
67095967Speter	ret
671238405Sjkim.size	BF_decrypt,.-.L_BF_decrypt_begin
672238405Sjkim.globl	BF_cbc_encrypt
673238405Sjkim.type	BF_cbc_encrypt,@function
674238405Sjkim.align	16
67595967SpeterBF_cbc_encrypt:
676238405Sjkim.L_BF_cbc_encrypt_begin:
67795967Speter
67895967Speter	pushl	%ebp
67995967Speter	pushl	%ebx
68095967Speter	pushl	%esi
68195967Speter	pushl	%edi
682238405Sjkim	movl	28(%esp),%ebp
683127326Smarkm
684238405Sjkim	movl	36(%esp),%ebx
685238405Sjkim	movl	(%ebx),%esi
686238405Sjkim	movl	4(%ebx),%edi
68795967Speter	pushl	%edi
68895967Speter	pushl	%esi
68995967Speter	pushl	%edi
69095967Speter	pushl	%esi
691238405Sjkim	movl	%esp,%ebx
692238405Sjkim	movl	36(%esp),%esi
693238405Sjkim	movl	40(%esp),%edi
694127326Smarkm
695238405Sjkim	movl	56(%esp),%ecx
696127326Smarkm
697238405Sjkim	movl	48(%esp),%eax
69895967Speter	pushl	%eax
69995967Speter	pushl	%ebx
700238405Sjkim	cmpl	$0,%ecx
70195967Speter	jz	.L000decrypt
702238405Sjkim	andl	$4294967288,%ebp
703238405Sjkim	movl	8(%esp),%eax
704238405Sjkim	movl	12(%esp),%ebx
70595967Speter	jz	.L001encrypt_finish
70695967Speter.L002encrypt_loop:
707238405Sjkim	movl	(%esi),%ecx
708238405Sjkim	movl	4(%esi),%edx
709238405Sjkim	xorl	%ecx,%eax
710238405Sjkim	xorl	%edx,%ebx
711238405Sjkim	bswap	%eax
712238405Sjkim	bswap	%ebx
713238405Sjkim	movl	%eax,8(%esp)
714238405Sjkim	movl	%ebx,12(%esp)
715238405Sjkim	call	.L_BF_encrypt_begin
716238405Sjkim	movl	8(%esp),%eax
717238405Sjkim	movl	12(%esp),%ebx
718238405Sjkim	bswap	%eax
719238405Sjkim	bswap	%ebx
720238405Sjkim	movl	%eax,(%edi)
721238405Sjkim	movl	%ebx,4(%edi)
722238405Sjkim	addl	$8,%esi
723238405Sjkim	addl	$8,%edi
724238405Sjkim	subl	$8,%ebp
72595967Speter	jnz	.L002encrypt_loop
72695967Speter.L001encrypt_finish:
727238405Sjkim	movl	52(%esp),%ebp
728238405Sjkim	andl	$7,%ebp
72995967Speter	jz	.L003finish
730127326Smarkm	call	.L004PIC_point
731127326Smarkm.L004PIC_point:
732127326Smarkm	popl	%edx
733127326Smarkm	leal	.L005cbc_enc_jmp_table-.L004PIC_point(%edx),%ecx
734238405Sjkim	movl	(%ecx,%ebp,4),%ebp
735238405Sjkim	addl	%edx,%ebp
736238405Sjkim	xorl	%ecx,%ecx
737238405Sjkim	xorl	%edx,%edx
73895967Speter	jmp	*%ebp
739127326Smarkm.L006ej7:
740238405Sjkim	movb	6(%esi),%dh
741238405Sjkim	shll	$8,%edx
742127326Smarkm.L007ej6:
743238405Sjkim	movb	5(%esi),%dh
744127326Smarkm.L008ej5:
745238405Sjkim	movb	4(%esi),%dl
746127326Smarkm.L009ej4:
747238405Sjkim	movl	(%esi),%ecx
748127326Smarkm	jmp	.L010ejend
749127326Smarkm.L011ej3:
750238405Sjkim	movb	2(%esi),%ch
751238405Sjkim	shll	$8,%ecx
752127326Smarkm.L012ej2:
753238405Sjkim	movb	1(%esi),%ch
754127326Smarkm.L013ej1:
755238405Sjkim	movb	(%esi),%cl
756127326Smarkm.L010ejend:
757238405Sjkim	xorl	%ecx,%eax
758238405Sjkim	xorl	%edx,%ebx
759238405Sjkim	bswap	%eax
760238405Sjkim	bswap	%ebx
761238405Sjkim	movl	%eax,8(%esp)
762238405Sjkim	movl	%ebx,12(%esp)
763238405Sjkim	call	.L_BF_encrypt_begin
764238405Sjkim	movl	8(%esp),%eax
765238405Sjkim	movl	12(%esp),%ebx
766238405Sjkim	bswap	%eax
767238405Sjkim	bswap	%ebx
768238405Sjkim	movl	%eax,(%edi)
769238405Sjkim	movl	%ebx,4(%edi)
77095967Speter	jmp	.L003finish
77195967Speter.L000decrypt:
772238405Sjkim	andl	$4294967288,%ebp
773238405Sjkim	movl	16(%esp),%eax
774238405Sjkim	movl	20(%esp),%ebx
775127326Smarkm	jz	.L014decrypt_finish
776127326Smarkm.L015decrypt_loop:
777238405Sjkim	movl	(%esi),%eax
778238405Sjkim	movl	4(%esi),%ebx
779238405Sjkim	bswap	%eax
780238405Sjkim	bswap	%ebx
781238405Sjkim	movl	%eax,8(%esp)
782238405Sjkim	movl	%ebx,12(%esp)
783238405Sjkim	call	.L_BF_decrypt_begin
784238405Sjkim	movl	8(%esp),%eax
785238405Sjkim	movl	12(%esp),%ebx
786238405Sjkim	bswap	%eax
787238405Sjkim	bswap	%ebx
788238405Sjkim	movl	16(%esp),%ecx
789238405Sjkim	movl	20(%esp),%edx
790238405Sjkim	xorl	%eax,%ecx
791238405Sjkim	xorl	%ebx,%edx
792238405Sjkim	movl	(%esi),%eax
793238405Sjkim	movl	4(%esi),%ebx
794238405Sjkim	movl	%ecx,(%edi)
795238405Sjkim	movl	%edx,4(%edi)
796238405Sjkim	movl	%eax,16(%esp)
797238405Sjkim	movl	%ebx,20(%esp)
798238405Sjkim	addl	$8,%esi
799238405Sjkim	addl	$8,%edi
800238405Sjkim	subl	$8,%ebp
801127326Smarkm	jnz	.L015decrypt_loop
802127326Smarkm.L014decrypt_finish:
803238405Sjkim	movl	52(%esp),%ebp
804238405Sjkim	andl	$7,%ebp
80595967Speter	jz	.L003finish
806238405Sjkim	movl	(%esi),%eax
807238405Sjkim	movl	4(%esi),%ebx
808238405Sjkim	bswap	%eax
809238405Sjkim	bswap	%ebx
810238405Sjkim	movl	%eax,8(%esp)
811238405Sjkim	movl	%ebx,12(%esp)
812238405Sjkim	call	.L_BF_decrypt_begin
813238405Sjkim	movl	8(%esp),%eax
814238405Sjkim	movl	12(%esp),%ebx
815238405Sjkim	bswap	%eax
816238405Sjkim	bswap	%ebx
817238405Sjkim	movl	16(%esp),%ecx
818238405Sjkim	movl	20(%esp),%edx
819238405Sjkim	xorl	%eax,%ecx
820238405Sjkim	xorl	%ebx,%edx
821238405Sjkim	movl	(%esi),%eax
822238405Sjkim	movl	4(%esi),%ebx
823127326Smarkm.L016dj7:
824238405Sjkim	rorl	$16,%edx
825238405Sjkim	movb	%dl,6(%edi)
826238405Sjkim	shrl	$16,%edx
827127326Smarkm.L017dj6:
828238405Sjkim	movb	%dh,5(%edi)
829127326Smarkm.L018dj5:
830238405Sjkim	movb	%dl,4(%edi)
831127326Smarkm.L019dj4:
832238405Sjkim	movl	%ecx,(%edi)
833127326Smarkm	jmp	.L020djend
834127326Smarkm.L021dj3:
835238405Sjkim	rorl	$16,%ecx
836238405Sjkim	movb	%cl,2(%edi)
837238405Sjkim	shll	$16,%ecx
838127326Smarkm.L022dj2:
839238405Sjkim	movb	%ch,1(%esi)
840127326Smarkm.L023dj1:
841238405Sjkim	movb	%cl,(%esi)
842127326Smarkm.L020djend:
84395967Speter	jmp	.L003finish
84495967Speter.L003finish:
845238405Sjkim	movl	60(%esp),%ecx
846238405Sjkim	addl	$24,%esp
847238405Sjkim	movl	%eax,(%ecx)
848238405Sjkim	movl	%ebx,4(%ecx)
84995967Speter	popl	%edi
85095967Speter	popl	%esi
85195967Speter	popl	%ebx
85295967Speter	popl	%ebp
85395967Speter	ret
854238405Sjkim.align	64
855127326Smarkm.L005cbc_enc_jmp_table:
856238405Sjkim.long	0
857238405Sjkim.long	.L013ej1-.L004PIC_point
858238405Sjkim.long	.L012ej2-.L004PIC_point
859238405Sjkim.long	.L011ej3-.L004PIC_point
860238405Sjkim.long	.L009ej4-.L004PIC_point
861238405Sjkim.long	.L008ej5-.L004PIC_point
862238405Sjkim.long	.L007ej6-.L004PIC_point
863238405Sjkim.long	.L006ej7-.L004PIC_point
864238405Sjkim.align	64
865238405Sjkim.size	BF_cbc_encrypt,.-.L_BF_cbc_encrypt_begin
866