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