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