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