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