if_iwm - Adjust if_iwm_sta.h prototypes, don't pass iwm_node to rm_sta().
[dragonfly.git] / secure / lib / libcrypto / asm / cmll-x86_64.s
blob462e3429e26d0fa2fe573b448e07b6e1630c377a
1 .text
4 .globl Camellia_EncryptBlock
5 .type Camellia_EncryptBlock,@function
6 .align 16
7 Camellia_EncryptBlock:
8 movl $128,%eax
9 subl %edi,%eax
10 movl $3,%edi
11 adcl $0,%edi
12 jmp .Lenc_rounds
13 .size Camellia_EncryptBlock,.-Camellia_EncryptBlock
15 .globl Camellia_EncryptBlock_Rounds
16 .type Camellia_EncryptBlock_Rounds,@function
17 .align 16
18 .Lenc_rounds:
19 Camellia_EncryptBlock_Rounds:
20 pushq %rbx
21 pushq %rbp
22 pushq %r13
23 pushq %r14
24 pushq %r15
25 .Lenc_prologue:
28 movq %rcx,%r13
29 movq %rdx,%r14
31 shll $6,%edi
32 leaq .LCamellia_SBOX(%rip),%rbp
33 leaq (%r14,%rdi,1),%r15
35 movl 0(%rsi),%r8d
36 movl 4(%rsi),%r9d
37 movl 8(%rsi),%r10d
38 bswapl %r8d
39 movl 12(%rsi),%r11d
40 bswapl %r9d
41 bswapl %r10d
42 bswapl %r11d
44 call _x86_64_Camellia_encrypt
46 bswapl %r8d
47 bswapl %r9d
48 bswapl %r10d
49 movl %r8d,0(%r13)
50 bswapl %r11d
51 movl %r9d,4(%r13)
52 movl %r10d,8(%r13)
53 movl %r11d,12(%r13)
55 movq 0(%rsp),%r15
56 movq 8(%rsp),%r14
57 movq 16(%rsp),%r13
58 movq 24(%rsp),%rbp
59 movq 32(%rsp),%rbx
60 leaq 40(%rsp),%rsp
61 .Lenc_epilogue:
62 .byte 0xf3,0xc3
63 .size Camellia_EncryptBlock_Rounds,.-Camellia_EncryptBlock_Rounds
65 .type _x86_64_Camellia_encrypt,@function
66 .align 16
67 _x86_64_Camellia_encrypt:
68 xorl 0(%r14),%r9d
69 xorl 4(%r14),%r8d
70 xorl 8(%r14),%r11d
71 xorl 12(%r14),%r10d
72 .align 16
73 .Leloop:
74 movl 16(%r14),%ebx
75 movl 20(%r14),%eax
77 xorl %r8d,%eax
78 xorl %r9d,%ebx
79 movzbl %ah,%esi
80 movzbl %bl,%edi
81 movl 2052(%rbp,%rsi,8),%edx
82 movl 0(%rbp,%rdi,8),%ecx
83 movzbl %al,%esi
84 shrl $16,%eax
85 movzbl %bh,%edi
86 xorl 4(%rbp,%rsi,8),%edx
87 shrl $16,%ebx
88 xorl 4(%rbp,%rdi,8),%ecx
89 movzbl %ah,%esi
90 movzbl %bl,%edi
91 xorl 0(%rbp,%rsi,8),%edx
92 xorl 2052(%rbp,%rdi,8),%ecx
93 movzbl %al,%esi
94 movzbl %bh,%edi
95 xorl 2048(%rbp,%rsi,8),%edx
96 xorl 2048(%rbp,%rdi,8),%ecx
97 movl 24(%r14),%ebx
98 movl 28(%r14),%eax
99 xorl %edx,%ecx
100 rorl $8,%edx
101 xorl %ecx,%r10d
102 xorl %ecx,%r11d
103 xorl %edx,%r11d
104 xorl %r10d,%eax
105 xorl %r11d,%ebx
106 movzbl %ah,%esi
107 movzbl %bl,%edi
108 movl 2052(%rbp,%rsi,8),%edx
109 movl 0(%rbp,%rdi,8),%ecx
110 movzbl %al,%esi
111 shrl $16,%eax
112 movzbl %bh,%edi
113 xorl 4(%rbp,%rsi,8),%edx
114 shrl $16,%ebx
115 xorl 4(%rbp,%rdi,8),%ecx
116 movzbl %ah,%esi
117 movzbl %bl,%edi
118 xorl 0(%rbp,%rsi,8),%edx
119 xorl 2052(%rbp,%rdi,8),%ecx
120 movzbl %al,%esi
121 movzbl %bh,%edi
122 xorl 2048(%rbp,%rsi,8),%edx
123 xorl 2048(%rbp,%rdi,8),%ecx
124 movl 32(%r14),%ebx
125 movl 36(%r14),%eax
126 xorl %edx,%ecx
127 rorl $8,%edx
128 xorl %ecx,%r8d
129 xorl %ecx,%r9d
130 xorl %edx,%r9d
131 xorl %r8d,%eax
132 xorl %r9d,%ebx
133 movzbl %ah,%esi
134 movzbl %bl,%edi
135 movl 2052(%rbp,%rsi,8),%edx
136 movl 0(%rbp,%rdi,8),%ecx
137 movzbl %al,%esi
138 shrl $16,%eax
139 movzbl %bh,%edi
140 xorl 4(%rbp,%rsi,8),%edx
141 shrl $16,%ebx
142 xorl 4(%rbp,%rdi,8),%ecx
143 movzbl %ah,%esi
144 movzbl %bl,%edi
145 xorl 0(%rbp,%rsi,8),%edx
146 xorl 2052(%rbp,%rdi,8),%ecx
147 movzbl %al,%esi
148 movzbl %bh,%edi
149 xorl 2048(%rbp,%rsi,8),%edx
150 xorl 2048(%rbp,%rdi,8),%ecx
151 movl 40(%r14),%ebx
152 movl 44(%r14),%eax
153 xorl %edx,%ecx
154 rorl $8,%edx
155 xorl %ecx,%r10d
156 xorl %ecx,%r11d
157 xorl %edx,%r11d
158 xorl %r10d,%eax
159 xorl %r11d,%ebx
160 movzbl %ah,%esi
161 movzbl %bl,%edi
162 movl 2052(%rbp,%rsi,8),%edx
163 movl 0(%rbp,%rdi,8),%ecx
164 movzbl %al,%esi
165 shrl $16,%eax
166 movzbl %bh,%edi
167 xorl 4(%rbp,%rsi,8),%edx
168 shrl $16,%ebx
169 xorl 4(%rbp,%rdi,8),%ecx
170 movzbl %ah,%esi
171 movzbl %bl,%edi
172 xorl 0(%rbp,%rsi,8),%edx
173 xorl 2052(%rbp,%rdi,8),%ecx
174 movzbl %al,%esi
175 movzbl %bh,%edi
176 xorl 2048(%rbp,%rsi,8),%edx
177 xorl 2048(%rbp,%rdi,8),%ecx
178 movl 48(%r14),%ebx
179 movl 52(%r14),%eax
180 xorl %edx,%ecx
181 rorl $8,%edx
182 xorl %ecx,%r8d
183 xorl %ecx,%r9d
184 xorl %edx,%r9d
185 xorl %r8d,%eax
186 xorl %r9d,%ebx
187 movzbl %ah,%esi
188 movzbl %bl,%edi
189 movl 2052(%rbp,%rsi,8),%edx
190 movl 0(%rbp,%rdi,8),%ecx
191 movzbl %al,%esi
192 shrl $16,%eax
193 movzbl %bh,%edi
194 xorl 4(%rbp,%rsi,8),%edx
195 shrl $16,%ebx
196 xorl 4(%rbp,%rdi,8),%ecx
197 movzbl %ah,%esi
198 movzbl %bl,%edi
199 xorl 0(%rbp,%rsi,8),%edx
200 xorl 2052(%rbp,%rdi,8),%ecx
201 movzbl %al,%esi
202 movzbl %bh,%edi
203 xorl 2048(%rbp,%rsi,8),%edx
204 xorl 2048(%rbp,%rdi,8),%ecx
205 movl 56(%r14),%ebx
206 movl 60(%r14),%eax
207 xorl %edx,%ecx
208 rorl $8,%edx
209 xorl %ecx,%r10d
210 xorl %ecx,%r11d
211 xorl %edx,%r11d
212 xorl %r10d,%eax
213 xorl %r11d,%ebx
214 movzbl %ah,%esi
215 movzbl %bl,%edi
216 movl 2052(%rbp,%rsi,8),%edx
217 movl 0(%rbp,%rdi,8),%ecx
218 movzbl %al,%esi
219 shrl $16,%eax
220 movzbl %bh,%edi
221 xorl 4(%rbp,%rsi,8),%edx
222 shrl $16,%ebx
223 xorl 4(%rbp,%rdi,8),%ecx
224 movzbl %ah,%esi
225 movzbl %bl,%edi
226 xorl 0(%rbp,%rsi,8),%edx
227 xorl 2052(%rbp,%rdi,8),%ecx
228 movzbl %al,%esi
229 movzbl %bh,%edi
230 xorl 2048(%rbp,%rsi,8),%edx
231 xorl 2048(%rbp,%rdi,8),%ecx
232 movl 64(%r14),%ebx
233 movl 68(%r14),%eax
234 xorl %edx,%ecx
235 rorl $8,%edx
236 xorl %ecx,%r8d
237 xorl %ecx,%r9d
238 xorl %edx,%r9d
239 leaq 64(%r14),%r14
240 cmpq %r15,%r14
241 movl 8(%r14),%edx
242 movl 12(%r14),%ecx
243 je .Ledone
245 andl %r8d,%eax
246 orl %r11d,%edx
247 roll $1,%eax
248 xorl %edx,%r10d
249 xorl %eax,%r9d
250 andl %r10d,%ecx
251 orl %r9d,%ebx
252 roll $1,%ecx
253 xorl %ebx,%r8d
254 xorl %ecx,%r11d
255 jmp .Leloop
257 .align 16
258 .Ledone:
259 xorl %r10d,%eax
260 xorl %r11d,%ebx
261 xorl %r8d,%ecx
262 xorl %r9d,%edx
264 movl %eax,%r8d
265 movl %ebx,%r9d
266 movl %ecx,%r10d
267 movl %edx,%r11d
269 .byte 0xf3,0xc3
270 .size _x86_64_Camellia_encrypt,.-_x86_64_Camellia_encrypt
273 .globl Camellia_DecryptBlock
274 .type Camellia_DecryptBlock,@function
275 .align 16
276 Camellia_DecryptBlock:
277 movl $128,%eax
278 subl %edi,%eax
279 movl $3,%edi
280 adcl $0,%edi
281 jmp .Ldec_rounds
282 .size Camellia_DecryptBlock,.-Camellia_DecryptBlock
284 .globl Camellia_DecryptBlock_Rounds
285 .type Camellia_DecryptBlock_Rounds,@function
286 .align 16
287 .Ldec_rounds:
288 Camellia_DecryptBlock_Rounds:
289 pushq %rbx
290 pushq %rbp
291 pushq %r13
292 pushq %r14
293 pushq %r15
294 .Ldec_prologue:
297 movq %rcx,%r13
298 movq %rdx,%r15
300 shll $6,%edi
301 leaq .LCamellia_SBOX(%rip),%rbp
302 leaq (%r15,%rdi,1),%r14
304 movl 0(%rsi),%r8d
305 movl 4(%rsi),%r9d
306 movl 8(%rsi),%r10d
307 bswapl %r8d
308 movl 12(%rsi),%r11d
309 bswapl %r9d
310 bswapl %r10d
311 bswapl %r11d
313 call _x86_64_Camellia_decrypt
315 bswapl %r8d
316 bswapl %r9d
317 bswapl %r10d
318 movl %r8d,0(%r13)
319 bswapl %r11d
320 movl %r9d,4(%r13)
321 movl %r10d,8(%r13)
322 movl %r11d,12(%r13)
324 movq 0(%rsp),%r15
325 movq 8(%rsp),%r14
326 movq 16(%rsp),%r13
327 movq 24(%rsp),%rbp
328 movq 32(%rsp),%rbx
329 leaq 40(%rsp),%rsp
330 .Ldec_epilogue:
331 .byte 0xf3,0xc3
332 .size Camellia_DecryptBlock_Rounds,.-Camellia_DecryptBlock_Rounds
334 .type _x86_64_Camellia_decrypt,@function
335 .align 16
336 _x86_64_Camellia_decrypt:
337 xorl 0(%r14),%r9d
338 xorl 4(%r14),%r8d
339 xorl 8(%r14),%r11d
340 xorl 12(%r14),%r10d
341 .align 16
342 .Ldloop:
343 movl -8(%r14),%ebx
344 movl -4(%r14),%eax
346 xorl %r8d,%eax
347 xorl %r9d,%ebx
348 movzbl %ah,%esi
349 movzbl %bl,%edi
350 movl 2052(%rbp,%rsi,8),%edx
351 movl 0(%rbp,%rdi,8),%ecx
352 movzbl %al,%esi
353 shrl $16,%eax
354 movzbl %bh,%edi
355 xorl 4(%rbp,%rsi,8),%edx
356 shrl $16,%ebx
357 xorl 4(%rbp,%rdi,8),%ecx
358 movzbl %ah,%esi
359 movzbl %bl,%edi
360 xorl 0(%rbp,%rsi,8),%edx
361 xorl 2052(%rbp,%rdi,8),%ecx
362 movzbl %al,%esi
363 movzbl %bh,%edi
364 xorl 2048(%rbp,%rsi,8),%edx
365 xorl 2048(%rbp,%rdi,8),%ecx
366 movl -16(%r14),%ebx
367 movl -12(%r14),%eax
368 xorl %edx,%ecx
369 rorl $8,%edx
370 xorl %ecx,%r10d
371 xorl %ecx,%r11d
372 xorl %edx,%r11d
373 xorl %r10d,%eax
374 xorl %r11d,%ebx
375 movzbl %ah,%esi
376 movzbl %bl,%edi
377 movl 2052(%rbp,%rsi,8),%edx
378 movl 0(%rbp,%rdi,8),%ecx
379 movzbl %al,%esi
380 shrl $16,%eax
381 movzbl %bh,%edi
382 xorl 4(%rbp,%rsi,8),%edx
383 shrl $16,%ebx
384 xorl 4(%rbp,%rdi,8),%ecx
385 movzbl %ah,%esi
386 movzbl %bl,%edi
387 xorl 0(%rbp,%rsi,8),%edx
388 xorl 2052(%rbp,%rdi,8),%ecx
389 movzbl %al,%esi
390 movzbl %bh,%edi
391 xorl 2048(%rbp,%rsi,8),%edx
392 xorl 2048(%rbp,%rdi,8),%ecx
393 movl -24(%r14),%ebx
394 movl -20(%r14),%eax
395 xorl %edx,%ecx
396 rorl $8,%edx
397 xorl %ecx,%r8d
398 xorl %ecx,%r9d
399 xorl %edx,%r9d
400 xorl %r8d,%eax
401 xorl %r9d,%ebx
402 movzbl %ah,%esi
403 movzbl %bl,%edi
404 movl 2052(%rbp,%rsi,8),%edx
405 movl 0(%rbp,%rdi,8),%ecx
406 movzbl %al,%esi
407 shrl $16,%eax
408 movzbl %bh,%edi
409 xorl 4(%rbp,%rsi,8),%edx
410 shrl $16,%ebx
411 xorl 4(%rbp,%rdi,8),%ecx
412 movzbl %ah,%esi
413 movzbl %bl,%edi
414 xorl 0(%rbp,%rsi,8),%edx
415 xorl 2052(%rbp,%rdi,8),%ecx
416 movzbl %al,%esi
417 movzbl %bh,%edi
418 xorl 2048(%rbp,%rsi,8),%edx
419 xorl 2048(%rbp,%rdi,8),%ecx
420 movl -32(%r14),%ebx
421 movl -28(%r14),%eax
422 xorl %edx,%ecx
423 rorl $8,%edx
424 xorl %ecx,%r10d
425 xorl %ecx,%r11d
426 xorl %edx,%r11d
427 xorl %r10d,%eax
428 xorl %r11d,%ebx
429 movzbl %ah,%esi
430 movzbl %bl,%edi
431 movl 2052(%rbp,%rsi,8),%edx
432 movl 0(%rbp,%rdi,8),%ecx
433 movzbl %al,%esi
434 shrl $16,%eax
435 movzbl %bh,%edi
436 xorl 4(%rbp,%rsi,8),%edx
437 shrl $16,%ebx
438 xorl 4(%rbp,%rdi,8),%ecx
439 movzbl %ah,%esi
440 movzbl %bl,%edi
441 xorl 0(%rbp,%rsi,8),%edx
442 xorl 2052(%rbp,%rdi,8),%ecx
443 movzbl %al,%esi
444 movzbl %bh,%edi
445 xorl 2048(%rbp,%rsi,8),%edx
446 xorl 2048(%rbp,%rdi,8),%ecx
447 movl -40(%r14),%ebx
448 movl -36(%r14),%eax
449 xorl %edx,%ecx
450 rorl $8,%edx
451 xorl %ecx,%r8d
452 xorl %ecx,%r9d
453 xorl %edx,%r9d
454 xorl %r8d,%eax
455 xorl %r9d,%ebx
456 movzbl %ah,%esi
457 movzbl %bl,%edi
458 movl 2052(%rbp,%rsi,8),%edx
459 movl 0(%rbp,%rdi,8),%ecx
460 movzbl %al,%esi
461 shrl $16,%eax
462 movzbl %bh,%edi
463 xorl 4(%rbp,%rsi,8),%edx
464 shrl $16,%ebx
465 xorl 4(%rbp,%rdi,8),%ecx
466 movzbl %ah,%esi
467 movzbl %bl,%edi
468 xorl 0(%rbp,%rsi,8),%edx
469 xorl 2052(%rbp,%rdi,8),%ecx
470 movzbl %al,%esi
471 movzbl %bh,%edi
472 xorl 2048(%rbp,%rsi,8),%edx
473 xorl 2048(%rbp,%rdi,8),%ecx
474 movl -48(%r14),%ebx
475 movl -44(%r14),%eax
476 xorl %edx,%ecx
477 rorl $8,%edx
478 xorl %ecx,%r10d
479 xorl %ecx,%r11d
480 xorl %edx,%r11d
481 xorl %r10d,%eax
482 xorl %r11d,%ebx
483 movzbl %ah,%esi
484 movzbl %bl,%edi
485 movl 2052(%rbp,%rsi,8),%edx
486 movl 0(%rbp,%rdi,8),%ecx
487 movzbl %al,%esi
488 shrl $16,%eax
489 movzbl %bh,%edi
490 xorl 4(%rbp,%rsi,8),%edx
491 shrl $16,%ebx
492 xorl 4(%rbp,%rdi,8),%ecx
493 movzbl %ah,%esi
494 movzbl %bl,%edi
495 xorl 0(%rbp,%rsi,8),%edx
496 xorl 2052(%rbp,%rdi,8),%ecx
497 movzbl %al,%esi
498 movzbl %bh,%edi
499 xorl 2048(%rbp,%rsi,8),%edx
500 xorl 2048(%rbp,%rdi,8),%ecx
501 movl -56(%r14),%ebx
502 movl -52(%r14),%eax
503 xorl %edx,%ecx
504 rorl $8,%edx
505 xorl %ecx,%r8d
506 xorl %ecx,%r9d
507 xorl %edx,%r9d
508 leaq -64(%r14),%r14
509 cmpq %r15,%r14
510 movl 0(%r14),%edx
511 movl 4(%r14),%ecx
512 je .Lddone
514 andl %r8d,%eax
515 orl %r11d,%edx
516 roll $1,%eax
517 xorl %edx,%r10d
518 xorl %eax,%r9d
519 andl %r10d,%ecx
520 orl %r9d,%ebx
521 roll $1,%ecx
522 xorl %ebx,%r8d
523 xorl %ecx,%r11d
525 jmp .Ldloop
527 .align 16
528 .Lddone:
529 xorl %r10d,%ecx
530 xorl %r11d,%edx
531 xorl %r8d,%eax
532 xorl %r9d,%ebx
534 movl %ecx,%r8d
535 movl %edx,%r9d
536 movl %eax,%r10d
537 movl %ebx,%r11d
539 .byte 0xf3,0xc3
540 .size _x86_64_Camellia_decrypt,.-_x86_64_Camellia_decrypt
541 .globl Camellia_Ekeygen
542 .type Camellia_Ekeygen,@function
543 .align 16
544 Camellia_Ekeygen:
545 pushq %rbx
546 pushq %rbp
547 pushq %r13
548 pushq %r14
549 pushq %r15
550 .Lkey_prologue:
552 movl %edi,%r15d
553 movq %rdx,%r13
555 movl 0(%rsi),%r8d
556 movl 4(%rsi),%r9d
557 movl 8(%rsi),%r10d
558 movl 12(%rsi),%r11d
560 bswapl %r8d
561 bswapl %r9d
562 bswapl %r10d
563 bswapl %r11d
564 movl %r9d,0(%r13)
565 movl %r8d,4(%r13)
566 movl %r11d,8(%r13)
567 movl %r10d,12(%r13)
568 cmpq $128,%r15
569 je .L1st128
571 movl 16(%rsi),%r8d
572 movl 20(%rsi),%r9d
573 cmpq $192,%r15
574 je .L1st192
575 movl 24(%rsi),%r10d
576 movl 28(%rsi),%r11d
577 jmp .L1st256
578 .L1st192:
579 movl %r8d,%r10d
580 movl %r9d,%r11d
581 notl %r10d
582 notl %r11d
583 .L1st256:
584 bswapl %r8d
585 bswapl %r9d
586 bswapl %r10d
587 bswapl %r11d
588 movl %r9d,32(%r13)
589 movl %r8d,36(%r13)
590 movl %r11d,40(%r13)
591 movl %r10d,44(%r13)
592 xorl 0(%r13),%r9d
593 xorl 4(%r13),%r8d
594 xorl 8(%r13),%r11d
595 xorl 12(%r13),%r10d
597 .L1st128:
598 leaq .LCamellia_SIGMA(%rip),%r14
599 leaq .LCamellia_SBOX(%rip),%rbp
601 movl 0(%r14),%ebx
602 movl 4(%r14),%eax
603 xorl %r8d,%eax
604 xorl %r9d,%ebx
605 movzbl %ah,%esi
606 movzbl %bl,%edi
607 movl 2052(%rbp,%rsi,8),%edx
608 movl 0(%rbp,%rdi,8),%ecx
609 movzbl %al,%esi
610 shrl $16,%eax
611 movzbl %bh,%edi
612 xorl 4(%rbp,%rsi,8),%edx
613 shrl $16,%ebx
614 xorl 4(%rbp,%rdi,8),%ecx
615 movzbl %ah,%esi
616 movzbl %bl,%edi
617 xorl 0(%rbp,%rsi,8),%edx
618 xorl 2052(%rbp,%rdi,8),%ecx
619 movzbl %al,%esi
620 movzbl %bh,%edi
621 xorl 2048(%rbp,%rsi,8),%edx
622 xorl 2048(%rbp,%rdi,8),%ecx
623 movl 8(%r14),%ebx
624 movl 12(%r14),%eax
625 xorl %edx,%ecx
626 rorl $8,%edx
627 xorl %ecx,%r10d
628 xorl %ecx,%r11d
629 xorl %edx,%r11d
630 xorl %r10d,%eax
631 xorl %r11d,%ebx
632 movzbl %ah,%esi
633 movzbl %bl,%edi
634 movl 2052(%rbp,%rsi,8),%edx
635 movl 0(%rbp,%rdi,8),%ecx
636 movzbl %al,%esi
637 shrl $16,%eax
638 movzbl %bh,%edi
639 xorl 4(%rbp,%rsi,8),%edx
640 shrl $16,%ebx
641 xorl 4(%rbp,%rdi,8),%ecx
642 movzbl %ah,%esi
643 movzbl %bl,%edi
644 xorl 0(%rbp,%rsi,8),%edx
645 xorl 2052(%rbp,%rdi,8),%ecx
646 movzbl %al,%esi
647 movzbl %bh,%edi
648 xorl 2048(%rbp,%rsi,8),%edx
649 xorl 2048(%rbp,%rdi,8),%ecx
650 movl 16(%r14),%ebx
651 movl 20(%r14),%eax
652 xorl %edx,%ecx
653 rorl $8,%edx
654 xorl %ecx,%r8d
655 xorl %ecx,%r9d
656 xorl %edx,%r9d
657 xorl 0(%r13),%r9d
658 xorl 4(%r13),%r8d
659 xorl 8(%r13),%r11d
660 xorl 12(%r13),%r10d
661 xorl %r8d,%eax
662 xorl %r9d,%ebx
663 movzbl %ah,%esi
664 movzbl %bl,%edi
665 movl 2052(%rbp,%rsi,8),%edx
666 movl 0(%rbp,%rdi,8),%ecx
667 movzbl %al,%esi
668 shrl $16,%eax
669 movzbl %bh,%edi
670 xorl 4(%rbp,%rsi,8),%edx
671 shrl $16,%ebx
672 xorl 4(%rbp,%rdi,8),%ecx
673 movzbl %ah,%esi
674 movzbl %bl,%edi
675 xorl 0(%rbp,%rsi,8),%edx
676 xorl 2052(%rbp,%rdi,8),%ecx
677 movzbl %al,%esi
678 movzbl %bh,%edi
679 xorl 2048(%rbp,%rsi,8),%edx
680 xorl 2048(%rbp,%rdi,8),%ecx
681 movl 24(%r14),%ebx
682 movl 28(%r14),%eax
683 xorl %edx,%ecx
684 rorl $8,%edx
685 xorl %ecx,%r10d
686 xorl %ecx,%r11d
687 xorl %edx,%r11d
688 xorl %r10d,%eax
689 xorl %r11d,%ebx
690 movzbl %ah,%esi
691 movzbl %bl,%edi
692 movl 2052(%rbp,%rsi,8),%edx
693 movl 0(%rbp,%rdi,8),%ecx
694 movzbl %al,%esi
695 shrl $16,%eax
696 movzbl %bh,%edi
697 xorl 4(%rbp,%rsi,8),%edx
698 shrl $16,%ebx
699 xorl 4(%rbp,%rdi,8),%ecx
700 movzbl %ah,%esi
701 movzbl %bl,%edi
702 xorl 0(%rbp,%rsi,8),%edx
703 xorl 2052(%rbp,%rdi,8),%ecx
704 movzbl %al,%esi
705 movzbl %bh,%edi
706 xorl 2048(%rbp,%rsi,8),%edx
707 xorl 2048(%rbp,%rdi,8),%ecx
708 movl 32(%r14),%ebx
709 movl 36(%r14),%eax
710 xorl %edx,%ecx
711 rorl $8,%edx
712 xorl %ecx,%r8d
713 xorl %ecx,%r9d
714 xorl %edx,%r9d
715 cmpq $128,%r15
716 jne .L2nd256
718 leaq 128(%r13),%r13
719 shlq $32,%r8
720 shlq $32,%r10
721 orq %r9,%r8
722 orq %r11,%r10
723 movq -128(%r13),%rax
724 movq -120(%r13),%rbx
725 movq %r8,-112(%r13)
726 movq %r10,-104(%r13)
727 movq %rax,%r11
728 shlq $15,%rax
729 movq %rbx,%r9
730 shrq $49,%r9
731 shrq $49,%r11
732 orq %r9,%rax
733 shlq $15,%rbx
734 orq %r11,%rbx
735 movq %rax,-96(%r13)
736 movq %rbx,-88(%r13)
737 movq %r8,%r11
738 shlq $15,%r8
739 movq %r10,%r9
740 shrq $49,%r9
741 shrq $49,%r11
742 orq %r9,%r8
743 shlq $15,%r10
744 orq %r11,%r10
745 movq %r8,-80(%r13)
746 movq %r10,-72(%r13)
747 movq %r8,%r11
748 shlq $15,%r8
749 movq %r10,%r9
750 shrq $49,%r9
751 shrq $49,%r11
752 orq %r9,%r8
753 shlq $15,%r10
754 orq %r11,%r10
755 movq %r8,-64(%r13)
756 movq %r10,-56(%r13)
757 movq %rax,%r11
758 shlq $30,%rax
759 movq %rbx,%r9
760 shrq $34,%r9
761 shrq $34,%r11
762 orq %r9,%rax
763 shlq $30,%rbx
764 orq %r11,%rbx
765 movq %rax,-48(%r13)
766 movq %rbx,-40(%r13)
767 movq %r8,%r11
768 shlq $15,%r8
769 movq %r10,%r9
770 shrq $49,%r9
771 shrq $49,%r11
772 orq %r9,%r8
773 shlq $15,%r10
774 orq %r11,%r10
775 movq %r8,-32(%r13)
776 movq %rax,%r11
777 shlq $15,%rax
778 movq %rbx,%r9
779 shrq $49,%r9
780 shrq $49,%r11
781 orq %r9,%rax
782 shlq $15,%rbx
783 orq %r11,%rbx
784 movq %rbx,-24(%r13)
785 movq %r8,%r11
786 shlq $15,%r8
787 movq %r10,%r9
788 shrq $49,%r9
789 shrq $49,%r11
790 orq %r9,%r8
791 shlq $15,%r10
792 orq %r11,%r10
793 movq %r8,-16(%r13)
794 movq %r10,-8(%r13)
795 movq %rax,%r11
796 shlq $17,%rax
797 movq %rbx,%r9
798 shrq $47,%r9
799 shrq $47,%r11
800 orq %r9,%rax
801 shlq $17,%rbx
802 orq %r11,%rbx
803 movq %rax,0(%r13)
804 movq %rbx,8(%r13)
805 movq %rax,%r11
806 shlq $17,%rax
807 movq %rbx,%r9
808 shrq $47,%r9
809 shrq $47,%r11
810 orq %r9,%rax
811 shlq $17,%rbx
812 orq %r11,%rbx
813 movq %rax,16(%r13)
814 movq %rbx,24(%r13)
815 movq %r8,%r11
816 shlq $34,%r8
817 movq %r10,%r9
818 shrq $30,%r9
819 shrq $30,%r11
820 orq %r9,%r8
821 shlq $34,%r10
822 orq %r11,%r10
823 movq %r8,32(%r13)
824 movq %r10,40(%r13)
825 movq %rax,%r11
826 shlq $17,%rax
827 movq %rbx,%r9
828 shrq $47,%r9
829 shrq $47,%r11
830 orq %r9,%rax
831 shlq $17,%rbx
832 orq %r11,%rbx
833 movq %rax,48(%r13)
834 movq %rbx,56(%r13)
835 movq %r8,%r11
836 shlq $17,%r8
837 movq %r10,%r9
838 shrq $47,%r9
839 shrq $47,%r11
840 orq %r9,%r8
841 shlq $17,%r10
842 orq %r11,%r10
843 movq %r8,64(%r13)
844 movq %r10,72(%r13)
845 movl $3,%eax
846 jmp .Ldone
847 .align 16
848 .L2nd256:
849 movl %r9d,48(%r13)
850 movl %r8d,52(%r13)
851 movl %r11d,56(%r13)
852 movl %r10d,60(%r13)
853 xorl 32(%r13),%r9d
854 xorl 36(%r13),%r8d
855 xorl 40(%r13),%r11d
856 xorl 44(%r13),%r10d
857 xorl %r8d,%eax
858 xorl %r9d,%ebx
859 movzbl %ah,%esi
860 movzbl %bl,%edi
861 movl 2052(%rbp,%rsi,8),%edx
862 movl 0(%rbp,%rdi,8),%ecx
863 movzbl %al,%esi
864 shrl $16,%eax
865 movzbl %bh,%edi
866 xorl 4(%rbp,%rsi,8),%edx
867 shrl $16,%ebx
868 xorl 4(%rbp,%rdi,8),%ecx
869 movzbl %ah,%esi
870 movzbl %bl,%edi
871 xorl 0(%rbp,%rsi,8),%edx
872 xorl 2052(%rbp,%rdi,8),%ecx
873 movzbl %al,%esi
874 movzbl %bh,%edi
875 xorl 2048(%rbp,%rsi,8),%edx
876 xorl 2048(%rbp,%rdi,8),%ecx
877 movl 40(%r14),%ebx
878 movl 44(%r14),%eax
879 xorl %edx,%ecx
880 rorl $8,%edx
881 xorl %ecx,%r10d
882 xorl %ecx,%r11d
883 xorl %edx,%r11d
884 xorl %r10d,%eax
885 xorl %r11d,%ebx
886 movzbl %ah,%esi
887 movzbl %bl,%edi
888 movl 2052(%rbp,%rsi,8),%edx
889 movl 0(%rbp,%rdi,8),%ecx
890 movzbl %al,%esi
891 shrl $16,%eax
892 movzbl %bh,%edi
893 xorl 4(%rbp,%rsi,8),%edx
894 shrl $16,%ebx
895 xorl 4(%rbp,%rdi,8),%ecx
896 movzbl %ah,%esi
897 movzbl %bl,%edi
898 xorl 0(%rbp,%rsi,8),%edx
899 xorl 2052(%rbp,%rdi,8),%ecx
900 movzbl %al,%esi
901 movzbl %bh,%edi
902 xorl 2048(%rbp,%rsi,8),%edx
903 xorl 2048(%rbp,%rdi,8),%ecx
904 movl 48(%r14),%ebx
905 movl 52(%r14),%eax
906 xorl %edx,%ecx
907 rorl $8,%edx
908 xorl %ecx,%r8d
909 xorl %ecx,%r9d
910 xorl %edx,%r9d
911 movq 0(%r13),%rax
912 movq 8(%r13),%rbx
913 movq 32(%r13),%rcx
914 movq 40(%r13),%rdx
915 movq 48(%r13),%r14
916 movq 56(%r13),%r15
917 leaq 128(%r13),%r13
918 shlq $32,%r8
919 shlq $32,%r10
920 orq %r9,%r8
921 orq %r11,%r10
922 movq %r8,-112(%r13)
923 movq %r10,-104(%r13)
924 movq %rcx,%r11
925 shlq $15,%rcx
926 movq %rdx,%r9
927 shrq $49,%r9
928 shrq $49,%r11
929 orq %r9,%rcx
930 shlq $15,%rdx
931 orq %r11,%rdx
932 movq %rcx,-96(%r13)
933 movq %rdx,-88(%r13)
934 movq %r14,%r11
935 shlq $15,%r14
936 movq %r15,%r9
937 shrq $49,%r9
938 shrq $49,%r11
939 orq %r9,%r14
940 shlq $15,%r15
941 orq %r11,%r15
942 movq %r14,-80(%r13)
943 movq %r15,-72(%r13)
944 movq %rcx,%r11
945 shlq $15,%rcx
946 movq %rdx,%r9
947 shrq $49,%r9
948 shrq $49,%r11
949 orq %r9,%rcx
950 shlq $15,%rdx
951 orq %r11,%rdx
952 movq %rcx,-64(%r13)
953 movq %rdx,-56(%r13)
954 movq %r8,%r11
955 shlq $30,%r8
956 movq %r10,%r9
957 shrq $34,%r9
958 shrq $34,%r11
959 orq %r9,%r8
960 shlq $30,%r10
961 orq %r11,%r10
962 movq %r8,-48(%r13)
963 movq %r10,-40(%r13)
964 movq %rax,%r11
965 shlq $45,%rax
966 movq %rbx,%r9
967 shrq $19,%r9
968 shrq $19,%r11
969 orq %r9,%rax
970 shlq $45,%rbx
971 orq %r11,%rbx
972 movq %rax,-32(%r13)
973 movq %rbx,-24(%r13)
974 movq %r14,%r11
975 shlq $30,%r14
976 movq %r15,%r9
977 shrq $34,%r9
978 shrq $34,%r11
979 orq %r9,%r14
980 shlq $30,%r15
981 orq %r11,%r15
982 movq %r14,-16(%r13)
983 movq %r15,-8(%r13)
984 movq %rax,%r11
985 shlq $15,%rax
986 movq %rbx,%r9
987 shrq $49,%r9
988 shrq $49,%r11
989 orq %r9,%rax
990 shlq $15,%rbx
991 orq %r11,%rbx
992 movq %rax,0(%r13)
993 movq %rbx,8(%r13)
994 movq %rcx,%r11
995 shlq $30,%rcx
996 movq %rdx,%r9
997 shrq $34,%r9
998 shrq $34,%r11
999 orq %r9,%rcx
1000 shlq $30,%rdx
1001 orq %r11,%rdx
1002 movq %rcx,16(%r13)
1003 movq %rdx,24(%r13)
1004 movq %r8,%r11
1005 shlq $30,%r8
1006 movq %r10,%r9
1007 shrq $34,%r9
1008 shrq $34,%r11
1009 orq %r9,%r8
1010 shlq $30,%r10
1011 orq %r11,%r10
1012 movq %r8,32(%r13)
1013 movq %r10,40(%r13)
1014 movq %rax,%r11
1015 shlq $17,%rax
1016 movq %rbx,%r9
1017 shrq $47,%r9
1018 shrq $47,%r11
1019 orq %r9,%rax
1020 shlq $17,%rbx
1021 orq %r11,%rbx
1022 movq %rax,48(%r13)
1023 movq %rbx,56(%r13)
1024 movq %r14,%r11
1025 shlq $32,%r14
1026 movq %r15,%r9
1027 shrq $32,%r9
1028 shrq $32,%r11
1029 orq %r9,%r14
1030 shlq $32,%r15
1031 orq %r11,%r15
1032 movq %r14,64(%r13)
1033 movq %r15,72(%r13)
1034 movq %rcx,%r11
1035 shlq $34,%rcx
1036 movq %rdx,%r9
1037 shrq $30,%r9
1038 shrq $30,%r11
1039 orq %r9,%rcx
1040 shlq $34,%rdx
1041 orq %r11,%rdx
1042 movq %rcx,80(%r13)
1043 movq %rdx,88(%r13)
1044 movq %r14,%r11
1045 shlq $17,%r14
1046 movq %r15,%r9
1047 shrq $47,%r9
1048 shrq $47,%r11
1049 orq %r9,%r14
1050 shlq $17,%r15
1051 orq %r11,%r15
1052 movq %r14,96(%r13)
1053 movq %r15,104(%r13)
1054 movq %rax,%r11
1055 shlq $34,%rax
1056 movq %rbx,%r9
1057 shrq $30,%r9
1058 shrq $30,%r11
1059 orq %r9,%rax
1060 shlq $34,%rbx
1061 orq %r11,%rbx
1062 movq %rax,112(%r13)
1063 movq %rbx,120(%r13)
1064 movq %r8,%r11
1065 shlq $51,%r8
1066 movq %r10,%r9
1067 shrq $13,%r9
1068 shrq $13,%r11
1069 orq %r9,%r8
1070 shlq $51,%r10
1071 orq %r11,%r10
1072 movq %r8,128(%r13)
1073 movq %r10,136(%r13)
1074 movl $4,%eax
1075 .Ldone:
1076 movq 0(%rsp),%r15
1077 movq 8(%rsp),%r14
1078 movq 16(%rsp),%r13
1079 movq 24(%rsp),%rbp
1080 movq 32(%rsp),%rbx
1081 leaq 40(%rsp),%rsp
1082 .Lkey_epilogue:
1083 .byte 0xf3,0xc3
1084 .size Camellia_Ekeygen,.-Camellia_Ekeygen
1085 .align 64
1086 .LCamellia_SIGMA:
1087 .long 0x3bcc908b, 0xa09e667f, 0x4caa73b2, 0xb67ae858
1088 .long 0xe94f82be, 0xc6ef372f, 0xf1d36f1c, 0x54ff53a5
1089 .long 0xde682d1d, 0x10e527fa, 0xb3e6c1fd, 0xb05688c2
1090 .long 0, 0, 0, 0
1091 .LCamellia_SBOX:
1092 .long 0x70707000,0x70700070
1093 .long 0x82828200,0x2c2c002c
1094 .long 0x2c2c2c00,0xb3b300b3
1095 .long 0xececec00,0xc0c000c0
1096 .long 0xb3b3b300,0xe4e400e4
1097 .long 0x27272700,0x57570057
1098 .long 0xc0c0c000,0xeaea00ea
1099 .long 0xe5e5e500,0xaeae00ae
1100 .long 0xe4e4e400,0x23230023
1101 .long 0x85858500,0x6b6b006b
1102 .long 0x57575700,0x45450045
1103 .long 0x35353500,0xa5a500a5
1104 .long 0xeaeaea00,0xeded00ed
1105 .long 0x0c0c0c00,0x4f4f004f
1106 .long 0xaeaeae00,0x1d1d001d
1107 .long 0x41414100,0x92920092
1108 .long 0x23232300,0x86860086
1109 .long 0xefefef00,0xafaf00af
1110 .long 0x6b6b6b00,0x7c7c007c
1111 .long 0x93939300,0x1f1f001f
1112 .long 0x45454500,0x3e3e003e
1113 .long 0x19191900,0xdcdc00dc
1114 .long 0xa5a5a500,0x5e5e005e
1115 .long 0x21212100,0x0b0b000b
1116 .long 0xededed00,0xa6a600a6
1117 .long 0x0e0e0e00,0x39390039
1118 .long 0x4f4f4f00,0xd5d500d5
1119 .long 0x4e4e4e00,0x5d5d005d
1120 .long 0x1d1d1d00,0xd9d900d9
1121 .long 0x65656500,0x5a5a005a
1122 .long 0x92929200,0x51510051
1123 .long 0xbdbdbd00,0x6c6c006c
1124 .long 0x86868600,0x8b8b008b
1125 .long 0xb8b8b800,0x9a9a009a
1126 .long 0xafafaf00,0xfbfb00fb
1127 .long 0x8f8f8f00,0xb0b000b0
1128 .long 0x7c7c7c00,0x74740074
1129 .long 0xebebeb00,0x2b2b002b
1130 .long 0x1f1f1f00,0xf0f000f0
1131 .long 0xcecece00,0x84840084
1132 .long 0x3e3e3e00,0xdfdf00df
1133 .long 0x30303000,0xcbcb00cb
1134 .long 0xdcdcdc00,0x34340034
1135 .long 0x5f5f5f00,0x76760076
1136 .long 0x5e5e5e00,0x6d6d006d
1137 .long 0xc5c5c500,0xa9a900a9
1138 .long 0x0b0b0b00,0xd1d100d1
1139 .long 0x1a1a1a00,0x04040004
1140 .long 0xa6a6a600,0x14140014
1141 .long 0xe1e1e100,0x3a3a003a
1142 .long 0x39393900,0xdede00de
1143 .long 0xcacaca00,0x11110011
1144 .long 0xd5d5d500,0x32320032
1145 .long 0x47474700,0x9c9c009c
1146 .long 0x5d5d5d00,0x53530053
1147 .long 0x3d3d3d00,0xf2f200f2
1148 .long 0xd9d9d900,0xfefe00fe
1149 .long 0x01010100,0xcfcf00cf
1150 .long 0x5a5a5a00,0xc3c300c3
1151 .long 0xd6d6d600,0x7a7a007a
1152 .long 0x51515100,0x24240024
1153 .long 0x56565600,0xe8e800e8
1154 .long 0x6c6c6c00,0x60600060
1155 .long 0x4d4d4d00,0x69690069
1156 .long 0x8b8b8b00,0xaaaa00aa
1157 .long 0x0d0d0d00,0xa0a000a0
1158 .long 0x9a9a9a00,0xa1a100a1
1159 .long 0x66666600,0x62620062
1160 .long 0xfbfbfb00,0x54540054
1161 .long 0xcccccc00,0x1e1e001e
1162 .long 0xb0b0b000,0xe0e000e0
1163 .long 0x2d2d2d00,0x64640064
1164 .long 0x74747400,0x10100010
1165 .long 0x12121200,0x00000000
1166 .long 0x2b2b2b00,0xa3a300a3
1167 .long 0x20202000,0x75750075
1168 .long 0xf0f0f000,0x8a8a008a
1169 .long 0xb1b1b100,0xe6e600e6
1170 .long 0x84848400,0x09090009
1171 .long 0x99999900,0xdddd00dd
1172 .long 0xdfdfdf00,0x87870087
1173 .long 0x4c4c4c00,0x83830083
1174 .long 0xcbcbcb00,0xcdcd00cd
1175 .long 0xc2c2c200,0x90900090
1176 .long 0x34343400,0x73730073
1177 .long 0x7e7e7e00,0xf6f600f6
1178 .long 0x76767600,0x9d9d009d
1179 .long 0x05050500,0xbfbf00bf
1180 .long 0x6d6d6d00,0x52520052
1181 .long 0xb7b7b700,0xd8d800d8
1182 .long 0xa9a9a900,0xc8c800c8
1183 .long 0x31313100,0xc6c600c6
1184 .long 0xd1d1d100,0x81810081
1185 .long 0x17171700,0x6f6f006f
1186 .long 0x04040400,0x13130013
1187 .long 0xd7d7d700,0x63630063
1188 .long 0x14141400,0xe9e900e9
1189 .long 0x58585800,0xa7a700a7
1190 .long 0x3a3a3a00,0x9f9f009f
1191 .long 0x61616100,0xbcbc00bc
1192 .long 0xdedede00,0x29290029
1193 .long 0x1b1b1b00,0xf9f900f9
1194 .long 0x11111100,0x2f2f002f
1195 .long 0x1c1c1c00,0xb4b400b4
1196 .long 0x32323200,0x78780078
1197 .long 0x0f0f0f00,0x06060006
1198 .long 0x9c9c9c00,0xe7e700e7
1199 .long 0x16161600,0x71710071
1200 .long 0x53535300,0xd4d400d4
1201 .long 0x18181800,0xabab00ab
1202 .long 0xf2f2f200,0x88880088
1203 .long 0x22222200,0x8d8d008d
1204 .long 0xfefefe00,0x72720072
1205 .long 0x44444400,0xb9b900b9
1206 .long 0xcfcfcf00,0xf8f800f8
1207 .long 0xb2b2b200,0xacac00ac
1208 .long 0xc3c3c300,0x36360036
1209 .long 0xb5b5b500,0x2a2a002a
1210 .long 0x7a7a7a00,0x3c3c003c
1211 .long 0x91919100,0xf1f100f1
1212 .long 0x24242400,0x40400040
1213 .long 0x08080800,0xd3d300d3
1214 .long 0xe8e8e800,0xbbbb00bb
1215 .long 0xa8a8a800,0x43430043
1216 .long 0x60606000,0x15150015
1217 .long 0xfcfcfc00,0xadad00ad
1218 .long 0x69696900,0x77770077
1219 .long 0x50505000,0x80800080
1220 .long 0xaaaaaa00,0x82820082
1221 .long 0xd0d0d000,0xecec00ec
1222 .long 0xa0a0a000,0x27270027
1223 .long 0x7d7d7d00,0xe5e500e5
1224 .long 0xa1a1a100,0x85850085
1225 .long 0x89898900,0x35350035
1226 .long 0x62626200,0x0c0c000c
1227 .long 0x97979700,0x41410041
1228 .long 0x54545400,0xefef00ef
1229 .long 0x5b5b5b00,0x93930093
1230 .long 0x1e1e1e00,0x19190019
1231 .long 0x95959500,0x21210021
1232 .long 0xe0e0e000,0x0e0e000e
1233 .long 0xffffff00,0x4e4e004e
1234 .long 0x64646400,0x65650065
1235 .long 0xd2d2d200,0xbdbd00bd
1236 .long 0x10101000,0xb8b800b8
1237 .long 0xc4c4c400,0x8f8f008f
1238 .long 0x00000000,0xebeb00eb
1239 .long 0x48484800,0xcece00ce
1240 .long 0xa3a3a300,0x30300030
1241 .long 0xf7f7f700,0x5f5f005f
1242 .long 0x75757500,0xc5c500c5
1243 .long 0xdbdbdb00,0x1a1a001a
1244 .long 0x8a8a8a00,0xe1e100e1
1245 .long 0x03030300,0xcaca00ca
1246 .long 0xe6e6e600,0x47470047
1247 .long 0xdadada00,0x3d3d003d
1248 .long 0x09090900,0x01010001
1249 .long 0x3f3f3f00,0xd6d600d6
1250 .long 0xdddddd00,0x56560056
1251 .long 0x94949400,0x4d4d004d
1252 .long 0x87878700,0x0d0d000d
1253 .long 0x5c5c5c00,0x66660066
1254 .long 0x83838300,0xcccc00cc
1255 .long 0x02020200,0x2d2d002d
1256 .long 0xcdcdcd00,0x12120012
1257 .long 0x4a4a4a00,0x20200020
1258 .long 0x90909000,0xb1b100b1
1259 .long 0x33333300,0x99990099
1260 .long 0x73737300,0x4c4c004c
1261 .long 0x67676700,0xc2c200c2
1262 .long 0xf6f6f600,0x7e7e007e
1263 .long 0xf3f3f300,0x05050005
1264 .long 0x9d9d9d00,0xb7b700b7
1265 .long 0x7f7f7f00,0x31310031
1266 .long 0xbfbfbf00,0x17170017
1267 .long 0xe2e2e200,0xd7d700d7
1268 .long 0x52525200,0x58580058
1269 .long 0x9b9b9b00,0x61610061
1270 .long 0xd8d8d800,0x1b1b001b
1271 .long 0x26262600,0x1c1c001c
1272 .long 0xc8c8c800,0x0f0f000f
1273 .long 0x37373700,0x16160016
1274 .long 0xc6c6c600,0x18180018
1275 .long 0x3b3b3b00,0x22220022
1276 .long 0x81818100,0x44440044
1277 .long 0x96969600,0xb2b200b2
1278 .long 0x6f6f6f00,0xb5b500b5
1279 .long 0x4b4b4b00,0x91910091
1280 .long 0x13131300,0x08080008
1281 .long 0xbebebe00,0xa8a800a8
1282 .long 0x63636300,0xfcfc00fc
1283 .long 0x2e2e2e00,0x50500050
1284 .long 0xe9e9e900,0xd0d000d0
1285 .long 0x79797900,0x7d7d007d
1286 .long 0xa7a7a700,0x89890089
1287 .long 0x8c8c8c00,0x97970097
1288 .long 0x9f9f9f00,0x5b5b005b
1289 .long 0x6e6e6e00,0x95950095
1290 .long 0xbcbcbc00,0xffff00ff
1291 .long 0x8e8e8e00,0xd2d200d2
1292 .long 0x29292900,0xc4c400c4
1293 .long 0xf5f5f500,0x48480048
1294 .long 0xf9f9f900,0xf7f700f7
1295 .long 0xb6b6b600,0xdbdb00db
1296 .long 0x2f2f2f00,0x03030003
1297 .long 0xfdfdfd00,0xdada00da
1298 .long 0xb4b4b400,0x3f3f003f
1299 .long 0x59595900,0x94940094
1300 .long 0x78787800,0x5c5c005c
1301 .long 0x98989800,0x02020002
1302 .long 0x06060600,0x4a4a004a
1303 .long 0x6a6a6a00,0x33330033
1304 .long 0xe7e7e700,0x67670067
1305 .long 0x46464600,0xf3f300f3
1306 .long 0x71717100,0x7f7f007f
1307 .long 0xbababa00,0xe2e200e2
1308 .long 0xd4d4d400,0x9b9b009b
1309 .long 0x25252500,0x26260026
1310 .long 0xababab00,0x37370037
1311 .long 0x42424200,0x3b3b003b
1312 .long 0x88888800,0x96960096
1313 .long 0xa2a2a200,0x4b4b004b
1314 .long 0x8d8d8d00,0xbebe00be
1315 .long 0xfafafa00,0x2e2e002e
1316 .long 0x72727200,0x79790079
1317 .long 0x07070700,0x8c8c008c
1318 .long 0xb9b9b900,0x6e6e006e
1319 .long 0x55555500,0x8e8e008e
1320 .long 0xf8f8f800,0xf5f500f5
1321 .long 0xeeeeee00,0xb6b600b6
1322 .long 0xacacac00,0xfdfd00fd
1323 .long 0x0a0a0a00,0x59590059
1324 .long 0x36363600,0x98980098
1325 .long 0x49494900,0x6a6a006a
1326 .long 0x2a2a2a00,0x46460046
1327 .long 0x68686800,0xbaba00ba
1328 .long 0x3c3c3c00,0x25250025
1329 .long 0x38383800,0x42420042
1330 .long 0xf1f1f100,0xa2a200a2
1331 .long 0xa4a4a400,0xfafa00fa
1332 .long 0x40404000,0x07070007
1333 .long 0x28282800,0x55550055
1334 .long 0xd3d3d300,0xeeee00ee
1335 .long 0x7b7b7b00,0x0a0a000a
1336 .long 0xbbbbbb00,0x49490049
1337 .long 0xc9c9c900,0x68680068
1338 .long 0x43434300,0x38380038
1339 .long 0xc1c1c100,0xa4a400a4
1340 .long 0x15151500,0x28280028
1341 .long 0xe3e3e300,0x7b7b007b
1342 .long 0xadadad00,0xc9c900c9
1343 .long 0xf4f4f400,0xc1c100c1
1344 .long 0x77777700,0xe3e300e3
1345 .long 0xc7c7c700,0xf4f400f4
1346 .long 0x80808000,0xc7c700c7
1347 .long 0x9e9e9e00,0x9e9e009e
1348 .long 0x00e0e0e0,0x38003838
1349 .long 0x00050505,0x41004141
1350 .long 0x00585858,0x16001616
1351 .long 0x00d9d9d9,0x76007676
1352 .long 0x00676767,0xd900d9d9
1353 .long 0x004e4e4e,0x93009393
1354 .long 0x00818181,0x60006060
1355 .long 0x00cbcbcb,0xf200f2f2
1356 .long 0x00c9c9c9,0x72007272
1357 .long 0x000b0b0b,0xc200c2c2
1358 .long 0x00aeaeae,0xab00abab
1359 .long 0x006a6a6a,0x9a009a9a
1360 .long 0x00d5d5d5,0x75007575
1361 .long 0x00181818,0x06000606
1362 .long 0x005d5d5d,0x57005757
1363 .long 0x00828282,0xa000a0a0
1364 .long 0x00464646,0x91009191
1365 .long 0x00dfdfdf,0xf700f7f7
1366 .long 0x00d6d6d6,0xb500b5b5
1367 .long 0x00272727,0xc900c9c9
1368 .long 0x008a8a8a,0xa200a2a2
1369 .long 0x00323232,0x8c008c8c
1370 .long 0x004b4b4b,0xd200d2d2
1371 .long 0x00424242,0x90009090
1372 .long 0x00dbdbdb,0xf600f6f6
1373 .long 0x001c1c1c,0x07000707
1374 .long 0x009e9e9e,0xa700a7a7
1375 .long 0x009c9c9c,0x27002727
1376 .long 0x003a3a3a,0x8e008e8e
1377 .long 0x00cacaca,0xb200b2b2
1378 .long 0x00252525,0x49004949
1379 .long 0x007b7b7b,0xde00dede
1380 .long 0x000d0d0d,0x43004343
1381 .long 0x00717171,0x5c005c5c
1382 .long 0x005f5f5f,0xd700d7d7
1383 .long 0x001f1f1f,0xc700c7c7
1384 .long 0x00f8f8f8,0x3e003e3e
1385 .long 0x00d7d7d7,0xf500f5f5
1386 .long 0x003e3e3e,0x8f008f8f
1387 .long 0x009d9d9d,0x67006767
1388 .long 0x007c7c7c,0x1f001f1f
1389 .long 0x00606060,0x18001818
1390 .long 0x00b9b9b9,0x6e006e6e
1391 .long 0x00bebebe,0xaf00afaf
1392 .long 0x00bcbcbc,0x2f002f2f
1393 .long 0x008b8b8b,0xe200e2e2
1394 .long 0x00161616,0x85008585
1395 .long 0x00343434,0x0d000d0d
1396 .long 0x004d4d4d,0x53005353
1397 .long 0x00c3c3c3,0xf000f0f0
1398 .long 0x00727272,0x9c009c9c
1399 .long 0x00959595,0x65006565
1400 .long 0x00ababab,0xea00eaea
1401 .long 0x008e8e8e,0xa300a3a3
1402 .long 0x00bababa,0xae00aeae
1403 .long 0x007a7a7a,0x9e009e9e
1404 .long 0x00b3b3b3,0xec00ecec
1405 .long 0x00020202,0x80008080
1406 .long 0x00b4b4b4,0x2d002d2d
1407 .long 0x00adadad,0x6b006b6b
1408 .long 0x00a2a2a2,0xa800a8a8
1409 .long 0x00acacac,0x2b002b2b
1410 .long 0x00d8d8d8,0x36003636
1411 .long 0x009a9a9a,0xa600a6a6
1412 .long 0x00171717,0xc500c5c5
1413 .long 0x001a1a1a,0x86008686
1414 .long 0x00353535,0x4d004d4d
1415 .long 0x00cccccc,0x33003333
1416 .long 0x00f7f7f7,0xfd00fdfd
1417 .long 0x00999999,0x66006666
1418 .long 0x00616161,0x58005858
1419 .long 0x005a5a5a,0x96009696
1420 .long 0x00e8e8e8,0x3a003a3a
1421 .long 0x00242424,0x09000909
1422 .long 0x00565656,0x95009595
1423 .long 0x00404040,0x10001010
1424 .long 0x00e1e1e1,0x78007878
1425 .long 0x00636363,0xd800d8d8
1426 .long 0x00090909,0x42004242
1427 .long 0x00333333,0xcc00cccc
1428 .long 0x00bfbfbf,0xef00efef
1429 .long 0x00989898,0x26002626
1430 .long 0x00979797,0xe500e5e5
1431 .long 0x00858585,0x61006161
1432 .long 0x00686868,0x1a001a1a
1433 .long 0x00fcfcfc,0x3f003f3f
1434 .long 0x00ececec,0x3b003b3b
1435 .long 0x000a0a0a,0x82008282
1436 .long 0x00dadada,0xb600b6b6
1437 .long 0x006f6f6f,0xdb00dbdb
1438 .long 0x00535353,0xd400d4d4
1439 .long 0x00626262,0x98009898
1440 .long 0x00a3a3a3,0xe800e8e8
1441 .long 0x002e2e2e,0x8b008b8b
1442 .long 0x00080808,0x02000202
1443 .long 0x00afafaf,0xeb00ebeb
1444 .long 0x00282828,0x0a000a0a
1445 .long 0x00b0b0b0,0x2c002c2c
1446 .long 0x00747474,0x1d001d1d
1447 .long 0x00c2c2c2,0xb000b0b0
1448 .long 0x00bdbdbd,0x6f006f6f
1449 .long 0x00363636,0x8d008d8d
1450 .long 0x00222222,0x88008888
1451 .long 0x00383838,0x0e000e0e
1452 .long 0x00646464,0x19001919
1453 .long 0x001e1e1e,0x87008787
1454 .long 0x00393939,0x4e004e4e
1455 .long 0x002c2c2c,0x0b000b0b
1456 .long 0x00a6a6a6,0xa900a9a9
1457 .long 0x00303030,0x0c000c0c
1458 .long 0x00e5e5e5,0x79007979
1459 .long 0x00444444,0x11001111
1460 .long 0x00fdfdfd,0x7f007f7f
1461 .long 0x00888888,0x22002222
1462 .long 0x009f9f9f,0xe700e7e7
1463 .long 0x00656565,0x59005959
1464 .long 0x00878787,0xe100e1e1
1465 .long 0x006b6b6b,0xda00dada
1466 .long 0x00f4f4f4,0x3d003d3d
1467 .long 0x00232323,0xc800c8c8
1468 .long 0x00484848,0x12001212
1469 .long 0x00101010,0x04000404
1470 .long 0x00d1d1d1,0x74007474
1471 .long 0x00515151,0x54005454
1472 .long 0x00c0c0c0,0x30003030
1473 .long 0x00f9f9f9,0x7e007e7e
1474 .long 0x00d2d2d2,0xb400b4b4
1475 .long 0x00a0a0a0,0x28002828
1476 .long 0x00555555,0x55005555
1477 .long 0x00a1a1a1,0x68006868
1478 .long 0x00414141,0x50005050
1479 .long 0x00fafafa,0xbe00bebe
1480 .long 0x00434343,0xd000d0d0
1481 .long 0x00131313,0xc400c4c4
1482 .long 0x00c4c4c4,0x31003131
1483 .long 0x002f2f2f,0xcb00cbcb
1484 .long 0x00a8a8a8,0x2a002a2a
1485 .long 0x00b6b6b6,0xad00adad
1486 .long 0x003c3c3c,0x0f000f0f
1487 .long 0x002b2b2b,0xca00caca
1488 .long 0x00c1c1c1,0x70007070
1489 .long 0x00ffffff,0xff00ffff
1490 .long 0x00c8c8c8,0x32003232
1491 .long 0x00a5a5a5,0x69006969
1492 .long 0x00202020,0x08000808
1493 .long 0x00898989,0x62006262
1494 .long 0x00000000,0x00000000
1495 .long 0x00909090,0x24002424
1496 .long 0x00474747,0xd100d1d1
1497 .long 0x00efefef,0xfb00fbfb
1498 .long 0x00eaeaea,0xba00baba
1499 .long 0x00b7b7b7,0xed00eded
1500 .long 0x00151515,0x45004545
1501 .long 0x00060606,0x81008181
1502 .long 0x00cdcdcd,0x73007373
1503 .long 0x00b5b5b5,0x6d006d6d
1504 .long 0x00121212,0x84008484
1505 .long 0x007e7e7e,0x9f009f9f
1506 .long 0x00bbbbbb,0xee00eeee
1507 .long 0x00292929,0x4a004a4a
1508 .long 0x000f0f0f,0xc300c3c3
1509 .long 0x00b8b8b8,0x2e002e2e
1510 .long 0x00070707,0xc100c1c1
1511 .long 0x00040404,0x01000101
1512 .long 0x009b9b9b,0xe600e6e6
1513 .long 0x00949494,0x25002525
1514 .long 0x00212121,0x48004848
1515 .long 0x00666666,0x99009999
1516 .long 0x00e6e6e6,0xb900b9b9
1517 .long 0x00cecece,0xb300b3b3
1518 .long 0x00ededed,0x7b007b7b
1519 .long 0x00e7e7e7,0xf900f9f9
1520 .long 0x003b3b3b,0xce00cece
1521 .long 0x00fefefe,0xbf00bfbf
1522 .long 0x007f7f7f,0xdf00dfdf
1523 .long 0x00c5c5c5,0x71007171
1524 .long 0x00a4a4a4,0x29002929
1525 .long 0x00373737,0xcd00cdcd
1526 .long 0x00b1b1b1,0x6c006c6c
1527 .long 0x004c4c4c,0x13001313
1528 .long 0x00919191,0x64006464
1529 .long 0x006e6e6e,0x9b009b9b
1530 .long 0x008d8d8d,0x63006363
1531 .long 0x00767676,0x9d009d9d
1532 .long 0x00030303,0xc000c0c0
1533 .long 0x002d2d2d,0x4b004b4b
1534 .long 0x00dedede,0xb700b7b7
1535 .long 0x00969696,0xa500a5a5
1536 .long 0x00262626,0x89008989
1537 .long 0x007d7d7d,0x5f005f5f
1538 .long 0x00c6c6c6,0xb100b1b1
1539 .long 0x005c5c5c,0x17001717
1540 .long 0x00d3d3d3,0xf400f4f4
1541 .long 0x00f2f2f2,0xbc00bcbc
1542 .long 0x004f4f4f,0xd300d3d3
1543 .long 0x00191919,0x46004646
1544 .long 0x003f3f3f,0xcf00cfcf
1545 .long 0x00dcdcdc,0x37003737
1546 .long 0x00797979,0x5e005e5e
1547 .long 0x001d1d1d,0x47004747
1548 .long 0x00525252,0x94009494
1549 .long 0x00ebebeb,0xfa00fafa
1550 .long 0x00f3f3f3,0xfc00fcfc
1551 .long 0x006d6d6d,0x5b005b5b
1552 .long 0x005e5e5e,0x97009797
1553 .long 0x00fbfbfb,0xfe00fefe
1554 .long 0x00696969,0x5a005a5a
1555 .long 0x00b2b2b2,0xac00acac
1556 .long 0x00f0f0f0,0x3c003c3c
1557 .long 0x00313131,0x4c004c4c
1558 .long 0x000c0c0c,0x03000303
1559 .long 0x00d4d4d4,0x35003535
1560 .long 0x00cfcfcf,0xf300f3f3
1561 .long 0x008c8c8c,0x23002323
1562 .long 0x00e2e2e2,0xb800b8b8
1563 .long 0x00757575,0x5d005d5d
1564 .long 0x00a9a9a9,0x6a006a6a
1565 .long 0x004a4a4a,0x92009292
1566 .long 0x00575757,0xd500d5d5
1567 .long 0x00848484,0x21002121
1568 .long 0x00111111,0x44004444
1569 .long 0x00454545,0x51005151
1570 .long 0x001b1b1b,0xc600c6c6
1571 .long 0x00f5f5f5,0x7d007d7d
1572 .long 0x00e4e4e4,0x39003939
1573 .long 0x000e0e0e,0x83008383
1574 .long 0x00737373,0xdc00dcdc
1575 .long 0x00aaaaaa,0xaa00aaaa
1576 .long 0x00f1f1f1,0x7c007c7c
1577 .long 0x00dddddd,0x77007777
1578 .long 0x00595959,0x56005656
1579 .long 0x00141414,0x05000505
1580 .long 0x006c6c6c,0x1b001b1b
1581 .long 0x00929292,0xa400a4a4
1582 .long 0x00545454,0x15001515
1583 .long 0x00d0d0d0,0x34003434
1584 .long 0x00787878,0x1e001e1e
1585 .long 0x00707070,0x1c001c1c
1586 .long 0x00e3e3e3,0xf800f8f8
1587 .long 0x00494949,0x52005252
1588 .long 0x00808080,0x20002020
1589 .long 0x00505050,0x14001414
1590 .long 0x00a7a7a7,0xe900e9e9
1591 .long 0x00f6f6f6,0xbd00bdbd
1592 .long 0x00777777,0xdd00dddd
1593 .long 0x00939393,0xe400e4e4
1594 .long 0x00868686,0xa100a1a1
1595 .long 0x00838383,0xe000e0e0
1596 .long 0x002a2a2a,0x8a008a8a
1597 .long 0x00c7c7c7,0xf100f1f1
1598 .long 0x005b5b5b,0xd600d6d6
1599 .long 0x00e9e9e9,0x7a007a7a
1600 .long 0x00eeeeee,0xbb00bbbb
1601 .long 0x008f8f8f,0xe300e3e3
1602 .long 0x00010101,0x40004040
1603 .long 0x003d3d3d,0x4f004f4f
1604 .globl Camellia_cbc_encrypt
1605 .type Camellia_cbc_encrypt,@function
1606 .align 16
1607 Camellia_cbc_encrypt:
1608 cmpq $0,%rdx
1609 je .Lcbc_abort
1610 pushq %rbx
1611 pushq %rbp
1612 pushq %r12
1613 pushq %r13
1614 pushq %r14
1615 pushq %r15
1616 .Lcbc_prologue:
1618 movq %rsp,%rbp
1619 subq $64,%rsp
1620 andq $-64,%rsp
1624 leaq -64-63(%rcx),%r10
1625 subq %rsp,%r10
1626 negq %r10
1627 andq $0x3C0,%r10
1628 subq %r10,%rsp
1631 movq %rdi,%r12
1632 movq %rsi,%r13
1633 movq %r8,%rbx
1634 movq %rcx,%r14
1635 movl 272(%rcx),%r15d
1637 movq %r8,40(%rsp)
1638 movq %rbp,48(%rsp)
1640 .Lcbc_body:
1641 leaq .LCamellia_SBOX(%rip),%rbp
1643 movl $32,%ecx
1644 .align 4
1645 .Lcbc_prefetch_sbox:
1646 movq 0(%rbp),%rax
1647 movq 32(%rbp),%rsi
1648 movq 64(%rbp),%rdi
1649 movq 96(%rbp),%r11
1650 leaq 128(%rbp),%rbp
1651 loop .Lcbc_prefetch_sbox
1652 subq $4096,%rbp
1653 shlq $6,%r15
1654 movq %rdx,%rcx
1655 leaq (%r14,%r15,1),%r15
1657 cmpl $0,%r9d
1658 je .LCBC_DECRYPT
1660 andq $-16,%rdx
1661 andq $15,%rcx
1662 leaq (%r12,%rdx,1),%rdx
1663 movq %r14,0(%rsp)
1664 movq %rdx,8(%rsp)
1665 movq %rcx,16(%rsp)
1667 cmpq %r12,%rdx
1668 movl 0(%rbx),%r8d
1669 movl 4(%rbx),%r9d
1670 movl 8(%rbx),%r10d
1671 movl 12(%rbx),%r11d
1672 je .Lcbc_enc_tail
1673 jmp .Lcbc_eloop
1675 .align 16
1676 .Lcbc_eloop:
1677 xorl 0(%r12),%r8d
1678 xorl 4(%r12),%r9d
1679 xorl 8(%r12),%r10d
1680 bswapl %r8d
1681 xorl 12(%r12),%r11d
1682 bswapl %r9d
1683 bswapl %r10d
1684 bswapl %r11d
1686 call _x86_64_Camellia_encrypt
1688 movq 0(%rsp),%r14
1689 bswapl %r8d
1690 movq 8(%rsp),%rdx
1691 bswapl %r9d
1692 movq 16(%rsp),%rcx
1693 bswapl %r10d
1694 movl %r8d,0(%r13)
1695 bswapl %r11d
1696 movl %r9d,4(%r13)
1697 movl %r10d,8(%r13)
1698 leaq 16(%r12),%r12
1699 movl %r11d,12(%r13)
1700 cmpq %rdx,%r12
1701 leaq 16(%r13),%r13
1702 jne .Lcbc_eloop
1704 cmpq $0,%rcx
1705 jne .Lcbc_enc_tail
1707 movq 40(%rsp),%r13
1708 movl %r8d,0(%r13)
1709 movl %r9d,4(%r13)
1710 movl %r10d,8(%r13)
1711 movl %r11d,12(%r13)
1712 jmp .Lcbc_done
1714 .align 16
1715 .Lcbc_enc_tail:
1716 xorq %rax,%rax
1717 movq %rax,0+24(%rsp)
1718 movq %rax,8+24(%rsp)
1719 movq %rax,16(%rsp)
1721 .Lcbc_enc_pushf:
1722 pushfq
1724 movq %r12,%rsi
1725 leaq 8+24(%rsp),%rdi
1726 .long 0x9066A4F3
1727 popfq
1728 .Lcbc_enc_popf:
1730 leaq 24(%rsp),%r12
1731 leaq 16+24(%rsp),%rax
1732 movq %rax,8(%rsp)
1733 jmp .Lcbc_eloop
1735 .align 16
1736 .LCBC_DECRYPT:
1737 xchgq %r14,%r15
1738 addq $15,%rdx
1739 andq $15,%rcx
1740 andq $-16,%rdx
1741 movq %r14,0(%rsp)
1742 leaq (%r12,%rdx,1),%rdx
1743 movq %rdx,8(%rsp)
1744 movq %rcx,16(%rsp)
1746 movq (%rbx),%rax
1747 movq 8(%rbx),%rbx
1748 jmp .Lcbc_dloop
1749 .align 16
1750 .Lcbc_dloop:
1751 movl 0(%r12),%r8d
1752 movl 4(%r12),%r9d
1753 movl 8(%r12),%r10d
1754 bswapl %r8d
1755 movl 12(%r12),%r11d
1756 bswapl %r9d
1757 movq %rax,0+24(%rsp)
1758 bswapl %r10d
1759 movq %rbx,8+24(%rsp)
1760 bswapl %r11d
1762 call _x86_64_Camellia_decrypt
1764 movq 0(%rsp),%r14
1765 movq 8(%rsp),%rdx
1766 movq 16(%rsp),%rcx
1768 bswapl %r8d
1769 movq (%r12),%rax
1770 bswapl %r9d
1771 movq 8(%r12),%rbx
1772 bswapl %r10d
1773 xorl 0+24(%rsp),%r8d
1774 bswapl %r11d
1775 xorl 4+24(%rsp),%r9d
1776 xorl 8+24(%rsp),%r10d
1777 leaq 16(%r12),%r12
1778 xorl 12+24(%rsp),%r11d
1779 cmpq %rdx,%r12
1780 je .Lcbc_ddone
1782 movl %r8d,0(%r13)
1783 movl %r9d,4(%r13)
1784 movl %r10d,8(%r13)
1785 movl %r11d,12(%r13)
1787 leaq 16(%r13),%r13
1788 jmp .Lcbc_dloop
1790 .align 16
1791 .Lcbc_ddone:
1792 movq 40(%rsp),%rdx
1793 cmpq $0,%rcx
1794 jne .Lcbc_dec_tail
1796 movl %r8d,0(%r13)
1797 movl %r9d,4(%r13)
1798 movl %r10d,8(%r13)
1799 movl %r11d,12(%r13)
1801 movq %rax,(%rdx)
1802 movq %rbx,8(%rdx)
1803 jmp .Lcbc_done
1804 .align 16
1805 .Lcbc_dec_tail:
1806 movl %r8d,0+24(%rsp)
1807 movl %r9d,4+24(%rsp)
1808 movl %r10d,8+24(%rsp)
1809 movl %r11d,12+24(%rsp)
1811 .Lcbc_dec_pushf:
1812 pushfq
1814 leaq 8+24(%rsp),%rsi
1815 leaq (%r13),%rdi
1816 .long 0x9066A4F3
1817 popfq
1818 .Lcbc_dec_popf:
1820 movq %rax,(%rdx)
1821 movq %rbx,8(%rdx)
1822 jmp .Lcbc_done
1824 .align 16
1825 .Lcbc_done:
1826 movq 48(%rsp),%rcx
1827 movq 0(%rcx),%r15
1828 movq 8(%rcx),%r14
1829 movq 16(%rcx),%r13
1830 movq 24(%rcx),%r12
1831 movq 32(%rcx),%rbp
1832 movq 40(%rcx),%rbx
1833 leaq 48(%rcx),%rsp
1834 .Lcbc_abort:
1835 .byte 0xf3,0xc3
1836 .size Camellia_cbc_encrypt,.-Camellia_cbc_encrypt
1838 .byte 67,97,109,101,108,108,105,97,32,102,111,114,32,120,56,54,95,54,52,32,98,121,32,60,97,112,112,114,111,64,111,112,101,110,115,115,108,46,111,114,103,62,0
1839 .section .note.GNU-stack,"",%progbits