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