Remove remaining OSI protocol support.
[dragonfly.git] / secure / lib / libcrypto / asm / cmll-x86.s
1 .file   "cmll-586.s"
2 .text
3 .globl  Camellia_EncryptBlock_Rounds
4 .type   Camellia_EncryptBlock_Rounds,@function
5 .align  16
6 Camellia_EncryptBlock_Rounds:
7 .L_Camellia_EncryptBlock_Rounds_begin:
8         pushl   %ebp
9         pushl   %ebx
10         pushl   %esi
11         pushl   %edi
12         movl    20(%esp),%eax
13         movl    24(%esp),%esi
14         movl    28(%esp),%edi
15         movl    %esp,%ebx
16         subl    $28,%esp
17         andl    $-64,%esp
18         leal    -127(%edi),%ecx
19         subl    %esp,%ecx
20         negl    %ecx
21         andl    $960,%ecx
22         subl    %ecx,%esp
23         addl    $4,%esp
24         shll    $6,%eax
25         leal    (%edi,%eax,1),%eax
26         movl    %ebx,20(%esp)
27         movl    %eax,16(%esp)
28         call    .L000pic_point
29 .L000pic_point:
30         popl    %ebp
31         leal    .LCamellia_SBOX-.L000pic_point(%ebp),%ebp
32         movl    (%esi),%eax
33         movl    4(%esi),%ebx
34         movl    8(%esi),%ecx
35         bswap   %eax
36         movl    12(%esi),%edx
37         bswap   %ebx
38         bswap   %ecx
39         bswap   %edx
40         call    _x86_Camellia_encrypt
41         movl    20(%esp),%esp
42         bswap   %eax
43         movl    32(%esp),%esi
44         bswap   %ebx
45         bswap   %ecx
46         bswap   %edx
47         movl    %eax,(%esi)
48         movl    %ebx,4(%esi)
49         movl    %ecx,8(%esi)
50         movl    %edx,12(%esi)
51         popl    %edi
52         popl    %esi
53         popl    %ebx
54         popl    %ebp
55         ret
56 .size   Camellia_EncryptBlock_Rounds,.-.L_Camellia_EncryptBlock_Rounds_begin
57 .globl  Camellia_EncryptBlock
58 .type   Camellia_EncryptBlock,@function
59 .align  16
60 Camellia_EncryptBlock:
61 .L_Camellia_EncryptBlock_begin:
62         movl    $128,%eax
63         subl    4(%esp),%eax
64         movl    $3,%eax
65         adcl    $0,%eax
66         movl    %eax,4(%esp)
67         jmp     .L_Camellia_EncryptBlock_Rounds_begin
68 .size   Camellia_EncryptBlock,.-.L_Camellia_EncryptBlock_begin
69 .globl  Camellia_encrypt
70 .type   Camellia_encrypt,@function
71 .align  16
72 Camellia_encrypt:
73 .L_Camellia_encrypt_begin:
74         pushl   %ebp
75         pushl   %ebx
76         pushl   %esi
77         pushl   %edi
78         movl    20(%esp),%esi
79         movl    28(%esp),%edi
80         movl    %esp,%ebx
81         subl    $28,%esp
82         andl    $-64,%esp
83         movl    272(%edi),%eax
84         leal    -127(%edi),%ecx
85         subl    %esp,%ecx
86         negl    %ecx
87         andl    $960,%ecx
88         subl    %ecx,%esp
89         addl    $4,%esp
90         shll    $6,%eax
91         leal    (%edi,%eax,1),%eax
92         movl    %ebx,20(%esp)
93         movl    %eax,16(%esp)
94         call    .L001pic_point
95 .L001pic_point:
96         popl    %ebp
97         leal    .LCamellia_SBOX-.L001pic_point(%ebp),%ebp
98         movl    (%esi),%eax
99         movl    4(%esi),%ebx
100         movl    8(%esi),%ecx
101         bswap   %eax
102         movl    12(%esi),%edx
103         bswap   %ebx
104         bswap   %ecx
105         bswap   %edx
106         call    _x86_Camellia_encrypt
107         movl    20(%esp),%esp
108         bswap   %eax
109         movl    24(%esp),%esi
110         bswap   %ebx
111         bswap   %ecx
112         bswap   %edx
113         movl    %eax,(%esi)
114         movl    %ebx,4(%esi)
115         movl    %ecx,8(%esi)
116         movl    %edx,12(%esi)
117         popl    %edi
118         popl    %esi
119         popl    %ebx
120         popl    %ebp
121         ret
122 .size   Camellia_encrypt,.-.L_Camellia_encrypt_begin
123 .type   _x86_Camellia_encrypt,@function
124 .align  16
125 _x86_Camellia_encrypt:
126         xorl    (%edi),%eax
127         xorl    4(%edi),%ebx
128         xorl    8(%edi),%ecx
129         xorl    12(%edi),%edx
130         movl    16(%edi),%esi
131         movl    %eax,4(%esp)
132         movl    %ebx,8(%esp)
133         movl    %ecx,12(%esp)
134         movl    %edx,16(%esp)
135 .align  16
136 .L002loop:
137         xorl    %esi,%eax
138         xorl    20(%edi),%ebx
139         movzbl  %ah,%esi
140         movl    2052(%ebp,%esi,8),%edx
141         movzbl  %al,%esi
142         xorl    4(%ebp,%esi,8),%edx
143         shrl    $16,%eax
144         movzbl  %bl,%esi
145         movl    (%ebp,%esi,8),%ecx
146         movzbl  %ah,%esi
147         xorl    (%ebp,%esi,8),%edx
148         movzbl  %bh,%esi
149         xorl    4(%ebp,%esi,8),%ecx
150         shrl    $16,%ebx
151         movzbl  %al,%eax
152         xorl    2048(%ebp,%eax,8),%edx
153         movzbl  %bh,%esi
154         movl    16(%esp),%eax
155         xorl    %edx,%ecx
156         rorl    $8,%edx
157         xorl    2048(%ebp,%esi,8),%ecx
158         movzbl  %bl,%esi
159         movl    12(%esp),%ebx
160         xorl    %eax,%edx
161         xorl    2052(%ebp,%esi,8),%ecx
162         movl    24(%edi),%esi
163         xorl    %ecx,%edx
164         movl    %edx,16(%esp)
165         xorl    %ebx,%ecx
166         movl    %ecx,12(%esp)
167         xorl    %esi,%ecx
168         xorl    28(%edi),%edx
169         movzbl  %ch,%esi
170         movl    2052(%ebp,%esi,8),%ebx
171         movzbl  %cl,%esi
172         xorl    4(%ebp,%esi,8),%ebx
173         shrl    $16,%ecx
174         movzbl  %dl,%esi
175         movl    (%ebp,%esi,8),%eax
176         movzbl  %ch,%esi
177         xorl    (%ebp,%esi,8),%ebx
178         movzbl  %dh,%esi
179         xorl    4(%ebp,%esi,8),%eax
180         shrl    $16,%edx
181         movzbl  %cl,%ecx
182         xorl    2048(%ebp,%ecx,8),%ebx
183         movzbl  %dh,%esi
184         movl    8(%esp),%ecx
185         xorl    %ebx,%eax
186         rorl    $8,%ebx
187         xorl    2048(%ebp,%esi,8),%eax
188         movzbl  %dl,%esi
189         movl    4(%esp),%edx
190         xorl    %ecx,%ebx
191         xorl    2052(%ebp,%esi,8),%eax
192         movl    32(%edi),%esi
193         xorl    %eax,%ebx
194         movl    %ebx,8(%esp)
195         xorl    %edx,%eax
196         movl    %eax,4(%esp)
197         xorl    %esi,%eax
198         xorl    36(%edi),%ebx
199         movzbl  %ah,%esi
200         movl    2052(%ebp,%esi,8),%edx
201         movzbl  %al,%esi
202         xorl    4(%ebp,%esi,8),%edx
203         shrl    $16,%eax
204         movzbl  %bl,%esi
205         movl    (%ebp,%esi,8),%ecx
206         movzbl  %ah,%esi
207         xorl    (%ebp,%esi,8),%edx
208         movzbl  %bh,%esi
209         xorl    4(%ebp,%esi,8),%ecx
210         shrl    $16,%ebx
211         movzbl  %al,%eax
212         xorl    2048(%ebp,%eax,8),%edx
213         movzbl  %bh,%esi
214         movl    16(%esp),%eax
215         xorl    %edx,%ecx
216         rorl    $8,%edx
217         xorl    2048(%ebp,%esi,8),%ecx
218         movzbl  %bl,%esi
219         movl    12(%esp),%ebx
220         xorl    %eax,%edx
221         xorl    2052(%ebp,%esi,8),%ecx
222         movl    40(%edi),%esi
223         xorl    %ecx,%edx
224         movl    %edx,16(%esp)
225         xorl    %ebx,%ecx
226         movl    %ecx,12(%esp)
227         xorl    %esi,%ecx
228         xorl    44(%edi),%edx
229         movzbl  %ch,%esi
230         movl    2052(%ebp,%esi,8),%ebx
231         movzbl  %cl,%esi
232         xorl    4(%ebp,%esi,8),%ebx
233         shrl    $16,%ecx
234         movzbl  %dl,%esi
235         movl    (%ebp,%esi,8),%eax
236         movzbl  %ch,%esi
237         xorl    (%ebp,%esi,8),%ebx
238         movzbl  %dh,%esi
239         xorl    4(%ebp,%esi,8),%eax
240         shrl    $16,%edx
241         movzbl  %cl,%ecx
242         xorl    2048(%ebp,%ecx,8),%ebx
243         movzbl  %dh,%esi
244         movl    8(%esp),%ecx
245         xorl    %ebx,%eax
246         rorl    $8,%ebx
247         xorl    2048(%ebp,%esi,8),%eax
248         movzbl  %dl,%esi
249         movl    4(%esp),%edx
250         xorl    %ecx,%ebx
251         xorl    2052(%ebp,%esi,8),%eax
252         movl    48(%edi),%esi
253         xorl    %eax,%ebx
254         movl    %ebx,8(%esp)
255         xorl    %edx,%eax
256         movl    %eax,4(%esp)
257         xorl    %esi,%eax
258         xorl    52(%edi),%ebx
259         movzbl  %ah,%esi
260         movl    2052(%ebp,%esi,8),%edx
261         movzbl  %al,%esi
262         xorl    4(%ebp,%esi,8),%edx
263         shrl    $16,%eax
264         movzbl  %bl,%esi
265         movl    (%ebp,%esi,8),%ecx
266         movzbl  %ah,%esi
267         xorl    (%ebp,%esi,8),%edx
268         movzbl  %bh,%esi
269         xorl    4(%ebp,%esi,8),%ecx
270         shrl    $16,%ebx
271         movzbl  %al,%eax
272         xorl    2048(%ebp,%eax,8),%edx
273         movzbl  %bh,%esi
274         movl    16(%esp),%eax
275         xorl    %edx,%ecx
276         rorl    $8,%edx
277         xorl    2048(%ebp,%esi,8),%ecx
278         movzbl  %bl,%esi
279         movl    12(%esp),%ebx
280         xorl    %eax,%edx
281         xorl    2052(%ebp,%esi,8),%ecx
282         movl    56(%edi),%esi
283         xorl    %ecx,%edx
284         movl    %edx,16(%esp)
285         xorl    %ebx,%ecx
286         movl    %ecx,12(%esp)
287         xorl    %esi,%ecx
288         xorl    60(%edi),%edx
289         movzbl  %ch,%esi
290         movl    2052(%ebp,%esi,8),%ebx
291         movzbl  %cl,%esi
292         xorl    4(%ebp,%esi,8),%ebx
293         shrl    $16,%ecx
294         movzbl  %dl,%esi
295         movl    (%ebp,%esi,8),%eax
296         movzbl  %ch,%esi
297         xorl    (%ebp,%esi,8),%ebx
298         movzbl  %dh,%esi
299         xorl    4(%ebp,%esi,8),%eax
300         shrl    $16,%edx
301         movzbl  %cl,%ecx
302         xorl    2048(%ebp,%ecx,8),%ebx
303         movzbl  %dh,%esi
304         movl    8(%esp),%ecx
305         xorl    %ebx,%eax
306         rorl    $8,%ebx
307         xorl    2048(%ebp,%esi,8),%eax
308         movzbl  %dl,%esi
309         movl    4(%esp),%edx
310         xorl    %ecx,%ebx
311         xorl    2052(%ebp,%esi,8),%eax
312         movl    64(%edi),%esi
313         xorl    %eax,%ebx
314         movl    %ebx,8(%esp)
315         xorl    %edx,%eax
316         movl    %eax,4(%esp)
317         addl    $64,%edi
318         cmpl    20(%esp),%edi
319         je      .L003done
320         andl    %eax,%esi
321         movl    16(%esp),%edx
322         roll    $1,%esi
323         movl    %edx,%ecx
324         xorl    %esi,%ebx
325         orl     12(%edi),%ecx
326         movl    %ebx,8(%esp)
327         xorl    12(%esp),%ecx
328         movl    4(%edi),%esi
329         movl    %ecx,12(%esp)
330         orl     %ebx,%esi
331         andl    8(%edi),%ecx
332         xorl    %esi,%eax
333         roll    $1,%ecx
334         movl    %eax,4(%esp)
335         xorl    %ecx,%edx
336         movl    16(%edi),%esi
337         movl    %edx,16(%esp)
338         jmp     .L002loop
339 .align  8
340 .L003done:
341         movl    %eax,%ecx
342         movl    %ebx,%edx
343         movl    12(%esp),%eax
344         movl    16(%esp),%ebx
345         xorl    %esi,%eax
346         xorl    4(%edi),%ebx
347         xorl    8(%edi),%ecx
348         xorl    12(%edi),%edx
349         ret
350 .size   _x86_Camellia_encrypt,.-_x86_Camellia_encrypt
351 .globl  Camellia_DecryptBlock_Rounds
352 .type   Camellia_DecryptBlock_Rounds,@function
353 .align  16
354 Camellia_DecryptBlock_Rounds:
355 .L_Camellia_DecryptBlock_Rounds_begin:
356         pushl   %ebp
357         pushl   %ebx
358         pushl   %esi
359         pushl   %edi
360         movl    20(%esp),%eax
361         movl    24(%esp),%esi
362         movl    28(%esp),%edi
363         movl    %esp,%ebx
364         subl    $28,%esp
365         andl    $-64,%esp
366         leal    -127(%edi),%ecx
367         subl    %esp,%ecx
368         negl    %ecx
369         andl    $960,%ecx
370         subl    %ecx,%esp
371         addl    $4,%esp
372         shll    $6,%eax
373         movl    %edi,16(%esp)
374         leal    (%edi,%eax,1),%edi
375         movl    %ebx,20(%esp)
376         call    .L004pic_point
377 .L004pic_point:
378         popl    %ebp
379         leal    .LCamellia_SBOX-.L004pic_point(%ebp),%ebp
380         movl    (%esi),%eax
381         movl    4(%esi),%ebx
382         movl    8(%esi),%ecx
383         bswap   %eax
384         movl    12(%esi),%edx
385         bswap   %ebx
386         bswap   %ecx
387         bswap   %edx
388         call    _x86_Camellia_decrypt
389         movl    20(%esp),%esp
390         bswap   %eax
391         movl    32(%esp),%esi
392         bswap   %ebx
393         bswap   %ecx
394         bswap   %edx
395         movl    %eax,(%esi)
396         movl    %ebx,4(%esi)
397         movl    %ecx,8(%esi)
398         movl    %edx,12(%esi)
399         popl    %edi
400         popl    %esi
401         popl    %ebx
402         popl    %ebp
403         ret
404 .size   Camellia_DecryptBlock_Rounds,.-.L_Camellia_DecryptBlock_Rounds_begin
405 .globl  Camellia_DecryptBlock
406 .type   Camellia_DecryptBlock,@function
407 .align  16
408 Camellia_DecryptBlock:
409 .L_Camellia_DecryptBlock_begin:
410         movl    $128,%eax
411         subl    4(%esp),%eax
412         movl    $3,%eax
413         adcl    $0,%eax
414         movl    %eax,4(%esp)
415         jmp     .L_Camellia_DecryptBlock_Rounds_begin
416 .size   Camellia_DecryptBlock,.-.L_Camellia_DecryptBlock_begin
417 .globl  Camellia_decrypt
418 .type   Camellia_decrypt,@function
419 .align  16
420 Camellia_decrypt:
421 .L_Camellia_decrypt_begin:
422         pushl   %ebp
423         pushl   %ebx
424         pushl   %esi
425         pushl   %edi
426         movl    20(%esp),%esi
427         movl    28(%esp),%edi
428         movl    %esp,%ebx
429         subl    $28,%esp
430         andl    $-64,%esp
431         movl    272(%edi),%eax
432         leal    -127(%edi),%ecx
433         subl    %esp,%ecx
434         negl    %ecx
435         andl    $960,%ecx
436         subl    %ecx,%esp
437         addl    $4,%esp
438         shll    $6,%eax
439         movl    %edi,16(%esp)
440         leal    (%edi,%eax,1),%edi
441         movl    %ebx,20(%esp)
442         call    .L005pic_point
443 .L005pic_point:
444         popl    %ebp
445         leal    .LCamellia_SBOX-.L005pic_point(%ebp),%ebp
446         movl    (%esi),%eax
447         movl    4(%esi),%ebx
448         movl    8(%esi),%ecx
449         bswap   %eax
450         movl    12(%esi),%edx
451         bswap   %ebx
452         bswap   %ecx
453         bswap   %edx
454         call    _x86_Camellia_decrypt
455         movl    20(%esp),%esp
456         bswap   %eax
457         movl    24(%esp),%esi
458         bswap   %ebx
459         bswap   %ecx
460         bswap   %edx
461         movl    %eax,(%esi)
462         movl    %ebx,4(%esi)
463         movl    %ecx,8(%esi)
464         movl    %edx,12(%esi)
465         popl    %edi
466         popl    %esi
467         popl    %ebx
468         popl    %ebp
469         ret
470 .size   Camellia_decrypt,.-.L_Camellia_decrypt_begin
471 .type   _x86_Camellia_decrypt,@function
472 .align  16
473 _x86_Camellia_decrypt:
474         xorl    (%edi),%eax
475         xorl    4(%edi),%ebx
476         xorl    8(%edi),%ecx
477         xorl    12(%edi),%edx
478         movl    -8(%edi),%esi
479         movl    %eax,4(%esp)
480         movl    %ebx,8(%esp)
481         movl    %ecx,12(%esp)
482         movl    %edx,16(%esp)
483 .align  16
484 .L006loop:
485         xorl    %esi,%eax
486         xorl    -4(%edi),%ebx
487         movzbl  %ah,%esi
488         movl    2052(%ebp,%esi,8),%edx
489         movzbl  %al,%esi
490         xorl    4(%ebp,%esi,8),%edx
491         shrl    $16,%eax
492         movzbl  %bl,%esi
493         movl    (%ebp,%esi,8),%ecx
494         movzbl  %ah,%esi
495         xorl    (%ebp,%esi,8),%edx
496         movzbl  %bh,%esi
497         xorl    4(%ebp,%esi,8),%ecx
498         shrl    $16,%ebx
499         movzbl  %al,%eax
500         xorl    2048(%ebp,%eax,8),%edx
501         movzbl  %bh,%esi
502         movl    16(%esp),%eax
503         xorl    %edx,%ecx
504         rorl    $8,%edx
505         xorl    2048(%ebp,%esi,8),%ecx
506         movzbl  %bl,%esi
507         movl    12(%esp),%ebx
508         xorl    %eax,%edx
509         xorl    2052(%ebp,%esi,8),%ecx
510         movl    -16(%edi),%esi
511         xorl    %ecx,%edx
512         movl    %edx,16(%esp)
513         xorl    %ebx,%ecx
514         movl    %ecx,12(%esp)
515         xorl    %esi,%ecx
516         xorl    -12(%edi),%edx
517         movzbl  %ch,%esi
518         movl    2052(%ebp,%esi,8),%ebx
519         movzbl  %cl,%esi
520         xorl    4(%ebp,%esi,8),%ebx
521         shrl    $16,%ecx
522         movzbl  %dl,%esi
523         movl    (%ebp,%esi,8),%eax
524         movzbl  %ch,%esi
525         xorl    (%ebp,%esi,8),%ebx
526         movzbl  %dh,%esi
527         xorl    4(%ebp,%esi,8),%eax
528         shrl    $16,%edx
529         movzbl  %cl,%ecx
530         xorl    2048(%ebp,%ecx,8),%ebx
531         movzbl  %dh,%esi
532         movl    8(%esp),%ecx
533         xorl    %ebx,%eax
534         rorl    $8,%ebx
535         xorl    2048(%ebp,%esi,8),%eax
536         movzbl  %dl,%esi
537         movl    4(%esp),%edx
538         xorl    %ecx,%ebx
539         xorl    2052(%ebp,%esi,8),%eax
540         movl    -24(%edi),%esi
541         xorl    %eax,%ebx
542         movl    %ebx,8(%esp)
543         xorl    %edx,%eax
544         movl    %eax,4(%esp)
545         xorl    %esi,%eax
546         xorl    -20(%edi),%ebx
547         movzbl  %ah,%esi
548         movl    2052(%ebp,%esi,8),%edx
549         movzbl  %al,%esi
550         xorl    4(%ebp,%esi,8),%edx
551         shrl    $16,%eax
552         movzbl  %bl,%esi
553         movl    (%ebp,%esi,8),%ecx
554         movzbl  %ah,%esi
555         xorl    (%ebp,%esi,8),%edx
556         movzbl  %bh,%esi
557         xorl    4(%ebp,%esi,8),%ecx
558         shrl    $16,%ebx
559         movzbl  %al,%eax
560         xorl    2048(%ebp,%eax,8),%edx
561         movzbl  %bh,%esi
562         movl    16(%esp),%eax
563         xorl    %edx,%ecx
564         rorl    $8,%edx
565         xorl    2048(%ebp,%esi,8),%ecx
566         movzbl  %bl,%esi
567         movl    12(%esp),%ebx
568         xorl    %eax,%edx
569         xorl    2052(%ebp,%esi,8),%ecx
570         movl    -32(%edi),%esi
571         xorl    %ecx,%edx
572         movl    %edx,16(%esp)
573         xorl    %ebx,%ecx
574         movl    %ecx,12(%esp)
575         xorl    %esi,%ecx
576         xorl    -28(%edi),%edx
577         movzbl  %ch,%esi
578         movl    2052(%ebp,%esi,8),%ebx
579         movzbl  %cl,%esi
580         xorl    4(%ebp,%esi,8),%ebx
581         shrl    $16,%ecx
582         movzbl  %dl,%esi
583         movl    (%ebp,%esi,8),%eax
584         movzbl  %ch,%esi
585         xorl    (%ebp,%esi,8),%ebx
586         movzbl  %dh,%esi
587         xorl    4(%ebp,%esi,8),%eax
588         shrl    $16,%edx
589         movzbl  %cl,%ecx
590         xorl    2048(%ebp,%ecx,8),%ebx
591         movzbl  %dh,%esi
592         movl    8(%esp),%ecx
593         xorl    %ebx,%eax
594         rorl    $8,%ebx
595         xorl    2048(%ebp,%esi,8),%eax
596         movzbl  %dl,%esi
597         movl    4(%esp),%edx
598         xorl    %ecx,%ebx
599         xorl    2052(%ebp,%esi,8),%eax
600         movl    -40(%edi),%esi
601         xorl    %eax,%ebx
602         movl    %ebx,8(%esp)
603         xorl    %edx,%eax
604         movl    %eax,4(%esp)
605         xorl    %esi,%eax
606         xorl    -36(%edi),%ebx
607         movzbl  %ah,%esi
608         movl    2052(%ebp,%esi,8),%edx
609         movzbl  %al,%esi
610         xorl    4(%ebp,%esi,8),%edx
611         shrl    $16,%eax
612         movzbl  %bl,%esi
613         movl    (%ebp,%esi,8),%ecx
614         movzbl  %ah,%esi
615         xorl    (%ebp,%esi,8),%edx
616         movzbl  %bh,%esi
617         xorl    4(%ebp,%esi,8),%ecx
618         shrl    $16,%ebx
619         movzbl  %al,%eax
620         xorl    2048(%ebp,%eax,8),%edx
621         movzbl  %bh,%esi
622         movl    16(%esp),%eax
623         xorl    %edx,%ecx
624         rorl    $8,%edx
625         xorl    2048(%ebp,%esi,8),%ecx
626         movzbl  %bl,%esi
627         movl    12(%esp),%ebx
628         xorl    %eax,%edx
629         xorl    2052(%ebp,%esi,8),%ecx
630         movl    -48(%edi),%esi
631         xorl    %ecx,%edx
632         movl    %edx,16(%esp)
633         xorl    %ebx,%ecx
634         movl    %ecx,12(%esp)
635         xorl    %esi,%ecx
636         xorl    -44(%edi),%edx
637         movzbl  %ch,%esi
638         movl    2052(%ebp,%esi,8),%ebx
639         movzbl  %cl,%esi
640         xorl    4(%ebp,%esi,8),%ebx
641         shrl    $16,%ecx
642         movzbl  %dl,%esi
643         movl    (%ebp,%esi,8),%eax
644         movzbl  %ch,%esi
645         xorl    (%ebp,%esi,8),%ebx
646         movzbl  %dh,%esi
647         xorl    4(%ebp,%esi,8),%eax
648         shrl    $16,%edx
649         movzbl  %cl,%ecx
650         xorl    2048(%ebp,%ecx,8),%ebx
651         movzbl  %dh,%esi
652         movl    8(%esp),%ecx
653         xorl    %ebx,%eax
654         rorl    $8,%ebx
655         xorl    2048(%ebp,%esi,8),%eax
656         movzbl  %dl,%esi
657         movl    4(%esp),%edx
658         xorl    %ecx,%ebx
659         xorl    2052(%ebp,%esi,8),%eax
660         movl    -56(%edi),%esi
661         xorl    %eax,%ebx
662         movl    %ebx,8(%esp)
663         xorl    %edx,%eax
664         movl    %eax,4(%esp)
665         subl    $64,%edi
666         cmpl    20(%esp),%edi
667         je      .L007done
668         andl    %eax,%esi
669         movl    16(%esp),%edx
670         roll    $1,%esi
671         movl    %edx,%ecx
672         xorl    %esi,%ebx
673         orl     4(%edi),%ecx
674         movl    %ebx,8(%esp)
675         xorl    12(%esp),%ecx
676         movl    12(%edi),%esi
677         movl    %ecx,12(%esp)
678         orl     %ebx,%esi
679         andl    (%edi),%ecx
680         xorl    %esi,%eax
681         roll    $1,%ecx
682         movl    %eax,4(%esp)
683         xorl    %ecx,%edx
684         movl    -8(%edi),%esi
685         movl    %edx,16(%esp)
686         jmp     .L006loop
687 .align  8
688 .L007done:
689         movl    %eax,%ecx
690         movl    %ebx,%edx
691         movl    12(%esp),%eax
692         movl    16(%esp),%ebx
693         xorl    %esi,%ecx
694         xorl    12(%edi),%edx
695         xorl    (%edi),%eax
696         xorl    4(%edi),%ebx
697         ret
698 .size   _x86_Camellia_decrypt,.-_x86_Camellia_decrypt
699 .globl  Camellia_Ekeygen
700 .type   Camellia_Ekeygen,@function
701 .align  16
702 Camellia_Ekeygen:
703 .L_Camellia_Ekeygen_begin:
704         pushl   %ebp
705         pushl   %ebx
706         pushl   %esi
707         pushl   %edi
708         subl    $16,%esp
709         movl    36(%esp),%ebp
710         movl    40(%esp),%esi
711         movl    44(%esp),%edi
712         movl    (%esi),%eax
713         movl    4(%esi),%ebx
714         movl    8(%esi),%ecx
715         movl    12(%esi),%edx
716         bswap   %eax
717         bswap   %ebx
718         bswap   %ecx
719         bswap   %edx
720         movl    %eax,(%edi)
721         movl    %ebx,4(%edi)
722         movl    %ecx,8(%edi)
723         movl    %edx,12(%edi)
724         cmpl    $128,%ebp
725         je      .L0081st128
726         movl    16(%esi),%eax
727         movl    20(%esi),%ebx
728         cmpl    $192,%ebp
729         je      .L0091st192
730         movl    24(%esi),%ecx
731         movl    28(%esi),%edx
732         jmp     .L0101st256
733 .align  4
734 .L0091st192:
735         movl    %eax,%ecx
736         movl    %ebx,%edx
737         notl    %ecx
738         notl    %edx
739 .align  4
740 .L0101st256:
741         bswap   %eax
742         bswap   %ebx
743         bswap   %ecx
744         bswap   %edx
745         movl    %eax,32(%edi)
746         movl    %ebx,36(%edi)
747         movl    %ecx,40(%edi)
748         movl    %edx,44(%edi)
749         xorl    (%edi),%eax
750         xorl    4(%edi),%ebx
751         xorl    8(%edi),%ecx
752         xorl    12(%edi),%edx
753 .align  4
754 .L0081st128:
755         call    .L011pic_point
756 .L011pic_point:
757         popl    %ebp
758         leal    .LCamellia_SBOX-.L011pic_point(%ebp),%ebp
759         leal    .LCamellia_SIGMA-.LCamellia_SBOX(%ebp),%edi
760         movl    (%edi),%esi
761         movl    %eax,(%esp)
762         movl    %ebx,4(%esp)
763         movl    %ecx,8(%esp)
764         movl    %edx,12(%esp)
765         xorl    %esi,%eax
766         xorl    4(%edi),%ebx
767         movzbl  %ah,%esi
768         movl    2052(%ebp,%esi,8),%edx
769         movzbl  %al,%esi
770         xorl    4(%ebp,%esi,8),%edx
771         shrl    $16,%eax
772         movzbl  %bl,%esi
773         movl    (%ebp,%esi,8),%ecx
774         movzbl  %ah,%esi
775         xorl    (%ebp,%esi,8),%edx
776         movzbl  %bh,%esi
777         xorl    4(%ebp,%esi,8),%ecx
778         shrl    $16,%ebx
779         movzbl  %al,%eax
780         xorl    2048(%ebp,%eax,8),%edx
781         movzbl  %bh,%esi
782         movl    12(%esp),%eax
783         xorl    %edx,%ecx
784         rorl    $8,%edx
785         xorl    2048(%ebp,%esi,8),%ecx
786         movzbl  %bl,%esi
787         movl    8(%esp),%ebx
788         xorl    %eax,%edx
789         xorl    2052(%ebp,%esi,8),%ecx
790         movl    8(%edi),%esi
791         xorl    %ecx,%edx
792         movl    %edx,12(%esp)
793         xorl    %ebx,%ecx
794         movl    %ecx,8(%esp)
795         xorl    %esi,%ecx
796         xorl    12(%edi),%edx
797         movzbl  %ch,%esi
798         movl    2052(%ebp,%esi,8),%ebx
799         movzbl  %cl,%esi
800         xorl    4(%ebp,%esi,8),%ebx
801         shrl    $16,%ecx
802         movzbl  %dl,%esi
803         movl    (%ebp,%esi,8),%eax
804         movzbl  %ch,%esi
805         xorl    (%ebp,%esi,8),%ebx
806         movzbl  %dh,%esi
807         xorl    4(%ebp,%esi,8),%eax
808         shrl    $16,%edx
809         movzbl  %cl,%ecx
810         xorl    2048(%ebp,%ecx,8),%ebx
811         movzbl  %dh,%esi
812         movl    4(%esp),%ecx
813         xorl    %ebx,%eax
814         rorl    $8,%ebx
815         xorl    2048(%ebp,%esi,8),%eax
816         movzbl  %dl,%esi
817         movl    (%esp),%edx
818         xorl    %ecx,%ebx
819         xorl    2052(%ebp,%esi,8),%eax
820         movl    16(%edi),%esi
821         xorl    %eax,%ebx
822         movl    %ebx,4(%esp)
823         xorl    %edx,%eax
824         movl    %eax,(%esp)
825         movl    8(%esp),%ecx
826         movl    12(%esp),%edx
827         movl    44(%esp),%esi
828         xorl    (%esi),%eax
829         xorl    4(%esi),%ebx
830         xorl    8(%esi),%ecx
831         xorl    12(%esi),%edx
832         movl    16(%edi),%esi
833         movl    %eax,(%esp)
834         movl    %ebx,4(%esp)
835         movl    %ecx,8(%esp)
836         movl    %edx,12(%esp)
837         xorl    %esi,%eax
838         xorl    20(%edi),%ebx
839         movzbl  %ah,%esi
840         movl    2052(%ebp,%esi,8),%edx
841         movzbl  %al,%esi
842         xorl    4(%ebp,%esi,8),%edx
843         shrl    $16,%eax
844         movzbl  %bl,%esi
845         movl    (%ebp,%esi,8),%ecx
846         movzbl  %ah,%esi
847         xorl    (%ebp,%esi,8),%edx
848         movzbl  %bh,%esi
849         xorl    4(%ebp,%esi,8),%ecx
850         shrl    $16,%ebx
851         movzbl  %al,%eax
852         xorl    2048(%ebp,%eax,8),%edx
853         movzbl  %bh,%esi
854         movl    12(%esp),%eax
855         xorl    %edx,%ecx
856         rorl    $8,%edx
857         xorl    2048(%ebp,%esi,8),%ecx
858         movzbl  %bl,%esi
859         movl    8(%esp),%ebx
860         xorl    %eax,%edx
861         xorl    2052(%ebp,%esi,8),%ecx
862         movl    24(%edi),%esi
863         xorl    %ecx,%edx
864         movl    %edx,12(%esp)
865         xorl    %ebx,%ecx
866         movl    %ecx,8(%esp)
867         xorl    %esi,%ecx
868         xorl    28(%edi),%edx
869         movzbl  %ch,%esi
870         movl    2052(%ebp,%esi,8),%ebx
871         movzbl  %cl,%esi
872         xorl    4(%ebp,%esi,8),%ebx
873         shrl    $16,%ecx
874         movzbl  %dl,%esi
875         movl    (%ebp,%esi,8),%eax
876         movzbl  %ch,%esi
877         xorl    (%ebp,%esi,8),%ebx
878         movzbl  %dh,%esi
879         xorl    4(%ebp,%esi,8),%eax
880         shrl    $16,%edx
881         movzbl  %cl,%ecx
882         xorl    2048(%ebp,%ecx,8),%ebx
883         movzbl  %dh,%esi
884         movl    4(%esp),%ecx
885         xorl    %ebx,%eax
886         rorl    $8,%ebx
887         xorl    2048(%ebp,%esi,8),%eax
888         movzbl  %dl,%esi
889         movl    (%esp),%edx
890         xorl    %ecx,%ebx
891         xorl    2052(%ebp,%esi,8),%eax
892         movl    32(%edi),%esi
893         xorl    %eax,%ebx
894         movl    %ebx,4(%esp)
895         xorl    %edx,%eax
896         movl    %eax,(%esp)
897         movl    8(%esp),%ecx
898         movl    12(%esp),%edx
899         movl    36(%esp),%esi
900         cmpl    $128,%esi
901         jne     .L0122nd256
902         movl    44(%esp),%edi
903         leal    128(%edi),%edi
904         movl    %eax,-112(%edi)
905         movl    %ebx,-108(%edi)
906         movl    %ecx,-104(%edi)
907         movl    %edx,-100(%edi)
908         movl    %eax,%ebp
909         shll    $15,%eax
910         movl    %ebx,%esi
911         shrl    $17,%esi
912         shll    $15,%ebx
913         orl     %esi,%eax
914         movl    %ecx,%esi
915         shll    $15,%ecx
916         movl    %eax,-80(%edi)
917         shrl    $17,%esi
918         orl     %esi,%ebx
919         shrl    $17,%ebp
920         movl    %edx,%esi
921         shrl    $17,%esi
922         movl    %ebx,-76(%edi)
923         shll    $15,%edx
924         orl     %esi,%ecx
925         orl     %ebp,%edx
926         movl    %ecx,-72(%edi)
927         movl    %edx,-68(%edi)
928         movl    %eax,%ebp
929         shll    $15,%eax
930         movl    %ebx,%esi
931         shrl    $17,%esi
932         shll    $15,%ebx
933         orl     %esi,%eax
934         movl    %ecx,%esi
935         shll    $15,%ecx
936         movl    %eax,-64(%edi)
937         shrl    $17,%esi
938         orl     %esi,%ebx
939         shrl    $17,%ebp
940         movl    %edx,%esi
941         shrl    $17,%esi
942         movl    %ebx,-60(%edi)
943         shll    $15,%edx
944         orl     %esi,%ecx
945         orl     %ebp,%edx
946         movl    %ecx,-56(%edi)
947         movl    %edx,-52(%edi)
948         movl    %eax,%ebp
949         shll    $15,%eax
950         movl    %ebx,%esi
951         shrl    $17,%esi
952         shll    $15,%ebx
953         orl     %esi,%eax
954         movl    %ecx,%esi
955         shll    $15,%ecx
956         movl    %eax,-32(%edi)
957         shrl    $17,%esi
958         orl     %esi,%ebx
959         shrl    $17,%ebp
960         movl    %edx,%esi
961         shrl    $17,%esi
962         movl    %ebx,-28(%edi)
963         shll    $15,%edx
964         orl     %esi,%ecx
965         orl     %ebp,%edx
966         movl    %eax,%ebp
967         shll    $15,%eax
968         movl    %ebx,%esi
969         shrl    $17,%esi
970         shll    $15,%ebx
971         orl     %esi,%eax
972         movl    %ecx,%esi
973         shll    $15,%ecx
974         movl    %eax,-16(%edi)
975         shrl    $17,%esi
976         orl     %esi,%ebx
977         shrl    $17,%ebp
978         movl    %edx,%esi
979         shrl    $17,%esi
980         movl    %ebx,-12(%edi)
981         shll    $15,%edx
982         orl     %esi,%ecx
983         orl     %ebp,%edx
984         movl    %ecx,-8(%edi)
985         movl    %edx,-4(%edi)
986         movl    %ebx,%ebp
987         shll    $2,%ebx
988         movl    %ecx,%esi
989         shrl    $30,%esi
990         shll    $2,%ecx
991         orl     %esi,%ebx
992         movl    %edx,%esi
993         shll    $2,%edx
994         movl    %ebx,32(%edi)
995         shrl    $30,%esi
996         orl     %esi,%ecx
997         shrl    $30,%ebp
998         movl    %eax,%esi
999         shrl    $30,%esi
1000         movl    %ecx,36(%edi)
1001         shll    $2,%eax
1002         orl     %esi,%edx
1003         orl     %ebp,%eax
1004         movl    %edx,40(%edi)
1005         movl    %eax,44(%edi)
1006         movl    %ebx,%ebp
1007         shll    $17,%ebx
1008         movl    %ecx,%esi
1009         shrl    $15,%esi
1010         shll    $17,%ecx
1011         orl     %esi,%ebx
1012         movl    %edx,%esi
1013         shll    $17,%edx
1014         movl    %ebx,64(%edi)
1015         shrl    $15,%esi
1016         orl     %esi,%ecx
1017         shrl    $15,%ebp
1018         movl    %eax,%esi
1019         shrl    $15,%esi
1020         movl    %ecx,68(%edi)
1021         shll    $17,%eax
1022         orl     %esi,%edx
1023         orl     %ebp,%eax
1024         movl    %edx,72(%edi)
1025         movl    %eax,76(%edi)
1026         movl    -128(%edi),%ebx
1027         movl    -124(%edi),%ecx
1028         movl    -120(%edi),%edx
1029         movl    -116(%edi),%eax
1030         movl    %ebx,%ebp
1031         shll    $15,%ebx
1032         movl    %ecx,%esi
1033         shrl    $17,%esi
1034         shll    $15,%ecx
1035         orl     %esi,%ebx
1036         movl    %edx,%esi
1037         shll    $15,%edx
1038         movl    %ebx,-96(%edi)
1039         shrl    $17,%esi
1040         orl     %esi,%ecx
1041         shrl    $17,%ebp
1042         movl    %eax,%esi
1043         shrl    $17,%esi
1044         movl    %ecx,-92(%edi)
1045         shll    $15,%eax
1046         orl     %esi,%edx
1047         orl     %ebp,%eax
1048         movl    %edx,-88(%edi)
1049         movl    %eax,-84(%edi)
1050         movl    %ebx,%ebp
1051         shll    $30,%ebx
1052         movl    %ecx,%esi
1053         shrl    $2,%esi
1054         shll    $30,%ecx
1055         orl     %esi,%ebx
1056         movl    %edx,%esi
1057         shll    $30,%edx
1058         movl    %ebx,-48(%edi)
1059         shrl    $2,%esi
1060         orl     %esi,%ecx
1061         shrl    $2,%ebp
1062         movl    %eax,%esi
1063         shrl    $2,%esi
1064         movl    %ecx,-44(%edi)
1065         shll    $30,%eax
1066         orl     %esi,%edx
1067         orl     %ebp,%eax
1068         movl    %edx,-40(%edi)
1069         movl    %eax,-36(%edi)
1070         movl    %ebx,%ebp
1071         shll    $15,%ebx
1072         movl    %ecx,%esi
1073         shrl    $17,%esi
1074         shll    $15,%ecx
1075         orl     %esi,%ebx
1076         movl    %edx,%esi
1077         shll    $15,%edx
1078         shrl    $17,%esi
1079         orl     %esi,%ecx
1080         shrl    $17,%ebp
1081         movl    %eax,%esi
1082         shrl    $17,%esi
1083         shll    $15,%eax
1084         orl     %esi,%edx
1085         orl     %ebp,%eax
1086         movl    %edx,-24(%edi)
1087         movl    %eax,-20(%edi)
1088         movl    %ebx,%ebp
1089         shll    $17,%ebx
1090         movl    %ecx,%esi
1091         shrl    $15,%esi
1092         shll    $17,%ecx
1093         orl     %esi,%ebx
1094         movl    %edx,%esi
1095         shll    $17,%edx
1096         movl    %ebx,(%edi)
1097         shrl    $15,%esi
1098         orl     %esi,%ecx
1099         shrl    $15,%ebp
1100         movl    %eax,%esi
1101         shrl    $15,%esi
1102         movl    %ecx,4(%edi)
1103         shll    $17,%eax
1104         orl     %esi,%edx
1105         orl     %ebp,%eax
1106         movl    %edx,8(%edi)
1107         movl    %eax,12(%edi)
1108         movl    %ebx,%ebp
1109         shll    $17,%ebx
1110         movl    %ecx,%esi
1111         shrl    $15,%esi
1112         shll    $17,%ecx
1113         orl     %esi,%ebx
1114         movl    %edx,%esi
1115         shll    $17,%edx
1116         movl    %ebx,16(%edi)
1117         shrl    $15,%esi
1118         orl     %esi,%ecx
1119         shrl    $15,%ebp
1120         movl    %eax,%esi
1121         shrl    $15,%esi
1122         movl    %ecx,20(%edi)
1123         shll    $17,%eax
1124         orl     %esi,%edx
1125         orl     %ebp,%eax
1126         movl    %edx,24(%edi)
1127         movl    %eax,28(%edi)
1128         movl    %ebx,%ebp
1129         shll    $17,%ebx
1130         movl    %ecx,%esi
1131         shrl    $15,%esi
1132         shll    $17,%ecx
1133         orl     %esi,%ebx
1134         movl    %edx,%esi
1135         shll    $17,%edx
1136         movl    %ebx,48(%edi)
1137         shrl    $15,%esi
1138         orl     %esi,%ecx
1139         shrl    $15,%ebp
1140         movl    %eax,%esi
1141         shrl    $15,%esi
1142         movl    %ecx,52(%edi)
1143         shll    $17,%eax
1144         orl     %esi,%edx
1145         orl     %ebp,%eax
1146         movl    %edx,56(%edi)
1147         movl    %eax,60(%edi)
1148         movl    $3,%eax
1149         jmp     .L013done
1150 .align  16
1151 .L0122nd256:
1152         movl    44(%esp),%esi
1153         movl    %eax,48(%esi)
1154         movl    %ebx,52(%esi)
1155         movl    %ecx,56(%esi)
1156         movl    %edx,60(%esi)
1157         xorl    32(%esi),%eax
1158         xorl    36(%esi),%ebx
1159         xorl    40(%esi),%ecx
1160         xorl    44(%esi),%edx
1161         movl    32(%edi),%esi
1162         movl    %eax,(%esp)
1163         movl    %ebx,4(%esp)
1164         movl    %ecx,8(%esp)
1165         movl    %edx,12(%esp)
1166         xorl    %esi,%eax
1167         xorl    36(%edi),%ebx
1168         movzbl  %ah,%esi
1169         movl    2052(%ebp,%esi,8),%edx
1170         movzbl  %al,%esi
1171         xorl    4(%ebp,%esi,8),%edx
1172         shrl    $16,%eax
1173         movzbl  %bl,%esi
1174         movl    (%ebp,%esi,8),%ecx
1175         movzbl  %ah,%esi
1176         xorl    (%ebp,%esi,8),%edx
1177         movzbl  %bh,%esi
1178         xorl    4(%ebp,%esi,8),%ecx
1179         shrl    $16,%ebx
1180         movzbl  %al,%eax
1181         xorl    2048(%ebp,%eax,8),%edx
1182         movzbl  %bh,%esi
1183         movl    12(%esp),%eax
1184         xorl    %edx,%ecx
1185         rorl    $8,%edx
1186         xorl    2048(%ebp,%esi,8),%ecx
1187         movzbl  %bl,%esi
1188         movl    8(%esp),%ebx
1189         xorl    %eax,%edx
1190         xorl    2052(%ebp,%esi,8),%ecx
1191         movl    40(%edi),%esi
1192         xorl    %ecx,%edx
1193         movl    %edx,12(%esp)
1194         xorl    %ebx,%ecx
1195         movl    %ecx,8(%esp)
1196         xorl    %esi,%ecx
1197         xorl    44(%edi),%edx
1198         movzbl  %ch,%esi
1199         movl    2052(%ebp,%esi,8),%ebx
1200         movzbl  %cl,%esi
1201         xorl    4(%ebp,%esi,8),%ebx
1202         shrl    $16,%ecx
1203         movzbl  %dl,%esi
1204         movl    (%ebp,%esi,8),%eax
1205         movzbl  %ch,%esi
1206         xorl    (%ebp,%esi,8),%ebx
1207         movzbl  %dh,%esi
1208         xorl    4(%ebp,%esi,8),%eax
1209         shrl    $16,%edx
1210         movzbl  %cl,%ecx
1211         xorl    2048(%ebp,%ecx,8),%ebx
1212         movzbl  %dh,%esi
1213         movl    4(%esp),%ecx
1214         xorl    %ebx,%eax
1215         rorl    $8,%ebx
1216         xorl    2048(%ebp,%esi,8),%eax
1217         movzbl  %dl,%esi
1218         movl    (%esp),%edx
1219         xorl    %ecx,%ebx
1220         xorl    2052(%ebp,%esi,8),%eax
1221         movl    48(%edi),%esi
1222         xorl    %eax,%ebx
1223         movl    %ebx,4(%esp)
1224         xorl    %edx,%eax
1225         movl    %eax,(%esp)
1226         movl    8(%esp),%ecx
1227         movl    12(%esp),%edx
1228         movl    44(%esp),%edi
1229         leal    128(%edi),%edi
1230         movl    %eax,-112(%edi)
1231         movl    %ebx,-108(%edi)
1232         movl    %ecx,-104(%edi)
1233         movl    %edx,-100(%edi)
1234         movl    %eax,%ebp
1235         shll    $30,%eax
1236         movl    %ebx,%esi
1237         shrl    $2,%esi
1238         shll    $30,%ebx
1239         orl     %esi,%eax
1240         movl    %ecx,%esi
1241         shll    $30,%ecx
1242         movl    %eax,-48(%edi)
1243         shrl    $2,%esi
1244         orl     %esi,%ebx
1245         shrl    $2,%ebp
1246         movl    %edx,%esi
1247         shrl    $2,%esi
1248         movl    %ebx,-44(%edi)
1249         shll    $30,%edx
1250         orl     %esi,%ecx
1251         orl     %ebp,%edx
1252         movl    %ecx,-40(%edi)
1253         movl    %edx,-36(%edi)
1254         movl    %eax,%ebp
1255         shll    $30,%eax
1256         movl    %ebx,%esi
1257         shrl    $2,%esi
1258         shll    $30,%ebx
1259         orl     %esi,%eax
1260         movl    %ecx,%esi
1261         shll    $30,%ecx
1262         movl    %eax,32(%edi)
1263         shrl    $2,%esi
1264         orl     %esi,%ebx
1265         shrl    $2,%ebp
1266         movl    %edx,%esi
1267         shrl    $2,%esi
1268         movl    %ebx,36(%edi)
1269         shll    $30,%edx
1270         orl     %esi,%ecx
1271         orl     %ebp,%edx
1272         movl    %ecx,40(%edi)
1273         movl    %edx,44(%edi)
1274         movl    %ebx,%ebp
1275         shll    $19,%ebx
1276         movl    %ecx,%esi
1277         shrl    $13,%esi
1278         shll    $19,%ecx
1279         orl     %esi,%ebx
1280         movl    %edx,%esi
1281         shll    $19,%edx
1282         movl    %ebx,128(%edi)
1283         shrl    $13,%esi
1284         orl     %esi,%ecx
1285         shrl    $13,%ebp
1286         movl    %eax,%esi
1287         shrl    $13,%esi
1288         movl    %ecx,132(%edi)
1289         shll    $19,%eax
1290         orl     %esi,%edx
1291         orl     %ebp,%eax
1292         movl    %edx,136(%edi)
1293         movl    %eax,140(%edi)
1294         movl    -96(%edi),%ebx
1295         movl    -92(%edi),%ecx
1296         movl    -88(%edi),%edx
1297         movl    -84(%edi),%eax
1298         movl    %ebx,%ebp
1299         shll    $15,%ebx
1300         movl    %ecx,%esi
1301         shrl    $17,%esi
1302         shll    $15,%ecx
1303         orl     %esi,%ebx
1304         movl    %edx,%esi
1305         shll    $15,%edx
1306         movl    %ebx,-96(%edi)
1307         shrl    $17,%esi
1308         orl     %esi,%ecx
1309         shrl    $17,%ebp
1310         movl    %eax,%esi
1311         shrl    $17,%esi
1312         movl    %ecx,-92(%edi)
1313         shll    $15,%eax
1314         orl     %esi,%edx
1315         orl     %ebp,%eax
1316         movl    %edx,-88(%edi)
1317         movl    %eax,-84(%edi)
1318         movl    %ebx,%ebp
1319         shll    $15,%ebx
1320         movl    %ecx,%esi
1321         shrl    $17,%esi
1322         shll    $15,%ecx
1323         orl     %esi,%ebx
1324         movl    %edx,%esi
1325         shll    $15,%edx
1326         movl    %ebx,-64(%edi)
1327         shrl    $17,%esi
1328         orl     %esi,%ecx
1329         shrl    $17,%ebp
1330         movl    %eax,%esi
1331         shrl    $17,%esi
1332         movl    %ecx,-60(%edi)
1333         shll    $15,%eax
1334         orl     %esi,%edx
1335         orl     %ebp,%eax
1336         movl    %edx,-56(%edi)
1337         movl    %eax,-52(%edi)
1338         movl    %ebx,%ebp
1339         shll    $30,%ebx
1340         movl    %ecx,%esi
1341         shrl    $2,%esi
1342         shll    $30,%ecx
1343         orl     %esi,%ebx
1344         movl    %edx,%esi
1345         shll    $30,%edx
1346         movl    %ebx,16(%edi)
1347         shrl    $2,%esi
1348         orl     %esi,%ecx
1349         shrl    $2,%ebp
1350         movl    %eax,%esi
1351         shrl    $2,%esi
1352         movl    %ecx,20(%edi)
1353         shll    $30,%eax
1354         orl     %esi,%edx
1355         orl     %ebp,%eax
1356         movl    %edx,24(%edi)
1357         movl    %eax,28(%edi)
1358         movl    %ecx,%ebp
1359         shll    $2,%ecx
1360         movl    %edx,%esi
1361         shrl    $30,%esi
1362         shll    $2,%edx
1363         orl     %esi,%ecx
1364         movl    %eax,%esi
1365         shll    $2,%eax
1366         movl    %ecx,80(%edi)
1367         shrl    $30,%esi
1368         orl     %esi,%edx
1369         shrl    $30,%ebp
1370         movl    %ebx,%esi
1371         shrl    $30,%esi
1372         movl    %edx,84(%edi)
1373         shll    $2,%ebx
1374         orl     %esi,%eax
1375         orl     %ebp,%ebx
1376         movl    %eax,88(%edi)
1377         movl    %ebx,92(%edi)
1378         movl    -80(%edi),%ecx
1379         movl    -76(%edi),%edx
1380         movl    -72(%edi),%eax
1381         movl    -68(%edi),%ebx
1382         movl    %ecx,%ebp
1383         shll    $15,%ecx
1384         movl    %edx,%esi
1385         shrl    $17,%esi
1386         shll    $15,%edx
1387         orl     %esi,%ecx
1388         movl    %eax,%esi
1389         shll    $15,%eax
1390         movl    %ecx,-80(%edi)
1391         shrl    $17,%esi
1392         orl     %esi,%edx
1393         shrl    $17,%ebp
1394         movl    %ebx,%esi
1395         shrl    $17,%esi
1396         movl    %edx,-76(%edi)
1397         shll    $15,%ebx
1398         orl     %esi,%eax
1399         orl     %ebp,%ebx
1400         movl    %eax,-72(%edi)
1401         movl    %ebx,-68(%edi)
1402         movl    %ecx,%ebp
1403         shll    $30,%ecx
1404         movl    %edx,%esi
1405         shrl    $2,%esi
1406         shll    $30,%edx
1407         orl     %esi,%ecx
1408         movl    %eax,%esi
1409         shll    $30,%eax
1410         movl    %ecx,-16(%edi)
1411         shrl    $2,%esi
1412         orl     %esi,%edx
1413         shrl    $2,%ebp
1414         movl    %ebx,%esi
1415         shrl    $2,%esi
1416         movl    %edx,-12(%edi)
1417         shll    $30,%ebx
1418         orl     %esi,%eax
1419         orl     %ebp,%ebx
1420         movl    %eax,-8(%edi)
1421         movl    %ebx,-4(%edi)
1422         movl    %edx,64(%edi)
1423         movl    %eax,68(%edi)
1424         movl    %ebx,72(%edi)
1425         movl    %ecx,76(%edi)
1426         movl    %edx,%ebp
1427         shll    $17,%edx
1428         movl    %eax,%esi
1429         shrl    $15,%esi
1430         shll    $17,%eax
1431         orl     %esi,%edx
1432         movl    %ebx,%esi
1433         shll    $17,%ebx
1434         movl    %edx,96(%edi)
1435         shrl    $15,%esi
1436         orl     %esi,%eax
1437         shrl    $15,%ebp
1438         movl    %ecx,%esi
1439         shrl    $15,%esi
1440         movl    %eax,100(%edi)
1441         shll    $17,%ecx
1442         orl     %esi,%ebx
1443         orl     %ebp,%ecx
1444         movl    %ebx,104(%edi)
1445         movl    %ecx,108(%edi)
1446         movl    -128(%edi),%edx
1447         movl    -124(%edi),%eax
1448         movl    -120(%edi),%ebx
1449         movl    -116(%edi),%ecx
1450         movl    %eax,%ebp
1451         shll    $13,%eax
1452         movl    %ebx,%esi
1453         shrl    $19,%esi
1454         shll    $13,%ebx
1455         orl     %esi,%eax
1456         movl    %ecx,%esi
1457         shll    $13,%ecx
1458         movl    %eax,-32(%edi)
1459         shrl    $19,%esi
1460         orl     %esi,%ebx
1461         shrl    $19,%ebp
1462         movl    %edx,%esi
1463         shrl    $19,%esi
1464         movl    %ebx,-28(%edi)
1465         shll    $13,%edx
1466         orl     %esi,%ecx
1467         orl     %ebp,%edx
1468         movl    %ecx,-24(%edi)
1469         movl    %edx,-20(%edi)
1470         movl    %eax,%ebp
1471         shll    $15,%eax
1472         movl    %ebx,%esi
1473         shrl    $17,%esi
1474         shll    $15,%ebx
1475         orl     %esi,%eax
1476         movl    %ecx,%esi
1477         shll    $15,%ecx
1478         movl    %eax,(%edi)
1479         shrl    $17,%esi
1480         orl     %esi,%ebx
1481         shrl    $17,%ebp
1482         movl    %edx,%esi
1483         shrl    $17,%esi
1484         movl    %ebx,4(%edi)
1485         shll    $15,%edx
1486         orl     %esi,%ecx
1487         orl     %ebp,%edx
1488         movl    %ecx,8(%edi)
1489         movl    %edx,12(%edi)
1490         movl    %eax,%ebp
1491         shll    $17,%eax
1492         movl    %ebx,%esi
1493         shrl    $15,%esi
1494         shll    $17,%ebx
1495         orl     %esi,%eax
1496         movl    %ecx,%esi
1497         shll    $17,%ecx
1498         movl    %eax,48(%edi)
1499         shrl    $15,%esi
1500         orl     %esi,%ebx
1501         shrl    $15,%ebp
1502         movl    %edx,%esi
1503         shrl    $15,%esi
1504         movl    %ebx,52(%edi)
1505         shll    $17,%edx
1506         orl     %esi,%ecx
1507         orl     %ebp,%edx
1508         movl    %ecx,56(%edi)
1509         movl    %edx,60(%edi)
1510         movl    %ebx,%ebp
1511         shll    $2,%ebx
1512         movl    %ecx,%esi
1513         shrl    $30,%esi
1514         shll    $2,%ecx
1515         orl     %esi,%ebx
1516         movl    %edx,%esi
1517         shll    $2,%edx
1518         movl    %ebx,112(%edi)
1519         shrl    $30,%esi
1520         orl     %esi,%ecx
1521         shrl    $30,%ebp
1522         movl    %eax,%esi
1523         shrl    $30,%esi
1524         movl    %ecx,116(%edi)
1525         shll    $2,%eax
1526         orl     %esi,%edx
1527         orl     %ebp,%eax
1528         movl    %edx,120(%edi)
1529         movl    %eax,124(%edi)
1530         movl    $4,%eax
1531 .L013done:
1532         leal    144(%edi),%edx
1533         addl    $16,%esp
1534         popl    %edi
1535         popl    %esi
1536         popl    %ebx
1537         popl    %ebp
1538         ret
1539 .size   Camellia_Ekeygen,.-.L_Camellia_Ekeygen_begin
1540 .globl  private_Camellia_set_key
1541 .type   private_Camellia_set_key,@function
1542 .align  16
1543 private_Camellia_set_key:
1544 .L_private_Camellia_set_key_begin:
1545         pushl   %ebx
1546         movl    8(%esp),%ecx
1547         movl    12(%esp),%ebx
1548         movl    16(%esp),%edx
1549         movl    $-1,%eax
1550         testl   %ecx,%ecx
1551         jz      .L014done
1552         testl   %edx,%edx
1553         jz      .L014done
1554         movl    $-2,%eax
1555         cmpl    $256,%ebx
1556         je      .L015arg_ok
1557         cmpl    $192,%ebx
1558         je      .L015arg_ok
1559         cmpl    $128,%ebx
1560         jne     .L014done
1561 .align  4
1562 .L015arg_ok:
1563         pushl   %edx
1564         pushl   %ecx
1565         pushl   %ebx
1566         call    .L_Camellia_Ekeygen_begin
1567         addl    $12,%esp
1568         movl    %eax,(%edx)
1569         xorl    %eax,%eax
1570 .align  4
1571 .L014done:
1572         popl    %ebx
1573         ret
1574 .size   private_Camellia_set_key,.-.L_private_Camellia_set_key_begin
1575 .align  64
1576 .LCamellia_SIGMA:
1577 .long   2694735487,1003262091,3061508184,1286239154,3337565999,3914302142,1426019237,4057165596,283453434,3731369245,2958461122,3018244605,0,0,0,0
1578 .align  64
1579 .LCamellia_SBOX:
1580 .long   1886416896,1886388336
1581 .long   2189591040,741081132
1582 .long   741092352,3014852787
1583 .long   3974949888,3233808576
1584 .long   3014898432,3840147684
1585 .long   656877312,1465319511
1586 .long   3233857536,3941204202
1587 .long   3857048832,2930639022
1588 .long   3840205824,589496355
1589 .long   2240120064,1802174571
1590 .long   1465341696,1162149957
1591 .long   892679424,2779054245
1592 .long   3941263872,3991732461
1593 .long   202116096,1330577487
1594 .long   2930683392,488439837
1595 .long   1094795520,2459041938
1596 .long   589505280,2256928902
1597 .long   4025478912,2947481775
1598 .long   1802201856,2088501372
1599 .long   2475922176,522125343
1600 .long   1162167552,1044250686
1601 .long   421075200,3705405660
1602 .long   2779096320,1583218782
1603 .long   555819264,185270283
1604 .long   3991792896,2795896998
1605 .long   235802112,960036921
1606 .long   1330597632,3587506389
1607 .long   1313754624,1566376029
1608 .long   488447232,3654877401
1609 .long   1701143808,1515847770
1610 .long   2459079168,1364262993
1611 .long   3183328512,1819017324
1612 .long   2256963072,2341142667
1613 .long   3099113472,2593783962
1614 .long   2947526400,4227531003
1615 .long   2408550144,2964324528
1616 .long   2088532992,1953759348
1617 .long   3958106880,724238379
1618 .long   522133248,4042260720
1619 .long   3469659648,2223243396
1620 .long   1044266496,3755933919
1621 .long   808464384,3419078859
1622 .long   3705461760,875823156
1623 .long   1600085760,1987444854
1624 .long   1583242752,1835860077
1625 .long   3318072576,2846425257
1626 .long   185273088,3520135377
1627 .long   437918208,67371012
1628 .long   2795939328,336855060
1629 .long   3789676800,976879674
1630 .long   960051456,3739091166
1631 .long   3402287616,286326801
1632 .long   3587560704,842137650
1633 .long   1195853568,2627469468
1634 .long   1566399744,1397948499
1635 .long   1027423488,4075946226
1636 .long   3654932736,4278059262
1637 .long   16843008,3486449871
1638 .long   1515870720,3284336835
1639 .long   3604403712,2054815866
1640 .long   1364283648,606339108
1641 .long   1448498688,3907518696
1642 .long   1819044864,1616904288
1643 .long   1296911616,1768489065
1644 .long   2341178112,2863268010
1645 .long   218959104,2694840480
1646 .long   2593823232,2711683233
1647 .long   1717986816,1650589794
1648 .long   4227595008,1414791252
1649 .long   3435973632,505282590
1650 .long   2964369408,3772776672
1651 .long   757935360,1684275300
1652 .long   1953788928,269484048
1653 .long   303174144,0
1654 .long   724249344,2745368739
1655 .long   538976256,1970602101
1656 .long   4042321920,2324299914
1657 .long   2981212416,3873833190
1658 .long   2223277056,151584777
1659 .long   2576980224,3722248413
1660 .long   3755990784,2273771655
1661 .long   1280068608,2206400643
1662 .long   3419130624,3452764365
1663 .long   3267543552,2425356432
1664 .long   875836416,1936916595
1665 .long   2122219008,4143317238
1666 .long   1987474944,2644312221
1667 .long   84215040,3216965823
1668 .long   1835887872,1381105746
1669 .long   3082270464,3638034648
1670 .long   2846468352,3368550600
1671 .long   825307392,3334865094
1672 .long   3520188672,2172715137
1673 .long   387389184,1869545583
1674 .long   67372032,320012307
1675 .long   3621246720,1667432547
1676 .long   336860160,3924361449
1677 .long   1482184704,2812739751
1678 .long   976894464,2677997727
1679 .long   1633771776,3166437564
1680 .long   3739147776,690552873
1681 .long   454761216,4193845497
1682 .long   286331136,791609391
1683 .long   471604224,3031695540
1684 .long   842150400,2021130360
1685 .long   252645120,101056518
1686 .long   2627509248,3890675943
1687 .long   370546176,1903231089
1688 .long   1397969664,3570663636
1689 .long   404232192,2880110763
1690 .long   4076007936,2290614408
1691 .long   572662272,2374828173
1692 .long   4278124032,1920073842
1693 .long   1145324544,3115909305
1694 .long   3486502656,4177002744
1695 .long   2998055424,2896953516
1696 .long   3284386560,909508662
1697 .long   3048584448,707395626
1698 .long   2054846976,1010565180
1699 .long   2442236160,4059103473
1700 .long   606348288,1077936192
1701 .long   134744064,3553820883
1702 .long   3907577856,3149594811
1703 .long   2829625344,1128464451
1704 .long   1616928768,353697813
1705 .long   4244438016,2913796269
1706 .long   1768515840,2004287607
1707 .long   1347440640,2155872384
1708 .long   2863311360,2189557890
1709 .long   3503345664,3974889708
1710 .long   2694881280,656867367
1711 .long   2105376000,3856990437
1712 .long   2711724288,2240086149
1713 .long   2307492096,892665909
1714 .long   1650614784,202113036
1715 .long   2543294208,1094778945
1716 .long   1414812672,4025417967
1717 .long   1532713728,2475884691
1718 .long   505290240,421068825
1719 .long   2509608192,555810849
1720 .long   3772833792,235798542
1721 .long   4294967040,1313734734
1722 .long   1684300800,1701118053
1723 .long   3537031680,3183280317
1724 .long   269488128,3099066552
1725 .long   3301229568,2408513679
1726 .long   0,3958046955
1727 .long   1212696576,3469607118
1728 .long   2745410304,808452144
1729 .long   4160222976,1600061535
1730 .long   1970631936,3318022341
1731 .long   3688618752,437911578
1732 .long   2324335104,3789619425
1733 .long   50529024,3402236106
1734 .long   3873891840,1195835463
1735 .long   3671775744,1027407933
1736 .long   151587072,16842753
1737 .long   1061109504,3604349142
1738 .long   3722304768,1448476758
1739 .long   2492765184,1296891981
1740 .long   2273806080,218955789
1741 .long   1549556736,1717960806
1742 .long   2206434048,3435921612
1743 .long   33686016,757923885
1744 .long   3452816640,303169554
1745 .long   1246382592,538968096
1746 .long   2425393152,2981167281
1747 .long   858993408,2576941209
1748 .long   1936945920,1280049228
1749 .long   1734829824,3267494082
1750 .long   4143379968,2122186878
1751 .long   4092850944,84213765
1752 .long   2644352256,3082223799
1753 .long   2139062016,825294897
1754 .long   3217014528,387383319
1755 .long   3806519808,3621191895
1756 .long   1381126656,1482162264
1757 .long   2610666240,1633747041
1758 .long   3638089728,454754331
1759 .long   640034304,471597084
1760 .long   3368601600,252641295
1761 .long   926365440,370540566
1762 .long   3334915584,404226072
1763 .long   993737472,572653602
1764 .long   2172748032,1145307204
1765 .long   2526451200,2998010034
1766 .long   1869573888,3048538293
1767 .long   1263225600,2442199185
1768 .long   320017152,134742024
1769 .long   3200171520,2829582504
1770 .long   1667457792,4244373756
1771 .long   774778368,1347420240
1772 .long   3924420864,3503292624
1773 .long   2038003968,2105344125
1774 .long   2812782336,2307457161
1775 .long   2358021120,2543255703
1776 .long   2678038272,1532690523
1777 .long   1852730880,2509570197
1778 .long   3166485504,4294902015
1779 .long   2391707136,3536978130
1780 .long   690563328,3301179588
1781 .long   4126536960,1212678216
1782 .long   4193908992,4160159991
1783 .long   3065427456,3688562907
1784 .long   791621376,50528259
1785 .long   4261281024,3671720154
1786 .long   3031741440,1061093439
1787 .long   1499027712,2492727444
1788 .long   2021160960,1549533276
1789 .long   2560137216,33685506
1790 .long   101058048,1246363722
1791 .long   1785358848,858980403
1792 .long   3890734848,1734803559
1793 .long   1179010560,4092788979
1794 .long   1903259904,2139029631
1795 .long   3132799488,3806462178
1796 .long   3570717696,2610626715
1797 .long   623191296,640024614
1798 .long   2880154368,926351415
1799 .long   1111638528,993722427
1800 .long   2290649088,2526412950
1801 .long   2728567296,1263206475
1802 .long   2374864128,3200123070
1803 .long   4210752000,774766638
1804 .long   1920102912,2037973113
1805 .long   117901056,2357985420
1806 .long   3115956480,1852702830
1807 .long   1431655680,2391670926
1808 .long   4177065984,4126474485
1809 .long   4008635904,3065381046
1810 .long   2896997376,4261216509
1811 .long   168430080,1499005017
1812 .long   909522432,2560098456
1813 .long   1229539584,1785331818
1814 .long   707406336,1178992710
1815 .long   1751672832,3132752058
1816 .long   1010580480,623181861
1817 .long   943208448,1111621698
1818 .long   4059164928,2728525986
1819 .long   2762253312,4210688250
1820 .long   1077952512,117899271
1821 .long   673720320,1431634005
1822 .long   3553874688,4008575214
1823 .long   2071689984,168427530
1824 .long   3149642496,1229520969
1825 .long   3385444608,1751646312
1826 .long   1128481536,943194168
1827 .long   3250700544,2762211492
1828 .long   353703168,673710120
1829 .long   3823362816,2071658619
1830 .long   2913840384,3385393353
1831 .long   4109693952,3250651329
1832 .long   2004317952,3823304931
1833 .long   3351758592,4109631732
1834 .long   2155905024,3351707847
1835 .long   2661195264,2661154974
1836 .long   14737632,939538488
1837 .long   328965,1090535745
1838 .long   5789784,369104406
1839 .long   14277081,1979741814
1840 .long   6776679,3640711641
1841 .long   5131854,2466288531
1842 .long   8487297,1610637408
1843 .long   13355979,4060148466
1844 .long   13224393,1912631922
1845 .long   723723,3254829762
1846 .long   11447982,2868947883
1847 .long   6974058,2583730842
1848 .long   14013909,1962964341
1849 .long   1579032,100664838
1850 .long   6118749,1459640151
1851 .long   8553090,2684395680
1852 .long   4605510,2432733585
1853 .long   14671839,4144035831
1854 .long   14079702,3036722613
1855 .long   2565927,3372272073
1856 .long   9079434,2717950626
1857 .long   3289650,2348846220
1858 .long   4934475,3523269330
1859 .long   4342338,2415956112
1860 .long   14408667,4127258358
1861 .long   1842204,117442311
1862 .long   10395294,2801837991
1863 .long   10263708,654321447
1864 .long   3815994,2382401166
1865 .long   13290186,2986390194
1866 .long   2434341,1224755529
1867 .long   8092539,3724599006
1868 .long   855309,1124090691
1869 .long   7434609,1543527516
1870 .long   6250335,3607156695
1871 .long   2039583,3338717127
1872 .long   16316664,1040203326
1873 .long   14145495,4110480885
1874 .long   4079166,2399178639
1875 .long   10329501,1728079719
1876 .long   8158332,520101663
1877 .long   6316128,402659352
1878 .long   12171705,1845522030
1879 .long   12500670,2936057775
1880 .long   12369084,788541231
1881 .long   9145227,3791708898
1882 .long   1447446,2231403909
1883 .long   3421236,218107149
1884 .long   5066061,1392530259
1885 .long   12829635,4026593520
1886 .long   7500402,2617285788
1887 .long   9803157,1694524773
1888 .long   11250603,3925928682
1889 .long   9342606,2734728099
1890 .long   12237498,2919280302
1891 .long   8026746,2650840734
1892 .long   11776947,3959483628
1893 .long   131586,2147516544
1894 .long   11842740,754986285
1895 .long   11382189,1795189611
1896 .long   10658466,2818615464
1897 .long   11316396,721431339
1898 .long   14211288,905983542
1899 .long   10132122,2785060518
1900 .long   1513239,3305162181
1901 .long   1710618,2248181382
1902 .long   3487029,1291865421
1903 .long   13421772,855651123
1904 .long   16250871,4244700669
1905 .long   10066329,1711302246
1906 .long   6381921,1476417624
1907 .long   5921370,2516620950
1908 .long   15263976,973093434
1909 .long   2368548,150997257
1910 .long   5658198,2499843477
1911 .long   4210752,268439568
1912 .long   14803425,2013296760
1913 .long   6513507,3623934168
1914 .long   592137,1107313218
1915 .long   3355443,3422604492
1916 .long   12566463,4009816047
1917 .long   10000536,637543974
1918 .long   9934743,3842041317
1919 .long   8750469,1627414881
1920 .long   6842472,436214298
1921 .long   16579836,1056980799
1922 .long   15527148,989870907
1923 .long   657930,2181071490
1924 .long   14342874,3053500086
1925 .long   7303023,3674266587
1926 .long   5460819,3556824276
1927 .long   6447714,2550175896
1928 .long   10724259,3892373736
1929 .long   3026478,2332068747
1930 .long   526344,33554946
1931 .long   11513775,3942706155
1932 .long   2631720,167774730
1933 .long   11579568,738208812
1934 .long   7631988,486546717
1935 .long   12763842,2952835248
1936 .long   12434877,1862299503
1937 .long   3552822,2365623693
1938 .long   2236962,2281736328
1939 .long   3684408,234884622
1940 .long   6579300,419436825
1941 .long   1973790,2264958855
1942 .long   3750201,1308642894
1943 .long   2894892,184552203
1944 .long   10921638,2835392937
1945 .long   3158064,201329676
1946 .long   15066597,2030074233
1947 .long   4473924,285217041
1948 .long   16645629,2130739071
1949 .long   8947848,570434082
1950 .long   10461087,3875596263
1951 .long   6645093,1493195097
1952 .long   8882055,3774931425
1953 .long   7039851,3657489114
1954 .long   16053492,1023425853
1955 .long   2302755,3355494600
1956 .long   4737096,301994514
1957 .long   1052688,67109892
1958 .long   13750737,1946186868
1959 .long   5329233,1409307732
1960 .long   12632256,805318704
1961 .long   16382457,2113961598
1962 .long   13816530,3019945140
1963 .long   10526880,671098920
1964 .long   5592405,1426085205
1965 .long   10592673,1744857192
1966 .long   4276545,1342197840
1967 .long   16448250,3187719870
1968 .long   4408131,3489714384
1969 .long   1250067,3288384708
1970 .long   12895428,822096177
1971 .long   3092271,3405827019
1972 .long   11053224,704653866
1973 .long   11974326,2902502829
1974 .long   3947580,251662095
1975 .long   2829099,3389049546
1976 .long   12698049,1879076976
1977 .long   16777215,4278255615
1978 .long   13158600,838873650
1979 .long   10855845,1761634665
1980 .long   2105376,134219784
1981 .long   9013641,1644192354
1982 .long   0,0
1983 .long   9474192,603989028
1984 .long   4671303,3506491857
1985 .long   15724527,4211145723
1986 .long   15395562,3120609978
1987 .long   12040119,3976261101
1988 .long   1381653,1157645637
1989 .long   394758,2164294017
1990 .long   13487565,1929409395
1991 .long   11908533,1828744557
1992 .long   1184274,2214626436
1993 .long   8289918,2667618207
1994 .long   12303291,3993038574
1995 .long   2697513,1241533002
1996 .long   986895,3271607235
1997 .long   12105912,771763758
1998 .long   460551,3238052289
1999 .long   263172,16777473
2000 .long   10197915,3858818790
2001 .long   9737364,620766501
2002 .long   2171169,1207978056
2003 .long   6710886,2566953369
2004 .long   15132390,3103832505
2005 .long   13553358,3003167667
2006 .long   15592941,2063629179
2007 .long   15198183,4177590777
2008 .long   3881787,3456159438
2009 .long   16711422,3204497343
2010 .long   8355711,3741376479
2011 .long   12961221,1895854449
2012 .long   10790052,687876393
2013 .long   3618615,3439381965
2014 .long   11645361,1811967084
2015 .long   5000268,318771987
2016 .long   9539985,1677747300
2017 .long   7237230,2600508315
2018 .long   9276813,1660969827
2019 .long   7763574,2634063261
2020 .long   197379,3221274816
2021 .long   2960685,1258310475
2022 .long   14606046,3070277559
2023 .long   9868950,2768283045
2024 .long   2500134,2298513801
2025 .long   8224125,1593859935
2026 .long   13027014,2969612721
2027 .long   6052956,385881879
2028 .long   13882323,4093703412
2029 .long   15921906,3154164924
2030 .long   5197647,3540046803
2031 .long   1644825,1174423110
2032 .long   4144959,3472936911
2033 .long   14474460,922761015
2034 .long   7960953,1577082462
2035 .long   1907997,1191200583
2036 .long   5395026,2483066004
2037 .long   15461355,4194368250
2038 .long   15987699,4227923196
2039 .long   7171437,1526750043
2040 .long   6184542,2533398423
2041 .long   16514043,4261478142
2042 .long   6908265,1509972570
2043 .long   11711154,2885725356
2044 .long   15790320,1006648380
2045 .long   3223857,1275087948
2046 .long   789516,50332419
2047 .long   13948116,889206069
2048 .long   13619151,4076925939
2049 .long   9211020,587211555
2050 .long   14869218,3087055032
2051 .long   7697781,1560304989
2052 .long   11119017,1778412138
2053 .long   4868682,2449511058
2054 .long   5723991,3573601749
2055 .long   8684676,553656609
2056 .long   1118481,1140868164
2057 .long   4539717,1358975313
2058 .long   1776411,3321939654
2059 .long   16119285,2097184125
2060 .long   15000804,956315961
2061 .long   921102,2197848963
2062 .long   7566195,3691044060
2063 .long   11184810,2852170410
2064 .long   15856113,2080406652
2065 .long   14540253,1996519287
2066 .long   5855577,1442862678
2067 .long   1315860,83887365
2068 .long   7105644,452991771
2069 .long   9605778,2751505572
2070 .long   5526612,352326933
2071 .long   13684944,872428596
2072 .long   7895160,503324190
2073 .long   7368816,469769244
2074 .long   14935011,4160813304
2075 .long   4802889,1375752786
2076 .long   8421504,536879136
2077 .long   5263440,335549460
2078 .long   10987431,3909151209
2079 .long   16185078,3170942397
2080 .long   7829367,3707821533
2081 .long   9671571,3825263844
2082 .long   8816262,2701173153
2083 .long   8618883,3758153952
2084 .long   2763306,2315291274
2085 .long   13092807,4043370993
2086 .long   5987163,3590379222
2087 .long   15329769,2046851706
2088 .long   15658734,3137387451
2089 .long   9408399,3808486371
2090 .long   65793,1073758272
2091 .long   4013373,1325420367
2092 .globl  Camellia_cbc_encrypt
2093 .type   Camellia_cbc_encrypt,@function
2094 .align  16
2095 Camellia_cbc_encrypt:
2096 .L_Camellia_cbc_encrypt_begin:
2097         pushl   %ebp
2098         pushl   %ebx
2099         pushl   %esi
2100         pushl   %edi
2101         movl    28(%esp),%ecx
2102         cmpl    $0,%ecx
2103         je      .L016enc_out
2104         pushfl
2105         cld
2106         movl    24(%esp),%eax
2107         movl    28(%esp),%ebx
2108         movl    36(%esp),%edx
2109         movl    40(%esp),%ebp
2110         leal    -64(%esp),%esi
2111         andl    $-64,%esi
2112         leal    -127(%edx),%edi
2113         subl    %esi,%edi
2114         negl    %edi
2115         andl    $960,%edi
2116         subl    %edi,%esi
2117         movl    44(%esp),%edi
2118         xchgl   %esi,%esp
2119         addl    $4,%esp
2120         movl    %esi,20(%esp)
2121         movl    %eax,24(%esp)
2122         movl    %ebx,28(%esp)
2123         movl    %ecx,32(%esp)
2124         movl    %edx,36(%esp)
2125         movl    %ebp,40(%esp)
2126         call    .L017pic_point
2127 .L017pic_point:
2128         popl    %ebp
2129         leal    .LCamellia_SBOX-.L017pic_point(%ebp),%ebp
2130         movl    $32,%esi
2131 .align  4
2132 .L018prefetch_sbox:
2133         movl    (%ebp),%eax
2134         movl    32(%ebp),%ebx
2135         movl    64(%ebp),%ecx
2136         movl    96(%ebp),%edx
2137         leal    128(%ebp),%ebp
2138         decl    %esi
2139         jnz     .L018prefetch_sbox
2140         movl    36(%esp),%eax
2141         subl    $4096,%ebp
2142         movl    24(%esp),%esi
2143         movl    272(%eax),%edx
2144         cmpl    $0,%edi
2145         je      .L019DECRYPT
2146         movl    32(%esp),%ecx
2147         movl    40(%esp),%edi
2148         shll    $6,%edx
2149         leal    (%eax,%edx,1),%edx
2150         movl    %edx,16(%esp)
2151         testl   $4294967280,%ecx
2152         jz      .L020enc_tail
2153         movl    (%edi),%eax
2154         movl    4(%edi),%ebx
2155 .align  4
2156 .L021enc_loop:
2157         movl    8(%edi),%ecx
2158         movl    12(%edi),%edx
2159         xorl    (%esi),%eax
2160         xorl    4(%esi),%ebx
2161         xorl    8(%esi),%ecx
2162         bswap   %eax
2163         xorl    12(%esi),%edx
2164         bswap   %ebx
2165         movl    36(%esp),%edi
2166         bswap   %ecx
2167         bswap   %edx
2168         call    _x86_Camellia_encrypt
2169         movl    24(%esp),%esi
2170         movl    28(%esp),%edi
2171         bswap   %eax
2172         bswap   %ebx
2173         bswap   %ecx
2174         movl    %eax,(%edi)
2175         bswap   %edx
2176         movl    %ebx,4(%edi)
2177         movl    %ecx,8(%edi)
2178         movl    %edx,12(%edi)
2179         movl    32(%esp),%ecx
2180         leal    16(%esi),%esi
2181         movl    %esi,24(%esp)
2182         leal    16(%edi),%edx
2183         movl    %edx,28(%esp)
2184         subl    $16,%ecx
2185         testl   $4294967280,%ecx
2186         movl    %ecx,32(%esp)
2187         jnz     .L021enc_loop
2188         testl   $15,%ecx
2189         jnz     .L020enc_tail
2190         movl    40(%esp),%esi
2191         movl    8(%edi),%ecx
2192         movl    12(%edi),%edx
2193         movl    %eax,(%esi)
2194         movl    %ebx,4(%esi)
2195         movl    %ecx,8(%esi)
2196         movl    %edx,12(%esi)
2197         movl    20(%esp),%esp
2198         popfl
2199 .L016enc_out:
2200         popl    %edi
2201         popl    %esi
2202         popl    %ebx
2203         popl    %ebp
2204         ret
2205         pushfl
2206 .align  4
2207 .L020enc_tail:
2208         movl    %edi,%eax
2209         movl    28(%esp),%edi
2210         pushl   %eax
2211         movl    $16,%ebx
2212         subl    %ecx,%ebx
2213         cmpl    %esi,%edi
2214         je      .L022enc_in_place
2215 .align  4
2216 .long   2767451785
2217         jmp     .L023enc_skip_in_place
2218 .L022enc_in_place:
2219         leal    (%edi,%ecx,1),%edi
2220 .L023enc_skip_in_place:
2221         movl    %ebx,%ecx
2222         xorl    %eax,%eax
2223 .align  4
2224 .long   2868115081
2225         popl    %edi
2226         movl    28(%esp),%esi
2227         movl    (%edi),%eax
2228         movl    4(%edi),%ebx
2229         movl    $16,32(%esp)
2230         jmp     .L021enc_loop
2231 .align  16
2232 .L019DECRYPT:
2233         shll    $6,%edx
2234         leal    (%eax,%edx,1),%edx
2235         movl    %eax,16(%esp)
2236         movl    %edx,36(%esp)
2237         cmpl    28(%esp),%esi
2238         je      .L024dec_in_place
2239         movl    40(%esp),%edi
2240         movl    %edi,44(%esp)
2241 .align  4
2242 .L025dec_loop:
2243         movl    (%esi),%eax
2244         movl    4(%esi),%ebx
2245         movl    8(%esi),%ecx
2246         bswap   %eax
2247         movl    12(%esi),%edx
2248         bswap   %ebx
2249         movl    36(%esp),%edi
2250         bswap   %ecx
2251         bswap   %edx
2252         call    _x86_Camellia_decrypt
2253         movl    44(%esp),%edi
2254         movl    32(%esp),%esi
2255         bswap   %eax
2256         bswap   %ebx
2257         bswap   %ecx
2258         xorl    (%edi),%eax
2259         bswap   %edx
2260         xorl    4(%edi),%ebx
2261         xorl    8(%edi),%ecx
2262         xorl    12(%edi),%edx
2263         subl    $16,%esi
2264         jc      .L026dec_partial
2265         movl    %esi,32(%esp)
2266         movl    24(%esp),%esi
2267         movl    28(%esp),%edi
2268         movl    %eax,(%edi)
2269         movl    %ebx,4(%edi)
2270         movl    %ecx,8(%edi)
2271         movl    %edx,12(%edi)
2272         movl    %esi,44(%esp)
2273         leal    16(%esi),%esi
2274         movl    %esi,24(%esp)
2275         leal    16(%edi),%edi
2276         movl    %edi,28(%esp)
2277         jnz     .L025dec_loop
2278         movl    44(%esp),%edi
2279 .L027dec_end:
2280         movl    40(%esp),%esi
2281         movl    (%edi),%eax
2282         movl    4(%edi),%ebx
2283         movl    8(%edi),%ecx
2284         movl    12(%edi),%edx
2285         movl    %eax,(%esi)
2286         movl    %ebx,4(%esi)
2287         movl    %ecx,8(%esi)
2288         movl    %edx,12(%esi)
2289         jmp     .L028dec_out
2290 .align  4
2291 .L026dec_partial:
2292         leal    44(%esp),%edi
2293         movl    %eax,(%edi)
2294         movl    %ebx,4(%edi)
2295         movl    %ecx,8(%edi)
2296         movl    %edx,12(%edi)
2297         leal    16(%esi),%ecx
2298         movl    %edi,%esi
2299         movl    28(%esp),%edi
2300 .long   2767451785
2301         movl    24(%esp),%edi
2302         jmp     .L027dec_end
2303 .align  4
2304 .L024dec_in_place:
2305 .L029dec_in_place_loop:
2306         leal    44(%esp),%edi
2307         movl    (%esi),%eax
2308         movl    4(%esi),%ebx
2309         movl    8(%esi),%ecx
2310         movl    12(%esi),%edx
2311         movl    %eax,(%edi)
2312         movl    %ebx,4(%edi)
2313         movl    %ecx,8(%edi)
2314         bswap   %eax
2315         movl    %edx,12(%edi)
2316         bswap   %ebx
2317         movl    36(%esp),%edi
2318         bswap   %ecx
2319         bswap   %edx
2320         call    _x86_Camellia_decrypt
2321         movl    40(%esp),%edi
2322         movl    28(%esp),%esi
2323         bswap   %eax
2324         bswap   %ebx
2325         bswap   %ecx
2326         xorl    (%edi),%eax
2327         bswap   %edx
2328         xorl    4(%edi),%ebx
2329         xorl    8(%edi),%ecx
2330         xorl    12(%edi),%edx
2331         movl    %eax,(%esi)
2332         movl    %ebx,4(%esi)
2333         movl    %ecx,8(%esi)
2334         movl    %edx,12(%esi)
2335         leal    16(%esi),%esi
2336         movl    %esi,28(%esp)
2337         leal    44(%esp),%esi
2338         movl    (%esi),%eax
2339         movl    4(%esi),%ebx
2340         movl    8(%esi),%ecx
2341         movl    12(%esi),%edx
2342         movl    %eax,(%edi)
2343         movl    %ebx,4(%edi)
2344         movl    %ecx,8(%edi)
2345         movl    %edx,12(%edi)
2346         movl    24(%esp),%esi
2347         leal    16(%esi),%esi
2348         movl    %esi,24(%esp)
2349         movl    32(%esp),%ecx
2350         subl    $16,%ecx
2351         jc      .L030dec_in_place_partial
2352         movl    %ecx,32(%esp)
2353         jnz     .L029dec_in_place_loop
2354         jmp     .L028dec_out
2355 .align  4
2356 .L030dec_in_place_partial:
2357         movl    28(%esp),%edi
2358         leal    44(%esp),%esi
2359         leal    (%edi,%ecx,1),%edi
2360         leal    16(%esi,%ecx,1),%esi
2361         negl    %ecx
2362 .long   2767451785
2363 .align  4
2364 .L028dec_out:
2365         movl    20(%esp),%esp
2366         popfl
2367         popl    %edi
2368         popl    %esi
2369         popl    %ebx
2370         popl    %ebp
2371         ret
2372 .size   Camellia_cbc_encrypt,.-.L_Camellia_cbc_encrypt_begin
2373 .byte   67,97,109,101,108,108,105,97,32,102,111,114,32,120,56,54
2374 .byte   32,98,121,32,60,97,112,112,114,111,64,111,112,101,110,115
2375 .byte   115,108,46,111,114,103,62,0