195967Speter	# $FreeBSD$
2238405Sjkim.file	"rc5-586.s"
395967Speter.text
4238405Sjkim.globl	RC5_32_encrypt
5238405Sjkim.type	RC5_32_encrypt,@function
6238405Sjkim.align	16
795967SpeterRC5_32_encrypt:
8238405Sjkim.L_RC5_32_encrypt_begin:
995967Speter
1095967Speter	pushl	%ebp
1195967Speter	pushl	%esi
1295967Speter	pushl	%edi
13238405Sjkim	movl	16(%esp),%edx
14238405Sjkim	movl	20(%esp),%ebp
15127326Smarkm
16238405Sjkim	movl	(%edx),%edi
17238405Sjkim	movl	4(%edx),%esi
1895967Speter	pushl	%ebx
19238405Sjkim	movl	(%ebp),%ebx
20238405Sjkim	addl	4(%ebp),%edi
21238405Sjkim	addl	8(%ebp),%esi
22238405Sjkim	xorl	%esi,%edi
23238405Sjkim	movl	12(%ebp),%eax
24238405Sjkim	movl	%esi,%ecx
25238405Sjkim	roll	%cl,%edi
26238405Sjkim	addl	%eax,%edi
27238405Sjkim	xorl	%edi,%esi
28238405Sjkim	movl	16(%ebp),%eax
29238405Sjkim	movl	%edi,%ecx
30238405Sjkim	roll	%cl,%esi
31238405Sjkim	addl	%eax,%esi
32238405Sjkim	xorl	%esi,%edi
33238405Sjkim	movl	20(%ebp),%eax
34238405Sjkim	movl	%esi,%ecx
35238405Sjkim	roll	%cl,%edi
36238405Sjkim	addl	%eax,%edi
37238405Sjkim	xorl	%edi,%esi
38238405Sjkim	movl	24(%ebp),%eax
39238405Sjkim	movl	%edi,%ecx
40238405Sjkim	roll	%cl,%esi
41238405Sjkim	addl	%eax,%esi
42238405Sjkim	xorl	%esi,%edi
43238405Sjkim	movl	28(%ebp),%eax
44238405Sjkim	movl	%esi,%ecx
45238405Sjkim	roll	%cl,%edi
46238405Sjkim	addl	%eax,%edi
47238405Sjkim	xorl	%edi,%esi
48238405Sjkim	movl	32(%ebp),%eax
49238405Sjkim	movl	%edi,%ecx
50238405Sjkim	roll	%cl,%esi
51238405Sjkim	addl	%eax,%esi
52238405Sjkim	xorl	%esi,%edi
53238405Sjkim	movl	36(%ebp),%eax
54238405Sjkim	movl	%esi,%ecx
55238405Sjkim	roll	%cl,%edi
56238405Sjkim	addl	%eax,%edi
57238405Sjkim	xorl	%edi,%esi
58238405Sjkim	movl	40(%ebp),%eax
59238405Sjkim	movl	%edi,%ecx
60238405Sjkim	roll	%cl,%esi
61238405Sjkim	addl	%eax,%esi
62238405Sjkim	xorl	%esi,%edi
63238405Sjkim	movl	44(%ebp),%eax
64238405Sjkim	movl	%esi,%ecx
65238405Sjkim	roll	%cl,%edi
66238405Sjkim	addl	%eax,%edi
67238405Sjkim	xorl	%edi,%esi
68238405Sjkim	movl	48(%ebp),%eax
69238405Sjkim	movl	%edi,%ecx
70238405Sjkim	roll	%cl,%esi
71238405Sjkim	addl	%eax,%esi
72238405Sjkim	xorl	%esi,%edi
73238405Sjkim	movl	52(%ebp),%eax
74238405Sjkim	movl	%esi,%ecx
75238405Sjkim	roll	%cl,%edi
76238405Sjkim	addl	%eax,%edi
77238405Sjkim	xorl	%edi,%esi
78238405Sjkim	movl	56(%ebp),%eax
79238405Sjkim	movl	%edi,%ecx
80238405Sjkim	roll	%cl,%esi
81238405Sjkim	addl	%eax,%esi
82238405Sjkim	xorl	%esi,%edi
83238405Sjkim	movl	60(%ebp),%eax
84238405Sjkim	movl	%esi,%ecx
85238405Sjkim	roll	%cl,%edi
86238405Sjkim	addl	%eax,%edi
87238405Sjkim	xorl	%edi,%esi
88238405Sjkim	movl	64(%ebp),%eax
89238405Sjkim	movl	%edi,%ecx
90238405Sjkim	roll	%cl,%esi
91238405Sjkim	addl	%eax,%esi
92238405Sjkim	xorl	%esi,%edi
93238405Sjkim	movl	68(%ebp),%eax
94238405Sjkim	movl	%esi,%ecx
95238405Sjkim	roll	%cl,%edi
96238405Sjkim	addl	%eax,%edi
97238405Sjkim	xorl	%edi,%esi
98238405Sjkim	movl	72(%ebp),%eax
99238405Sjkim	movl	%edi,%ecx
100238405Sjkim	roll	%cl,%esi
101238405Sjkim	addl	%eax,%esi
102238405Sjkim	cmpl	$8,%ebx
10395967Speter	je	.L000rc5_exit
104238405Sjkim	xorl	%esi,%edi
105238405Sjkim	movl	76(%ebp),%eax
106238405Sjkim	movl	%esi,%ecx
107238405Sjkim	roll	%cl,%edi
108238405Sjkim	addl	%eax,%edi
109238405Sjkim	xorl	%edi,%esi
110238405Sjkim	movl	80(%ebp),%eax
111238405Sjkim	movl	%edi,%ecx
112238405Sjkim	roll	%cl,%esi
113238405Sjkim	addl	%eax,%esi
114238405Sjkim	xorl	%esi,%edi
115238405Sjkim	movl	84(%ebp),%eax
116238405Sjkim	movl	%esi,%ecx
117238405Sjkim	roll	%cl,%edi
118238405Sjkim	addl	%eax,%edi
119238405Sjkim	xorl	%edi,%esi
120238405Sjkim	movl	88(%ebp),%eax
121238405Sjkim	movl	%edi,%ecx
122238405Sjkim	roll	%cl,%esi
123238405Sjkim	addl	%eax,%esi
124238405Sjkim	xorl	%esi,%edi
125238405Sjkim	movl	92(%ebp),%eax
126238405Sjkim	movl	%esi,%ecx
127238405Sjkim	roll	%cl,%edi
128238405Sjkim	addl	%eax,%edi
129238405Sjkim	xorl	%edi,%esi
130238405Sjkim	movl	96(%ebp),%eax
131238405Sjkim	movl	%edi,%ecx
132238405Sjkim	roll	%cl,%esi
133238405Sjkim	addl	%eax,%esi
134238405Sjkim	xorl	%esi,%edi
135238405Sjkim	movl	100(%ebp),%eax
136238405Sjkim	movl	%esi,%ecx
137238405Sjkim	roll	%cl,%edi
138238405Sjkim	addl	%eax,%edi
139238405Sjkim	xorl	%edi,%esi
140238405Sjkim	movl	104(%ebp),%eax
141238405Sjkim	movl	%edi,%ecx
142238405Sjkim	roll	%cl,%esi
143238405Sjkim	addl	%eax,%esi
144238405Sjkim	cmpl	$12,%ebx
14595967Speter	je	.L000rc5_exit
146238405Sjkim	xorl	%esi,%edi
147238405Sjkim	movl	108(%ebp),%eax
148238405Sjkim	movl	%esi,%ecx
149238405Sjkim	roll	%cl,%edi
150238405Sjkim	addl	%eax,%edi
151238405Sjkim	xorl	%edi,%esi
152238405Sjkim	movl	112(%ebp),%eax
153238405Sjkim	movl	%edi,%ecx
154238405Sjkim	roll	%cl,%esi
155238405Sjkim	addl	%eax,%esi
156238405Sjkim	xorl	%esi,%edi
157238405Sjkim	movl	116(%ebp),%eax
158238405Sjkim	movl	%esi,%ecx
159238405Sjkim	roll	%cl,%edi
160238405Sjkim	addl	%eax,%edi
161238405Sjkim	xorl	%edi,%esi
162238405Sjkim	movl	120(%ebp),%eax
163238405Sjkim	movl	%edi,%ecx
164238405Sjkim	roll	%cl,%esi
165238405Sjkim	addl	%eax,%esi
166238405Sjkim	xorl	%esi,%edi
167238405Sjkim	movl	124(%ebp),%eax
168238405Sjkim	movl	%esi,%ecx
169238405Sjkim	roll	%cl,%edi
170238405Sjkim	addl	%eax,%edi
171238405Sjkim	xorl	%edi,%esi
172238405Sjkim	movl	128(%ebp),%eax
173238405Sjkim	movl	%edi,%ecx
174238405Sjkim	roll	%cl,%esi
175238405Sjkim	addl	%eax,%esi
176238405Sjkim	xorl	%esi,%edi
177238405Sjkim	movl	132(%ebp),%eax
178238405Sjkim	movl	%esi,%ecx
179238405Sjkim	roll	%cl,%edi
180238405Sjkim	addl	%eax,%edi
181238405Sjkim	xorl	%edi,%esi
182238405Sjkim	movl	136(%ebp),%eax
183238405Sjkim	movl	%edi,%ecx
184238405Sjkim	roll	%cl,%esi
185238405Sjkim	addl	%eax,%esi
18695967Speter.L000rc5_exit:
187238405Sjkim	movl	%edi,(%edx)
188238405Sjkim	movl	%esi,4(%edx)
18995967Speter	popl	%ebx
19095967Speter	popl	%edi
19195967Speter	popl	%esi
19295967Speter	popl	%ebp
19395967Speter	ret
194238405Sjkim.size	RC5_32_encrypt,.-.L_RC5_32_encrypt_begin
195238405Sjkim.globl	RC5_32_decrypt
196238405Sjkim.type	RC5_32_decrypt,@function
197238405Sjkim.align	16
19895967SpeterRC5_32_decrypt:
199238405Sjkim.L_RC5_32_decrypt_begin:
20095967Speter
20195967Speter	pushl	%ebp
20295967Speter	pushl	%esi
20395967Speter	pushl	%edi
204238405Sjkim	movl	16(%esp),%edx
205238405Sjkim	movl	20(%esp),%ebp
206127326Smarkm
207238405Sjkim	movl	(%edx),%edi
208238405Sjkim	movl	4(%edx),%esi
20995967Speter	pushl	%ebx
210238405Sjkim	movl	(%ebp),%ebx
211238405Sjkim	cmpl	$12,%ebx
21295967Speter	je	.L001rc5_dec_12
213238405Sjkim	cmpl	$8,%ebx
21495967Speter	je	.L002rc5_dec_8
215238405Sjkim	movl	136(%ebp),%eax
216238405Sjkim	subl	%eax,%esi
217238405Sjkim	movl	%edi,%ecx
218238405Sjkim	rorl	%cl,%esi
219238405Sjkim	xorl	%edi,%esi
220238405Sjkim	movl	132(%ebp),%eax
221238405Sjkim	subl	%eax,%edi
222238405Sjkim	movl	%esi,%ecx
223238405Sjkim	rorl	%cl,%edi
224238405Sjkim	xorl	%esi,%edi
225238405Sjkim	movl	128(%ebp),%eax
226238405Sjkim	subl	%eax,%esi
227238405Sjkim	movl	%edi,%ecx
228238405Sjkim	rorl	%cl,%esi
229238405Sjkim	xorl	%edi,%esi
230238405Sjkim	movl	124(%ebp),%eax
231238405Sjkim	subl	%eax,%edi
232238405Sjkim	movl	%esi,%ecx
233238405Sjkim	rorl	%cl,%edi
234238405Sjkim	xorl	%esi,%edi
235238405Sjkim	movl	120(%ebp),%eax
236238405Sjkim	subl	%eax,%esi
237238405Sjkim	movl	%edi,%ecx
238238405Sjkim	rorl	%cl,%esi
239238405Sjkim	xorl	%edi,%esi
240238405Sjkim	movl	116(%ebp),%eax
241238405Sjkim	subl	%eax,%edi
242238405Sjkim	movl	%esi,%ecx
243238405Sjkim	rorl	%cl,%edi
244238405Sjkim	xorl	%esi,%edi
245238405Sjkim	movl	112(%ebp),%eax
246238405Sjkim	subl	%eax,%esi
247238405Sjkim	movl	%edi,%ecx
248238405Sjkim	rorl	%cl,%esi
249238405Sjkim	xorl	%edi,%esi
250238405Sjkim	movl	108(%ebp),%eax
251238405Sjkim	subl	%eax,%edi
252238405Sjkim	movl	%esi,%ecx
253238405Sjkim	rorl	%cl,%edi
254238405Sjkim	xorl	%esi,%edi
25595967Speter.L001rc5_dec_12:
256238405Sjkim	movl	104(%ebp),%eax
257238405Sjkim	subl	%eax,%esi
258238405Sjkim	movl	%edi,%ecx
259238405Sjkim	rorl	%cl,%esi
260238405Sjkim	xorl	%edi,%esi
261238405Sjkim	movl	100(%ebp),%eax
262238405Sjkim	subl	%eax,%edi
263238405Sjkim	movl	%esi,%ecx
264238405Sjkim	rorl	%cl,%edi
265238405Sjkim	xorl	%esi,%edi
266238405Sjkim	movl	96(%ebp),%eax
267238405Sjkim	subl	%eax,%esi
268238405Sjkim	movl	%edi,%ecx
269238405Sjkim	rorl	%cl,%esi
270238405Sjkim	xorl	%edi,%esi
271238405Sjkim	movl	92(%ebp),%eax
272238405Sjkim	subl	%eax,%edi
273238405Sjkim	movl	%esi,%ecx
274238405Sjkim	rorl	%cl,%edi
275238405Sjkim	xorl	%esi,%edi
276238405Sjkim	movl	88(%ebp),%eax
277238405Sjkim	subl	%eax,%esi
278238405Sjkim	movl	%edi,%ecx
279238405Sjkim	rorl	%cl,%esi
280238405Sjkim	xorl	%edi,%esi
281238405Sjkim	movl	84(%ebp),%eax
282238405Sjkim	subl	%eax,%edi
283238405Sjkim	movl	%esi,%ecx
284238405Sjkim	rorl	%cl,%edi
285238405Sjkim	xorl	%esi,%edi
286238405Sjkim	movl	80(%ebp),%eax
287238405Sjkim	subl	%eax,%esi
288238405Sjkim	movl	%edi,%ecx
289238405Sjkim	rorl	%cl,%esi
290238405Sjkim	xorl	%edi,%esi
291238405Sjkim	movl	76(%ebp),%eax
292238405Sjkim	subl	%eax,%edi
293238405Sjkim	movl	%esi,%ecx
294238405Sjkim	rorl	%cl,%edi
295238405Sjkim	xorl	%esi,%edi
29695967Speter.L002rc5_dec_8:
297238405Sjkim	movl	72(%ebp),%eax
298238405Sjkim	subl	%eax,%esi
299238405Sjkim	movl	%edi,%ecx
300238405Sjkim	rorl	%cl,%esi
301238405Sjkim	xorl	%edi,%esi
302238405Sjkim	movl	68(%ebp),%eax
303238405Sjkim	subl	%eax,%edi
304238405Sjkim	movl	%esi,%ecx
305238405Sjkim	rorl	%cl,%edi
306238405Sjkim	xorl	%esi,%edi
307238405Sjkim	movl	64(%ebp),%eax
308238405Sjkim	subl	%eax,%esi
309238405Sjkim	movl	%edi,%ecx
310238405Sjkim	rorl	%cl,%esi
311238405Sjkim	xorl	%edi,%esi
312238405Sjkim	movl	60(%ebp),%eax
313238405Sjkim	subl	%eax,%edi
314238405Sjkim	movl	%esi,%ecx
315238405Sjkim	rorl	%cl,%edi
316238405Sjkim	xorl	%esi,%edi
317238405Sjkim	movl	56(%ebp),%eax
318238405Sjkim	subl	%eax,%esi
319238405Sjkim	movl	%edi,%ecx
320238405Sjkim	rorl	%cl,%esi
321238405Sjkim	xorl	%edi,%esi
322238405Sjkim	movl	52(%ebp),%eax
323238405Sjkim	subl	%eax,%edi
324238405Sjkim	movl	%esi,%ecx
325238405Sjkim	rorl	%cl,%edi
326238405Sjkim	xorl	%esi,%edi
327238405Sjkim	movl	48(%ebp),%eax
328238405Sjkim	subl	%eax,%esi
329238405Sjkim	movl	%edi,%ecx
330238405Sjkim	rorl	%cl,%esi
331238405Sjkim	xorl	%edi,%esi
332238405Sjkim	movl	44(%ebp),%eax
333238405Sjkim	subl	%eax,%edi
334238405Sjkim	movl	%esi,%ecx
335238405Sjkim	rorl	%cl,%edi
336238405Sjkim	xorl	%esi,%edi
337238405Sjkim	movl	40(%ebp),%eax
338238405Sjkim	subl	%eax,%esi
339238405Sjkim	movl	%edi,%ecx
340238405Sjkim	rorl	%cl,%esi
341238405Sjkim	xorl	%edi,%esi
342238405Sjkim	movl	36(%ebp),%eax
343238405Sjkim	subl	%eax,%edi
344238405Sjkim	movl	%esi,%ecx
345238405Sjkim	rorl	%cl,%edi
346238405Sjkim	xorl	%esi,%edi
347238405Sjkim	movl	32(%ebp),%eax
348238405Sjkim	subl	%eax,%esi
349238405Sjkim	movl	%edi,%ecx
350238405Sjkim	rorl	%cl,%esi
351238405Sjkim	xorl	%edi,%esi
352238405Sjkim	movl	28(%ebp),%eax
353238405Sjkim	subl	%eax,%edi
354238405Sjkim	movl	%esi,%ecx
355238405Sjkim	rorl	%cl,%edi
356238405Sjkim	xorl	%esi,%edi
357238405Sjkim	movl	24(%ebp),%eax
358238405Sjkim	subl	%eax,%esi
359238405Sjkim	movl	%edi,%ecx
360238405Sjkim	rorl	%cl,%esi
361238405Sjkim	xorl	%edi,%esi
362238405Sjkim	movl	20(%ebp),%eax
363238405Sjkim	subl	%eax,%edi
364238405Sjkim	movl	%esi,%ecx
365238405Sjkim	rorl	%cl,%edi
366238405Sjkim	xorl	%esi,%edi
367238405Sjkim	movl	16(%ebp),%eax
368238405Sjkim	subl	%eax,%esi
369238405Sjkim	movl	%edi,%ecx
370238405Sjkim	rorl	%cl,%esi
371238405Sjkim	xorl	%edi,%esi
372238405Sjkim	movl	12(%ebp),%eax
373238405Sjkim	subl	%eax,%edi
374238405Sjkim	movl	%esi,%ecx
375238405Sjkim	rorl	%cl,%edi
376238405Sjkim	xorl	%esi,%edi
377238405Sjkim	subl	8(%ebp),%esi
378238405Sjkim	subl	4(%ebp),%edi
37995967Speter.L003rc5_exit:
380238405Sjkim	movl	%edi,(%edx)
381238405Sjkim	movl	%esi,4(%edx)
38295967Speter	popl	%ebx
38395967Speter	popl	%edi
38495967Speter	popl	%esi
38595967Speter	popl	%ebp
38695967Speter	ret
387238405Sjkim.size	RC5_32_decrypt,.-.L_RC5_32_decrypt_begin
388238405Sjkim.globl	RC5_32_cbc_encrypt
389238405Sjkim.type	RC5_32_cbc_encrypt,@function
390238405Sjkim.align	16
39195967SpeterRC5_32_cbc_encrypt:
392238405Sjkim.L_RC5_32_cbc_encrypt_begin:
39395967Speter
39495967Speter	pushl	%ebp
39595967Speter	pushl	%ebx
39695967Speter	pushl	%esi
39795967Speter	pushl	%edi
398238405Sjkim	movl	28(%esp),%ebp
399127326Smarkm
400238405Sjkim	movl	36(%esp),%ebx
401238405Sjkim	movl	(%ebx),%esi
402238405Sjkim	movl	4(%ebx),%edi
40395967Speter	pushl	%edi
40495967Speter	pushl	%esi
40595967Speter	pushl	%edi
40695967Speter	pushl	%esi
407238405Sjkim	movl	%esp,%ebx
408238405Sjkim	movl	36(%esp),%esi
409238405Sjkim	movl	40(%esp),%edi
410127326Smarkm
411238405Sjkim	movl	56(%esp),%ecx
412127326Smarkm
413238405Sjkim	movl	48(%esp),%eax
41495967Speter	pushl	%eax
41595967Speter	pushl	%ebx
416238405Sjkim	cmpl	$0,%ecx
41795967Speter	jz	.L004decrypt
418238405Sjkim	andl	$4294967288,%ebp
419238405Sjkim	movl	8(%esp),%eax
420238405Sjkim	movl	12(%esp),%ebx
42195967Speter	jz	.L005encrypt_finish
42295967Speter.L006encrypt_loop:
423238405Sjkim	movl	(%esi),%ecx
424238405Sjkim	movl	4(%esi),%edx
425238405Sjkim	xorl	%ecx,%eax
426238405Sjkim	xorl	%edx,%ebx
427238405Sjkim	movl	%eax,8(%esp)
428238405Sjkim	movl	%ebx,12(%esp)
429238405Sjkim	call	.L_RC5_32_encrypt_begin
430238405Sjkim	movl	8(%esp),%eax
431238405Sjkim	movl	12(%esp),%ebx
432238405Sjkim	movl	%eax,(%edi)
433238405Sjkim	movl	%ebx,4(%edi)
434238405Sjkim	addl	$8,%esi
435238405Sjkim	addl	$8,%edi
436238405Sjkim	subl	$8,%ebp
43795967Speter	jnz	.L006encrypt_loop
43895967Speter.L005encrypt_finish:
439238405Sjkim	movl	52(%esp),%ebp
440238405Sjkim	andl	$7,%ebp
44195967Speter	jz	.L007finish
442127326Smarkm	call	.L008PIC_point
443127326Smarkm.L008PIC_point:
444127326Smarkm	popl	%edx
445127326Smarkm	leal	.L009cbc_enc_jmp_table-.L008PIC_point(%edx),%ecx
446238405Sjkim	movl	(%ecx,%ebp,4),%ebp
447238405Sjkim	addl	%edx,%ebp
448238405Sjkim	xorl	%ecx,%ecx
449238405Sjkim	xorl	%edx,%edx
45095967Speter	jmp	*%ebp
451127326Smarkm.L010ej7:
452238405Sjkim	movb	6(%esi),%dh
453238405Sjkim	shll	$8,%edx
454127326Smarkm.L011ej6:
455238405Sjkim	movb	5(%esi),%dh
456127326Smarkm.L012ej5:
457238405Sjkim	movb	4(%esi),%dl
458127326Smarkm.L013ej4:
459238405Sjkim	movl	(%esi),%ecx
460127326Smarkm	jmp	.L014ejend
461127326Smarkm.L015ej3:
462238405Sjkim	movb	2(%esi),%ch
463238405Sjkim	shll	$8,%ecx
464127326Smarkm.L016ej2:
465238405Sjkim	movb	1(%esi),%ch
466127326Smarkm.L017ej1:
467238405Sjkim	movb	(%esi),%cl
468127326Smarkm.L014ejend:
469238405Sjkim	xorl	%ecx,%eax
470238405Sjkim	xorl	%edx,%ebx
471238405Sjkim	movl	%eax,8(%esp)
472238405Sjkim	movl	%ebx,12(%esp)
473238405Sjkim	call	.L_RC5_32_encrypt_begin
474238405Sjkim	movl	8(%esp),%eax
475238405Sjkim	movl	12(%esp),%ebx
476238405Sjkim	movl	%eax,(%edi)
477238405Sjkim	movl	%ebx,4(%edi)
47895967Speter	jmp	.L007finish
47995967Speter.L004decrypt:
480238405Sjkim	andl	$4294967288,%ebp
481238405Sjkim	movl	16(%esp),%eax
482238405Sjkim	movl	20(%esp),%ebx
483127326Smarkm	jz	.L018decrypt_finish
484127326Smarkm.L019decrypt_loop:
485238405Sjkim	movl	(%esi),%eax
486238405Sjkim	movl	4(%esi),%ebx
487238405Sjkim	movl	%eax,8(%esp)
488238405Sjkim	movl	%ebx,12(%esp)
489238405Sjkim	call	.L_RC5_32_decrypt_begin
490238405Sjkim	movl	8(%esp),%eax
491238405Sjkim	movl	12(%esp),%ebx
492238405Sjkim	movl	16(%esp),%ecx
493238405Sjkim	movl	20(%esp),%edx
494238405Sjkim	xorl	%eax,%ecx
495238405Sjkim	xorl	%ebx,%edx
496238405Sjkim	movl	(%esi),%eax
497238405Sjkim	movl	4(%esi),%ebx
498238405Sjkim	movl	%ecx,(%edi)
499238405Sjkim	movl	%edx,4(%edi)
500238405Sjkim	movl	%eax,16(%esp)
501238405Sjkim	movl	%ebx,20(%esp)
502238405Sjkim	addl	$8,%esi
503238405Sjkim	addl	$8,%edi
504238405Sjkim	subl	$8,%ebp
505127326Smarkm	jnz	.L019decrypt_loop
506127326Smarkm.L018decrypt_finish:
507238405Sjkim	movl	52(%esp),%ebp
508238405Sjkim	andl	$7,%ebp
50995967Speter	jz	.L007finish
510238405Sjkim	movl	(%esi),%eax
511238405Sjkim	movl	4(%esi),%ebx
512238405Sjkim	movl	%eax,8(%esp)
513238405Sjkim	movl	%ebx,12(%esp)
514238405Sjkim	call	.L_RC5_32_decrypt_begin
515238405Sjkim	movl	8(%esp),%eax
516238405Sjkim	movl	12(%esp),%ebx
517238405Sjkim	movl	16(%esp),%ecx
518238405Sjkim	movl	20(%esp),%edx
519238405Sjkim	xorl	%eax,%ecx
520238405Sjkim	xorl	%ebx,%edx
521238405Sjkim	movl	(%esi),%eax
522238405Sjkim	movl	4(%esi),%ebx
523127326Smarkm.L020dj7:
524238405Sjkim	rorl	$16,%edx
525238405Sjkim	movb	%dl,6(%edi)
526238405Sjkim	shrl	$16,%edx
527127326Smarkm.L021dj6:
528238405Sjkim	movb	%dh,5(%edi)
529127326Smarkm.L022dj5:
530238405Sjkim	movb	%dl,4(%edi)
531127326Smarkm.L023dj4:
532238405Sjkim	movl	%ecx,(%edi)
533127326Smarkm	jmp	.L024djend
534127326Smarkm.L025dj3:
535238405Sjkim	rorl	$16,%ecx
536238405Sjkim	movb	%cl,2(%edi)
537238405Sjkim	shll	$16,%ecx
538127326Smarkm.L026dj2:
539238405Sjkim	movb	%ch,1(%esi)
540127326Smarkm.L027dj1:
541238405Sjkim	movb	%cl,(%esi)
542127326Smarkm.L024djend:
54395967Speter	jmp	.L007finish
54495967Speter.L007finish:
545238405Sjkim	movl	60(%esp),%ecx
546238405Sjkim	addl	$24,%esp
547238405Sjkim	movl	%eax,(%ecx)
548238405Sjkim	movl	%ebx,4(%ecx)
54995967Speter	popl	%edi
55095967Speter	popl	%esi
55195967Speter	popl	%ebx
55295967Speter	popl	%ebp
55395967Speter	ret
554238405Sjkim.align	64
555127326Smarkm.L009cbc_enc_jmp_table:
556238405Sjkim.long	0
557238405Sjkim.long	.L017ej1-.L008PIC_point
558238405Sjkim.long	.L016ej2-.L008PIC_point
559238405Sjkim.long	.L015ej3-.L008PIC_point
560238405Sjkim.long	.L013ej4-.L008PIC_point
561238405Sjkim.long	.L012ej5-.L008PIC_point
562238405Sjkim.long	.L011ej6-.L008PIC_point
563238405Sjkim.long	.L010ej7-.L008PIC_point
564238405Sjkim.align	64
565238405Sjkim.size	RC5_32_cbc_encrypt,.-.L_RC5_32_cbc_encrypt_begin
566