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