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