1*ebfedea0SLionel Sambuc#include <machine/asm.h> 2*ebfedea0SLionel Sambuc.text 3*ebfedea0SLionel Sambuc.globl RC4 4*ebfedea0SLionel Sambuc.type RC4,@function 5*ebfedea0SLionel Sambuc.align 16 6*ebfedea0SLionel SambucRC4: 7*ebfedea0SLionel Sambuc.L_RC4_begin: 8*ebfedea0SLionel Sambuc pushl %ebp 9*ebfedea0SLionel Sambuc pushl %ebx 10*ebfedea0SLionel Sambuc pushl %esi 11*ebfedea0SLionel Sambuc pushl %edi 12*ebfedea0SLionel Sambuc movl 20(%esp),%edi 13*ebfedea0SLionel Sambuc movl 24(%esp),%edx 14*ebfedea0SLionel Sambuc movl 28(%esp),%esi 15*ebfedea0SLionel Sambuc movl 32(%esp),%ebp 16*ebfedea0SLionel Sambuc xorl %eax,%eax 17*ebfedea0SLionel Sambuc xorl %ebx,%ebx 18*ebfedea0SLionel Sambuc cmpl $0,%edx 19*ebfedea0SLionel Sambuc je .L000abort 20*ebfedea0SLionel Sambuc movb (%edi),%al 21*ebfedea0SLionel Sambuc movb 4(%edi),%bl 22*ebfedea0SLionel Sambuc addl $8,%edi 23*ebfedea0SLionel Sambuc leal (%esi,%edx,1),%ecx 24*ebfedea0SLionel Sambuc subl %esi,%ebp 25*ebfedea0SLionel Sambuc movl %ecx,24(%esp) 26*ebfedea0SLionel Sambuc incb %al 27*ebfedea0SLionel Sambuc cmpl $-1,256(%edi) 28*ebfedea0SLionel Sambuc je .L001RC4_CHAR 29*ebfedea0SLionel Sambuc movl (%edi,%eax,4),%ecx 30*ebfedea0SLionel Sambuc andl $-4,%edx 31*ebfedea0SLionel Sambuc jz .L002loop1 32*ebfedea0SLionel Sambuc testl $-8,%edx 33*ebfedea0SLionel Sambuc movl %ebp,32(%esp) 34*ebfedea0SLionel Sambuc jz .L003go4loop4 35*ebfedea0SLionel Sambuc call .L004PIC_me_up 36*ebfedea0SLionel Sambuc.L004PIC_me_up: 37*ebfedea0SLionel Sambuc popl %ebp 38*ebfedea0SLionel Sambuc leal _GLOBAL_OFFSET_TABLE_+[.-.L004PIC_me_up](%ebp),%ebp 39*ebfedea0SLionel Sambuc movl OPENSSL_ia32cap_P@GOT(%ebp),%ebp 40*ebfedea0SLionel Sambuc btl $26,(%ebp) 41*ebfedea0SLionel Sambuc jnc .L003go4loop4 42*ebfedea0SLionel Sambuc movl 32(%esp),%ebp 43*ebfedea0SLionel Sambuc andl $-8,%edx 44*ebfedea0SLionel Sambuc leal -8(%esi,%edx,1),%edx 45*ebfedea0SLionel Sambuc movl %edx,-4(%edi) 46*ebfedea0SLionel Sambuc addb %cl,%bl 47*ebfedea0SLionel Sambuc movl (%edi,%ebx,4),%edx 48*ebfedea0SLionel Sambuc movl %ecx,(%edi,%ebx,4) 49*ebfedea0SLionel Sambuc movl %edx,(%edi,%eax,4) 50*ebfedea0SLionel Sambuc incl %eax 51*ebfedea0SLionel Sambuc addl %ecx,%edx 52*ebfedea0SLionel Sambuc movzbl %al,%eax 53*ebfedea0SLionel Sambuc movzbl %dl,%edx 54*ebfedea0SLionel Sambuc movq (%esi),%mm0 55*ebfedea0SLionel Sambuc movl (%edi,%eax,4),%ecx 56*ebfedea0SLionel Sambuc movd (%edi,%edx,4),%mm2 57*ebfedea0SLionel Sambuc jmp .L005loop_mmx_enter 58*ebfedea0SLionel Sambuc.align 16 59*ebfedea0SLionel Sambuc.L006loop_mmx: 60*ebfedea0SLionel Sambuc addb %cl,%bl 61*ebfedea0SLionel Sambuc psllq $56,%mm1 62*ebfedea0SLionel Sambuc movl (%edi,%ebx,4),%edx 63*ebfedea0SLionel Sambuc movl %ecx,(%edi,%ebx,4) 64*ebfedea0SLionel Sambuc movl %edx,(%edi,%eax,4) 65*ebfedea0SLionel Sambuc incl %eax 66*ebfedea0SLionel Sambuc addl %ecx,%edx 67*ebfedea0SLionel Sambuc movzbl %al,%eax 68*ebfedea0SLionel Sambuc movzbl %dl,%edx 69*ebfedea0SLionel Sambuc pxor %mm1,%mm2 70*ebfedea0SLionel Sambuc movq (%esi),%mm0 71*ebfedea0SLionel Sambuc movq %mm2,-8(%ebp,%esi,1) 72*ebfedea0SLionel Sambuc movl (%edi,%eax,4),%ecx 73*ebfedea0SLionel Sambuc movd (%edi,%edx,4),%mm2 74*ebfedea0SLionel Sambuc.L005loop_mmx_enter: 75*ebfedea0SLionel Sambuc addb %cl,%bl 76*ebfedea0SLionel Sambuc movl (%edi,%ebx,4),%edx 77*ebfedea0SLionel Sambuc movl %ecx,(%edi,%ebx,4) 78*ebfedea0SLionel Sambuc movl %edx,(%edi,%eax,4) 79*ebfedea0SLionel Sambuc incl %eax 80*ebfedea0SLionel Sambuc addl %ecx,%edx 81*ebfedea0SLionel Sambuc movzbl %al,%eax 82*ebfedea0SLionel Sambuc movzbl %dl,%edx 83*ebfedea0SLionel Sambuc pxor %mm0,%mm2 84*ebfedea0SLionel Sambuc movl (%edi,%eax,4),%ecx 85*ebfedea0SLionel Sambuc movd (%edi,%edx,4),%mm1 86*ebfedea0SLionel Sambuc addb %cl,%bl 87*ebfedea0SLionel Sambuc psllq $8,%mm1 88*ebfedea0SLionel Sambuc movl (%edi,%ebx,4),%edx 89*ebfedea0SLionel Sambuc movl %ecx,(%edi,%ebx,4) 90*ebfedea0SLionel Sambuc movl %edx,(%edi,%eax,4) 91*ebfedea0SLionel Sambuc incl %eax 92*ebfedea0SLionel Sambuc addl %ecx,%edx 93*ebfedea0SLionel Sambuc movzbl %al,%eax 94*ebfedea0SLionel Sambuc movzbl %dl,%edx 95*ebfedea0SLionel Sambuc pxor %mm1,%mm2 96*ebfedea0SLionel Sambuc movl (%edi,%eax,4),%ecx 97*ebfedea0SLionel Sambuc movd (%edi,%edx,4),%mm1 98*ebfedea0SLionel Sambuc addb %cl,%bl 99*ebfedea0SLionel Sambuc psllq $16,%mm1 100*ebfedea0SLionel Sambuc movl (%edi,%ebx,4),%edx 101*ebfedea0SLionel Sambuc movl %ecx,(%edi,%ebx,4) 102*ebfedea0SLionel Sambuc movl %edx,(%edi,%eax,4) 103*ebfedea0SLionel Sambuc incl %eax 104*ebfedea0SLionel Sambuc addl %ecx,%edx 105*ebfedea0SLionel Sambuc movzbl %al,%eax 106*ebfedea0SLionel Sambuc movzbl %dl,%edx 107*ebfedea0SLionel Sambuc pxor %mm1,%mm2 108*ebfedea0SLionel Sambuc movl (%edi,%eax,4),%ecx 109*ebfedea0SLionel Sambuc movd (%edi,%edx,4),%mm1 110*ebfedea0SLionel Sambuc addb %cl,%bl 111*ebfedea0SLionel Sambuc psllq $24,%mm1 112*ebfedea0SLionel Sambuc movl (%edi,%ebx,4),%edx 113*ebfedea0SLionel Sambuc movl %ecx,(%edi,%ebx,4) 114*ebfedea0SLionel Sambuc movl %edx,(%edi,%eax,4) 115*ebfedea0SLionel Sambuc incl %eax 116*ebfedea0SLionel Sambuc addl %ecx,%edx 117*ebfedea0SLionel Sambuc movzbl %al,%eax 118*ebfedea0SLionel Sambuc movzbl %dl,%edx 119*ebfedea0SLionel Sambuc pxor %mm1,%mm2 120*ebfedea0SLionel Sambuc movl (%edi,%eax,4),%ecx 121*ebfedea0SLionel Sambuc movd (%edi,%edx,4),%mm1 122*ebfedea0SLionel Sambuc addb %cl,%bl 123*ebfedea0SLionel Sambuc psllq $32,%mm1 124*ebfedea0SLionel Sambuc movl (%edi,%ebx,4),%edx 125*ebfedea0SLionel Sambuc movl %ecx,(%edi,%ebx,4) 126*ebfedea0SLionel Sambuc movl %edx,(%edi,%eax,4) 127*ebfedea0SLionel Sambuc incl %eax 128*ebfedea0SLionel Sambuc addl %ecx,%edx 129*ebfedea0SLionel Sambuc movzbl %al,%eax 130*ebfedea0SLionel Sambuc movzbl %dl,%edx 131*ebfedea0SLionel Sambuc pxor %mm1,%mm2 132*ebfedea0SLionel Sambuc movl (%edi,%eax,4),%ecx 133*ebfedea0SLionel Sambuc movd (%edi,%edx,4),%mm1 134*ebfedea0SLionel Sambuc addb %cl,%bl 135*ebfedea0SLionel Sambuc psllq $40,%mm1 136*ebfedea0SLionel Sambuc movl (%edi,%ebx,4),%edx 137*ebfedea0SLionel Sambuc movl %ecx,(%edi,%ebx,4) 138*ebfedea0SLionel Sambuc movl %edx,(%edi,%eax,4) 139*ebfedea0SLionel Sambuc incl %eax 140*ebfedea0SLionel Sambuc addl %ecx,%edx 141*ebfedea0SLionel Sambuc movzbl %al,%eax 142*ebfedea0SLionel Sambuc movzbl %dl,%edx 143*ebfedea0SLionel Sambuc pxor %mm1,%mm2 144*ebfedea0SLionel Sambuc movl (%edi,%eax,4),%ecx 145*ebfedea0SLionel Sambuc movd (%edi,%edx,4),%mm1 146*ebfedea0SLionel Sambuc addb %cl,%bl 147*ebfedea0SLionel Sambuc psllq $48,%mm1 148*ebfedea0SLionel Sambuc movl (%edi,%ebx,4),%edx 149*ebfedea0SLionel Sambuc movl %ecx,(%edi,%ebx,4) 150*ebfedea0SLionel Sambuc movl %edx,(%edi,%eax,4) 151*ebfedea0SLionel Sambuc incl %eax 152*ebfedea0SLionel Sambuc addl %ecx,%edx 153*ebfedea0SLionel Sambuc movzbl %al,%eax 154*ebfedea0SLionel Sambuc movzbl %dl,%edx 155*ebfedea0SLionel Sambuc pxor %mm1,%mm2 156*ebfedea0SLionel Sambuc movl (%edi,%eax,4),%ecx 157*ebfedea0SLionel Sambuc movd (%edi,%edx,4),%mm1 158*ebfedea0SLionel Sambuc movl %ebx,%edx 159*ebfedea0SLionel Sambuc xorl %ebx,%ebx 160*ebfedea0SLionel Sambuc movb %dl,%bl 161*ebfedea0SLionel Sambuc cmpl -4(%edi),%esi 162*ebfedea0SLionel Sambuc leal 8(%esi),%esi 163*ebfedea0SLionel Sambuc jb .L006loop_mmx 164*ebfedea0SLionel Sambuc psllq $56,%mm1 165*ebfedea0SLionel Sambuc pxor %mm1,%mm2 166*ebfedea0SLionel Sambuc movq %mm2,-8(%ebp,%esi,1) 167*ebfedea0SLionel Sambuc emms 168*ebfedea0SLionel Sambuc cmpl 24(%esp),%esi 169*ebfedea0SLionel Sambuc je .L007done 170*ebfedea0SLionel Sambuc jmp .L002loop1 171*ebfedea0SLionel Sambuc.align 16 172*ebfedea0SLionel Sambuc.L003go4loop4: 173*ebfedea0SLionel Sambuc leal -4(%esi,%edx,1),%edx 174*ebfedea0SLionel Sambuc movl %edx,28(%esp) 175*ebfedea0SLionel Sambuc.L008loop4: 176*ebfedea0SLionel Sambuc addb %cl,%bl 177*ebfedea0SLionel Sambuc movl (%edi,%ebx,4),%edx 178*ebfedea0SLionel Sambuc movl %ecx,(%edi,%ebx,4) 179*ebfedea0SLionel Sambuc movl %edx,(%edi,%eax,4) 180*ebfedea0SLionel Sambuc addl %ecx,%edx 181*ebfedea0SLionel Sambuc incb %al 182*ebfedea0SLionel Sambuc andl $255,%edx 183*ebfedea0SLionel Sambuc movl (%edi,%eax,4),%ecx 184*ebfedea0SLionel Sambuc movl (%edi,%edx,4),%ebp 185*ebfedea0SLionel Sambuc addb %cl,%bl 186*ebfedea0SLionel Sambuc movl (%edi,%ebx,4),%edx 187*ebfedea0SLionel Sambuc movl %ecx,(%edi,%ebx,4) 188*ebfedea0SLionel Sambuc movl %edx,(%edi,%eax,4) 189*ebfedea0SLionel Sambuc addl %ecx,%edx 190*ebfedea0SLionel Sambuc incb %al 191*ebfedea0SLionel Sambuc andl $255,%edx 192*ebfedea0SLionel Sambuc rorl $8,%ebp 193*ebfedea0SLionel Sambuc movl (%edi,%eax,4),%ecx 194*ebfedea0SLionel Sambuc orl (%edi,%edx,4),%ebp 195*ebfedea0SLionel Sambuc addb %cl,%bl 196*ebfedea0SLionel Sambuc movl (%edi,%ebx,4),%edx 197*ebfedea0SLionel Sambuc movl %ecx,(%edi,%ebx,4) 198*ebfedea0SLionel Sambuc movl %edx,(%edi,%eax,4) 199*ebfedea0SLionel Sambuc addl %ecx,%edx 200*ebfedea0SLionel Sambuc incb %al 201*ebfedea0SLionel Sambuc andl $255,%edx 202*ebfedea0SLionel Sambuc rorl $8,%ebp 203*ebfedea0SLionel Sambuc movl (%edi,%eax,4),%ecx 204*ebfedea0SLionel Sambuc orl (%edi,%edx,4),%ebp 205*ebfedea0SLionel Sambuc addb %cl,%bl 206*ebfedea0SLionel Sambuc movl (%edi,%ebx,4),%edx 207*ebfedea0SLionel Sambuc movl %ecx,(%edi,%ebx,4) 208*ebfedea0SLionel Sambuc movl %edx,(%edi,%eax,4) 209*ebfedea0SLionel Sambuc addl %ecx,%edx 210*ebfedea0SLionel Sambuc incb %al 211*ebfedea0SLionel Sambuc andl $255,%edx 212*ebfedea0SLionel Sambuc rorl $8,%ebp 213*ebfedea0SLionel Sambuc movl 32(%esp),%ecx 214*ebfedea0SLionel Sambuc orl (%edi,%edx,4),%ebp 215*ebfedea0SLionel Sambuc rorl $8,%ebp 216*ebfedea0SLionel Sambuc xorl (%esi),%ebp 217*ebfedea0SLionel Sambuc cmpl 28(%esp),%esi 218*ebfedea0SLionel Sambuc movl %ebp,(%ecx,%esi,1) 219*ebfedea0SLionel Sambuc leal 4(%esi),%esi 220*ebfedea0SLionel Sambuc movl (%edi,%eax,4),%ecx 221*ebfedea0SLionel Sambuc jb .L008loop4 222*ebfedea0SLionel Sambuc cmpl 24(%esp),%esi 223*ebfedea0SLionel Sambuc je .L007done 224*ebfedea0SLionel Sambuc movl 32(%esp),%ebp 225*ebfedea0SLionel Sambuc.align 16 226*ebfedea0SLionel Sambuc.L002loop1: 227*ebfedea0SLionel Sambuc addb %cl,%bl 228*ebfedea0SLionel Sambuc movl (%edi,%ebx,4),%edx 229*ebfedea0SLionel Sambuc movl %ecx,(%edi,%ebx,4) 230*ebfedea0SLionel Sambuc movl %edx,(%edi,%eax,4) 231*ebfedea0SLionel Sambuc addl %ecx,%edx 232*ebfedea0SLionel Sambuc incb %al 233*ebfedea0SLionel Sambuc andl $255,%edx 234*ebfedea0SLionel Sambuc movl (%edi,%edx,4),%edx 235*ebfedea0SLionel Sambuc xorb (%esi),%dl 236*ebfedea0SLionel Sambuc leal 1(%esi),%esi 237*ebfedea0SLionel Sambuc movl (%edi,%eax,4),%ecx 238*ebfedea0SLionel Sambuc cmpl 24(%esp),%esi 239*ebfedea0SLionel Sambuc movb %dl,-1(%ebp,%esi,1) 240*ebfedea0SLionel Sambuc jb .L002loop1 241*ebfedea0SLionel Sambuc jmp .L007done 242*ebfedea0SLionel Sambuc.align 16 243*ebfedea0SLionel Sambuc.L001RC4_CHAR: 244*ebfedea0SLionel Sambuc movzbl (%edi,%eax,1),%ecx 245*ebfedea0SLionel Sambuc.L009cloop1: 246*ebfedea0SLionel Sambuc addb %cl,%bl 247*ebfedea0SLionel Sambuc movzbl (%edi,%ebx,1),%edx 248*ebfedea0SLionel Sambuc movb %cl,(%edi,%ebx,1) 249*ebfedea0SLionel Sambuc movb %dl,(%edi,%eax,1) 250*ebfedea0SLionel Sambuc addb %cl,%dl 251*ebfedea0SLionel Sambuc movzbl (%edi,%edx,1),%edx 252*ebfedea0SLionel Sambuc addb $1,%al 253*ebfedea0SLionel Sambuc xorb (%esi),%dl 254*ebfedea0SLionel Sambuc leal 1(%esi),%esi 255*ebfedea0SLionel Sambuc movzbl (%edi,%eax,1),%ecx 256*ebfedea0SLionel Sambuc cmpl 24(%esp),%esi 257*ebfedea0SLionel Sambuc movb %dl,-1(%ebp,%esi,1) 258*ebfedea0SLionel Sambuc jb .L009cloop1 259*ebfedea0SLionel Sambuc.L007done: 260*ebfedea0SLionel Sambuc decb %al 261*ebfedea0SLionel Sambuc movl %ebx,-4(%edi) 262*ebfedea0SLionel Sambuc movb %al,-8(%edi) 263*ebfedea0SLionel Sambuc.L000abort: 264*ebfedea0SLionel Sambuc popl %edi 265*ebfedea0SLionel Sambuc popl %esi 266*ebfedea0SLionel Sambuc popl %ebx 267*ebfedea0SLionel Sambuc popl %ebp 268*ebfedea0SLionel Sambuc ret 269*ebfedea0SLionel Sambuc.size RC4,.-.L_RC4_begin 270*ebfedea0SLionel Sambuc.globl private_RC4_set_key 271*ebfedea0SLionel Sambuc.type private_RC4_set_key,@function 272*ebfedea0SLionel Sambuc.align 16 273*ebfedea0SLionel Sambucprivate_RC4_set_key: 274*ebfedea0SLionel Sambuc.L_private_RC4_set_key_begin: 275*ebfedea0SLionel Sambuc pushl %ebp 276*ebfedea0SLionel Sambuc pushl %ebx 277*ebfedea0SLionel Sambuc pushl %esi 278*ebfedea0SLionel Sambuc pushl %edi 279*ebfedea0SLionel Sambuc movl 20(%esp),%edi 280*ebfedea0SLionel Sambuc movl 24(%esp),%ebp 281*ebfedea0SLionel Sambuc movl 28(%esp),%esi 282*ebfedea0SLionel Sambuc call .L010PIC_me_up 283*ebfedea0SLionel Sambuc.L010PIC_me_up: 284*ebfedea0SLionel Sambuc popl %edx 285*ebfedea0SLionel Sambuc leal _GLOBAL_OFFSET_TABLE_+[.-.L010PIC_me_up](%edx),%edx 286*ebfedea0SLionel Sambuc movl OPENSSL_ia32cap_P@GOT(%edx),%edx 287*ebfedea0SLionel Sambuc leal 8(%edi),%edi 288*ebfedea0SLionel Sambuc leal (%esi,%ebp,1),%esi 289*ebfedea0SLionel Sambuc negl %ebp 290*ebfedea0SLionel Sambuc xorl %eax,%eax 291*ebfedea0SLionel Sambuc movl %ebp,-4(%edi) 292*ebfedea0SLionel Sambuc btl $20,(%edx) 293*ebfedea0SLionel Sambuc jc .L011c1stloop 294*ebfedea0SLionel Sambuc.align 16 295*ebfedea0SLionel Sambuc.L012w1stloop: 296*ebfedea0SLionel Sambuc movl %eax,(%edi,%eax,4) 297*ebfedea0SLionel Sambuc addb $1,%al 298*ebfedea0SLionel Sambuc jnc .L012w1stloop 299*ebfedea0SLionel Sambuc xorl %ecx,%ecx 300*ebfedea0SLionel Sambuc xorl %edx,%edx 301*ebfedea0SLionel Sambuc.align 16 302*ebfedea0SLionel Sambuc.L013w2ndloop: 303*ebfedea0SLionel Sambuc movl (%edi,%ecx,4),%eax 304*ebfedea0SLionel Sambuc addb (%esi,%ebp,1),%dl 305*ebfedea0SLionel Sambuc addb %al,%dl 306*ebfedea0SLionel Sambuc addl $1,%ebp 307*ebfedea0SLionel Sambuc movl (%edi,%edx,4),%ebx 308*ebfedea0SLionel Sambuc jnz .L014wnowrap 309*ebfedea0SLionel Sambuc movl -4(%edi),%ebp 310*ebfedea0SLionel Sambuc.L014wnowrap: 311*ebfedea0SLionel Sambuc movl %eax,(%edi,%edx,4) 312*ebfedea0SLionel Sambuc movl %ebx,(%edi,%ecx,4) 313*ebfedea0SLionel Sambuc addb $1,%cl 314*ebfedea0SLionel Sambuc jnc .L013w2ndloop 315*ebfedea0SLionel Sambuc jmp .L015exit 316*ebfedea0SLionel Sambuc.align 16 317*ebfedea0SLionel Sambuc.L011c1stloop: 318*ebfedea0SLionel Sambuc movb %al,(%edi,%eax,1) 319*ebfedea0SLionel Sambuc addb $1,%al 320*ebfedea0SLionel Sambuc jnc .L011c1stloop 321*ebfedea0SLionel Sambuc xorl %ecx,%ecx 322*ebfedea0SLionel Sambuc xorl %edx,%edx 323*ebfedea0SLionel Sambuc xorl %ebx,%ebx 324*ebfedea0SLionel Sambuc.align 16 325*ebfedea0SLionel Sambuc.L016c2ndloop: 326*ebfedea0SLionel Sambuc movb (%edi,%ecx,1),%al 327*ebfedea0SLionel Sambuc addb (%esi,%ebp,1),%dl 328*ebfedea0SLionel Sambuc addb %al,%dl 329*ebfedea0SLionel Sambuc addl $1,%ebp 330*ebfedea0SLionel Sambuc movb (%edi,%edx,1),%bl 331*ebfedea0SLionel Sambuc jnz .L017cnowrap 332*ebfedea0SLionel Sambuc movl -4(%edi),%ebp 333*ebfedea0SLionel Sambuc.L017cnowrap: 334*ebfedea0SLionel Sambuc movb %al,(%edi,%edx,1) 335*ebfedea0SLionel Sambuc movb %bl,(%edi,%ecx,1) 336*ebfedea0SLionel Sambuc addb $1,%cl 337*ebfedea0SLionel Sambuc jnc .L016c2ndloop 338*ebfedea0SLionel Sambuc movl $-1,256(%edi) 339*ebfedea0SLionel Sambuc.L015exit: 340*ebfedea0SLionel Sambuc xorl %eax,%eax 341*ebfedea0SLionel Sambuc movl %eax,-8(%edi) 342*ebfedea0SLionel Sambuc movl %eax,-4(%edi) 343*ebfedea0SLionel Sambuc popl %edi 344*ebfedea0SLionel Sambuc popl %esi 345*ebfedea0SLionel Sambuc popl %ebx 346*ebfedea0SLionel Sambuc popl %ebp 347*ebfedea0SLionel Sambuc ret 348*ebfedea0SLionel Sambuc.size private_RC4_set_key,.-.L_private_RC4_set_key_begin 349*ebfedea0SLionel Sambuc.globl RC4_options 350*ebfedea0SLionel Sambuc.type RC4_options,@function 351*ebfedea0SLionel Sambuc.align 16 352*ebfedea0SLionel SambucRC4_options: 353*ebfedea0SLionel Sambuc.L_RC4_options_begin: 354*ebfedea0SLionel Sambuc call .L018pic_point 355*ebfedea0SLionel Sambuc.L018pic_point: 356*ebfedea0SLionel Sambuc popl %eax 357*ebfedea0SLionel Sambuc leal .L019opts-.L018pic_point(%eax),%eax 358*ebfedea0SLionel Sambuc call .L020PIC_me_up 359*ebfedea0SLionel Sambuc.L020PIC_me_up: 360*ebfedea0SLionel Sambuc popl %edx 361*ebfedea0SLionel Sambuc leal _GLOBAL_OFFSET_TABLE_+[.-.L020PIC_me_up](%edx),%edx 362*ebfedea0SLionel Sambuc movl OPENSSL_ia32cap_P@GOT(%edx),%edx 363*ebfedea0SLionel Sambuc movl (%edx),%edx 364*ebfedea0SLionel Sambuc btl $20,%edx 365*ebfedea0SLionel Sambuc jc .L0211xchar 366*ebfedea0SLionel Sambuc btl $26,%edx 367*ebfedea0SLionel Sambuc jnc .L022ret 368*ebfedea0SLionel Sambuc addl $25,%eax 369*ebfedea0SLionel Sambuc ret 370*ebfedea0SLionel Sambuc.L0211xchar: 371*ebfedea0SLionel Sambuc addl $12,%eax 372*ebfedea0SLionel Sambuc.L022ret: 373*ebfedea0SLionel Sambuc ret 374*ebfedea0SLionel Sambuc.align 64 375*ebfedea0SLionel Sambuc.L019opts: 376*ebfedea0SLionel Sambuc.byte 114,99,52,40,52,120,44,105,110,116,41,0 377*ebfedea0SLionel Sambuc.byte 114,99,52,40,49,120,44,99,104,97,114,41,0 378*ebfedea0SLionel Sambuc.byte 114,99,52,40,56,120,44,109,109,120,41,0 379*ebfedea0SLionel Sambuc.byte 82,67,52,32,102,111,114,32,120,56,54,44,32,67,82,89 380*ebfedea0SLionel Sambuc.byte 80,84,79,71,65,77,83,32,98,121,32,60,97,112,112,114 381*ebfedea0SLionel Sambuc.byte 111,64,111,112,101,110,115,115,108,46,111,114,103,62,0 382*ebfedea0SLionel Sambuc.align 64 383*ebfedea0SLionel Sambuc.size RC4_options,.-.L_RC4_options_begin 384*ebfedea0SLionel Sambuc.comm OPENSSL_ia32cap_P,8,4 385