des-586.S revision 299966
1# $FreeBSD: stable/10/secure/lib/libcrypto/i386/des-586.S 299966 2016-05-16 19:30:27Z jkim $ 2# Do not modify. This file is auto-generated from des-586.pl. 3#ifdef PIC 4.file "des-586.S" 5.text 6.globl DES_SPtrans 7.type _x86_DES_encrypt,@function 8.align 16 9_x86_DES_encrypt: 10 pushl %ecx 11 12 movl (%ecx),%eax 13 xorl %ebx,%ebx 14 movl 4(%ecx),%edx 15 xorl %esi,%eax 16 xorl %ecx,%ecx 17 xorl %esi,%edx 18 andl $0xfcfcfcfc,%eax 19 andl $0xcfcfcfcf,%edx 20 movb %al,%bl 21 movb %ah,%cl 22 rorl $4,%edx 23 xorl (%ebp,%ebx,1),%edi 24 movb %dl,%bl 25 xorl 0x200(%ebp,%ecx,1),%edi 26 movb %dh,%cl 27 shrl $16,%eax 28 xorl 0x100(%ebp,%ebx,1),%edi 29 movb %ah,%bl 30 shrl $16,%edx 31 xorl 0x300(%ebp,%ecx,1),%edi 32 movb %dh,%cl 33 andl $0xff,%eax 34 andl $0xff,%edx 35 xorl 0x600(%ebp,%ebx,1),%edi 36 xorl 0x700(%ebp,%ecx,1),%edi 37 movl (%esp),%ecx 38 xorl 0x400(%ebp,%eax,1),%edi 39 xorl 0x500(%ebp,%edx,1),%edi 40 41 movl 8(%ecx),%eax 42 xorl %ebx,%ebx 43 movl 12(%ecx),%edx 44 xorl %edi,%eax 45 xorl %ecx,%ecx 46 xorl %edi,%edx 47 andl $0xfcfcfcfc,%eax 48 andl $0xcfcfcfcf,%edx 49 movb %al,%bl 50 movb %ah,%cl 51 rorl $4,%edx 52 xorl (%ebp,%ebx,1),%esi 53 movb %dl,%bl 54 xorl 0x200(%ebp,%ecx,1),%esi 55 movb %dh,%cl 56 shrl $16,%eax 57 xorl 0x100(%ebp,%ebx,1),%esi 58 movb %ah,%bl 59 shrl $16,%edx 60 xorl 0x300(%ebp,%ecx,1),%esi 61 movb %dh,%cl 62 andl $0xff,%eax 63 andl $0xff,%edx 64 xorl 0x600(%ebp,%ebx,1),%esi 65 xorl 0x700(%ebp,%ecx,1),%esi 66 movl (%esp),%ecx 67 xorl 0x400(%ebp,%eax,1),%esi 68 xorl 0x500(%ebp,%edx,1),%esi 69 70 movl 16(%ecx),%eax 71 xorl %ebx,%ebx 72 movl 20(%ecx),%edx 73 xorl %esi,%eax 74 xorl %ecx,%ecx 75 xorl %esi,%edx 76 andl $0xfcfcfcfc,%eax 77 andl $0xcfcfcfcf,%edx 78 movb %al,%bl 79 movb %ah,%cl 80 rorl $4,%edx 81 xorl (%ebp,%ebx,1),%edi 82 movb %dl,%bl 83 xorl 0x200(%ebp,%ecx,1),%edi 84 movb %dh,%cl 85 shrl $16,%eax 86 xorl 0x100(%ebp,%ebx,1),%edi 87 movb %ah,%bl 88 shrl $16,%edx 89 xorl 0x300(%ebp,%ecx,1),%edi 90 movb %dh,%cl 91 andl $0xff,%eax 92 andl $0xff,%edx 93 xorl 0x600(%ebp,%ebx,1),%edi 94 xorl 0x700(%ebp,%ecx,1),%edi 95 movl (%esp),%ecx 96 xorl 0x400(%ebp,%eax,1),%edi 97 xorl 0x500(%ebp,%edx,1),%edi 98 99 movl 24(%ecx),%eax 100 xorl %ebx,%ebx 101 movl 28(%ecx),%edx 102 xorl %edi,%eax 103 xorl %ecx,%ecx 104 xorl %edi,%edx 105 andl $0xfcfcfcfc,%eax 106 andl $0xcfcfcfcf,%edx 107 movb %al,%bl 108 movb %ah,%cl 109 rorl $4,%edx 110 xorl (%ebp,%ebx,1),%esi 111 movb %dl,%bl 112 xorl 0x200(%ebp,%ecx,1),%esi 113 movb %dh,%cl 114 shrl $16,%eax 115 xorl 0x100(%ebp,%ebx,1),%esi 116 movb %ah,%bl 117 shrl $16,%edx 118 xorl 0x300(%ebp,%ecx,1),%esi 119 movb %dh,%cl 120 andl $0xff,%eax 121 andl $0xff,%edx 122 xorl 0x600(%ebp,%ebx,1),%esi 123 xorl 0x700(%ebp,%ecx,1),%esi 124 movl (%esp),%ecx 125 xorl 0x400(%ebp,%eax,1),%esi 126 xorl 0x500(%ebp,%edx,1),%esi 127 128 movl 32(%ecx),%eax 129 xorl %ebx,%ebx 130 movl 36(%ecx),%edx 131 xorl %esi,%eax 132 xorl %ecx,%ecx 133 xorl %esi,%edx 134 andl $0xfcfcfcfc,%eax 135 andl $0xcfcfcfcf,%edx 136 movb %al,%bl 137 movb %ah,%cl 138 rorl $4,%edx 139 xorl (%ebp,%ebx,1),%edi 140 movb %dl,%bl 141 xorl 0x200(%ebp,%ecx,1),%edi 142 movb %dh,%cl 143 shrl $16,%eax 144 xorl 0x100(%ebp,%ebx,1),%edi 145 movb %ah,%bl 146 shrl $16,%edx 147 xorl 0x300(%ebp,%ecx,1),%edi 148 movb %dh,%cl 149 andl $0xff,%eax 150 andl $0xff,%edx 151 xorl 0x600(%ebp,%ebx,1),%edi 152 xorl 0x700(%ebp,%ecx,1),%edi 153 movl (%esp),%ecx 154 xorl 0x400(%ebp,%eax,1),%edi 155 xorl 0x500(%ebp,%edx,1),%edi 156 157 movl 40(%ecx),%eax 158 xorl %ebx,%ebx 159 movl 44(%ecx),%edx 160 xorl %edi,%eax 161 xorl %ecx,%ecx 162 xorl %edi,%edx 163 andl $0xfcfcfcfc,%eax 164 andl $0xcfcfcfcf,%edx 165 movb %al,%bl 166 movb %ah,%cl 167 rorl $4,%edx 168 xorl (%ebp,%ebx,1),%esi 169 movb %dl,%bl 170 xorl 0x200(%ebp,%ecx,1),%esi 171 movb %dh,%cl 172 shrl $16,%eax 173 xorl 0x100(%ebp,%ebx,1),%esi 174 movb %ah,%bl 175 shrl $16,%edx 176 xorl 0x300(%ebp,%ecx,1),%esi 177 movb %dh,%cl 178 andl $0xff,%eax 179 andl $0xff,%edx 180 xorl 0x600(%ebp,%ebx,1),%esi 181 xorl 0x700(%ebp,%ecx,1),%esi 182 movl (%esp),%ecx 183 xorl 0x400(%ebp,%eax,1),%esi 184 xorl 0x500(%ebp,%edx,1),%esi 185 186 movl 48(%ecx),%eax 187 xorl %ebx,%ebx 188 movl 52(%ecx),%edx 189 xorl %esi,%eax 190 xorl %ecx,%ecx 191 xorl %esi,%edx 192 andl $0xfcfcfcfc,%eax 193 andl $0xcfcfcfcf,%edx 194 movb %al,%bl 195 movb %ah,%cl 196 rorl $4,%edx 197 xorl (%ebp,%ebx,1),%edi 198 movb %dl,%bl 199 xorl 0x200(%ebp,%ecx,1),%edi 200 movb %dh,%cl 201 shrl $16,%eax 202 xorl 0x100(%ebp,%ebx,1),%edi 203 movb %ah,%bl 204 shrl $16,%edx 205 xorl 0x300(%ebp,%ecx,1),%edi 206 movb %dh,%cl 207 andl $0xff,%eax 208 andl $0xff,%edx 209 xorl 0x600(%ebp,%ebx,1),%edi 210 xorl 0x700(%ebp,%ecx,1),%edi 211 movl (%esp),%ecx 212 xorl 0x400(%ebp,%eax,1),%edi 213 xorl 0x500(%ebp,%edx,1),%edi 214 215 movl 56(%ecx),%eax 216 xorl %ebx,%ebx 217 movl 60(%ecx),%edx 218 xorl %edi,%eax 219 xorl %ecx,%ecx 220 xorl %edi,%edx 221 andl $0xfcfcfcfc,%eax 222 andl $0xcfcfcfcf,%edx 223 movb %al,%bl 224 movb %ah,%cl 225 rorl $4,%edx 226 xorl (%ebp,%ebx,1),%esi 227 movb %dl,%bl 228 xorl 0x200(%ebp,%ecx,1),%esi 229 movb %dh,%cl 230 shrl $16,%eax 231 xorl 0x100(%ebp,%ebx,1),%esi 232 movb %ah,%bl 233 shrl $16,%edx 234 xorl 0x300(%ebp,%ecx,1),%esi 235 movb %dh,%cl 236 andl $0xff,%eax 237 andl $0xff,%edx 238 xorl 0x600(%ebp,%ebx,1),%esi 239 xorl 0x700(%ebp,%ecx,1),%esi 240 movl (%esp),%ecx 241 xorl 0x400(%ebp,%eax,1),%esi 242 xorl 0x500(%ebp,%edx,1),%esi 243 244 movl 64(%ecx),%eax 245 xorl %ebx,%ebx 246 movl 68(%ecx),%edx 247 xorl %esi,%eax 248 xorl %ecx,%ecx 249 xorl %esi,%edx 250 andl $0xfcfcfcfc,%eax 251 andl $0xcfcfcfcf,%edx 252 movb %al,%bl 253 movb %ah,%cl 254 rorl $4,%edx 255 xorl (%ebp,%ebx,1),%edi 256 movb %dl,%bl 257 xorl 0x200(%ebp,%ecx,1),%edi 258 movb %dh,%cl 259 shrl $16,%eax 260 xorl 0x100(%ebp,%ebx,1),%edi 261 movb %ah,%bl 262 shrl $16,%edx 263 xorl 0x300(%ebp,%ecx,1),%edi 264 movb %dh,%cl 265 andl $0xff,%eax 266 andl $0xff,%edx 267 xorl 0x600(%ebp,%ebx,1),%edi 268 xorl 0x700(%ebp,%ecx,1),%edi 269 movl (%esp),%ecx 270 xorl 0x400(%ebp,%eax,1),%edi 271 xorl 0x500(%ebp,%edx,1),%edi 272 273 movl 72(%ecx),%eax 274 xorl %ebx,%ebx 275 movl 76(%ecx),%edx 276 xorl %edi,%eax 277 xorl %ecx,%ecx 278 xorl %edi,%edx 279 andl $0xfcfcfcfc,%eax 280 andl $0xcfcfcfcf,%edx 281 movb %al,%bl 282 movb %ah,%cl 283 rorl $4,%edx 284 xorl (%ebp,%ebx,1),%esi 285 movb %dl,%bl 286 xorl 0x200(%ebp,%ecx,1),%esi 287 movb %dh,%cl 288 shrl $16,%eax 289 xorl 0x100(%ebp,%ebx,1),%esi 290 movb %ah,%bl 291 shrl $16,%edx 292 xorl 0x300(%ebp,%ecx,1),%esi 293 movb %dh,%cl 294 andl $0xff,%eax 295 andl $0xff,%edx 296 xorl 0x600(%ebp,%ebx,1),%esi 297 xorl 0x700(%ebp,%ecx,1),%esi 298 movl (%esp),%ecx 299 xorl 0x400(%ebp,%eax,1),%esi 300 xorl 0x500(%ebp,%edx,1),%esi 301 302 movl 80(%ecx),%eax 303 xorl %ebx,%ebx 304 movl 84(%ecx),%edx 305 xorl %esi,%eax 306 xorl %ecx,%ecx 307 xorl %esi,%edx 308 andl $0xfcfcfcfc,%eax 309 andl $0xcfcfcfcf,%edx 310 movb %al,%bl 311 movb %ah,%cl 312 rorl $4,%edx 313 xorl (%ebp,%ebx,1),%edi 314 movb %dl,%bl 315 xorl 0x200(%ebp,%ecx,1),%edi 316 movb %dh,%cl 317 shrl $16,%eax 318 xorl 0x100(%ebp,%ebx,1),%edi 319 movb %ah,%bl 320 shrl $16,%edx 321 xorl 0x300(%ebp,%ecx,1),%edi 322 movb %dh,%cl 323 andl $0xff,%eax 324 andl $0xff,%edx 325 xorl 0x600(%ebp,%ebx,1),%edi 326 xorl 0x700(%ebp,%ecx,1),%edi 327 movl (%esp),%ecx 328 xorl 0x400(%ebp,%eax,1),%edi 329 xorl 0x500(%ebp,%edx,1),%edi 330 331 movl 88(%ecx),%eax 332 xorl %ebx,%ebx 333 movl 92(%ecx),%edx 334 xorl %edi,%eax 335 xorl %ecx,%ecx 336 xorl %edi,%edx 337 andl $0xfcfcfcfc,%eax 338 andl $0xcfcfcfcf,%edx 339 movb %al,%bl 340 movb %ah,%cl 341 rorl $4,%edx 342 xorl (%ebp,%ebx,1),%esi 343 movb %dl,%bl 344 xorl 0x200(%ebp,%ecx,1),%esi 345 movb %dh,%cl 346 shrl $16,%eax 347 xorl 0x100(%ebp,%ebx,1),%esi 348 movb %ah,%bl 349 shrl $16,%edx 350 xorl 0x300(%ebp,%ecx,1),%esi 351 movb %dh,%cl 352 andl $0xff,%eax 353 andl $0xff,%edx 354 xorl 0x600(%ebp,%ebx,1),%esi 355 xorl 0x700(%ebp,%ecx,1),%esi 356 movl (%esp),%ecx 357 xorl 0x400(%ebp,%eax,1),%esi 358 xorl 0x500(%ebp,%edx,1),%esi 359 360 movl 96(%ecx),%eax 361 xorl %ebx,%ebx 362 movl 100(%ecx),%edx 363 xorl %esi,%eax 364 xorl %ecx,%ecx 365 xorl %esi,%edx 366 andl $0xfcfcfcfc,%eax 367 andl $0xcfcfcfcf,%edx 368 movb %al,%bl 369 movb %ah,%cl 370 rorl $4,%edx 371 xorl (%ebp,%ebx,1),%edi 372 movb %dl,%bl 373 xorl 0x200(%ebp,%ecx,1),%edi 374 movb %dh,%cl 375 shrl $16,%eax 376 xorl 0x100(%ebp,%ebx,1),%edi 377 movb %ah,%bl 378 shrl $16,%edx 379 xorl 0x300(%ebp,%ecx,1),%edi 380 movb %dh,%cl 381 andl $0xff,%eax 382 andl $0xff,%edx 383 xorl 0x600(%ebp,%ebx,1),%edi 384 xorl 0x700(%ebp,%ecx,1),%edi 385 movl (%esp),%ecx 386 xorl 0x400(%ebp,%eax,1),%edi 387 xorl 0x500(%ebp,%edx,1),%edi 388 389 movl 104(%ecx),%eax 390 xorl %ebx,%ebx 391 movl 108(%ecx),%edx 392 xorl %edi,%eax 393 xorl %ecx,%ecx 394 xorl %edi,%edx 395 andl $0xfcfcfcfc,%eax 396 andl $0xcfcfcfcf,%edx 397 movb %al,%bl 398 movb %ah,%cl 399 rorl $4,%edx 400 xorl (%ebp,%ebx,1),%esi 401 movb %dl,%bl 402 xorl 0x200(%ebp,%ecx,1),%esi 403 movb %dh,%cl 404 shrl $16,%eax 405 xorl 0x100(%ebp,%ebx,1),%esi 406 movb %ah,%bl 407 shrl $16,%edx 408 xorl 0x300(%ebp,%ecx,1),%esi 409 movb %dh,%cl 410 andl $0xff,%eax 411 andl $0xff,%edx 412 xorl 0x600(%ebp,%ebx,1),%esi 413 xorl 0x700(%ebp,%ecx,1),%esi 414 movl (%esp),%ecx 415 xorl 0x400(%ebp,%eax,1),%esi 416 xorl 0x500(%ebp,%edx,1),%esi 417 418 movl 112(%ecx),%eax 419 xorl %ebx,%ebx 420 movl 116(%ecx),%edx 421 xorl %esi,%eax 422 xorl %ecx,%ecx 423 xorl %esi,%edx 424 andl $0xfcfcfcfc,%eax 425 andl $0xcfcfcfcf,%edx 426 movb %al,%bl 427 movb %ah,%cl 428 rorl $4,%edx 429 xorl (%ebp,%ebx,1),%edi 430 movb %dl,%bl 431 xorl 0x200(%ebp,%ecx,1),%edi 432 movb %dh,%cl 433 shrl $16,%eax 434 xorl 0x100(%ebp,%ebx,1),%edi 435 movb %ah,%bl 436 shrl $16,%edx 437 xorl 0x300(%ebp,%ecx,1),%edi 438 movb %dh,%cl 439 andl $0xff,%eax 440 andl $0xff,%edx 441 xorl 0x600(%ebp,%ebx,1),%edi 442 xorl 0x700(%ebp,%ecx,1),%edi 443 movl (%esp),%ecx 444 xorl 0x400(%ebp,%eax,1),%edi 445 xorl 0x500(%ebp,%edx,1),%edi 446 447 movl 120(%ecx),%eax 448 xorl %ebx,%ebx 449 movl 124(%ecx),%edx 450 xorl %edi,%eax 451 xorl %ecx,%ecx 452 xorl %edi,%edx 453 andl $0xfcfcfcfc,%eax 454 andl $0xcfcfcfcf,%edx 455 movb %al,%bl 456 movb %ah,%cl 457 rorl $4,%edx 458 xorl (%ebp,%ebx,1),%esi 459 movb %dl,%bl 460 xorl 0x200(%ebp,%ecx,1),%esi 461 movb %dh,%cl 462 shrl $16,%eax 463 xorl 0x100(%ebp,%ebx,1),%esi 464 movb %ah,%bl 465 shrl $16,%edx 466 xorl 0x300(%ebp,%ecx,1),%esi 467 movb %dh,%cl 468 andl $0xff,%eax 469 andl $0xff,%edx 470 xorl 0x600(%ebp,%ebx,1),%esi 471 xorl 0x700(%ebp,%ecx,1),%esi 472 movl (%esp),%ecx 473 xorl 0x400(%ebp,%eax,1),%esi 474 xorl 0x500(%ebp,%edx,1),%esi 475 addl $4,%esp 476 ret 477.size _x86_DES_encrypt,.-_x86_DES_encrypt 478.type _x86_DES_decrypt,@function 479.align 16 480_x86_DES_decrypt: 481 pushl %ecx 482 483 movl 120(%ecx),%eax 484 xorl %ebx,%ebx 485 movl 124(%ecx),%edx 486 xorl %esi,%eax 487 xorl %ecx,%ecx 488 xorl %esi,%edx 489 andl $0xfcfcfcfc,%eax 490 andl $0xcfcfcfcf,%edx 491 movb %al,%bl 492 movb %ah,%cl 493 rorl $4,%edx 494 xorl (%ebp,%ebx,1),%edi 495 movb %dl,%bl 496 xorl 0x200(%ebp,%ecx,1),%edi 497 movb %dh,%cl 498 shrl $16,%eax 499 xorl 0x100(%ebp,%ebx,1),%edi 500 movb %ah,%bl 501 shrl $16,%edx 502 xorl 0x300(%ebp,%ecx,1),%edi 503 movb %dh,%cl 504 andl $0xff,%eax 505 andl $0xff,%edx 506 xorl 0x600(%ebp,%ebx,1),%edi 507 xorl 0x700(%ebp,%ecx,1),%edi 508 movl (%esp),%ecx 509 xorl 0x400(%ebp,%eax,1),%edi 510 xorl 0x500(%ebp,%edx,1),%edi 511 512 movl 112(%ecx),%eax 513 xorl %ebx,%ebx 514 movl 116(%ecx),%edx 515 xorl %edi,%eax 516 xorl %ecx,%ecx 517 xorl %edi,%edx 518 andl $0xfcfcfcfc,%eax 519 andl $0xcfcfcfcf,%edx 520 movb %al,%bl 521 movb %ah,%cl 522 rorl $4,%edx 523 xorl (%ebp,%ebx,1),%esi 524 movb %dl,%bl 525 xorl 0x200(%ebp,%ecx,1),%esi 526 movb %dh,%cl 527 shrl $16,%eax 528 xorl 0x100(%ebp,%ebx,1),%esi 529 movb %ah,%bl 530 shrl $16,%edx 531 xorl 0x300(%ebp,%ecx,1),%esi 532 movb %dh,%cl 533 andl $0xff,%eax 534 andl $0xff,%edx 535 xorl 0x600(%ebp,%ebx,1),%esi 536 xorl 0x700(%ebp,%ecx,1),%esi 537 movl (%esp),%ecx 538 xorl 0x400(%ebp,%eax,1),%esi 539 xorl 0x500(%ebp,%edx,1),%esi 540 541 movl 104(%ecx),%eax 542 xorl %ebx,%ebx 543 movl 108(%ecx),%edx 544 xorl %esi,%eax 545 xorl %ecx,%ecx 546 xorl %esi,%edx 547 andl $0xfcfcfcfc,%eax 548 andl $0xcfcfcfcf,%edx 549 movb %al,%bl 550 movb %ah,%cl 551 rorl $4,%edx 552 xorl (%ebp,%ebx,1),%edi 553 movb %dl,%bl 554 xorl 0x200(%ebp,%ecx,1),%edi 555 movb %dh,%cl 556 shrl $16,%eax 557 xorl 0x100(%ebp,%ebx,1),%edi 558 movb %ah,%bl 559 shrl $16,%edx 560 xorl 0x300(%ebp,%ecx,1),%edi 561 movb %dh,%cl 562 andl $0xff,%eax 563 andl $0xff,%edx 564 xorl 0x600(%ebp,%ebx,1),%edi 565 xorl 0x700(%ebp,%ecx,1),%edi 566 movl (%esp),%ecx 567 xorl 0x400(%ebp,%eax,1),%edi 568 xorl 0x500(%ebp,%edx,1),%edi 569 570 movl 96(%ecx),%eax 571 xorl %ebx,%ebx 572 movl 100(%ecx),%edx 573 xorl %edi,%eax 574 xorl %ecx,%ecx 575 xorl %edi,%edx 576 andl $0xfcfcfcfc,%eax 577 andl $0xcfcfcfcf,%edx 578 movb %al,%bl 579 movb %ah,%cl 580 rorl $4,%edx 581 xorl (%ebp,%ebx,1),%esi 582 movb %dl,%bl 583 xorl 0x200(%ebp,%ecx,1),%esi 584 movb %dh,%cl 585 shrl $16,%eax 586 xorl 0x100(%ebp,%ebx,1),%esi 587 movb %ah,%bl 588 shrl $16,%edx 589 xorl 0x300(%ebp,%ecx,1),%esi 590 movb %dh,%cl 591 andl $0xff,%eax 592 andl $0xff,%edx 593 xorl 0x600(%ebp,%ebx,1),%esi 594 xorl 0x700(%ebp,%ecx,1),%esi 595 movl (%esp),%ecx 596 xorl 0x400(%ebp,%eax,1),%esi 597 xorl 0x500(%ebp,%edx,1),%esi 598 599 movl 88(%ecx),%eax 600 xorl %ebx,%ebx 601 movl 92(%ecx),%edx 602 xorl %esi,%eax 603 xorl %ecx,%ecx 604 xorl %esi,%edx 605 andl $0xfcfcfcfc,%eax 606 andl $0xcfcfcfcf,%edx 607 movb %al,%bl 608 movb %ah,%cl 609 rorl $4,%edx 610 xorl (%ebp,%ebx,1),%edi 611 movb %dl,%bl 612 xorl 0x200(%ebp,%ecx,1),%edi 613 movb %dh,%cl 614 shrl $16,%eax 615 xorl 0x100(%ebp,%ebx,1),%edi 616 movb %ah,%bl 617 shrl $16,%edx 618 xorl 0x300(%ebp,%ecx,1),%edi 619 movb %dh,%cl 620 andl $0xff,%eax 621 andl $0xff,%edx 622 xorl 0x600(%ebp,%ebx,1),%edi 623 xorl 0x700(%ebp,%ecx,1),%edi 624 movl (%esp),%ecx 625 xorl 0x400(%ebp,%eax,1),%edi 626 xorl 0x500(%ebp,%edx,1),%edi 627 628 movl 80(%ecx),%eax 629 xorl %ebx,%ebx 630 movl 84(%ecx),%edx 631 xorl %edi,%eax 632 xorl %ecx,%ecx 633 xorl %edi,%edx 634 andl $0xfcfcfcfc,%eax 635 andl $0xcfcfcfcf,%edx 636 movb %al,%bl 637 movb %ah,%cl 638 rorl $4,%edx 639 xorl (%ebp,%ebx,1),%esi 640 movb %dl,%bl 641 xorl 0x200(%ebp,%ecx,1),%esi 642 movb %dh,%cl 643 shrl $16,%eax 644 xorl 0x100(%ebp,%ebx,1),%esi 645 movb %ah,%bl 646 shrl $16,%edx 647 xorl 0x300(%ebp,%ecx,1),%esi 648 movb %dh,%cl 649 andl $0xff,%eax 650 andl $0xff,%edx 651 xorl 0x600(%ebp,%ebx,1),%esi 652 xorl 0x700(%ebp,%ecx,1),%esi 653 movl (%esp),%ecx 654 xorl 0x400(%ebp,%eax,1),%esi 655 xorl 0x500(%ebp,%edx,1),%esi 656 657 movl 72(%ecx),%eax 658 xorl %ebx,%ebx 659 movl 76(%ecx),%edx 660 xorl %esi,%eax 661 xorl %ecx,%ecx 662 xorl %esi,%edx 663 andl $0xfcfcfcfc,%eax 664 andl $0xcfcfcfcf,%edx 665 movb %al,%bl 666 movb %ah,%cl 667 rorl $4,%edx 668 xorl (%ebp,%ebx,1),%edi 669 movb %dl,%bl 670 xorl 0x200(%ebp,%ecx,1),%edi 671 movb %dh,%cl 672 shrl $16,%eax 673 xorl 0x100(%ebp,%ebx,1),%edi 674 movb %ah,%bl 675 shrl $16,%edx 676 xorl 0x300(%ebp,%ecx,1),%edi 677 movb %dh,%cl 678 andl $0xff,%eax 679 andl $0xff,%edx 680 xorl 0x600(%ebp,%ebx,1),%edi 681 xorl 0x700(%ebp,%ecx,1),%edi 682 movl (%esp),%ecx 683 xorl 0x400(%ebp,%eax,1),%edi 684 xorl 0x500(%ebp,%edx,1),%edi 685 686 movl 64(%ecx),%eax 687 xorl %ebx,%ebx 688 movl 68(%ecx),%edx 689 xorl %edi,%eax 690 xorl %ecx,%ecx 691 xorl %edi,%edx 692 andl $0xfcfcfcfc,%eax 693 andl $0xcfcfcfcf,%edx 694 movb %al,%bl 695 movb %ah,%cl 696 rorl $4,%edx 697 xorl (%ebp,%ebx,1),%esi 698 movb %dl,%bl 699 xorl 0x200(%ebp,%ecx,1),%esi 700 movb %dh,%cl 701 shrl $16,%eax 702 xorl 0x100(%ebp,%ebx,1),%esi 703 movb %ah,%bl 704 shrl $16,%edx 705 xorl 0x300(%ebp,%ecx,1),%esi 706 movb %dh,%cl 707 andl $0xff,%eax 708 andl $0xff,%edx 709 xorl 0x600(%ebp,%ebx,1),%esi 710 xorl 0x700(%ebp,%ecx,1),%esi 711 movl (%esp),%ecx 712 xorl 0x400(%ebp,%eax,1),%esi 713 xorl 0x500(%ebp,%edx,1),%esi 714 715 movl 56(%ecx),%eax 716 xorl %ebx,%ebx 717 movl 60(%ecx),%edx 718 xorl %esi,%eax 719 xorl %ecx,%ecx 720 xorl %esi,%edx 721 andl $0xfcfcfcfc,%eax 722 andl $0xcfcfcfcf,%edx 723 movb %al,%bl 724 movb %ah,%cl 725 rorl $4,%edx 726 xorl (%ebp,%ebx,1),%edi 727 movb %dl,%bl 728 xorl 0x200(%ebp,%ecx,1),%edi 729 movb %dh,%cl 730 shrl $16,%eax 731 xorl 0x100(%ebp,%ebx,1),%edi 732 movb %ah,%bl 733 shrl $16,%edx 734 xorl 0x300(%ebp,%ecx,1),%edi 735 movb %dh,%cl 736 andl $0xff,%eax 737 andl $0xff,%edx 738 xorl 0x600(%ebp,%ebx,1),%edi 739 xorl 0x700(%ebp,%ecx,1),%edi 740 movl (%esp),%ecx 741 xorl 0x400(%ebp,%eax,1),%edi 742 xorl 0x500(%ebp,%edx,1),%edi 743 744 movl 48(%ecx),%eax 745 xorl %ebx,%ebx 746 movl 52(%ecx),%edx 747 xorl %edi,%eax 748 xorl %ecx,%ecx 749 xorl %edi,%edx 750 andl $0xfcfcfcfc,%eax 751 andl $0xcfcfcfcf,%edx 752 movb %al,%bl 753 movb %ah,%cl 754 rorl $4,%edx 755 xorl (%ebp,%ebx,1),%esi 756 movb %dl,%bl 757 xorl 0x200(%ebp,%ecx,1),%esi 758 movb %dh,%cl 759 shrl $16,%eax 760 xorl 0x100(%ebp,%ebx,1),%esi 761 movb %ah,%bl 762 shrl $16,%edx 763 xorl 0x300(%ebp,%ecx,1),%esi 764 movb %dh,%cl 765 andl $0xff,%eax 766 andl $0xff,%edx 767 xorl 0x600(%ebp,%ebx,1),%esi 768 xorl 0x700(%ebp,%ecx,1),%esi 769 movl (%esp),%ecx 770 xorl 0x400(%ebp,%eax,1),%esi 771 xorl 0x500(%ebp,%edx,1),%esi 772 773 movl 40(%ecx),%eax 774 xorl %ebx,%ebx 775 movl 44(%ecx),%edx 776 xorl %esi,%eax 777 xorl %ecx,%ecx 778 xorl %esi,%edx 779 andl $0xfcfcfcfc,%eax 780 andl $0xcfcfcfcf,%edx 781 movb %al,%bl 782 movb %ah,%cl 783 rorl $4,%edx 784 xorl (%ebp,%ebx,1),%edi 785 movb %dl,%bl 786 xorl 0x200(%ebp,%ecx,1),%edi 787 movb %dh,%cl 788 shrl $16,%eax 789 xorl 0x100(%ebp,%ebx,1),%edi 790 movb %ah,%bl 791 shrl $16,%edx 792 xorl 0x300(%ebp,%ecx,1),%edi 793 movb %dh,%cl 794 andl $0xff,%eax 795 andl $0xff,%edx 796 xorl 0x600(%ebp,%ebx,1),%edi 797 xorl 0x700(%ebp,%ecx,1),%edi 798 movl (%esp),%ecx 799 xorl 0x400(%ebp,%eax,1),%edi 800 xorl 0x500(%ebp,%edx,1),%edi 801 802 movl 32(%ecx),%eax 803 xorl %ebx,%ebx 804 movl 36(%ecx),%edx 805 xorl %edi,%eax 806 xorl %ecx,%ecx 807 xorl %edi,%edx 808 andl $0xfcfcfcfc,%eax 809 andl $0xcfcfcfcf,%edx 810 movb %al,%bl 811 movb %ah,%cl 812 rorl $4,%edx 813 xorl (%ebp,%ebx,1),%esi 814 movb %dl,%bl 815 xorl 0x200(%ebp,%ecx,1),%esi 816 movb %dh,%cl 817 shrl $16,%eax 818 xorl 0x100(%ebp,%ebx,1),%esi 819 movb %ah,%bl 820 shrl $16,%edx 821 xorl 0x300(%ebp,%ecx,1),%esi 822 movb %dh,%cl 823 andl $0xff,%eax 824 andl $0xff,%edx 825 xorl 0x600(%ebp,%ebx,1),%esi 826 xorl 0x700(%ebp,%ecx,1),%esi 827 movl (%esp),%ecx 828 xorl 0x400(%ebp,%eax,1),%esi 829 xorl 0x500(%ebp,%edx,1),%esi 830 831 movl 24(%ecx),%eax 832 xorl %ebx,%ebx 833 movl 28(%ecx),%edx 834 xorl %esi,%eax 835 xorl %ecx,%ecx 836 xorl %esi,%edx 837 andl $0xfcfcfcfc,%eax 838 andl $0xcfcfcfcf,%edx 839 movb %al,%bl 840 movb %ah,%cl 841 rorl $4,%edx 842 xorl (%ebp,%ebx,1),%edi 843 movb %dl,%bl 844 xorl 0x200(%ebp,%ecx,1),%edi 845 movb %dh,%cl 846 shrl $16,%eax 847 xorl 0x100(%ebp,%ebx,1),%edi 848 movb %ah,%bl 849 shrl $16,%edx 850 xorl 0x300(%ebp,%ecx,1),%edi 851 movb %dh,%cl 852 andl $0xff,%eax 853 andl $0xff,%edx 854 xorl 0x600(%ebp,%ebx,1),%edi 855 xorl 0x700(%ebp,%ecx,1),%edi 856 movl (%esp),%ecx 857 xorl 0x400(%ebp,%eax,1),%edi 858 xorl 0x500(%ebp,%edx,1),%edi 859 860 movl 16(%ecx),%eax 861 xorl %ebx,%ebx 862 movl 20(%ecx),%edx 863 xorl %edi,%eax 864 xorl %ecx,%ecx 865 xorl %edi,%edx 866 andl $0xfcfcfcfc,%eax 867 andl $0xcfcfcfcf,%edx 868 movb %al,%bl 869 movb %ah,%cl 870 rorl $4,%edx 871 xorl (%ebp,%ebx,1),%esi 872 movb %dl,%bl 873 xorl 0x200(%ebp,%ecx,1),%esi 874 movb %dh,%cl 875 shrl $16,%eax 876 xorl 0x100(%ebp,%ebx,1),%esi 877 movb %ah,%bl 878 shrl $16,%edx 879 xorl 0x300(%ebp,%ecx,1),%esi 880 movb %dh,%cl 881 andl $0xff,%eax 882 andl $0xff,%edx 883 xorl 0x600(%ebp,%ebx,1),%esi 884 xorl 0x700(%ebp,%ecx,1),%esi 885 movl (%esp),%ecx 886 xorl 0x400(%ebp,%eax,1),%esi 887 xorl 0x500(%ebp,%edx,1),%esi 888 889 movl 8(%ecx),%eax 890 xorl %ebx,%ebx 891 movl 12(%ecx),%edx 892 xorl %esi,%eax 893 xorl %ecx,%ecx 894 xorl %esi,%edx 895 andl $0xfcfcfcfc,%eax 896 andl $0xcfcfcfcf,%edx 897 movb %al,%bl 898 movb %ah,%cl 899 rorl $4,%edx 900 xorl (%ebp,%ebx,1),%edi 901 movb %dl,%bl 902 xorl 0x200(%ebp,%ecx,1),%edi 903 movb %dh,%cl 904 shrl $16,%eax 905 xorl 0x100(%ebp,%ebx,1),%edi 906 movb %ah,%bl 907 shrl $16,%edx 908 xorl 0x300(%ebp,%ecx,1),%edi 909 movb %dh,%cl 910 andl $0xff,%eax 911 andl $0xff,%edx 912 xorl 0x600(%ebp,%ebx,1),%edi 913 xorl 0x700(%ebp,%ecx,1),%edi 914 movl (%esp),%ecx 915 xorl 0x400(%ebp,%eax,1),%edi 916 xorl 0x500(%ebp,%edx,1),%edi 917 918 movl (%ecx),%eax 919 xorl %ebx,%ebx 920 movl 4(%ecx),%edx 921 xorl %edi,%eax 922 xorl %ecx,%ecx 923 xorl %edi,%edx 924 andl $0xfcfcfcfc,%eax 925 andl $0xcfcfcfcf,%edx 926 movb %al,%bl 927 movb %ah,%cl 928 rorl $4,%edx 929 xorl (%ebp,%ebx,1),%esi 930 movb %dl,%bl 931 xorl 0x200(%ebp,%ecx,1),%esi 932 movb %dh,%cl 933 shrl $16,%eax 934 xorl 0x100(%ebp,%ebx,1),%esi 935 movb %ah,%bl 936 shrl $16,%edx 937 xorl 0x300(%ebp,%ecx,1),%esi 938 movb %dh,%cl 939 andl $0xff,%eax 940 andl $0xff,%edx 941 xorl 0x600(%ebp,%ebx,1),%esi 942 xorl 0x700(%ebp,%ecx,1),%esi 943 movl (%esp),%ecx 944 xorl 0x400(%ebp,%eax,1),%esi 945 xorl 0x500(%ebp,%edx,1),%esi 946 addl $4,%esp 947 ret 948.size _x86_DES_decrypt,.-_x86_DES_decrypt 949.globl DES_encrypt1 950.type DES_encrypt1,@function 951.align 16 952DES_encrypt1: 953.L_DES_encrypt1_begin: 954 pushl %esi 955 pushl %edi 956 957 958 movl 12(%esp),%esi 959 xorl %ecx,%ecx 960 pushl %ebx 961 pushl %ebp 962 movl (%esi),%eax 963 movl 28(%esp),%ebx 964 movl 4(%esi),%edi 965 966 967 roll $4,%eax 968 movl %eax,%esi 969 xorl %edi,%eax 970 andl $0xf0f0f0f0,%eax 971 xorl %eax,%esi 972 xorl %eax,%edi 973 974 roll $20,%edi 975 movl %edi,%eax 976 xorl %esi,%edi 977 andl $0xfff0000f,%edi 978 xorl %edi,%eax 979 xorl %edi,%esi 980 981 roll $14,%eax 982 movl %eax,%edi 983 xorl %esi,%eax 984 andl $0x33333333,%eax 985 xorl %eax,%edi 986 xorl %eax,%esi 987 988 roll $22,%esi 989 movl %esi,%eax 990 xorl %edi,%esi 991 andl $0x03fc03fc,%esi 992 xorl %esi,%eax 993 xorl %esi,%edi 994 995 roll $9,%eax 996 movl %eax,%esi 997 xorl %edi,%eax 998 andl $0xaaaaaaaa,%eax 999 xorl %eax,%esi 1000 xorl %eax,%edi 1001 1002 roll $1,%edi 1003 call .L000pic_point 1004.L000pic_point: 1005 popl %ebp 1006 leal DES_SPtrans-.L000pic_point(%ebp),%ebp 1007 movl 24(%esp),%ecx 1008 cmpl $0,%ebx 1009 je .L001decrypt 1010 call _x86_DES_encrypt 1011 jmp .L002done 1012.L001decrypt: 1013 call _x86_DES_decrypt 1014.L002done: 1015 1016 1017 movl 20(%esp),%edx 1018 rorl $1,%esi 1019 movl %edi,%eax 1020 xorl %esi,%edi 1021 andl $0xaaaaaaaa,%edi 1022 xorl %edi,%eax 1023 xorl %edi,%esi 1024 1025 roll $23,%eax 1026 movl %eax,%edi 1027 xorl %esi,%eax 1028 andl $0x03fc03fc,%eax 1029 xorl %eax,%edi 1030 xorl %eax,%esi 1031 1032 roll $10,%edi 1033 movl %edi,%eax 1034 xorl %esi,%edi 1035 andl $0x33333333,%edi 1036 xorl %edi,%eax 1037 xorl %edi,%esi 1038 1039 roll $18,%esi 1040 movl %esi,%edi 1041 xorl %eax,%esi 1042 andl $0xfff0000f,%esi 1043 xorl %esi,%edi 1044 xorl %esi,%eax 1045 1046 roll $12,%edi 1047 movl %edi,%esi 1048 xorl %eax,%edi 1049 andl $0xf0f0f0f0,%edi 1050 xorl %edi,%esi 1051 xorl %edi,%eax 1052 1053 rorl $4,%eax 1054 movl %eax,(%edx) 1055 movl %esi,4(%edx) 1056 popl %ebp 1057 popl %ebx 1058 popl %edi 1059 popl %esi 1060 ret 1061.size DES_encrypt1,.-.L_DES_encrypt1_begin 1062.globl DES_encrypt2 1063.type DES_encrypt2,@function 1064.align 16 1065DES_encrypt2: 1066.L_DES_encrypt2_begin: 1067 pushl %esi 1068 pushl %edi 1069 1070 1071 movl 12(%esp),%eax 1072 xorl %ecx,%ecx 1073 pushl %ebx 1074 pushl %ebp 1075 movl (%eax),%esi 1076 movl 28(%esp),%ebx 1077 roll $3,%esi 1078 movl 4(%eax),%edi 1079 roll $3,%edi 1080 call .L003pic_point 1081.L003pic_point: 1082 popl %ebp 1083 leal DES_SPtrans-.L003pic_point(%ebp),%ebp 1084 movl 24(%esp),%ecx 1085 cmpl $0,%ebx 1086 je .L004decrypt 1087 call _x86_DES_encrypt 1088 jmp .L005done 1089.L004decrypt: 1090 call _x86_DES_decrypt 1091.L005done: 1092 1093 1094 rorl $3,%edi 1095 movl 20(%esp),%eax 1096 rorl $3,%esi 1097 movl %edi,(%eax) 1098 movl %esi,4(%eax) 1099 popl %ebp 1100 popl %ebx 1101 popl %edi 1102 popl %esi 1103 ret 1104.size DES_encrypt2,.-.L_DES_encrypt2_begin 1105.globl DES_encrypt3 1106.type DES_encrypt3,@function 1107.align 16 1108DES_encrypt3: 1109.L_DES_encrypt3_begin: 1110 pushl %ebx 1111 movl 8(%esp),%ebx 1112 pushl %ebp 1113 pushl %esi 1114 pushl %edi 1115 1116 1117 movl (%ebx),%edi 1118 movl 4(%ebx),%esi 1119 subl $12,%esp 1120 1121 1122 roll $4,%edi 1123 movl %edi,%edx 1124 xorl %esi,%edi 1125 andl $0xf0f0f0f0,%edi 1126 xorl %edi,%edx 1127 xorl %edi,%esi 1128 1129 roll $20,%esi 1130 movl %esi,%edi 1131 xorl %edx,%esi 1132 andl $0xfff0000f,%esi 1133 xorl %esi,%edi 1134 xorl %esi,%edx 1135 1136 roll $14,%edi 1137 movl %edi,%esi 1138 xorl %edx,%edi 1139 andl $0x33333333,%edi 1140 xorl %edi,%esi 1141 xorl %edi,%edx 1142 1143 roll $22,%edx 1144 movl %edx,%edi 1145 xorl %esi,%edx 1146 andl $0x03fc03fc,%edx 1147 xorl %edx,%edi 1148 xorl %edx,%esi 1149 1150 roll $9,%edi 1151 movl %edi,%edx 1152 xorl %esi,%edi 1153 andl $0xaaaaaaaa,%edi 1154 xorl %edi,%edx 1155 xorl %edi,%esi 1156 1157 rorl $3,%edx 1158 rorl $2,%esi 1159 movl %esi,4(%ebx) 1160 movl 36(%esp),%eax 1161 movl %edx,(%ebx) 1162 movl 40(%esp),%edi 1163 movl 44(%esp),%esi 1164 movl $1,8(%esp) 1165 movl %eax,4(%esp) 1166 movl %ebx,(%esp) 1167 call .L_DES_encrypt2_begin 1168 movl $0,8(%esp) 1169 movl %edi,4(%esp) 1170 movl %ebx,(%esp) 1171 call .L_DES_encrypt2_begin 1172 movl $1,8(%esp) 1173 movl %esi,4(%esp) 1174 movl %ebx,(%esp) 1175 call .L_DES_encrypt2_begin 1176 addl $12,%esp 1177 movl (%ebx),%edi 1178 movl 4(%ebx),%esi 1179 1180 1181 roll $2,%esi 1182 roll $3,%edi 1183 movl %edi,%eax 1184 xorl %esi,%edi 1185 andl $0xaaaaaaaa,%edi 1186 xorl %edi,%eax 1187 xorl %edi,%esi 1188 1189 roll $23,%eax 1190 movl %eax,%edi 1191 xorl %esi,%eax 1192 andl $0x03fc03fc,%eax 1193 xorl %eax,%edi 1194 xorl %eax,%esi 1195 1196 roll $10,%edi 1197 movl %edi,%eax 1198 xorl %esi,%edi 1199 andl $0x33333333,%edi 1200 xorl %edi,%eax 1201 xorl %edi,%esi 1202 1203 roll $18,%esi 1204 movl %esi,%edi 1205 xorl %eax,%esi 1206 andl $0xfff0000f,%esi 1207 xorl %esi,%edi 1208 xorl %esi,%eax 1209 1210 roll $12,%edi 1211 movl %edi,%esi 1212 xorl %eax,%edi 1213 andl $0xf0f0f0f0,%edi 1214 xorl %edi,%esi 1215 xorl %edi,%eax 1216 1217 rorl $4,%eax 1218 movl %eax,(%ebx) 1219 movl %esi,4(%ebx) 1220 popl %edi 1221 popl %esi 1222 popl %ebp 1223 popl %ebx 1224 ret 1225.size DES_encrypt3,.-.L_DES_encrypt3_begin 1226.globl DES_decrypt3 1227.type DES_decrypt3,@function 1228.align 16 1229DES_decrypt3: 1230.L_DES_decrypt3_begin: 1231 pushl %ebx 1232 movl 8(%esp),%ebx 1233 pushl %ebp 1234 pushl %esi 1235 pushl %edi 1236 1237 1238 movl (%ebx),%edi 1239 movl 4(%ebx),%esi 1240 subl $12,%esp 1241 1242 1243 roll $4,%edi 1244 movl %edi,%edx 1245 xorl %esi,%edi 1246 andl $0xf0f0f0f0,%edi 1247 xorl %edi,%edx 1248 xorl %edi,%esi 1249 1250 roll $20,%esi 1251 movl %esi,%edi 1252 xorl %edx,%esi 1253 andl $0xfff0000f,%esi 1254 xorl %esi,%edi 1255 xorl %esi,%edx 1256 1257 roll $14,%edi 1258 movl %edi,%esi 1259 xorl %edx,%edi 1260 andl $0x33333333,%edi 1261 xorl %edi,%esi 1262 xorl %edi,%edx 1263 1264 roll $22,%edx 1265 movl %edx,%edi 1266 xorl %esi,%edx 1267 andl $0x03fc03fc,%edx 1268 xorl %edx,%edi 1269 xorl %edx,%esi 1270 1271 roll $9,%edi 1272 movl %edi,%edx 1273 xorl %esi,%edi 1274 andl $0xaaaaaaaa,%edi 1275 xorl %edi,%edx 1276 xorl %edi,%esi 1277 1278 rorl $3,%edx 1279 rorl $2,%esi 1280 movl %esi,4(%ebx) 1281 movl 36(%esp),%esi 1282 movl %edx,(%ebx) 1283 movl 40(%esp),%edi 1284 movl 44(%esp),%eax 1285 movl $0,8(%esp) 1286 movl %eax,4(%esp) 1287 movl %ebx,(%esp) 1288 call .L_DES_encrypt2_begin 1289 movl $1,8(%esp) 1290 movl %edi,4(%esp) 1291 movl %ebx,(%esp) 1292 call .L_DES_encrypt2_begin 1293 movl $0,8(%esp) 1294 movl %esi,4(%esp) 1295 movl %ebx,(%esp) 1296 call .L_DES_encrypt2_begin 1297 addl $12,%esp 1298 movl (%ebx),%edi 1299 movl 4(%ebx),%esi 1300 1301 1302 roll $2,%esi 1303 roll $3,%edi 1304 movl %edi,%eax 1305 xorl %esi,%edi 1306 andl $0xaaaaaaaa,%edi 1307 xorl %edi,%eax 1308 xorl %edi,%esi 1309 1310 roll $23,%eax 1311 movl %eax,%edi 1312 xorl %esi,%eax 1313 andl $0x03fc03fc,%eax 1314 xorl %eax,%edi 1315 xorl %eax,%esi 1316 1317 roll $10,%edi 1318 movl %edi,%eax 1319 xorl %esi,%edi 1320 andl $0x33333333,%edi 1321 xorl %edi,%eax 1322 xorl %edi,%esi 1323 1324 roll $18,%esi 1325 movl %esi,%edi 1326 xorl %eax,%esi 1327 andl $0xfff0000f,%esi 1328 xorl %esi,%edi 1329 xorl %esi,%eax 1330 1331 roll $12,%edi 1332 movl %edi,%esi 1333 xorl %eax,%edi 1334 andl $0xf0f0f0f0,%edi 1335 xorl %edi,%esi 1336 xorl %edi,%eax 1337 1338 rorl $4,%eax 1339 movl %eax,(%ebx) 1340 movl %esi,4(%ebx) 1341 popl %edi 1342 popl %esi 1343 popl %ebp 1344 popl %ebx 1345 ret 1346.size DES_decrypt3,.-.L_DES_decrypt3_begin 1347.globl DES_ncbc_encrypt 1348.type DES_ncbc_encrypt,@function 1349.align 16 1350DES_ncbc_encrypt: 1351.L_DES_ncbc_encrypt_begin: 1352 1353 pushl %ebp 1354 pushl %ebx 1355 pushl %esi 1356 pushl %edi 1357 movl 28(%esp),%ebp 1358 1359 movl 36(%esp),%ebx 1360 movl (%ebx),%esi 1361 movl 4(%ebx),%edi 1362 pushl %edi 1363 pushl %esi 1364 pushl %edi 1365 pushl %esi 1366 movl %esp,%ebx 1367 movl 36(%esp),%esi 1368 movl 40(%esp),%edi 1369 1370 movl 56(%esp),%ecx 1371 1372 pushl %ecx 1373 1374 movl 52(%esp),%eax 1375 pushl %eax 1376 pushl %ebx 1377 cmpl $0,%ecx 1378 jz .L006decrypt 1379 andl $4294967288,%ebp 1380 movl 12(%esp),%eax 1381 movl 16(%esp),%ebx 1382 jz .L007encrypt_finish 1383.L008encrypt_loop: 1384 movl (%esi),%ecx 1385 movl 4(%esi),%edx 1386 xorl %ecx,%eax 1387 xorl %edx,%ebx 1388 movl %eax,12(%esp) 1389 movl %ebx,16(%esp) 1390 call .L_DES_encrypt1_begin 1391 movl 12(%esp),%eax 1392 movl 16(%esp),%ebx 1393 movl %eax,(%edi) 1394 movl %ebx,4(%edi) 1395 addl $8,%esi 1396 addl $8,%edi 1397 subl $8,%ebp 1398 jnz .L008encrypt_loop 1399.L007encrypt_finish: 1400 movl 56(%esp),%ebp 1401 andl $7,%ebp 1402 jz .L009finish 1403 call .L010PIC_point 1404.L010PIC_point: 1405 popl %edx 1406 leal .L011cbc_enc_jmp_table-.L010PIC_point(%edx),%ecx 1407 movl (%ecx,%ebp,4),%ebp 1408 addl %edx,%ebp 1409 xorl %ecx,%ecx 1410 xorl %edx,%edx 1411 jmp *%ebp 1412.L012ej7: 1413 movb 6(%esi),%dh 1414 shll $8,%edx 1415.L013ej6: 1416 movb 5(%esi),%dh 1417.L014ej5: 1418 movb 4(%esi),%dl 1419.L015ej4: 1420 movl (%esi),%ecx 1421 jmp .L016ejend 1422.L017ej3: 1423 movb 2(%esi),%ch 1424 shll $8,%ecx 1425.L018ej2: 1426 movb 1(%esi),%ch 1427.L019ej1: 1428 movb (%esi),%cl 1429.L016ejend: 1430 xorl %ecx,%eax 1431 xorl %edx,%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 %eax,(%edi) 1438 movl %ebx,4(%edi) 1439 jmp .L009finish 1440.L006decrypt: 1441 andl $4294967288,%ebp 1442 movl 20(%esp),%eax 1443 movl 24(%esp),%ebx 1444 jz .L020decrypt_finish 1445.L021decrypt_loop: 1446 movl (%esi),%eax 1447 movl 4(%esi),%ebx 1448 movl %eax,12(%esp) 1449 movl %ebx,16(%esp) 1450 call .L_DES_encrypt1_begin 1451 movl 12(%esp),%eax 1452 movl 16(%esp),%ebx 1453 movl 20(%esp),%ecx 1454 movl 24(%esp),%edx 1455 xorl %eax,%ecx 1456 xorl %ebx,%edx 1457 movl (%esi),%eax 1458 movl 4(%esi),%ebx 1459 movl %ecx,(%edi) 1460 movl %edx,4(%edi) 1461 movl %eax,20(%esp) 1462 movl %ebx,24(%esp) 1463 addl $8,%esi 1464 addl $8,%edi 1465 subl $8,%ebp 1466 jnz .L021decrypt_loop 1467.L020decrypt_finish: 1468 movl 56(%esp),%ebp 1469 andl $7,%ebp 1470 jz .L009finish 1471 movl (%esi),%eax 1472 movl 4(%esi),%ebx 1473 movl %eax,12(%esp) 1474 movl %ebx,16(%esp) 1475 call .L_DES_encrypt1_begin 1476 movl 12(%esp),%eax 1477 movl 16(%esp),%ebx 1478 movl 20(%esp),%ecx 1479 movl 24(%esp),%edx 1480 xorl %eax,%ecx 1481 xorl %ebx,%edx 1482 movl (%esi),%eax 1483 movl 4(%esi),%ebx 1484.L022dj7: 1485 rorl $16,%edx 1486 movb %dl,6(%edi) 1487 shrl $16,%edx 1488.L023dj6: 1489 movb %dh,5(%edi) 1490.L024dj5: 1491 movb %dl,4(%edi) 1492.L025dj4: 1493 movl %ecx,(%edi) 1494 jmp .L026djend 1495.L027dj3: 1496 rorl $16,%ecx 1497 movb %cl,2(%edi) 1498 shll $16,%ecx 1499.L028dj2: 1500 movb %ch,1(%esi) 1501.L029dj1: 1502 movb %cl,(%esi) 1503.L026djend: 1504 jmp .L009finish 1505.L009finish: 1506 movl 64(%esp),%ecx 1507 addl $28,%esp 1508 movl %eax,(%ecx) 1509 movl %ebx,4(%ecx) 1510 popl %edi 1511 popl %esi 1512 popl %ebx 1513 popl %ebp 1514 ret 1515.align 64 1516.L011cbc_enc_jmp_table: 1517.long 0 1518.long .L019ej1-.L010PIC_point 1519.long .L018ej2-.L010PIC_point 1520.long .L017ej3-.L010PIC_point 1521.long .L015ej4-.L010PIC_point 1522.long .L014ej5-.L010PIC_point 1523.long .L013ej6-.L010PIC_point 1524.long .L012ej7-.L010PIC_point 1525.align 64 1526.size DES_ncbc_encrypt,.-.L_DES_ncbc_encrypt_begin 1527.globl DES_ede3_cbc_encrypt 1528.type DES_ede3_cbc_encrypt,@function 1529.align 16 1530DES_ede3_cbc_encrypt: 1531.L_DES_ede3_cbc_encrypt_begin: 1532 1533 pushl %ebp 1534 pushl %ebx 1535 pushl %esi 1536 pushl %edi 1537 movl 28(%esp),%ebp 1538 1539 movl 44(%esp),%ebx 1540 movl (%ebx),%esi 1541 movl 4(%ebx),%edi 1542 pushl %edi 1543 pushl %esi 1544 pushl %edi 1545 pushl %esi 1546 movl %esp,%ebx 1547 movl 36(%esp),%esi 1548 movl 40(%esp),%edi 1549 1550 movl 64(%esp),%ecx 1551 1552 movl 56(%esp),%eax 1553 pushl %eax 1554 1555 movl 56(%esp),%eax 1556 pushl %eax 1557 1558 movl 56(%esp),%eax 1559 pushl %eax 1560 pushl %ebx 1561 cmpl $0,%ecx 1562 jz .L030decrypt 1563 andl $4294967288,%ebp 1564 movl 16(%esp),%eax 1565 movl 20(%esp),%ebx 1566 jz .L031encrypt_finish 1567.L032encrypt_loop: 1568 movl (%esi),%ecx 1569 movl 4(%esi),%edx 1570 xorl %ecx,%eax 1571 xorl %edx,%ebx 1572 movl %eax,16(%esp) 1573 movl %ebx,20(%esp) 1574 call .L_DES_encrypt3_begin 1575 movl 16(%esp),%eax 1576 movl 20(%esp),%ebx 1577 movl %eax,(%edi) 1578 movl %ebx,4(%edi) 1579 addl $8,%esi 1580 addl $8,%edi 1581 subl $8,%ebp 1582 jnz .L032encrypt_loop 1583.L031encrypt_finish: 1584 movl 60(%esp),%ebp 1585 andl $7,%ebp 1586 jz .L033finish 1587 call .L034PIC_point 1588.L034PIC_point: 1589 popl %edx 1590 leal .L035cbc_enc_jmp_table-.L034PIC_point(%edx),%ecx 1591 movl (%ecx,%ebp,4),%ebp 1592 addl %edx,%ebp 1593 xorl %ecx,%ecx 1594 xorl %edx,%edx 1595 jmp *%ebp 1596.L036ej7: 1597 movb 6(%esi),%dh 1598 shll $8,%edx 1599.L037ej6: 1600 movb 5(%esi),%dh 1601.L038ej5: 1602 movb 4(%esi),%dl 1603.L039ej4: 1604 movl (%esi),%ecx 1605 jmp .L040ejend 1606.L041ej3: 1607 movb 2(%esi),%ch 1608 shll $8,%ecx 1609.L042ej2: 1610 movb 1(%esi),%ch 1611.L043ej1: 1612 movb (%esi),%cl 1613.L040ejend: 1614 xorl %ecx,%eax 1615 xorl %edx,%ebx 1616 movl %eax,16(%esp) 1617 movl %ebx,20(%esp) 1618 call .L_DES_encrypt3_begin 1619 movl 16(%esp),%eax 1620 movl 20(%esp),%ebx 1621 movl %eax,(%edi) 1622 movl %ebx,4(%edi) 1623 jmp .L033finish 1624.L030decrypt: 1625 andl $4294967288,%ebp 1626 movl 24(%esp),%eax 1627 movl 28(%esp),%ebx 1628 jz .L044decrypt_finish 1629.L045decrypt_loop: 1630 movl (%esi),%eax 1631 movl 4(%esi),%ebx 1632 movl %eax,16(%esp) 1633 movl %ebx,20(%esp) 1634 call .L_DES_decrypt3_begin 1635 movl 16(%esp),%eax 1636 movl 20(%esp),%ebx 1637 movl 24(%esp),%ecx 1638 movl 28(%esp),%edx 1639 xorl %eax,%ecx 1640 xorl %ebx,%edx 1641 movl (%esi),%eax 1642 movl 4(%esi),%ebx 1643 movl %ecx,(%edi) 1644 movl %edx,4(%edi) 1645 movl %eax,24(%esp) 1646 movl %ebx,28(%esp) 1647 addl $8,%esi 1648 addl $8,%edi 1649 subl $8,%ebp 1650 jnz .L045decrypt_loop 1651.L044decrypt_finish: 1652 movl 60(%esp),%ebp 1653 andl $7,%ebp 1654 jz .L033finish 1655 movl (%esi),%eax 1656 movl 4(%esi),%ebx 1657 movl %eax,16(%esp) 1658 movl %ebx,20(%esp) 1659 call .L_DES_decrypt3_begin 1660 movl 16(%esp),%eax 1661 movl 20(%esp),%ebx 1662 movl 24(%esp),%ecx 1663 movl 28(%esp),%edx 1664 xorl %eax,%ecx 1665 xorl %ebx,%edx 1666 movl (%esi),%eax 1667 movl 4(%esi),%ebx 1668.L046dj7: 1669 rorl $16,%edx 1670 movb %dl,6(%edi) 1671 shrl $16,%edx 1672.L047dj6: 1673 movb %dh,5(%edi) 1674.L048dj5: 1675 movb %dl,4(%edi) 1676.L049dj4: 1677 movl %ecx,(%edi) 1678 jmp .L050djend 1679.L051dj3: 1680 rorl $16,%ecx 1681 movb %cl,2(%edi) 1682 shll $16,%ecx 1683.L052dj2: 1684 movb %ch,1(%esi) 1685.L053dj1: 1686 movb %cl,(%esi) 1687.L050djend: 1688 jmp .L033finish 1689.L033finish: 1690 movl 76(%esp),%ecx 1691 addl $32,%esp 1692 movl %eax,(%ecx) 1693 movl %ebx,4(%ecx) 1694 popl %edi 1695 popl %esi 1696 popl %ebx 1697 popl %ebp 1698 ret 1699.align 64 1700.L035cbc_enc_jmp_table: 1701.long 0 1702.long .L043ej1-.L034PIC_point 1703.long .L042ej2-.L034PIC_point 1704.long .L041ej3-.L034PIC_point 1705.long .L039ej4-.L034PIC_point 1706.long .L038ej5-.L034PIC_point 1707.long .L037ej6-.L034PIC_point 1708.long .L036ej7-.L034PIC_point 1709.align 64 1710.size DES_ede3_cbc_encrypt,.-.L_DES_ede3_cbc_encrypt_begin 1711.align 64 1712DES_SPtrans: 1713.long 34080768,524288,33554434,34080770 1714.long 33554432,526338,524290,33554434 1715.long 526338,34080768,34078720,2050 1716.long 33556482,33554432,0,524290 1717.long 524288,2,33556480,526336 1718.long 34080770,34078720,2050,33556480 1719.long 2,2048,526336,34078722 1720.long 2048,33556482,34078722,0 1721.long 0,34080770,33556480,524290 1722.long 34080768,524288,2050,33556480 1723.long 34078722,2048,526336,33554434 1724.long 526338,2,33554434,34078720 1725.long 34080770,526336,34078720,33556482 1726.long 33554432,2050,524290,0 1727.long 524288,33554432,33556482,34080768 1728.long 2,34078722,2048,526338 1729.long 1074823184,0,1081344,1074790400 1730.long 1073741840,32784,1073774592,1081344 1731.long 32768,1074790416,16,1073774592 1732.long 1048592,1074823168,1074790400,16 1733.long 1048576,1073774608,1074790416,32768 1734.long 1081360,1073741824,0,1048592 1735.long 1073774608,1081360,1074823168,1073741840 1736.long 1073741824,1048576,32784,1074823184 1737.long 1048592,1074823168,1073774592,1081360 1738.long 1074823184,1048592,1073741840,0 1739.long 1073741824,32784,1048576,1074790416 1740.long 32768,1073741824,1081360,1073774608 1741.long 1074823168,32768,0,1073741840 1742.long 16,1074823184,1081344,1074790400 1743.long 1074790416,1048576,32784,1073774592 1744.long 1073774608,16,1074790400,1081344 1745.long 67108865,67371264,256,67109121 1746.long 262145,67108864,67109121,262400 1747.long 67109120,262144,67371008,1 1748.long 67371265,257,1,67371009 1749.long 0,262145,67371264,256 1750.long 257,67371265,262144,67108865 1751.long 67371009,67109120,262401,67371008 1752.long 262400,0,67108864,262401 1753.long 67371264,256,1,262144 1754.long 257,262145,67371008,67109121 1755.long 0,67371264,262400,67371009 1756.long 262145,67108864,67371265,1 1757.long 262401,67108865,67108864,67371265 1758.long 262144,67109120,67109121,262400 1759.long 67109120,0,67371009,257 1760.long 67108865,262401,256,67371008 1761.long 4198408,268439552,8,272633864 1762.long 0,272629760,268439560,4194312 1763.long 272633856,268435464,268435456,4104 1764.long 268435464,4198408,4194304,268435456 1765.long 272629768,4198400,4096,8 1766.long 4198400,268439560,272629760,4096 1767.long 4104,0,4194312,272633856 1768.long 268439552,272629768,272633864,4194304 1769.long 272629768,4104,4194304,268435464 1770.long 4198400,268439552,8,272629760 1771.long 268439560,0,4096,4194312 1772.long 0,272629768,272633856,4096 1773.long 268435456,272633864,4198408,4194304 1774.long 272633864,8,268439552,4198408 1775.long 4194312,4198400,272629760,268439560 1776.long 4104,268435456,268435464,272633856 1777.long 134217728,65536,1024,134284320 1778.long 134283296,134218752,66592,134283264 1779.long 65536,32,134217760,66560 1780.long 134218784,134283296,134284288,0 1781.long 66560,134217728,65568,1056 1782.long 134218752,66592,0,134217760 1783.long 32,134218784,134284320,65568 1784.long 134283264,1024,1056,134284288 1785.long 134284288,134218784,65568,134283264 1786.long 65536,32,134217760,134218752 1787.long 134217728,66560,134284320,0 1788.long 66592,134217728,1024,65568 1789.long 134218784,1024,0,134284320 1790.long 134283296,134284288,1056,65536 1791.long 66560,134283296,134218752,1056 1792.long 32,66592,134283264,134217760 1793.long 2147483712,2097216,0,2149588992 1794.long 2097216,8192,2147491904,2097152 1795.long 8256,2149589056,2105344,2147483648 1796.long 2147491840,2147483712,2149580800,2105408 1797.long 2097152,2147491904,2149580864,0 1798.long 8192,64,2149588992,2149580864 1799.long 2149589056,2149580800,2147483648,8256 1800.long 64,2105344,2105408,2147491840 1801.long 8256,2147483648,2147491840,2105408 1802.long 2149588992,2097216,0,2147491840 1803.long 2147483648,8192,2149580864,2097152 1804.long 2097216,2149589056,2105344,64 1805.long 2149589056,2105344,2097152,2147491904 1806.long 2147483712,2149580800,2105408,0 1807.long 8192,2147483712,2147491904,2149588992 1808.long 2149580800,8256,64,2149580864 1809.long 16384,512,16777728,16777220 1810.long 16794116,16388,16896,0 1811.long 16777216,16777732,516,16793600 1812.long 4,16794112,16793600,516 1813.long 16777732,16384,16388,16794116 1814.long 0,16777728,16777220,16896 1815.long 16793604,16900,16794112,4 1816.long 16900,16793604,512,16777216 1817.long 16900,16793600,16793604,516 1818.long 16384,512,16777216,16793604 1819.long 16777732,16900,16896,0 1820.long 512,16777220,4,16777728 1821.long 0,16777732,16777728,16896 1822.long 516,16384,16794116,16777216 1823.long 16794112,4,16388,16794116 1824.long 16777220,16794112,16793600,16388 1825.long 545259648,545390592,131200,0 1826.long 537001984,8388736,545259520,545390720 1827.long 128,536870912,8519680,131200 1828.long 8519808,537002112,536871040,545259520 1829.long 131072,8519808,8388736,537001984 1830.long 545390720,536871040,0,8519680 1831.long 536870912,8388608,537002112,545259648 1832.long 8388608,131072,545390592,128 1833.long 8388608,131072,536871040,545390720 1834.long 131200,536870912,0,8519680 1835.long 545259648,537002112,537001984,8388736 1836.long 545390592,128,8388736,537001984 1837.long 545390720,8388608,545259520,536871040 1838.long 8519680,131200,537002112,545259520 1839.long 128,545390592,8519808,0 1840.long 536870912,545259648,131072,8519808 1841#else 1842.file "des-586.S" 1843.text 1844.globl DES_SPtrans 1845.type _x86_DES_encrypt,@function 1846.align 16 1847_x86_DES_encrypt: 1848 pushl %ecx 1849 1850 movl (%ecx),%eax 1851 xorl %ebx,%ebx 1852 movl 4(%ecx),%edx 1853 xorl %esi,%eax 1854 xorl %ecx,%ecx 1855 xorl %esi,%edx 1856 andl $0xfcfcfcfc,%eax 1857 andl $0xcfcfcfcf,%edx 1858 movb %al,%bl 1859 movb %ah,%cl 1860 rorl $4,%edx 1861 xorl (%ebp,%ebx,1),%edi 1862 movb %dl,%bl 1863 xorl 0x200(%ebp,%ecx,1),%edi 1864 movb %dh,%cl 1865 shrl $16,%eax 1866 xorl 0x100(%ebp,%ebx,1),%edi 1867 movb %ah,%bl 1868 shrl $16,%edx 1869 xorl 0x300(%ebp,%ecx,1),%edi 1870 movb %dh,%cl 1871 andl $0xff,%eax 1872 andl $0xff,%edx 1873 xorl 0x600(%ebp,%ebx,1),%edi 1874 xorl 0x700(%ebp,%ecx,1),%edi 1875 movl (%esp),%ecx 1876 xorl 0x400(%ebp,%eax,1),%edi 1877 xorl 0x500(%ebp,%edx,1),%edi 1878 1879 movl 8(%ecx),%eax 1880 xorl %ebx,%ebx 1881 movl 12(%ecx),%edx 1882 xorl %edi,%eax 1883 xorl %ecx,%ecx 1884 xorl %edi,%edx 1885 andl $0xfcfcfcfc,%eax 1886 andl $0xcfcfcfcf,%edx 1887 movb %al,%bl 1888 movb %ah,%cl 1889 rorl $4,%edx 1890 xorl (%ebp,%ebx,1),%esi 1891 movb %dl,%bl 1892 xorl 0x200(%ebp,%ecx,1),%esi 1893 movb %dh,%cl 1894 shrl $16,%eax 1895 xorl 0x100(%ebp,%ebx,1),%esi 1896 movb %ah,%bl 1897 shrl $16,%edx 1898 xorl 0x300(%ebp,%ecx,1),%esi 1899 movb %dh,%cl 1900 andl $0xff,%eax 1901 andl $0xff,%edx 1902 xorl 0x600(%ebp,%ebx,1),%esi 1903 xorl 0x700(%ebp,%ecx,1),%esi 1904 movl (%esp),%ecx 1905 xorl 0x400(%ebp,%eax,1),%esi 1906 xorl 0x500(%ebp,%edx,1),%esi 1907 1908 movl 16(%ecx),%eax 1909 xorl %ebx,%ebx 1910 movl 20(%ecx),%edx 1911 xorl %esi,%eax 1912 xorl %ecx,%ecx 1913 xorl %esi,%edx 1914 andl $0xfcfcfcfc,%eax 1915 andl $0xcfcfcfcf,%edx 1916 movb %al,%bl 1917 movb %ah,%cl 1918 rorl $4,%edx 1919 xorl (%ebp,%ebx,1),%edi 1920 movb %dl,%bl 1921 xorl 0x200(%ebp,%ecx,1),%edi 1922 movb %dh,%cl 1923 shrl $16,%eax 1924 xorl 0x100(%ebp,%ebx,1),%edi 1925 movb %ah,%bl 1926 shrl $16,%edx 1927 xorl 0x300(%ebp,%ecx,1),%edi 1928 movb %dh,%cl 1929 andl $0xff,%eax 1930 andl $0xff,%edx 1931 xorl 0x600(%ebp,%ebx,1),%edi 1932 xorl 0x700(%ebp,%ecx,1),%edi 1933 movl (%esp),%ecx 1934 xorl 0x400(%ebp,%eax,1),%edi 1935 xorl 0x500(%ebp,%edx,1),%edi 1936 1937 movl 24(%ecx),%eax 1938 xorl %ebx,%ebx 1939 movl 28(%ecx),%edx 1940 xorl %edi,%eax 1941 xorl %ecx,%ecx 1942 xorl %edi,%edx 1943 andl $0xfcfcfcfc,%eax 1944 andl $0xcfcfcfcf,%edx 1945 movb %al,%bl 1946 movb %ah,%cl 1947 rorl $4,%edx 1948 xorl (%ebp,%ebx,1),%esi 1949 movb %dl,%bl 1950 xorl 0x200(%ebp,%ecx,1),%esi 1951 movb %dh,%cl 1952 shrl $16,%eax 1953 xorl 0x100(%ebp,%ebx,1),%esi 1954 movb %ah,%bl 1955 shrl $16,%edx 1956 xorl 0x300(%ebp,%ecx,1),%esi 1957 movb %dh,%cl 1958 andl $0xff,%eax 1959 andl $0xff,%edx 1960 xorl 0x600(%ebp,%ebx,1),%esi 1961 xorl 0x700(%ebp,%ecx,1),%esi 1962 movl (%esp),%ecx 1963 xorl 0x400(%ebp,%eax,1),%esi 1964 xorl 0x500(%ebp,%edx,1),%esi 1965 1966 movl 32(%ecx),%eax 1967 xorl %ebx,%ebx 1968 movl 36(%ecx),%edx 1969 xorl %esi,%eax 1970 xorl %ecx,%ecx 1971 xorl %esi,%edx 1972 andl $0xfcfcfcfc,%eax 1973 andl $0xcfcfcfcf,%edx 1974 movb %al,%bl 1975 movb %ah,%cl 1976 rorl $4,%edx 1977 xorl (%ebp,%ebx,1),%edi 1978 movb %dl,%bl 1979 xorl 0x200(%ebp,%ecx,1),%edi 1980 movb %dh,%cl 1981 shrl $16,%eax 1982 xorl 0x100(%ebp,%ebx,1),%edi 1983 movb %ah,%bl 1984 shrl $16,%edx 1985 xorl 0x300(%ebp,%ecx,1),%edi 1986 movb %dh,%cl 1987 andl $0xff,%eax 1988 andl $0xff,%edx 1989 xorl 0x600(%ebp,%ebx,1),%edi 1990 xorl 0x700(%ebp,%ecx,1),%edi 1991 movl (%esp),%ecx 1992 xorl 0x400(%ebp,%eax,1),%edi 1993 xorl 0x500(%ebp,%edx,1),%edi 1994 1995 movl 40(%ecx),%eax 1996 xorl %ebx,%ebx 1997 movl 44(%ecx),%edx 1998 xorl %edi,%eax 1999 xorl %ecx,%ecx 2000 xorl %edi,%edx 2001 andl $0xfcfcfcfc,%eax 2002 andl $0xcfcfcfcf,%edx 2003 movb %al,%bl 2004 movb %ah,%cl 2005 rorl $4,%edx 2006 xorl (%ebp,%ebx,1),%esi 2007 movb %dl,%bl 2008 xorl 0x200(%ebp,%ecx,1),%esi 2009 movb %dh,%cl 2010 shrl $16,%eax 2011 xorl 0x100(%ebp,%ebx,1),%esi 2012 movb %ah,%bl 2013 shrl $16,%edx 2014 xorl 0x300(%ebp,%ecx,1),%esi 2015 movb %dh,%cl 2016 andl $0xff,%eax 2017 andl $0xff,%edx 2018 xorl 0x600(%ebp,%ebx,1),%esi 2019 xorl 0x700(%ebp,%ecx,1),%esi 2020 movl (%esp),%ecx 2021 xorl 0x400(%ebp,%eax,1),%esi 2022 xorl 0x500(%ebp,%edx,1),%esi 2023 2024 movl 48(%ecx),%eax 2025 xorl %ebx,%ebx 2026 movl 52(%ecx),%edx 2027 xorl %esi,%eax 2028 xorl %ecx,%ecx 2029 xorl %esi,%edx 2030 andl $0xfcfcfcfc,%eax 2031 andl $0xcfcfcfcf,%edx 2032 movb %al,%bl 2033 movb %ah,%cl 2034 rorl $4,%edx 2035 xorl (%ebp,%ebx,1),%edi 2036 movb %dl,%bl 2037 xorl 0x200(%ebp,%ecx,1),%edi 2038 movb %dh,%cl 2039 shrl $16,%eax 2040 xorl 0x100(%ebp,%ebx,1),%edi 2041 movb %ah,%bl 2042 shrl $16,%edx 2043 xorl 0x300(%ebp,%ecx,1),%edi 2044 movb %dh,%cl 2045 andl $0xff,%eax 2046 andl $0xff,%edx 2047 xorl 0x600(%ebp,%ebx,1),%edi 2048 xorl 0x700(%ebp,%ecx,1),%edi 2049 movl (%esp),%ecx 2050 xorl 0x400(%ebp,%eax,1),%edi 2051 xorl 0x500(%ebp,%edx,1),%edi 2052 2053 movl 56(%ecx),%eax 2054 xorl %ebx,%ebx 2055 movl 60(%ecx),%edx 2056 xorl %edi,%eax 2057 xorl %ecx,%ecx 2058 xorl %edi,%edx 2059 andl $0xfcfcfcfc,%eax 2060 andl $0xcfcfcfcf,%edx 2061 movb %al,%bl 2062 movb %ah,%cl 2063 rorl $4,%edx 2064 xorl (%ebp,%ebx,1),%esi 2065 movb %dl,%bl 2066 xorl 0x200(%ebp,%ecx,1),%esi 2067 movb %dh,%cl 2068 shrl $16,%eax 2069 xorl 0x100(%ebp,%ebx,1),%esi 2070 movb %ah,%bl 2071 shrl $16,%edx 2072 xorl 0x300(%ebp,%ecx,1),%esi 2073 movb %dh,%cl 2074 andl $0xff,%eax 2075 andl $0xff,%edx 2076 xorl 0x600(%ebp,%ebx,1),%esi 2077 xorl 0x700(%ebp,%ecx,1),%esi 2078 movl (%esp),%ecx 2079 xorl 0x400(%ebp,%eax,1),%esi 2080 xorl 0x500(%ebp,%edx,1),%esi 2081 2082 movl 64(%ecx),%eax 2083 xorl %ebx,%ebx 2084 movl 68(%ecx),%edx 2085 xorl %esi,%eax 2086 xorl %ecx,%ecx 2087 xorl %esi,%edx 2088 andl $0xfcfcfcfc,%eax 2089 andl $0xcfcfcfcf,%edx 2090 movb %al,%bl 2091 movb %ah,%cl 2092 rorl $4,%edx 2093 xorl (%ebp,%ebx,1),%edi 2094 movb %dl,%bl 2095 xorl 0x200(%ebp,%ecx,1),%edi 2096 movb %dh,%cl 2097 shrl $16,%eax 2098 xorl 0x100(%ebp,%ebx,1),%edi 2099 movb %ah,%bl 2100 shrl $16,%edx 2101 xorl 0x300(%ebp,%ecx,1),%edi 2102 movb %dh,%cl 2103 andl $0xff,%eax 2104 andl $0xff,%edx 2105 xorl 0x600(%ebp,%ebx,1),%edi 2106 xorl 0x700(%ebp,%ecx,1),%edi 2107 movl (%esp),%ecx 2108 xorl 0x400(%ebp,%eax,1),%edi 2109 xorl 0x500(%ebp,%edx,1),%edi 2110 2111 movl 72(%ecx),%eax 2112 xorl %ebx,%ebx 2113 movl 76(%ecx),%edx 2114 xorl %edi,%eax 2115 xorl %ecx,%ecx 2116 xorl %edi,%edx 2117 andl $0xfcfcfcfc,%eax 2118 andl $0xcfcfcfcf,%edx 2119 movb %al,%bl 2120 movb %ah,%cl 2121 rorl $4,%edx 2122 xorl (%ebp,%ebx,1),%esi 2123 movb %dl,%bl 2124 xorl 0x200(%ebp,%ecx,1),%esi 2125 movb %dh,%cl 2126 shrl $16,%eax 2127 xorl 0x100(%ebp,%ebx,1),%esi 2128 movb %ah,%bl 2129 shrl $16,%edx 2130 xorl 0x300(%ebp,%ecx,1),%esi 2131 movb %dh,%cl 2132 andl $0xff,%eax 2133 andl $0xff,%edx 2134 xorl 0x600(%ebp,%ebx,1),%esi 2135 xorl 0x700(%ebp,%ecx,1),%esi 2136 movl (%esp),%ecx 2137 xorl 0x400(%ebp,%eax,1),%esi 2138 xorl 0x500(%ebp,%edx,1),%esi 2139 2140 movl 80(%ecx),%eax 2141 xorl %ebx,%ebx 2142 movl 84(%ecx),%edx 2143 xorl %esi,%eax 2144 xorl %ecx,%ecx 2145 xorl %esi,%edx 2146 andl $0xfcfcfcfc,%eax 2147 andl $0xcfcfcfcf,%edx 2148 movb %al,%bl 2149 movb %ah,%cl 2150 rorl $4,%edx 2151 xorl (%ebp,%ebx,1),%edi 2152 movb %dl,%bl 2153 xorl 0x200(%ebp,%ecx,1),%edi 2154 movb %dh,%cl 2155 shrl $16,%eax 2156 xorl 0x100(%ebp,%ebx,1),%edi 2157 movb %ah,%bl 2158 shrl $16,%edx 2159 xorl 0x300(%ebp,%ecx,1),%edi 2160 movb %dh,%cl 2161 andl $0xff,%eax 2162 andl $0xff,%edx 2163 xorl 0x600(%ebp,%ebx,1),%edi 2164 xorl 0x700(%ebp,%ecx,1),%edi 2165 movl (%esp),%ecx 2166 xorl 0x400(%ebp,%eax,1),%edi 2167 xorl 0x500(%ebp,%edx,1),%edi 2168 2169 movl 88(%ecx),%eax 2170 xorl %ebx,%ebx 2171 movl 92(%ecx),%edx 2172 xorl %edi,%eax 2173 xorl %ecx,%ecx 2174 xorl %edi,%edx 2175 andl $0xfcfcfcfc,%eax 2176 andl $0xcfcfcfcf,%edx 2177 movb %al,%bl 2178 movb %ah,%cl 2179 rorl $4,%edx 2180 xorl (%ebp,%ebx,1),%esi 2181 movb %dl,%bl 2182 xorl 0x200(%ebp,%ecx,1),%esi 2183 movb %dh,%cl 2184 shrl $16,%eax 2185 xorl 0x100(%ebp,%ebx,1),%esi 2186 movb %ah,%bl 2187 shrl $16,%edx 2188 xorl 0x300(%ebp,%ecx,1),%esi 2189 movb %dh,%cl 2190 andl $0xff,%eax 2191 andl $0xff,%edx 2192 xorl 0x600(%ebp,%ebx,1),%esi 2193 xorl 0x700(%ebp,%ecx,1),%esi 2194 movl (%esp),%ecx 2195 xorl 0x400(%ebp,%eax,1),%esi 2196 xorl 0x500(%ebp,%edx,1),%esi 2197 2198 movl 96(%ecx),%eax 2199 xorl %ebx,%ebx 2200 movl 100(%ecx),%edx 2201 xorl %esi,%eax 2202 xorl %ecx,%ecx 2203 xorl %esi,%edx 2204 andl $0xfcfcfcfc,%eax 2205 andl $0xcfcfcfcf,%edx 2206 movb %al,%bl 2207 movb %ah,%cl 2208 rorl $4,%edx 2209 xorl (%ebp,%ebx,1),%edi 2210 movb %dl,%bl 2211 xorl 0x200(%ebp,%ecx,1),%edi 2212 movb %dh,%cl 2213 shrl $16,%eax 2214 xorl 0x100(%ebp,%ebx,1),%edi 2215 movb %ah,%bl 2216 shrl $16,%edx 2217 xorl 0x300(%ebp,%ecx,1),%edi 2218 movb %dh,%cl 2219 andl $0xff,%eax 2220 andl $0xff,%edx 2221 xorl 0x600(%ebp,%ebx,1),%edi 2222 xorl 0x700(%ebp,%ecx,1),%edi 2223 movl (%esp),%ecx 2224 xorl 0x400(%ebp,%eax,1),%edi 2225 xorl 0x500(%ebp,%edx,1),%edi 2226 2227 movl 104(%ecx),%eax 2228 xorl %ebx,%ebx 2229 movl 108(%ecx),%edx 2230 xorl %edi,%eax 2231 xorl %ecx,%ecx 2232 xorl %edi,%edx 2233 andl $0xfcfcfcfc,%eax 2234 andl $0xcfcfcfcf,%edx 2235 movb %al,%bl 2236 movb %ah,%cl 2237 rorl $4,%edx 2238 xorl (%ebp,%ebx,1),%esi 2239 movb %dl,%bl 2240 xorl 0x200(%ebp,%ecx,1),%esi 2241 movb %dh,%cl 2242 shrl $16,%eax 2243 xorl 0x100(%ebp,%ebx,1),%esi 2244 movb %ah,%bl 2245 shrl $16,%edx 2246 xorl 0x300(%ebp,%ecx,1),%esi 2247 movb %dh,%cl 2248 andl $0xff,%eax 2249 andl $0xff,%edx 2250 xorl 0x600(%ebp,%ebx,1),%esi 2251 xorl 0x700(%ebp,%ecx,1),%esi 2252 movl (%esp),%ecx 2253 xorl 0x400(%ebp,%eax,1),%esi 2254 xorl 0x500(%ebp,%edx,1),%esi 2255 2256 movl 112(%ecx),%eax 2257 xorl %ebx,%ebx 2258 movl 116(%ecx),%edx 2259 xorl %esi,%eax 2260 xorl %ecx,%ecx 2261 xorl %esi,%edx 2262 andl $0xfcfcfcfc,%eax 2263 andl $0xcfcfcfcf,%edx 2264 movb %al,%bl 2265 movb %ah,%cl 2266 rorl $4,%edx 2267 xorl (%ebp,%ebx,1),%edi 2268 movb %dl,%bl 2269 xorl 0x200(%ebp,%ecx,1),%edi 2270 movb %dh,%cl 2271 shrl $16,%eax 2272 xorl 0x100(%ebp,%ebx,1),%edi 2273 movb %ah,%bl 2274 shrl $16,%edx 2275 xorl 0x300(%ebp,%ecx,1),%edi 2276 movb %dh,%cl 2277 andl $0xff,%eax 2278 andl $0xff,%edx 2279 xorl 0x600(%ebp,%ebx,1),%edi 2280 xorl 0x700(%ebp,%ecx,1),%edi 2281 movl (%esp),%ecx 2282 xorl 0x400(%ebp,%eax,1),%edi 2283 xorl 0x500(%ebp,%edx,1),%edi 2284 2285 movl 120(%ecx),%eax 2286 xorl %ebx,%ebx 2287 movl 124(%ecx),%edx 2288 xorl %edi,%eax 2289 xorl %ecx,%ecx 2290 xorl %edi,%edx 2291 andl $0xfcfcfcfc,%eax 2292 andl $0xcfcfcfcf,%edx 2293 movb %al,%bl 2294 movb %ah,%cl 2295 rorl $4,%edx 2296 xorl (%ebp,%ebx,1),%esi 2297 movb %dl,%bl 2298 xorl 0x200(%ebp,%ecx,1),%esi 2299 movb %dh,%cl 2300 shrl $16,%eax 2301 xorl 0x100(%ebp,%ebx,1),%esi 2302 movb %ah,%bl 2303 shrl $16,%edx 2304 xorl 0x300(%ebp,%ecx,1),%esi 2305 movb %dh,%cl 2306 andl $0xff,%eax 2307 andl $0xff,%edx 2308 xorl 0x600(%ebp,%ebx,1),%esi 2309 xorl 0x700(%ebp,%ecx,1),%esi 2310 movl (%esp),%ecx 2311 xorl 0x400(%ebp,%eax,1),%esi 2312 xorl 0x500(%ebp,%edx,1),%esi 2313 addl $4,%esp 2314 ret 2315.size _x86_DES_encrypt,.-_x86_DES_encrypt 2316.type _x86_DES_decrypt,@function 2317.align 16 2318_x86_DES_decrypt: 2319 pushl %ecx 2320 2321 movl 120(%ecx),%eax 2322 xorl %ebx,%ebx 2323 movl 124(%ecx),%edx 2324 xorl %esi,%eax 2325 xorl %ecx,%ecx 2326 xorl %esi,%edx 2327 andl $0xfcfcfcfc,%eax 2328 andl $0xcfcfcfcf,%edx 2329 movb %al,%bl 2330 movb %ah,%cl 2331 rorl $4,%edx 2332 xorl (%ebp,%ebx,1),%edi 2333 movb %dl,%bl 2334 xorl 0x200(%ebp,%ecx,1),%edi 2335 movb %dh,%cl 2336 shrl $16,%eax 2337 xorl 0x100(%ebp,%ebx,1),%edi 2338 movb %ah,%bl 2339 shrl $16,%edx 2340 xorl 0x300(%ebp,%ecx,1),%edi 2341 movb %dh,%cl 2342 andl $0xff,%eax 2343 andl $0xff,%edx 2344 xorl 0x600(%ebp,%ebx,1),%edi 2345 xorl 0x700(%ebp,%ecx,1),%edi 2346 movl (%esp),%ecx 2347 xorl 0x400(%ebp,%eax,1),%edi 2348 xorl 0x500(%ebp,%edx,1),%edi 2349 2350 movl 112(%ecx),%eax 2351 xorl %ebx,%ebx 2352 movl 116(%ecx),%edx 2353 xorl %edi,%eax 2354 xorl %ecx,%ecx 2355 xorl %edi,%edx 2356 andl $0xfcfcfcfc,%eax 2357 andl $0xcfcfcfcf,%edx 2358 movb %al,%bl 2359 movb %ah,%cl 2360 rorl $4,%edx 2361 xorl (%ebp,%ebx,1),%esi 2362 movb %dl,%bl 2363 xorl 0x200(%ebp,%ecx,1),%esi 2364 movb %dh,%cl 2365 shrl $16,%eax 2366 xorl 0x100(%ebp,%ebx,1),%esi 2367 movb %ah,%bl 2368 shrl $16,%edx 2369 xorl 0x300(%ebp,%ecx,1),%esi 2370 movb %dh,%cl 2371 andl $0xff,%eax 2372 andl $0xff,%edx 2373 xorl 0x600(%ebp,%ebx,1),%esi 2374 xorl 0x700(%ebp,%ecx,1),%esi 2375 movl (%esp),%ecx 2376 xorl 0x400(%ebp,%eax,1),%esi 2377 xorl 0x500(%ebp,%edx,1),%esi 2378 2379 movl 104(%ecx),%eax 2380 xorl %ebx,%ebx 2381 movl 108(%ecx),%edx 2382 xorl %esi,%eax 2383 xorl %ecx,%ecx 2384 xorl %esi,%edx 2385 andl $0xfcfcfcfc,%eax 2386 andl $0xcfcfcfcf,%edx 2387 movb %al,%bl 2388 movb %ah,%cl 2389 rorl $4,%edx 2390 xorl (%ebp,%ebx,1),%edi 2391 movb %dl,%bl 2392 xorl 0x200(%ebp,%ecx,1),%edi 2393 movb %dh,%cl 2394 shrl $16,%eax 2395 xorl 0x100(%ebp,%ebx,1),%edi 2396 movb %ah,%bl 2397 shrl $16,%edx 2398 xorl 0x300(%ebp,%ecx,1),%edi 2399 movb %dh,%cl 2400 andl $0xff,%eax 2401 andl $0xff,%edx 2402 xorl 0x600(%ebp,%ebx,1),%edi 2403 xorl 0x700(%ebp,%ecx,1),%edi 2404 movl (%esp),%ecx 2405 xorl 0x400(%ebp,%eax,1),%edi 2406 xorl 0x500(%ebp,%edx,1),%edi 2407 2408 movl 96(%ecx),%eax 2409 xorl %ebx,%ebx 2410 movl 100(%ecx),%edx 2411 xorl %edi,%eax 2412 xorl %ecx,%ecx 2413 xorl %edi,%edx 2414 andl $0xfcfcfcfc,%eax 2415 andl $0xcfcfcfcf,%edx 2416 movb %al,%bl 2417 movb %ah,%cl 2418 rorl $4,%edx 2419 xorl (%ebp,%ebx,1),%esi 2420 movb %dl,%bl 2421 xorl 0x200(%ebp,%ecx,1),%esi 2422 movb %dh,%cl 2423 shrl $16,%eax 2424 xorl 0x100(%ebp,%ebx,1),%esi 2425 movb %ah,%bl 2426 shrl $16,%edx 2427 xorl 0x300(%ebp,%ecx,1),%esi 2428 movb %dh,%cl 2429 andl $0xff,%eax 2430 andl $0xff,%edx 2431 xorl 0x600(%ebp,%ebx,1),%esi 2432 xorl 0x700(%ebp,%ecx,1),%esi 2433 movl (%esp),%ecx 2434 xorl 0x400(%ebp,%eax,1),%esi 2435 xorl 0x500(%ebp,%edx,1),%esi 2436 2437 movl 88(%ecx),%eax 2438 xorl %ebx,%ebx 2439 movl 92(%ecx),%edx 2440 xorl %esi,%eax 2441 xorl %ecx,%ecx 2442 xorl %esi,%edx 2443 andl $0xfcfcfcfc,%eax 2444 andl $0xcfcfcfcf,%edx 2445 movb %al,%bl 2446 movb %ah,%cl 2447 rorl $4,%edx 2448 xorl (%ebp,%ebx,1),%edi 2449 movb %dl,%bl 2450 xorl 0x200(%ebp,%ecx,1),%edi 2451 movb %dh,%cl 2452 shrl $16,%eax 2453 xorl 0x100(%ebp,%ebx,1),%edi 2454 movb %ah,%bl 2455 shrl $16,%edx 2456 xorl 0x300(%ebp,%ecx,1),%edi 2457 movb %dh,%cl 2458 andl $0xff,%eax 2459 andl $0xff,%edx 2460 xorl 0x600(%ebp,%ebx,1),%edi 2461 xorl 0x700(%ebp,%ecx,1),%edi 2462 movl (%esp),%ecx 2463 xorl 0x400(%ebp,%eax,1),%edi 2464 xorl 0x500(%ebp,%edx,1),%edi 2465 2466 movl 80(%ecx),%eax 2467 xorl %ebx,%ebx 2468 movl 84(%ecx),%edx 2469 xorl %edi,%eax 2470 xorl %ecx,%ecx 2471 xorl %edi,%edx 2472 andl $0xfcfcfcfc,%eax 2473 andl $0xcfcfcfcf,%edx 2474 movb %al,%bl 2475 movb %ah,%cl 2476 rorl $4,%edx 2477 xorl (%ebp,%ebx,1),%esi 2478 movb %dl,%bl 2479 xorl 0x200(%ebp,%ecx,1),%esi 2480 movb %dh,%cl 2481 shrl $16,%eax 2482 xorl 0x100(%ebp,%ebx,1),%esi 2483 movb %ah,%bl 2484 shrl $16,%edx 2485 xorl 0x300(%ebp,%ecx,1),%esi 2486 movb %dh,%cl 2487 andl $0xff,%eax 2488 andl $0xff,%edx 2489 xorl 0x600(%ebp,%ebx,1),%esi 2490 xorl 0x700(%ebp,%ecx,1),%esi 2491 movl (%esp),%ecx 2492 xorl 0x400(%ebp,%eax,1),%esi 2493 xorl 0x500(%ebp,%edx,1),%esi 2494 2495 movl 72(%ecx),%eax 2496 xorl %ebx,%ebx 2497 movl 76(%ecx),%edx 2498 xorl %esi,%eax 2499 xorl %ecx,%ecx 2500 xorl %esi,%edx 2501 andl $0xfcfcfcfc,%eax 2502 andl $0xcfcfcfcf,%edx 2503 movb %al,%bl 2504 movb %ah,%cl 2505 rorl $4,%edx 2506 xorl (%ebp,%ebx,1),%edi 2507 movb %dl,%bl 2508 xorl 0x200(%ebp,%ecx,1),%edi 2509 movb %dh,%cl 2510 shrl $16,%eax 2511 xorl 0x100(%ebp,%ebx,1),%edi 2512 movb %ah,%bl 2513 shrl $16,%edx 2514 xorl 0x300(%ebp,%ecx,1),%edi 2515 movb %dh,%cl 2516 andl $0xff,%eax 2517 andl $0xff,%edx 2518 xorl 0x600(%ebp,%ebx,1),%edi 2519 xorl 0x700(%ebp,%ecx,1),%edi 2520 movl (%esp),%ecx 2521 xorl 0x400(%ebp,%eax,1),%edi 2522 xorl 0x500(%ebp,%edx,1),%edi 2523 2524 movl 64(%ecx),%eax 2525 xorl %ebx,%ebx 2526 movl 68(%ecx),%edx 2527 xorl %edi,%eax 2528 xorl %ecx,%ecx 2529 xorl %edi,%edx 2530 andl $0xfcfcfcfc,%eax 2531 andl $0xcfcfcfcf,%edx 2532 movb %al,%bl 2533 movb %ah,%cl 2534 rorl $4,%edx 2535 xorl (%ebp,%ebx,1),%esi 2536 movb %dl,%bl 2537 xorl 0x200(%ebp,%ecx,1),%esi 2538 movb %dh,%cl 2539 shrl $16,%eax 2540 xorl 0x100(%ebp,%ebx,1),%esi 2541 movb %ah,%bl 2542 shrl $16,%edx 2543 xorl 0x300(%ebp,%ecx,1),%esi 2544 movb %dh,%cl 2545 andl $0xff,%eax 2546 andl $0xff,%edx 2547 xorl 0x600(%ebp,%ebx,1),%esi 2548 xorl 0x700(%ebp,%ecx,1),%esi 2549 movl (%esp),%ecx 2550 xorl 0x400(%ebp,%eax,1),%esi 2551 xorl 0x500(%ebp,%edx,1),%esi 2552 2553 movl 56(%ecx),%eax 2554 xorl %ebx,%ebx 2555 movl 60(%ecx),%edx 2556 xorl %esi,%eax 2557 xorl %ecx,%ecx 2558 xorl %esi,%edx 2559 andl $0xfcfcfcfc,%eax 2560 andl $0xcfcfcfcf,%edx 2561 movb %al,%bl 2562 movb %ah,%cl 2563 rorl $4,%edx 2564 xorl (%ebp,%ebx,1),%edi 2565 movb %dl,%bl 2566 xorl 0x200(%ebp,%ecx,1),%edi 2567 movb %dh,%cl 2568 shrl $16,%eax 2569 xorl 0x100(%ebp,%ebx,1),%edi 2570 movb %ah,%bl 2571 shrl $16,%edx 2572 xorl 0x300(%ebp,%ecx,1),%edi 2573 movb %dh,%cl 2574 andl $0xff,%eax 2575 andl $0xff,%edx 2576 xorl 0x600(%ebp,%ebx,1),%edi 2577 xorl 0x700(%ebp,%ecx,1),%edi 2578 movl (%esp),%ecx 2579 xorl 0x400(%ebp,%eax,1),%edi 2580 xorl 0x500(%ebp,%edx,1),%edi 2581 2582 movl 48(%ecx),%eax 2583 xorl %ebx,%ebx 2584 movl 52(%ecx),%edx 2585 xorl %edi,%eax 2586 xorl %ecx,%ecx 2587 xorl %edi,%edx 2588 andl $0xfcfcfcfc,%eax 2589 andl $0xcfcfcfcf,%edx 2590 movb %al,%bl 2591 movb %ah,%cl 2592 rorl $4,%edx 2593 xorl (%ebp,%ebx,1),%esi 2594 movb %dl,%bl 2595 xorl 0x200(%ebp,%ecx,1),%esi 2596 movb %dh,%cl 2597 shrl $16,%eax 2598 xorl 0x100(%ebp,%ebx,1),%esi 2599 movb %ah,%bl 2600 shrl $16,%edx 2601 xorl 0x300(%ebp,%ecx,1),%esi 2602 movb %dh,%cl 2603 andl $0xff,%eax 2604 andl $0xff,%edx 2605 xorl 0x600(%ebp,%ebx,1),%esi 2606 xorl 0x700(%ebp,%ecx,1),%esi 2607 movl (%esp),%ecx 2608 xorl 0x400(%ebp,%eax,1),%esi 2609 xorl 0x500(%ebp,%edx,1),%esi 2610 2611 movl 40(%ecx),%eax 2612 xorl %ebx,%ebx 2613 movl 44(%ecx),%edx 2614 xorl %esi,%eax 2615 xorl %ecx,%ecx 2616 xorl %esi,%edx 2617 andl $0xfcfcfcfc,%eax 2618 andl $0xcfcfcfcf,%edx 2619 movb %al,%bl 2620 movb %ah,%cl 2621 rorl $4,%edx 2622 xorl (%ebp,%ebx,1),%edi 2623 movb %dl,%bl 2624 xorl 0x200(%ebp,%ecx,1),%edi 2625 movb %dh,%cl 2626 shrl $16,%eax 2627 xorl 0x100(%ebp,%ebx,1),%edi 2628 movb %ah,%bl 2629 shrl $16,%edx 2630 xorl 0x300(%ebp,%ecx,1),%edi 2631 movb %dh,%cl 2632 andl $0xff,%eax 2633 andl $0xff,%edx 2634 xorl 0x600(%ebp,%ebx,1),%edi 2635 xorl 0x700(%ebp,%ecx,1),%edi 2636 movl (%esp),%ecx 2637 xorl 0x400(%ebp,%eax,1),%edi 2638 xorl 0x500(%ebp,%edx,1),%edi 2639 2640 movl 32(%ecx),%eax 2641 xorl %ebx,%ebx 2642 movl 36(%ecx),%edx 2643 xorl %edi,%eax 2644 xorl %ecx,%ecx 2645 xorl %edi,%edx 2646 andl $0xfcfcfcfc,%eax 2647 andl $0xcfcfcfcf,%edx 2648 movb %al,%bl 2649 movb %ah,%cl 2650 rorl $4,%edx 2651 xorl (%ebp,%ebx,1),%esi 2652 movb %dl,%bl 2653 xorl 0x200(%ebp,%ecx,1),%esi 2654 movb %dh,%cl 2655 shrl $16,%eax 2656 xorl 0x100(%ebp,%ebx,1),%esi 2657 movb %ah,%bl 2658 shrl $16,%edx 2659 xorl 0x300(%ebp,%ecx,1),%esi 2660 movb %dh,%cl 2661 andl $0xff,%eax 2662 andl $0xff,%edx 2663 xorl 0x600(%ebp,%ebx,1),%esi 2664 xorl 0x700(%ebp,%ecx,1),%esi 2665 movl (%esp),%ecx 2666 xorl 0x400(%ebp,%eax,1),%esi 2667 xorl 0x500(%ebp,%edx,1),%esi 2668 2669 movl 24(%ecx),%eax 2670 xorl %ebx,%ebx 2671 movl 28(%ecx),%edx 2672 xorl %esi,%eax 2673 xorl %ecx,%ecx 2674 xorl %esi,%edx 2675 andl $0xfcfcfcfc,%eax 2676 andl $0xcfcfcfcf,%edx 2677 movb %al,%bl 2678 movb %ah,%cl 2679 rorl $4,%edx 2680 xorl (%ebp,%ebx,1),%edi 2681 movb %dl,%bl 2682 xorl 0x200(%ebp,%ecx,1),%edi 2683 movb %dh,%cl 2684 shrl $16,%eax 2685 xorl 0x100(%ebp,%ebx,1),%edi 2686 movb %ah,%bl 2687 shrl $16,%edx 2688 xorl 0x300(%ebp,%ecx,1),%edi 2689 movb %dh,%cl 2690 andl $0xff,%eax 2691 andl $0xff,%edx 2692 xorl 0x600(%ebp,%ebx,1),%edi 2693 xorl 0x700(%ebp,%ecx,1),%edi 2694 movl (%esp),%ecx 2695 xorl 0x400(%ebp,%eax,1),%edi 2696 xorl 0x500(%ebp,%edx,1),%edi 2697 2698 movl 16(%ecx),%eax 2699 xorl %ebx,%ebx 2700 movl 20(%ecx),%edx 2701 xorl %edi,%eax 2702 xorl %ecx,%ecx 2703 xorl %edi,%edx 2704 andl $0xfcfcfcfc,%eax 2705 andl $0xcfcfcfcf,%edx 2706 movb %al,%bl 2707 movb %ah,%cl 2708 rorl $4,%edx 2709 xorl (%ebp,%ebx,1),%esi 2710 movb %dl,%bl 2711 xorl 0x200(%ebp,%ecx,1),%esi 2712 movb %dh,%cl 2713 shrl $16,%eax 2714 xorl 0x100(%ebp,%ebx,1),%esi 2715 movb %ah,%bl 2716 shrl $16,%edx 2717 xorl 0x300(%ebp,%ecx,1),%esi 2718 movb %dh,%cl 2719 andl $0xff,%eax 2720 andl $0xff,%edx 2721 xorl 0x600(%ebp,%ebx,1),%esi 2722 xorl 0x700(%ebp,%ecx,1),%esi 2723 movl (%esp),%ecx 2724 xorl 0x400(%ebp,%eax,1),%esi 2725 xorl 0x500(%ebp,%edx,1),%esi 2726 2727 movl 8(%ecx),%eax 2728 xorl %ebx,%ebx 2729 movl 12(%ecx),%edx 2730 xorl %esi,%eax 2731 xorl %ecx,%ecx 2732 xorl %esi,%edx 2733 andl $0xfcfcfcfc,%eax 2734 andl $0xcfcfcfcf,%edx 2735 movb %al,%bl 2736 movb %ah,%cl 2737 rorl $4,%edx 2738 xorl (%ebp,%ebx,1),%edi 2739 movb %dl,%bl 2740 xorl 0x200(%ebp,%ecx,1),%edi 2741 movb %dh,%cl 2742 shrl $16,%eax 2743 xorl 0x100(%ebp,%ebx,1),%edi 2744 movb %ah,%bl 2745 shrl $16,%edx 2746 xorl 0x300(%ebp,%ecx,1),%edi 2747 movb %dh,%cl 2748 andl $0xff,%eax 2749 andl $0xff,%edx 2750 xorl 0x600(%ebp,%ebx,1),%edi 2751 xorl 0x700(%ebp,%ecx,1),%edi 2752 movl (%esp),%ecx 2753 xorl 0x400(%ebp,%eax,1),%edi 2754 xorl 0x500(%ebp,%edx,1),%edi 2755 2756 movl (%ecx),%eax 2757 xorl %ebx,%ebx 2758 movl 4(%ecx),%edx 2759 xorl %edi,%eax 2760 xorl %ecx,%ecx 2761 xorl %edi,%edx 2762 andl $0xfcfcfcfc,%eax 2763 andl $0xcfcfcfcf,%edx 2764 movb %al,%bl 2765 movb %ah,%cl 2766 rorl $4,%edx 2767 xorl (%ebp,%ebx,1),%esi 2768 movb %dl,%bl 2769 xorl 0x200(%ebp,%ecx,1),%esi 2770 movb %dh,%cl 2771 shrl $16,%eax 2772 xorl 0x100(%ebp,%ebx,1),%esi 2773 movb %ah,%bl 2774 shrl $16,%edx 2775 xorl 0x300(%ebp,%ecx,1),%esi 2776 movb %dh,%cl 2777 andl $0xff,%eax 2778 andl $0xff,%edx 2779 xorl 0x600(%ebp,%ebx,1),%esi 2780 xorl 0x700(%ebp,%ecx,1),%esi 2781 movl (%esp),%ecx 2782 xorl 0x400(%ebp,%eax,1),%esi 2783 xorl 0x500(%ebp,%edx,1),%esi 2784 addl $4,%esp 2785 ret 2786.size _x86_DES_decrypt,.-_x86_DES_decrypt 2787.globl DES_encrypt1 2788.type DES_encrypt1,@function 2789.align 16 2790DES_encrypt1: 2791.L_DES_encrypt1_begin: 2792 pushl %esi 2793 pushl %edi 2794 2795 2796 movl 12(%esp),%esi 2797 xorl %ecx,%ecx 2798 pushl %ebx 2799 pushl %ebp 2800 movl (%esi),%eax 2801 movl 28(%esp),%ebx 2802 movl 4(%esi),%edi 2803 2804 2805 roll $4,%eax 2806 movl %eax,%esi 2807 xorl %edi,%eax 2808 andl $0xf0f0f0f0,%eax 2809 xorl %eax,%esi 2810 xorl %eax,%edi 2811 2812 roll $20,%edi 2813 movl %edi,%eax 2814 xorl %esi,%edi 2815 andl $0xfff0000f,%edi 2816 xorl %edi,%eax 2817 xorl %edi,%esi 2818 2819 roll $14,%eax 2820 movl %eax,%edi 2821 xorl %esi,%eax 2822 andl $0x33333333,%eax 2823 xorl %eax,%edi 2824 xorl %eax,%esi 2825 2826 roll $22,%esi 2827 movl %esi,%eax 2828 xorl %edi,%esi 2829 andl $0x03fc03fc,%esi 2830 xorl %esi,%eax 2831 xorl %esi,%edi 2832 2833 roll $9,%eax 2834 movl %eax,%esi 2835 xorl %edi,%eax 2836 andl $0xaaaaaaaa,%eax 2837 xorl %eax,%esi 2838 xorl %eax,%edi 2839 2840 roll $1,%edi 2841 call .L000pic_point 2842.L000pic_point: 2843 popl %ebp 2844 leal DES_SPtrans-.L000pic_point(%ebp),%ebp 2845 movl 24(%esp),%ecx 2846 cmpl $0,%ebx 2847 je .L001decrypt 2848 call _x86_DES_encrypt 2849 jmp .L002done 2850.L001decrypt: 2851 call _x86_DES_decrypt 2852.L002done: 2853 2854 2855 movl 20(%esp),%edx 2856 rorl $1,%esi 2857 movl %edi,%eax 2858 xorl %esi,%edi 2859 andl $0xaaaaaaaa,%edi 2860 xorl %edi,%eax 2861 xorl %edi,%esi 2862 2863 roll $23,%eax 2864 movl %eax,%edi 2865 xorl %esi,%eax 2866 andl $0x03fc03fc,%eax 2867 xorl %eax,%edi 2868 xorl %eax,%esi 2869 2870 roll $10,%edi 2871 movl %edi,%eax 2872 xorl %esi,%edi 2873 andl $0x33333333,%edi 2874 xorl %edi,%eax 2875 xorl %edi,%esi 2876 2877 roll $18,%esi 2878 movl %esi,%edi 2879 xorl %eax,%esi 2880 andl $0xfff0000f,%esi 2881 xorl %esi,%edi 2882 xorl %esi,%eax 2883 2884 roll $12,%edi 2885 movl %edi,%esi 2886 xorl %eax,%edi 2887 andl $0xf0f0f0f0,%edi 2888 xorl %edi,%esi 2889 xorl %edi,%eax 2890 2891 rorl $4,%eax 2892 movl %eax,(%edx) 2893 movl %esi,4(%edx) 2894 popl %ebp 2895 popl %ebx 2896 popl %edi 2897 popl %esi 2898 ret 2899.size DES_encrypt1,.-.L_DES_encrypt1_begin 2900.globl DES_encrypt2 2901.type DES_encrypt2,@function 2902.align 16 2903DES_encrypt2: 2904.L_DES_encrypt2_begin: 2905 pushl %esi 2906 pushl %edi 2907 2908 2909 movl 12(%esp),%eax 2910 xorl %ecx,%ecx 2911 pushl %ebx 2912 pushl %ebp 2913 movl (%eax),%esi 2914 movl 28(%esp),%ebx 2915 roll $3,%esi 2916 movl 4(%eax),%edi 2917 roll $3,%edi 2918 call .L003pic_point 2919.L003pic_point: 2920 popl %ebp 2921 leal DES_SPtrans-.L003pic_point(%ebp),%ebp 2922 movl 24(%esp),%ecx 2923 cmpl $0,%ebx 2924 je .L004decrypt 2925 call _x86_DES_encrypt 2926 jmp .L005done 2927.L004decrypt: 2928 call _x86_DES_decrypt 2929.L005done: 2930 2931 2932 rorl $3,%edi 2933 movl 20(%esp),%eax 2934 rorl $3,%esi 2935 movl %edi,(%eax) 2936 movl %esi,4(%eax) 2937 popl %ebp 2938 popl %ebx 2939 popl %edi 2940 popl %esi 2941 ret 2942.size DES_encrypt2,.-.L_DES_encrypt2_begin 2943.globl DES_encrypt3 2944.type DES_encrypt3,@function 2945.align 16 2946DES_encrypt3: 2947.L_DES_encrypt3_begin: 2948 pushl %ebx 2949 movl 8(%esp),%ebx 2950 pushl %ebp 2951 pushl %esi 2952 pushl %edi 2953 2954 2955 movl (%ebx),%edi 2956 movl 4(%ebx),%esi 2957 subl $12,%esp 2958 2959 2960 roll $4,%edi 2961 movl %edi,%edx 2962 xorl %esi,%edi 2963 andl $0xf0f0f0f0,%edi 2964 xorl %edi,%edx 2965 xorl %edi,%esi 2966 2967 roll $20,%esi 2968 movl %esi,%edi 2969 xorl %edx,%esi 2970 andl $0xfff0000f,%esi 2971 xorl %esi,%edi 2972 xorl %esi,%edx 2973 2974 roll $14,%edi 2975 movl %edi,%esi 2976 xorl %edx,%edi 2977 andl $0x33333333,%edi 2978 xorl %edi,%esi 2979 xorl %edi,%edx 2980 2981 roll $22,%edx 2982 movl %edx,%edi 2983 xorl %esi,%edx 2984 andl $0x03fc03fc,%edx 2985 xorl %edx,%edi 2986 xorl %edx,%esi 2987 2988 roll $9,%edi 2989 movl %edi,%edx 2990 xorl %esi,%edi 2991 andl $0xaaaaaaaa,%edi 2992 xorl %edi,%edx 2993 xorl %edi,%esi 2994 2995 rorl $3,%edx 2996 rorl $2,%esi 2997 movl %esi,4(%ebx) 2998 movl 36(%esp),%eax 2999 movl %edx,(%ebx) 3000 movl 40(%esp),%edi 3001 movl 44(%esp),%esi 3002 movl $1,8(%esp) 3003 movl %eax,4(%esp) 3004 movl %ebx,(%esp) 3005 call .L_DES_encrypt2_begin 3006 movl $0,8(%esp) 3007 movl %edi,4(%esp) 3008 movl %ebx,(%esp) 3009 call .L_DES_encrypt2_begin 3010 movl $1,8(%esp) 3011 movl %esi,4(%esp) 3012 movl %ebx,(%esp) 3013 call .L_DES_encrypt2_begin 3014 addl $12,%esp 3015 movl (%ebx),%edi 3016 movl 4(%ebx),%esi 3017 3018 3019 roll $2,%esi 3020 roll $3,%edi 3021 movl %edi,%eax 3022 xorl %esi,%edi 3023 andl $0xaaaaaaaa,%edi 3024 xorl %edi,%eax 3025 xorl %edi,%esi 3026 3027 roll $23,%eax 3028 movl %eax,%edi 3029 xorl %esi,%eax 3030 andl $0x03fc03fc,%eax 3031 xorl %eax,%edi 3032 xorl %eax,%esi 3033 3034 roll $10,%edi 3035 movl %edi,%eax 3036 xorl %esi,%edi 3037 andl $0x33333333,%edi 3038 xorl %edi,%eax 3039 xorl %edi,%esi 3040 3041 roll $18,%esi 3042 movl %esi,%edi 3043 xorl %eax,%esi 3044 andl $0xfff0000f,%esi 3045 xorl %esi,%edi 3046 xorl %esi,%eax 3047 3048 roll $12,%edi 3049 movl %edi,%esi 3050 xorl %eax,%edi 3051 andl $0xf0f0f0f0,%edi 3052 xorl %edi,%esi 3053 xorl %edi,%eax 3054 3055 rorl $4,%eax 3056 movl %eax,(%ebx) 3057 movl %esi,4(%ebx) 3058 popl %edi 3059 popl %esi 3060 popl %ebp 3061 popl %ebx 3062 ret 3063.size DES_encrypt3,.-.L_DES_encrypt3_begin 3064.globl DES_decrypt3 3065.type DES_decrypt3,@function 3066.align 16 3067DES_decrypt3: 3068.L_DES_decrypt3_begin: 3069 pushl %ebx 3070 movl 8(%esp),%ebx 3071 pushl %ebp 3072 pushl %esi 3073 pushl %edi 3074 3075 3076 movl (%ebx),%edi 3077 movl 4(%ebx),%esi 3078 subl $12,%esp 3079 3080 3081 roll $4,%edi 3082 movl %edi,%edx 3083 xorl %esi,%edi 3084 andl $0xf0f0f0f0,%edi 3085 xorl %edi,%edx 3086 xorl %edi,%esi 3087 3088 roll $20,%esi 3089 movl %esi,%edi 3090 xorl %edx,%esi 3091 andl $0xfff0000f,%esi 3092 xorl %esi,%edi 3093 xorl %esi,%edx 3094 3095 roll $14,%edi 3096 movl %edi,%esi 3097 xorl %edx,%edi 3098 andl $0x33333333,%edi 3099 xorl %edi,%esi 3100 xorl %edi,%edx 3101 3102 roll $22,%edx 3103 movl %edx,%edi 3104 xorl %esi,%edx 3105 andl $0x03fc03fc,%edx 3106 xorl %edx,%edi 3107 xorl %edx,%esi 3108 3109 roll $9,%edi 3110 movl %edi,%edx 3111 xorl %esi,%edi 3112 andl $0xaaaaaaaa,%edi 3113 xorl %edi,%edx 3114 xorl %edi,%esi 3115 3116 rorl $3,%edx 3117 rorl $2,%esi 3118 movl %esi,4(%ebx) 3119 movl 36(%esp),%esi 3120 movl %edx,(%ebx) 3121 movl 40(%esp),%edi 3122 movl 44(%esp),%eax 3123 movl $0,8(%esp) 3124 movl %eax,4(%esp) 3125 movl %ebx,(%esp) 3126 call .L_DES_encrypt2_begin 3127 movl $1,8(%esp) 3128 movl %edi,4(%esp) 3129 movl %ebx,(%esp) 3130 call .L_DES_encrypt2_begin 3131 movl $0,8(%esp) 3132 movl %esi,4(%esp) 3133 movl %ebx,(%esp) 3134 call .L_DES_encrypt2_begin 3135 addl $12,%esp 3136 movl (%ebx),%edi 3137 movl 4(%ebx),%esi 3138 3139 3140 roll $2,%esi 3141 roll $3,%edi 3142 movl %edi,%eax 3143 xorl %esi,%edi 3144 andl $0xaaaaaaaa,%edi 3145 xorl %edi,%eax 3146 xorl %edi,%esi 3147 3148 roll $23,%eax 3149 movl %eax,%edi 3150 xorl %esi,%eax 3151 andl $0x03fc03fc,%eax 3152 xorl %eax,%edi 3153 xorl %eax,%esi 3154 3155 roll $10,%edi 3156 movl %edi,%eax 3157 xorl %esi,%edi 3158 andl $0x33333333,%edi 3159 xorl %edi,%eax 3160 xorl %edi,%esi 3161 3162 roll $18,%esi 3163 movl %esi,%edi 3164 xorl %eax,%esi 3165 andl $0xfff0000f,%esi 3166 xorl %esi,%edi 3167 xorl %esi,%eax 3168 3169 roll $12,%edi 3170 movl %edi,%esi 3171 xorl %eax,%edi 3172 andl $0xf0f0f0f0,%edi 3173 xorl %edi,%esi 3174 xorl %edi,%eax 3175 3176 rorl $4,%eax 3177 movl %eax,(%ebx) 3178 movl %esi,4(%ebx) 3179 popl %edi 3180 popl %esi 3181 popl %ebp 3182 popl %ebx 3183 ret 3184.size DES_decrypt3,.-.L_DES_decrypt3_begin 3185.globl DES_ncbc_encrypt 3186.type DES_ncbc_encrypt,@function 3187.align 16 3188DES_ncbc_encrypt: 3189.L_DES_ncbc_encrypt_begin: 3190 3191 pushl %ebp 3192 pushl %ebx 3193 pushl %esi 3194 pushl %edi 3195 movl 28(%esp),%ebp 3196 3197 movl 36(%esp),%ebx 3198 movl (%ebx),%esi 3199 movl 4(%ebx),%edi 3200 pushl %edi 3201 pushl %esi 3202 pushl %edi 3203 pushl %esi 3204 movl %esp,%ebx 3205 movl 36(%esp),%esi 3206 movl 40(%esp),%edi 3207 3208 movl 56(%esp),%ecx 3209 3210 pushl %ecx 3211 3212 movl 52(%esp),%eax 3213 pushl %eax 3214 pushl %ebx 3215 cmpl $0,%ecx 3216 jz .L006decrypt 3217 andl $4294967288,%ebp 3218 movl 12(%esp),%eax 3219 movl 16(%esp),%ebx 3220 jz .L007encrypt_finish 3221.L008encrypt_loop: 3222 movl (%esi),%ecx 3223 movl 4(%esi),%edx 3224 xorl %ecx,%eax 3225 xorl %edx,%ebx 3226 movl %eax,12(%esp) 3227 movl %ebx,16(%esp) 3228 call .L_DES_encrypt1_begin 3229 movl 12(%esp),%eax 3230 movl 16(%esp),%ebx 3231 movl %eax,(%edi) 3232 movl %ebx,4(%edi) 3233 addl $8,%esi 3234 addl $8,%edi 3235 subl $8,%ebp 3236 jnz .L008encrypt_loop 3237.L007encrypt_finish: 3238 movl 56(%esp),%ebp 3239 andl $7,%ebp 3240 jz .L009finish 3241 call .L010PIC_point 3242.L010PIC_point: 3243 popl %edx 3244 leal .L011cbc_enc_jmp_table-.L010PIC_point(%edx),%ecx 3245 movl (%ecx,%ebp,4),%ebp 3246 addl %edx,%ebp 3247 xorl %ecx,%ecx 3248 xorl %edx,%edx 3249 jmp *%ebp 3250.L012ej7: 3251 movb 6(%esi),%dh 3252 shll $8,%edx 3253.L013ej6: 3254 movb 5(%esi),%dh 3255.L014ej5: 3256 movb 4(%esi),%dl 3257.L015ej4: 3258 movl (%esi),%ecx 3259 jmp .L016ejend 3260.L017ej3: 3261 movb 2(%esi),%ch 3262 shll $8,%ecx 3263.L018ej2: 3264 movb 1(%esi),%ch 3265.L019ej1: 3266 movb (%esi),%cl 3267.L016ejend: 3268 xorl %ecx,%eax 3269 xorl %edx,%ebx 3270 movl %eax,12(%esp) 3271 movl %ebx,16(%esp) 3272 call .L_DES_encrypt1_begin 3273 movl 12(%esp),%eax 3274 movl 16(%esp),%ebx 3275 movl %eax,(%edi) 3276 movl %ebx,4(%edi) 3277 jmp .L009finish 3278.L006decrypt: 3279 andl $4294967288,%ebp 3280 movl 20(%esp),%eax 3281 movl 24(%esp),%ebx 3282 jz .L020decrypt_finish 3283.L021decrypt_loop: 3284 movl (%esi),%eax 3285 movl 4(%esi),%ebx 3286 movl %eax,12(%esp) 3287 movl %ebx,16(%esp) 3288 call .L_DES_encrypt1_begin 3289 movl 12(%esp),%eax 3290 movl 16(%esp),%ebx 3291 movl 20(%esp),%ecx 3292 movl 24(%esp),%edx 3293 xorl %eax,%ecx 3294 xorl %ebx,%edx 3295 movl (%esi),%eax 3296 movl 4(%esi),%ebx 3297 movl %ecx,(%edi) 3298 movl %edx,4(%edi) 3299 movl %eax,20(%esp) 3300 movl %ebx,24(%esp) 3301 addl $8,%esi 3302 addl $8,%edi 3303 subl $8,%ebp 3304 jnz .L021decrypt_loop 3305.L020decrypt_finish: 3306 movl 56(%esp),%ebp 3307 andl $7,%ebp 3308 jz .L009finish 3309 movl (%esi),%eax 3310 movl 4(%esi),%ebx 3311 movl %eax,12(%esp) 3312 movl %ebx,16(%esp) 3313 call .L_DES_encrypt1_begin 3314 movl 12(%esp),%eax 3315 movl 16(%esp),%ebx 3316 movl 20(%esp),%ecx 3317 movl 24(%esp),%edx 3318 xorl %eax,%ecx 3319 xorl %ebx,%edx 3320 movl (%esi),%eax 3321 movl 4(%esi),%ebx 3322.L022dj7: 3323 rorl $16,%edx 3324 movb %dl,6(%edi) 3325 shrl $16,%edx 3326.L023dj6: 3327 movb %dh,5(%edi) 3328.L024dj5: 3329 movb %dl,4(%edi) 3330.L025dj4: 3331 movl %ecx,(%edi) 3332 jmp .L026djend 3333.L027dj3: 3334 rorl $16,%ecx 3335 movb %cl,2(%edi) 3336 shll $16,%ecx 3337.L028dj2: 3338 movb %ch,1(%esi) 3339.L029dj1: 3340 movb %cl,(%esi) 3341.L026djend: 3342 jmp .L009finish 3343.L009finish: 3344 movl 64(%esp),%ecx 3345 addl $28,%esp 3346 movl %eax,(%ecx) 3347 movl %ebx,4(%ecx) 3348 popl %edi 3349 popl %esi 3350 popl %ebx 3351 popl %ebp 3352 ret 3353.align 64 3354.L011cbc_enc_jmp_table: 3355.long 0 3356.long .L019ej1-.L010PIC_point 3357.long .L018ej2-.L010PIC_point 3358.long .L017ej3-.L010PIC_point 3359.long .L015ej4-.L010PIC_point 3360.long .L014ej5-.L010PIC_point 3361.long .L013ej6-.L010PIC_point 3362.long .L012ej7-.L010PIC_point 3363.align 64 3364.size DES_ncbc_encrypt,.-.L_DES_ncbc_encrypt_begin 3365.globl DES_ede3_cbc_encrypt 3366.type DES_ede3_cbc_encrypt,@function 3367.align 16 3368DES_ede3_cbc_encrypt: 3369.L_DES_ede3_cbc_encrypt_begin: 3370 3371 pushl %ebp 3372 pushl %ebx 3373 pushl %esi 3374 pushl %edi 3375 movl 28(%esp),%ebp 3376 3377 movl 44(%esp),%ebx 3378 movl (%ebx),%esi 3379 movl 4(%ebx),%edi 3380 pushl %edi 3381 pushl %esi 3382 pushl %edi 3383 pushl %esi 3384 movl %esp,%ebx 3385 movl 36(%esp),%esi 3386 movl 40(%esp),%edi 3387 3388 movl 64(%esp),%ecx 3389 3390 movl 56(%esp),%eax 3391 pushl %eax 3392 3393 movl 56(%esp),%eax 3394 pushl %eax 3395 3396 movl 56(%esp),%eax 3397 pushl %eax 3398 pushl %ebx 3399 cmpl $0,%ecx 3400 jz .L030decrypt 3401 andl $4294967288,%ebp 3402 movl 16(%esp),%eax 3403 movl 20(%esp),%ebx 3404 jz .L031encrypt_finish 3405.L032encrypt_loop: 3406 movl (%esi),%ecx 3407 movl 4(%esi),%edx 3408 xorl %ecx,%eax 3409 xorl %edx,%ebx 3410 movl %eax,16(%esp) 3411 movl %ebx,20(%esp) 3412 call .L_DES_encrypt3_begin 3413 movl 16(%esp),%eax 3414 movl 20(%esp),%ebx 3415 movl %eax,(%edi) 3416 movl %ebx,4(%edi) 3417 addl $8,%esi 3418 addl $8,%edi 3419 subl $8,%ebp 3420 jnz .L032encrypt_loop 3421.L031encrypt_finish: 3422 movl 60(%esp),%ebp 3423 andl $7,%ebp 3424 jz .L033finish 3425 call .L034PIC_point 3426.L034PIC_point: 3427 popl %edx 3428 leal .L035cbc_enc_jmp_table-.L034PIC_point(%edx),%ecx 3429 movl (%ecx,%ebp,4),%ebp 3430 addl %edx,%ebp 3431 xorl %ecx,%ecx 3432 xorl %edx,%edx 3433 jmp *%ebp 3434.L036ej7: 3435 movb 6(%esi),%dh 3436 shll $8,%edx 3437.L037ej6: 3438 movb 5(%esi),%dh 3439.L038ej5: 3440 movb 4(%esi),%dl 3441.L039ej4: 3442 movl (%esi),%ecx 3443 jmp .L040ejend 3444.L041ej3: 3445 movb 2(%esi),%ch 3446 shll $8,%ecx 3447.L042ej2: 3448 movb 1(%esi),%ch 3449.L043ej1: 3450 movb (%esi),%cl 3451.L040ejend: 3452 xorl %ecx,%eax 3453 xorl %edx,%ebx 3454 movl %eax,16(%esp) 3455 movl %ebx,20(%esp) 3456 call .L_DES_encrypt3_begin 3457 movl 16(%esp),%eax 3458 movl 20(%esp),%ebx 3459 movl %eax,(%edi) 3460 movl %ebx,4(%edi) 3461 jmp .L033finish 3462.L030decrypt: 3463 andl $4294967288,%ebp 3464 movl 24(%esp),%eax 3465 movl 28(%esp),%ebx 3466 jz .L044decrypt_finish 3467.L045decrypt_loop: 3468 movl (%esi),%eax 3469 movl 4(%esi),%ebx 3470 movl %eax,16(%esp) 3471 movl %ebx,20(%esp) 3472 call .L_DES_decrypt3_begin 3473 movl 16(%esp),%eax 3474 movl 20(%esp),%ebx 3475 movl 24(%esp),%ecx 3476 movl 28(%esp),%edx 3477 xorl %eax,%ecx 3478 xorl %ebx,%edx 3479 movl (%esi),%eax 3480 movl 4(%esi),%ebx 3481 movl %ecx,(%edi) 3482 movl %edx,4(%edi) 3483 movl %eax,24(%esp) 3484 movl %ebx,28(%esp) 3485 addl $8,%esi 3486 addl $8,%edi 3487 subl $8,%ebp 3488 jnz .L045decrypt_loop 3489.L044decrypt_finish: 3490 movl 60(%esp),%ebp 3491 andl $7,%ebp 3492 jz .L033finish 3493 movl (%esi),%eax 3494 movl 4(%esi),%ebx 3495 movl %eax,16(%esp) 3496 movl %ebx,20(%esp) 3497 call .L_DES_decrypt3_begin 3498 movl 16(%esp),%eax 3499 movl 20(%esp),%ebx 3500 movl 24(%esp),%ecx 3501 movl 28(%esp),%edx 3502 xorl %eax,%ecx 3503 xorl %ebx,%edx 3504 movl (%esi),%eax 3505 movl 4(%esi),%ebx 3506.L046dj7: 3507 rorl $16,%edx 3508 movb %dl,6(%edi) 3509 shrl $16,%edx 3510.L047dj6: 3511 movb %dh,5(%edi) 3512.L048dj5: 3513 movb %dl,4(%edi) 3514.L049dj4: 3515 movl %ecx,(%edi) 3516 jmp .L050djend 3517.L051dj3: 3518 rorl $16,%ecx 3519 movb %cl,2(%edi) 3520 shll $16,%ecx 3521.L052dj2: 3522 movb %ch,1(%esi) 3523.L053dj1: 3524 movb %cl,(%esi) 3525.L050djend: 3526 jmp .L033finish 3527.L033finish: 3528 movl 76(%esp),%ecx 3529 addl $32,%esp 3530 movl %eax,(%ecx) 3531 movl %ebx,4(%ecx) 3532 popl %edi 3533 popl %esi 3534 popl %ebx 3535 popl %ebp 3536 ret 3537.align 64 3538.L035cbc_enc_jmp_table: 3539.long 0 3540.long .L043ej1-.L034PIC_point 3541.long .L042ej2-.L034PIC_point 3542.long .L041ej3-.L034PIC_point 3543.long .L039ej4-.L034PIC_point 3544.long .L038ej5-.L034PIC_point 3545.long .L037ej6-.L034PIC_point 3546.long .L036ej7-.L034PIC_point 3547.align 64 3548.size DES_ede3_cbc_encrypt,.-.L_DES_ede3_cbc_encrypt_begin 3549.align 64 3550DES_SPtrans: 3551.long 34080768,524288,33554434,34080770 3552.long 33554432,526338,524290,33554434 3553.long 526338,34080768,34078720,2050 3554.long 33556482,33554432,0,524290 3555.long 524288,2,33556480,526336 3556.long 34080770,34078720,2050,33556480 3557.long 2,2048,526336,34078722 3558.long 2048,33556482,34078722,0 3559.long 0,34080770,33556480,524290 3560.long 34080768,524288,2050,33556480 3561.long 34078722,2048,526336,33554434 3562.long 526338,2,33554434,34078720 3563.long 34080770,526336,34078720,33556482 3564.long 33554432,2050,524290,0 3565.long 524288,33554432,33556482,34080768 3566.long 2,34078722,2048,526338 3567.long 1074823184,0,1081344,1074790400 3568.long 1073741840,32784,1073774592,1081344 3569.long 32768,1074790416,16,1073774592 3570.long 1048592,1074823168,1074790400,16 3571.long 1048576,1073774608,1074790416,32768 3572.long 1081360,1073741824,0,1048592 3573.long 1073774608,1081360,1074823168,1073741840 3574.long 1073741824,1048576,32784,1074823184 3575.long 1048592,1074823168,1073774592,1081360 3576.long 1074823184,1048592,1073741840,0 3577.long 1073741824,32784,1048576,1074790416 3578.long 32768,1073741824,1081360,1073774608 3579.long 1074823168,32768,0,1073741840 3580.long 16,1074823184,1081344,1074790400 3581.long 1074790416,1048576,32784,1073774592 3582.long 1073774608,16,1074790400,1081344 3583.long 67108865,67371264,256,67109121 3584.long 262145,67108864,67109121,262400 3585.long 67109120,262144,67371008,1 3586.long 67371265,257,1,67371009 3587.long 0,262145,67371264,256 3588.long 257,67371265,262144,67108865 3589.long 67371009,67109120,262401,67371008 3590.long 262400,0,67108864,262401 3591.long 67371264,256,1,262144 3592.long 257,262145,67371008,67109121 3593.long 0,67371264,262400,67371009 3594.long 262145,67108864,67371265,1 3595.long 262401,67108865,67108864,67371265 3596.long 262144,67109120,67109121,262400 3597.long 67109120,0,67371009,257 3598.long 67108865,262401,256,67371008 3599.long 4198408,268439552,8,272633864 3600.long 0,272629760,268439560,4194312 3601.long 272633856,268435464,268435456,4104 3602.long 268435464,4198408,4194304,268435456 3603.long 272629768,4198400,4096,8 3604.long 4198400,268439560,272629760,4096 3605.long 4104,0,4194312,272633856 3606.long 268439552,272629768,272633864,4194304 3607.long 272629768,4104,4194304,268435464 3608.long 4198400,268439552,8,272629760 3609.long 268439560,0,4096,4194312 3610.long 0,272629768,272633856,4096 3611.long 268435456,272633864,4198408,4194304 3612.long 272633864,8,268439552,4198408 3613.long 4194312,4198400,272629760,268439560 3614.long 4104,268435456,268435464,272633856 3615.long 134217728,65536,1024,134284320 3616.long 134283296,134218752,66592,134283264 3617.long 65536,32,134217760,66560 3618.long 134218784,134283296,134284288,0 3619.long 66560,134217728,65568,1056 3620.long 134218752,66592,0,134217760 3621.long 32,134218784,134284320,65568 3622.long 134283264,1024,1056,134284288 3623.long 134284288,134218784,65568,134283264 3624.long 65536,32,134217760,134218752 3625.long 134217728,66560,134284320,0 3626.long 66592,134217728,1024,65568 3627.long 134218784,1024,0,134284320 3628.long 134283296,134284288,1056,65536 3629.long 66560,134283296,134218752,1056 3630.long 32,66592,134283264,134217760 3631.long 2147483712,2097216,0,2149588992 3632.long 2097216,8192,2147491904,2097152 3633.long 8256,2149589056,2105344,2147483648 3634.long 2147491840,2147483712,2149580800,2105408 3635.long 2097152,2147491904,2149580864,0 3636.long 8192,64,2149588992,2149580864 3637.long 2149589056,2149580800,2147483648,8256 3638.long 64,2105344,2105408,2147491840 3639.long 8256,2147483648,2147491840,2105408 3640.long 2149588992,2097216,0,2147491840 3641.long 2147483648,8192,2149580864,2097152 3642.long 2097216,2149589056,2105344,64 3643.long 2149589056,2105344,2097152,2147491904 3644.long 2147483712,2149580800,2105408,0 3645.long 8192,2147483712,2147491904,2149588992 3646.long 2149580800,8256,64,2149580864 3647.long 16384,512,16777728,16777220 3648.long 16794116,16388,16896,0 3649.long 16777216,16777732,516,16793600 3650.long 4,16794112,16793600,516 3651.long 16777732,16384,16388,16794116 3652.long 0,16777728,16777220,16896 3653.long 16793604,16900,16794112,4 3654.long 16900,16793604,512,16777216 3655.long 16900,16793600,16793604,516 3656.long 16384,512,16777216,16793604 3657.long 16777732,16900,16896,0 3658.long 512,16777220,4,16777728 3659.long 0,16777732,16777728,16896 3660.long 516,16384,16794116,16777216 3661.long 16794112,4,16388,16794116 3662.long 16777220,16794112,16793600,16388 3663.long 545259648,545390592,131200,0 3664.long 537001984,8388736,545259520,545390720 3665.long 128,536870912,8519680,131200 3666.long 8519808,537002112,536871040,545259520 3667.long 131072,8519808,8388736,537001984 3668.long 545390720,536871040,0,8519680 3669.long 536870912,8388608,537002112,545259648 3670.long 8388608,131072,545390592,128 3671.long 8388608,131072,536871040,545390720 3672.long 131200,536870912,0,8519680 3673.long 545259648,537002112,537001984,8388736 3674.long 545390592,128,8388736,537001984 3675.long 545390720,8388608,545259520,536871040 3676.long 8519680,131200,537002112,545259520 3677.long 128,545390592,8519808,0 3678.long 536870912,545259648,131072,8519808 3679#endif 3680