1/* Do not modify. This file is auto-generated from rc4-586.pl. */ 2#ifdef PIC 3.text 4.globl RC4 5.type RC4,@function 6.align 16 7RC4: 8.L_RC4_begin: 9 #ifdef __CET__ 10 11.byte 243,15,30,251 12 #endif 13 14 pushl %ebp 15 pushl %ebx 16 pushl %esi 17 pushl %edi 18 movl 20(%esp),%edi 19 movl 24(%esp),%edx 20 movl 28(%esp),%esi 21 movl 32(%esp),%ebp 22 xorl %eax,%eax 23 xorl %ebx,%ebx 24 cmpl $0,%edx 25 je .L000abort 26 movb (%edi),%al 27 movb 4(%edi),%bl 28 addl $8,%edi 29 leal (%esi,%edx,1),%ecx 30 subl %esi,%ebp 31 movl %ecx,24(%esp) 32 incb %al 33 cmpl $-1,256(%edi) 34 je .L001RC4_CHAR 35 movl (%edi,%eax,4),%ecx 36 andl $-4,%edx 37 jz .L002loop1 38 movl %ebp,32(%esp) 39 testl $-8,%edx 40 jz .L003go4loop4 41 call .L004PIC_me_up 42.L004PIC_me_up: 43 popl %ebp 44 leal OPENSSL_ia32cap_P-.L004PIC_me_up(%ebp),%ebp 45 btl $26,(%ebp) 46 jnc .L003go4loop4 47 movl 32(%esp),%ebp 48 andl $-8,%edx 49 leal -8(%esi,%edx,1),%edx 50 movl %edx,-4(%edi) 51 addb %cl,%bl 52 movl (%edi,%ebx,4),%edx 53 movl %ecx,(%edi,%ebx,4) 54 movl %edx,(%edi,%eax,4) 55 incl %eax 56 addl %ecx,%edx 57 movzbl %al,%eax 58 movzbl %dl,%edx 59 movq (%esi),%mm0 60 movl (%edi,%eax,4),%ecx 61 movd (%edi,%edx,4),%mm2 62 jmp .L005loop_mmx_enter 63.align 16 64.L006loop_mmx: 65 addb %cl,%bl 66 psllq $56,%mm1 67 movl (%edi,%ebx,4),%edx 68 movl %ecx,(%edi,%ebx,4) 69 movl %edx,(%edi,%eax,4) 70 incl %eax 71 addl %ecx,%edx 72 movzbl %al,%eax 73 movzbl %dl,%edx 74 pxor %mm1,%mm2 75 movq (%esi),%mm0 76 movq %mm2,-8(%ebp,%esi,1) 77 movl (%edi,%eax,4),%ecx 78 movd (%edi,%edx,4),%mm2 79.L005loop_mmx_enter: 80 addb %cl,%bl 81 movl (%edi,%ebx,4),%edx 82 movl %ecx,(%edi,%ebx,4) 83 movl %edx,(%edi,%eax,4) 84 incl %eax 85 addl %ecx,%edx 86 movzbl %al,%eax 87 movzbl %dl,%edx 88 pxor %mm0,%mm2 89 movl (%edi,%eax,4),%ecx 90 movd (%edi,%edx,4),%mm1 91 addb %cl,%bl 92 psllq $8,%mm1 93 movl (%edi,%ebx,4),%edx 94 movl %ecx,(%edi,%ebx,4) 95 movl %edx,(%edi,%eax,4) 96 incl %eax 97 addl %ecx,%edx 98 movzbl %al,%eax 99 movzbl %dl,%edx 100 pxor %mm1,%mm2 101 movl (%edi,%eax,4),%ecx 102 movd (%edi,%edx,4),%mm1 103 addb %cl,%bl 104 psllq $16,%mm1 105 movl (%edi,%ebx,4),%edx 106 movl %ecx,(%edi,%ebx,4) 107 movl %edx,(%edi,%eax,4) 108 incl %eax 109 addl %ecx,%edx 110 movzbl %al,%eax 111 movzbl %dl,%edx 112 pxor %mm1,%mm2 113 movl (%edi,%eax,4),%ecx 114 movd (%edi,%edx,4),%mm1 115 addb %cl,%bl 116 psllq $24,%mm1 117 movl (%edi,%ebx,4),%edx 118 movl %ecx,(%edi,%ebx,4) 119 movl %edx,(%edi,%eax,4) 120 incl %eax 121 addl %ecx,%edx 122 movzbl %al,%eax 123 movzbl %dl,%edx 124 pxor %mm1,%mm2 125 movl (%edi,%eax,4),%ecx 126 movd (%edi,%edx,4),%mm1 127 addb %cl,%bl 128 psllq $32,%mm1 129 movl (%edi,%ebx,4),%edx 130 movl %ecx,(%edi,%ebx,4) 131 movl %edx,(%edi,%eax,4) 132 incl %eax 133 addl %ecx,%edx 134 movzbl %al,%eax 135 movzbl %dl,%edx 136 pxor %mm1,%mm2 137 movl (%edi,%eax,4),%ecx 138 movd (%edi,%edx,4),%mm1 139 addb %cl,%bl 140 psllq $40,%mm1 141 movl (%edi,%ebx,4),%edx 142 movl %ecx,(%edi,%ebx,4) 143 movl %edx,(%edi,%eax,4) 144 incl %eax 145 addl %ecx,%edx 146 movzbl %al,%eax 147 movzbl %dl,%edx 148 pxor %mm1,%mm2 149 movl (%edi,%eax,4),%ecx 150 movd (%edi,%edx,4),%mm1 151 addb %cl,%bl 152 psllq $48,%mm1 153 movl (%edi,%ebx,4),%edx 154 movl %ecx,(%edi,%ebx,4) 155 movl %edx,(%edi,%eax,4) 156 incl %eax 157 addl %ecx,%edx 158 movzbl %al,%eax 159 movzbl %dl,%edx 160 pxor %mm1,%mm2 161 movl (%edi,%eax,4),%ecx 162 movd (%edi,%edx,4),%mm1 163 movl %ebx,%edx 164 xorl %ebx,%ebx 165 movb %dl,%bl 166 cmpl -4(%edi),%esi 167 leal 8(%esi),%esi 168 jb .L006loop_mmx 169 psllq $56,%mm1 170 pxor %mm1,%mm2 171 movq %mm2,-8(%ebp,%esi,1) 172 emms 173 cmpl 24(%esp),%esi 174 je .L007done 175 jmp .L002loop1 176.align 16 177.L003go4loop4: 178 leal -4(%esi,%edx,1),%edx 179 movl %edx,28(%esp) 180.L008loop4: 181 addb %cl,%bl 182 movl (%edi,%ebx,4),%edx 183 movl %ecx,(%edi,%ebx,4) 184 movl %edx,(%edi,%eax,4) 185 addl %ecx,%edx 186 incb %al 187 andl $255,%edx 188 movl (%edi,%eax,4),%ecx 189 movl (%edi,%edx,4),%ebp 190 addb %cl,%bl 191 movl (%edi,%ebx,4),%edx 192 movl %ecx,(%edi,%ebx,4) 193 movl %edx,(%edi,%eax,4) 194 addl %ecx,%edx 195 incb %al 196 andl $255,%edx 197 rorl $8,%ebp 198 movl (%edi,%eax,4),%ecx 199 orl (%edi,%edx,4),%ebp 200 addb %cl,%bl 201 movl (%edi,%ebx,4),%edx 202 movl %ecx,(%edi,%ebx,4) 203 movl %edx,(%edi,%eax,4) 204 addl %ecx,%edx 205 incb %al 206 andl $255,%edx 207 rorl $8,%ebp 208 movl (%edi,%eax,4),%ecx 209 orl (%edi,%edx,4),%ebp 210 addb %cl,%bl 211 movl (%edi,%ebx,4),%edx 212 movl %ecx,(%edi,%ebx,4) 213 movl %edx,(%edi,%eax,4) 214 addl %ecx,%edx 215 incb %al 216 andl $255,%edx 217 rorl $8,%ebp 218 movl 32(%esp),%ecx 219 orl (%edi,%edx,4),%ebp 220 rorl $8,%ebp 221 xorl (%esi),%ebp 222 cmpl 28(%esp),%esi 223 movl %ebp,(%ecx,%esi,1) 224 leal 4(%esi),%esi 225 movl (%edi,%eax,4),%ecx 226 jb .L008loop4 227 cmpl 24(%esp),%esi 228 je .L007done 229 movl 32(%esp),%ebp 230.align 16 231.L002loop1: 232 addb %cl,%bl 233 movl (%edi,%ebx,4),%edx 234 movl %ecx,(%edi,%ebx,4) 235 movl %edx,(%edi,%eax,4) 236 addl %ecx,%edx 237 incb %al 238 andl $255,%edx 239 movl (%edi,%edx,4),%edx 240 xorb (%esi),%dl 241 leal 1(%esi),%esi 242 movl (%edi,%eax,4),%ecx 243 cmpl 24(%esp),%esi 244 movb %dl,-1(%ebp,%esi,1) 245 jb .L002loop1 246 jmp .L007done 247.align 16 248.L001RC4_CHAR: 249 movzbl (%edi,%eax,1),%ecx 250.L009cloop1: 251 addb %cl,%bl 252 movzbl (%edi,%ebx,1),%edx 253 movb %cl,(%edi,%ebx,1) 254 movb %dl,(%edi,%eax,1) 255 addb %cl,%dl 256 movzbl (%edi,%edx,1),%edx 257 addb $1,%al 258 xorb (%esi),%dl 259 leal 1(%esi),%esi 260 movzbl (%edi,%eax,1),%ecx 261 cmpl 24(%esp),%esi 262 movb %dl,-1(%ebp,%esi,1) 263 jb .L009cloop1 264.L007done: 265 decb %al 266 movl %ebx,-4(%edi) 267 movb %al,-8(%edi) 268.L000abort: 269 popl %edi 270 popl %esi 271 popl %ebx 272 popl %ebp 273 ret 274.size RC4,.-.L_RC4_begin 275.globl RC4_set_key 276.type RC4_set_key,@function 277.align 16 278RC4_set_key: 279.L_RC4_set_key_begin: 280 #ifdef __CET__ 281 282.byte 243,15,30,251 283 #endif 284 285 pushl %ebp 286 pushl %ebx 287 pushl %esi 288 pushl %edi 289 movl 20(%esp),%edi 290 movl 24(%esp),%ebp 291 movl 28(%esp),%esi 292 call .L010PIC_me_up 293.L010PIC_me_up: 294 popl %edx 295 leal OPENSSL_ia32cap_P-.L010PIC_me_up(%edx),%edx 296 leal 8(%edi),%edi 297 leal (%esi,%ebp,1),%esi 298 negl %ebp 299 xorl %eax,%eax 300 movl %ebp,-4(%edi) 301 btl $20,(%edx) 302 jc .L011c1stloop 303.align 16 304.L012w1stloop: 305 movl %eax,(%edi,%eax,4) 306 addb $1,%al 307 jnc .L012w1stloop 308 xorl %ecx,%ecx 309 xorl %edx,%edx 310.align 16 311.L013w2ndloop: 312 movl (%edi,%ecx,4),%eax 313 addb (%esi,%ebp,1),%dl 314 addb %al,%dl 315 addl $1,%ebp 316 movl (%edi,%edx,4),%ebx 317 jnz .L014wnowrap 318 movl -4(%edi),%ebp 319.L014wnowrap: 320 movl %eax,(%edi,%edx,4) 321 movl %ebx,(%edi,%ecx,4) 322 addb $1,%cl 323 jnc .L013w2ndloop 324 jmp .L015exit 325.align 16 326.L011c1stloop: 327 movb %al,(%edi,%eax,1) 328 addb $1,%al 329 jnc .L011c1stloop 330 xorl %ecx,%ecx 331 xorl %edx,%edx 332 xorl %ebx,%ebx 333.align 16 334.L016c2ndloop: 335 movb (%edi,%ecx,1),%al 336 addb (%esi,%ebp,1),%dl 337 addb %al,%dl 338 addl $1,%ebp 339 movb (%edi,%edx,1),%bl 340 jnz .L017cnowrap 341 movl -4(%edi),%ebp 342.L017cnowrap: 343 movb %al,(%edi,%edx,1) 344 movb %bl,(%edi,%ecx,1) 345 addb $1,%cl 346 jnc .L016c2ndloop 347 movl $-1,256(%edi) 348.L015exit: 349 xorl %eax,%eax 350 movl %eax,-8(%edi) 351 movl %eax,-4(%edi) 352 popl %edi 353 popl %esi 354 popl %ebx 355 popl %ebp 356 ret 357.size RC4_set_key,.-.L_RC4_set_key_begin 358.globl RC4_options 359.type RC4_options,@function 360.align 16 361RC4_options: 362.L_RC4_options_begin: 363 #ifdef __CET__ 364 365.byte 243,15,30,251 366 #endif 367 368 call .L018pic_point 369.L018pic_point: 370 popl %eax 371 leal .L019opts-.L018pic_point(%eax),%eax 372 call .L020PIC_me_up 373.L020PIC_me_up: 374 popl %edx 375 leal OPENSSL_ia32cap_P-.L020PIC_me_up(%edx),%edx 376 movl (%edx),%edx 377 btl $20,%edx 378 jc .L0211xchar 379 btl $26,%edx 380 jnc .L022ret 381 addl $25,%eax 382 ret 383.L0211xchar: 384 addl $12,%eax 385.L022ret: 386 ret 387.align 64 388.L019opts: 389.byte 114,99,52,40,52,120,44,105,110,116,41,0 390.byte 114,99,52,40,49,120,44,99,104,97,114,41,0 391.byte 114,99,52,40,56,120,44,109,109,120,41,0 392.byte 82,67,52,32,102,111,114,32,120,56,54,44,32,67,82,89 393.byte 80,84,79,71,65,77,83,32,98,121,32,60,97,112,112,114 394.byte 111,64,111,112,101,110,115,115,108,46,111,114,103,62,0 395.align 64 396.size RC4_options,.-.L_RC4_options_begin 397.comm OPENSSL_ia32cap_P,16,4 398 399 .section ".note.gnu.property", "a" 400 .p2align 2 401 .long 1f - 0f 402 .long 4f - 1f 403 .long 5 4040: 405 .asciz "GNU" 4061: 407 .p2align 2 408 .long 0xc0000002 409 .long 3f - 2f 4102: 411 .long 3 4123: 413 .p2align 2 4144: 415#else 416.text 417.globl RC4 418.type RC4,@function 419.align 16 420RC4: 421.L_RC4_begin: 422 #ifdef __CET__ 423 424.byte 243,15,30,251 425 #endif 426 427 pushl %ebp 428 pushl %ebx 429 pushl %esi 430 pushl %edi 431 movl 20(%esp),%edi 432 movl 24(%esp),%edx 433 movl 28(%esp),%esi 434 movl 32(%esp),%ebp 435 xorl %eax,%eax 436 xorl %ebx,%ebx 437 cmpl $0,%edx 438 je .L000abort 439 movb (%edi),%al 440 movb 4(%edi),%bl 441 addl $8,%edi 442 leal (%esi,%edx,1),%ecx 443 subl %esi,%ebp 444 movl %ecx,24(%esp) 445 incb %al 446 cmpl $-1,256(%edi) 447 je .L001RC4_CHAR 448 movl (%edi,%eax,4),%ecx 449 andl $-4,%edx 450 jz .L002loop1 451 movl %ebp,32(%esp) 452 testl $-8,%edx 453 jz .L003go4loop4 454 leal OPENSSL_ia32cap_P,%ebp 455 btl $26,(%ebp) 456 jnc .L003go4loop4 457 movl 32(%esp),%ebp 458 andl $-8,%edx 459 leal -8(%esi,%edx,1),%edx 460 movl %edx,-4(%edi) 461 addb %cl,%bl 462 movl (%edi,%ebx,4),%edx 463 movl %ecx,(%edi,%ebx,4) 464 movl %edx,(%edi,%eax,4) 465 incl %eax 466 addl %ecx,%edx 467 movzbl %al,%eax 468 movzbl %dl,%edx 469 movq (%esi),%mm0 470 movl (%edi,%eax,4),%ecx 471 movd (%edi,%edx,4),%mm2 472 jmp .L004loop_mmx_enter 473.align 16 474.L005loop_mmx: 475 addb %cl,%bl 476 psllq $56,%mm1 477 movl (%edi,%ebx,4),%edx 478 movl %ecx,(%edi,%ebx,4) 479 movl %edx,(%edi,%eax,4) 480 incl %eax 481 addl %ecx,%edx 482 movzbl %al,%eax 483 movzbl %dl,%edx 484 pxor %mm1,%mm2 485 movq (%esi),%mm0 486 movq %mm2,-8(%ebp,%esi,1) 487 movl (%edi,%eax,4),%ecx 488 movd (%edi,%edx,4),%mm2 489.L004loop_mmx_enter: 490 addb %cl,%bl 491 movl (%edi,%ebx,4),%edx 492 movl %ecx,(%edi,%ebx,4) 493 movl %edx,(%edi,%eax,4) 494 incl %eax 495 addl %ecx,%edx 496 movzbl %al,%eax 497 movzbl %dl,%edx 498 pxor %mm0,%mm2 499 movl (%edi,%eax,4),%ecx 500 movd (%edi,%edx,4),%mm1 501 addb %cl,%bl 502 psllq $8,%mm1 503 movl (%edi,%ebx,4),%edx 504 movl %ecx,(%edi,%ebx,4) 505 movl %edx,(%edi,%eax,4) 506 incl %eax 507 addl %ecx,%edx 508 movzbl %al,%eax 509 movzbl %dl,%edx 510 pxor %mm1,%mm2 511 movl (%edi,%eax,4),%ecx 512 movd (%edi,%edx,4),%mm1 513 addb %cl,%bl 514 psllq $16,%mm1 515 movl (%edi,%ebx,4),%edx 516 movl %ecx,(%edi,%ebx,4) 517 movl %edx,(%edi,%eax,4) 518 incl %eax 519 addl %ecx,%edx 520 movzbl %al,%eax 521 movzbl %dl,%edx 522 pxor %mm1,%mm2 523 movl (%edi,%eax,4),%ecx 524 movd (%edi,%edx,4),%mm1 525 addb %cl,%bl 526 psllq $24,%mm1 527 movl (%edi,%ebx,4),%edx 528 movl %ecx,(%edi,%ebx,4) 529 movl %edx,(%edi,%eax,4) 530 incl %eax 531 addl %ecx,%edx 532 movzbl %al,%eax 533 movzbl %dl,%edx 534 pxor %mm1,%mm2 535 movl (%edi,%eax,4),%ecx 536 movd (%edi,%edx,4),%mm1 537 addb %cl,%bl 538 psllq $32,%mm1 539 movl (%edi,%ebx,4),%edx 540 movl %ecx,(%edi,%ebx,4) 541 movl %edx,(%edi,%eax,4) 542 incl %eax 543 addl %ecx,%edx 544 movzbl %al,%eax 545 movzbl %dl,%edx 546 pxor %mm1,%mm2 547 movl (%edi,%eax,4),%ecx 548 movd (%edi,%edx,4),%mm1 549 addb %cl,%bl 550 psllq $40,%mm1 551 movl (%edi,%ebx,4),%edx 552 movl %ecx,(%edi,%ebx,4) 553 movl %edx,(%edi,%eax,4) 554 incl %eax 555 addl %ecx,%edx 556 movzbl %al,%eax 557 movzbl %dl,%edx 558 pxor %mm1,%mm2 559 movl (%edi,%eax,4),%ecx 560 movd (%edi,%edx,4),%mm1 561 addb %cl,%bl 562 psllq $48,%mm1 563 movl (%edi,%ebx,4),%edx 564 movl %ecx,(%edi,%ebx,4) 565 movl %edx,(%edi,%eax,4) 566 incl %eax 567 addl %ecx,%edx 568 movzbl %al,%eax 569 movzbl %dl,%edx 570 pxor %mm1,%mm2 571 movl (%edi,%eax,4),%ecx 572 movd (%edi,%edx,4),%mm1 573 movl %ebx,%edx 574 xorl %ebx,%ebx 575 movb %dl,%bl 576 cmpl -4(%edi),%esi 577 leal 8(%esi),%esi 578 jb .L005loop_mmx 579 psllq $56,%mm1 580 pxor %mm1,%mm2 581 movq %mm2,-8(%ebp,%esi,1) 582 emms 583 cmpl 24(%esp),%esi 584 je .L006done 585 jmp .L002loop1 586.align 16 587.L003go4loop4: 588 leal -4(%esi,%edx,1),%edx 589 movl %edx,28(%esp) 590.L007loop4: 591 addb %cl,%bl 592 movl (%edi,%ebx,4),%edx 593 movl %ecx,(%edi,%ebx,4) 594 movl %edx,(%edi,%eax,4) 595 addl %ecx,%edx 596 incb %al 597 andl $255,%edx 598 movl (%edi,%eax,4),%ecx 599 movl (%edi,%edx,4),%ebp 600 addb %cl,%bl 601 movl (%edi,%ebx,4),%edx 602 movl %ecx,(%edi,%ebx,4) 603 movl %edx,(%edi,%eax,4) 604 addl %ecx,%edx 605 incb %al 606 andl $255,%edx 607 rorl $8,%ebp 608 movl (%edi,%eax,4),%ecx 609 orl (%edi,%edx,4),%ebp 610 addb %cl,%bl 611 movl (%edi,%ebx,4),%edx 612 movl %ecx,(%edi,%ebx,4) 613 movl %edx,(%edi,%eax,4) 614 addl %ecx,%edx 615 incb %al 616 andl $255,%edx 617 rorl $8,%ebp 618 movl (%edi,%eax,4),%ecx 619 orl (%edi,%edx,4),%ebp 620 addb %cl,%bl 621 movl (%edi,%ebx,4),%edx 622 movl %ecx,(%edi,%ebx,4) 623 movl %edx,(%edi,%eax,4) 624 addl %ecx,%edx 625 incb %al 626 andl $255,%edx 627 rorl $8,%ebp 628 movl 32(%esp),%ecx 629 orl (%edi,%edx,4),%ebp 630 rorl $8,%ebp 631 xorl (%esi),%ebp 632 cmpl 28(%esp),%esi 633 movl %ebp,(%ecx,%esi,1) 634 leal 4(%esi),%esi 635 movl (%edi,%eax,4),%ecx 636 jb .L007loop4 637 cmpl 24(%esp),%esi 638 je .L006done 639 movl 32(%esp),%ebp 640.align 16 641.L002loop1: 642 addb %cl,%bl 643 movl (%edi,%ebx,4),%edx 644 movl %ecx,(%edi,%ebx,4) 645 movl %edx,(%edi,%eax,4) 646 addl %ecx,%edx 647 incb %al 648 andl $255,%edx 649 movl (%edi,%edx,4),%edx 650 xorb (%esi),%dl 651 leal 1(%esi),%esi 652 movl (%edi,%eax,4),%ecx 653 cmpl 24(%esp),%esi 654 movb %dl,-1(%ebp,%esi,1) 655 jb .L002loop1 656 jmp .L006done 657.align 16 658.L001RC4_CHAR: 659 movzbl (%edi,%eax,1),%ecx 660.L008cloop1: 661 addb %cl,%bl 662 movzbl (%edi,%ebx,1),%edx 663 movb %cl,(%edi,%ebx,1) 664 movb %dl,(%edi,%eax,1) 665 addb %cl,%dl 666 movzbl (%edi,%edx,1),%edx 667 addb $1,%al 668 xorb (%esi),%dl 669 leal 1(%esi),%esi 670 movzbl (%edi,%eax,1),%ecx 671 cmpl 24(%esp),%esi 672 movb %dl,-1(%ebp,%esi,1) 673 jb .L008cloop1 674.L006done: 675 decb %al 676 movl %ebx,-4(%edi) 677 movb %al,-8(%edi) 678.L000abort: 679 popl %edi 680 popl %esi 681 popl %ebx 682 popl %ebp 683 ret 684.size RC4,.-.L_RC4_begin 685.globl RC4_set_key 686.type RC4_set_key,@function 687.align 16 688RC4_set_key: 689.L_RC4_set_key_begin: 690 #ifdef __CET__ 691 692.byte 243,15,30,251 693 #endif 694 695 pushl %ebp 696 pushl %ebx 697 pushl %esi 698 pushl %edi 699 movl 20(%esp),%edi 700 movl 24(%esp),%ebp 701 movl 28(%esp),%esi 702 leal OPENSSL_ia32cap_P,%edx 703 leal 8(%edi),%edi 704 leal (%esi,%ebp,1),%esi 705 negl %ebp 706 xorl %eax,%eax 707 movl %ebp,-4(%edi) 708 btl $20,(%edx) 709 jc .L009c1stloop 710.align 16 711.L010w1stloop: 712 movl %eax,(%edi,%eax,4) 713 addb $1,%al 714 jnc .L010w1stloop 715 xorl %ecx,%ecx 716 xorl %edx,%edx 717.align 16 718.L011w2ndloop: 719 movl (%edi,%ecx,4),%eax 720 addb (%esi,%ebp,1),%dl 721 addb %al,%dl 722 addl $1,%ebp 723 movl (%edi,%edx,4),%ebx 724 jnz .L012wnowrap 725 movl -4(%edi),%ebp 726.L012wnowrap: 727 movl %eax,(%edi,%edx,4) 728 movl %ebx,(%edi,%ecx,4) 729 addb $1,%cl 730 jnc .L011w2ndloop 731 jmp .L013exit 732.align 16 733.L009c1stloop: 734 movb %al,(%edi,%eax,1) 735 addb $1,%al 736 jnc .L009c1stloop 737 xorl %ecx,%ecx 738 xorl %edx,%edx 739 xorl %ebx,%ebx 740.align 16 741.L014c2ndloop: 742 movb (%edi,%ecx,1),%al 743 addb (%esi,%ebp,1),%dl 744 addb %al,%dl 745 addl $1,%ebp 746 movb (%edi,%edx,1),%bl 747 jnz .L015cnowrap 748 movl -4(%edi),%ebp 749.L015cnowrap: 750 movb %al,(%edi,%edx,1) 751 movb %bl,(%edi,%ecx,1) 752 addb $1,%cl 753 jnc .L014c2ndloop 754 movl $-1,256(%edi) 755.L013exit: 756 xorl %eax,%eax 757 movl %eax,-8(%edi) 758 movl %eax,-4(%edi) 759 popl %edi 760 popl %esi 761 popl %ebx 762 popl %ebp 763 ret 764.size RC4_set_key,.-.L_RC4_set_key_begin 765.globl RC4_options 766.type RC4_options,@function 767.align 16 768RC4_options: 769.L_RC4_options_begin: 770 #ifdef __CET__ 771 772.byte 243,15,30,251 773 #endif 774 775 call .L016pic_point 776.L016pic_point: 777 popl %eax 778 leal .L017opts-.L016pic_point(%eax),%eax 779 leal OPENSSL_ia32cap_P,%edx 780 movl (%edx),%edx 781 btl $20,%edx 782 jc .L0181xchar 783 btl $26,%edx 784 jnc .L019ret 785 addl $25,%eax 786 ret 787.L0181xchar: 788 addl $12,%eax 789.L019ret: 790 ret 791.align 64 792.L017opts: 793.byte 114,99,52,40,52,120,44,105,110,116,41,0 794.byte 114,99,52,40,49,120,44,99,104,97,114,41,0 795.byte 114,99,52,40,56,120,44,109,109,120,41,0 796.byte 82,67,52,32,102,111,114,32,120,56,54,44,32,67,82,89 797.byte 80,84,79,71,65,77,83,32,98,121,32,60,97,112,112,114 798.byte 111,64,111,112,101,110,115,115,108,46,111,114,103,62,0 799.align 64 800.size RC4_options,.-.L_RC4_options_begin 801.comm OPENSSL_ia32cap_P,16,4 802 803 .section ".note.gnu.property", "a" 804 .p2align 2 805 .long 1f - 0f 806 .long 4f - 1f 807 .long 5 8080: 809 .asciz "GNU" 8101: 811 .p2align 2 812 .long 0xc0000002 813 .long 3f - 2f 8142: 815 .long 3 8163: 817 .p2align 2 8184: 819#endif 820