Home | History | Annotate | Download | only in asm
      1 .file	"des-586.s"
      2 .text
      3 .globl	_DES_SPtrans
      4 .align	4
      5 __x86_DES_encrypt:
      6 	pushl	%ecx
      7 	# Round 0
      8 	movl	(%ecx),%eax
      9 	xorl	%ebx,%ebx
     10 	movl	4(%ecx),%edx
     11 	xorl	%esi,%eax
     12 	xorl	%ecx,%ecx
     13 	xorl	%esi,%edx
     14 	andl	$0xfcfcfcfc,%eax
     15 	andl	$0xcfcfcfcf,%edx
     16 	movb	%al,%bl
     17 	movb	%ah,%cl
     18 	rorl	$4,%edx
     19 	xorl	(%ebp,%ebx,1),%edi
     20 	movb	%dl,%bl
     21 	xorl	0x200(%ebp,%ecx,1),%edi
     22 	movb	%dh,%cl
     23 	shrl	$16,%eax
     24 	xorl	0x100(%ebp,%ebx,1),%edi
     25 	movb	%ah,%bl
     26 	shrl	$16,%edx
     27 	xorl	0x300(%ebp,%ecx,1),%edi
     28 	movb	%dh,%cl
     29 	andl	$0xff,%eax
     30 	andl	$0xff,%edx
     31 	xorl	0x600(%ebp,%ebx,1),%edi
     32 	xorl	0x700(%ebp,%ecx,1),%edi
     33 	movl	(%esp),%ecx
     34 	xorl	0x400(%ebp,%eax,1),%edi
     35 	xorl	0x500(%ebp,%edx,1),%edi
     36 	# Round 1
     37 	movl	8(%ecx),%eax
     38 	xorl	%ebx,%ebx
     39 	movl	12(%ecx),%edx
     40 	xorl	%edi,%eax
     41 	xorl	%ecx,%ecx
     42 	xorl	%edi,%edx
     43 	andl	$0xfcfcfcfc,%eax
     44 	andl	$0xcfcfcfcf,%edx
     45 	movb	%al,%bl
     46 	movb	%ah,%cl
     47 	rorl	$4,%edx
     48 	xorl	(%ebp,%ebx,1),%esi
     49 	movb	%dl,%bl
     50 	xorl	0x200(%ebp,%ecx,1),%esi
     51 	movb	%dh,%cl
     52 	shrl	$16,%eax
     53 	xorl	0x100(%ebp,%ebx,1),%esi
     54 	movb	%ah,%bl
     55 	shrl	$16,%edx
     56 	xorl	0x300(%ebp,%ecx,1),%esi
     57 	movb	%dh,%cl
     58 	andl	$0xff,%eax
     59 	andl	$0xff,%edx
     60 	xorl	0x600(%ebp,%ebx,1),%esi
     61 	xorl	0x700(%ebp,%ecx,1),%esi
     62 	movl	(%esp),%ecx
     63 	xorl	0x400(%ebp,%eax,1),%esi
     64 	xorl	0x500(%ebp,%edx,1),%esi
     65 	# Round 2
     66 	movl	16(%ecx),%eax
     67 	xorl	%ebx,%ebx
     68 	movl	20(%ecx),%edx
     69 	xorl	%esi,%eax
     70 	xorl	%ecx,%ecx
     71 	xorl	%esi,%edx
     72 	andl	$0xfcfcfcfc,%eax
     73 	andl	$0xcfcfcfcf,%edx
     74 	movb	%al,%bl
     75 	movb	%ah,%cl
     76 	rorl	$4,%edx
     77 	xorl	(%ebp,%ebx,1),%edi
     78 	movb	%dl,%bl
     79 	xorl	0x200(%ebp,%ecx,1),%edi
     80 	movb	%dh,%cl
     81 	shrl	$16,%eax
     82 	xorl	0x100(%ebp,%ebx,1),%edi
     83 	movb	%ah,%bl
     84 	shrl	$16,%edx
     85 	xorl	0x300(%ebp,%ecx,1),%edi
     86 	movb	%dh,%cl
     87 	andl	$0xff,%eax
     88 	andl	$0xff,%edx
     89 	xorl	0x600(%ebp,%ebx,1),%edi
     90 	xorl	0x700(%ebp,%ecx,1),%edi
     91 	movl	(%esp),%ecx
     92 	xorl	0x400(%ebp,%eax,1),%edi
     93 	xorl	0x500(%ebp,%edx,1),%edi
     94 	# Round 3
     95 	movl	24(%ecx),%eax
     96 	xorl	%ebx,%ebx
     97 	movl	28(%ecx),%edx
     98 	xorl	%edi,%eax
     99 	xorl	%ecx,%ecx
    100 	xorl	%edi,%edx
    101 	andl	$0xfcfcfcfc,%eax
    102 	andl	$0xcfcfcfcf,%edx
    103 	movb	%al,%bl
    104 	movb	%ah,%cl
    105 	rorl	$4,%edx
    106 	xorl	(%ebp,%ebx,1),%esi
    107 	movb	%dl,%bl
    108 	xorl	0x200(%ebp,%ecx,1),%esi
    109 	movb	%dh,%cl
    110 	shrl	$16,%eax
    111 	xorl	0x100(%ebp,%ebx,1),%esi
    112 	movb	%ah,%bl
    113 	shrl	$16,%edx
    114 	xorl	0x300(%ebp,%ecx,1),%esi
    115 	movb	%dh,%cl
    116 	andl	$0xff,%eax
    117 	andl	$0xff,%edx
    118 	xorl	0x600(%ebp,%ebx,1),%esi
    119 	xorl	0x700(%ebp,%ecx,1),%esi
    120 	movl	(%esp),%ecx
    121 	xorl	0x400(%ebp,%eax,1),%esi
    122 	xorl	0x500(%ebp,%edx,1),%esi
    123 	# Round 4
    124 	movl	32(%ecx),%eax
    125 	xorl	%ebx,%ebx
    126 	movl	36(%ecx),%edx
    127 	xorl	%esi,%eax
    128 	xorl	%ecx,%ecx
    129 	xorl	%esi,%edx
    130 	andl	$0xfcfcfcfc,%eax
    131 	andl	$0xcfcfcfcf,%edx
    132 	movb	%al,%bl
    133 	movb	%ah,%cl
    134 	rorl	$4,%edx
    135 	xorl	(%ebp,%ebx,1),%edi
    136 	movb	%dl,%bl
    137 	xorl	0x200(%ebp,%ecx,1),%edi
    138 	movb	%dh,%cl
    139 	shrl	$16,%eax
    140 	xorl	0x100(%ebp,%ebx,1),%edi
    141 	movb	%ah,%bl
    142 	shrl	$16,%edx
    143 	xorl	0x300(%ebp,%ecx,1),%edi
    144 	movb	%dh,%cl
    145 	andl	$0xff,%eax
    146 	andl	$0xff,%edx
    147 	xorl	0x600(%ebp,%ebx,1),%edi
    148 	xorl	0x700(%ebp,%ecx,1),%edi
    149 	movl	(%esp),%ecx
    150 	xorl	0x400(%ebp,%eax,1),%edi
    151 	xorl	0x500(%ebp,%edx,1),%edi
    152 	# Round 5
    153 	movl	40(%ecx),%eax
    154 	xorl	%ebx,%ebx
    155 	movl	44(%ecx),%edx
    156 	xorl	%edi,%eax
    157 	xorl	%ecx,%ecx
    158 	xorl	%edi,%edx
    159 	andl	$0xfcfcfcfc,%eax
    160 	andl	$0xcfcfcfcf,%edx
    161 	movb	%al,%bl
    162 	movb	%ah,%cl
    163 	rorl	$4,%edx
    164 	xorl	(%ebp,%ebx,1),%esi
    165 	movb	%dl,%bl
    166 	xorl	0x200(%ebp,%ecx,1),%esi
    167 	movb	%dh,%cl
    168 	shrl	$16,%eax
    169 	xorl	0x100(%ebp,%ebx,1),%esi
    170 	movb	%ah,%bl
    171 	shrl	$16,%edx
    172 	xorl	0x300(%ebp,%ecx,1),%esi
    173 	movb	%dh,%cl
    174 	andl	$0xff,%eax
    175 	andl	$0xff,%edx
    176 	xorl	0x600(%ebp,%ebx,1),%esi
    177 	xorl	0x700(%ebp,%ecx,1),%esi
    178 	movl	(%esp),%ecx
    179 	xorl	0x400(%ebp,%eax,1),%esi
    180 	xorl	0x500(%ebp,%edx,1),%esi
    181 	# Round 6
    182 	movl	48(%ecx),%eax
    183 	xorl	%ebx,%ebx
    184 	movl	52(%ecx),%edx
    185 	xorl	%esi,%eax
    186 	xorl	%ecx,%ecx
    187 	xorl	%esi,%edx
    188 	andl	$0xfcfcfcfc,%eax
    189 	andl	$0xcfcfcfcf,%edx
    190 	movb	%al,%bl
    191 	movb	%ah,%cl
    192 	rorl	$4,%edx
    193 	xorl	(%ebp,%ebx,1),%edi
    194 	movb	%dl,%bl
    195 	xorl	0x200(%ebp,%ecx,1),%edi
    196 	movb	%dh,%cl
    197 	shrl	$16,%eax
    198 	xorl	0x100(%ebp,%ebx,1),%edi
    199 	movb	%ah,%bl
    200 	shrl	$16,%edx
    201 	xorl	0x300(%ebp,%ecx,1),%edi
    202 	movb	%dh,%cl
    203 	andl	$0xff,%eax
    204 	andl	$0xff,%edx
    205 	xorl	0x600(%ebp,%ebx,1),%edi
    206 	xorl	0x700(%ebp,%ecx,1),%edi
    207 	movl	(%esp),%ecx
    208 	xorl	0x400(%ebp,%eax,1),%edi
    209 	xorl	0x500(%ebp,%edx,1),%edi
    210 	# Round 7
    211 	movl	56(%ecx),%eax
    212 	xorl	%ebx,%ebx
    213 	movl	60(%ecx),%edx
    214 	xorl	%edi,%eax
    215 	xorl	%ecx,%ecx
    216 	xorl	%edi,%edx
    217 	andl	$0xfcfcfcfc,%eax
    218 	andl	$0xcfcfcfcf,%edx
    219 	movb	%al,%bl
    220 	movb	%ah,%cl
    221 	rorl	$4,%edx
    222 	xorl	(%ebp,%ebx,1),%esi
    223 	movb	%dl,%bl
    224 	xorl	0x200(%ebp,%ecx,1),%esi
    225 	movb	%dh,%cl
    226 	shrl	$16,%eax
    227 	xorl	0x100(%ebp,%ebx,1),%esi
    228 	movb	%ah,%bl
    229 	shrl	$16,%edx
    230 	xorl	0x300(%ebp,%ecx,1),%esi
    231 	movb	%dh,%cl
    232 	andl	$0xff,%eax
    233 	andl	$0xff,%edx
    234 	xorl	0x600(%ebp,%ebx,1),%esi
    235 	xorl	0x700(%ebp,%ecx,1),%esi
    236 	movl	(%esp),%ecx
    237 	xorl	0x400(%ebp,%eax,1),%esi
    238 	xorl	0x500(%ebp,%edx,1),%esi
    239 	# Round 8
    240 	movl	64(%ecx),%eax
    241 	xorl	%ebx,%ebx
    242 	movl	68(%ecx),%edx
    243 	xorl	%esi,%eax
    244 	xorl	%ecx,%ecx
    245 	xorl	%esi,%edx
    246 	andl	$0xfcfcfcfc,%eax
    247 	andl	$0xcfcfcfcf,%edx
    248 	movb	%al,%bl
    249 	movb	%ah,%cl
    250 	rorl	$4,%edx
    251 	xorl	(%ebp,%ebx,1),%edi
    252 	movb	%dl,%bl
    253 	xorl	0x200(%ebp,%ecx,1),%edi
    254 	movb	%dh,%cl
    255 	shrl	$16,%eax
    256 	xorl	0x100(%ebp,%ebx,1),%edi
    257 	movb	%ah,%bl
    258 	shrl	$16,%edx
    259 	xorl	0x300(%ebp,%ecx,1),%edi
    260 	movb	%dh,%cl
    261 	andl	$0xff,%eax
    262 	andl	$0xff,%edx
    263 	xorl	0x600(%ebp,%ebx,1),%edi
    264 	xorl	0x700(%ebp,%ecx,1),%edi
    265 	movl	(%esp),%ecx
    266 	xorl	0x400(%ebp,%eax,1),%edi
    267 	xorl	0x500(%ebp,%edx,1),%edi
    268 	# Round 9
    269 	movl	72(%ecx),%eax
    270 	xorl	%ebx,%ebx
    271 	movl	76(%ecx),%edx
    272 	xorl	%edi,%eax
    273 	xorl	%ecx,%ecx
    274 	xorl	%edi,%edx
    275 	andl	$0xfcfcfcfc,%eax
    276 	andl	$0xcfcfcfcf,%edx
    277 	movb	%al,%bl
    278 	movb	%ah,%cl
    279 	rorl	$4,%edx
    280 	xorl	(%ebp,%ebx,1),%esi
    281 	movb	%dl,%bl
    282 	xorl	0x200(%ebp,%ecx,1),%esi
    283 	movb	%dh,%cl
    284 	shrl	$16,%eax
    285 	xorl	0x100(%ebp,%ebx,1),%esi
    286 	movb	%ah,%bl
    287 	shrl	$16,%edx
    288 	xorl	0x300(%ebp,%ecx,1),%esi
    289 	movb	%dh,%cl
    290 	andl	$0xff,%eax
    291 	andl	$0xff,%edx
    292 	xorl	0x600(%ebp,%ebx,1),%esi
    293 	xorl	0x700(%ebp,%ecx,1),%esi
    294 	movl	(%esp),%ecx
    295 	xorl	0x400(%ebp,%eax,1),%esi
    296 	xorl	0x500(%ebp,%edx,1),%esi
    297 	# Round 10
    298 	movl	80(%ecx),%eax
    299 	xorl	%ebx,%ebx
    300 	movl	84(%ecx),%edx
    301 	xorl	%esi,%eax
    302 	xorl	%ecx,%ecx
    303 	xorl	%esi,%edx
    304 	andl	$0xfcfcfcfc,%eax
    305 	andl	$0xcfcfcfcf,%edx
    306 	movb	%al,%bl
    307 	movb	%ah,%cl
    308 	rorl	$4,%edx
    309 	xorl	(%ebp,%ebx,1),%edi
    310 	movb	%dl,%bl
    311 	xorl	0x200(%ebp,%ecx,1),%edi
    312 	movb	%dh,%cl
    313 	shrl	$16,%eax
    314 	xorl	0x100(%ebp,%ebx,1),%edi
    315 	movb	%ah,%bl
    316 	shrl	$16,%edx
    317 	xorl	0x300(%ebp,%ecx,1),%edi
    318 	movb	%dh,%cl
    319 	andl	$0xff,%eax
    320 	andl	$0xff,%edx
    321 	xorl	0x600(%ebp,%ebx,1),%edi
    322 	xorl	0x700(%ebp,%ecx,1),%edi
    323 	movl	(%esp),%ecx
    324 	xorl	0x400(%ebp,%eax,1),%edi
    325 	xorl	0x500(%ebp,%edx,1),%edi
    326 	# Round 11
    327 	movl	88(%ecx),%eax
    328 	xorl	%ebx,%ebx
    329 	movl	92(%ecx),%edx
    330 	xorl	%edi,%eax
    331 	xorl	%ecx,%ecx
    332 	xorl	%edi,%edx
    333 	andl	$0xfcfcfcfc,%eax
    334 	andl	$0xcfcfcfcf,%edx
    335 	movb	%al,%bl
    336 	movb	%ah,%cl
    337 	rorl	$4,%edx
    338 	xorl	(%ebp,%ebx,1),%esi
    339 	movb	%dl,%bl
    340 	xorl	0x200(%ebp,%ecx,1),%esi
    341 	movb	%dh,%cl
    342 	shrl	$16,%eax
    343 	xorl	0x100(%ebp,%ebx,1),%esi
    344 	movb	%ah,%bl
    345 	shrl	$16,%edx
    346 	xorl	0x300(%ebp,%ecx,1),%esi
    347 	movb	%dh,%cl
    348 	andl	$0xff,%eax
    349 	andl	$0xff,%edx
    350 	xorl	0x600(%ebp,%ebx,1),%esi
    351 	xorl	0x700(%ebp,%ecx,1),%esi
    352 	movl	(%esp),%ecx
    353 	xorl	0x400(%ebp,%eax,1),%esi
    354 	xorl	0x500(%ebp,%edx,1),%esi
    355 	# Round 12
    356 	movl	96(%ecx),%eax
    357 	xorl	%ebx,%ebx
    358 	movl	100(%ecx),%edx
    359 	xorl	%esi,%eax
    360 	xorl	%ecx,%ecx
    361 	xorl	%esi,%edx
    362 	andl	$0xfcfcfcfc,%eax
    363 	andl	$0xcfcfcfcf,%edx
    364 	movb	%al,%bl
    365 	movb	%ah,%cl
    366 	rorl	$4,%edx
    367 	xorl	(%ebp,%ebx,1),%edi
    368 	movb	%dl,%bl
    369 	xorl	0x200(%ebp,%ecx,1),%edi
    370 	movb	%dh,%cl
    371 	shrl	$16,%eax
    372 	xorl	0x100(%ebp,%ebx,1),%edi
    373 	movb	%ah,%bl
    374 	shrl	$16,%edx
    375 	xorl	0x300(%ebp,%ecx,1),%edi
    376 	movb	%dh,%cl
    377 	andl	$0xff,%eax
    378 	andl	$0xff,%edx
    379 	xorl	0x600(%ebp,%ebx,1),%edi
    380 	xorl	0x700(%ebp,%ecx,1),%edi
    381 	movl	(%esp),%ecx
    382 	xorl	0x400(%ebp,%eax,1),%edi
    383 	xorl	0x500(%ebp,%edx,1),%edi
    384 	# Round 13
    385 	movl	104(%ecx),%eax
    386 	xorl	%ebx,%ebx
    387 	movl	108(%ecx),%edx
    388 	xorl	%edi,%eax
    389 	xorl	%ecx,%ecx
    390 	xorl	%edi,%edx
    391 	andl	$0xfcfcfcfc,%eax
    392 	andl	$0xcfcfcfcf,%edx
    393 	movb	%al,%bl
    394 	movb	%ah,%cl
    395 	rorl	$4,%edx
    396 	xorl	(%ebp,%ebx,1),%esi
    397 	movb	%dl,%bl
    398 	xorl	0x200(%ebp,%ecx,1),%esi
    399 	movb	%dh,%cl
    400 	shrl	$16,%eax
    401 	xorl	0x100(%ebp,%ebx,1),%esi
    402 	movb	%ah,%bl
    403 	shrl	$16,%edx
    404 	xorl	0x300(%ebp,%ecx,1),%esi
    405 	movb	%dh,%cl
    406 	andl	$0xff,%eax
    407 	andl	$0xff,%edx
    408 	xorl	0x600(%ebp,%ebx,1),%esi
    409 	xorl	0x700(%ebp,%ecx,1),%esi
    410 	movl	(%esp),%ecx
    411 	xorl	0x400(%ebp,%eax,1),%esi
    412 	xorl	0x500(%ebp,%edx,1),%esi
    413 	# Round 14
    414 	movl	112(%ecx),%eax
    415 	xorl	%ebx,%ebx
    416 	movl	116(%ecx),%edx
    417 	xorl	%esi,%eax
    418 	xorl	%ecx,%ecx
    419 	xorl	%esi,%edx
    420 	andl	$0xfcfcfcfc,%eax
    421 	andl	$0xcfcfcfcf,%edx
    422 	movb	%al,%bl
    423 	movb	%ah,%cl
    424 	rorl	$4,%edx
    425 	xorl	(%ebp,%ebx,1),%edi
    426 	movb	%dl,%bl
    427 	xorl	0x200(%ebp,%ecx,1),%edi
    428 	movb	%dh,%cl
    429 	shrl	$16,%eax
    430 	xorl	0x100(%ebp,%ebx,1),%edi
    431 	movb	%ah,%bl
    432 	shrl	$16,%edx
    433 	xorl	0x300(%ebp,%ecx,1),%edi
    434 	movb	%dh,%cl
    435 	andl	$0xff,%eax
    436 	andl	$0xff,%edx
    437 	xorl	0x600(%ebp,%ebx,1),%edi
    438 	xorl	0x700(%ebp,%ecx,1),%edi
    439 	movl	(%esp),%ecx
    440 	xorl	0x400(%ebp,%eax,1),%edi
    441 	xorl	0x500(%ebp,%edx,1),%edi
    442 	# Round 15
    443 	movl	120(%ecx),%eax
    444 	xorl	%ebx,%ebx
    445 	movl	124(%ecx),%edx
    446 	xorl	%edi,%eax
    447 	xorl	%ecx,%ecx
    448 	xorl	%edi,%edx
    449 	andl	$0xfcfcfcfc,%eax
    450 	andl	$0xcfcfcfcf,%edx
    451 	movb	%al,%bl
    452 	movb	%ah,%cl
    453 	rorl	$4,%edx
    454 	xorl	(%ebp,%ebx,1),%esi
    455 	movb	%dl,%bl
    456 	xorl	0x200(%ebp,%ecx,1),%esi
    457 	movb	%dh,%cl
    458 	shrl	$16,%eax
    459 	xorl	0x100(%ebp,%ebx,1),%esi
    460 	movb	%ah,%bl
    461 	shrl	$16,%edx
    462 	xorl	0x300(%ebp,%ecx,1),%esi
    463 	movb	%dh,%cl
    464 	andl	$0xff,%eax
    465 	andl	$0xff,%edx
    466 	xorl	0x600(%ebp,%ebx,1),%esi
    467 	xorl	0x700(%ebp,%ecx,1),%esi
    468 	movl	(%esp),%ecx
    469 	xorl	0x400(%ebp,%eax,1),%esi
    470 	xorl	0x500(%ebp,%edx,1),%esi
    471 	addl	$4,%esp
    472 	ret
    473 .align	4
    474 __x86_DES_decrypt:
    475 	pushl	%ecx
    476 	# Round 15
    477 	movl	120(%ecx),%eax
    478 	xorl	%ebx,%ebx
    479 	movl	124(%ecx),%edx
    480 	xorl	%esi,%eax
    481 	xorl	%ecx,%ecx
    482 	xorl	%esi,%edx
    483 	andl	$0xfcfcfcfc,%eax
    484 	andl	$0xcfcfcfcf,%edx
    485 	movb	%al,%bl
    486 	movb	%ah,%cl
    487 	rorl	$4,%edx
    488 	xorl	(%ebp,%ebx,1),%edi
    489 	movb	%dl,%bl
    490 	xorl	0x200(%ebp,%ecx,1),%edi
    491 	movb	%dh,%cl
    492 	shrl	$16,%eax
    493 	xorl	0x100(%ebp,%ebx,1),%edi
    494 	movb	%ah,%bl
    495 	shrl	$16,%edx
    496 	xorl	0x300(%ebp,%ecx,1),%edi
    497 	movb	%dh,%cl
    498 	andl	$0xff,%eax
    499 	andl	$0xff,%edx
    500 	xorl	0x600(%ebp,%ebx,1),%edi
    501 	xorl	0x700(%ebp,%ecx,1),%edi
    502 	movl	(%esp),%ecx
    503 	xorl	0x400(%ebp,%eax,1),%edi
    504 	xorl	0x500(%ebp,%edx,1),%edi
    505 	# Round 14
    506 	movl	112(%ecx),%eax
    507 	xorl	%ebx,%ebx
    508 	movl	116(%ecx),%edx
    509 	xorl	%edi,%eax
    510 	xorl	%ecx,%ecx
    511 	xorl	%edi,%edx
    512 	andl	$0xfcfcfcfc,%eax
    513 	andl	$0xcfcfcfcf,%edx
    514 	movb	%al,%bl
    515 	movb	%ah,%cl
    516 	rorl	$4,%edx
    517 	xorl	(%ebp,%ebx,1),%esi
    518 	movb	%dl,%bl
    519 	xorl	0x200(%ebp,%ecx,1),%esi
    520 	movb	%dh,%cl
    521 	shrl	$16,%eax
    522 	xorl	0x100(%ebp,%ebx,1),%esi
    523 	movb	%ah,%bl
    524 	shrl	$16,%edx
    525 	xorl	0x300(%ebp,%ecx,1),%esi
    526 	movb	%dh,%cl
    527 	andl	$0xff,%eax
    528 	andl	$0xff,%edx
    529 	xorl	0x600(%ebp,%ebx,1),%esi
    530 	xorl	0x700(%ebp,%ecx,1),%esi
    531 	movl	(%esp),%ecx
    532 	xorl	0x400(%ebp,%eax,1),%esi
    533 	xorl	0x500(%ebp,%edx,1),%esi
    534 	# Round 13
    535 	movl	104(%ecx),%eax
    536 	xorl	%ebx,%ebx
    537 	movl	108(%ecx),%edx
    538 	xorl	%esi,%eax
    539 	xorl	%ecx,%ecx
    540 	xorl	%esi,%edx
    541 	andl	$0xfcfcfcfc,%eax
    542 	andl	$0xcfcfcfcf,%edx
    543 	movb	%al,%bl
    544 	movb	%ah,%cl
    545 	rorl	$4,%edx
    546 	xorl	(%ebp,%ebx,1),%edi
    547 	movb	%dl,%bl
    548 	xorl	0x200(%ebp,%ecx,1),%edi
    549 	movb	%dh,%cl
    550 	shrl	$16,%eax
    551 	xorl	0x100(%ebp,%ebx,1),%edi
    552 	movb	%ah,%bl
    553 	shrl	$16,%edx
    554 	xorl	0x300(%ebp,%ecx,1),%edi
    555 	movb	%dh,%cl
    556 	andl	$0xff,%eax
    557 	andl	$0xff,%edx
    558 	xorl	0x600(%ebp,%ebx,1),%edi
    559 	xorl	0x700(%ebp,%ecx,1),%edi
    560 	movl	(%esp),%ecx
    561 	xorl	0x400(%ebp,%eax,1),%edi
    562 	xorl	0x500(%ebp,%edx,1),%edi
    563 	# Round 12
    564 	movl	96(%ecx),%eax
    565 	xorl	%ebx,%ebx
    566 	movl	100(%ecx),%edx
    567 	xorl	%edi,%eax
    568 	xorl	%ecx,%ecx
    569 	xorl	%edi,%edx
    570 	andl	$0xfcfcfcfc,%eax
    571 	andl	$0xcfcfcfcf,%edx
    572 	movb	%al,%bl
    573 	movb	%ah,%cl
    574 	rorl	$4,%edx
    575 	xorl	(%ebp,%ebx,1),%esi
    576 	movb	%dl,%bl
    577 	xorl	0x200(%ebp,%ecx,1),%esi
    578 	movb	%dh,%cl
    579 	shrl	$16,%eax
    580 	xorl	0x100(%ebp,%ebx,1),%esi
    581 	movb	%ah,%bl
    582 	shrl	$16,%edx
    583 	xorl	0x300(%ebp,%ecx,1),%esi
    584 	movb	%dh,%cl
    585 	andl	$0xff,%eax
    586 	andl	$0xff,%edx
    587 	xorl	0x600(%ebp,%ebx,1),%esi
    588 	xorl	0x700(%ebp,%ecx,1),%esi
    589 	movl	(%esp),%ecx
    590 	xorl	0x400(%ebp,%eax,1),%esi
    591 	xorl	0x500(%ebp,%edx,1),%esi
    592 	# Round 11
    593 	movl	88(%ecx),%eax
    594 	xorl	%ebx,%ebx
    595 	movl	92(%ecx),%edx
    596 	xorl	%esi,%eax
    597 	xorl	%ecx,%ecx
    598 	xorl	%esi,%edx
    599 	andl	$0xfcfcfcfc,%eax
    600 	andl	$0xcfcfcfcf,%edx
    601 	movb	%al,%bl
    602 	movb	%ah,%cl
    603 	rorl	$4,%edx
    604 	xorl	(%ebp,%ebx,1),%edi
    605 	movb	%dl,%bl
    606 	xorl	0x200(%ebp,%ecx,1),%edi
    607 	movb	%dh,%cl
    608 	shrl	$16,%eax
    609 	xorl	0x100(%ebp,%ebx,1),%edi
    610 	movb	%ah,%bl
    611 	shrl	$16,%edx
    612 	xorl	0x300(%ebp,%ecx,1),%edi
    613 	movb	%dh,%cl
    614 	andl	$0xff,%eax
    615 	andl	$0xff,%edx
    616 	xorl	0x600(%ebp,%ebx,1),%edi
    617 	xorl	0x700(%ebp,%ecx,1),%edi
    618 	movl	(%esp),%ecx
    619 	xorl	0x400(%ebp,%eax,1),%edi
    620 	xorl	0x500(%ebp,%edx,1),%edi
    621 	# Round 10
    622 	movl	80(%ecx),%eax
    623 	xorl	%ebx,%ebx
    624 	movl	84(%ecx),%edx
    625 	xorl	%edi,%eax
    626 	xorl	%ecx,%ecx
    627 	xorl	%edi,%edx
    628 	andl	$0xfcfcfcfc,%eax
    629 	andl	$0xcfcfcfcf,%edx
    630 	movb	%al,%bl
    631 	movb	%ah,%cl
    632 	rorl	$4,%edx
    633 	xorl	(%ebp,%ebx,1),%esi
    634 	movb	%dl,%bl
    635 	xorl	0x200(%ebp,%ecx,1),%esi
    636 	movb	%dh,%cl
    637 	shrl	$16,%eax
    638 	xorl	0x100(%ebp,%ebx,1),%esi
    639 	movb	%ah,%bl
    640 	shrl	$16,%edx
    641 	xorl	0x300(%ebp,%ecx,1),%esi
    642 	movb	%dh,%cl
    643 	andl	$0xff,%eax
    644 	andl	$0xff,%edx
    645 	xorl	0x600(%ebp,%ebx,1),%esi
    646 	xorl	0x700(%ebp,%ecx,1),%esi
    647 	movl	(%esp),%ecx
    648 	xorl	0x400(%ebp,%eax,1),%esi
    649 	xorl	0x500(%ebp,%edx,1),%esi
    650 	# Round 9
    651 	movl	72(%ecx),%eax
    652 	xorl	%ebx,%ebx
    653 	movl	76(%ecx),%edx
    654 	xorl	%esi,%eax
    655 	xorl	%ecx,%ecx
    656 	xorl	%esi,%edx
    657 	andl	$0xfcfcfcfc,%eax
    658 	andl	$0xcfcfcfcf,%edx
    659 	movb	%al,%bl
    660 	movb	%ah,%cl
    661 	rorl	$4,%edx
    662 	xorl	(%ebp,%ebx,1),%edi
    663 	movb	%dl,%bl
    664 	xorl	0x200(%ebp,%ecx,1),%edi
    665 	movb	%dh,%cl
    666 	shrl	$16,%eax
    667 	xorl	0x100(%ebp,%ebx,1),%edi
    668 	movb	%ah,%bl
    669 	shrl	$16,%edx
    670 	xorl	0x300(%ebp,%ecx,1),%edi
    671 	movb	%dh,%cl
    672 	andl	$0xff,%eax
    673 	andl	$0xff,%edx
    674 	xorl	0x600(%ebp,%ebx,1),%edi
    675 	xorl	0x700(%ebp,%ecx,1),%edi
    676 	movl	(%esp),%ecx
    677 	xorl	0x400(%ebp,%eax,1),%edi
    678 	xorl	0x500(%ebp,%edx,1),%edi
    679 	# Round 8
    680 	movl	64(%ecx),%eax
    681 	xorl	%ebx,%ebx
    682 	movl	68(%ecx),%edx
    683 	xorl	%edi,%eax
    684 	xorl	%ecx,%ecx
    685 	xorl	%edi,%edx
    686 	andl	$0xfcfcfcfc,%eax
    687 	andl	$0xcfcfcfcf,%edx
    688 	movb	%al,%bl
    689 	movb	%ah,%cl
    690 	rorl	$4,%edx
    691 	xorl	(%ebp,%ebx,1),%esi
    692 	movb	%dl,%bl
    693 	xorl	0x200(%ebp,%ecx,1),%esi
    694 	movb	%dh,%cl
    695 	shrl	$16,%eax
    696 	xorl	0x100(%ebp,%ebx,1),%esi
    697 	movb	%ah,%bl
    698 	shrl	$16,%edx
    699 	xorl	0x300(%ebp,%ecx,1),%esi
    700 	movb	%dh,%cl
    701 	andl	$0xff,%eax
    702 	andl	$0xff,%edx
    703 	xorl	0x600(%ebp,%ebx,1),%esi
    704 	xorl	0x700(%ebp,%ecx,1),%esi
    705 	movl	(%esp),%ecx
    706 	xorl	0x400(%ebp,%eax,1),%esi
    707 	xorl	0x500(%ebp,%edx,1),%esi
    708 	# Round 7
    709 	movl	56(%ecx),%eax
    710 	xorl	%ebx,%ebx
    711 	movl	60(%ecx),%edx
    712 	xorl	%esi,%eax
    713 	xorl	%ecx,%ecx
    714 	xorl	%esi,%edx
    715 	andl	$0xfcfcfcfc,%eax
    716 	andl	$0xcfcfcfcf,%edx
    717 	movb	%al,%bl
    718 	movb	%ah,%cl
    719 	rorl	$4,%edx
    720 	xorl	(%ebp,%ebx,1),%edi
    721 	movb	%dl,%bl
    722 	xorl	0x200(%ebp,%ecx,1),%edi
    723 	movb	%dh,%cl
    724 	shrl	$16,%eax
    725 	xorl	0x100(%ebp,%ebx,1),%edi
    726 	movb	%ah,%bl
    727 	shrl	$16,%edx
    728 	xorl	0x300(%ebp,%ecx,1),%edi
    729 	movb	%dh,%cl
    730 	andl	$0xff,%eax
    731 	andl	$0xff,%edx
    732 	xorl	0x600(%ebp,%ebx,1),%edi
    733 	xorl	0x700(%ebp,%ecx,1),%edi
    734 	movl	(%esp),%ecx
    735 	xorl	0x400(%ebp,%eax,1),%edi
    736 	xorl	0x500(%ebp,%edx,1),%edi
    737 	# Round 6
    738 	movl	48(%ecx),%eax
    739 	xorl	%ebx,%ebx
    740 	movl	52(%ecx),%edx
    741 	xorl	%edi,%eax
    742 	xorl	%ecx,%ecx
    743 	xorl	%edi,%edx
    744 	andl	$0xfcfcfcfc,%eax
    745 	andl	$0xcfcfcfcf,%edx
    746 	movb	%al,%bl
    747 	movb	%ah,%cl
    748 	rorl	$4,%edx
    749 	xorl	(%ebp,%ebx,1),%esi
    750 	movb	%dl,%bl
    751 	xorl	0x200(%ebp,%ecx,1),%esi
    752 	movb	%dh,%cl
    753 	shrl	$16,%eax
    754 	xorl	0x100(%ebp,%ebx,1),%esi
    755 	movb	%ah,%bl
    756 	shrl	$16,%edx
    757 	xorl	0x300(%ebp,%ecx,1),%esi
    758 	movb	%dh,%cl
    759 	andl	$0xff,%eax
    760 	andl	$0xff,%edx
    761 	xorl	0x600(%ebp,%ebx,1),%esi
    762 	xorl	0x700(%ebp,%ecx,1),%esi
    763 	movl	(%esp),%ecx
    764 	xorl	0x400(%ebp,%eax,1),%esi
    765 	xorl	0x500(%ebp,%edx,1),%esi
    766 	# Round 5
    767 	movl	40(%ecx),%eax
    768 	xorl	%ebx,%ebx
    769 	movl	44(%ecx),%edx
    770 	xorl	%esi,%eax
    771 	xorl	%ecx,%ecx
    772 	xorl	%esi,%edx
    773 	andl	$0xfcfcfcfc,%eax
    774 	andl	$0xcfcfcfcf,%edx
    775 	movb	%al,%bl
    776 	movb	%ah,%cl
    777 	rorl	$4,%edx
    778 	xorl	(%ebp,%ebx,1),%edi
    779 	movb	%dl,%bl
    780 	xorl	0x200(%ebp,%ecx,1),%edi
    781 	movb	%dh,%cl
    782 	shrl	$16,%eax
    783 	xorl	0x100(%ebp,%ebx,1),%edi
    784 	movb	%ah,%bl
    785 	shrl	$16,%edx
    786 	xorl	0x300(%ebp,%ecx,1),%edi
    787 	movb	%dh,%cl
    788 	andl	$0xff,%eax
    789 	andl	$0xff,%edx
    790 	xorl	0x600(%ebp,%ebx,1),%edi
    791 	xorl	0x700(%ebp,%ecx,1),%edi
    792 	movl	(%esp),%ecx
    793 	xorl	0x400(%ebp,%eax,1),%edi
    794 	xorl	0x500(%ebp,%edx,1),%edi
    795 	# Round 4
    796 	movl	32(%ecx),%eax
    797 	xorl	%ebx,%ebx
    798 	movl	36(%ecx),%edx
    799 	xorl	%edi,%eax
    800 	xorl	%ecx,%ecx
    801 	xorl	%edi,%edx
    802 	andl	$0xfcfcfcfc,%eax
    803 	andl	$0xcfcfcfcf,%edx
    804 	movb	%al,%bl
    805 	movb	%ah,%cl
    806 	rorl	$4,%edx
    807 	xorl	(%ebp,%ebx,1),%esi
    808 	movb	%dl,%bl
    809 	xorl	0x200(%ebp,%ecx,1),%esi
    810 	movb	%dh,%cl
    811 	shrl	$16,%eax
    812 	xorl	0x100(%ebp,%ebx,1),%esi
    813 	movb	%ah,%bl
    814 	shrl	$16,%edx
    815 	xorl	0x300(%ebp,%ecx,1),%esi
    816 	movb	%dh,%cl
    817 	andl	$0xff,%eax
    818 	andl	$0xff,%edx
    819 	xorl	0x600(%ebp,%ebx,1),%esi
    820 	xorl	0x700(%ebp,%ecx,1),%esi
    821 	movl	(%esp),%ecx
    822 	xorl	0x400(%ebp,%eax,1),%esi
    823 	xorl	0x500(%ebp,%edx,1),%esi
    824 	# Round 3
    825 	movl	24(%ecx),%eax
    826 	xorl	%ebx,%ebx
    827 	movl	28(%ecx),%edx
    828 	xorl	%esi,%eax
    829 	xorl	%ecx,%ecx
    830 	xorl	%esi,%edx
    831 	andl	$0xfcfcfcfc,%eax
    832 	andl	$0xcfcfcfcf,%edx
    833 	movb	%al,%bl
    834 	movb	%ah,%cl
    835 	rorl	$4,%edx
    836 	xorl	(%ebp,%ebx,1),%edi
    837 	movb	%dl,%bl
    838 	xorl	0x200(%ebp,%ecx,1),%edi
    839 	movb	%dh,%cl
    840 	shrl	$16,%eax
    841 	xorl	0x100(%ebp,%ebx,1),%edi
    842 	movb	%ah,%bl
    843 	shrl	$16,%edx
    844 	xorl	0x300(%ebp,%ecx,1),%edi
    845 	movb	%dh,%cl
    846 	andl	$0xff,%eax
    847 	andl	$0xff,%edx
    848 	xorl	0x600(%ebp,%ebx,1),%edi
    849 	xorl	0x700(%ebp,%ecx,1),%edi
    850 	movl	(%esp),%ecx
    851 	xorl	0x400(%ebp,%eax,1),%edi
    852 	xorl	0x500(%ebp,%edx,1),%edi
    853 	# Round 2
    854 	movl	16(%ecx),%eax
    855 	xorl	%ebx,%ebx
    856 	movl	20(%ecx),%edx
    857 	xorl	%edi,%eax
    858 	xorl	%ecx,%ecx
    859 	xorl	%edi,%edx
    860 	andl	$0xfcfcfcfc,%eax
    861 	andl	$0xcfcfcfcf,%edx
    862 	movb	%al,%bl
    863 	movb	%ah,%cl
    864 	rorl	$4,%edx
    865 	xorl	(%ebp,%ebx,1),%esi
    866 	movb	%dl,%bl
    867 	xorl	0x200(%ebp,%ecx,1),%esi
    868 	movb	%dh,%cl
    869 	shrl	$16,%eax
    870 	xorl	0x100(%ebp,%ebx,1),%esi
    871 	movb	%ah,%bl
    872 	shrl	$16,%edx
    873 	xorl	0x300(%ebp,%ecx,1),%esi
    874 	movb	%dh,%cl
    875 	andl	$0xff,%eax
    876 	andl	$0xff,%edx
    877 	xorl	0x600(%ebp,%ebx,1),%esi
    878 	xorl	0x700(%ebp,%ecx,1),%esi
    879 	movl	(%esp),%ecx
    880 	xorl	0x400(%ebp,%eax,1),%esi
    881 	xorl	0x500(%ebp,%edx,1),%esi
    882 	# Round 1
    883 	movl	8(%ecx),%eax
    884 	xorl	%ebx,%ebx
    885 	movl	12(%ecx),%edx
    886 	xorl	%esi,%eax
    887 	xorl	%ecx,%ecx
    888 	xorl	%esi,%edx
    889 	andl	$0xfcfcfcfc,%eax
    890 	andl	$0xcfcfcfcf,%edx
    891 	movb	%al,%bl
    892 	movb	%ah,%cl
    893 	rorl	$4,%edx
    894 	xorl	(%ebp,%ebx,1),%edi
    895 	movb	%dl,%bl
    896 	xorl	0x200(%ebp,%ecx,1),%edi
    897 	movb	%dh,%cl
    898 	shrl	$16,%eax
    899 	xorl	0x100(%ebp,%ebx,1),%edi
    900 	movb	%ah,%bl
    901 	shrl	$16,%edx
    902 	xorl	0x300(%ebp,%ecx,1),%edi
    903 	movb	%dh,%cl
    904 	andl	$0xff,%eax
    905 	andl	$0xff,%edx
    906 	xorl	0x600(%ebp,%ebx,1),%edi
    907 	xorl	0x700(%ebp,%ecx,1),%edi
    908 	movl	(%esp),%ecx
    909 	xorl	0x400(%ebp,%eax,1),%edi
    910 	xorl	0x500(%ebp,%edx,1),%edi
    911 	# Round 0
    912 	movl	(%ecx),%eax
    913 	xorl	%ebx,%ebx
    914 	movl	4(%ecx),%edx
    915 	xorl	%edi,%eax
    916 	xorl	%ecx,%ecx
    917 	xorl	%edi,%edx
    918 	andl	$0xfcfcfcfc,%eax
    919 	andl	$0xcfcfcfcf,%edx
    920 	movb	%al,%bl
    921 	movb	%ah,%cl
    922 	rorl	$4,%edx
    923 	xorl	(%ebp,%ebx,1),%esi
    924 	movb	%dl,%bl
    925 	xorl	0x200(%ebp,%ecx,1),%esi
    926 	movb	%dh,%cl
    927 	shrl	$16,%eax
    928 	xorl	0x100(%ebp,%ebx,1),%esi
    929 	movb	%ah,%bl
    930 	shrl	$16,%edx
    931 	xorl	0x300(%ebp,%ecx,1),%esi
    932 	movb	%dh,%cl
    933 	andl	$0xff,%eax
    934 	andl	$0xff,%edx
    935 	xorl	0x600(%ebp,%ebx,1),%esi
    936 	xorl	0x700(%ebp,%ecx,1),%esi
    937 	movl	(%esp),%ecx
    938 	xorl	0x400(%ebp,%eax,1),%esi
    939 	xorl	0x500(%ebp,%edx,1),%esi
    940 	addl	$4,%esp
    941 	ret
    942 .globl	_DES_encrypt1
    943 .align	4
    944 _DES_encrypt1:
    945 L_DES_encrypt1_begin:
    946 	pushl	%esi
    947 	pushl	%edi
    948 
    949 	# Load the 2 words
    950 	movl	12(%esp),%esi
    951 	xorl	%ecx,%ecx
    952 	pushl	%ebx
    953 	pushl	%ebp
    954 	movl	(%esi),%eax
    955 	movl	28(%esp),%ebx
    956 	movl	4(%esi),%edi
    957 
    958 	# IP
    959 	roll	$4,%eax
    960 	movl	%eax,%esi
    961 	xorl	%edi,%eax
    962 	andl	$0xf0f0f0f0,%eax
    963 	xorl	%eax,%esi
    964 	xorl	%eax,%edi
    965 
    966 	roll	$20,%edi
    967 	movl	%edi,%eax
    968 	xorl	%esi,%edi
    969 	andl	$0xfff0000f,%edi
    970 	xorl	%edi,%eax
    971 	xorl	%edi,%esi
    972 
    973 	roll	$14,%eax
    974 	movl	%eax,%edi
    975 	xorl	%esi,%eax
    976 	andl	$0x33333333,%eax
    977 	xorl	%eax,%edi
    978 	xorl	%eax,%esi
    979 
    980 	roll	$22,%esi
    981 	movl	%esi,%eax
    982 	xorl	%edi,%esi
    983 	andl	$0x03fc03fc,%esi
    984 	xorl	%esi,%eax
    985 	xorl	%esi,%edi
    986 
    987 	roll	$9,%eax
    988 	movl	%eax,%esi
    989 	xorl	%edi,%eax
    990 	andl	$0xaaaaaaaa,%eax
    991 	xorl	%eax,%esi
    992 	xorl	%eax,%edi
    993 
    994 	roll	$1,%edi
    995 	call	L000pic_point
    996 L000pic_point:
    997 	popl	%ebp
    998 	leal	_DES_SPtrans-L000pic_point(%ebp),%ebp
    999 	movl	24(%esp),%ecx
   1000 	cmpl	$0,%ebx
   1001 	je	L001decrypt
   1002 	call	__x86_DES_encrypt
   1003 	jmp	L002done
   1004 L001decrypt:
   1005 	call	__x86_DES_decrypt
   1006 L002done:
   1007 
   1008 	# FP
   1009 	movl	20(%esp),%edx
   1010 	rorl	$1,%esi
   1011 	movl	%edi,%eax
   1012 	xorl	%esi,%edi
   1013 	andl	$0xaaaaaaaa,%edi
   1014 	xorl	%edi,%eax
   1015 	xorl	%edi,%esi
   1016 
   1017 	roll	$23,%eax
   1018 	movl	%eax,%edi
   1019 	xorl	%esi,%eax
   1020 	andl	$0x03fc03fc,%eax
   1021 	xorl	%eax,%edi
   1022 	xorl	%eax,%esi
   1023 
   1024 	roll	$10,%edi
   1025 	movl	%edi,%eax
   1026 	xorl	%esi,%edi
   1027 	andl	$0x33333333,%edi
   1028 	xorl	%edi,%eax
   1029 	xorl	%edi,%esi
   1030 
   1031 	roll	$18,%esi
   1032 	movl	%esi,%edi
   1033 	xorl	%eax,%esi
   1034 	andl	$0xfff0000f,%esi
   1035 	xorl	%esi,%edi
   1036 	xorl	%esi,%eax
   1037 
   1038 	roll	$12,%edi
   1039 	movl	%edi,%esi
   1040 	xorl	%eax,%edi
   1041 	andl	$0xf0f0f0f0,%edi
   1042 	xorl	%edi,%esi
   1043 	xorl	%edi,%eax
   1044 
   1045 	rorl	$4,%eax
   1046 	movl	%eax,(%edx)
   1047 	movl	%esi,4(%edx)
   1048 	popl	%ebp
   1049 	popl	%ebx
   1050 	popl	%edi
   1051 	popl	%esi
   1052 	ret
   1053 .globl	_DES_encrypt2
   1054 .align	4
   1055 _DES_encrypt2:
   1056 L_DES_encrypt2_begin:
   1057 	pushl	%esi
   1058 	pushl	%edi
   1059 
   1060 	# Load the 2 words
   1061 	movl	12(%esp),%eax
   1062 	xorl	%ecx,%ecx
   1063 	pushl	%ebx
   1064 	pushl	%ebp
   1065 	movl	(%eax),%esi
   1066 	movl	28(%esp),%ebx
   1067 	roll	$3,%esi
   1068 	movl	4(%eax),%edi
   1069 	roll	$3,%edi
   1070 	call	L003pic_point
   1071 L003pic_point:
   1072 	popl	%ebp
   1073 	leal	_DES_SPtrans-L003pic_point(%ebp),%ebp
   1074 	movl	24(%esp),%ecx
   1075 	cmpl	$0,%ebx
   1076 	je	L004decrypt
   1077 	call	__x86_DES_encrypt
   1078 	jmp	L005done
   1079 L004decrypt:
   1080 	call	__x86_DES_decrypt
   1081 L005done:
   1082 
   1083 	# Fixup
   1084 	rorl	$3,%edi
   1085 	movl	20(%esp),%eax
   1086 	rorl	$3,%esi
   1087 	movl	%edi,(%eax)
   1088 	movl	%esi,4(%eax)
   1089 	popl	%ebp
   1090 	popl	%ebx
   1091 	popl	%edi
   1092 	popl	%esi
   1093 	ret
   1094 .globl	_DES_encrypt3
   1095 .align	4
   1096 _DES_encrypt3:
   1097 L_DES_encrypt3_begin:
   1098 	pushl	%ebx
   1099 	movl	8(%esp),%ebx
   1100 	pushl	%ebp
   1101 	pushl	%esi
   1102 	pushl	%edi
   1103 
   1104 	# Load the data words
   1105 	movl	(%ebx),%edi
   1106 	movl	4(%ebx),%esi
   1107 	subl	$12,%esp
   1108 
   1109 	# IP
   1110 	roll	$4,%edi
   1111 	movl	%edi,%edx
   1112 	xorl	%esi,%edi
   1113 	andl	$0xf0f0f0f0,%edi
   1114 	xorl	%edi,%edx
   1115 	xorl	%edi,%esi
   1116 
   1117 	roll	$20,%esi
   1118 	movl	%esi,%edi
   1119 	xorl	%edx,%esi
   1120 	andl	$0xfff0000f,%esi
   1121 	xorl	%esi,%edi
   1122 	xorl	%esi,%edx
   1123 
   1124 	roll	$14,%edi
   1125 	movl	%edi,%esi
   1126 	xorl	%edx,%edi
   1127 	andl	$0x33333333,%edi
   1128 	xorl	%edi,%esi
   1129 	xorl	%edi,%edx
   1130 
   1131 	roll	$22,%edx
   1132 	movl	%edx,%edi
   1133 	xorl	%esi,%edx
   1134 	andl	$0x03fc03fc,%edx
   1135 	xorl	%edx,%edi
   1136 	xorl	%edx,%esi
   1137 
   1138 	roll	$9,%edi
   1139 	movl	%edi,%edx
   1140 	xorl	%esi,%edi
   1141 	andl	$0xaaaaaaaa,%edi
   1142 	xorl	%edi,%edx
   1143 	xorl	%edi,%esi
   1144 
   1145 	rorl	$3,%edx
   1146 	rorl	$2,%esi
   1147 	movl	%esi,4(%ebx)
   1148 	movl	36(%esp),%eax
   1149 	movl	%edx,(%ebx)
   1150 	movl	40(%esp),%edi
   1151 	movl	44(%esp),%esi
   1152 	movl	$1,8(%esp)
   1153 	movl	%eax,4(%esp)
   1154 	movl	%ebx,(%esp)
   1155 	call	L_DES_encrypt2_begin
   1156 	movl	$0,8(%esp)
   1157 	movl	%edi,4(%esp)
   1158 	movl	%ebx,(%esp)
   1159 	call	L_DES_encrypt2_begin
   1160 	movl	$1,8(%esp)
   1161 	movl	%esi,4(%esp)
   1162 	movl	%ebx,(%esp)
   1163 	call	L_DES_encrypt2_begin
   1164 	addl	$12,%esp
   1165 	movl	(%ebx),%edi
   1166 	movl	4(%ebx),%esi
   1167 
   1168 	# FP
   1169 	roll	$2,%esi
   1170 	roll	$3,%edi
   1171 	movl	%edi,%eax
   1172 	xorl	%esi,%edi
   1173 	andl	$0xaaaaaaaa,%edi
   1174 	xorl	%edi,%eax
   1175 	xorl	%edi,%esi
   1176 
   1177 	roll	$23,%eax
   1178 	movl	%eax,%edi
   1179 	xorl	%esi,%eax
   1180 	andl	$0x03fc03fc,%eax
   1181 	xorl	%eax,%edi
   1182 	xorl	%eax,%esi
   1183 
   1184 	roll	$10,%edi
   1185 	movl	%edi,%eax
   1186 	xorl	%esi,%edi
   1187 	andl	$0x33333333,%edi
   1188 	xorl	%edi,%eax
   1189 	xorl	%edi,%esi
   1190 
   1191 	roll	$18,%esi
   1192 	movl	%esi,%edi
   1193 	xorl	%eax,%esi
   1194 	andl	$0xfff0000f,%esi
   1195 	xorl	%esi,%edi
   1196 	xorl	%esi,%eax
   1197 
   1198 	roll	$12,%edi
   1199 	movl	%edi,%esi
   1200 	xorl	%eax,%edi
   1201 	andl	$0xf0f0f0f0,%edi
   1202 	xorl	%edi,%esi
   1203 	xorl	%edi,%eax
   1204 
   1205 	rorl	$4,%eax
   1206 	movl	%eax,(%ebx)
   1207 	movl	%esi,4(%ebx)
   1208 	popl	%edi
   1209 	popl	%esi
   1210 	popl	%ebp
   1211 	popl	%ebx
   1212 	ret
   1213 .globl	_DES_decrypt3
   1214 .align	4
   1215 _DES_decrypt3:
   1216 L_DES_decrypt3_begin:
   1217 	pushl	%ebx
   1218 	movl	8(%esp),%ebx
   1219 	pushl	%ebp
   1220 	pushl	%esi
   1221 	pushl	%edi
   1222 
   1223 	# Load the data words
   1224 	movl	(%ebx),%edi
   1225 	movl	4(%ebx),%esi
   1226 	subl	$12,%esp
   1227 
   1228 	# IP
   1229 	roll	$4,%edi
   1230 	movl	%edi,%edx
   1231 	xorl	%esi,%edi
   1232 	andl	$0xf0f0f0f0,%edi
   1233 	xorl	%edi,%edx
   1234 	xorl	%edi,%esi
   1235 
   1236 	roll	$20,%esi
   1237 	movl	%esi,%edi
   1238 	xorl	%edx,%esi
   1239 	andl	$0xfff0000f,%esi
   1240 	xorl	%esi,%edi
   1241 	xorl	%esi,%edx
   1242 
   1243 	roll	$14,%edi
   1244 	movl	%edi,%esi
   1245 	xorl	%edx,%edi
   1246 	andl	$0x33333333,%edi
   1247 	xorl	%edi,%esi
   1248 	xorl	%edi,%edx
   1249 
   1250 	roll	$22,%edx
   1251 	movl	%edx,%edi
   1252 	xorl	%esi,%edx
   1253 	andl	$0x03fc03fc,%edx
   1254 	xorl	%edx,%edi
   1255 	xorl	%edx,%esi
   1256 
   1257 	roll	$9,%edi
   1258 	movl	%edi,%edx
   1259 	xorl	%esi,%edi
   1260 	andl	$0xaaaaaaaa,%edi
   1261 	xorl	%edi,%edx
   1262 	xorl	%edi,%esi
   1263 
   1264 	rorl	$3,%edx
   1265 	rorl	$2,%esi
   1266 	movl	%esi,4(%ebx)
   1267 	movl	36(%esp),%esi
   1268 	movl	%edx,(%ebx)
   1269 	movl	40(%esp),%edi
   1270 	movl	44(%esp),%eax
   1271 	movl	$0,8(%esp)
   1272 	movl	%eax,4(%esp)
   1273 	movl	%ebx,(%esp)
   1274 	call	L_DES_encrypt2_begin
   1275 	movl	$1,8(%esp)
   1276 	movl	%edi,4(%esp)
   1277 	movl	%ebx,(%esp)
   1278 	call	L_DES_encrypt2_begin
   1279 	movl	$0,8(%esp)
   1280 	movl	%esi,4(%esp)
   1281 	movl	%ebx,(%esp)
   1282 	call	L_DES_encrypt2_begin
   1283 	addl	$12,%esp
   1284 	movl	(%ebx),%edi
   1285 	movl	4(%ebx),%esi
   1286 
   1287 	# FP
   1288 	roll	$2,%esi
   1289 	roll	$3,%edi
   1290 	movl	%edi,%eax
   1291 	xorl	%esi,%edi
   1292 	andl	$0xaaaaaaaa,%edi
   1293 	xorl	%edi,%eax
   1294 	xorl	%edi,%esi
   1295 
   1296 	roll	$23,%eax
   1297 	movl	%eax,%edi
   1298 	xorl	%esi,%eax
   1299 	andl	$0x03fc03fc,%eax
   1300 	xorl	%eax,%edi
   1301 	xorl	%eax,%esi
   1302 
   1303 	roll	$10,%edi
   1304 	movl	%edi,%eax
   1305 	xorl	%esi,%edi
   1306 	andl	$0x33333333,%edi
   1307 	xorl	%edi,%eax
   1308 	xorl	%edi,%esi
   1309 
   1310 	roll	$18,%esi
   1311 	movl	%esi,%edi
   1312 	xorl	%eax,%esi
   1313 	andl	$0xfff0000f,%esi
   1314 	xorl	%esi,%edi
   1315 	xorl	%esi,%eax
   1316 
   1317 	roll	$12,%edi
   1318 	movl	%edi,%esi
   1319 	xorl	%eax,%edi
   1320 	andl	$0xf0f0f0f0,%edi
   1321 	xorl	%edi,%esi
   1322 	xorl	%edi,%eax
   1323 
   1324 	rorl	$4,%eax
   1325 	movl	%eax,(%ebx)
   1326 	movl	%esi,4(%ebx)
   1327 	popl	%edi
   1328 	popl	%esi
   1329 	popl	%ebp
   1330 	popl	%ebx
   1331 	ret
   1332 .globl	_DES_ncbc_encrypt
   1333 .align	4
   1334 _DES_ncbc_encrypt:
   1335 L_DES_ncbc_encrypt_begin:
   1336 
   1337 	pushl	%ebp
   1338 	pushl	%ebx
   1339 	pushl	%esi
   1340 	pushl	%edi
   1341 	movl	28(%esp),%ebp
   1342 	# getting iv ptr from parameter 4
   1343 	movl	36(%esp),%ebx
   1344 	movl	(%ebx),%esi
   1345 	movl	4(%ebx),%edi
   1346 	pushl	%edi
   1347 	pushl	%esi
   1348 	pushl	%edi
   1349 	pushl	%esi
   1350 	movl	%esp,%ebx
   1351 	movl	36(%esp),%esi
   1352 	movl	40(%esp),%edi
   1353 	# getting encrypt flag from parameter 5
   1354 	movl	56(%esp),%ecx
   1355 	# get and push parameter 5
   1356 	pushl	%ecx
   1357 	# get and push parameter 3
   1358 	movl	52(%esp),%eax
   1359 	pushl	%eax
   1360 	pushl	%ebx
   1361 	cmpl	$0,%ecx
   1362 	jz	L006decrypt
   1363 	andl	$4294967288,%ebp
   1364 	movl	12(%esp),%eax
   1365 	movl	16(%esp),%ebx
   1366 	jz	L007encrypt_finish
   1367 L008encrypt_loop:
   1368 	movl	(%esi),%ecx
   1369 	movl	4(%esi),%edx
   1370 	xorl	%ecx,%eax
   1371 	xorl	%edx,%ebx
   1372 	movl	%eax,12(%esp)
   1373 	movl	%ebx,16(%esp)
   1374 	call	L_DES_encrypt1_begin
   1375 	movl	12(%esp),%eax
   1376 	movl	16(%esp),%ebx
   1377 	movl	%eax,(%edi)
   1378 	movl	%ebx,4(%edi)
   1379 	addl	$8,%esi
   1380 	addl	$8,%edi
   1381 	subl	$8,%ebp
   1382 	jnz	L008encrypt_loop
   1383 L007encrypt_finish:
   1384 	movl	56(%esp),%ebp
   1385 	andl	$7,%ebp
   1386 	jz	L009finish
   1387 	call	L010PIC_point
   1388 L010PIC_point:
   1389 	popl	%edx
   1390 	leal	L011cbc_enc_jmp_table-L010PIC_point(%edx),%ecx
   1391 	movl	(%ecx,%ebp,4),%ebp
   1392 	addl	%edx,%ebp
   1393 	xorl	%ecx,%ecx
   1394 	xorl	%edx,%edx
   1395 	jmp	*%ebp
   1396 L012ej7:
   1397 	movb	6(%esi),%dh
   1398 	shll	$8,%edx
   1399 L013ej6:
   1400 	movb	5(%esi),%dh
   1401 L014ej5:
   1402 	movb	4(%esi),%dl
   1403 L015ej4:
   1404 	movl	(%esi),%ecx
   1405 	jmp	L016ejend
   1406 L017ej3:
   1407 	movb	2(%esi),%ch
   1408 	shll	$8,%ecx
   1409 L018ej2:
   1410 	movb	1(%esi),%ch
   1411 L019ej1:
   1412 	movb	(%esi),%cl
   1413 L016ejend:
   1414 	xorl	%ecx,%eax
   1415 	xorl	%edx,%ebx
   1416 	movl	%eax,12(%esp)
   1417 	movl	%ebx,16(%esp)
   1418 	call	L_DES_encrypt1_begin
   1419 	movl	12(%esp),%eax
   1420 	movl	16(%esp),%ebx
   1421 	movl	%eax,(%edi)
   1422 	movl	%ebx,4(%edi)
   1423 	jmp	L009finish
   1424 L006decrypt:
   1425 	andl	$4294967288,%ebp
   1426 	movl	20(%esp),%eax
   1427 	movl	24(%esp),%ebx
   1428 	jz	L020decrypt_finish
   1429 L021decrypt_loop:
   1430 	movl	(%esi),%eax
   1431 	movl	4(%esi),%ebx
   1432 	movl	%eax,12(%esp)
   1433 	movl	%ebx,16(%esp)
   1434 	call	L_DES_encrypt1_begin
   1435 	movl	12(%esp),%eax
   1436 	movl	16(%esp),%ebx
   1437 	movl	20(%esp),%ecx
   1438 	movl	24(%esp),%edx
   1439 	xorl	%eax,%ecx
   1440 	xorl	%ebx,%edx
   1441 	movl	(%esi),%eax
   1442 	movl	4(%esi),%ebx
   1443 	movl	%ecx,(%edi)
   1444 	movl	%edx,4(%edi)
   1445 	movl	%eax,20(%esp)
   1446 	movl	%ebx,24(%esp)
   1447 	addl	$8,%esi
   1448 	addl	$8,%edi
   1449 	subl	$8,%ebp
   1450 	jnz	L021decrypt_loop
   1451 L020decrypt_finish:
   1452 	movl	56(%esp),%ebp
   1453 	andl	$7,%ebp
   1454 	jz	L009finish
   1455 	movl	(%esi),%eax
   1456 	movl	4(%esi),%ebx
   1457 	movl	%eax,12(%esp)
   1458 	movl	%ebx,16(%esp)
   1459 	call	L_DES_encrypt1_begin
   1460 	movl	12(%esp),%eax
   1461 	movl	16(%esp),%ebx
   1462 	movl	20(%esp),%ecx
   1463 	movl	24(%esp),%edx
   1464 	xorl	%eax,%ecx
   1465 	xorl	%ebx,%edx
   1466 	movl	(%esi),%eax
   1467 	movl	4(%esi),%ebx
   1468 L022dj7:
   1469 	rorl	$16,%edx
   1470 	movb	%dl,6(%edi)
   1471 	shrl	$16,%edx
   1472 L023dj6:
   1473 	movb	%dh,5(%edi)
   1474 L024dj5:
   1475 	movb	%dl,4(%edi)
   1476 L025dj4:
   1477 	movl	%ecx,(%edi)
   1478 	jmp	L026djend
   1479 L027dj3:
   1480 	rorl	$16,%ecx
   1481 	movb	%cl,2(%edi)
   1482 	shll	$16,%ecx
   1483 L028dj2:
   1484 	movb	%ch,1(%esi)
   1485 L029dj1:
   1486 	movb	%cl,(%esi)
   1487 L026djend:
   1488 	jmp	L009finish
   1489 L009finish:
   1490 	movl	64(%esp),%ecx
   1491 	addl	$28,%esp
   1492 	movl	%eax,(%ecx)
   1493 	movl	%ebx,4(%ecx)
   1494 	popl	%edi
   1495 	popl	%esi
   1496 	popl	%ebx
   1497 	popl	%ebp
   1498 	ret
   1499 .align	6,0x90
   1500 L011cbc_enc_jmp_table:
   1501 .long	0
   1502 .long	L019ej1-L010PIC_point
   1503 .long	L018ej2-L010PIC_point
   1504 .long	L017ej3-L010PIC_point
   1505 .long	L015ej4-L010PIC_point
   1506 .long	L014ej5-L010PIC_point
   1507 .long	L013ej6-L010PIC_point
   1508 .long	L012ej7-L010PIC_point
   1509 .align	6,0x90
   1510 .globl	_DES_ede3_cbc_encrypt
   1511 .align	4
   1512 _DES_ede3_cbc_encrypt:
   1513 L_DES_ede3_cbc_encrypt_begin:
   1514 
   1515 	pushl	%ebp
   1516 	pushl	%ebx
   1517 	pushl	%esi
   1518 	pushl	%edi
   1519 	movl	28(%esp),%ebp
   1520 	# getting iv ptr from parameter 6
   1521 	movl	44(%esp),%ebx
   1522 	movl	(%ebx),%esi
   1523 	movl	4(%ebx),%edi
   1524 	pushl	%edi
   1525 	pushl	%esi
   1526 	pushl	%edi
   1527 	pushl	%esi
   1528 	movl	%esp,%ebx
   1529 	movl	36(%esp),%esi
   1530 	movl	40(%esp),%edi
   1531 	# getting encrypt flag from parameter 7
   1532 	movl	64(%esp),%ecx
   1533 	# get and push parameter 5
   1534 	movl	56(%esp),%eax
   1535 	pushl	%eax
   1536 	# get and push parameter 4
   1537 	movl	56(%esp),%eax
   1538 	pushl	%eax
   1539 	# get and push parameter 3
   1540 	movl	56(%esp),%eax
   1541 	pushl	%eax
   1542 	pushl	%ebx
   1543 	cmpl	$0,%ecx
   1544 	jz	L030decrypt
   1545 	andl	$4294967288,%ebp
   1546 	movl	16(%esp),%eax
   1547 	movl	20(%esp),%ebx
   1548 	jz	L031encrypt_finish
   1549 L032encrypt_loop:
   1550 	movl	(%esi),%ecx
   1551 	movl	4(%esi),%edx
   1552 	xorl	%ecx,%eax
   1553 	xorl	%edx,%ebx
   1554 	movl	%eax,16(%esp)
   1555 	movl	%ebx,20(%esp)
   1556 	call	L_DES_encrypt3_begin
   1557 	movl	16(%esp),%eax
   1558 	movl	20(%esp),%ebx
   1559 	movl	%eax,(%edi)
   1560 	movl	%ebx,4(%edi)
   1561 	addl	$8,%esi
   1562 	addl	$8,%edi
   1563 	subl	$8,%ebp
   1564 	jnz	L032encrypt_loop
   1565 L031encrypt_finish:
   1566 	movl	60(%esp),%ebp
   1567 	andl	$7,%ebp
   1568 	jz	L033finish
   1569 	call	L034PIC_point
   1570 L034PIC_point:
   1571 	popl	%edx
   1572 	leal	L035cbc_enc_jmp_table-L034PIC_point(%edx),%ecx
   1573 	movl	(%ecx,%ebp,4),%ebp
   1574 	addl	%edx,%ebp
   1575 	xorl	%ecx,%ecx
   1576 	xorl	%edx,%edx
   1577 	jmp	*%ebp
   1578 L036ej7:
   1579 	movb	6(%esi),%dh
   1580 	shll	$8,%edx
   1581 L037ej6:
   1582 	movb	5(%esi),%dh
   1583 L038ej5:
   1584 	movb	4(%esi),%dl
   1585 L039ej4:
   1586 	movl	(%esi),%ecx
   1587 	jmp	L040ejend
   1588 L041ej3:
   1589 	movb	2(%esi),%ch
   1590 	shll	$8,%ecx
   1591 L042ej2:
   1592 	movb	1(%esi),%ch
   1593 L043ej1:
   1594 	movb	(%esi),%cl
   1595 L040ejend:
   1596 	xorl	%ecx,%eax
   1597 	xorl	%edx,%ebx
   1598 	movl	%eax,16(%esp)
   1599 	movl	%ebx,20(%esp)
   1600 	call	L_DES_encrypt3_begin
   1601 	movl	16(%esp),%eax
   1602 	movl	20(%esp),%ebx
   1603 	movl	%eax,(%edi)
   1604 	movl	%ebx,4(%edi)
   1605 	jmp	L033finish
   1606 L030decrypt:
   1607 	andl	$4294967288,%ebp
   1608 	movl	24(%esp),%eax
   1609 	movl	28(%esp),%ebx
   1610 	jz	L044decrypt_finish
   1611 L045decrypt_loop:
   1612 	movl	(%esi),%eax
   1613 	movl	4(%esi),%ebx
   1614 	movl	%eax,16(%esp)
   1615 	movl	%ebx,20(%esp)
   1616 	call	L_DES_decrypt3_begin
   1617 	movl	16(%esp),%eax
   1618 	movl	20(%esp),%ebx
   1619 	movl	24(%esp),%ecx
   1620 	movl	28(%esp),%edx
   1621 	xorl	%eax,%ecx
   1622 	xorl	%ebx,%edx
   1623 	movl	(%esi),%eax
   1624 	movl	4(%esi),%ebx
   1625 	movl	%ecx,(%edi)
   1626 	movl	%edx,4(%edi)
   1627 	movl	%eax,24(%esp)
   1628 	movl	%ebx,28(%esp)
   1629 	addl	$8,%esi
   1630 	addl	$8,%edi
   1631 	subl	$8,%ebp
   1632 	jnz	L045decrypt_loop
   1633 L044decrypt_finish:
   1634 	movl	60(%esp),%ebp
   1635 	andl	$7,%ebp
   1636 	jz	L033finish
   1637 	movl	(%esi),%eax
   1638 	movl	4(%esi),%ebx
   1639 	movl	%eax,16(%esp)
   1640 	movl	%ebx,20(%esp)
   1641 	call	L_DES_decrypt3_begin
   1642 	movl	16(%esp),%eax
   1643 	movl	20(%esp),%ebx
   1644 	movl	24(%esp),%ecx
   1645 	movl	28(%esp),%edx
   1646 	xorl	%eax,%ecx
   1647 	xorl	%ebx,%edx
   1648 	movl	(%esi),%eax
   1649 	movl	4(%esi),%ebx
   1650 L046dj7:
   1651 	rorl	$16,%edx
   1652 	movb	%dl,6(%edi)
   1653 	shrl	$16,%edx
   1654 L047dj6:
   1655 	movb	%dh,5(%edi)
   1656 L048dj5:
   1657 	movb	%dl,4(%edi)
   1658 L049dj4:
   1659 	movl	%ecx,(%edi)
   1660 	jmp	L050djend
   1661 L051dj3:
   1662 	rorl	$16,%ecx
   1663 	movb	%cl,2(%edi)
   1664 	shll	$16,%ecx
   1665 L052dj2:
   1666 	movb	%ch,1(%esi)
   1667 L053dj1:
   1668 	movb	%cl,(%esi)
   1669 L050djend:
   1670 	jmp	L033finish
   1671 L033finish:
   1672 	movl	76(%esp),%ecx
   1673 	addl	$32,%esp
   1674 	movl	%eax,(%ecx)
   1675 	movl	%ebx,4(%ecx)
   1676 	popl	%edi
   1677 	popl	%esi
   1678 	popl	%ebx
   1679 	popl	%ebp
   1680 	ret
   1681 .align	6,0x90
   1682 L035cbc_enc_jmp_table:
   1683 .long	0
   1684 .long	L043ej1-L034PIC_point
   1685 .long	L042ej2-L034PIC_point
   1686 .long	L041ej3-L034PIC_point
   1687 .long	L039ej4-L034PIC_point
   1688 .long	L038ej5-L034PIC_point
   1689 .long	L037ej6-L034PIC_point
   1690 .long	L036ej7-L034PIC_point
   1691 .align	6,0x90
   1692 .align	6,0x90
   1693 _DES_SPtrans:
   1694 .long	34080768,524288,33554434,34080770
   1695 .long	33554432,526338,524290,33554434
   1696 .long	526338,34080768,34078720,2050
   1697 .long	33556482,33554432,0,524290
   1698 .long	524288,2,33556480,526336
   1699 .long	34080770,34078720,2050,33556480
   1700 .long	2,2048,526336,34078722
   1701 .long	2048,33556482,34078722,0
   1702 .long	0,34080770,33556480,524290
   1703 .long	34080768,524288,2050,33556480
   1704 .long	34078722,2048,526336,33554434
   1705 .long	526338,2,33554434,34078720
   1706 .long	34080770,526336,34078720,33556482
   1707 .long	33554432,2050,524290,0
   1708 .long	524288,33554432,33556482,34080768
   1709 .long	2,34078722,2048,526338
   1710 .long	1074823184,0,1081344,1074790400
   1711 .long	1073741840,32784,1073774592,1081344
   1712 .long	32768,1074790416,16,1073774592
   1713 .long	1048592,1074823168,1074790400,16
   1714 .long	1048576,1073774608,1074790416,32768
   1715 .long	1081360,1073741824,0,1048592
   1716 .long	1073774608,1081360,1074823168,1073741840
   1717 .long	1073741824,1048576,32784,1074823184
   1718 .long	1048592,1074823168,1073774592,1081360
   1719 .long	1074823184,1048592,1073741840,0
   1720 .long	1073741824,32784,1048576,1074790416
   1721 .long	32768,1073741824,1081360,1073774608
   1722 .long	1074823168,32768,0,1073741840
   1723 .long	16,1074823184,1081344,1074790400
   1724 .long	1074790416,1048576,32784,1073774592
   1725 .long	1073774608,16,1074790400,1081344
   1726 .long	67108865,67371264,256,67109121
   1727 .long	262145,67108864,67109121,262400
   1728 .long	67109120,262144,67371008,1
   1729 .long	67371265,257,1,67371009
   1730 .long	0,262145,67371264,256
   1731 .long	257,67371265,262144,67108865
   1732 .long	67371009,67109120,262401,67371008
   1733 .long	262400,0,67108864,262401
   1734 .long	67371264,256,1,262144
   1735 .long	257,262145,67371008,67109121
   1736 .long	0,67371264,262400,67371009
   1737 .long	262145,67108864,67371265,1
   1738 .long	262401,67108865,67108864,67371265
   1739 .long	262144,67109120,67109121,262400
   1740 .long	67109120,0,67371009,257
   1741 .long	67108865,262401,256,67371008
   1742 .long	4198408,268439552,8,272633864
   1743 .long	0,272629760,268439560,4194312
   1744 .long	272633856,268435464,268435456,4104
   1745 .long	268435464,4198408,4194304,268435456
   1746 .long	272629768,4198400,4096,8
   1747 .long	4198400,268439560,272629760,4096
   1748 .long	4104,0,4194312,272633856
   1749 .long	268439552,272629768,272633864,4194304
   1750 .long	272629768,4104,4194304,268435464
   1751 .long	4198400,268439552,8,272629760
   1752 .long	268439560,0,4096,4194312
   1753 .long	0,272629768,272633856,4096
   1754 .long	268435456,272633864,4198408,4194304
   1755 .long	272633864,8,268439552,4198408
   1756 .long	4194312,4198400,272629760,268439560
   1757 .long	4104,268435456,268435464,272633856
   1758 .long	134217728,65536,1024,134284320
   1759 .long	134283296,134218752,66592,134283264
   1760 .long	65536,32,134217760,66560
   1761 .long	134218784,134283296,134284288,0
   1762 .long	66560,134217728,65568,1056
   1763 .long	134218752,66592,0,134217760
   1764 .long	32,134218784,134284320,65568
   1765 .long	134283264,1024,1056,134284288
   1766 .long	134284288,134218784,65568,134283264
   1767 .long	65536,32,134217760,134218752
   1768 .long	134217728,66560,134284320,0
   1769 .long	66592,134217728,1024,65568
   1770 .long	134218784,1024,0,134284320
   1771 .long	134283296,134284288,1056,65536
   1772 .long	66560,134283296,134218752,1056
   1773 .long	32,66592,134283264,134217760
   1774 .long	2147483712,2097216,0,2149588992
   1775 .long	2097216,8192,2147491904,2097152
   1776 .long	8256,2149589056,2105344,2147483648
   1777 .long	2147491840,2147483712,2149580800,2105408
   1778 .long	2097152,2147491904,2149580864,0
   1779 .long	8192,64,2149588992,2149580864
   1780 .long	2149589056,2149580800,2147483648,8256
   1781 .long	64,2105344,2105408,2147491840
   1782 .long	8256,2147483648,2147491840,2105408
   1783 .long	2149588992,2097216,0,2147491840
   1784 .long	2147483648,8192,2149580864,2097152
   1785 .long	2097216,2149589056,2105344,64
   1786 .long	2149589056,2105344,2097152,2147491904
   1787 .long	2147483712,2149580800,2105408,0
   1788 .long	8192,2147483712,2147491904,2149588992
   1789 .long	2149580800,8256,64,2149580864
   1790 .long	16384,512,16777728,16777220
   1791 .long	16794116,16388,16896,0
   1792 .long	16777216,16777732,516,16793600
   1793 .long	4,16794112,16793600,516
   1794 .long	16777732,16384,16388,16794116
   1795 .long	0,16777728,16777220,16896
   1796 .long	16793604,16900,16794112,4
   1797 .long	16900,16793604,512,16777216
   1798 .long	16900,16793600,16793604,516
   1799 .long	16384,512,16777216,16793604
   1800 .long	16777732,16900,16896,0
   1801 .long	512,16777220,4,16777728
   1802 .long	0,16777732,16777728,16896
   1803 .long	516,16384,16794116,16777216
   1804 .long	16794112,4,16388,16794116
   1805 .long	16777220,16794112,16793600,16388
   1806 .long	545259648,545390592,131200,0
   1807 .long	537001984,8388736,545259520,545390720
   1808 .long	128,536870912,8519680,131200
   1809 .long	8519808,537002112,536871040,545259520
   1810 .long	131072,8519808,8388736,537001984
   1811 .long	545390720,536871040,0,8519680
   1812 .long	536870912,8388608,537002112,545259648
   1813 .long	8388608,131072,545390592,128
   1814 .long	8388608,131072,536871040,545390720
   1815 .long	131200,536870912,0,8519680
   1816 .long	545259648,537002112,537001984,8388736
   1817 .long	545390592,128,8388736,537001984
   1818 .long	545390720,8388608,545259520,536871040
   1819 .long	8519680,131200,537002112,545259520
   1820 .long	128,545390592,8519808,0
   1821 .long	536870912,545259648,131072,8519808
   1822