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