xref: /freebsd/sys/crypto/openssl/i386/cast-586.S (revision c0855eaa3ee9614804b6bd6a255aa9f71e095f43)
1bc3d5698SJohn Baldwin/* Do not modify. This file is auto-generated from cast-586.pl. */
2bc3d5698SJohn Baldwin#ifdef PIC
3bc3d5698SJohn Baldwin.text
4bc3d5698SJohn Baldwin.globl	CAST_encrypt
5bc3d5698SJohn Baldwin.type	CAST_encrypt,@function
6bc3d5698SJohn Baldwin.align	16
7bc3d5698SJohn BaldwinCAST_encrypt:
8bc3d5698SJohn Baldwin.L_CAST_encrypt_begin:
9*c0855eaaSJohn Baldwin	#ifdef __CET__
10*c0855eaaSJohn Baldwin
11*c0855eaaSJohn Baldwin.byte	243,15,30,251
12*c0855eaaSJohn Baldwin	#endif
13*c0855eaaSJohn Baldwin
14bc3d5698SJohn Baldwin
15bc3d5698SJohn Baldwin	pushl	%ebp
16bc3d5698SJohn Baldwin	pushl	%ebx
17bc3d5698SJohn Baldwin	movl	12(%esp),%ebx
18bc3d5698SJohn Baldwin	movl	16(%esp),%ebp
19bc3d5698SJohn Baldwin	pushl	%esi
20bc3d5698SJohn Baldwin	pushl	%edi
21bc3d5698SJohn Baldwin
22bc3d5698SJohn Baldwin	movl	(%ebx),%edi
23bc3d5698SJohn Baldwin	movl	4(%ebx),%esi
24bc3d5698SJohn Baldwin
25bc3d5698SJohn Baldwin	movl	128(%ebp),%eax
26bc3d5698SJohn Baldwin	pushl	%eax
27bc3d5698SJohn Baldwin	xorl	%eax,%eax
28bc3d5698SJohn Baldwin
29bc3d5698SJohn Baldwin	movl	(%ebp),%edx
30bc3d5698SJohn Baldwin	movl	4(%ebp),%ecx
31bc3d5698SJohn Baldwin	addl	%esi,%edx
32bc3d5698SJohn Baldwin	roll	%cl,%edx
33bc3d5698SJohn Baldwin	xorl	%ecx,%ecx
34bc3d5698SJohn Baldwin	movl	$255,%ebx
35bc3d5698SJohn Baldwin	movb	%dh,%cl
36bc3d5698SJohn Baldwin	andl	%edx,%ebx
37bc3d5698SJohn Baldwin	shrl	$16,%edx
38bc3d5698SJohn Baldwin	xorl	%eax,%eax
39bc3d5698SJohn Baldwin	movb	%dh,%al
40bc3d5698SJohn Baldwin	andl	$255,%edx
41bc3d5698SJohn Baldwin	movl	CAST_S_table0(,%ecx,4),%ecx
42bc3d5698SJohn Baldwin	movl	CAST_S_table1(,%ebx,4),%ebx
43bc3d5698SJohn Baldwin	xorl	%ebx,%ecx
44bc3d5698SJohn Baldwin	movl	CAST_S_table2(,%eax,4),%ebx
45bc3d5698SJohn Baldwin	subl	%ebx,%ecx
46bc3d5698SJohn Baldwin	movl	CAST_S_table3(,%edx,4),%ebx
47bc3d5698SJohn Baldwin	addl	%ebx,%ecx
48bc3d5698SJohn Baldwin	xorl	%ecx,%edi
49bc3d5698SJohn Baldwin
50bc3d5698SJohn Baldwin	movl	8(%ebp),%edx
51bc3d5698SJohn Baldwin	movl	12(%ebp),%ecx
52bc3d5698SJohn Baldwin	xorl	%edi,%edx
53bc3d5698SJohn Baldwin	roll	%cl,%edx
54bc3d5698SJohn Baldwin	xorl	%ecx,%ecx
55bc3d5698SJohn Baldwin	movl	$255,%ebx
56bc3d5698SJohn Baldwin	movb	%dh,%cl
57bc3d5698SJohn Baldwin	andl	%edx,%ebx
58bc3d5698SJohn Baldwin	shrl	$16,%edx
59bc3d5698SJohn Baldwin	xorl	%eax,%eax
60bc3d5698SJohn Baldwin	movb	%dh,%al
61bc3d5698SJohn Baldwin	andl	$255,%edx
62bc3d5698SJohn Baldwin	movl	CAST_S_table0(,%ecx,4),%ecx
63bc3d5698SJohn Baldwin	movl	CAST_S_table1(,%ebx,4),%ebx
64bc3d5698SJohn Baldwin	subl	%ebx,%ecx
65bc3d5698SJohn Baldwin	movl	CAST_S_table2(,%eax,4),%ebx
66bc3d5698SJohn Baldwin	addl	%ebx,%ecx
67bc3d5698SJohn Baldwin	movl	CAST_S_table3(,%edx,4),%ebx
68bc3d5698SJohn Baldwin	xorl	%ebx,%ecx
69bc3d5698SJohn Baldwin	xorl	%ecx,%esi
70bc3d5698SJohn Baldwin
71bc3d5698SJohn Baldwin	movl	16(%ebp),%edx
72bc3d5698SJohn Baldwin	movl	20(%ebp),%ecx
73bc3d5698SJohn Baldwin	subl	%esi,%edx
74bc3d5698SJohn Baldwin	roll	%cl,%edx
75bc3d5698SJohn Baldwin	xorl	%ecx,%ecx
76bc3d5698SJohn Baldwin	movl	$255,%ebx
77bc3d5698SJohn Baldwin	movb	%dh,%cl
78bc3d5698SJohn Baldwin	andl	%edx,%ebx
79bc3d5698SJohn Baldwin	shrl	$16,%edx
80bc3d5698SJohn Baldwin	xorl	%eax,%eax
81bc3d5698SJohn Baldwin	movb	%dh,%al
82bc3d5698SJohn Baldwin	andl	$255,%edx
83bc3d5698SJohn Baldwin	movl	CAST_S_table0(,%ecx,4),%ecx
84bc3d5698SJohn Baldwin	movl	CAST_S_table1(,%ebx,4),%ebx
85bc3d5698SJohn Baldwin	addl	%ebx,%ecx
86bc3d5698SJohn Baldwin	movl	CAST_S_table2(,%eax,4),%ebx
87bc3d5698SJohn Baldwin	xorl	%ebx,%ecx
88bc3d5698SJohn Baldwin	movl	CAST_S_table3(,%edx,4),%ebx
89bc3d5698SJohn Baldwin	subl	%ebx,%ecx
90bc3d5698SJohn Baldwin	xorl	%ecx,%edi
91bc3d5698SJohn Baldwin
92bc3d5698SJohn Baldwin	movl	24(%ebp),%edx
93bc3d5698SJohn Baldwin	movl	28(%ebp),%ecx
94bc3d5698SJohn Baldwin	addl	%edi,%edx
95bc3d5698SJohn Baldwin	roll	%cl,%edx
96bc3d5698SJohn Baldwin	xorl	%ecx,%ecx
97bc3d5698SJohn Baldwin	movl	$255,%ebx
98bc3d5698SJohn Baldwin	movb	%dh,%cl
99bc3d5698SJohn Baldwin	andl	%edx,%ebx
100bc3d5698SJohn Baldwin	shrl	$16,%edx
101bc3d5698SJohn Baldwin	xorl	%eax,%eax
102bc3d5698SJohn Baldwin	movb	%dh,%al
103bc3d5698SJohn Baldwin	andl	$255,%edx
104bc3d5698SJohn Baldwin	movl	CAST_S_table0(,%ecx,4),%ecx
105bc3d5698SJohn Baldwin	movl	CAST_S_table1(,%ebx,4),%ebx
106bc3d5698SJohn Baldwin	xorl	%ebx,%ecx
107bc3d5698SJohn Baldwin	movl	CAST_S_table2(,%eax,4),%ebx
108bc3d5698SJohn Baldwin	subl	%ebx,%ecx
109bc3d5698SJohn Baldwin	movl	CAST_S_table3(,%edx,4),%ebx
110bc3d5698SJohn Baldwin	addl	%ebx,%ecx
111bc3d5698SJohn Baldwin	xorl	%ecx,%esi
112bc3d5698SJohn Baldwin
113bc3d5698SJohn Baldwin	movl	32(%ebp),%edx
114bc3d5698SJohn Baldwin	movl	36(%ebp),%ecx
115bc3d5698SJohn Baldwin	xorl	%esi,%edx
116bc3d5698SJohn Baldwin	roll	%cl,%edx
117bc3d5698SJohn Baldwin	xorl	%ecx,%ecx
118bc3d5698SJohn Baldwin	movl	$255,%ebx
119bc3d5698SJohn Baldwin	movb	%dh,%cl
120bc3d5698SJohn Baldwin	andl	%edx,%ebx
121bc3d5698SJohn Baldwin	shrl	$16,%edx
122bc3d5698SJohn Baldwin	xorl	%eax,%eax
123bc3d5698SJohn Baldwin	movb	%dh,%al
124bc3d5698SJohn Baldwin	andl	$255,%edx
125bc3d5698SJohn Baldwin	movl	CAST_S_table0(,%ecx,4),%ecx
126bc3d5698SJohn Baldwin	movl	CAST_S_table1(,%ebx,4),%ebx
127bc3d5698SJohn Baldwin	subl	%ebx,%ecx
128bc3d5698SJohn Baldwin	movl	CAST_S_table2(,%eax,4),%ebx
129bc3d5698SJohn Baldwin	addl	%ebx,%ecx
130bc3d5698SJohn Baldwin	movl	CAST_S_table3(,%edx,4),%ebx
131bc3d5698SJohn Baldwin	xorl	%ebx,%ecx
132bc3d5698SJohn Baldwin	xorl	%ecx,%edi
133bc3d5698SJohn Baldwin
134bc3d5698SJohn Baldwin	movl	40(%ebp),%edx
135bc3d5698SJohn Baldwin	movl	44(%ebp),%ecx
136bc3d5698SJohn Baldwin	subl	%edi,%edx
137bc3d5698SJohn Baldwin	roll	%cl,%edx
138bc3d5698SJohn Baldwin	xorl	%ecx,%ecx
139bc3d5698SJohn Baldwin	movl	$255,%ebx
140bc3d5698SJohn Baldwin	movb	%dh,%cl
141bc3d5698SJohn Baldwin	andl	%edx,%ebx
142bc3d5698SJohn Baldwin	shrl	$16,%edx
143bc3d5698SJohn Baldwin	xorl	%eax,%eax
144bc3d5698SJohn Baldwin	movb	%dh,%al
145bc3d5698SJohn Baldwin	andl	$255,%edx
146bc3d5698SJohn Baldwin	movl	CAST_S_table0(,%ecx,4),%ecx
147bc3d5698SJohn Baldwin	movl	CAST_S_table1(,%ebx,4),%ebx
148bc3d5698SJohn Baldwin	addl	%ebx,%ecx
149bc3d5698SJohn Baldwin	movl	CAST_S_table2(,%eax,4),%ebx
150bc3d5698SJohn Baldwin	xorl	%ebx,%ecx
151bc3d5698SJohn Baldwin	movl	CAST_S_table3(,%edx,4),%ebx
152bc3d5698SJohn Baldwin	subl	%ebx,%ecx
153bc3d5698SJohn Baldwin	xorl	%ecx,%esi
154bc3d5698SJohn Baldwin
155bc3d5698SJohn Baldwin	movl	48(%ebp),%edx
156bc3d5698SJohn Baldwin	movl	52(%ebp),%ecx
157bc3d5698SJohn Baldwin	addl	%esi,%edx
158bc3d5698SJohn Baldwin	roll	%cl,%edx
159bc3d5698SJohn Baldwin	xorl	%ecx,%ecx
160bc3d5698SJohn Baldwin	movl	$255,%ebx
161bc3d5698SJohn Baldwin	movb	%dh,%cl
162bc3d5698SJohn Baldwin	andl	%edx,%ebx
163bc3d5698SJohn Baldwin	shrl	$16,%edx
164bc3d5698SJohn Baldwin	xorl	%eax,%eax
165bc3d5698SJohn Baldwin	movb	%dh,%al
166bc3d5698SJohn Baldwin	andl	$255,%edx
167bc3d5698SJohn Baldwin	movl	CAST_S_table0(,%ecx,4),%ecx
168bc3d5698SJohn Baldwin	movl	CAST_S_table1(,%ebx,4),%ebx
169bc3d5698SJohn Baldwin	xorl	%ebx,%ecx
170bc3d5698SJohn Baldwin	movl	CAST_S_table2(,%eax,4),%ebx
171bc3d5698SJohn Baldwin	subl	%ebx,%ecx
172bc3d5698SJohn Baldwin	movl	CAST_S_table3(,%edx,4),%ebx
173bc3d5698SJohn Baldwin	addl	%ebx,%ecx
174bc3d5698SJohn Baldwin	xorl	%ecx,%edi
175bc3d5698SJohn Baldwin
176bc3d5698SJohn Baldwin	movl	56(%ebp),%edx
177bc3d5698SJohn Baldwin	movl	60(%ebp),%ecx
178bc3d5698SJohn Baldwin	xorl	%edi,%edx
179bc3d5698SJohn Baldwin	roll	%cl,%edx
180bc3d5698SJohn Baldwin	xorl	%ecx,%ecx
181bc3d5698SJohn Baldwin	movl	$255,%ebx
182bc3d5698SJohn Baldwin	movb	%dh,%cl
183bc3d5698SJohn Baldwin	andl	%edx,%ebx
184bc3d5698SJohn Baldwin	shrl	$16,%edx
185bc3d5698SJohn Baldwin	xorl	%eax,%eax
186bc3d5698SJohn Baldwin	movb	%dh,%al
187bc3d5698SJohn Baldwin	andl	$255,%edx
188bc3d5698SJohn Baldwin	movl	CAST_S_table0(,%ecx,4),%ecx
189bc3d5698SJohn Baldwin	movl	CAST_S_table1(,%ebx,4),%ebx
190bc3d5698SJohn Baldwin	subl	%ebx,%ecx
191bc3d5698SJohn Baldwin	movl	CAST_S_table2(,%eax,4),%ebx
192bc3d5698SJohn Baldwin	addl	%ebx,%ecx
193bc3d5698SJohn Baldwin	movl	CAST_S_table3(,%edx,4),%ebx
194bc3d5698SJohn Baldwin	xorl	%ebx,%ecx
195bc3d5698SJohn Baldwin	xorl	%ecx,%esi
196bc3d5698SJohn Baldwin
197bc3d5698SJohn Baldwin	movl	64(%ebp),%edx
198bc3d5698SJohn Baldwin	movl	68(%ebp),%ecx
199bc3d5698SJohn Baldwin	subl	%esi,%edx
200bc3d5698SJohn Baldwin	roll	%cl,%edx
201bc3d5698SJohn Baldwin	xorl	%ecx,%ecx
202bc3d5698SJohn Baldwin	movl	$255,%ebx
203bc3d5698SJohn Baldwin	movb	%dh,%cl
204bc3d5698SJohn Baldwin	andl	%edx,%ebx
205bc3d5698SJohn Baldwin	shrl	$16,%edx
206bc3d5698SJohn Baldwin	xorl	%eax,%eax
207bc3d5698SJohn Baldwin	movb	%dh,%al
208bc3d5698SJohn Baldwin	andl	$255,%edx
209bc3d5698SJohn Baldwin	movl	CAST_S_table0(,%ecx,4),%ecx
210bc3d5698SJohn Baldwin	movl	CAST_S_table1(,%ebx,4),%ebx
211bc3d5698SJohn Baldwin	addl	%ebx,%ecx
212bc3d5698SJohn Baldwin	movl	CAST_S_table2(,%eax,4),%ebx
213bc3d5698SJohn Baldwin	xorl	%ebx,%ecx
214bc3d5698SJohn Baldwin	movl	CAST_S_table3(,%edx,4),%ebx
215bc3d5698SJohn Baldwin	subl	%ebx,%ecx
216bc3d5698SJohn Baldwin	xorl	%ecx,%edi
217bc3d5698SJohn Baldwin
218bc3d5698SJohn Baldwin	movl	72(%ebp),%edx
219bc3d5698SJohn Baldwin	movl	76(%ebp),%ecx
220bc3d5698SJohn Baldwin	addl	%edi,%edx
221bc3d5698SJohn Baldwin	roll	%cl,%edx
222bc3d5698SJohn Baldwin	xorl	%ecx,%ecx
223bc3d5698SJohn Baldwin	movl	$255,%ebx
224bc3d5698SJohn Baldwin	movb	%dh,%cl
225bc3d5698SJohn Baldwin	andl	%edx,%ebx
226bc3d5698SJohn Baldwin	shrl	$16,%edx
227bc3d5698SJohn Baldwin	xorl	%eax,%eax
228bc3d5698SJohn Baldwin	movb	%dh,%al
229bc3d5698SJohn Baldwin	andl	$255,%edx
230bc3d5698SJohn Baldwin	movl	CAST_S_table0(,%ecx,4),%ecx
231bc3d5698SJohn Baldwin	movl	CAST_S_table1(,%ebx,4),%ebx
232bc3d5698SJohn Baldwin	xorl	%ebx,%ecx
233bc3d5698SJohn Baldwin	movl	CAST_S_table2(,%eax,4),%ebx
234bc3d5698SJohn Baldwin	subl	%ebx,%ecx
235bc3d5698SJohn Baldwin	movl	CAST_S_table3(,%edx,4),%ebx
236bc3d5698SJohn Baldwin	addl	%ebx,%ecx
237bc3d5698SJohn Baldwin	xorl	%ecx,%esi
238bc3d5698SJohn Baldwin
239bc3d5698SJohn Baldwin	movl	80(%ebp),%edx
240bc3d5698SJohn Baldwin	movl	84(%ebp),%ecx
241bc3d5698SJohn Baldwin	xorl	%esi,%edx
242bc3d5698SJohn Baldwin	roll	%cl,%edx
243bc3d5698SJohn Baldwin	xorl	%ecx,%ecx
244bc3d5698SJohn Baldwin	movl	$255,%ebx
245bc3d5698SJohn Baldwin	movb	%dh,%cl
246bc3d5698SJohn Baldwin	andl	%edx,%ebx
247bc3d5698SJohn Baldwin	shrl	$16,%edx
248bc3d5698SJohn Baldwin	xorl	%eax,%eax
249bc3d5698SJohn Baldwin	movb	%dh,%al
250bc3d5698SJohn Baldwin	andl	$255,%edx
251bc3d5698SJohn Baldwin	movl	CAST_S_table0(,%ecx,4),%ecx
252bc3d5698SJohn Baldwin	movl	CAST_S_table1(,%ebx,4),%ebx
253bc3d5698SJohn Baldwin	subl	%ebx,%ecx
254bc3d5698SJohn Baldwin	movl	CAST_S_table2(,%eax,4),%ebx
255bc3d5698SJohn Baldwin	addl	%ebx,%ecx
256bc3d5698SJohn Baldwin	movl	CAST_S_table3(,%edx,4),%ebx
257bc3d5698SJohn Baldwin	xorl	%ebx,%ecx
258bc3d5698SJohn Baldwin	xorl	%ecx,%edi
259bc3d5698SJohn Baldwin
260bc3d5698SJohn Baldwin	movl	88(%ebp),%edx
261bc3d5698SJohn Baldwin	movl	92(%ebp),%ecx
262bc3d5698SJohn Baldwin	subl	%edi,%edx
263bc3d5698SJohn Baldwin	roll	%cl,%edx
264bc3d5698SJohn Baldwin	xorl	%ecx,%ecx
265bc3d5698SJohn Baldwin	movl	$255,%ebx
266bc3d5698SJohn Baldwin	movb	%dh,%cl
267bc3d5698SJohn Baldwin	andl	%edx,%ebx
268bc3d5698SJohn Baldwin	shrl	$16,%edx
269bc3d5698SJohn Baldwin	xorl	%eax,%eax
270bc3d5698SJohn Baldwin	movb	%dh,%al
271bc3d5698SJohn Baldwin	andl	$255,%edx
272bc3d5698SJohn Baldwin	movl	CAST_S_table0(,%ecx,4),%ecx
273bc3d5698SJohn Baldwin	movl	CAST_S_table1(,%ebx,4),%ebx
274bc3d5698SJohn Baldwin	addl	%ebx,%ecx
275bc3d5698SJohn Baldwin	movl	CAST_S_table2(,%eax,4),%ebx
276bc3d5698SJohn Baldwin	xorl	%ebx,%ecx
277bc3d5698SJohn Baldwin	movl	CAST_S_table3(,%edx,4),%ebx
278bc3d5698SJohn Baldwin	subl	%ebx,%ecx
279bc3d5698SJohn Baldwin	xorl	%ecx,%esi
280bc3d5698SJohn Baldwin
281bc3d5698SJohn Baldwin	popl	%edx
282bc3d5698SJohn Baldwin	orl	%edx,%edx
283bc3d5698SJohn Baldwin	jnz	.L000cast_enc_done
284bc3d5698SJohn Baldwin
285bc3d5698SJohn Baldwin	movl	96(%ebp),%edx
286bc3d5698SJohn Baldwin	movl	100(%ebp),%ecx
287bc3d5698SJohn Baldwin	addl	%esi,%edx
288bc3d5698SJohn Baldwin	roll	%cl,%edx
289bc3d5698SJohn Baldwin	xorl	%ecx,%ecx
290bc3d5698SJohn Baldwin	movl	$255,%ebx
291bc3d5698SJohn Baldwin	movb	%dh,%cl
292bc3d5698SJohn Baldwin	andl	%edx,%ebx
293bc3d5698SJohn Baldwin	shrl	$16,%edx
294bc3d5698SJohn Baldwin	xorl	%eax,%eax
295bc3d5698SJohn Baldwin	movb	%dh,%al
296bc3d5698SJohn Baldwin	andl	$255,%edx
297bc3d5698SJohn Baldwin	movl	CAST_S_table0(,%ecx,4),%ecx
298bc3d5698SJohn Baldwin	movl	CAST_S_table1(,%ebx,4),%ebx
299bc3d5698SJohn Baldwin	xorl	%ebx,%ecx
300bc3d5698SJohn Baldwin	movl	CAST_S_table2(,%eax,4),%ebx
301bc3d5698SJohn Baldwin	subl	%ebx,%ecx
302bc3d5698SJohn Baldwin	movl	CAST_S_table3(,%edx,4),%ebx
303bc3d5698SJohn Baldwin	addl	%ebx,%ecx
304bc3d5698SJohn Baldwin	xorl	%ecx,%edi
305bc3d5698SJohn Baldwin
306bc3d5698SJohn Baldwin	movl	104(%ebp),%edx
307bc3d5698SJohn Baldwin	movl	108(%ebp),%ecx
308bc3d5698SJohn Baldwin	xorl	%edi,%edx
309bc3d5698SJohn Baldwin	roll	%cl,%edx
310bc3d5698SJohn Baldwin	xorl	%ecx,%ecx
311bc3d5698SJohn Baldwin	movl	$255,%ebx
312bc3d5698SJohn Baldwin	movb	%dh,%cl
313bc3d5698SJohn Baldwin	andl	%edx,%ebx
314bc3d5698SJohn Baldwin	shrl	$16,%edx
315bc3d5698SJohn Baldwin	xorl	%eax,%eax
316bc3d5698SJohn Baldwin	movb	%dh,%al
317bc3d5698SJohn Baldwin	andl	$255,%edx
318bc3d5698SJohn Baldwin	movl	CAST_S_table0(,%ecx,4),%ecx
319bc3d5698SJohn Baldwin	movl	CAST_S_table1(,%ebx,4),%ebx
320bc3d5698SJohn Baldwin	subl	%ebx,%ecx
321bc3d5698SJohn Baldwin	movl	CAST_S_table2(,%eax,4),%ebx
322bc3d5698SJohn Baldwin	addl	%ebx,%ecx
323bc3d5698SJohn Baldwin	movl	CAST_S_table3(,%edx,4),%ebx
324bc3d5698SJohn Baldwin	xorl	%ebx,%ecx
325bc3d5698SJohn Baldwin	xorl	%ecx,%esi
326bc3d5698SJohn Baldwin
327bc3d5698SJohn Baldwin	movl	112(%ebp),%edx
328bc3d5698SJohn Baldwin	movl	116(%ebp),%ecx
329bc3d5698SJohn Baldwin	subl	%esi,%edx
330bc3d5698SJohn Baldwin	roll	%cl,%edx
331bc3d5698SJohn Baldwin	xorl	%ecx,%ecx
332bc3d5698SJohn Baldwin	movl	$255,%ebx
333bc3d5698SJohn Baldwin	movb	%dh,%cl
334bc3d5698SJohn Baldwin	andl	%edx,%ebx
335bc3d5698SJohn Baldwin	shrl	$16,%edx
336bc3d5698SJohn Baldwin	xorl	%eax,%eax
337bc3d5698SJohn Baldwin	movb	%dh,%al
338bc3d5698SJohn Baldwin	andl	$255,%edx
339bc3d5698SJohn Baldwin	movl	CAST_S_table0(,%ecx,4),%ecx
340bc3d5698SJohn Baldwin	movl	CAST_S_table1(,%ebx,4),%ebx
341bc3d5698SJohn Baldwin	addl	%ebx,%ecx
342bc3d5698SJohn Baldwin	movl	CAST_S_table2(,%eax,4),%ebx
343bc3d5698SJohn Baldwin	xorl	%ebx,%ecx
344bc3d5698SJohn Baldwin	movl	CAST_S_table3(,%edx,4),%ebx
345bc3d5698SJohn Baldwin	subl	%ebx,%ecx
346bc3d5698SJohn Baldwin	xorl	%ecx,%edi
347bc3d5698SJohn Baldwin
348bc3d5698SJohn Baldwin	movl	120(%ebp),%edx
349bc3d5698SJohn Baldwin	movl	124(%ebp),%ecx
350bc3d5698SJohn Baldwin	addl	%edi,%edx
351bc3d5698SJohn Baldwin	roll	%cl,%edx
352bc3d5698SJohn Baldwin	xorl	%ecx,%ecx
353bc3d5698SJohn Baldwin	movl	$255,%ebx
354bc3d5698SJohn Baldwin	movb	%dh,%cl
355bc3d5698SJohn Baldwin	andl	%edx,%ebx
356bc3d5698SJohn Baldwin	shrl	$16,%edx
357bc3d5698SJohn Baldwin	xorl	%eax,%eax
358bc3d5698SJohn Baldwin	movb	%dh,%al
359bc3d5698SJohn Baldwin	andl	$255,%edx
360bc3d5698SJohn Baldwin	movl	CAST_S_table0(,%ecx,4),%ecx
361bc3d5698SJohn Baldwin	movl	CAST_S_table1(,%ebx,4),%ebx
362bc3d5698SJohn Baldwin	xorl	%ebx,%ecx
363bc3d5698SJohn Baldwin	movl	CAST_S_table2(,%eax,4),%ebx
364bc3d5698SJohn Baldwin	subl	%ebx,%ecx
365bc3d5698SJohn Baldwin	movl	CAST_S_table3(,%edx,4),%ebx
366bc3d5698SJohn Baldwin	addl	%ebx,%ecx
367bc3d5698SJohn Baldwin	xorl	%ecx,%esi
368bc3d5698SJohn Baldwin.L000cast_enc_done:
369bc3d5698SJohn Baldwin	nop
370bc3d5698SJohn Baldwin	movl	20(%esp),%eax
371bc3d5698SJohn Baldwin	movl	%edi,4(%eax)
372bc3d5698SJohn Baldwin	movl	%esi,(%eax)
373bc3d5698SJohn Baldwin	popl	%edi
374bc3d5698SJohn Baldwin	popl	%esi
375bc3d5698SJohn Baldwin	popl	%ebx
376bc3d5698SJohn Baldwin	popl	%ebp
377bc3d5698SJohn Baldwin	ret
378bc3d5698SJohn Baldwin.size	CAST_encrypt,.-.L_CAST_encrypt_begin
379bc3d5698SJohn Baldwin.globl	CAST_decrypt
380bc3d5698SJohn Baldwin.type	CAST_decrypt,@function
381bc3d5698SJohn Baldwin.align	16
382bc3d5698SJohn BaldwinCAST_decrypt:
383bc3d5698SJohn Baldwin.L_CAST_decrypt_begin:
384*c0855eaaSJohn Baldwin	#ifdef __CET__
385*c0855eaaSJohn Baldwin
386*c0855eaaSJohn Baldwin.byte	243,15,30,251
387*c0855eaaSJohn Baldwin	#endif
388*c0855eaaSJohn Baldwin
389bc3d5698SJohn Baldwin
390bc3d5698SJohn Baldwin	pushl	%ebp
391bc3d5698SJohn Baldwin	pushl	%ebx
392bc3d5698SJohn Baldwin	movl	12(%esp),%ebx
393bc3d5698SJohn Baldwin	movl	16(%esp),%ebp
394bc3d5698SJohn Baldwin	pushl	%esi
395bc3d5698SJohn Baldwin	pushl	%edi
396bc3d5698SJohn Baldwin
397bc3d5698SJohn Baldwin	movl	(%ebx),%edi
398bc3d5698SJohn Baldwin	movl	4(%ebx),%esi
399bc3d5698SJohn Baldwin
400bc3d5698SJohn Baldwin	movl	128(%ebp),%eax
401bc3d5698SJohn Baldwin	orl	%eax,%eax
402bc3d5698SJohn Baldwin	jnz	.L001cast_dec_skip
403bc3d5698SJohn Baldwin	xorl	%eax,%eax
404bc3d5698SJohn Baldwin
405bc3d5698SJohn Baldwin	movl	120(%ebp),%edx
406bc3d5698SJohn Baldwin	movl	124(%ebp),%ecx
407bc3d5698SJohn Baldwin	addl	%esi,%edx
408bc3d5698SJohn Baldwin	roll	%cl,%edx
409bc3d5698SJohn Baldwin	xorl	%ecx,%ecx
410bc3d5698SJohn Baldwin	movl	$255,%ebx
411bc3d5698SJohn Baldwin	movb	%dh,%cl
412bc3d5698SJohn Baldwin	andl	%edx,%ebx
413bc3d5698SJohn Baldwin	shrl	$16,%edx
414bc3d5698SJohn Baldwin	xorl	%eax,%eax
415bc3d5698SJohn Baldwin	movb	%dh,%al
416bc3d5698SJohn Baldwin	andl	$255,%edx
417bc3d5698SJohn Baldwin	movl	CAST_S_table0(,%ecx,4),%ecx
418bc3d5698SJohn Baldwin	movl	CAST_S_table1(,%ebx,4),%ebx
419bc3d5698SJohn Baldwin	xorl	%ebx,%ecx
420bc3d5698SJohn Baldwin	movl	CAST_S_table2(,%eax,4),%ebx
421bc3d5698SJohn Baldwin	subl	%ebx,%ecx
422bc3d5698SJohn Baldwin	movl	CAST_S_table3(,%edx,4),%ebx
423bc3d5698SJohn Baldwin	addl	%ebx,%ecx
424bc3d5698SJohn Baldwin	xorl	%ecx,%edi
425bc3d5698SJohn Baldwin
426bc3d5698SJohn Baldwin	movl	112(%ebp),%edx
427bc3d5698SJohn Baldwin	movl	116(%ebp),%ecx
428bc3d5698SJohn Baldwin	subl	%edi,%edx
429bc3d5698SJohn Baldwin	roll	%cl,%edx
430bc3d5698SJohn Baldwin	xorl	%ecx,%ecx
431bc3d5698SJohn Baldwin	movl	$255,%ebx
432bc3d5698SJohn Baldwin	movb	%dh,%cl
433bc3d5698SJohn Baldwin	andl	%edx,%ebx
434bc3d5698SJohn Baldwin	shrl	$16,%edx
435bc3d5698SJohn Baldwin	xorl	%eax,%eax
436bc3d5698SJohn Baldwin	movb	%dh,%al
437bc3d5698SJohn Baldwin	andl	$255,%edx
438bc3d5698SJohn Baldwin	movl	CAST_S_table0(,%ecx,4),%ecx
439bc3d5698SJohn Baldwin	movl	CAST_S_table1(,%ebx,4),%ebx
440bc3d5698SJohn Baldwin	addl	%ebx,%ecx
441bc3d5698SJohn Baldwin	movl	CAST_S_table2(,%eax,4),%ebx
442bc3d5698SJohn Baldwin	xorl	%ebx,%ecx
443bc3d5698SJohn Baldwin	movl	CAST_S_table3(,%edx,4),%ebx
444bc3d5698SJohn Baldwin	subl	%ebx,%ecx
445bc3d5698SJohn Baldwin	xorl	%ecx,%esi
446bc3d5698SJohn Baldwin
447bc3d5698SJohn Baldwin	movl	104(%ebp),%edx
448bc3d5698SJohn Baldwin	movl	108(%ebp),%ecx
449bc3d5698SJohn Baldwin	xorl	%esi,%edx
450bc3d5698SJohn Baldwin	roll	%cl,%edx
451bc3d5698SJohn Baldwin	xorl	%ecx,%ecx
452bc3d5698SJohn Baldwin	movl	$255,%ebx
453bc3d5698SJohn Baldwin	movb	%dh,%cl
454bc3d5698SJohn Baldwin	andl	%edx,%ebx
455bc3d5698SJohn Baldwin	shrl	$16,%edx
456bc3d5698SJohn Baldwin	xorl	%eax,%eax
457bc3d5698SJohn Baldwin	movb	%dh,%al
458bc3d5698SJohn Baldwin	andl	$255,%edx
459bc3d5698SJohn Baldwin	movl	CAST_S_table0(,%ecx,4),%ecx
460bc3d5698SJohn Baldwin	movl	CAST_S_table1(,%ebx,4),%ebx
461bc3d5698SJohn Baldwin	subl	%ebx,%ecx
462bc3d5698SJohn Baldwin	movl	CAST_S_table2(,%eax,4),%ebx
463bc3d5698SJohn Baldwin	addl	%ebx,%ecx
464bc3d5698SJohn Baldwin	movl	CAST_S_table3(,%edx,4),%ebx
465bc3d5698SJohn Baldwin	xorl	%ebx,%ecx
466bc3d5698SJohn Baldwin	xorl	%ecx,%edi
467bc3d5698SJohn Baldwin
468bc3d5698SJohn Baldwin	movl	96(%ebp),%edx
469bc3d5698SJohn Baldwin	movl	100(%ebp),%ecx
470bc3d5698SJohn Baldwin	addl	%edi,%edx
471bc3d5698SJohn Baldwin	roll	%cl,%edx
472bc3d5698SJohn Baldwin	xorl	%ecx,%ecx
473bc3d5698SJohn Baldwin	movl	$255,%ebx
474bc3d5698SJohn Baldwin	movb	%dh,%cl
475bc3d5698SJohn Baldwin	andl	%edx,%ebx
476bc3d5698SJohn Baldwin	shrl	$16,%edx
477bc3d5698SJohn Baldwin	xorl	%eax,%eax
478bc3d5698SJohn Baldwin	movb	%dh,%al
479bc3d5698SJohn Baldwin	andl	$255,%edx
480bc3d5698SJohn Baldwin	movl	CAST_S_table0(,%ecx,4),%ecx
481bc3d5698SJohn Baldwin	movl	CAST_S_table1(,%ebx,4),%ebx
482bc3d5698SJohn Baldwin	xorl	%ebx,%ecx
483bc3d5698SJohn Baldwin	movl	CAST_S_table2(,%eax,4),%ebx
484bc3d5698SJohn Baldwin	subl	%ebx,%ecx
485bc3d5698SJohn Baldwin	movl	CAST_S_table3(,%edx,4),%ebx
486bc3d5698SJohn Baldwin	addl	%ebx,%ecx
487bc3d5698SJohn Baldwin	xorl	%ecx,%esi
488bc3d5698SJohn Baldwin.L001cast_dec_skip:
489bc3d5698SJohn Baldwin
490bc3d5698SJohn Baldwin	movl	88(%ebp),%edx
491bc3d5698SJohn Baldwin	movl	92(%ebp),%ecx
492bc3d5698SJohn Baldwin	subl	%esi,%edx
493bc3d5698SJohn Baldwin	roll	%cl,%edx
494bc3d5698SJohn Baldwin	xorl	%ecx,%ecx
495bc3d5698SJohn Baldwin	movl	$255,%ebx
496bc3d5698SJohn Baldwin	movb	%dh,%cl
497bc3d5698SJohn Baldwin	andl	%edx,%ebx
498bc3d5698SJohn Baldwin	shrl	$16,%edx
499bc3d5698SJohn Baldwin	xorl	%eax,%eax
500bc3d5698SJohn Baldwin	movb	%dh,%al
501bc3d5698SJohn Baldwin	andl	$255,%edx
502bc3d5698SJohn Baldwin	movl	CAST_S_table0(,%ecx,4),%ecx
503bc3d5698SJohn Baldwin	movl	CAST_S_table1(,%ebx,4),%ebx
504bc3d5698SJohn Baldwin	addl	%ebx,%ecx
505bc3d5698SJohn Baldwin	movl	CAST_S_table2(,%eax,4),%ebx
506bc3d5698SJohn Baldwin	xorl	%ebx,%ecx
507bc3d5698SJohn Baldwin	movl	CAST_S_table3(,%edx,4),%ebx
508bc3d5698SJohn Baldwin	subl	%ebx,%ecx
509bc3d5698SJohn Baldwin	xorl	%ecx,%edi
510bc3d5698SJohn Baldwin
511bc3d5698SJohn Baldwin	movl	80(%ebp),%edx
512bc3d5698SJohn Baldwin	movl	84(%ebp),%ecx
513bc3d5698SJohn Baldwin	xorl	%edi,%edx
514bc3d5698SJohn Baldwin	roll	%cl,%edx
515bc3d5698SJohn Baldwin	xorl	%ecx,%ecx
516bc3d5698SJohn Baldwin	movl	$255,%ebx
517bc3d5698SJohn Baldwin	movb	%dh,%cl
518bc3d5698SJohn Baldwin	andl	%edx,%ebx
519bc3d5698SJohn Baldwin	shrl	$16,%edx
520bc3d5698SJohn Baldwin	xorl	%eax,%eax
521bc3d5698SJohn Baldwin	movb	%dh,%al
522bc3d5698SJohn Baldwin	andl	$255,%edx
523bc3d5698SJohn Baldwin	movl	CAST_S_table0(,%ecx,4),%ecx
524bc3d5698SJohn Baldwin	movl	CAST_S_table1(,%ebx,4),%ebx
525bc3d5698SJohn Baldwin	subl	%ebx,%ecx
526bc3d5698SJohn Baldwin	movl	CAST_S_table2(,%eax,4),%ebx
527bc3d5698SJohn Baldwin	addl	%ebx,%ecx
528bc3d5698SJohn Baldwin	movl	CAST_S_table3(,%edx,4),%ebx
529bc3d5698SJohn Baldwin	xorl	%ebx,%ecx
530bc3d5698SJohn Baldwin	xorl	%ecx,%esi
531bc3d5698SJohn Baldwin
532bc3d5698SJohn Baldwin	movl	72(%ebp),%edx
533bc3d5698SJohn Baldwin	movl	76(%ebp),%ecx
534bc3d5698SJohn Baldwin	addl	%esi,%edx
535bc3d5698SJohn Baldwin	roll	%cl,%edx
536bc3d5698SJohn Baldwin	xorl	%ecx,%ecx
537bc3d5698SJohn Baldwin	movl	$255,%ebx
538bc3d5698SJohn Baldwin	movb	%dh,%cl
539bc3d5698SJohn Baldwin	andl	%edx,%ebx
540bc3d5698SJohn Baldwin	shrl	$16,%edx
541bc3d5698SJohn Baldwin	xorl	%eax,%eax
542bc3d5698SJohn Baldwin	movb	%dh,%al
543bc3d5698SJohn Baldwin	andl	$255,%edx
544bc3d5698SJohn Baldwin	movl	CAST_S_table0(,%ecx,4),%ecx
545bc3d5698SJohn Baldwin	movl	CAST_S_table1(,%ebx,4),%ebx
546bc3d5698SJohn Baldwin	xorl	%ebx,%ecx
547bc3d5698SJohn Baldwin	movl	CAST_S_table2(,%eax,4),%ebx
548bc3d5698SJohn Baldwin	subl	%ebx,%ecx
549bc3d5698SJohn Baldwin	movl	CAST_S_table3(,%edx,4),%ebx
550bc3d5698SJohn Baldwin	addl	%ebx,%ecx
551bc3d5698SJohn Baldwin	xorl	%ecx,%edi
552bc3d5698SJohn Baldwin
553bc3d5698SJohn Baldwin	movl	64(%ebp),%edx
554bc3d5698SJohn Baldwin	movl	68(%ebp),%ecx
555bc3d5698SJohn Baldwin	subl	%edi,%edx
556bc3d5698SJohn Baldwin	roll	%cl,%edx
557bc3d5698SJohn Baldwin	xorl	%ecx,%ecx
558bc3d5698SJohn Baldwin	movl	$255,%ebx
559bc3d5698SJohn Baldwin	movb	%dh,%cl
560bc3d5698SJohn Baldwin	andl	%edx,%ebx
561bc3d5698SJohn Baldwin	shrl	$16,%edx
562bc3d5698SJohn Baldwin	xorl	%eax,%eax
563bc3d5698SJohn Baldwin	movb	%dh,%al
564bc3d5698SJohn Baldwin	andl	$255,%edx
565bc3d5698SJohn Baldwin	movl	CAST_S_table0(,%ecx,4),%ecx
566bc3d5698SJohn Baldwin	movl	CAST_S_table1(,%ebx,4),%ebx
567bc3d5698SJohn Baldwin	addl	%ebx,%ecx
568bc3d5698SJohn Baldwin	movl	CAST_S_table2(,%eax,4),%ebx
569bc3d5698SJohn Baldwin	xorl	%ebx,%ecx
570bc3d5698SJohn Baldwin	movl	CAST_S_table3(,%edx,4),%ebx
571bc3d5698SJohn Baldwin	subl	%ebx,%ecx
572bc3d5698SJohn Baldwin	xorl	%ecx,%esi
573bc3d5698SJohn Baldwin
574bc3d5698SJohn Baldwin	movl	56(%ebp),%edx
575bc3d5698SJohn Baldwin	movl	60(%ebp),%ecx
576bc3d5698SJohn Baldwin	xorl	%esi,%edx
577bc3d5698SJohn Baldwin	roll	%cl,%edx
578bc3d5698SJohn Baldwin	xorl	%ecx,%ecx
579bc3d5698SJohn Baldwin	movl	$255,%ebx
580bc3d5698SJohn Baldwin	movb	%dh,%cl
581bc3d5698SJohn Baldwin	andl	%edx,%ebx
582bc3d5698SJohn Baldwin	shrl	$16,%edx
583bc3d5698SJohn Baldwin	xorl	%eax,%eax
584bc3d5698SJohn Baldwin	movb	%dh,%al
585bc3d5698SJohn Baldwin	andl	$255,%edx
586bc3d5698SJohn Baldwin	movl	CAST_S_table0(,%ecx,4),%ecx
587bc3d5698SJohn Baldwin	movl	CAST_S_table1(,%ebx,4),%ebx
588bc3d5698SJohn Baldwin	subl	%ebx,%ecx
589bc3d5698SJohn Baldwin	movl	CAST_S_table2(,%eax,4),%ebx
590bc3d5698SJohn Baldwin	addl	%ebx,%ecx
591bc3d5698SJohn Baldwin	movl	CAST_S_table3(,%edx,4),%ebx
592bc3d5698SJohn Baldwin	xorl	%ebx,%ecx
593bc3d5698SJohn Baldwin	xorl	%ecx,%edi
594bc3d5698SJohn Baldwin
595bc3d5698SJohn Baldwin	movl	48(%ebp),%edx
596bc3d5698SJohn Baldwin	movl	52(%ebp),%ecx
597bc3d5698SJohn Baldwin	addl	%edi,%edx
598bc3d5698SJohn Baldwin	roll	%cl,%edx
599bc3d5698SJohn Baldwin	xorl	%ecx,%ecx
600bc3d5698SJohn Baldwin	movl	$255,%ebx
601bc3d5698SJohn Baldwin	movb	%dh,%cl
602bc3d5698SJohn Baldwin	andl	%edx,%ebx
603bc3d5698SJohn Baldwin	shrl	$16,%edx
604bc3d5698SJohn Baldwin	xorl	%eax,%eax
605bc3d5698SJohn Baldwin	movb	%dh,%al
606bc3d5698SJohn Baldwin	andl	$255,%edx
607bc3d5698SJohn Baldwin	movl	CAST_S_table0(,%ecx,4),%ecx
608bc3d5698SJohn Baldwin	movl	CAST_S_table1(,%ebx,4),%ebx
609bc3d5698SJohn Baldwin	xorl	%ebx,%ecx
610bc3d5698SJohn Baldwin	movl	CAST_S_table2(,%eax,4),%ebx
611bc3d5698SJohn Baldwin	subl	%ebx,%ecx
612bc3d5698SJohn Baldwin	movl	CAST_S_table3(,%edx,4),%ebx
613bc3d5698SJohn Baldwin	addl	%ebx,%ecx
614bc3d5698SJohn Baldwin	xorl	%ecx,%esi
615bc3d5698SJohn Baldwin
616bc3d5698SJohn Baldwin	movl	40(%ebp),%edx
617bc3d5698SJohn Baldwin	movl	44(%ebp),%ecx
618bc3d5698SJohn Baldwin	subl	%esi,%edx
619bc3d5698SJohn Baldwin	roll	%cl,%edx
620bc3d5698SJohn Baldwin	xorl	%ecx,%ecx
621bc3d5698SJohn Baldwin	movl	$255,%ebx
622bc3d5698SJohn Baldwin	movb	%dh,%cl
623bc3d5698SJohn Baldwin	andl	%edx,%ebx
624bc3d5698SJohn Baldwin	shrl	$16,%edx
625bc3d5698SJohn Baldwin	xorl	%eax,%eax
626bc3d5698SJohn Baldwin	movb	%dh,%al
627bc3d5698SJohn Baldwin	andl	$255,%edx
628bc3d5698SJohn Baldwin	movl	CAST_S_table0(,%ecx,4),%ecx
629bc3d5698SJohn Baldwin	movl	CAST_S_table1(,%ebx,4),%ebx
630bc3d5698SJohn Baldwin	addl	%ebx,%ecx
631bc3d5698SJohn Baldwin	movl	CAST_S_table2(,%eax,4),%ebx
632bc3d5698SJohn Baldwin	xorl	%ebx,%ecx
633bc3d5698SJohn Baldwin	movl	CAST_S_table3(,%edx,4),%ebx
634bc3d5698SJohn Baldwin	subl	%ebx,%ecx
635bc3d5698SJohn Baldwin	xorl	%ecx,%edi
636bc3d5698SJohn Baldwin
637bc3d5698SJohn Baldwin	movl	32(%ebp),%edx
638bc3d5698SJohn Baldwin	movl	36(%ebp),%ecx
639bc3d5698SJohn Baldwin	xorl	%edi,%edx
640bc3d5698SJohn Baldwin	roll	%cl,%edx
641bc3d5698SJohn Baldwin	xorl	%ecx,%ecx
642bc3d5698SJohn Baldwin	movl	$255,%ebx
643bc3d5698SJohn Baldwin	movb	%dh,%cl
644bc3d5698SJohn Baldwin	andl	%edx,%ebx
645bc3d5698SJohn Baldwin	shrl	$16,%edx
646bc3d5698SJohn Baldwin	xorl	%eax,%eax
647bc3d5698SJohn Baldwin	movb	%dh,%al
648bc3d5698SJohn Baldwin	andl	$255,%edx
649bc3d5698SJohn Baldwin	movl	CAST_S_table0(,%ecx,4),%ecx
650bc3d5698SJohn Baldwin	movl	CAST_S_table1(,%ebx,4),%ebx
651bc3d5698SJohn Baldwin	subl	%ebx,%ecx
652bc3d5698SJohn Baldwin	movl	CAST_S_table2(,%eax,4),%ebx
653bc3d5698SJohn Baldwin	addl	%ebx,%ecx
654bc3d5698SJohn Baldwin	movl	CAST_S_table3(,%edx,4),%ebx
655bc3d5698SJohn Baldwin	xorl	%ebx,%ecx
656bc3d5698SJohn Baldwin	xorl	%ecx,%esi
657bc3d5698SJohn Baldwin
658bc3d5698SJohn Baldwin	movl	24(%ebp),%edx
659bc3d5698SJohn Baldwin	movl	28(%ebp),%ecx
660bc3d5698SJohn Baldwin	addl	%esi,%edx
661bc3d5698SJohn Baldwin	roll	%cl,%edx
662bc3d5698SJohn Baldwin	xorl	%ecx,%ecx
663bc3d5698SJohn Baldwin	movl	$255,%ebx
664bc3d5698SJohn Baldwin	movb	%dh,%cl
665bc3d5698SJohn Baldwin	andl	%edx,%ebx
666bc3d5698SJohn Baldwin	shrl	$16,%edx
667bc3d5698SJohn Baldwin	xorl	%eax,%eax
668bc3d5698SJohn Baldwin	movb	%dh,%al
669bc3d5698SJohn Baldwin	andl	$255,%edx
670bc3d5698SJohn Baldwin	movl	CAST_S_table0(,%ecx,4),%ecx
671bc3d5698SJohn Baldwin	movl	CAST_S_table1(,%ebx,4),%ebx
672bc3d5698SJohn Baldwin	xorl	%ebx,%ecx
673bc3d5698SJohn Baldwin	movl	CAST_S_table2(,%eax,4),%ebx
674bc3d5698SJohn Baldwin	subl	%ebx,%ecx
675bc3d5698SJohn Baldwin	movl	CAST_S_table3(,%edx,4),%ebx
676bc3d5698SJohn Baldwin	addl	%ebx,%ecx
677bc3d5698SJohn Baldwin	xorl	%ecx,%edi
678bc3d5698SJohn Baldwin
679bc3d5698SJohn Baldwin	movl	16(%ebp),%edx
680bc3d5698SJohn Baldwin	movl	20(%ebp),%ecx
681bc3d5698SJohn Baldwin	subl	%edi,%edx
682bc3d5698SJohn Baldwin	roll	%cl,%edx
683bc3d5698SJohn Baldwin	xorl	%ecx,%ecx
684bc3d5698SJohn Baldwin	movl	$255,%ebx
685bc3d5698SJohn Baldwin	movb	%dh,%cl
686bc3d5698SJohn Baldwin	andl	%edx,%ebx
687bc3d5698SJohn Baldwin	shrl	$16,%edx
688bc3d5698SJohn Baldwin	xorl	%eax,%eax
689bc3d5698SJohn Baldwin	movb	%dh,%al
690bc3d5698SJohn Baldwin	andl	$255,%edx
691bc3d5698SJohn Baldwin	movl	CAST_S_table0(,%ecx,4),%ecx
692bc3d5698SJohn Baldwin	movl	CAST_S_table1(,%ebx,4),%ebx
693bc3d5698SJohn Baldwin	addl	%ebx,%ecx
694bc3d5698SJohn Baldwin	movl	CAST_S_table2(,%eax,4),%ebx
695bc3d5698SJohn Baldwin	xorl	%ebx,%ecx
696bc3d5698SJohn Baldwin	movl	CAST_S_table3(,%edx,4),%ebx
697bc3d5698SJohn Baldwin	subl	%ebx,%ecx
698bc3d5698SJohn Baldwin	xorl	%ecx,%esi
699bc3d5698SJohn Baldwin
700bc3d5698SJohn Baldwin	movl	8(%ebp),%edx
701bc3d5698SJohn Baldwin	movl	12(%ebp),%ecx
702bc3d5698SJohn Baldwin	xorl	%esi,%edx
703bc3d5698SJohn Baldwin	roll	%cl,%edx
704bc3d5698SJohn Baldwin	xorl	%ecx,%ecx
705bc3d5698SJohn Baldwin	movl	$255,%ebx
706bc3d5698SJohn Baldwin	movb	%dh,%cl
707bc3d5698SJohn Baldwin	andl	%edx,%ebx
708bc3d5698SJohn Baldwin	shrl	$16,%edx
709bc3d5698SJohn Baldwin	xorl	%eax,%eax
710bc3d5698SJohn Baldwin	movb	%dh,%al
711bc3d5698SJohn Baldwin	andl	$255,%edx
712bc3d5698SJohn Baldwin	movl	CAST_S_table0(,%ecx,4),%ecx
713bc3d5698SJohn Baldwin	movl	CAST_S_table1(,%ebx,4),%ebx
714bc3d5698SJohn Baldwin	subl	%ebx,%ecx
715bc3d5698SJohn Baldwin	movl	CAST_S_table2(,%eax,4),%ebx
716bc3d5698SJohn Baldwin	addl	%ebx,%ecx
717bc3d5698SJohn Baldwin	movl	CAST_S_table3(,%edx,4),%ebx
718bc3d5698SJohn Baldwin	xorl	%ebx,%ecx
719bc3d5698SJohn Baldwin	xorl	%ecx,%edi
720bc3d5698SJohn Baldwin
721bc3d5698SJohn Baldwin	movl	(%ebp),%edx
722bc3d5698SJohn Baldwin	movl	4(%ebp),%ecx
723bc3d5698SJohn Baldwin	addl	%edi,%edx
724bc3d5698SJohn Baldwin	roll	%cl,%edx
725bc3d5698SJohn Baldwin	xorl	%ecx,%ecx
726bc3d5698SJohn Baldwin	movl	$255,%ebx
727bc3d5698SJohn Baldwin	movb	%dh,%cl
728bc3d5698SJohn Baldwin	andl	%edx,%ebx
729bc3d5698SJohn Baldwin	shrl	$16,%edx
730bc3d5698SJohn Baldwin	xorl	%eax,%eax
731bc3d5698SJohn Baldwin	movb	%dh,%al
732bc3d5698SJohn Baldwin	andl	$255,%edx
733bc3d5698SJohn Baldwin	movl	CAST_S_table0(,%ecx,4),%ecx
734bc3d5698SJohn Baldwin	movl	CAST_S_table1(,%ebx,4),%ebx
735bc3d5698SJohn Baldwin	xorl	%ebx,%ecx
736bc3d5698SJohn Baldwin	movl	CAST_S_table2(,%eax,4),%ebx
737bc3d5698SJohn Baldwin	subl	%ebx,%ecx
738bc3d5698SJohn Baldwin	movl	CAST_S_table3(,%edx,4),%ebx
739bc3d5698SJohn Baldwin	addl	%ebx,%ecx
740bc3d5698SJohn Baldwin	xorl	%ecx,%esi
741bc3d5698SJohn Baldwin	nop
742bc3d5698SJohn Baldwin	movl	20(%esp),%eax
743bc3d5698SJohn Baldwin	movl	%edi,4(%eax)
744bc3d5698SJohn Baldwin	movl	%esi,(%eax)
745bc3d5698SJohn Baldwin	popl	%edi
746bc3d5698SJohn Baldwin	popl	%esi
747bc3d5698SJohn Baldwin	popl	%ebx
748bc3d5698SJohn Baldwin	popl	%ebp
749bc3d5698SJohn Baldwin	ret
750bc3d5698SJohn Baldwin.size	CAST_decrypt,.-.L_CAST_decrypt_begin
751bc3d5698SJohn Baldwin.globl	CAST_cbc_encrypt
752bc3d5698SJohn Baldwin.type	CAST_cbc_encrypt,@function
753bc3d5698SJohn Baldwin.align	16
754bc3d5698SJohn BaldwinCAST_cbc_encrypt:
755bc3d5698SJohn Baldwin.L_CAST_cbc_encrypt_begin:
756*c0855eaaSJohn Baldwin	#ifdef __CET__
757*c0855eaaSJohn Baldwin
758*c0855eaaSJohn Baldwin.byte	243,15,30,251
759*c0855eaaSJohn Baldwin	#endif
760*c0855eaaSJohn Baldwin
761bc3d5698SJohn Baldwin
762bc3d5698SJohn Baldwin	pushl	%ebp
763bc3d5698SJohn Baldwin	pushl	%ebx
764bc3d5698SJohn Baldwin	pushl	%esi
765bc3d5698SJohn Baldwin	pushl	%edi
766bc3d5698SJohn Baldwin	movl	28(%esp),%ebp
767bc3d5698SJohn Baldwin
768bc3d5698SJohn Baldwin	movl	36(%esp),%ebx
769bc3d5698SJohn Baldwin	movl	(%ebx),%esi
770bc3d5698SJohn Baldwin	movl	4(%ebx),%edi
771bc3d5698SJohn Baldwin	pushl	%edi
772bc3d5698SJohn Baldwin	pushl	%esi
773bc3d5698SJohn Baldwin	pushl	%edi
774bc3d5698SJohn Baldwin	pushl	%esi
775bc3d5698SJohn Baldwin	movl	%esp,%ebx
776bc3d5698SJohn Baldwin	movl	36(%esp),%esi
777bc3d5698SJohn Baldwin	movl	40(%esp),%edi
778bc3d5698SJohn Baldwin
779bc3d5698SJohn Baldwin	movl	56(%esp),%ecx
780bc3d5698SJohn Baldwin
781bc3d5698SJohn Baldwin	movl	48(%esp),%eax
782bc3d5698SJohn Baldwin	pushl	%eax
783bc3d5698SJohn Baldwin	pushl	%ebx
784bc3d5698SJohn Baldwin	cmpl	$0,%ecx
785bc3d5698SJohn Baldwin	jz	.L002decrypt
786bc3d5698SJohn Baldwin	andl	$4294967288,%ebp
787bc3d5698SJohn Baldwin	movl	8(%esp),%eax
788bc3d5698SJohn Baldwin	movl	12(%esp),%ebx
789bc3d5698SJohn Baldwin	jz	.L003encrypt_finish
790bc3d5698SJohn Baldwin.L004encrypt_loop:
791bc3d5698SJohn Baldwin	movl	(%esi),%ecx
792bc3d5698SJohn Baldwin	movl	4(%esi),%edx
793bc3d5698SJohn Baldwin	xorl	%ecx,%eax
794bc3d5698SJohn Baldwin	xorl	%edx,%ebx
795bc3d5698SJohn Baldwin	bswap	%eax
796bc3d5698SJohn Baldwin	bswap	%ebx
797bc3d5698SJohn Baldwin	movl	%eax,8(%esp)
798bc3d5698SJohn Baldwin	movl	%ebx,12(%esp)
799bc3d5698SJohn Baldwin	call	.L_CAST_encrypt_begin
800bc3d5698SJohn Baldwin	movl	8(%esp),%eax
801bc3d5698SJohn Baldwin	movl	12(%esp),%ebx
802bc3d5698SJohn Baldwin	bswap	%eax
803bc3d5698SJohn Baldwin	bswap	%ebx
804bc3d5698SJohn Baldwin	movl	%eax,(%edi)
805bc3d5698SJohn Baldwin	movl	%ebx,4(%edi)
806bc3d5698SJohn Baldwin	addl	$8,%esi
807bc3d5698SJohn Baldwin	addl	$8,%edi
808bc3d5698SJohn Baldwin	subl	$8,%ebp
809bc3d5698SJohn Baldwin	jnz	.L004encrypt_loop
810bc3d5698SJohn Baldwin.L003encrypt_finish:
811bc3d5698SJohn Baldwin	movl	52(%esp),%ebp
812bc3d5698SJohn Baldwin	andl	$7,%ebp
813bc3d5698SJohn Baldwin	jz	.L005finish
814bc3d5698SJohn Baldwin	call	.L006PIC_point
815bc3d5698SJohn Baldwin.L006PIC_point:
816bc3d5698SJohn Baldwin	popl	%edx
817bc3d5698SJohn Baldwin	leal	.L007cbc_enc_jmp_table-.L006PIC_point(%edx),%ecx
818bc3d5698SJohn Baldwin	movl	(%ecx,%ebp,4),%ebp
819bc3d5698SJohn Baldwin	addl	%edx,%ebp
820bc3d5698SJohn Baldwin	xorl	%ecx,%ecx
821bc3d5698SJohn Baldwin	xorl	%edx,%edx
822bc3d5698SJohn Baldwin	jmp	*%ebp
823bc3d5698SJohn Baldwin.L008ej7:
824*c0855eaaSJohn Baldwin	#ifdef __CET__
825*c0855eaaSJohn Baldwin
826*c0855eaaSJohn Baldwin.byte	243,15,30,251
827*c0855eaaSJohn Baldwin	#endif
828*c0855eaaSJohn Baldwin
829bc3d5698SJohn Baldwin	movb	6(%esi),%dh
830bc3d5698SJohn Baldwin	shll	$8,%edx
831bc3d5698SJohn Baldwin.L009ej6:
832*c0855eaaSJohn Baldwin	#ifdef __CET__
833*c0855eaaSJohn Baldwin
834*c0855eaaSJohn Baldwin.byte	243,15,30,251
835*c0855eaaSJohn Baldwin	#endif
836*c0855eaaSJohn Baldwin
837bc3d5698SJohn Baldwin	movb	5(%esi),%dh
838bc3d5698SJohn Baldwin.L010ej5:
839*c0855eaaSJohn Baldwin	#ifdef __CET__
840*c0855eaaSJohn Baldwin
841*c0855eaaSJohn Baldwin.byte	243,15,30,251
842*c0855eaaSJohn Baldwin	#endif
843*c0855eaaSJohn Baldwin
844bc3d5698SJohn Baldwin	movb	4(%esi),%dl
845bc3d5698SJohn Baldwin.L011ej4:
846*c0855eaaSJohn Baldwin	#ifdef __CET__
847*c0855eaaSJohn Baldwin
848*c0855eaaSJohn Baldwin.byte	243,15,30,251
849*c0855eaaSJohn Baldwin	#endif
850*c0855eaaSJohn Baldwin
851bc3d5698SJohn Baldwin	movl	(%esi),%ecx
852bc3d5698SJohn Baldwin	jmp	.L012ejend
853bc3d5698SJohn Baldwin.L013ej3:
854*c0855eaaSJohn Baldwin	#ifdef __CET__
855*c0855eaaSJohn Baldwin
856*c0855eaaSJohn Baldwin.byte	243,15,30,251
857*c0855eaaSJohn Baldwin	#endif
858*c0855eaaSJohn Baldwin
859bc3d5698SJohn Baldwin	movb	2(%esi),%ch
860bc3d5698SJohn Baldwin	shll	$8,%ecx
861bc3d5698SJohn Baldwin.L014ej2:
862*c0855eaaSJohn Baldwin	#ifdef __CET__
863*c0855eaaSJohn Baldwin
864*c0855eaaSJohn Baldwin.byte	243,15,30,251
865*c0855eaaSJohn Baldwin	#endif
866*c0855eaaSJohn Baldwin
867bc3d5698SJohn Baldwin	movb	1(%esi),%ch
868bc3d5698SJohn Baldwin.L015ej1:
869*c0855eaaSJohn Baldwin	#ifdef __CET__
870*c0855eaaSJohn Baldwin
871*c0855eaaSJohn Baldwin.byte	243,15,30,251
872*c0855eaaSJohn Baldwin	#endif
873*c0855eaaSJohn Baldwin
874bc3d5698SJohn Baldwin	movb	(%esi),%cl
875bc3d5698SJohn Baldwin.L012ejend:
876bc3d5698SJohn Baldwin	xorl	%ecx,%eax
877bc3d5698SJohn Baldwin	xorl	%edx,%ebx
878bc3d5698SJohn Baldwin	bswap	%eax
879bc3d5698SJohn Baldwin	bswap	%ebx
880bc3d5698SJohn Baldwin	movl	%eax,8(%esp)
881bc3d5698SJohn Baldwin	movl	%ebx,12(%esp)
882bc3d5698SJohn Baldwin	call	.L_CAST_encrypt_begin
883bc3d5698SJohn Baldwin	movl	8(%esp),%eax
884bc3d5698SJohn Baldwin	movl	12(%esp),%ebx
885bc3d5698SJohn Baldwin	bswap	%eax
886bc3d5698SJohn Baldwin	bswap	%ebx
887bc3d5698SJohn Baldwin	movl	%eax,(%edi)
888bc3d5698SJohn Baldwin	movl	%ebx,4(%edi)
889bc3d5698SJohn Baldwin	jmp	.L005finish
890bc3d5698SJohn Baldwin.L002decrypt:
891bc3d5698SJohn Baldwin	andl	$4294967288,%ebp
892bc3d5698SJohn Baldwin	movl	16(%esp),%eax
893bc3d5698SJohn Baldwin	movl	20(%esp),%ebx
894bc3d5698SJohn Baldwin	jz	.L016decrypt_finish
895bc3d5698SJohn Baldwin.L017decrypt_loop:
896bc3d5698SJohn Baldwin	movl	(%esi),%eax
897bc3d5698SJohn Baldwin	movl	4(%esi),%ebx
898bc3d5698SJohn Baldwin	bswap	%eax
899bc3d5698SJohn Baldwin	bswap	%ebx
900bc3d5698SJohn Baldwin	movl	%eax,8(%esp)
901bc3d5698SJohn Baldwin	movl	%ebx,12(%esp)
902bc3d5698SJohn Baldwin	call	.L_CAST_decrypt_begin
903bc3d5698SJohn Baldwin	movl	8(%esp),%eax
904bc3d5698SJohn Baldwin	movl	12(%esp),%ebx
905bc3d5698SJohn Baldwin	bswap	%eax
906bc3d5698SJohn Baldwin	bswap	%ebx
907bc3d5698SJohn Baldwin	movl	16(%esp),%ecx
908bc3d5698SJohn Baldwin	movl	20(%esp),%edx
909bc3d5698SJohn Baldwin	xorl	%eax,%ecx
910bc3d5698SJohn Baldwin	xorl	%ebx,%edx
911bc3d5698SJohn Baldwin	movl	(%esi),%eax
912bc3d5698SJohn Baldwin	movl	4(%esi),%ebx
913bc3d5698SJohn Baldwin	movl	%ecx,(%edi)
914bc3d5698SJohn Baldwin	movl	%edx,4(%edi)
915bc3d5698SJohn Baldwin	movl	%eax,16(%esp)
916bc3d5698SJohn Baldwin	movl	%ebx,20(%esp)
917bc3d5698SJohn Baldwin	addl	$8,%esi
918bc3d5698SJohn Baldwin	addl	$8,%edi
919bc3d5698SJohn Baldwin	subl	$8,%ebp
920bc3d5698SJohn Baldwin	jnz	.L017decrypt_loop
921bc3d5698SJohn Baldwin.L016decrypt_finish:
922bc3d5698SJohn Baldwin	movl	52(%esp),%ebp
923bc3d5698SJohn Baldwin	andl	$7,%ebp
924bc3d5698SJohn Baldwin	jz	.L005finish
925bc3d5698SJohn Baldwin	movl	(%esi),%eax
926bc3d5698SJohn Baldwin	movl	4(%esi),%ebx
927bc3d5698SJohn Baldwin	bswap	%eax
928bc3d5698SJohn Baldwin	bswap	%ebx
929bc3d5698SJohn Baldwin	movl	%eax,8(%esp)
930bc3d5698SJohn Baldwin	movl	%ebx,12(%esp)
931bc3d5698SJohn Baldwin	call	.L_CAST_decrypt_begin
932bc3d5698SJohn Baldwin	movl	8(%esp),%eax
933bc3d5698SJohn Baldwin	movl	12(%esp),%ebx
934bc3d5698SJohn Baldwin	bswap	%eax
935bc3d5698SJohn Baldwin	bswap	%ebx
936bc3d5698SJohn Baldwin	movl	16(%esp),%ecx
937bc3d5698SJohn Baldwin	movl	20(%esp),%edx
938bc3d5698SJohn Baldwin	xorl	%eax,%ecx
939bc3d5698SJohn Baldwin	xorl	%ebx,%edx
940bc3d5698SJohn Baldwin	movl	(%esi),%eax
941bc3d5698SJohn Baldwin	movl	4(%esi),%ebx
942bc3d5698SJohn Baldwin.L018dj7:
943bc3d5698SJohn Baldwin	rorl	$16,%edx
944bc3d5698SJohn Baldwin	movb	%dl,6(%edi)
945bc3d5698SJohn Baldwin	shrl	$16,%edx
946bc3d5698SJohn Baldwin.L019dj6:
947bc3d5698SJohn Baldwin	movb	%dh,5(%edi)
948bc3d5698SJohn Baldwin.L020dj5:
949bc3d5698SJohn Baldwin	movb	%dl,4(%edi)
950bc3d5698SJohn Baldwin.L021dj4:
951bc3d5698SJohn Baldwin	movl	%ecx,(%edi)
952bc3d5698SJohn Baldwin	jmp	.L022djend
953bc3d5698SJohn Baldwin.L023dj3:
954bc3d5698SJohn Baldwin	rorl	$16,%ecx
955bc3d5698SJohn Baldwin	movb	%cl,2(%edi)
956bc3d5698SJohn Baldwin	shll	$16,%ecx
957bc3d5698SJohn Baldwin.L024dj2:
958bc3d5698SJohn Baldwin	movb	%ch,1(%esi)
959bc3d5698SJohn Baldwin.L025dj1:
960bc3d5698SJohn Baldwin	movb	%cl,(%esi)
961bc3d5698SJohn Baldwin.L022djend:
962bc3d5698SJohn Baldwin	jmp	.L005finish
963bc3d5698SJohn Baldwin.L005finish:
964bc3d5698SJohn Baldwin	movl	60(%esp),%ecx
965bc3d5698SJohn Baldwin	addl	$24,%esp
966bc3d5698SJohn Baldwin	movl	%eax,(%ecx)
967bc3d5698SJohn Baldwin	movl	%ebx,4(%ecx)
968bc3d5698SJohn Baldwin	popl	%edi
969bc3d5698SJohn Baldwin	popl	%esi
970bc3d5698SJohn Baldwin	popl	%ebx
971bc3d5698SJohn Baldwin	popl	%ebp
972bc3d5698SJohn Baldwin	ret
973bc3d5698SJohn Baldwin.align	64
974bc3d5698SJohn Baldwin.L007cbc_enc_jmp_table:
975bc3d5698SJohn Baldwin.long	0
976bc3d5698SJohn Baldwin.long	.L015ej1-.L006PIC_point
977bc3d5698SJohn Baldwin.long	.L014ej2-.L006PIC_point
978bc3d5698SJohn Baldwin.long	.L013ej3-.L006PIC_point
979bc3d5698SJohn Baldwin.long	.L011ej4-.L006PIC_point
980bc3d5698SJohn Baldwin.long	.L010ej5-.L006PIC_point
981bc3d5698SJohn Baldwin.long	.L009ej6-.L006PIC_point
982bc3d5698SJohn Baldwin.long	.L008ej7-.L006PIC_point
983bc3d5698SJohn Baldwin.align	64
984bc3d5698SJohn Baldwin.size	CAST_cbc_encrypt,.-.L_CAST_cbc_encrypt_begin
985*c0855eaaSJohn Baldwin
986*c0855eaaSJohn Baldwin	.section ".note.gnu.property", "a"
987*c0855eaaSJohn Baldwin	.p2align 2
988*c0855eaaSJohn Baldwin	.long 1f - 0f
989*c0855eaaSJohn Baldwin	.long 4f - 1f
990*c0855eaaSJohn Baldwin	.long 5
991*c0855eaaSJohn Baldwin0:
992*c0855eaaSJohn Baldwin	.asciz "GNU"
993*c0855eaaSJohn Baldwin1:
994*c0855eaaSJohn Baldwin	.p2align 2
995*c0855eaaSJohn Baldwin	.long 0xc0000002
996*c0855eaaSJohn Baldwin	.long 3f - 2f
997*c0855eaaSJohn Baldwin2:
998*c0855eaaSJohn Baldwin	.long 3
999*c0855eaaSJohn Baldwin3:
1000*c0855eaaSJohn Baldwin	.p2align 2
1001*c0855eaaSJohn Baldwin4:
1002bc3d5698SJohn Baldwin#else
1003bc3d5698SJohn Baldwin.text
1004bc3d5698SJohn Baldwin.globl	CAST_encrypt
1005bc3d5698SJohn Baldwin.type	CAST_encrypt,@function
1006bc3d5698SJohn Baldwin.align	16
1007bc3d5698SJohn BaldwinCAST_encrypt:
1008bc3d5698SJohn Baldwin.L_CAST_encrypt_begin:
1009*c0855eaaSJohn Baldwin	#ifdef __CET__
1010*c0855eaaSJohn Baldwin
1011*c0855eaaSJohn Baldwin.byte	243,15,30,251
1012*c0855eaaSJohn Baldwin	#endif
1013*c0855eaaSJohn Baldwin
1014bc3d5698SJohn Baldwin
1015bc3d5698SJohn Baldwin	pushl	%ebp
1016bc3d5698SJohn Baldwin	pushl	%ebx
1017bc3d5698SJohn Baldwin	movl	12(%esp),%ebx
1018bc3d5698SJohn Baldwin	movl	16(%esp),%ebp
1019bc3d5698SJohn Baldwin	pushl	%esi
1020bc3d5698SJohn Baldwin	pushl	%edi
1021bc3d5698SJohn Baldwin
1022bc3d5698SJohn Baldwin	movl	(%ebx),%edi
1023bc3d5698SJohn Baldwin	movl	4(%ebx),%esi
1024bc3d5698SJohn Baldwin
1025bc3d5698SJohn Baldwin	movl	128(%ebp),%eax
1026bc3d5698SJohn Baldwin	pushl	%eax
1027bc3d5698SJohn Baldwin	xorl	%eax,%eax
1028bc3d5698SJohn Baldwin
1029bc3d5698SJohn Baldwin	movl	(%ebp),%edx
1030bc3d5698SJohn Baldwin	movl	4(%ebp),%ecx
1031bc3d5698SJohn Baldwin	addl	%esi,%edx
1032bc3d5698SJohn Baldwin	roll	%cl,%edx
1033bc3d5698SJohn Baldwin	xorl	%ecx,%ecx
1034bc3d5698SJohn Baldwin	movl	$255,%ebx
1035bc3d5698SJohn Baldwin	movb	%dh,%cl
1036bc3d5698SJohn Baldwin	andl	%edx,%ebx
1037bc3d5698SJohn Baldwin	shrl	$16,%edx
1038bc3d5698SJohn Baldwin	xorl	%eax,%eax
1039bc3d5698SJohn Baldwin	movb	%dh,%al
1040bc3d5698SJohn Baldwin	andl	$255,%edx
1041bc3d5698SJohn Baldwin	movl	CAST_S_table0(,%ecx,4),%ecx
1042bc3d5698SJohn Baldwin	movl	CAST_S_table1(,%ebx,4),%ebx
1043bc3d5698SJohn Baldwin	xorl	%ebx,%ecx
1044bc3d5698SJohn Baldwin	movl	CAST_S_table2(,%eax,4),%ebx
1045bc3d5698SJohn Baldwin	subl	%ebx,%ecx
1046bc3d5698SJohn Baldwin	movl	CAST_S_table3(,%edx,4),%ebx
1047bc3d5698SJohn Baldwin	addl	%ebx,%ecx
1048bc3d5698SJohn Baldwin	xorl	%ecx,%edi
1049bc3d5698SJohn Baldwin
1050bc3d5698SJohn Baldwin	movl	8(%ebp),%edx
1051bc3d5698SJohn Baldwin	movl	12(%ebp),%ecx
1052bc3d5698SJohn Baldwin	xorl	%edi,%edx
1053bc3d5698SJohn Baldwin	roll	%cl,%edx
1054bc3d5698SJohn Baldwin	xorl	%ecx,%ecx
1055bc3d5698SJohn Baldwin	movl	$255,%ebx
1056bc3d5698SJohn Baldwin	movb	%dh,%cl
1057bc3d5698SJohn Baldwin	andl	%edx,%ebx
1058bc3d5698SJohn Baldwin	shrl	$16,%edx
1059bc3d5698SJohn Baldwin	xorl	%eax,%eax
1060bc3d5698SJohn Baldwin	movb	%dh,%al
1061bc3d5698SJohn Baldwin	andl	$255,%edx
1062bc3d5698SJohn Baldwin	movl	CAST_S_table0(,%ecx,4),%ecx
1063bc3d5698SJohn Baldwin	movl	CAST_S_table1(,%ebx,4),%ebx
1064bc3d5698SJohn Baldwin	subl	%ebx,%ecx
1065bc3d5698SJohn Baldwin	movl	CAST_S_table2(,%eax,4),%ebx
1066bc3d5698SJohn Baldwin	addl	%ebx,%ecx
1067bc3d5698SJohn Baldwin	movl	CAST_S_table3(,%edx,4),%ebx
1068bc3d5698SJohn Baldwin	xorl	%ebx,%ecx
1069bc3d5698SJohn Baldwin	xorl	%ecx,%esi
1070bc3d5698SJohn Baldwin
1071bc3d5698SJohn Baldwin	movl	16(%ebp),%edx
1072bc3d5698SJohn Baldwin	movl	20(%ebp),%ecx
1073bc3d5698SJohn Baldwin	subl	%esi,%edx
1074bc3d5698SJohn Baldwin	roll	%cl,%edx
1075bc3d5698SJohn Baldwin	xorl	%ecx,%ecx
1076bc3d5698SJohn Baldwin	movl	$255,%ebx
1077bc3d5698SJohn Baldwin	movb	%dh,%cl
1078bc3d5698SJohn Baldwin	andl	%edx,%ebx
1079bc3d5698SJohn Baldwin	shrl	$16,%edx
1080bc3d5698SJohn Baldwin	xorl	%eax,%eax
1081bc3d5698SJohn Baldwin	movb	%dh,%al
1082bc3d5698SJohn Baldwin	andl	$255,%edx
1083bc3d5698SJohn Baldwin	movl	CAST_S_table0(,%ecx,4),%ecx
1084bc3d5698SJohn Baldwin	movl	CAST_S_table1(,%ebx,4),%ebx
1085bc3d5698SJohn Baldwin	addl	%ebx,%ecx
1086bc3d5698SJohn Baldwin	movl	CAST_S_table2(,%eax,4),%ebx
1087bc3d5698SJohn Baldwin	xorl	%ebx,%ecx
1088bc3d5698SJohn Baldwin	movl	CAST_S_table3(,%edx,4),%ebx
1089bc3d5698SJohn Baldwin	subl	%ebx,%ecx
1090bc3d5698SJohn Baldwin	xorl	%ecx,%edi
1091bc3d5698SJohn Baldwin
1092bc3d5698SJohn Baldwin	movl	24(%ebp),%edx
1093bc3d5698SJohn Baldwin	movl	28(%ebp),%ecx
1094bc3d5698SJohn Baldwin	addl	%edi,%edx
1095bc3d5698SJohn Baldwin	roll	%cl,%edx
1096bc3d5698SJohn Baldwin	xorl	%ecx,%ecx
1097bc3d5698SJohn Baldwin	movl	$255,%ebx
1098bc3d5698SJohn Baldwin	movb	%dh,%cl
1099bc3d5698SJohn Baldwin	andl	%edx,%ebx
1100bc3d5698SJohn Baldwin	shrl	$16,%edx
1101bc3d5698SJohn Baldwin	xorl	%eax,%eax
1102bc3d5698SJohn Baldwin	movb	%dh,%al
1103bc3d5698SJohn Baldwin	andl	$255,%edx
1104bc3d5698SJohn Baldwin	movl	CAST_S_table0(,%ecx,4),%ecx
1105bc3d5698SJohn Baldwin	movl	CAST_S_table1(,%ebx,4),%ebx
1106bc3d5698SJohn Baldwin	xorl	%ebx,%ecx
1107bc3d5698SJohn Baldwin	movl	CAST_S_table2(,%eax,4),%ebx
1108bc3d5698SJohn Baldwin	subl	%ebx,%ecx
1109bc3d5698SJohn Baldwin	movl	CAST_S_table3(,%edx,4),%ebx
1110bc3d5698SJohn Baldwin	addl	%ebx,%ecx
1111bc3d5698SJohn Baldwin	xorl	%ecx,%esi
1112bc3d5698SJohn Baldwin
1113bc3d5698SJohn Baldwin	movl	32(%ebp),%edx
1114bc3d5698SJohn Baldwin	movl	36(%ebp),%ecx
1115bc3d5698SJohn Baldwin	xorl	%esi,%edx
1116bc3d5698SJohn Baldwin	roll	%cl,%edx
1117bc3d5698SJohn Baldwin	xorl	%ecx,%ecx
1118bc3d5698SJohn Baldwin	movl	$255,%ebx
1119bc3d5698SJohn Baldwin	movb	%dh,%cl
1120bc3d5698SJohn Baldwin	andl	%edx,%ebx
1121bc3d5698SJohn Baldwin	shrl	$16,%edx
1122bc3d5698SJohn Baldwin	xorl	%eax,%eax
1123bc3d5698SJohn Baldwin	movb	%dh,%al
1124bc3d5698SJohn Baldwin	andl	$255,%edx
1125bc3d5698SJohn Baldwin	movl	CAST_S_table0(,%ecx,4),%ecx
1126bc3d5698SJohn Baldwin	movl	CAST_S_table1(,%ebx,4),%ebx
1127bc3d5698SJohn Baldwin	subl	%ebx,%ecx
1128bc3d5698SJohn Baldwin	movl	CAST_S_table2(,%eax,4),%ebx
1129bc3d5698SJohn Baldwin	addl	%ebx,%ecx
1130bc3d5698SJohn Baldwin	movl	CAST_S_table3(,%edx,4),%ebx
1131bc3d5698SJohn Baldwin	xorl	%ebx,%ecx
1132bc3d5698SJohn Baldwin	xorl	%ecx,%edi
1133bc3d5698SJohn Baldwin
1134bc3d5698SJohn Baldwin	movl	40(%ebp),%edx
1135bc3d5698SJohn Baldwin	movl	44(%ebp),%ecx
1136bc3d5698SJohn Baldwin	subl	%edi,%edx
1137bc3d5698SJohn Baldwin	roll	%cl,%edx
1138bc3d5698SJohn Baldwin	xorl	%ecx,%ecx
1139bc3d5698SJohn Baldwin	movl	$255,%ebx
1140bc3d5698SJohn Baldwin	movb	%dh,%cl
1141bc3d5698SJohn Baldwin	andl	%edx,%ebx
1142bc3d5698SJohn Baldwin	shrl	$16,%edx
1143bc3d5698SJohn Baldwin	xorl	%eax,%eax
1144bc3d5698SJohn Baldwin	movb	%dh,%al
1145bc3d5698SJohn Baldwin	andl	$255,%edx
1146bc3d5698SJohn Baldwin	movl	CAST_S_table0(,%ecx,4),%ecx
1147bc3d5698SJohn Baldwin	movl	CAST_S_table1(,%ebx,4),%ebx
1148bc3d5698SJohn Baldwin	addl	%ebx,%ecx
1149bc3d5698SJohn Baldwin	movl	CAST_S_table2(,%eax,4),%ebx
1150bc3d5698SJohn Baldwin	xorl	%ebx,%ecx
1151bc3d5698SJohn Baldwin	movl	CAST_S_table3(,%edx,4),%ebx
1152bc3d5698SJohn Baldwin	subl	%ebx,%ecx
1153bc3d5698SJohn Baldwin	xorl	%ecx,%esi
1154bc3d5698SJohn Baldwin
1155bc3d5698SJohn Baldwin	movl	48(%ebp),%edx
1156bc3d5698SJohn Baldwin	movl	52(%ebp),%ecx
1157bc3d5698SJohn Baldwin	addl	%esi,%edx
1158bc3d5698SJohn Baldwin	roll	%cl,%edx
1159bc3d5698SJohn Baldwin	xorl	%ecx,%ecx
1160bc3d5698SJohn Baldwin	movl	$255,%ebx
1161bc3d5698SJohn Baldwin	movb	%dh,%cl
1162bc3d5698SJohn Baldwin	andl	%edx,%ebx
1163bc3d5698SJohn Baldwin	shrl	$16,%edx
1164bc3d5698SJohn Baldwin	xorl	%eax,%eax
1165bc3d5698SJohn Baldwin	movb	%dh,%al
1166bc3d5698SJohn Baldwin	andl	$255,%edx
1167bc3d5698SJohn Baldwin	movl	CAST_S_table0(,%ecx,4),%ecx
1168bc3d5698SJohn Baldwin	movl	CAST_S_table1(,%ebx,4),%ebx
1169bc3d5698SJohn Baldwin	xorl	%ebx,%ecx
1170bc3d5698SJohn Baldwin	movl	CAST_S_table2(,%eax,4),%ebx
1171bc3d5698SJohn Baldwin	subl	%ebx,%ecx
1172bc3d5698SJohn Baldwin	movl	CAST_S_table3(,%edx,4),%ebx
1173bc3d5698SJohn Baldwin	addl	%ebx,%ecx
1174bc3d5698SJohn Baldwin	xorl	%ecx,%edi
1175bc3d5698SJohn Baldwin
1176bc3d5698SJohn Baldwin	movl	56(%ebp),%edx
1177bc3d5698SJohn Baldwin	movl	60(%ebp),%ecx
1178bc3d5698SJohn Baldwin	xorl	%edi,%edx
1179bc3d5698SJohn Baldwin	roll	%cl,%edx
1180bc3d5698SJohn Baldwin	xorl	%ecx,%ecx
1181bc3d5698SJohn Baldwin	movl	$255,%ebx
1182bc3d5698SJohn Baldwin	movb	%dh,%cl
1183bc3d5698SJohn Baldwin	andl	%edx,%ebx
1184bc3d5698SJohn Baldwin	shrl	$16,%edx
1185bc3d5698SJohn Baldwin	xorl	%eax,%eax
1186bc3d5698SJohn Baldwin	movb	%dh,%al
1187bc3d5698SJohn Baldwin	andl	$255,%edx
1188bc3d5698SJohn Baldwin	movl	CAST_S_table0(,%ecx,4),%ecx
1189bc3d5698SJohn Baldwin	movl	CAST_S_table1(,%ebx,4),%ebx
1190bc3d5698SJohn Baldwin	subl	%ebx,%ecx
1191bc3d5698SJohn Baldwin	movl	CAST_S_table2(,%eax,4),%ebx
1192bc3d5698SJohn Baldwin	addl	%ebx,%ecx
1193bc3d5698SJohn Baldwin	movl	CAST_S_table3(,%edx,4),%ebx
1194bc3d5698SJohn Baldwin	xorl	%ebx,%ecx
1195bc3d5698SJohn Baldwin	xorl	%ecx,%esi
1196bc3d5698SJohn Baldwin
1197bc3d5698SJohn Baldwin	movl	64(%ebp),%edx
1198bc3d5698SJohn Baldwin	movl	68(%ebp),%ecx
1199bc3d5698SJohn Baldwin	subl	%esi,%edx
1200bc3d5698SJohn Baldwin	roll	%cl,%edx
1201bc3d5698SJohn Baldwin	xorl	%ecx,%ecx
1202bc3d5698SJohn Baldwin	movl	$255,%ebx
1203bc3d5698SJohn Baldwin	movb	%dh,%cl
1204bc3d5698SJohn Baldwin	andl	%edx,%ebx
1205bc3d5698SJohn Baldwin	shrl	$16,%edx
1206bc3d5698SJohn Baldwin	xorl	%eax,%eax
1207bc3d5698SJohn Baldwin	movb	%dh,%al
1208bc3d5698SJohn Baldwin	andl	$255,%edx
1209bc3d5698SJohn Baldwin	movl	CAST_S_table0(,%ecx,4),%ecx
1210bc3d5698SJohn Baldwin	movl	CAST_S_table1(,%ebx,4),%ebx
1211bc3d5698SJohn Baldwin	addl	%ebx,%ecx
1212bc3d5698SJohn Baldwin	movl	CAST_S_table2(,%eax,4),%ebx
1213bc3d5698SJohn Baldwin	xorl	%ebx,%ecx
1214bc3d5698SJohn Baldwin	movl	CAST_S_table3(,%edx,4),%ebx
1215bc3d5698SJohn Baldwin	subl	%ebx,%ecx
1216bc3d5698SJohn Baldwin	xorl	%ecx,%edi
1217bc3d5698SJohn Baldwin
1218bc3d5698SJohn Baldwin	movl	72(%ebp),%edx
1219bc3d5698SJohn Baldwin	movl	76(%ebp),%ecx
1220bc3d5698SJohn Baldwin	addl	%edi,%edx
1221bc3d5698SJohn Baldwin	roll	%cl,%edx
1222bc3d5698SJohn Baldwin	xorl	%ecx,%ecx
1223bc3d5698SJohn Baldwin	movl	$255,%ebx
1224bc3d5698SJohn Baldwin	movb	%dh,%cl
1225bc3d5698SJohn Baldwin	andl	%edx,%ebx
1226bc3d5698SJohn Baldwin	shrl	$16,%edx
1227bc3d5698SJohn Baldwin	xorl	%eax,%eax
1228bc3d5698SJohn Baldwin	movb	%dh,%al
1229bc3d5698SJohn Baldwin	andl	$255,%edx
1230bc3d5698SJohn Baldwin	movl	CAST_S_table0(,%ecx,4),%ecx
1231bc3d5698SJohn Baldwin	movl	CAST_S_table1(,%ebx,4),%ebx
1232bc3d5698SJohn Baldwin	xorl	%ebx,%ecx
1233bc3d5698SJohn Baldwin	movl	CAST_S_table2(,%eax,4),%ebx
1234bc3d5698SJohn Baldwin	subl	%ebx,%ecx
1235bc3d5698SJohn Baldwin	movl	CAST_S_table3(,%edx,4),%ebx
1236bc3d5698SJohn Baldwin	addl	%ebx,%ecx
1237bc3d5698SJohn Baldwin	xorl	%ecx,%esi
1238bc3d5698SJohn Baldwin
1239bc3d5698SJohn Baldwin	movl	80(%ebp),%edx
1240bc3d5698SJohn Baldwin	movl	84(%ebp),%ecx
1241bc3d5698SJohn Baldwin	xorl	%esi,%edx
1242bc3d5698SJohn Baldwin	roll	%cl,%edx
1243bc3d5698SJohn Baldwin	xorl	%ecx,%ecx
1244bc3d5698SJohn Baldwin	movl	$255,%ebx
1245bc3d5698SJohn Baldwin	movb	%dh,%cl
1246bc3d5698SJohn Baldwin	andl	%edx,%ebx
1247bc3d5698SJohn Baldwin	shrl	$16,%edx
1248bc3d5698SJohn Baldwin	xorl	%eax,%eax
1249bc3d5698SJohn Baldwin	movb	%dh,%al
1250bc3d5698SJohn Baldwin	andl	$255,%edx
1251bc3d5698SJohn Baldwin	movl	CAST_S_table0(,%ecx,4),%ecx
1252bc3d5698SJohn Baldwin	movl	CAST_S_table1(,%ebx,4),%ebx
1253bc3d5698SJohn Baldwin	subl	%ebx,%ecx
1254bc3d5698SJohn Baldwin	movl	CAST_S_table2(,%eax,4),%ebx
1255bc3d5698SJohn Baldwin	addl	%ebx,%ecx
1256bc3d5698SJohn Baldwin	movl	CAST_S_table3(,%edx,4),%ebx
1257bc3d5698SJohn Baldwin	xorl	%ebx,%ecx
1258bc3d5698SJohn Baldwin	xorl	%ecx,%edi
1259bc3d5698SJohn Baldwin
1260bc3d5698SJohn Baldwin	movl	88(%ebp),%edx
1261bc3d5698SJohn Baldwin	movl	92(%ebp),%ecx
1262bc3d5698SJohn Baldwin	subl	%edi,%edx
1263bc3d5698SJohn Baldwin	roll	%cl,%edx
1264bc3d5698SJohn Baldwin	xorl	%ecx,%ecx
1265bc3d5698SJohn Baldwin	movl	$255,%ebx
1266bc3d5698SJohn Baldwin	movb	%dh,%cl
1267bc3d5698SJohn Baldwin	andl	%edx,%ebx
1268bc3d5698SJohn Baldwin	shrl	$16,%edx
1269bc3d5698SJohn Baldwin	xorl	%eax,%eax
1270bc3d5698SJohn Baldwin	movb	%dh,%al
1271bc3d5698SJohn Baldwin	andl	$255,%edx
1272bc3d5698SJohn Baldwin	movl	CAST_S_table0(,%ecx,4),%ecx
1273bc3d5698SJohn Baldwin	movl	CAST_S_table1(,%ebx,4),%ebx
1274bc3d5698SJohn Baldwin	addl	%ebx,%ecx
1275bc3d5698SJohn Baldwin	movl	CAST_S_table2(,%eax,4),%ebx
1276bc3d5698SJohn Baldwin	xorl	%ebx,%ecx
1277bc3d5698SJohn Baldwin	movl	CAST_S_table3(,%edx,4),%ebx
1278bc3d5698SJohn Baldwin	subl	%ebx,%ecx
1279bc3d5698SJohn Baldwin	xorl	%ecx,%esi
1280bc3d5698SJohn Baldwin
1281bc3d5698SJohn Baldwin	popl	%edx
1282bc3d5698SJohn Baldwin	orl	%edx,%edx
1283bc3d5698SJohn Baldwin	jnz	.L000cast_enc_done
1284bc3d5698SJohn Baldwin
1285bc3d5698SJohn Baldwin	movl	96(%ebp),%edx
1286bc3d5698SJohn Baldwin	movl	100(%ebp),%ecx
1287bc3d5698SJohn Baldwin	addl	%esi,%edx
1288bc3d5698SJohn Baldwin	roll	%cl,%edx
1289bc3d5698SJohn Baldwin	xorl	%ecx,%ecx
1290bc3d5698SJohn Baldwin	movl	$255,%ebx
1291bc3d5698SJohn Baldwin	movb	%dh,%cl
1292bc3d5698SJohn Baldwin	andl	%edx,%ebx
1293bc3d5698SJohn Baldwin	shrl	$16,%edx
1294bc3d5698SJohn Baldwin	xorl	%eax,%eax
1295bc3d5698SJohn Baldwin	movb	%dh,%al
1296bc3d5698SJohn Baldwin	andl	$255,%edx
1297bc3d5698SJohn Baldwin	movl	CAST_S_table0(,%ecx,4),%ecx
1298bc3d5698SJohn Baldwin	movl	CAST_S_table1(,%ebx,4),%ebx
1299bc3d5698SJohn Baldwin	xorl	%ebx,%ecx
1300bc3d5698SJohn Baldwin	movl	CAST_S_table2(,%eax,4),%ebx
1301bc3d5698SJohn Baldwin	subl	%ebx,%ecx
1302bc3d5698SJohn Baldwin	movl	CAST_S_table3(,%edx,4),%ebx
1303bc3d5698SJohn Baldwin	addl	%ebx,%ecx
1304bc3d5698SJohn Baldwin	xorl	%ecx,%edi
1305bc3d5698SJohn Baldwin
1306bc3d5698SJohn Baldwin	movl	104(%ebp),%edx
1307bc3d5698SJohn Baldwin	movl	108(%ebp),%ecx
1308bc3d5698SJohn Baldwin	xorl	%edi,%edx
1309bc3d5698SJohn Baldwin	roll	%cl,%edx
1310bc3d5698SJohn Baldwin	xorl	%ecx,%ecx
1311bc3d5698SJohn Baldwin	movl	$255,%ebx
1312bc3d5698SJohn Baldwin	movb	%dh,%cl
1313bc3d5698SJohn Baldwin	andl	%edx,%ebx
1314bc3d5698SJohn Baldwin	shrl	$16,%edx
1315bc3d5698SJohn Baldwin	xorl	%eax,%eax
1316bc3d5698SJohn Baldwin	movb	%dh,%al
1317bc3d5698SJohn Baldwin	andl	$255,%edx
1318bc3d5698SJohn Baldwin	movl	CAST_S_table0(,%ecx,4),%ecx
1319bc3d5698SJohn Baldwin	movl	CAST_S_table1(,%ebx,4),%ebx
1320bc3d5698SJohn Baldwin	subl	%ebx,%ecx
1321bc3d5698SJohn Baldwin	movl	CAST_S_table2(,%eax,4),%ebx
1322bc3d5698SJohn Baldwin	addl	%ebx,%ecx
1323bc3d5698SJohn Baldwin	movl	CAST_S_table3(,%edx,4),%ebx
1324bc3d5698SJohn Baldwin	xorl	%ebx,%ecx
1325bc3d5698SJohn Baldwin	xorl	%ecx,%esi
1326bc3d5698SJohn Baldwin
1327bc3d5698SJohn Baldwin	movl	112(%ebp),%edx
1328bc3d5698SJohn Baldwin	movl	116(%ebp),%ecx
1329bc3d5698SJohn Baldwin	subl	%esi,%edx
1330bc3d5698SJohn Baldwin	roll	%cl,%edx
1331bc3d5698SJohn Baldwin	xorl	%ecx,%ecx
1332bc3d5698SJohn Baldwin	movl	$255,%ebx
1333bc3d5698SJohn Baldwin	movb	%dh,%cl
1334bc3d5698SJohn Baldwin	andl	%edx,%ebx
1335bc3d5698SJohn Baldwin	shrl	$16,%edx
1336bc3d5698SJohn Baldwin	xorl	%eax,%eax
1337bc3d5698SJohn Baldwin	movb	%dh,%al
1338bc3d5698SJohn Baldwin	andl	$255,%edx
1339bc3d5698SJohn Baldwin	movl	CAST_S_table0(,%ecx,4),%ecx
1340bc3d5698SJohn Baldwin	movl	CAST_S_table1(,%ebx,4),%ebx
1341bc3d5698SJohn Baldwin	addl	%ebx,%ecx
1342bc3d5698SJohn Baldwin	movl	CAST_S_table2(,%eax,4),%ebx
1343bc3d5698SJohn Baldwin	xorl	%ebx,%ecx
1344bc3d5698SJohn Baldwin	movl	CAST_S_table3(,%edx,4),%ebx
1345bc3d5698SJohn Baldwin	subl	%ebx,%ecx
1346bc3d5698SJohn Baldwin	xorl	%ecx,%edi
1347bc3d5698SJohn Baldwin
1348bc3d5698SJohn Baldwin	movl	120(%ebp),%edx
1349bc3d5698SJohn Baldwin	movl	124(%ebp),%ecx
1350bc3d5698SJohn Baldwin	addl	%edi,%edx
1351bc3d5698SJohn Baldwin	roll	%cl,%edx
1352bc3d5698SJohn Baldwin	xorl	%ecx,%ecx
1353bc3d5698SJohn Baldwin	movl	$255,%ebx
1354bc3d5698SJohn Baldwin	movb	%dh,%cl
1355bc3d5698SJohn Baldwin	andl	%edx,%ebx
1356bc3d5698SJohn Baldwin	shrl	$16,%edx
1357bc3d5698SJohn Baldwin	xorl	%eax,%eax
1358bc3d5698SJohn Baldwin	movb	%dh,%al
1359bc3d5698SJohn Baldwin	andl	$255,%edx
1360bc3d5698SJohn Baldwin	movl	CAST_S_table0(,%ecx,4),%ecx
1361bc3d5698SJohn Baldwin	movl	CAST_S_table1(,%ebx,4),%ebx
1362bc3d5698SJohn Baldwin	xorl	%ebx,%ecx
1363bc3d5698SJohn Baldwin	movl	CAST_S_table2(,%eax,4),%ebx
1364bc3d5698SJohn Baldwin	subl	%ebx,%ecx
1365bc3d5698SJohn Baldwin	movl	CAST_S_table3(,%edx,4),%ebx
1366bc3d5698SJohn Baldwin	addl	%ebx,%ecx
1367bc3d5698SJohn Baldwin	xorl	%ecx,%esi
1368bc3d5698SJohn Baldwin.L000cast_enc_done:
1369bc3d5698SJohn Baldwin	nop
1370bc3d5698SJohn Baldwin	movl	20(%esp),%eax
1371bc3d5698SJohn Baldwin	movl	%edi,4(%eax)
1372bc3d5698SJohn Baldwin	movl	%esi,(%eax)
1373bc3d5698SJohn Baldwin	popl	%edi
1374bc3d5698SJohn Baldwin	popl	%esi
1375bc3d5698SJohn Baldwin	popl	%ebx
1376bc3d5698SJohn Baldwin	popl	%ebp
1377bc3d5698SJohn Baldwin	ret
1378bc3d5698SJohn Baldwin.size	CAST_encrypt,.-.L_CAST_encrypt_begin
1379bc3d5698SJohn Baldwin.globl	CAST_decrypt
1380bc3d5698SJohn Baldwin.type	CAST_decrypt,@function
1381bc3d5698SJohn Baldwin.align	16
1382bc3d5698SJohn BaldwinCAST_decrypt:
1383bc3d5698SJohn Baldwin.L_CAST_decrypt_begin:
1384*c0855eaaSJohn Baldwin	#ifdef __CET__
1385*c0855eaaSJohn Baldwin
1386*c0855eaaSJohn Baldwin.byte	243,15,30,251
1387*c0855eaaSJohn Baldwin	#endif
1388*c0855eaaSJohn Baldwin
1389bc3d5698SJohn Baldwin
1390bc3d5698SJohn Baldwin	pushl	%ebp
1391bc3d5698SJohn Baldwin	pushl	%ebx
1392bc3d5698SJohn Baldwin	movl	12(%esp),%ebx
1393bc3d5698SJohn Baldwin	movl	16(%esp),%ebp
1394bc3d5698SJohn Baldwin	pushl	%esi
1395bc3d5698SJohn Baldwin	pushl	%edi
1396bc3d5698SJohn Baldwin
1397bc3d5698SJohn Baldwin	movl	(%ebx),%edi
1398bc3d5698SJohn Baldwin	movl	4(%ebx),%esi
1399bc3d5698SJohn Baldwin
1400bc3d5698SJohn Baldwin	movl	128(%ebp),%eax
1401bc3d5698SJohn Baldwin	orl	%eax,%eax
1402bc3d5698SJohn Baldwin	jnz	.L001cast_dec_skip
1403bc3d5698SJohn Baldwin	xorl	%eax,%eax
1404bc3d5698SJohn Baldwin
1405bc3d5698SJohn Baldwin	movl	120(%ebp),%edx
1406bc3d5698SJohn Baldwin	movl	124(%ebp),%ecx
1407bc3d5698SJohn Baldwin	addl	%esi,%edx
1408bc3d5698SJohn Baldwin	roll	%cl,%edx
1409bc3d5698SJohn Baldwin	xorl	%ecx,%ecx
1410bc3d5698SJohn Baldwin	movl	$255,%ebx
1411bc3d5698SJohn Baldwin	movb	%dh,%cl
1412bc3d5698SJohn Baldwin	andl	%edx,%ebx
1413bc3d5698SJohn Baldwin	shrl	$16,%edx
1414bc3d5698SJohn Baldwin	xorl	%eax,%eax
1415bc3d5698SJohn Baldwin	movb	%dh,%al
1416bc3d5698SJohn Baldwin	andl	$255,%edx
1417bc3d5698SJohn Baldwin	movl	CAST_S_table0(,%ecx,4),%ecx
1418bc3d5698SJohn Baldwin	movl	CAST_S_table1(,%ebx,4),%ebx
1419bc3d5698SJohn Baldwin	xorl	%ebx,%ecx
1420bc3d5698SJohn Baldwin	movl	CAST_S_table2(,%eax,4),%ebx
1421bc3d5698SJohn Baldwin	subl	%ebx,%ecx
1422bc3d5698SJohn Baldwin	movl	CAST_S_table3(,%edx,4),%ebx
1423bc3d5698SJohn Baldwin	addl	%ebx,%ecx
1424bc3d5698SJohn Baldwin	xorl	%ecx,%edi
1425bc3d5698SJohn Baldwin
1426bc3d5698SJohn Baldwin	movl	112(%ebp),%edx
1427bc3d5698SJohn Baldwin	movl	116(%ebp),%ecx
1428bc3d5698SJohn Baldwin	subl	%edi,%edx
1429bc3d5698SJohn Baldwin	roll	%cl,%edx
1430bc3d5698SJohn Baldwin	xorl	%ecx,%ecx
1431bc3d5698SJohn Baldwin	movl	$255,%ebx
1432bc3d5698SJohn Baldwin	movb	%dh,%cl
1433bc3d5698SJohn Baldwin	andl	%edx,%ebx
1434bc3d5698SJohn Baldwin	shrl	$16,%edx
1435bc3d5698SJohn Baldwin	xorl	%eax,%eax
1436bc3d5698SJohn Baldwin	movb	%dh,%al
1437bc3d5698SJohn Baldwin	andl	$255,%edx
1438bc3d5698SJohn Baldwin	movl	CAST_S_table0(,%ecx,4),%ecx
1439bc3d5698SJohn Baldwin	movl	CAST_S_table1(,%ebx,4),%ebx
1440bc3d5698SJohn Baldwin	addl	%ebx,%ecx
1441bc3d5698SJohn Baldwin	movl	CAST_S_table2(,%eax,4),%ebx
1442bc3d5698SJohn Baldwin	xorl	%ebx,%ecx
1443bc3d5698SJohn Baldwin	movl	CAST_S_table3(,%edx,4),%ebx
1444bc3d5698SJohn Baldwin	subl	%ebx,%ecx
1445bc3d5698SJohn Baldwin	xorl	%ecx,%esi
1446bc3d5698SJohn Baldwin
1447bc3d5698SJohn Baldwin	movl	104(%ebp),%edx
1448bc3d5698SJohn Baldwin	movl	108(%ebp),%ecx
1449bc3d5698SJohn Baldwin	xorl	%esi,%edx
1450bc3d5698SJohn Baldwin	roll	%cl,%edx
1451bc3d5698SJohn Baldwin	xorl	%ecx,%ecx
1452bc3d5698SJohn Baldwin	movl	$255,%ebx
1453bc3d5698SJohn Baldwin	movb	%dh,%cl
1454bc3d5698SJohn Baldwin	andl	%edx,%ebx
1455bc3d5698SJohn Baldwin	shrl	$16,%edx
1456bc3d5698SJohn Baldwin	xorl	%eax,%eax
1457bc3d5698SJohn Baldwin	movb	%dh,%al
1458bc3d5698SJohn Baldwin	andl	$255,%edx
1459bc3d5698SJohn Baldwin	movl	CAST_S_table0(,%ecx,4),%ecx
1460bc3d5698SJohn Baldwin	movl	CAST_S_table1(,%ebx,4),%ebx
1461bc3d5698SJohn Baldwin	subl	%ebx,%ecx
1462bc3d5698SJohn Baldwin	movl	CAST_S_table2(,%eax,4),%ebx
1463bc3d5698SJohn Baldwin	addl	%ebx,%ecx
1464bc3d5698SJohn Baldwin	movl	CAST_S_table3(,%edx,4),%ebx
1465bc3d5698SJohn Baldwin	xorl	%ebx,%ecx
1466bc3d5698SJohn Baldwin	xorl	%ecx,%edi
1467bc3d5698SJohn Baldwin
1468bc3d5698SJohn Baldwin	movl	96(%ebp),%edx
1469bc3d5698SJohn Baldwin	movl	100(%ebp),%ecx
1470bc3d5698SJohn Baldwin	addl	%edi,%edx
1471bc3d5698SJohn Baldwin	roll	%cl,%edx
1472bc3d5698SJohn Baldwin	xorl	%ecx,%ecx
1473bc3d5698SJohn Baldwin	movl	$255,%ebx
1474bc3d5698SJohn Baldwin	movb	%dh,%cl
1475bc3d5698SJohn Baldwin	andl	%edx,%ebx
1476bc3d5698SJohn Baldwin	shrl	$16,%edx
1477bc3d5698SJohn Baldwin	xorl	%eax,%eax
1478bc3d5698SJohn Baldwin	movb	%dh,%al
1479bc3d5698SJohn Baldwin	andl	$255,%edx
1480bc3d5698SJohn Baldwin	movl	CAST_S_table0(,%ecx,4),%ecx
1481bc3d5698SJohn Baldwin	movl	CAST_S_table1(,%ebx,4),%ebx
1482bc3d5698SJohn Baldwin	xorl	%ebx,%ecx
1483bc3d5698SJohn Baldwin	movl	CAST_S_table2(,%eax,4),%ebx
1484bc3d5698SJohn Baldwin	subl	%ebx,%ecx
1485bc3d5698SJohn Baldwin	movl	CAST_S_table3(,%edx,4),%ebx
1486bc3d5698SJohn Baldwin	addl	%ebx,%ecx
1487bc3d5698SJohn Baldwin	xorl	%ecx,%esi
1488bc3d5698SJohn Baldwin.L001cast_dec_skip:
1489bc3d5698SJohn Baldwin
1490bc3d5698SJohn Baldwin	movl	88(%ebp),%edx
1491bc3d5698SJohn Baldwin	movl	92(%ebp),%ecx
1492bc3d5698SJohn Baldwin	subl	%esi,%edx
1493bc3d5698SJohn Baldwin	roll	%cl,%edx
1494bc3d5698SJohn Baldwin	xorl	%ecx,%ecx
1495bc3d5698SJohn Baldwin	movl	$255,%ebx
1496bc3d5698SJohn Baldwin	movb	%dh,%cl
1497bc3d5698SJohn Baldwin	andl	%edx,%ebx
1498bc3d5698SJohn Baldwin	shrl	$16,%edx
1499bc3d5698SJohn Baldwin	xorl	%eax,%eax
1500bc3d5698SJohn Baldwin	movb	%dh,%al
1501bc3d5698SJohn Baldwin	andl	$255,%edx
1502bc3d5698SJohn Baldwin	movl	CAST_S_table0(,%ecx,4),%ecx
1503bc3d5698SJohn Baldwin	movl	CAST_S_table1(,%ebx,4),%ebx
1504bc3d5698SJohn Baldwin	addl	%ebx,%ecx
1505bc3d5698SJohn Baldwin	movl	CAST_S_table2(,%eax,4),%ebx
1506bc3d5698SJohn Baldwin	xorl	%ebx,%ecx
1507bc3d5698SJohn Baldwin	movl	CAST_S_table3(,%edx,4),%ebx
1508bc3d5698SJohn Baldwin	subl	%ebx,%ecx
1509bc3d5698SJohn Baldwin	xorl	%ecx,%edi
1510bc3d5698SJohn Baldwin
1511bc3d5698SJohn Baldwin	movl	80(%ebp),%edx
1512bc3d5698SJohn Baldwin	movl	84(%ebp),%ecx
1513bc3d5698SJohn Baldwin	xorl	%edi,%edx
1514bc3d5698SJohn Baldwin	roll	%cl,%edx
1515bc3d5698SJohn Baldwin	xorl	%ecx,%ecx
1516bc3d5698SJohn Baldwin	movl	$255,%ebx
1517bc3d5698SJohn Baldwin	movb	%dh,%cl
1518bc3d5698SJohn Baldwin	andl	%edx,%ebx
1519bc3d5698SJohn Baldwin	shrl	$16,%edx
1520bc3d5698SJohn Baldwin	xorl	%eax,%eax
1521bc3d5698SJohn Baldwin	movb	%dh,%al
1522bc3d5698SJohn Baldwin	andl	$255,%edx
1523bc3d5698SJohn Baldwin	movl	CAST_S_table0(,%ecx,4),%ecx
1524bc3d5698SJohn Baldwin	movl	CAST_S_table1(,%ebx,4),%ebx
1525bc3d5698SJohn Baldwin	subl	%ebx,%ecx
1526bc3d5698SJohn Baldwin	movl	CAST_S_table2(,%eax,4),%ebx
1527bc3d5698SJohn Baldwin	addl	%ebx,%ecx
1528bc3d5698SJohn Baldwin	movl	CAST_S_table3(,%edx,4),%ebx
1529bc3d5698SJohn Baldwin	xorl	%ebx,%ecx
1530bc3d5698SJohn Baldwin	xorl	%ecx,%esi
1531bc3d5698SJohn Baldwin
1532bc3d5698SJohn Baldwin	movl	72(%ebp),%edx
1533bc3d5698SJohn Baldwin	movl	76(%ebp),%ecx
1534bc3d5698SJohn Baldwin	addl	%esi,%edx
1535bc3d5698SJohn Baldwin	roll	%cl,%edx
1536bc3d5698SJohn Baldwin	xorl	%ecx,%ecx
1537bc3d5698SJohn Baldwin	movl	$255,%ebx
1538bc3d5698SJohn Baldwin	movb	%dh,%cl
1539bc3d5698SJohn Baldwin	andl	%edx,%ebx
1540bc3d5698SJohn Baldwin	shrl	$16,%edx
1541bc3d5698SJohn Baldwin	xorl	%eax,%eax
1542bc3d5698SJohn Baldwin	movb	%dh,%al
1543bc3d5698SJohn Baldwin	andl	$255,%edx
1544bc3d5698SJohn Baldwin	movl	CAST_S_table0(,%ecx,4),%ecx
1545bc3d5698SJohn Baldwin	movl	CAST_S_table1(,%ebx,4),%ebx
1546bc3d5698SJohn Baldwin	xorl	%ebx,%ecx
1547bc3d5698SJohn Baldwin	movl	CAST_S_table2(,%eax,4),%ebx
1548bc3d5698SJohn Baldwin	subl	%ebx,%ecx
1549bc3d5698SJohn Baldwin	movl	CAST_S_table3(,%edx,4),%ebx
1550bc3d5698SJohn Baldwin	addl	%ebx,%ecx
1551bc3d5698SJohn Baldwin	xorl	%ecx,%edi
1552bc3d5698SJohn Baldwin
1553bc3d5698SJohn Baldwin	movl	64(%ebp),%edx
1554bc3d5698SJohn Baldwin	movl	68(%ebp),%ecx
1555bc3d5698SJohn Baldwin	subl	%edi,%edx
1556bc3d5698SJohn Baldwin	roll	%cl,%edx
1557bc3d5698SJohn Baldwin	xorl	%ecx,%ecx
1558bc3d5698SJohn Baldwin	movl	$255,%ebx
1559bc3d5698SJohn Baldwin	movb	%dh,%cl
1560bc3d5698SJohn Baldwin	andl	%edx,%ebx
1561bc3d5698SJohn Baldwin	shrl	$16,%edx
1562bc3d5698SJohn Baldwin	xorl	%eax,%eax
1563bc3d5698SJohn Baldwin	movb	%dh,%al
1564bc3d5698SJohn Baldwin	andl	$255,%edx
1565bc3d5698SJohn Baldwin	movl	CAST_S_table0(,%ecx,4),%ecx
1566bc3d5698SJohn Baldwin	movl	CAST_S_table1(,%ebx,4),%ebx
1567bc3d5698SJohn Baldwin	addl	%ebx,%ecx
1568bc3d5698SJohn Baldwin	movl	CAST_S_table2(,%eax,4),%ebx
1569bc3d5698SJohn Baldwin	xorl	%ebx,%ecx
1570bc3d5698SJohn Baldwin	movl	CAST_S_table3(,%edx,4),%ebx
1571bc3d5698SJohn Baldwin	subl	%ebx,%ecx
1572bc3d5698SJohn Baldwin	xorl	%ecx,%esi
1573bc3d5698SJohn Baldwin
1574bc3d5698SJohn Baldwin	movl	56(%ebp),%edx
1575bc3d5698SJohn Baldwin	movl	60(%ebp),%ecx
1576bc3d5698SJohn Baldwin	xorl	%esi,%edx
1577bc3d5698SJohn Baldwin	roll	%cl,%edx
1578bc3d5698SJohn Baldwin	xorl	%ecx,%ecx
1579bc3d5698SJohn Baldwin	movl	$255,%ebx
1580bc3d5698SJohn Baldwin	movb	%dh,%cl
1581bc3d5698SJohn Baldwin	andl	%edx,%ebx
1582bc3d5698SJohn Baldwin	shrl	$16,%edx
1583bc3d5698SJohn Baldwin	xorl	%eax,%eax
1584bc3d5698SJohn Baldwin	movb	%dh,%al
1585bc3d5698SJohn Baldwin	andl	$255,%edx
1586bc3d5698SJohn Baldwin	movl	CAST_S_table0(,%ecx,4),%ecx
1587bc3d5698SJohn Baldwin	movl	CAST_S_table1(,%ebx,4),%ebx
1588bc3d5698SJohn Baldwin	subl	%ebx,%ecx
1589bc3d5698SJohn Baldwin	movl	CAST_S_table2(,%eax,4),%ebx
1590bc3d5698SJohn Baldwin	addl	%ebx,%ecx
1591bc3d5698SJohn Baldwin	movl	CAST_S_table3(,%edx,4),%ebx
1592bc3d5698SJohn Baldwin	xorl	%ebx,%ecx
1593bc3d5698SJohn Baldwin	xorl	%ecx,%edi
1594bc3d5698SJohn Baldwin
1595bc3d5698SJohn Baldwin	movl	48(%ebp),%edx
1596bc3d5698SJohn Baldwin	movl	52(%ebp),%ecx
1597bc3d5698SJohn Baldwin	addl	%edi,%edx
1598bc3d5698SJohn Baldwin	roll	%cl,%edx
1599bc3d5698SJohn Baldwin	xorl	%ecx,%ecx
1600bc3d5698SJohn Baldwin	movl	$255,%ebx
1601bc3d5698SJohn Baldwin	movb	%dh,%cl
1602bc3d5698SJohn Baldwin	andl	%edx,%ebx
1603bc3d5698SJohn Baldwin	shrl	$16,%edx
1604bc3d5698SJohn Baldwin	xorl	%eax,%eax
1605bc3d5698SJohn Baldwin	movb	%dh,%al
1606bc3d5698SJohn Baldwin	andl	$255,%edx
1607bc3d5698SJohn Baldwin	movl	CAST_S_table0(,%ecx,4),%ecx
1608bc3d5698SJohn Baldwin	movl	CAST_S_table1(,%ebx,4),%ebx
1609bc3d5698SJohn Baldwin	xorl	%ebx,%ecx
1610bc3d5698SJohn Baldwin	movl	CAST_S_table2(,%eax,4),%ebx
1611bc3d5698SJohn Baldwin	subl	%ebx,%ecx
1612bc3d5698SJohn Baldwin	movl	CAST_S_table3(,%edx,4),%ebx
1613bc3d5698SJohn Baldwin	addl	%ebx,%ecx
1614bc3d5698SJohn Baldwin	xorl	%ecx,%esi
1615bc3d5698SJohn Baldwin
1616bc3d5698SJohn Baldwin	movl	40(%ebp),%edx
1617bc3d5698SJohn Baldwin	movl	44(%ebp),%ecx
1618bc3d5698SJohn Baldwin	subl	%esi,%edx
1619bc3d5698SJohn Baldwin	roll	%cl,%edx
1620bc3d5698SJohn Baldwin	xorl	%ecx,%ecx
1621bc3d5698SJohn Baldwin	movl	$255,%ebx
1622bc3d5698SJohn Baldwin	movb	%dh,%cl
1623bc3d5698SJohn Baldwin	andl	%edx,%ebx
1624bc3d5698SJohn Baldwin	shrl	$16,%edx
1625bc3d5698SJohn Baldwin	xorl	%eax,%eax
1626bc3d5698SJohn Baldwin	movb	%dh,%al
1627bc3d5698SJohn Baldwin	andl	$255,%edx
1628bc3d5698SJohn Baldwin	movl	CAST_S_table0(,%ecx,4),%ecx
1629bc3d5698SJohn Baldwin	movl	CAST_S_table1(,%ebx,4),%ebx
1630bc3d5698SJohn Baldwin	addl	%ebx,%ecx
1631bc3d5698SJohn Baldwin	movl	CAST_S_table2(,%eax,4),%ebx
1632bc3d5698SJohn Baldwin	xorl	%ebx,%ecx
1633bc3d5698SJohn Baldwin	movl	CAST_S_table3(,%edx,4),%ebx
1634bc3d5698SJohn Baldwin	subl	%ebx,%ecx
1635bc3d5698SJohn Baldwin	xorl	%ecx,%edi
1636bc3d5698SJohn Baldwin
1637bc3d5698SJohn Baldwin	movl	32(%ebp),%edx
1638bc3d5698SJohn Baldwin	movl	36(%ebp),%ecx
1639bc3d5698SJohn Baldwin	xorl	%edi,%edx
1640bc3d5698SJohn Baldwin	roll	%cl,%edx
1641bc3d5698SJohn Baldwin	xorl	%ecx,%ecx
1642bc3d5698SJohn Baldwin	movl	$255,%ebx
1643bc3d5698SJohn Baldwin	movb	%dh,%cl
1644bc3d5698SJohn Baldwin	andl	%edx,%ebx
1645bc3d5698SJohn Baldwin	shrl	$16,%edx
1646bc3d5698SJohn Baldwin	xorl	%eax,%eax
1647bc3d5698SJohn Baldwin	movb	%dh,%al
1648bc3d5698SJohn Baldwin	andl	$255,%edx
1649bc3d5698SJohn Baldwin	movl	CAST_S_table0(,%ecx,4),%ecx
1650bc3d5698SJohn Baldwin	movl	CAST_S_table1(,%ebx,4),%ebx
1651bc3d5698SJohn Baldwin	subl	%ebx,%ecx
1652bc3d5698SJohn Baldwin	movl	CAST_S_table2(,%eax,4),%ebx
1653bc3d5698SJohn Baldwin	addl	%ebx,%ecx
1654bc3d5698SJohn Baldwin	movl	CAST_S_table3(,%edx,4),%ebx
1655bc3d5698SJohn Baldwin	xorl	%ebx,%ecx
1656bc3d5698SJohn Baldwin	xorl	%ecx,%esi
1657bc3d5698SJohn Baldwin
1658bc3d5698SJohn Baldwin	movl	24(%ebp),%edx
1659bc3d5698SJohn Baldwin	movl	28(%ebp),%ecx
1660bc3d5698SJohn Baldwin	addl	%esi,%edx
1661bc3d5698SJohn Baldwin	roll	%cl,%edx
1662bc3d5698SJohn Baldwin	xorl	%ecx,%ecx
1663bc3d5698SJohn Baldwin	movl	$255,%ebx
1664bc3d5698SJohn Baldwin	movb	%dh,%cl
1665bc3d5698SJohn Baldwin	andl	%edx,%ebx
1666bc3d5698SJohn Baldwin	shrl	$16,%edx
1667bc3d5698SJohn Baldwin	xorl	%eax,%eax
1668bc3d5698SJohn Baldwin	movb	%dh,%al
1669bc3d5698SJohn Baldwin	andl	$255,%edx
1670bc3d5698SJohn Baldwin	movl	CAST_S_table0(,%ecx,4),%ecx
1671bc3d5698SJohn Baldwin	movl	CAST_S_table1(,%ebx,4),%ebx
1672bc3d5698SJohn Baldwin	xorl	%ebx,%ecx
1673bc3d5698SJohn Baldwin	movl	CAST_S_table2(,%eax,4),%ebx
1674bc3d5698SJohn Baldwin	subl	%ebx,%ecx
1675bc3d5698SJohn Baldwin	movl	CAST_S_table3(,%edx,4),%ebx
1676bc3d5698SJohn Baldwin	addl	%ebx,%ecx
1677bc3d5698SJohn Baldwin	xorl	%ecx,%edi
1678bc3d5698SJohn Baldwin
1679bc3d5698SJohn Baldwin	movl	16(%ebp),%edx
1680bc3d5698SJohn Baldwin	movl	20(%ebp),%ecx
1681bc3d5698SJohn Baldwin	subl	%edi,%edx
1682bc3d5698SJohn Baldwin	roll	%cl,%edx
1683bc3d5698SJohn Baldwin	xorl	%ecx,%ecx
1684bc3d5698SJohn Baldwin	movl	$255,%ebx
1685bc3d5698SJohn Baldwin	movb	%dh,%cl
1686bc3d5698SJohn Baldwin	andl	%edx,%ebx
1687bc3d5698SJohn Baldwin	shrl	$16,%edx
1688bc3d5698SJohn Baldwin	xorl	%eax,%eax
1689bc3d5698SJohn Baldwin	movb	%dh,%al
1690bc3d5698SJohn Baldwin	andl	$255,%edx
1691bc3d5698SJohn Baldwin	movl	CAST_S_table0(,%ecx,4),%ecx
1692bc3d5698SJohn Baldwin	movl	CAST_S_table1(,%ebx,4),%ebx
1693bc3d5698SJohn Baldwin	addl	%ebx,%ecx
1694bc3d5698SJohn Baldwin	movl	CAST_S_table2(,%eax,4),%ebx
1695bc3d5698SJohn Baldwin	xorl	%ebx,%ecx
1696bc3d5698SJohn Baldwin	movl	CAST_S_table3(,%edx,4),%ebx
1697bc3d5698SJohn Baldwin	subl	%ebx,%ecx
1698bc3d5698SJohn Baldwin	xorl	%ecx,%esi
1699bc3d5698SJohn Baldwin
1700bc3d5698SJohn Baldwin	movl	8(%ebp),%edx
1701bc3d5698SJohn Baldwin	movl	12(%ebp),%ecx
1702bc3d5698SJohn Baldwin	xorl	%esi,%edx
1703bc3d5698SJohn Baldwin	roll	%cl,%edx
1704bc3d5698SJohn Baldwin	xorl	%ecx,%ecx
1705bc3d5698SJohn Baldwin	movl	$255,%ebx
1706bc3d5698SJohn Baldwin	movb	%dh,%cl
1707bc3d5698SJohn Baldwin	andl	%edx,%ebx
1708bc3d5698SJohn Baldwin	shrl	$16,%edx
1709bc3d5698SJohn Baldwin	xorl	%eax,%eax
1710bc3d5698SJohn Baldwin	movb	%dh,%al
1711bc3d5698SJohn Baldwin	andl	$255,%edx
1712bc3d5698SJohn Baldwin	movl	CAST_S_table0(,%ecx,4),%ecx
1713bc3d5698SJohn Baldwin	movl	CAST_S_table1(,%ebx,4),%ebx
1714bc3d5698SJohn Baldwin	subl	%ebx,%ecx
1715bc3d5698SJohn Baldwin	movl	CAST_S_table2(,%eax,4),%ebx
1716bc3d5698SJohn Baldwin	addl	%ebx,%ecx
1717bc3d5698SJohn Baldwin	movl	CAST_S_table3(,%edx,4),%ebx
1718bc3d5698SJohn Baldwin	xorl	%ebx,%ecx
1719bc3d5698SJohn Baldwin	xorl	%ecx,%edi
1720bc3d5698SJohn Baldwin
1721bc3d5698SJohn Baldwin	movl	(%ebp),%edx
1722bc3d5698SJohn Baldwin	movl	4(%ebp),%ecx
1723bc3d5698SJohn Baldwin	addl	%edi,%edx
1724bc3d5698SJohn Baldwin	roll	%cl,%edx
1725bc3d5698SJohn Baldwin	xorl	%ecx,%ecx
1726bc3d5698SJohn Baldwin	movl	$255,%ebx
1727bc3d5698SJohn Baldwin	movb	%dh,%cl
1728bc3d5698SJohn Baldwin	andl	%edx,%ebx
1729bc3d5698SJohn Baldwin	shrl	$16,%edx
1730bc3d5698SJohn Baldwin	xorl	%eax,%eax
1731bc3d5698SJohn Baldwin	movb	%dh,%al
1732bc3d5698SJohn Baldwin	andl	$255,%edx
1733bc3d5698SJohn Baldwin	movl	CAST_S_table0(,%ecx,4),%ecx
1734bc3d5698SJohn Baldwin	movl	CAST_S_table1(,%ebx,4),%ebx
1735bc3d5698SJohn Baldwin	xorl	%ebx,%ecx
1736bc3d5698SJohn Baldwin	movl	CAST_S_table2(,%eax,4),%ebx
1737bc3d5698SJohn Baldwin	subl	%ebx,%ecx
1738bc3d5698SJohn Baldwin	movl	CAST_S_table3(,%edx,4),%ebx
1739bc3d5698SJohn Baldwin	addl	%ebx,%ecx
1740bc3d5698SJohn Baldwin	xorl	%ecx,%esi
1741bc3d5698SJohn Baldwin	nop
1742bc3d5698SJohn Baldwin	movl	20(%esp),%eax
1743bc3d5698SJohn Baldwin	movl	%edi,4(%eax)
1744bc3d5698SJohn Baldwin	movl	%esi,(%eax)
1745bc3d5698SJohn Baldwin	popl	%edi
1746bc3d5698SJohn Baldwin	popl	%esi
1747bc3d5698SJohn Baldwin	popl	%ebx
1748bc3d5698SJohn Baldwin	popl	%ebp
1749bc3d5698SJohn Baldwin	ret
1750bc3d5698SJohn Baldwin.size	CAST_decrypt,.-.L_CAST_decrypt_begin
1751bc3d5698SJohn Baldwin.globl	CAST_cbc_encrypt
1752bc3d5698SJohn Baldwin.type	CAST_cbc_encrypt,@function
1753bc3d5698SJohn Baldwin.align	16
1754bc3d5698SJohn BaldwinCAST_cbc_encrypt:
1755bc3d5698SJohn Baldwin.L_CAST_cbc_encrypt_begin:
1756*c0855eaaSJohn Baldwin	#ifdef __CET__
1757*c0855eaaSJohn Baldwin
1758*c0855eaaSJohn Baldwin.byte	243,15,30,251
1759*c0855eaaSJohn Baldwin	#endif
1760*c0855eaaSJohn Baldwin
1761bc3d5698SJohn Baldwin
1762bc3d5698SJohn Baldwin	pushl	%ebp
1763bc3d5698SJohn Baldwin	pushl	%ebx
1764bc3d5698SJohn Baldwin	pushl	%esi
1765bc3d5698SJohn Baldwin	pushl	%edi
1766bc3d5698SJohn Baldwin	movl	28(%esp),%ebp
1767bc3d5698SJohn Baldwin
1768bc3d5698SJohn Baldwin	movl	36(%esp),%ebx
1769bc3d5698SJohn Baldwin	movl	(%ebx),%esi
1770bc3d5698SJohn Baldwin	movl	4(%ebx),%edi
1771bc3d5698SJohn Baldwin	pushl	%edi
1772bc3d5698SJohn Baldwin	pushl	%esi
1773bc3d5698SJohn Baldwin	pushl	%edi
1774bc3d5698SJohn Baldwin	pushl	%esi
1775bc3d5698SJohn Baldwin	movl	%esp,%ebx
1776bc3d5698SJohn Baldwin	movl	36(%esp),%esi
1777bc3d5698SJohn Baldwin	movl	40(%esp),%edi
1778bc3d5698SJohn Baldwin
1779bc3d5698SJohn Baldwin	movl	56(%esp),%ecx
1780bc3d5698SJohn Baldwin
1781bc3d5698SJohn Baldwin	movl	48(%esp),%eax
1782bc3d5698SJohn Baldwin	pushl	%eax
1783bc3d5698SJohn Baldwin	pushl	%ebx
1784bc3d5698SJohn Baldwin	cmpl	$0,%ecx
1785bc3d5698SJohn Baldwin	jz	.L002decrypt
1786bc3d5698SJohn Baldwin	andl	$4294967288,%ebp
1787bc3d5698SJohn Baldwin	movl	8(%esp),%eax
1788bc3d5698SJohn Baldwin	movl	12(%esp),%ebx
1789bc3d5698SJohn Baldwin	jz	.L003encrypt_finish
1790bc3d5698SJohn Baldwin.L004encrypt_loop:
1791bc3d5698SJohn Baldwin	movl	(%esi),%ecx
1792bc3d5698SJohn Baldwin	movl	4(%esi),%edx
1793bc3d5698SJohn Baldwin	xorl	%ecx,%eax
1794bc3d5698SJohn Baldwin	xorl	%edx,%ebx
1795bc3d5698SJohn Baldwin	bswap	%eax
1796bc3d5698SJohn Baldwin	bswap	%ebx
1797bc3d5698SJohn Baldwin	movl	%eax,8(%esp)
1798bc3d5698SJohn Baldwin	movl	%ebx,12(%esp)
1799bc3d5698SJohn Baldwin	call	.L_CAST_encrypt_begin
1800bc3d5698SJohn Baldwin	movl	8(%esp),%eax
1801bc3d5698SJohn Baldwin	movl	12(%esp),%ebx
1802bc3d5698SJohn Baldwin	bswap	%eax
1803bc3d5698SJohn Baldwin	bswap	%ebx
1804bc3d5698SJohn Baldwin	movl	%eax,(%edi)
1805bc3d5698SJohn Baldwin	movl	%ebx,4(%edi)
1806bc3d5698SJohn Baldwin	addl	$8,%esi
1807bc3d5698SJohn Baldwin	addl	$8,%edi
1808bc3d5698SJohn Baldwin	subl	$8,%ebp
1809bc3d5698SJohn Baldwin	jnz	.L004encrypt_loop
1810bc3d5698SJohn Baldwin.L003encrypt_finish:
1811bc3d5698SJohn Baldwin	movl	52(%esp),%ebp
1812bc3d5698SJohn Baldwin	andl	$7,%ebp
1813bc3d5698SJohn Baldwin	jz	.L005finish
1814bc3d5698SJohn Baldwin	call	.L006PIC_point
1815bc3d5698SJohn Baldwin.L006PIC_point:
1816bc3d5698SJohn Baldwin	popl	%edx
1817bc3d5698SJohn Baldwin	leal	.L007cbc_enc_jmp_table-.L006PIC_point(%edx),%ecx
1818bc3d5698SJohn Baldwin	movl	(%ecx,%ebp,4),%ebp
1819bc3d5698SJohn Baldwin	addl	%edx,%ebp
1820bc3d5698SJohn Baldwin	xorl	%ecx,%ecx
1821bc3d5698SJohn Baldwin	xorl	%edx,%edx
1822bc3d5698SJohn Baldwin	jmp	*%ebp
1823bc3d5698SJohn Baldwin.L008ej7:
1824*c0855eaaSJohn Baldwin	#ifdef __CET__
1825*c0855eaaSJohn Baldwin
1826*c0855eaaSJohn Baldwin.byte	243,15,30,251
1827*c0855eaaSJohn Baldwin	#endif
1828*c0855eaaSJohn Baldwin
1829bc3d5698SJohn Baldwin	movb	6(%esi),%dh
1830bc3d5698SJohn Baldwin	shll	$8,%edx
1831bc3d5698SJohn Baldwin.L009ej6:
1832*c0855eaaSJohn Baldwin	#ifdef __CET__
1833*c0855eaaSJohn Baldwin
1834*c0855eaaSJohn Baldwin.byte	243,15,30,251
1835*c0855eaaSJohn Baldwin	#endif
1836*c0855eaaSJohn Baldwin
1837bc3d5698SJohn Baldwin	movb	5(%esi),%dh
1838bc3d5698SJohn Baldwin.L010ej5:
1839*c0855eaaSJohn Baldwin	#ifdef __CET__
1840*c0855eaaSJohn Baldwin
1841*c0855eaaSJohn Baldwin.byte	243,15,30,251
1842*c0855eaaSJohn Baldwin	#endif
1843*c0855eaaSJohn Baldwin
1844bc3d5698SJohn Baldwin	movb	4(%esi),%dl
1845bc3d5698SJohn Baldwin.L011ej4:
1846*c0855eaaSJohn Baldwin	#ifdef __CET__
1847*c0855eaaSJohn Baldwin
1848*c0855eaaSJohn Baldwin.byte	243,15,30,251
1849*c0855eaaSJohn Baldwin	#endif
1850*c0855eaaSJohn Baldwin
1851bc3d5698SJohn Baldwin	movl	(%esi),%ecx
1852bc3d5698SJohn Baldwin	jmp	.L012ejend
1853bc3d5698SJohn Baldwin.L013ej3:
1854*c0855eaaSJohn Baldwin	#ifdef __CET__
1855*c0855eaaSJohn Baldwin
1856*c0855eaaSJohn Baldwin.byte	243,15,30,251
1857*c0855eaaSJohn Baldwin	#endif
1858*c0855eaaSJohn Baldwin
1859bc3d5698SJohn Baldwin	movb	2(%esi),%ch
1860bc3d5698SJohn Baldwin	shll	$8,%ecx
1861bc3d5698SJohn Baldwin.L014ej2:
1862*c0855eaaSJohn Baldwin	#ifdef __CET__
1863*c0855eaaSJohn Baldwin
1864*c0855eaaSJohn Baldwin.byte	243,15,30,251
1865*c0855eaaSJohn Baldwin	#endif
1866*c0855eaaSJohn Baldwin
1867bc3d5698SJohn Baldwin	movb	1(%esi),%ch
1868bc3d5698SJohn Baldwin.L015ej1:
1869*c0855eaaSJohn Baldwin	#ifdef __CET__
1870*c0855eaaSJohn Baldwin
1871*c0855eaaSJohn Baldwin.byte	243,15,30,251
1872*c0855eaaSJohn Baldwin	#endif
1873*c0855eaaSJohn Baldwin
1874bc3d5698SJohn Baldwin	movb	(%esi),%cl
1875bc3d5698SJohn Baldwin.L012ejend:
1876bc3d5698SJohn Baldwin	xorl	%ecx,%eax
1877bc3d5698SJohn Baldwin	xorl	%edx,%ebx
1878bc3d5698SJohn Baldwin	bswap	%eax
1879bc3d5698SJohn Baldwin	bswap	%ebx
1880bc3d5698SJohn Baldwin	movl	%eax,8(%esp)
1881bc3d5698SJohn Baldwin	movl	%ebx,12(%esp)
1882bc3d5698SJohn Baldwin	call	.L_CAST_encrypt_begin
1883bc3d5698SJohn Baldwin	movl	8(%esp),%eax
1884bc3d5698SJohn Baldwin	movl	12(%esp),%ebx
1885bc3d5698SJohn Baldwin	bswap	%eax
1886bc3d5698SJohn Baldwin	bswap	%ebx
1887bc3d5698SJohn Baldwin	movl	%eax,(%edi)
1888bc3d5698SJohn Baldwin	movl	%ebx,4(%edi)
1889bc3d5698SJohn Baldwin	jmp	.L005finish
1890bc3d5698SJohn Baldwin.L002decrypt:
1891bc3d5698SJohn Baldwin	andl	$4294967288,%ebp
1892bc3d5698SJohn Baldwin	movl	16(%esp),%eax
1893bc3d5698SJohn Baldwin	movl	20(%esp),%ebx
1894bc3d5698SJohn Baldwin	jz	.L016decrypt_finish
1895bc3d5698SJohn Baldwin.L017decrypt_loop:
1896bc3d5698SJohn Baldwin	movl	(%esi),%eax
1897bc3d5698SJohn Baldwin	movl	4(%esi),%ebx
1898bc3d5698SJohn Baldwin	bswap	%eax
1899bc3d5698SJohn Baldwin	bswap	%ebx
1900bc3d5698SJohn Baldwin	movl	%eax,8(%esp)
1901bc3d5698SJohn Baldwin	movl	%ebx,12(%esp)
1902bc3d5698SJohn Baldwin	call	.L_CAST_decrypt_begin
1903bc3d5698SJohn Baldwin	movl	8(%esp),%eax
1904bc3d5698SJohn Baldwin	movl	12(%esp),%ebx
1905bc3d5698SJohn Baldwin	bswap	%eax
1906bc3d5698SJohn Baldwin	bswap	%ebx
1907bc3d5698SJohn Baldwin	movl	16(%esp),%ecx
1908bc3d5698SJohn Baldwin	movl	20(%esp),%edx
1909bc3d5698SJohn Baldwin	xorl	%eax,%ecx
1910bc3d5698SJohn Baldwin	xorl	%ebx,%edx
1911bc3d5698SJohn Baldwin	movl	(%esi),%eax
1912bc3d5698SJohn Baldwin	movl	4(%esi),%ebx
1913bc3d5698SJohn Baldwin	movl	%ecx,(%edi)
1914bc3d5698SJohn Baldwin	movl	%edx,4(%edi)
1915bc3d5698SJohn Baldwin	movl	%eax,16(%esp)
1916bc3d5698SJohn Baldwin	movl	%ebx,20(%esp)
1917bc3d5698SJohn Baldwin	addl	$8,%esi
1918bc3d5698SJohn Baldwin	addl	$8,%edi
1919bc3d5698SJohn Baldwin	subl	$8,%ebp
1920bc3d5698SJohn Baldwin	jnz	.L017decrypt_loop
1921bc3d5698SJohn Baldwin.L016decrypt_finish:
1922bc3d5698SJohn Baldwin	movl	52(%esp),%ebp
1923bc3d5698SJohn Baldwin	andl	$7,%ebp
1924bc3d5698SJohn Baldwin	jz	.L005finish
1925bc3d5698SJohn Baldwin	movl	(%esi),%eax
1926bc3d5698SJohn Baldwin	movl	4(%esi),%ebx
1927bc3d5698SJohn Baldwin	bswap	%eax
1928bc3d5698SJohn Baldwin	bswap	%ebx
1929bc3d5698SJohn Baldwin	movl	%eax,8(%esp)
1930bc3d5698SJohn Baldwin	movl	%ebx,12(%esp)
1931bc3d5698SJohn Baldwin	call	.L_CAST_decrypt_begin
1932bc3d5698SJohn Baldwin	movl	8(%esp),%eax
1933bc3d5698SJohn Baldwin	movl	12(%esp),%ebx
1934bc3d5698SJohn Baldwin	bswap	%eax
1935bc3d5698SJohn Baldwin	bswap	%ebx
1936bc3d5698SJohn Baldwin	movl	16(%esp),%ecx
1937bc3d5698SJohn Baldwin	movl	20(%esp),%edx
1938bc3d5698SJohn Baldwin	xorl	%eax,%ecx
1939bc3d5698SJohn Baldwin	xorl	%ebx,%edx
1940bc3d5698SJohn Baldwin	movl	(%esi),%eax
1941bc3d5698SJohn Baldwin	movl	4(%esi),%ebx
1942bc3d5698SJohn Baldwin.L018dj7:
1943bc3d5698SJohn Baldwin	rorl	$16,%edx
1944bc3d5698SJohn Baldwin	movb	%dl,6(%edi)
1945bc3d5698SJohn Baldwin	shrl	$16,%edx
1946bc3d5698SJohn Baldwin.L019dj6:
1947bc3d5698SJohn Baldwin	movb	%dh,5(%edi)
1948bc3d5698SJohn Baldwin.L020dj5:
1949bc3d5698SJohn Baldwin	movb	%dl,4(%edi)
1950bc3d5698SJohn Baldwin.L021dj4:
1951bc3d5698SJohn Baldwin	movl	%ecx,(%edi)
1952bc3d5698SJohn Baldwin	jmp	.L022djend
1953bc3d5698SJohn Baldwin.L023dj3:
1954bc3d5698SJohn Baldwin	rorl	$16,%ecx
1955bc3d5698SJohn Baldwin	movb	%cl,2(%edi)
1956bc3d5698SJohn Baldwin	shll	$16,%ecx
1957bc3d5698SJohn Baldwin.L024dj2:
1958bc3d5698SJohn Baldwin	movb	%ch,1(%esi)
1959bc3d5698SJohn Baldwin.L025dj1:
1960bc3d5698SJohn Baldwin	movb	%cl,(%esi)
1961bc3d5698SJohn Baldwin.L022djend:
1962bc3d5698SJohn Baldwin	jmp	.L005finish
1963bc3d5698SJohn Baldwin.L005finish:
1964bc3d5698SJohn Baldwin	movl	60(%esp),%ecx
1965bc3d5698SJohn Baldwin	addl	$24,%esp
1966bc3d5698SJohn Baldwin	movl	%eax,(%ecx)
1967bc3d5698SJohn Baldwin	movl	%ebx,4(%ecx)
1968bc3d5698SJohn Baldwin	popl	%edi
1969bc3d5698SJohn Baldwin	popl	%esi
1970bc3d5698SJohn Baldwin	popl	%ebx
1971bc3d5698SJohn Baldwin	popl	%ebp
1972bc3d5698SJohn Baldwin	ret
1973bc3d5698SJohn Baldwin.align	64
1974bc3d5698SJohn Baldwin.L007cbc_enc_jmp_table:
1975bc3d5698SJohn Baldwin.long	0
1976bc3d5698SJohn Baldwin.long	.L015ej1-.L006PIC_point
1977bc3d5698SJohn Baldwin.long	.L014ej2-.L006PIC_point
1978bc3d5698SJohn Baldwin.long	.L013ej3-.L006PIC_point
1979bc3d5698SJohn Baldwin.long	.L011ej4-.L006PIC_point
1980bc3d5698SJohn Baldwin.long	.L010ej5-.L006PIC_point
1981bc3d5698SJohn Baldwin.long	.L009ej6-.L006PIC_point
1982bc3d5698SJohn Baldwin.long	.L008ej7-.L006PIC_point
1983bc3d5698SJohn Baldwin.align	64
1984bc3d5698SJohn Baldwin.size	CAST_cbc_encrypt,.-.L_CAST_cbc_encrypt_begin
1985*c0855eaaSJohn Baldwin
1986*c0855eaaSJohn Baldwin	.section ".note.gnu.property", "a"
1987*c0855eaaSJohn Baldwin	.p2align 2
1988*c0855eaaSJohn Baldwin	.long 1f - 0f
1989*c0855eaaSJohn Baldwin	.long 4f - 1f
1990*c0855eaaSJohn Baldwin	.long 5
1991*c0855eaaSJohn Baldwin0:
1992*c0855eaaSJohn Baldwin	.asciz "GNU"
1993*c0855eaaSJohn Baldwin1:
1994*c0855eaaSJohn Baldwin	.p2align 2
1995*c0855eaaSJohn Baldwin	.long 0xc0000002
1996*c0855eaaSJohn Baldwin	.long 3f - 2f
1997*c0855eaaSJohn Baldwin2:
1998*c0855eaaSJohn Baldwin	.long 3
1999*c0855eaaSJohn Baldwin3:
2000*c0855eaaSJohn Baldwin	.p2align 2
2001*c0855eaaSJohn Baldwin4:
2002bc3d5698SJohn Baldwin#endif
2003