1238405Sjkim	# $FreeBSD$
2238405Sjkim.file	"cmll-586.s"
3238405Sjkim.text
4238405Sjkim.globl	Camellia_EncryptBlock_Rounds
5238405Sjkim.type	Camellia_EncryptBlock_Rounds,@function
6238405Sjkim.align	16
7238405SjkimCamellia_EncryptBlock_Rounds:
8238405Sjkim.L_Camellia_EncryptBlock_Rounds_begin:
9238405Sjkim	pushl	%ebp
10238405Sjkim	pushl	%ebx
11238405Sjkim	pushl	%esi
12238405Sjkim	pushl	%edi
13238405Sjkim	movl	20(%esp),%eax
14238405Sjkim	movl	24(%esp),%esi
15238405Sjkim	movl	28(%esp),%edi
16238405Sjkim	movl	%esp,%ebx
17238405Sjkim	subl	$28,%esp
18238405Sjkim	andl	$-64,%esp
19238405Sjkim	leal	-127(%edi),%ecx
20238405Sjkim	subl	%esp,%ecx
21238405Sjkim	negl	%ecx
22238405Sjkim	andl	$960,%ecx
23238405Sjkim	subl	%ecx,%esp
24238405Sjkim	addl	$4,%esp
25238405Sjkim	shll	$6,%eax
26238405Sjkim	leal	(%edi,%eax,1),%eax
27238405Sjkim	movl	%ebx,20(%esp)
28238405Sjkim	movl	%eax,16(%esp)
29238405Sjkim	call	.L000pic_point
30238405Sjkim.L000pic_point:
31238405Sjkim	popl	%ebp
32238405Sjkim	leal	.LCamellia_SBOX-.L000pic_point(%ebp),%ebp
33238405Sjkim	movl	(%esi),%eax
34238405Sjkim	movl	4(%esi),%ebx
35238405Sjkim	movl	8(%esi),%ecx
36238405Sjkim	bswap	%eax
37238405Sjkim	movl	12(%esi),%edx
38238405Sjkim	bswap	%ebx
39238405Sjkim	bswap	%ecx
40238405Sjkim	bswap	%edx
41238405Sjkim	call	_x86_Camellia_encrypt
42238405Sjkim	movl	20(%esp),%esp
43238405Sjkim	bswap	%eax
44238405Sjkim	movl	32(%esp),%esi
45238405Sjkim	bswap	%ebx
46238405Sjkim	bswap	%ecx
47238405Sjkim	bswap	%edx
48238405Sjkim	movl	%eax,(%esi)
49238405Sjkim	movl	%ebx,4(%esi)
50238405Sjkim	movl	%ecx,8(%esi)
51238405Sjkim	movl	%edx,12(%esi)
52238405Sjkim	popl	%edi
53238405Sjkim	popl	%esi
54238405Sjkim	popl	%ebx
55238405Sjkim	popl	%ebp
56238405Sjkim	ret
57238405Sjkim.size	Camellia_EncryptBlock_Rounds,.-.L_Camellia_EncryptBlock_Rounds_begin
58238405Sjkim.globl	Camellia_EncryptBlock
59238405Sjkim.type	Camellia_EncryptBlock,@function
60238405Sjkim.align	16
61238405SjkimCamellia_EncryptBlock:
62238405Sjkim.L_Camellia_EncryptBlock_begin:
63238405Sjkim	movl	$128,%eax
64238405Sjkim	subl	4(%esp),%eax
65238405Sjkim	movl	$3,%eax
66238405Sjkim	adcl	$0,%eax
67238405Sjkim	movl	%eax,4(%esp)
68238405Sjkim	jmp	.L_Camellia_EncryptBlock_Rounds_begin
69238405Sjkim.size	Camellia_EncryptBlock,.-.L_Camellia_EncryptBlock_begin
70238405Sjkim.globl	Camellia_encrypt
71238405Sjkim.type	Camellia_encrypt,@function
72238405Sjkim.align	16
73238405SjkimCamellia_encrypt:
74238405Sjkim.L_Camellia_encrypt_begin:
75238405Sjkim	pushl	%ebp
76238405Sjkim	pushl	%ebx
77238405Sjkim	pushl	%esi
78238405Sjkim	pushl	%edi
79238405Sjkim	movl	20(%esp),%esi
80238405Sjkim	movl	28(%esp),%edi
81238405Sjkim	movl	%esp,%ebx
82238405Sjkim	subl	$28,%esp
83238405Sjkim	andl	$-64,%esp
84238405Sjkim	movl	272(%edi),%eax
85238405Sjkim	leal	-127(%edi),%ecx
86238405Sjkim	subl	%esp,%ecx
87238405Sjkim	negl	%ecx
88238405Sjkim	andl	$960,%ecx
89238405Sjkim	subl	%ecx,%esp
90238405Sjkim	addl	$4,%esp
91238405Sjkim	shll	$6,%eax
92238405Sjkim	leal	(%edi,%eax,1),%eax
93238405Sjkim	movl	%ebx,20(%esp)
94238405Sjkim	movl	%eax,16(%esp)
95238405Sjkim	call	.L001pic_point
96238405Sjkim.L001pic_point:
97238405Sjkim	popl	%ebp
98238405Sjkim	leal	.LCamellia_SBOX-.L001pic_point(%ebp),%ebp
99238405Sjkim	movl	(%esi),%eax
100238405Sjkim	movl	4(%esi),%ebx
101238405Sjkim	movl	8(%esi),%ecx
102238405Sjkim	bswap	%eax
103238405Sjkim	movl	12(%esi),%edx
104238405Sjkim	bswap	%ebx
105238405Sjkim	bswap	%ecx
106238405Sjkim	bswap	%edx
107238405Sjkim	call	_x86_Camellia_encrypt
108238405Sjkim	movl	20(%esp),%esp
109238405Sjkim	bswap	%eax
110238405Sjkim	movl	24(%esp),%esi
111238405Sjkim	bswap	%ebx
112238405Sjkim	bswap	%ecx
113238405Sjkim	bswap	%edx
114238405Sjkim	movl	%eax,(%esi)
115238405Sjkim	movl	%ebx,4(%esi)
116238405Sjkim	movl	%ecx,8(%esi)
117238405Sjkim	movl	%edx,12(%esi)
118238405Sjkim	popl	%edi
119238405Sjkim	popl	%esi
120238405Sjkim	popl	%ebx
121238405Sjkim	popl	%ebp
122238405Sjkim	ret
123238405Sjkim.size	Camellia_encrypt,.-.L_Camellia_encrypt_begin
124238405Sjkim.type	_x86_Camellia_encrypt,@function
125238405Sjkim.align	16
126238405Sjkim_x86_Camellia_encrypt:
127238405Sjkim	xorl	(%edi),%eax
128238405Sjkim	xorl	4(%edi),%ebx
129238405Sjkim	xorl	8(%edi),%ecx
130238405Sjkim	xorl	12(%edi),%edx
131238405Sjkim	movl	16(%edi),%esi
132238405Sjkim	movl	%eax,4(%esp)
133238405Sjkim	movl	%ebx,8(%esp)
134238405Sjkim	movl	%ecx,12(%esp)
135238405Sjkim	movl	%edx,16(%esp)
136238405Sjkim.align	16
137238405Sjkim.L002loop:
138238405Sjkim	xorl	%esi,%eax
139238405Sjkim	xorl	20(%edi),%ebx
140238405Sjkim	movzbl	%ah,%esi
141238405Sjkim	movl	2052(%ebp,%esi,8),%edx
142238405Sjkim	movzbl	%al,%esi
143238405Sjkim	xorl	4(%ebp,%esi,8),%edx
144238405Sjkim	shrl	$16,%eax
145238405Sjkim	movzbl	%bl,%esi
146238405Sjkim	movl	(%ebp,%esi,8),%ecx
147238405Sjkim	movzbl	%ah,%esi
148238405Sjkim	xorl	(%ebp,%esi,8),%edx
149238405Sjkim	movzbl	%bh,%esi
150238405Sjkim	xorl	4(%ebp,%esi,8),%ecx
151238405Sjkim	shrl	$16,%ebx
152238405Sjkim	movzbl	%al,%eax
153238405Sjkim	xorl	2048(%ebp,%eax,8),%edx
154238405Sjkim	movzbl	%bh,%esi
155238405Sjkim	movl	16(%esp),%eax
156238405Sjkim	xorl	%edx,%ecx
157238405Sjkim	rorl	$8,%edx
158238405Sjkim	xorl	2048(%ebp,%esi,8),%ecx
159238405Sjkim	movzbl	%bl,%esi
160238405Sjkim	movl	12(%esp),%ebx
161238405Sjkim	xorl	%eax,%edx
162238405Sjkim	xorl	2052(%ebp,%esi,8),%ecx
163238405Sjkim	movl	24(%edi),%esi
164238405Sjkim	xorl	%ecx,%edx
165238405Sjkim	movl	%edx,16(%esp)
166238405Sjkim	xorl	%ebx,%ecx
167238405Sjkim	movl	%ecx,12(%esp)
168238405Sjkim	xorl	%esi,%ecx
169238405Sjkim	xorl	28(%edi),%edx
170238405Sjkim	movzbl	%ch,%esi
171238405Sjkim	movl	2052(%ebp,%esi,8),%ebx
172238405Sjkim	movzbl	%cl,%esi
173238405Sjkim	xorl	4(%ebp,%esi,8),%ebx
174238405Sjkim	shrl	$16,%ecx
175238405Sjkim	movzbl	%dl,%esi
176238405Sjkim	movl	(%ebp,%esi,8),%eax
177238405Sjkim	movzbl	%ch,%esi
178238405Sjkim	xorl	(%ebp,%esi,8),%ebx
179238405Sjkim	movzbl	%dh,%esi
180238405Sjkim	xorl	4(%ebp,%esi,8),%eax
181238405Sjkim	shrl	$16,%edx
182238405Sjkim	movzbl	%cl,%ecx
183238405Sjkim	xorl	2048(%ebp,%ecx,8),%ebx
184238405Sjkim	movzbl	%dh,%esi
185238405Sjkim	movl	8(%esp),%ecx
186238405Sjkim	xorl	%ebx,%eax
187238405Sjkim	rorl	$8,%ebx
188238405Sjkim	xorl	2048(%ebp,%esi,8),%eax
189238405Sjkim	movzbl	%dl,%esi
190238405Sjkim	movl	4(%esp),%edx
191238405Sjkim	xorl	%ecx,%ebx
192238405Sjkim	xorl	2052(%ebp,%esi,8),%eax
193238405Sjkim	movl	32(%edi),%esi
194238405Sjkim	xorl	%eax,%ebx
195238405Sjkim	movl	%ebx,8(%esp)
196238405Sjkim	xorl	%edx,%eax
197238405Sjkim	movl	%eax,4(%esp)
198238405Sjkim	xorl	%esi,%eax
199238405Sjkim	xorl	36(%edi),%ebx
200238405Sjkim	movzbl	%ah,%esi
201238405Sjkim	movl	2052(%ebp,%esi,8),%edx
202238405Sjkim	movzbl	%al,%esi
203238405Sjkim	xorl	4(%ebp,%esi,8),%edx
204238405Sjkim	shrl	$16,%eax
205238405Sjkim	movzbl	%bl,%esi
206238405Sjkim	movl	(%ebp,%esi,8),%ecx
207238405Sjkim	movzbl	%ah,%esi
208238405Sjkim	xorl	(%ebp,%esi,8),%edx
209238405Sjkim	movzbl	%bh,%esi
210238405Sjkim	xorl	4(%ebp,%esi,8),%ecx
211238405Sjkim	shrl	$16,%ebx
212238405Sjkim	movzbl	%al,%eax
213238405Sjkim	xorl	2048(%ebp,%eax,8),%edx
214238405Sjkim	movzbl	%bh,%esi
215238405Sjkim	movl	16(%esp),%eax
216238405Sjkim	xorl	%edx,%ecx
217238405Sjkim	rorl	$8,%edx
218238405Sjkim	xorl	2048(%ebp,%esi,8),%ecx
219238405Sjkim	movzbl	%bl,%esi
220238405Sjkim	movl	12(%esp),%ebx
221238405Sjkim	xorl	%eax,%edx
222238405Sjkim	xorl	2052(%ebp,%esi,8),%ecx
223238405Sjkim	movl	40(%edi),%esi
224238405Sjkim	xorl	%ecx,%edx
225238405Sjkim	movl	%edx,16(%esp)
226238405Sjkim	xorl	%ebx,%ecx
227238405Sjkim	movl	%ecx,12(%esp)
228238405Sjkim	xorl	%esi,%ecx
229238405Sjkim	xorl	44(%edi),%edx
230238405Sjkim	movzbl	%ch,%esi
231238405Sjkim	movl	2052(%ebp,%esi,8),%ebx
232238405Sjkim	movzbl	%cl,%esi
233238405Sjkim	xorl	4(%ebp,%esi,8),%ebx
234238405Sjkim	shrl	$16,%ecx
235238405Sjkim	movzbl	%dl,%esi
236238405Sjkim	movl	(%ebp,%esi,8),%eax
237238405Sjkim	movzbl	%ch,%esi
238238405Sjkim	xorl	(%ebp,%esi,8),%ebx
239238405Sjkim	movzbl	%dh,%esi
240238405Sjkim	xorl	4(%ebp,%esi,8),%eax
241238405Sjkim	shrl	$16,%edx
242238405Sjkim	movzbl	%cl,%ecx
243238405Sjkim	xorl	2048(%ebp,%ecx,8),%ebx
244238405Sjkim	movzbl	%dh,%esi
245238405Sjkim	movl	8(%esp),%ecx
246238405Sjkim	xorl	%ebx,%eax
247238405Sjkim	rorl	$8,%ebx
248238405Sjkim	xorl	2048(%ebp,%esi,8),%eax
249238405Sjkim	movzbl	%dl,%esi
250238405Sjkim	movl	4(%esp),%edx
251238405Sjkim	xorl	%ecx,%ebx
252238405Sjkim	xorl	2052(%ebp,%esi,8),%eax
253238405Sjkim	movl	48(%edi),%esi
254238405Sjkim	xorl	%eax,%ebx
255238405Sjkim	movl	%ebx,8(%esp)
256238405Sjkim	xorl	%edx,%eax
257238405Sjkim	movl	%eax,4(%esp)
258238405Sjkim	xorl	%esi,%eax
259238405Sjkim	xorl	52(%edi),%ebx
260238405Sjkim	movzbl	%ah,%esi
261238405Sjkim	movl	2052(%ebp,%esi,8),%edx
262238405Sjkim	movzbl	%al,%esi
263238405Sjkim	xorl	4(%ebp,%esi,8),%edx
264238405Sjkim	shrl	$16,%eax
265238405Sjkim	movzbl	%bl,%esi
266238405Sjkim	movl	(%ebp,%esi,8),%ecx
267238405Sjkim	movzbl	%ah,%esi
268238405Sjkim	xorl	(%ebp,%esi,8),%edx
269238405Sjkim	movzbl	%bh,%esi
270238405Sjkim	xorl	4(%ebp,%esi,8),%ecx
271238405Sjkim	shrl	$16,%ebx
272238405Sjkim	movzbl	%al,%eax
273238405Sjkim	xorl	2048(%ebp,%eax,8),%edx
274238405Sjkim	movzbl	%bh,%esi
275238405Sjkim	movl	16(%esp),%eax
276238405Sjkim	xorl	%edx,%ecx
277238405Sjkim	rorl	$8,%edx
278238405Sjkim	xorl	2048(%ebp,%esi,8),%ecx
279238405Sjkim	movzbl	%bl,%esi
280238405Sjkim	movl	12(%esp),%ebx
281238405Sjkim	xorl	%eax,%edx
282238405Sjkim	xorl	2052(%ebp,%esi,8),%ecx
283238405Sjkim	movl	56(%edi),%esi
284238405Sjkim	xorl	%ecx,%edx
285238405Sjkim	movl	%edx,16(%esp)
286238405Sjkim	xorl	%ebx,%ecx
287238405Sjkim	movl	%ecx,12(%esp)
288238405Sjkim	xorl	%esi,%ecx
289238405Sjkim	xorl	60(%edi),%edx
290238405Sjkim	movzbl	%ch,%esi
291238405Sjkim	movl	2052(%ebp,%esi,8),%ebx
292238405Sjkim	movzbl	%cl,%esi
293238405Sjkim	xorl	4(%ebp,%esi,8),%ebx
294238405Sjkim	shrl	$16,%ecx
295238405Sjkim	movzbl	%dl,%esi
296238405Sjkim	movl	(%ebp,%esi,8),%eax
297238405Sjkim	movzbl	%ch,%esi
298238405Sjkim	xorl	(%ebp,%esi,8),%ebx
299238405Sjkim	movzbl	%dh,%esi
300238405Sjkim	xorl	4(%ebp,%esi,8),%eax
301238405Sjkim	shrl	$16,%edx
302238405Sjkim	movzbl	%cl,%ecx
303238405Sjkim	xorl	2048(%ebp,%ecx,8),%ebx
304238405Sjkim	movzbl	%dh,%esi
305238405Sjkim	movl	8(%esp),%ecx
306238405Sjkim	xorl	%ebx,%eax
307238405Sjkim	rorl	$8,%ebx
308238405Sjkim	xorl	2048(%ebp,%esi,8),%eax
309238405Sjkim	movzbl	%dl,%esi
310238405Sjkim	movl	4(%esp),%edx
311238405Sjkim	xorl	%ecx,%ebx
312238405Sjkim	xorl	2052(%ebp,%esi,8),%eax
313238405Sjkim	movl	64(%edi),%esi
314238405Sjkim	xorl	%eax,%ebx
315238405Sjkim	movl	%ebx,8(%esp)
316238405Sjkim	xorl	%edx,%eax
317238405Sjkim	movl	%eax,4(%esp)
318238405Sjkim	addl	$64,%edi
319238405Sjkim	cmpl	20(%esp),%edi
320238405Sjkim	je	.L003done
321238405Sjkim	andl	%eax,%esi
322238405Sjkim	movl	16(%esp),%edx
323238405Sjkim	roll	$1,%esi
324238405Sjkim	movl	%edx,%ecx
325238405Sjkim	xorl	%esi,%ebx
326238405Sjkim	orl	12(%edi),%ecx
327238405Sjkim	movl	%ebx,8(%esp)
328238405Sjkim	xorl	12(%esp),%ecx
329238405Sjkim	movl	4(%edi),%esi
330238405Sjkim	movl	%ecx,12(%esp)
331238405Sjkim	orl	%ebx,%esi
332238405Sjkim	andl	8(%edi),%ecx
333238405Sjkim	xorl	%esi,%eax
334238405Sjkim	roll	$1,%ecx
335238405Sjkim	movl	%eax,4(%esp)
336238405Sjkim	xorl	%ecx,%edx
337238405Sjkim	movl	16(%edi),%esi
338238405Sjkim	movl	%edx,16(%esp)
339238405Sjkim	jmp	.L002loop
340238405Sjkim.align	8
341238405Sjkim.L003done:
342238405Sjkim	movl	%eax,%ecx
343238405Sjkim	movl	%ebx,%edx
344238405Sjkim	movl	12(%esp),%eax
345238405Sjkim	movl	16(%esp),%ebx
346238405Sjkim	xorl	%esi,%eax
347238405Sjkim	xorl	4(%edi),%ebx
348238405Sjkim	xorl	8(%edi),%ecx
349238405Sjkim	xorl	12(%edi),%edx
350238405Sjkim	ret
351238405Sjkim.size	_x86_Camellia_encrypt,.-_x86_Camellia_encrypt
352238405Sjkim.globl	Camellia_DecryptBlock_Rounds
353238405Sjkim.type	Camellia_DecryptBlock_Rounds,@function
354238405Sjkim.align	16
355238405SjkimCamellia_DecryptBlock_Rounds:
356238405Sjkim.L_Camellia_DecryptBlock_Rounds_begin:
357238405Sjkim	pushl	%ebp
358238405Sjkim	pushl	%ebx
359238405Sjkim	pushl	%esi
360238405Sjkim	pushl	%edi
361238405Sjkim	movl	20(%esp),%eax
362238405Sjkim	movl	24(%esp),%esi
363238405Sjkim	movl	28(%esp),%edi
364238405Sjkim	movl	%esp,%ebx
365238405Sjkim	subl	$28,%esp
366238405Sjkim	andl	$-64,%esp
367238405Sjkim	leal	-127(%edi),%ecx
368238405Sjkim	subl	%esp,%ecx
369238405Sjkim	negl	%ecx
370238405Sjkim	andl	$960,%ecx
371238405Sjkim	subl	%ecx,%esp
372238405Sjkim	addl	$4,%esp
373238405Sjkim	shll	$6,%eax
374238405Sjkim	movl	%edi,16(%esp)
375238405Sjkim	leal	(%edi,%eax,1),%edi
376238405Sjkim	movl	%ebx,20(%esp)
377238405Sjkim	call	.L004pic_point
378238405Sjkim.L004pic_point:
379238405Sjkim	popl	%ebp
380238405Sjkim	leal	.LCamellia_SBOX-.L004pic_point(%ebp),%ebp
381238405Sjkim	movl	(%esi),%eax
382238405Sjkim	movl	4(%esi),%ebx
383238405Sjkim	movl	8(%esi),%ecx
384238405Sjkim	bswap	%eax
385238405Sjkim	movl	12(%esi),%edx
386238405Sjkim	bswap	%ebx
387238405Sjkim	bswap	%ecx
388238405Sjkim	bswap	%edx
389238405Sjkim	call	_x86_Camellia_decrypt
390238405Sjkim	movl	20(%esp),%esp
391238405Sjkim	bswap	%eax
392238405Sjkim	movl	32(%esp),%esi
393238405Sjkim	bswap	%ebx
394238405Sjkim	bswap	%ecx
395238405Sjkim	bswap	%edx
396238405Sjkim	movl	%eax,(%esi)
397238405Sjkim	movl	%ebx,4(%esi)
398238405Sjkim	movl	%ecx,8(%esi)
399238405Sjkim	movl	%edx,12(%esi)
400238405Sjkim	popl	%edi
401238405Sjkim	popl	%esi
402238405Sjkim	popl	%ebx
403238405Sjkim	popl	%ebp
404238405Sjkim	ret
405238405Sjkim.size	Camellia_DecryptBlock_Rounds,.-.L_Camellia_DecryptBlock_Rounds_begin
406238405Sjkim.globl	Camellia_DecryptBlock
407238405Sjkim.type	Camellia_DecryptBlock,@function
408238405Sjkim.align	16
409238405SjkimCamellia_DecryptBlock:
410238405Sjkim.L_Camellia_DecryptBlock_begin:
411238405Sjkim	movl	$128,%eax
412238405Sjkim	subl	4(%esp),%eax
413238405Sjkim	movl	$3,%eax
414238405Sjkim	adcl	$0,%eax
415238405Sjkim	movl	%eax,4(%esp)
416238405Sjkim	jmp	.L_Camellia_DecryptBlock_Rounds_begin
417238405Sjkim.size	Camellia_DecryptBlock,.-.L_Camellia_DecryptBlock_begin
418238405Sjkim.globl	Camellia_decrypt
419238405Sjkim.type	Camellia_decrypt,@function
420238405Sjkim.align	16
421238405SjkimCamellia_decrypt:
422238405Sjkim.L_Camellia_decrypt_begin:
423238405Sjkim	pushl	%ebp
424238405Sjkim	pushl	%ebx
425238405Sjkim	pushl	%esi
426238405Sjkim	pushl	%edi
427238405Sjkim	movl	20(%esp),%esi
428238405Sjkim	movl	28(%esp),%edi
429238405Sjkim	movl	%esp,%ebx
430238405Sjkim	subl	$28,%esp
431238405Sjkim	andl	$-64,%esp
432238405Sjkim	movl	272(%edi),%eax
433238405Sjkim	leal	-127(%edi),%ecx
434238405Sjkim	subl	%esp,%ecx
435238405Sjkim	negl	%ecx
436238405Sjkim	andl	$960,%ecx
437238405Sjkim	subl	%ecx,%esp
438238405Sjkim	addl	$4,%esp
439238405Sjkim	shll	$6,%eax
440238405Sjkim	movl	%edi,16(%esp)
441238405Sjkim	leal	(%edi,%eax,1),%edi
442238405Sjkim	movl	%ebx,20(%esp)
443238405Sjkim	call	.L005pic_point
444238405Sjkim.L005pic_point:
445238405Sjkim	popl	%ebp
446238405Sjkim	leal	.LCamellia_SBOX-.L005pic_point(%ebp),%ebp
447238405Sjkim	movl	(%esi),%eax
448238405Sjkim	movl	4(%esi),%ebx
449238405Sjkim	movl	8(%esi),%ecx
450238405Sjkim	bswap	%eax
451238405Sjkim	movl	12(%esi),%edx
452238405Sjkim	bswap	%ebx
453238405Sjkim	bswap	%ecx
454238405Sjkim	bswap	%edx
455238405Sjkim	call	_x86_Camellia_decrypt
456238405Sjkim	movl	20(%esp),%esp
457238405Sjkim	bswap	%eax
458238405Sjkim	movl	24(%esp),%esi
459238405Sjkim	bswap	%ebx
460238405Sjkim	bswap	%ecx
461238405Sjkim	bswap	%edx
462238405Sjkim	movl	%eax,(%esi)
463238405Sjkim	movl	%ebx,4(%esi)
464238405Sjkim	movl	%ecx,8(%esi)
465238405Sjkim	movl	%edx,12(%esi)
466238405Sjkim	popl	%edi
467238405Sjkim	popl	%esi
468238405Sjkim	popl	%ebx
469238405Sjkim	popl	%ebp
470238405Sjkim	ret
471238405Sjkim.size	Camellia_decrypt,.-.L_Camellia_decrypt_begin
472238405Sjkim.type	_x86_Camellia_decrypt,@function
473238405Sjkim.align	16
474238405Sjkim_x86_Camellia_decrypt:
475238405Sjkim	xorl	(%edi),%eax
476238405Sjkim	xorl	4(%edi),%ebx
477238405Sjkim	xorl	8(%edi),%ecx
478238405Sjkim	xorl	12(%edi),%edx
479238405Sjkim	movl	-8(%edi),%esi
480238405Sjkim	movl	%eax,4(%esp)
481238405Sjkim	movl	%ebx,8(%esp)
482238405Sjkim	movl	%ecx,12(%esp)
483238405Sjkim	movl	%edx,16(%esp)
484238405Sjkim.align	16
485238405Sjkim.L006loop:
486238405Sjkim	xorl	%esi,%eax
487238405Sjkim	xorl	-4(%edi),%ebx
488238405Sjkim	movzbl	%ah,%esi
489238405Sjkim	movl	2052(%ebp,%esi,8),%edx
490238405Sjkim	movzbl	%al,%esi
491238405Sjkim	xorl	4(%ebp,%esi,8),%edx
492238405Sjkim	shrl	$16,%eax
493238405Sjkim	movzbl	%bl,%esi
494238405Sjkim	movl	(%ebp,%esi,8),%ecx
495238405Sjkim	movzbl	%ah,%esi
496238405Sjkim	xorl	(%ebp,%esi,8),%edx
497238405Sjkim	movzbl	%bh,%esi
498238405Sjkim	xorl	4(%ebp,%esi,8),%ecx
499238405Sjkim	shrl	$16,%ebx
500238405Sjkim	movzbl	%al,%eax
501238405Sjkim	xorl	2048(%ebp,%eax,8),%edx
502238405Sjkim	movzbl	%bh,%esi
503238405Sjkim	movl	16(%esp),%eax
504238405Sjkim	xorl	%edx,%ecx
505238405Sjkim	rorl	$8,%edx
506238405Sjkim	xorl	2048(%ebp,%esi,8),%ecx
507238405Sjkim	movzbl	%bl,%esi
508238405Sjkim	movl	12(%esp),%ebx
509238405Sjkim	xorl	%eax,%edx
510238405Sjkim	xorl	2052(%ebp,%esi,8),%ecx
511238405Sjkim	movl	-16(%edi),%esi
512238405Sjkim	xorl	%ecx,%edx
513238405Sjkim	movl	%edx,16(%esp)
514238405Sjkim	xorl	%ebx,%ecx
515238405Sjkim	movl	%ecx,12(%esp)
516238405Sjkim	xorl	%esi,%ecx
517238405Sjkim	xorl	-12(%edi),%edx
518238405Sjkim	movzbl	%ch,%esi
519238405Sjkim	movl	2052(%ebp,%esi,8),%ebx
520238405Sjkim	movzbl	%cl,%esi
521238405Sjkim	xorl	4(%ebp,%esi,8),%ebx
522238405Sjkim	shrl	$16,%ecx
523238405Sjkim	movzbl	%dl,%esi
524238405Sjkim	movl	(%ebp,%esi,8),%eax
525238405Sjkim	movzbl	%ch,%esi
526238405Sjkim	xorl	(%ebp,%esi,8),%ebx
527238405Sjkim	movzbl	%dh,%esi
528238405Sjkim	xorl	4(%ebp,%esi,8),%eax
529238405Sjkim	shrl	$16,%edx
530238405Sjkim	movzbl	%cl,%ecx
531238405Sjkim	xorl	2048(%ebp,%ecx,8),%ebx
532238405Sjkim	movzbl	%dh,%esi
533238405Sjkim	movl	8(%esp),%ecx
534238405Sjkim	xorl	%ebx,%eax
535238405Sjkim	rorl	$8,%ebx
536238405Sjkim	xorl	2048(%ebp,%esi,8),%eax
537238405Sjkim	movzbl	%dl,%esi
538238405Sjkim	movl	4(%esp),%edx
539238405Sjkim	xorl	%ecx,%ebx
540238405Sjkim	xorl	2052(%ebp,%esi,8),%eax
541238405Sjkim	movl	-24(%edi),%esi
542238405Sjkim	xorl	%eax,%ebx
543238405Sjkim	movl	%ebx,8(%esp)
544238405Sjkim	xorl	%edx,%eax
545238405Sjkim	movl	%eax,4(%esp)
546238405Sjkim	xorl	%esi,%eax
547238405Sjkim	xorl	-20(%edi),%ebx
548238405Sjkim	movzbl	%ah,%esi
549238405Sjkim	movl	2052(%ebp,%esi,8),%edx
550238405Sjkim	movzbl	%al,%esi
551238405Sjkim	xorl	4(%ebp,%esi,8),%edx
552238405Sjkim	shrl	$16,%eax
553238405Sjkim	movzbl	%bl,%esi
554238405Sjkim	movl	(%ebp,%esi,8),%ecx
555238405Sjkim	movzbl	%ah,%esi
556238405Sjkim	xorl	(%ebp,%esi,8),%edx
557238405Sjkim	movzbl	%bh,%esi
558238405Sjkim	xorl	4(%ebp,%esi,8),%ecx
559238405Sjkim	shrl	$16,%ebx
560238405Sjkim	movzbl	%al,%eax
561238405Sjkim	xorl	2048(%ebp,%eax,8),%edx
562238405Sjkim	movzbl	%bh,%esi
563238405Sjkim	movl	16(%esp),%eax
564238405Sjkim	xorl	%edx,%ecx
565238405Sjkim	rorl	$8,%edx
566238405Sjkim	xorl	2048(%ebp,%esi,8),%ecx
567238405Sjkim	movzbl	%bl,%esi
568238405Sjkim	movl	12(%esp),%ebx
569238405Sjkim	xorl	%eax,%edx
570238405Sjkim	xorl	2052(%ebp,%esi,8),%ecx
571238405Sjkim	movl	-32(%edi),%esi
572238405Sjkim	xorl	%ecx,%edx
573238405Sjkim	movl	%edx,16(%esp)
574238405Sjkim	xorl	%ebx,%ecx
575238405Sjkim	movl	%ecx,12(%esp)
576238405Sjkim	xorl	%esi,%ecx
577238405Sjkim	xorl	-28(%edi),%edx
578238405Sjkim	movzbl	%ch,%esi
579238405Sjkim	movl	2052(%ebp,%esi,8),%ebx
580238405Sjkim	movzbl	%cl,%esi
581238405Sjkim	xorl	4(%ebp,%esi,8),%ebx
582238405Sjkim	shrl	$16,%ecx
583238405Sjkim	movzbl	%dl,%esi
584238405Sjkim	movl	(%ebp,%esi,8),%eax
585238405Sjkim	movzbl	%ch,%esi
586238405Sjkim	xorl	(%ebp,%esi,8),%ebx
587238405Sjkim	movzbl	%dh,%esi
588238405Sjkim	xorl	4(%ebp,%esi,8),%eax
589238405Sjkim	shrl	$16,%edx
590238405Sjkim	movzbl	%cl,%ecx
591238405Sjkim	xorl	2048(%ebp,%ecx,8),%ebx
592238405Sjkim	movzbl	%dh,%esi
593238405Sjkim	movl	8(%esp),%ecx
594238405Sjkim	xorl	%ebx,%eax
595238405Sjkim	rorl	$8,%ebx
596238405Sjkim	xorl	2048(%ebp,%esi,8),%eax
597238405Sjkim	movzbl	%dl,%esi
598238405Sjkim	movl	4(%esp),%edx
599238405Sjkim	xorl	%ecx,%ebx
600238405Sjkim	xorl	2052(%ebp,%esi,8),%eax
601238405Sjkim	movl	-40(%edi),%esi
602238405Sjkim	xorl	%eax,%ebx
603238405Sjkim	movl	%ebx,8(%esp)
604238405Sjkim	xorl	%edx,%eax
605238405Sjkim	movl	%eax,4(%esp)
606238405Sjkim	xorl	%esi,%eax
607238405Sjkim	xorl	-36(%edi),%ebx
608238405Sjkim	movzbl	%ah,%esi
609238405Sjkim	movl	2052(%ebp,%esi,8),%edx
610238405Sjkim	movzbl	%al,%esi
611238405Sjkim	xorl	4(%ebp,%esi,8),%edx
612238405Sjkim	shrl	$16,%eax
613238405Sjkim	movzbl	%bl,%esi
614238405Sjkim	movl	(%ebp,%esi,8),%ecx
615238405Sjkim	movzbl	%ah,%esi
616238405Sjkim	xorl	(%ebp,%esi,8),%edx
617238405Sjkim	movzbl	%bh,%esi
618238405Sjkim	xorl	4(%ebp,%esi,8),%ecx
619238405Sjkim	shrl	$16,%ebx
620238405Sjkim	movzbl	%al,%eax
621238405Sjkim	xorl	2048(%ebp,%eax,8),%edx
622238405Sjkim	movzbl	%bh,%esi
623238405Sjkim	movl	16(%esp),%eax
624238405Sjkim	xorl	%edx,%ecx
625238405Sjkim	rorl	$8,%edx
626238405Sjkim	xorl	2048(%ebp,%esi,8),%ecx
627238405Sjkim	movzbl	%bl,%esi
628238405Sjkim	movl	12(%esp),%ebx
629238405Sjkim	xorl	%eax,%edx
630238405Sjkim	xorl	2052(%ebp,%esi,8),%ecx
631238405Sjkim	movl	-48(%edi),%esi
632238405Sjkim	xorl	%ecx,%edx
633238405Sjkim	movl	%edx,16(%esp)
634238405Sjkim	xorl	%ebx,%ecx
635238405Sjkim	movl	%ecx,12(%esp)
636238405Sjkim	xorl	%esi,%ecx
637238405Sjkim	xorl	-44(%edi),%edx
638238405Sjkim	movzbl	%ch,%esi
639238405Sjkim	movl	2052(%ebp,%esi,8),%ebx
640238405Sjkim	movzbl	%cl,%esi
641238405Sjkim	xorl	4(%ebp,%esi,8),%ebx
642238405Sjkim	shrl	$16,%ecx
643238405Sjkim	movzbl	%dl,%esi
644238405Sjkim	movl	(%ebp,%esi,8),%eax
645238405Sjkim	movzbl	%ch,%esi
646238405Sjkim	xorl	(%ebp,%esi,8),%ebx
647238405Sjkim	movzbl	%dh,%esi
648238405Sjkim	xorl	4(%ebp,%esi,8),%eax
649238405Sjkim	shrl	$16,%edx
650238405Sjkim	movzbl	%cl,%ecx
651238405Sjkim	xorl	2048(%ebp,%ecx,8),%ebx
652238405Sjkim	movzbl	%dh,%esi
653238405Sjkim	movl	8(%esp),%ecx
654238405Sjkim	xorl	%ebx,%eax
655238405Sjkim	rorl	$8,%ebx
656238405Sjkim	xorl	2048(%ebp,%esi,8),%eax
657238405Sjkim	movzbl	%dl,%esi
658238405Sjkim	movl	4(%esp),%edx
659238405Sjkim	xorl	%ecx,%ebx
660238405Sjkim	xorl	2052(%ebp,%esi,8),%eax
661238405Sjkim	movl	-56(%edi),%esi
662238405Sjkim	xorl	%eax,%ebx
663238405Sjkim	movl	%ebx,8(%esp)
664238405Sjkim	xorl	%edx,%eax
665238405Sjkim	movl	%eax,4(%esp)
666238405Sjkim	subl	$64,%edi
667238405Sjkim	cmpl	20(%esp),%edi
668238405Sjkim	je	.L007done
669238405Sjkim	andl	%eax,%esi
670238405Sjkim	movl	16(%esp),%edx
671238405Sjkim	roll	$1,%esi
672238405Sjkim	movl	%edx,%ecx
673238405Sjkim	xorl	%esi,%ebx
674238405Sjkim	orl	4(%edi),%ecx
675238405Sjkim	movl	%ebx,8(%esp)
676238405Sjkim	xorl	12(%esp),%ecx
677238405Sjkim	movl	12(%edi),%esi
678238405Sjkim	movl	%ecx,12(%esp)
679238405Sjkim	orl	%ebx,%esi
680238405Sjkim	andl	(%edi),%ecx
681238405Sjkim	xorl	%esi,%eax
682238405Sjkim	roll	$1,%ecx
683238405Sjkim	movl	%eax,4(%esp)
684238405Sjkim	xorl	%ecx,%edx
685238405Sjkim	movl	-8(%edi),%esi
686238405Sjkim	movl	%edx,16(%esp)
687238405Sjkim	jmp	.L006loop
688238405Sjkim.align	8
689238405Sjkim.L007done:
690238405Sjkim	movl	%eax,%ecx
691238405Sjkim	movl	%ebx,%edx
692238405Sjkim	movl	12(%esp),%eax
693238405Sjkim	movl	16(%esp),%ebx
694238405Sjkim	xorl	%esi,%ecx
695238405Sjkim	xorl	12(%edi),%edx
696238405Sjkim	xorl	(%edi),%eax
697238405Sjkim	xorl	4(%edi),%ebx
698238405Sjkim	ret
699238405Sjkim.size	_x86_Camellia_decrypt,.-_x86_Camellia_decrypt
700238405Sjkim.globl	Camellia_Ekeygen
701238405Sjkim.type	Camellia_Ekeygen,@function
702238405Sjkim.align	16
703238405SjkimCamellia_Ekeygen:
704238405Sjkim.L_Camellia_Ekeygen_begin:
705238405Sjkim	pushl	%ebp
706238405Sjkim	pushl	%ebx
707238405Sjkim	pushl	%esi
708238405Sjkim	pushl	%edi
709238405Sjkim	subl	$16,%esp
710238405Sjkim	movl	36(%esp),%ebp
711238405Sjkim	movl	40(%esp),%esi
712238405Sjkim	movl	44(%esp),%edi
713238405Sjkim	movl	(%esi),%eax
714238405Sjkim	movl	4(%esi),%ebx
715238405Sjkim	movl	8(%esi),%ecx
716238405Sjkim	movl	12(%esi),%edx
717238405Sjkim	bswap	%eax
718238405Sjkim	bswap	%ebx
719238405Sjkim	bswap	%ecx
720238405Sjkim	bswap	%edx
721238405Sjkim	movl	%eax,(%edi)
722238405Sjkim	movl	%ebx,4(%edi)
723238405Sjkim	movl	%ecx,8(%edi)
724238405Sjkim	movl	%edx,12(%edi)
725238405Sjkim	cmpl	$128,%ebp
726238405Sjkim	je	.L0081st128
727238405Sjkim	movl	16(%esi),%eax
728238405Sjkim	movl	20(%esi),%ebx
729238405Sjkim	cmpl	$192,%ebp
730238405Sjkim	je	.L0091st192
731238405Sjkim	movl	24(%esi),%ecx
732238405Sjkim	movl	28(%esi),%edx
733238405Sjkim	jmp	.L0101st256
734238405Sjkim.align	4
735238405Sjkim.L0091st192:
736238405Sjkim	movl	%eax,%ecx
737238405Sjkim	movl	%ebx,%edx
738238405Sjkim	notl	%ecx
739238405Sjkim	notl	%edx
740238405Sjkim.align	4
741238405Sjkim.L0101st256:
742238405Sjkim	bswap	%eax
743238405Sjkim	bswap	%ebx
744238405Sjkim	bswap	%ecx
745238405Sjkim	bswap	%edx
746238405Sjkim	movl	%eax,32(%edi)
747238405Sjkim	movl	%ebx,36(%edi)
748238405Sjkim	movl	%ecx,40(%edi)
749238405Sjkim	movl	%edx,44(%edi)
750238405Sjkim	xorl	(%edi),%eax
751238405Sjkim	xorl	4(%edi),%ebx
752238405Sjkim	xorl	8(%edi),%ecx
753238405Sjkim	xorl	12(%edi),%edx
754238405Sjkim.align	4
755238405Sjkim.L0081st128:
756238405Sjkim	call	.L011pic_point
757238405Sjkim.L011pic_point:
758238405Sjkim	popl	%ebp
759238405Sjkim	leal	.LCamellia_SBOX-.L011pic_point(%ebp),%ebp
760238405Sjkim	leal	.LCamellia_SIGMA-.LCamellia_SBOX(%ebp),%edi
761238405Sjkim	movl	(%edi),%esi
762238405Sjkim	movl	%eax,(%esp)
763238405Sjkim	movl	%ebx,4(%esp)
764238405Sjkim	movl	%ecx,8(%esp)
765238405Sjkim	movl	%edx,12(%esp)
766238405Sjkim	xorl	%esi,%eax
767238405Sjkim	xorl	4(%edi),%ebx
768238405Sjkim	movzbl	%ah,%esi
769238405Sjkim	movl	2052(%ebp,%esi,8),%edx
770238405Sjkim	movzbl	%al,%esi
771238405Sjkim	xorl	4(%ebp,%esi,8),%edx
772238405Sjkim	shrl	$16,%eax
773238405Sjkim	movzbl	%bl,%esi
774238405Sjkim	movl	(%ebp,%esi,8),%ecx
775238405Sjkim	movzbl	%ah,%esi
776238405Sjkim	xorl	(%ebp,%esi,8),%edx
777238405Sjkim	movzbl	%bh,%esi
778238405Sjkim	xorl	4(%ebp,%esi,8),%ecx
779238405Sjkim	shrl	$16,%ebx
780238405Sjkim	movzbl	%al,%eax
781238405Sjkim	xorl	2048(%ebp,%eax,8),%edx
782238405Sjkim	movzbl	%bh,%esi
783238405Sjkim	movl	12(%esp),%eax
784238405Sjkim	xorl	%edx,%ecx
785238405Sjkim	rorl	$8,%edx
786238405Sjkim	xorl	2048(%ebp,%esi,8),%ecx
787238405Sjkim	movzbl	%bl,%esi
788238405Sjkim	movl	8(%esp),%ebx
789238405Sjkim	xorl	%eax,%edx
790238405Sjkim	xorl	2052(%ebp,%esi,8),%ecx
791238405Sjkim	movl	8(%edi),%esi
792238405Sjkim	xorl	%ecx,%edx
793238405Sjkim	movl	%edx,12(%esp)
794238405Sjkim	xorl	%ebx,%ecx
795238405Sjkim	movl	%ecx,8(%esp)
796238405Sjkim	xorl	%esi,%ecx
797238405Sjkim	xorl	12(%edi),%edx
798238405Sjkim	movzbl	%ch,%esi
799238405Sjkim	movl	2052(%ebp,%esi,8),%ebx
800238405Sjkim	movzbl	%cl,%esi
801238405Sjkim	xorl	4(%ebp,%esi,8),%ebx
802238405Sjkim	shrl	$16,%ecx
803238405Sjkim	movzbl	%dl,%esi
804238405Sjkim	movl	(%ebp,%esi,8),%eax
805238405Sjkim	movzbl	%ch,%esi
806238405Sjkim	xorl	(%ebp,%esi,8),%ebx
807238405Sjkim	movzbl	%dh,%esi
808238405Sjkim	xorl	4(%ebp,%esi,8),%eax
809238405Sjkim	shrl	$16,%edx
810238405Sjkim	movzbl	%cl,%ecx
811238405Sjkim	xorl	2048(%ebp,%ecx,8),%ebx
812238405Sjkim	movzbl	%dh,%esi
813238405Sjkim	movl	4(%esp),%ecx
814238405Sjkim	xorl	%ebx,%eax
815238405Sjkim	rorl	$8,%ebx
816238405Sjkim	xorl	2048(%ebp,%esi,8),%eax
817238405Sjkim	movzbl	%dl,%esi
818238405Sjkim	movl	(%esp),%edx
819238405Sjkim	xorl	%ecx,%ebx
820238405Sjkim	xorl	2052(%ebp,%esi,8),%eax
821238405Sjkim	movl	16(%edi),%esi
822238405Sjkim	xorl	%eax,%ebx
823238405Sjkim	movl	%ebx,4(%esp)
824238405Sjkim	xorl	%edx,%eax
825238405Sjkim	movl	%eax,(%esp)
826238405Sjkim	movl	8(%esp),%ecx
827238405Sjkim	movl	12(%esp),%edx
828238405Sjkim	movl	44(%esp),%esi
829238405Sjkim	xorl	(%esi),%eax
830238405Sjkim	xorl	4(%esi),%ebx
831238405Sjkim	xorl	8(%esi),%ecx
832238405Sjkim	xorl	12(%esi),%edx
833238405Sjkim	movl	16(%edi),%esi
834238405Sjkim	movl	%eax,(%esp)
835238405Sjkim	movl	%ebx,4(%esp)
836238405Sjkim	movl	%ecx,8(%esp)
837238405Sjkim	movl	%edx,12(%esp)
838238405Sjkim	xorl	%esi,%eax
839238405Sjkim	xorl	20(%edi),%ebx
840238405Sjkim	movzbl	%ah,%esi
841238405Sjkim	movl	2052(%ebp,%esi,8),%edx
842238405Sjkim	movzbl	%al,%esi
843238405Sjkim	xorl	4(%ebp,%esi,8),%edx
844238405Sjkim	shrl	$16,%eax
845238405Sjkim	movzbl	%bl,%esi
846238405Sjkim	movl	(%ebp,%esi,8),%ecx
847238405Sjkim	movzbl	%ah,%esi
848238405Sjkim	xorl	(%ebp,%esi,8),%edx
849238405Sjkim	movzbl	%bh,%esi
850238405Sjkim	xorl	4(%ebp,%esi,8),%ecx
851238405Sjkim	shrl	$16,%ebx
852238405Sjkim	movzbl	%al,%eax
853238405Sjkim	xorl	2048(%ebp,%eax,8),%edx
854238405Sjkim	movzbl	%bh,%esi
855238405Sjkim	movl	12(%esp),%eax
856238405Sjkim	xorl	%edx,%ecx
857238405Sjkim	rorl	$8,%edx
858238405Sjkim	xorl	2048(%ebp,%esi,8),%ecx
859238405Sjkim	movzbl	%bl,%esi
860238405Sjkim	movl	8(%esp),%ebx
861238405Sjkim	xorl	%eax,%edx
862238405Sjkim	xorl	2052(%ebp,%esi,8),%ecx
863238405Sjkim	movl	24(%edi),%esi
864238405Sjkim	xorl	%ecx,%edx
865238405Sjkim	movl	%edx,12(%esp)
866238405Sjkim	xorl	%ebx,%ecx
867238405Sjkim	movl	%ecx,8(%esp)
868238405Sjkim	xorl	%esi,%ecx
869238405Sjkim	xorl	28(%edi),%edx
870238405Sjkim	movzbl	%ch,%esi
871238405Sjkim	movl	2052(%ebp,%esi,8),%ebx
872238405Sjkim	movzbl	%cl,%esi
873238405Sjkim	xorl	4(%ebp,%esi,8),%ebx
874238405Sjkim	shrl	$16,%ecx
875238405Sjkim	movzbl	%dl,%esi
876238405Sjkim	movl	(%ebp,%esi,8),%eax
877238405Sjkim	movzbl	%ch,%esi
878238405Sjkim	xorl	(%ebp,%esi,8),%ebx
879238405Sjkim	movzbl	%dh,%esi
880238405Sjkim	xorl	4(%ebp,%esi,8),%eax
881238405Sjkim	shrl	$16,%edx
882238405Sjkim	movzbl	%cl,%ecx
883238405Sjkim	xorl	2048(%ebp,%ecx,8),%ebx
884238405Sjkim	movzbl	%dh,%esi
885238405Sjkim	movl	4(%esp),%ecx
886238405Sjkim	xorl	%ebx,%eax
887238405Sjkim	rorl	$8,%ebx
888238405Sjkim	xorl	2048(%ebp,%esi,8),%eax
889238405Sjkim	movzbl	%dl,%esi
890238405Sjkim	movl	(%esp),%edx
891238405Sjkim	xorl	%ecx,%ebx
892238405Sjkim	xorl	2052(%ebp,%esi,8),%eax
893238405Sjkim	movl	32(%edi),%esi
894238405Sjkim	xorl	%eax,%ebx
895238405Sjkim	movl	%ebx,4(%esp)
896238405Sjkim	xorl	%edx,%eax
897238405Sjkim	movl	%eax,(%esp)
898238405Sjkim	movl	8(%esp),%ecx
899238405Sjkim	movl	12(%esp),%edx
900238405Sjkim	movl	36(%esp),%esi
901238405Sjkim	cmpl	$128,%esi
902238405Sjkim	jne	.L0122nd256
903238405Sjkim	movl	44(%esp),%edi
904238405Sjkim	leal	128(%edi),%edi
905238405Sjkim	movl	%eax,-112(%edi)
906238405Sjkim	movl	%ebx,-108(%edi)
907238405Sjkim	movl	%ecx,-104(%edi)
908238405Sjkim	movl	%edx,-100(%edi)
909238405Sjkim	movl	%eax,%ebp
910238405Sjkim	shll	$15,%eax
911238405Sjkim	movl	%ebx,%esi
912238405Sjkim	shrl	$17,%esi
913238405Sjkim	shll	$15,%ebx
914238405Sjkim	orl	%esi,%eax
915238405Sjkim	movl	%ecx,%esi
916238405Sjkim	shll	$15,%ecx
917238405Sjkim	movl	%eax,-80(%edi)
918238405Sjkim	shrl	$17,%esi
919238405Sjkim	orl	%esi,%ebx
920238405Sjkim	shrl	$17,%ebp
921238405Sjkim	movl	%edx,%esi
922238405Sjkim	shrl	$17,%esi
923238405Sjkim	movl	%ebx,-76(%edi)
924238405Sjkim	shll	$15,%edx
925238405Sjkim	orl	%esi,%ecx
926238405Sjkim	orl	%ebp,%edx
927238405Sjkim	movl	%ecx,-72(%edi)
928238405Sjkim	movl	%edx,-68(%edi)
929238405Sjkim	movl	%eax,%ebp
930238405Sjkim	shll	$15,%eax
931238405Sjkim	movl	%ebx,%esi
932238405Sjkim	shrl	$17,%esi
933238405Sjkim	shll	$15,%ebx
934238405Sjkim	orl	%esi,%eax
935238405Sjkim	movl	%ecx,%esi
936238405Sjkim	shll	$15,%ecx
937238405Sjkim	movl	%eax,-64(%edi)
938238405Sjkim	shrl	$17,%esi
939238405Sjkim	orl	%esi,%ebx
940238405Sjkim	shrl	$17,%ebp
941238405Sjkim	movl	%edx,%esi
942238405Sjkim	shrl	$17,%esi
943238405Sjkim	movl	%ebx,-60(%edi)
944238405Sjkim	shll	$15,%edx
945238405Sjkim	orl	%esi,%ecx
946238405Sjkim	orl	%ebp,%edx
947238405Sjkim	movl	%ecx,-56(%edi)
948238405Sjkim	movl	%edx,-52(%edi)
949238405Sjkim	movl	%eax,%ebp
950238405Sjkim	shll	$15,%eax
951238405Sjkim	movl	%ebx,%esi
952238405Sjkim	shrl	$17,%esi
953238405Sjkim	shll	$15,%ebx
954238405Sjkim	orl	%esi,%eax
955238405Sjkim	movl	%ecx,%esi
956238405Sjkim	shll	$15,%ecx
957238405Sjkim	movl	%eax,-32(%edi)
958238405Sjkim	shrl	$17,%esi
959238405Sjkim	orl	%esi,%ebx
960238405Sjkim	shrl	$17,%ebp
961238405Sjkim	movl	%edx,%esi
962238405Sjkim	shrl	$17,%esi
963238405Sjkim	movl	%ebx,-28(%edi)
964238405Sjkim	shll	$15,%edx
965238405Sjkim	orl	%esi,%ecx
966238405Sjkim	orl	%ebp,%edx
967238405Sjkim	movl	%eax,%ebp
968238405Sjkim	shll	$15,%eax
969238405Sjkim	movl	%ebx,%esi
970238405Sjkim	shrl	$17,%esi
971238405Sjkim	shll	$15,%ebx
972238405Sjkim	orl	%esi,%eax
973238405Sjkim	movl	%ecx,%esi
974238405Sjkim	shll	$15,%ecx
975238405Sjkim	movl	%eax,-16(%edi)
976238405Sjkim	shrl	$17,%esi
977238405Sjkim	orl	%esi,%ebx
978238405Sjkim	shrl	$17,%ebp
979238405Sjkim	movl	%edx,%esi
980238405Sjkim	shrl	$17,%esi
981238405Sjkim	movl	%ebx,-12(%edi)
982238405Sjkim	shll	$15,%edx
983238405Sjkim	orl	%esi,%ecx
984238405Sjkim	orl	%ebp,%edx
985238405Sjkim	movl	%ecx,-8(%edi)
986238405Sjkim	movl	%edx,-4(%edi)
987238405Sjkim	movl	%ebx,%ebp
988238405Sjkim	shll	$2,%ebx
989238405Sjkim	movl	%ecx,%esi
990238405Sjkim	shrl	$30,%esi
991238405Sjkim	shll	$2,%ecx
992238405Sjkim	orl	%esi,%ebx
993238405Sjkim	movl	%edx,%esi
994238405Sjkim	shll	$2,%edx
995238405Sjkim	movl	%ebx,32(%edi)
996238405Sjkim	shrl	$30,%esi
997238405Sjkim	orl	%esi,%ecx
998238405Sjkim	shrl	$30,%ebp
999238405Sjkim	movl	%eax,%esi
1000238405Sjkim	shrl	$30,%esi
1001238405Sjkim	movl	%ecx,36(%edi)
1002238405Sjkim	shll	$2,%eax
1003238405Sjkim	orl	%esi,%edx
1004238405Sjkim	orl	%ebp,%eax
1005238405Sjkim	movl	%edx,40(%edi)
1006238405Sjkim	movl	%eax,44(%edi)
1007238405Sjkim	movl	%ebx,%ebp
1008238405Sjkim	shll	$17,%ebx
1009238405Sjkim	movl	%ecx,%esi
1010238405Sjkim	shrl	$15,%esi
1011238405Sjkim	shll	$17,%ecx
1012238405Sjkim	orl	%esi,%ebx
1013238405Sjkim	movl	%edx,%esi
1014238405Sjkim	shll	$17,%edx
1015238405Sjkim	movl	%ebx,64(%edi)
1016238405Sjkim	shrl	$15,%esi
1017238405Sjkim	orl	%esi,%ecx
1018238405Sjkim	shrl	$15,%ebp
1019238405Sjkim	movl	%eax,%esi
1020238405Sjkim	shrl	$15,%esi
1021238405Sjkim	movl	%ecx,68(%edi)
1022238405Sjkim	shll	$17,%eax
1023238405Sjkim	orl	%esi,%edx
1024238405Sjkim	orl	%ebp,%eax
1025238405Sjkim	movl	%edx,72(%edi)
1026238405Sjkim	movl	%eax,76(%edi)
1027238405Sjkim	movl	-128(%edi),%ebx
1028238405Sjkim	movl	-124(%edi),%ecx
1029238405Sjkim	movl	-120(%edi),%edx
1030238405Sjkim	movl	-116(%edi),%eax
1031238405Sjkim	movl	%ebx,%ebp
1032238405Sjkim	shll	$15,%ebx
1033238405Sjkim	movl	%ecx,%esi
1034238405Sjkim	shrl	$17,%esi
1035238405Sjkim	shll	$15,%ecx
1036238405Sjkim	orl	%esi,%ebx
1037238405Sjkim	movl	%edx,%esi
1038238405Sjkim	shll	$15,%edx
1039238405Sjkim	movl	%ebx,-96(%edi)
1040238405Sjkim	shrl	$17,%esi
1041238405Sjkim	orl	%esi,%ecx
1042238405Sjkim	shrl	$17,%ebp
1043238405Sjkim	movl	%eax,%esi
1044238405Sjkim	shrl	$17,%esi
1045238405Sjkim	movl	%ecx,-92(%edi)
1046238405Sjkim	shll	$15,%eax
1047238405Sjkim	orl	%esi,%edx
1048238405Sjkim	orl	%ebp,%eax
1049238405Sjkim	movl	%edx,-88(%edi)
1050238405Sjkim	movl	%eax,-84(%edi)
1051238405Sjkim	movl	%ebx,%ebp
1052238405Sjkim	shll	$30,%ebx
1053238405Sjkim	movl	%ecx,%esi
1054238405Sjkim	shrl	$2,%esi
1055238405Sjkim	shll	$30,%ecx
1056238405Sjkim	orl	%esi,%ebx
1057238405Sjkim	movl	%edx,%esi
1058238405Sjkim	shll	$30,%edx
1059238405Sjkim	movl	%ebx,-48(%edi)
1060238405Sjkim	shrl	$2,%esi
1061238405Sjkim	orl	%esi,%ecx
1062238405Sjkim	shrl	$2,%ebp
1063238405Sjkim	movl	%eax,%esi
1064238405Sjkim	shrl	$2,%esi
1065238405Sjkim	movl	%ecx,-44(%edi)
1066238405Sjkim	shll	$30,%eax
1067238405Sjkim	orl	%esi,%edx
1068238405Sjkim	orl	%ebp,%eax
1069238405Sjkim	movl	%edx,-40(%edi)
1070238405Sjkim	movl	%eax,-36(%edi)
1071238405Sjkim	movl	%ebx,%ebp
1072238405Sjkim	shll	$15,%ebx
1073238405Sjkim	movl	%ecx,%esi
1074238405Sjkim	shrl	$17,%esi
1075238405Sjkim	shll	$15,%ecx
1076238405Sjkim	orl	%esi,%ebx
1077238405Sjkim	movl	%edx,%esi
1078238405Sjkim	shll	$15,%edx
1079238405Sjkim	shrl	$17,%esi
1080238405Sjkim	orl	%esi,%ecx
1081238405Sjkim	shrl	$17,%ebp
1082238405Sjkim	movl	%eax,%esi
1083238405Sjkim	shrl	$17,%esi
1084238405Sjkim	shll	$15,%eax
1085238405Sjkim	orl	%esi,%edx
1086238405Sjkim	orl	%ebp,%eax
1087238405Sjkim	movl	%edx,-24(%edi)
1088238405Sjkim	movl	%eax,-20(%edi)
1089238405Sjkim	movl	%ebx,%ebp
1090238405Sjkim	shll	$17,%ebx
1091238405Sjkim	movl	%ecx,%esi
1092238405Sjkim	shrl	$15,%esi
1093238405Sjkim	shll	$17,%ecx
1094238405Sjkim	orl	%esi,%ebx
1095238405Sjkim	movl	%edx,%esi
1096238405Sjkim	shll	$17,%edx
1097238405Sjkim	movl	%ebx,(%edi)
1098238405Sjkim	shrl	$15,%esi
1099238405Sjkim	orl	%esi,%ecx
1100238405Sjkim	shrl	$15,%ebp
1101238405Sjkim	movl	%eax,%esi
1102238405Sjkim	shrl	$15,%esi
1103238405Sjkim	movl	%ecx,4(%edi)
1104238405Sjkim	shll	$17,%eax
1105238405Sjkim	orl	%esi,%edx
1106238405Sjkim	orl	%ebp,%eax
1107238405Sjkim	movl	%edx,8(%edi)
1108238405Sjkim	movl	%eax,12(%edi)
1109238405Sjkim	movl	%ebx,%ebp
1110238405Sjkim	shll	$17,%ebx
1111238405Sjkim	movl	%ecx,%esi
1112238405Sjkim	shrl	$15,%esi
1113238405Sjkim	shll	$17,%ecx
1114238405Sjkim	orl	%esi,%ebx
1115238405Sjkim	movl	%edx,%esi
1116238405Sjkim	shll	$17,%edx
1117238405Sjkim	movl	%ebx,16(%edi)
1118238405Sjkim	shrl	$15,%esi
1119238405Sjkim	orl	%esi,%ecx
1120238405Sjkim	shrl	$15,%ebp
1121238405Sjkim	movl	%eax,%esi
1122238405Sjkim	shrl	$15,%esi
1123238405Sjkim	movl	%ecx,20(%edi)
1124238405Sjkim	shll	$17,%eax
1125238405Sjkim	orl	%esi,%edx
1126238405Sjkim	orl	%ebp,%eax
1127238405Sjkim	movl	%edx,24(%edi)
1128238405Sjkim	movl	%eax,28(%edi)
1129238405Sjkim	movl	%ebx,%ebp
1130238405Sjkim	shll	$17,%ebx
1131238405Sjkim	movl	%ecx,%esi
1132238405Sjkim	shrl	$15,%esi
1133238405Sjkim	shll	$17,%ecx
1134238405Sjkim	orl	%esi,%ebx
1135238405Sjkim	movl	%edx,%esi
1136238405Sjkim	shll	$17,%edx
1137238405Sjkim	movl	%ebx,48(%edi)
1138238405Sjkim	shrl	$15,%esi
1139238405Sjkim	orl	%esi,%ecx
1140238405Sjkim	shrl	$15,%ebp
1141238405Sjkim	movl	%eax,%esi
1142238405Sjkim	shrl	$15,%esi
1143238405Sjkim	movl	%ecx,52(%edi)
1144238405Sjkim	shll	$17,%eax
1145238405Sjkim	orl	%esi,%edx
1146238405Sjkim	orl	%ebp,%eax
1147238405Sjkim	movl	%edx,56(%edi)
1148238405Sjkim	movl	%eax,60(%edi)
1149238405Sjkim	movl	$3,%eax
1150238405Sjkim	jmp	.L013done
1151238405Sjkim.align	16
1152238405Sjkim.L0122nd256:
1153238405Sjkim	movl	44(%esp),%esi
1154238405Sjkim	movl	%eax,48(%esi)
1155238405Sjkim	movl	%ebx,52(%esi)
1156238405Sjkim	movl	%ecx,56(%esi)
1157238405Sjkim	movl	%edx,60(%esi)
1158238405Sjkim	xorl	32(%esi),%eax
1159238405Sjkim	xorl	36(%esi),%ebx
1160238405Sjkim	xorl	40(%esi),%ecx
1161238405Sjkim	xorl	44(%esi),%edx
1162238405Sjkim	movl	32(%edi),%esi
1163238405Sjkim	movl	%eax,(%esp)
1164238405Sjkim	movl	%ebx,4(%esp)
1165238405Sjkim	movl	%ecx,8(%esp)
1166238405Sjkim	movl	%edx,12(%esp)
1167238405Sjkim	xorl	%esi,%eax
1168238405Sjkim	xorl	36(%edi),%ebx
1169238405Sjkim	movzbl	%ah,%esi
1170238405Sjkim	movl	2052(%ebp,%esi,8),%edx
1171238405Sjkim	movzbl	%al,%esi
1172238405Sjkim	xorl	4(%ebp,%esi,8),%edx
1173238405Sjkim	shrl	$16,%eax
1174238405Sjkim	movzbl	%bl,%esi
1175238405Sjkim	movl	(%ebp,%esi,8),%ecx
1176238405Sjkim	movzbl	%ah,%esi
1177238405Sjkim	xorl	(%ebp,%esi,8),%edx
1178238405Sjkim	movzbl	%bh,%esi
1179238405Sjkim	xorl	4(%ebp,%esi,8),%ecx
1180238405Sjkim	shrl	$16,%ebx
1181238405Sjkim	movzbl	%al,%eax
1182238405Sjkim	xorl	2048(%ebp,%eax,8),%edx
1183238405Sjkim	movzbl	%bh,%esi
1184238405Sjkim	movl	12(%esp),%eax
1185238405Sjkim	xorl	%edx,%ecx
1186238405Sjkim	rorl	$8,%edx
1187238405Sjkim	xorl	2048(%ebp,%esi,8),%ecx
1188238405Sjkim	movzbl	%bl,%esi
1189238405Sjkim	movl	8(%esp),%ebx
1190238405Sjkim	xorl	%eax,%edx
1191238405Sjkim	xorl	2052(%ebp,%esi,8),%ecx
1192238405Sjkim	movl	40(%edi),%esi
1193238405Sjkim	xorl	%ecx,%edx
1194238405Sjkim	movl	%edx,12(%esp)
1195238405Sjkim	xorl	%ebx,%ecx
1196238405Sjkim	movl	%ecx,8(%esp)
1197238405Sjkim	xorl	%esi,%ecx
1198238405Sjkim	xorl	44(%edi),%edx
1199238405Sjkim	movzbl	%ch,%esi
1200238405Sjkim	movl	2052(%ebp,%esi,8),%ebx
1201238405Sjkim	movzbl	%cl,%esi
1202238405Sjkim	xorl	4(%ebp,%esi,8),%ebx
1203238405Sjkim	shrl	$16,%ecx
1204238405Sjkim	movzbl	%dl,%esi
1205238405Sjkim	movl	(%ebp,%esi,8),%eax
1206238405Sjkim	movzbl	%ch,%esi
1207238405Sjkim	xorl	(%ebp,%esi,8),%ebx
1208238405Sjkim	movzbl	%dh,%esi
1209238405Sjkim	xorl	4(%ebp,%esi,8),%eax
1210238405Sjkim	shrl	$16,%edx
1211238405Sjkim	movzbl	%cl,%ecx
1212238405Sjkim	xorl	2048(%ebp,%ecx,8),%ebx
1213238405Sjkim	movzbl	%dh,%esi
1214238405Sjkim	movl	4(%esp),%ecx
1215238405Sjkim	xorl	%ebx,%eax
1216238405Sjkim	rorl	$8,%ebx
1217238405Sjkim	xorl	2048(%ebp,%esi,8),%eax
1218238405Sjkim	movzbl	%dl,%esi
1219238405Sjkim	movl	(%esp),%edx
1220238405Sjkim	xorl	%ecx,%ebx
1221238405Sjkim	xorl	2052(%ebp,%esi,8),%eax
1222238405Sjkim	movl	48(%edi),%esi
1223238405Sjkim	xorl	%eax,%ebx
1224238405Sjkim	movl	%ebx,4(%esp)
1225238405Sjkim	xorl	%edx,%eax
1226238405Sjkim	movl	%eax,(%esp)
1227238405Sjkim	movl	8(%esp),%ecx
1228238405Sjkim	movl	12(%esp),%edx
1229238405Sjkim	movl	44(%esp),%edi
1230238405Sjkim	leal	128(%edi),%edi
1231238405Sjkim	movl	%eax,-112(%edi)
1232238405Sjkim	movl	%ebx,-108(%edi)
1233238405Sjkim	movl	%ecx,-104(%edi)
1234238405Sjkim	movl	%edx,-100(%edi)
1235238405Sjkim	movl	%eax,%ebp
1236238405Sjkim	shll	$30,%eax
1237238405Sjkim	movl	%ebx,%esi
1238238405Sjkim	shrl	$2,%esi
1239238405Sjkim	shll	$30,%ebx
1240238405Sjkim	orl	%esi,%eax
1241238405Sjkim	movl	%ecx,%esi
1242238405Sjkim	shll	$30,%ecx
1243238405Sjkim	movl	%eax,-48(%edi)
1244238405Sjkim	shrl	$2,%esi
1245238405Sjkim	orl	%esi,%ebx
1246238405Sjkim	shrl	$2,%ebp
1247238405Sjkim	movl	%edx,%esi
1248238405Sjkim	shrl	$2,%esi
1249238405Sjkim	movl	%ebx,-44(%edi)
1250238405Sjkim	shll	$30,%edx
1251238405Sjkim	orl	%esi,%ecx
1252238405Sjkim	orl	%ebp,%edx
1253238405Sjkim	movl	%ecx,-40(%edi)
1254238405Sjkim	movl	%edx,-36(%edi)
1255238405Sjkim	movl	%eax,%ebp
1256238405Sjkim	shll	$30,%eax
1257238405Sjkim	movl	%ebx,%esi
1258238405Sjkim	shrl	$2,%esi
1259238405Sjkim	shll	$30,%ebx
1260238405Sjkim	orl	%esi,%eax
1261238405Sjkim	movl	%ecx,%esi
1262238405Sjkim	shll	$30,%ecx
1263238405Sjkim	movl	%eax,32(%edi)
1264238405Sjkim	shrl	$2,%esi
1265238405Sjkim	orl	%esi,%ebx
1266238405Sjkim	shrl	$2,%ebp
1267238405Sjkim	movl	%edx,%esi
1268238405Sjkim	shrl	$2,%esi
1269238405Sjkim	movl	%ebx,36(%edi)
1270238405Sjkim	shll	$30,%edx
1271238405Sjkim	orl	%esi,%ecx
1272238405Sjkim	orl	%ebp,%edx
1273238405Sjkim	movl	%ecx,40(%edi)
1274238405Sjkim	movl	%edx,44(%edi)
1275238405Sjkim	movl	%ebx,%ebp
1276238405Sjkim	shll	$19,%ebx
1277238405Sjkim	movl	%ecx,%esi
1278238405Sjkim	shrl	$13,%esi
1279238405Sjkim	shll	$19,%ecx
1280238405Sjkim	orl	%esi,%ebx
1281238405Sjkim	movl	%edx,%esi
1282238405Sjkim	shll	$19,%edx
1283238405Sjkim	movl	%ebx,128(%edi)
1284238405Sjkim	shrl	$13,%esi
1285238405Sjkim	orl	%esi,%ecx
1286238405Sjkim	shrl	$13,%ebp
1287238405Sjkim	movl	%eax,%esi
1288238405Sjkim	shrl	$13,%esi
1289238405Sjkim	movl	%ecx,132(%edi)
1290238405Sjkim	shll	$19,%eax
1291238405Sjkim	orl	%esi,%edx
1292238405Sjkim	orl	%ebp,%eax
1293238405Sjkim	movl	%edx,136(%edi)
1294238405Sjkim	movl	%eax,140(%edi)
1295238405Sjkim	movl	-96(%edi),%ebx
1296238405Sjkim	movl	-92(%edi),%ecx
1297238405Sjkim	movl	-88(%edi),%edx
1298238405Sjkim	movl	-84(%edi),%eax
1299238405Sjkim	movl	%ebx,%ebp
1300238405Sjkim	shll	$15,%ebx
1301238405Sjkim	movl	%ecx,%esi
1302238405Sjkim	shrl	$17,%esi
1303238405Sjkim	shll	$15,%ecx
1304238405Sjkim	orl	%esi,%ebx
1305238405Sjkim	movl	%edx,%esi
1306238405Sjkim	shll	$15,%edx
1307238405Sjkim	movl	%ebx,-96(%edi)
1308238405Sjkim	shrl	$17,%esi
1309238405Sjkim	orl	%esi,%ecx
1310238405Sjkim	shrl	$17,%ebp
1311238405Sjkim	movl	%eax,%esi
1312238405Sjkim	shrl	$17,%esi
1313238405Sjkim	movl	%ecx,-92(%edi)
1314238405Sjkim	shll	$15,%eax
1315238405Sjkim	orl	%esi,%edx
1316238405Sjkim	orl	%ebp,%eax
1317238405Sjkim	movl	%edx,-88(%edi)
1318238405Sjkim	movl	%eax,-84(%edi)
1319238405Sjkim	movl	%ebx,%ebp
1320238405Sjkim	shll	$15,%ebx
1321238405Sjkim	movl	%ecx,%esi
1322238405Sjkim	shrl	$17,%esi
1323238405Sjkim	shll	$15,%ecx
1324238405Sjkim	orl	%esi,%ebx
1325238405Sjkim	movl	%edx,%esi
1326238405Sjkim	shll	$15,%edx
1327238405Sjkim	movl	%ebx,-64(%edi)
1328238405Sjkim	shrl	$17,%esi
1329238405Sjkim	orl	%esi,%ecx
1330238405Sjkim	shrl	$17,%ebp
1331238405Sjkim	movl	%eax,%esi
1332238405Sjkim	shrl	$17,%esi
1333238405Sjkim	movl	%ecx,-60(%edi)
1334238405Sjkim	shll	$15,%eax
1335238405Sjkim	orl	%esi,%edx
1336238405Sjkim	orl	%ebp,%eax
1337238405Sjkim	movl	%edx,-56(%edi)
1338238405Sjkim	movl	%eax,-52(%edi)
1339238405Sjkim	movl	%ebx,%ebp
1340238405Sjkim	shll	$30,%ebx
1341238405Sjkim	movl	%ecx,%esi
1342238405Sjkim	shrl	$2,%esi
1343238405Sjkim	shll	$30,%ecx
1344238405Sjkim	orl	%esi,%ebx
1345238405Sjkim	movl	%edx,%esi
1346238405Sjkim	shll	$30,%edx
1347238405Sjkim	movl	%ebx,16(%edi)
1348238405Sjkim	shrl	$2,%esi
1349238405Sjkim	orl	%esi,%ecx
1350238405Sjkim	shrl	$2,%ebp
1351238405Sjkim	movl	%eax,%esi
1352238405Sjkim	shrl	$2,%esi
1353238405Sjkim	movl	%ecx,20(%edi)
1354238405Sjkim	shll	$30,%eax
1355238405Sjkim	orl	%esi,%edx
1356238405Sjkim	orl	%ebp,%eax
1357238405Sjkim	movl	%edx,24(%edi)
1358238405Sjkim	movl	%eax,28(%edi)
1359238405Sjkim	movl	%ecx,%ebp
1360238405Sjkim	shll	$2,%ecx
1361238405Sjkim	movl	%edx,%esi
1362238405Sjkim	shrl	$30,%esi
1363238405Sjkim	shll	$2,%edx
1364238405Sjkim	orl	%esi,%ecx
1365238405Sjkim	movl	%eax,%esi
1366238405Sjkim	shll	$2,%eax
1367238405Sjkim	movl	%ecx,80(%edi)
1368238405Sjkim	shrl	$30,%esi
1369238405Sjkim	orl	%esi,%edx
1370238405Sjkim	shrl	$30,%ebp
1371238405Sjkim	movl	%ebx,%esi
1372238405Sjkim	shrl	$30,%esi
1373238405Sjkim	movl	%edx,84(%edi)
1374238405Sjkim	shll	$2,%ebx
1375238405Sjkim	orl	%esi,%eax
1376238405Sjkim	orl	%ebp,%ebx
1377238405Sjkim	movl	%eax,88(%edi)
1378238405Sjkim	movl	%ebx,92(%edi)
1379238405Sjkim	movl	-80(%edi),%ecx
1380238405Sjkim	movl	-76(%edi),%edx
1381238405Sjkim	movl	-72(%edi),%eax
1382238405Sjkim	movl	-68(%edi),%ebx
1383238405Sjkim	movl	%ecx,%ebp
1384238405Sjkim	shll	$15,%ecx
1385238405Sjkim	movl	%edx,%esi
1386238405Sjkim	shrl	$17,%esi
1387238405Sjkim	shll	$15,%edx
1388238405Sjkim	orl	%esi,%ecx
1389238405Sjkim	movl	%eax,%esi
1390238405Sjkim	shll	$15,%eax
1391238405Sjkim	movl	%ecx,-80(%edi)
1392238405Sjkim	shrl	$17,%esi
1393238405Sjkim	orl	%esi,%edx
1394238405Sjkim	shrl	$17,%ebp
1395238405Sjkim	movl	%ebx,%esi
1396238405Sjkim	shrl	$17,%esi
1397238405Sjkim	movl	%edx,-76(%edi)
1398238405Sjkim	shll	$15,%ebx
1399238405Sjkim	orl	%esi,%eax
1400238405Sjkim	orl	%ebp,%ebx
1401238405Sjkim	movl	%eax,-72(%edi)
1402238405Sjkim	movl	%ebx,-68(%edi)
1403238405Sjkim	movl	%ecx,%ebp
1404238405Sjkim	shll	$30,%ecx
1405238405Sjkim	movl	%edx,%esi
1406238405Sjkim	shrl	$2,%esi
1407238405Sjkim	shll	$30,%edx
1408238405Sjkim	orl	%esi,%ecx
1409238405Sjkim	movl	%eax,%esi
1410238405Sjkim	shll	$30,%eax
1411238405Sjkim	movl	%ecx,-16(%edi)
1412238405Sjkim	shrl	$2,%esi
1413238405Sjkim	orl	%esi,%edx
1414238405Sjkim	shrl	$2,%ebp
1415238405Sjkim	movl	%ebx,%esi
1416238405Sjkim	shrl	$2,%esi
1417238405Sjkim	movl	%edx,-12(%edi)
1418238405Sjkim	shll	$30,%ebx
1419238405Sjkim	orl	%esi,%eax
1420238405Sjkim	orl	%ebp,%ebx
1421238405Sjkim	movl	%eax,-8(%edi)
1422238405Sjkim	movl	%ebx,-4(%edi)
1423238405Sjkim	movl	%edx,64(%edi)
1424238405Sjkim	movl	%eax,68(%edi)
1425238405Sjkim	movl	%ebx,72(%edi)
1426238405Sjkim	movl	%ecx,76(%edi)
1427238405Sjkim	movl	%edx,%ebp
1428238405Sjkim	shll	$17,%edx
1429238405Sjkim	movl	%eax,%esi
1430238405Sjkim	shrl	$15,%esi
1431238405Sjkim	shll	$17,%eax
1432238405Sjkim	orl	%esi,%edx
1433238405Sjkim	movl	%ebx,%esi
1434238405Sjkim	shll	$17,%ebx
1435238405Sjkim	movl	%edx,96(%edi)
1436238405Sjkim	shrl	$15,%esi
1437238405Sjkim	orl	%esi,%eax
1438238405Sjkim	shrl	$15,%ebp
1439238405Sjkim	movl	%ecx,%esi
1440238405Sjkim	shrl	$15,%esi
1441238405Sjkim	movl	%eax,100(%edi)
1442238405Sjkim	shll	$17,%ecx
1443238405Sjkim	orl	%esi,%ebx
1444238405Sjkim	orl	%ebp,%ecx
1445238405Sjkim	movl	%ebx,104(%edi)
1446238405Sjkim	movl	%ecx,108(%edi)
1447238405Sjkim	movl	-128(%edi),%edx
1448238405Sjkim	movl	-124(%edi),%eax
1449238405Sjkim	movl	-120(%edi),%ebx
1450238405Sjkim	movl	-116(%edi),%ecx
1451238405Sjkim	movl	%eax,%ebp
1452238405Sjkim	shll	$13,%eax
1453238405Sjkim	movl	%ebx,%esi
1454238405Sjkim	shrl	$19,%esi
1455238405Sjkim	shll	$13,%ebx
1456238405Sjkim	orl	%esi,%eax
1457238405Sjkim	movl	%ecx,%esi
1458238405Sjkim	shll	$13,%ecx
1459238405Sjkim	movl	%eax,-32(%edi)
1460238405Sjkim	shrl	$19,%esi
1461238405Sjkim	orl	%esi,%ebx
1462238405Sjkim	shrl	$19,%ebp
1463238405Sjkim	movl	%edx,%esi
1464238405Sjkim	shrl	$19,%esi
1465238405Sjkim	movl	%ebx,-28(%edi)
1466238405Sjkim	shll	$13,%edx
1467238405Sjkim	orl	%esi,%ecx
1468238405Sjkim	orl	%ebp,%edx
1469238405Sjkim	movl	%ecx,-24(%edi)
1470238405Sjkim	movl	%edx,-20(%edi)
1471238405Sjkim	movl	%eax,%ebp
1472238405Sjkim	shll	$15,%eax
1473238405Sjkim	movl	%ebx,%esi
1474238405Sjkim	shrl	$17,%esi
1475238405Sjkim	shll	$15,%ebx
1476238405Sjkim	orl	%esi,%eax
1477238405Sjkim	movl	%ecx,%esi
1478238405Sjkim	shll	$15,%ecx
1479238405Sjkim	movl	%eax,(%edi)
1480238405Sjkim	shrl	$17,%esi
1481238405Sjkim	orl	%esi,%ebx
1482238405Sjkim	shrl	$17,%ebp
1483238405Sjkim	movl	%edx,%esi
1484238405Sjkim	shrl	$17,%esi
1485238405Sjkim	movl	%ebx,4(%edi)
1486238405Sjkim	shll	$15,%edx
1487238405Sjkim	orl	%esi,%ecx
1488238405Sjkim	orl	%ebp,%edx
1489238405Sjkim	movl	%ecx,8(%edi)
1490238405Sjkim	movl	%edx,12(%edi)
1491238405Sjkim	movl	%eax,%ebp
1492238405Sjkim	shll	$17,%eax
1493238405Sjkim	movl	%ebx,%esi
1494238405Sjkim	shrl	$15,%esi
1495238405Sjkim	shll	$17,%ebx
1496238405Sjkim	orl	%esi,%eax
1497238405Sjkim	movl	%ecx,%esi
1498238405Sjkim	shll	$17,%ecx
1499238405Sjkim	movl	%eax,48(%edi)
1500238405Sjkim	shrl	$15,%esi
1501238405Sjkim	orl	%esi,%ebx
1502238405Sjkim	shrl	$15,%ebp
1503238405Sjkim	movl	%edx,%esi
1504238405Sjkim	shrl	$15,%esi
1505238405Sjkim	movl	%ebx,52(%edi)
1506238405Sjkim	shll	$17,%edx
1507238405Sjkim	orl	%esi,%ecx
1508238405Sjkim	orl	%ebp,%edx
1509238405Sjkim	movl	%ecx,56(%edi)
1510238405Sjkim	movl	%edx,60(%edi)
1511238405Sjkim	movl	%ebx,%ebp
1512238405Sjkim	shll	$2,%ebx
1513238405Sjkim	movl	%ecx,%esi
1514238405Sjkim	shrl	$30,%esi
1515238405Sjkim	shll	$2,%ecx
1516238405Sjkim	orl	%esi,%ebx
1517238405Sjkim	movl	%edx,%esi
1518238405Sjkim	shll	$2,%edx
1519238405Sjkim	movl	%ebx,112(%edi)
1520238405Sjkim	shrl	$30,%esi
1521238405Sjkim	orl	%esi,%ecx
1522238405Sjkim	shrl	$30,%ebp
1523238405Sjkim	movl	%eax,%esi
1524238405Sjkim	shrl	$30,%esi
1525238405Sjkim	movl	%ecx,116(%edi)
1526238405Sjkim	shll	$2,%eax
1527238405Sjkim	orl	%esi,%edx
1528238405Sjkim	orl	%ebp,%eax
1529238405Sjkim	movl	%edx,120(%edi)
1530238405Sjkim	movl	%eax,124(%edi)
1531238405Sjkim	movl	$4,%eax
1532238405Sjkim.L013done:
1533238405Sjkim	leal	144(%edi),%edx
1534238405Sjkim	addl	$16,%esp
1535238405Sjkim	popl	%edi
1536238405Sjkim	popl	%esi
1537238405Sjkim	popl	%ebx
1538238405Sjkim	popl	%ebp
1539238405Sjkim	ret
1540238405Sjkim.size	Camellia_Ekeygen,.-.L_Camellia_Ekeygen_begin
1541238405Sjkim.globl	private_Camellia_set_key
1542238405Sjkim.type	private_Camellia_set_key,@function
1543238405Sjkim.align	16
1544238405Sjkimprivate_Camellia_set_key:
1545238405Sjkim.L_private_Camellia_set_key_begin:
1546238405Sjkim	pushl	%ebx
1547238405Sjkim	movl	8(%esp),%ecx
1548238405Sjkim	movl	12(%esp),%ebx
1549238405Sjkim	movl	16(%esp),%edx
1550238405Sjkim	movl	$-1,%eax
1551238405Sjkim	testl	%ecx,%ecx
1552238405Sjkim	jz	.L014done
1553238405Sjkim	testl	%edx,%edx
1554238405Sjkim	jz	.L014done
1555238405Sjkim	movl	$-2,%eax
1556238405Sjkim	cmpl	$256,%ebx
1557238405Sjkim	je	.L015arg_ok
1558238405Sjkim	cmpl	$192,%ebx
1559238405Sjkim	je	.L015arg_ok
1560238405Sjkim	cmpl	$128,%ebx
1561238405Sjkim	jne	.L014done
1562238405Sjkim.align	4
1563238405Sjkim.L015arg_ok:
1564238405Sjkim	pushl	%edx
1565238405Sjkim	pushl	%ecx
1566238405Sjkim	pushl	%ebx
1567238405Sjkim	call	.L_Camellia_Ekeygen_begin
1568238405Sjkim	addl	$12,%esp
1569238405Sjkim	movl	%eax,(%edx)
1570238405Sjkim	xorl	%eax,%eax
1571238405Sjkim.align	4
1572238405Sjkim.L014done:
1573238405Sjkim	popl	%ebx
1574238405Sjkim	ret
1575238405Sjkim.size	private_Camellia_set_key,.-.L_private_Camellia_set_key_begin
1576238405Sjkim.align	64
1577238405Sjkim.LCamellia_SIGMA:
1578238405Sjkim.long	2694735487,1003262091,3061508184,1286239154,3337565999,3914302142,1426019237,4057165596,283453434,3731369245,2958461122,3018244605,0,0,0,0
1579238405Sjkim.align	64
1580238405Sjkim.LCamellia_SBOX:
1581238405Sjkim.long	1886416896,1886388336
1582238405Sjkim.long	2189591040,741081132
1583238405Sjkim.long	741092352,3014852787
1584238405Sjkim.long	3974949888,3233808576
1585238405Sjkim.long	3014898432,3840147684
1586238405Sjkim.long	656877312,1465319511
1587238405Sjkim.long	3233857536,3941204202
1588238405Sjkim.long	3857048832,2930639022
1589238405Sjkim.long	3840205824,589496355
1590238405Sjkim.long	2240120064,1802174571
1591238405Sjkim.long	1465341696,1162149957
1592238405Sjkim.long	892679424,2779054245
1593238405Sjkim.long	3941263872,3991732461
1594238405Sjkim.long	202116096,1330577487
1595238405Sjkim.long	2930683392,488439837
1596238405Sjkim.long	1094795520,2459041938
1597238405Sjkim.long	589505280,2256928902
1598238405Sjkim.long	4025478912,2947481775
1599238405Sjkim.long	1802201856,2088501372
1600238405Sjkim.long	2475922176,522125343
1601238405Sjkim.long	1162167552,1044250686
1602238405Sjkim.long	421075200,3705405660
1603238405Sjkim.long	2779096320,1583218782
1604238405Sjkim.long	555819264,185270283
1605238405Sjkim.long	3991792896,2795896998
1606238405Sjkim.long	235802112,960036921
1607238405Sjkim.long	1330597632,3587506389
1608238405Sjkim.long	1313754624,1566376029
1609238405Sjkim.long	488447232,3654877401
1610238405Sjkim.long	1701143808,1515847770
1611238405Sjkim.long	2459079168,1364262993
1612238405Sjkim.long	3183328512,1819017324
1613238405Sjkim.long	2256963072,2341142667
1614238405Sjkim.long	3099113472,2593783962
1615238405Sjkim.long	2947526400,4227531003
1616238405Sjkim.long	2408550144,2964324528
1617238405Sjkim.long	2088532992,1953759348
1618238405Sjkim.long	3958106880,724238379
1619238405Sjkim.long	522133248,4042260720
1620238405Sjkim.long	3469659648,2223243396
1621238405Sjkim.long	1044266496,3755933919
1622238405Sjkim.long	808464384,3419078859
1623238405Sjkim.long	3705461760,875823156
1624238405Sjkim.long	1600085760,1987444854
1625238405Sjkim.long	1583242752,1835860077
1626238405Sjkim.long	3318072576,2846425257
1627238405Sjkim.long	185273088,3520135377
1628238405Sjkim.long	437918208,67371012
1629238405Sjkim.long	2795939328,336855060
1630238405Sjkim.long	3789676800,976879674
1631238405Sjkim.long	960051456,3739091166
1632238405Sjkim.long	3402287616,286326801
1633238405Sjkim.long	3587560704,842137650
1634238405Sjkim.long	1195853568,2627469468
1635238405Sjkim.long	1566399744,1397948499
1636238405Sjkim.long	1027423488,4075946226
1637238405Sjkim.long	3654932736,4278059262
1638238405Sjkim.long	16843008,3486449871
1639238405Sjkim.long	1515870720,3284336835
1640238405Sjkim.long	3604403712,2054815866
1641238405Sjkim.long	1364283648,606339108
1642238405Sjkim.long	1448498688,3907518696
1643238405Sjkim.long	1819044864,1616904288
1644238405Sjkim.long	1296911616,1768489065
1645238405Sjkim.long	2341178112,2863268010
1646238405Sjkim.long	218959104,2694840480
1647238405Sjkim.long	2593823232,2711683233
1648238405Sjkim.long	1717986816,1650589794
1649238405Sjkim.long	4227595008,1414791252
1650238405Sjkim.long	3435973632,505282590
1651238405Sjkim.long	2964369408,3772776672
1652238405Sjkim.long	757935360,1684275300
1653238405Sjkim.long	1953788928,269484048
1654238405Sjkim.long	303174144,0
1655238405Sjkim.long	724249344,2745368739
1656238405Sjkim.long	538976256,1970602101
1657238405Sjkim.long	4042321920,2324299914
1658238405Sjkim.long	2981212416,3873833190
1659238405Sjkim.long	2223277056,151584777
1660238405Sjkim.long	2576980224,3722248413
1661238405Sjkim.long	3755990784,2273771655
1662238405Sjkim.long	1280068608,2206400643
1663238405Sjkim.long	3419130624,3452764365
1664238405Sjkim.long	3267543552,2425356432
1665238405Sjkim.long	875836416,1936916595
1666238405Sjkim.long	2122219008,4143317238
1667238405Sjkim.long	1987474944,2644312221
1668238405Sjkim.long	84215040,3216965823
1669238405Sjkim.long	1835887872,1381105746
1670238405Sjkim.long	3082270464,3638034648
1671238405Sjkim.long	2846468352,3368550600
1672238405Sjkim.long	825307392,3334865094
1673238405Sjkim.long	3520188672,2172715137
1674238405Sjkim.long	387389184,1869545583
1675238405Sjkim.long	67372032,320012307
1676238405Sjkim.long	3621246720,1667432547
1677238405Sjkim.long	336860160,3924361449
1678238405Sjkim.long	1482184704,2812739751
1679238405Sjkim.long	976894464,2677997727
1680238405Sjkim.long	1633771776,3166437564
1681238405Sjkim.long	3739147776,690552873
1682238405Sjkim.long	454761216,4193845497
1683238405Sjkim.long	286331136,791609391
1684238405Sjkim.long	471604224,3031695540
1685238405Sjkim.long	842150400,2021130360
1686238405Sjkim.long	252645120,101056518
1687238405Sjkim.long	2627509248,3890675943
1688238405Sjkim.long	370546176,1903231089
1689238405Sjkim.long	1397969664,3570663636
1690238405Sjkim.long	404232192,2880110763
1691238405Sjkim.long	4076007936,2290614408
1692238405Sjkim.long	572662272,2374828173
1693238405Sjkim.long	4278124032,1920073842
1694238405Sjkim.long	1145324544,3115909305
1695238405Sjkim.long	3486502656,4177002744
1696238405Sjkim.long	2998055424,2896953516
1697238405Sjkim.long	3284386560,909508662
1698238405Sjkim.long	3048584448,707395626
1699238405Sjkim.long	2054846976,1010565180
1700238405Sjkim.long	2442236160,4059103473
1701238405Sjkim.long	606348288,1077936192
1702238405Sjkim.long	134744064,3553820883
1703238405Sjkim.long	3907577856,3149594811
1704238405Sjkim.long	2829625344,1128464451
1705238405Sjkim.long	1616928768,353697813
1706238405Sjkim.long	4244438016,2913796269
1707238405Sjkim.long	1768515840,2004287607
1708238405Sjkim.long	1347440640,2155872384
1709238405Sjkim.long	2863311360,2189557890
1710238405Sjkim.long	3503345664,3974889708
1711238405Sjkim.long	2694881280,656867367
1712238405Sjkim.long	2105376000,3856990437
1713238405Sjkim.long	2711724288,2240086149
1714238405Sjkim.long	2307492096,892665909
1715238405Sjkim.long	1650614784,202113036
1716238405Sjkim.long	2543294208,1094778945
1717238405Sjkim.long	1414812672,4025417967
1718238405Sjkim.long	1532713728,2475884691
1719238405Sjkim.long	505290240,421068825
1720238405Sjkim.long	2509608192,555810849
1721238405Sjkim.long	3772833792,235798542
1722238405Sjkim.long	4294967040,1313734734
1723238405Sjkim.long	1684300800,1701118053
1724238405Sjkim.long	3537031680,3183280317
1725238405Sjkim.long	269488128,3099066552
1726238405Sjkim.long	3301229568,2408513679
1727238405Sjkim.long	0,3958046955
1728238405Sjkim.long	1212696576,3469607118
1729238405Sjkim.long	2745410304,808452144
1730238405Sjkim.long	4160222976,1600061535
1731238405Sjkim.long	1970631936,3318022341
1732238405Sjkim.long	3688618752,437911578
1733238405Sjkim.long	2324335104,3789619425
1734238405Sjkim.long	50529024,3402236106
1735238405Sjkim.long	3873891840,1195835463
1736238405Sjkim.long	3671775744,1027407933
1737238405Sjkim.long	151587072,16842753
1738238405Sjkim.long	1061109504,3604349142
1739238405Sjkim.long	3722304768,1448476758
1740238405Sjkim.long	2492765184,1296891981
1741238405Sjkim.long	2273806080,218955789
1742238405Sjkim.long	1549556736,1717960806
1743238405Sjkim.long	2206434048,3435921612
1744238405Sjkim.long	33686016,757923885
1745238405Sjkim.long	3452816640,303169554
1746238405Sjkim.long	1246382592,538968096
1747238405Sjkim.long	2425393152,2981167281
1748238405Sjkim.long	858993408,2576941209
1749238405Sjkim.long	1936945920,1280049228
1750238405Sjkim.long	1734829824,3267494082
1751238405Sjkim.long	4143379968,2122186878
1752238405Sjkim.long	4092850944,84213765
1753238405Sjkim.long	2644352256,3082223799
1754238405Sjkim.long	2139062016,825294897
1755238405Sjkim.long	3217014528,387383319
1756238405Sjkim.long	3806519808,3621191895
1757238405Sjkim.long	1381126656,1482162264
1758238405Sjkim.long	2610666240,1633747041
1759238405Sjkim.long	3638089728,454754331
1760238405Sjkim.long	640034304,471597084
1761238405Sjkim.long	3368601600,252641295
1762238405Sjkim.long	926365440,370540566
1763238405Sjkim.long	3334915584,404226072
1764238405Sjkim.long	993737472,572653602
1765238405Sjkim.long	2172748032,1145307204
1766238405Sjkim.long	2526451200,2998010034
1767238405Sjkim.long	1869573888,3048538293
1768238405Sjkim.long	1263225600,2442199185
1769238405Sjkim.long	320017152,134742024
1770238405Sjkim.long	3200171520,2829582504
1771238405Sjkim.long	1667457792,4244373756
1772238405Sjkim.long	774778368,1347420240
1773238405Sjkim.long	3924420864,3503292624
1774238405Sjkim.long	2038003968,2105344125
1775238405Sjkim.long	2812782336,2307457161
1776238405Sjkim.long	2358021120,2543255703
1777238405Sjkim.long	2678038272,1532690523
1778238405Sjkim.long	1852730880,2509570197
1779238405Sjkim.long	3166485504,4294902015
1780238405Sjkim.long	2391707136,3536978130
1781238405Sjkim.long	690563328,3301179588
1782238405Sjkim.long	4126536960,1212678216
1783238405Sjkim.long	4193908992,4160159991
1784238405Sjkim.long	3065427456,3688562907
1785238405Sjkim.long	791621376,50528259
1786238405Sjkim.long	4261281024,3671720154
1787238405Sjkim.long	3031741440,1061093439
1788238405Sjkim.long	1499027712,2492727444
1789238405Sjkim.long	2021160960,1549533276
1790238405Sjkim.long	2560137216,33685506
1791238405Sjkim.long	101058048,1246363722
1792238405Sjkim.long	1785358848,858980403
1793238405Sjkim.long	3890734848,1734803559
1794238405Sjkim.long	1179010560,4092788979
1795238405Sjkim.long	1903259904,2139029631
1796238405Sjkim.long	3132799488,3806462178
1797238405Sjkim.long	3570717696,2610626715
1798238405Sjkim.long	623191296,640024614
1799238405Sjkim.long	2880154368,926351415
1800238405Sjkim.long	1111638528,993722427
1801238405Sjkim.long	2290649088,2526412950
1802238405Sjkim.long	2728567296,1263206475
1803238405Sjkim.long	2374864128,3200123070
1804238405Sjkim.long	4210752000,774766638
1805238405Sjkim.long	1920102912,2037973113
1806238405Sjkim.long	117901056,2357985420
1807238405Sjkim.long	3115956480,1852702830
1808238405Sjkim.long	1431655680,2391670926
1809238405Sjkim.long	4177065984,4126474485
1810238405Sjkim.long	4008635904,3065381046
1811238405Sjkim.long	2896997376,4261216509
1812238405Sjkim.long	168430080,1499005017
1813238405Sjkim.long	909522432,2560098456
1814238405Sjkim.long	1229539584,1785331818
1815238405Sjkim.long	707406336,1178992710
1816238405Sjkim.long	1751672832,3132752058
1817238405Sjkim.long	1010580480,623181861
1818238405Sjkim.long	943208448,1111621698
1819238405Sjkim.long	4059164928,2728525986
1820238405Sjkim.long	2762253312,4210688250
1821238405Sjkim.long	1077952512,117899271
1822238405Sjkim.long	673720320,1431634005
1823238405Sjkim.long	3553874688,4008575214
1824238405Sjkim.long	2071689984,168427530
1825238405Sjkim.long	3149642496,1229520969
1826238405Sjkim.long	3385444608,1751646312
1827238405Sjkim.long	1128481536,943194168
1828238405Sjkim.long	3250700544,2762211492
1829238405Sjkim.long	353703168,673710120
1830238405Sjkim.long	3823362816,2071658619
1831238405Sjkim.long	2913840384,3385393353
1832238405Sjkim.long	4109693952,3250651329
1833238405Sjkim.long	2004317952,3823304931
1834238405Sjkim.long	3351758592,4109631732
1835238405Sjkim.long	2155905024,3351707847
1836238405Sjkim.long	2661195264,2661154974
1837238405Sjkim.long	14737632,939538488
1838238405Sjkim.long	328965,1090535745
1839238405Sjkim.long	5789784,369104406
1840238405Sjkim.long	14277081,1979741814
1841238405Sjkim.long	6776679,3640711641
1842238405Sjkim.long	5131854,2466288531
1843238405Sjkim.long	8487297,1610637408
1844238405Sjkim.long	13355979,4060148466
1845238405Sjkim.long	13224393,1912631922
1846238405Sjkim.long	723723,3254829762
1847238405Sjkim.long	11447982,2868947883
1848238405Sjkim.long	6974058,2583730842
1849238405Sjkim.long	14013909,1962964341
1850238405Sjkim.long	1579032,100664838
1851238405Sjkim.long	6118749,1459640151
1852238405Sjkim.long	8553090,2684395680
1853238405Sjkim.long	4605510,2432733585
1854238405Sjkim.long	14671839,4144035831
1855238405Sjkim.long	14079702,3036722613
1856238405Sjkim.long	2565927,3372272073
1857238405Sjkim.long	9079434,2717950626
1858238405Sjkim.long	3289650,2348846220
1859238405Sjkim.long	4934475,3523269330
1860238405Sjkim.long	4342338,2415956112
1861238405Sjkim.long	14408667,4127258358
1862238405Sjkim.long	1842204,117442311
1863238405Sjkim.long	10395294,2801837991
1864238405Sjkim.long	10263708,654321447
1865238405Sjkim.long	3815994,2382401166
1866238405Sjkim.long	13290186,2986390194
1867238405Sjkim.long	2434341,1224755529
1868238405Sjkim.long	8092539,3724599006
1869238405Sjkim.long	855309,1124090691
1870238405Sjkim.long	7434609,1543527516
1871238405Sjkim.long	6250335,3607156695
1872238405Sjkim.long	2039583,3338717127
1873238405Sjkim.long	16316664,1040203326
1874238405Sjkim.long	14145495,4110480885
1875238405Sjkim.long	4079166,2399178639
1876238405Sjkim.long	10329501,1728079719
1877238405Sjkim.long	8158332,520101663
1878238405Sjkim.long	6316128,402659352
1879238405Sjkim.long	12171705,1845522030
1880238405Sjkim.long	12500670,2936057775
1881238405Sjkim.long	12369084,788541231
1882238405Sjkim.long	9145227,3791708898
1883238405Sjkim.long	1447446,2231403909
1884238405Sjkim.long	3421236,218107149
1885238405Sjkim.long	5066061,1392530259
1886238405Sjkim.long	12829635,4026593520
1887238405Sjkim.long	7500402,2617285788
1888238405Sjkim.long	9803157,1694524773
1889238405Sjkim.long	11250603,3925928682
1890238405Sjkim.long	9342606,2734728099
1891238405Sjkim.long	12237498,2919280302
1892238405Sjkim.long	8026746,2650840734
1893238405Sjkim.long	11776947,3959483628
1894238405Sjkim.long	131586,2147516544
1895238405Sjkim.long	11842740,754986285
1896238405Sjkim.long	11382189,1795189611
1897238405Sjkim.long	10658466,2818615464
1898238405Sjkim.long	11316396,721431339
1899238405Sjkim.long	14211288,905983542
1900238405Sjkim.long	10132122,2785060518
1901238405Sjkim.long	1513239,3305162181
1902238405Sjkim.long	1710618,2248181382
1903238405Sjkim.long	3487029,1291865421
1904238405Sjkim.long	13421772,855651123
1905238405Sjkim.long	16250871,4244700669
1906238405Sjkim.long	10066329,1711302246
1907238405Sjkim.long	6381921,1476417624
1908238405Sjkim.long	5921370,2516620950
1909238405Sjkim.long	15263976,973093434
1910238405Sjkim.long	2368548,150997257
1911238405Sjkim.long	5658198,2499843477
1912238405Sjkim.long	4210752,268439568
1913238405Sjkim.long	14803425,2013296760
1914238405Sjkim.long	6513507,3623934168
1915238405Sjkim.long	592137,1107313218
1916238405Sjkim.long	3355443,3422604492
1917238405Sjkim.long	12566463,4009816047
1918238405Sjkim.long	10000536,637543974
1919238405Sjkim.long	9934743,3842041317
1920238405Sjkim.long	8750469,1627414881
1921238405Sjkim.long	6842472,436214298
1922238405Sjkim.long	16579836,1056980799
1923238405Sjkim.long	15527148,989870907
1924238405Sjkim.long	657930,2181071490
1925238405Sjkim.long	14342874,3053500086
1926238405Sjkim.long	7303023,3674266587
1927238405Sjkim.long	5460819,3556824276
1928238405Sjkim.long	6447714,2550175896
1929238405Sjkim.long	10724259,3892373736
1930238405Sjkim.long	3026478,2332068747
1931238405Sjkim.long	526344,33554946
1932238405Sjkim.long	11513775,3942706155
1933238405Sjkim.long	2631720,167774730
1934238405Sjkim.long	11579568,738208812
1935238405Sjkim.long	7631988,486546717
1936238405Sjkim.long	12763842,2952835248
1937238405Sjkim.long	12434877,1862299503
1938238405Sjkim.long	3552822,2365623693
1939238405Sjkim.long	2236962,2281736328
1940238405Sjkim.long	3684408,234884622
1941238405Sjkim.long	6579300,419436825
1942238405Sjkim.long	1973790,2264958855
1943238405Sjkim.long	3750201,1308642894
1944238405Sjkim.long	2894892,184552203
1945238405Sjkim.long	10921638,2835392937
1946238405Sjkim.long	3158064,201329676
1947238405Sjkim.long	15066597,2030074233
1948238405Sjkim.long	4473924,285217041
1949238405Sjkim.long	16645629,2130739071
1950238405Sjkim.long	8947848,570434082
1951238405Sjkim.long	10461087,3875596263
1952238405Sjkim.long	6645093,1493195097
1953238405Sjkim.long	8882055,3774931425
1954238405Sjkim.long	7039851,3657489114
1955238405Sjkim.long	16053492,1023425853
1956238405Sjkim.long	2302755,3355494600
1957238405Sjkim.long	4737096,301994514
1958238405Sjkim.long	1052688,67109892
1959238405Sjkim.long	13750737,1946186868
1960238405Sjkim.long	5329233,1409307732
1961238405Sjkim.long	12632256,805318704
1962238405Sjkim.long	16382457,2113961598
1963238405Sjkim.long	13816530,3019945140
1964238405Sjkim.long	10526880,671098920
1965238405Sjkim.long	5592405,1426085205
1966238405Sjkim.long	10592673,1744857192
1967238405Sjkim.long	4276545,1342197840
1968238405Sjkim.long	16448250,3187719870
1969238405Sjkim.long	4408131,3489714384
1970238405Sjkim.long	1250067,3288384708
1971238405Sjkim.long	12895428,822096177
1972238405Sjkim.long	3092271,3405827019
1973238405Sjkim.long	11053224,704653866
1974238405Sjkim.long	11974326,2902502829
1975238405Sjkim.long	3947580,251662095
1976238405Sjkim.long	2829099,3389049546
1977238405Sjkim.long	12698049,1879076976
1978238405Sjkim.long	16777215,4278255615
1979238405Sjkim.long	13158600,838873650
1980238405Sjkim.long	10855845,1761634665
1981238405Sjkim.long	2105376,134219784
1982238405Sjkim.long	9013641,1644192354
1983238405Sjkim.long	0,0
1984238405Sjkim.long	9474192,603989028
1985238405Sjkim.long	4671303,3506491857
1986238405Sjkim.long	15724527,4211145723
1987238405Sjkim.long	15395562,3120609978
1988238405Sjkim.long	12040119,3976261101
1989238405Sjkim.long	1381653,1157645637
1990238405Sjkim.long	394758,2164294017
1991238405Sjkim.long	13487565,1929409395
1992238405Sjkim.long	11908533,1828744557
1993238405Sjkim.long	1184274,2214626436
1994238405Sjkim.long	8289918,2667618207
1995238405Sjkim.long	12303291,3993038574
1996238405Sjkim.long	2697513,1241533002
1997238405Sjkim.long	986895,3271607235
1998238405Sjkim.long	12105912,771763758
1999238405Sjkim.long	460551,3238052289
2000238405Sjkim.long	263172,16777473
2001238405Sjkim.long	10197915,3858818790
2002238405Sjkim.long	9737364,620766501
2003238405Sjkim.long	2171169,1207978056
2004238405Sjkim.long	6710886,2566953369
2005238405Sjkim.long	15132390,3103832505
2006238405Sjkim.long	13553358,3003167667
2007238405Sjkim.long	15592941,2063629179
2008238405Sjkim.long	15198183,4177590777
2009238405Sjkim.long	3881787,3456159438
2010238405Sjkim.long	16711422,3204497343
2011238405Sjkim.long	8355711,3741376479
2012238405Sjkim.long	12961221,1895854449
2013238405Sjkim.long	10790052,687876393
2014238405Sjkim.long	3618615,3439381965
2015238405Sjkim.long	11645361,1811967084
2016238405Sjkim.long	5000268,318771987
2017238405Sjkim.long	9539985,1677747300
2018238405Sjkim.long	7237230,2600508315
2019238405Sjkim.long	9276813,1660969827
2020238405Sjkim.long	7763574,2634063261
2021238405Sjkim.long	197379,3221274816
2022238405Sjkim.long	2960685,1258310475
2023238405Sjkim.long	14606046,3070277559
2024238405Sjkim.long	9868950,2768283045
2025238405Sjkim.long	2500134,2298513801
2026238405Sjkim.long	8224125,1593859935
2027238405Sjkim.long	13027014,2969612721
2028238405Sjkim.long	6052956,385881879
2029238405Sjkim.long	13882323,4093703412
2030238405Sjkim.long	15921906,3154164924
2031238405Sjkim.long	5197647,3540046803
2032238405Sjkim.long	1644825,1174423110
2033238405Sjkim.long	4144959,3472936911
2034238405Sjkim.long	14474460,922761015
2035238405Sjkim.long	7960953,1577082462
2036238405Sjkim.long	1907997,1191200583
2037238405Sjkim.long	5395026,2483066004
2038238405Sjkim.long	15461355,4194368250
2039238405Sjkim.long	15987699,4227923196
2040238405Sjkim.long	7171437,1526750043
2041238405Sjkim.long	6184542,2533398423
2042238405Sjkim.long	16514043,4261478142
2043238405Sjkim.long	6908265,1509972570
2044238405Sjkim.long	11711154,2885725356
2045238405Sjkim.long	15790320,1006648380
2046238405Sjkim.long	3223857,1275087948
2047238405Sjkim.long	789516,50332419
2048238405Sjkim.long	13948116,889206069
2049238405Sjkim.long	13619151,4076925939
2050238405Sjkim.long	9211020,587211555
2051238405Sjkim.long	14869218,3087055032
2052238405Sjkim.long	7697781,1560304989
2053238405Sjkim.long	11119017,1778412138
2054238405Sjkim.long	4868682,2449511058
2055238405Sjkim.long	5723991,3573601749
2056238405Sjkim.long	8684676,553656609
2057238405Sjkim.long	1118481,1140868164
2058238405Sjkim.long	4539717,1358975313
2059238405Sjkim.long	1776411,3321939654
2060238405Sjkim.long	16119285,2097184125
2061238405Sjkim.long	15000804,956315961
2062238405Sjkim.long	921102,2197848963
2063238405Sjkim.long	7566195,3691044060
2064238405Sjkim.long	11184810,2852170410
2065238405Sjkim.long	15856113,2080406652
2066238405Sjkim.long	14540253,1996519287
2067238405Sjkim.long	5855577,1442862678
2068238405Sjkim.long	1315860,83887365
2069238405Sjkim.long	7105644,452991771
2070238405Sjkim.long	9605778,2751505572
2071238405Sjkim.long	5526612,352326933
2072238405Sjkim.long	13684944,872428596
2073238405Sjkim.long	7895160,503324190
2074238405Sjkim.long	7368816,469769244
2075238405Sjkim.long	14935011,4160813304
2076238405Sjkim.long	4802889,1375752786
2077238405Sjkim.long	8421504,536879136
2078238405Sjkim.long	5263440,335549460
2079238405Sjkim.long	10987431,3909151209
2080238405Sjkim.long	16185078,3170942397
2081238405Sjkim.long	7829367,3707821533
2082238405Sjkim.long	9671571,3825263844
2083238405Sjkim.long	8816262,2701173153
2084238405Sjkim.long	8618883,3758153952
2085238405Sjkim.long	2763306,2315291274
2086238405Sjkim.long	13092807,4043370993
2087238405Sjkim.long	5987163,3590379222
2088238405Sjkim.long	15329769,2046851706
2089238405Sjkim.long	15658734,3137387451
2090238405Sjkim.long	9408399,3808486371
2091238405Sjkim.long	65793,1073758272
2092238405Sjkim.long	4013373,1325420367
2093238405Sjkim.globl	Camellia_cbc_encrypt
2094238405Sjkim.type	Camellia_cbc_encrypt,@function
2095238405Sjkim.align	16
2096238405SjkimCamellia_cbc_encrypt:
2097238405Sjkim.L_Camellia_cbc_encrypt_begin:
2098238405Sjkim	pushl	%ebp
2099238405Sjkim	pushl	%ebx
2100238405Sjkim	pushl	%esi
2101238405Sjkim	pushl	%edi
2102238405Sjkim	movl	28(%esp),%ecx
2103238405Sjkim	cmpl	$0,%ecx
2104238405Sjkim	je	.L016enc_out
2105238405Sjkim	pushfl
2106238405Sjkim	cld
2107238405Sjkim	movl	24(%esp),%eax
2108238405Sjkim	movl	28(%esp),%ebx
2109238405Sjkim	movl	36(%esp),%edx
2110238405Sjkim	movl	40(%esp),%ebp
2111238405Sjkim	leal	-64(%esp),%esi
2112238405Sjkim	andl	$-64,%esi
2113238405Sjkim	leal	-127(%edx),%edi
2114238405Sjkim	subl	%esi,%edi
2115238405Sjkim	negl	%edi
2116238405Sjkim	andl	$960,%edi
2117238405Sjkim	subl	%edi,%esi
2118238405Sjkim	movl	44(%esp),%edi
2119238405Sjkim	xchgl	%esi,%esp
2120238405Sjkim	addl	$4,%esp
2121238405Sjkim	movl	%esi,20(%esp)
2122238405Sjkim	movl	%eax,24(%esp)
2123238405Sjkim	movl	%ebx,28(%esp)
2124238405Sjkim	movl	%ecx,32(%esp)
2125238405Sjkim	movl	%edx,36(%esp)
2126238405Sjkim	movl	%ebp,40(%esp)
2127238405Sjkim	call	.L017pic_point
2128238405Sjkim.L017pic_point:
2129238405Sjkim	popl	%ebp
2130238405Sjkim	leal	.LCamellia_SBOX-.L017pic_point(%ebp),%ebp
2131238405Sjkim	movl	$32,%esi
2132238405Sjkim.align	4
2133238405Sjkim.L018prefetch_sbox:
2134238405Sjkim	movl	(%ebp),%eax
2135238405Sjkim	movl	32(%ebp),%ebx
2136238405Sjkim	movl	64(%ebp),%ecx
2137238405Sjkim	movl	96(%ebp),%edx
2138238405Sjkim	leal	128(%ebp),%ebp
2139238405Sjkim	decl	%esi
2140238405Sjkim	jnz	.L018prefetch_sbox
2141238405Sjkim	movl	36(%esp),%eax
2142238405Sjkim	subl	$4096,%ebp
2143238405Sjkim	movl	24(%esp),%esi
2144238405Sjkim	movl	272(%eax),%edx
2145238405Sjkim	cmpl	$0,%edi
2146238405Sjkim	je	.L019DECRYPT
2147238405Sjkim	movl	32(%esp),%ecx
2148238405Sjkim	movl	40(%esp),%edi
2149238405Sjkim	shll	$6,%edx
2150238405Sjkim	leal	(%eax,%edx,1),%edx
2151238405Sjkim	movl	%edx,16(%esp)
2152238405Sjkim	testl	$4294967280,%ecx
2153238405Sjkim	jz	.L020enc_tail
2154238405Sjkim	movl	(%edi),%eax
2155238405Sjkim	movl	4(%edi),%ebx
2156238405Sjkim.align	4
2157238405Sjkim.L021enc_loop:
2158238405Sjkim	movl	8(%edi),%ecx
2159238405Sjkim	movl	12(%edi),%edx
2160238405Sjkim	xorl	(%esi),%eax
2161238405Sjkim	xorl	4(%esi),%ebx
2162238405Sjkim	xorl	8(%esi),%ecx
2163238405Sjkim	bswap	%eax
2164238405Sjkim	xorl	12(%esi),%edx
2165238405Sjkim	bswap	%ebx
2166238405Sjkim	movl	36(%esp),%edi
2167238405Sjkim	bswap	%ecx
2168238405Sjkim	bswap	%edx
2169238405Sjkim	call	_x86_Camellia_encrypt
2170238405Sjkim	movl	24(%esp),%esi
2171238405Sjkim	movl	28(%esp),%edi
2172238405Sjkim	bswap	%eax
2173238405Sjkim	bswap	%ebx
2174238405Sjkim	bswap	%ecx
2175238405Sjkim	movl	%eax,(%edi)
2176238405Sjkim	bswap	%edx
2177238405Sjkim	movl	%ebx,4(%edi)
2178238405Sjkim	movl	%ecx,8(%edi)
2179238405Sjkim	movl	%edx,12(%edi)
2180238405Sjkim	movl	32(%esp),%ecx
2181238405Sjkim	leal	16(%esi),%esi
2182238405Sjkim	movl	%esi,24(%esp)
2183238405Sjkim	leal	16(%edi),%edx
2184238405Sjkim	movl	%edx,28(%esp)
2185238405Sjkim	subl	$16,%ecx
2186238405Sjkim	testl	$4294967280,%ecx
2187238405Sjkim	movl	%ecx,32(%esp)
2188238405Sjkim	jnz	.L021enc_loop
2189238405Sjkim	testl	$15,%ecx
2190238405Sjkim	jnz	.L020enc_tail
2191238405Sjkim	movl	40(%esp),%esi
2192238405Sjkim	movl	8(%edi),%ecx
2193238405Sjkim	movl	12(%edi),%edx
2194238405Sjkim	movl	%eax,(%esi)
2195238405Sjkim	movl	%ebx,4(%esi)
2196238405Sjkim	movl	%ecx,8(%esi)
2197238405Sjkim	movl	%edx,12(%esi)
2198238405Sjkim	movl	20(%esp),%esp
2199238405Sjkim	popfl
2200238405Sjkim.L016enc_out:
2201238405Sjkim	popl	%edi
2202238405Sjkim	popl	%esi
2203238405Sjkim	popl	%ebx
2204238405Sjkim	popl	%ebp
2205238405Sjkim	ret
2206238405Sjkim	pushfl
2207238405Sjkim.align	4
2208238405Sjkim.L020enc_tail:
2209238405Sjkim	movl	%edi,%eax
2210238405Sjkim	movl	28(%esp),%edi
2211238405Sjkim	pushl	%eax
2212238405Sjkim	movl	$16,%ebx
2213238405Sjkim	subl	%ecx,%ebx
2214238405Sjkim	cmpl	%esi,%edi
2215238405Sjkim	je	.L022enc_in_place
2216238405Sjkim.align	4
2217238405Sjkim.long	2767451785
2218238405Sjkim	jmp	.L023enc_skip_in_place
2219238405Sjkim.L022enc_in_place:
2220238405Sjkim	leal	(%edi,%ecx,1),%edi
2221238405Sjkim.L023enc_skip_in_place:
2222238405Sjkim	movl	%ebx,%ecx
2223238405Sjkim	xorl	%eax,%eax
2224238405Sjkim.align	4
2225238405Sjkim.long	2868115081
2226238405Sjkim	popl	%edi
2227238405Sjkim	movl	28(%esp),%esi
2228238405Sjkim	movl	(%edi),%eax
2229238405Sjkim	movl	4(%edi),%ebx
2230238405Sjkim	movl	$16,32(%esp)
2231238405Sjkim	jmp	.L021enc_loop
2232238405Sjkim.align	16
2233238405Sjkim.L019DECRYPT:
2234238405Sjkim	shll	$6,%edx
2235238405Sjkim	leal	(%eax,%edx,1),%edx
2236238405Sjkim	movl	%eax,16(%esp)
2237238405Sjkim	movl	%edx,36(%esp)
2238238405Sjkim	cmpl	28(%esp),%esi
2239238405Sjkim	je	.L024dec_in_place
2240238405Sjkim	movl	40(%esp),%edi
2241238405Sjkim	movl	%edi,44(%esp)
2242238405Sjkim.align	4
2243238405Sjkim.L025dec_loop:
2244238405Sjkim	movl	(%esi),%eax
2245238405Sjkim	movl	4(%esi),%ebx
2246238405Sjkim	movl	8(%esi),%ecx
2247238405Sjkim	bswap	%eax
2248238405Sjkim	movl	12(%esi),%edx
2249238405Sjkim	bswap	%ebx
2250238405Sjkim	movl	36(%esp),%edi
2251238405Sjkim	bswap	%ecx
2252238405Sjkim	bswap	%edx
2253238405Sjkim	call	_x86_Camellia_decrypt
2254238405Sjkim	movl	44(%esp),%edi
2255238405Sjkim	movl	32(%esp),%esi
2256238405Sjkim	bswap	%eax
2257238405Sjkim	bswap	%ebx
2258238405Sjkim	bswap	%ecx
2259238405Sjkim	xorl	(%edi),%eax
2260238405Sjkim	bswap	%edx
2261238405Sjkim	xorl	4(%edi),%ebx
2262238405Sjkim	xorl	8(%edi),%ecx
2263238405Sjkim	xorl	12(%edi),%edx
2264238405Sjkim	subl	$16,%esi
2265238405Sjkim	jc	.L026dec_partial
2266238405Sjkim	movl	%esi,32(%esp)
2267238405Sjkim	movl	24(%esp),%esi
2268238405Sjkim	movl	28(%esp),%edi
2269238405Sjkim	movl	%eax,(%edi)
2270238405Sjkim	movl	%ebx,4(%edi)
2271238405Sjkim	movl	%ecx,8(%edi)
2272238405Sjkim	movl	%edx,12(%edi)
2273238405Sjkim	movl	%esi,44(%esp)
2274238405Sjkim	leal	16(%esi),%esi
2275238405Sjkim	movl	%esi,24(%esp)
2276238405Sjkim	leal	16(%edi),%edi
2277238405Sjkim	movl	%edi,28(%esp)
2278238405Sjkim	jnz	.L025dec_loop
2279238405Sjkim	movl	44(%esp),%edi
2280238405Sjkim.L027dec_end:
2281238405Sjkim	movl	40(%esp),%esi
2282238405Sjkim	movl	(%edi),%eax
2283238405Sjkim	movl	4(%edi),%ebx
2284238405Sjkim	movl	8(%edi),%ecx
2285238405Sjkim	movl	12(%edi),%edx
2286238405Sjkim	movl	%eax,(%esi)
2287238405Sjkim	movl	%ebx,4(%esi)
2288238405Sjkim	movl	%ecx,8(%esi)
2289238405Sjkim	movl	%edx,12(%esi)
2290238405Sjkim	jmp	.L028dec_out
2291238405Sjkim.align	4
2292238405Sjkim.L026dec_partial:
2293238405Sjkim	leal	44(%esp),%edi
2294238405Sjkim	movl	%eax,(%edi)
2295238405Sjkim	movl	%ebx,4(%edi)
2296238405Sjkim	movl	%ecx,8(%edi)
2297238405Sjkim	movl	%edx,12(%edi)
2298238405Sjkim	leal	16(%esi),%ecx
2299238405Sjkim	movl	%edi,%esi
2300238405Sjkim	movl	28(%esp),%edi
2301238405Sjkim.long	2767451785
2302238405Sjkim	movl	24(%esp),%edi
2303238405Sjkim	jmp	.L027dec_end
2304238405Sjkim.align	4
2305238405Sjkim.L024dec_in_place:
2306238405Sjkim.L029dec_in_place_loop:
2307238405Sjkim	leal	44(%esp),%edi
2308238405Sjkim	movl	(%esi),%eax
2309238405Sjkim	movl	4(%esi),%ebx
2310238405Sjkim	movl	8(%esi),%ecx
2311238405Sjkim	movl	12(%esi),%edx
2312238405Sjkim	movl	%eax,(%edi)
2313238405Sjkim	movl	%ebx,4(%edi)
2314238405Sjkim	movl	%ecx,8(%edi)
2315238405Sjkim	bswap	%eax
2316238405Sjkim	movl	%edx,12(%edi)
2317238405Sjkim	bswap	%ebx
2318238405Sjkim	movl	36(%esp),%edi
2319238405Sjkim	bswap	%ecx
2320238405Sjkim	bswap	%edx
2321238405Sjkim	call	_x86_Camellia_decrypt
2322238405Sjkim	movl	40(%esp),%edi
2323238405Sjkim	movl	28(%esp),%esi
2324238405Sjkim	bswap	%eax
2325238405Sjkim	bswap	%ebx
2326238405Sjkim	bswap	%ecx
2327238405Sjkim	xorl	(%edi),%eax
2328238405Sjkim	bswap	%edx
2329238405Sjkim	xorl	4(%edi),%ebx
2330238405Sjkim	xorl	8(%edi),%ecx
2331238405Sjkim	xorl	12(%edi),%edx
2332238405Sjkim	movl	%eax,(%esi)
2333238405Sjkim	movl	%ebx,4(%esi)
2334238405Sjkim	movl	%ecx,8(%esi)
2335238405Sjkim	movl	%edx,12(%esi)
2336238405Sjkim	leal	16(%esi),%esi
2337238405Sjkim	movl	%esi,28(%esp)
2338238405Sjkim	leal	44(%esp),%esi
2339238405Sjkim	movl	(%esi),%eax
2340238405Sjkim	movl	4(%esi),%ebx
2341238405Sjkim	movl	8(%esi),%ecx
2342238405Sjkim	movl	12(%esi),%edx
2343238405Sjkim	movl	%eax,(%edi)
2344238405Sjkim	movl	%ebx,4(%edi)
2345238405Sjkim	movl	%ecx,8(%edi)
2346238405Sjkim	movl	%edx,12(%edi)
2347238405Sjkim	movl	24(%esp),%esi
2348238405Sjkim	leal	16(%esi),%esi
2349238405Sjkim	movl	%esi,24(%esp)
2350238405Sjkim	movl	32(%esp),%ecx
2351238405Sjkim	subl	$16,%ecx
2352238405Sjkim	jc	.L030dec_in_place_partial
2353238405Sjkim	movl	%ecx,32(%esp)
2354238405Sjkim	jnz	.L029dec_in_place_loop
2355238405Sjkim	jmp	.L028dec_out
2356238405Sjkim.align	4
2357238405Sjkim.L030dec_in_place_partial:
2358238405Sjkim	movl	28(%esp),%edi
2359238405Sjkim	leal	44(%esp),%esi
2360238405Sjkim	leal	(%edi,%ecx,1),%edi
2361238405Sjkim	leal	16(%esi,%ecx,1),%esi
2362238405Sjkim	negl	%ecx
2363238405Sjkim.long	2767451785
2364238405Sjkim.align	4
2365238405Sjkim.L028dec_out:
2366238405Sjkim	movl	20(%esp),%esp
2367238405Sjkim	popfl
2368238405Sjkim	popl	%edi
2369238405Sjkim	popl	%esi
2370238405Sjkim	popl	%ebx
2371238405Sjkim	popl	%ebp
2372238405Sjkim	ret
2373238405Sjkim.size	Camellia_cbc_encrypt,.-.L_Camellia_cbc_encrypt_begin
2374238405Sjkim.byte	67,97,109,101,108,108,105,97,32,102,111,114,32,120,56,54
2375238405Sjkim.byte	32,98,121,32,60,97,112,112,114,111,64,111,112,101,110,115
2376238405Sjkim.byte	115,108,46,111,114,103,62,0
2377