]> CyberLeo.Net >> Repos - FreeBSD/stable/10.git/blob - secure/lib/libcrypto/i386/wp-mmx.S
- Make libcrypto.so position independent on i386.
[FreeBSD/stable/10.git] / secure / lib / libcrypto / i386 / wp-mmx.S
1 # $FreeBSD$
2 # Do not modify. This file is auto-generated from wp-mmx.pl.
3 #ifdef PIC
4 .file   "wp-mmx.S"
5 .text
6 .globl  whirlpool_block_mmx
7 .type   whirlpool_block_mmx,@function
8 .align  16
9 whirlpool_block_mmx:
10 .L_whirlpool_block_mmx_begin:
11         pushl   %ebp
12         pushl   %ebx
13         pushl   %esi
14         pushl   %edi
15         movl    20(%esp),%esi
16         movl    24(%esp),%edi
17         movl    28(%esp),%ebp
18         movl    %esp,%eax
19         subl    $148,%esp
20         andl    $-64,%esp
21         leal    128(%esp),%ebx
22         movl    %esi,(%ebx)
23         movl    %edi,4(%ebx)
24         movl    %ebp,8(%ebx)
25         movl    %eax,16(%ebx)
26         call    .L000pic_point
27 .L000pic_point:
28         popl    %ebp
29         leal    .L001table-.L000pic_point(%ebp),%ebp
30         xorl    %ecx,%ecx
31         xorl    %edx,%edx
32         movq    (%esi),%mm0
33         movq    8(%esi),%mm1
34         movq    16(%esi),%mm2
35         movq    24(%esi),%mm3
36         movq    32(%esi),%mm4
37         movq    40(%esi),%mm5
38         movq    48(%esi),%mm6
39         movq    56(%esi),%mm7
40 .L002outerloop:
41         movq    %mm0,(%esp)
42         movq    %mm1,8(%esp)
43         movq    %mm2,16(%esp)
44         movq    %mm3,24(%esp)
45         movq    %mm4,32(%esp)
46         movq    %mm5,40(%esp)
47         movq    %mm6,48(%esp)
48         movq    %mm7,56(%esp)
49         pxor    (%edi),%mm0
50         pxor    8(%edi),%mm1
51         pxor    16(%edi),%mm2
52         pxor    24(%edi),%mm3
53         pxor    32(%edi),%mm4
54         pxor    40(%edi),%mm5
55         pxor    48(%edi),%mm6
56         pxor    56(%edi),%mm7
57         movq    %mm0,64(%esp)
58         movq    %mm1,72(%esp)
59         movq    %mm2,80(%esp)
60         movq    %mm3,88(%esp)
61         movq    %mm4,96(%esp)
62         movq    %mm5,104(%esp)
63         movq    %mm6,112(%esp)
64         movq    %mm7,120(%esp)
65         xorl    %esi,%esi
66         movl    %esi,12(%ebx)
67 .align  16
68 .L003round:
69         movq    4096(%ebp,%esi,8),%mm0
70         movl    (%esp),%eax
71         movl    4(%esp),%ebx
72         movb    %al,%cl
73         movb    %ah,%dl
74         leal    (%ecx,%ecx,1),%esi
75         leal    (%edx,%edx,1),%edi
76         shrl    $16,%eax
77         pxor    (%ebp,%esi,8),%mm0
78         movq    7(%ebp,%edi,8),%mm1
79         movb    %al,%cl
80         movb    %ah,%dl
81         movl    8(%esp),%eax
82         leal    (%ecx,%ecx,1),%esi
83         leal    (%edx,%edx,1),%edi
84         movq    6(%ebp,%esi,8),%mm2
85         movq    5(%ebp,%edi,8),%mm3
86         movb    %bl,%cl
87         movb    %bh,%dl
88         leal    (%ecx,%ecx,1),%esi
89         leal    (%edx,%edx,1),%edi
90         shrl    $16,%ebx
91         movq    4(%ebp,%esi,8),%mm4
92         movq    3(%ebp,%edi,8),%mm5
93         movb    %bl,%cl
94         movb    %bh,%dl
95         movl    12(%esp),%ebx
96         leal    (%ecx,%ecx,1),%esi
97         leal    (%edx,%edx,1),%edi
98         movq    2(%ebp,%esi,8),%mm6
99         movq    1(%ebp,%edi,8),%mm7
100         movb    %al,%cl
101         movb    %ah,%dl
102         leal    (%ecx,%ecx,1),%esi
103         leal    (%edx,%edx,1),%edi
104         shrl    $16,%eax
105         pxor    (%ebp,%esi,8),%mm1
106         pxor    7(%ebp,%edi,8),%mm2
107         movb    %al,%cl
108         movb    %ah,%dl
109         movl    16(%esp),%eax
110         leal    (%ecx,%ecx,1),%esi
111         leal    (%edx,%edx,1),%edi
112         pxor    6(%ebp,%esi,8),%mm3
113         pxor    5(%ebp,%edi,8),%mm4
114         movb    %bl,%cl
115         movb    %bh,%dl
116         leal    (%ecx,%ecx,1),%esi
117         leal    (%edx,%edx,1),%edi
118         shrl    $16,%ebx
119         pxor    4(%ebp,%esi,8),%mm5
120         pxor    3(%ebp,%edi,8),%mm6
121         movb    %bl,%cl
122         movb    %bh,%dl
123         movl    20(%esp),%ebx
124         leal    (%ecx,%ecx,1),%esi
125         leal    (%edx,%edx,1),%edi
126         pxor    2(%ebp,%esi,8),%mm7
127         pxor    1(%ebp,%edi,8),%mm0
128         movb    %al,%cl
129         movb    %ah,%dl
130         leal    (%ecx,%ecx,1),%esi
131         leal    (%edx,%edx,1),%edi
132         shrl    $16,%eax
133         pxor    (%ebp,%esi,8),%mm2
134         pxor    7(%ebp,%edi,8),%mm3
135         movb    %al,%cl
136         movb    %ah,%dl
137         movl    24(%esp),%eax
138         leal    (%ecx,%ecx,1),%esi
139         leal    (%edx,%edx,1),%edi
140         pxor    6(%ebp,%esi,8),%mm4
141         pxor    5(%ebp,%edi,8),%mm5
142         movb    %bl,%cl
143         movb    %bh,%dl
144         leal    (%ecx,%ecx,1),%esi
145         leal    (%edx,%edx,1),%edi
146         shrl    $16,%ebx
147         pxor    4(%ebp,%esi,8),%mm6
148         pxor    3(%ebp,%edi,8),%mm7
149         movb    %bl,%cl
150         movb    %bh,%dl
151         movl    28(%esp),%ebx
152         leal    (%ecx,%ecx,1),%esi
153         leal    (%edx,%edx,1),%edi
154         pxor    2(%ebp,%esi,8),%mm0
155         pxor    1(%ebp,%edi,8),%mm1
156         movb    %al,%cl
157         movb    %ah,%dl
158         leal    (%ecx,%ecx,1),%esi
159         leal    (%edx,%edx,1),%edi
160         shrl    $16,%eax
161         pxor    (%ebp,%esi,8),%mm3
162         pxor    7(%ebp,%edi,8),%mm4
163         movb    %al,%cl
164         movb    %ah,%dl
165         movl    32(%esp),%eax
166         leal    (%ecx,%ecx,1),%esi
167         leal    (%edx,%edx,1),%edi
168         pxor    6(%ebp,%esi,8),%mm5
169         pxor    5(%ebp,%edi,8),%mm6
170         movb    %bl,%cl
171         movb    %bh,%dl
172         leal    (%ecx,%ecx,1),%esi
173         leal    (%edx,%edx,1),%edi
174         shrl    $16,%ebx
175         pxor    4(%ebp,%esi,8),%mm7
176         pxor    3(%ebp,%edi,8),%mm0
177         movb    %bl,%cl
178         movb    %bh,%dl
179         movl    36(%esp),%ebx
180         leal    (%ecx,%ecx,1),%esi
181         leal    (%edx,%edx,1),%edi
182         pxor    2(%ebp,%esi,8),%mm1
183         pxor    1(%ebp,%edi,8),%mm2
184         movb    %al,%cl
185         movb    %ah,%dl
186         leal    (%ecx,%ecx,1),%esi
187         leal    (%edx,%edx,1),%edi
188         shrl    $16,%eax
189         pxor    (%ebp,%esi,8),%mm4
190         pxor    7(%ebp,%edi,8),%mm5
191         movb    %al,%cl
192         movb    %ah,%dl
193         movl    40(%esp),%eax
194         leal    (%ecx,%ecx,1),%esi
195         leal    (%edx,%edx,1),%edi
196         pxor    6(%ebp,%esi,8),%mm6
197         pxor    5(%ebp,%edi,8),%mm7
198         movb    %bl,%cl
199         movb    %bh,%dl
200         leal    (%ecx,%ecx,1),%esi
201         leal    (%edx,%edx,1),%edi
202         shrl    $16,%ebx
203         pxor    4(%ebp,%esi,8),%mm0
204         pxor    3(%ebp,%edi,8),%mm1
205         movb    %bl,%cl
206         movb    %bh,%dl
207         movl    44(%esp),%ebx
208         leal    (%ecx,%ecx,1),%esi
209         leal    (%edx,%edx,1),%edi
210         pxor    2(%ebp,%esi,8),%mm2
211         pxor    1(%ebp,%edi,8),%mm3
212         movb    %al,%cl
213         movb    %ah,%dl
214         leal    (%ecx,%ecx,1),%esi
215         leal    (%edx,%edx,1),%edi
216         shrl    $16,%eax
217         pxor    (%ebp,%esi,8),%mm5
218         pxor    7(%ebp,%edi,8),%mm6
219         movb    %al,%cl
220         movb    %ah,%dl
221         movl    48(%esp),%eax
222         leal    (%ecx,%ecx,1),%esi
223         leal    (%edx,%edx,1),%edi
224         pxor    6(%ebp,%esi,8),%mm7
225         pxor    5(%ebp,%edi,8),%mm0
226         movb    %bl,%cl
227         movb    %bh,%dl
228         leal    (%ecx,%ecx,1),%esi
229         leal    (%edx,%edx,1),%edi
230         shrl    $16,%ebx
231         pxor    4(%ebp,%esi,8),%mm1
232         pxor    3(%ebp,%edi,8),%mm2
233         movb    %bl,%cl
234         movb    %bh,%dl
235         movl    52(%esp),%ebx
236         leal    (%ecx,%ecx,1),%esi
237         leal    (%edx,%edx,1),%edi
238         pxor    2(%ebp,%esi,8),%mm3
239         pxor    1(%ebp,%edi,8),%mm4
240         movb    %al,%cl
241         movb    %ah,%dl
242         leal    (%ecx,%ecx,1),%esi
243         leal    (%edx,%edx,1),%edi
244         shrl    $16,%eax
245         pxor    (%ebp,%esi,8),%mm6
246         pxor    7(%ebp,%edi,8),%mm7
247         movb    %al,%cl
248         movb    %ah,%dl
249         movl    56(%esp),%eax
250         leal    (%ecx,%ecx,1),%esi
251         leal    (%edx,%edx,1),%edi
252         pxor    6(%ebp,%esi,8),%mm0
253         pxor    5(%ebp,%edi,8),%mm1
254         movb    %bl,%cl
255         movb    %bh,%dl
256         leal    (%ecx,%ecx,1),%esi
257         leal    (%edx,%edx,1),%edi
258         shrl    $16,%ebx
259         pxor    4(%ebp,%esi,8),%mm2
260         pxor    3(%ebp,%edi,8),%mm3
261         movb    %bl,%cl
262         movb    %bh,%dl
263         movl    60(%esp),%ebx
264         leal    (%ecx,%ecx,1),%esi
265         leal    (%edx,%edx,1),%edi
266         pxor    2(%ebp,%esi,8),%mm4
267         pxor    1(%ebp,%edi,8),%mm5
268         movb    %al,%cl
269         movb    %ah,%dl
270         leal    (%ecx,%ecx,1),%esi
271         leal    (%edx,%edx,1),%edi
272         shrl    $16,%eax
273         pxor    (%ebp,%esi,8),%mm7
274         pxor    7(%ebp,%edi,8),%mm0
275         movb    %al,%cl
276         movb    %ah,%dl
277         movl    64(%esp),%eax
278         leal    (%ecx,%ecx,1),%esi
279         leal    (%edx,%edx,1),%edi
280         pxor    6(%ebp,%esi,8),%mm1
281         pxor    5(%ebp,%edi,8),%mm2
282         movb    %bl,%cl
283         movb    %bh,%dl
284         leal    (%ecx,%ecx,1),%esi
285         leal    (%edx,%edx,1),%edi
286         shrl    $16,%ebx
287         pxor    4(%ebp,%esi,8),%mm3
288         pxor    3(%ebp,%edi,8),%mm4
289         movb    %bl,%cl
290         movb    %bh,%dl
291         movl    68(%esp),%ebx
292         leal    (%ecx,%ecx,1),%esi
293         leal    (%edx,%edx,1),%edi
294         pxor    2(%ebp,%esi,8),%mm5
295         pxor    1(%ebp,%edi,8),%mm6
296         movq    %mm0,(%esp)
297         movq    %mm1,8(%esp)
298         movq    %mm2,16(%esp)
299         movq    %mm3,24(%esp)
300         movq    %mm4,32(%esp)
301         movq    %mm5,40(%esp)
302         movq    %mm6,48(%esp)
303         movq    %mm7,56(%esp)
304         movb    %al,%cl
305         movb    %ah,%dl
306         leal    (%ecx,%ecx,1),%esi
307         leal    (%edx,%edx,1),%edi
308         shrl    $16,%eax
309         pxor    (%ebp,%esi,8),%mm0
310         pxor    7(%ebp,%edi,8),%mm1
311         movb    %al,%cl
312         movb    %ah,%dl
313         movl    72(%esp),%eax
314         leal    (%ecx,%ecx,1),%esi
315         leal    (%edx,%edx,1),%edi
316         pxor    6(%ebp,%esi,8),%mm2
317         pxor    5(%ebp,%edi,8),%mm3
318         movb    %bl,%cl
319         movb    %bh,%dl
320         leal    (%ecx,%ecx,1),%esi
321         leal    (%edx,%edx,1),%edi
322         shrl    $16,%ebx
323         pxor    4(%ebp,%esi,8),%mm4
324         pxor    3(%ebp,%edi,8),%mm5
325         movb    %bl,%cl
326         movb    %bh,%dl
327         movl    76(%esp),%ebx
328         leal    (%ecx,%ecx,1),%esi
329         leal    (%edx,%edx,1),%edi
330         pxor    2(%ebp,%esi,8),%mm6
331         pxor    1(%ebp,%edi,8),%mm7
332         movb    %al,%cl
333         movb    %ah,%dl
334         leal    (%ecx,%ecx,1),%esi
335         leal    (%edx,%edx,1),%edi
336         shrl    $16,%eax
337         pxor    (%ebp,%esi,8),%mm1
338         pxor    7(%ebp,%edi,8),%mm2
339         movb    %al,%cl
340         movb    %ah,%dl
341         movl    80(%esp),%eax
342         leal    (%ecx,%ecx,1),%esi
343         leal    (%edx,%edx,1),%edi
344         pxor    6(%ebp,%esi,8),%mm3
345         pxor    5(%ebp,%edi,8),%mm4
346         movb    %bl,%cl
347         movb    %bh,%dl
348         leal    (%ecx,%ecx,1),%esi
349         leal    (%edx,%edx,1),%edi
350         shrl    $16,%ebx
351         pxor    4(%ebp,%esi,8),%mm5
352         pxor    3(%ebp,%edi,8),%mm6
353         movb    %bl,%cl
354         movb    %bh,%dl
355         movl    84(%esp),%ebx
356         leal    (%ecx,%ecx,1),%esi
357         leal    (%edx,%edx,1),%edi
358         pxor    2(%ebp,%esi,8),%mm7
359         pxor    1(%ebp,%edi,8),%mm0
360         movb    %al,%cl
361         movb    %ah,%dl
362         leal    (%ecx,%ecx,1),%esi
363         leal    (%edx,%edx,1),%edi
364         shrl    $16,%eax
365         pxor    (%ebp,%esi,8),%mm2
366         pxor    7(%ebp,%edi,8),%mm3
367         movb    %al,%cl
368         movb    %ah,%dl
369         movl    88(%esp),%eax
370         leal    (%ecx,%ecx,1),%esi
371         leal    (%edx,%edx,1),%edi
372         pxor    6(%ebp,%esi,8),%mm4
373         pxor    5(%ebp,%edi,8),%mm5
374         movb    %bl,%cl
375         movb    %bh,%dl
376         leal    (%ecx,%ecx,1),%esi
377         leal    (%edx,%edx,1),%edi
378         shrl    $16,%ebx
379         pxor    4(%ebp,%esi,8),%mm6
380         pxor    3(%ebp,%edi,8),%mm7
381         movb    %bl,%cl
382         movb    %bh,%dl
383         movl    92(%esp),%ebx
384         leal    (%ecx,%ecx,1),%esi
385         leal    (%edx,%edx,1),%edi
386         pxor    2(%ebp,%esi,8),%mm0
387         pxor    1(%ebp,%edi,8),%mm1
388         movb    %al,%cl
389         movb    %ah,%dl
390         leal    (%ecx,%ecx,1),%esi
391         leal    (%edx,%edx,1),%edi
392         shrl    $16,%eax
393         pxor    (%ebp,%esi,8),%mm3
394         pxor    7(%ebp,%edi,8),%mm4
395         movb    %al,%cl
396         movb    %ah,%dl
397         movl    96(%esp),%eax
398         leal    (%ecx,%ecx,1),%esi
399         leal    (%edx,%edx,1),%edi
400         pxor    6(%ebp,%esi,8),%mm5
401         pxor    5(%ebp,%edi,8),%mm6
402         movb    %bl,%cl
403         movb    %bh,%dl
404         leal    (%ecx,%ecx,1),%esi
405         leal    (%edx,%edx,1),%edi
406         shrl    $16,%ebx
407         pxor    4(%ebp,%esi,8),%mm7
408         pxor    3(%ebp,%edi,8),%mm0
409         movb    %bl,%cl
410         movb    %bh,%dl
411         movl    100(%esp),%ebx
412         leal    (%ecx,%ecx,1),%esi
413         leal    (%edx,%edx,1),%edi
414         pxor    2(%ebp,%esi,8),%mm1
415         pxor    1(%ebp,%edi,8),%mm2
416         movb    %al,%cl
417         movb    %ah,%dl
418         leal    (%ecx,%ecx,1),%esi
419         leal    (%edx,%edx,1),%edi
420         shrl    $16,%eax
421         pxor    (%ebp,%esi,8),%mm4
422         pxor    7(%ebp,%edi,8),%mm5
423         movb    %al,%cl
424         movb    %ah,%dl
425         movl    104(%esp),%eax
426         leal    (%ecx,%ecx,1),%esi
427         leal    (%edx,%edx,1),%edi
428         pxor    6(%ebp,%esi,8),%mm6
429         pxor    5(%ebp,%edi,8),%mm7
430         movb    %bl,%cl
431         movb    %bh,%dl
432         leal    (%ecx,%ecx,1),%esi
433         leal    (%edx,%edx,1),%edi
434         shrl    $16,%ebx
435         pxor    4(%ebp,%esi,8),%mm0
436         pxor    3(%ebp,%edi,8),%mm1
437         movb    %bl,%cl
438         movb    %bh,%dl
439         movl    108(%esp),%ebx
440         leal    (%ecx,%ecx,1),%esi
441         leal    (%edx,%edx,1),%edi
442         pxor    2(%ebp,%esi,8),%mm2
443         pxor    1(%ebp,%edi,8),%mm3
444         movb    %al,%cl
445         movb    %ah,%dl
446         leal    (%ecx,%ecx,1),%esi
447         leal    (%edx,%edx,1),%edi
448         shrl    $16,%eax
449         pxor    (%ebp,%esi,8),%mm5
450         pxor    7(%ebp,%edi,8),%mm6
451         movb    %al,%cl
452         movb    %ah,%dl
453         movl    112(%esp),%eax
454         leal    (%ecx,%ecx,1),%esi
455         leal    (%edx,%edx,1),%edi
456         pxor    6(%ebp,%esi,8),%mm7
457         pxor    5(%ebp,%edi,8),%mm0
458         movb    %bl,%cl
459         movb    %bh,%dl
460         leal    (%ecx,%ecx,1),%esi
461         leal    (%edx,%edx,1),%edi
462         shrl    $16,%ebx
463         pxor    4(%ebp,%esi,8),%mm1
464         pxor    3(%ebp,%edi,8),%mm2
465         movb    %bl,%cl
466         movb    %bh,%dl
467         movl    116(%esp),%ebx
468         leal    (%ecx,%ecx,1),%esi
469         leal    (%edx,%edx,1),%edi
470         pxor    2(%ebp,%esi,8),%mm3
471         pxor    1(%ebp,%edi,8),%mm4
472         movb    %al,%cl
473         movb    %ah,%dl
474         leal    (%ecx,%ecx,1),%esi
475         leal    (%edx,%edx,1),%edi
476         shrl    $16,%eax
477         pxor    (%ebp,%esi,8),%mm6
478         pxor    7(%ebp,%edi,8),%mm7
479         movb    %al,%cl
480         movb    %ah,%dl
481         movl    120(%esp),%eax
482         leal    (%ecx,%ecx,1),%esi
483         leal    (%edx,%edx,1),%edi
484         pxor    6(%ebp,%esi,8),%mm0
485         pxor    5(%ebp,%edi,8),%mm1
486         movb    %bl,%cl
487         movb    %bh,%dl
488         leal    (%ecx,%ecx,1),%esi
489         leal    (%edx,%edx,1),%edi
490         shrl    $16,%ebx
491         pxor    4(%ebp,%esi,8),%mm2
492         pxor    3(%ebp,%edi,8),%mm3
493         movb    %bl,%cl
494         movb    %bh,%dl
495         movl    124(%esp),%ebx
496         leal    (%ecx,%ecx,1),%esi
497         leal    (%edx,%edx,1),%edi
498         pxor    2(%ebp,%esi,8),%mm4
499         pxor    1(%ebp,%edi,8),%mm5
500         movb    %al,%cl
501         movb    %ah,%dl
502         leal    (%ecx,%ecx,1),%esi
503         leal    (%edx,%edx,1),%edi
504         shrl    $16,%eax
505         pxor    (%ebp,%esi,8),%mm7
506         pxor    7(%ebp,%edi,8),%mm0
507         movb    %al,%cl
508         movb    %ah,%dl
509         leal    (%ecx,%ecx,1),%esi
510         leal    (%edx,%edx,1),%edi
511         pxor    6(%ebp,%esi,8),%mm1
512         pxor    5(%ebp,%edi,8),%mm2
513         movb    %bl,%cl
514         movb    %bh,%dl
515         leal    (%ecx,%ecx,1),%esi
516         leal    (%edx,%edx,1),%edi
517         shrl    $16,%ebx
518         pxor    4(%ebp,%esi,8),%mm3
519         pxor    3(%ebp,%edi,8),%mm4
520         movb    %bl,%cl
521         movb    %bh,%dl
522         leal    (%ecx,%ecx,1),%esi
523         leal    (%edx,%edx,1),%edi
524         pxor    2(%ebp,%esi,8),%mm5
525         pxor    1(%ebp,%edi,8),%mm6
526         leal    128(%esp),%ebx
527         movl    12(%ebx),%esi
528         addl    $1,%esi
529         cmpl    $10,%esi
530         je      .L004roundsdone
531         movl    %esi,12(%ebx)
532         movq    %mm0,64(%esp)
533         movq    %mm1,72(%esp)
534         movq    %mm2,80(%esp)
535         movq    %mm3,88(%esp)
536         movq    %mm4,96(%esp)
537         movq    %mm5,104(%esp)
538         movq    %mm6,112(%esp)
539         movq    %mm7,120(%esp)
540         jmp     .L003round
541 .align  16
542 .L004roundsdone:
543         movl    (%ebx),%esi
544         movl    4(%ebx),%edi
545         movl    8(%ebx),%eax
546         pxor    (%edi),%mm0
547         pxor    8(%edi),%mm1
548         pxor    16(%edi),%mm2
549         pxor    24(%edi),%mm3
550         pxor    32(%edi),%mm4
551         pxor    40(%edi),%mm5
552         pxor    48(%edi),%mm6
553         pxor    56(%edi),%mm7
554         pxor    (%esi),%mm0
555         pxor    8(%esi),%mm1
556         pxor    16(%esi),%mm2
557         pxor    24(%esi),%mm3
558         pxor    32(%esi),%mm4
559         pxor    40(%esi),%mm5
560         pxor    48(%esi),%mm6
561         pxor    56(%esi),%mm7
562         movq    %mm0,(%esi)
563         movq    %mm1,8(%esi)
564         movq    %mm2,16(%esi)
565         movq    %mm3,24(%esi)
566         movq    %mm4,32(%esi)
567         movq    %mm5,40(%esi)
568         movq    %mm6,48(%esi)
569         movq    %mm7,56(%esi)
570         leal    64(%edi),%edi
571         subl    $1,%eax
572         jz      .L005alldone
573         movl    %edi,4(%ebx)
574         movl    %eax,8(%ebx)
575         jmp     .L002outerloop
576 .L005alldone:
577         emms
578         movl    16(%ebx),%esp
579         popl    %edi
580         popl    %esi
581         popl    %ebx
582         popl    %ebp
583         ret
584 .align  64
585 .L001table:
586 .byte   24,24,96,24,192,120,48,216
587 .byte   24,24,96,24,192,120,48,216
588 .byte   35,35,140,35,5,175,70,38
589 .byte   35,35,140,35,5,175,70,38
590 .byte   198,198,63,198,126,249,145,184
591 .byte   198,198,63,198,126,249,145,184
592 .byte   232,232,135,232,19,111,205,251
593 .byte   232,232,135,232,19,111,205,251
594 .byte   135,135,38,135,76,161,19,203
595 .byte   135,135,38,135,76,161,19,203
596 .byte   184,184,218,184,169,98,109,17
597 .byte   184,184,218,184,169,98,109,17
598 .byte   1,1,4,1,8,5,2,9
599 .byte   1,1,4,1,8,5,2,9
600 .byte   79,79,33,79,66,110,158,13
601 .byte   79,79,33,79,66,110,158,13
602 .byte   54,54,216,54,173,238,108,155
603 .byte   54,54,216,54,173,238,108,155
604 .byte   166,166,162,166,89,4,81,255
605 .byte   166,166,162,166,89,4,81,255
606 .byte   210,210,111,210,222,189,185,12
607 .byte   210,210,111,210,222,189,185,12
608 .byte   245,245,243,245,251,6,247,14
609 .byte   245,245,243,245,251,6,247,14
610 .byte   121,121,249,121,239,128,242,150
611 .byte   121,121,249,121,239,128,242,150
612 .byte   111,111,161,111,95,206,222,48
613 .byte   111,111,161,111,95,206,222,48
614 .byte   145,145,126,145,252,239,63,109
615 .byte   145,145,126,145,252,239,63,109
616 .byte   82,82,85,82,170,7,164,248
617 .byte   82,82,85,82,170,7,164,248
618 .byte   96,96,157,96,39,253,192,71
619 .byte   96,96,157,96,39,253,192,71
620 .byte   188,188,202,188,137,118,101,53
621 .byte   188,188,202,188,137,118,101,53
622 .byte   155,155,86,155,172,205,43,55
623 .byte   155,155,86,155,172,205,43,55
624 .byte   142,142,2,142,4,140,1,138
625 .byte   142,142,2,142,4,140,1,138
626 .byte   163,163,182,163,113,21,91,210
627 .byte   163,163,182,163,113,21,91,210
628 .byte   12,12,48,12,96,60,24,108
629 .byte   12,12,48,12,96,60,24,108
630 .byte   123,123,241,123,255,138,246,132
631 .byte   123,123,241,123,255,138,246,132
632 .byte   53,53,212,53,181,225,106,128
633 .byte   53,53,212,53,181,225,106,128
634 .byte   29,29,116,29,232,105,58,245
635 .byte   29,29,116,29,232,105,58,245
636 .byte   224,224,167,224,83,71,221,179
637 .byte   224,224,167,224,83,71,221,179
638 .byte   215,215,123,215,246,172,179,33
639 .byte   215,215,123,215,246,172,179,33
640 .byte   194,194,47,194,94,237,153,156
641 .byte   194,194,47,194,94,237,153,156
642 .byte   46,46,184,46,109,150,92,67
643 .byte   46,46,184,46,109,150,92,67
644 .byte   75,75,49,75,98,122,150,41
645 .byte   75,75,49,75,98,122,150,41
646 .byte   254,254,223,254,163,33,225,93
647 .byte   254,254,223,254,163,33,225,93
648 .byte   87,87,65,87,130,22,174,213
649 .byte   87,87,65,87,130,22,174,213
650 .byte   21,21,84,21,168,65,42,189
651 .byte   21,21,84,21,168,65,42,189
652 .byte   119,119,193,119,159,182,238,232
653 .byte   119,119,193,119,159,182,238,232
654 .byte   55,55,220,55,165,235,110,146
655 .byte   55,55,220,55,165,235,110,146
656 .byte   229,229,179,229,123,86,215,158
657 .byte   229,229,179,229,123,86,215,158
658 .byte   159,159,70,159,140,217,35,19
659 .byte   159,159,70,159,140,217,35,19
660 .byte   240,240,231,240,211,23,253,35
661 .byte   240,240,231,240,211,23,253,35
662 .byte   74,74,53,74,106,127,148,32
663 .byte   74,74,53,74,106,127,148,32
664 .byte   218,218,79,218,158,149,169,68
665 .byte   218,218,79,218,158,149,169,68
666 .byte   88,88,125,88,250,37,176,162
667 .byte   88,88,125,88,250,37,176,162
668 .byte   201,201,3,201,6,202,143,207
669 .byte   201,201,3,201,6,202,143,207
670 .byte   41,41,164,41,85,141,82,124
671 .byte   41,41,164,41,85,141,82,124
672 .byte   10,10,40,10,80,34,20,90
673 .byte   10,10,40,10,80,34,20,90
674 .byte   177,177,254,177,225,79,127,80
675 .byte   177,177,254,177,225,79,127,80
676 .byte   160,160,186,160,105,26,93,201
677 .byte   160,160,186,160,105,26,93,201
678 .byte   107,107,177,107,127,218,214,20
679 .byte   107,107,177,107,127,218,214,20
680 .byte   133,133,46,133,92,171,23,217
681 .byte   133,133,46,133,92,171,23,217
682 .byte   189,189,206,189,129,115,103,60
683 .byte   189,189,206,189,129,115,103,60
684 .byte   93,93,105,93,210,52,186,143
685 .byte   93,93,105,93,210,52,186,143
686 .byte   16,16,64,16,128,80,32,144
687 .byte   16,16,64,16,128,80,32,144
688 .byte   244,244,247,244,243,3,245,7
689 .byte   244,244,247,244,243,3,245,7
690 .byte   203,203,11,203,22,192,139,221
691 .byte   203,203,11,203,22,192,139,221
692 .byte   62,62,248,62,237,198,124,211
693 .byte   62,62,248,62,237,198,124,211
694 .byte   5,5,20,5,40,17,10,45
695 .byte   5,5,20,5,40,17,10,45
696 .byte   103,103,129,103,31,230,206,120
697 .byte   103,103,129,103,31,230,206,120
698 .byte   228,228,183,228,115,83,213,151
699 .byte   228,228,183,228,115,83,213,151
700 .byte   39,39,156,39,37,187,78,2
701 .byte   39,39,156,39,37,187,78,2
702 .byte   65,65,25,65,50,88,130,115
703 .byte   65,65,25,65,50,88,130,115
704 .byte   139,139,22,139,44,157,11,167
705 .byte   139,139,22,139,44,157,11,167
706 .byte   167,167,166,167,81,1,83,246
707 .byte   167,167,166,167,81,1,83,246
708 .byte   125,125,233,125,207,148,250,178
709 .byte   125,125,233,125,207,148,250,178
710 .byte   149,149,110,149,220,251,55,73
711 .byte   149,149,110,149,220,251,55,73
712 .byte   216,216,71,216,142,159,173,86
713 .byte   216,216,71,216,142,159,173,86
714 .byte   251,251,203,251,139,48,235,112
715 .byte   251,251,203,251,139,48,235,112
716 .byte   238,238,159,238,35,113,193,205
717 .byte   238,238,159,238,35,113,193,205
718 .byte   124,124,237,124,199,145,248,187
719 .byte   124,124,237,124,199,145,248,187
720 .byte   102,102,133,102,23,227,204,113
721 .byte   102,102,133,102,23,227,204,113
722 .byte   221,221,83,221,166,142,167,123
723 .byte   221,221,83,221,166,142,167,123
724 .byte   23,23,92,23,184,75,46,175
725 .byte   23,23,92,23,184,75,46,175
726 .byte   71,71,1,71,2,70,142,69
727 .byte   71,71,1,71,2,70,142,69
728 .byte   158,158,66,158,132,220,33,26
729 .byte   158,158,66,158,132,220,33,26
730 .byte   202,202,15,202,30,197,137,212
731 .byte   202,202,15,202,30,197,137,212
732 .byte   45,45,180,45,117,153,90,88
733 .byte   45,45,180,45,117,153,90,88
734 .byte   191,191,198,191,145,121,99,46
735 .byte   191,191,198,191,145,121,99,46
736 .byte   7,7,28,7,56,27,14,63
737 .byte   7,7,28,7,56,27,14,63
738 .byte   173,173,142,173,1,35,71,172
739 .byte   173,173,142,173,1,35,71,172
740 .byte   90,90,117,90,234,47,180,176
741 .byte   90,90,117,90,234,47,180,176
742 .byte   131,131,54,131,108,181,27,239
743 .byte   131,131,54,131,108,181,27,239
744 .byte   51,51,204,51,133,255,102,182
745 .byte   51,51,204,51,133,255,102,182
746 .byte   99,99,145,99,63,242,198,92
747 .byte   99,99,145,99,63,242,198,92
748 .byte   2,2,8,2,16,10,4,18
749 .byte   2,2,8,2,16,10,4,18
750 .byte   170,170,146,170,57,56,73,147
751 .byte   170,170,146,170,57,56,73,147
752 .byte   113,113,217,113,175,168,226,222
753 .byte   113,113,217,113,175,168,226,222
754 .byte   200,200,7,200,14,207,141,198
755 .byte   200,200,7,200,14,207,141,198
756 .byte   25,25,100,25,200,125,50,209
757 .byte   25,25,100,25,200,125,50,209
758 .byte   73,73,57,73,114,112,146,59
759 .byte   73,73,57,73,114,112,146,59
760 .byte   217,217,67,217,134,154,175,95
761 .byte   217,217,67,217,134,154,175,95
762 .byte   242,242,239,242,195,29,249,49
763 .byte   242,242,239,242,195,29,249,49
764 .byte   227,227,171,227,75,72,219,168
765 .byte   227,227,171,227,75,72,219,168
766 .byte   91,91,113,91,226,42,182,185
767 .byte   91,91,113,91,226,42,182,185
768 .byte   136,136,26,136,52,146,13,188
769 .byte   136,136,26,136,52,146,13,188
770 .byte   154,154,82,154,164,200,41,62
771 .byte   154,154,82,154,164,200,41,62
772 .byte   38,38,152,38,45,190,76,11
773 .byte   38,38,152,38,45,190,76,11
774 .byte   50,50,200,50,141,250,100,191
775 .byte   50,50,200,50,141,250,100,191
776 .byte   176,176,250,176,233,74,125,89
777 .byte   176,176,250,176,233,74,125,89
778 .byte   233,233,131,233,27,106,207,242
779 .byte   233,233,131,233,27,106,207,242
780 .byte   15,15,60,15,120,51,30,119
781 .byte   15,15,60,15,120,51,30,119
782 .byte   213,213,115,213,230,166,183,51
783 .byte   213,213,115,213,230,166,183,51
784 .byte   128,128,58,128,116,186,29,244
785 .byte   128,128,58,128,116,186,29,244
786 .byte   190,190,194,190,153,124,97,39
787 .byte   190,190,194,190,153,124,97,39
788 .byte   205,205,19,205,38,222,135,235
789 .byte   205,205,19,205,38,222,135,235
790 .byte   52,52,208,52,189,228,104,137
791 .byte   52,52,208,52,189,228,104,137
792 .byte   72,72,61,72,122,117,144,50
793 .byte   72,72,61,72,122,117,144,50
794 .byte   255,255,219,255,171,36,227,84
795 .byte   255,255,219,255,171,36,227,84
796 .byte   122,122,245,122,247,143,244,141
797 .byte   122,122,245,122,247,143,244,141
798 .byte   144,144,122,144,244,234,61,100
799 .byte   144,144,122,144,244,234,61,100
800 .byte   95,95,97,95,194,62,190,157
801 .byte   95,95,97,95,194,62,190,157
802 .byte   32,32,128,32,29,160,64,61
803 .byte   32,32,128,32,29,160,64,61
804 .byte   104,104,189,104,103,213,208,15
805 .byte   104,104,189,104,103,213,208,15
806 .byte   26,26,104,26,208,114,52,202
807 .byte   26,26,104,26,208,114,52,202
808 .byte   174,174,130,174,25,44,65,183
809 .byte   174,174,130,174,25,44,65,183
810 .byte   180,180,234,180,201,94,117,125
811 .byte   180,180,234,180,201,94,117,125
812 .byte   84,84,77,84,154,25,168,206
813 .byte   84,84,77,84,154,25,168,206
814 .byte   147,147,118,147,236,229,59,127
815 .byte   147,147,118,147,236,229,59,127
816 .byte   34,34,136,34,13,170,68,47
817 .byte   34,34,136,34,13,170,68,47
818 .byte   100,100,141,100,7,233,200,99
819 .byte   100,100,141,100,7,233,200,99
820 .byte   241,241,227,241,219,18,255,42
821 .byte   241,241,227,241,219,18,255,42
822 .byte   115,115,209,115,191,162,230,204
823 .byte   115,115,209,115,191,162,230,204
824 .byte   18,18,72,18,144,90,36,130
825 .byte   18,18,72,18,144,90,36,130
826 .byte   64,64,29,64,58,93,128,122
827 .byte   64,64,29,64,58,93,128,122
828 .byte   8,8,32,8,64,40,16,72
829 .byte   8,8,32,8,64,40,16,72
830 .byte   195,195,43,195,86,232,155,149
831 .byte   195,195,43,195,86,232,155,149
832 .byte   236,236,151,236,51,123,197,223
833 .byte   236,236,151,236,51,123,197,223
834 .byte   219,219,75,219,150,144,171,77
835 .byte   219,219,75,219,150,144,171,77
836 .byte   161,161,190,161,97,31,95,192
837 .byte   161,161,190,161,97,31,95,192
838 .byte   141,141,14,141,28,131,7,145
839 .byte   141,141,14,141,28,131,7,145
840 .byte   61,61,244,61,245,201,122,200
841 .byte   61,61,244,61,245,201,122,200
842 .byte   151,151,102,151,204,241,51,91
843 .byte   151,151,102,151,204,241,51,91
844 .byte   0,0,0,0,0,0,0,0
845 .byte   0,0,0,0,0,0,0,0
846 .byte   207,207,27,207,54,212,131,249
847 .byte   207,207,27,207,54,212,131,249
848 .byte   43,43,172,43,69,135,86,110
849 .byte   43,43,172,43,69,135,86,110
850 .byte   118,118,197,118,151,179,236,225
851 .byte   118,118,197,118,151,179,236,225
852 .byte   130,130,50,130,100,176,25,230
853 .byte   130,130,50,130,100,176,25,230
854 .byte   214,214,127,214,254,169,177,40
855 .byte   214,214,127,214,254,169,177,40
856 .byte   27,27,108,27,216,119,54,195
857 .byte   27,27,108,27,216,119,54,195
858 .byte   181,181,238,181,193,91,119,116
859 .byte   181,181,238,181,193,91,119,116
860 .byte   175,175,134,175,17,41,67,190
861 .byte   175,175,134,175,17,41,67,190
862 .byte   106,106,181,106,119,223,212,29
863 .byte   106,106,181,106,119,223,212,29
864 .byte   80,80,93,80,186,13,160,234
865 .byte   80,80,93,80,186,13,160,234
866 .byte   69,69,9,69,18,76,138,87
867 .byte   69,69,9,69,18,76,138,87
868 .byte   243,243,235,243,203,24,251,56
869 .byte   243,243,235,243,203,24,251,56
870 .byte   48,48,192,48,157,240,96,173
871 .byte   48,48,192,48,157,240,96,173
872 .byte   239,239,155,239,43,116,195,196
873 .byte   239,239,155,239,43,116,195,196
874 .byte   63,63,252,63,229,195,126,218
875 .byte   63,63,252,63,229,195,126,218
876 .byte   85,85,73,85,146,28,170,199
877 .byte   85,85,73,85,146,28,170,199
878 .byte   162,162,178,162,121,16,89,219
879 .byte   162,162,178,162,121,16,89,219
880 .byte   234,234,143,234,3,101,201,233
881 .byte   234,234,143,234,3,101,201,233
882 .byte   101,101,137,101,15,236,202,106
883 .byte   101,101,137,101,15,236,202,106
884 .byte   186,186,210,186,185,104,105,3
885 .byte   186,186,210,186,185,104,105,3
886 .byte   47,47,188,47,101,147,94,74
887 .byte   47,47,188,47,101,147,94,74
888 .byte   192,192,39,192,78,231,157,142
889 .byte   192,192,39,192,78,231,157,142
890 .byte   222,222,95,222,190,129,161,96
891 .byte   222,222,95,222,190,129,161,96
892 .byte   28,28,112,28,224,108,56,252
893 .byte   28,28,112,28,224,108,56,252
894 .byte   253,253,211,253,187,46,231,70
895 .byte   253,253,211,253,187,46,231,70
896 .byte   77,77,41,77,82,100,154,31
897 .byte   77,77,41,77,82,100,154,31
898 .byte   146,146,114,146,228,224,57,118
899 .byte   146,146,114,146,228,224,57,118
900 .byte   117,117,201,117,143,188,234,250
901 .byte   117,117,201,117,143,188,234,250
902 .byte   6,6,24,6,48,30,12,54
903 .byte   6,6,24,6,48,30,12,54
904 .byte   138,138,18,138,36,152,9,174
905 .byte   138,138,18,138,36,152,9,174
906 .byte   178,178,242,178,249,64,121,75
907 .byte   178,178,242,178,249,64,121,75
908 .byte   230,230,191,230,99,89,209,133
909 .byte   230,230,191,230,99,89,209,133
910 .byte   14,14,56,14,112,54,28,126
911 .byte   14,14,56,14,112,54,28,126
912 .byte   31,31,124,31,248,99,62,231
913 .byte   31,31,124,31,248,99,62,231
914 .byte   98,98,149,98,55,247,196,85
915 .byte   98,98,149,98,55,247,196,85
916 .byte   212,212,119,212,238,163,181,58
917 .byte   212,212,119,212,238,163,181,58
918 .byte   168,168,154,168,41,50,77,129
919 .byte   168,168,154,168,41,50,77,129
920 .byte   150,150,98,150,196,244,49,82
921 .byte   150,150,98,150,196,244,49,82
922 .byte   249,249,195,249,155,58,239,98
923 .byte   249,249,195,249,155,58,239,98
924 .byte   197,197,51,197,102,246,151,163
925 .byte   197,197,51,197,102,246,151,163
926 .byte   37,37,148,37,53,177,74,16
927 .byte   37,37,148,37,53,177,74,16
928 .byte   89,89,121,89,242,32,178,171
929 .byte   89,89,121,89,242,32,178,171
930 .byte   132,132,42,132,84,174,21,208
931 .byte   132,132,42,132,84,174,21,208
932 .byte   114,114,213,114,183,167,228,197
933 .byte   114,114,213,114,183,167,228,197
934 .byte   57,57,228,57,213,221,114,236
935 .byte   57,57,228,57,213,221,114,236
936 .byte   76,76,45,76,90,97,152,22
937 .byte   76,76,45,76,90,97,152,22
938 .byte   94,94,101,94,202,59,188,148
939 .byte   94,94,101,94,202,59,188,148
940 .byte   120,120,253,120,231,133,240,159
941 .byte   120,120,253,120,231,133,240,159
942 .byte   56,56,224,56,221,216,112,229
943 .byte   56,56,224,56,221,216,112,229
944 .byte   140,140,10,140,20,134,5,152
945 .byte   140,140,10,140,20,134,5,152
946 .byte   209,209,99,209,198,178,191,23
947 .byte   209,209,99,209,198,178,191,23
948 .byte   165,165,174,165,65,11,87,228
949 .byte   165,165,174,165,65,11,87,228
950 .byte   226,226,175,226,67,77,217,161
951 .byte   226,226,175,226,67,77,217,161
952 .byte   97,97,153,97,47,248,194,78
953 .byte   97,97,153,97,47,248,194,78
954 .byte   179,179,246,179,241,69,123,66
955 .byte   179,179,246,179,241,69,123,66
956 .byte   33,33,132,33,21,165,66,52
957 .byte   33,33,132,33,21,165,66,52
958 .byte   156,156,74,156,148,214,37,8
959 .byte   156,156,74,156,148,214,37,8
960 .byte   30,30,120,30,240,102,60,238
961 .byte   30,30,120,30,240,102,60,238
962 .byte   67,67,17,67,34,82,134,97
963 .byte   67,67,17,67,34,82,134,97
964 .byte   199,199,59,199,118,252,147,177
965 .byte   199,199,59,199,118,252,147,177
966 .byte   252,252,215,252,179,43,229,79
967 .byte   252,252,215,252,179,43,229,79
968 .byte   4,4,16,4,32,20,8,36
969 .byte   4,4,16,4,32,20,8,36
970 .byte   81,81,89,81,178,8,162,227
971 .byte   81,81,89,81,178,8,162,227
972 .byte   153,153,94,153,188,199,47,37
973 .byte   153,153,94,153,188,199,47,37
974 .byte   109,109,169,109,79,196,218,34
975 .byte   109,109,169,109,79,196,218,34
976 .byte   13,13,52,13,104,57,26,101
977 .byte   13,13,52,13,104,57,26,101
978 .byte   250,250,207,250,131,53,233,121
979 .byte   250,250,207,250,131,53,233,121
980 .byte   223,223,91,223,182,132,163,105
981 .byte   223,223,91,223,182,132,163,105
982 .byte   126,126,229,126,215,155,252,169
983 .byte   126,126,229,126,215,155,252,169
984 .byte   36,36,144,36,61,180,72,25
985 .byte   36,36,144,36,61,180,72,25
986 .byte   59,59,236,59,197,215,118,254
987 .byte   59,59,236,59,197,215,118,254
988 .byte   171,171,150,171,49,61,75,154
989 .byte   171,171,150,171,49,61,75,154
990 .byte   206,206,31,206,62,209,129,240
991 .byte   206,206,31,206,62,209,129,240
992 .byte   17,17,68,17,136,85,34,153
993 .byte   17,17,68,17,136,85,34,153
994 .byte   143,143,6,143,12,137,3,131
995 .byte   143,143,6,143,12,137,3,131
996 .byte   78,78,37,78,74,107,156,4
997 .byte   78,78,37,78,74,107,156,4
998 .byte   183,183,230,183,209,81,115,102
999 .byte   183,183,230,183,209,81,115,102
1000 .byte   235,235,139,235,11,96,203,224
1001 .byte   235,235,139,235,11,96,203,224
1002 .byte   60,60,240,60,253,204,120,193
1003 .byte   60,60,240,60,253,204,120,193
1004 .byte   129,129,62,129,124,191,31,253
1005 .byte   129,129,62,129,124,191,31,253
1006 .byte   148,148,106,148,212,254,53,64
1007 .byte   148,148,106,148,212,254,53,64
1008 .byte   247,247,251,247,235,12,243,28
1009 .byte   247,247,251,247,235,12,243,28
1010 .byte   185,185,222,185,161,103,111,24
1011 .byte   185,185,222,185,161,103,111,24
1012 .byte   19,19,76,19,152,95,38,139
1013 .byte   19,19,76,19,152,95,38,139
1014 .byte   44,44,176,44,125,156,88,81
1015 .byte   44,44,176,44,125,156,88,81
1016 .byte   211,211,107,211,214,184,187,5
1017 .byte   211,211,107,211,214,184,187,5
1018 .byte   231,231,187,231,107,92,211,140
1019 .byte   231,231,187,231,107,92,211,140
1020 .byte   110,110,165,110,87,203,220,57
1021 .byte   110,110,165,110,87,203,220,57
1022 .byte   196,196,55,196,110,243,149,170
1023 .byte   196,196,55,196,110,243,149,170
1024 .byte   3,3,12,3,24,15,6,27
1025 .byte   3,3,12,3,24,15,6,27
1026 .byte   86,86,69,86,138,19,172,220
1027 .byte   86,86,69,86,138,19,172,220
1028 .byte   68,68,13,68,26,73,136,94
1029 .byte   68,68,13,68,26,73,136,94
1030 .byte   127,127,225,127,223,158,254,160
1031 .byte   127,127,225,127,223,158,254,160
1032 .byte   169,169,158,169,33,55,79,136
1033 .byte   169,169,158,169,33,55,79,136
1034 .byte   42,42,168,42,77,130,84,103
1035 .byte   42,42,168,42,77,130,84,103
1036 .byte   187,187,214,187,177,109,107,10
1037 .byte   187,187,214,187,177,109,107,10
1038 .byte   193,193,35,193,70,226,159,135
1039 .byte   193,193,35,193,70,226,159,135
1040 .byte   83,83,81,83,162,2,166,241
1041 .byte   83,83,81,83,162,2,166,241
1042 .byte   220,220,87,220,174,139,165,114
1043 .byte   220,220,87,220,174,139,165,114
1044 .byte   11,11,44,11,88,39,22,83
1045 .byte   11,11,44,11,88,39,22,83
1046 .byte   157,157,78,157,156,211,39,1
1047 .byte   157,157,78,157,156,211,39,1
1048 .byte   108,108,173,108,71,193,216,43
1049 .byte   108,108,173,108,71,193,216,43
1050 .byte   49,49,196,49,149,245,98,164
1051 .byte   49,49,196,49,149,245,98,164
1052 .byte   116,116,205,116,135,185,232,243
1053 .byte   116,116,205,116,135,185,232,243
1054 .byte   246,246,255,246,227,9,241,21
1055 .byte   246,246,255,246,227,9,241,21
1056 .byte   70,70,5,70,10,67,140,76
1057 .byte   70,70,5,70,10,67,140,76
1058 .byte   172,172,138,172,9,38,69,165
1059 .byte   172,172,138,172,9,38,69,165
1060 .byte   137,137,30,137,60,151,15,181
1061 .byte   137,137,30,137,60,151,15,181
1062 .byte   20,20,80,20,160,68,40,180
1063 .byte   20,20,80,20,160,68,40,180
1064 .byte   225,225,163,225,91,66,223,186
1065 .byte   225,225,163,225,91,66,223,186
1066 .byte   22,22,88,22,176,78,44,166
1067 .byte   22,22,88,22,176,78,44,166
1068 .byte   58,58,232,58,205,210,116,247
1069 .byte   58,58,232,58,205,210,116,247
1070 .byte   105,105,185,105,111,208,210,6
1071 .byte   105,105,185,105,111,208,210,6
1072 .byte   9,9,36,9,72,45,18,65
1073 .byte   9,9,36,9,72,45,18,65
1074 .byte   112,112,221,112,167,173,224,215
1075 .byte   112,112,221,112,167,173,224,215
1076 .byte   182,182,226,182,217,84,113,111
1077 .byte   182,182,226,182,217,84,113,111
1078 .byte   208,208,103,208,206,183,189,30
1079 .byte   208,208,103,208,206,183,189,30
1080 .byte   237,237,147,237,59,126,199,214
1081 .byte   237,237,147,237,59,126,199,214
1082 .byte   204,204,23,204,46,219,133,226
1083 .byte   204,204,23,204,46,219,133,226
1084 .byte   66,66,21,66,42,87,132,104
1085 .byte   66,66,21,66,42,87,132,104
1086 .byte   152,152,90,152,180,194,45,44
1087 .byte   152,152,90,152,180,194,45,44
1088 .byte   164,164,170,164,73,14,85,237
1089 .byte   164,164,170,164,73,14,85,237
1090 .byte   40,40,160,40,93,136,80,117
1091 .byte   40,40,160,40,93,136,80,117
1092 .byte   92,92,109,92,218,49,184,134
1093 .byte   92,92,109,92,218,49,184,134
1094 .byte   248,248,199,248,147,63,237,107
1095 .byte   248,248,199,248,147,63,237,107
1096 .byte   134,134,34,134,68,164,17,194
1097 .byte   134,134,34,134,68,164,17,194
1098 .byte   24,35,198,232,135,184,1,79
1099 .byte   54,166,210,245,121,111,145,82
1100 .byte   96,188,155,142,163,12,123,53
1101 .byte   29,224,215,194,46,75,254,87
1102 .byte   21,119,55,229,159,240,74,218
1103 .byte   88,201,41,10,177,160,107,133
1104 .byte   189,93,16,244,203,62,5,103
1105 .byte   228,39,65,139,167,125,149,216
1106 .byte   251,238,124,102,221,23,71,158
1107 .byte   202,45,191,7,173,90,131,51
1108 .size   whirlpool_block_mmx,.-.L_whirlpool_block_mmx_begin
1109 #else
1110 .file   "wp-mmx.S"
1111 .text
1112 .globl  whirlpool_block_mmx
1113 .type   whirlpool_block_mmx,@function
1114 .align  16
1115 whirlpool_block_mmx:
1116 .L_whirlpool_block_mmx_begin:
1117         pushl   %ebp
1118         pushl   %ebx
1119         pushl   %esi
1120         pushl   %edi
1121         movl    20(%esp),%esi
1122         movl    24(%esp),%edi
1123         movl    28(%esp),%ebp
1124         movl    %esp,%eax
1125         subl    $148,%esp
1126         andl    $-64,%esp
1127         leal    128(%esp),%ebx
1128         movl    %esi,(%ebx)
1129         movl    %edi,4(%ebx)
1130         movl    %ebp,8(%ebx)
1131         movl    %eax,16(%ebx)
1132         call    .L000pic_point
1133 .L000pic_point:
1134         popl    %ebp
1135         leal    .L001table-.L000pic_point(%ebp),%ebp
1136         xorl    %ecx,%ecx
1137         xorl    %edx,%edx
1138         movq    (%esi),%mm0
1139         movq    8(%esi),%mm1
1140         movq    16(%esi),%mm2
1141         movq    24(%esi),%mm3
1142         movq    32(%esi),%mm4
1143         movq    40(%esi),%mm5
1144         movq    48(%esi),%mm6
1145         movq    56(%esi),%mm7
1146 .L002outerloop:
1147         movq    %mm0,(%esp)
1148         movq    %mm1,8(%esp)
1149         movq    %mm2,16(%esp)
1150         movq    %mm3,24(%esp)
1151         movq    %mm4,32(%esp)
1152         movq    %mm5,40(%esp)
1153         movq    %mm6,48(%esp)
1154         movq    %mm7,56(%esp)
1155         pxor    (%edi),%mm0
1156         pxor    8(%edi),%mm1
1157         pxor    16(%edi),%mm2
1158         pxor    24(%edi),%mm3
1159         pxor    32(%edi),%mm4
1160         pxor    40(%edi),%mm5
1161         pxor    48(%edi),%mm6
1162         pxor    56(%edi),%mm7
1163         movq    %mm0,64(%esp)
1164         movq    %mm1,72(%esp)
1165         movq    %mm2,80(%esp)
1166         movq    %mm3,88(%esp)
1167         movq    %mm4,96(%esp)
1168         movq    %mm5,104(%esp)
1169         movq    %mm6,112(%esp)
1170         movq    %mm7,120(%esp)
1171         xorl    %esi,%esi
1172         movl    %esi,12(%ebx)
1173 .align  16
1174 .L003round:
1175         movq    4096(%ebp,%esi,8),%mm0
1176         movl    (%esp),%eax
1177         movl    4(%esp),%ebx
1178         movb    %al,%cl
1179         movb    %ah,%dl
1180         leal    (%ecx,%ecx,1),%esi
1181         leal    (%edx,%edx,1),%edi
1182         shrl    $16,%eax
1183         pxor    (%ebp,%esi,8),%mm0
1184         movq    7(%ebp,%edi,8),%mm1
1185         movb    %al,%cl
1186         movb    %ah,%dl
1187         movl    8(%esp),%eax
1188         leal    (%ecx,%ecx,1),%esi
1189         leal    (%edx,%edx,1),%edi
1190         movq    6(%ebp,%esi,8),%mm2
1191         movq    5(%ebp,%edi,8),%mm3
1192         movb    %bl,%cl
1193         movb    %bh,%dl
1194         leal    (%ecx,%ecx,1),%esi
1195         leal    (%edx,%edx,1),%edi
1196         shrl    $16,%ebx
1197         movq    4(%ebp,%esi,8),%mm4
1198         movq    3(%ebp,%edi,8),%mm5
1199         movb    %bl,%cl
1200         movb    %bh,%dl
1201         movl    12(%esp),%ebx
1202         leal    (%ecx,%ecx,1),%esi
1203         leal    (%edx,%edx,1),%edi
1204         movq    2(%ebp,%esi,8),%mm6
1205         movq    1(%ebp,%edi,8),%mm7
1206         movb    %al,%cl
1207         movb    %ah,%dl
1208         leal    (%ecx,%ecx,1),%esi
1209         leal    (%edx,%edx,1),%edi
1210         shrl    $16,%eax
1211         pxor    (%ebp,%esi,8),%mm1
1212         pxor    7(%ebp,%edi,8),%mm2
1213         movb    %al,%cl
1214         movb    %ah,%dl
1215         movl    16(%esp),%eax
1216         leal    (%ecx,%ecx,1),%esi
1217         leal    (%edx,%edx,1),%edi
1218         pxor    6(%ebp,%esi,8),%mm3
1219         pxor    5(%ebp,%edi,8),%mm4
1220         movb    %bl,%cl
1221         movb    %bh,%dl
1222         leal    (%ecx,%ecx,1),%esi
1223         leal    (%edx,%edx,1),%edi
1224         shrl    $16,%ebx
1225         pxor    4(%ebp,%esi,8),%mm5
1226         pxor    3(%ebp,%edi,8),%mm6
1227         movb    %bl,%cl
1228         movb    %bh,%dl
1229         movl    20(%esp),%ebx
1230         leal    (%ecx,%ecx,1),%esi
1231         leal    (%edx,%edx,1),%edi
1232         pxor    2(%ebp,%esi,8),%mm7
1233         pxor    1(%ebp,%edi,8),%mm0
1234         movb    %al,%cl
1235         movb    %ah,%dl
1236         leal    (%ecx,%ecx,1),%esi
1237         leal    (%edx,%edx,1),%edi
1238         shrl    $16,%eax
1239         pxor    (%ebp,%esi,8),%mm2
1240         pxor    7(%ebp,%edi,8),%mm3
1241         movb    %al,%cl
1242         movb    %ah,%dl
1243         movl    24(%esp),%eax
1244         leal    (%ecx,%ecx,1),%esi
1245         leal    (%edx,%edx,1),%edi
1246         pxor    6(%ebp,%esi,8),%mm4
1247         pxor    5(%ebp,%edi,8),%mm5
1248         movb    %bl,%cl
1249         movb    %bh,%dl
1250         leal    (%ecx,%ecx,1),%esi
1251         leal    (%edx,%edx,1),%edi
1252         shrl    $16,%ebx
1253         pxor    4(%ebp,%esi,8),%mm6
1254         pxor    3(%ebp,%edi,8),%mm7
1255         movb    %bl,%cl
1256         movb    %bh,%dl
1257         movl    28(%esp),%ebx
1258         leal    (%ecx,%ecx,1),%esi
1259         leal    (%edx,%edx,1),%edi
1260         pxor    2(%ebp,%esi,8),%mm0
1261         pxor    1(%ebp,%edi,8),%mm1
1262         movb    %al,%cl
1263         movb    %ah,%dl
1264         leal    (%ecx,%ecx,1),%esi
1265         leal    (%edx,%edx,1),%edi
1266         shrl    $16,%eax
1267         pxor    (%ebp,%esi,8),%mm3
1268         pxor    7(%ebp,%edi,8),%mm4
1269         movb    %al,%cl
1270         movb    %ah,%dl
1271         movl    32(%esp),%eax
1272         leal    (%ecx,%ecx,1),%esi
1273         leal    (%edx,%edx,1),%edi
1274         pxor    6(%ebp,%esi,8),%mm5
1275         pxor    5(%ebp,%edi,8),%mm6
1276         movb    %bl,%cl
1277         movb    %bh,%dl
1278         leal    (%ecx,%ecx,1),%esi
1279         leal    (%edx,%edx,1),%edi
1280         shrl    $16,%ebx
1281         pxor    4(%ebp,%esi,8),%mm7
1282         pxor    3(%ebp,%edi,8),%mm0
1283         movb    %bl,%cl
1284         movb    %bh,%dl
1285         movl    36(%esp),%ebx
1286         leal    (%ecx,%ecx,1),%esi
1287         leal    (%edx,%edx,1),%edi
1288         pxor    2(%ebp,%esi,8),%mm1
1289         pxor    1(%ebp,%edi,8),%mm2
1290         movb    %al,%cl
1291         movb    %ah,%dl
1292         leal    (%ecx,%ecx,1),%esi
1293         leal    (%edx,%edx,1),%edi
1294         shrl    $16,%eax
1295         pxor    (%ebp,%esi,8),%mm4
1296         pxor    7(%ebp,%edi,8),%mm5
1297         movb    %al,%cl
1298         movb    %ah,%dl
1299         movl    40(%esp),%eax
1300         leal    (%ecx,%ecx,1),%esi
1301         leal    (%edx,%edx,1),%edi
1302         pxor    6(%ebp,%esi,8),%mm6
1303         pxor    5(%ebp,%edi,8),%mm7
1304         movb    %bl,%cl
1305         movb    %bh,%dl
1306         leal    (%ecx,%ecx,1),%esi
1307         leal    (%edx,%edx,1),%edi
1308         shrl    $16,%ebx
1309         pxor    4(%ebp,%esi,8),%mm0
1310         pxor    3(%ebp,%edi,8),%mm1
1311         movb    %bl,%cl
1312         movb    %bh,%dl
1313         movl    44(%esp),%ebx
1314         leal    (%ecx,%ecx,1),%esi
1315         leal    (%edx,%edx,1),%edi
1316         pxor    2(%ebp,%esi,8),%mm2
1317         pxor    1(%ebp,%edi,8),%mm3
1318         movb    %al,%cl
1319         movb    %ah,%dl
1320         leal    (%ecx,%ecx,1),%esi
1321         leal    (%edx,%edx,1),%edi
1322         shrl    $16,%eax
1323         pxor    (%ebp,%esi,8),%mm5
1324         pxor    7(%ebp,%edi,8),%mm6
1325         movb    %al,%cl
1326         movb    %ah,%dl
1327         movl    48(%esp),%eax
1328         leal    (%ecx,%ecx,1),%esi
1329         leal    (%edx,%edx,1),%edi
1330         pxor    6(%ebp,%esi,8),%mm7
1331         pxor    5(%ebp,%edi,8),%mm0
1332         movb    %bl,%cl
1333         movb    %bh,%dl
1334         leal    (%ecx,%ecx,1),%esi
1335         leal    (%edx,%edx,1),%edi
1336         shrl    $16,%ebx
1337         pxor    4(%ebp,%esi,8),%mm1
1338         pxor    3(%ebp,%edi,8),%mm2
1339         movb    %bl,%cl
1340         movb    %bh,%dl
1341         movl    52(%esp),%ebx
1342         leal    (%ecx,%ecx,1),%esi
1343         leal    (%edx,%edx,1),%edi
1344         pxor    2(%ebp,%esi,8),%mm3
1345         pxor    1(%ebp,%edi,8),%mm4
1346         movb    %al,%cl
1347         movb    %ah,%dl
1348         leal    (%ecx,%ecx,1),%esi
1349         leal    (%edx,%edx,1),%edi
1350         shrl    $16,%eax
1351         pxor    (%ebp,%esi,8),%mm6
1352         pxor    7(%ebp,%edi,8),%mm7
1353         movb    %al,%cl
1354         movb    %ah,%dl
1355         movl    56(%esp),%eax
1356         leal    (%ecx,%ecx,1),%esi
1357         leal    (%edx,%edx,1),%edi
1358         pxor    6(%ebp,%esi,8),%mm0
1359         pxor    5(%ebp,%edi,8),%mm1
1360         movb    %bl,%cl
1361         movb    %bh,%dl
1362         leal    (%ecx,%ecx,1),%esi
1363         leal    (%edx,%edx,1),%edi
1364         shrl    $16,%ebx
1365         pxor    4(%ebp,%esi,8),%mm2
1366         pxor    3(%ebp,%edi,8),%mm3
1367         movb    %bl,%cl
1368         movb    %bh,%dl
1369         movl    60(%esp),%ebx
1370         leal    (%ecx,%ecx,1),%esi
1371         leal    (%edx,%edx,1),%edi
1372         pxor    2(%ebp,%esi,8),%mm4
1373         pxor    1(%ebp,%edi,8),%mm5
1374         movb    %al,%cl
1375         movb    %ah,%dl
1376         leal    (%ecx,%ecx,1),%esi
1377         leal    (%edx,%edx,1),%edi
1378         shrl    $16,%eax
1379         pxor    (%ebp,%esi,8),%mm7
1380         pxor    7(%ebp,%edi,8),%mm0
1381         movb    %al,%cl
1382         movb    %ah,%dl
1383         movl    64(%esp),%eax
1384         leal    (%ecx,%ecx,1),%esi
1385         leal    (%edx,%edx,1),%edi
1386         pxor    6(%ebp,%esi,8),%mm1
1387         pxor    5(%ebp,%edi,8),%mm2
1388         movb    %bl,%cl
1389         movb    %bh,%dl
1390         leal    (%ecx,%ecx,1),%esi
1391         leal    (%edx,%edx,1),%edi
1392         shrl    $16,%ebx
1393         pxor    4(%ebp,%esi,8),%mm3
1394         pxor    3(%ebp,%edi,8),%mm4
1395         movb    %bl,%cl
1396         movb    %bh,%dl
1397         movl    68(%esp),%ebx
1398         leal    (%ecx,%ecx,1),%esi
1399         leal    (%edx,%edx,1),%edi
1400         pxor    2(%ebp,%esi,8),%mm5
1401         pxor    1(%ebp,%edi,8),%mm6
1402         movq    %mm0,(%esp)
1403         movq    %mm1,8(%esp)
1404         movq    %mm2,16(%esp)
1405         movq    %mm3,24(%esp)
1406         movq    %mm4,32(%esp)
1407         movq    %mm5,40(%esp)
1408         movq    %mm6,48(%esp)
1409         movq    %mm7,56(%esp)
1410         movb    %al,%cl
1411         movb    %ah,%dl
1412         leal    (%ecx,%ecx,1),%esi
1413         leal    (%edx,%edx,1),%edi
1414         shrl    $16,%eax
1415         pxor    (%ebp,%esi,8),%mm0
1416         pxor    7(%ebp,%edi,8),%mm1
1417         movb    %al,%cl
1418         movb    %ah,%dl
1419         movl    72(%esp),%eax
1420         leal    (%ecx,%ecx,1),%esi
1421         leal    (%edx,%edx,1),%edi
1422         pxor    6(%ebp,%esi,8),%mm2
1423         pxor    5(%ebp,%edi,8),%mm3
1424         movb    %bl,%cl
1425         movb    %bh,%dl
1426         leal    (%ecx,%ecx,1),%esi
1427         leal    (%edx,%edx,1),%edi
1428         shrl    $16,%ebx
1429         pxor    4(%ebp,%esi,8),%mm4
1430         pxor    3(%ebp,%edi,8),%mm5
1431         movb    %bl,%cl
1432         movb    %bh,%dl
1433         movl    76(%esp),%ebx
1434         leal    (%ecx,%ecx,1),%esi
1435         leal    (%edx,%edx,1),%edi
1436         pxor    2(%ebp,%esi,8),%mm6
1437         pxor    1(%ebp,%edi,8),%mm7
1438         movb    %al,%cl
1439         movb    %ah,%dl
1440         leal    (%ecx,%ecx,1),%esi
1441         leal    (%edx,%edx,1),%edi
1442         shrl    $16,%eax
1443         pxor    (%ebp,%esi,8),%mm1
1444         pxor    7(%ebp,%edi,8),%mm2
1445         movb    %al,%cl
1446         movb    %ah,%dl
1447         movl    80(%esp),%eax
1448         leal    (%ecx,%ecx,1),%esi
1449         leal    (%edx,%edx,1),%edi
1450         pxor    6(%ebp,%esi,8),%mm3
1451         pxor    5(%ebp,%edi,8),%mm4
1452         movb    %bl,%cl
1453         movb    %bh,%dl
1454         leal    (%ecx,%ecx,1),%esi
1455         leal    (%edx,%edx,1),%edi
1456         shrl    $16,%ebx
1457         pxor    4(%ebp,%esi,8),%mm5
1458         pxor    3(%ebp,%edi,8),%mm6
1459         movb    %bl,%cl
1460         movb    %bh,%dl
1461         movl    84(%esp),%ebx
1462         leal    (%ecx,%ecx,1),%esi
1463         leal    (%edx,%edx,1),%edi
1464         pxor    2(%ebp,%esi,8),%mm7
1465         pxor    1(%ebp,%edi,8),%mm0
1466         movb    %al,%cl
1467         movb    %ah,%dl
1468         leal    (%ecx,%ecx,1),%esi
1469         leal    (%edx,%edx,1),%edi
1470         shrl    $16,%eax
1471         pxor    (%ebp,%esi,8),%mm2
1472         pxor    7(%ebp,%edi,8),%mm3
1473         movb    %al,%cl
1474         movb    %ah,%dl
1475         movl    88(%esp),%eax
1476         leal    (%ecx,%ecx,1),%esi
1477         leal    (%edx,%edx,1),%edi
1478         pxor    6(%ebp,%esi,8),%mm4
1479         pxor    5(%ebp,%edi,8),%mm5
1480         movb    %bl,%cl
1481         movb    %bh,%dl
1482         leal    (%ecx,%ecx,1),%esi
1483         leal    (%edx,%edx,1),%edi
1484         shrl    $16,%ebx
1485         pxor    4(%ebp,%esi,8),%mm6
1486         pxor    3(%ebp,%edi,8),%mm7
1487         movb    %bl,%cl
1488         movb    %bh,%dl
1489         movl    92(%esp),%ebx
1490         leal    (%ecx,%ecx,1),%esi
1491         leal    (%edx,%edx,1),%edi
1492         pxor    2(%ebp,%esi,8),%mm0
1493         pxor    1(%ebp,%edi,8),%mm1
1494         movb    %al,%cl
1495         movb    %ah,%dl
1496         leal    (%ecx,%ecx,1),%esi
1497         leal    (%edx,%edx,1),%edi
1498         shrl    $16,%eax
1499         pxor    (%ebp,%esi,8),%mm3
1500         pxor    7(%ebp,%edi,8),%mm4
1501         movb    %al,%cl
1502         movb    %ah,%dl
1503         movl    96(%esp),%eax
1504         leal    (%ecx,%ecx,1),%esi
1505         leal    (%edx,%edx,1),%edi
1506         pxor    6(%ebp,%esi,8),%mm5
1507         pxor    5(%ebp,%edi,8),%mm6
1508         movb    %bl,%cl
1509         movb    %bh,%dl
1510         leal    (%ecx,%ecx,1),%esi
1511         leal    (%edx,%edx,1),%edi
1512         shrl    $16,%ebx
1513         pxor    4(%ebp,%esi,8),%mm7
1514         pxor    3(%ebp,%edi,8),%mm0
1515         movb    %bl,%cl
1516         movb    %bh,%dl
1517         movl    100(%esp),%ebx
1518         leal    (%ecx,%ecx,1),%esi
1519         leal    (%edx,%edx,1),%edi
1520         pxor    2(%ebp,%esi,8),%mm1
1521         pxor    1(%ebp,%edi,8),%mm2
1522         movb    %al,%cl
1523         movb    %ah,%dl
1524         leal    (%ecx,%ecx,1),%esi
1525         leal    (%edx,%edx,1),%edi
1526         shrl    $16,%eax
1527         pxor    (%ebp,%esi,8),%mm4
1528         pxor    7(%ebp,%edi,8),%mm5
1529         movb    %al,%cl
1530         movb    %ah,%dl
1531         movl    104(%esp),%eax
1532         leal    (%ecx,%ecx,1),%esi
1533         leal    (%edx,%edx,1),%edi
1534         pxor    6(%ebp,%esi,8),%mm6
1535         pxor    5(%ebp,%edi,8),%mm7
1536         movb    %bl,%cl
1537         movb    %bh,%dl
1538         leal    (%ecx,%ecx,1),%esi
1539         leal    (%edx,%edx,1),%edi
1540         shrl    $16,%ebx
1541         pxor    4(%ebp,%esi,8),%mm0
1542         pxor    3(%ebp,%edi,8),%mm1
1543         movb    %bl,%cl
1544         movb    %bh,%dl
1545         movl    108(%esp),%ebx
1546         leal    (%ecx,%ecx,1),%esi
1547         leal    (%edx,%edx,1),%edi
1548         pxor    2(%ebp,%esi,8),%mm2
1549         pxor    1(%ebp,%edi,8),%mm3
1550         movb    %al,%cl
1551         movb    %ah,%dl
1552         leal    (%ecx,%ecx,1),%esi
1553         leal    (%edx,%edx,1),%edi
1554         shrl    $16,%eax
1555         pxor    (%ebp,%esi,8),%mm5
1556         pxor    7(%ebp,%edi,8),%mm6
1557         movb    %al,%cl
1558         movb    %ah,%dl
1559         movl    112(%esp),%eax
1560         leal    (%ecx,%ecx,1),%esi
1561         leal    (%edx,%edx,1),%edi
1562         pxor    6(%ebp,%esi,8),%mm7
1563         pxor    5(%ebp,%edi,8),%mm0
1564         movb    %bl,%cl
1565         movb    %bh,%dl
1566         leal    (%ecx,%ecx,1),%esi
1567         leal    (%edx,%edx,1),%edi
1568         shrl    $16,%ebx
1569         pxor    4(%ebp,%esi,8),%mm1
1570         pxor    3(%ebp,%edi,8),%mm2
1571         movb    %bl,%cl
1572         movb    %bh,%dl
1573         movl    116(%esp),%ebx
1574         leal    (%ecx,%ecx,1),%esi
1575         leal    (%edx,%edx,1),%edi
1576         pxor    2(%ebp,%esi,8),%mm3
1577         pxor    1(%ebp,%edi,8),%mm4
1578         movb    %al,%cl
1579         movb    %ah,%dl
1580         leal    (%ecx,%ecx,1),%esi
1581         leal    (%edx,%edx,1),%edi
1582         shrl    $16,%eax
1583         pxor    (%ebp,%esi,8),%mm6
1584         pxor    7(%ebp,%edi,8),%mm7
1585         movb    %al,%cl
1586         movb    %ah,%dl
1587         movl    120(%esp),%eax
1588         leal    (%ecx,%ecx,1),%esi
1589         leal    (%edx,%edx,1),%edi
1590         pxor    6(%ebp,%esi,8),%mm0
1591         pxor    5(%ebp,%edi,8),%mm1
1592         movb    %bl,%cl
1593         movb    %bh,%dl
1594         leal    (%ecx,%ecx,1),%esi
1595         leal    (%edx,%edx,1),%edi
1596         shrl    $16,%ebx
1597         pxor    4(%ebp,%esi,8),%mm2
1598         pxor    3(%ebp,%edi,8),%mm3
1599         movb    %bl,%cl
1600         movb    %bh,%dl
1601         movl    124(%esp),%ebx
1602         leal    (%ecx,%ecx,1),%esi
1603         leal    (%edx,%edx,1),%edi
1604         pxor    2(%ebp,%esi,8),%mm4
1605         pxor    1(%ebp,%edi,8),%mm5
1606         movb    %al,%cl
1607         movb    %ah,%dl
1608         leal    (%ecx,%ecx,1),%esi
1609         leal    (%edx,%edx,1),%edi
1610         shrl    $16,%eax
1611         pxor    (%ebp,%esi,8),%mm7
1612         pxor    7(%ebp,%edi,8),%mm0
1613         movb    %al,%cl
1614         movb    %ah,%dl
1615         leal    (%ecx,%ecx,1),%esi
1616         leal    (%edx,%edx,1),%edi
1617         pxor    6(%ebp,%esi,8),%mm1
1618         pxor    5(%ebp,%edi,8),%mm2
1619         movb    %bl,%cl
1620         movb    %bh,%dl
1621         leal    (%ecx,%ecx,1),%esi
1622         leal    (%edx,%edx,1),%edi
1623         shrl    $16,%ebx
1624         pxor    4(%ebp,%esi,8),%mm3
1625         pxor    3(%ebp,%edi,8),%mm4
1626         movb    %bl,%cl
1627         movb    %bh,%dl
1628         leal    (%ecx,%ecx,1),%esi
1629         leal    (%edx,%edx,1),%edi
1630         pxor    2(%ebp,%esi,8),%mm5
1631         pxor    1(%ebp,%edi,8),%mm6
1632         leal    128(%esp),%ebx
1633         movl    12(%ebx),%esi
1634         addl    $1,%esi
1635         cmpl    $10,%esi
1636         je      .L004roundsdone
1637         movl    %esi,12(%ebx)
1638         movq    %mm0,64(%esp)
1639         movq    %mm1,72(%esp)
1640         movq    %mm2,80(%esp)
1641         movq    %mm3,88(%esp)
1642         movq    %mm4,96(%esp)
1643         movq    %mm5,104(%esp)
1644         movq    %mm6,112(%esp)
1645         movq    %mm7,120(%esp)
1646         jmp     .L003round
1647 .align  16
1648 .L004roundsdone:
1649         movl    (%ebx),%esi
1650         movl    4(%ebx),%edi
1651         movl    8(%ebx),%eax
1652         pxor    (%edi),%mm0
1653         pxor    8(%edi),%mm1
1654         pxor    16(%edi),%mm2
1655         pxor    24(%edi),%mm3
1656         pxor    32(%edi),%mm4
1657         pxor    40(%edi),%mm5
1658         pxor    48(%edi),%mm6
1659         pxor    56(%edi),%mm7
1660         pxor    (%esi),%mm0
1661         pxor    8(%esi),%mm1
1662         pxor    16(%esi),%mm2
1663         pxor    24(%esi),%mm3
1664         pxor    32(%esi),%mm4
1665         pxor    40(%esi),%mm5
1666         pxor    48(%esi),%mm6
1667         pxor    56(%esi),%mm7
1668         movq    %mm0,(%esi)
1669         movq    %mm1,8(%esi)
1670         movq    %mm2,16(%esi)
1671         movq    %mm3,24(%esi)
1672         movq    %mm4,32(%esi)
1673         movq    %mm5,40(%esi)
1674         movq    %mm6,48(%esi)
1675         movq    %mm7,56(%esi)
1676         leal    64(%edi),%edi
1677         subl    $1,%eax
1678         jz      .L005alldone
1679         movl    %edi,4(%ebx)
1680         movl    %eax,8(%ebx)
1681         jmp     .L002outerloop
1682 .L005alldone:
1683         emms
1684         movl    16(%ebx),%esp
1685         popl    %edi
1686         popl    %esi
1687         popl    %ebx
1688         popl    %ebp
1689         ret
1690 .align  64
1691 .L001table:
1692 .byte   24,24,96,24,192,120,48,216
1693 .byte   24,24,96,24,192,120,48,216
1694 .byte   35,35,140,35,5,175,70,38
1695 .byte   35,35,140,35,5,175,70,38
1696 .byte   198,198,63,198,126,249,145,184
1697 .byte   198,198,63,198,126,249,145,184
1698 .byte   232,232,135,232,19,111,205,251
1699 .byte   232,232,135,232,19,111,205,251
1700 .byte   135,135,38,135,76,161,19,203
1701 .byte   135,135,38,135,76,161,19,203
1702 .byte   184,184,218,184,169,98,109,17
1703 .byte   184,184,218,184,169,98,109,17
1704 .byte   1,1,4,1,8,5,2,9
1705 .byte   1,1,4,1,8,5,2,9
1706 .byte   79,79,33,79,66,110,158,13
1707 .byte   79,79,33,79,66,110,158,13
1708 .byte   54,54,216,54,173,238,108,155
1709 .byte   54,54,216,54,173,238,108,155
1710 .byte   166,166,162,166,89,4,81,255
1711 .byte   166,166,162,166,89,4,81,255
1712 .byte   210,210,111,210,222,189,185,12
1713 .byte   210,210,111,210,222,189,185,12
1714 .byte   245,245,243,245,251,6,247,14
1715 .byte   245,245,243,245,251,6,247,14
1716 .byte   121,121,249,121,239,128,242,150
1717 .byte   121,121,249,121,239,128,242,150
1718 .byte   111,111,161,111,95,206,222,48
1719 .byte   111,111,161,111,95,206,222,48
1720 .byte   145,145,126,145,252,239,63,109
1721 .byte   145,145,126,145,252,239,63,109
1722 .byte   82,82,85,82,170,7,164,248
1723 .byte   82,82,85,82,170,7,164,248
1724 .byte   96,96,157,96,39,253,192,71
1725 .byte   96,96,157,96,39,253,192,71
1726 .byte   188,188,202,188,137,118,101,53
1727 .byte   188,188,202,188,137,118,101,53
1728 .byte   155,155,86,155,172,205,43,55
1729 .byte   155,155,86,155,172,205,43,55
1730 .byte   142,142,2,142,4,140,1,138
1731 .byte   142,142,2,142,4,140,1,138
1732 .byte   163,163,182,163,113,21,91,210
1733 .byte   163,163,182,163,113,21,91,210
1734 .byte   12,12,48,12,96,60,24,108
1735 .byte   12,12,48,12,96,60,24,108
1736 .byte   123,123,241,123,255,138,246,132
1737 .byte   123,123,241,123,255,138,246,132
1738 .byte   53,53,212,53,181,225,106,128
1739 .byte   53,53,212,53,181,225,106,128
1740 .byte   29,29,116,29,232,105,58,245
1741 .byte   29,29,116,29,232,105,58,245
1742 .byte   224,224,167,224,83,71,221,179
1743 .byte   224,224,167,224,83,71,221,179
1744 .byte   215,215,123,215,246,172,179,33
1745 .byte   215,215,123,215,246,172,179,33
1746 .byte   194,194,47,194,94,237,153,156
1747 .byte   194,194,47,194,94,237,153,156
1748 .byte   46,46,184,46,109,150,92,67
1749 .byte   46,46,184,46,109,150,92,67
1750 .byte   75,75,49,75,98,122,150,41
1751 .byte   75,75,49,75,98,122,150,41
1752 .byte   254,254,223,254,163,33,225,93
1753 .byte   254,254,223,254,163,33,225,93
1754 .byte   87,87,65,87,130,22,174,213
1755 .byte   87,87,65,87,130,22,174,213
1756 .byte   21,21,84,21,168,65,42,189
1757 .byte   21,21,84,21,168,65,42,189
1758 .byte   119,119,193,119,159,182,238,232
1759 .byte   119,119,193,119,159,182,238,232
1760 .byte   55,55,220,55,165,235,110,146
1761 .byte   55,55,220,55,165,235,110,146
1762 .byte   229,229,179,229,123,86,215,158
1763 .byte   229,229,179,229,123,86,215,158
1764 .byte   159,159,70,159,140,217,35,19
1765 .byte   159,159,70,159,140,217,35,19
1766 .byte   240,240,231,240,211,23,253,35
1767 .byte   240,240,231,240,211,23,253,35
1768 .byte   74,74,53,74,106,127,148,32
1769 .byte   74,74,53,74,106,127,148,32
1770 .byte   218,218,79,218,158,149,169,68
1771 .byte   218,218,79,218,158,149,169,68
1772 .byte   88,88,125,88,250,37,176,162
1773 .byte   88,88,125,88,250,37,176,162
1774 .byte   201,201,3,201,6,202,143,207
1775 .byte   201,201,3,201,6,202,143,207
1776 .byte   41,41,164,41,85,141,82,124
1777 .byte   41,41,164,41,85,141,82,124
1778 .byte   10,10,40,10,80,34,20,90
1779 .byte   10,10,40,10,80,34,20,90
1780 .byte   177,177,254,177,225,79,127,80
1781 .byte   177,177,254,177,225,79,127,80
1782 .byte   160,160,186,160,105,26,93,201
1783 .byte   160,160,186,160,105,26,93,201
1784 .byte   107,107,177,107,127,218,214,20
1785 .byte   107,107,177,107,127,218,214,20
1786 .byte   133,133,46,133,92,171,23,217
1787 .byte   133,133,46,133,92,171,23,217
1788 .byte   189,189,206,189,129,115,103,60
1789 .byte   189,189,206,189,129,115,103,60
1790 .byte   93,93,105,93,210,52,186,143
1791 .byte   93,93,105,93,210,52,186,143
1792 .byte   16,16,64,16,128,80,32,144
1793 .byte   16,16,64,16,128,80,32,144
1794 .byte   244,244,247,244,243,3,245,7
1795 .byte   244,244,247,244,243,3,245,7
1796 .byte   203,203,11,203,22,192,139,221
1797 .byte   203,203,11,203,22,192,139,221
1798 .byte   62,62,248,62,237,198,124,211
1799 .byte   62,62,248,62,237,198,124,211
1800 .byte   5,5,20,5,40,17,10,45
1801 .byte   5,5,20,5,40,17,10,45
1802 .byte   103,103,129,103,31,230,206,120
1803 .byte   103,103,129,103,31,230,206,120
1804 .byte   228,228,183,228,115,83,213,151
1805 .byte   228,228,183,228,115,83,213,151
1806 .byte   39,39,156,39,37,187,78,2
1807 .byte   39,39,156,39,37,187,78,2
1808 .byte   65,65,25,65,50,88,130,115
1809 .byte   65,65,25,65,50,88,130,115
1810 .byte   139,139,22,139,44,157,11,167
1811 .byte   139,139,22,139,44,157,11,167
1812 .byte   167,167,166,167,81,1,83,246
1813 .byte   167,167,166,167,81,1,83,246
1814 .byte   125,125,233,125,207,148,250,178
1815 .byte   125,125,233,125,207,148,250,178
1816 .byte   149,149,110,149,220,251,55,73
1817 .byte   149,149,110,149,220,251,55,73
1818 .byte   216,216,71,216,142,159,173,86
1819 .byte   216,216,71,216,142,159,173,86
1820 .byte   251,251,203,251,139,48,235,112
1821 .byte   251,251,203,251,139,48,235,112
1822 .byte   238,238,159,238,35,113,193,205
1823 .byte   238,238,159,238,35,113,193,205
1824 .byte   124,124,237,124,199,145,248,187
1825 .byte   124,124,237,124,199,145,248,187
1826 .byte   102,102,133,102,23,227,204,113
1827 .byte   102,102,133,102,23,227,204,113
1828 .byte   221,221,83,221,166,142,167,123
1829 .byte   221,221,83,221,166,142,167,123
1830 .byte   23,23,92,23,184,75,46,175
1831 .byte   23,23,92,23,184,75,46,175
1832 .byte   71,71,1,71,2,70,142,69
1833 .byte   71,71,1,71,2,70,142,69
1834 .byte   158,158,66,158,132,220,33,26
1835 .byte   158,158,66,158,132,220,33,26
1836 .byte   202,202,15,202,30,197,137,212
1837 .byte   202,202,15,202,30,197,137,212
1838 .byte   45,45,180,45,117,153,90,88
1839 .byte   45,45,180,45,117,153,90,88
1840 .byte   191,191,198,191,145,121,99,46
1841 .byte   191,191,198,191,145,121,99,46
1842 .byte   7,7,28,7,56,27,14,63
1843 .byte   7,7,28,7,56,27,14,63
1844 .byte   173,173,142,173,1,35,71,172
1845 .byte   173,173,142,173,1,35,71,172
1846 .byte   90,90,117,90,234,47,180,176
1847 .byte   90,90,117,90,234,47,180,176
1848 .byte   131,131,54,131,108,181,27,239
1849 .byte   131,131,54,131,108,181,27,239
1850 .byte   51,51,204,51,133,255,102,182
1851 .byte   51,51,204,51,133,255,102,182
1852 .byte   99,99,145,99,63,242,198,92
1853 .byte   99,99,145,99,63,242,198,92
1854 .byte   2,2,8,2,16,10,4,18
1855 .byte   2,2,8,2,16,10,4,18
1856 .byte   170,170,146,170,57,56,73,147
1857 .byte   170,170,146,170,57,56,73,147
1858 .byte   113,113,217,113,175,168,226,222
1859 .byte   113,113,217,113,175,168,226,222
1860 .byte   200,200,7,200,14,207,141,198
1861 .byte   200,200,7,200,14,207,141,198
1862 .byte   25,25,100,25,200,125,50,209
1863 .byte   25,25,100,25,200,125,50,209
1864 .byte   73,73,57,73,114,112,146,59
1865 .byte   73,73,57,73,114,112,146,59
1866 .byte   217,217,67,217,134,154,175,95
1867 .byte   217,217,67,217,134,154,175,95
1868 .byte   242,242,239,242,195,29,249,49
1869 .byte   242,242,239,242,195,29,249,49
1870 .byte   227,227,171,227,75,72,219,168
1871 .byte   227,227,171,227,75,72,219,168
1872 .byte   91,91,113,91,226,42,182,185
1873 .byte   91,91,113,91,226,42,182,185
1874 .byte   136,136,26,136,52,146,13,188
1875 .byte   136,136,26,136,52,146,13,188
1876 .byte   154,154,82,154,164,200,41,62
1877 .byte   154,154,82,154,164,200,41,62
1878 .byte   38,38,152,38,45,190,76,11
1879 .byte   38,38,152,38,45,190,76,11
1880 .byte   50,50,200,50,141,250,100,191
1881 .byte   50,50,200,50,141,250,100,191
1882 .byte   176,176,250,176,233,74,125,89
1883 .byte   176,176,250,176,233,74,125,89
1884 .byte   233,233,131,233,27,106,207,242
1885 .byte   233,233,131,233,27,106,207,242
1886 .byte   15,15,60,15,120,51,30,119
1887 .byte   15,15,60,15,120,51,30,119
1888 .byte   213,213,115,213,230,166,183,51
1889 .byte   213,213,115,213,230,166,183,51
1890 .byte   128,128,58,128,116,186,29,244
1891 .byte   128,128,58,128,116,186,29,244
1892 .byte   190,190,194,190,153,124,97,39
1893 .byte   190,190,194,190,153,124,97,39
1894 .byte   205,205,19,205,38,222,135,235
1895 .byte   205,205,19,205,38,222,135,235
1896 .byte   52,52,208,52,189,228,104,137
1897 .byte   52,52,208,52,189,228,104,137
1898 .byte   72,72,61,72,122,117,144,50
1899 .byte   72,72,61,72,122,117,144,50
1900 .byte   255,255,219,255,171,36,227,84
1901 .byte   255,255,219,255,171,36,227,84
1902 .byte   122,122,245,122,247,143,244,141
1903 .byte   122,122,245,122,247,143,244,141
1904 .byte   144,144,122,144,244,234,61,100
1905 .byte   144,144,122,144,244,234,61,100
1906 .byte   95,95,97,95,194,62,190,157
1907 .byte   95,95,97,95,194,62,190,157
1908 .byte   32,32,128,32,29,160,64,61
1909 .byte   32,32,128,32,29,160,64,61
1910 .byte   104,104,189,104,103,213,208,15
1911 .byte   104,104,189,104,103,213,208,15
1912 .byte   26,26,104,26,208,114,52,202
1913 .byte   26,26,104,26,208,114,52,202
1914 .byte   174,174,130,174,25,44,65,183
1915 .byte   174,174,130,174,25,44,65,183
1916 .byte   180,180,234,180,201,94,117,125
1917 .byte   180,180,234,180,201,94,117,125
1918 .byte   84,84,77,84,154,25,168,206
1919 .byte   84,84,77,84,154,25,168,206
1920 .byte   147,147,118,147,236,229,59,127
1921 .byte   147,147,118,147,236,229,59,127
1922 .byte   34,34,136,34,13,170,68,47
1923 .byte   34,34,136,34,13,170,68,47
1924 .byte   100,100,141,100,7,233,200,99
1925 .byte   100,100,141,100,7,233,200,99
1926 .byte   241,241,227,241,219,18,255,42
1927 .byte   241,241,227,241,219,18,255,42
1928 .byte   115,115,209,115,191,162,230,204
1929 .byte   115,115,209,115,191,162,230,204
1930 .byte   18,18,72,18,144,90,36,130
1931 .byte   18,18,72,18,144,90,36,130
1932 .byte   64,64,29,64,58,93,128,122
1933 .byte   64,64,29,64,58,93,128,122
1934 .byte   8,8,32,8,64,40,16,72
1935 .byte   8,8,32,8,64,40,16,72
1936 .byte   195,195,43,195,86,232,155,149
1937 .byte   195,195,43,195,86,232,155,149
1938 .byte   236,236,151,236,51,123,197,223
1939 .byte   236,236,151,236,51,123,197,223
1940 .byte   219,219,75,219,150,144,171,77
1941 .byte   219,219,75,219,150,144,171,77
1942 .byte   161,161,190,161,97,31,95,192
1943 .byte   161,161,190,161,97,31,95,192
1944 .byte   141,141,14,141,28,131,7,145
1945 .byte   141,141,14,141,28,131,7,145
1946 .byte   61,61,244,61,245,201,122,200
1947 .byte   61,61,244,61,245,201,122,200
1948 .byte   151,151,102,151,204,241,51,91
1949 .byte   151,151,102,151,204,241,51,91
1950 .byte   0,0,0,0,0,0,0,0
1951 .byte   0,0,0,0,0,0,0,0
1952 .byte   207,207,27,207,54,212,131,249
1953 .byte   207,207,27,207,54,212,131,249
1954 .byte   43,43,172,43,69,135,86,110
1955 .byte   43,43,172,43,69,135,86,110
1956 .byte   118,118,197,118,151,179,236,225
1957 .byte   118,118,197,118,151,179,236,225
1958 .byte   130,130,50,130,100,176,25,230
1959 .byte   130,130,50,130,100,176,25,230
1960 .byte   214,214,127,214,254,169,177,40
1961 .byte   214,214,127,214,254,169,177,40
1962 .byte   27,27,108,27,216,119,54,195
1963 .byte   27,27,108,27,216,119,54,195
1964 .byte   181,181,238,181,193,91,119,116
1965 .byte   181,181,238,181,193,91,119,116
1966 .byte   175,175,134,175,17,41,67,190
1967 .byte   175,175,134,175,17,41,67,190
1968 .byte   106,106,181,106,119,223,212,29
1969 .byte   106,106,181,106,119,223,212,29
1970 .byte   80,80,93,80,186,13,160,234
1971 .byte   80,80,93,80,186,13,160,234
1972 .byte   69,69,9,69,18,76,138,87
1973 .byte   69,69,9,69,18,76,138,87
1974 .byte   243,243,235,243,203,24,251,56
1975 .byte   243,243,235,243,203,24,251,56
1976 .byte   48,48,192,48,157,240,96,173
1977 .byte   48,48,192,48,157,240,96,173
1978 .byte   239,239,155,239,43,116,195,196
1979 .byte   239,239,155,239,43,116,195,196
1980 .byte   63,63,252,63,229,195,126,218
1981 .byte   63,63,252,63,229,195,126,218
1982 .byte   85,85,73,85,146,28,170,199
1983 .byte   85,85,73,85,146,28,170,199
1984 .byte   162,162,178,162,121,16,89,219
1985 .byte   162,162,178,162,121,16,89,219
1986 .byte   234,234,143,234,3,101,201,233
1987 .byte   234,234,143,234,3,101,201,233
1988 .byte   101,101,137,101,15,236,202,106
1989 .byte   101,101,137,101,15,236,202,106
1990 .byte   186,186,210,186,185,104,105,3
1991 .byte   186,186,210,186,185,104,105,3
1992 .byte   47,47,188,47,101,147,94,74
1993 .byte   47,47,188,47,101,147,94,74
1994 .byte   192,192,39,192,78,231,157,142
1995 .byte   192,192,39,192,78,231,157,142
1996 .byte   222,222,95,222,190,129,161,96
1997 .byte   222,222,95,222,190,129,161,96
1998 .byte   28,28,112,28,224,108,56,252
1999 .byte   28,28,112,28,224,108,56,252
2000 .byte   253,253,211,253,187,46,231,70
2001 .byte   253,253,211,253,187,46,231,70
2002 .byte   77,77,41,77,82,100,154,31
2003 .byte   77,77,41,77,82,100,154,31
2004 .byte   146,146,114,146,228,224,57,118
2005 .byte   146,146,114,146,228,224,57,118
2006 .byte   117,117,201,117,143,188,234,250
2007 .byte   117,117,201,117,143,188,234,250
2008 .byte   6,6,24,6,48,30,12,54
2009 .byte   6,6,24,6,48,30,12,54
2010 .byte   138,138,18,138,36,152,9,174
2011 .byte   138,138,18,138,36,152,9,174
2012 .byte   178,178,242,178,249,64,121,75
2013 .byte   178,178,242,178,249,64,121,75
2014 .byte   230,230,191,230,99,89,209,133
2015 .byte   230,230,191,230,99,89,209,133
2016 .byte   14,14,56,14,112,54,28,126
2017 .byte   14,14,56,14,112,54,28,126
2018 .byte   31,31,124,31,248,99,62,231
2019 .byte   31,31,124,31,248,99,62,231
2020 .byte   98,98,149,98,55,247,196,85
2021 .byte   98,98,149,98,55,247,196,85
2022 .byte   212,212,119,212,238,163,181,58
2023 .byte   212,212,119,212,238,163,181,58
2024 .byte   168,168,154,168,41,50,77,129
2025 .byte   168,168,154,168,41,50,77,129
2026 .byte   150,150,98,150,196,244,49,82
2027 .byte   150,150,98,150,196,244,49,82
2028 .byte   249,249,195,249,155,58,239,98
2029 .byte   249,249,195,249,155,58,239,98
2030 .byte   197,197,51,197,102,246,151,163
2031 .byte   197,197,51,197,102,246,151,163
2032 .byte   37,37,148,37,53,177,74,16
2033 .byte   37,37,148,37,53,177,74,16
2034 .byte   89,89,121,89,242,32,178,171
2035 .byte   89,89,121,89,242,32,178,171
2036 .byte   132,132,42,132,84,174,21,208
2037 .byte   132,132,42,132,84,174,21,208
2038 .byte   114,114,213,114,183,167,228,197
2039 .byte   114,114,213,114,183,167,228,197
2040 .byte   57,57,228,57,213,221,114,236
2041 .byte   57,57,228,57,213,221,114,236
2042 .byte   76,76,45,76,90,97,152,22
2043 .byte   76,76,45,76,90,97,152,22
2044 .byte   94,94,101,94,202,59,188,148
2045 .byte   94,94,101,94,202,59,188,148
2046 .byte   120,120,253,120,231,133,240,159
2047 .byte   120,120,253,120,231,133,240,159
2048 .byte   56,56,224,56,221,216,112,229
2049 .byte   56,56,224,56,221,216,112,229
2050 .byte   140,140,10,140,20,134,5,152
2051 .byte   140,140,10,140,20,134,5,152
2052 .byte   209,209,99,209,198,178,191,23
2053 .byte   209,209,99,209,198,178,191,23
2054 .byte   165,165,174,165,65,11,87,228
2055 .byte   165,165,174,165,65,11,87,228
2056 .byte   226,226,175,226,67,77,217,161
2057 .byte   226,226,175,226,67,77,217,161
2058 .byte   97,97,153,97,47,248,194,78
2059 .byte   97,97,153,97,47,248,194,78
2060 .byte   179,179,246,179,241,69,123,66
2061 .byte   179,179,246,179,241,69,123,66
2062 .byte   33,33,132,33,21,165,66,52
2063 .byte   33,33,132,33,21,165,66,52
2064 .byte   156,156,74,156,148,214,37,8
2065 .byte   156,156,74,156,148,214,37,8
2066 .byte   30,30,120,30,240,102,60,238
2067 .byte   30,30,120,30,240,102,60,238
2068 .byte   67,67,17,67,34,82,134,97
2069 .byte   67,67,17,67,34,82,134,97
2070 .byte   199,199,59,199,118,252,147,177
2071 .byte   199,199,59,199,118,252,147,177
2072 .byte   252,252,215,252,179,43,229,79
2073 .byte   252,252,215,252,179,43,229,79
2074 .byte   4,4,16,4,32,20,8,36
2075 .byte   4,4,16,4,32,20,8,36
2076 .byte   81,81,89,81,178,8,162,227
2077 .byte   81,81,89,81,178,8,162,227
2078 .byte   153,153,94,153,188,199,47,37
2079 .byte   153,153,94,153,188,199,47,37
2080 .byte   109,109,169,109,79,196,218,34
2081 .byte   109,109,169,109,79,196,218,34
2082 .byte   13,13,52,13,104,57,26,101
2083 .byte   13,13,52,13,104,57,26,101
2084 .byte   250,250,207,250,131,53,233,121
2085 .byte   250,250,207,250,131,53,233,121
2086 .byte   223,223,91,223,182,132,163,105
2087 .byte   223,223,91,223,182,132,163,105
2088 .byte   126,126,229,126,215,155,252,169
2089 .byte   126,126,229,126,215,155,252,169
2090 .byte   36,36,144,36,61,180,72,25
2091 .byte   36,36,144,36,61,180,72,25
2092 .byte   59,59,236,59,197,215,118,254
2093 .byte   59,59,236,59,197,215,118,254
2094 .byte   171,171,150,171,49,61,75,154
2095 .byte   171,171,150,171,49,61,75,154
2096 .byte   206,206,31,206,62,209,129,240
2097 .byte   206,206,31,206,62,209,129,240
2098 .byte   17,17,68,17,136,85,34,153
2099 .byte   17,17,68,17,136,85,34,153
2100 .byte   143,143,6,143,12,137,3,131
2101 .byte   143,143,6,143,12,137,3,131
2102 .byte   78,78,37,78,74,107,156,4
2103 .byte   78,78,37,78,74,107,156,4
2104 .byte   183,183,230,183,209,81,115,102
2105 .byte   183,183,230,183,209,81,115,102
2106 .byte   235,235,139,235,11,96,203,224
2107 .byte   235,235,139,235,11,96,203,224
2108 .byte   60,60,240,60,253,204,120,193
2109 .byte   60,60,240,60,253,204,120,193
2110 .byte   129,129,62,129,124,191,31,253
2111 .byte   129,129,62,129,124,191,31,253
2112 .byte   148,148,106,148,212,254,53,64
2113 .byte   148,148,106,148,212,254,53,64
2114 .byte   247,247,251,247,235,12,243,28
2115 .byte   247,247,251,247,235,12,243,28
2116 .byte   185,185,222,185,161,103,111,24
2117 .byte   185,185,222,185,161,103,111,24
2118 .byte   19,19,76,19,152,95,38,139
2119 .byte   19,19,76,19,152,95,38,139
2120 .byte   44,44,176,44,125,156,88,81
2121 .byte   44,44,176,44,125,156,88,81
2122 .byte   211,211,107,211,214,184,187,5
2123 .byte   211,211,107,211,214,184,187,5
2124 .byte   231,231,187,231,107,92,211,140
2125 .byte   231,231,187,231,107,92,211,140
2126 .byte   110,110,165,110,87,203,220,57
2127 .byte   110,110,165,110,87,203,220,57
2128 .byte   196,196,55,196,110,243,149,170
2129 .byte   196,196,55,196,110,243,149,170
2130 .byte   3,3,12,3,24,15,6,27
2131 .byte   3,3,12,3,24,15,6,27
2132 .byte   86,86,69,86,138,19,172,220
2133 .byte   86,86,69,86,138,19,172,220
2134 .byte   68,68,13,68,26,73,136,94
2135 .byte   68,68,13,68,26,73,136,94
2136 .byte   127,127,225,127,223,158,254,160
2137 .byte   127,127,225,127,223,158,254,160
2138 .byte   169,169,158,169,33,55,79,136
2139 .byte   169,169,158,169,33,55,79,136
2140 .byte   42,42,168,42,77,130,84,103
2141 .byte   42,42,168,42,77,130,84,103
2142 .byte   187,187,214,187,177,109,107,10
2143 .byte   187,187,214,187,177,109,107,10
2144 .byte   193,193,35,193,70,226,159,135
2145 .byte   193,193,35,193,70,226,159,135
2146 .byte   83,83,81,83,162,2,166,241
2147 .byte   83,83,81,83,162,2,166,241
2148 .byte   220,220,87,220,174,139,165,114
2149 .byte   220,220,87,220,174,139,165,114
2150 .byte   11,11,44,11,88,39,22,83
2151 .byte   11,11,44,11,88,39,22,83
2152 .byte   157,157,78,157,156,211,39,1
2153 .byte   157,157,78,157,156,211,39,1
2154 .byte   108,108,173,108,71,193,216,43
2155 .byte   108,108,173,108,71,193,216,43
2156 .byte   49,49,196,49,149,245,98,164
2157 .byte   49,49,196,49,149,245,98,164
2158 .byte   116,116,205,116,135,185,232,243
2159 .byte   116,116,205,116,135,185,232,243
2160 .byte   246,246,255,246,227,9,241,21
2161 .byte   246,246,255,246,227,9,241,21
2162 .byte   70,70,5,70,10,67,140,76
2163 .byte   70,70,5,70,10,67,140,76
2164 .byte   172,172,138,172,9,38,69,165
2165 .byte   172,172,138,172,9,38,69,165
2166 .byte   137,137,30,137,60,151,15,181
2167 .byte   137,137,30,137,60,151,15,181
2168 .byte   20,20,80,20,160,68,40,180
2169 .byte   20,20,80,20,160,68,40,180
2170 .byte   225,225,163,225,91,66,223,186
2171 .byte   225,225,163,225,91,66,223,186
2172 .byte   22,22,88,22,176,78,44,166
2173 .byte   22,22,88,22,176,78,44,166
2174 .byte   58,58,232,58,205,210,116,247
2175 .byte   58,58,232,58,205,210,116,247
2176 .byte   105,105,185,105,111,208,210,6
2177 .byte   105,105,185,105,111,208,210,6
2178 .byte   9,9,36,9,72,45,18,65
2179 .byte   9,9,36,9,72,45,18,65
2180 .byte   112,112,221,112,167,173,224,215
2181 .byte   112,112,221,112,167,173,224,215
2182 .byte   182,182,226,182,217,84,113,111
2183 .byte   182,182,226,182,217,84,113,111
2184 .byte   208,208,103,208,206,183,189,30
2185 .byte   208,208,103,208,206,183,189,30
2186 .byte   237,237,147,237,59,126,199,214
2187 .byte   237,237,147,237,59,126,199,214
2188 .byte   204,204,23,204,46,219,133,226
2189 .byte   204,204,23,204,46,219,133,226
2190 .byte   66,66,21,66,42,87,132,104
2191 .byte   66,66,21,66,42,87,132,104
2192 .byte   152,152,90,152,180,194,45,44
2193 .byte   152,152,90,152,180,194,45,44
2194 .byte   164,164,170,164,73,14,85,237
2195 .byte   164,164,170,164,73,14,85,237
2196 .byte   40,40,160,40,93,136,80,117
2197 .byte   40,40,160,40,93,136,80,117
2198 .byte   92,92,109,92,218,49,184,134
2199 .byte   92,92,109,92,218,49,184,134
2200 .byte   248,248,199,248,147,63,237,107
2201 .byte   248,248,199,248,147,63,237,107
2202 .byte   134,134,34,134,68,164,17,194
2203 .byte   134,134,34,134,68,164,17,194
2204 .byte   24,35,198,232,135,184,1,79
2205 .byte   54,166,210,245,121,111,145,82
2206 .byte   96,188,155,142,163,12,123,53
2207 .byte   29,224,215,194,46,75,254,87
2208 .byte   21,119,55,229,159,240,74,218
2209 .byte   88,201,41,10,177,160,107,133
2210 .byte   189,93,16,244,203,62,5,103
2211 .byte   228,39,65,139,167,125,149,216
2212 .byte   251,238,124,102,221,23,71,158
2213 .byte   202,45,191,7,173,90,131,51
2214 .size   whirlpool_block_mmx,.-.L_whirlpool_block_mmx_begin
2215 #endif