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