xref: /freebsd/sys/crypto/openssl/i386/des-586.S (revision 02e9120893770924227138ba49df1edb3896112a)
1/* Do not modify. This file is auto-generated from des-586.pl. */
2#ifdef PIC
3.text
4.globl	DES_SPtrans
5.type	_x86_DES_encrypt,@function
6.align	16
7_x86_DES_encrypt:
8	#ifdef __CET__
9
10.byte	243,15,30,251
11	#endif
12
13	pushl	%ecx
14
15	movl	(%ecx),%eax
16	xorl	%ebx,%ebx
17	movl	4(%ecx),%edx
18	xorl	%esi,%eax
19	xorl	%ecx,%ecx
20	xorl	%esi,%edx
21	andl	$0xfcfcfcfc,%eax
22	andl	$0xcfcfcfcf,%edx
23	movb	%al,%bl
24	movb	%ah,%cl
25	rorl	$4,%edx
26	xorl	(%ebp,%ebx,1),%edi
27	movb	%dl,%bl
28	xorl	0x200(%ebp,%ecx,1),%edi
29	movb	%dh,%cl
30	shrl	$16,%eax
31	xorl	0x100(%ebp,%ebx,1),%edi
32	movb	%ah,%bl
33	shrl	$16,%edx
34	xorl	0x300(%ebp,%ecx,1),%edi
35	movb	%dh,%cl
36	andl	$0xff,%eax
37	andl	$0xff,%edx
38	xorl	0x600(%ebp,%ebx,1),%edi
39	xorl	0x700(%ebp,%ecx,1),%edi
40	movl	(%esp),%ecx
41	xorl	0x400(%ebp,%eax,1),%edi
42	xorl	0x500(%ebp,%edx,1),%edi
43
44	movl	8(%ecx),%eax
45	xorl	%ebx,%ebx
46	movl	12(%ecx),%edx
47	xorl	%edi,%eax
48	xorl	%ecx,%ecx
49	xorl	%edi,%edx
50	andl	$0xfcfcfcfc,%eax
51	andl	$0xcfcfcfcf,%edx
52	movb	%al,%bl
53	movb	%ah,%cl
54	rorl	$4,%edx
55	xorl	(%ebp,%ebx,1),%esi
56	movb	%dl,%bl
57	xorl	0x200(%ebp,%ecx,1),%esi
58	movb	%dh,%cl
59	shrl	$16,%eax
60	xorl	0x100(%ebp,%ebx,1),%esi
61	movb	%ah,%bl
62	shrl	$16,%edx
63	xorl	0x300(%ebp,%ecx,1),%esi
64	movb	%dh,%cl
65	andl	$0xff,%eax
66	andl	$0xff,%edx
67	xorl	0x600(%ebp,%ebx,1),%esi
68	xorl	0x700(%ebp,%ecx,1),%esi
69	movl	(%esp),%ecx
70	xorl	0x400(%ebp,%eax,1),%esi
71	xorl	0x500(%ebp,%edx,1),%esi
72
73	movl	16(%ecx),%eax
74	xorl	%ebx,%ebx
75	movl	20(%ecx),%edx
76	xorl	%esi,%eax
77	xorl	%ecx,%ecx
78	xorl	%esi,%edx
79	andl	$0xfcfcfcfc,%eax
80	andl	$0xcfcfcfcf,%edx
81	movb	%al,%bl
82	movb	%ah,%cl
83	rorl	$4,%edx
84	xorl	(%ebp,%ebx,1),%edi
85	movb	%dl,%bl
86	xorl	0x200(%ebp,%ecx,1),%edi
87	movb	%dh,%cl
88	shrl	$16,%eax
89	xorl	0x100(%ebp,%ebx,1),%edi
90	movb	%ah,%bl
91	shrl	$16,%edx
92	xorl	0x300(%ebp,%ecx,1),%edi
93	movb	%dh,%cl
94	andl	$0xff,%eax
95	andl	$0xff,%edx
96	xorl	0x600(%ebp,%ebx,1),%edi
97	xorl	0x700(%ebp,%ecx,1),%edi
98	movl	(%esp),%ecx
99	xorl	0x400(%ebp,%eax,1),%edi
100	xorl	0x500(%ebp,%edx,1),%edi
101
102	movl	24(%ecx),%eax
103	xorl	%ebx,%ebx
104	movl	28(%ecx),%edx
105	xorl	%edi,%eax
106	xorl	%ecx,%ecx
107	xorl	%edi,%edx
108	andl	$0xfcfcfcfc,%eax
109	andl	$0xcfcfcfcf,%edx
110	movb	%al,%bl
111	movb	%ah,%cl
112	rorl	$4,%edx
113	xorl	(%ebp,%ebx,1),%esi
114	movb	%dl,%bl
115	xorl	0x200(%ebp,%ecx,1),%esi
116	movb	%dh,%cl
117	shrl	$16,%eax
118	xorl	0x100(%ebp,%ebx,1),%esi
119	movb	%ah,%bl
120	shrl	$16,%edx
121	xorl	0x300(%ebp,%ecx,1),%esi
122	movb	%dh,%cl
123	andl	$0xff,%eax
124	andl	$0xff,%edx
125	xorl	0x600(%ebp,%ebx,1),%esi
126	xorl	0x700(%ebp,%ecx,1),%esi
127	movl	(%esp),%ecx
128	xorl	0x400(%ebp,%eax,1),%esi
129	xorl	0x500(%ebp,%edx,1),%esi
130
131	movl	32(%ecx),%eax
132	xorl	%ebx,%ebx
133	movl	36(%ecx),%edx
134	xorl	%esi,%eax
135	xorl	%ecx,%ecx
136	xorl	%esi,%edx
137	andl	$0xfcfcfcfc,%eax
138	andl	$0xcfcfcfcf,%edx
139	movb	%al,%bl
140	movb	%ah,%cl
141	rorl	$4,%edx
142	xorl	(%ebp,%ebx,1),%edi
143	movb	%dl,%bl
144	xorl	0x200(%ebp,%ecx,1),%edi
145	movb	%dh,%cl
146	shrl	$16,%eax
147	xorl	0x100(%ebp,%ebx,1),%edi
148	movb	%ah,%bl
149	shrl	$16,%edx
150	xorl	0x300(%ebp,%ecx,1),%edi
151	movb	%dh,%cl
152	andl	$0xff,%eax
153	andl	$0xff,%edx
154	xorl	0x600(%ebp,%ebx,1),%edi
155	xorl	0x700(%ebp,%ecx,1),%edi
156	movl	(%esp),%ecx
157	xorl	0x400(%ebp,%eax,1),%edi
158	xorl	0x500(%ebp,%edx,1),%edi
159
160	movl	40(%ecx),%eax
161	xorl	%ebx,%ebx
162	movl	44(%ecx),%edx
163	xorl	%edi,%eax
164	xorl	%ecx,%ecx
165	xorl	%edi,%edx
166	andl	$0xfcfcfcfc,%eax
167	andl	$0xcfcfcfcf,%edx
168	movb	%al,%bl
169	movb	%ah,%cl
170	rorl	$4,%edx
171	xorl	(%ebp,%ebx,1),%esi
172	movb	%dl,%bl
173	xorl	0x200(%ebp,%ecx,1),%esi
174	movb	%dh,%cl
175	shrl	$16,%eax
176	xorl	0x100(%ebp,%ebx,1),%esi
177	movb	%ah,%bl
178	shrl	$16,%edx
179	xorl	0x300(%ebp,%ecx,1),%esi
180	movb	%dh,%cl
181	andl	$0xff,%eax
182	andl	$0xff,%edx
183	xorl	0x600(%ebp,%ebx,1),%esi
184	xorl	0x700(%ebp,%ecx,1),%esi
185	movl	(%esp),%ecx
186	xorl	0x400(%ebp,%eax,1),%esi
187	xorl	0x500(%ebp,%edx,1),%esi
188
189	movl	48(%ecx),%eax
190	xorl	%ebx,%ebx
191	movl	52(%ecx),%edx
192	xorl	%esi,%eax
193	xorl	%ecx,%ecx
194	xorl	%esi,%edx
195	andl	$0xfcfcfcfc,%eax
196	andl	$0xcfcfcfcf,%edx
197	movb	%al,%bl
198	movb	%ah,%cl
199	rorl	$4,%edx
200	xorl	(%ebp,%ebx,1),%edi
201	movb	%dl,%bl
202	xorl	0x200(%ebp,%ecx,1),%edi
203	movb	%dh,%cl
204	shrl	$16,%eax
205	xorl	0x100(%ebp,%ebx,1),%edi
206	movb	%ah,%bl
207	shrl	$16,%edx
208	xorl	0x300(%ebp,%ecx,1),%edi
209	movb	%dh,%cl
210	andl	$0xff,%eax
211	andl	$0xff,%edx
212	xorl	0x600(%ebp,%ebx,1),%edi
213	xorl	0x700(%ebp,%ecx,1),%edi
214	movl	(%esp),%ecx
215	xorl	0x400(%ebp,%eax,1),%edi
216	xorl	0x500(%ebp,%edx,1),%edi
217
218	movl	56(%ecx),%eax
219	xorl	%ebx,%ebx
220	movl	60(%ecx),%edx
221	xorl	%edi,%eax
222	xorl	%ecx,%ecx
223	xorl	%edi,%edx
224	andl	$0xfcfcfcfc,%eax
225	andl	$0xcfcfcfcf,%edx
226	movb	%al,%bl
227	movb	%ah,%cl
228	rorl	$4,%edx
229	xorl	(%ebp,%ebx,1),%esi
230	movb	%dl,%bl
231	xorl	0x200(%ebp,%ecx,1),%esi
232	movb	%dh,%cl
233	shrl	$16,%eax
234	xorl	0x100(%ebp,%ebx,1),%esi
235	movb	%ah,%bl
236	shrl	$16,%edx
237	xorl	0x300(%ebp,%ecx,1),%esi
238	movb	%dh,%cl
239	andl	$0xff,%eax
240	andl	$0xff,%edx
241	xorl	0x600(%ebp,%ebx,1),%esi
242	xorl	0x700(%ebp,%ecx,1),%esi
243	movl	(%esp),%ecx
244	xorl	0x400(%ebp,%eax,1),%esi
245	xorl	0x500(%ebp,%edx,1),%esi
246
247	movl	64(%ecx),%eax
248	xorl	%ebx,%ebx
249	movl	68(%ecx),%edx
250	xorl	%esi,%eax
251	xorl	%ecx,%ecx
252	xorl	%esi,%edx
253	andl	$0xfcfcfcfc,%eax
254	andl	$0xcfcfcfcf,%edx
255	movb	%al,%bl
256	movb	%ah,%cl
257	rorl	$4,%edx
258	xorl	(%ebp,%ebx,1),%edi
259	movb	%dl,%bl
260	xorl	0x200(%ebp,%ecx,1),%edi
261	movb	%dh,%cl
262	shrl	$16,%eax
263	xorl	0x100(%ebp,%ebx,1),%edi
264	movb	%ah,%bl
265	shrl	$16,%edx
266	xorl	0x300(%ebp,%ecx,1),%edi
267	movb	%dh,%cl
268	andl	$0xff,%eax
269	andl	$0xff,%edx
270	xorl	0x600(%ebp,%ebx,1),%edi
271	xorl	0x700(%ebp,%ecx,1),%edi
272	movl	(%esp),%ecx
273	xorl	0x400(%ebp,%eax,1),%edi
274	xorl	0x500(%ebp,%edx,1),%edi
275
276	movl	72(%ecx),%eax
277	xorl	%ebx,%ebx
278	movl	76(%ecx),%edx
279	xorl	%edi,%eax
280	xorl	%ecx,%ecx
281	xorl	%edi,%edx
282	andl	$0xfcfcfcfc,%eax
283	andl	$0xcfcfcfcf,%edx
284	movb	%al,%bl
285	movb	%ah,%cl
286	rorl	$4,%edx
287	xorl	(%ebp,%ebx,1),%esi
288	movb	%dl,%bl
289	xorl	0x200(%ebp,%ecx,1),%esi
290	movb	%dh,%cl
291	shrl	$16,%eax
292	xorl	0x100(%ebp,%ebx,1),%esi
293	movb	%ah,%bl
294	shrl	$16,%edx
295	xorl	0x300(%ebp,%ecx,1),%esi
296	movb	%dh,%cl
297	andl	$0xff,%eax
298	andl	$0xff,%edx
299	xorl	0x600(%ebp,%ebx,1),%esi
300	xorl	0x700(%ebp,%ecx,1),%esi
301	movl	(%esp),%ecx
302	xorl	0x400(%ebp,%eax,1),%esi
303	xorl	0x500(%ebp,%edx,1),%esi
304
305	movl	80(%ecx),%eax
306	xorl	%ebx,%ebx
307	movl	84(%ecx),%edx
308	xorl	%esi,%eax
309	xorl	%ecx,%ecx
310	xorl	%esi,%edx
311	andl	$0xfcfcfcfc,%eax
312	andl	$0xcfcfcfcf,%edx
313	movb	%al,%bl
314	movb	%ah,%cl
315	rorl	$4,%edx
316	xorl	(%ebp,%ebx,1),%edi
317	movb	%dl,%bl
318	xorl	0x200(%ebp,%ecx,1),%edi
319	movb	%dh,%cl
320	shrl	$16,%eax
321	xorl	0x100(%ebp,%ebx,1),%edi
322	movb	%ah,%bl
323	shrl	$16,%edx
324	xorl	0x300(%ebp,%ecx,1),%edi
325	movb	%dh,%cl
326	andl	$0xff,%eax
327	andl	$0xff,%edx
328	xorl	0x600(%ebp,%ebx,1),%edi
329	xorl	0x700(%ebp,%ecx,1),%edi
330	movl	(%esp),%ecx
331	xorl	0x400(%ebp,%eax,1),%edi
332	xorl	0x500(%ebp,%edx,1),%edi
333
334	movl	88(%ecx),%eax
335	xorl	%ebx,%ebx
336	movl	92(%ecx),%edx
337	xorl	%edi,%eax
338	xorl	%ecx,%ecx
339	xorl	%edi,%edx
340	andl	$0xfcfcfcfc,%eax
341	andl	$0xcfcfcfcf,%edx
342	movb	%al,%bl
343	movb	%ah,%cl
344	rorl	$4,%edx
345	xorl	(%ebp,%ebx,1),%esi
346	movb	%dl,%bl
347	xorl	0x200(%ebp,%ecx,1),%esi
348	movb	%dh,%cl
349	shrl	$16,%eax
350	xorl	0x100(%ebp,%ebx,1),%esi
351	movb	%ah,%bl
352	shrl	$16,%edx
353	xorl	0x300(%ebp,%ecx,1),%esi
354	movb	%dh,%cl
355	andl	$0xff,%eax
356	andl	$0xff,%edx
357	xorl	0x600(%ebp,%ebx,1),%esi
358	xorl	0x700(%ebp,%ecx,1),%esi
359	movl	(%esp),%ecx
360	xorl	0x400(%ebp,%eax,1),%esi
361	xorl	0x500(%ebp,%edx,1),%esi
362
363	movl	96(%ecx),%eax
364	xorl	%ebx,%ebx
365	movl	100(%ecx),%edx
366	xorl	%esi,%eax
367	xorl	%ecx,%ecx
368	xorl	%esi,%edx
369	andl	$0xfcfcfcfc,%eax
370	andl	$0xcfcfcfcf,%edx
371	movb	%al,%bl
372	movb	%ah,%cl
373	rorl	$4,%edx
374	xorl	(%ebp,%ebx,1),%edi
375	movb	%dl,%bl
376	xorl	0x200(%ebp,%ecx,1),%edi
377	movb	%dh,%cl
378	shrl	$16,%eax
379	xorl	0x100(%ebp,%ebx,1),%edi
380	movb	%ah,%bl
381	shrl	$16,%edx
382	xorl	0x300(%ebp,%ecx,1),%edi
383	movb	%dh,%cl
384	andl	$0xff,%eax
385	andl	$0xff,%edx
386	xorl	0x600(%ebp,%ebx,1),%edi
387	xorl	0x700(%ebp,%ecx,1),%edi
388	movl	(%esp),%ecx
389	xorl	0x400(%ebp,%eax,1),%edi
390	xorl	0x500(%ebp,%edx,1),%edi
391
392	movl	104(%ecx),%eax
393	xorl	%ebx,%ebx
394	movl	108(%ecx),%edx
395	xorl	%edi,%eax
396	xorl	%ecx,%ecx
397	xorl	%edi,%edx
398	andl	$0xfcfcfcfc,%eax
399	andl	$0xcfcfcfcf,%edx
400	movb	%al,%bl
401	movb	%ah,%cl
402	rorl	$4,%edx
403	xorl	(%ebp,%ebx,1),%esi
404	movb	%dl,%bl
405	xorl	0x200(%ebp,%ecx,1),%esi
406	movb	%dh,%cl
407	shrl	$16,%eax
408	xorl	0x100(%ebp,%ebx,1),%esi
409	movb	%ah,%bl
410	shrl	$16,%edx
411	xorl	0x300(%ebp,%ecx,1),%esi
412	movb	%dh,%cl
413	andl	$0xff,%eax
414	andl	$0xff,%edx
415	xorl	0x600(%ebp,%ebx,1),%esi
416	xorl	0x700(%ebp,%ecx,1),%esi
417	movl	(%esp),%ecx
418	xorl	0x400(%ebp,%eax,1),%esi
419	xorl	0x500(%ebp,%edx,1),%esi
420
421	movl	112(%ecx),%eax
422	xorl	%ebx,%ebx
423	movl	116(%ecx),%edx
424	xorl	%esi,%eax
425	xorl	%ecx,%ecx
426	xorl	%esi,%edx
427	andl	$0xfcfcfcfc,%eax
428	andl	$0xcfcfcfcf,%edx
429	movb	%al,%bl
430	movb	%ah,%cl
431	rorl	$4,%edx
432	xorl	(%ebp,%ebx,1),%edi
433	movb	%dl,%bl
434	xorl	0x200(%ebp,%ecx,1),%edi
435	movb	%dh,%cl
436	shrl	$16,%eax
437	xorl	0x100(%ebp,%ebx,1),%edi
438	movb	%ah,%bl
439	shrl	$16,%edx
440	xorl	0x300(%ebp,%ecx,1),%edi
441	movb	%dh,%cl
442	andl	$0xff,%eax
443	andl	$0xff,%edx
444	xorl	0x600(%ebp,%ebx,1),%edi
445	xorl	0x700(%ebp,%ecx,1),%edi
446	movl	(%esp),%ecx
447	xorl	0x400(%ebp,%eax,1),%edi
448	xorl	0x500(%ebp,%edx,1),%edi
449
450	movl	120(%ecx),%eax
451	xorl	%ebx,%ebx
452	movl	124(%ecx),%edx
453	xorl	%edi,%eax
454	xorl	%ecx,%ecx
455	xorl	%edi,%edx
456	andl	$0xfcfcfcfc,%eax
457	andl	$0xcfcfcfcf,%edx
458	movb	%al,%bl
459	movb	%ah,%cl
460	rorl	$4,%edx
461	xorl	(%ebp,%ebx,1),%esi
462	movb	%dl,%bl
463	xorl	0x200(%ebp,%ecx,1),%esi
464	movb	%dh,%cl
465	shrl	$16,%eax
466	xorl	0x100(%ebp,%ebx,1),%esi
467	movb	%ah,%bl
468	shrl	$16,%edx
469	xorl	0x300(%ebp,%ecx,1),%esi
470	movb	%dh,%cl
471	andl	$0xff,%eax
472	andl	$0xff,%edx
473	xorl	0x600(%ebp,%ebx,1),%esi
474	xorl	0x700(%ebp,%ecx,1),%esi
475	movl	(%esp),%ecx
476	xorl	0x400(%ebp,%eax,1),%esi
477	xorl	0x500(%ebp,%edx,1),%esi
478	addl	$4,%esp
479	ret
480.size	_x86_DES_encrypt,.-_x86_DES_encrypt
481.type	_x86_DES_decrypt,@function
482.align	16
483_x86_DES_decrypt:
484	#ifdef __CET__
485
486.byte	243,15,30,251
487	#endif
488
489	pushl	%ecx
490
491	movl	120(%ecx),%eax
492	xorl	%ebx,%ebx
493	movl	124(%ecx),%edx
494	xorl	%esi,%eax
495	xorl	%ecx,%ecx
496	xorl	%esi,%edx
497	andl	$0xfcfcfcfc,%eax
498	andl	$0xcfcfcfcf,%edx
499	movb	%al,%bl
500	movb	%ah,%cl
501	rorl	$4,%edx
502	xorl	(%ebp,%ebx,1),%edi
503	movb	%dl,%bl
504	xorl	0x200(%ebp,%ecx,1),%edi
505	movb	%dh,%cl
506	shrl	$16,%eax
507	xorl	0x100(%ebp,%ebx,1),%edi
508	movb	%ah,%bl
509	shrl	$16,%edx
510	xorl	0x300(%ebp,%ecx,1),%edi
511	movb	%dh,%cl
512	andl	$0xff,%eax
513	andl	$0xff,%edx
514	xorl	0x600(%ebp,%ebx,1),%edi
515	xorl	0x700(%ebp,%ecx,1),%edi
516	movl	(%esp),%ecx
517	xorl	0x400(%ebp,%eax,1),%edi
518	xorl	0x500(%ebp,%edx,1),%edi
519
520	movl	112(%ecx),%eax
521	xorl	%ebx,%ebx
522	movl	116(%ecx),%edx
523	xorl	%edi,%eax
524	xorl	%ecx,%ecx
525	xorl	%edi,%edx
526	andl	$0xfcfcfcfc,%eax
527	andl	$0xcfcfcfcf,%edx
528	movb	%al,%bl
529	movb	%ah,%cl
530	rorl	$4,%edx
531	xorl	(%ebp,%ebx,1),%esi
532	movb	%dl,%bl
533	xorl	0x200(%ebp,%ecx,1),%esi
534	movb	%dh,%cl
535	shrl	$16,%eax
536	xorl	0x100(%ebp,%ebx,1),%esi
537	movb	%ah,%bl
538	shrl	$16,%edx
539	xorl	0x300(%ebp,%ecx,1),%esi
540	movb	%dh,%cl
541	andl	$0xff,%eax
542	andl	$0xff,%edx
543	xorl	0x600(%ebp,%ebx,1),%esi
544	xorl	0x700(%ebp,%ecx,1),%esi
545	movl	(%esp),%ecx
546	xorl	0x400(%ebp,%eax,1),%esi
547	xorl	0x500(%ebp,%edx,1),%esi
548
549	movl	104(%ecx),%eax
550	xorl	%ebx,%ebx
551	movl	108(%ecx),%edx
552	xorl	%esi,%eax
553	xorl	%ecx,%ecx
554	xorl	%esi,%edx
555	andl	$0xfcfcfcfc,%eax
556	andl	$0xcfcfcfcf,%edx
557	movb	%al,%bl
558	movb	%ah,%cl
559	rorl	$4,%edx
560	xorl	(%ebp,%ebx,1),%edi
561	movb	%dl,%bl
562	xorl	0x200(%ebp,%ecx,1),%edi
563	movb	%dh,%cl
564	shrl	$16,%eax
565	xorl	0x100(%ebp,%ebx,1),%edi
566	movb	%ah,%bl
567	shrl	$16,%edx
568	xorl	0x300(%ebp,%ecx,1),%edi
569	movb	%dh,%cl
570	andl	$0xff,%eax
571	andl	$0xff,%edx
572	xorl	0x600(%ebp,%ebx,1),%edi
573	xorl	0x700(%ebp,%ecx,1),%edi
574	movl	(%esp),%ecx
575	xorl	0x400(%ebp,%eax,1),%edi
576	xorl	0x500(%ebp,%edx,1),%edi
577
578	movl	96(%ecx),%eax
579	xorl	%ebx,%ebx
580	movl	100(%ecx),%edx
581	xorl	%edi,%eax
582	xorl	%ecx,%ecx
583	xorl	%edi,%edx
584	andl	$0xfcfcfcfc,%eax
585	andl	$0xcfcfcfcf,%edx
586	movb	%al,%bl
587	movb	%ah,%cl
588	rorl	$4,%edx
589	xorl	(%ebp,%ebx,1),%esi
590	movb	%dl,%bl
591	xorl	0x200(%ebp,%ecx,1),%esi
592	movb	%dh,%cl
593	shrl	$16,%eax
594	xorl	0x100(%ebp,%ebx,1),%esi
595	movb	%ah,%bl
596	shrl	$16,%edx
597	xorl	0x300(%ebp,%ecx,1),%esi
598	movb	%dh,%cl
599	andl	$0xff,%eax
600	andl	$0xff,%edx
601	xorl	0x600(%ebp,%ebx,1),%esi
602	xorl	0x700(%ebp,%ecx,1),%esi
603	movl	(%esp),%ecx
604	xorl	0x400(%ebp,%eax,1),%esi
605	xorl	0x500(%ebp,%edx,1),%esi
606
607	movl	88(%ecx),%eax
608	xorl	%ebx,%ebx
609	movl	92(%ecx),%edx
610	xorl	%esi,%eax
611	xorl	%ecx,%ecx
612	xorl	%esi,%edx
613	andl	$0xfcfcfcfc,%eax
614	andl	$0xcfcfcfcf,%edx
615	movb	%al,%bl
616	movb	%ah,%cl
617	rorl	$4,%edx
618	xorl	(%ebp,%ebx,1),%edi
619	movb	%dl,%bl
620	xorl	0x200(%ebp,%ecx,1),%edi
621	movb	%dh,%cl
622	shrl	$16,%eax
623	xorl	0x100(%ebp,%ebx,1),%edi
624	movb	%ah,%bl
625	shrl	$16,%edx
626	xorl	0x300(%ebp,%ecx,1),%edi
627	movb	%dh,%cl
628	andl	$0xff,%eax
629	andl	$0xff,%edx
630	xorl	0x600(%ebp,%ebx,1),%edi
631	xorl	0x700(%ebp,%ecx,1),%edi
632	movl	(%esp),%ecx
633	xorl	0x400(%ebp,%eax,1),%edi
634	xorl	0x500(%ebp,%edx,1),%edi
635
636	movl	80(%ecx),%eax
637	xorl	%ebx,%ebx
638	movl	84(%ecx),%edx
639	xorl	%edi,%eax
640	xorl	%ecx,%ecx
641	xorl	%edi,%edx
642	andl	$0xfcfcfcfc,%eax
643	andl	$0xcfcfcfcf,%edx
644	movb	%al,%bl
645	movb	%ah,%cl
646	rorl	$4,%edx
647	xorl	(%ebp,%ebx,1),%esi
648	movb	%dl,%bl
649	xorl	0x200(%ebp,%ecx,1),%esi
650	movb	%dh,%cl
651	shrl	$16,%eax
652	xorl	0x100(%ebp,%ebx,1),%esi
653	movb	%ah,%bl
654	shrl	$16,%edx
655	xorl	0x300(%ebp,%ecx,1),%esi
656	movb	%dh,%cl
657	andl	$0xff,%eax
658	andl	$0xff,%edx
659	xorl	0x600(%ebp,%ebx,1),%esi
660	xorl	0x700(%ebp,%ecx,1),%esi
661	movl	(%esp),%ecx
662	xorl	0x400(%ebp,%eax,1),%esi
663	xorl	0x500(%ebp,%edx,1),%esi
664
665	movl	72(%ecx),%eax
666	xorl	%ebx,%ebx
667	movl	76(%ecx),%edx
668	xorl	%esi,%eax
669	xorl	%ecx,%ecx
670	xorl	%esi,%edx
671	andl	$0xfcfcfcfc,%eax
672	andl	$0xcfcfcfcf,%edx
673	movb	%al,%bl
674	movb	%ah,%cl
675	rorl	$4,%edx
676	xorl	(%ebp,%ebx,1),%edi
677	movb	%dl,%bl
678	xorl	0x200(%ebp,%ecx,1),%edi
679	movb	%dh,%cl
680	shrl	$16,%eax
681	xorl	0x100(%ebp,%ebx,1),%edi
682	movb	%ah,%bl
683	shrl	$16,%edx
684	xorl	0x300(%ebp,%ecx,1),%edi
685	movb	%dh,%cl
686	andl	$0xff,%eax
687	andl	$0xff,%edx
688	xorl	0x600(%ebp,%ebx,1),%edi
689	xorl	0x700(%ebp,%ecx,1),%edi
690	movl	(%esp),%ecx
691	xorl	0x400(%ebp,%eax,1),%edi
692	xorl	0x500(%ebp,%edx,1),%edi
693
694	movl	64(%ecx),%eax
695	xorl	%ebx,%ebx
696	movl	68(%ecx),%edx
697	xorl	%edi,%eax
698	xorl	%ecx,%ecx
699	xorl	%edi,%edx
700	andl	$0xfcfcfcfc,%eax
701	andl	$0xcfcfcfcf,%edx
702	movb	%al,%bl
703	movb	%ah,%cl
704	rorl	$4,%edx
705	xorl	(%ebp,%ebx,1),%esi
706	movb	%dl,%bl
707	xorl	0x200(%ebp,%ecx,1),%esi
708	movb	%dh,%cl
709	shrl	$16,%eax
710	xorl	0x100(%ebp,%ebx,1),%esi
711	movb	%ah,%bl
712	shrl	$16,%edx
713	xorl	0x300(%ebp,%ecx,1),%esi
714	movb	%dh,%cl
715	andl	$0xff,%eax
716	andl	$0xff,%edx
717	xorl	0x600(%ebp,%ebx,1),%esi
718	xorl	0x700(%ebp,%ecx,1),%esi
719	movl	(%esp),%ecx
720	xorl	0x400(%ebp,%eax,1),%esi
721	xorl	0x500(%ebp,%edx,1),%esi
722
723	movl	56(%ecx),%eax
724	xorl	%ebx,%ebx
725	movl	60(%ecx),%edx
726	xorl	%esi,%eax
727	xorl	%ecx,%ecx
728	xorl	%esi,%edx
729	andl	$0xfcfcfcfc,%eax
730	andl	$0xcfcfcfcf,%edx
731	movb	%al,%bl
732	movb	%ah,%cl
733	rorl	$4,%edx
734	xorl	(%ebp,%ebx,1),%edi
735	movb	%dl,%bl
736	xorl	0x200(%ebp,%ecx,1),%edi
737	movb	%dh,%cl
738	shrl	$16,%eax
739	xorl	0x100(%ebp,%ebx,1),%edi
740	movb	%ah,%bl
741	shrl	$16,%edx
742	xorl	0x300(%ebp,%ecx,1),%edi
743	movb	%dh,%cl
744	andl	$0xff,%eax
745	andl	$0xff,%edx
746	xorl	0x600(%ebp,%ebx,1),%edi
747	xorl	0x700(%ebp,%ecx,1),%edi
748	movl	(%esp),%ecx
749	xorl	0x400(%ebp,%eax,1),%edi
750	xorl	0x500(%ebp,%edx,1),%edi
751
752	movl	48(%ecx),%eax
753	xorl	%ebx,%ebx
754	movl	52(%ecx),%edx
755	xorl	%edi,%eax
756	xorl	%ecx,%ecx
757	xorl	%edi,%edx
758	andl	$0xfcfcfcfc,%eax
759	andl	$0xcfcfcfcf,%edx
760	movb	%al,%bl
761	movb	%ah,%cl
762	rorl	$4,%edx
763	xorl	(%ebp,%ebx,1),%esi
764	movb	%dl,%bl
765	xorl	0x200(%ebp,%ecx,1),%esi
766	movb	%dh,%cl
767	shrl	$16,%eax
768	xorl	0x100(%ebp,%ebx,1),%esi
769	movb	%ah,%bl
770	shrl	$16,%edx
771	xorl	0x300(%ebp,%ecx,1),%esi
772	movb	%dh,%cl
773	andl	$0xff,%eax
774	andl	$0xff,%edx
775	xorl	0x600(%ebp,%ebx,1),%esi
776	xorl	0x700(%ebp,%ecx,1),%esi
777	movl	(%esp),%ecx
778	xorl	0x400(%ebp,%eax,1),%esi
779	xorl	0x500(%ebp,%edx,1),%esi
780
781	movl	40(%ecx),%eax
782	xorl	%ebx,%ebx
783	movl	44(%ecx),%edx
784	xorl	%esi,%eax
785	xorl	%ecx,%ecx
786	xorl	%esi,%edx
787	andl	$0xfcfcfcfc,%eax
788	andl	$0xcfcfcfcf,%edx
789	movb	%al,%bl
790	movb	%ah,%cl
791	rorl	$4,%edx
792	xorl	(%ebp,%ebx,1),%edi
793	movb	%dl,%bl
794	xorl	0x200(%ebp,%ecx,1),%edi
795	movb	%dh,%cl
796	shrl	$16,%eax
797	xorl	0x100(%ebp,%ebx,1),%edi
798	movb	%ah,%bl
799	shrl	$16,%edx
800	xorl	0x300(%ebp,%ecx,1),%edi
801	movb	%dh,%cl
802	andl	$0xff,%eax
803	andl	$0xff,%edx
804	xorl	0x600(%ebp,%ebx,1),%edi
805	xorl	0x700(%ebp,%ecx,1),%edi
806	movl	(%esp),%ecx
807	xorl	0x400(%ebp,%eax,1),%edi
808	xorl	0x500(%ebp,%edx,1),%edi
809
810	movl	32(%ecx),%eax
811	xorl	%ebx,%ebx
812	movl	36(%ecx),%edx
813	xorl	%edi,%eax
814	xorl	%ecx,%ecx
815	xorl	%edi,%edx
816	andl	$0xfcfcfcfc,%eax
817	andl	$0xcfcfcfcf,%edx
818	movb	%al,%bl
819	movb	%ah,%cl
820	rorl	$4,%edx
821	xorl	(%ebp,%ebx,1),%esi
822	movb	%dl,%bl
823	xorl	0x200(%ebp,%ecx,1),%esi
824	movb	%dh,%cl
825	shrl	$16,%eax
826	xorl	0x100(%ebp,%ebx,1),%esi
827	movb	%ah,%bl
828	shrl	$16,%edx
829	xorl	0x300(%ebp,%ecx,1),%esi
830	movb	%dh,%cl
831	andl	$0xff,%eax
832	andl	$0xff,%edx
833	xorl	0x600(%ebp,%ebx,1),%esi
834	xorl	0x700(%ebp,%ecx,1),%esi
835	movl	(%esp),%ecx
836	xorl	0x400(%ebp,%eax,1),%esi
837	xorl	0x500(%ebp,%edx,1),%esi
838
839	movl	24(%ecx),%eax
840	xorl	%ebx,%ebx
841	movl	28(%ecx),%edx
842	xorl	%esi,%eax
843	xorl	%ecx,%ecx
844	xorl	%esi,%edx
845	andl	$0xfcfcfcfc,%eax
846	andl	$0xcfcfcfcf,%edx
847	movb	%al,%bl
848	movb	%ah,%cl
849	rorl	$4,%edx
850	xorl	(%ebp,%ebx,1),%edi
851	movb	%dl,%bl
852	xorl	0x200(%ebp,%ecx,1),%edi
853	movb	%dh,%cl
854	shrl	$16,%eax
855	xorl	0x100(%ebp,%ebx,1),%edi
856	movb	%ah,%bl
857	shrl	$16,%edx
858	xorl	0x300(%ebp,%ecx,1),%edi
859	movb	%dh,%cl
860	andl	$0xff,%eax
861	andl	$0xff,%edx
862	xorl	0x600(%ebp,%ebx,1),%edi
863	xorl	0x700(%ebp,%ecx,1),%edi
864	movl	(%esp),%ecx
865	xorl	0x400(%ebp,%eax,1),%edi
866	xorl	0x500(%ebp,%edx,1),%edi
867
868	movl	16(%ecx),%eax
869	xorl	%ebx,%ebx
870	movl	20(%ecx),%edx
871	xorl	%edi,%eax
872	xorl	%ecx,%ecx
873	xorl	%edi,%edx
874	andl	$0xfcfcfcfc,%eax
875	andl	$0xcfcfcfcf,%edx
876	movb	%al,%bl
877	movb	%ah,%cl
878	rorl	$4,%edx
879	xorl	(%ebp,%ebx,1),%esi
880	movb	%dl,%bl
881	xorl	0x200(%ebp,%ecx,1),%esi
882	movb	%dh,%cl
883	shrl	$16,%eax
884	xorl	0x100(%ebp,%ebx,1),%esi
885	movb	%ah,%bl
886	shrl	$16,%edx
887	xorl	0x300(%ebp,%ecx,1),%esi
888	movb	%dh,%cl
889	andl	$0xff,%eax
890	andl	$0xff,%edx
891	xorl	0x600(%ebp,%ebx,1),%esi
892	xorl	0x700(%ebp,%ecx,1),%esi
893	movl	(%esp),%ecx
894	xorl	0x400(%ebp,%eax,1),%esi
895	xorl	0x500(%ebp,%edx,1),%esi
896
897	movl	8(%ecx),%eax
898	xorl	%ebx,%ebx
899	movl	12(%ecx),%edx
900	xorl	%esi,%eax
901	xorl	%ecx,%ecx
902	xorl	%esi,%edx
903	andl	$0xfcfcfcfc,%eax
904	andl	$0xcfcfcfcf,%edx
905	movb	%al,%bl
906	movb	%ah,%cl
907	rorl	$4,%edx
908	xorl	(%ebp,%ebx,1),%edi
909	movb	%dl,%bl
910	xorl	0x200(%ebp,%ecx,1),%edi
911	movb	%dh,%cl
912	shrl	$16,%eax
913	xorl	0x100(%ebp,%ebx,1),%edi
914	movb	%ah,%bl
915	shrl	$16,%edx
916	xorl	0x300(%ebp,%ecx,1),%edi
917	movb	%dh,%cl
918	andl	$0xff,%eax
919	andl	$0xff,%edx
920	xorl	0x600(%ebp,%ebx,1),%edi
921	xorl	0x700(%ebp,%ecx,1),%edi
922	movl	(%esp),%ecx
923	xorl	0x400(%ebp,%eax,1),%edi
924	xorl	0x500(%ebp,%edx,1),%edi
925
926	movl	(%ecx),%eax
927	xorl	%ebx,%ebx
928	movl	4(%ecx),%edx
929	xorl	%edi,%eax
930	xorl	%ecx,%ecx
931	xorl	%edi,%edx
932	andl	$0xfcfcfcfc,%eax
933	andl	$0xcfcfcfcf,%edx
934	movb	%al,%bl
935	movb	%ah,%cl
936	rorl	$4,%edx
937	xorl	(%ebp,%ebx,1),%esi
938	movb	%dl,%bl
939	xorl	0x200(%ebp,%ecx,1),%esi
940	movb	%dh,%cl
941	shrl	$16,%eax
942	xorl	0x100(%ebp,%ebx,1),%esi
943	movb	%ah,%bl
944	shrl	$16,%edx
945	xorl	0x300(%ebp,%ecx,1),%esi
946	movb	%dh,%cl
947	andl	$0xff,%eax
948	andl	$0xff,%edx
949	xorl	0x600(%ebp,%ebx,1),%esi
950	xorl	0x700(%ebp,%ecx,1),%esi
951	movl	(%esp),%ecx
952	xorl	0x400(%ebp,%eax,1),%esi
953	xorl	0x500(%ebp,%edx,1),%esi
954	addl	$4,%esp
955	ret
956.size	_x86_DES_decrypt,.-_x86_DES_decrypt
957.globl	DES_encrypt1
958.type	DES_encrypt1,@function
959.align	16
960DES_encrypt1:
961.L_DES_encrypt1_begin:
962	#ifdef __CET__
963
964.byte	243,15,30,251
965	#endif
966
967	pushl	%esi
968	pushl	%edi
969
970
971	movl	12(%esp),%esi
972	xorl	%ecx,%ecx
973	pushl	%ebx
974	pushl	%ebp
975	movl	(%esi),%eax
976	movl	28(%esp),%ebx
977	movl	4(%esi),%edi
978
979
980	roll	$4,%eax
981	movl	%eax,%esi
982	xorl	%edi,%eax
983	andl	$0xf0f0f0f0,%eax
984	xorl	%eax,%esi
985	xorl	%eax,%edi
986
987	roll	$20,%edi
988	movl	%edi,%eax
989	xorl	%esi,%edi
990	andl	$0xfff0000f,%edi
991	xorl	%edi,%eax
992	xorl	%edi,%esi
993
994	roll	$14,%eax
995	movl	%eax,%edi
996	xorl	%esi,%eax
997	andl	$0x33333333,%eax
998	xorl	%eax,%edi
999	xorl	%eax,%esi
1000
1001	roll	$22,%esi
1002	movl	%esi,%eax
1003	xorl	%edi,%esi
1004	andl	$0x03fc03fc,%esi
1005	xorl	%esi,%eax
1006	xorl	%esi,%edi
1007
1008	roll	$9,%eax
1009	movl	%eax,%esi
1010	xorl	%edi,%eax
1011	andl	$0xaaaaaaaa,%eax
1012	xorl	%eax,%esi
1013	xorl	%eax,%edi
1014
1015	roll	$1,%edi
1016	call	.L000pic_point
1017.L000pic_point:
1018	popl	%ebp
1019	leal	.Ldes_sptrans-.L000pic_point(%ebp),%ebp
1020	movl	24(%esp),%ecx
1021	cmpl	$0,%ebx
1022	je	.L001decrypt
1023	call	_x86_DES_encrypt
1024	jmp	.L002done
1025.L001decrypt:
1026	call	_x86_DES_decrypt
1027.L002done:
1028
1029
1030	movl	20(%esp),%edx
1031	rorl	$1,%esi
1032	movl	%edi,%eax
1033	xorl	%esi,%edi
1034	andl	$0xaaaaaaaa,%edi
1035	xorl	%edi,%eax
1036	xorl	%edi,%esi
1037
1038	roll	$23,%eax
1039	movl	%eax,%edi
1040	xorl	%esi,%eax
1041	andl	$0x03fc03fc,%eax
1042	xorl	%eax,%edi
1043	xorl	%eax,%esi
1044
1045	roll	$10,%edi
1046	movl	%edi,%eax
1047	xorl	%esi,%edi
1048	andl	$0x33333333,%edi
1049	xorl	%edi,%eax
1050	xorl	%edi,%esi
1051
1052	roll	$18,%esi
1053	movl	%esi,%edi
1054	xorl	%eax,%esi
1055	andl	$0xfff0000f,%esi
1056	xorl	%esi,%edi
1057	xorl	%esi,%eax
1058
1059	roll	$12,%edi
1060	movl	%edi,%esi
1061	xorl	%eax,%edi
1062	andl	$0xf0f0f0f0,%edi
1063	xorl	%edi,%esi
1064	xorl	%edi,%eax
1065
1066	rorl	$4,%eax
1067	movl	%eax,(%edx)
1068	movl	%esi,4(%edx)
1069	popl	%ebp
1070	popl	%ebx
1071	popl	%edi
1072	popl	%esi
1073	ret
1074.size	DES_encrypt1,.-.L_DES_encrypt1_begin
1075.globl	DES_encrypt2
1076.type	DES_encrypt2,@function
1077.align	16
1078DES_encrypt2:
1079.L_DES_encrypt2_begin:
1080	#ifdef __CET__
1081
1082.byte	243,15,30,251
1083	#endif
1084
1085	pushl	%esi
1086	pushl	%edi
1087
1088
1089	movl	12(%esp),%eax
1090	xorl	%ecx,%ecx
1091	pushl	%ebx
1092	pushl	%ebp
1093	movl	(%eax),%esi
1094	movl	28(%esp),%ebx
1095	roll	$3,%esi
1096	movl	4(%eax),%edi
1097	roll	$3,%edi
1098	call	.L003pic_point
1099.L003pic_point:
1100	popl	%ebp
1101	leal	.Ldes_sptrans-.L003pic_point(%ebp),%ebp
1102	movl	24(%esp),%ecx
1103	cmpl	$0,%ebx
1104	je	.L004decrypt
1105	call	_x86_DES_encrypt
1106	jmp	.L005done
1107.L004decrypt:
1108	call	_x86_DES_decrypt
1109.L005done:
1110
1111
1112	rorl	$3,%edi
1113	movl	20(%esp),%eax
1114	rorl	$3,%esi
1115	movl	%edi,(%eax)
1116	movl	%esi,4(%eax)
1117	popl	%ebp
1118	popl	%ebx
1119	popl	%edi
1120	popl	%esi
1121	ret
1122.size	DES_encrypt2,.-.L_DES_encrypt2_begin
1123.globl	DES_encrypt3
1124.type	DES_encrypt3,@function
1125.align	16
1126DES_encrypt3:
1127.L_DES_encrypt3_begin:
1128	#ifdef __CET__
1129
1130.byte	243,15,30,251
1131	#endif
1132
1133	pushl	%ebx
1134	movl	8(%esp),%ebx
1135	pushl	%ebp
1136	pushl	%esi
1137	pushl	%edi
1138
1139
1140	movl	(%ebx),%edi
1141	movl	4(%ebx),%esi
1142	subl	$12,%esp
1143
1144
1145	roll	$4,%edi
1146	movl	%edi,%edx
1147	xorl	%esi,%edi
1148	andl	$0xf0f0f0f0,%edi
1149	xorl	%edi,%edx
1150	xorl	%edi,%esi
1151
1152	roll	$20,%esi
1153	movl	%esi,%edi
1154	xorl	%edx,%esi
1155	andl	$0xfff0000f,%esi
1156	xorl	%esi,%edi
1157	xorl	%esi,%edx
1158
1159	roll	$14,%edi
1160	movl	%edi,%esi
1161	xorl	%edx,%edi
1162	andl	$0x33333333,%edi
1163	xorl	%edi,%esi
1164	xorl	%edi,%edx
1165
1166	roll	$22,%edx
1167	movl	%edx,%edi
1168	xorl	%esi,%edx
1169	andl	$0x03fc03fc,%edx
1170	xorl	%edx,%edi
1171	xorl	%edx,%esi
1172
1173	roll	$9,%edi
1174	movl	%edi,%edx
1175	xorl	%esi,%edi
1176	andl	$0xaaaaaaaa,%edi
1177	xorl	%edi,%edx
1178	xorl	%edi,%esi
1179
1180	rorl	$3,%edx
1181	rorl	$2,%esi
1182	movl	%esi,4(%ebx)
1183	movl	36(%esp),%eax
1184	movl	%edx,(%ebx)
1185	movl	40(%esp),%edi
1186	movl	44(%esp),%esi
1187	movl	$1,8(%esp)
1188	movl	%eax,4(%esp)
1189	movl	%ebx,(%esp)
1190	call	.L_DES_encrypt2_begin
1191	movl	$0,8(%esp)
1192	movl	%edi,4(%esp)
1193	movl	%ebx,(%esp)
1194	call	.L_DES_encrypt2_begin
1195	movl	$1,8(%esp)
1196	movl	%esi,4(%esp)
1197	movl	%ebx,(%esp)
1198	call	.L_DES_encrypt2_begin
1199	addl	$12,%esp
1200	movl	(%ebx),%edi
1201	movl	4(%ebx),%esi
1202
1203
1204	roll	$2,%esi
1205	roll	$3,%edi
1206	movl	%edi,%eax
1207	xorl	%esi,%edi
1208	andl	$0xaaaaaaaa,%edi
1209	xorl	%edi,%eax
1210	xorl	%edi,%esi
1211
1212	roll	$23,%eax
1213	movl	%eax,%edi
1214	xorl	%esi,%eax
1215	andl	$0x03fc03fc,%eax
1216	xorl	%eax,%edi
1217	xorl	%eax,%esi
1218
1219	roll	$10,%edi
1220	movl	%edi,%eax
1221	xorl	%esi,%edi
1222	andl	$0x33333333,%edi
1223	xorl	%edi,%eax
1224	xorl	%edi,%esi
1225
1226	roll	$18,%esi
1227	movl	%esi,%edi
1228	xorl	%eax,%esi
1229	andl	$0xfff0000f,%esi
1230	xorl	%esi,%edi
1231	xorl	%esi,%eax
1232
1233	roll	$12,%edi
1234	movl	%edi,%esi
1235	xorl	%eax,%edi
1236	andl	$0xf0f0f0f0,%edi
1237	xorl	%edi,%esi
1238	xorl	%edi,%eax
1239
1240	rorl	$4,%eax
1241	movl	%eax,(%ebx)
1242	movl	%esi,4(%ebx)
1243	popl	%edi
1244	popl	%esi
1245	popl	%ebp
1246	popl	%ebx
1247	ret
1248.size	DES_encrypt3,.-.L_DES_encrypt3_begin
1249.globl	DES_decrypt3
1250.type	DES_decrypt3,@function
1251.align	16
1252DES_decrypt3:
1253.L_DES_decrypt3_begin:
1254	#ifdef __CET__
1255
1256.byte	243,15,30,251
1257	#endif
1258
1259	pushl	%ebx
1260	movl	8(%esp),%ebx
1261	pushl	%ebp
1262	pushl	%esi
1263	pushl	%edi
1264
1265
1266	movl	(%ebx),%edi
1267	movl	4(%ebx),%esi
1268	subl	$12,%esp
1269
1270
1271	roll	$4,%edi
1272	movl	%edi,%edx
1273	xorl	%esi,%edi
1274	andl	$0xf0f0f0f0,%edi
1275	xorl	%edi,%edx
1276	xorl	%edi,%esi
1277
1278	roll	$20,%esi
1279	movl	%esi,%edi
1280	xorl	%edx,%esi
1281	andl	$0xfff0000f,%esi
1282	xorl	%esi,%edi
1283	xorl	%esi,%edx
1284
1285	roll	$14,%edi
1286	movl	%edi,%esi
1287	xorl	%edx,%edi
1288	andl	$0x33333333,%edi
1289	xorl	%edi,%esi
1290	xorl	%edi,%edx
1291
1292	roll	$22,%edx
1293	movl	%edx,%edi
1294	xorl	%esi,%edx
1295	andl	$0x03fc03fc,%edx
1296	xorl	%edx,%edi
1297	xorl	%edx,%esi
1298
1299	roll	$9,%edi
1300	movl	%edi,%edx
1301	xorl	%esi,%edi
1302	andl	$0xaaaaaaaa,%edi
1303	xorl	%edi,%edx
1304	xorl	%edi,%esi
1305
1306	rorl	$3,%edx
1307	rorl	$2,%esi
1308	movl	%esi,4(%ebx)
1309	movl	36(%esp),%esi
1310	movl	%edx,(%ebx)
1311	movl	40(%esp),%edi
1312	movl	44(%esp),%eax
1313	movl	$0,8(%esp)
1314	movl	%eax,4(%esp)
1315	movl	%ebx,(%esp)
1316	call	.L_DES_encrypt2_begin
1317	movl	$1,8(%esp)
1318	movl	%edi,4(%esp)
1319	movl	%ebx,(%esp)
1320	call	.L_DES_encrypt2_begin
1321	movl	$0,8(%esp)
1322	movl	%esi,4(%esp)
1323	movl	%ebx,(%esp)
1324	call	.L_DES_encrypt2_begin
1325	addl	$12,%esp
1326	movl	(%ebx),%edi
1327	movl	4(%ebx),%esi
1328
1329
1330	roll	$2,%esi
1331	roll	$3,%edi
1332	movl	%edi,%eax
1333	xorl	%esi,%edi
1334	andl	$0xaaaaaaaa,%edi
1335	xorl	%edi,%eax
1336	xorl	%edi,%esi
1337
1338	roll	$23,%eax
1339	movl	%eax,%edi
1340	xorl	%esi,%eax
1341	andl	$0x03fc03fc,%eax
1342	xorl	%eax,%edi
1343	xorl	%eax,%esi
1344
1345	roll	$10,%edi
1346	movl	%edi,%eax
1347	xorl	%esi,%edi
1348	andl	$0x33333333,%edi
1349	xorl	%edi,%eax
1350	xorl	%edi,%esi
1351
1352	roll	$18,%esi
1353	movl	%esi,%edi
1354	xorl	%eax,%esi
1355	andl	$0xfff0000f,%esi
1356	xorl	%esi,%edi
1357	xorl	%esi,%eax
1358
1359	roll	$12,%edi
1360	movl	%edi,%esi
1361	xorl	%eax,%edi
1362	andl	$0xf0f0f0f0,%edi
1363	xorl	%edi,%esi
1364	xorl	%edi,%eax
1365
1366	rorl	$4,%eax
1367	movl	%eax,(%ebx)
1368	movl	%esi,4(%ebx)
1369	popl	%edi
1370	popl	%esi
1371	popl	%ebp
1372	popl	%ebx
1373	ret
1374.size	DES_decrypt3,.-.L_DES_decrypt3_begin
1375.globl	DES_ncbc_encrypt
1376.type	DES_ncbc_encrypt,@function
1377.align	16
1378DES_ncbc_encrypt:
1379.L_DES_ncbc_encrypt_begin:
1380	#ifdef __CET__
1381
1382.byte	243,15,30,251
1383	#endif
1384
1385
1386	pushl	%ebp
1387	pushl	%ebx
1388	pushl	%esi
1389	pushl	%edi
1390	movl	28(%esp),%ebp
1391
1392	movl	36(%esp),%ebx
1393	movl	(%ebx),%esi
1394	movl	4(%ebx),%edi
1395	pushl	%edi
1396	pushl	%esi
1397	pushl	%edi
1398	pushl	%esi
1399	movl	%esp,%ebx
1400	movl	36(%esp),%esi
1401	movl	40(%esp),%edi
1402
1403	movl	56(%esp),%ecx
1404
1405	pushl	%ecx
1406
1407	movl	52(%esp),%eax
1408	pushl	%eax
1409	pushl	%ebx
1410	cmpl	$0,%ecx
1411	jz	.L006decrypt
1412	andl	$4294967288,%ebp
1413	movl	12(%esp),%eax
1414	movl	16(%esp),%ebx
1415	jz	.L007encrypt_finish
1416.L008encrypt_loop:
1417	movl	(%esi),%ecx
1418	movl	4(%esi),%edx
1419	xorl	%ecx,%eax
1420	xorl	%edx,%ebx
1421	movl	%eax,12(%esp)
1422	movl	%ebx,16(%esp)
1423	call	.L_DES_encrypt1_begin
1424	movl	12(%esp),%eax
1425	movl	16(%esp),%ebx
1426	movl	%eax,(%edi)
1427	movl	%ebx,4(%edi)
1428	addl	$8,%esi
1429	addl	$8,%edi
1430	subl	$8,%ebp
1431	jnz	.L008encrypt_loop
1432.L007encrypt_finish:
1433	movl	56(%esp),%ebp
1434	andl	$7,%ebp
1435	jz	.L009finish
1436	call	.L010PIC_point
1437.L010PIC_point:
1438	popl	%edx
1439	leal	.L011cbc_enc_jmp_table-.L010PIC_point(%edx),%ecx
1440	movl	(%ecx,%ebp,4),%ebp
1441	addl	%edx,%ebp
1442	xorl	%ecx,%ecx
1443	xorl	%edx,%edx
1444	jmp	*%ebp
1445.L012ej7:
1446	#ifdef __CET__
1447
1448.byte	243,15,30,251
1449	#endif
1450
1451	movb	6(%esi),%dh
1452	shll	$8,%edx
1453.L013ej6:
1454	#ifdef __CET__
1455
1456.byte	243,15,30,251
1457	#endif
1458
1459	movb	5(%esi),%dh
1460.L014ej5:
1461	#ifdef __CET__
1462
1463.byte	243,15,30,251
1464	#endif
1465
1466	movb	4(%esi),%dl
1467.L015ej4:
1468	#ifdef __CET__
1469
1470.byte	243,15,30,251
1471	#endif
1472
1473	movl	(%esi),%ecx
1474	jmp	.L016ejend
1475.L017ej3:
1476	#ifdef __CET__
1477
1478.byte	243,15,30,251
1479	#endif
1480
1481	movb	2(%esi),%ch
1482	shll	$8,%ecx
1483.L018ej2:
1484	#ifdef __CET__
1485
1486.byte	243,15,30,251
1487	#endif
1488
1489	movb	1(%esi),%ch
1490.L019ej1:
1491	#ifdef __CET__
1492
1493.byte	243,15,30,251
1494	#endif
1495
1496	movb	(%esi),%cl
1497.L016ejend:
1498	xorl	%ecx,%eax
1499	xorl	%edx,%ebx
1500	movl	%eax,12(%esp)
1501	movl	%ebx,16(%esp)
1502	call	.L_DES_encrypt1_begin
1503	movl	12(%esp),%eax
1504	movl	16(%esp),%ebx
1505	movl	%eax,(%edi)
1506	movl	%ebx,4(%edi)
1507	jmp	.L009finish
1508.L006decrypt:
1509	andl	$4294967288,%ebp
1510	movl	20(%esp),%eax
1511	movl	24(%esp),%ebx
1512	jz	.L020decrypt_finish
1513.L021decrypt_loop:
1514	movl	(%esi),%eax
1515	movl	4(%esi),%ebx
1516	movl	%eax,12(%esp)
1517	movl	%ebx,16(%esp)
1518	call	.L_DES_encrypt1_begin
1519	movl	12(%esp),%eax
1520	movl	16(%esp),%ebx
1521	movl	20(%esp),%ecx
1522	movl	24(%esp),%edx
1523	xorl	%eax,%ecx
1524	xorl	%ebx,%edx
1525	movl	(%esi),%eax
1526	movl	4(%esi),%ebx
1527	movl	%ecx,(%edi)
1528	movl	%edx,4(%edi)
1529	movl	%eax,20(%esp)
1530	movl	%ebx,24(%esp)
1531	addl	$8,%esi
1532	addl	$8,%edi
1533	subl	$8,%ebp
1534	jnz	.L021decrypt_loop
1535.L020decrypt_finish:
1536	movl	56(%esp),%ebp
1537	andl	$7,%ebp
1538	jz	.L009finish
1539	movl	(%esi),%eax
1540	movl	4(%esi),%ebx
1541	movl	%eax,12(%esp)
1542	movl	%ebx,16(%esp)
1543	call	.L_DES_encrypt1_begin
1544	movl	12(%esp),%eax
1545	movl	16(%esp),%ebx
1546	movl	20(%esp),%ecx
1547	movl	24(%esp),%edx
1548	xorl	%eax,%ecx
1549	xorl	%ebx,%edx
1550	movl	(%esi),%eax
1551	movl	4(%esi),%ebx
1552.L022dj7:
1553	rorl	$16,%edx
1554	movb	%dl,6(%edi)
1555	shrl	$16,%edx
1556.L023dj6:
1557	movb	%dh,5(%edi)
1558.L024dj5:
1559	movb	%dl,4(%edi)
1560.L025dj4:
1561	movl	%ecx,(%edi)
1562	jmp	.L026djend
1563.L027dj3:
1564	rorl	$16,%ecx
1565	movb	%cl,2(%edi)
1566	shll	$16,%ecx
1567.L028dj2:
1568	movb	%ch,1(%esi)
1569.L029dj1:
1570	movb	%cl,(%esi)
1571.L026djend:
1572	jmp	.L009finish
1573.L009finish:
1574	movl	64(%esp),%ecx
1575	addl	$28,%esp
1576	movl	%eax,(%ecx)
1577	movl	%ebx,4(%ecx)
1578	popl	%edi
1579	popl	%esi
1580	popl	%ebx
1581	popl	%ebp
1582	ret
1583.align	64
1584.L011cbc_enc_jmp_table:
1585.long	0
1586.long	.L019ej1-.L010PIC_point
1587.long	.L018ej2-.L010PIC_point
1588.long	.L017ej3-.L010PIC_point
1589.long	.L015ej4-.L010PIC_point
1590.long	.L014ej5-.L010PIC_point
1591.long	.L013ej6-.L010PIC_point
1592.long	.L012ej7-.L010PIC_point
1593.align	64
1594.size	DES_ncbc_encrypt,.-.L_DES_ncbc_encrypt_begin
1595.globl	DES_ede3_cbc_encrypt
1596.type	DES_ede3_cbc_encrypt,@function
1597.align	16
1598DES_ede3_cbc_encrypt:
1599.L_DES_ede3_cbc_encrypt_begin:
1600	#ifdef __CET__
1601
1602.byte	243,15,30,251
1603	#endif
1604
1605
1606	pushl	%ebp
1607	pushl	%ebx
1608	pushl	%esi
1609	pushl	%edi
1610	movl	28(%esp),%ebp
1611
1612	movl	44(%esp),%ebx
1613	movl	(%ebx),%esi
1614	movl	4(%ebx),%edi
1615	pushl	%edi
1616	pushl	%esi
1617	pushl	%edi
1618	pushl	%esi
1619	movl	%esp,%ebx
1620	movl	36(%esp),%esi
1621	movl	40(%esp),%edi
1622
1623	movl	64(%esp),%ecx
1624
1625	movl	56(%esp),%eax
1626	pushl	%eax
1627
1628	movl	56(%esp),%eax
1629	pushl	%eax
1630
1631	movl	56(%esp),%eax
1632	pushl	%eax
1633	pushl	%ebx
1634	cmpl	$0,%ecx
1635	jz	.L030decrypt
1636	andl	$4294967288,%ebp
1637	movl	16(%esp),%eax
1638	movl	20(%esp),%ebx
1639	jz	.L031encrypt_finish
1640.L032encrypt_loop:
1641	movl	(%esi),%ecx
1642	movl	4(%esi),%edx
1643	xorl	%ecx,%eax
1644	xorl	%edx,%ebx
1645	movl	%eax,16(%esp)
1646	movl	%ebx,20(%esp)
1647	call	.L_DES_encrypt3_begin
1648	movl	16(%esp),%eax
1649	movl	20(%esp),%ebx
1650	movl	%eax,(%edi)
1651	movl	%ebx,4(%edi)
1652	addl	$8,%esi
1653	addl	$8,%edi
1654	subl	$8,%ebp
1655	jnz	.L032encrypt_loop
1656.L031encrypt_finish:
1657	movl	60(%esp),%ebp
1658	andl	$7,%ebp
1659	jz	.L033finish
1660	call	.L034PIC_point
1661.L034PIC_point:
1662	popl	%edx
1663	leal	.L035cbc_enc_jmp_table-.L034PIC_point(%edx),%ecx
1664	movl	(%ecx,%ebp,4),%ebp
1665	addl	%edx,%ebp
1666	xorl	%ecx,%ecx
1667	xorl	%edx,%edx
1668	jmp	*%ebp
1669.L036ej7:
1670	#ifdef __CET__
1671
1672.byte	243,15,30,251
1673	#endif
1674
1675	movb	6(%esi),%dh
1676	shll	$8,%edx
1677.L037ej6:
1678	#ifdef __CET__
1679
1680.byte	243,15,30,251
1681	#endif
1682
1683	movb	5(%esi),%dh
1684.L038ej5:
1685	#ifdef __CET__
1686
1687.byte	243,15,30,251
1688	#endif
1689
1690	movb	4(%esi),%dl
1691.L039ej4:
1692	#ifdef __CET__
1693
1694.byte	243,15,30,251
1695	#endif
1696
1697	movl	(%esi),%ecx
1698	jmp	.L040ejend
1699.L041ej3:
1700	#ifdef __CET__
1701
1702.byte	243,15,30,251
1703	#endif
1704
1705	movb	2(%esi),%ch
1706	shll	$8,%ecx
1707.L042ej2:
1708	#ifdef __CET__
1709
1710.byte	243,15,30,251
1711	#endif
1712
1713	movb	1(%esi),%ch
1714.L043ej1:
1715	#ifdef __CET__
1716
1717.byte	243,15,30,251
1718	#endif
1719
1720	movb	(%esi),%cl
1721.L040ejend:
1722	xorl	%ecx,%eax
1723	xorl	%edx,%ebx
1724	movl	%eax,16(%esp)
1725	movl	%ebx,20(%esp)
1726	call	.L_DES_encrypt3_begin
1727	movl	16(%esp),%eax
1728	movl	20(%esp),%ebx
1729	movl	%eax,(%edi)
1730	movl	%ebx,4(%edi)
1731	jmp	.L033finish
1732.L030decrypt:
1733	andl	$4294967288,%ebp
1734	movl	24(%esp),%eax
1735	movl	28(%esp),%ebx
1736	jz	.L044decrypt_finish
1737.L045decrypt_loop:
1738	movl	(%esi),%eax
1739	movl	4(%esi),%ebx
1740	movl	%eax,16(%esp)
1741	movl	%ebx,20(%esp)
1742	call	.L_DES_decrypt3_begin
1743	movl	16(%esp),%eax
1744	movl	20(%esp),%ebx
1745	movl	24(%esp),%ecx
1746	movl	28(%esp),%edx
1747	xorl	%eax,%ecx
1748	xorl	%ebx,%edx
1749	movl	(%esi),%eax
1750	movl	4(%esi),%ebx
1751	movl	%ecx,(%edi)
1752	movl	%edx,4(%edi)
1753	movl	%eax,24(%esp)
1754	movl	%ebx,28(%esp)
1755	addl	$8,%esi
1756	addl	$8,%edi
1757	subl	$8,%ebp
1758	jnz	.L045decrypt_loop
1759.L044decrypt_finish:
1760	movl	60(%esp),%ebp
1761	andl	$7,%ebp
1762	jz	.L033finish
1763	movl	(%esi),%eax
1764	movl	4(%esi),%ebx
1765	movl	%eax,16(%esp)
1766	movl	%ebx,20(%esp)
1767	call	.L_DES_decrypt3_begin
1768	movl	16(%esp),%eax
1769	movl	20(%esp),%ebx
1770	movl	24(%esp),%ecx
1771	movl	28(%esp),%edx
1772	xorl	%eax,%ecx
1773	xorl	%ebx,%edx
1774	movl	(%esi),%eax
1775	movl	4(%esi),%ebx
1776.L046dj7:
1777	rorl	$16,%edx
1778	movb	%dl,6(%edi)
1779	shrl	$16,%edx
1780.L047dj6:
1781	movb	%dh,5(%edi)
1782.L048dj5:
1783	movb	%dl,4(%edi)
1784.L049dj4:
1785	movl	%ecx,(%edi)
1786	jmp	.L050djend
1787.L051dj3:
1788	rorl	$16,%ecx
1789	movb	%cl,2(%edi)
1790	shll	$16,%ecx
1791.L052dj2:
1792	movb	%ch,1(%esi)
1793.L053dj1:
1794	movb	%cl,(%esi)
1795.L050djend:
1796	jmp	.L033finish
1797.L033finish:
1798	movl	76(%esp),%ecx
1799	addl	$32,%esp
1800	movl	%eax,(%ecx)
1801	movl	%ebx,4(%ecx)
1802	popl	%edi
1803	popl	%esi
1804	popl	%ebx
1805	popl	%ebp
1806	ret
1807.align	64
1808.L035cbc_enc_jmp_table:
1809.long	0
1810.long	.L043ej1-.L034PIC_point
1811.long	.L042ej2-.L034PIC_point
1812.long	.L041ej3-.L034PIC_point
1813.long	.L039ej4-.L034PIC_point
1814.long	.L038ej5-.L034PIC_point
1815.long	.L037ej6-.L034PIC_point
1816.long	.L036ej7-.L034PIC_point
1817.align	64
1818.size	DES_ede3_cbc_encrypt,.-.L_DES_ede3_cbc_encrypt_begin
1819.align	64
1820DES_SPtrans:
1821.Ldes_sptrans:
1822.long	34080768,524288,33554434,34080770
1823.long	33554432,526338,524290,33554434
1824.long	526338,34080768,34078720,2050
1825.long	33556482,33554432,0,524290
1826.long	524288,2,33556480,526336
1827.long	34080770,34078720,2050,33556480
1828.long	2,2048,526336,34078722
1829.long	2048,33556482,34078722,0
1830.long	0,34080770,33556480,524290
1831.long	34080768,524288,2050,33556480
1832.long	34078722,2048,526336,33554434
1833.long	526338,2,33554434,34078720
1834.long	34080770,526336,34078720,33556482
1835.long	33554432,2050,524290,0
1836.long	524288,33554432,33556482,34080768
1837.long	2,34078722,2048,526338
1838.long	1074823184,0,1081344,1074790400
1839.long	1073741840,32784,1073774592,1081344
1840.long	32768,1074790416,16,1073774592
1841.long	1048592,1074823168,1074790400,16
1842.long	1048576,1073774608,1074790416,32768
1843.long	1081360,1073741824,0,1048592
1844.long	1073774608,1081360,1074823168,1073741840
1845.long	1073741824,1048576,32784,1074823184
1846.long	1048592,1074823168,1073774592,1081360
1847.long	1074823184,1048592,1073741840,0
1848.long	1073741824,32784,1048576,1074790416
1849.long	32768,1073741824,1081360,1073774608
1850.long	1074823168,32768,0,1073741840
1851.long	16,1074823184,1081344,1074790400
1852.long	1074790416,1048576,32784,1073774592
1853.long	1073774608,16,1074790400,1081344
1854.long	67108865,67371264,256,67109121
1855.long	262145,67108864,67109121,262400
1856.long	67109120,262144,67371008,1
1857.long	67371265,257,1,67371009
1858.long	0,262145,67371264,256
1859.long	257,67371265,262144,67108865
1860.long	67371009,67109120,262401,67371008
1861.long	262400,0,67108864,262401
1862.long	67371264,256,1,262144
1863.long	257,262145,67371008,67109121
1864.long	0,67371264,262400,67371009
1865.long	262145,67108864,67371265,1
1866.long	262401,67108865,67108864,67371265
1867.long	262144,67109120,67109121,262400
1868.long	67109120,0,67371009,257
1869.long	67108865,262401,256,67371008
1870.long	4198408,268439552,8,272633864
1871.long	0,272629760,268439560,4194312
1872.long	272633856,268435464,268435456,4104
1873.long	268435464,4198408,4194304,268435456
1874.long	272629768,4198400,4096,8
1875.long	4198400,268439560,272629760,4096
1876.long	4104,0,4194312,272633856
1877.long	268439552,272629768,272633864,4194304
1878.long	272629768,4104,4194304,268435464
1879.long	4198400,268439552,8,272629760
1880.long	268439560,0,4096,4194312
1881.long	0,272629768,272633856,4096
1882.long	268435456,272633864,4198408,4194304
1883.long	272633864,8,268439552,4198408
1884.long	4194312,4198400,272629760,268439560
1885.long	4104,268435456,268435464,272633856
1886.long	134217728,65536,1024,134284320
1887.long	134283296,134218752,66592,134283264
1888.long	65536,32,134217760,66560
1889.long	134218784,134283296,134284288,0
1890.long	66560,134217728,65568,1056
1891.long	134218752,66592,0,134217760
1892.long	32,134218784,134284320,65568
1893.long	134283264,1024,1056,134284288
1894.long	134284288,134218784,65568,134283264
1895.long	65536,32,134217760,134218752
1896.long	134217728,66560,134284320,0
1897.long	66592,134217728,1024,65568
1898.long	134218784,1024,0,134284320
1899.long	134283296,134284288,1056,65536
1900.long	66560,134283296,134218752,1056
1901.long	32,66592,134283264,134217760
1902.long	2147483712,2097216,0,2149588992
1903.long	2097216,8192,2147491904,2097152
1904.long	8256,2149589056,2105344,2147483648
1905.long	2147491840,2147483712,2149580800,2105408
1906.long	2097152,2147491904,2149580864,0
1907.long	8192,64,2149588992,2149580864
1908.long	2149589056,2149580800,2147483648,8256
1909.long	64,2105344,2105408,2147491840
1910.long	8256,2147483648,2147491840,2105408
1911.long	2149588992,2097216,0,2147491840
1912.long	2147483648,8192,2149580864,2097152
1913.long	2097216,2149589056,2105344,64
1914.long	2149589056,2105344,2097152,2147491904
1915.long	2147483712,2149580800,2105408,0
1916.long	8192,2147483712,2147491904,2149588992
1917.long	2149580800,8256,64,2149580864
1918.long	16384,512,16777728,16777220
1919.long	16794116,16388,16896,0
1920.long	16777216,16777732,516,16793600
1921.long	4,16794112,16793600,516
1922.long	16777732,16384,16388,16794116
1923.long	0,16777728,16777220,16896
1924.long	16793604,16900,16794112,4
1925.long	16900,16793604,512,16777216
1926.long	16900,16793600,16793604,516
1927.long	16384,512,16777216,16793604
1928.long	16777732,16900,16896,0
1929.long	512,16777220,4,16777728
1930.long	0,16777732,16777728,16896
1931.long	516,16384,16794116,16777216
1932.long	16794112,4,16388,16794116
1933.long	16777220,16794112,16793600,16388
1934.long	545259648,545390592,131200,0
1935.long	537001984,8388736,545259520,545390720
1936.long	128,536870912,8519680,131200
1937.long	8519808,537002112,536871040,545259520
1938.long	131072,8519808,8388736,537001984
1939.long	545390720,536871040,0,8519680
1940.long	536870912,8388608,537002112,545259648
1941.long	8388608,131072,545390592,128
1942.long	8388608,131072,536871040,545390720
1943.long	131200,536870912,0,8519680
1944.long	545259648,537002112,537001984,8388736
1945.long	545390592,128,8388736,537001984
1946.long	545390720,8388608,545259520,536871040
1947.long	8519680,131200,537002112,545259520
1948.long	128,545390592,8519808,0
1949.long	536870912,545259648,131072,8519808
1950
1951	.section ".note.gnu.property", "a"
1952	.p2align 2
1953	.long 1f - 0f
1954	.long 4f - 1f
1955	.long 5
19560:
1957	.asciz "GNU"
19581:
1959	.p2align 2
1960	.long 0xc0000002
1961	.long 3f - 2f
19622:
1963	.long 3
19643:
1965	.p2align 2
19664:
1967#else
1968.text
1969.globl	DES_SPtrans
1970.type	_x86_DES_encrypt,@function
1971.align	16
1972_x86_DES_encrypt:
1973	#ifdef __CET__
1974
1975.byte	243,15,30,251
1976	#endif
1977
1978	pushl	%ecx
1979
1980	movl	(%ecx),%eax
1981	xorl	%ebx,%ebx
1982	movl	4(%ecx),%edx
1983	xorl	%esi,%eax
1984	xorl	%ecx,%ecx
1985	xorl	%esi,%edx
1986	andl	$0xfcfcfcfc,%eax
1987	andl	$0xcfcfcfcf,%edx
1988	movb	%al,%bl
1989	movb	%ah,%cl
1990	rorl	$4,%edx
1991	xorl	(%ebp,%ebx,1),%edi
1992	movb	%dl,%bl
1993	xorl	0x200(%ebp,%ecx,1),%edi
1994	movb	%dh,%cl
1995	shrl	$16,%eax
1996	xorl	0x100(%ebp,%ebx,1),%edi
1997	movb	%ah,%bl
1998	shrl	$16,%edx
1999	xorl	0x300(%ebp,%ecx,1),%edi
2000	movb	%dh,%cl
2001	andl	$0xff,%eax
2002	andl	$0xff,%edx
2003	xorl	0x600(%ebp,%ebx,1),%edi
2004	xorl	0x700(%ebp,%ecx,1),%edi
2005	movl	(%esp),%ecx
2006	xorl	0x400(%ebp,%eax,1),%edi
2007	xorl	0x500(%ebp,%edx,1),%edi
2008
2009	movl	8(%ecx),%eax
2010	xorl	%ebx,%ebx
2011	movl	12(%ecx),%edx
2012	xorl	%edi,%eax
2013	xorl	%ecx,%ecx
2014	xorl	%edi,%edx
2015	andl	$0xfcfcfcfc,%eax
2016	andl	$0xcfcfcfcf,%edx
2017	movb	%al,%bl
2018	movb	%ah,%cl
2019	rorl	$4,%edx
2020	xorl	(%ebp,%ebx,1),%esi
2021	movb	%dl,%bl
2022	xorl	0x200(%ebp,%ecx,1),%esi
2023	movb	%dh,%cl
2024	shrl	$16,%eax
2025	xorl	0x100(%ebp,%ebx,1),%esi
2026	movb	%ah,%bl
2027	shrl	$16,%edx
2028	xorl	0x300(%ebp,%ecx,1),%esi
2029	movb	%dh,%cl
2030	andl	$0xff,%eax
2031	andl	$0xff,%edx
2032	xorl	0x600(%ebp,%ebx,1),%esi
2033	xorl	0x700(%ebp,%ecx,1),%esi
2034	movl	(%esp),%ecx
2035	xorl	0x400(%ebp,%eax,1),%esi
2036	xorl	0x500(%ebp,%edx,1),%esi
2037
2038	movl	16(%ecx),%eax
2039	xorl	%ebx,%ebx
2040	movl	20(%ecx),%edx
2041	xorl	%esi,%eax
2042	xorl	%ecx,%ecx
2043	xorl	%esi,%edx
2044	andl	$0xfcfcfcfc,%eax
2045	andl	$0xcfcfcfcf,%edx
2046	movb	%al,%bl
2047	movb	%ah,%cl
2048	rorl	$4,%edx
2049	xorl	(%ebp,%ebx,1),%edi
2050	movb	%dl,%bl
2051	xorl	0x200(%ebp,%ecx,1),%edi
2052	movb	%dh,%cl
2053	shrl	$16,%eax
2054	xorl	0x100(%ebp,%ebx,1),%edi
2055	movb	%ah,%bl
2056	shrl	$16,%edx
2057	xorl	0x300(%ebp,%ecx,1),%edi
2058	movb	%dh,%cl
2059	andl	$0xff,%eax
2060	andl	$0xff,%edx
2061	xorl	0x600(%ebp,%ebx,1),%edi
2062	xorl	0x700(%ebp,%ecx,1),%edi
2063	movl	(%esp),%ecx
2064	xorl	0x400(%ebp,%eax,1),%edi
2065	xorl	0x500(%ebp,%edx,1),%edi
2066
2067	movl	24(%ecx),%eax
2068	xorl	%ebx,%ebx
2069	movl	28(%ecx),%edx
2070	xorl	%edi,%eax
2071	xorl	%ecx,%ecx
2072	xorl	%edi,%edx
2073	andl	$0xfcfcfcfc,%eax
2074	andl	$0xcfcfcfcf,%edx
2075	movb	%al,%bl
2076	movb	%ah,%cl
2077	rorl	$4,%edx
2078	xorl	(%ebp,%ebx,1),%esi
2079	movb	%dl,%bl
2080	xorl	0x200(%ebp,%ecx,1),%esi
2081	movb	%dh,%cl
2082	shrl	$16,%eax
2083	xorl	0x100(%ebp,%ebx,1),%esi
2084	movb	%ah,%bl
2085	shrl	$16,%edx
2086	xorl	0x300(%ebp,%ecx,1),%esi
2087	movb	%dh,%cl
2088	andl	$0xff,%eax
2089	andl	$0xff,%edx
2090	xorl	0x600(%ebp,%ebx,1),%esi
2091	xorl	0x700(%ebp,%ecx,1),%esi
2092	movl	(%esp),%ecx
2093	xorl	0x400(%ebp,%eax,1),%esi
2094	xorl	0x500(%ebp,%edx,1),%esi
2095
2096	movl	32(%ecx),%eax
2097	xorl	%ebx,%ebx
2098	movl	36(%ecx),%edx
2099	xorl	%esi,%eax
2100	xorl	%ecx,%ecx
2101	xorl	%esi,%edx
2102	andl	$0xfcfcfcfc,%eax
2103	andl	$0xcfcfcfcf,%edx
2104	movb	%al,%bl
2105	movb	%ah,%cl
2106	rorl	$4,%edx
2107	xorl	(%ebp,%ebx,1),%edi
2108	movb	%dl,%bl
2109	xorl	0x200(%ebp,%ecx,1),%edi
2110	movb	%dh,%cl
2111	shrl	$16,%eax
2112	xorl	0x100(%ebp,%ebx,1),%edi
2113	movb	%ah,%bl
2114	shrl	$16,%edx
2115	xorl	0x300(%ebp,%ecx,1),%edi
2116	movb	%dh,%cl
2117	andl	$0xff,%eax
2118	andl	$0xff,%edx
2119	xorl	0x600(%ebp,%ebx,1),%edi
2120	xorl	0x700(%ebp,%ecx,1),%edi
2121	movl	(%esp),%ecx
2122	xorl	0x400(%ebp,%eax,1),%edi
2123	xorl	0x500(%ebp,%edx,1),%edi
2124
2125	movl	40(%ecx),%eax
2126	xorl	%ebx,%ebx
2127	movl	44(%ecx),%edx
2128	xorl	%edi,%eax
2129	xorl	%ecx,%ecx
2130	xorl	%edi,%edx
2131	andl	$0xfcfcfcfc,%eax
2132	andl	$0xcfcfcfcf,%edx
2133	movb	%al,%bl
2134	movb	%ah,%cl
2135	rorl	$4,%edx
2136	xorl	(%ebp,%ebx,1),%esi
2137	movb	%dl,%bl
2138	xorl	0x200(%ebp,%ecx,1),%esi
2139	movb	%dh,%cl
2140	shrl	$16,%eax
2141	xorl	0x100(%ebp,%ebx,1),%esi
2142	movb	%ah,%bl
2143	shrl	$16,%edx
2144	xorl	0x300(%ebp,%ecx,1),%esi
2145	movb	%dh,%cl
2146	andl	$0xff,%eax
2147	andl	$0xff,%edx
2148	xorl	0x600(%ebp,%ebx,1),%esi
2149	xorl	0x700(%ebp,%ecx,1),%esi
2150	movl	(%esp),%ecx
2151	xorl	0x400(%ebp,%eax,1),%esi
2152	xorl	0x500(%ebp,%edx,1),%esi
2153
2154	movl	48(%ecx),%eax
2155	xorl	%ebx,%ebx
2156	movl	52(%ecx),%edx
2157	xorl	%esi,%eax
2158	xorl	%ecx,%ecx
2159	xorl	%esi,%edx
2160	andl	$0xfcfcfcfc,%eax
2161	andl	$0xcfcfcfcf,%edx
2162	movb	%al,%bl
2163	movb	%ah,%cl
2164	rorl	$4,%edx
2165	xorl	(%ebp,%ebx,1),%edi
2166	movb	%dl,%bl
2167	xorl	0x200(%ebp,%ecx,1),%edi
2168	movb	%dh,%cl
2169	shrl	$16,%eax
2170	xorl	0x100(%ebp,%ebx,1),%edi
2171	movb	%ah,%bl
2172	shrl	$16,%edx
2173	xorl	0x300(%ebp,%ecx,1),%edi
2174	movb	%dh,%cl
2175	andl	$0xff,%eax
2176	andl	$0xff,%edx
2177	xorl	0x600(%ebp,%ebx,1),%edi
2178	xorl	0x700(%ebp,%ecx,1),%edi
2179	movl	(%esp),%ecx
2180	xorl	0x400(%ebp,%eax,1),%edi
2181	xorl	0x500(%ebp,%edx,1),%edi
2182
2183	movl	56(%ecx),%eax
2184	xorl	%ebx,%ebx
2185	movl	60(%ecx),%edx
2186	xorl	%edi,%eax
2187	xorl	%ecx,%ecx
2188	xorl	%edi,%edx
2189	andl	$0xfcfcfcfc,%eax
2190	andl	$0xcfcfcfcf,%edx
2191	movb	%al,%bl
2192	movb	%ah,%cl
2193	rorl	$4,%edx
2194	xorl	(%ebp,%ebx,1),%esi
2195	movb	%dl,%bl
2196	xorl	0x200(%ebp,%ecx,1),%esi
2197	movb	%dh,%cl
2198	shrl	$16,%eax
2199	xorl	0x100(%ebp,%ebx,1),%esi
2200	movb	%ah,%bl
2201	shrl	$16,%edx
2202	xorl	0x300(%ebp,%ecx,1),%esi
2203	movb	%dh,%cl
2204	andl	$0xff,%eax
2205	andl	$0xff,%edx
2206	xorl	0x600(%ebp,%ebx,1),%esi
2207	xorl	0x700(%ebp,%ecx,1),%esi
2208	movl	(%esp),%ecx
2209	xorl	0x400(%ebp,%eax,1),%esi
2210	xorl	0x500(%ebp,%edx,1),%esi
2211
2212	movl	64(%ecx),%eax
2213	xorl	%ebx,%ebx
2214	movl	68(%ecx),%edx
2215	xorl	%esi,%eax
2216	xorl	%ecx,%ecx
2217	xorl	%esi,%edx
2218	andl	$0xfcfcfcfc,%eax
2219	andl	$0xcfcfcfcf,%edx
2220	movb	%al,%bl
2221	movb	%ah,%cl
2222	rorl	$4,%edx
2223	xorl	(%ebp,%ebx,1),%edi
2224	movb	%dl,%bl
2225	xorl	0x200(%ebp,%ecx,1),%edi
2226	movb	%dh,%cl
2227	shrl	$16,%eax
2228	xorl	0x100(%ebp,%ebx,1),%edi
2229	movb	%ah,%bl
2230	shrl	$16,%edx
2231	xorl	0x300(%ebp,%ecx,1),%edi
2232	movb	%dh,%cl
2233	andl	$0xff,%eax
2234	andl	$0xff,%edx
2235	xorl	0x600(%ebp,%ebx,1),%edi
2236	xorl	0x700(%ebp,%ecx,1),%edi
2237	movl	(%esp),%ecx
2238	xorl	0x400(%ebp,%eax,1),%edi
2239	xorl	0x500(%ebp,%edx,1),%edi
2240
2241	movl	72(%ecx),%eax
2242	xorl	%ebx,%ebx
2243	movl	76(%ecx),%edx
2244	xorl	%edi,%eax
2245	xorl	%ecx,%ecx
2246	xorl	%edi,%edx
2247	andl	$0xfcfcfcfc,%eax
2248	andl	$0xcfcfcfcf,%edx
2249	movb	%al,%bl
2250	movb	%ah,%cl
2251	rorl	$4,%edx
2252	xorl	(%ebp,%ebx,1),%esi
2253	movb	%dl,%bl
2254	xorl	0x200(%ebp,%ecx,1),%esi
2255	movb	%dh,%cl
2256	shrl	$16,%eax
2257	xorl	0x100(%ebp,%ebx,1),%esi
2258	movb	%ah,%bl
2259	shrl	$16,%edx
2260	xorl	0x300(%ebp,%ecx,1),%esi
2261	movb	%dh,%cl
2262	andl	$0xff,%eax
2263	andl	$0xff,%edx
2264	xorl	0x600(%ebp,%ebx,1),%esi
2265	xorl	0x700(%ebp,%ecx,1),%esi
2266	movl	(%esp),%ecx
2267	xorl	0x400(%ebp,%eax,1),%esi
2268	xorl	0x500(%ebp,%edx,1),%esi
2269
2270	movl	80(%ecx),%eax
2271	xorl	%ebx,%ebx
2272	movl	84(%ecx),%edx
2273	xorl	%esi,%eax
2274	xorl	%ecx,%ecx
2275	xorl	%esi,%edx
2276	andl	$0xfcfcfcfc,%eax
2277	andl	$0xcfcfcfcf,%edx
2278	movb	%al,%bl
2279	movb	%ah,%cl
2280	rorl	$4,%edx
2281	xorl	(%ebp,%ebx,1),%edi
2282	movb	%dl,%bl
2283	xorl	0x200(%ebp,%ecx,1),%edi
2284	movb	%dh,%cl
2285	shrl	$16,%eax
2286	xorl	0x100(%ebp,%ebx,1),%edi
2287	movb	%ah,%bl
2288	shrl	$16,%edx
2289	xorl	0x300(%ebp,%ecx,1),%edi
2290	movb	%dh,%cl
2291	andl	$0xff,%eax
2292	andl	$0xff,%edx
2293	xorl	0x600(%ebp,%ebx,1),%edi
2294	xorl	0x700(%ebp,%ecx,1),%edi
2295	movl	(%esp),%ecx
2296	xorl	0x400(%ebp,%eax,1),%edi
2297	xorl	0x500(%ebp,%edx,1),%edi
2298
2299	movl	88(%ecx),%eax
2300	xorl	%ebx,%ebx
2301	movl	92(%ecx),%edx
2302	xorl	%edi,%eax
2303	xorl	%ecx,%ecx
2304	xorl	%edi,%edx
2305	andl	$0xfcfcfcfc,%eax
2306	andl	$0xcfcfcfcf,%edx
2307	movb	%al,%bl
2308	movb	%ah,%cl
2309	rorl	$4,%edx
2310	xorl	(%ebp,%ebx,1),%esi
2311	movb	%dl,%bl
2312	xorl	0x200(%ebp,%ecx,1),%esi
2313	movb	%dh,%cl
2314	shrl	$16,%eax
2315	xorl	0x100(%ebp,%ebx,1),%esi
2316	movb	%ah,%bl
2317	shrl	$16,%edx
2318	xorl	0x300(%ebp,%ecx,1),%esi
2319	movb	%dh,%cl
2320	andl	$0xff,%eax
2321	andl	$0xff,%edx
2322	xorl	0x600(%ebp,%ebx,1),%esi
2323	xorl	0x700(%ebp,%ecx,1),%esi
2324	movl	(%esp),%ecx
2325	xorl	0x400(%ebp,%eax,1),%esi
2326	xorl	0x500(%ebp,%edx,1),%esi
2327
2328	movl	96(%ecx),%eax
2329	xorl	%ebx,%ebx
2330	movl	100(%ecx),%edx
2331	xorl	%esi,%eax
2332	xorl	%ecx,%ecx
2333	xorl	%esi,%edx
2334	andl	$0xfcfcfcfc,%eax
2335	andl	$0xcfcfcfcf,%edx
2336	movb	%al,%bl
2337	movb	%ah,%cl
2338	rorl	$4,%edx
2339	xorl	(%ebp,%ebx,1),%edi
2340	movb	%dl,%bl
2341	xorl	0x200(%ebp,%ecx,1),%edi
2342	movb	%dh,%cl
2343	shrl	$16,%eax
2344	xorl	0x100(%ebp,%ebx,1),%edi
2345	movb	%ah,%bl
2346	shrl	$16,%edx
2347	xorl	0x300(%ebp,%ecx,1),%edi
2348	movb	%dh,%cl
2349	andl	$0xff,%eax
2350	andl	$0xff,%edx
2351	xorl	0x600(%ebp,%ebx,1),%edi
2352	xorl	0x700(%ebp,%ecx,1),%edi
2353	movl	(%esp),%ecx
2354	xorl	0x400(%ebp,%eax,1),%edi
2355	xorl	0x500(%ebp,%edx,1),%edi
2356
2357	movl	104(%ecx),%eax
2358	xorl	%ebx,%ebx
2359	movl	108(%ecx),%edx
2360	xorl	%edi,%eax
2361	xorl	%ecx,%ecx
2362	xorl	%edi,%edx
2363	andl	$0xfcfcfcfc,%eax
2364	andl	$0xcfcfcfcf,%edx
2365	movb	%al,%bl
2366	movb	%ah,%cl
2367	rorl	$4,%edx
2368	xorl	(%ebp,%ebx,1),%esi
2369	movb	%dl,%bl
2370	xorl	0x200(%ebp,%ecx,1),%esi
2371	movb	%dh,%cl
2372	shrl	$16,%eax
2373	xorl	0x100(%ebp,%ebx,1),%esi
2374	movb	%ah,%bl
2375	shrl	$16,%edx
2376	xorl	0x300(%ebp,%ecx,1),%esi
2377	movb	%dh,%cl
2378	andl	$0xff,%eax
2379	andl	$0xff,%edx
2380	xorl	0x600(%ebp,%ebx,1),%esi
2381	xorl	0x700(%ebp,%ecx,1),%esi
2382	movl	(%esp),%ecx
2383	xorl	0x400(%ebp,%eax,1),%esi
2384	xorl	0x500(%ebp,%edx,1),%esi
2385
2386	movl	112(%ecx),%eax
2387	xorl	%ebx,%ebx
2388	movl	116(%ecx),%edx
2389	xorl	%esi,%eax
2390	xorl	%ecx,%ecx
2391	xorl	%esi,%edx
2392	andl	$0xfcfcfcfc,%eax
2393	andl	$0xcfcfcfcf,%edx
2394	movb	%al,%bl
2395	movb	%ah,%cl
2396	rorl	$4,%edx
2397	xorl	(%ebp,%ebx,1),%edi
2398	movb	%dl,%bl
2399	xorl	0x200(%ebp,%ecx,1),%edi
2400	movb	%dh,%cl
2401	shrl	$16,%eax
2402	xorl	0x100(%ebp,%ebx,1),%edi
2403	movb	%ah,%bl
2404	shrl	$16,%edx
2405	xorl	0x300(%ebp,%ecx,1),%edi
2406	movb	%dh,%cl
2407	andl	$0xff,%eax
2408	andl	$0xff,%edx
2409	xorl	0x600(%ebp,%ebx,1),%edi
2410	xorl	0x700(%ebp,%ecx,1),%edi
2411	movl	(%esp),%ecx
2412	xorl	0x400(%ebp,%eax,1),%edi
2413	xorl	0x500(%ebp,%edx,1),%edi
2414
2415	movl	120(%ecx),%eax
2416	xorl	%ebx,%ebx
2417	movl	124(%ecx),%edx
2418	xorl	%edi,%eax
2419	xorl	%ecx,%ecx
2420	xorl	%edi,%edx
2421	andl	$0xfcfcfcfc,%eax
2422	andl	$0xcfcfcfcf,%edx
2423	movb	%al,%bl
2424	movb	%ah,%cl
2425	rorl	$4,%edx
2426	xorl	(%ebp,%ebx,1),%esi
2427	movb	%dl,%bl
2428	xorl	0x200(%ebp,%ecx,1),%esi
2429	movb	%dh,%cl
2430	shrl	$16,%eax
2431	xorl	0x100(%ebp,%ebx,1),%esi
2432	movb	%ah,%bl
2433	shrl	$16,%edx
2434	xorl	0x300(%ebp,%ecx,1),%esi
2435	movb	%dh,%cl
2436	andl	$0xff,%eax
2437	andl	$0xff,%edx
2438	xorl	0x600(%ebp,%ebx,1),%esi
2439	xorl	0x700(%ebp,%ecx,1),%esi
2440	movl	(%esp),%ecx
2441	xorl	0x400(%ebp,%eax,1),%esi
2442	xorl	0x500(%ebp,%edx,1),%esi
2443	addl	$4,%esp
2444	ret
2445.size	_x86_DES_encrypt,.-_x86_DES_encrypt
2446.type	_x86_DES_decrypt,@function
2447.align	16
2448_x86_DES_decrypt:
2449	#ifdef __CET__
2450
2451.byte	243,15,30,251
2452	#endif
2453
2454	pushl	%ecx
2455
2456	movl	120(%ecx),%eax
2457	xorl	%ebx,%ebx
2458	movl	124(%ecx),%edx
2459	xorl	%esi,%eax
2460	xorl	%ecx,%ecx
2461	xorl	%esi,%edx
2462	andl	$0xfcfcfcfc,%eax
2463	andl	$0xcfcfcfcf,%edx
2464	movb	%al,%bl
2465	movb	%ah,%cl
2466	rorl	$4,%edx
2467	xorl	(%ebp,%ebx,1),%edi
2468	movb	%dl,%bl
2469	xorl	0x200(%ebp,%ecx,1),%edi
2470	movb	%dh,%cl
2471	shrl	$16,%eax
2472	xorl	0x100(%ebp,%ebx,1),%edi
2473	movb	%ah,%bl
2474	shrl	$16,%edx
2475	xorl	0x300(%ebp,%ecx,1),%edi
2476	movb	%dh,%cl
2477	andl	$0xff,%eax
2478	andl	$0xff,%edx
2479	xorl	0x600(%ebp,%ebx,1),%edi
2480	xorl	0x700(%ebp,%ecx,1),%edi
2481	movl	(%esp),%ecx
2482	xorl	0x400(%ebp,%eax,1),%edi
2483	xorl	0x500(%ebp,%edx,1),%edi
2484
2485	movl	112(%ecx),%eax
2486	xorl	%ebx,%ebx
2487	movl	116(%ecx),%edx
2488	xorl	%edi,%eax
2489	xorl	%ecx,%ecx
2490	xorl	%edi,%edx
2491	andl	$0xfcfcfcfc,%eax
2492	andl	$0xcfcfcfcf,%edx
2493	movb	%al,%bl
2494	movb	%ah,%cl
2495	rorl	$4,%edx
2496	xorl	(%ebp,%ebx,1),%esi
2497	movb	%dl,%bl
2498	xorl	0x200(%ebp,%ecx,1),%esi
2499	movb	%dh,%cl
2500	shrl	$16,%eax
2501	xorl	0x100(%ebp,%ebx,1),%esi
2502	movb	%ah,%bl
2503	shrl	$16,%edx
2504	xorl	0x300(%ebp,%ecx,1),%esi
2505	movb	%dh,%cl
2506	andl	$0xff,%eax
2507	andl	$0xff,%edx
2508	xorl	0x600(%ebp,%ebx,1),%esi
2509	xorl	0x700(%ebp,%ecx,1),%esi
2510	movl	(%esp),%ecx
2511	xorl	0x400(%ebp,%eax,1),%esi
2512	xorl	0x500(%ebp,%edx,1),%esi
2513
2514	movl	104(%ecx),%eax
2515	xorl	%ebx,%ebx
2516	movl	108(%ecx),%edx
2517	xorl	%esi,%eax
2518	xorl	%ecx,%ecx
2519	xorl	%esi,%edx
2520	andl	$0xfcfcfcfc,%eax
2521	andl	$0xcfcfcfcf,%edx
2522	movb	%al,%bl
2523	movb	%ah,%cl
2524	rorl	$4,%edx
2525	xorl	(%ebp,%ebx,1),%edi
2526	movb	%dl,%bl
2527	xorl	0x200(%ebp,%ecx,1),%edi
2528	movb	%dh,%cl
2529	shrl	$16,%eax
2530	xorl	0x100(%ebp,%ebx,1),%edi
2531	movb	%ah,%bl
2532	shrl	$16,%edx
2533	xorl	0x300(%ebp,%ecx,1),%edi
2534	movb	%dh,%cl
2535	andl	$0xff,%eax
2536	andl	$0xff,%edx
2537	xorl	0x600(%ebp,%ebx,1),%edi
2538	xorl	0x700(%ebp,%ecx,1),%edi
2539	movl	(%esp),%ecx
2540	xorl	0x400(%ebp,%eax,1),%edi
2541	xorl	0x500(%ebp,%edx,1),%edi
2542
2543	movl	96(%ecx),%eax
2544	xorl	%ebx,%ebx
2545	movl	100(%ecx),%edx
2546	xorl	%edi,%eax
2547	xorl	%ecx,%ecx
2548	xorl	%edi,%edx
2549	andl	$0xfcfcfcfc,%eax
2550	andl	$0xcfcfcfcf,%edx
2551	movb	%al,%bl
2552	movb	%ah,%cl
2553	rorl	$4,%edx
2554	xorl	(%ebp,%ebx,1),%esi
2555	movb	%dl,%bl
2556	xorl	0x200(%ebp,%ecx,1),%esi
2557	movb	%dh,%cl
2558	shrl	$16,%eax
2559	xorl	0x100(%ebp,%ebx,1),%esi
2560	movb	%ah,%bl
2561	shrl	$16,%edx
2562	xorl	0x300(%ebp,%ecx,1),%esi
2563	movb	%dh,%cl
2564	andl	$0xff,%eax
2565	andl	$0xff,%edx
2566	xorl	0x600(%ebp,%ebx,1),%esi
2567	xorl	0x700(%ebp,%ecx,1),%esi
2568	movl	(%esp),%ecx
2569	xorl	0x400(%ebp,%eax,1),%esi
2570	xorl	0x500(%ebp,%edx,1),%esi
2571
2572	movl	88(%ecx),%eax
2573	xorl	%ebx,%ebx
2574	movl	92(%ecx),%edx
2575	xorl	%esi,%eax
2576	xorl	%ecx,%ecx
2577	xorl	%esi,%edx
2578	andl	$0xfcfcfcfc,%eax
2579	andl	$0xcfcfcfcf,%edx
2580	movb	%al,%bl
2581	movb	%ah,%cl
2582	rorl	$4,%edx
2583	xorl	(%ebp,%ebx,1),%edi
2584	movb	%dl,%bl
2585	xorl	0x200(%ebp,%ecx,1),%edi
2586	movb	%dh,%cl
2587	shrl	$16,%eax
2588	xorl	0x100(%ebp,%ebx,1),%edi
2589	movb	%ah,%bl
2590	shrl	$16,%edx
2591	xorl	0x300(%ebp,%ecx,1),%edi
2592	movb	%dh,%cl
2593	andl	$0xff,%eax
2594	andl	$0xff,%edx
2595	xorl	0x600(%ebp,%ebx,1),%edi
2596	xorl	0x700(%ebp,%ecx,1),%edi
2597	movl	(%esp),%ecx
2598	xorl	0x400(%ebp,%eax,1),%edi
2599	xorl	0x500(%ebp,%edx,1),%edi
2600
2601	movl	80(%ecx),%eax
2602	xorl	%ebx,%ebx
2603	movl	84(%ecx),%edx
2604	xorl	%edi,%eax
2605	xorl	%ecx,%ecx
2606	xorl	%edi,%edx
2607	andl	$0xfcfcfcfc,%eax
2608	andl	$0xcfcfcfcf,%edx
2609	movb	%al,%bl
2610	movb	%ah,%cl
2611	rorl	$4,%edx
2612	xorl	(%ebp,%ebx,1),%esi
2613	movb	%dl,%bl
2614	xorl	0x200(%ebp,%ecx,1),%esi
2615	movb	%dh,%cl
2616	shrl	$16,%eax
2617	xorl	0x100(%ebp,%ebx,1),%esi
2618	movb	%ah,%bl
2619	shrl	$16,%edx
2620	xorl	0x300(%ebp,%ecx,1),%esi
2621	movb	%dh,%cl
2622	andl	$0xff,%eax
2623	andl	$0xff,%edx
2624	xorl	0x600(%ebp,%ebx,1),%esi
2625	xorl	0x700(%ebp,%ecx,1),%esi
2626	movl	(%esp),%ecx
2627	xorl	0x400(%ebp,%eax,1),%esi
2628	xorl	0x500(%ebp,%edx,1),%esi
2629
2630	movl	72(%ecx),%eax
2631	xorl	%ebx,%ebx
2632	movl	76(%ecx),%edx
2633	xorl	%esi,%eax
2634	xorl	%ecx,%ecx
2635	xorl	%esi,%edx
2636	andl	$0xfcfcfcfc,%eax
2637	andl	$0xcfcfcfcf,%edx
2638	movb	%al,%bl
2639	movb	%ah,%cl
2640	rorl	$4,%edx
2641	xorl	(%ebp,%ebx,1),%edi
2642	movb	%dl,%bl
2643	xorl	0x200(%ebp,%ecx,1),%edi
2644	movb	%dh,%cl
2645	shrl	$16,%eax
2646	xorl	0x100(%ebp,%ebx,1),%edi
2647	movb	%ah,%bl
2648	shrl	$16,%edx
2649	xorl	0x300(%ebp,%ecx,1),%edi
2650	movb	%dh,%cl
2651	andl	$0xff,%eax
2652	andl	$0xff,%edx
2653	xorl	0x600(%ebp,%ebx,1),%edi
2654	xorl	0x700(%ebp,%ecx,1),%edi
2655	movl	(%esp),%ecx
2656	xorl	0x400(%ebp,%eax,1),%edi
2657	xorl	0x500(%ebp,%edx,1),%edi
2658
2659	movl	64(%ecx),%eax
2660	xorl	%ebx,%ebx
2661	movl	68(%ecx),%edx
2662	xorl	%edi,%eax
2663	xorl	%ecx,%ecx
2664	xorl	%edi,%edx
2665	andl	$0xfcfcfcfc,%eax
2666	andl	$0xcfcfcfcf,%edx
2667	movb	%al,%bl
2668	movb	%ah,%cl
2669	rorl	$4,%edx
2670	xorl	(%ebp,%ebx,1),%esi
2671	movb	%dl,%bl
2672	xorl	0x200(%ebp,%ecx,1),%esi
2673	movb	%dh,%cl
2674	shrl	$16,%eax
2675	xorl	0x100(%ebp,%ebx,1),%esi
2676	movb	%ah,%bl
2677	shrl	$16,%edx
2678	xorl	0x300(%ebp,%ecx,1),%esi
2679	movb	%dh,%cl
2680	andl	$0xff,%eax
2681	andl	$0xff,%edx
2682	xorl	0x600(%ebp,%ebx,1),%esi
2683	xorl	0x700(%ebp,%ecx,1),%esi
2684	movl	(%esp),%ecx
2685	xorl	0x400(%ebp,%eax,1),%esi
2686	xorl	0x500(%ebp,%edx,1),%esi
2687
2688	movl	56(%ecx),%eax
2689	xorl	%ebx,%ebx
2690	movl	60(%ecx),%edx
2691	xorl	%esi,%eax
2692	xorl	%ecx,%ecx
2693	xorl	%esi,%edx
2694	andl	$0xfcfcfcfc,%eax
2695	andl	$0xcfcfcfcf,%edx
2696	movb	%al,%bl
2697	movb	%ah,%cl
2698	rorl	$4,%edx
2699	xorl	(%ebp,%ebx,1),%edi
2700	movb	%dl,%bl
2701	xorl	0x200(%ebp,%ecx,1),%edi
2702	movb	%dh,%cl
2703	shrl	$16,%eax
2704	xorl	0x100(%ebp,%ebx,1),%edi
2705	movb	%ah,%bl
2706	shrl	$16,%edx
2707	xorl	0x300(%ebp,%ecx,1),%edi
2708	movb	%dh,%cl
2709	andl	$0xff,%eax
2710	andl	$0xff,%edx
2711	xorl	0x600(%ebp,%ebx,1),%edi
2712	xorl	0x700(%ebp,%ecx,1),%edi
2713	movl	(%esp),%ecx
2714	xorl	0x400(%ebp,%eax,1),%edi
2715	xorl	0x500(%ebp,%edx,1),%edi
2716
2717	movl	48(%ecx),%eax
2718	xorl	%ebx,%ebx
2719	movl	52(%ecx),%edx
2720	xorl	%edi,%eax
2721	xorl	%ecx,%ecx
2722	xorl	%edi,%edx
2723	andl	$0xfcfcfcfc,%eax
2724	andl	$0xcfcfcfcf,%edx
2725	movb	%al,%bl
2726	movb	%ah,%cl
2727	rorl	$4,%edx
2728	xorl	(%ebp,%ebx,1),%esi
2729	movb	%dl,%bl
2730	xorl	0x200(%ebp,%ecx,1),%esi
2731	movb	%dh,%cl
2732	shrl	$16,%eax
2733	xorl	0x100(%ebp,%ebx,1),%esi
2734	movb	%ah,%bl
2735	shrl	$16,%edx
2736	xorl	0x300(%ebp,%ecx,1),%esi
2737	movb	%dh,%cl
2738	andl	$0xff,%eax
2739	andl	$0xff,%edx
2740	xorl	0x600(%ebp,%ebx,1),%esi
2741	xorl	0x700(%ebp,%ecx,1),%esi
2742	movl	(%esp),%ecx
2743	xorl	0x400(%ebp,%eax,1),%esi
2744	xorl	0x500(%ebp,%edx,1),%esi
2745
2746	movl	40(%ecx),%eax
2747	xorl	%ebx,%ebx
2748	movl	44(%ecx),%edx
2749	xorl	%esi,%eax
2750	xorl	%ecx,%ecx
2751	xorl	%esi,%edx
2752	andl	$0xfcfcfcfc,%eax
2753	andl	$0xcfcfcfcf,%edx
2754	movb	%al,%bl
2755	movb	%ah,%cl
2756	rorl	$4,%edx
2757	xorl	(%ebp,%ebx,1),%edi
2758	movb	%dl,%bl
2759	xorl	0x200(%ebp,%ecx,1),%edi
2760	movb	%dh,%cl
2761	shrl	$16,%eax
2762	xorl	0x100(%ebp,%ebx,1),%edi
2763	movb	%ah,%bl
2764	shrl	$16,%edx
2765	xorl	0x300(%ebp,%ecx,1),%edi
2766	movb	%dh,%cl
2767	andl	$0xff,%eax
2768	andl	$0xff,%edx
2769	xorl	0x600(%ebp,%ebx,1),%edi
2770	xorl	0x700(%ebp,%ecx,1),%edi
2771	movl	(%esp),%ecx
2772	xorl	0x400(%ebp,%eax,1),%edi
2773	xorl	0x500(%ebp,%edx,1),%edi
2774
2775	movl	32(%ecx),%eax
2776	xorl	%ebx,%ebx
2777	movl	36(%ecx),%edx
2778	xorl	%edi,%eax
2779	xorl	%ecx,%ecx
2780	xorl	%edi,%edx
2781	andl	$0xfcfcfcfc,%eax
2782	andl	$0xcfcfcfcf,%edx
2783	movb	%al,%bl
2784	movb	%ah,%cl
2785	rorl	$4,%edx
2786	xorl	(%ebp,%ebx,1),%esi
2787	movb	%dl,%bl
2788	xorl	0x200(%ebp,%ecx,1),%esi
2789	movb	%dh,%cl
2790	shrl	$16,%eax
2791	xorl	0x100(%ebp,%ebx,1),%esi
2792	movb	%ah,%bl
2793	shrl	$16,%edx
2794	xorl	0x300(%ebp,%ecx,1),%esi
2795	movb	%dh,%cl
2796	andl	$0xff,%eax
2797	andl	$0xff,%edx
2798	xorl	0x600(%ebp,%ebx,1),%esi
2799	xorl	0x700(%ebp,%ecx,1),%esi
2800	movl	(%esp),%ecx
2801	xorl	0x400(%ebp,%eax,1),%esi
2802	xorl	0x500(%ebp,%edx,1),%esi
2803
2804	movl	24(%ecx),%eax
2805	xorl	%ebx,%ebx
2806	movl	28(%ecx),%edx
2807	xorl	%esi,%eax
2808	xorl	%ecx,%ecx
2809	xorl	%esi,%edx
2810	andl	$0xfcfcfcfc,%eax
2811	andl	$0xcfcfcfcf,%edx
2812	movb	%al,%bl
2813	movb	%ah,%cl
2814	rorl	$4,%edx
2815	xorl	(%ebp,%ebx,1),%edi
2816	movb	%dl,%bl
2817	xorl	0x200(%ebp,%ecx,1),%edi
2818	movb	%dh,%cl
2819	shrl	$16,%eax
2820	xorl	0x100(%ebp,%ebx,1),%edi
2821	movb	%ah,%bl
2822	shrl	$16,%edx
2823	xorl	0x300(%ebp,%ecx,1),%edi
2824	movb	%dh,%cl
2825	andl	$0xff,%eax
2826	andl	$0xff,%edx
2827	xorl	0x600(%ebp,%ebx,1),%edi
2828	xorl	0x700(%ebp,%ecx,1),%edi
2829	movl	(%esp),%ecx
2830	xorl	0x400(%ebp,%eax,1),%edi
2831	xorl	0x500(%ebp,%edx,1),%edi
2832
2833	movl	16(%ecx),%eax
2834	xorl	%ebx,%ebx
2835	movl	20(%ecx),%edx
2836	xorl	%edi,%eax
2837	xorl	%ecx,%ecx
2838	xorl	%edi,%edx
2839	andl	$0xfcfcfcfc,%eax
2840	andl	$0xcfcfcfcf,%edx
2841	movb	%al,%bl
2842	movb	%ah,%cl
2843	rorl	$4,%edx
2844	xorl	(%ebp,%ebx,1),%esi
2845	movb	%dl,%bl
2846	xorl	0x200(%ebp,%ecx,1),%esi
2847	movb	%dh,%cl
2848	shrl	$16,%eax
2849	xorl	0x100(%ebp,%ebx,1),%esi
2850	movb	%ah,%bl
2851	shrl	$16,%edx
2852	xorl	0x300(%ebp,%ecx,1),%esi
2853	movb	%dh,%cl
2854	andl	$0xff,%eax
2855	andl	$0xff,%edx
2856	xorl	0x600(%ebp,%ebx,1),%esi
2857	xorl	0x700(%ebp,%ecx,1),%esi
2858	movl	(%esp),%ecx
2859	xorl	0x400(%ebp,%eax,1),%esi
2860	xorl	0x500(%ebp,%edx,1),%esi
2861
2862	movl	8(%ecx),%eax
2863	xorl	%ebx,%ebx
2864	movl	12(%ecx),%edx
2865	xorl	%esi,%eax
2866	xorl	%ecx,%ecx
2867	xorl	%esi,%edx
2868	andl	$0xfcfcfcfc,%eax
2869	andl	$0xcfcfcfcf,%edx
2870	movb	%al,%bl
2871	movb	%ah,%cl
2872	rorl	$4,%edx
2873	xorl	(%ebp,%ebx,1),%edi
2874	movb	%dl,%bl
2875	xorl	0x200(%ebp,%ecx,1),%edi
2876	movb	%dh,%cl
2877	shrl	$16,%eax
2878	xorl	0x100(%ebp,%ebx,1),%edi
2879	movb	%ah,%bl
2880	shrl	$16,%edx
2881	xorl	0x300(%ebp,%ecx,1),%edi
2882	movb	%dh,%cl
2883	andl	$0xff,%eax
2884	andl	$0xff,%edx
2885	xorl	0x600(%ebp,%ebx,1),%edi
2886	xorl	0x700(%ebp,%ecx,1),%edi
2887	movl	(%esp),%ecx
2888	xorl	0x400(%ebp,%eax,1),%edi
2889	xorl	0x500(%ebp,%edx,1),%edi
2890
2891	movl	(%ecx),%eax
2892	xorl	%ebx,%ebx
2893	movl	4(%ecx),%edx
2894	xorl	%edi,%eax
2895	xorl	%ecx,%ecx
2896	xorl	%edi,%edx
2897	andl	$0xfcfcfcfc,%eax
2898	andl	$0xcfcfcfcf,%edx
2899	movb	%al,%bl
2900	movb	%ah,%cl
2901	rorl	$4,%edx
2902	xorl	(%ebp,%ebx,1),%esi
2903	movb	%dl,%bl
2904	xorl	0x200(%ebp,%ecx,1),%esi
2905	movb	%dh,%cl
2906	shrl	$16,%eax
2907	xorl	0x100(%ebp,%ebx,1),%esi
2908	movb	%ah,%bl
2909	shrl	$16,%edx
2910	xorl	0x300(%ebp,%ecx,1),%esi
2911	movb	%dh,%cl
2912	andl	$0xff,%eax
2913	andl	$0xff,%edx
2914	xorl	0x600(%ebp,%ebx,1),%esi
2915	xorl	0x700(%ebp,%ecx,1),%esi
2916	movl	(%esp),%ecx
2917	xorl	0x400(%ebp,%eax,1),%esi
2918	xorl	0x500(%ebp,%edx,1),%esi
2919	addl	$4,%esp
2920	ret
2921.size	_x86_DES_decrypt,.-_x86_DES_decrypt
2922.globl	DES_encrypt1
2923.type	DES_encrypt1,@function
2924.align	16
2925DES_encrypt1:
2926.L_DES_encrypt1_begin:
2927	#ifdef __CET__
2928
2929.byte	243,15,30,251
2930	#endif
2931
2932	pushl	%esi
2933	pushl	%edi
2934
2935
2936	movl	12(%esp),%esi
2937	xorl	%ecx,%ecx
2938	pushl	%ebx
2939	pushl	%ebp
2940	movl	(%esi),%eax
2941	movl	28(%esp),%ebx
2942	movl	4(%esi),%edi
2943
2944
2945	roll	$4,%eax
2946	movl	%eax,%esi
2947	xorl	%edi,%eax
2948	andl	$0xf0f0f0f0,%eax
2949	xorl	%eax,%esi
2950	xorl	%eax,%edi
2951
2952	roll	$20,%edi
2953	movl	%edi,%eax
2954	xorl	%esi,%edi
2955	andl	$0xfff0000f,%edi
2956	xorl	%edi,%eax
2957	xorl	%edi,%esi
2958
2959	roll	$14,%eax
2960	movl	%eax,%edi
2961	xorl	%esi,%eax
2962	andl	$0x33333333,%eax
2963	xorl	%eax,%edi
2964	xorl	%eax,%esi
2965
2966	roll	$22,%esi
2967	movl	%esi,%eax
2968	xorl	%edi,%esi
2969	andl	$0x03fc03fc,%esi
2970	xorl	%esi,%eax
2971	xorl	%esi,%edi
2972
2973	roll	$9,%eax
2974	movl	%eax,%esi
2975	xorl	%edi,%eax
2976	andl	$0xaaaaaaaa,%eax
2977	xorl	%eax,%esi
2978	xorl	%eax,%edi
2979
2980	roll	$1,%edi
2981	call	.L000pic_point
2982.L000pic_point:
2983	popl	%ebp
2984	leal	.Ldes_sptrans-.L000pic_point(%ebp),%ebp
2985	movl	24(%esp),%ecx
2986	cmpl	$0,%ebx
2987	je	.L001decrypt
2988	call	_x86_DES_encrypt
2989	jmp	.L002done
2990.L001decrypt:
2991	call	_x86_DES_decrypt
2992.L002done:
2993
2994
2995	movl	20(%esp),%edx
2996	rorl	$1,%esi
2997	movl	%edi,%eax
2998	xorl	%esi,%edi
2999	andl	$0xaaaaaaaa,%edi
3000	xorl	%edi,%eax
3001	xorl	%edi,%esi
3002
3003	roll	$23,%eax
3004	movl	%eax,%edi
3005	xorl	%esi,%eax
3006	andl	$0x03fc03fc,%eax
3007	xorl	%eax,%edi
3008	xorl	%eax,%esi
3009
3010	roll	$10,%edi
3011	movl	%edi,%eax
3012	xorl	%esi,%edi
3013	andl	$0x33333333,%edi
3014	xorl	%edi,%eax
3015	xorl	%edi,%esi
3016
3017	roll	$18,%esi
3018	movl	%esi,%edi
3019	xorl	%eax,%esi
3020	andl	$0xfff0000f,%esi
3021	xorl	%esi,%edi
3022	xorl	%esi,%eax
3023
3024	roll	$12,%edi
3025	movl	%edi,%esi
3026	xorl	%eax,%edi
3027	andl	$0xf0f0f0f0,%edi
3028	xorl	%edi,%esi
3029	xorl	%edi,%eax
3030
3031	rorl	$4,%eax
3032	movl	%eax,(%edx)
3033	movl	%esi,4(%edx)
3034	popl	%ebp
3035	popl	%ebx
3036	popl	%edi
3037	popl	%esi
3038	ret
3039.size	DES_encrypt1,.-.L_DES_encrypt1_begin
3040.globl	DES_encrypt2
3041.type	DES_encrypt2,@function
3042.align	16
3043DES_encrypt2:
3044.L_DES_encrypt2_begin:
3045	#ifdef __CET__
3046
3047.byte	243,15,30,251
3048	#endif
3049
3050	pushl	%esi
3051	pushl	%edi
3052
3053
3054	movl	12(%esp),%eax
3055	xorl	%ecx,%ecx
3056	pushl	%ebx
3057	pushl	%ebp
3058	movl	(%eax),%esi
3059	movl	28(%esp),%ebx
3060	roll	$3,%esi
3061	movl	4(%eax),%edi
3062	roll	$3,%edi
3063	call	.L003pic_point
3064.L003pic_point:
3065	popl	%ebp
3066	leal	.Ldes_sptrans-.L003pic_point(%ebp),%ebp
3067	movl	24(%esp),%ecx
3068	cmpl	$0,%ebx
3069	je	.L004decrypt
3070	call	_x86_DES_encrypt
3071	jmp	.L005done
3072.L004decrypt:
3073	call	_x86_DES_decrypt
3074.L005done:
3075
3076
3077	rorl	$3,%edi
3078	movl	20(%esp),%eax
3079	rorl	$3,%esi
3080	movl	%edi,(%eax)
3081	movl	%esi,4(%eax)
3082	popl	%ebp
3083	popl	%ebx
3084	popl	%edi
3085	popl	%esi
3086	ret
3087.size	DES_encrypt2,.-.L_DES_encrypt2_begin
3088.globl	DES_encrypt3
3089.type	DES_encrypt3,@function
3090.align	16
3091DES_encrypt3:
3092.L_DES_encrypt3_begin:
3093	#ifdef __CET__
3094
3095.byte	243,15,30,251
3096	#endif
3097
3098	pushl	%ebx
3099	movl	8(%esp),%ebx
3100	pushl	%ebp
3101	pushl	%esi
3102	pushl	%edi
3103
3104
3105	movl	(%ebx),%edi
3106	movl	4(%ebx),%esi
3107	subl	$12,%esp
3108
3109
3110	roll	$4,%edi
3111	movl	%edi,%edx
3112	xorl	%esi,%edi
3113	andl	$0xf0f0f0f0,%edi
3114	xorl	%edi,%edx
3115	xorl	%edi,%esi
3116
3117	roll	$20,%esi
3118	movl	%esi,%edi
3119	xorl	%edx,%esi
3120	andl	$0xfff0000f,%esi
3121	xorl	%esi,%edi
3122	xorl	%esi,%edx
3123
3124	roll	$14,%edi
3125	movl	%edi,%esi
3126	xorl	%edx,%edi
3127	andl	$0x33333333,%edi
3128	xorl	%edi,%esi
3129	xorl	%edi,%edx
3130
3131	roll	$22,%edx
3132	movl	%edx,%edi
3133	xorl	%esi,%edx
3134	andl	$0x03fc03fc,%edx
3135	xorl	%edx,%edi
3136	xorl	%edx,%esi
3137
3138	roll	$9,%edi
3139	movl	%edi,%edx
3140	xorl	%esi,%edi
3141	andl	$0xaaaaaaaa,%edi
3142	xorl	%edi,%edx
3143	xorl	%edi,%esi
3144
3145	rorl	$3,%edx
3146	rorl	$2,%esi
3147	movl	%esi,4(%ebx)
3148	movl	36(%esp),%eax
3149	movl	%edx,(%ebx)
3150	movl	40(%esp),%edi
3151	movl	44(%esp),%esi
3152	movl	$1,8(%esp)
3153	movl	%eax,4(%esp)
3154	movl	%ebx,(%esp)
3155	call	.L_DES_encrypt2_begin
3156	movl	$0,8(%esp)
3157	movl	%edi,4(%esp)
3158	movl	%ebx,(%esp)
3159	call	.L_DES_encrypt2_begin
3160	movl	$1,8(%esp)
3161	movl	%esi,4(%esp)
3162	movl	%ebx,(%esp)
3163	call	.L_DES_encrypt2_begin
3164	addl	$12,%esp
3165	movl	(%ebx),%edi
3166	movl	4(%ebx),%esi
3167
3168
3169	roll	$2,%esi
3170	roll	$3,%edi
3171	movl	%edi,%eax
3172	xorl	%esi,%edi
3173	andl	$0xaaaaaaaa,%edi
3174	xorl	%edi,%eax
3175	xorl	%edi,%esi
3176
3177	roll	$23,%eax
3178	movl	%eax,%edi
3179	xorl	%esi,%eax
3180	andl	$0x03fc03fc,%eax
3181	xorl	%eax,%edi
3182	xorl	%eax,%esi
3183
3184	roll	$10,%edi
3185	movl	%edi,%eax
3186	xorl	%esi,%edi
3187	andl	$0x33333333,%edi
3188	xorl	%edi,%eax
3189	xorl	%edi,%esi
3190
3191	roll	$18,%esi
3192	movl	%esi,%edi
3193	xorl	%eax,%esi
3194	andl	$0xfff0000f,%esi
3195	xorl	%esi,%edi
3196	xorl	%esi,%eax
3197
3198	roll	$12,%edi
3199	movl	%edi,%esi
3200	xorl	%eax,%edi
3201	andl	$0xf0f0f0f0,%edi
3202	xorl	%edi,%esi
3203	xorl	%edi,%eax
3204
3205	rorl	$4,%eax
3206	movl	%eax,(%ebx)
3207	movl	%esi,4(%ebx)
3208	popl	%edi
3209	popl	%esi
3210	popl	%ebp
3211	popl	%ebx
3212	ret
3213.size	DES_encrypt3,.-.L_DES_encrypt3_begin
3214.globl	DES_decrypt3
3215.type	DES_decrypt3,@function
3216.align	16
3217DES_decrypt3:
3218.L_DES_decrypt3_begin:
3219	#ifdef __CET__
3220
3221.byte	243,15,30,251
3222	#endif
3223
3224	pushl	%ebx
3225	movl	8(%esp),%ebx
3226	pushl	%ebp
3227	pushl	%esi
3228	pushl	%edi
3229
3230
3231	movl	(%ebx),%edi
3232	movl	4(%ebx),%esi
3233	subl	$12,%esp
3234
3235
3236	roll	$4,%edi
3237	movl	%edi,%edx
3238	xorl	%esi,%edi
3239	andl	$0xf0f0f0f0,%edi
3240	xorl	%edi,%edx
3241	xorl	%edi,%esi
3242
3243	roll	$20,%esi
3244	movl	%esi,%edi
3245	xorl	%edx,%esi
3246	andl	$0xfff0000f,%esi
3247	xorl	%esi,%edi
3248	xorl	%esi,%edx
3249
3250	roll	$14,%edi
3251	movl	%edi,%esi
3252	xorl	%edx,%edi
3253	andl	$0x33333333,%edi
3254	xorl	%edi,%esi
3255	xorl	%edi,%edx
3256
3257	roll	$22,%edx
3258	movl	%edx,%edi
3259	xorl	%esi,%edx
3260	andl	$0x03fc03fc,%edx
3261	xorl	%edx,%edi
3262	xorl	%edx,%esi
3263
3264	roll	$9,%edi
3265	movl	%edi,%edx
3266	xorl	%esi,%edi
3267	andl	$0xaaaaaaaa,%edi
3268	xorl	%edi,%edx
3269	xorl	%edi,%esi
3270
3271	rorl	$3,%edx
3272	rorl	$2,%esi
3273	movl	%esi,4(%ebx)
3274	movl	36(%esp),%esi
3275	movl	%edx,(%ebx)
3276	movl	40(%esp),%edi
3277	movl	44(%esp),%eax
3278	movl	$0,8(%esp)
3279	movl	%eax,4(%esp)
3280	movl	%ebx,(%esp)
3281	call	.L_DES_encrypt2_begin
3282	movl	$1,8(%esp)
3283	movl	%edi,4(%esp)
3284	movl	%ebx,(%esp)
3285	call	.L_DES_encrypt2_begin
3286	movl	$0,8(%esp)
3287	movl	%esi,4(%esp)
3288	movl	%ebx,(%esp)
3289	call	.L_DES_encrypt2_begin
3290	addl	$12,%esp
3291	movl	(%ebx),%edi
3292	movl	4(%ebx),%esi
3293
3294
3295	roll	$2,%esi
3296	roll	$3,%edi
3297	movl	%edi,%eax
3298	xorl	%esi,%edi
3299	andl	$0xaaaaaaaa,%edi
3300	xorl	%edi,%eax
3301	xorl	%edi,%esi
3302
3303	roll	$23,%eax
3304	movl	%eax,%edi
3305	xorl	%esi,%eax
3306	andl	$0x03fc03fc,%eax
3307	xorl	%eax,%edi
3308	xorl	%eax,%esi
3309
3310	roll	$10,%edi
3311	movl	%edi,%eax
3312	xorl	%esi,%edi
3313	andl	$0x33333333,%edi
3314	xorl	%edi,%eax
3315	xorl	%edi,%esi
3316
3317	roll	$18,%esi
3318	movl	%esi,%edi
3319	xorl	%eax,%esi
3320	andl	$0xfff0000f,%esi
3321	xorl	%esi,%edi
3322	xorl	%esi,%eax
3323
3324	roll	$12,%edi
3325	movl	%edi,%esi
3326	xorl	%eax,%edi
3327	andl	$0xf0f0f0f0,%edi
3328	xorl	%edi,%esi
3329	xorl	%edi,%eax
3330
3331	rorl	$4,%eax
3332	movl	%eax,(%ebx)
3333	movl	%esi,4(%ebx)
3334	popl	%edi
3335	popl	%esi
3336	popl	%ebp
3337	popl	%ebx
3338	ret
3339.size	DES_decrypt3,.-.L_DES_decrypt3_begin
3340.globl	DES_ncbc_encrypt
3341.type	DES_ncbc_encrypt,@function
3342.align	16
3343DES_ncbc_encrypt:
3344.L_DES_ncbc_encrypt_begin:
3345	#ifdef __CET__
3346
3347.byte	243,15,30,251
3348	#endif
3349
3350
3351	pushl	%ebp
3352	pushl	%ebx
3353	pushl	%esi
3354	pushl	%edi
3355	movl	28(%esp),%ebp
3356
3357	movl	36(%esp),%ebx
3358	movl	(%ebx),%esi
3359	movl	4(%ebx),%edi
3360	pushl	%edi
3361	pushl	%esi
3362	pushl	%edi
3363	pushl	%esi
3364	movl	%esp,%ebx
3365	movl	36(%esp),%esi
3366	movl	40(%esp),%edi
3367
3368	movl	56(%esp),%ecx
3369
3370	pushl	%ecx
3371
3372	movl	52(%esp),%eax
3373	pushl	%eax
3374	pushl	%ebx
3375	cmpl	$0,%ecx
3376	jz	.L006decrypt
3377	andl	$4294967288,%ebp
3378	movl	12(%esp),%eax
3379	movl	16(%esp),%ebx
3380	jz	.L007encrypt_finish
3381.L008encrypt_loop:
3382	movl	(%esi),%ecx
3383	movl	4(%esi),%edx
3384	xorl	%ecx,%eax
3385	xorl	%edx,%ebx
3386	movl	%eax,12(%esp)
3387	movl	%ebx,16(%esp)
3388	call	.L_DES_encrypt1_begin
3389	movl	12(%esp),%eax
3390	movl	16(%esp),%ebx
3391	movl	%eax,(%edi)
3392	movl	%ebx,4(%edi)
3393	addl	$8,%esi
3394	addl	$8,%edi
3395	subl	$8,%ebp
3396	jnz	.L008encrypt_loop
3397.L007encrypt_finish:
3398	movl	56(%esp),%ebp
3399	andl	$7,%ebp
3400	jz	.L009finish
3401	call	.L010PIC_point
3402.L010PIC_point:
3403	popl	%edx
3404	leal	.L011cbc_enc_jmp_table-.L010PIC_point(%edx),%ecx
3405	movl	(%ecx,%ebp,4),%ebp
3406	addl	%edx,%ebp
3407	xorl	%ecx,%ecx
3408	xorl	%edx,%edx
3409	jmp	*%ebp
3410.L012ej7:
3411	#ifdef __CET__
3412
3413.byte	243,15,30,251
3414	#endif
3415
3416	movb	6(%esi),%dh
3417	shll	$8,%edx
3418.L013ej6:
3419	#ifdef __CET__
3420
3421.byte	243,15,30,251
3422	#endif
3423
3424	movb	5(%esi),%dh
3425.L014ej5:
3426	#ifdef __CET__
3427
3428.byte	243,15,30,251
3429	#endif
3430
3431	movb	4(%esi),%dl
3432.L015ej4:
3433	#ifdef __CET__
3434
3435.byte	243,15,30,251
3436	#endif
3437
3438	movl	(%esi),%ecx
3439	jmp	.L016ejend
3440.L017ej3:
3441	#ifdef __CET__
3442
3443.byte	243,15,30,251
3444	#endif
3445
3446	movb	2(%esi),%ch
3447	shll	$8,%ecx
3448.L018ej2:
3449	#ifdef __CET__
3450
3451.byte	243,15,30,251
3452	#endif
3453
3454	movb	1(%esi),%ch
3455.L019ej1:
3456	#ifdef __CET__
3457
3458.byte	243,15,30,251
3459	#endif
3460
3461	movb	(%esi),%cl
3462.L016ejend:
3463	xorl	%ecx,%eax
3464	xorl	%edx,%ebx
3465	movl	%eax,12(%esp)
3466	movl	%ebx,16(%esp)
3467	call	.L_DES_encrypt1_begin
3468	movl	12(%esp),%eax
3469	movl	16(%esp),%ebx
3470	movl	%eax,(%edi)
3471	movl	%ebx,4(%edi)
3472	jmp	.L009finish
3473.L006decrypt:
3474	andl	$4294967288,%ebp
3475	movl	20(%esp),%eax
3476	movl	24(%esp),%ebx
3477	jz	.L020decrypt_finish
3478.L021decrypt_loop:
3479	movl	(%esi),%eax
3480	movl	4(%esi),%ebx
3481	movl	%eax,12(%esp)
3482	movl	%ebx,16(%esp)
3483	call	.L_DES_encrypt1_begin
3484	movl	12(%esp),%eax
3485	movl	16(%esp),%ebx
3486	movl	20(%esp),%ecx
3487	movl	24(%esp),%edx
3488	xorl	%eax,%ecx
3489	xorl	%ebx,%edx
3490	movl	(%esi),%eax
3491	movl	4(%esi),%ebx
3492	movl	%ecx,(%edi)
3493	movl	%edx,4(%edi)
3494	movl	%eax,20(%esp)
3495	movl	%ebx,24(%esp)
3496	addl	$8,%esi
3497	addl	$8,%edi
3498	subl	$8,%ebp
3499	jnz	.L021decrypt_loop
3500.L020decrypt_finish:
3501	movl	56(%esp),%ebp
3502	andl	$7,%ebp
3503	jz	.L009finish
3504	movl	(%esi),%eax
3505	movl	4(%esi),%ebx
3506	movl	%eax,12(%esp)
3507	movl	%ebx,16(%esp)
3508	call	.L_DES_encrypt1_begin
3509	movl	12(%esp),%eax
3510	movl	16(%esp),%ebx
3511	movl	20(%esp),%ecx
3512	movl	24(%esp),%edx
3513	xorl	%eax,%ecx
3514	xorl	%ebx,%edx
3515	movl	(%esi),%eax
3516	movl	4(%esi),%ebx
3517.L022dj7:
3518	rorl	$16,%edx
3519	movb	%dl,6(%edi)
3520	shrl	$16,%edx
3521.L023dj6:
3522	movb	%dh,5(%edi)
3523.L024dj5:
3524	movb	%dl,4(%edi)
3525.L025dj4:
3526	movl	%ecx,(%edi)
3527	jmp	.L026djend
3528.L027dj3:
3529	rorl	$16,%ecx
3530	movb	%cl,2(%edi)
3531	shll	$16,%ecx
3532.L028dj2:
3533	movb	%ch,1(%esi)
3534.L029dj1:
3535	movb	%cl,(%esi)
3536.L026djend:
3537	jmp	.L009finish
3538.L009finish:
3539	movl	64(%esp),%ecx
3540	addl	$28,%esp
3541	movl	%eax,(%ecx)
3542	movl	%ebx,4(%ecx)
3543	popl	%edi
3544	popl	%esi
3545	popl	%ebx
3546	popl	%ebp
3547	ret
3548.align	64
3549.L011cbc_enc_jmp_table:
3550.long	0
3551.long	.L019ej1-.L010PIC_point
3552.long	.L018ej2-.L010PIC_point
3553.long	.L017ej3-.L010PIC_point
3554.long	.L015ej4-.L010PIC_point
3555.long	.L014ej5-.L010PIC_point
3556.long	.L013ej6-.L010PIC_point
3557.long	.L012ej7-.L010PIC_point
3558.align	64
3559.size	DES_ncbc_encrypt,.-.L_DES_ncbc_encrypt_begin
3560.globl	DES_ede3_cbc_encrypt
3561.type	DES_ede3_cbc_encrypt,@function
3562.align	16
3563DES_ede3_cbc_encrypt:
3564.L_DES_ede3_cbc_encrypt_begin:
3565	#ifdef __CET__
3566
3567.byte	243,15,30,251
3568	#endif
3569
3570
3571	pushl	%ebp
3572	pushl	%ebx
3573	pushl	%esi
3574	pushl	%edi
3575	movl	28(%esp),%ebp
3576
3577	movl	44(%esp),%ebx
3578	movl	(%ebx),%esi
3579	movl	4(%ebx),%edi
3580	pushl	%edi
3581	pushl	%esi
3582	pushl	%edi
3583	pushl	%esi
3584	movl	%esp,%ebx
3585	movl	36(%esp),%esi
3586	movl	40(%esp),%edi
3587
3588	movl	64(%esp),%ecx
3589
3590	movl	56(%esp),%eax
3591	pushl	%eax
3592
3593	movl	56(%esp),%eax
3594	pushl	%eax
3595
3596	movl	56(%esp),%eax
3597	pushl	%eax
3598	pushl	%ebx
3599	cmpl	$0,%ecx
3600	jz	.L030decrypt
3601	andl	$4294967288,%ebp
3602	movl	16(%esp),%eax
3603	movl	20(%esp),%ebx
3604	jz	.L031encrypt_finish
3605.L032encrypt_loop:
3606	movl	(%esi),%ecx
3607	movl	4(%esi),%edx
3608	xorl	%ecx,%eax
3609	xorl	%edx,%ebx
3610	movl	%eax,16(%esp)
3611	movl	%ebx,20(%esp)
3612	call	.L_DES_encrypt3_begin
3613	movl	16(%esp),%eax
3614	movl	20(%esp),%ebx
3615	movl	%eax,(%edi)
3616	movl	%ebx,4(%edi)
3617	addl	$8,%esi
3618	addl	$8,%edi
3619	subl	$8,%ebp
3620	jnz	.L032encrypt_loop
3621.L031encrypt_finish:
3622	movl	60(%esp),%ebp
3623	andl	$7,%ebp
3624	jz	.L033finish
3625	call	.L034PIC_point
3626.L034PIC_point:
3627	popl	%edx
3628	leal	.L035cbc_enc_jmp_table-.L034PIC_point(%edx),%ecx
3629	movl	(%ecx,%ebp,4),%ebp
3630	addl	%edx,%ebp
3631	xorl	%ecx,%ecx
3632	xorl	%edx,%edx
3633	jmp	*%ebp
3634.L036ej7:
3635	#ifdef __CET__
3636
3637.byte	243,15,30,251
3638	#endif
3639
3640	movb	6(%esi),%dh
3641	shll	$8,%edx
3642.L037ej6:
3643	#ifdef __CET__
3644
3645.byte	243,15,30,251
3646	#endif
3647
3648	movb	5(%esi),%dh
3649.L038ej5:
3650	#ifdef __CET__
3651
3652.byte	243,15,30,251
3653	#endif
3654
3655	movb	4(%esi),%dl
3656.L039ej4:
3657	#ifdef __CET__
3658
3659.byte	243,15,30,251
3660	#endif
3661
3662	movl	(%esi),%ecx
3663	jmp	.L040ejend
3664.L041ej3:
3665	#ifdef __CET__
3666
3667.byte	243,15,30,251
3668	#endif
3669
3670	movb	2(%esi),%ch
3671	shll	$8,%ecx
3672.L042ej2:
3673	#ifdef __CET__
3674
3675.byte	243,15,30,251
3676	#endif
3677
3678	movb	1(%esi),%ch
3679.L043ej1:
3680	#ifdef __CET__
3681
3682.byte	243,15,30,251
3683	#endif
3684
3685	movb	(%esi),%cl
3686.L040ejend:
3687	xorl	%ecx,%eax
3688	xorl	%edx,%ebx
3689	movl	%eax,16(%esp)
3690	movl	%ebx,20(%esp)
3691	call	.L_DES_encrypt3_begin
3692	movl	16(%esp),%eax
3693	movl	20(%esp),%ebx
3694	movl	%eax,(%edi)
3695	movl	%ebx,4(%edi)
3696	jmp	.L033finish
3697.L030decrypt:
3698	andl	$4294967288,%ebp
3699	movl	24(%esp),%eax
3700	movl	28(%esp),%ebx
3701	jz	.L044decrypt_finish
3702.L045decrypt_loop:
3703	movl	(%esi),%eax
3704	movl	4(%esi),%ebx
3705	movl	%eax,16(%esp)
3706	movl	%ebx,20(%esp)
3707	call	.L_DES_decrypt3_begin
3708	movl	16(%esp),%eax
3709	movl	20(%esp),%ebx
3710	movl	24(%esp),%ecx
3711	movl	28(%esp),%edx
3712	xorl	%eax,%ecx
3713	xorl	%ebx,%edx
3714	movl	(%esi),%eax
3715	movl	4(%esi),%ebx
3716	movl	%ecx,(%edi)
3717	movl	%edx,4(%edi)
3718	movl	%eax,24(%esp)
3719	movl	%ebx,28(%esp)
3720	addl	$8,%esi
3721	addl	$8,%edi
3722	subl	$8,%ebp
3723	jnz	.L045decrypt_loop
3724.L044decrypt_finish:
3725	movl	60(%esp),%ebp
3726	andl	$7,%ebp
3727	jz	.L033finish
3728	movl	(%esi),%eax
3729	movl	4(%esi),%ebx
3730	movl	%eax,16(%esp)
3731	movl	%ebx,20(%esp)
3732	call	.L_DES_decrypt3_begin
3733	movl	16(%esp),%eax
3734	movl	20(%esp),%ebx
3735	movl	24(%esp),%ecx
3736	movl	28(%esp),%edx
3737	xorl	%eax,%ecx
3738	xorl	%ebx,%edx
3739	movl	(%esi),%eax
3740	movl	4(%esi),%ebx
3741.L046dj7:
3742	rorl	$16,%edx
3743	movb	%dl,6(%edi)
3744	shrl	$16,%edx
3745.L047dj6:
3746	movb	%dh,5(%edi)
3747.L048dj5:
3748	movb	%dl,4(%edi)
3749.L049dj4:
3750	movl	%ecx,(%edi)
3751	jmp	.L050djend
3752.L051dj3:
3753	rorl	$16,%ecx
3754	movb	%cl,2(%edi)
3755	shll	$16,%ecx
3756.L052dj2:
3757	movb	%ch,1(%esi)
3758.L053dj1:
3759	movb	%cl,(%esi)
3760.L050djend:
3761	jmp	.L033finish
3762.L033finish:
3763	movl	76(%esp),%ecx
3764	addl	$32,%esp
3765	movl	%eax,(%ecx)
3766	movl	%ebx,4(%ecx)
3767	popl	%edi
3768	popl	%esi
3769	popl	%ebx
3770	popl	%ebp
3771	ret
3772.align	64
3773.L035cbc_enc_jmp_table:
3774.long	0
3775.long	.L043ej1-.L034PIC_point
3776.long	.L042ej2-.L034PIC_point
3777.long	.L041ej3-.L034PIC_point
3778.long	.L039ej4-.L034PIC_point
3779.long	.L038ej5-.L034PIC_point
3780.long	.L037ej6-.L034PIC_point
3781.long	.L036ej7-.L034PIC_point
3782.align	64
3783.size	DES_ede3_cbc_encrypt,.-.L_DES_ede3_cbc_encrypt_begin
3784.align	64
3785DES_SPtrans:
3786.Ldes_sptrans:
3787.long	34080768,524288,33554434,34080770
3788.long	33554432,526338,524290,33554434
3789.long	526338,34080768,34078720,2050
3790.long	33556482,33554432,0,524290
3791.long	524288,2,33556480,526336
3792.long	34080770,34078720,2050,33556480
3793.long	2,2048,526336,34078722
3794.long	2048,33556482,34078722,0
3795.long	0,34080770,33556480,524290
3796.long	34080768,524288,2050,33556480
3797.long	34078722,2048,526336,33554434
3798.long	526338,2,33554434,34078720
3799.long	34080770,526336,34078720,33556482
3800.long	33554432,2050,524290,0
3801.long	524288,33554432,33556482,34080768
3802.long	2,34078722,2048,526338
3803.long	1074823184,0,1081344,1074790400
3804.long	1073741840,32784,1073774592,1081344
3805.long	32768,1074790416,16,1073774592
3806.long	1048592,1074823168,1074790400,16
3807.long	1048576,1073774608,1074790416,32768
3808.long	1081360,1073741824,0,1048592
3809.long	1073774608,1081360,1074823168,1073741840
3810.long	1073741824,1048576,32784,1074823184
3811.long	1048592,1074823168,1073774592,1081360
3812.long	1074823184,1048592,1073741840,0
3813.long	1073741824,32784,1048576,1074790416
3814.long	32768,1073741824,1081360,1073774608
3815.long	1074823168,32768,0,1073741840
3816.long	16,1074823184,1081344,1074790400
3817.long	1074790416,1048576,32784,1073774592
3818.long	1073774608,16,1074790400,1081344
3819.long	67108865,67371264,256,67109121
3820.long	262145,67108864,67109121,262400
3821.long	67109120,262144,67371008,1
3822.long	67371265,257,1,67371009
3823.long	0,262145,67371264,256
3824.long	257,67371265,262144,67108865
3825.long	67371009,67109120,262401,67371008
3826.long	262400,0,67108864,262401
3827.long	67371264,256,1,262144
3828.long	257,262145,67371008,67109121
3829.long	0,67371264,262400,67371009
3830.long	262145,67108864,67371265,1
3831.long	262401,67108865,67108864,67371265
3832.long	262144,67109120,67109121,262400
3833.long	67109120,0,67371009,257
3834.long	67108865,262401,256,67371008
3835.long	4198408,268439552,8,272633864
3836.long	0,272629760,268439560,4194312
3837.long	272633856,268435464,268435456,4104
3838.long	268435464,4198408,4194304,268435456
3839.long	272629768,4198400,4096,8
3840.long	4198400,268439560,272629760,4096
3841.long	4104,0,4194312,272633856
3842.long	268439552,272629768,272633864,4194304
3843.long	272629768,4104,4194304,268435464
3844.long	4198400,268439552,8,272629760
3845.long	268439560,0,4096,4194312
3846.long	0,272629768,272633856,4096
3847.long	268435456,272633864,4198408,4194304
3848.long	272633864,8,268439552,4198408
3849.long	4194312,4198400,272629760,268439560
3850.long	4104,268435456,268435464,272633856
3851.long	134217728,65536,1024,134284320
3852.long	134283296,134218752,66592,134283264
3853.long	65536,32,134217760,66560
3854.long	134218784,134283296,134284288,0
3855.long	66560,134217728,65568,1056
3856.long	134218752,66592,0,134217760
3857.long	32,134218784,134284320,65568
3858.long	134283264,1024,1056,134284288
3859.long	134284288,134218784,65568,134283264
3860.long	65536,32,134217760,134218752
3861.long	134217728,66560,134284320,0
3862.long	66592,134217728,1024,65568
3863.long	134218784,1024,0,134284320
3864.long	134283296,134284288,1056,65536
3865.long	66560,134283296,134218752,1056
3866.long	32,66592,134283264,134217760
3867.long	2147483712,2097216,0,2149588992
3868.long	2097216,8192,2147491904,2097152
3869.long	8256,2149589056,2105344,2147483648
3870.long	2147491840,2147483712,2149580800,2105408
3871.long	2097152,2147491904,2149580864,0
3872.long	8192,64,2149588992,2149580864
3873.long	2149589056,2149580800,2147483648,8256
3874.long	64,2105344,2105408,2147491840
3875.long	8256,2147483648,2147491840,2105408
3876.long	2149588992,2097216,0,2147491840
3877.long	2147483648,8192,2149580864,2097152
3878.long	2097216,2149589056,2105344,64
3879.long	2149589056,2105344,2097152,2147491904
3880.long	2147483712,2149580800,2105408,0
3881.long	8192,2147483712,2147491904,2149588992
3882.long	2149580800,8256,64,2149580864
3883.long	16384,512,16777728,16777220
3884.long	16794116,16388,16896,0
3885.long	16777216,16777732,516,16793600
3886.long	4,16794112,16793600,516
3887.long	16777732,16384,16388,16794116
3888.long	0,16777728,16777220,16896
3889.long	16793604,16900,16794112,4
3890.long	16900,16793604,512,16777216
3891.long	16900,16793600,16793604,516
3892.long	16384,512,16777216,16793604
3893.long	16777732,16900,16896,0
3894.long	512,16777220,4,16777728
3895.long	0,16777732,16777728,16896
3896.long	516,16384,16794116,16777216
3897.long	16794112,4,16388,16794116
3898.long	16777220,16794112,16793600,16388
3899.long	545259648,545390592,131200,0
3900.long	537001984,8388736,545259520,545390720
3901.long	128,536870912,8519680,131200
3902.long	8519808,537002112,536871040,545259520
3903.long	131072,8519808,8388736,537001984
3904.long	545390720,536871040,0,8519680
3905.long	536870912,8388608,537002112,545259648
3906.long	8388608,131072,545390592,128
3907.long	8388608,131072,536871040,545390720
3908.long	131200,536870912,0,8519680
3909.long	545259648,537002112,537001984,8388736
3910.long	545390592,128,8388736,537001984
3911.long	545390720,8388608,545259520,536871040
3912.long	8519680,131200,537002112,545259520
3913.long	128,545390592,8519808,0
3914.long	536870912,545259648,131072,8519808
3915
3916	.section ".note.gnu.property", "a"
3917	.p2align 2
3918	.long 1f - 0f
3919	.long 4f - 1f
3920	.long 5
39210:
3922	.asciz "GNU"
39231:
3924	.p2align 2
3925	.long 0xc0000002
3926	.long 3f - 2f
39272:
3928	.long 3
39293:
3930	.p2align 2
39314:
3932#endif
3933