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