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