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