1 /* $FreeBSD$ */
2 /* Do not modify. This file is auto-generated from cmll-x86.pl. */
3 #ifdef PIC
4 .text
5 .globl Camellia_EncryptBlock_Rounds
6 .type Camellia_EncryptBlock_Rounds,@function
7 .align 16
8 Camellia_EncryptBlock_Rounds:
9 .L_Camellia_EncryptBlock_Rounds_begin:
10 pushl %ebp
11 pushl %ebx
12 pushl %esi
13 pushl %edi
14 movl 20(%esp),%eax
15 movl 24(%esp),%esi
16 movl 28(%esp),%edi
17 movl %esp,%ebx
18 subl $28,%esp
19 andl $-64,%esp
20 leal -127(%edi),%ecx
21 subl %esp,%ecx
22 negl %ecx
23 andl $960,%ecx
24 subl %ecx,%esp
25 addl $4,%esp
26 shll $6,%eax
27 leal (%edi,%eax,1),%eax
28 movl %ebx,20(%esp)
29 movl %eax,16(%esp)
30 call .L000pic_point
31 .L000pic_point:
32 popl %ebp
33 leal .LCamellia_SBOX-.L000pic_point(%ebp),%ebp
34 movl (%esi),%eax
35 movl 4(%esi),%ebx
36 movl 8(%esi),%ecx
37 bswap %eax
38 movl 12(%esi),%edx
39 bswap %ebx
40 bswap %ecx
41 bswap %edx
42 call _x86_Camellia_encrypt
43 movl 20(%esp),%esp
44 bswap %eax
45 movl 32(%esp),%esi
46 bswap %ebx
47 bswap %ecx
48 bswap %edx
49 movl %eax,(%esi)
50 movl %ebx,4(%esi)
51 movl %ecx,8(%esi)
52 movl %edx,12(%esi)
53 popl %edi
54 popl %esi
55 popl %ebx
56 popl %ebp
57 ret
58 .size Camellia_EncryptBlock_Rounds,.-.L_Camellia_EncryptBlock_Rounds_begin
59 .globl Camellia_EncryptBlock
60 .type Camellia_EncryptBlock,@function
61 .align 16
62 Camellia_EncryptBlock:
63 .L_Camellia_EncryptBlock_begin:
64 movl $128,%eax
65 subl 4(%esp),%eax
66 movl $3,%eax
67 adcl $0,%eax
68 movl %eax,4(%esp)
69 jmp .L_Camellia_EncryptBlock_Rounds_begin
70 .size Camellia_EncryptBlock,.-.L_Camellia_EncryptBlock_begin
71 .globl Camellia_encrypt
72 .type Camellia_encrypt,@function
73 .align 16
74 Camellia_encrypt:
75 .L_Camellia_encrypt_begin:
76 pushl %ebp
77 pushl %ebx
78 pushl %esi
79 pushl %edi
80 movl 20(%esp),%esi
81 movl 28(%esp),%edi
82 movl %esp,%ebx
83 subl $28,%esp
84 andl $-64,%esp
85 movl 272(%edi),%eax
86 leal -127(%edi),%ecx
87 subl %esp,%ecx
88 negl %ecx
89 andl $960,%ecx
90 subl %ecx,%esp
91 addl $4,%esp
92 shll $6,%eax
93 leal (%edi,%eax,1),%eax
94 movl %ebx,20(%esp)
95 movl %eax,16(%esp)
96 call .L001pic_point
97 .L001pic_point:
98 popl %ebp
99 leal .LCamellia_SBOX-.L001pic_point(%ebp),%ebp
100 movl (%esi),%eax
101 movl 4(%esi),%ebx
102 movl 8(%esi),%ecx
103 bswap %eax
104 movl 12(%esi),%edx
105 bswap %ebx
106 bswap %ecx
107 bswap %edx
108 call _x86_Camellia_encrypt
109 movl 20(%esp),%esp
110 bswap %eax
111 movl 24(%esp),%esi
112 bswap %ebx
113 bswap %ecx
114 bswap %edx
115 movl %eax,(%esi)
116 movl %ebx,4(%esi)
117 movl %ecx,8(%esi)
118 movl %edx,12(%esi)
119 popl %edi
120 popl %esi
121 popl %ebx
122 popl %ebp
123 ret
124 .size Camellia_encrypt,.-.L_Camellia_encrypt_begin
125 .type _x86_Camellia_encrypt,@function
126 .align 16
127 _x86_Camellia_encrypt:
128 xorl (%edi),%eax
129 xorl 4(%edi),%ebx
130 xorl 8(%edi),%ecx
131 xorl 12(%edi),%edx
132 movl 16(%edi),%esi
133 movl %eax,4(%esp)
134 movl %ebx,8(%esp)
135 movl %ecx,12(%esp)
136 movl %edx,16(%esp)
137 .align 16
138 .L002loop:
139 xorl %esi,%eax
140 xorl 20(%edi),%ebx
141 movzbl %ah,%esi
142 movl 2052(%ebp,%esi,8),%edx
143 movzbl %al,%esi
144 xorl 4(%ebp,%esi,8),%edx
145 shrl $16,%eax
146 movzbl %bl,%esi
147 movl (%ebp,%esi,8),%ecx
148 movzbl %ah,%esi
149 xorl (%ebp,%esi,8),%edx
150 movzbl %bh,%esi
151 xorl 4(%ebp,%esi,8),%ecx
152 shrl $16,%ebx
153 movzbl %al,%eax
154 xorl 2048(%ebp,%eax,8),%edx
155 movzbl %bh,%esi
156 movl 16(%esp),%eax
157 xorl %edx,%ecx
158 rorl $8,%edx
159 xorl 2048(%ebp,%esi,8),%ecx
160 movzbl %bl,%esi
161 movl 12(%esp),%ebx
162 xorl %eax,%edx
163 xorl 2052(%ebp,%esi,8),%ecx
164 movl 24(%edi),%esi
165 xorl %ecx,%edx
166 movl %edx,16(%esp)
167 xorl %ebx,%ecx
168 movl %ecx,12(%esp)
169 xorl %esi,%ecx
170 xorl 28(%edi),%edx
171 movzbl %ch,%esi
172 movl 2052(%ebp,%esi,8),%ebx
173 movzbl %cl,%esi
174 xorl 4(%ebp,%esi,8),%ebx
175 shrl $16,%ecx
176 movzbl %dl,%esi
177 movl (%ebp,%esi,8),%eax
178 movzbl %ch,%esi
179 xorl (%ebp,%esi,8),%ebx
180 movzbl %dh,%esi
181 xorl 4(%ebp,%esi,8),%eax
182 shrl $16,%edx
183 movzbl %cl,%ecx
184 xorl 2048(%ebp,%ecx,8),%ebx
185 movzbl %dh,%esi
186 movl 8(%esp),%ecx
187 xorl %ebx,%eax
188 rorl $8,%ebx
189 xorl 2048(%ebp,%esi,8),%eax
190 movzbl %dl,%esi
191 movl 4(%esp),%edx
192 xorl %ecx,%ebx
193 xorl 2052(%ebp,%esi,8),%eax
194 movl 32(%edi),%esi
195 xorl %eax,%ebx
196 movl %ebx,8(%esp)
197 xorl %edx,%eax
198 movl %eax,4(%esp)
199 xorl %esi,%eax
200 xorl 36(%edi),%ebx
201 movzbl %ah,%esi
202 movl 2052(%ebp,%esi,8),%edx
203 movzbl %al,%esi
204 xorl 4(%ebp,%esi,8),%edx
205 shrl $16,%eax
206 movzbl %bl,%esi
207 movl (%ebp,%esi,8),%ecx
208 movzbl %ah,%esi
209 xorl (%ebp,%esi,8),%edx
210 movzbl %bh,%esi
211 xorl 4(%ebp,%esi,8),%ecx
212 shrl $16,%ebx
213 movzbl %al,%eax
214 xorl 2048(%ebp,%eax,8),%edx
215 movzbl %bh,%esi
216 movl 16(%esp),%eax
217 xorl %edx,%ecx
218 rorl $8,%edx
219 xorl 2048(%ebp,%esi,8),%ecx
220 movzbl %bl,%esi
221 movl 12(%esp),%ebx
222 xorl %eax,%edx
223 xorl 2052(%ebp,%esi,8),%ecx
224 movl 40(%edi),%esi
225 xorl %ecx,%edx
226 movl %edx,16(%esp)
227 xorl %ebx,%ecx
228 movl %ecx,12(%esp)
229 xorl %esi,%ecx
230 xorl 44(%edi),%edx
231 movzbl %ch,%esi
232 movl 2052(%ebp,%esi,8),%ebx
233 movzbl %cl,%esi
234 xorl 4(%ebp,%esi,8),%ebx
235 shrl $16,%ecx
236 movzbl %dl,%esi
237 movl (%ebp,%esi,8),%eax
238 movzbl %ch,%esi
239 xorl (%ebp,%esi,8),%ebx
240 movzbl %dh,%esi
241 xorl 4(%ebp,%esi,8),%eax
242 shrl $16,%edx
243 movzbl %cl,%ecx
244 xorl 2048(%ebp,%ecx,8),%ebx
245 movzbl %dh,%esi
246 movl 8(%esp),%ecx
247 xorl %ebx,%eax
248 rorl $8,%ebx
249 xorl 2048(%ebp,%esi,8),%eax
250 movzbl %dl,%esi
251 movl 4(%esp),%edx
252 xorl %ecx,%ebx
253 xorl 2052(%ebp,%esi,8),%eax
254 movl 48(%edi),%esi
255 xorl %eax,%ebx
256 movl %ebx,8(%esp)
257 xorl %edx,%eax
258 movl %eax,4(%esp)
259 xorl %esi,%eax
260 xorl 52(%edi),%ebx
261 movzbl %ah,%esi
262 movl 2052(%ebp,%esi,8),%edx
263 movzbl %al,%esi
264 xorl 4(%ebp,%esi,8),%edx
265 shrl $16,%eax
266 movzbl %bl,%esi
267 movl (%ebp,%esi,8),%ecx
268 movzbl %ah,%esi
269 xorl (%ebp,%esi,8),%edx
270 movzbl %bh,%esi
271 xorl 4(%ebp,%esi,8),%ecx
272 shrl $16,%ebx
273 movzbl %al,%eax
274 xorl 2048(%ebp,%eax,8),%edx
275 movzbl %bh,%esi
276 movl 16(%esp),%eax
277 xorl %edx,%ecx
278 rorl $8,%edx
279 xorl 2048(%ebp,%esi,8),%ecx
280 movzbl %bl,%esi
281 movl 12(%esp),%ebx
282 xorl %eax,%edx
283 xorl 2052(%ebp,%esi,8),%ecx
284 movl 56(%edi),%esi
285 xorl %ecx,%edx
286 movl %edx,16(%esp)
287 xorl %ebx,%ecx
288 movl %ecx,12(%esp)
289 xorl %esi,%ecx
290 xorl 60(%edi),%edx
291 movzbl %ch,%esi
292 movl 2052(%ebp,%esi,8),%ebx
293 movzbl %cl,%esi
294 xorl 4(%ebp,%esi,8),%ebx
295 shrl $16,%ecx
296 movzbl %dl,%esi
297 movl (%ebp,%esi,8),%eax
298 movzbl %ch,%esi
299 xorl (%ebp,%esi,8),%ebx
300 movzbl %dh,%esi
301 xorl 4(%ebp,%esi,8),%eax
302 shrl $16,%edx
303 movzbl %cl,%ecx
304 xorl 2048(%ebp,%ecx,8),%ebx
305 movzbl %dh,%esi
306 movl 8(%esp),%ecx
307 xorl %ebx,%eax
308 rorl $8,%ebx
309 xorl 2048(%ebp,%esi,8),%eax
310 movzbl %dl,%esi
311 movl 4(%esp),%edx
312 xorl %ecx,%ebx
313 xorl 2052(%ebp,%esi,8),%eax
314 movl 64(%edi),%esi
315 xorl %eax,%ebx
316 movl %ebx,8(%esp)
317 xorl %edx,%eax
318 movl %eax,4(%esp)
319 addl $64,%edi
320 cmpl 20(%esp),%edi
321 je .L003done
322 andl %eax,%esi
323 movl 16(%esp),%edx
324 roll $1,%esi
325 movl %edx,%ecx
326 xorl %esi,%ebx
327 orl 12(%edi),%ecx
328 movl %ebx,8(%esp)
329 xorl 12(%esp),%ecx
330 movl 4(%edi),%esi
331 movl %ecx,12(%esp)
332 orl %ebx,%esi
333 andl 8(%edi),%ecx
334 xorl %esi,%eax
335 roll $1,%ecx
336 movl %eax,4(%esp)
337 xorl %ecx,%edx
338 movl 16(%edi),%esi
339 movl %edx,16(%esp)
340 jmp .L002loop
341 .align 8
342 .L003done:
343 movl %eax,%ecx
344 movl %ebx,%edx
345 movl 12(%esp),%eax
346 movl 16(%esp),%ebx
347 xorl %esi,%eax
348 xorl 4(%edi),%ebx
349 xorl 8(%edi),%ecx
350 xorl 12(%edi),%edx
351 ret
352 .size _x86_Camellia_encrypt,.-_x86_Camellia_encrypt
353 .globl Camellia_DecryptBlock_Rounds
354 .type Camellia_DecryptBlock_Rounds,@function
355 .align 16
356 Camellia_DecryptBlock_Rounds:
357 .L_Camellia_DecryptBlock_Rounds_begin:
358 pushl %ebp
359 pushl %ebx
360 pushl %esi
361 pushl %edi
362 movl 20(%esp),%eax
363 movl 24(%esp),%esi
364 movl 28(%esp),%edi
365 movl %esp,%ebx
366 subl $28,%esp
367 andl $-64,%esp
368 leal -127(%edi),%ecx
369 subl %esp,%ecx
370 negl %ecx
371 andl $960,%ecx
372 subl %ecx,%esp
373 addl $4,%esp
374 shll $6,%eax
375 movl %edi,16(%esp)
376 leal (%edi,%eax,1),%edi
377 movl %ebx,20(%esp)
378 call .L004pic_point
379 .L004pic_point:
380 popl %ebp
381 leal .LCamellia_SBOX-.L004pic_point(%ebp),%ebp
382 movl (%esi),%eax
383 movl 4(%esi),%ebx
384 movl 8(%esi),%ecx
385 bswap %eax
386 movl 12(%esi),%edx
387 bswap %ebx
388 bswap %ecx
389 bswap %edx
390 call _x86_Camellia_decrypt
391 movl 20(%esp),%esp
392 bswap %eax
393 movl 32(%esp),%esi
394 bswap %ebx
395 bswap %ecx
396 bswap %edx
397 movl %eax,(%esi)
398 movl %ebx,4(%esi)
399 movl %ecx,8(%esi)
400 movl %edx,12(%esi)
401 popl %edi
402 popl %esi
403 popl %ebx
404 popl %ebp
405 ret
406 .size Camellia_DecryptBlock_Rounds,.-.L_Camellia_DecryptBlock_Rounds_begin
407 .globl Camellia_DecryptBlock
408 .type Camellia_DecryptBlock,@function
409 .align 16
410 Camellia_DecryptBlock:
411 .L_Camellia_DecryptBlock_begin:
412 movl $128,%eax
413 subl 4(%esp),%eax
414 movl $3,%eax
415 adcl $0,%eax
416 movl %eax,4(%esp)
417 jmp .L_Camellia_DecryptBlock_Rounds_begin
418 .size Camellia_DecryptBlock,.-.L_Camellia_DecryptBlock_begin
419 .globl Camellia_decrypt
420 .type Camellia_decrypt,@function
421 .align 16
422 Camellia_decrypt:
423 .L_Camellia_decrypt_begin:
424 pushl %ebp
425 pushl %ebx
426 pushl %esi
427 pushl %edi
428 movl 20(%esp),%esi
429 movl 28(%esp),%edi
430 movl %esp,%ebx
431 subl $28,%esp
432 andl $-64,%esp
433 movl 272(%edi),%eax
434 leal -127(%edi),%ecx
435 subl %esp,%ecx
436 negl %ecx
437 andl $960,%ecx
438 subl %ecx,%esp
439 addl $4,%esp
440 shll $6,%eax
441 movl %edi,16(%esp)
442 leal (%edi,%eax,1),%edi
443 movl %ebx,20(%esp)
444 call .L005pic_point
445 .L005pic_point:
446 popl %ebp
447 leal .LCamellia_SBOX-.L005pic_point(%ebp),%ebp
448 movl (%esi),%eax
449 movl 4(%esi),%ebx
450 movl 8(%esi),%ecx
451 bswap %eax
452 movl 12(%esi),%edx
453 bswap %ebx
454 bswap %ecx
455 bswap %edx
456 call _x86_Camellia_decrypt
457 movl 20(%esp),%esp
458 bswap %eax
459 movl 24(%esp),%esi
460 bswap %ebx
461 bswap %ecx
462 bswap %edx
463 movl %eax,(%esi)
464 movl %ebx,4(%esi)
465 movl %ecx,8(%esi)
466 movl %edx,12(%esi)
467 popl %edi
468 popl %esi
469 popl %ebx
470 popl %ebp
471 ret
472 .size Camellia_decrypt,.-.L_Camellia_decrypt_begin
473 .type _x86_Camellia_decrypt,@function
474 .align 16
475 _x86_Camellia_decrypt:
476 xorl (%edi),%eax
477 xorl 4(%edi),%ebx
478 xorl 8(%edi),%ecx
479 xorl 12(%edi),%edx
480 movl -8(%edi),%esi
481 movl %eax,4(%esp)
482 movl %ebx,8(%esp)
483 movl %ecx,12(%esp)
484 movl %edx,16(%esp)
485 .align 16
486 .L006loop:
487 xorl %esi,%eax
488 xorl -4(%edi),%ebx
489 movzbl %ah,%esi
490 movl 2052(%ebp,%esi,8),%edx
491 movzbl %al,%esi
492 xorl 4(%ebp,%esi,8),%edx
493 shrl $16,%eax
494 movzbl %bl,%esi
495 movl (%ebp,%esi,8),%ecx
496 movzbl %ah,%esi
497 xorl (%ebp,%esi,8),%edx
498 movzbl %bh,%esi
499 xorl 4(%ebp,%esi,8),%ecx
500 shrl $16,%ebx
501 movzbl %al,%eax
502 xorl 2048(%ebp,%eax,8),%edx
503 movzbl %bh,%esi
504 movl 16(%esp),%eax
505 xorl %edx,%ecx
506 rorl $8,%edx
507 xorl 2048(%ebp,%esi,8),%ecx
508 movzbl %bl,%esi
509 movl 12(%esp),%ebx
510 xorl %eax,%edx
511 xorl 2052(%ebp,%esi,8),%ecx
512 movl -16(%edi),%esi
513 xorl %ecx,%edx
514 movl %edx,16(%esp)
515 xorl %ebx,%ecx
516 movl %ecx,12(%esp)
517 xorl %esi,%ecx
518 xorl -12(%edi),%edx
519 movzbl %ch,%esi
520 movl 2052(%ebp,%esi,8),%ebx
521 movzbl %cl,%esi
522 xorl 4(%ebp,%esi,8),%ebx
523 shrl $16,%ecx
524 movzbl %dl,%esi
525 movl (%ebp,%esi,8),%eax
526 movzbl %ch,%esi
527 xorl (%ebp,%esi,8),%ebx
528 movzbl %dh,%esi
529 xorl 4(%ebp,%esi,8),%eax
530 shrl $16,%edx
531 movzbl %cl,%ecx
532 xorl 2048(%ebp,%ecx,8),%ebx
533 movzbl %dh,%esi
534 movl 8(%esp),%ecx
535 xorl %ebx,%eax
536 rorl $8,%ebx
537 xorl 2048(%ebp,%esi,8),%eax
538 movzbl %dl,%esi
539 movl 4(%esp),%edx
540 xorl %ecx,%ebx
541 xorl 2052(%ebp,%esi,8),%eax
542 movl -24(%edi),%esi
543 xorl %eax,%ebx
544 movl %ebx,8(%esp)
545 xorl %edx,%eax
546 movl %eax,4(%esp)
547 xorl %esi,%eax
548 xorl -20(%edi),%ebx
549 movzbl %ah,%esi
550 movl 2052(%ebp,%esi,8),%edx
551 movzbl %al,%esi
552 xorl 4(%ebp,%esi,8),%edx
553 shrl $16,%eax
554 movzbl %bl,%esi
555 movl (%ebp,%esi,8),%ecx
556 movzbl %ah,%esi
557 xorl (%ebp,%esi,8),%edx
558 movzbl %bh,%esi
559 xorl 4(%ebp,%esi,8),%ecx
560 shrl $16,%ebx
561 movzbl %al,%eax
562 xorl 2048(%ebp,%eax,8),%edx
563 movzbl %bh,%esi
564 movl 16(%esp),%eax
565 xorl %edx,%ecx
566 rorl $8,%edx
567 xorl 2048(%ebp,%esi,8),%ecx
568 movzbl %bl,%esi
569 movl 12(%esp),%ebx
570 xorl %eax,%edx
571 xorl 2052(%ebp,%esi,8),%ecx
572 movl -32(%edi),%esi
573 xorl %ecx,%edx
574 movl %edx,16(%esp)
575 xorl %ebx,%ecx
576 movl %ecx,12(%esp)
577 xorl %esi,%ecx
578 xorl -28(%edi),%edx
579 movzbl %ch,%esi
580 movl 2052(%ebp,%esi,8),%ebx
581 movzbl %cl,%esi
582 xorl 4(%ebp,%esi,8),%ebx
583 shrl $16,%ecx
584 movzbl %dl,%esi
585 movl (%ebp,%esi,8),%eax
586 movzbl %ch,%esi
587 xorl (%ebp,%esi,8),%ebx
588 movzbl %dh,%esi
589 xorl 4(%ebp,%esi,8),%eax
590 shrl $16,%edx
591 movzbl %cl,%ecx
592 xorl 2048(%ebp,%ecx,8),%ebx
593 movzbl %dh,%esi
594 movl 8(%esp),%ecx
595 xorl %ebx,%eax
596 rorl $8,%ebx
597 xorl 2048(%ebp,%esi,8),%eax
598 movzbl %dl,%esi
599 movl 4(%esp),%edx
600 xorl %ecx,%ebx
601 xorl 2052(%ebp,%esi,8),%eax
602 movl -40(%edi),%esi
603 xorl %eax,%ebx
604 movl %ebx,8(%esp)
605 xorl %edx,%eax
606 movl %eax,4(%esp)
607 xorl %esi,%eax
608 xorl -36(%edi),%ebx
609 movzbl %ah,%esi
610 movl 2052(%ebp,%esi,8),%edx
611 movzbl %al,%esi
612 xorl 4(%ebp,%esi,8),%edx
613 shrl $16,%eax
614 movzbl %bl,%esi
615 movl (%ebp,%esi,8),%ecx
616 movzbl %ah,%esi
617 xorl (%ebp,%esi,8),%edx
618 movzbl %bh,%esi
619 xorl 4(%ebp,%esi,8),%ecx
620 shrl $16,%ebx
621 movzbl %al,%eax
622 xorl 2048(%ebp,%eax,8),%edx
623 movzbl %bh,%esi
624 movl 16(%esp),%eax
625 xorl %edx,%ecx
626 rorl $8,%edx
627 xorl 2048(%ebp,%esi,8),%ecx
628 movzbl %bl,%esi
629 movl 12(%esp),%ebx
630 xorl %eax,%edx
631 xorl 2052(%ebp,%esi,8),%ecx
632 movl -48(%edi),%esi
633 xorl %ecx,%edx
634 movl %edx,16(%esp)
635 xorl %ebx,%ecx
636 movl %ecx,12(%esp)
637 xorl %esi,%ecx
638 xorl -44(%edi),%edx
639 movzbl %ch,%esi
640 movl 2052(%ebp,%esi,8),%ebx
641 movzbl %cl,%esi
642 xorl 4(%ebp,%esi,8),%ebx
643 shrl $16,%ecx
644 movzbl %dl,%esi
645 movl (%ebp,%esi,8),%eax
646 movzbl %ch,%esi
647 xorl (%ebp,%esi,8),%ebx
648 movzbl %dh,%esi
649 xorl 4(%ebp,%esi,8),%eax
650 shrl $16,%edx
651 movzbl %cl,%ecx
652 xorl 2048(%ebp,%ecx,8),%ebx
653 movzbl %dh,%esi
654 movl 8(%esp),%ecx
655 xorl %ebx,%eax
656 rorl $8,%ebx
657 xorl 2048(%ebp,%esi,8),%eax
658 movzbl %dl,%esi
659 movl 4(%esp),%edx
660 xorl %ecx,%ebx
661 xorl 2052(%ebp,%esi,8),%eax
662 movl -56(%edi),%esi
663 xorl %eax,%ebx
664 movl %ebx,8(%esp)
665 xorl %edx,%eax
666 movl %eax,4(%esp)
667 subl $64,%edi
668 cmpl 20(%esp),%edi
669 je .L007done
670 andl %eax,%esi
671 movl 16(%esp),%edx
672 roll $1,%esi
673 movl %edx,%ecx
674 xorl %esi,%ebx
675 orl 4(%edi),%ecx
676 movl %ebx,8(%esp)
677 xorl 12(%esp),%ecx
678 movl 12(%edi),%esi
679 movl %ecx,12(%esp)
680 orl %ebx,%esi
681 andl (%edi),%ecx
682 xorl %esi,%eax
683 roll $1,%ecx
684 movl %eax,4(%esp)
685 xorl %ecx,%edx
686 movl -8(%edi),%esi
687 movl %edx,16(%esp)
688 jmp .L006loop
689 .align 8
690 .L007done:
691 movl %eax,%ecx
692 movl %ebx,%edx
693 movl 12(%esp),%eax
694 movl 16(%esp),%ebx
695 xorl %esi,%ecx
696 xorl 12(%edi),%edx
697 xorl (%edi),%eax
698 xorl 4(%edi),%ebx
699 ret
700 .size _x86_Camellia_decrypt,.-_x86_Camellia_decrypt
701 .globl Camellia_Ekeygen
702 .type Camellia_Ekeygen,@function
703 .align 16
704 Camellia_Ekeygen:
705 .L_Camellia_Ekeygen_begin:
706 pushl %ebp
707 pushl %ebx
708 pushl %esi
709 pushl %edi
710 subl $16,%esp
711 movl 36(%esp),%ebp
712 movl 40(%esp),%esi
713 movl 44(%esp),%edi
714 movl (%esi),%eax
715 movl 4(%esi),%ebx
716 movl 8(%esi),%ecx
717 movl 12(%esi),%edx
718 bswap %eax
719 bswap %ebx
720 bswap %ecx
721 bswap %edx
722 movl %eax,(%edi)
723 movl %ebx,4(%edi)
724 movl %ecx,8(%edi)
725 movl %edx,12(%edi)
726 cmpl $128,%ebp
727 je .L0081st128
728 movl 16(%esi),%eax
729 movl 20(%esi),%ebx
730 cmpl $192,%ebp
731 je .L0091st192
732 movl 24(%esi),%ecx
733 movl 28(%esi),%edx
734 jmp .L0101st256
735 .align 4
736 .L0091st192:
737 movl %eax,%ecx
738 movl %ebx,%edx
739 notl %ecx
740 notl %edx
741 .align 4
742 .L0101st256:
743 bswap %eax
744 bswap %ebx
745 bswap %ecx
746 bswap %edx
747 movl %eax,32(%edi)
748 movl %ebx,36(%edi)
749 movl %ecx,40(%edi)
750 movl %edx,44(%edi)
751 xorl (%edi),%eax
752 xorl 4(%edi),%ebx
753 xorl 8(%edi),%ecx
754 xorl 12(%edi),%edx
755 .align 4
756 .L0081st128:
757 call .L011pic_point
758 .L011pic_point:
759 popl %ebp
760 leal .LCamellia_SBOX-.L011pic_point(%ebp),%ebp
761 leal .LCamellia_SIGMA-.LCamellia_SBOX(%ebp),%edi
762 movl (%edi),%esi
763 movl %eax,(%esp)
764 movl %ebx,4(%esp)
765 movl %ecx,8(%esp)
766 movl %edx,12(%esp)
767 xorl %esi,%eax
768 xorl 4(%edi),%ebx
769 movzbl %ah,%esi
770 movl 2052(%ebp,%esi,8),%edx
771 movzbl %al,%esi
772 xorl 4(%ebp,%esi,8),%edx
773 shrl $16,%eax
774 movzbl %bl,%esi
775 movl (%ebp,%esi,8),%ecx
776 movzbl %ah,%esi
777 xorl (%ebp,%esi,8),%edx
778 movzbl %bh,%esi
779 xorl 4(%ebp,%esi,8),%ecx
780 shrl $16,%ebx
781 movzbl %al,%eax
782 xorl 2048(%ebp,%eax,8),%edx
783 movzbl %bh,%esi
784 movl 12(%esp),%eax
785 xorl %edx,%ecx
786 rorl $8,%edx
787 xorl 2048(%ebp,%esi,8),%ecx
788 movzbl %bl,%esi
789 movl 8(%esp),%ebx
790 xorl %eax,%edx
791 xorl 2052(%ebp,%esi,8),%ecx
792 movl 8(%edi),%esi
793 xorl %ecx,%edx
794 movl %edx,12(%esp)
795 xorl %ebx,%ecx
796 movl %ecx,8(%esp)
797 xorl %esi,%ecx
798 xorl 12(%edi),%edx
799 movzbl %ch,%esi
800 movl 2052(%ebp,%esi,8),%ebx
801 movzbl %cl,%esi
802 xorl 4(%ebp,%esi,8),%ebx
803 shrl $16,%ecx
804 movzbl %dl,%esi
805 movl (%ebp,%esi,8),%eax
806 movzbl %ch,%esi
807 xorl (%ebp,%esi,8),%ebx
808 movzbl %dh,%esi
809 xorl 4(%ebp,%esi,8),%eax
810 shrl $16,%edx
811 movzbl %cl,%ecx
812 xorl 2048(%ebp,%ecx,8),%ebx
813 movzbl %dh,%esi
814 movl 4(%esp),%ecx
815 xorl %ebx,%eax
816 rorl $8,%ebx
817 xorl 2048(%ebp,%esi,8),%eax
818 movzbl %dl,%esi
819 movl (%esp),%edx
820 xorl %ecx,%ebx
821 xorl 2052(%ebp,%esi,8),%eax
822 movl 16(%edi),%esi
823 xorl %eax,%ebx
824 movl %ebx,4(%esp)
825 xorl %edx,%eax
826 movl %eax,(%esp)
827 movl 8(%esp),%ecx
828 movl 12(%esp),%edx
829 movl 44(%esp),%esi
830 xorl (%esi),%eax
831 xorl 4(%esi),%ebx
832 xorl 8(%esi),%ecx
833 xorl 12(%esi),%edx
834 movl 16(%edi),%esi
835 movl %eax,(%esp)
836 movl %ebx,4(%esp)
837 movl %ecx,8(%esp)
838 movl %edx,12(%esp)
839 xorl %esi,%eax
840 xorl 20(%edi),%ebx
841 movzbl %ah,%esi
842 movl 2052(%ebp,%esi,8),%edx
843 movzbl %al,%esi
844 xorl 4(%ebp,%esi,8),%edx
845 shrl $16,%eax
846 movzbl %bl,%esi
847 movl (%ebp,%esi,8),%ecx
848 movzbl %ah,%esi
849 xorl (%ebp,%esi,8),%edx
850 movzbl %bh,%esi
851 xorl 4(%ebp,%esi,8),%ecx
852 shrl $16,%ebx
853 movzbl %al,%eax
854 xorl 2048(%ebp,%eax,8),%edx
855 movzbl %bh,%esi
856 movl 12(%esp),%eax
857 xorl %edx,%ecx
858 rorl $8,%edx
859 xorl 2048(%ebp,%esi,8),%ecx
860 movzbl %bl,%esi
861 movl 8(%esp),%ebx
862 xorl %eax,%edx
863 xorl 2052(%ebp,%esi,8),%ecx
864 movl 24(%edi),%esi
865 xorl %ecx,%edx
866 movl %edx,12(%esp)
867 xorl %ebx,%ecx
868 movl %ecx,8(%esp)
869 xorl %esi,%ecx
870 xorl 28(%edi),%edx
871 movzbl %ch,%esi
872 movl 2052(%ebp,%esi,8),%ebx
873 movzbl %cl,%esi
874 xorl 4(%ebp,%esi,8),%ebx
875 shrl $16,%ecx
876 movzbl %dl,%esi
877 movl (%ebp,%esi,8),%eax
878 movzbl %ch,%esi
879 xorl (%ebp,%esi,8),%ebx
880 movzbl %dh,%esi
881 xorl 4(%ebp,%esi,8),%eax
882 shrl $16,%edx
883 movzbl %cl,%ecx
884 xorl 2048(%ebp,%ecx,8),%ebx
885 movzbl %dh,%esi
886 movl 4(%esp),%ecx
887 xorl %ebx,%eax
888 rorl $8,%ebx
889 xorl 2048(%ebp,%esi,8),%eax
890 movzbl %dl,%esi
891 movl (%esp),%edx
892 xorl %ecx,%ebx
893 xorl 2052(%ebp,%esi,8),%eax
894 movl 32(%edi),%esi
895 xorl %eax,%ebx
896 movl %ebx,4(%esp)
897 xorl %edx,%eax
898 movl %eax,(%esp)
899 movl 8(%esp),%ecx
900 movl 12(%esp),%edx
901 movl 36(%esp),%esi
902 cmpl $128,%esi
903 jne .L0122nd256
904 movl 44(%esp),%edi
905 leal 128(%edi),%edi
906 movl %eax,-112(%edi)
907 movl %ebx,-108(%edi)
908 movl %ecx,-104(%edi)
909 movl %edx,-100(%edi)
910 movl %eax,%ebp
911 shll $15,%eax
912 movl %ebx,%esi
913 shrl $17,%esi
914 shll $15,%ebx
915 orl %esi,%eax
916 movl %ecx,%esi
917 shll $15,%ecx
918 movl %eax,-80(%edi)
919 shrl $17,%esi
920 orl %esi,%ebx
921 shrl $17,%ebp
922 movl %edx,%esi
923 shrl $17,%esi
924 movl %ebx,-76(%edi)
925 shll $15,%edx
926 orl %esi,%ecx
927 orl %ebp,%edx
928 movl %ecx,-72(%edi)
929 movl %edx,-68(%edi)
930 movl %eax,%ebp
931 shll $15,%eax
932 movl %ebx,%esi
933 shrl $17,%esi
934 shll $15,%ebx
935 orl %esi,%eax
936 movl %ecx,%esi
937 shll $15,%ecx
938 movl %eax,-64(%edi)
939 shrl $17,%esi
940 orl %esi,%ebx
941 shrl $17,%ebp
942 movl %edx,%esi
943 shrl $17,%esi
944 movl %ebx,-60(%edi)
945 shll $15,%edx
946 orl %esi,%ecx
947 orl %ebp,%edx
948 movl %ecx,-56(%edi)
949 movl %edx,-52(%edi)
950 movl %eax,%ebp
951 shll $15,%eax
952 movl %ebx,%esi
953 shrl $17,%esi
954 shll $15,%ebx
955 orl %esi,%eax
956 movl %ecx,%esi
957 shll $15,%ecx
958 movl %eax,-32(%edi)
959 shrl $17,%esi
960 orl %esi,%ebx
961 shrl $17,%ebp
962 movl %edx,%esi
963 shrl $17,%esi
964 movl %ebx,-28(%edi)
965 shll $15,%edx
966 orl %esi,%ecx
967 orl %ebp,%edx
968 movl %eax,%ebp
969 shll $15,%eax
970 movl %ebx,%esi
971 shrl $17,%esi
972 shll $15,%ebx
973 orl %esi,%eax
974 movl %ecx,%esi
975 shll $15,%ecx
976 movl %eax,-16(%edi)
977 shrl $17,%esi
978 orl %esi,%ebx
979 shrl $17,%ebp
980 movl %edx,%esi
981 shrl $17,%esi
982 movl %ebx,-12(%edi)
983 shll $15,%edx
984 orl %esi,%ecx
985 orl %ebp,%edx
986 movl %ecx,-8(%edi)
987 movl %edx,-4(%edi)
988 movl %ebx,%ebp
989 shll $2,%ebx
990 movl %ecx,%esi
991 shrl $30,%esi
992 shll $2,%ecx
993 orl %esi,%ebx
994 movl %edx,%esi
995 shll $2,%edx
996 movl %ebx,32(%edi)
997 shrl $30,%esi
998 orl %esi,%ecx
999 shrl $30,%ebp
1000 movl %eax,%esi
1001 shrl $30,%esi
1002 movl %ecx,36(%edi)
1003 shll $2,%eax
1004 orl %esi,%edx
1005 orl %ebp,%eax
1006 movl %edx,40(%edi)
1007 movl %eax,44(%edi)
1008 movl %ebx,%ebp
1009 shll $17,%ebx
1010 movl %ecx,%esi
1011 shrl $15,%esi
1012 shll $17,%ecx
1013 orl %esi,%ebx
1014 movl %edx,%esi
1015 shll $17,%edx
1016 movl %ebx,64(%edi)
1017 shrl $15,%esi
1018 orl %esi,%ecx
1019 shrl $15,%ebp
1020 movl %eax,%esi
1021 shrl $15,%esi
1022 movl %ecx,68(%edi)
1023 shll $17,%eax
1024 orl %esi,%edx
1025 orl %ebp,%eax
1026 movl %edx,72(%edi)
1027 movl %eax,76(%edi)
1028 movl -128(%edi),%ebx
1029 movl -124(%edi),%ecx
1030 movl -120(%edi),%edx
1031 movl -116(%edi),%eax
1032 movl %ebx,%ebp
1033 shll $15,%ebx
1034 movl %ecx,%esi
1035 shrl $17,%esi
1036 shll $15,%ecx
1037 orl %esi,%ebx
1038 movl %edx,%esi
1039 shll $15,%edx
1040 movl %ebx,-96(%edi)
1041 shrl $17,%esi
1042 orl %esi,%ecx
1043 shrl $17,%ebp
1044 movl %eax,%esi
1045 shrl $17,%esi
1046 movl %ecx,-92(%edi)
1047 shll $15,%eax
1048 orl %esi,%edx
1049 orl %ebp,%eax
1050 movl %edx,-88(%edi)
1051 movl %eax,-84(%edi)
1052 movl %ebx,%ebp
1053 shll $30,%ebx
1054 movl %ecx,%esi
1055 shrl $2,%esi
1056 shll $30,%ecx
1057 orl %esi,%ebx
1058 movl %edx,%esi
1059 shll $30,%edx
1060 movl %ebx,-48(%edi)
1061 shrl $2,%esi
1062 orl %esi,%ecx
1063 shrl $2,%ebp
1064 movl %eax,%esi
1065 shrl $2,%esi
1066 movl %ecx,-44(%edi)
1067 shll $30,%eax
1068 orl %esi,%edx
1069 orl %ebp,%eax
1070 movl %edx,-40(%edi)
1071 movl %eax,-36(%edi)
1072 movl %ebx,%ebp
1073 shll $15,%ebx
1074 movl %ecx,%esi
1075 shrl $17,%esi
1076 shll $15,%ecx
1077 orl %esi,%ebx
1078 movl %edx,%esi
1079 shll $15,%edx
1080 shrl $17,%esi
1081 orl %esi,%ecx
1082 shrl $17,%ebp
1083 movl %eax,%esi
1084 shrl $17,%esi
1085 shll $15,%eax
1086 orl %esi,%edx
1087 orl %ebp,%eax
1088 movl %edx,-24(%edi)
1089 movl %eax,-20(%edi)
1090 movl %ebx,%ebp
1091 shll $17,%ebx
1092 movl %ecx,%esi
1093 shrl $15,%esi
1094 shll $17,%ecx
1095 orl %esi,%ebx
1096 movl %edx,%esi
1097 shll $17,%edx
1098 movl %ebx,(%edi)
1099 shrl $15,%esi
1100 orl %esi,%ecx
1101 shrl $15,%ebp
1102 movl %eax,%esi
1103 shrl $15,%esi
1104 movl %ecx,4(%edi)
1105 shll $17,%eax
1106 orl %esi,%edx
1107 orl %ebp,%eax
1108 movl %edx,8(%edi)
1109 movl %eax,12(%edi)
1110 movl %ebx,%ebp
1111 shll $17,%ebx
1112 movl %ecx,%esi
1113 shrl $15,%esi
1114 shll $17,%ecx
1115 orl %esi,%ebx
1116 movl %edx,%esi
1117 shll $17,%edx
1118 movl %ebx,16(%edi)
1119 shrl $15,%esi
1120 orl %esi,%ecx
1121 shrl $15,%ebp
1122 movl %eax,%esi
1123 shrl $15,%esi
1124 movl %ecx,20(%edi)
1125 shll $17,%eax
1126 orl %esi,%edx
1127 orl %ebp,%eax
1128 movl %edx,24(%edi)
1129 movl %eax,28(%edi)
1130 movl %ebx,%ebp
1131 shll $17,%ebx
1132 movl %ecx,%esi
1133 shrl $15,%esi
1134 shll $17,%ecx
1135 orl %esi,%ebx
1136 movl %edx,%esi
1137 shll $17,%edx
1138 movl %ebx,48(%edi)
1139 shrl $15,%esi
1140 orl %esi,%ecx
1141 shrl $15,%ebp
1142 movl %eax,%esi
1143 shrl $15,%esi
1144 movl %ecx,52(%edi)
1145 shll $17,%eax
1146 orl %esi,%edx
1147 orl %ebp,%eax
1148 movl %edx,56(%edi)
1149 movl %eax,60(%edi)
1150 movl $3,%eax
1151 jmp .L013done
1152 .align 16
1153 .L0122nd256:
1154 movl 44(%esp),%esi
1155 movl %eax,48(%esi)
1156 movl %ebx,52(%esi)
1157 movl %ecx,56(%esi)
1158 movl %edx,60(%esi)
1159 xorl 32(%esi),%eax
1160 xorl 36(%esi),%ebx
1161 xorl 40(%esi),%ecx
1162 xorl 44(%esi),%edx
1163 movl 32(%edi),%esi
1164 movl %eax,(%esp)
1165 movl %ebx,4(%esp)
1166 movl %ecx,8(%esp)
1167 movl %edx,12(%esp)
1168 xorl %esi,%eax
1169 xorl 36(%edi),%ebx
1170 movzbl %ah,%esi
1171 movl 2052(%ebp,%esi,8),%edx
1172 movzbl %al,%esi
1173 xorl 4(%ebp,%esi,8),%edx
1174 shrl $16,%eax
1175 movzbl %bl,%esi
1176 movl (%ebp,%esi,8),%ecx
1177 movzbl %ah,%esi
1178 xorl (%ebp,%esi,8),%edx
1179 movzbl %bh,%esi
1180 xorl 4(%ebp,%esi,8),%ecx
1181 shrl $16,%ebx
1182 movzbl %al,%eax
1183 xorl 2048(%ebp,%eax,8),%edx
1184 movzbl %bh,%esi
1185 movl 12(%esp),%eax
1186 xorl %edx,%ecx
1187 rorl $8,%edx
1188 xorl 2048(%ebp,%esi,8),%ecx
1189 movzbl %bl,%esi
1190 movl 8(%esp),%ebx
1191 xorl %eax,%edx
1192 xorl 2052(%ebp,%esi,8),%ecx
1193 movl 40(%edi),%esi
1194 xorl %ecx,%edx
1195 movl %edx,12(%esp)
1196 xorl %ebx,%ecx
1197 movl %ecx,8(%esp)
1198 xorl %esi,%ecx
1199 xorl 44(%edi),%edx
1200 movzbl %ch,%esi
1201 movl 2052(%ebp,%esi,8),%ebx
1202 movzbl %cl,%esi
1203 xorl 4(%ebp,%esi,8),%ebx
1204 shrl $16,%ecx
1205 movzbl %dl,%esi
1206 movl (%ebp,%esi,8),%eax
1207 movzbl %ch,%esi
1208 xorl (%ebp,%esi,8),%ebx
1209 movzbl %dh,%esi
1210 xorl 4(%ebp,%esi,8),%eax
1211 shrl $16,%edx
1212 movzbl %cl,%ecx
1213 xorl 2048(%ebp,%ecx,8),%ebx
1214 movzbl %dh,%esi
1215 movl 4(%esp),%ecx
1216 xorl %ebx,%eax
1217 rorl $8,%ebx
1218 xorl 2048(%ebp,%esi,8),%eax
1219 movzbl %dl,%esi
1220 movl (%esp),%edx
1221 xorl %ecx,%ebx
1222 xorl 2052(%ebp,%esi,8),%eax
1223 movl 48(%edi),%esi
1224 xorl %eax,%ebx
1225 movl %ebx,4(%esp)
1226 xorl %edx,%eax
1227 movl %eax,(%esp)
1228 movl 8(%esp),%ecx
1229 movl 12(%esp),%edx
1230 movl 44(%esp),%edi
1231 leal 128(%edi),%edi
1232 movl %eax,-112(%edi)
1233 movl %ebx,-108(%edi)
1234 movl %ecx,-104(%edi)
1235 movl %edx,-100(%edi)
1236 movl %eax,%ebp
1237 shll $30,%eax
1238 movl %ebx,%esi
1239 shrl $2,%esi
1240 shll $30,%ebx
1241 orl %esi,%eax
1242 movl %ecx,%esi
1243 shll $30,%ecx
1244 movl %eax,-48(%edi)
1245 shrl $2,%esi
1246 orl %esi,%ebx
1247 shrl $2,%ebp
1248 movl %edx,%esi
1249 shrl $2,%esi
1250 movl %ebx,-44(%edi)
1251 shll $30,%edx
1252 orl %esi,%ecx
1253 orl %ebp,%edx
1254 movl %ecx,-40(%edi)
1255 movl %edx,-36(%edi)
1256 movl %eax,%ebp
1257 shll $30,%eax
1258 movl %ebx,%esi
1259 shrl $2,%esi
1260 shll $30,%ebx
1261 orl %esi,%eax
1262 movl %ecx,%esi
1263 shll $30,%ecx
1264 movl %eax,32(%edi)
1265 shrl $2,%esi
1266 orl %esi,%ebx
1267 shrl $2,%ebp
1268 movl %edx,%esi
1269 shrl $2,%esi
1270 movl %ebx,36(%edi)
1271 shll $30,%edx
1272 orl %esi,%ecx
1273 orl %ebp,%edx
1274 movl %ecx,40(%edi)
1275 movl %edx,44(%edi)
1276 movl %ebx,%ebp
1277 shll $19,%ebx
1278 movl %ecx,%esi
1279 shrl $13,%esi
1280 shll $19,%ecx
1281 orl %esi,%ebx
1282 movl %edx,%esi
1283 shll $19,%edx
1284 movl %ebx,128(%edi)
1285 shrl $13,%esi
1286 orl %esi,%ecx
1287 shrl $13,%ebp
1288 movl %eax,%esi
1289 shrl $13,%esi
1290 movl %ecx,132(%edi)
1291 shll $19,%eax
1292 orl %esi,%edx
1293 orl %ebp,%eax
1294 movl %edx,136(%edi)
1295 movl %eax,140(%edi)
1296 movl -96(%edi),%ebx
1297 movl -92(%edi),%ecx
1298 movl -88(%edi),%edx
1299 movl -84(%edi),%eax
1300 movl %ebx,%ebp
1301 shll $15,%ebx
1302 movl %ecx,%esi
1303 shrl $17,%esi
1304 shll $15,%ecx
1305 orl %esi,%ebx
1306 movl %edx,%esi
1307 shll $15,%edx
1308 movl %ebx,-96(%edi)
1309 shrl $17,%esi
1310 orl %esi,%ecx
1311 shrl $17,%ebp
1312 movl %eax,%esi
1313 shrl $17,%esi
1314 movl %ecx,-92(%edi)
1315 shll $15,%eax
1316 orl %esi,%edx
1317 orl %ebp,%eax
1318 movl %edx,-88(%edi)
1319 movl %eax,-84(%edi)
1320 movl %ebx,%ebp
1321 shll $15,%ebx
1322 movl %ecx,%esi
1323 shrl $17,%esi
1324 shll $15,%ecx
1325 orl %esi,%ebx
1326 movl %edx,%esi
1327 shll $15,%edx
1328 movl %ebx,-64(%edi)
1329 shrl $17,%esi
1330 orl %esi,%ecx
1331 shrl $17,%ebp
1332 movl %eax,%esi
1333 shrl $17,%esi
1334 movl %ecx,-60(%edi)
1335 shll $15,%eax
1336 orl %esi,%edx
1337 orl %ebp,%eax
1338 movl %edx,-56(%edi)
1339 movl %eax,-52(%edi)
1340 movl %ebx,%ebp
1341 shll $30,%ebx
1342 movl %ecx,%esi
1343 shrl $2,%esi
1344 shll $30,%ecx
1345 orl %esi,%ebx
1346 movl %edx,%esi
1347 shll $30,%edx
1348 movl %ebx,16(%edi)
1349 shrl $2,%esi
1350 orl %esi,%ecx
1351 shrl $2,%ebp
1352 movl %eax,%esi
1353 shrl $2,%esi
1354 movl %ecx,20(%edi)
1355 shll $30,%eax
1356 orl %esi,%edx
1357 orl %ebp,%eax
1358 movl %edx,24(%edi)
1359 movl %eax,28(%edi)
1360 movl %ecx,%ebp
1361 shll $2,%ecx
1362 movl %edx,%esi
1363 shrl $30,%esi
1364 shll $2,%edx
1365 orl %esi,%ecx
1366 movl %eax,%esi
1367 shll $2,%eax
1368 movl %ecx,80(%edi)
1369 shrl $30,%esi
1370 orl %esi,%edx
1371 shrl $30,%ebp
1372 movl %ebx,%esi
1373 shrl $30,%esi
1374 movl %edx,84(%edi)
1375 shll $2,%ebx
1376 orl %esi,%eax
1377 orl %ebp,%ebx
1378 movl %eax,88(%edi)
1379 movl %ebx,92(%edi)
1380 movl -80(%edi),%ecx
1381 movl -76(%edi),%edx
1382 movl -72(%edi),%eax
1383 movl -68(%edi),%ebx
1384 movl %ecx,%ebp
1385 shll $15,%ecx
1386 movl %edx,%esi
1387 shrl $17,%esi
1388 shll $15,%edx
1389 orl %esi,%ecx
1390 movl %eax,%esi
1391 shll $15,%eax
1392 movl %ecx,-80(%edi)
1393 shrl $17,%esi
1394 orl %esi,%edx
1395 shrl $17,%ebp
1396 movl %ebx,%esi
1397 shrl $17,%esi
1398 movl %edx,-76(%edi)
1399 shll $15,%ebx
1400 orl %esi,%eax
1401 orl %ebp,%ebx
1402 movl %eax,-72(%edi)
1403 movl %ebx,-68(%edi)
1404 movl %ecx,%ebp
1405 shll $30,%ecx
1406 movl %edx,%esi
1407 shrl $2,%esi
1408 shll $30,%edx
1409 orl %esi,%ecx
1410 movl %eax,%esi
1411 shll $30,%eax
1412 movl %ecx,-16(%edi)
1413 shrl $2,%esi
1414 orl %esi,%edx
1415 shrl $2,%ebp
1416 movl %ebx,%esi
1417 shrl $2,%esi
1418 movl %edx,-12(%edi)
1419 shll $30,%ebx
1420 orl %esi,%eax
1421 orl %ebp,%ebx
1422 movl %eax,-8(%edi)
1423 movl %ebx,-4(%edi)
1424 movl %edx,64(%edi)
1425 movl %eax,68(%edi)
1426 movl %ebx,72(%edi)
1427 movl %ecx,76(%edi)
1428 movl %edx,%ebp
1429 shll $17,%edx
1430 movl %eax,%esi
1431 shrl $15,%esi
1432 shll $17,%eax
1433 orl %esi,%edx
1434 movl %ebx,%esi
1435 shll $17,%ebx
1436 movl %edx,96(%edi)
1437 shrl $15,%esi
1438 orl %esi,%eax
1439 shrl $15,%ebp
1440 movl %ecx,%esi
1441 shrl $15,%esi
1442 movl %eax,100(%edi)
1443 shll $17,%ecx
1444 orl %esi,%ebx
1445 orl %ebp,%ecx
1446 movl %ebx,104(%edi)
1447 movl %ecx,108(%edi)
1448 movl -128(%edi),%edx
1449 movl -124(%edi),%eax
1450 movl -120(%edi),%ebx
1451 movl -116(%edi),%ecx
1452 movl %eax,%ebp
1453 shll $13,%eax
1454 movl %ebx,%esi
1455 shrl $19,%esi
1456 shll $13,%ebx
1457 orl %esi,%eax
1458 movl %ecx,%esi
1459 shll $13,%ecx
1460 movl %eax,-32(%edi)
1461 shrl $19,%esi
1462 orl %esi,%ebx
1463 shrl $19,%ebp
1464 movl %edx,%esi
1465 shrl $19,%esi
1466 movl %ebx,-28(%edi)
1467 shll $13,%edx
1468 orl %esi,%ecx
1469 orl %ebp,%edx
1470 movl %ecx,-24(%edi)
1471 movl %edx,-20(%edi)
1472 movl %eax,%ebp
1473 shll $15,%eax
1474 movl %ebx,%esi
1475 shrl $17,%esi
1476 shll $15,%ebx
1477 orl %esi,%eax
1478 movl %ecx,%esi
1479 shll $15,%ecx
1480 movl %eax,(%edi)
1481 shrl $17,%esi
1482 orl %esi,%ebx
1483 shrl $17,%ebp
1484 movl %edx,%esi
1485 shrl $17,%esi
1486 movl %ebx,4(%edi)
1487 shll $15,%edx
1488 orl %esi,%ecx
1489 orl %ebp,%edx
1490 movl %ecx,8(%edi)
1491 movl %edx,12(%edi)
1492 movl %eax,%ebp
1493 shll $17,%eax
1494 movl %ebx,%esi
1495 shrl $15,%esi
1496 shll $17,%ebx
1497 orl %esi,%eax
1498 movl %ecx,%esi
1499 shll $17,%ecx
1500 movl %eax,48(%edi)
1501 shrl $15,%esi
1502 orl %esi,%ebx
1503 shrl $15,%ebp
1504 movl %edx,%esi
1505 shrl $15,%esi
1506 movl %ebx,52(%edi)
1507 shll $17,%edx
1508 orl %esi,%ecx
1509 orl %ebp,%edx
1510 movl %ecx,56(%edi)
1511 movl %edx,60(%edi)
1512 movl %ebx,%ebp
1513 shll $2,%ebx
1514 movl %ecx,%esi
1515 shrl $30,%esi
1516 shll $2,%ecx
1517 orl %esi,%ebx
1518 movl %edx,%esi
1519 shll $2,%edx
1520 movl %ebx,112(%edi)
1521 shrl $30,%esi
1522 orl %esi,%ecx
1523 shrl $30,%ebp
1524 movl %eax,%esi
1525 shrl $30,%esi
1526 movl %ecx,116(%edi)
1527 shll $2,%eax
1528 orl %esi,%edx
1529 orl %ebp,%eax
1530 movl %edx,120(%edi)
1531 movl %eax,124(%edi)
1532 movl $4,%eax
1533 .L013done:
1534 leal 144(%edi),%edx
1535 addl $16,%esp
1536 popl %edi
1537 popl %esi
1538 popl %ebx
1539 popl %ebp
1540 ret
1541 .size Camellia_Ekeygen,.-.L_Camellia_Ekeygen_begin
1542 .globl Camellia_set_key
1543 .type Camellia_set_key,@function
1544 .align 16
1545 Camellia_set_key:
1546 .L_Camellia_set_key_begin:
1547 pushl %ebx
1548 movl 8(%esp),%ecx
1549 movl 12(%esp),%ebx
1550 movl 16(%esp),%edx
1551 movl $-1,%eax
1552 testl %ecx,%ecx
1553 jz .L014done
1554 testl %edx,%edx
1555 jz .L014done
1556 movl $-2,%eax
1557 cmpl $256,%ebx
1558 je .L015arg_ok
1559 cmpl $192,%ebx
1560 je .L015arg_ok
1561 cmpl $128,%ebx
1562 jne .L014done
1563 .align 4
1564 .L015arg_ok:
1565 pushl %edx
1566 pushl %ecx
1567 pushl %ebx
1568 call .L_Camellia_Ekeygen_begin
1569 addl $12,%esp
1570 movl %eax,(%edx)
1571 xorl %eax,%eax
1572 .align 4
1573 .L014done:
1574 popl %ebx
1575 ret
1576 .size Camellia_set_key,.-.L_Camellia_set_key_begin
1577 .align 64
1578 .LCamellia_SIGMA:
1579 .long 2694735487,1003262091,3061508184,1286239154,3337565999,3914302142,1426019237,4057165596,283453434,3731369245,2958461122,3018244605,0,0,0,0
1580 .align 64
1581 .LCamellia_SBOX:
1582 .long 1886416896,1886388336
1583 .long 2189591040,741081132
1584 .long 741092352,3014852787
1585 .long 3974949888,3233808576
1586 .long 3014898432,3840147684
1587 .long 656877312,1465319511
1588 .long 3233857536,3941204202
1589 .long 3857048832,2930639022
1590 .long 3840205824,589496355
1591 .long 2240120064,1802174571
1592 .long 1465341696,1162149957
1593 .long 892679424,2779054245
1594 .long 3941263872,3991732461
1595 .long 202116096,1330577487
1596 .long 2930683392,488439837
1597 .long 1094795520,2459041938
1598 .long 589505280,2256928902
1599 .long 4025478912,2947481775
1600 .long 1802201856,2088501372
1601 .long 2475922176,522125343
1602 .long 1162167552,1044250686
1603 .long 421075200,3705405660
1604 .long 2779096320,1583218782
1605 .long 555819264,185270283
1606 .long 3991792896,2795896998
1607 .long 235802112,960036921
1608 .long 1330597632,3587506389
1609 .long 1313754624,1566376029
1610 .long 488447232,3654877401
1611 .long 1701143808,1515847770
1612 .long 2459079168,1364262993
1613 .long 3183328512,1819017324
1614 .long 2256963072,2341142667
1615 .long 3099113472,2593783962
1616 .long 2947526400,4227531003
1617 .long 2408550144,2964324528
1618 .long 2088532992,1953759348
1619 .long 3958106880,724238379
1620 .long 522133248,4042260720
1621 .long 3469659648,2223243396
1622 .long 1044266496,3755933919
1623 .long 808464384,3419078859
1624 .long 3705461760,875823156
1625 .long 1600085760,1987444854
1626 .long 1583242752,1835860077
1627 .long 3318072576,2846425257
1628 .long 185273088,3520135377
1629 .long 437918208,67371012
1630 .long 2795939328,336855060
1631 .long 3789676800,976879674
1632 .long 960051456,3739091166
1633 .long 3402287616,286326801
1634 .long 3587560704,842137650
1635 .long 1195853568,2627469468
1636 .long 1566399744,1397948499
1637 .long 1027423488,4075946226
1638 .long 3654932736,4278059262
1639 .long 16843008,3486449871
1640 .long 1515870720,3284336835
1641 .long 3604403712,2054815866
1642 .long 1364283648,606339108
1643 .long 1448498688,3907518696
1644 .long 1819044864,1616904288
1645 .long 1296911616,1768489065
1646 .long 2341178112,2863268010
1647 .long 218959104,2694840480
1648 .long 2593823232,2711683233
1649 .long 1717986816,1650589794
1650 .long 4227595008,1414791252
1651 .long 3435973632,505282590
1652 .long 2964369408,3772776672
1653 .long 757935360,1684275300
1654 .long 1953788928,269484048
1655 .long 303174144,0
1656 .long 724249344,2745368739
1657 .long 538976256,1970602101
1658 .long 4042321920,2324299914
1659 .long 2981212416,3873833190
1660 .long 2223277056,151584777
1661 .long 2576980224,3722248413
1662 .long 3755990784,2273771655
1663 .long 1280068608,2206400643
1664 .long 3419130624,3452764365
1665 .long 3267543552,2425356432
1666 .long 875836416,1936916595
1667 .long 2122219008,4143317238
1668 .long 1987474944,2644312221
1669 .long 84215040,3216965823
1670 .long 1835887872,1381105746
1671 .long 3082270464,3638034648
1672 .long 2846468352,3368550600
1673 .long 825307392,3334865094
1674 .long 3520188672,2172715137
1675 .long 387389184,1869545583
1676 .long 67372032,320012307
1677 .long 3621246720,1667432547
1678 .long 336860160,3924361449
1679 .long 1482184704,2812739751
1680 .long 976894464,2677997727
1681 .long 1633771776,3166437564
1682 .long 3739147776,690552873
1683 .long 454761216,4193845497
1684 .long 286331136,791609391
1685 .long 471604224,3031695540
1686 .long 842150400,2021130360
1687 .long 252645120,101056518
1688 .long 2627509248,3890675943
1689 .long 370546176,1903231089
1690 .long 1397969664,3570663636
1691 .long 404232192,2880110763
1692 .long 4076007936,2290614408
1693 .long 572662272,2374828173
1694 .long 4278124032,1920073842
1695 .long 1145324544,3115909305
1696 .long 3486502656,4177002744
1697 .long 2998055424,2896953516
1698 .long 3284386560,909508662
1699 .long 3048584448,707395626
1700 .long 2054846976,1010565180
1701 .long 2442236160,4059103473
1702 .long 606348288,1077936192
1703 .long 134744064,3553820883
1704 .long 3907577856,3149594811
1705 .long 2829625344,1128464451
1706 .long 1616928768,353697813
1707 .long 4244438016,2913796269
1708 .long 1768515840,2004287607
1709 .long 1347440640,2155872384
1710 .long 2863311360,2189557890
1711 .long 3503345664,3974889708
1712 .long 2694881280,656867367
1713 .long 2105376000,3856990437
1714 .long 2711724288,2240086149
1715 .long 2307492096,892665909
1716 .long 1650614784,202113036
1717 .long 2543294208,1094778945
1718 .long 1414812672,4025417967
1719 .long 1532713728,2475884691
1720 .long 505290240,421068825
1721 .long 2509608192,555810849
1722 .long 3772833792,235798542
1723 .long 4294967040,1313734734
1724 .long 1684300800,1701118053
1725 .long 3537031680,3183280317
1726 .long 269488128,3099066552
1727 .long 3301229568,2408513679
1728 .long 0,3958046955
1729 .long 1212696576,3469607118
1730 .long 2745410304,808452144
1731 .long 4160222976,1600061535
1732 .long 1970631936,3318022341
1733 .long 3688618752,437911578
1734 .long 2324335104,3789619425
1735 .long 50529024,3402236106
1736 .long 3873891840,1195835463
1737 .long 3671775744,1027407933
1738 .long 151587072,16842753
1739 .long 1061109504,3604349142
1740 .long 3722304768,1448476758
1741 .long 2492765184,1296891981
1742 .long 2273806080,218955789
1743 .long 1549556736,1717960806
1744 .long 2206434048,3435921612
1745 .long 33686016,757923885
1746 .long 3452816640,303169554
1747 .long 1246382592,538968096
1748 .long 2425393152,2981167281
1749 .long 858993408,2576941209
1750 .long 1936945920,1280049228
1751 .long 1734829824,3267494082
1752 .long 4143379968,2122186878
1753 .long 4092850944,84213765
1754 .long 2644352256,3082223799
1755 .long 2139062016,825294897
1756 .long 3217014528,387383319
1757 .long 3806519808,3621191895
1758 .long 1381126656,1482162264
1759 .long 2610666240,1633747041
1760 .long 3638089728,454754331
1761 .long 640034304,471597084
1762 .long 3368601600,252641295
1763 .long 926365440,370540566
1764 .long 3334915584,404226072
1765 .long 993737472,572653602
1766 .long 2172748032,1145307204
1767 .long 2526451200,2998010034
1768 .long 1869573888,3048538293
1769 .long 1263225600,2442199185
1770 .long 320017152,134742024
1771 .long 3200171520,2829582504
1772 .long 1667457792,4244373756
1773 .long 774778368,1347420240
1774 .long 3924420864,3503292624
1775 .long 2038003968,2105344125
1776 .long 2812782336,2307457161
1777 .long 2358021120,2543255703
1778 .long 2678038272,1532690523
1779 .long 1852730880,2509570197
1780 .long 3166485504,4294902015
1781 .long 2391707136,3536978130
1782 .long 690563328,3301179588
1783 .long 4126536960,1212678216
1784 .long 4193908992,4160159991
1785 .long 3065427456,3688562907
1786 .long 791621376,50528259
1787 .long 4261281024,3671720154
1788 .long 3031741440,1061093439
1789 .long 1499027712,2492727444
1790 .long 2021160960,1549533276
1791 .long 2560137216,33685506
1792 .long 101058048,1246363722
1793 .long 1785358848,858980403
1794 .long 3890734848,1734803559
1795 .long 1179010560,4092788979
1796 .long 1903259904,2139029631
1797 .long 3132799488,3806462178
1798 .long 3570717696,2610626715
1799 .long 623191296,640024614
1800 .long 2880154368,926351415
1801 .long 1111638528,993722427
1802 .long 2290649088,2526412950
1803 .long 2728567296,1263206475
1804 .long 2374864128,3200123070
1805 .long 4210752000,774766638
1806 .long 1920102912,2037973113
1807 .long 117901056,2357985420
1808 .long 3115956480,1852702830
1809 .long 1431655680,2391670926
1810 .long 4177065984,4126474485
1811 .long 4008635904,3065381046
1812 .long 2896997376,4261216509
1813 .long 168430080,1499005017
1814 .long 909522432,2560098456
1815 .long 1229539584,1785331818
1816 .long 707406336,1178992710
1817 .long 1751672832,3132752058
1818 .long 1010580480,623181861
1819 .long 943208448,1111621698
1820 .long 4059164928,2728525986
1821 .long 2762253312,4210688250
1822 .long 1077952512,117899271
1823 .long 673720320,1431634005
1824 .long 3553874688,4008575214
1825 .long 2071689984,168427530
1826 .long 3149642496,1229520969
1827 .long 3385444608,1751646312
1828 .long 1128481536,943194168
1829 .long 3250700544,2762211492
1830 .long 353703168,673710120
1831 .long 3823362816,2071658619
1832 .long 2913840384,3385393353
1833 .long 4109693952,3250651329
1834 .long 2004317952,3823304931
1835 .long 3351758592,4109631732
1836 .long 2155905024,3351707847
1837 .long 2661195264,2661154974
1838 .long 14737632,939538488
1839 .long 328965,1090535745
1840 .long 5789784,369104406
1841 .long 14277081,1979741814
1842 .long 6776679,3640711641
1843 .long 5131854,2466288531
1844 .long 8487297,1610637408
1845 .long 13355979,4060148466
1846 .long 13224393,1912631922
1847 .long 723723,3254829762
1848 .long 11447982,2868947883
1849 .long 6974058,2583730842
1850 .long 14013909,1962964341
1851 .long 1579032,100664838
1852 .long 6118749,1459640151
1853 .long 8553090,2684395680
1854 .long 4605510,2432733585
1855 .long 14671839,4144035831
1856 .long 14079702,3036722613
1857 .long 2565927,3372272073
1858 .long 9079434,2717950626
1859 .long 3289650,2348846220
1860 .long 4934475,3523269330
1861 .long 4342338,2415956112
1862 .long 14408667,4127258358
1863 .long 1842204,117442311
1864 .long 10395294,2801837991
1865 .long 10263708,654321447
1866 .long 3815994,2382401166
1867 .long 13290186,2986390194
1868 .long 2434341,1224755529
1869 .long 8092539,3724599006
1870 .long 855309,1124090691
1871 .long 7434609,1543527516
1872 .long 6250335,3607156695
1873 .long 2039583,3338717127
1874 .long 16316664,1040203326
1875 .long 14145495,4110480885
1876 .long 4079166,2399178639
1877 .long 10329501,1728079719
1878 .long 8158332,520101663
1879 .long 6316128,402659352
1880 .long 12171705,1845522030
1881 .long 12500670,2936057775
1882 .long 12369084,788541231
1883 .long 9145227,3791708898
1884 .long 1447446,2231403909
1885 .long 3421236,218107149
1886 .long 5066061,1392530259
1887 .long 12829635,4026593520
1888 .long 7500402,2617285788
1889 .long 9803157,1694524773
1890 .long 11250603,3925928682
1891 .long 9342606,2734728099
1892 .long 12237498,2919280302
1893 .long 8026746,2650840734
1894 .long 11776947,3959483628
1895 .long 131586,2147516544
1896 .long 11842740,754986285
1897 .long 11382189,1795189611
1898 .long 10658466,2818615464
1899 .long 11316396,721431339
1900 .long 14211288,905983542
1901 .long 10132122,2785060518
1902 .long 1513239,3305162181
1903 .long 1710618,2248181382
1904 .long 3487029,1291865421
1905 .long 13421772,855651123
1906 .long 16250871,4244700669
1907 .long 10066329,1711302246
1908 .long 6381921,1476417624
1909 .long 5921370,2516620950
1910 .long 15263976,973093434
1911 .long 2368548,150997257
1912 .long 5658198,2499843477
1913 .long 4210752,268439568
1914 .long 14803425,2013296760
1915 .long 6513507,3623934168
1916 .long 592137,1107313218
1917 .long 3355443,3422604492
1918 .long 12566463,4009816047
1919 .long 10000536,637543974
1920 .long 9934743,3842041317
1921 .long 8750469,1627414881
1922 .long 6842472,436214298
1923 .long 16579836,1056980799
1924 .long 15527148,989870907
1925 .long 657930,2181071490
1926 .long 14342874,3053500086
1927 .long 7303023,3674266587
1928 .long 5460819,3556824276
1929 .long 6447714,2550175896
1930 .long 10724259,3892373736
1931 .long 3026478,2332068747
1932 .long 526344,33554946
1933 .long 11513775,3942706155
1934 .long 2631720,167774730
1935 .long 11579568,738208812
1936 .long 7631988,486546717
1937 .long 12763842,2952835248
1938 .long 12434877,1862299503
1939 .long 3552822,2365623693
1940 .long 2236962,2281736328
1941 .long 3684408,234884622
1942 .long 6579300,419436825
1943 .long 1973790,2264958855
1944 .long 3750201,1308642894
1945 .long 2894892,184552203
1946 .long 10921638,2835392937
1947 .long 3158064,201329676
1948 .long 15066597,2030074233
1949 .long 4473924,285217041
1950 .long 16645629,2130739071
1951 .long 8947848,570434082
1952 .long 10461087,3875596263
1953 .long 6645093,1493195097
1954 .long 8882055,3774931425
1955 .long 7039851,3657489114
1956 .long 16053492,1023425853
1957 .long 2302755,3355494600
1958 .long 4737096,301994514
1959 .long 1052688,67109892
1960 .long 13750737,1946186868
1961 .long 5329233,1409307732
1962 .long 12632256,805318704
1963 .long 16382457,2113961598
1964 .long 13816530,3019945140
1965 .long 10526880,671098920
1966 .long 5592405,1426085205
1967 .long 10592673,1744857192
1968 .long 4276545,1342197840
1969 .long 16448250,3187719870
1970 .long 4408131,3489714384
1971 .long 1250067,3288384708
1972 .long 12895428,822096177
1973 .long 3092271,3405827019
1974 .long 11053224,704653866
1975 .long 11974326,2902502829
1976 .long 3947580,251662095
1977 .long 2829099,3389049546
1978 .long 12698049,1879076976
1979 .long 16777215,4278255615
1980 .long 13158600,838873650
1981 .long 10855845,1761634665
1982 .long 2105376,134219784
1983 .long 9013641,1644192354
1984 .long 0,0
1985 .long 9474192,603989028
1986 .long 4671303,3506491857
1987 .long 15724527,4211145723
1988 .long 15395562,3120609978
1989 .long 12040119,3976261101
1990 .long 1381653,1157645637
1991 .long 394758,2164294017
1992 .long 13487565,1929409395
1993 .long 11908533,1828744557
1994 .long 1184274,2214626436
1995 .long 8289918,2667618207
1996 .long 12303291,3993038574
1997 .long 2697513,1241533002
1998 .long 986895,3271607235
1999 .long 12105912,771763758
2000 .long 460551,3238052289
2001 .long 263172,16777473
2002 .long 10197915,3858818790
2003 .long 9737364,620766501
2004 .long 2171169,1207978056
2005 .long 6710886,2566953369
2006 .long 15132390,3103832505
2007 .long 13553358,3003167667
2008 .long 15592941,2063629179
2009 .long 15198183,4177590777
2010 .long 3881787,3456159438
2011 .long 16711422,3204497343
2012 .long 8355711,3741376479
2013 .long 12961221,1895854449
2014 .long 10790052,687876393
2015 .long 3618615,3439381965
2016 .long 11645361,1811967084
2017 .long 5000268,318771987
2018 .long 9539985,1677747300
2019 .long 7237230,2600508315
2020 .long 9276813,1660969827
2021 .long 7763574,2634063261
2022 .long 197379,3221274816
2023 .long 2960685,1258310475
2024 .long 14606046,3070277559
2025 .long 9868950,2768283045
2026 .long 2500134,2298513801
2027 .long 8224125,1593859935
2028 .long 13027014,2969612721
2029 .long 6052956,385881879
2030 .long 13882323,4093703412
2031 .long 15921906,3154164924
2032 .long 5197647,3540046803
2033 .long 1644825,1174423110
2034 .long 4144959,3472936911
2035 .long 14474460,922761015
2036 .long 7960953,1577082462
2037 .long 1907997,1191200583
2038 .long 5395026,2483066004
2039 .long 15461355,4194368250
2040 .long 15987699,4227923196
2041 .long 7171437,1526750043
2042 .long 6184542,2533398423
2043 .long 16514043,4261478142
2044 .long 6908265,1509972570
2045 .long 11711154,2885725356
2046 .long 15790320,1006648380
2047 .long 3223857,1275087948
2048 .long 789516,50332419
2049 .long 13948116,889206069
2050 .long 13619151,4076925939
2051 .long 9211020,587211555
2052 .long 14869218,3087055032
2053 .long 7697781,1560304989
2054 .long 11119017,1778412138
2055 .long 4868682,2449511058
2056 .long 5723991,3573601749
2057 .long 8684676,553656609
2058 .long 1118481,1140868164
2059 .long 4539717,1358975313
2060 .long 1776411,3321939654
2061 .long 16119285,2097184125
2062 .long 15000804,956315961
2063 .long 921102,2197848963
2064 .long 7566195,3691044060
2065 .long 11184810,2852170410
2066 .long 15856113,2080406652
2067 .long 14540253,1996519287
2068 .long 5855577,1442862678
2069 .long 1315860,83887365
2070 .long 7105644,452991771
2071 .long 9605778,2751505572
2072 .long 5526612,352326933
2073 .long 13684944,872428596
2074 .long 7895160,503324190
2075 .long 7368816,469769244
2076 .long 14935011,4160813304
2077 .long 4802889,1375752786
2078 .long 8421504,536879136
2079 .long 5263440,335549460
2080 .long 10987431,3909151209
2081 .long 16185078,3170942397
2082 .long 7829367,3707821533
2083 .long 9671571,3825263844
2084 .long 8816262,2701173153
2085 .long 8618883,3758153952
2086 .long 2763306,2315291274
2087 .long 13092807,4043370993
2088 .long 5987163,3590379222
2089 .long 15329769,2046851706
2090 .long 15658734,3137387451
2091 .long 9408399,3808486371
2092 .long 65793,1073758272
2093 .long 4013373,1325420367
2094 .globl Camellia_cbc_encrypt
2095 .type Camellia_cbc_encrypt,@function
2096 .align 16
2097 Camellia_cbc_encrypt:
2098 .L_Camellia_cbc_encrypt_begin:
2099 pushl %ebp
2100 pushl %ebx
2101 pushl %esi
2102 pushl %edi
2103 movl 28(%esp),%ecx
2104 cmpl $0,%ecx
2105 je .L016enc_out
2106 pushfl
2107 cld
2108 movl 24(%esp),%eax
2109 movl 28(%esp),%ebx
2110 movl 36(%esp),%edx
2111 movl 40(%esp),%ebp
2112 leal -64(%esp),%esi
2113 andl $-64,%esi
2114 leal -127(%edx),%edi
2115 subl %esi,%edi
2116 negl %edi
2117 andl $960,%edi
2118 subl %edi,%esi
2119 movl 44(%esp),%edi
2120 xchgl %esi,%esp
2121 addl $4,%esp
2122 movl %esi,20(%esp)
2123 movl %eax,24(%esp)
2124 movl %ebx,28(%esp)
2125 movl %ecx,32(%esp)
2126 movl %edx,36(%esp)
2127 movl %ebp,40(%esp)
2128 call .L017pic_point
2129 .L017pic_point:
2130 popl %ebp
2131 leal .LCamellia_SBOX-.L017pic_point(%ebp),%ebp
2132 movl $32,%esi
2133 .align 4
2134 .L018prefetch_sbox:
2135 movl (%ebp),%eax
2136 movl 32(%ebp),%ebx
2137 movl 64(%ebp),%ecx
2138 movl 96(%ebp),%edx
2139 leal 128(%ebp),%ebp
2140 decl %esi
2141 jnz .L018prefetch_sbox
2142 movl 36(%esp),%eax
2143 subl $4096,%ebp
2144 movl 24(%esp),%esi
2145 movl 272(%eax),%edx
2146 cmpl $0,%edi
2147 je .L019DECRYPT
2148 movl 32(%esp),%ecx
2149 movl 40(%esp),%edi
2150 shll $6,%edx
2151 leal (%eax,%edx,1),%edx
2152 movl %edx,16(%esp)
2153 testl $4294967280,%ecx
2154 jz .L020enc_tail
2155 movl (%edi),%eax
2156 movl 4(%edi),%ebx
2157 .align 4
2158 .L021enc_loop:
2159 movl 8(%edi),%ecx
2160 movl 12(%edi),%edx
2161 xorl (%esi),%eax
2162 xorl 4(%esi),%ebx
2163 xorl 8(%esi),%ecx
2164 bswap %eax
2165 xorl 12(%esi),%edx
2166 bswap %ebx
2167 movl 36(%esp),%edi
2168 bswap %ecx
2169 bswap %edx
2170 call _x86_Camellia_encrypt
2171 movl 24(%esp),%esi
2172 movl 28(%esp),%edi
2173 bswap %eax
2174 bswap %ebx
2175 bswap %ecx
2176 movl %eax,(%edi)
2177 bswap %edx
2178 movl %ebx,4(%edi)
2179 movl %ecx,8(%edi)
2180 movl %edx,12(%edi)
2181 movl 32(%esp),%ecx
2182 leal 16(%esi),%esi
2183 movl %esi,24(%esp)
2184 leal 16(%edi),%edx
2185 movl %edx,28(%esp)
2186 subl $16,%ecx
2187 testl $4294967280,%ecx
2188 movl %ecx,32(%esp)
2189 jnz .L021enc_loop
2190 testl $15,%ecx
2191 jnz .L020enc_tail
2192 movl 40(%esp),%esi
2193 movl 8(%edi),%ecx
2194 movl 12(%edi),%edx
2195 movl %eax,(%esi)
2196 movl %ebx,4(%esi)
2197 movl %ecx,8(%esi)
2198 movl %edx,12(%esi)
2199 movl 20(%esp),%esp
2200 popfl
2201 .L016enc_out:
2202 popl %edi
2203 popl %esi
2204 popl %ebx
2205 popl %ebp
2206 ret
2207 pushfl
2208 .align 4
2209 .L020enc_tail:
2210 movl %edi,%eax
2211 movl 28(%esp),%edi
2212 pushl %eax
2213 movl $16,%ebx
2214 subl %ecx,%ebx
2215 cmpl %esi,%edi
2216 je .L022enc_in_place
2217 .align 4
2218 .long 2767451785
2219 jmp .L023enc_skip_in_place
2220 .L022enc_in_place:
2221 leal (%edi,%ecx,1),%edi
2222 .L023enc_skip_in_place:
2223 movl %ebx,%ecx
2224 xorl %eax,%eax
2225 .align 4
2226 .long 2868115081
2227 popl %edi
2228 movl 28(%esp),%esi
2229 movl (%edi),%eax
2230 movl 4(%edi),%ebx
2231 movl $16,32(%esp)
2232 jmp .L021enc_loop
2233 .align 16
2234 .L019DECRYPT:
2235 shll $6,%edx
2236 leal (%eax,%edx,1),%edx
2237 movl %eax,16(%esp)
2238 movl %edx,36(%esp)
2239 cmpl 28(%esp),%esi
2240 je .L024dec_in_place
2241 movl 40(%esp),%edi
2242 movl %edi,44(%esp)
2243 .align 4
2244 .L025dec_loop:
2245 movl (%esi),%eax
2246 movl 4(%esi),%ebx
2247 movl 8(%esi),%ecx
2248 bswap %eax
2249 movl 12(%esi),%edx
2250 bswap %ebx
2251 movl 36(%esp),%edi
2252 bswap %ecx
2253 bswap %edx
2254 call _x86_Camellia_decrypt
2255 movl 44(%esp),%edi
2256 movl 32(%esp),%esi
2257 bswap %eax
2258 bswap %ebx
2259 bswap %ecx
2260 xorl (%edi),%eax
2261 bswap %edx
2262 xorl 4(%edi),%ebx
2263 xorl 8(%edi),%ecx
2264 xorl 12(%edi),%edx
2265 subl $16,%esi
2266 jc .L026dec_partial
2267 movl %esi,32(%esp)
2268 movl 24(%esp),%esi
2269 movl 28(%esp),%edi
2270 movl %eax,(%edi)
2271 movl %ebx,4(%edi)
2272 movl %ecx,8(%edi)
2273 movl %edx,12(%edi)
2274 movl %esi,44(%esp)
2275 leal 16(%esi),%esi
2276 movl %esi,24(%esp)
2277 leal 16(%edi),%edi
2278 movl %edi,28(%esp)
2279 jnz .L025dec_loop
2280 movl 44(%esp),%edi
2281 .L027dec_end:
2282 movl 40(%esp),%esi
2283 movl (%edi),%eax
2284 movl 4(%edi),%ebx
2285 movl 8(%edi),%ecx
2286 movl 12(%edi),%edx
2287 movl %eax,(%esi)
2288 movl %ebx,4(%esi)
2289 movl %ecx,8(%esi)
2290 movl %edx,12(%esi)
2291 jmp .L028dec_out
2292 .align 4
2293 .L026dec_partial:
2294 leal 44(%esp),%edi
2295 movl %eax,(%edi)
2296 movl %ebx,4(%edi)
2297 movl %ecx,8(%edi)
2298 movl %edx,12(%edi)
2299 leal 16(%esi),%ecx
2300 movl %edi,%esi
2301 movl 28(%esp),%edi
2302 .long 2767451785
2303 movl 24(%esp),%edi
2304 jmp .L027dec_end
2305 .align 4
2306 .L024dec_in_place:
2307 .L029dec_in_place_loop:
2308 leal 44(%esp),%edi
2309 movl (%esi),%eax
2310 movl 4(%esi),%ebx
2311 movl 8(%esi),%ecx
2312 movl 12(%esi),%edx
2313 movl %eax,(%edi)
2314 movl %ebx,4(%edi)
2315 movl %ecx,8(%edi)
2316 bswap %eax
2317 movl %edx,12(%edi)
2318 bswap %ebx
2319 movl 36(%esp),%edi
2320 bswap %ecx
2321 bswap %edx
2322 call _x86_Camellia_decrypt
2323 movl 40(%esp),%edi
2324 movl 28(%esp),%esi
2325 bswap %eax
2326 bswap %ebx
2327 bswap %ecx
2328 xorl (%edi),%eax
2329 bswap %edx
2330 xorl 4(%edi),%ebx
2331 xorl 8(%edi),%ecx
2332 xorl 12(%edi),%edx
2333 movl %eax,(%esi)
2334 movl %ebx,4(%esi)
2335 movl %ecx,8(%esi)
2336 movl %edx,12(%esi)
2337 leal 16(%esi),%esi
2338 movl %esi,28(%esp)
2339 leal 44(%esp),%esi
2340 movl (%esi),%eax
2341 movl 4(%esi),%ebx
2342 movl 8(%esi),%ecx
2343 movl 12(%esi),%edx
2344 movl %eax,(%edi)
2345 movl %ebx,4(%edi)
2346 movl %ecx,8(%edi)
2347 movl %edx,12(%edi)
2348 movl 24(%esp),%esi
2349 leal 16(%esi),%esi
2350 movl %esi,24(%esp)
2351 movl 32(%esp),%ecx
2352 subl $16,%ecx
2353 jc .L030dec_in_place_partial
2354 movl %ecx,32(%esp)
2355 jnz .L029dec_in_place_loop
2356 jmp .L028dec_out
2357 .align 4
2358 .L030dec_in_place_partial:
2359 movl 28(%esp),%edi
2360 leal 44(%esp),%esi
2361 leal (%edi,%ecx,1),%edi
2362 leal 16(%esi,%ecx,1),%esi
2363 negl %ecx
2364 .long 2767451785
2365 .align 4
2366 .L028dec_out:
2367 movl 20(%esp),%esp
2368 popfl
2369 popl %edi
2370 popl %esi
2371 popl %ebx
2372 popl %ebp
2373 ret
2374 .size Camellia_cbc_encrypt,.-.L_Camellia_cbc_encrypt_begin
2375 .byte 67,97,109,101,108,108,105,97,32,102,111,114,32,120,56,54
2376 .byte 32,98,121,32,60,97,112,112,114,111,64,111,112,101,110,115
2377 .byte 115,108,46,111,114,103,62,0
2378 #else
2379 .text
2380 .globl Camellia_EncryptBlock_Rounds
2381 .type Camellia_EncryptBlock_Rounds,@function
2382 .align 16
2383 Camellia_EncryptBlock_Rounds:
2384 .L_Camellia_EncryptBlock_Rounds_begin:
2385 pushl %ebp
2386 pushl %ebx
2387 pushl %esi
2388 pushl %edi
2389 movl 20(%esp),%eax
2390 movl 24(%esp),%esi
2391 movl 28(%esp),%edi
2392 movl %esp,%ebx
2393 subl $28,%esp
2394 andl $-64,%esp
2395 leal -127(%edi),%ecx
2396 subl %esp,%ecx
2397 negl %ecx
2398 andl $960,%ecx
2399 subl %ecx,%esp
2400 addl $4,%esp
2401 shll $6,%eax
2402 leal (%edi,%eax,1),%eax
2403 movl %ebx,20(%esp)
2404 movl %eax,16(%esp)
2405 call .L000pic_point
2406 .L000pic_point:
2407 popl %ebp
2408 leal .LCamellia_SBOX-.L000pic_point(%ebp),%ebp
2409 movl (%esi),%eax
2410 movl 4(%esi),%ebx
2411 movl 8(%esi),%ecx
2412 bswap %eax
2413 movl 12(%esi),%edx
2414 bswap %ebx
2415 bswap %ecx
2416 bswap %edx
2417 call _x86_Camellia_encrypt
2418 movl 20(%esp),%esp
2419 bswap %eax
2420 movl 32(%esp),%esi
2421 bswap %ebx
2422 bswap %ecx
2423 bswap %edx
2424 movl %eax,(%esi)
2425 movl %ebx,4(%esi)
2426 movl %ecx,8(%esi)
2427 movl %edx,12(%esi)
2428 popl %edi
2429 popl %esi
2430 popl %ebx
2431 popl %ebp
2432 ret
2433 .size Camellia_EncryptBlock_Rounds,.-.L_Camellia_EncryptBlock_Rounds_begin
2434 .globl Camellia_EncryptBlock
2435 .type Camellia_EncryptBlock,@function
2436 .align 16
2437 Camellia_EncryptBlock:
2438 .L_Camellia_EncryptBlock_begin:
2439 movl $128,%eax
2440 subl 4(%esp),%eax
2441 movl $3,%eax
2442 adcl $0,%eax
2443 movl %eax,4(%esp)
2444 jmp .L_Camellia_EncryptBlock_Rounds_begin
2445 .size Camellia_EncryptBlock,.-.L_Camellia_EncryptBlock_begin
2446 .globl Camellia_encrypt
2447 .type Camellia_encrypt,@function
2448 .align 16
2449 Camellia_encrypt:
2450 .L_Camellia_encrypt_begin:
2451 pushl %ebp
2452 pushl %ebx
2453 pushl %esi
2454 pushl %edi
2455 movl 20(%esp),%esi
2456 movl 28(%esp),%edi
2457 movl %esp,%ebx
2458 subl $28,%esp
2459 andl $-64,%esp
2460 movl 272(%edi),%eax
2461 leal -127(%edi),%ecx
2462 subl %esp,%ecx
2463 negl %ecx
2464 andl $960,%ecx
2465 subl %ecx,%esp
2466 addl $4,%esp
2467 shll $6,%eax
2468 leal (%edi,%eax,1),%eax
2469 movl %ebx,20(%esp)
2470 movl %eax,16(%esp)
2471 call .L001pic_point
2472 .L001pic_point:
2473 popl %ebp
2474 leal .LCamellia_SBOX-.L001pic_point(%ebp),%ebp
2475 movl (%esi),%eax
2476 movl 4(%esi),%ebx
2477 movl 8(%esi),%ecx
2478 bswap %eax
2479 movl 12(%esi),%edx
2480 bswap %ebx
2481 bswap %ecx
2482 bswap %edx
2483 call _x86_Camellia_encrypt
2484 movl 20(%esp),%esp
2485 bswap %eax
2486 movl 24(%esp),%esi
2487 bswap %ebx
2488 bswap %ecx
2489 bswap %edx
2490 movl %eax,(%esi)
2491 movl %ebx,4(%esi)
2492 movl %ecx,8(%esi)
2493 movl %edx,12(%esi)
2494 popl %edi
2495 popl %esi
2496 popl %ebx
2497 popl %ebp
2498 ret
2499 .size Camellia_encrypt,.-.L_Camellia_encrypt_begin
2500 .type _x86_Camellia_encrypt,@function
2501 .align 16
2502 _x86_Camellia_encrypt:
2503 xorl (%edi),%eax
2504 xorl 4(%edi),%ebx
2505 xorl 8(%edi),%ecx
2506 xorl 12(%edi),%edx
2507 movl 16(%edi),%esi
2508 movl %eax,4(%esp)
2509 movl %ebx,8(%esp)
2510 movl %ecx,12(%esp)
2511 movl %edx,16(%esp)
2512 .align 16
2513 .L002loop:
2514 xorl %esi,%eax
2515 xorl 20(%edi),%ebx
2516 movzbl %ah,%esi
2517 movl 2052(%ebp,%esi,8),%edx
2518 movzbl %al,%esi
2519 xorl 4(%ebp,%esi,8),%edx
2520 shrl $16,%eax
2521 movzbl %bl,%esi
2522 movl (%ebp,%esi,8),%ecx
2523 movzbl %ah,%esi
2524 xorl (%ebp,%esi,8),%edx
2525 movzbl %bh,%esi
2526 xorl 4(%ebp,%esi,8),%ecx
2527 shrl $16,%ebx
2528 movzbl %al,%eax
2529 xorl 2048(%ebp,%eax,8),%edx
2530 movzbl %bh,%esi
2531 movl 16(%esp),%eax
2532 xorl %edx,%ecx
2533 rorl $8,%edx
2534 xorl 2048(%ebp,%esi,8),%ecx
2535 movzbl %bl,%esi
2536 movl 12(%esp),%ebx
2537 xorl %eax,%edx
2538 xorl 2052(%ebp,%esi,8),%ecx
2539 movl 24(%edi),%esi
2540 xorl %ecx,%edx
2541 movl %edx,16(%esp)
2542 xorl %ebx,%ecx
2543 movl %ecx,12(%esp)
2544 xorl %esi,%ecx
2545 xorl 28(%edi),%edx
2546 movzbl %ch,%esi
2547 movl 2052(%ebp,%esi,8),%ebx
2548 movzbl %cl,%esi
2549 xorl 4(%ebp,%esi,8),%ebx
2550 shrl $16,%ecx
2551 movzbl %dl,%esi
2552 movl (%ebp,%esi,8),%eax
2553 movzbl %ch,%esi
2554 xorl (%ebp,%esi,8),%ebx
2555 movzbl %dh,%esi
2556 xorl 4(%ebp,%esi,8),%eax
2557 shrl $16,%edx
2558 movzbl %cl,%ecx
2559 xorl 2048(%ebp,%ecx,8),%ebx
2560 movzbl %dh,%esi
2561 movl 8(%esp),%ecx
2562 xorl %ebx,%eax
2563 rorl $8,%ebx
2564 xorl 2048(%ebp,%esi,8),%eax
2565 movzbl %dl,%esi
2566 movl 4(%esp),%edx
2567 xorl %ecx,%ebx
2568 xorl 2052(%ebp,%esi,8),%eax
2569 movl 32(%edi),%esi
2570 xorl %eax,%ebx
2571 movl %ebx,8(%esp)
2572 xorl %edx,%eax
2573 movl %eax,4(%esp)
2574 xorl %esi,%eax
2575 xorl 36(%edi),%ebx
2576 movzbl %ah,%esi
2577 movl 2052(%ebp,%esi,8),%edx
2578 movzbl %al,%esi
2579 xorl 4(%ebp,%esi,8),%edx
2580 shrl $16,%eax
2581 movzbl %bl,%esi
2582 movl (%ebp,%esi,8),%ecx
2583 movzbl %ah,%esi
2584 xorl (%ebp,%esi,8),%edx
2585 movzbl %bh,%esi
2586 xorl 4(%ebp,%esi,8),%ecx
2587 shrl $16,%ebx
2588 movzbl %al,%eax
2589 xorl 2048(%ebp,%eax,8),%edx
2590 movzbl %bh,%esi
2591 movl 16(%esp),%eax
2592 xorl %edx,%ecx
2593 rorl $8,%edx
2594 xorl 2048(%ebp,%esi,8),%ecx
2595 movzbl %bl,%esi
2596 movl 12(%esp),%ebx
2597 xorl %eax,%edx
2598 xorl 2052(%ebp,%esi,8),%ecx
2599 movl 40(%edi),%esi
2600 xorl %ecx,%edx
2601 movl %edx,16(%esp)
2602 xorl %ebx,%ecx
2603 movl %ecx,12(%esp)
2604 xorl %esi,%ecx
2605 xorl 44(%edi),%edx
2606 movzbl %ch,%esi
2607 movl 2052(%ebp,%esi,8),%ebx
2608 movzbl %cl,%esi
2609 xorl 4(%ebp,%esi,8),%ebx
2610 shrl $16,%ecx
2611 movzbl %dl,%esi
2612 movl (%ebp,%esi,8),%eax
2613 movzbl %ch,%esi
2614 xorl (%ebp,%esi,8),%ebx
2615 movzbl %dh,%esi
2616 xorl 4(%ebp,%esi,8),%eax
2617 shrl $16,%edx
2618 movzbl %cl,%ecx
2619 xorl 2048(%ebp,%ecx,8),%ebx
2620 movzbl %dh,%esi
2621 movl 8(%esp),%ecx
2622 xorl %ebx,%eax
2623 rorl $8,%ebx
2624 xorl 2048(%ebp,%esi,8),%eax
2625 movzbl %dl,%esi
2626 movl 4(%esp),%edx
2627 xorl %ecx,%ebx
2628 xorl 2052(%ebp,%esi,8),%eax
2629 movl 48(%edi),%esi
2630 xorl %eax,%ebx
2631 movl %ebx,8(%esp)
2632 xorl %edx,%eax
2633 movl %eax,4(%esp)
2634 xorl %esi,%eax
2635 xorl 52(%edi),%ebx
2636 movzbl %ah,%esi
2637 movl 2052(%ebp,%esi,8),%edx
2638 movzbl %al,%esi
2639 xorl 4(%ebp,%esi,8),%edx
2640 shrl $16,%eax
2641 movzbl %bl,%esi
2642 movl (%ebp,%esi,8),%ecx
2643 movzbl %ah,%esi
2644 xorl (%ebp,%esi,8),%edx
2645 movzbl %bh,%esi
2646 xorl 4(%ebp,%esi,8),%ecx
2647 shrl $16,%ebx
2648 movzbl %al,%eax
2649 xorl 2048(%ebp,%eax,8),%edx
2650 movzbl %bh,%esi
2651 movl 16(%esp),%eax
2652 xorl %edx,%ecx
2653 rorl $8,%edx
2654 xorl 2048(%ebp,%esi,8),%ecx
2655 movzbl %bl,%esi
2656 movl 12(%esp),%ebx
2657 xorl %eax,%edx
2658 xorl 2052(%ebp,%esi,8),%ecx
2659 movl 56(%edi),%esi
2660 xorl %ecx,%edx
2661 movl %edx,16(%esp)
2662 xorl %ebx,%ecx
2663 movl %ecx,12(%esp)
2664 xorl %esi,%ecx
2665 xorl 60(%edi),%edx
2666 movzbl %ch,%esi
2667 movl 2052(%ebp,%esi,8),%ebx
2668 movzbl %cl,%esi
2669 xorl 4(%ebp,%esi,8),%ebx
2670 shrl $16,%ecx
2671 movzbl %dl,%esi
2672 movl (%ebp,%esi,8),%eax
2673 movzbl %ch,%esi
2674 xorl (%ebp,%esi,8),%ebx
2675 movzbl %dh,%esi
2676 xorl 4(%ebp,%esi,8),%eax
2677 shrl $16,%edx
2678 movzbl %cl,%ecx
2679 xorl 2048(%ebp,%ecx,8),%ebx
2680 movzbl %dh,%esi
2681 movl 8(%esp),%ecx
2682 xorl %ebx,%eax
2683 rorl $8,%ebx
2684 xorl 2048(%ebp,%esi,8),%eax
2685 movzbl %dl,%esi
2686 movl 4(%esp),%edx
2687 xorl %ecx,%ebx
2688 xorl 2052(%ebp,%esi,8),%eax
2689 movl 64(%edi),%esi
2690 xorl %eax,%ebx
2691 movl %ebx,8(%esp)
2692 xorl %edx,%eax
2693 movl %eax,4(%esp)
2694 addl $64,%edi
2695 cmpl 20(%esp),%edi
2696 je .L003done
2697 andl %eax,%esi
2698 movl 16(%esp),%edx
2699 roll $1,%esi
2700 movl %edx,%ecx
2701 xorl %esi,%ebx
2702 orl 12(%edi),%ecx
2703 movl %ebx,8(%esp)
2704 xorl 12(%esp),%ecx
2705 movl 4(%edi),%esi
2706 movl %ecx,12(%esp)
2707 orl %ebx,%esi
2708 andl 8(%edi),%ecx
2709 xorl %esi,%eax
2710 roll $1,%ecx
2711 movl %eax,4(%esp)
2712 xorl %ecx,%edx
2713 movl 16(%edi),%esi
2714 movl %edx,16(%esp)
2715 jmp .L002loop
2716 .align 8
2717 .L003done:
2718 movl %eax,%ecx
2719 movl %ebx,%edx
2720 movl 12(%esp),%eax
2721 movl 16(%esp),%ebx
2722 xorl %esi,%eax
2723 xorl 4(%edi),%ebx
2724 xorl 8(%edi),%ecx
2725 xorl 12(%edi),%edx
2726 ret
2727 .size _x86_Camellia_encrypt,.-_x86_Camellia_encrypt
2728 .globl Camellia_DecryptBlock_Rounds
2729 .type Camellia_DecryptBlock_Rounds,@function
2730 .align 16
2731 Camellia_DecryptBlock_Rounds:
2732 .L_Camellia_DecryptBlock_Rounds_begin:
2733 pushl %ebp
2734 pushl %ebx
2735 pushl %esi
2736 pushl %edi
2737 movl 20(%esp),%eax
2738 movl 24(%esp),%esi
2739 movl 28(%esp),%edi
2740 movl %esp,%ebx
2741 subl $28,%esp
2742 andl $-64,%esp
2743 leal -127(%edi),%ecx
2744 subl %esp,%ecx
2745 negl %ecx
2746 andl $960,%ecx
2747 subl %ecx,%esp
2748 addl $4,%esp
2749 shll $6,%eax
2750 movl %edi,16(%esp)
2751 leal (%edi,%eax,1),%edi
2752 movl %ebx,20(%esp)
2753 call .L004pic_point
2754 .L004pic_point:
2755 popl %ebp
2756 leal .LCamellia_SBOX-.L004pic_point(%ebp),%ebp
2757 movl (%esi),%eax
2758 movl 4(%esi),%ebx
2759 movl 8(%esi),%ecx
2760 bswap %eax
2761 movl 12(%esi),%edx
2762 bswap %ebx
2763 bswap %ecx
2764 bswap %edx
2765 call _x86_Camellia_decrypt
2766 movl 20(%esp),%esp
2767 bswap %eax
2768 movl 32(%esp),%esi
2769 bswap %ebx
2770 bswap %ecx
2771 bswap %edx
2772 movl %eax,(%esi)
2773 movl %ebx,4(%esi)
2774 movl %ecx,8(%esi)
2775 movl %edx,12(%esi)
2776 popl %edi
2777 popl %esi
2778 popl %ebx
2779 popl %ebp
2780 ret
2781 .size Camellia_DecryptBlock_Rounds,.-.L_Camellia_DecryptBlock_Rounds_begin
2782 .globl Camellia_DecryptBlock
2783 .type Camellia_DecryptBlock,@function
2784 .align 16
2785 Camellia_DecryptBlock:
2786 .L_Camellia_DecryptBlock_begin:
2787 movl $128,%eax
2788 subl 4(%esp),%eax
2789 movl $3,%eax
2790 adcl $0,%eax
2791 movl %eax,4(%esp)
2792 jmp .L_Camellia_DecryptBlock_Rounds_begin
2793 .size Camellia_DecryptBlock,.-.L_Camellia_DecryptBlock_begin
2794 .globl Camellia_decrypt
2795 .type Camellia_decrypt,@function
2796 .align 16
2797 Camellia_decrypt:
2798 .L_Camellia_decrypt_begin:
2799 pushl %ebp
2800 pushl %ebx
2801 pushl %esi
2802 pushl %edi
2803 movl 20(%esp),%esi
2804 movl 28(%esp),%edi
2805 movl %esp,%ebx
2806 subl $28,%esp
2807 andl $-64,%esp
2808 movl 272(%edi),%eax
2809 leal -127(%edi),%ecx
2810 subl %esp,%ecx
2811 negl %ecx
2812 andl $960,%ecx
2813 subl %ecx,%esp
2814 addl $4,%esp
2815 shll $6,%eax
2816 movl %edi,16(%esp)
2817 leal (%edi,%eax,1),%edi
2818 movl %ebx,20(%esp)
2819 call .L005pic_point
2820 .L005pic_point:
2821 popl %ebp
2822 leal .LCamellia_SBOX-.L005pic_point(%ebp),%ebp
2823 movl (%esi),%eax
2824 movl 4(%esi),%ebx
2825 movl 8(%esi),%ecx
2826 bswap %eax
2827 movl 12(%esi),%edx
2828 bswap %ebx
2829 bswap %ecx
2830 bswap %edx
2831 call _x86_Camellia_decrypt
2832 movl 20(%esp),%esp
2833 bswap %eax
2834 movl 24(%esp),%esi
2835 bswap %ebx
2836 bswap %ecx
2837 bswap %edx
2838 movl %eax,(%esi)
2839 movl %ebx,4(%esi)
2840 movl %ecx,8(%esi)
2841 movl %edx,12(%esi)
2842 popl %edi
2843 popl %esi
2844 popl %ebx
2845 popl %ebp
2846 ret
2847 .size Camellia_decrypt,.-.L_Camellia_decrypt_begin
2848 .type _x86_Camellia_decrypt,@function
2849 .align 16
2850 _x86_Camellia_decrypt:
2851 xorl (%edi),%eax
2852 xorl 4(%edi),%ebx
2853 xorl 8(%edi),%ecx
2854 xorl 12(%edi),%edx
2855 movl -8(%edi),%esi
2856 movl %eax,4(%esp)
2857 movl %ebx,8(%esp)
2858 movl %ecx,12(%esp)
2859 movl %edx,16(%esp)
2860 .align 16
2861 .L006loop:
2862 xorl %esi,%eax
2863 xorl -4(%edi),%ebx
2864 movzbl %ah,%esi
2865 movl 2052(%ebp,%esi,8),%edx
2866 movzbl %al,%esi
2867 xorl 4(%ebp,%esi,8),%edx
2868 shrl $16,%eax
2869 movzbl %bl,%esi
2870 movl (%ebp,%esi,8),%ecx
2871 movzbl %ah,%esi
2872 xorl (%ebp,%esi,8),%edx
2873 movzbl %bh,%esi
2874 xorl 4(%ebp,%esi,8),%ecx
2875 shrl $16,%ebx
2876 movzbl %al,%eax
2877 xorl 2048(%ebp,%eax,8),%edx
2878 movzbl %bh,%esi
2879 movl 16(%esp),%eax
2880 xorl %edx,%ecx
2881 rorl $8,%edx
2882 xorl 2048(%ebp,%esi,8),%ecx
2883 movzbl %bl,%esi
2884 movl 12(%esp),%ebx
2885 xorl %eax,%edx
2886 xorl 2052(%ebp,%esi,8),%ecx
2887 movl -16(%edi),%esi
2888 xorl %ecx,%edx
2889 movl %edx,16(%esp)
2890 xorl %ebx,%ecx
2891 movl %ecx,12(%esp)
2892 xorl %esi,%ecx
2893 xorl -12(%edi),%edx
2894 movzbl %ch,%esi
2895 movl 2052(%ebp,%esi,8),%ebx
2896 movzbl %cl,%esi
2897 xorl 4(%ebp,%esi,8),%ebx
2898 shrl $16,%ecx
2899 movzbl %dl,%esi
2900 movl (%ebp,%esi,8),%eax
2901 movzbl %ch,%esi
2902 xorl (%ebp,%esi,8),%ebx
2903 movzbl %dh,%esi
2904 xorl 4(%ebp,%esi,8),%eax
2905 shrl $16,%edx
2906 movzbl %cl,%ecx
2907 xorl 2048(%ebp,%ecx,8),%ebx
2908 movzbl %dh,%esi
2909 movl 8(%esp),%ecx
2910 xorl %ebx,%eax
2911 rorl $8,%ebx
2912 xorl 2048(%ebp,%esi,8),%eax
2913 movzbl %dl,%esi
2914 movl 4(%esp),%edx
2915 xorl %ecx,%ebx
2916 xorl 2052(%ebp,%esi,8),%eax
2917 movl -24(%edi),%esi
2918 xorl %eax,%ebx
2919 movl %ebx,8(%esp)
2920 xorl %edx,%eax
2921 movl %eax,4(%esp)
2922 xorl %esi,%eax
2923 xorl -20(%edi),%ebx
2924 movzbl %ah,%esi
2925 movl 2052(%ebp,%esi,8),%edx
2926 movzbl %al,%esi
2927 xorl 4(%ebp,%esi,8),%edx
2928 shrl $16,%eax
2929 movzbl %bl,%esi
2930 movl (%ebp,%esi,8),%ecx
2931 movzbl %ah,%esi
2932 xorl (%ebp,%esi,8),%edx
2933 movzbl %bh,%esi
2934 xorl 4(%ebp,%esi,8),%ecx
2935 shrl $16,%ebx
2936 movzbl %al,%eax
2937 xorl 2048(%ebp,%eax,8),%edx
2938 movzbl %bh,%esi
2939 movl 16(%esp),%eax
2940 xorl %edx,%ecx
2941 rorl $8,%edx
2942 xorl 2048(%ebp,%esi,8),%ecx
2943 movzbl %bl,%esi
2944 movl 12(%esp),%ebx
2945 xorl %eax,%edx
2946 xorl 2052(%ebp,%esi,8),%ecx
2947 movl -32(%edi),%esi
2948 xorl %ecx,%edx
2949 movl %edx,16(%esp)
2950 xorl %ebx,%ecx
2951 movl %ecx,12(%esp)
2952 xorl %esi,%ecx
2953 xorl -28(%edi),%edx
2954 movzbl %ch,%esi
2955 movl 2052(%ebp,%esi,8),%ebx
2956 movzbl %cl,%esi
2957 xorl 4(%ebp,%esi,8),%ebx
2958 shrl $16,%ecx
2959 movzbl %dl,%esi
2960 movl (%ebp,%esi,8),%eax
2961 movzbl %ch,%esi
2962 xorl (%ebp,%esi,8),%ebx
2963 movzbl %dh,%esi
2964 xorl 4(%ebp,%esi,8),%eax
2965 shrl $16,%edx
2966 movzbl %cl,%ecx
2967 xorl 2048(%ebp,%ecx,8),%ebx
2968 movzbl %dh,%esi
2969 movl 8(%esp),%ecx
2970 xorl %ebx,%eax
2971 rorl $8,%ebx
2972 xorl 2048(%ebp,%esi,8),%eax
2973 movzbl %dl,%esi
2974 movl 4(%esp),%edx
2975 xorl %ecx,%ebx
2976 xorl 2052(%ebp,%esi,8),%eax
2977 movl -40(%edi),%esi
2978 xorl %eax,%ebx
2979 movl %ebx,8(%esp)
2980 xorl %edx,%eax
2981 movl %eax,4(%esp)
2982 xorl %esi,%eax
2983 xorl -36(%edi),%ebx
2984 movzbl %ah,%esi
2985 movl 2052(%ebp,%esi,8),%edx
2986 movzbl %al,%esi
2987 xorl 4(%ebp,%esi,8),%edx
2988 shrl $16,%eax
2989 movzbl %bl,%esi
2990 movl (%ebp,%esi,8),%ecx
2991 movzbl %ah,%esi
2992 xorl (%ebp,%esi,8),%edx
2993 movzbl %bh,%esi
2994 xorl 4(%ebp,%esi,8),%ecx
2995 shrl $16,%ebx
2996 movzbl %al,%eax
2997 xorl 2048(%ebp,%eax,8),%edx
2998 movzbl %bh,%esi
2999 movl 16(%esp),%eax
3000 xorl %edx,%ecx
3001 rorl $8,%edx
3002 xorl 2048(%ebp,%esi,8),%ecx
3003 movzbl %bl,%esi
3004 movl 12(%esp),%ebx
3005 xorl %eax,%edx
3006 xorl 2052(%ebp,%esi,8),%ecx
3007 movl -48(%edi),%esi
3008 xorl %ecx,%edx
3009 movl %edx,16(%esp)
3010 xorl %ebx,%ecx
3011 movl %ecx,12(%esp)
3012 xorl %esi,%ecx
3013 xorl -44(%edi),%edx
3014 movzbl %ch,%esi
3015 movl 2052(%ebp,%esi,8),%ebx
3016 movzbl %cl,%esi
3017 xorl 4(%ebp,%esi,8),%ebx
3018 shrl $16,%ecx
3019 movzbl %dl,%esi
3020 movl (%ebp,%esi,8),%eax
3021 movzbl %ch,%esi
3022 xorl (%ebp,%esi,8),%ebx
3023 movzbl %dh,%esi
3024 xorl 4(%ebp,%esi,8),%eax
3025 shrl $16,%edx
3026 movzbl %cl,%ecx
3027 xorl 2048(%ebp,%ecx,8),%ebx
3028 movzbl %dh,%esi
3029 movl 8(%esp),%ecx
3030 xorl %ebx,%eax
3031 rorl $8,%ebx
3032 xorl 2048(%ebp,%esi,8),%eax
3033 movzbl %dl,%esi
3034 movl 4(%esp),%edx
3035 xorl %ecx,%ebx
3036 xorl 2052(%ebp,%esi,8),%eax
3037 movl -56(%edi),%esi
3038 xorl %eax,%ebx
3039 movl %ebx,8(%esp)
3040 xorl %edx,%eax
3041 movl %eax,4(%esp)
3042 subl $64,%edi
3043 cmpl 20(%esp),%edi
3044 je .L007done
3045 andl %eax,%esi
3046 movl 16(%esp),%edx
3047 roll $1,%esi
3048 movl %edx,%ecx
3049 xorl %esi,%ebx
3050 orl 4(%edi),%ecx
3051 movl %ebx,8(%esp)
3052 xorl 12(%esp),%ecx
3053 movl 12(%edi),%esi
3054 movl %ecx,12(%esp)
3055 orl %ebx,%esi
3056 andl (%edi),%ecx
3057 xorl %esi,%eax
3058 roll $1,%ecx
3059 movl %eax,4(%esp)
3060 xorl %ecx,%edx
3061 movl -8(%edi),%esi
3062 movl %edx,16(%esp)
3063 jmp .L006loop
3064 .align 8
3065 .L007done:
3066 movl %eax,%ecx
3067 movl %ebx,%edx
3068 movl 12(%esp),%eax
3069 movl 16(%esp),%ebx
3070 xorl %esi,%ecx
3071 xorl 12(%edi),%edx
3072 xorl (%edi),%eax
3073 xorl 4(%edi),%ebx
3074 ret
3075 .size _x86_Camellia_decrypt,.-_x86_Camellia_decrypt
3076 .globl Camellia_Ekeygen
3077 .type Camellia_Ekeygen,@function
3078 .align 16
3079 Camellia_Ekeygen:
3080 .L_Camellia_Ekeygen_begin:
3081 pushl %ebp
3082 pushl %ebx
3083 pushl %esi
3084 pushl %edi
3085 subl $16,%esp
3086 movl 36(%esp),%ebp
3087 movl 40(%esp),%esi
3088 movl 44(%esp),%edi
3089 movl (%esi),%eax
3090 movl 4(%esi),%ebx
3091 movl 8(%esi),%ecx
3092 movl 12(%esi),%edx
3093 bswap %eax
3094 bswap %ebx
3095 bswap %ecx
3096 bswap %edx
3097 movl %eax,(%edi)
3098 movl %ebx,4(%edi)
3099 movl %ecx,8(%edi)
3100 movl %edx,12(%edi)
3101 cmpl $128,%ebp
3102 je .L0081st128
3103 movl 16(%esi),%eax
3104 movl 20(%esi),%ebx
3105 cmpl $192,%ebp
3106 je .L0091st192
3107 movl 24(%esi),%ecx
3108 movl 28(%esi),%edx
3109 jmp .L0101st256
3110 .align 4
3111 .L0091st192:
3112 movl %eax,%ecx
3113 movl %ebx,%edx
3114 notl %ecx
3115 notl %edx
3116 .align 4
3117 .L0101st256:
3118 bswap %eax
3119 bswap %ebx
3120 bswap %ecx
3121 bswap %edx
3122 movl %eax,32(%edi)
3123 movl %ebx,36(%edi)
3124 movl %ecx,40(%edi)
3125 movl %edx,44(%edi)
3126 xorl (%edi),%eax
3127 xorl 4(%edi),%ebx
3128 xorl 8(%edi),%ecx
3129 xorl 12(%edi),%edx
3130 .align 4
3131 .L0081st128:
3132 call .L011pic_point
3133 .L011pic_point:
3134 popl %ebp
3135 leal .LCamellia_SBOX-.L011pic_point(%ebp),%ebp
3136 leal .LCamellia_SIGMA-.LCamellia_SBOX(%ebp),%edi
3137 movl (%edi),%esi
3138 movl %eax,(%esp)
3139 movl %ebx,4(%esp)
3140 movl %ecx,8(%esp)
3141 movl %edx,12(%esp)
3142 xorl %esi,%eax
3143 xorl 4(%edi),%ebx
3144 movzbl %ah,%esi
3145 movl 2052(%ebp,%esi,8),%edx
3146 movzbl %al,%esi
3147 xorl 4(%ebp,%esi,8),%edx
3148 shrl $16,%eax
3149 movzbl %bl,%esi
3150 movl (%ebp,%esi,8),%ecx
3151 movzbl %ah,%esi
3152 xorl (%ebp,%esi,8),%edx
3153 movzbl %bh,%esi
3154 xorl 4(%ebp,%esi,8),%ecx
3155 shrl $16,%ebx
3156 movzbl %al,%eax
3157 xorl 2048(%ebp,%eax,8),%edx
3158 movzbl %bh,%esi
3159 movl 12(%esp),%eax
3160 xorl %edx,%ecx
3161 rorl $8,%edx
3162 xorl 2048(%ebp,%esi,8),%ecx
3163 movzbl %bl,%esi
3164 movl 8(%esp),%ebx
3165 xorl %eax,%edx
3166 xorl 2052(%ebp,%esi,8),%ecx
3167 movl 8(%edi),%esi
3168 xorl %ecx,%edx
3169 movl %edx,12(%esp)
3170 xorl %ebx,%ecx
3171 movl %ecx,8(%esp)
3172 xorl %esi,%ecx
3173 xorl 12(%edi),%edx
3174 movzbl %ch,%esi
3175 movl 2052(%ebp,%esi,8),%ebx
3176 movzbl %cl,%esi
3177 xorl 4(%ebp,%esi,8),%ebx
3178 shrl $16,%ecx
3179 movzbl %dl,%esi
3180 movl (%ebp,%esi,8),%eax
3181 movzbl %ch,%esi
3182 xorl (%ebp,%esi,8),%ebx
3183 movzbl %dh,%esi
3184 xorl 4(%ebp,%esi,8),%eax
3185 shrl $16,%edx
3186 movzbl %cl,%ecx
3187 xorl 2048(%ebp,%ecx,8),%ebx
3188 movzbl %dh,%esi
3189 movl 4(%esp),%ecx
3190 xorl %ebx,%eax
3191 rorl $8,%ebx
3192 xorl 2048(%ebp,%esi,8),%eax
3193 movzbl %dl,%esi
3194 movl (%esp),%edx
3195 xorl %ecx,%ebx
3196 xorl 2052(%ebp,%esi,8),%eax
3197 movl 16(%edi),%esi
3198 xorl %eax,%ebx
3199 movl %ebx,4(%esp)
3200 xorl %edx,%eax
3201 movl %eax,(%esp)
3202 movl 8(%esp),%ecx
3203 movl 12(%esp),%edx
3204 movl 44(%esp),%esi
3205 xorl (%esi),%eax
3206 xorl 4(%esi),%ebx
3207 xorl 8(%esi),%ecx
3208 xorl 12(%esi),%edx
3209 movl 16(%edi),%esi
3210 movl %eax,(%esp)
3211 movl %ebx,4(%esp)
3212 movl %ecx,8(%esp)
3213 movl %edx,12(%esp)
3214 xorl %esi,%eax
3215 xorl 20(%edi),%ebx
3216 movzbl %ah,%esi
3217 movl 2052(%ebp,%esi,8),%edx
3218 movzbl %al,%esi
3219 xorl 4(%ebp,%esi,8),%edx
3220 shrl $16,%eax
3221 movzbl %bl,%esi
3222 movl (%ebp,%esi,8),%ecx
3223 movzbl %ah,%esi
3224 xorl (%ebp,%esi,8),%edx
3225 movzbl %bh,%esi
3226 xorl 4(%ebp,%esi,8),%ecx
3227 shrl $16,%ebx
3228 movzbl %al,%eax
3229 xorl 2048(%ebp,%eax,8),%edx
3230 movzbl %bh,%esi
3231 movl 12(%esp),%eax
3232 xorl %edx,%ecx
3233 rorl $8,%edx
3234 xorl 2048(%ebp,%esi,8),%ecx
3235 movzbl %bl,%esi
3236 movl 8(%esp),%ebx
3237 xorl %eax,%edx
3238 xorl 2052(%ebp,%esi,8),%ecx
3239 movl 24(%edi),%esi
3240 xorl %ecx,%edx
3241 movl %edx,12(%esp)
3242 xorl %ebx,%ecx
3243 movl %ecx,8(%esp)
3244 xorl %esi,%ecx
3245 xorl 28(%edi),%edx
3246 movzbl %ch,%esi
3247 movl 2052(%ebp,%esi,8),%ebx
3248 movzbl %cl,%esi
3249 xorl 4(%ebp,%esi,8),%ebx
3250 shrl $16,%ecx
3251 movzbl %dl,%esi
3252 movl (%ebp,%esi,8),%eax
3253 movzbl %ch,%esi
3254 xorl (%ebp,%esi,8),%ebx
3255 movzbl %dh,%esi
3256 xorl 4(%ebp,%esi,8),%eax
3257 shrl $16,%edx
3258 movzbl %cl,%ecx
3259 xorl 2048(%ebp,%ecx,8),%ebx
3260 movzbl %dh,%esi
3261 movl 4(%esp),%ecx
3262 xorl %ebx,%eax
3263 rorl $8,%ebx
3264 xorl 2048(%ebp,%esi,8),%eax
3265 movzbl %dl,%esi
3266 movl (%esp),%edx
3267 xorl %ecx,%ebx
3268 xorl 2052(%ebp,%esi,8),%eax
3269 movl 32(%edi),%esi
3270 xorl %eax,%ebx
3271 movl %ebx,4(%esp)
3272 xorl %edx,%eax
3273 movl %eax,(%esp)
3274 movl 8(%esp),%ecx
3275 movl 12(%esp),%edx
3276 movl 36(%esp),%esi
3277 cmpl $128,%esi
3278 jne .L0122nd256
3279 movl 44(%esp),%edi
3280 leal 128(%edi),%edi
3281 movl %eax,-112(%edi)
3282 movl %ebx,-108(%edi)
3283 movl %ecx,-104(%edi)
3284 movl %edx,-100(%edi)
3285 movl %eax,%ebp
3286 shll $15,%eax
3287 movl %ebx,%esi
3288 shrl $17,%esi
3289 shll $15,%ebx
3290 orl %esi,%eax
3291 movl %ecx,%esi
3292 shll $15,%ecx
3293 movl %eax,-80(%edi)
3294 shrl $17,%esi
3295 orl %esi,%ebx
3296 shrl $17,%ebp
3297 movl %edx,%esi
3298 shrl $17,%esi
3299 movl %ebx,-76(%edi)
3300 shll $15,%edx
3301 orl %esi,%ecx
3302 orl %ebp,%edx
3303 movl %ecx,-72(%edi)
3304 movl %edx,-68(%edi)
3305 movl %eax,%ebp
3306 shll $15,%eax
3307 movl %ebx,%esi
3308 shrl $17,%esi
3309 shll $15,%ebx
3310 orl %esi,%eax
3311 movl %ecx,%esi
3312 shll $15,%ecx
3313 movl %eax,-64(%edi)
3314 shrl $17,%esi
3315 orl %esi,%ebx
3316 shrl $17,%ebp
3317 movl %edx,%esi
3318 shrl $17,%esi
3319 movl %ebx,-60(%edi)
3320 shll $15,%edx
3321 orl %esi,%ecx
3322 orl %ebp,%edx
3323 movl %ecx,-56(%edi)
3324 movl %edx,-52(%edi)
3325 movl %eax,%ebp
3326 shll $15,%eax
3327 movl %ebx,%esi
3328 shrl $17,%esi
3329 shll $15,%ebx
3330 orl %esi,%eax
3331 movl %ecx,%esi
3332 shll $15,%ecx
3333 movl %eax,-32(%edi)
3334 shrl $17,%esi
3335 orl %esi,%ebx
3336 shrl $17,%ebp
3337 movl %edx,%esi
3338 shrl $17,%esi
3339 movl %ebx,-28(%edi)
3340 shll $15,%edx
3341 orl %esi,%ecx
3342 orl %ebp,%edx
3343 movl %eax,%ebp
3344 shll $15,%eax
3345 movl %ebx,%esi
3346 shrl $17,%esi
3347 shll $15,%ebx
3348 orl %esi,%eax
3349 movl %ecx,%esi
3350 shll $15,%ecx
3351 movl %eax,-16(%edi)
3352 shrl $17,%esi
3353 orl %esi,%ebx
3354 shrl $17,%ebp
3355 movl %edx,%esi
3356 shrl $17,%esi
3357 movl %ebx,-12(%edi)
3358 shll $15,%edx
3359 orl %esi,%ecx
3360 orl %ebp,%edx
3361 movl %ecx,-8(%edi)
3362 movl %edx,-4(%edi)
3363 movl %ebx,%ebp
3364 shll $2,%ebx
3365 movl %ecx,%esi
3366 shrl $30,%esi
3367 shll $2,%ecx
3368 orl %esi,%ebx
3369 movl %edx,%esi
3370 shll $2,%edx
3371 movl %ebx,32(%edi)
3372 shrl $30,%esi
3373 orl %esi,%ecx
3374 shrl $30,%ebp
3375 movl %eax,%esi
3376 shrl $30,%esi
3377 movl %ecx,36(%edi)
3378 shll $2,%eax
3379 orl %esi,%edx
3380 orl %ebp,%eax
3381 movl %edx,40(%edi)
3382 movl %eax,44(%edi)
3383 movl %ebx,%ebp
3384 shll $17,%ebx
3385 movl %ecx,%esi
3386 shrl $15,%esi
3387 shll $17,%ecx
3388 orl %esi,%ebx
3389 movl %edx,%esi
3390 shll $17,%edx
3391 movl %ebx,64(%edi)
3392 shrl $15,%esi
3393 orl %esi,%ecx
3394 shrl $15,%ebp
3395 movl %eax,%esi
3396 shrl $15,%esi
3397 movl %ecx,68(%edi)
3398 shll $17,%eax
3399 orl %esi,%edx
3400 orl %ebp,%eax
3401 movl %edx,72(%edi)
3402 movl %eax,76(%edi)
3403 movl -128(%edi),%ebx
3404 movl -124(%edi),%ecx
3405 movl -120(%edi),%edx
3406 movl -116(%edi),%eax
3407 movl %ebx,%ebp
3408 shll $15,%ebx
3409 movl %ecx,%esi
3410 shrl $17,%esi
3411 shll $15,%ecx
3412 orl %esi,%ebx
3413 movl %edx,%esi
3414 shll $15,%edx
3415 movl %ebx,-96(%edi)
3416 shrl $17,%esi
3417 orl %esi,%ecx
3418 shrl $17,%ebp
3419 movl %eax,%esi
3420 shrl $17,%esi
3421 movl %ecx,-92(%edi)
3422 shll $15,%eax
3423 orl %esi,%edx
3424 orl %ebp,%eax
3425 movl %edx,-88(%edi)
3426 movl %eax,-84(%edi)
3427 movl %ebx,%ebp
3428 shll $30,%ebx
3429 movl %ecx,%esi
3430 shrl $2,%esi
3431 shll $30,%ecx
3432 orl %esi,%ebx
3433 movl %edx,%esi
3434 shll $30,%edx
3435 movl %ebx,-48(%edi)
3436 shrl $2,%esi
3437 orl %esi,%ecx
3438 shrl $2,%ebp
3439 movl %eax,%esi
3440 shrl $2,%esi
3441 movl %ecx,-44(%edi)
3442 shll $30,%eax
3443 orl %esi,%edx
3444 orl %ebp,%eax
3445 movl %edx,-40(%edi)
3446 movl %eax,-36(%edi)
3447 movl %ebx,%ebp
3448 shll $15,%ebx
3449 movl %ecx,%esi
3450 shrl $17,%esi
3451 shll $15,%ecx
3452 orl %esi,%ebx
3453 movl %edx,%esi
3454 shll $15,%edx
3455 shrl $17,%esi
3456 orl %esi,%ecx
3457 shrl $17,%ebp
3458 movl %eax,%esi
3459 shrl $17,%esi
3460 shll $15,%eax
3461 orl %esi,%edx
3462 orl %ebp,%eax
3463 movl %edx,-24(%edi)
3464 movl %eax,-20(%edi)
3465 movl %ebx,%ebp
3466 shll $17,%ebx
3467 movl %ecx,%esi
3468 shrl $15,%esi
3469 shll $17,%ecx
3470 orl %esi,%ebx
3471 movl %edx,%esi
3472 shll $17,%edx
3473 movl %ebx,(%edi)
3474 shrl $15,%esi
3475 orl %esi,%ecx
3476 shrl $15,%ebp
3477 movl %eax,%esi
3478 shrl $15,%esi
3479 movl %ecx,4(%edi)
3480 shll $17,%eax
3481 orl %esi,%edx
3482 orl %ebp,%eax
3483 movl %edx,8(%edi)
3484 movl %eax,12(%edi)
3485 movl %ebx,%ebp
3486 shll $17,%ebx
3487 movl %ecx,%esi
3488 shrl $15,%esi
3489 shll $17,%ecx
3490 orl %esi,%ebx
3491 movl %edx,%esi
3492 shll $17,%edx
3493 movl %ebx,16(%edi)
3494 shrl $15,%esi
3495 orl %esi,%ecx
3496 shrl $15,%ebp
3497 movl %eax,%esi
3498 shrl $15,%esi
3499 movl %ecx,20(%edi)
3500 shll $17,%eax
3501 orl %esi,%edx
3502 orl %ebp,%eax
3503 movl %edx,24(%edi)
3504 movl %eax,28(%edi)
3505 movl %ebx,%ebp
3506 shll $17,%ebx
3507 movl %ecx,%esi
3508 shrl $15,%esi
3509 shll $17,%ecx
3510 orl %esi,%ebx
3511 movl %edx,%esi
3512 shll $17,%edx
3513 movl %ebx,48(%edi)
3514 shrl $15,%esi
3515 orl %esi,%ecx
3516 shrl $15,%ebp
3517 movl %eax,%esi
3518 shrl $15,%esi
3519 movl %ecx,52(%edi)
3520 shll $17,%eax
3521 orl %esi,%edx
3522 orl %ebp,%eax
3523 movl %edx,56(%edi)
3524 movl %eax,60(%edi)
3525 movl $3,%eax
3526 jmp .L013done
3527 .align 16
3528 .L0122nd256:
3529 movl 44(%esp),%esi
3530 movl %eax,48(%esi)
3531 movl %ebx,52(%esi)
3532 movl %ecx,56(%esi)
3533 movl %edx,60(%esi)
3534 xorl 32(%esi),%eax
3535 xorl 36(%esi),%ebx
3536 xorl 40(%esi),%ecx
3537 xorl 44(%esi),%edx
3538 movl 32(%edi),%esi
3539 movl %eax,(%esp)
3540 movl %ebx,4(%esp)
3541 movl %ecx,8(%esp)
3542 movl %edx,12(%esp)
3543 xorl %esi,%eax
3544 xorl 36(%edi),%ebx
3545 movzbl %ah,%esi
3546 movl 2052(%ebp,%esi,8),%edx
3547 movzbl %al,%esi
3548 xorl 4(%ebp,%esi,8),%edx
3549 shrl $16,%eax
3550 movzbl %bl,%esi
3551 movl (%ebp,%esi,8),%ecx
3552 movzbl %ah,%esi
3553 xorl (%ebp,%esi,8),%edx
3554 movzbl %bh,%esi
3555 xorl 4(%ebp,%esi,8),%ecx
3556 shrl $16,%ebx
3557 movzbl %al,%eax
3558 xorl 2048(%ebp,%eax,8),%edx
3559 movzbl %bh,%esi
3560 movl 12(%esp),%eax
3561 xorl %edx,%ecx
3562 rorl $8,%edx
3563 xorl 2048(%ebp,%esi,8),%ecx
3564 movzbl %bl,%esi
3565 movl 8(%esp),%ebx
3566 xorl %eax,%edx
3567 xorl 2052(%ebp,%esi,8),%ecx
3568 movl 40(%edi),%esi
3569 xorl %ecx,%edx
3570 movl %edx,12(%esp)
3571 xorl %ebx,%ecx
3572 movl %ecx,8(%esp)
3573 xorl %esi,%ecx
3574 xorl 44(%edi),%edx
3575 movzbl %ch,%esi
3576 movl 2052(%ebp,%esi,8),%ebx
3577 movzbl %cl,%esi
3578 xorl 4(%ebp,%esi,8),%ebx
3579 shrl $16,%ecx
3580 movzbl %dl,%esi
3581 movl (%ebp,%esi,8),%eax
3582 movzbl %ch,%esi
3583 xorl (%ebp,%esi,8),%ebx
3584 movzbl %dh,%esi
3585 xorl 4(%ebp,%esi,8),%eax
3586 shrl $16,%edx
3587 movzbl %cl,%ecx
3588 xorl 2048(%ebp,%ecx,8),%ebx
3589 movzbl %dh,%esi
3590 movl 4(%esp),%ecx
3591 xorl %ebx,%eax
3592 rorl $8,%ebx
3593 xorl 2048(%ebp,%esi,8),%eax
3594 movzbl %dl,%esi
3595 movl (%esp),%edx
3596 xorl %ecx,%ebx
3597 xorl 2052(%ebp,%esi,8),%eax
3598 movl 48(%edi),%esi
3599 xorl %eax,%ebx
3600 movl %ebx,4(%esp)
3601 xorl %edx,%eax
3602 movl %eax,(%esp)
3603 movl 8(%esp),%ecx
3604 movl 12(%esp),%edx
3605 movl 44(%esp),%edi
3606 leal 128(%edi),%edi
3607 movl %eax,-112(%edi)
3608 movl %ebx,-108(%edi)
3609 movl %ecx,-104(%edi)
3610 movl %edx,-100(%edi)
3611 movl %eax,%ebp
3612 shll $30,%eax
3613 movl %ebx,%esi
3614 shrl $2,%esi
3615 shll $30,%ebx
3616 orl %esi,%eax
3617 movl %ecx,%esi
3618 shll $30,%ecx
3619 movl %eax,-48(%edi)
3620 shrl $2,%esi
3621 orl %esi,%ebx
3622 shrl $2,%ebp
3623 movl %edx,%esi
3624 shrl $2,%esi
3625 movl %ebx,-44(%edi)
3626 shll $30,%edx
3627 orl %esi,%ecx
3628 orl %ebp,%edx
3629 movl %ecx,-40(%edi)
3630 movl %edx,-36(%edi)
3631 movl %eax,%ebp
3632 shll $30,%eax
3633 movl %ebx,%esi
3634 shrl $2,%esi
3635 shll $30,%ebx
3636 orl %esi,%eax
3637 movl %ecx,%esi
3638 shll $30,%ecx
3639 movl %eax,32(%edi)
3640 shrl $2,%esi
3641 orl %esi,%ebx
3642 shrl $2,%ebp
3643 movl %edx,%esi
3644 shrl $2,%esi
3645 movl %ebx,36(%edi)
3646 shll $30,%edx
3647 orl %esi,%ecx
3648 orl %ebp,%edx
3649 movl %ecx,40(%edi)
3650 movl %edx,44(%edi)
3651 movl %ebx,%ebp
3652 shll $19,%ebx
3653 movl %ecx,%esi
3654 shrl $13,%esi
3655 shll $19,%ecx
3656 orl %esi,%ebx
3657 movl %edx,%esi
3658 shll $19,%edx
3659 movl %ebx,128(%edi)
3660 shrl $13,%esi
3661 orl %esi,%ecx
3662 shrl $13,%ebp
3663 movl %eax,%esi
3664 shrl $13,%esi
3665 movl %ecx,132(%edi)
3666 shll $19,%eax
3667 orl %esi,%edx
3668 orl %ebp,%eax
3669 movl %edx,136(%edi)
3670 movl %eax,140(%edi)
3671 movl -96(%edi),%ebx
3672 movl -92(%edi),%ecx
3673 movl -88(%edi),%edx
3674 movl -84(%edi),%eax
3675 movl %ebx,%ebp
3676 shll $15,%ebx
3677 movl %ecx,%esi
3678 shrl $17,%esi
3679 shll $15,%ecx
3680 orl %esi,%ebx
3681 movl %edx,%esi
3682 shll $15,%edx
3683 movl %ebx,-96(%edi)
3684 shrl $17,%esi
3685 orl %esi,%ecx
3686 shrl $17,%ebp
3687 movl %eax,%esi
3688 shrl $17,%esi
3689 movl %ecx,-92(%edi)
3690 shll $15,%eax
3691 orl %esi,%edx
3692 orl %ebp,%eax
3693 movl %edx,-88(%edi)
3694 movl %eax,-84(%edi)
3695 movl %ebx,%ebp
3696 shll $15,%ebx
3697 movl %ecx,%esi
3698 shrl $17,%esi
3699 shll $15,%ecx
3700 orl %esi,%ebx
3701 movl %edx,%esi
3702 shll $15,%edx
3703 movl %ebx,-64(%edi)
3704 shrl $17,%esi
3705 orl %esi,%ecx
3706 shrl $17,%ebp
3707 movl %eax,%esi
3708 shrl $17,%esi
3709 movl %ecx,-60(%edi)
3710 shll $15,%eax
3711 orl %esi,%edx
3712 orl %ebp,%eax
3713 movl %edx,-56(%edi)
3714 movl %eax,-52(%edi)
3715 movl %ebx,%ebp
3716 shll $30,%ebx
3717 movl %ecx,%esi
3718 shrl $2,%esi
3719 shll $30,%ecx
3720 orl %esi,%ebx
3721 movl %edx,%esi
3722 shll $30,%edx
3723 movl %ebx,16(%edi)
3724 shrl $2,%esi
3725 orl %esi,%ecx
3726 shrl $2,%ebp
3727 movl %eax,%esi
3728 shrl $2,%esi
3729 movl %ecx,20(%edi)
3730 shll $30,%eax
3731 orl %esi,%edx
3732 orl %ebp,%eax
3733 movl %edx,24(%edi)
3734 movl %eax,28(%edi)
3735 movl %ecx,%ebp
3736 shll $2,%ecx
3737 movl %edx,%esi
3738 shrl $30,%esi
3739 shll $2,%edx
3740 orl %esi,%ecx
3741 movl %eax,%esi
3742 shll $2,%eax
3743 movl %ecx,80(%edi)
3744 shrl $30,%esi
3745 orl %esi,%edx
3746 shrl $30,%ebp
3747 movl %ebx,%esi
3748 shrl $30,%esi
3749 movl %edx,84(%edi)
3750 shll $2,%ebx
3751 orl %esi,%eax
3752 orl %ebp,%ebx
3753 movl %eax,88(%edi)
3754 movl %ebx,92(%edi)
3755 movl -80(%edi),%ecx
3756 movl -76(%edi),%edx
3757 movl -72(%edi),%eax
3758 movl -68(%edi),%ebx
3759 movl %ecx,%ebp
3760 shll $15,%ecx
3761 movl %edx,%esi
3762 shrl $17,%esi
3763 shll $15,%edx
3764 orl %esi,%ecx
3765 movl %eax,%esi
3766 shll $15,%eax
3767 movl %ecx,-80(%edi)
3768 shrl $17,%esi
3769 orl %esi,%edx
3770 shrl $17,%ebp
3771 movl %ebx,%esi
3772 shrl $17,%esi
3773 movl %edx,-76(%edi)
3774 shll $15,%ebx
3775 orl %esi,%eax
3776 orl %ebp,%ebx
3777 movl %eax,-72(%edi)
3778 movl %ebx,-68(%edi)
3779 movl %ecx,%ebp
3780 shll $30,%ecx
3781 movl %edx,%esi
3782 shrl $2,%esi
3783 shll $30,%edx
3784 orl %esi,%ecx
3785 movl %eax,%esi
3786 shll $30,%eax
3787 movl %ecx,-16(%edi)
3788 shrl $2,%esi
3789 orl %esi,%edx
3790 shrl $2,%ebp
3791 movl %ebx,%esi
3792 shrl $2,%esi
3793 movl %edx,-12(%edi)
3794 shll $30,%ebx
3795 orl %esi,%eax
3796 orl %ebp,%ebx
3797 movl %eax,-8(%edi)
3798 movl %ebx,-4(%edi)
3799 movl %edx,64(%edi)
3800 movl %eax,68(%edi)
3801 movl %ebx,72(%edi)
3802 movl %ecx,76(%edi)
3803 movl %edx,%ebp
3804 shll $17,%edx
3805 movl %eax,%esi
3806 shrl $15,%esi
3807 shll $17,%eax
3808 orl %esi,%edx
3809 movl %ebx,%esi
3810 shll $17,%ebx
3811 movl %edx,96(%edi)
3812 shrl $15,%esi
3813 orl %esi,%eax
3814 shrl $15,%ebp
3815 movl %ecx,%esi
3816 shrl $15,%esi
3817 movl %eax,100(%edi)
3818 shll $17,%ecx
3819 orl %esi,%ebx
3820 orl %ebp,%ecx
3821 movl %ebx,104(%edi)
3822 movl %ecx,108(%edi)
3823 movl -128(%edi),%edx
3824 movl -124(%edi),%eax
3825 movl -120(%edi),%ebx
3826 movl -116(%edi),%ecx
3827 movl %eax,%ebp
3828 shll $13,%eax
3829 movl %ebx,%esi
3830 shrl $19,%esi
3831 shll $13,%ebx
3832 orl %esi,%eax
3833 movl %ecx,%esi
3834 shll $13,%ecx
3835 movl %eax,-32(%edi)
3836 shrl $19,%esi
3837 orl %esi,%ebx
3838 shrl $19,%ebp
3839 movl %edx,%esi
3840 shrl $19,%esi
3841 movl %ebx,-28(%edi)
3842 shll $13,%edx
3843 orl %esi,%ecx
3844 orl %ebp,%edx
3845 movl %ecx,-24(%edi)
3846 movl %edx,-20(%edi)
3847 movl %eax,%ebp
3848 shll $15,%eax
3849 movl %ebx,%esi
3850 shrl $17,%esi
3851 shll $15,%ebx
3852 orl %esi,%eax
3853 movl %ecx,%esi
3854 shll $15,%ecx
3855 movl %eax,(%edi)
3856 shrl $17,%esi
3857 orl %esi,%ebx
3858 shrl $17,%ebp
3859 movl %edx,%esi
3860 shrl $17,%esi
3861 movl %ebx,4(%edi)
3862 shll $15,%edx
3863 orl %esi,%ecx
3864 orl %ebp,%edx
3865 movl %ecx,8(%edi)
3866 movl %edx,12(%edi)
3867 movl %eax,%ebp
3868 shll $17,%eax
3869 movl %ebx,%esi
3870 shrl $15,%esi
3871 shll $17,%ebx
3872 orl %esi,%eax
3873 movl %ecx,%esi
3874 shll $17,%ecx
3875 movl %eax,48(%edi)
3876 shrl $15,%esi
3877 orl %esi,%ebx
3878 shrl $15,%ebp
3879 movl %edx,%esi
3880 shrl $15,%esi
3881 movl %ebx,52(%edi)
3882 shll $17,%edx
3883 orl %esi,%ecx
3884 orl %ebp,%edx
3885 movl %ecx,56(%edi)
3886 movl %edx,60(%edi)
3887 movl %ebx,%ebp
3888 shll $2,%ebx
3889 movl %ecx,%esi
3890 shrl $30,%esi
3891 shll $2,%ecx
3892 orl %esi,%ebx
3893 movl %edx,%esi
3894 shll $2,%edx
3895 movl %ebx,112(%edi)
3896 shrl $30,%esi
3897 orl %esi,%ecx
3898 shrl $30,%ebp
3899 movl %eax,%esi
3900 shrl $30,%esi
3901 movl %ecx,116(%edi)
3902 shll $2,%eax
3903 orl %esi,%edx
3904 orl %ebp,%eax
3905 movl %edx,120(%edi)
3906 movl %eax,124(%edi)
3907 movl $4,%eax
3908 .L013done:
3909 leal 144(%edi),%edx
3910 addl $16,%esp
3911 popl %edi
3912 popl %esi
3913 popl %ebx
3914 popl %ebp
3915 ret
3916 .size Camellia_Ekeygen,.-.L_Camellia_Ekeygen_begin
3917 .globl Camellia_set_key
3918 .type Camellia_set_key,@function
3919 .align 16
3920 Camellia_set_key:
3921 .L_Camellia_set_key_begin:
3922 pushl %ebx
3923 movl 8(%esp),%ecx
3924 movl 12(%esp),%ebx
3925 movl 16(%esp),%edx
3926 movl $-1,%eax
3927 testl %ecx,%ecx
3928 jz .L014done
3929 testl %edx,%edx
3930 jz .L014done
3931 movl $-2,%eax
3932 cmpl $256,%ebx
3933 je .L015arg_ok
3934 cmpl $192,%ebx
3935 je .L015arg_ok
3936 cmpl $128,%ebx
3937 jne .L014done
3938 .align 4
3939 .L015arg_ok:
3940 pushl %edx
3941 pushl %ecx
3942 pushl %ebx
3943 call .L_Camellia_Ekeygen_begin
3944 addl $12,%esp
3945 movl %eax,(%edx)
3946 xorl %eax,%eax
3947 .align 4
3948 .L014done:
3949 popl %ebx
3950 ret
3951 .size Camellia_set_key,.-.L_Camellia_set_key_begin
3952 .align 64
3953 .LCamellia_SIGMA:
3954 .long 2694735487,1003262091,3061508184,1286239154,3337565999,3914302142,1426019237,4057165596,283453434,3731369245,2958461122,3018244605,0,0,0,0
3955 .align 64
3956 .LCamellia_SBOX:
3957 .long 1886416896,1886388336
3958 .long 2189591040,741081132
3959 .long 741092352,3014852787
3960 .long 3974949888,3233808576
3961 .long 3014898432,3840147684
3962 .long 656877312,1465319511
3963 .long 3233857536,3941204202
3964 .long 3857048832,2930639022
3965 .long 3840205824,589496355
3966 .long 2240120064,1802174571
3967 .long 1465341696,1162149957
3968 .long 892679424,2779054245
3969 .long 3941263872,3991732461
3970 .long 202116096,1330577487
3971 .long 2930683392,488439837
3972 .long 1094795520,2459041938
3973 .long 589505280,2256928902
3974 .long 4025478912,2947481775
3975 .long 1802201856,2088501372
3976 .long 2475922176,522125343
3977 .long 1162167552,1044250686
3978 .long 421075200,3705405660
3979 .long 2779096320,1583218782
3980 .long 555819264,185270283
3981 .long 3991792896,2795896998
3982 .long 235802112,960036921
3983 .long 1330597632,3587506389
3984 .long 1313754624,1566376029
3985 .long 488447232,3654877401
3986 .long 1701143808,1515847770
3987 .long 2459079168,1364262993
3988 .long 3183328512,1819017324
3989 .long 2256963072,2341142667
3990 .long 3099113472,2593783962
3991 .long 2947526400,4227531003
3992 .long 2408550144,2964324528
3993 .long 2088532992,1953759348
3994 .long 3958106880,724238379
3995 .long 522133248,4042260720
3996 .long 3469659648,2223243396
3997 .long 1044266496,3755933919
3998 .long 808464384,3419078859
3999 .long 3705461760,875823156
4000 .long 1600085760,1987444854
4001 .long 1583242752,1835860077
4002 .long 3318072576,2846425257
4003 .long 185273088,3520135377
4004 .long 437918208,67371012
4005 .long 2795939328,336855060
4006 .long 3789676800,976879674
4007 .long 960051456,3739091166
4008 .long 3402287616,286326801
4009 .long 3587560704,842137650
4010 .long 1195853568,2627469468
4011 .long 1566399744,1397948499
4012 .long 1027423488,4075946226
4013 .long 3654932736,4278059262
4014 .long 16843008,3486449871
4015 .long 1515870720,3284336835
4016 .long 3604403712,2054815866
4017 .long 1364283648,606339108
4018 .long 1448498688,3907518696
4019 .long 1819044864,1616904288
4020 .long 1296911616,1768489065
4021 .long 2341178112,2863268010
4022 .long 218959104,2694840480
4023 .long 2593823232,2711683233
4024 .long 1717986816,1650589794
4025 .long 4227595008,1414791252
4026 .long 3435973632,505282590
4027 .long 2964369408,3772776672
4028 .long 757935360,1684275300
4029 .long 1953788928,269484048
4030 .long 303174144,0
4031 .long 724249344,2745368739
4032 .long 538976256,1970602101
4033 .long 4042321920,2324299914
4034 .long 2981212416,3873833190
4035 .long 2223277056,151584777
4036 .long 2576980224,3722248413
4037 .long 3755990784,2273771655
4038 .long 1280068608,2206400643
4039 .long 3419130624,3452764365
4040 .long 3267543552,2425356432
4041 .long 875836416,1936916595
4042 .long 2122219008,4143317238
4043 .long 1987474944,2644312221
4044 .long 84215040,3216965823
4045 .long 1835887872,1381105746
4046 .long 3082270464,3638034648
4047 .long 2846468352,3368550600
4048 .long 825307392,3334865094
4049 .long 3520188672,2172715137
4050 .long 387389184,1869545583
4051 .long 67372032,320012307
4052 .long 3621246720,1667432547
4053 .long 336860160,3924361449
4054 .long 1482184704,2812739751
4055 .long 976894464,2677997727
4056 .long 1633771776,3166437564
4057 .long 3739147776,690552873
4058 .long 454761216,4193845497
4059 .long 286331136,791609391
4060 .long 471604224,3031695540
4061 .long 842150400,2021130360
4062 .long 252645120,101056518
4063 .long 2627509248,3890675943
4064 .long 370546176,1903231089
4065 .long 1397969664,3570663636
4066 .long 404232192,2880110763
4067 .long 4076007936,2290614408
4068 .long 572662272,2374828173
4069 .long 4278124032,1920073842
4070 .long 1145324544,3115909305
4071 .long 3486502656,4177002744
4072 .long 2998055424,2896953516
4073 .long 3284386560,909508662
4074 .long 3048584448,707395626
4075 .long 2054846976,1010565180
4076 .long 2442236160,4059103473
4077 .long 606348288,1077936192
4078 .long 134744064,3553820883
4079 .long 3907577856,3149594811
4080 .long 2829625344,1128464451
4081 .long 1616928768,353697813
4082 .long 4244438016,2913796269
4083 .long 1768515840,2004287607
4084 .long 1347440640,2155872384
4085 .long 2863311360,2189557890
4086 .long 3503345664,3974889708
4087 .long 2694881280,656867367
4088 .long 2105376000,3856990437
4089 .long 2711724288,2240086149
4090 .long 2307492096,892665909
4091 .long 1650614784,202113036
4092 .long 2543294208,1094778945
4093 .long 1414812672,4025417967
4094 .long 1532713728,2475884691
4095 .long 505290240,421068825
4096 .long 2509608192,555810849
4097 .long 3772833792,235798542
4098 .long 4294967040,1313734734
4099 .long 1684300800,1701118053
4100 .long 3537031680,3183280317
4101 .long 269488128,3099066552
4102 .long 3301229568,2408513679
4103 .long 0,3958046955
4104 .long 1212696576,3469607118
4105 .long 2745410304,808452144
4106 .long 4160222976,1600061535
4107 .long 1970631936,3318022341
4108 .long 3688618752,437911578
4109 .long 2324335104,3789619425
4110 .long 50529024,3402236106
4111 .long 3873891840,1195835463
4112 .long 3671775744,1027407933
4113 .long 151587072,16842753
4114 .long 1061109504,3604349142
4115 .long 3722304768,1448476758
4116 .long 2492765184,1296891981
4117 .long 2273806080,218955789
4118 .long 1549556736,1717960806
4119 .long 2206434048,3435921612
4120 .long 33686016,757923885
4121 .long 3452816640,303169554
4122 .long 1246382592,538968096
4123 .long 2425393152,2981167281
4124 .long 858993408,2576941209
4125 .long 1936945920,1280049228
4126 .long 1734829824,3267494082
4127 .long 4143379968,2122186878
4128 .long 4092850944,84213765
4129 .long 2644352256,3082223799
4130 .long 2139062016,825294897
4131 .long 3217014528,387383319
4132 .long 3806519808,3621191895
4133 .long 1381126656,1482162264
4134 .long 2610666240,1633747041
4135 .long 3638089728,454754331
4136 .long 640034304,471597084
4137 .long 3368601600,252641295
4138 .long 926365440,370540566
4139 .long 3334915584,404226072
4140 .long 993737472,572653602
4141 .long 2172748032,1145307204
4142 .long 2526451200,2998010034
4143 .long 1869573888,3048538293
4144 .long 1263225600,2442199185
4145 .long 320017152,134742024
4146 .long 3200171520,2829582504
4147 .long 1667457792,4244373756
4148 .long 774778368,1347420240
4149 .long 3924420864,3503292624
4150 .long 2038003968,2105344125
4151 .long 2812782336,2307457161
4152 .long 2358021120,2543255703
4153 .long 2678038272,1532690523
4154 .long 1852730880,2509570197
4155 .long 3166485504,4294902015
4156 .long 2391707136,3536978130
4157 .long 690563328,3301179588
4158 .long 4126536960,1212678216
4159 .long 4193908992,4160159991
4160 .long 3065427456,3688562907
4161 .long 791621376,50528259
4162 .long 4261281024,3671720154
4163 .long 3031741440,1061093439
4164 .long 1499027712,2492727444
4165 .long 2021160960,1549533276
4166 .long 2560137216,33685506
4167 .long 101058048,1246363722
4168 .long 1785358848,858980403
4169 .long 3890734848,1734803559
4170 .long 1179010560,4092788979
4171 .long 1903259904,2139029631
4172 .long 3132799488,3806462178
4173 .long 3570717696,2610626715
4174 .long 623191296,640024614
4175 .long 2880154368,926351415
4176 .long 1111638528,993722427
4177 .long 2290649088,2526412950
4178 .long 2728567296,1263206475
4179 .long 2374864128,3200123070
4180 .long 4210752000,774766638
4181 .long 1920102912,2037973113
4182 .long 117901056,2357985420
4183 .long 3115956480,1852702830
4184 .long 1431655680,2391670926
4185 .long 4177065984,4126474485
4186 .long 4008635904,3065381046
4187 .long 2896997376,4261216509
4188 .long 168430080,1499005017
4189 .long 909522432,2560098456
4190 .long 1229539584,1785331818
4191 .long 707406336,1178992710
4192 .long 1751672832,3132752058
4193 .long 1010580480,623181861
4194 .long 943208448,1111621698
4195 .long 4059164928,2728525986
4196 .long 2762253312,4210688250
4197 .long 1077952512,117899271
4198 .long 673720320,1431634005
4199 .long 3553874688,4008575214
4200 .long 2071689984,168427530
4201 .long 3149642496,1229520969
4202 .long 3385444608,1751646312
4203 .long 1128481536,943194168
4204 .long 3250700544,2762211492
4205 .long 353703168,673710120
4206 .long 3823362816,2071658619
4207 .long 2913840384,3385393353
4208 .long 4109693952,3250651329
4209 .long 2004317952,3823304931
4210 .long 3351758592,4109631732
4211 .long 2155905024,3351707847
4212 .long 2661195264,2661154974
4213 .long 14737632,939538488
4214 .long 328965,1090535745
4215 .long 5789784,369104406
4216 .long 14277081,1979741814
4217 .long 6776679,3640711641
4218 .long 5131854,2466288531
4219 .long 8487297,1610637408
4220 .long 13355979,4060148466
4221 .long 13224393,1912631922
4222 .long 723723,3254829762
4223 .long 11447982,2868947883
4224 .long 6974058,2583730842
4225 .long 14013909,1962964341
4226 .long 1579032,100664838
4227 .long 6118749,1459640151
4228 .long 8553090,2684395680
4229 .long 4605510,2432733585
4230 .long 14671839,4144035831
4231 .long 14079702,3036722613
4232 .long 2565927,3372272073
4233 .long 9079434,2717950626
4234 .long 3289650,2348846220
4235 .long 4934475,3523269330
4236 .long 4342338,2415956112
4237 .long 14408667,4127258358
4238 .long 1842204,117442311
4239 .long 10395294,2801837991
4240 .long 10263708,654321447
4241 .long 3815994,2382401166
4242 .long 13290186,2986390194
4243 .long 2434341,1224755529
4244 .long 8092539,3724599006
4245 .long 855309,1124090691
4246 .long 7434609,1543527516
4247 .long 6250335,3607156695
4248 .long 2039583,3338717127
4249 .long 16316664,1040203326
4250 .long 14145495,4110480885
4251 .long 4079166,2399178639
4252 .long 10329501,1728079719
4253 .long 8158332,520101663
4254 .long 6316128,402659352
4255 .long 12171705,1845522030
4256 .long 12500670,2936057775
4257 .long 12369084,788541231
4258 .long 9145227,3791708898
4259 .long 1447446,2231403909
4260 .long 3421236,218107149
4261 .long 5066061,1392530259
4262 .long 12829635,4026593520
4263 .long 7500402,2617285788
4264 .long 9803157,1694524773
4265 .long 11250603,3925928682
4266 .long 9342606,2734728099
4267 .long 12237498,2919280302
4268 .long 8026746,2650840734
4269 .long 11776947,3959483628
4270 .long 131586,2147516544
4271 .long 11842740,754986285
4272 .long 11382189,1795189611
4273 .long 10658466,2818615464
4274 .long 11316396,721431339
4275 .long 14211288,905983542
4276 .long 10132122,2785060518
4277 .long 1513239,3305162181
4278 .long 1710618,2248181382
4279 .long 3487029,1291865421
4280 .long 13421772,855651123
4281 .long 16250871,4244700669
4282 .long 10066329,1711302246
4283 .long 6381921,1476417624
4284 .long 5921370,2516620950
4285 .long 15263976,973093434
4286 .long 2368548,150997257
4287 .long 5658198,2499843477
4288 .long 4210752,268439568
4289 .long 14803425,2013296760
4290 .long 6513507,3623934168
4291 .long 592137,1107313218
4292 .long 3355443,3422604492
4293 .long 12566463,4009816047
4294 .long 10000536,637543974
4295 .long 9934743,3842041317
4296 .long 8750469,1627414881
4297 .long 6842472,436214298
4298 .long 16579836,1056980799
4299 .long 15527148,989870907
4300 .long 657930,2181071490
4301 .long 14342874,3053500086
4302 .long 7303023,3674266587
4303 .long 5460819,3556824276
4304 .long 6447714,2550175896
4305 .long 10724259,3892373736
4306 .long 3026478,2332068747
4307 .long 526344,33554946
4308 .long 11513775,3942706155
4309 .long 2631720,167774730
4310 .long 11579568,738208812
4311 .long 7631988,486546717
4312 .long 12763842,2952835248
4313 .long 12434877,1862299503
4314 .long 3552822,2365623693
4315 .long 2236962,2281736328
4316 .long 3684408,234884622
4317 .long 6579300,419436825
4318 .long 1973790,2264958855
4319 .long 3750201,1308642894
4320 .long 2894892,184552203
4321 .long 10921638,2835392937
4322 .long 3158064,201329676
4323 .long 15066597,2030074233
4324 .long 4473924,285217041
4325 .long 16645629,2130739071
4326 .long 8947848,570434082
4327 .long 10461087,3875596263
4328 .long 6645093,1493195097
4329 .long 8882055,3774931425
4330 .long 7039851,3657489114
4331 .long 16053492,1023425853
4332 .long 2302755,3355494600
4333 .long 4737096,301994514
4334 .long 1052688,67109892
4335 .long 13750737,1946186868
4336 .long 5329233,1409307732
4337 .long 12632256,805318704
4338 .long 16382457,2113961598
4339 .long 13816530,3019945140
4340 .long 10526880,671098920
4341 .long 5592405,1426085205
4342 .long 10592673,1744857192
4343 .long 4276545,1342197840
4344 .long 16448250,3187719870
4345 .long 4408131,3489714384
4346 .long 1250067,3288384708
4347 .long 12895428,822096177
4348 .long 3092271,3405827019
4349 .long 11053224,704653866
4350 .long 11974326,2902502829
4351 .long 3947580,251662095
4352 .long 2829099,3389049546
4353 .long 12698049,1879076976
4354 .long 16777215,4278255615
4355 .long 13158600,838873650
4356 .long 10855845,1761634665
4357 .long 2105376,134219784
4358 .long 9013641,1644192354
4359 .long 0,0
4360 .long 9474192,603989028
4361 .long 4671303,3506491857
4362 .long 15724527,4211145723
4363 .long 15395562,3120609978
4364 .long 12040119,3976261101
4365 .long 1381653,1157645637
4366 .long 394758,2164294017
4367 .long 13487565,1929409395
4368 .long 11908533,1828744557
4369 .long 1184274,2214626436
4370 .long 8289918,2667618207
4371 .long 12303291,3993038574
4372 .long 2697513,1241533002
4373 .long 986895,3271607235
4374 .long 12105912,771763758
4375 .long 460551,3238052289
4376 .long 263172,16777473
4377 .long 10197915,3858818790
4378 .long 9737364,620766501
4379 .long 2171169,1207978056
4380 .long 6710886,2566953369
4381 .long 15132390,3103832505
4382 .long 13553358,3003167667
4383 .long 15592941,2063629179
4384 .long 15198183,4177590777
4385 .long 3881787,3456159438
4386 .long 16711422,3204497343
4387 .long 8355711,3741376479
4388 .long 12961221,1895854449
4389 .long 10790052,687876393
4390 .long 3618615,3439381965
4391 .long 11645361,1811967084
4392 .long 5000268,318771987
4393 .long 9539985,1677747300
4394 .long 7237230,2600508315
4395 .long 9276813,1660969827
4396 .long 7763574,2634063261
4397 .long 197379,3221274816
4398 .long 2960685,1258310475
4399 .long 14606046,3070277559
4400 .long 9868950,2768283045
4401 .long 2500134,2298513801
4402 .long 8224125,1593859935
4403 .long 13027014,2969612721
4404 .long 6052956,385881879
4405 .long 13882323,4093703412
4406 .long 15921906,3154164924
4407 .long 5197647,3540046803
4408 .long 1644825,1174423110
4409 .long 4144959,3472936911
4410 .long 14474460,922761015
4411 .long 7960953,1577082462
4412 .long 1907997,1191200583
4413 .long 5395026,2483066004
4414 .long 15461355,4194368250
4415 .long 15987699,4227923196
4416 .long 7171437,1526750043
4417 .long 6184542,2533398423
4418 .long 16514043,4261478142
4419 .long 6908265,1509972570
4420 .long 11711154,2885725356
4421 .long 15790320,1006648380
4422 .long 3223857,1275087948
4423 .long 789516,50332419
4424 .long 13948116,889206069
4425 .long 13619151,4076925939
4426 .long 9211020,587211555
4427 .long 14869218,3087055032
4428 .long 7697781,1560304989
4429 .long 11119017,1778412138
4430 .long 4868682,2449511058
4431 .long 5723991,3573601749
4432 .long 8684676,553656609
4433 .long 1118481,1140868164
4434 .long 4539717,1358975313
4435 .long 1776411,3321939654
4436 .long 16119285,2097184125
4437 .long 15000804,956315961
4438 .long 921102,2197848963
4439 .long 7566195,3691044060
4440 .long 11184810,2852170410
4441 .long 15856113,2080406652
4442 .long 14540253,1996519287
4443 .long 5855577,1442862678
4444 .long 1315860,83887365
4445 .long 7105644,452991771
4446 .long 9605778,2751505572
4447 .long 5526612,352326933
4448 .long 13684944,872428596
4449 .long 7895160,503324190
4450 .long 7368816,469769244
4451 .long 14935011,4160813304
4452 .long 4802889,1375752786
4453 .long 8421504,536879136
4454 .long 5263440,335549460
4455 .long 10987431,3909151209
4456 .long 16185078,3170942397
4457 .long 7829367,3707821533
4458 .long 9671571,3825263844
4459 .long 8816262,2701173153
4460 .long 8618883,3758153952
4461 .long 2763306,2315291274
4462 .long 13092807,4043370993
4463 .long 5987163,3590379222
4464 .long 15329769,2046851706
4465 .long 15658734,3137387451
4466 .long 9408399,3808486371
4467 .long 65793,1073758272
4468 .long 4013373,1325420367
4469 .globl Camellia_cbc_encrypt
4470 .type Camellia_cbc_encrypt,@function
4471 .align 16
4472 Camellia_cbc_encrypt:
4473 .L_Camellia_cbc_encrypt_begin:
4474 pushl %ebp
4475 pushl %ebx
4476 pushl %esi
4477 pushl %edi
4478 movl 28(%esp),%ecx
4479 cmpl $0,%ecx
4480 je .L016enc_out
4481 pushfl
4482 cld
4483 movl 24(%esp),%eax
4484 movl 28(%esp),%ebx
4485 movl 36(%esp),%edx
4486 movl 40(%esp),%ebp
4487 leal -64(%esp),%esi
4488 andl $-64,%esi
4489 leal -127(%edx),%edi
4490 subl %esi,%edi
4491 negl %edi
4492 andl $960,%edi
4493 subl %edi,%esi
4494 movl 44(%esp),%edi
4495 xchgl %esi,%esp
4496 addl $4,%esp
4497 movl %esi,20(%esp)
4498 movl %eax,24(%esp)
4499 movl %ebx,28(%esp)
4500 movl %ecx,32(%esp)
4501 movl %edx,36(%esp)
4502 movl %ebp,40(%esp)
4503 call .L017pic_point
4504 .L017pic_point:
4505 popl %ebp
4506 leal .LCamellia_SBOX-.L017pic_point(%ebp),%ebp
4507 movl $32,%esi
4508 .align 4
4509 .L018prefetch_sbox:
4510 movl (%ebp),%eax
4511 movl 32(%ebp),%ebx
4512 movl 64(%ebp),%ecx
4513 movl 96(%ebp),%edx
4514 leal 128(%ebp),%ebp
4515 decl %esi
4516 jnz .L018prefetch_sbox
4517 movl 36(%esp),%eax
4518 subl $4096,%ebp
4519 movl 24(%esp),%esi
4520 movl 272(%eax),%edx
4521 cmpl $0,%edi
4522 je .L019DECRYPT
4523 movl 32(%esp),%ecx
4524 movl 40(%esp),%edi
4525 shll $6,%edx
4526 leal (%eax,%edx,1),%edx
4527 movl %edx,16(%esp)
4528 testl $4294967280,%ecx
4529 jz .L020enc_tail
4530 movl (%edi),%eax
4531 movl 4(%edi),%ebx
4532 .align 4
4533 .L021enc_loop:
4534 movl 8(%edi),%ecx
4535 movl 12(%edi),%edx
4536 xorl (%esi),%eax
4537 xorl 4(%esi),%ebx
4538 xorl 8(%esi),%ecx
4539 bswap %eax
4540 xorl 12(%esi),%edx
4541 bswap %ebx
4542 movl 36(%esp),%edi
4543 bswap %ecx
4544 bswap %edx
4545 call _x86_Camellia_encrypt
4546 movl 24(%esp),%esi
4547 movl 28(%esp),%edi
4548 bswap %eax
4549 bswap %ebx
4550 bswap %ecx
4551 movl %eax,(%edi)
4552 bswap %edx
4553 movl %ebx,4(%edi)
4554 movl %ecx,8(%edi)
4555 movl %edx,12(%edi)
4556 movl 32(%esp),%ecx
4557 leal 16(%esi),%esi
4558 movl %esi,24(%esp)
4559 leal 16(%edi),%edx
4560 movl %edx,28(%esp)
4561 subl $16,%ecx
4562 testl $4294967280,%ecx
4563 movl %ecx,32(%esp)
4564 jnz .L021enc_loop
4565 testl $15,%ecx
4566 jnz .L020enc_tail
4567 movl 40(%esp),%esi
4568 movl 8(%edi),%ecx
4569 movl 12(%edi),%edx
4570 movl %eax,(%esi)
4571 movl %ebx,4(%esi)
4572 movl %ecx,8(%esi)
4573 movl %edx,12(%esi)
4574 movl 20(%esp),%esp
4575 popfl
4576 .L016enc_out:
4577 popl %edi
4578 popl %esi
4579 popl %ebx
4580 popl %ebp
4581 ret
4582 pushfl
4583 .align 4
4584 .L020enc_tail:
4585 movl %edi,%eax
4586 movl 28(%esp),%edi
4587 pushl %eax
4588 movl $16,%ebx
4589 subl %ecx,%ebx
4590 cmpl %esi,%edi
4591 je .L022enc_in_place
4592 .align 4
4593 .long 2767451785
4594 jmp .L023enc_skip_in_place
4595 .L022enc_in_place:
4596 leal (%edi,%ecx,1),%edi
4597 .L023enc_skip_in_place:
4598 movl %ebx,%ecx
4599 xorl %eax,%eax
4600 .align 4
4601 .long 2868115081
4602 popl %edi
4603 movl 28(%esp),%esi
4604 movl (%edi),%eax
4605 movl 4(%edi),%ebx
4606 movl $16,32(%esp)
4607 jmp .L021enc_loop
4608 .align 16
4609 .L019DECRYPT:
4610 shll $6,%edx
4611 leal (%eax,%edx,1),%edx
4612 movl %eax,16(%esp)
4613 movl %edx,36(%esp)
4614 cmpl 28(%esp),%esi
4615 je .L024dec_in_place
4616 movl 40(%esp),%edi
4617 movl %edi,44(%esp)
4618 .align 4
4619 .L025dec_loop:
4620 movl (%esi),%eax
4621 movl 4(%esi),%ebx
4622 movl 8(%esi),%ecx
4623 bswap %eax
4624 movl 12(%esi),%edx
4625 bswap %ebx
4626 movl 36(%esp),%edi
4627 bswap %ecx
4628 bswap %edx
4629 call _x86_Camellia_decrypt
4630 movl 44(%esp),%edi
4631 movl 32(%esp),%esi
4632 bswap %eax
4633 bswap %ebx
4634 bswap %ecx
4635 xorl (%edi),%eax
4636 bswap %edx
4637 xorl 4(%edi),%ebx
4638 xorl 8(%edi),%ecx
4639 xorl 12(%edi),%edx
4640 subl $16,%esi
4641 jc .L026dec_partial
4642 movl %esi,32(%esp)
4643 movl 24(%esp),%esi
4644 movl 28(%esp),%edi
4645 movl %eax,(%edi)
4646 movl %ebx,4(%edi)
4647 movl %ecx,8(%edi)
4648 movl %edx,12(%edi)
4649 movl %esi,44(%esp)
4650 leal 16(%esi),%esi
4651 movl %esi,24(%esp)
4652 leal 16(%edi),%edi
4653 movl %edi,28(%esp)
4654 jnz .L025dec_loop
4655 movl 44(%esp),%edi
4656 .L027dec_end:
4657 movl 40(%esp),%esi
4658 movl (%edi),%eax
4659 movl 4(%edi),%ebx
4660 movl 8(%edi),%ecx
4661 movl 12(%edi),%edx
4662 movl %eax,(%esi)
4663 movl %ebx,4(%esi)
4664 movl %ecx,8(%esi)
4665 movl %edx,12(%esi)
4666 jmp .L028dec_out
4667 .align 4
4668 .L026dec_partial:
4669 leal 44(%esp),%edi
4670 movl %eax,(%edi)
4671 movl %ebx,4(%edi)
4672 movl %ecx,8(%edi)
4673 movl %edx,12(%edi)
4674 leal 16(%esi),%ecx
4675 movl %edi,%esi
4676 movl 28(%esp),%edi
4677 .long 2767451785
4678 movl 24(%esp),%edi
4679 jmp .L027dec_end
4680 .align 4
4681 .L024dec_in_place:
4682 .L029dec_in_place_loop:
4683 leal 44(%esp),%edi
4684 movl (%esi),%eax
4685 movl 4(%esi),%ebx
4686 movl 8(%esi),%ecx
4687 movl 12(%esi),%edx
4688 movl %eax,(%edi)
4689 movl %ebx,4(%edi)
4690 movl %ecx,8(%edi)
4691 bswap %eax
4692 movl %edx,12(%edi)
4693 bswap %ebx
4694 movl 36(%esp),%edi
4695 bswap %ecx
4696 bswap %edx
4697 call _x86_Camellia_decrypt
4698 movl 40(%esp),%edi
4699 movl 28(%esp),%esi
4700 bswap %eax
4701 bswap %ebx
4702 bswap %ecx
4703 xorl (%edi),%eax
4704 bswap %edx
4705 xorl 4(%edi),%ebx
4706 xorl 8(%edi),%ecx
4707 xorl 12(%edi),%edx
4708 movl %eax,(%esi)
4709 movl %ebx,4(%esi)
4710 movl %ecx,8(%esi)
4711 movl %edx,12(%esi)
4712 leal 16(%esi),%esi
4713 movl %esi,28(%esp)
4714 leal 44(%esp),%esi
4715 movl (%esi),%eax
4716 movl 4(%esi),%ebx
4717 movl 8(%esi),%ecx
4718 movl 12(%esi),%edx
4719 movl %eax,(%edi)
4720 movl %ebx,4(%edi)
4721 movl %ecx,8(%edi)
4722 movl %edx,12(%edi)
4723 movl 24(%esp),%esi
4724 leal 16(%esi),%esi
4725 movl %esi,24(%esp)
4726 movl 32(%esp),%ecx
4727 subl $16,%ecx
4728 jc .L030dec_in_place_partial
4729 movl %ecx,32(%esp)
4730 jnz .L029dec_in_place_loop
4731 jmp .L028dec_out
4732 .align 4
4733 .L030dec_in_place_partial:
4734 movl 28(%esp),%edi
4735 leal 44(%esp),%esi
4736 leal (%edi,%ecx,1),%edi
4737 leal 16(%esi,%ecx,1),%esi
4738 negl %ecx
4739 .long 2767451785
4740 .align 4
4741 .L028dec_out:
4742 movl 20(%esp),%esp
4743 popfl
4744 popl %edi
4745 popl %esi
4746 popl %ebx
4747 popl %ebp
4748 ret
4749 .size Camellia_cbc_encrypt,.-.L_Camellia_cbc_encrypt_begin
4750 .byte 67,97,109,101,108,108,105,97,32,102,111,114,32,120,56,54
4751 .byte 32,98,121,32,60,97,112,112,114,111,64,111,112,101,110,115
4752 .byte 115,108,46,111,114,103,62,0
4753 #endif
Cache object: 2e0ce9ae84d6f864c01ca7dc9108ae16
|