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