1	# $FreeBSD$
2
3
4
5
6
7
8	.file	"des-586.s"
9	.version	"01.01"
10gcc2_compiled.:
11.text
12	.align 16
13.globl DES_encrypt1
14	.type	DES_encrypt1,@function
15DES_encrypt1:
16	pushl	%esi
17	pushl	%edi
18
19
20	movl	12(%esp),	%esi
21	xorl	%ecx,		%ecx
22	pushl	%ebx
23	pushl	%ebp
24	movl	(%esi),		%eax
25	movl	28(%esp),	%ebx
26	movl	4(%esi),	%edi
27
28
29	roll	$4,		%eax
30	movl	%eax,		%esi
31	xorl	%edi,		%eax
32	andl	$0xf0f0f0f0,	%eax
33	xorl	%eax,		%esi
34	xorl	%eax,		%edi
35
36	roll	$20,		%edi
37	movl	%edi,		%eax
38	xorl	%esi,		%edi
39	andl	$0xfff0000f,	%edi
40	xorl	%edi,		%eax
41	xorl	%edi,		%esi
42
43	roll	$14,		%eax
44	movl	%eax,		%edi
45	xorl	%esi,		%eax
46	andl	$0x33333333,	%eax
47	xorl	%eax,		%edi
48	xorl	%eax,		%esi
49
50	roll	$22,		%esi
51	movl	%esi,		%eax
52	xorl	%edi,		%esi
53	andl	$0x03fc03fc,	%esi
54	xorl	%esi,		%eax
55	xorl	%esi,		%edi
56
57	roll	$9,		%eax
58	movl	%eax,		%esi
59	xorl	%edi,		%eax
60	andl	$0xaaaaaaaa,	%eax
61	xorl	%eax,		%esi
62	xorl	%eax,		%edi
63
64.byte 209
65.byte 199
66	leal	DES_SPtrans,	%ebp
67	movl	24(%esp),	%ecx
68	cmpl	$0,		%ebx
69	je	.L000start_decrypt
70
71
72	movl	(%ecx),		%eax
73	xorl	%ebx,		%ebx
74	movl	4(%ecx),	%edx
75	xorl	%esi,		%eax
76	xorl	%ecx,		%ecx
77	xorl	%esi,		%edx
78	andl	$0xfcfcfcfc,	%eax
79	andl	$0xcfcfcfcf,	%edx
80	movb	%al,		%bl
81	movb	%ah,		%cl
82	rorl	$4,		%edx
83	xorl	     (%ebp,%ebx),%edi
84	movb	%dl,		%bl
85	xorl	0x200(%ebp,%ecx),%edi
86	movb	%dh,		%cl
87	shrl	$16,		%eax
88	xorl	0x100(%ebp,%ebx),%edi
89	movb	%ah,		%bl
90	shrl	$16,		%edx
91	xorl	0x300(%ebp,%ecx),%edi
92	movb	%dh,		%cl
93	andl	$0xff,		%eax
94	andl	$0xff,		%edx
95	xorl	0x600(%ebp,%ebx),%edi
96	xorl	0x700(%ebp,%ecx),%edi
97	movl	24(%esp),	%ecx
98	xorl	0x400(%ebp,%eax),%edi
99	xorl	0x500(%ebp,%edx),%edi
100
101
102	movl	8(%ecx),	%eax
103	xorl	%ebx,		%ebx
104	movl	12(%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),%esi
114	movb	%dl,		%bl
115	xorl	0x200(%ebp,%ecx),%esi
116	movb	%dh,		%cl
117	shrl	$16,		%eax
118	xorl	0x100(%ebp,%ebx),%esi
119	movb	%ah,		%bl
120	shrl	$16,		%edx
121	xorl	0x300(%ebp,%ecx),%esi
122	movb	%dh,		%cl
123	andl	$0xff,		%eax
124	andl	$0xff,		%edx
125	xorl	0x600(%ebp,%ebx),%esi
126	xorl	0x700(%ebp,%ecx),%esi
127	movl	24(%esp),	%ecx
128	xorl	0x400(%ebp,%eax),%esi
129	xorl	0x500(%ebp,%edx),%esi
130
131
132	movl	16(%ecx),	%eax
133	xorl	%ebx,		%ebx
134	movl	20(%ecx),	%edx
135	xorl	%esi,		%eax
136	xorl	%ecx,		%ecx
137	xorl	%esi,		%edx
138	andl	$0xfcfcfcfc,	%eax
139	andl	$0xcfcfcfcf,	%edx
140	movb	%al,		%bl
141	movb	%ah,		%cl
142	rorl	$4,		%edx
143	xorl	     (%ebp,%ebx),%edi
144	movb	%dl,		%bl
145	xorl	0x200(%ebp,%ecx),%edi
146	movb	%dh,		%cl
147	shrl	$16,		%eax
148	xorl	0x100(%ebp,%ebx),%edi
149	movb	%ah,		%bl
150	shrl	$16,		%edx
151	xorl	0x300(%ebp,%ecx),%edi
152	movb	%dh,		%cl
153	andl	$0xff,		%eax
154	andl	$0xff,		%edx
155	xorl	0x600(%ebp,%ebx),%edi
156	xorl	0x700(%ebp,%ecx),%edi
157	movl	24(%esp),	%ecx
158	xorl	0x400(%ebp,%eax),%edi
159	xorl	0x500(%ebp,%edx),%edi
160
161
162	movl	24(%ecx),	%eax
163	xorl	%ebx,		%ebx
164	movl	28(%ecx),	%edx
165	xorl	%edi,		%eax
166	xorl	%ecx,		%ecx
167	xorl	%edi,		%edx
168	andl	$0xfcfcfcfc,	%eax
169	andl	$0xcfcfcfcf,	%edx
170	movb	%al,		%bl
171	movb	%ah,		%cl
172	rorl	$4,		%edx
173	xorl	     (%ebp,%ebx),%esi
174	movb	%dl,		%bl
175	xorl	0x200(%ebp,%ecx),%esi
176	movb	%dh,		%cl
177	shrl	$16,		%eax
178	xorl	0x100(%ebp,%ebx),%esi
179	movb	%ah,		%bl
180	shrl	$16,		%edx
181	xorl	0x300(%ebp,%ecx),%esi
182	movb	%dh,		%cl
183	andl	$0xff,		%eax
184	andl	$0xff,		%edx
185	xorl	0x600(%ebp,%ebx),%esi
186	xorl	0x700(%ebp,%ecx),%esi
187	movl	24(%esp),	%ecx
188	xorl	0x400(%ebp,%eax),%esi
189	xorl	0x500(%ebp,%edx),%esi
190
191
192	movl	32(%ecx),	%eax
193	xorl	%ebx,		%ebx
194	movl	36(%ecx),	%edx
195	xorl	%esi,		%eax
196	xorl	%ecx,		%ecx
197	xorl	%esi,		%edx
198	andl	$0xfcfcfcfc,	%eax
199	andl	$0xcfcfcfcf,	%edx
200	movb	%al,		%bl
201	movb	%ah,		%cl
202	rorl	$4,		%edx
203	xorl	     (%ebp,%ebx),%edi
204	movb	%dl,		%bl
205	xorl	0x200(%ebp,%ecx),%edi
206	movb	%dh,		%cl
207	shrl	$16,		%eax
208	xorl	0x100(%ebp,%ebx),%edi
209	movb	%ah,		%bl
210	shrl	$16,		%edx
211	xorl	0x300(%ebp,%ecx),%edi
212	movb	%dh,		%cl
213	andl	$0xff,		%eax
214	andl	$0xff,		%edx
215	xorl	0x600(%ebp,%ebx),%edi
216	xorl	0x700(%ebp,%ecx),%edi
217	movl	24(%esp),	%ecx
218	xorl	0x400(%ebp,%eax),%edi
219	xorl	0x500(%ebp,%edx),%edi
220
221
222	movl	40(%ecx),	%eax
223	xorl	%ebx,		%ebx
224	movl	44(%ecx),	%edx
225	xorl	%edi,		%eax
226	xorl	%ecx,		%ecx
227	xorl	%edi,		%edx
228	andl	$0xfcfcfcfc,	%eax
229	andl	$0xcfcfcfcf,	%edx
230	movb	%al,		%bl
231	movb	%ah,		%cl
232	rorl	$4,		%edx
233	xorl	     (%ebp,%ebx),%esi
234	movb	%dl,		%bl
235	xorl	0x200(%ebp,%ecx),%esi
236	movb	%dh,		%cl
237	shrl	$16,		%eax
238	xorl	0x100(%ebp,%ebx),%esi
239	movb	%ah,		%bl
240	shrl	$16,		%edx
241	xorl	0x300(%ebp,%ecx),%esi
242	movb	%dh,		%cl
243	andl	$0xff,		%eax
244	andl	$0xff,		%edx
245	xorl	0x600(%ebp,%ebx),%esi
246	xorl	0x700(%ebp,%ecx),%esi
247	movl	24(%esp),	%ecx
248	xorl	0x400(%ebp,%eax),%esi
249	xorl	0x500(%ebp,%edx),%esi
250
251
252	movl	48(%ecx),	%eax
253	xorl	%ebx,		%ebx
254	movl	52(%ecx),	%edx
255	xorl	%esi,		%eax
256	xorl	%ecx,		%ecx
257	xorl	%esi,		%edx
258	andl	$0xfcfcfcfc,	%eax
259	andl	$0xcfcfcfcf,	%edx
260	movb	%al,		%bl
261	movb	%ah,		%cl
262	rorl	$4,		%edx
263	xorl	     (%ebp,%ebx),%edi
264	movb	%dl,		%bl
265	xorl	0x200(%ebp,%ecx),%edi
266	movb	%dh,		%cl
267	shrl	$16,		%eax
268	xorl	0x100(%ebp,%ebx),%edi
269	movb	%ah,		%bl
270	shrl	$16,		%edx
271	xorl	0x300(%ebp,%ecx),%edi
272	movb	%dh,		%cl
273	andl	$0xff,		%eax
274	andl	$0xff,		%edx
275	xorl	0x600(%ebp,%ebx),%edi
276	xorl	0x700(%ebp,%ecx),%edi
277	movl	24(%esp),	%ecx
278	xorl	0x400(%ebp,%eax),%edi
279	xorl	0x500(%ebp,%edx),%edi
280
281
282	movl	56(%ecx),	%eax
283	xorl	%ebx,		%ebx
284	movl	60(%ecx),	%edx
285	xorl	%edi,		%eax
286	xorl	%ecx,		%ecx
287	xorl	%edi,		%edx
288	andl	$0xfcfcfcfc,	%eax
289	andl	$0xcfcfcfcf,	%edx
290	movb	%al,		%bl
291	movb	%ah,		%cl
292	rorl	$4,		%edx
293	xorl	     (%ebp,%ebx),%esi
294	movb	%dl,		%bl
295	xorl	0x200(%ebp,%ecx),%esi
296	movb	%dh,		%cl
297	shrl	$16,		%eax
298	xorl	0x100(%ebp,%ebx),%esi
299	movb	%ah,		%bl
300	shrl	$16,		%edx
301	xorl	0x300(%ebp,%ecx),%esi
302	movb	%dh,		%cl
303	andl	$0xff,		%eax
304	andl	$0xff,		%edx
305	xorl	0x600(%ebp,%ebx),%esi
306	xorl	0x700(%ebp,%ecx),%esi
307	movl	24(%esp),	%ecx
308	xorl	0x400(%ebp,%eax),%esi
309	xorl	0x500(%ebp,%edx),%esi
310
311
312	movl	64(%ecx),	%eax
313	xorl	%ebx,		%ebx
314	movl	68(%ecx),	%edx
315	xorl	%esi,		%eax
316	xorl	%ecx,		%ecx
317	xorl	%esi,		%edx
318	andl	$0xfcfcfcfc,	%eax
319	andl	$0xcfcfcfcf,	%edx
320	movb	%al,		%bl
321	movb	%ah,		%cl
322	rorl	$4,		%edx
323	xorl	     (%ebp,%ebx),%edi
324	movb	%dl,		%bl
325	xorl	0x200(%ebp,%ecx),%edi
326	movb	%dh,		%cl
327	shrl	$16,		%eax
328	xorl	0x100(%ebp,%ebx),%edi
329	movb	%ah,		%bl
330	shrl	$16,		%edx
331	xorl	0x300(%ebp,%ecx),%edi
332	movb	%dh,		%cl
333	andl	$0xff,		%eax
334	andl	$0xff,		%edx
335	xorl	0x600(%ebp,%ebx),%edi
336	xorl	0x700(%ebp,%ecx),%edi
337	movl	24(%esp),	%ecx
338	xorl	0x400(%ebp,%eax),%edi
339	xorl	0x500(%ebp,%edx),%edi
340
341
342	movl	72(%ecx),	%eax
343	xorl	%ebx,		%ebx
344	movl	76(%ecx),	%edx
345	xorl	%edi,		%eax
346	xorl	%ecx,		%ecx
347	xorl	%edi,		%edx
348	andl	$0xfcfcfcfc,	%eax
349	andl	$0xcfcfcfcf,	%edx
350	movb	%al,		%bl
351	movb	%ah,		%cl
352	rorl	$4,		%edx
353	xorl	     (%ebp,%ebx),%esi
354	movb	%dl,		%bl
355	xorl	0x200(%ebp,%ecx),%esi
356	movb	%dh,		%cl
357	shrl	$16,		%eax
358	xorl	0x100(%ebp,%ebx),%esi
359	movb	%ah,		%bl
360	shrl	$16,		%edx
361	xorl	0x300(%ebp,%ecx),%esi
362	movb	%dh,		%cl
363	andl	$0xff,		%eax
364	andl	$0xff,		%edx
365	xorl	0x600(%ebp,%ebx),%esi
366	xorl	0x700(%ebp,%ecx),%esi
367	movl	24(%esp),	%ecx
368	xorl	0x400(%ebp,%eax),%esi
369	xorl	0x500(%ebp,%edx),%esi
370
371
372	movl	80(%ecx),	%eax
373	xorl	%ebx,		%ebx
374	movl	84(%ecx),	%edx
375	xorl	%esi,		%eax
376	xorl	%ecx,		%ecx
377	xorl	%esi,		%edx
378	andl	$0xfcfcfcfc,	%eax
379	andl	$0xcfcfcfcf,	%edx
380	movb	%al,		%bl
381	movb	%ah,		%cl
382	rorl	$4,		%edx
383	xorl	     (%ebp,%ebx),%edi
384	movb	%dl,		%bl
385	xorl	0x200(%ebp,%ecx),%edi
386	movb	%dh,		%cl
387	shrl	$16,		%eax
388	xorl	0x100(%ebp,%ebx),%edi
389	movb	%ah,		%bl
390	shrl	$16,		%edx
391	xorl	0x300(%ebp,%ecx),%edi
392	movb	%dh,		%cl
393	andl	$0xff,		%eax
394	andl	$0xff,		%edx
395	xorl	0x600(%ebp,%ebx),%edi
396	xorl	0x700(%ebp,%ecx),%edi
397	movl	24(%esp),	%ecx
398	xorl	0x400(%ebp,%eax),%edi
399	xorl	0x500(%ebp,%edx),%edi
400
401
402	movl	88(%ecx),	%eax
403	xorl	%ebx,		%ebx
404	movl	92(%ecx),	%edx
405	xorl	%edi,		%eax
406	xorl	%ecx,		%ecx
407	xorl	%edi,		%edx
408	andl	$0xfcfcfcfc,	%eax
409	andl	$0xcfcfcfcf,	%edx
410	movb	%al,		%bl
411	movb	%ah,		%cl
412	rorl	$4,		%edx
413	xorl	     (%ebp,%ebx),%esi
414	movb	%dl,		%bl
415	xorl	0x200(%ebp,%ecx),%esi
416	movb	%dh,		%cl
417	shrl	$16,		%eax
418	xorl	0x100(%ebp,%ebx),%esi
419	movb	%ah,		%bl
420	shrl	$16,		%edx
421	xorl	0x300(%ebp,%ecx),%esi
422	movb	%dh,		%cl
423	andl	$0xff,		%eax
424	andl	$0xff,		%edx
425	xorl	0x600(%ebp,%ebx),%esi
426	xorl	0x700(%ebp,%ecx),%esi
427	movl	24(%esp),	%ecx
428	xorl	0x400(%ebp,%eax),%esi
429	xorl	0x500(%ebp,%edx),%esi
430
431
432	movl	96(%ecx),	%eax
433	xorl	%ebx,		%ebx
434	movl	100(%ecx),	%edx
435	xorl	%esi,		%eax
436	xorl	%ecx,		%ecx
437	xorl	%esi,		%edx
438	andl	$0xfcfcfcfc,	%eax
439	andl	$0xcfcfcfcf,	%edx
440	movb	%al,		%bl
441	movb	%ah,		%cl
442	rorl	$4,		%edx
443	xorl	     (%ebp,%ebx),%edi
444	movb	%dl,		%bl
445	xorl	0x200(%ebp,%ecx),%edi
446	movb	%dh,		%cl
447	shrl	$16,		%eax
448	xorl	0x100(%ebp,%ebx),%edi
449	movb	%ah,		%bl
450	shrl	$16,		%edx
451	xorl	0x300(%ebp,%ecx),%edi
452	movb	%dh,		%cl
453	andl	$0xff,		%eax
454	andl	$0xff,		%edx
455	xorl	0x600(%ebp,%ebx),%edi
456	xorl	0x700(%ebp,%ecx),%edi
457	movl	24(%esp),	%ecx
458	xorl	0x400(%ebp,%eax),%edi
459	xorl	0x500(%ebp,%edx),%edi
460
461
462	movl	104(%ecx),	%eax
463	xorl	%ebx,		%ebx
464	movl	108(%ecx),	%edx
465	xorl	%edi,		%eax
466	xorl	%ecx,		%ecx
467	xorl	%edi,		%edx
468	andl	$0xfcfcfcfc,	%eax
469	andl	$0xcfcfcfcf,	%edx
470	movb	%al,		%bl
471	movb	%ah,		%cl
472	rorl	$4,		%edx
473	xorl	     (%ebp,%ebx),%esi
474	movb	%dl,		%bl
475	xorl	0x200(%ebp,%ecx),%esi
476	movb	%dh,		%cl
477	shrl	$16,		%eax
478	xorl	0x100(%ebp,%ebx),%esi
479	movb	%ah,		%bl
480	shrl	$16,		%edx
481	xorl	0x300(%ebp,%ecx),%esi
482	movb	%dh,		%cl
483	andl	$0xff,		%eax
484	andl	$0xff,		%edx
485	xorl	0x600(%ebp,%ebx),%esi
486	xorl	0x700(%ebp,%ecx),%esi
487	movl	24(%esp),	%ecx
488	xorl	0x400(%ebp,%eax),%esi
489	xorl	0x500(%ebp,%edx),%esi
490
491
492	movl	112(%ecx),	%eax
493	xorl	%ebx,		%ebx
494	movl	116(%ecx),	%edx
495	xorl	%esi,		%eax
496	xorl	%ecx,		%ecx
497	xorl	%esi,		%edx
498	andl	$0xfcfcfcfc,	%eax
499	andl	$0xcfcfcfcf,	%edx
500	movb	%al,		%bl
501	movb	%ah,		%cl
502	rorl	$4,		%edx
503	xorl	     (%ebp,%ebx),%edi
504	movb	%dl,		%bl
505	xorl	0x200(%ebp,%ecx),%edi
506	movb	%dh,		%cl
507	shrl	$16,		%eax
508	xorl	0x100(%ebp,%ebx),%edi
509	movb	%ah,		%bl
510	shrl	$16,		%edx
511	xorl	0x300(%ebp,%ecx),%edi
512	movb	%dh,		%cl
513	andl	$0xff,		%eax
514	andl	$0xff,		%edx
515	xorl	0x600(%ebp,%ebx),%edi
516	xorl	0x700(%ebp,%ecx),%edi
517	movl	24(%esp),	%ecx
518	xorl	0x400(%ebp,%eax),%edi
519	xorl	0x500(%ebp,%edx),%edi
520
521
522	movl	120(%ecx),	%eax
523	xorl	%ebx,		%ebx
524	movl	124(%ecx),	%edx
525	xorl	%edi,		%eax
526	xorl	%ecx,		%ecx
527	xorl	%edi,		%edx
528	andl	$0xfcfcfcfc,	%eax
529	andl	$0xcfcfcfcf,	%edx
530	movb	%al,		%bl
531	movb	%ah,		%cl
532	rorl	$4,		%edx
533	xorl	     (%ebp,%ebx),%esi
534	movb	%dl,		%bl
535	xorl	0x200(%ebp,%ecx),%esi
536	movb	%dh,		%cl
537	shrl	$16,		%eax
538	xorl	0x100(%ebp,%ebx),%esi
539	movb	%ah,		%bl
540	shrl	$16,		%edx
541	xorl	0x300(%ebp,%ecx),%esi
542	movb	%dh,		%cl
543	andl	$0xff,		%eax
544	andl	$0xff,		%edx
545	xorl	0x600(%ebp,%ebx),%esi
546	xorl	0x700(%ebp,%ecx),%esi
547	movl	24(%esp),	%ecx
548	xorl	0x400(%ebp,%eax),%esi
549	xorl	0x500(%ebp,%edx),%esi
550	jmp	.L001end
551.L000start_decrypt:
552
553
554	movl	120(%ecx),	%eax
555	xorl	%ebx,		%ebx
556	movl	124(%ecx),	%edx
557	xorl	%esi,		%eax
558	xorl	%ecx,		%ecx
559	xorl	%esi,		%edx
560	andl	$0xfcfcfcfc,	%eax
561	andl	$0xcfcfcfcf,	%edx
562	movb	%al,		%bl
563	movb	%ah,		%cl
564	rorl	$4,		%edx
565	xorl	     (%ebp,%ebx),%edi
566	movb	%dl,		%bl
567	xorl	0x200(%ebp,%ecx),%edi
568	movb	%dh,		%cl
569	shrl	$16,		%eax
570	xorl	0x100(%ebp,%ebx),%edi
571	movb	%ah,		%bl
572	shrl	$16,		%edx
573	xorl	0x300(%ebp,%ecx),%edi
574	movb	%dh,		%cl
575	andl	$0xff,		%eax
576	andl	$0xff,		%edx
577	xorl	0x600(%ebp,%ebx),%edi
578	xorl	0x700(%ebp,%ecx),%edi
579	movl	24(%esp),	%ecx
580	xorl	0x400(%ebp,%eax),%edi
581	xorl	0x500(%ebp,%edx),%edi
582
583
584	movl	112(%ecx),	%eax
585	xorl	%ebx,		%ebx
586	movl	116(%ecx),	%edx
587	xorl	%edi,		%eax
588	xorl	%ecx,		%ecx
589	xorl	%edi,		%edx
590	andl	$0xfcfcfcfc,	%eax
591	andl	$0xcfcfcfcf,	%edx
592	movb	%al,		%bl
593	movb	%ah,		%cl
594	rorl	$4,		%edx
595	xorl	     (%ebp,%ebx),%esi
596	movb	%dl,		%bl
597	xorl	0x200(%ebp,%ecx),%esi
598	movb	%dh,		%cl
599	shrl	$16,		%eax
600	xorl	0x100(%ebp,%ebx),%esi
601	movb	%ah,		%bl
602	shrl	$16,		%edx
603	xorl	0x300(%ebp,%ecx),%esi
604	movb	%dh,		%cl
605	andl	$0xff,		%eax
606	andl	$0xff,		%edx
607	xorl	0x600(%ebp,%ebx),%esi
608	xorl	0x700(%ebp,%ecx),%esi
609	movl	24(%esp),	%ecx
610	xorl	0x400(%ebp,%eax),%esi
611	xorl	0x500(%ebp,%edx),%esi
612
613
614	movl	104(%ecx),	%eax
615	xorl	%ebx,		%ebx
616	movl	108(%ecx),	%edx
617	xorl	%esi,		%eax
618	xorl	%ecx,		%ecx
619	xorl	%esi,		%edx
620	andl	$0xfcfcfcfc,	%eax
621	andl	$0xcfcfcfcf,	%edx
622	movb	%al,		%bl
623	movb	%ah,		%cl
624	rorl	$4,		%edx
625	xorl	     (%ebp,%ebx),%edi
626	movb	%dl,		%bl
627	xorl	0x200(%ebp,%ecx),%edi
628	movb	%dh,		%cl
629	shrl	$16,		%eax
630	xorl	0x100(%ebp,%ebx),%edi
631	movb	%ah,		%bl
632	shrl	$16,		%edx
633	xorl	0x300(%ebp,%ecx),%edi
634	movb	%dh,		%cl
635	andl	$0xff,		%eax
636	andl	$0xff,		%edx
637	xorl	0x600(%ebp,%ebx),%edi
638	xorl	0x700(%ebp,%ecx),%edi
639	movl	24(%esp),	%ecx
640	xorl	0x400(%ebp,%eax),%edi
641	xorl	0x500(%ebp,%edx),%edi
642
643
644	movl	96(%ecx),	%eax
645	xorl	%ebx,		%ebx
646	movl	100(%ecx),	%edx
647	xorl	%edi,		%eax
648	xorl	%ecx,		%ecx
649	xorl	%edi,		%edx
650	andl	$0xfcfcfcfc,	%eax
651	andl	$0xcfcfcfcf,	%edx
652	movb	%al,		%bl
653	movb	%ah,		%cl
654	rorl	$4,		%edx
655	xorl	     (%ebp,%ebx),%esi
656	movb	%dl,		%bl
657	xorl	0x200(%ebp,%ecx),%esi
658	movb	%dh,		%cl
659	shrl	$16,		%eax
660	xorl	0x100(%ebp,%ebx),%esi
661	movb	%ah,		%bl
662	shrl	$16,		%edx
663	xorl	0x300(%ebp,%ecx),%esi
664	movb	%dh,		%cl
665	andl	$0xff,		%eax
666	andl	$0xff,		%edx
667	xorl	0x600(%ebp,%ebx),%esi
668	xorl	0x700(%ebp,%ecx),%esi
669	movl	24(%esp),	%ecx
670	xorl	0x400(%ebp,%eax),%esi
671	xorl	0x500(%ebp,%edx),%esi
672
673
674	movl	88(%ecx),	%eax
675	xorl	%ebx,		%ebx
676	movl	92(%ecx),	%edx
677	xorl	%esi,		%eax
678	xorl	%ecx,		%ecx
679	xorl	%esi,		%edx
680	andl	$0xfcfcfcfc,	%eax
681	andl	$0xcfcfcfcf,	%edx
682	movb	%al,		%bl
683	movb	%ah,		%cl
684	rorl	$4,		%edx
685	xorl	     (%ebp,%ebx),%edi
686	movb	%dl,		%bl
687	xorl	0x200(%ebp,%ecx),%edi
688	movb	%dh,		%cl
689	shrl	$16,		%eax
690	xorl	0x100(%ebp,%ebx),%edi
691	movb	%ah,		%bl
692	shrl	$16,		%edx
693	xorl	0x300(%ebp,%ecx),%edi
694	movb	%dh,		%cl
695	andl	$0xff,		%eax
696	andl	$0xff,		%edx
697	xorl	0x600(%ebp,%ebx),%edi
698	xorl	0x700(%ebp,%ecx),%edi
699	movl	24(%esp),	%ecx
700	xorl	0x400(%ebp,%eax),%edi
701	xorl	0x500(%ebp,%edx),%edi
702
703
704	movl	80(%ecx),	%eax
705	xorl	%ebx,		%ebx
706	movl	84(%ecx),	%edx
707	xorl	%edi,		%eax
708	xorl	%ecx,		%ecx
709	xorl	%edi,		%edx
710	andl	$0xfcfcfcfc,	%eax
711	andl	$0xcfcfcfcf,	%edx
712	movb	%al,		%bl
713	movb	%ah,		%cl
714	rorl	$4,		%edx
715	xorl	     (%ebp,%ebx),%esi
716	movb	%dl,		%bl
717	xorl	0x200(%ebp,%ecx),%esi
718	movb	%dh,		%cl
719	shrl	$16,		%eax
720	xorl	0x100(%ebp,%ebx),%esi
721	movb	%ah,		%bl
722	shrl	$16,		%edx
723	xorl	0x300(%ebp,%ecx),%esi
724	movb	%dh,		%cl
725	andl	$0xff,		%eax
726	andl	$0xff,		%edx
727	xorl	0x600(%ebp,%ebx),%esi
728	xorl	0x700(%ebp,%ecx),%esi
729	movl	24(%esp),	%ecx
730	xorl	0x400(%ebp,%eax),%esi
731	xorl	0x500(%ebp,%edx),%esi
732
733
734	movl	72(%ecx),	%eax
735	xorl	%ebx,		%ebx
736	movl	76(%ecx),	%edx
737	xorl	%esi,		%eax
738	xorl	%ecx,		%ecx
739	xorl	%esi,		%edx
740	andl	$0xfcfcfcfc,	%eax
741	andl	$0xcfcfcfcf,	%edx
742	movb	%al,		%bl
743	movb	%ah,		%cl
744	rorl	$4,		%edx
745	xorl	     (%ebp,%ebx),%edi
746	movb	%dl,		%bl
747	xorl	0x200(%ebp,%ecx),%edi
748	movb	%dh,		%cl
749	shrl	$16,		%eax
750	xorl	0x100(%ebp,%ebx),%edi
751	movb	%ah,		%bl
752	shrl	$16,		%edx
753	xorl	0x300(%ebp,%ecx),%edi
754	movb	%dh,		%cl
755	andl	$0xff,		%eax
756	andl	$0xff,		%edx
757	xorl	0x600(%ebp,%ebx),%edi
758	xorl	0x700(%ebp,%ecx),%edi
759	movl	24(%esp),	%ecx
760	xorl	0x400(%ebp,%eax),%edi
761	xorl	0x500(%ebp,%edx),%edi
762
763
764	movl	64(%ecx),	%eax
765	xorl	%ebx,		%ebx
766	movl	68(%ecx),	%edx
767	xorl	%edi,		%eax
768	xorl	%ecx,		%ecx
769	xorl	%edi,		%edx
770	andl	$0xfcfcfcfc,	%eax
771	andl	$0xcfcfcfcf,	%edx
772	movb	%al,		%bl
773	movb	%ah,		%cl
774	rorl	$4,		%edx
775	xorl	     (%ebp,%ebx),%esi
776	movb	%dl,		%bl
777	xorl	0x200(%ebp,%ecx),%esi
778	movb	%dh,		%cl
779	shrl	$16,		%eax
780	xorl	0x100(%ebp,%ebx),%esi
781	movb	%ah,		%bl
782	shrl	$16,		%edx
783	xorl	0x300(%ebp,%ecx),%esi
784	movb	%dh,		%cl
785	andl	$0xff,		%eax
786	andl	$0xff,		%edx
787	xorl	0x600(%ebp,%ebx),%esi
788	xorl	0x700(%ebp,%ecx),%esi
789	movl	24(%esp),	%ecx
790	xorl	0x400(%ebp,%eax),%esi
791	xorl	0x500(%ebp,%edx),%esi
792
793
794	movl	56(%ecx),	%eax
795	xorl	%ebx,		%ebx
796	movl	60(%ecx),	%edx
797	xorl	%esi,		%eax
798	xorl	%ecx,		%ecx
799	xorl	%esi,		%edx
800	andl	$0xfcfcfcfc,	%eax
801	andl	$0xcfcfcfcf,	%edx
802	movb	%al,		%bl
803	movb	%ah,		%cl
804	rorl	$4,		%edx
805	xorl	     (%ebp,%ebx),%edi
806	movb	%dl,		%bl
807	xorl	0x200(%ebp,%ecx),%edi
808	movb	%dh,		%cl
809	shrl	$16,		%eax
810	xorl	0x100(%ebp,%ebx),%edi
811	movb	%ah,		%bl
812	shrl	$16,		%edx
813	xorl	0x300(%ebp,%ecx),%edi
814	movb	%dh,		%cl
815	andl	$0xff,		%eax
816	andl	$0xff,		%edx
817	xorl	0x600(%ebp,%ebx),%edi
818	xorl	0x700(%ebp,%ecx),%edi
819	movl	24(%esp),	%ecx
820	xorl	0x400(%ebp,%eax),%edi
821	xorl	0x500(%ebp,%edx),%edi
822
823
824	movl	48(%ecx),	%eax
825	xorl	%ebx,		%ebx
826	movl	52(%ecx),	%edx
827	xorl	%edi,		%eax
828	xorl	%ecx,		%ecx
829	xorl	%edi,		%edx
830	andl	$0xfcfcfcfc,	%eax
831	andl	$0xcfcfcfcf,	%edx
832	movb	%al,		%bl
833	movb	%ah,		%cl
834	rorl	$4,		%edx
835	xorl	     (%ebp,%ebx),%esi
836	movb	%dl,		%bl
837	xorl	0x200(%ebp,%ecx),%esi
838	movb	%dh,		%cl
839	shrl	$16,		%eax
840	xorl	0x100(%ebp,%ebx),%esi
841	movb	%ah,		%bl
842	shrl	$16,		%edx
843	xorl	0x300(%ebp,%ecx),%esi
844	movb	%dh,		%cl
845	andl	$0xff,		%eax
846	andl	$0xff,		%edx
847	xorl	0x600(%ebp,%ebx),%esi
848	xorl	0x700(%ebp,%ecx),%esi
849	movl	24(%esp),	%ecx
850	xorl	0x400(%ebp,%eax),%esi
851	xorl	0x500(%ebp,%edx),%esi
852
853
854	movl	40(%ecx),	%eax
855	xorl	%ebx,		%ebx
856	movl	44(%ecx),	%edx
857	xorl	%esi,		%eax
858	xorl	%ecx,		%ecx
859	xorl	%esi,		%edx
860	andl	$0xfcfcfcfc,	%eax
861	andl	$0xcfcfcfcf,	%edx
862	movb	%al,		%bl
863	movb	%ah,		%cl
864	rorl	$4,		%edx
865	xorl	     (%ebp,%ebx),%edi
866	movb	%dl,		%bl
867	xorl	0x200(%ebp,%ecx),%edi
868	movb	%dh,		%cl
869	shrl	$16,		%eax
870	xorl	0x100(%ebp,%ebx),%edi
871	movb	%ah,		%bl
872	shrl	$16,		%edx
873	xorl	0x300(%ebp,%ecx),%edi
874	movb	%dh,		%cl
875	andl	$0xff,		%eax
876	andl	$0xff,		%edx
877	xorl	0x600(%ebp,%ebx),%edi
878	xorl	0x700(%ebp,%ecx),%edi
879	movl	24(%esp),	%ecx
880	xorl	0x400(%ebp,%eax),%edi
881	xorl	0x500(%ebp,%edx),%edi
882
883
884	movl	32(%ecx),	%eax
885	xorl	%ebx,		%ebx
886	movl	36(%ecx),	%edx
887	xorl	%edi,		%eax
888	xorl	%ecx,		%ecx
889	xorl	%edi,		%edx
890	andl	$0xfcfcfcfc,	%eax
891	andl	$0xcfcfcfcf,	%edx
892	movb	%al,		%bl
893	movb	%ah,		%cl
894	rorl	$4,		%edx
895	xorl	     (%ebp,%ebx),%esi
896	movb	%dl,		%bl
897	xorl	0x200(%ebp,%ecx),%esi
898	movb	%dh,		%cl
899	shrl	$16,		%eax
900	xorl	0x100(%ebp,%ebx),%esi
901	movb	%ah,		%bl
902	shrl	$16,		%edx
903	xorl	0x300(%ebp,%ecx),%esi
904	movb	%dh,		%cl
905	andl	$0xff,		%eax
906	andl	$0xff,		%edx
907	xorl	0x600(%ebp,%ebx),%esi
908	xorl	0x700(%ebp,%ecx),%esi
909	movl	24(%esp),	%ecx
910	xorl	0x400(%ebp,%eax),%esi
911	xorl	0x500(%ebp,%edx),%esi
912
913
914	movl	24(%ecx),	%eax
915	xorl	%ebx,		%ebx
916	movl	28(%ecx),	%edx
917	xorl	%esi,		%eax
918	xorl	%ecx,		%ecx
919	xorl	%esi,		%edx
920	andl	$0xfcfcfcfc,	%eax
921	andl	$0xcfcfcfcf,	%edx
922	movb	%al,		%bl
923	movb	%ah,		%cl
924	rorl	$4,		%edx
925	xorl	     (%ebp,%ebx),%edi
926	movb	%dl,		%bl
927	xorl	0x200(%ebp,%ecx),%edi
928	movb	%dh,		%cl
929	shrl	$16,		%eax
930	xorl	0x100(%ebp,%ebx),%edi
931	movb	%ah,		%bl
932	shrl	$16,		%edx
933	xorl	0x300(%ebp,%ecx),%edi
934	movb	%dh,		%cl
935	andl	$0xff,		%eax
936	andl	$0xff,		%edx
937	xorl	0x600(%ebp,%ebx),%edi
938	xorl	0x700(%ebp,%ecx),%edi
939	movl	24(%esp),	%ecx
940	xorl	0x400(%ebp,%eax),%edi
941	xorl	0x500(%ebp,%edx),%edi
942
943
944	movl	16(%ecx),	%eax
945	xorl	%ebx,		%ebx
946	movl	20(%ecx),	%edx
947	xorl	%edi,		%eax
948	xorl	%ecx,		%ecx
949	xorl	%edi,		%edx
950	andl	$0xfcfcfcfc,	%eax
951	andl	$0xcfcfcfcf,	%edx
952	movb	%al,		%bl
953	movb	%ah,		%cl
954	rorl	$4,		%edx
955	xorl	     (%ebp,%ebx),%esi
956	movb	%dl,		%bl
957	xorl	0x200(%ebp,%ecx),%esi
958	movb	%dh,		%cl
959	shrl	$16,		%eax
960	xorl	0x100(%ebp,%ebx),%esi
961	movb	%ah,		%bl
962	shrl	$16,		%edx
963	xorl	0x300(%ebp,%ecx),%esi
964	movb	%dh,		%cl
965	andl	$0xff,		%eax
966	andl	$0xff,		%edx
967	xorl	0x600(%ebp,%ebx),%esi
968	xorl	0x700(%ebp,%ecx),%esi
969	movl	24(%esp),	%ecx
970	xorl	0x400(%ebp,%eax),%esi
971	xorl	0x500(%ebp,%edx),%esi
972
973
974	movl	8(%ecx),	%eax
975	xorl	%ebx,		%ebx
976	movl	12(%ecx),	%edx
977	xorl	%esi,		%eax
978	xorl	%ecx,		%ecx
979	xorl	%esi,		%edx
980	andl	$0xfcfcfcfc,	%eax
981	andl	$0xcfcfcfcf,	%edx
982	movb	%al,		%bl
983	movb	%ah,		%cl
984	rorl	$4,		%edx
985	xorl	     (%ebp,%ebx),%edi
986	movb	%dl,		%bl
987	xorl	0x200(%ebp,%ecx),%edi
988	movb	%dh,		%cl
989	shrl	$16,		%eax
990	xorl	0x100(%ebp,%ebx),%edi
991	movb	%ah,		%bl
992	shrl	$16,		%edx
993	xorl	0x300(%ebp,%ecx),%edi
994	movb	%dh,		%cl
995	andl	$0xff,		%eax
996	andl	$0xff,		%edx
997	xorl	0x600(%ebp,%ebx),%edi
998	xorl	0x700(%ebp,%ecx),%edi
999	movl	24(%esp),	%ecx
1000	xorl	0x400(%ebp,%eax),%edi
1001	xorl	0x500(%ebp,%edx),%edi
1002
1003
1004	movl	(%ecx),		%eax
1005	xorl	%ebx,		%ebx
1006	movl	4(%ecx),	%edx
1007	xorl	%edi,		%eax
1008	xorl	%ecx,		%ecx
1009	xorl	%edi,		%edx
1010	andl	$0xfcfcfcfc,	%eax
1011	andl	$0xcfcfcfcf,	%edx
1012	movb	%al,		%bl
1013	movb	%ah,		%cl
1014	rorl	$4,		%edx
1015	xorl	     (%ebp,%ebx),%esi
1016	movb	%dl,		%bl
1017	xorl	0x200(%ebp,%ecx),%esi
1018	movb	%dh,		%cl
1019	shrl	$16,		%eax
1020	xorl	0x100(%ebp,%ebx),%esi
1021	movb	%ah,		%bl
1022	shrl	$16,		%edx
1023	xorl	0x300(%ebp,%ecx),%esi
1024	movb	%dh,		%cl
1025	andl	$0xff,		%eax
1026	andl	$0xff,		%edx
1027	xorl	0x600(%ebp,%ebx),%esi
1028	xorl	0x700(%ebp,%ecx),%esi
1029	movl	24(%esp),	%ecx
1030	xorl	0x400(%ebp,%eax),%esi
1031	xorl	0x500(%ebp,%edx),%esi
1032.L001end:
1033
1034
1035	movl	20(%esp),	%edx
1036.byte 209
1037.byte 206
1038	movl	%edi,		%eax
1039	xorl	%esi,		%edi
1040	andl	$0xaaaaaaaa,	%edi
1041	xorl	%edi,		%eax
1042	xorl	%edi,		%esi
1043
1044	roll	$23,		%eax
1045	movl	%eax,		%edi
1046	xorl	%esi,		%eax
1047	andl	$0x03fc03fc,	%eax
1048	xorl	%eax,		%edi
1049	xorl	%eax,		%esi
1050
1051	roll	$10,		%edi
1052	movl	%edi,		%eax
1053	xorl	%esi,		%edi
1054	andl	$0x33333333,	%edi
1055	xorl	%edi,		%eax
1056	xorl	%edi,		%esi
1057
1058	roll	$18,		%esi
1059	movl	%esi,		%edi
1060	xorl	%eax,		%esi
1061	andl	$0xfff0000f,	%esi
1062	xorl	%esi,		%edi
1063	xorl	%esi,		%eax
1064
1065	roll	$12,		%edi
1066	movl	%edi,		%esi
1067	xorl	%eax,		%edi
1068	andl	$0xf0f0f0f0,	%edi
1069	xorl	%edi,		%esi
1070	xorl	%edi,		%eax
1071
1072	rorl	$4,		%eax
1073	movl	%eax,		(%edx)
1074	movl	%esi,		4(%edx)
1075	popl	%ebp
1076	popl	%ebx
1077	popl	%edi
1078	popl	%esi
1079	ret
1080.L_DES_encrypt1_end:
1081	.size	DES_encrypt1,.L_DES_encrypt1_end-DES_encrypt1
1082.ident	"desasm.pl"
1083.text
1084	.align 16
1085.globl DES_encrypt2
1086	.type	DES_encrypt2,@function
1087DES_encrypt2:
1088	pushl	%esi
1089	pushl	%edi
1090
1091
1092	movl	12(%esp),	%eax
1093	xorl	%ecx,		%ecx
1094	pushl	%ebx
1095	pushl	%ebp
1096	movl	(%eax),		%esi
1097	movl	28(%esp),	%ebx
1098	roll	$3,		%esi
1099	movl	4(%eax),	%edi
1100	roll	$3,		%edi
1101	leal	DES_SPtrans,	%ebp
1102	movl	24(%esp),	%ecx
1103	cmpl	$0,		%ebx
1104	je	.L002start_decrypt
1105
1106
1107	movl	(%ecx),		%eax
1108	xorl	%ebx,		%ebx
1109	movl	4(%ecx),	%edx
1110	xorl	%esi,		%eax
1111	xorl	%ecx,		%ecx
1112	xorl	%esi,		%edx
1113	andl	$0xfcfcfcfc,	%eax
1114	andl	$0xcfcfcfcf,	%edx
1115	movb	%al,		%bl
1116	movb	%ah,		%cl
1117	rorl	$4,		%edx
1118	xorl	     (%ebp,%ebx),%edi
1119	movb	%dl,		%bl
1120	xorl	0x200(%ebp,%ecx),%edi
1121	movb	%dh,		%cl
1122	shrl	$16,		%eax
1123	xorl	0x100(%ebp,%ebx),%edi
1124	movb	%ah,		%bl
1125	shrl	$16,		%edx
1126	xorl	0x300(%ebp,%ecx),%edi
1127	movb	%dh,		%cl
1128	andl	$0xff,		%eax
1129	andl	$0xff,		%edx
1130	xorl	0x600(%ebp,%ebx),%edi
1131	xorl	0x700(%ebp,%ecx),%edi
1132	movl	24(%esp),	%ecx
1133	xorl	0x400(%ebp,%eax),%edi
1134	xorl	0x500(%ebp,%edx),%edi
1135
1136
1137	movl	8(%ecx),	%eax
1138	xorl	%ebx,		%ebx
1139	movl	12(%ecx),	%edx
1140	xorl	%edi,		%eax
1141	xorl	%ecx,		%ecx
1142	xorl	%edi,		%edx
1143	andl	$0xfcfcfcfc,	%eax
1144	andl	$0xcfcfcfcf,	%edx
1145	movb	%al,		%bl
1146	movb	%ah,		%cl
1147	rorl	$4,		%edx
1148	xorl	     (%ebp,%ebx),%esi
1149	movb	%dl,		%bl
1150	xorl	0x200(%ebp,%ecx),%esi
1151	movb	%dh,		%cl
1152	shrl	$16,		%eax
1153	xorl	0x100(%ebp,%ebx),%esi
1154	movb	%ah,		%bl
1155	shrl	$16,		%edx
1156	xorl	0x300(%ebp,%ecx),%esi
1157	movb	%dh,		%cl
1158	andl	$0xff,		%eax
1159	andl	$0xff,		%edx
1160	xorl	0x600(%ebp,%ebx),%esi
1161	xorl	0x700(%ebp,%ecx),%esi
1162	movl	24(%esp),	%ecx
1163	xorl	0x400(%ebp,%eax),%esi
1164	xorl	0x500(%ebp,%edx),%esi
1165
1166
1167	movl	16(%ecx),	%eax
1168	xorl	%ebx,		%ebx
1169	movl	20(%ecx),	%edx
1170	xorl	%esi,		%eax
1171	xorl	%ecx,		%ecx
1172	xorl	%esi,		%edx
1173	andl	$0xfcfcfcfc,	%eax
1174	andl	$0xcfcfcfcf,	%edx
1175	movb	%al,		%bl
1176	movb	%ah,		%cl
1177	rorl	$4,		%edx
1178	xorl	     (%ebp,%ebx),%edi
1179	movb	%dl,		%bl
1180	xorl	0x200(%ebp,%ecx),%edi
1181	movb	%dh,		%cl
1182	shrl	$16,		%eax
1183	xorl	0x100(%ebp,%ebx),%edi
1184	movb	%ah,		%bl
1185	shrl	$16,		%edx
1186	xorl	0x300(%ebp,%ecx),%edi
1187	movb	%dh,		%cl
1188	andl	$0xff,		%eax
1189	andl	$0xff,		%edx
1190	xorl	0x600(%ebp,%ebx),%edi
1191	xorl	0x700(%ebp,%ecx),%edi
1192	movl	24(%esp),	%ecx
1193	xorl	0x400(%ebp,%eax),%edi
1194	xorl	0x500(%ebp,%edx),%edi
1195
1196
1197	movl	24(%ecx),	%eax
1198	xorl	%ebx,		%ebx
1199	movl	28(%ecx),	%edx
1200	xorl	%edi,		%eax
1201	xorl	%ecx,		%ecx
1202	xorl	%edi,		%edx
1203	andl	$0xfcfcfcfc,	%eax
1204	andl	$0xcfcfcfcf,	%edx
1205	movb	%al,		%bl
1206	movb	%ah,		%cl
1207	rorl	$4,		%edx
1208	xorl	     (%ebp,%ebx),%esi
1209	movb	%dl,		%bl
1210	xorl	0x200(%ebp,%ecx),%esi
1211	movb	%dh,		%cl
1212	shrl	$16,		%eax
1213	xorl	0x100(%ebp,%ebx),%esi
1214	movb	%ah,		%bl
1215	shrl	$16,		%edx
1216	xorl	0x300(%ebp,%ecx),%esi
1217	movb	%dh,		%cl
1218	andl	$0xff,		%eax
1219	andl	$0xff,		%edx
1220	xorl	0x600(%ebp,%ebx),%esi
1221	xorl	0x700(%ebp,%ecx),%esi
1222	movl	24(%esp),	%ecx
1223	xorl	0x400(%ebp,%eax),%esi
1224	xorl	0x500(%ebp,%edx),%esi
1225
1226
1227	movl	32(%ecx),	%eax
1228	xorl	%ebx,		%ebx
1229	movl	36(%ecx),	%edx
1230	xorl	%esi,		%eax
1231	xorl	%ecx,		%ecx
1232	xorl	%esi,		%edx
1233	andl	$0xfcfcfcfc,	%eax
1234	andl	$0xcfcfcfcf,	%edx
1235	movb	%al,		%bl
1236	movb	%ah,		%cl
1237	rorl	$4,		%edx
1238	xorl	     (%ebp,%ebx),%edi
1239	movb	%dl,		%bl
1240	xorl	0x200(%ebp,%ecx),%edi
1241	movb	%dh,		%cl
1242	shrl	$16,		%eax
1243	xorl	0x100(%ebp,%ebx),%edi
1244	movb	%ah,		%bl
1245	shrl	$16,		%edx
1246	xorl	0x300(%ebp,%ecx),%edi
1247	movb	%dh,		%cl
1248	andl	$0xff,		%eax
1249	andl	$0xff,		%edx
1250	xorl	0x600(%ebp,%ebx),%edi
1251	xorl	0x700(%ebp,%ecx),%edi
1252	movl	24(%esp),	%ecx
1253	xorl	0x400(%ebp,%eax),%edi
1254	xorl	0x500(%ebp,%edx),%edi
1255
1256
1257	movl	40(%ecx),	%eax
1258	xorl	%ebx,		%ebx
1259	movl	44(%ecx),	%edx
1260	xorl	%edi,		%eax
1261	xorl	%ecx,		%ecx
1262	xorl	%edi,		%edx
1263	andl	$0xfcfcfcfc,	%eax
1264	andl	$0xcfcfcfcf,	%edx
1265	movb	%al,		%bl
1266	movb	%ah,		%cl
1267	rorl	$4,		%edx
1268	xorl	     (%ebp,%ebx),%esi
1269	movb	%dl,		%bl
1270	xorl	0x200(%ebp,%ecx),%esi
1271	movb	%dh,		%cl
1272	shrl	$16,		%eax
1273	xorl	0x100(%ebp,%ebx),%esi
1274	movb	%ah,		%bl
1275	shrl	$16,		%edx
1276	xorl	0x300(%ebp,%ecx),%esi
1277	movb	%dh,		%cl
1278	andl	$0xff,		%eax
1279	andl	$0xff,		%edx
1280	xorl	0x600(%ebp,%ebx),%esi
1281	xorl	0x700(%ebp,%ecx),%esi
1282	movl	24(%esp),	%ecx
1283	xorl	0x400(%ebp,%eax),%esi
1284	xorl	0x500(%ebp,%edx),%esi
1285
1286
1287	movl	48(%ecx),	%eax
1288	xorl	%ebx,		%ebx
1289	movl	52(%ecx),	%edx
1290	xorl	%esi,		%eax
1291	xorl	%ecx,		%ecx
1292	xorl	%esi,		%edx
1293	andl	$0xfcfcfcfc,	%eax
1294	andl	$0xcfcfcfcf,	%edx
1295	movb	%al,		%bl
1296	movb	%ah,		%cl
1297	rorl	$4,		%edx
1298	xorl	     (%ebp,%ebx),%edi
1299	movb	%dl,		%bl
1300	xorl	0x200(%ebp,%ecx),%edi
1301	movb	%dh,		%cl
1302	shrl	$16,		%eax
1303	xorl	0x100(%ebp,%ebx),%edi
1304	movb	%ah,		%bl
1305	shrl	$16,		%edx
1306	xorl	0x300(%ebp,%ecx),%edi
1307	movb	%dh,		%cl
1308	andl	$0xff,		%eax
1309	andl	$0xff,		%edx
1310	xorl	0x600(%ebp,%ebx),%edi
1311	xorl	0x700(%ebp,%ecx),%edi
1312	movl	24(%esp),	%ecx
1313	xorl	0x400(%ebp,%eax),%edi
1314	xorl	0x500(%ebp,%edx),%edi
1315
1316
1317	movl	56(%ecx),	%eax
1318	xorl	%ebx,		%ebx
1319	movl	60(%ecx),	%edx
1320	xorl	%edi,		%eax
1321	xorl	%ecx,		%ecx
1322	xorl	%edi,		%edx
1323	andl	$0xfcfcfcfc,	%eax
1324	andl	$0xcfcfcfcf,	%edx
1325	movb	%al,		%bl
1326	movb	%ah,		%cl
1327	rorl	$4,		%edx
1328	xorl	     (%ebp,%ebx),%esi
1329	movb	%dl,		%bl
1330	xorl	0x200(%ebp,%ecx),%esi
1331	movb	%dh,		%cl
1332	shrl	$16,		%eax
1333	xorl	0x100(%ebp,%ebx),%esi
1334	movb	%ah,		%bl
1335	shrl	$16,		%edx
1336	xorl	0x300(%ebp,%ecx),%esi
1337	movb	%dh,		%cl
1338	andl	$0xff,		%eax
1339	andl	$0xff,		%edx
1340	xorl	0x600(%ebp,%ebx),%esi
1341	xorl	0x700(%ebp,%ecx),%esi
1342	movl	24(%esp),	%ecx
1343	xorl	0x400(%ebp,%eax),%esi
1344	xorl	0x500(%ebp,%edx),%esi
1345
1346
1347	movl	64(%ecx),	%eax
1348	xorl	%ebx,		%ebx
1349	movl	68(%ecx),	%edx
1350	xorl	%esi,		%eax
1351	xorl	%ecx,		%ecx
1352	xorl	%esi,		%edx
1353	andl	$0xfcfcfcfc,	%eax
1354	andl	$0xcfcfcfcf,	%edx
1355	movb	%al,		%bl
1356	movb	%ah,		%cl
1357	rorl	$4,		%edx
1358	xorl	     (%ebp,%ebx),%edi
1359	movb	%dl,		%bl
1360	xorl	0x200(%ebp,%ecx),%edi
1361	movb	%dh,		%cl
1362	shrl	$16,		%eax
1363	xorl	0x100(%ebp,%ebx),%edi
1364	movb	%ah,		%bl
1365	shrl	$16,		%edx
1366	xorl	0x300(%ebp,%ecx),%edi
1367	movb	%dh,		%cl
1368	andl	$0xff,		%eax
1369	andl	$0xff,		%edx
1370	xorl	0x600(%ebp,%ebx),%edi
1371	xorl	0x700(%ebp,%ecx),%edi
1372	movl	24(%esp),	%ecx
1373	xorl	0x400(%ebp,%eax),%edi
1374	xorl	0x500(%ebp,%edx),%edi
1375
1376
1377	movl	72(%ecx),	%eax
1378	xorl	%ebx,		%ebx
1379	movl	76(%ecx),	%edx
1380	xorl	%edi,		%eax
1381	xorl	%ecx,		%ecx
1382	xorl	%edi,		%edx
1383	andl	$0xfcfcfcfc,	%eax
1384	andl	$0xcfcfcfcf,	%edx
1385	movb	%al,		%bl
1386	movb	%ah,		%cl
1387	rorl	$4,		%edx
1388	xorl	     (%ebp,%ebx),%esi
1389	movb	%dl,		%bl
1390	xorl	0x200(%ebp,%ecx),%esi
1391	movb	%dh,		%cl
1392	shrl	$16,		%eax
1393	xorl	0x100(%ebp,%ebx),%esi
1394	movb	%ah,		%bl
1395	shrl	$16,		%edx
1396	xorl	0x300(%ebp,%ecx),%esi
1397	movb	%dh,		%cl
1398	andl	$0xff,		%eax
1399	andl	$0xff,		%edx
1400	xorl	0x600(%ebp,%ebx),%esi
1401	xorl	0x700(%ebp,%ecx),%esi
1402	movl	24(%esp),	%ecx
1403	xorl	0x400(%ebp,%eax),%esi
1404	xorl	0x500(%ebp,%edx),%esi
1405
1406
1407	movl	80(%ecx),	%eax
1408	xorl	%ebx,		%ebx
1409	movl	84(%ecx),	%edx
1410	xorl	%esi,		%eax
1411	xorl	%ecx,		%ecx
1412	xorl	%esi,		%edx
1413	andl	$0xfcfcfcfc,	%eax
1414	andl	$0xcfcfcfcf,	%edx
1415	movb	%al,		%bl
1416	movb	%ah,		%cl
1417	rorl	$4,		%edx
1418	xorl	     (%ebp,%ebx),%edi
1419	movb	%dl,		%bl
1420	xorl	0x200(%ebp,%ecx),%edi
1421	movb	%dh,		%cl
1422	shrl	$16,		%eax
1423	xorl	0x100(%ebp,%ebx),%edi
1424	movb	%ah,		%bl
1425	shrl	$16,		%edx
1426	xorl	0x300(%ebp,%ecx),%edi
1427	movb	%dh,		%cl
1428	andl	$0xff,		%eax
1429	andl	$0xff,		%edx
1430	xorl	0x600(%ebp,%ebx),%edi
1431	xorl	0x700(%ebp,%ecx),%edi
1432	movl	24(%esp),	%ecx
1433	xorl	0x400(%ebp,%eax),%edi
1434	xorl	0x500(%ebp,%edx),%edi
1435
1436
1437	movl	88(%ecx),	%eax
1438	xorl	%ebx,		%ebx
1439	movl	92(%ecx),	%edx
1440	xorl	%edi,		%eax
1441	xorl	%ecx,		%ecx
1442	xorl	%edi,		%edx
1443	andl	$0xfcfcfcfc,	%eax
1444	andl	$0xcfcfcfcf,	%edx
1445	movb	%al,		%bl
1446	movb	%ah,		%cl
1447	rorl	$4,		%edx
1448	xorl	     (%ebp,%ebx),%esi
1449	movb	%dl,		%bl
1450	xorl	0x200(%ebp,%ecx),%esi
1451	movb	%dh,		%cl
1452	shrl	$16,		%eax
1453	xorl	0x100(%ebp,%ebx),%esi
1454	movb	%ah,		%bl
1455	shrl	$16,		%edx
1456	xorl	0x300(%ebp,%ecx),%esi
1457	movb	%dh,		%cl
1458	andl	$0xff,		%eax
1459	andl	$0xff,		%edx
1460	xorl	0x600(%ebp,%ebx),%esi
1461	xorl	0x700(%ebp,%ecx),%esi
1462	movl	24(%esp),	%ecx
1463	xorl	0x400(%ebp,%eax),%esi
1464	xorl	0x500(%ebp,%edx),%esi
1465
1466
1467	movl	96(%ecx),	%eax
1468	xorl	%ebx,		%ebx
1469	movl	100(%ecx),	%edx
1470	xorl	%esi,		%eax
1471	xorl	%ecx,		%ecx
1472	xorl	%esi,		%edx
1473	andl	$0xfcfcfcfc,	%eax
1474	andl	$0xcfcfcfcf,	%edx
1475	movb	%al,		%bl
1476	movb	%ah,		%cl
1477	rorl	$4,		%edx
1478	xorl	     (%ebp,%ebx),%edi
1479	movb	%dl,		%bl
1480	xorl	0x200(%ebp,%ecx),%edi
1481	movb	%dh,		%cl
1482	shrl	$16,		%eax
1483	xorl	0x100(%ebp,%ebx),%edi
1484	movb	%ah,		%bl
1485	shrl	$16,		%edx
1486	xorl	0x300(%ebp,%ecx),%edi
1487	movb	%dh,		%cl
1488	andl	$0xff,		%eax
1489	andl	$0xff,		%edx
1490	xorl	0x600(%ebp,%ebx),%edi
1491	xorl	0x700(%ebp,%ecx),%edi
1492	movl	24(%esp),	%ecx
1493	xorl	0x400(%ebp,%eax),%edi
1494	xorl	0x500(%ebp,%edx),%edi
1495
1496
1497	movl	104(%ecx),	%eax
1498	xorl	%ebx,		%ebx
1499	movl	108(%ecx),	%edx
1500	xorl	%edi,		%eax
1501	xorl	%ecx,		%ecx
1502	xorl	%edi,		%edx
1503	andl	$0xfcfcfcfc,	%eax
1504	andl	$0xcfcfcfcf,	%edx
1505	movb	%al,		%bl
1506	movb	%ah,		%cl
1507	rorl	$4,		%edx
1508	xorl	     (%ebp,%ebx),%esi
1509	movb	%dl,		%bl
1510	xorl	0x200(%ebp,%ecx),%esi
1511	movb	%dh,		%cl
1512	shrl	$16,		%eax
1513	xorl	0x100(%ebp,%ebx),%esi
1514	movb	%ah,		%bl
1515	shrl	$16,		%edx
1516	xorl	0x300(%ebp,%ecx),%esi
1517	movb	%dh,		%cl
1518	andl	$0xff,		%eax
1519	andl	$0xff,		%edx
1520	xorl	0x600(%ebp,%ebx),%esi
1521	xorl	0x700(%ebp,%ecx),%esi
1522	movl	24(%esp),	%ecx
1523	xorl	0x400(%ebp,%eax),%esi
1524	xorl	0x500(%ebp,%edx),%esi
1525
1526
1527	movl	112(%ecx),	%eax
1528	xorl	%ebx,		%ebx
1529	movl	116(%ecx),	%edx
1530	xorl	%esi,		%eax
1531	xorl	%ecx,		%ecx
1532	xorl	%esi,		%edx
1533	andl	$0xfcfcfcfc,	%eax
1534	andl	$0xcfcfcfcf,	%edx
1535	movb	%al,		%bl
1536	movb	%ah,		%cl
1537	rorl	$4,		%edx
1538	xorl	     (%ebp,%ebx),%edi
1539	movb	%dl,		%bl
1540	xorl	0x200(%ebp,%ecx),%edi
1541	movb	%dh,		%cl
1542	shrl	$16,		%eax
1543	xorl	0x100(%ebp,%ebx),%edi
1544	movb	%ah,		%bl
1545	shrl	$16,		%edx
1546	xorl	0x300(%ebp,%ecx),%edi
1547	movb	%dh,		%cl
1548	andl	$0xff,		%eax
1549	andl	$0xff,		%edx
1550	xorl	0x600(%ebp,%ebx),%edi
1551	xorl	0x700(%ebp,%ecx),%edi
1552	movl	24(%esp),	%ecx
1553	xorl	0x400(%ebp,%eax),%edi
1554	xorl	0x500(%ebp,%edx),%edi
1555
1556
1557	movl	120(%ecx),	%eax
1558	xorl	%ebx,		%ebx
1559	movl	124(%ecx),	%edx
1560	xorl	%edi,		%eax
1561	xorl	%ecx,		%ecx
1562	xorl	%edi,		%edx
1563	andl	$0xfcfcfcfc,	%eax
1564	andl	$0xcfcfcfcf,	%edx
1565	movb	%al,		%bl
1566	movb	%ah,		%cl
1567	rorl	$4,		%edx
1568	xorl	     (%ebp,%ebx),%esi
1569	movb	%dl,		%bl
1570	xorl	0x200(%ebp,%ecx),%esi
1571	movb	%dh,		%cl
1572	shrl	$16,		%eax
1573	xorl	0x100(%ebp,%ebx),%esi
1574	movb	%ah,		%bl
1575	shrl	$16,		%edx
1576	xorl	0x300(%ebp,%ecx),%esi
1577	movb	%dh,		%cl
1578	andl	$0xff,		%eax
1579	andl	$0xff,		%edx
1580	xorl	0x600(%ebp,%ebx),%esi
1581	xorl	0x700(%ebp,%ecx),%esi
1582	movl	24(%esp),	%ecx
1583	xorl	0x400(%ebp,%eax),%esi
1584	xorl	0x500(%ebp,%edx),%esi
1585	jmp	.L003end
1586.L002start_decrypt:
1587
1588
1589	movl	120(%ecx),	%eax
1590	xorl	%ebx,		%ebx
1591	movl	124(%ecx),	%edx
1592	xorl	%esi,		%eax
1593	xorl	%ecx,		%ecx
1594	xorl	%esi,		%edx
1595	andl	$0xfcfcfcfc,	%eax
1596	andl	$0xcfcfcfcf,	%edx
1597	movb	%al,		%bl
1598	movb	%ah,		%cl
1599	rorl	$4,		%edx
1600	xorl	     (%ebp,%ebx),%edi
1601	movb	%dl,		%bl
1602	xorl	0x200(%ebp,%ecx),%edi
1603	movb	%dh,		%cl
1604	shrl	$16,		%eax
1605	xorl	0x100(%ebp,%ebx),%edi
1606	movb	%ah,		%bl
1607	shrl	$16,		%edx
1608	xorl	0x300(%ebp,%ecx),%edi
1609	movb	%dh,		%cl
1610	andl	$0xff,		%eax
1611	andl	$0xff,		%edx
1612	xorl	0x600(%ebp,%ebx),%edi
1613	xorl	0x700(%ebp,%ecx),%edi
1614	movl	24(%esp),	%ecx
1615	xorl	0x400(%ebp,%eax),%edi
1616	xorl	0x500(%ebp,%edx),%edi
1617
1618
1619	movl	112(%ecx),	%eax
1620	xorl	%ebx,		%ebx
1621	movl	116(%ecx),	%edx
1622	xorl	%edi,		%eax
1623	xorl	%ecx,		%ecx
1624	xorl	%edi,		%edx
1625	andl	$0xfcfcfcfc,	%eax
1626	andl	$0xcfcfcfcf,	%edx
1627	movb	%al,		%bl
1628	movb	%ah,		%cl
1629	rorl	$4,		%edx
1630	xorl	     (%ebp,%ebx),%esi
1631	movb	%dl,		%bl
1632	xorl	0x200(%ebp,%ecx),%esi
1633	movb	%dh,		%cl
1634	shrl	$16,		%eax
1635	xorl	0x100(%ebp,%ebx),%esi
1636	movb	%ah,		%bl
1637	shrl	$16,		%edx
1638	xorl	0x300(%ebp,%ecx),%esi
1639	movb	%dh,		%cl
1640	andl	$0xff,		%eax
1641	andl	$0xff,		%edx
1642	xorl	0x600(%ebp,%ebx),%esi
1643	xorl	0x700(%ebp,%ecx),%esi
1644	movl	24(%esp),	%ecx
1645	xorl	0x400(%ebp,%eax),%esi
1646	xorl	0x500(%ebp,%edx),%esi
1647
1648
1649	movl	104(%ecx),	%eax
1650	xorl	%ebx,		%ebx
1651	movl	108(%ecx),	%edx
1652	xorl	%esi,		%eax
1653	xorl	%ecx,		%ecx
1654	xorl	%esi,		%edx
1655	andl	$0xfcfcfcfc,	%eax
1656	andl	$0xcfcfcfcf,	%edx
1657	movb	%al,		%bl
1658	movb	%ah,		%cl
1659	rorl	$4,		%edx
1660	xorl	     (%ebp,%ebx),%edi
1661	movb	%dl,		%bl
1662	xorl	0x200(%ebp,%ecx),%edi
1663	movb	%dh,		%cl
1664	shrl	$16,		%eax
1665	xorl	0x100(%ebp,%ebx),%edi
1666	movb	%ah,		%bl
1667	shrl	$16,		%edx
1668	xorl	0x300(%ebp,%ecx),%edi
1669	movb	%dh,		%cl
1670	andl	$0xff,		%eax
1671	andl	$0xff,		%edx
1672	xorl	0x600(%ebp,%ebx),%edi
1673	xorl	0x700(%ebp,%ecx),%edi
1674	movl	24(%esp),	%ecx
1675	xorl	0x400(%ebp,%eax),%edi
1676	xorl	0x500(%ebp,%edx),%edi
1677
1678
1679	movl	96(%ecx),	%eax
1680	xorl	%ebx,		%ebx
1681	movl	100(%ecx),	%edx
1682	xorl	%edi,		%eax
1683	xorl	%ecx,		%ecx
1684	xorl	%edi,		%edx
1685	andl	$0xfcfcfcfc,	%eax
1686	andl	$0xcfcfcfcf,	%edx
1687	movb	%al,		%bl
1688	movb	%ah,		%cl
1689	rorl	$4,		%edx
1690	xorl	     (%ebp,%ebx),%esi
1691	movb	%dl,		%bl
1692	xorl	0x200(%ebp,%ecx),%esi
1693	movb	%dh,		%cl
1694	shrl	$16,		%eax
1695	xorl	0x100(%ebp,%ebx),%esi
1696	movb	%ah,		%bl
1697	shrl	$16,		%edx
1698	xorl	0x300(%ebp,%ecx),%esi
1699	movb	%dh,		%cl
1700	andl	$0xff,		%eax
1701	andl	$0xff,		%edx
1702	xorl	0x600(%ebp,%ebx),%esi
1703	xorl	0x700(%ebp,%ecx),%esi
1704	movl	24(%esp),	%ecx
1705	xorl	0x400(%ebp,%eax),%esi
1706	xorl	0x500(%ebp,%edx),%esi
1707
1708
1709	movl	88(%ecx),	%eax
1710	xorl	%ebx,		%ebx
1711	movl	92(%ecx),	%edx
1712	xorl	%esi,		%eax
1713	xorl	%ecx,		%ecx
1714	xorl	%esi,		%edx
1715	andl	$0xfcfcfcfc,	%eax
1716	andl	$0xcfcfcfcf,	%edx
1717	movb	%al,		%bl
1718	movb	%ah,		%cl
1719	rorl	$4,		%edx
1720	xorl	     (%ebp,%ebx),%edi
1721	movb	%dl,		%bl
1722	xorl	0x200(%ebp,%ecx),%edi
1723	movb	%dh,		%cl
1724	shrl	$16,		%eax
1725	xorl	0x100(%ebp,%ebx),%edi
1726	movb	%ah,		%bl
1727	shrl	$16,		%edx
1728	xorl	0x300(%ebp,%ecx),%edi
1729	movb	%dh,		%cl
1730	andl	$0xff,		%eax
1731	andl	$0xff,		%edx
1732	xorl	0x600(%ebp,%ebx),%edi
1733	xorl	0x700(%ebp,%ecx),%edi
1734	movl	24(%esp),	%ecx
1735	xorl	0x400(%ebp,%eax),%edi
1736	xorl	0x500(%ebp,%edx),%edi
1737
1738
1739	movl	80(%ecx),	%eax
1740	xorl	%ebx,		%ebx
1741	movl	84(%ecx),	%edx
1742	xorl	%edi,		%eax
1743	xorl	%ecx,		%ecx
1744	xorl	%edi,		%edx
1745	andl	$0xfcfcfcfc,	%eax
1746	andl	$0xcfcfcfcf,	%edx
1747	movb	%al,		%bl
1748	movb	%ah,		%cl
1749	rorl	$4,		%edx
1750	xorl	     (%ebp,%ebx),%esi
1751	movb	%dl,		%bl
1752	xorl	0x200(%ebp,%ecx),%esi
1753	movb	%dh,		%cl
1754	shrl	$16,		%eax
1755	xorl	0x100(%ebp,%ebx),%esi
1756	movb	%ah,		%bl
1757	shrl	$16,		%edx
1758	xorl	0x300(%ebp,%ecx),%esi
1759	movb	%dh,		%cl
1760	andl	$0xff,		%eax
1761	andl	$0xff,		%edx
1762	xorl	0x600(%ebp,%ebx),%esi
1763	xorl	0x700(%ebp,%ecx),%esi
1764	movl	24(%esp),	%ecx
1765	xorl	0x400(%ebp,%eax),%esi
1766	xorl	0x500(%ebp,%edx),%esi
1767
1768
1769	movl	72(%ecx),	%eax
1770	xorl	%ebx,		%ebx
1771	movl	76(%ecx),	%edx
1772	xorl	%esi,		%eax
1773	xorl	%ecx,		%ecx
1774	xorl	%esi,		%edx
1775	andl	$0xfcfcfcfc,	%eax
1776	andl	$0xcfcfcfcf,	%edx
1777	movb	%al,		%bl
1778	movb	%ah,		%cl
1779	rorl	$4,		%edx
1780	xorl	     (%ebp,%ebx),%edi
1781	movb	%dl,		%bl
1782	xorl	0x200(%ebp,%ecx),%edi
1783	movb	%dh,		%cl
1784	shrl	$16,		%eax
1785	xorl	0x100(%ebp,%ebx),%edi
1786	movb	%ah,		%bl
1787	shrl	$16,		%edx
1788	xorl	0x300(%ebp,%ecx),%edi
1789	movb	%dh,		%cl
1790	andl	$0xff,		%eax
1791	andl	$0xff,		%edx
1792	xorl	0x600(%ebp,%ebx),%edi
1793	xorl	0x700(%ebp,%ecx),%edi
1794	movl	24(%esp),	%ecx
1795	xorl	0x400(%ebp,%eax),%edi
1796	xorl	0x500(%ebp,%edx),%edi
1797
1798
1799	movl	64(%ecx),	%eax
1800	xorl	%ebx,		%ebx
1801	movl	68(%ecx),	%edx
1802	xorl	%edi,		%eax
1803	xorl	%ecx,		%ecx
1804	xorl	%edi,		%edx
1805	andl	$0xfcfcfcfc,	%eax
1806	andl	$0xcfcfcfcf,	%edx
1807	movb	%al,		%bl
1808	movb	%ah,		%cl
1809	rorl	$4,		%edx
1810	xorl	     (%ebp,%ebx),%esi
1811	movb	%dl,		%bl
1812	xorl	0x200(%ebp,%ecx),%esi
1813	movb	%dh,		%cl
1814	shrl	$16,		%eax
1815	xorl	0x100(%ebp,%ebx),%esi
1816	movb	%ah,		%bl
1817	shrl	$16,		%edx
1818	xorl	0x300(%ebp,%ecx),%esi
1819	movb	%dh,		%cl
1820	andl	$0xff,		%eax
1821	andl	$0xff,		%edx
1822	xorl	0x600(%ebp,%ebx),%esi
1823	xorl	0x700(%ebp,%ecx),%esi
1824	movl	24(%esp),	%ecx
1825	xorl	0x400(%ebp,%eax),%esi
1826	xorl	0x500(%ebp,%edx),%esi
1827
1828
1829	movl	56(%ecx),	%eax
1830	xorl	%ebx,		%ebx
1831	movl	60(%ecx),	%edx
1832	xorl	%esi,		%eax
1833	xorl	%ecx,		%ecx
1834	xorl	%esi,		%edx
1835	andl	$0xfcfcfcfc,	%eax
1836	andl	$0xcfcfcfcf,	%edx
1837	movb	%al,		%bl
1838	movb	%ah,		%cl
1839	rorl	$4,		%edx
1840	xorl	     (%ebp,%ebx),%edi
1841	movb	%dl,		%bl
1842	xorl	0x200(%ebp,%ecx),%edi
1843	movb	%dh,		%cl
1844	shrl	$16,		%eax
1845	xorl	0x100(%ebp,%ebx),%edi
1846	movb	%ah,		%bl
1847	shrl	$16,		%edx
1848	xorl	0x300(%ebp,%ecx),%edi
1849	movb	%dh,		%cl
1850	andl	$0xff,		%eax
1851	andl	$0xff,		%edx
1852	xorl	0x600(%ebp,%ebx),%edi
1853	xorl	0x700(%ebp,%ecx),%edi
1854	movl	24(%esp),	%ecx
1855	xorl	0x400(%ebp,%eax),%edi
1856	xorl	0x500(%ebp,%edx),%edi
1857
1858
1859	movl	48(%ecx),	%eax
1860	xorl	%ebx,		%ebx
1861	movl	52(%ecx),	%edx
1862	xorl	%edi,		%eax
1863	xorl	%ecx,		%ecx
1864	xorl	%edi,		%edx
1865	andl	$0xfcfcfcfc,	%eax
1866	andl	$0xcfcfcfcf,	%edx
1867	movb	%al,		%bl
1868	movb	%ah,		%cl
1869	rorl	$4,		%edx
1870	xorl	     (%ebp,%ebx),%esi
1871	movb	%dl,		%bl
1872	xorl	0x200(%ebp,%ecx),%esi
1873	movb	%dh,		%cl
1874	shrl	$16,		%eax
1875	xorl	0x100(%ebp,%ebx),%esi
1876	movb	%ah,		%bl
1877	shrl	$16,		%edx
1878	xorl	0x300(%ebp,%ecx),%esi
1879	movb	%dh,		%cl
1880	andl	$0xff,		%eax
1881	andl	$0xff,		%edx
1882	xorl	0x600(%ebp,%ebx),%esi
1883	xorl	0x700(%ebp,%ecx),%esi
1884	movl	24(%esp),	%ecx
1885	xorl	0x400(%ebp,%eax),%esi
1886	xorl	0x500(%ebp,%edx),%esi
1887
1888
1889	movl	40(%ecx),	%eax
1890	xorl	%ebx,		%ebx
1891	movl	44(%ecx),	%edx
1892	xorl	%esi,		%eax
1893	xorl	%ecx,		%ecx
1894	xorl	%esi,		%edx
1895	andl	$0xfcfcfcfc,	%eax
1896	andl	$0xcfcfcfcf,	%edx
1897	movb	%al,		%bl
1898	movb	%ah,		%cl
1899	rorl	$4,		%edx
1900	xorl	     (%ebp,%ebx),%edi
1901	movb	%dl,		%bl
1902	xorl	0x200(%ebp,%ecx),%edi
1903	movb	%dh,		%cl
1904	shrl	$16,		%eax
1905	xorl	0x100(%ebp,%ebx),%edi
1906	movb	%ah,		%bl
1907	shrl	$16,		%edx
1908	xorl	0x300(%ebp,%ecx),%edi
1909	movb	%dh,		%cl
1910	andl	$0xff,		%eax
1911	andl	$0xff,		%edx
1912	xorl	0x600(%ebp,%ebx),%edi
1913	xorl	0x700(%ebp,%ecx),%edi
1914	movl	24(%esp),	%ecx
1915	xorl	0x400(%ebp,%eax),%edi
1916	xorl	0x500(%ebp,%edx),%edi
1917
1918
1919	movl	32(%ecx),	%eax
1920	xorl	%ebx,		%ebx
1921	movl	36(%ecx),	%edx
1922	xorl	%edi,		%eax
1923	xorl	%ecx,		%ecx
1924	xorl	%edi,		%edx
1925	andl	$0xfcfcfcfc,	%eax
1926	andl	$0xcfcfcfcf,	%edx
1927	movb	%al,		%bl
1928	movb	%ah,		%cl
1929	rorl	$4,		%edx
1930	xorl	     (%ebp,%ebx),%esi
1931	movb	%dl,		%bl
1932	xorl	0x200(%ebp,%ecx),%esi
1933	movb	%dh,		%cl
1934	shrl	$16,		%eax
1935	xorl	0x100(%ebp,%ebx),%esi
1936	movb	%ah,		%bl
1937	shrl	$16,		%edx
1938	xorl	0x300(%ebp,%ecx),%esi
1939	movb	%dh,		%cl
1940	andl	$0xff,		%eax
1941	andl	$0xff,		%edx
1942	xorl	0x600(%ebp,%ebx),%esi
1943	xorl	0x700(%ebp,%ecx),%esi
1944	movl	24(%esp),	%ecx
1945	xorl	0x400(%ebp,%eax),%esi
1946	xorl	0x500(%ebp,%edx),%esi
1947
1948
1949	movl	24(%ecx),	%eax
1950	xorl	%ebx,		%ebx
1951	movl	28(%ecx),	%edx
1952	xorl	%esi,		%eax
1953	xorl	%ecx,		%ecx
1954	xorl	%esi,		%edx
1955	andl	$0xfcfcfcfc,	%eax
1956	andl	$0xcfcfcfcf,	%edx
1957	movb	%al,		%bl
1958	movb	%ah,		%cl
1959	rorl	$4,		%edx
1960	xorl	     (%ebp,%ebx),%edi
1961	movb	%dl,		%bl
1962	xorl	0x200(%ebp,%ecx),%edi
1963	movb	%dh,		%cl
1964	shrl	$16,		%eax
1965	xorl	0x100(%ebp,%ebx),%edi
1966	movb	%ah,		%bl
1967	shrl	$16,		%edx
1968	xorl	0x300(%ebp,%ecx),%edi
1969	movb	%dh,		%cl
1970	andl	$0xff,		%eax
1971	andl	$0xff,		%edx
1972	xorl	0x600(%ebp,%ebx),%edi
1973	xorl	0x700(%ebp,%ecx),%edi
1974	movl	24(%esp),	%ecx
1975	xorl	0x400(%ebp,%eax),%edi
1976	xorl	0x500(%ebp,%edx),%edi
1977
1978
1979	movl	16(%ecx),	%eax
1980	xorl	%ebx,		%ebx
1981	movl	20(%ecx),	%edx
1982	xorl	%edi,		%eax
1983	xorl	%ecx,		%ecx
1984	xorl	%edi,		%edx
1985	andl	$0xfcfcfcfc,	%eax
1986	andl	$0xcfcfcfcf,	%edx
1987	movb	%al,		%bl
1988	movb	%ah,		%cl
1989	rorl	$4,		%edx
1990	xorl	     (%ebp,%ebx),%esi
1991	movb	%dl,		%bl
1992	xorl	0x200(%ebp,%ecx),%esi
1993	movb	%dh,		%cl
1994	shrl	$16,		%eax
1995	xorl	0x100(%ebp,%ebx),%esi
1996	movb	%ah,		%bl
1997	shrl	$16,		%edx
1998	xorl	0x300(%ebp,%ecx),%esi
1999	movb	%dh,		%cl
2000	andl	$0xff,		%eax
2001	andl	$0xff,		%edx
2002	xorl	0x600(%ebp,%ebx),%esi
2003	xorl	0x700(%ebp,%ecx),%esi
2004	movl	24(%esp),	%ecx
2005	xorl	0x400(%ebp,%eax),%esi
2006	xorl	0x500(%ebp,%edx),%esi
2007
2008
2009	movl	8(%ecx),	%eax
2010	xorl	%ebx,		%ebx
2011	movl	12(%ecx),	%edx
2012	xorl	%esi,		%eax
2013	xorl	%ecx,		%ecx
2014	xorl	%esi,		%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),%edi
2021	movb	%dl,		%bl
2022	xorl	0x200(%ebp,%ecx),%edi
2023	movb	%dh,		%cl
2024	shrl	$16,		%eax
2025	xorl	0x100(%ebp,%ebx),%edi
2026	movb	%ah,		%bl
2027	shrl	$16,		%edx
2028	xorl	0x300(%ebp,%ecx),%edi
2029	movb	%dh,		%cl
2030	andl	$0xff,		%eax
2031	andl	$0xff,		%edx
2032	xorl	0x600(%ebp,%ebx),%edi
2033	xorl	0x700(%ebp,%ecx),%edi
2034	movl	24(%esp),	%ecx
2035	xorl	0x400(%ebp,%eax),%edi
2036	xorl	0x500(%ebp,%edx),%edi
2037
2038
2039	movl	(%ecx),		%eax
2040	xorl	%ebx,		%ebx
2041	movl	4(%ecx),	%edx
2042	xorl	%edi,		%eax
2043	xorl	%ecx,		%ecx
2044	xorl	%edi,		%edx
2045	andl	$0xfcfcfcfc,	%eax
2046	andl	$0xcfcfcfcf,	%edx
2047	movb	%al,		%bl
2048	movb	%ah,		%cl
2049	rorl	$4,		%edx
2050	xorl	     (%ebp,%ebx),%esi
2051	movb	%dl,		%bl
2052	xorl	0x200(%ebp,%ecx),%esi
2053	movb	%dh,		%cl
2054	shrl	$16,		%eax
2055	xorl	0x100(%ebp,%ebx),%esi
2056	movb	%ah,		%bl
2057	shrl	$16,		%edx
2058	xorl	0x300(%ebp,%ecx),%esi
2059	movb	%dh,		%cl
2060	andl	$0xff,		%eax
2061	andl	$0xff,		%edx
2062	xorl	0x600(%ebp,%ebx),%esi
2063	xorl	0x700(%ebp,%ecx),%esi
2064	movl	24(%esp),	%ecx
2065	xorl	0x400(%ebp,%eax),%esi
2066	xorl	0x500(%ebp,%edx),%esi
2067.L003end:
2068
2069
2070	rorl	$3,		%edi
2071	movl	20(%esp),	%eax
2072	rorl	$3,		%esi
2073	movl	%edi,		(%eax)
2074	movl	%esi,		4(%eax)
2075	popl	%ebp
2076	popl	%ebx
2077	popl	%edi
2078	popl	%esi
2079	ret
2080.L_DES_encrypt2_end:
2081	.size	DES_encrypt2,.L_DES_encrypt2_end-DES_encrypt2
2082.ident	"desasm.pl"
2083.text
2084	.align 16
2085.globl DES_encrypt3
2086	.type	DES_encrypt3,@function
2087DES_encrypt3:
2088	pushl	%ebx
2089	movl	8(%esp),	%ebx
2090	pushl	%ebp
2091	pushl	%esi
2092	pushl	%edi
2093
2094
2095	movl	(%ebx),		%edi
2096	movl	4(%ebx),	%esi
2097	subl	$12,		%esp
2098
2099
2100	roll	$4,		%edi
2101	movl	%edi,		%edx
2102	xorl	%esi,		%edi
2103	andl	$0xf0f0f0f0,	%edi
2104	xorl	%edi,		%edx
2105	xorl	%edi,		%esi
2106
2107	roll	$20,		%esi
2108	movl	%esi,		%edi
2109	xorl	%edx,		%esi
2110	andl	$0xfff0000f,	%esi
2111	xorl	%esi,		%edi
2112	xorl	%esi,		%edx
2113
2114	roll	$14,		%edi
2115	movl	%edi,		%esi
2116	xorl	%edx,		%edi
2117	andl	$0x33333333,	%edi
2118	xorl	%edi,		%esi
2119	xorl	%edi,		%edx
2120
2121	roll	$22,		%edx
2122	movl	%edx,		%edi
2123	xorl	%esi,		%edx
2124	andl	$0x03fc03fc,	%edx
2125	xorl	%edx,		%edi
2126	xorl	%edx,		%esi
2127
2128	roll	$9,		%edi
2129	movl	%edi,		%edx
2130	xorl	%esi,		%edi
2131	andl	$0xaaaaaaaa,	%edi
2132	xorl	%edi,		%edx
2133	xorl	%edi,		%esi
2134
2135	rorl	$3,		%edx
2136	rorl	$2,		%esi
2137	movl	%esi,		4(%ebx)
2138	movl	36(%esp),	%eax
2139	movl	%edx,		(%ebx)
2140	movl	40(%esp),	%edi
2141	movl	44(%esp),	%esi
2142	movl	$1,		8(%esp)
2143	movl	%eax,		4(%esp)
2144	movl	%ebx,		(%esp)
2145	call	DES_encrypt2
2146	movl	$0,		8(%esp)
2147	movl	%edi,		4(%esp)
2148	movl	%ebx,		(%esp)
2149	call	DES_encrypt2
2150	movl	$1,		8(%esp)
2151	movl	%esi,		4(%esp)
2152	movl	%ebx,		(%esp)
2153	call	DES_encrypt2
2154	addl	$12,		%esp
2155	movl	(%ebx),		%edi
2156	movl	4(%ebx),	%esi
2157
2158
2159	roll	$2,		%esi
2160	roll	$3,		%edi
2161	movl	%edi,		%eax
2162	xorl	%esi,		%edi
2163	andl	$0xaaaaaaaa,	%edi
2164	xorl	%edi,		%eax
2165	xorl	%edi,		%esi
2166
2167	roll	$23,		%eax
2168	movl	%eax,		%edi
2169	xorl	%esi,		%eax
2170	andl	$0x03fc03fc,	%eax
2171	xorl	%eax,		%edi
2172	xorl	%eax,		%esi
2173
2174	roll	$10,		%edi
2175	movl	%edi,		%eax
2176	xorl	%esi,		%edi
2177	andl	$0x33333333,	%edi
2178	xorl	%edi,		%eax
2179	xorl	%edi,		%esi
2180
2181	roll	$18,		%esi
2182	movl	%esi,		%edi
2183	xorl	%eax,		%esi
2184	andl	$0xfff0000f,	%esi
2185	xorl	%esi,		%edi
2186	xorl	%esi,		%eax
2187
2188	roll	$12,		%edi
2189	movl	%edi,		%esi
2190	xorl	%eax,		%edi
2191	andl	$0xf0f0f0f0,	%edi
2192	xorl	%edi,		%esi
2193	xorl	%edi,		%eax
2194
2195	rorl	$4,		%eax
2196	movl	%eax,		(%ebx)
2197	movl	%esi,		4(%ebx)
2198	popl	%edi
2199	popl	%esi
2200	popl	%ebp
2201	popl	%ebx
2202	ret
2203.L_DES_encrypt3_end:
2204	.size	DES_encrypt3,.L_DES_encrypt3_end-DES_encrypt3
2205.ident	"desasm.pl"
2206.text
2207	.align 16
2208.globl DES_decrypt3
2209	.type	DES_decrypt3,@function
2210DES_decrypt3:
2211	pushl	%ebx
2212	movl	8(%esp),	%ebx
2213	pushl	%ebp
2214	pushl	%esi
2215	pushl	%edi
2216
2217
2218	movl	(%ebx),		%edi
2219	movl	4(%ebx),	%esi
2220	subl	$12,		%esp
2221
2222
2223	roll	$4,		%edi
2224	movl	%edi,		%edx
2225	xorl	%esi,		%edi
2226	andl	$0xf0f0f0f0,	%edi
2227	xorl	%edi,		%edx
2228	xorl	%edi,		%esi
2229
2230	roll	$20,		%esi
2231	movl	%esi,		%edi
2232	xorl	%edx,		%esi
2233	andl	$0xfff0000f,	%esi
2234	xorl	%esi,		%edi
2235	xorl	%esi,		%edx
2236
2237	roll	$14,		%edi
2238	movl	%edi,		%esi
2239	xorl	%edx,		%edi
2240	andl	$0x33333333,	%edi
2241	xorl	%edi,		%esi
2242	xorl	%edi,		%edx
2243
2244	roll	$22,		%edx
2245	movl	%edx,		%edi
2246	xorl	%esi,		%edx
2247	andl	$0x03fc03fc,	%edx
2248	xorl	%edx,		%edi
2249	xorl	%edx,		%esi
2250
2251	roll	$9,		%edi
2252	movl	%edi,		%edx
2253	xorl	%esi,		%edi
2254	andl	$0xaaaaaaaa,	%edi
2255	xorl	%edi,		%edx
2256	xorl	%edi,		%esi
2257
2258	rorl	$3,		%edx
2259	rorl	$2,		%esi
2260	movl	%esi,		4(%ebx)
2261	movl	36(%esp),	%esi
2262	movl	%edx,		(%ebx)
2263	movl	40(%esp),	%edi
2264	movl	44(%esp),	%eax
2265	movl	$0,		8(%esp)
2266	movl	%eax,		4(%esp)
2267	movl	%ebx,		(%esp)
2268	call	DES_encrypt2
2269	movl	$1,		8(%esp)
2270	movl	%edi,		4(%esp)
2271	movl	%ebx,		(%esp)
2272	call	DES_encrypt2
2273	movl	$0,		8(%esp)
2274	movl	%esi,		4(%esp)
2275	movl	%ebx,		(%esp)
2276	call	DES_encrypt2
2277	addl	$12,		%esp
2278	movl	(%ebx),		%edi
2279	movl	4(%ebx),	%esi
2280
2281
2282	roll	$2,		%esi
2283	roll	$3,		%edi
2284	movl	%edi,		%eax
2285	xorl	%esi,		%edi
2286	andl	$0xaaaaaaaa,	%edi
2287	xorl	%edi,		%eax
2288	xorl	%edi,		%esi
2289
2290	roll	$23,		%eax
2291	movl	%eax,		%edi
2292	xorl	%esi,		%eax
2293	andl	$0x03fc03fc,	%eax
2294	xorl	%eax,		%edi
2295	xorl	%eax,		%esi
2296
2297	roll	$10,		%edi
2298	movl	%edi,		%eax
2299	xorl	%esi,		%edi
2300	andl	$0x33333333,	%edi
2301	xorl	%edi,		%eax
2302	xorl	%edi,		%esi
2303
2304	roll	$18,		%esi
2305	movl	%esi,		%edi
2306	xorl	%eax,		%esi
2307	andl	$0xfff0000f,	%esi
2308	xorl	%esi,		%edi
2309	xorl	%esi,		%eax
2310
2311	roll	$12,		%edi
2312	movl	%edi,		%esi
2313	xorl	%eax,		%edi
2314	andl	$0xf0f0f0f0,	%edi
2315	xorl	%edi,		%esi
2316	xorl	%edi,		%eax
2317
2318	rorl	$4,		%eax
2319	movl	%eax,		(%ebx)
2320	movl	%esi,		4(%ebx)
2321	popl	%edi
2322	popl	%esi
2323	popl	%ebp
2324	popl	%ebx
2325	ret
2326.L_DES_decrypt3_end:
2327	.size	DES_decrypt3,.L_DES_decrypt3_end-DES_decrypt3
2328.ident	"desasm.pl"
2329.text
2330	.align 16
2331.globl DES_ncbc_encrypt
2332	.type	DES_ncbc_encrypt,@function
2333DES_ncbc_encrypt:
2334
2335	pushl	%ebp
2336	pushl	%ebx
2337	pushl	%esi
2338	pushl	%edi
2339	movl	28(%esp),	%ebp
2340
2341	movl	36(%esp),	%ebx
2342	movl	(%ebx),		%esi
2343	movl	4(%ebx),	%edi
2344	pushl	%edi
2345	pushl	%esi
2346	pushl	%edi
2347	pushl	%esi
2348	movl	%esp,		%ebx
2349	movl	36(%esp),	%esi
2350	movl	40(%esp),	%edi
2351
2352	movl	56(%esp),	%ecx
2353
2354	pushl	%ecx
2355
2356	movl	52(%esp),	%eax
2357	pushl	%eax
2358	pushl	%ebx
2359	cmpl	$0,		%ecx
2360	jz	.L004decrypt
2361	andl	$4294967288,	%ebp
2362	movl	12(%esp),	%eax
2363	movl	16(%esp),	%ebx
2364	jz	.L005encrypt_finish
2365.L006encrypt_loop:
2366	movl	(%esi),		%ecx
2367	movl	4(%esi),	%edx
2368	xorl	%ecx,		%eax
2369	xorl	%edx,		%ebx
2370	movl	%eax,		12(%esp)
2371	movl	%ebx,		16(%esp)
2372	call	DES_encrypt1
2373	movl	12(%esp),	%eax
2374	movl	16(%esp),	%ebx
2375	movl	%eax,		(%edi)
2376	movl	%ebx,		4(%edi)
2377	addl	$8,		%esi
2378	addl	$8,		%edi
2379	subl	$8,		%ebp
2380	jnz	.L006encrypt_loop
2381.L005encrypt_finish:
2382	movl	56(%esp),	%ebp
2383	andl	$7,		%ebp
2384	jz	.L007finish
2385	call	.L008PIC_point
2386.L008PIC_point:
2387	popl	%edx
2388	leal	.L009cbc_enc_jmp_table-.L008PIC_point(%edx),%ecx
2389	movl	(%ecx,%ebp,4),	%ebp
2390	addl	%edx,		%ebp
2391	xorl	%ecx,		%ecx
2392	xorl	%edx,		%edx
2393	jmp	*%ebp
2394.L010ej7:
2395	movb	6(%esi),	%dh
2396	sall	$8,		%edx
2397.L011ej6:
2398	movb	5(%esi),	%dh
2399.L012ej5:
2400	movb	4(%esi),	%dl
2401.L013ej4:
2402	movl	(%esi),		%ecx
2403	jmp	.L014ejend
2404.L015ej3:
2405	movb	2(%esi),	%ch
2406	sall	$8,		%ecx
2407.L016ej2:
2408	movb	1(%esi),	%ch
2409.L017ej1:
2410	movb	(%esi),		%cl
2411.L014ejend:
2412	xorl	%ecx,		%eax
2413	xorl	%edx,		%ebx
2414	movl	%eax,		12(%esp)
2415	movl	%ebx,		16(%esp)
2416	call	DES_encrypt1
2417	movl	12(%esp),	%eax
2418	movl	16(%esp),	%ebx
2419	movl	%eax,		(%edi)
2420	movl	%ebx,		4(%edi)
2421	jmp	.L007finish
2422.align 16
2423.L004decrypt:
2424	andl	$4294967288,	%ebp
2425	movl	20(%esp),	%eax
2426	movl	24(%esp),	%ebx
2427	jz	.L018decrypt_finish
2428.L019decrypt_loop:
2429	movl	(%esi),		%eax
2430	movl	4(%esi),	%ebx
2431	movl	%eax,		12(%esp)
2432	movl	%ebx,		16(%esp)
2433	call	DES_encrypt1
2434	movl	12(%esp),	%eax
2435	movl	16(%esp),	%ebx
2436	movl	20(%esp),	%ecx
2437	movl	24(%esp),	%edx
2438	xorl	%eax,		%ecx
2439	xorl	%ebx,		%edx
2440	movl	(%esi),		%eax
2441	movl	4(%esi),	%ebx
2442	movl	%ecx,		(%edi)
2443	movl	%edx,		4(%edi)
2444	movl	%eax,		20(%esp)
2445	movl	%ebx,		24(%esp)
2446	addl	$8,		%esi
2447	addl	$8,		%edi
2448	subl	$8,		%ebp
2449	jnz	.L019decrypt_loop
2450.L018decrypt_finish:
2451	movl	56(%esp),	%ebp
2452	andl	$7,		%ebp
2453	jz	.L007finish
2454	movl	(%esi),		%eax
2455	movl	4(%esi),	%ebx
2456	movl	%eax,		12(%esp)
2457	movl	%ebx,		16(%esp)
2458	call	DES_encrypt1
2459	movl	12(%esp),	%eax
2460	movl	16(%esp),	%ebx
2461	movl	20(%esp),	%ecx
2462	movl	24(%esp),	%edx
2463	xorl	%eax,		%ecx
2464	xorl	%ebx,		%edx
2465	movl	(%esi),		%eax
2466	movl	4(%esi),	%ebx
2467.L020dj7:
2468	rorl	$16,		%edx
2469	movb	%dl,		6(%edi)
2470	shrl	$16,		%edx
2471.L021dj6:
2472	movb	%dh,		5(%edi)
2473.L022dj5:
2474	movb	%dl,		4(%edi)
2475.L023dj4:
2476	movl	%ecx,		(%edi)
2477	jmp	.L024djend
2478.L025dj3:
2479	rorl	$16,		%ecx
2480	movb	%cl,		2(%edi)
2481	sall	$16,		%ecx
2482.L026dj2:
2483	movb	%ch,		1(%esi)
2484.L027dj1:
2485	movb	%cl,		(%esi)
2486.L024djend:
2487	jmp	.L007finish
2488.align 16
2489.L007finish:
2490	movl	64(%esp),	%ecx
2491	addl	$28,		%esp
2492	movl	%eax,		(%ecx)
2493	movl	%ebx,		4(%ecx)
2494	popl	%edi
2495	popl	%esi
2496	popl	%ebx
2497	popl	%ebp
2498	ret
2499.align 16
2500.L009cbc_enc_jmp_table:
2501	.long 0
2502	.long .L017ej1-.L008PIC_point
2503	.long .L016ej2-.L008PIC_point
2504	.long .L015ej3-.L008PIC_point
2505	.long .L013ej4-.L008PIC_point
2506	.long .L012ej5-.L008PIC_point
2507	.long .L011ej6-.L008PIC_point
2508	.long .L010ej7-.L008PIC_point
2509.L_DES_ncbc_encrypt_end:
2510	.size	DES_ncbc_encrypt,.L_DES_ncbc_encrypt_end-DES_ncbc_encrypt
2511.ident	"desasm.pl"
2512.text
2513	.align 16
2514.globl DES_ede3_cbc_encrypt
2515	.type	DES_ede3_cbc_encrypt,@function
2516DES_ede3_cbc_encrypt:
2517
2518	pushl	%ebp
2519	pushl	%ebx
2520	pushl	%esi
2521	pushl	%edi
2522	movl	28(%esp),	%ebp
2523
2524	movl	44(%esp),	%ebx
2525	movl	(%ebx),		%esi
2526	movl	4(%ebx),	%edi
2527	pushl	%edi
2528	pushl	%esi
2529	pushl	%edi
2530	pushl	%esi
2531	movl	%esp,		%ebx
2532	movl	36(%esp),	%esi
2533	movl	40(%esp),	%edi
2534
2535	movl	64(%esp),	%ecx
2536
2537	movl	56(%esp),	%eax
2538	pushl	%eax
2539
2540	movl	56(%esp),	%eax
2541	pushl	%eax
2542
2543	movl	56(%esp),	%eax
2544	pushl	%eax
2545	pushl	%ebx
2546	cmpl	$0,		%ecx
2547	jz	.L028decrypt
2548	andl	$4294967288,	%ebp
2549	movl	16(%esp),	%eax
2550	movl	20(%esp),	%ebx
2551	jz	.L029encrypt_finish
2552.L030encrypt_loop:
2553	movl	(%esi),		%ecx
2554	movl	4(%esi),	%edx
2555	xorl	%ecx,		%eax
2556	xorl	%edx,		%ebx
2557	movl	%eax,		16(%esp)
2558	movl	%ebx,		20(%esp)
2559	call	DES_encrypt3
2560	movl	16(%esp),	%eax
2561	movl	20(%esp),	%ebx
2562	movl	%eax,		(%edi)
2563	movl	%ebx,		4(%edi)
2564	addl	$8,		%esi
2565	addl	$8,		%edi
2566	subl	$8,		%ebp
2567	jnz	.L030encrypt_loop
2568.L029encrypt_finish:
2569	movl	60(%esp),	%ebp
2570	andl	$7,		%ebp
2571	jz	.L031finish
2572	call	.L032PIC_point
2573.L032PIC_point:
2574	popl	%edx
2575	leal	.L033cbc_enc_jmp_table-.L032PIC_point(%edx),%ecx
2576	movl	(%ecx,%ebp,4),	%ebp
2577	addl	%edx,		%ebp
2578	xorl	%ecx,		%ecx
2579	xorl	%edx,		%edx
2580	jmp	*%ebp
2581.L034ej7:
2582	movb	6(%esi),	%dh
2583	sall	$8,		%edx
2584.L035ej6:
2585	movb	5(%esi),	%dh
2586.L036ej5:
2587	movb	4(%esi),	%dl
2588.L037ej4:
2589	movl	(%esi),		%ecx
2590	jmp	.L038ejend
2591.L039ej3:
2592	movb	2(%esi),	%ch
2593	sall	$8,		%ecx
2594.L040ej2:
2595	movb	1(%esi),	%ch
2596.L041ej1:
2597	movb	(%esi),		%cl
2598.L038ejend:
2599	xorl	%ecx,		%eax
2600	xorl	%edx,		%ebx
2601	movl	%eax,		16(%esp)
2602	movl	%ebx,		20(%esp)
2603	call	DES_encrypt3
2604	movl	16(%esp),	%eax
2605	movl	20(%esp),	%ebx
2606	movl	%eax,		(%edi)
2607	movl	%ebx,		4(%edi)
2608	jmp	.L031finish
2609.align 16
2610.L028decrypt:
2611	andl	$4294967288,	%ebp
2612	movl	24(%esp),	%eax
2613	movl	28(%esp),	%ebx
2614	jz	.L042decrypt_finish
2615.L043decrypt_loop:
2616	movl	(%esi),		%eax
2617	movl	4(%esi),	%ebx
2618	movl	%eax,		16(%esp)
2619	movl	%ebx,		20(%esp)
2620	call	DES_decrypt3
2621	movl	16(%esp),	%eax
2622	movl	20(%esp),	%ebx
2623	movl	24(%esp),	%ecx
2624	movl	28(%esp),	%edx
2625	xorl	%eax,		%ecx
2626	xorl	%ebx,		%edx
2627	movl	(%esi),		%eax
2628	movl	4(%esi),	%ebx
2629	movl	%ecx,		(%edi)
2630	movl	%edx,		4(%edi)
2631	movl	%eax,		24(%esp)
2632	movl	%ebx,		28(%esp)
2633	addl	$8,		%esi
2634	addl	$8,		%edi
2635	subl	$8,		%ebp
2636	jnz	.L043decrypt_loop
2637.L042decrypt_finish:
2638	movl	60(%esp),	%ebp
2639	andl	$7,		%ebp
2640	jz	.L031finish
2641	movl	(%esi),		%eax
2642	movl	4(%esi),	%ebx
2643	movl	%eax,		16(%esp)
2644	movl	%ebx,		20(%esp)
2645	call	DES_decrypt3
2646	movl	16(%esp),	%eax
2647	movl	20(%esp),	%ebx
2648	movl	24(%esp),	%ecx
2649	movl	28(%esp),	%edx
2650	xorl	%eax,		%ecx
2651	xorl	%ebx,		%edx
2652	movl	(%esi),		%eax
2653	movl	4(%esi),	%ebx
2654.L044dj7:
2655	rorl	$16,		%edx
2656	movb	%dl,		6(%edi)
2657	shrl	$16,		%edx
2658.L045dj6:
2659	movb	%dh,		5(%edi)
2660.L046dj5:
2661	movb	%dl,		4(%edi)
2662.L047dj4:
2663	movl	%ecx,		(%edi)
2664	jmp	.L048djend
2665.L049dj3:
2666	rorl	$16,		%ecx
2667	movb	%cl,		2(%edi)
2668	sall	$16,		%ecx
2669.L050dj2:
2670	movb	%ch,		1(%esi)
2671.L051dj1:
2672	movb	%cl,		(%esi)
2673.L048djend:
2674	jmp	.L031finish
2675.align 16
2676.L031finish:
2677	movl	76(%esp),	%ecx
2678	addl	$32,		%esp
2679	movl	%eax,		(%ecx)
2680	movl	%ebx,		4(%ecx)
2681	popl	%edi
2682	popl	%esi
2683	popl	%ebx
2684	popl	%ebp
2685	ret
2686.align 16
2687.L033cbc_enc_jmp_table:
2688	.long 0
2689	.long .L041ej1-.L032PIC_point
2690	.long .L040ej2-.L032PIC_point
2691	.long .L039ej3-.L032PIC_point
2692	.long .L037ej4-.L032PIC_point
2693	.long .L036ej5-.L032PIC_point
2694	.long .L035ej6-.L032PIC_point
2695	.long .L034ej7-.L032PIC_point
2696.L_DES_ede3_cbc_encrypt_end:
2697	.size	DES_ede3_cbc_encrypt,.L_DES_ede3_cbc_encrypt_end-DES_ede3_cbc_encrypt
2698.ident	"desasm.pl"
2699