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