Home | History | Annotate | Line # | Download | only in i386
      1 #include <machine/asm.h>
      2 .text
      3 .globl	BF_encrypt
      4 .type	BF_encrypt,@function
      5 .align	16
      6 BF_encrypt:
      7 .L_BF_encrypt_begin:
      8 	#ifdef __CET__
      9 
     10 .byte	243,15,30,251
     11 	#endif
     12 
     13 
     14 	pushl	%ebp
     15 	pushl	%ebx
     16 	movl	12(%esp),%ebx
     17 	movl	16(%esp),%ebp
     18 	pushl	%esi
     19 	pushl	%edi
     20 
     21 	movl	(%ebx),%edi
     22 	movl	4(%ebx),%esi
     23 	xorl	%eax,%eax
     24 	movl	(%ebp),%ebx
     25 	xorl	%ecx,%ecx
     26 	xorl	%ebx,%edi
     27 
     28 
     29 	movl	4(%ebp),%edx
     30 	movl	%edi,%ebx
     31 	xorl	%edx,%esi
     32 	shrl	$16,%ebx
     33 	movl	%edi,%edx
     34 	movb	%bh,%al
     35 	andl	$255,%ebx
     36 	movb	%dh,%cl
     37 	andl	$255,%edx
     38 	movl	72(%ebp,%eax,4),%eax
     39 	movl	1096(%ebp,%ebx,4),%ebx
     40 	addl	%eax,%ebx
     41 	movl	2120(%ebp,%ecx,4),%eax
     42 	xorl	%eax,%ebx
     43 	movl	3144(%ebp,%edx,4),%edx
     44 	addl	%edx,%ebx
     45 	xorl	%eax,%eax
     46 	xorl	%ebx,%esi
     47 
     48 
     49 	movl	8(%ebp),%edx
     50 	movl	%esi,%ebx
     51 	xorl	%edx,%edi
     52 	shrl	$16,%ebx
     53 	movl	%esi,%edx
     54 	movb	%bh,%al
     55 	andl	$255,%ebx
     56 	movb	%dh,%cl
     57 	andl	$255,%edx
     58 	movl	72(%ebp,%eax,4),%eax
     59 	movl	1096(%ebp,%ebx,4),%ebx
     60 	addl	%eax,%ebx
     61 	movl	2120(%ebp,%ecx,4),%eax
     62 	xorl	%eax,%ebx
     63 	movl	3144(%ebp,%edx,4),%edx
     64 	addl	%edx,%ebx
     65 	xorl	%eax,%eax
     66 	xorl	%ebx,%edi
     67 
     68 
     69 	movl	12(%ebp),%edx
     70 	movl	%edi,%ebx
     71 	xorl	%edx,%esi
     72 	shrl	$16,%ebx
     73 	movl	%edi,%edx
     74 	movb	%bh,%al
     75 	andl	$255,%ebx
     76 	movb	%dh,%cl
     77 	andl	$255,%edx
     78 	movl	72(%ebp,%eax,4),%eax
     79 	movl	1096(%ebp,%ebx,4),%ebx
     80 	addl	%eax,%ebx
     81 	movl	2120(%ebp,%ecx,4),%eax
     82 	xorl	%eax,%ebx
     83 	movl	3144(%ebp,%edx,4),%edx
     84 	addl	%edx,%ebx
     85 	xorl	%eax,%eax
     86 	xorl	%ebx,%esi
     87 
     88 
     89 	movl	16(%ebp),%edx
     90 	movl	%esi,%ebx
     91 	xorl	%edx,%edi
     92 	shrl	$16,%ebx
     93 	movl	%esi,%edx
     94 	movb	%bh,%al
     95 	andl	$255,%ebx
     96 	movb	%dh,%cl
     97 	andl	$255,%edx
     98 	movl	72(%ebp,%eax,4),%eax
     99 	movl	1096(%ebp,%ebx,4),%ebx
    100 	addl	%eax,%ebx
    101 	movl	2120(%ebp,%ecx,4),%eax
    102 	xorl	%eax,%ebx
    103 	movl	3144(%ebp,%edx,4),%edx
    104 	addl	%edx,%ebx
    105 	xorl	%eax,%eax
    106 	xorl	%ebx,%edi
    107 
    108 
    109 	movl	20(%ebp),%edx
    110 	movl	%edi,%ebx
    111 	xorl	%edx,%esi
    112 	shrl	$16,%ebx
    113 	movl	%edi,%edx
    114 	movb	%bh,%al
    115 	andl	$255,%ebx
    116 	movb	%dh,%cl
    117 	andl	$255,%edx
    118 	movl	72(%ebp,%eax,4),%eax
    119 	movl	1096(%ebp,%ebx,4),%ebx
    120 	addl	%eax,%ebx
    121 	movl	2120(%ebp,%ecx,4),%eax
    122 	xorl	%eax,%ebx
    123 	movl	3144(%ebp,%edx,4),%edx
    124 	addl	%edx,%ebx
    125 	xorl	%eax,%eax
    126 	xorl	%ebx,%esi
    127 
    128 
    129 	movl	24(%ebp),%edx
    130 	movl	%esi,%ebx
    131 	xorl	%edx,%edi
    132 	shrl	$16,%ebx
    133 	movl	%esi,%edx
    134 	movb	%bh,%al
    135 	andl	$255,%ebx
    136 	movb	%dh,%cl
    137 	andl	$255,%edx
    138 	movl	72(%ebp,%eax,4),%eax
    139 	movl	1096(%ebp,%ebx,4),%ebx
    140 	addl	%eax,%ebx
    141 	movl	2120(%ebp,%ecx,4),%eax
    142 	xorl	%eax,%ebx
    143 	movl	3144(%ebp,%edx,4),%edx
    144 	addl	%edx,%ebx
    145 	xorl	%eax,%eax
    146 	xorl	%ebx,%edi
    147 
    148 
    149 	movl	28(%ebp),%edx
    150 	movl	%edi,%ebx
    151 	xorl	%edx,%esi
    152 	shrl	$16,%ebx
    153 	movl	%edi,%edx
    154 	movb	%bh,%al
    155 	andl	$255,%ebx
    156 	movb	%dh,%cl
    157 	andl	$255,%edx
    158 	movl	72(%ebp,%eax,4),%eax
    159 	movl	1096(%ebp,%ebx,4),%ebx
    160 	addl	%eax,%ebx
    161 	movl	2120(%ebp,%ecx,4),%eax
    162 	xorl	%eax,%ebx
    163 	movl	3144(%ebp,%edx,4),%edx
    164 	addl	%edx,%ebx
    165 	xorl	%eax,%eax
    166 	xorl	%ebx,%esi
    167 
    168 
    169 	movl	32(%ebp),%edx
    170 	movl	%esi,%ebx
    171 	xorl	%edx,%edi
    172 	shrl	$16,%ebx
    173 	movl	%esi,%edx
    174 	movb	%bh,%al
    175 	andl	$255,%ebx
    176 	movb	%dh,%cl
    177 	andl	$255,%edx
    178 	movl	72(%ebp,%eax,4),%eax
    179 	movl	1096(%ebp,%ebx,4),%ebx
    180 	addl	%eax,%ebx
    181 	movl	2120(%ebp,%ecx,4),%eax
    182 	xorl	%eax,%ebx
    183 	movl	3144(%ebp,%edx,4),%edx
    184 	addl	%edx,%ebx
    185 	xorl	%eax,%eax
    186 	xorl	%ebx,%edi
    187 
    188 
    189 	movl	36(%ebp),%edx
    190 	movl	%edi,%ebx
    191 	xorl	%edx,%esi
    192 	shrl	$16,%ebx
    193 	movl	%edi,%edx
    194 	movb	%bh,%al
    195 	andl	$255,%ebx
    196 	movb	%dh,%cl
    197 	andl	$255,%edx
    198 	movl	72(%ebp,%eax,4),%eax
    199 	movl	1096(%ebp,%ebx,4),%ebx
    200 	addl	%eax,%ebx
    201 	movl	2120(%ebp,%ecx,4),%eax
    202 	xorl	%eax,%ebx
    203 	movl	3144(%ebp,%edx,4),%edx
    204 	addl	%edx,%ebx
    205 	xorl	%eax,%eax
    206 	xorl	%ebx,%esi
    207 
    208 
    209 	movl	40(%ebp),%edx
    210 	movl	%esi,%ebx
    211 	xorl	%edx,%edi
    212 	shrl	$16,%ebx
    213 	movl	%esi,%edx
    214 	movb	%bh,%al
    215 	andl	$255,%ebx
    216 	movb	%dh,%cl
    217 	andl	$255,%edx
    218 	movl	72(%ebp,%eax,4),%eax
    219 	movl	1096(%ebp,%ebx,4),%ebx
    220 	addl	%eax,%ebx
    221 	movl	2120(%ebp,%ecx,4),%eax
    222 	xorl	%eax,%ebx
    223 	movl	3144(%ebp,%edx,4),%edx
    224 	addl	%edx,%ebx
    225 	xorl	%eax,%eax
    226 	xorl	%ebx,%edi
    227 
    228 
    229 	movl	44(%ebp),%edx
    230 	movl	%edi,%ebx
    231 	xorl	%edx,%esi
    232 	shrl	$16,%ebx
    233 	movl	%edi,%edx
    234 	movb	%bh,%al
    235 	andl	$255,%ebx
    236 	movb	%dh,%cl
    237 	andl	$255,%edx
    238 	movl	72(%ebp,%eax,4),%eax
    239 	movl	1096(%ebp,%ebx,4),%ebx
    240 	addl	%eax,%ebx
    241 	movl	2120(%ebp,%ecx,4),%eax
    242 	xorl	%eax,%ebx
    243 	movl	3144(%ebp,%edx,4),%edx
    244 	addl	%edx,%ebx
    245 	xorl	%eax,%eax
    246 	xorl	%ebx,%esi
    247 
    248 
    249 	movl	48(%ebp),%edx
    250 	movl	%esi,%ebx
    251 	xorl	%edx,%edi
    252 	shrl	$16,%ebx
    253 	movl	%esi,%edx
    254 	movb	%bh,%al
    255 	andl	$255,%ebx
    256 	movb	%dh,%cl
    257 	andl	$255,%edx
    258 	movl	72(%ebp,%eax,4),%eax
    259 	movl	1096(%ebp,%ebx,4),%ebx
    260 	addl	%eax,%ebx
    261 	movl	2120(%ebp,%ecx,4),%eax
    262 	xorl	%eax,%ebx
    263 	movl	3144(%ebp,%edx,4),%edx
    264 	addl	%edx,%ebx
    265 	xorl	%eax,%eax
    266 	xorl	%ebx,%edi
    267 
    268 
    269 	movl	52(%ebp),%edx
    270 	movl	%edi,%ebx
    271 	xorl	%edx,%esi
    272 	shrl	$16,%ebx
    273 	movl	%edi,%edx
    274 	movb	%bh,%al
    275 	andl	$255,%ebx
    276 	movb	%dh,%cl
    277 	andl	$255,%edx
    278 	movl	72(%ebp,%eax,4),%eax
    279 	movl	1096(%ebp,%ebx,4),%ebx
    280 	addl	%eax,%ebx
    281 	movl	2120(%ebp,%ecx,4),%eax
    282 	xorl	%eax,%ebx
    283 	movl	3144(%ebp,%edx,4),%edx
    284 	addl	%edx,%ebx
    285 	xorl	%eax,%eax
    286 	xorl	%ebx,%esi
    287 
    288 
    289 	movl	56(%ebp),%edx
    290 	movl	%esi,%ebx
    291 	xorl	%edx,%edi
    292 	shrl	$16,%ebx
    293 	movl	%esi,%edx
    294 	movb	%bh,%al
    295 	andl	$255,%ebx
    296 	movb	%dh,%cl
    297 	andl	$255,%edx
    298 	movl	72(%ebp,%eax,4),%eax
    299 	movl	1096(%ebp,%ebx,4),%ebx
    300 	addl	%eax,%ebx
    301 	movl	2120(%ebp,%ecx,4),%eax
    302 	xorl	%eax,%ebx
    303 	movl	3144(%ebp,%edx,4),%edx
    304 	addl	%edx,%ebx
    305 	xorl	%eax,%eax
    306 	xorl	%ebx,%edi
    307 
    308 
    309 	movl	60(%ebp),%edx
    310 	movl	%edi,%ebx
    311 	xorl	%edx,%esi
    312 	shrl	$16,%ebx
    313 	movl	%edi,%edx
    314 	movb	%bh,%al
    315 	andl	$255,%ebx
    316 	movb	%dh,%cl
    317 	andl	$255,%edx
    318 	movl	72(%ebp,%eax,4),%eax
    319 	movl	1096(%ebp,%ebx,4),%ebx
    320 	addl	%eax,%ebx
    321 	movl	2120(%ebp,%ecx,4),%eax
    322 	xorl	%eax,%ebx
    323 	movl	3144(%ebp,%edx,4),%edx
    324 	addl	%edx,%ebx
    325 	xorl	%eax,%eax
    326 	xorl	%ebx,%esi
    327 
    328 
    329 	movl	64(%ebp),%edx
    330 	movl	%esi,%ebx
    331 	xorl	%edx,%edi
    332 	shrl	$16,%ebx
    333 	movl	%esi,%edx
    334 	movb	%bh,%al
    335 	andl	$255,%ebx
    336 	movb	%dh,%cl
    337 	andl	$255,%edx
    338 	movl	72(%ebp,%eax,4),%eax
    339 	movl	1096(%ebp,%ebx,4),%ebx
    340 	addl	%eax,%ebx
    341 	movl	2120(%ebp,%ecx,4),%eax
    342 	xorl	%eax,%ebx
    343 	movl	3144(%ebp,%edx,4),%edx
    344 	addl	%edx,%ebx
    345 
    346 	movl	20(%esp),%eax
    347 	xorl	%ebx,%edi
    348 	movl	68(%ebp),%edx
    349 	xorl	%edx,%esi
    350 	movl	%edi,4(%eax)
    351 	movl	%esi,(%eax)
    352 	popl	%edi
    353 	popl	%esi
    354 	popl	%ebx
    355 	popl	%ebp
    356 	ret
    357 .size	BF_encrypt,.-.L_BF_encrypt_begin
    358 .globl	BF_decrypt
    359 .type	BF_decrypt,@function
    360 .align	16
    361 BF_decrypt:
    362 .L_BF_decrypt_begin:
    363 	#ifdef __CET__
    364 
    365 .byte	243,15,30,251
    366 	#endif
    367 
    368 
    369 	pushl	%ebp
    370 	pushl	%ebx
    371 	movl	12(%esp),%ebx
    372 	movl	16(%esp),%ebp
    373 	pushl	%esi
    374 	pushl	%edi
    375 
    376 	movl	(%ebx),%edi
    377 	movl	4(%ebx),%esi
    378 	xorl	%eax,%eax
    379 	movl	68(%ebp),%ebx
    380 	xorl	%ecx,%ecx
    381 	xorl	%ebx,%edi
    382 
    383 
    384 	movl	64(%ebp),%edx
    385 	movl	%edi,%ebx
    386 	xorl	%edx,%esi
    387 	shrl	$16,%ebx
    388 	movl	%edi,%edx
    389 	movb	%bh,%al
    390 	andl	$255,%ebx
    391 	movb	%dh,%cl
    392 	andl	$255,%edx
    393 	movl	72(%ebp,%eax,4),%eax
    394 	movl	1096(%ebp,%ebx,4),%ebx
    395 	addl	%eax,%ebx
    396 	movl	2120(%ebp,%ecx,4),%eax
    397 	xorl	%eax,%ebx
    398 	movl	3144(%ebp,%edx,4),%edx
    399 	addl	%edx,%ebx
    400 	xorl	%eax,%eax
    401 	xorl	%ebx,%esi
    402 
    403 
    404 	movl	60(%ebp),%edx
    405 	movl	%esi,%ebx
    406 	xorl	%edx,%edi
    407 	shrl	$16,%ebx
    408 	movl	%esi,%edx
    409 	movb	%bh,%al
    410 	andl	$255,%ebx
    411 	movb	%dh,%cl
    412 	andl	$255,%edx
    413 	movl	72(%ebp,%eax,4),%eax
    414 	movl	1096(%ebp,%ebx,4),%ebx
    415 	addl	%eax,%ebx
    416 	movl	2120(%ebp,%ecx,4),%eax
    417 	xorl	%eax,%ebx
    418 	movl	3144(%ebp,%edx,4),%edx
    419 	addl	%edx,%ebx
    420 	xorl	%eax,%eax
    421 	xorl	%ebx,%edi
    422 
    423 
    424 	movl	56(%ebp),%edx
    425 	movl	%edi,%ebx
    426 	xorl	%edx,%esi
    427 	shrl	$16,%ebx
    428 	movl	%edi,%edx
    429 	movb	%bh,%al
    430 	andl	$255,%ebx
    431 	movb	%dh,%cl
    432 	andl	$255,%edx
    433 	movl	72(%ebp,%eax,4),%eax
    434 	movl	1096(%ebp,%ebx,4),%ebx
    435 	addl	%eax,%ebx
    436 	movl	2120(%ebp,%ecx,4),%eax
    437 	xorl	%eax,%ebx
    438 	movl	3144(%ebp,%edx,4),%edx
    439 	addl	%edx,%ebx
    440 	xorl	%eax,%eax
    441 	xorl	%ebx,%esi
    442 
    443 
    444 	movl	52(%ebp),%edx
    445 	movl	%esi,%ebx
    446 	xorl	%edx,%edi
    447 	shrl	$16,%ebx
    448 	movl	%esi,%edx
    449 	movb	%bh,%al
    450 	andl	$255,%ebx
    451 	movb	%dh,%cl
    452 	andl	$255,%edx
    453 	movl	72(%ebp,%eax,4),%eax
    454 	movl	1096(%ebp,%ebx,4),%ebx
    455 	addl	%eax,%ebx
    456 	movl	2120(%ebp,%ecx,4),%eax
    457 	xorl	%eax,%ebx
    458 	movl	3144(%ebp,%edx,4),%edx
    459 	addl	%edx,%ebx
    460 	xorl	%eax,%eax
    461 	xorl	%ebx,%edi
    462 
    463 
    464 	movl	48(%ebp),%edx
    465 	movl	%edi,%ebx
    466 	xorl	%edx,%esi
    467 	shrl	$16,%ebx
    468 	movl	%edi,%edx
    469 	movb	%bh,%al
    470 	andl	$255,%ebx
    471 	movb	%dh,%cl
    472 	andl	$255,%edx
    473 	movl	72(%ebp,%eax,4),%eax
    474 	movl	1096(%ebp,%ebx,4),%ebx
    475 	addl	%eax,%ebx
    476 	movl	2120(%ebp,%ecx,4),%eax
    477 	xorl	%eax,%ebx
    478 	movl	3144(%ebp,%edx,4),%edx
    479 	addl	%edx,%ebx
    480 	xorl	%eax,%eax
    481 	xorl	%ebx,%esi
    482 
    483 
    484 	movl	44(%ebp),%edx
    485 	movl	%esi,%ebx
    486 	xorl	%edx,%edi
    487 	shrl	$16,%ebx
    488 	movl	%esi,%edx
    489 	movb	%bh,%al
    490 	andl	$255,%ebx
    491 	movb	%dh,%cl
    492 	andl	$255,%edx
    493 	movl	72(%ebp,%eax,4),%eax
    494 	movl	1096(%ebp,%ebx,4),%ebx
    495 	addl	%eax,%ebx
    496 	movl	2120(%ebp,%ecx,4),%eax
    497 	xorl	%eax,%ebx
    498 	movl	3144(%ebp,%edx,4),%edx
    499 	addl	%edx,%ebx
    500 	xorl	%eax,%eax
    501 	xorl	%ebx,%edi
    502 
    503 
    504 	movl	40(%ebp),%edx
    505 	movl	%edi,%ebx
    506 	xorl	%edx,%esi
    507 	shrl	$16,%ebx
    508 	movl	%edi,%edx
    509 	movb	%bh,%al
    510 	andl	$255,%ebx
    511 	movb	%dh,%cl
    512 	andl	$255,%edx
    513 	movl	72(%ebp,%eax,4),%eax
    514 	movl	1096(%ebp,%ebx,4),%ebx
    515 	addl	%eax,%ebx
    516 	movl	2120(%ebp,%ecx,4),%eax
    517 	xorl	%eax,%ebx
    518 	movl	3144(%ebp,%edx,4),%edx
    519 	addl	%edx,%ebx
    520 	xorl	%eax,%eax
    521 	xorl	%ebx,%esi
    522 
    523 
    524 	movl	36(%ebp),%edx
    525 	movl	%esi,%ebx
    526 	xorl	%edx,%edi
    527 	shrl	$16,%ebx
    528 	movl	%esi,%edx
    529 	movb	%bh,%al
    530 	andl	$255,%ebx
    531 	movb	%dh,%cl
    532 	andl	$255,%edx
    533 	movl	72(%ebp,%eax,4),%eax
    534 	movl	1096(%ebp,%ebx,4),%ebx
    535 	addl	%eax,%ebx
    536 	movl	2120(%ebp,%ecx,4),%eax
    537 	xorl	%eax,%ebx
    538 	movl	3144(%ebp,%edx,4),%edx
    539 	addl	%edx,%ebx
    540 	xorl	%eax,%eax
    541 	xorl	%ebx,%edi
    542 
    543 
    544 	movl	32(%ebp),%edx
    545 	movl	%edi,%ebx
    546 	xorl	%edx,%esi
    547 	shrl	$16,%ebx
    548 	movl	%edi,%edx
    549 	movb	%bh,%al
    550 	andl	$255,%ebx
    551 	movb	%dh,%cl
    552 	andl	$255,%edx
    553 	movl	72(%ebp,%eax,4),%eax
    554 	movl	1096(%ebp,%ebx,4),%ebx
    555 	addl	%eax,%ebx
    556 	movl	2120(%ebp,%ecx,4),%eax
    557 	xorl	%eax,%ebx
    558 	movl	3144(%ebp,%edx,4),%edx
    559 	addl	%edx,%ebx
    560 	xorl	%eax,%eax
    561 	xorl	%ebx,%esi
    562 
    563 
    564 	movl	28(%ebp),%edx
    565 	movl	%esi,%ebx
    566 	xorl	%edx,%edi
    567 	shrl	$16,%ebx
    568 	movl	%esi,%edx
    569 	movb	%bh,%al
    570 	andl	$255,%ebx
    571 	movb	%dh,%cl
    572 	andl	$255,%edx
    573 	movl	72(%ebp,%eax,4),%eax
    574 	movl	1096(%ebp,%ebx,4),%ebx
    575 	addl	%eax,%ebx
    576 	movl	2120(%ebp,%ecx,4),%eax
    577 	xorl	%eax,%ebx
    578 	movl	3144(%ebp,%edx,4),%edx
    579 	addl	%edx,%ebx
    580 	xorl	%eax,%eax
    581 	xorl	%ebx,%edi
    582 
    583 
    584 	movl	24(%ebp),%edx
    585 	movl	%edi,%ebx
    586 	xorl	%edx,%esi
    587 	shrl	$16,%ebx
    588 	movl	%edi,%edx
    589 	movb	%bh,%al
    590 	andl	$255,%ebx
    591 	movb	%dh,%cl
    592 	andl	$255,%edx
    593 	movl	72(%ebp,%eax,4),%eax
    594 	movl	1096(%ebp,%ebx,4),%ebx
    595 	addl	%eax,%ebx
    596 	movl	2120(%ebp,%ecx,4),%eax
    597 	xorl	%eax,%ebx
    598 	movl	3144(%ebp,%edx,4),%edx
    599 	addl	%edx,%ebx
    600 	xorl	%eax,%eax
    601 	xorl	%ebx,%esi
    602 
    603 
    604 	movl	20(%ebp),%edx
    605 	movl	%esi,%ebx
    606 	xorl	%edx,%edi
    607 	shrl	$16,%ebx
    608 	movl	%esi,%edx
    609 	movb	%bh,%al
    610 	andl	$255,%ebx
    611 	movb	%dh,%cl
    612 	andl	$255,%edx
    613 	movl	72(%ebp,%eax,4),%eax
    614 	movl	1096(%ebp,%ebx,4),%ebx
    615 	addl	%eax,%ebx
    616 	movl	2120(%ebp,%ecx,4),%eax
    617 	xorl	%eax,%ebx
    618 	movl	3144(%ebp,%edx,4),%edx
    619 	addl	%edx,%ebx
    620 	xorl	%eax,%eax
    621 	xorl	%ebx,%edi
    622 
    623 
    624 	movl	16(%ebp),%edx
    625 	movl	%edi,%ebx
    626 	xorl	%edx,%esi
    627 	shrl	$16,%ebx
    628 	movl	%edi,%edx
    629 	movb	%bh,%al
    630 	andl	$255,%ebx
    631 	movb	%dh,%cl
    632 	andl	$255,%edx
    633 	movl	72(%ebp,%eax,4),%eax
    634 	movl	1096(%ebp,%ebx,4),%ebx
    635 	addl	%eax,%ebx
    636 	movl	2120(%ebp,%ecx,4),%eax
    637 	xorl	%eax,%ebx
    638 	movl	3144(%ebp,%edx,4),%edx
    639 	addl	%edx,%ebx
    640 	xorl	%eax,%eax
    641 	xorl	%ebx,%esi
    642 
    643 
    644 	movl	12(%ebp),%edx
    645 	movl	%esi,%ebx
    646 	xorl	%edx,%edi
    647 	shrl	$16,%ebx
    648 	movl	%esi,%edx
    649 	movb	%bh,%al
    650 	andl	$255,%ebx
    651 	movb	%dh,%cl
    652 	andl	$255,%edx
    653 	movl	72(%ebp,%eax,4),%eax
    654 	movl	1096(%ebp,%ebx,4),%ebx
    655 	addl	%eax,%ebx
    656 	movl	2120(%ebp,%ecx,4),%eax
    657 	xorl	%eax,%ebx
    658 	movl	3144(%ebp,%edx,4),%edx
    659 	addl	%edx,%ebx
    660 	xorl	%eax,%eax
    661 	xorl	%ebx,%edi
    662 
    663 
    664 	movl	8(%ebp),%edx
    665 	movl	%edi,%ebx
    666 	xorl	%edx,%esi
    667 	shrl	$16,%ebx
    668 	movl	%edi,%edx
    669 	movb	%bh,%al
    670 	andl	$255,%ebx
    671 	movb	%dh,%cl
    672 	andl	$255,%edx
    673 	movl	72(%ebp,%eax,4),%eax
    674 	movl	1096(%ebp,%ebx,4),%ebx
    675 	addl	%eax,%ebx
    676 	movl	2120(%ebp,%ecx,4),%eax
    677 	xorl	%eax,%ebx
    678 	movl	3144(%ebp,%edx,4),%edx
    679 	addl	%edx,%ebx
    680 	xorl	%eax,%eax
    681 	xorl	%ebx,%esi
    682 
    683 
    684 	movl	4(%ebp),%edx
    685 	movl	%esi,%ebx
    686 	xorl	%edx,%edi
    687 	shrl	$16,%ebx
    688 	movl	%esi,%edx
    689 	movb	%bh,%al
    690 	andl	$255,%ebx
    691 	movb	%dh,%cl
    692 	andl	$255,%edx
    693 	movl	72(%ebp,%eax,4),%eax
    694 	movl	1096(%ebp,%ebx,4),%ebx
    695 	addl	%eax,%ebx
    696 	movl	2120(%ebp,%ecx,4),%eax
    697 	xorl	%eax,%ebx
    698 	movl	3144(%ebp,%edx,4),%edx
    699 	addl	%edx,%ebx
    700 
    701 	movl	20(%esp),%eax
    702 	xorl	%ebx,%edi
    703 	movl	(%ebp),%edx
    704 	xorl	%edx,%esi
    705 	movl	%edi,4(%eax)
    706 	movl	%esi,(%eax)
    707 	popl	%edi
    708 	popl	%esi
    709 	popl	%ebx
    710 	popl	%ebp
    711 	ret
    712 .size	BF_decrypt,.-.L_BF_decrypt_begin
    713 .globl	BF_cbc_encrypt
    714 .type	BF_cbc_encrypt,@function
    715 .align	16
    716 BF_cbc_encrypt:
    717 .L_BF_cbc_encrypt_begin:
    718 	#ifdef __CET__
    719 
    720 .byte	243,15,30,251
    721 	#endif
    722 
    723 
    724 	pushl	%ebp
    725 	pushl	%ebx
    726 	pushl	%esi
    727 	pushl	%edi
    728 	movl	28(%esp),%ebp
    729 
    730 	movl	36(%esp),%ebx
    731 	movl	(%ebx),%esi
    732 	movl	4(%ebx),%edi
    733 	pushl	%edi
    734 	pushl	%esi
    735 	pushl	%edi
    736 	pushl	%esi
    737 	movl	%esp,%ebx
    738 	movl	36(%esp),%esi
    739 	movl	40(%esp),%edi
    740 
    741 	movl	56(%esp),%ecx
    742 
    743 	movl	48(%esp),%eax
    744 	pushl	%eax
    745 	pushl	%ebx
    746 	cmpl	$0,%ecx
    747 	jz	.L000decrypt
    748 	andl	$4294967288,%ebp
    749 	movl	8(%esp),%eax
    750 	movl	12(%esp),%ebx
    751 	jz	.L001encrypt_finish
    752 .L002encrypt_loop:
    753 	movl	(%esi),%ecx
    754 	movl	4(%esi),%edx
    755 	xorl	%ecx,%eax
    756 	xorl	%edx,%ebx
    757 	bswap	%eax
    758 	bswap	%ebx
    759 	movl	%eax,8(%esp)
    760 	movl	%ebx,12(%esp)
    761 	call	.L_BF_encrypt_begin
    762 	movl	8(%esp),%eax
    763 	movl	12(%esp),%ebx
    764 	bswap	%eax
    765 	bswap	%ebx
    766 	movl	%eax,(%edi)
    767 	movl	%ebx,4(%edi)
    768 	addl	$8,%esi
    769 	addl	$8,%edi
    770 	subl	$8,%ebp
    771 	jnz	.L002encrypt_loop
    772 .L001encrypt_finish:
    773 	movl	52(%esp),%ebp
    774 	andl	$7,%ebp
    775 	jz	.L003finish
    776 	call	.L004PIC_point
    777 .L004PIC_point:
    778 	popl	%edx
    779 	leal	.L005cbc_enc_jmp_table-.L004PIC_point(%edx),%ecx
    780 	movl	(%ecx,%ebp,4),%ebp
    781 	addl	%edx,%ebp
    782 	xorl	%ecx,%ecx
    783 	xorl	%edx,%edx
    784 	jmp	*%ebp
    785 .L006ej7:
    786 	#ifdef __CET__
    787 
    788 .byte	243,15,30,251
    789 	#endif
    790 
    791 	movb	6(%esi),%dh
    792 	shll	$8,%edx
    793 .L007ej6:
    794 	#ifdef __CET__
    795 
    796 .byte	243,15,30,251
    797 	#endif
    798 
    799 	movb	5(%esi),%dh
    800 .L008ej5:
    801 	#ifdef __CET__
    802 
    803 .byte	243,15,30,251
    804 	#endif
    805 
    806 	movb	4(%esi),%dl
    807 .L009ej4:
    808 	#ifdef __CET__
    809 
    810 .byte	243,15,30,251
    811 	#endif
    812 
    813 	movl	(%esi),%ecx
    814 	jmp	.L010ejend
    815 .L011ej3:
    816 	#ifdef __CET__
    817 
    818 .byte	243,15,30,251
    819 	#endif
    820 
    821 	movb	2(%esi),%ch
    822 	shll	$8,%ecx
    823 .L012ej2:
    824 	#ifdef __CET__
    825 
    826 .byte	243,15,30,251
    827 	#endif
    828 
    829 	movb	1(%esi),%ch
    830 .L013ej1:
    831 	#ifdef __CET__
    832 
    833 .byte	243,15,30,251
    834 	#endif
    835 
    836 	movb	(%esi),%cl
    837 .L010ejend:
    838 	xorl	%ecx,%eax
    839 	xorl	%edx,%ebx
    840 	bswap	%eax
    841 	bswap	%ebx
    842 	movl	%eax,8(%esp)
    843 	movl	%ebx,12(%esp)
    844 	call	.L_BF_encrypt_begin
    845 	movl	8(%esp),%eax
    846 	movl	12(%esp),%ebx
    847 	bswap	%eax
    848 	bswap	%ebx
    849 	movl	%eax,(%edi)
    850 	movl	%ebx,4(%edi)
    851 	jmp	.L003finish
    852 .L000decrypt:
    853 	andl	$4294967288,%ebp
    854 	movl	16(%esp),%eax
    855 	movl	20(%esp),%ebx
    856 	jz	.L014decrypt_finish
    857 .L015decrypt_loop:
    858 	movl	(%esi),%eax
    859 	movl	4(%esi),%ebx
    860 	bswap	%eax
    861 	bswap	%ebx
    862 	movl	%eax,8(%esp)
    863 	movl	%ebx,12(%esp)
    864 	call	.L_BF_decrypt_begin
    865 	movl	8(%esp),%eax
    866 	movl	12(%esp),%ebx
    867 	bswap	%eax
    868 	bswap	%ebx
    869 	movl	16(%esp),%ecx
    870 	movl	20(%esp),%edx
    871 	xorl	%eax,%ecx
    872 	xorl	%ebx,%edx
    873 	movl	(%esi),%eax
    874 	movl	4(%esi),%ebx
    875 	movl	%ecx,(%edi)
    876 	movl	%edx,4(%edi)
    877 	movl	%eax,16(%esp)
    878 	movl	%ebx,20(%esp)
    879 	addl	$8,%esi
    880 	addl	$8,%edi
    881 	subl	$8,%ebp
    882 	jnz	.L015decrypt_loop
    883 .L014decrypt_finish:
    884 	movl	52(%esp),%ebp
    885 	andl	$7,%ebp
    886 	jz	.L003finish
    887 	movl	(%esi),%eax
    888 	movl	4(%esi),%ebx
    889 	bswap	%eax
    890 	bswap	%ebx
    891 	movl	%eax,8(%esp)
    892 	movl	%ebx,12(%esp)
    893 	call	.L_BF_decrypt_begin
    894 	movl	8(%esp),%eax
    895 	movl	12(%esp),%ebx
    896 	bswap	%eax
    897 	bswap	%ebx
    898 	movl	16(%esp),%ecx
    899 	movl	20(%esp),%edx
    900 	xorl	%eax,%ecx
    901 	xorl	%ebx,%edx
    902 	movl	(%esi),%eax
    903 	movl	4(%esi),%ebx
    904 .L016dj7:
    905 	rorl	$16,%edx
    906 	movb	%dl,6(%edi)
    907 	shrl	$16,%edx
    908 .L017dj6:
    909 	movb	%dh,5(%edi)
    910 .L018dj5:
    911 	movb	%dl,4(%edi)
    912 .L019dj4:
    913 	movl	%ecx,(%edi)
    914 	jmp	.L020djend
    915 .L021dj3:
    916 	rorl	$16,%ecx
    917 	movb	%cl,2(%edi)
    918 	shll	$16,%ecx
    919 .L022dj2:
    920 	movb	%ch,1(%esi)
    921 .L023dj1:
    922 	movb	%cl,(%esi)
    923 .L020djend:
    924 	jmp	.L003finish
    925 .L003finish:
    926 	movl	60(%esp),%ecx
    927 	addl	$24,%esp
    928 	movl	%eax,(%ecx)
    929 	movl	%ebx,4(%ecx)
    930 	popl	%edi
    931 	popl	%esi
    932 	popl	%ebx
    933 	popl	%ebp
    934 	ret
    935 .align	64
    936 .L005cbc_enc_jmp_table:
    937 .long	0
    938 .long	.L013ej1-.L004PIC_point
    939 .long	.L012ej2-.L004PIC_point
    940 .long	.L011ej3-.L004PIC_point
    941 .long	.L009ej4-.L004PIC_point
    942 .long	.L008ej5-.L004PIC_point
    943 .long	.L007ej6-.L004PIC_point
    944 .long	.L006ej7-.L004PIC_point
    945 .align	64
    946 .size	BF_cbc_encrypt,.-.L_BF_cbc_encrypt_begin
    947 
    948 	.section ".note.gnu.property", "a"
    949 	.p2align 2
    950 	.long 1f - 0f
    951 	.long 4f - 1f
    952 	.long 5
    953 0:
    954 	.asciz "GNU"
    955 1:
    956 	.p2align 2
    957 	.long 0xc0000002
    958 	.long 3f - 2f
    959 2:
    960 	.long 3
    961 3:
    962 	.p2align 2
    963 4:
    964