Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(688)

Side by Side Diff: third_party/boringssl/win-x86/crypto/sha/sha256-586.asm

Issue 1924693003: Rolls BoringSSL forward (Closed) Base URL: git@github.com:dart-lang/sdk.git@master
Patch Set: Created 4 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 %ifidn __OUTPUT_FORMAT__,obj 1 %ifidn __OUTPUT_FORMAT__,obj
2 section code use32 class=code align=64 2 section code use32 class=code align=64
3 %elifidn __OUTPUT_FORMAT__,win32 3 %elifidn __OUTPUT_FORMAT__,win32
4 %ifdef __YASM_VERSION_ID__ 4 %ifdef __YASM_VERSION_ID__
5 %if __YASM_VERSION_ID__ < 01010000h 5 %if __YASM_VERSION_ID__ < 01010000h
6 %error yasm version 1.1.0 or later needed. 6 %error yasm version 1.1.0 or later needed.
7 %endif 7 %endif
8 ; Yasm automatically includes .00 and complains about redefining it. 8 ; Yasm automatically includes .00 and complains about redefining it.
9 ; https://www.tortall.net/projects/yasm/manual/html/objfmt-win32-safeseh.html 9 ; https://www.tortall.net/projects/yasm/manual/html/objfmt-win32-safeseh.html
10 %else 10 %else
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after
42 lea edx,[_OPENSSL_ia32cap_P] 42 lea edx,[_OPENSSL_ia32cap_P]
43 mov ecx,DWORD [edx] 43 mov ecx,DWORD [edx]
44 mov ebx,DWORD [4+edx] 44 mov ebx,DWORD [4+edx]
45 test ecx,1048576 45 test ecx,1048576
46 jnz NEAR L$002loop 46 jnz NEAR L$002loop
47 mov edx,DWORD [8+edx] 47 mov edx,DWORD [8+edx]
48 test ecx,16777216 48 test ecx,16777216
49 jz NEAR L$003no_xmm 49 jz NEAR L$003no_xmm
50 and ecx,1073741824 50 and ecx,1073741824
51 and ebx,268435968 51 and ebx,268435968
52 test edx,536870912
53 jnz NEAR L$004shaext
54 or ecx,ebx 52 or ecx,ebx
55 and ecx,1342177280 53 and ecx,1342177280
56 cmp ecx,1342177280 54 cmp ecx,1342177280
55 je NEAR L$004AVX
57 test ebx,512 56 test ebx,512
58 jnz NEAR L$005SSSE3 57 jnz NEAR L$005SSSE3
59 L$003no_xmm: 58 L$003no_xmm:
60 sub eax,edi 59 sub eax,edi
61 cmp eax,256 60 cmp eax,256
62 jae NEAR L$006unrolled 61 jae NEAR L$006unrolled
63 jmp NEAR L$002loop 62 jmp NEAR L$002loop
64 align 16 63 align 16
65 L$002loop: 64 L$002loop:
66 mov eax,DWORD [edi] 65 mov eax,DWORD [edi]
(...skipping 3105 matching lines...) Expand 10 before | Expand all | Expand 10 after
3172 mov DWORD [28+esp],ecx 3171 mov DWORD [28+esp],ecx
3173 cmp edi,DWORD [104+esp] 3172 cmp edi,DWORD [104+esp]
3174 jb NEAR L$009grand_loop 3173 jb NEAR L$009grand_loop
3175 mov esp,DWORD [108+esp] 3174 mov esp,DWORD [108+esp]
3176 pop edi 3175 pop edi
3177 pop esi 3176 pop esi
3178 pop ebx 3177 pop ebx
3179 pop ebp 3178 pop ebp
3180 ret 3179 ret
3181 align 32 3180 align 32
3182 L$004shaext:
3183 sub esp,32
3184 movdqu xmm1,[esi]
3185 lea ebp,[128+ebp]
3186 movdqu xmm2,[16+esi]
3187 movdqa xmm7,[128+ebp]
3188 pshufd xmm0,xmm1,27
3189 pshufd xmm1,xmm1,177
3190 pshufd xmm2,xmm2,27
3191 db 102,15,58,15,202,8
3192 punpcklqdq xmm2,xmm0
3193 jmp NEAR L$010loop_shaext
3194 align 16
3195 L$010loop_shaext:
3196 movdqu xmm3,[edi]
3197 movdqu xmm4,[16+edi]
3198 movdqu xmm5,[32+edi]
3199 db 102,15,56,0,223
3200 movdqu xmm6,[48+edi]
3201 movdqa [16+esp],xmm2
3202 movdqa xmm0,[ebp-128]
3203 paddd xmm0,xmm3
3204 db 102,15,56,0,231
3205 db 15,56,203,209
3206 pshufd xmm0,xmm0,14
3207 nop
3208 movdqa [esp],xmm1
3209 db 15,56,203,202
3210 movdqa xmm0,[ebp-112]
3211 paddd xmm0,xmm4
3212 db 102,15,56,0,239
3213 db 15,56,203,209
3214 pshufd xmm0,xmm0,14
3215 lea edi,[64+edi]
3216 db 15,56,204,220
3217 db 15,56,203,202
3218 movdqa xmm0,[ebp-96]
3219 paddd xmm0,xmm5
3220 db 102,15,56,0,247
3221 db 15,56,203,209
3222 pshufd xmm0,xmm0,14
3223 movdqa xmm7,xmm6
3224 db 102,15,58,15,253,4
3225 nop
3226 paddd xmm3,xmm7
3227 db 15,56,204,229
3228 db 15,56,203,202
3229 movdqa xmm0,[ebp-80]
3230 paddd xmm0,xmm6
3231 db 15,56,205,222
3232 db 15,56,203,209
3233 pshufd xmm0,xmm0,14
3234 movdqa xmm7,xmm3
3235 db 102,15,58,15,254,4
3236 nop
3237 paddd xmm4,xmm7
3238 db 15,56,204,238
3239 db 15,56,203,202
3240 movdqa xmm0,[ebp-64]
3241 paddd xmm0,xmm3
3242 db 15,56,205,227
3243 db 15,56,203,209
3244 pshufd xmm0,xmm0,14
3245 movdqa xmm7,xmm4
3246 db 102,15,58,15,251,4
3247 nop
3248 paddd xmm5,xmm7
3249 db 15,56,204,243
3250 db 15,56,203,202
3251 movdqa xmm0,[ebp-48]
3252 paddd xmm0,xmm4
3253 db 15,56,205,236
3254 db 15,56,203,209
3255 pshufd xmm0,xmm0,14
3256 movdqa xmm7,xmm5
3257 db 102,15,58,15,252,4
3258 nop
3259 paddd xmm6,xmm7
3260 db 15,56,204,220
3261 db 15,56,203,202
3262 movdqa xmm0,[ebp-32]
3263 paddd xmm0,xmm5
3264 db 15,56,205,245
3265 db 15,56,203,209
3266 pshufd xmm0,xmm0,14
3267 movdqa xmm7,xmm6
3268 db 102,15,58,15,253,4
3269 nop
3270 paddd xmm3,xmm7
3271 db 15,56,204,229
3272 db 15,56,203,202
3273 movdqa xmm0,[ebp-16]
3274 paddd xmm0,xmm6
3275 db 15,56,205,222
3276 db 15,56,203,209
3277 pshufd xmm0,xmm0,14
3278 movdqa xmm7,xmm3
3279 db 102,15,58,15,254,4
3280 nop
3281 paddd xmm4,xmm7
3282 db 15,56,204,238
3283 db 15,56,203,202
3284 movdqa xmm0,[ebp]
3285 paddd xmm0,xmm3
3286 db 15,56,205,227
3287 db 15,56,203,209
3288 pshufd xmm0,xmm0,14
3289 movdqa xmm7,xmm4
3290 db 102,15,58,15,251,4
3291 nop
3292 paddd xmm5,xmm7
3293 db 15,56,204,243
3294 db 15,56,203,202
3295 movdqa xmm0,[16+ebp]
3296 paddd xmm0,xmm4
3297 db 15,56,205,236
3298 db 15,56,203,209
3299 pshufd xmm0,xmm0,14
3300 movdqa xmm7,xmm5
3301 db 102,15,58,15,252,4
3302 nop
3303 paddd xmm6,xmm7
3304 db 15,56,204,220
3305 db 15,56,203,202
3306 movdqa xmm0,[32+ebp]
3307 paddd xmm0,xmm5
3308 db 15,56,205,245
3309 db 15,56,203,209
3310 pshufd xmm0,xmm0,14
3311 movdqa xmm7,xmm6
3312 db 102,15,58,15,253,4
3313 nop
3314 paddd xmm3,xmm7
3315 db 15,56,204,229
3316 db 15,56,203,202
3317 movdqa xmm0,[48+ebp]
3318 paddd xmm0,xmm6
3319 db 15,56,205,222
3320 db 15,56,203,209
3321 pshufd xmm0,xmm0,14
3322 movdqa xmm7,xmm3
3323 db 102,15,58,15,254,4
3324 nop
3325 paddd xmm4,xmm7
3326 db 15,56,204,238
3327 db 15,56,203,202
3328 movdqa xmm0,[64+ebp]
3329 paddd xmm0,xmm3
3330 db 15,56,205,227
3331 db 15,56,203,209
3332 pshufd xmm0,xmm0,14
3333 movdqa xmm7,xmm4
3334 db 102,15,58,15,251,4
3335 nop
3336 paddd xmm5,xmm7
3337 db 15,56,204,243
3338 db 15,56,203,202
3339 movdqa xmm0,[80+ebp]
3340 paddd xmm0,xmm4
3341 db 15,56,205,236
3342 db 15,56,203,209
3343 pshufd xmm0,xmm0,14
3344 movdqa xmm7,xmm5
3345 db 102,15,58,15,252,4
3346 db 15,56,203,202
3347 paddd xmm6,xmm7
3348 movdqa xmm0,[96+ebp]
3349 paddd xmm0,xmm5
3350 db 15,56,203,209
3351 pshufd xmm0,xmm0,14
3352 db 15,56,205,245
3353 movdqa xmm7,[128+ebp]
3354 db 15,56,203,202
3355 movdqa xmm0,[112+ebp]
3356 paddd xmm0,xmm6
3357 nop
3358 db 15,56,203,209
3359 pshufd xmm0,xmm0,14
3360 cmp eax,edi
3361 nop
3362 db 15,56,203,202
3363 paddd xmm2,[16+esp]
3364 paddd xmm1,[esp]
3365 jnz NEAR L$010loop_shaext
3366 pshufd xmm2,xmm2,177
3367 pshufd xmm7,xmm1,27
3368 pshufd xmm1,xmm1,177
3369 punpckhqdq xmm1,xmm2
3370 db 102,15,58,15,215,8
3371 mov esp,DWORD [44+esp]
3372 movdqu [esi],xmm1
3373 movdqu [16+esi],xmm2
3374 pop edi
3375 pop esi
3376 pop ebx
3377 pop ebp
3378 ret
3379 align 32
3380 L$005SSSE3: 3181 L$005SSSE3:
3381 lea esp,[esp-96] 3182 lea esp,[esp-96]
3382 mov eax,DWORD [esi] 3183 mov eax,DWORD [esi]
3383 mov ebx,DWORD [4+esi] 3184 mov ebx,DWORD [4+esi]
3384 mov ecx,DWORD [8+esi] 3185 mov ecx,DWORD [8+esi]
3385 mov edi,DWORD [12+esi] 3186 mov edi,DWORD [12+esi]
3386 mov DWORD [4+esp],ebx 3187 mov DWORD [4+esp],ebx
3387 xor ebx,ecx 3188 xor ebx,ecx
3388 mov DWORD [8+esp],ecx 3189 mov DWORD [8+esp],ecx
3389 mov DWORD [12+esp],edi 3190 mov DWORD [12+esp],edi
3390 mov edx,DWORD [16+esi] 3191 mov edx,DWORD [16+esi]
3391 mov edi,DWORD [20+esi] 3192 mov edi,DWORD [20+esi]
3392 mov ecx,DWORD [24+esi] 3193 mov ecx,DWORD [24+esi]
3393 mov esi,DWORD [28+esi] 3194 mov esi,DWORD [28+esi]
3394 mov DWORD [20+esp],edi 3195 mov DWORD [20+esp],edi
3395 mov edi,DWORD [100+esp] 3196 mov edi,DWORD [100+esp]
3396 mov DWORD [24+esp],ecx 3197 mov DWORD [24+esp],ecx
3397 mov DWORD [28+esp],esi 3198 mov DWORD [28+esp],esi
3398 movdqa xmm7,[256+ebp] 3199 movdqa xmm7,[256+ebp]
3399 » jmp» NEAR L$011grand_ssse3 3200 » jmp» NEAR L$010grand_ssse3
3400 align 16 3201 align 16
3401 L$011grand_ssse3: 3202 L$010grand_ssse3:
3402 movdqu xmm0,[edi] 3203 movdqu xmm0,[edi]
3403 movdqu xmm1,[16+edi] 3204 movdqu xmm1,[16+edi]
3404 movdqu xmm2,[32+edi] 3205 movdqu xmm2,[32+edi]
3405 movdqu xmm3,[48+edi] 3206 movdqu xmm3,[48+edi]
3406 add edi,64 3207 add edi,64
3407 db 102,15,56,0,199 3208 db 102,15,56,0,199
3408 mov DWORD [100+esp],edi 3209 mov DWORD [100+esp],edi
3409 db 102,15,56,0,207 3210 db 102,15,56,0,207
3410 movdqa xmm4,[ebp] 3211 movdqa xmm4,[ebp]
3411 db 102,15,56,0,215 3212 db 102,15,56,0,215
3412 movdqa xmm5,[16+ebp] 3213 movdqa xmm5,[16+ebp]
3413 paddd xmm4,xmm0 3214 paddd xmm4,xmm0
3414 db 102,15,56,0,223 3215 db 102,15,56,0,223
3415 movdqa xmm6,[32+ebp] 3216 movdqa xmm6,[32+ebp]
3416 paddd xmm5,xmm1 3217 paddd xmm5,xmm1
3417 movdqa xmm7,[48+ebp] 3218 movdqa xmm7,[48+ebp]
3418 movdqa [32+esp],xmm4 3219 movdqa [32+esp],xmm4
3419 paddd xmm6,xmm2 3220 paddd xmm6,xmm2
3420 movdqa [48+esp],xmm5 3221 movdqa [48+esp],xmm5
3421 paddd xmm7,xmm3 3222 paddd xmm7,xmm3
3422 movdqa [64+esp],xmm6 3223 movdqa [64+esp],xmm6
3423 movdqa [80+esp],xmm7 3224 movdqa [80+esp],xmm7
3424 » jmp» NEAR L$012ssse3_00_47 3225 » jmp» NEAR L$011ssse3_00_47
3425 align 16 3226 align 16
3426 L$012ssse3_00_47: 3227 L$011ssse3_00_47:
3427 add ebp,64 3228 add ebp,64
3428 mov ecx,edx 3229 mov ecx,edx
3429 movdqa xmm4,xmm1 3230 movdqa xmm4,xmm1
3430 ror edx,14 3231 ror edx,14
3431 mov esi,DWORD [20+esp] 3232 mov esi,DWORD [20+esp]
3432 movdqa xmm7,xmm3 3233 movdqa xmm7,xmm3
3433 xor edx,ecx 3234 xor edx,ecx
3434 mov edi,DWORD [24+esp] 3235 mov edi,DWORD [24+esp]
3435 db 102,15,58,15,224,4 3236 db 102,15,58,15,224,4
3436 xor esi,edi 3237 xor esi,edi
(...skipping 622 matching lines...) Expand 10 before | Expand all | Expand 10 after
4059 and eax,ebx 3860 and eax,ebx
4060 xor ecx,esi 3861 xor ecx,esi
4061 add edx,DWORD [92+esp] 3862 add edx,DWORD [92+esp]
4062 xor eax,edi 3863 xor eax,edi
4063 ror ecx,2 3864 ror ecx,2
4064 add eax,edx 3865 add eax,edx
4065 add edx,DWORD [16+esp] 3866 add edx,DWORD [16+esp]
4066 add eax,ecx 3867 add eax,ecx
4067 movdqa [80+esp],xmm6 3868 movdqa [80+esp],xmm6
4068 cmp DWORD [64+ebp],66051 3869 cmp DWORD [64+ebp],66051
4069 » jne» NEAR L$012ssse3_00_47 3870 » jne» NEAR L$011ssse3_00_47
4070 mov ecx,edx 3871 mov ecx,edx
4071 ror edx,14 3872 ror edx,14
4072 mov esi,DWORD [20+esp] 3873 mov esi,DWORD [20+esp]
4073 xor edx,ecx 3874 xor edx,ecx
4074 mov edi,DWORD [24+esp] 3875 mov edi,DWORD [24+esp]
4075 xor esi,edi 3876 xor esi,edi
4076 ror edx,5 3877 ror edx,5
4077 and esi,ecx 3878 and esi,ecx
4078 mov DWORD [16+esp],ecx 3879 mov DWORD [16+esp],ecx
4079 xor edx,ecx 3880 xor edx,ecx
(...skipping 493 matching lines...) Expand 10 before | Expand all | Expand 10 after
4573 mov edi,DWORD [28+esp] 4374 mov edi,DWORD [28+esp]
4574 mov DWORD [24+esi],ecx 4375 mov DWORD [24+esi],ecx
4575 add edi,DWORD [28+esi] 4376 add edi,DWORD [28+esi]
4576 mov DWORD [24+esp],ecx 4377 mov DWORD [24+esp],ecx
4577 mov DWORD [28+esi],edi 4378 mov DWORD [28+esi],edi
4578 mov DWORD [28+esp],edi 4379 mov DWORD [28+esp],edi
4579 mov edi,DWORD [100+esp] 4380 mov edi,DWORD [100+esp]
4580 movdqa xmm7,[64+ebp] 4381 movdqa xmm7,[64+ebp]
4581 sub ebp,192 4382 sub ebp,192
4582 cmp edi,DWORD [104+esp] 4383 cmp edi,DWORD [104+esp]
4583 » jb» NEAR L$011grand_ssse3 4384 » jb» NEAR L$010grand_ssse3
4584 mov esp,DWORD [108+esp] 4385 mov esp,DWORD [108+esp]
4585 pop edi 4386 pop edi
4586 pop esi 4387 pop esi
4587 pop ebx 4388 pop ebx
4389 pop ebp
4390 ret
4391 align 32
4392 L$004AVX:
4393 lea esp,[esp-96]
4394 vzeroall
4395 mov eax,DWORD [esi]
4396 mov ebx,DWORD [4+esi]
4397 mov ecx,DWORD [8+esi]
4398 mov edi,DWORD [12+esi]
4399 mov DWORD [4+esp],ebx
4400 xor ebx,ecx
4401 mov DWORD [8+esp],ecx
4402 mov DWORD [12+esp],edi
4403 mov edx,DWORD [16+esi]
4404 mov edi,DWORD [20+esi]
4405 mov ecx,DWORD [24+esi]
4406 mov esi,DWORD [28+esi]
4407 mov DWORD [20+esp],edi
4408 mov edi,DWORD [100+esp]
4409 mov DWORD [24+esp],ecx
4410 mov DWORD [28+esp],esi
4411 vmovdqa xmm7,[256+ebp]
4412 jmp NEAR L$012grand_avx
4413 align 32
4414 L$012grand_avx:
4415 vmovdqu xmm0,[edi]
4416 vmovdqu xmm1,[16+edi]
4417 vmovdqu xmm2,[32+edi]
4418 vmovdqu xmm3,[48+edi]
4419 add edi,64
4420 vpshufb xmm0,xmm0,xmm7
4421 mov DWORD [100+esp],edi
4422 vpshufb xmm1,xmm1,xmm7
4423 vpshufb xmm2,xmm2,xmm7
4424 vpaddd xmm4,xmm0,[ebp]
4425 vpshufb xmm3,xmm3,xmm7
4426 vpaddd xmm5,xmm1,[16+ebp]
4427 vpaddd xmm6,xmm2,[32+ebp]
4428 vpaddd xmm7,xmm3,[48+ebp]
4429 vmovdqa [32+esp],xmm4
4430 vmovdqa [48+esp],xmm5
4431 vmovdqa [64+esp],xmm6
4432 vmovdqa [80+esp],xmm7
4433 jmp NEAR L$013avx_00_47
4434 align 16
4435 L$013avx_00_47:
4436 add ebp,64
4437 vpalignr xmm4,xmm1,xmm0,4
4438 mov ecx,edx
4439 shrd edx,edx,14
4440 mov esi,DWORD [20+esp]
4441 vpalignr xmm7,xmm3,xmm2,4
4442 xor edx,ecx
4443 mov edi,DWORD [24+esp]
4444 xor esi,edi
4445 vpsrld xmm6,xmm4,7
4446 shrd edx,edx,5
4447 and esi,ecx
4448 mov DWORD [16+esp],ecx
4449 vpaddd xmm0,xmm0,xmm7
4450 xor edx,ecx
4451 xor edi,esi
4452 shrd edx,edx,6
4453 vpsrld xmm7,xmm4,3
4454 mov ecx,eax
4455 add edx,edi
4456 mov edi,DWORD [4+esp]
4457 vpslld xmm5,xmm4,14
4458 mov esi,eax
4459 shrd ecx,ecx,9
4460 mov DWORD [esp],eax
4461 vpxor xmm4,xmm7,xmm6
4462 xor ecx,eax
4463 xor eax,edi
4464 add edx,DWORD [28+esp]
4465 vpshufd xmm7,xmm3,250
4466 shrd ecx,ecx,11
4467 and ebx,eax
4468 xor ecx,esi
4469 vpsrld xmm6,xmm6,11
4470 add edx,DWORD [32+esp]
4471 xor ebx,edi
4472 shrd ecx,ecx,2
4473 vpxor xmm4,xmm4,xmm5
4474 add ebx,edx
4475 add edx,DWORD [12+esp]
4476 add ebx,ecx
4477 vpslld xmm5,xmm5,11
4478 mov ecx,edx
4479 shrd edx,edx,14
4480 mov esi,DWORD [16+esp]
4481 vpxor xmm4,xmm4,xmm6
4482 xor edx,ecx
4483 mov edi,DWORD [20+esp]
4484 xor esi,edi
4485 vpsrld xmm6,xmm7,10
4486 shrd edx,edx,5
4487 and esi,ecx
4488 mov DWORD [12+esp],ecx
4489 vpxor xmm4,xmm4,xmm5
4490 xor edx,ecx
4491 xor edi,esi
4492 shrd edx,edx,6
4493 vpsrlq xmm5,xmm7,17
4494 mov ecx,ebx
4495 add edx,edi
4496 mov edi,DWORD [esp]
4497 vpaddd xmm0,xmm0,xmm4
4498 mov esi,ebx
4499 shrd ecx,ecx,9
4500 mov DWORD [28+esp],ebx
4501 vpxor xmm6,xmm6,xmm5
4502 xor ecx,ebx
4503 xor ebx,edi
4504 add edx,DWORD [24+esp]
4505 vpsrlq xmm7,xmm7,19
4506 shrd ecx,ecx,11
4507 and eax,ebx
4508 xor ecx,esi
4509 vpxor xmm6,xmm6,xmm7
4510 add edx,DWORD [36+esp]
4511 xor eax,edi
4512 shrd ecx,ecx,2
4513 vpshufd xmm7,xmm6,132
4514 add eax,edx
4515 add edx,DWORD [8+esp]
4516 add eax,ecx
4517 vpsrldq xmm7,xmm7,8
4518 mov ecx,edx
4519 shrd edx,edx,14
4520 mov esi,DWORD [12+esp]
4521 vpaddd xmm0,xmm0,xmm7
4522 xor edx,ecx
4523 mov edi,DWORD [16+esp]
4524 xor esi,edi
4525 vpshufd xmm7,xmm0,80
4526 shrd edx,edx,5
4527 and esi,ecx
4528 mov DWORD [8+esp],ecx
4529 vpsrld xmm6,xmm7,10
4530 xor edx,ecx
4531 xor edi,esi
4532 shrd edx,edx,6
4533 vpsrlq xmm5,xmm7,17
4534 mov ecx,eax
4535 add edx,edi
4536 mov edi,DWORD [28+esp]
4537 vpxor xmm6,xmm6,xmm5
4538 mov esi,eax
4539 shrd ecx,ecx,9
4540 mov DWORD [24+esp],eax
4541 vpsrlq xmm7,xmm7,19
4542 xor ecx,eax
4543 xor eax,edi
4544 add edx,DWORD [20+esp]
4545 vpxor xmm6,xmm6,xmm7
4546 shrd ecx,ecx,11
4547 and ebx,eax
4548 xor ecx,esi
4549 vpshufd xmm7,xmm6,232
4550 add edx,DWORD [40+esp]
4551 xor ebx,edi
4552 shrd ecx,ecx,2
4553 vpslldq xmm7,xmm7,8
4554 add ebx,edx
4555 add edx,DWORD [4+esp]
4556 add ebx,ecx
4557 vpaddd xmm0,xmm0,xmm7
4558 mov ecx,edx
4559 shrd edx,edx,14
4560 mov esi,DWORD [8+esp]
4561 vpaddd xmm6,xmm0,[ebp]
4562 xor edx,ecx
4563 mov edi,DWORD [12+esp]
4564 xor esi,edi
4565 shrd edx,edx,5
4566 and esi,ecx
4567 mov DWORD [4+esp],ecx
4568 xor edx,ecx
4569 xor edi,esi
4570 shrd edx,edx,6
4571 mov ecx,ebx
4572 add edx,edi
4573 mov edi,DWORD [24+esp]
4574 mov esi,ebx
4575 shrd ecx,ecx,9
4576 mov DWORD [20+esp],ebx
4577 xor ecx,ebx
4578 xor ebx,edi
4579 add edx,DWORD [16+esp]
4580 shrd ecx,ecx,11
4581 and eax,ebx
4582 xor ecx,esi
4583 add edx,DWORD [44+esp]
4584 xor eax,edi
4585 shrd ecx,ecx,2
4586 add eax,edx
4587 add edx,DWORD [esp]
4588 add eax,ecx
4589 vmovdqa [32+esp],xmm6
4590 vpalignr xmm4,xmm2,xmm1,4
4591 mov ecx,edx
4592 shrd edx,edx,14
4593 mov esi,DWORD [4+esp]
4594 vpalignr xmm7,xmm0,xmm3,4
4595 xor edx,ecx
4596 mov edi,DWORD [8+esp]
4597 xor esi,edi
4598 vpsrld xmm6,xmm4,7
4599 shrd edx,edx,5
4600 and esi,ecx
4601 mov DWORD [esp],ecx
4602 vpaddd xmm1,xmm1,xmm7
4603 xor edx,ecx
4604 xor edi,esi
4605 shrd edx,edx,6
4606 vpsrld xmm7,xmm4,3
4607 mov ecx,eax
4608 add edx,edi
4609 mov edi,DWORD [20+esp]
4610 vpslld xmm5,xmm4,14
4611 mov esi,eax
4612 shrd ecx,ecx,9
4613 mov DWORD [16+esp],eax
4614 vpxor xmm4,xmm7,xmm6
4615 xor ecx,eax
4616 xor eax,edi
4617 add edx,DWORD [12+esp]
4618 vpshufd xmm7,xmm0,250
4619 shrd ecx,ecx,11
4620 and ebx,eax
4621 xor ecx,esi
4622 vpsrld xmm6,xmm6,11
4623 add edx,DWORD [48+esp]
4624 xor ebx,edi
4625 shrd ecx,ecx,2
4626 vpxor xmm4,xmm4,xmm5
4627 add ebx,edx
4628 add edx,DWORD [28+esp]
4629 add ebx,ecx
4630 vpslld xmm5,xmm5,11
4631 mov ecx,edx
4632 shrd edx,edx,14
4633 mov esi,DWORD [esp]
4634 vpxor xmm4,xmm4,xmm6
4635 xor edx,ecx
4636 mov edi,DWORD [4+esp]
4637 xor esi,edi
4638 vpsrld xmm6,xmm7,10
4639 shrd edx,edx,5
4640 and esi,ecx
4641 mov DWORD [28+esp],ecx
4642 vpxor xmm4,xmm4,xmm5
4643 xor edx,ecx
4644 xor edi,esi
4645 shrd edx,edx,6
4646 vpsrlq xmm5,xmm7,17
4647 mov ecx,ebx
4648 add edx,edi
4649 mov edi,DWORD [16+esp]
4650 vpaddd xmm1,xmm1,xmm4
4651 mov esi,ebx
4652 shrd ecx,ecx,9
4653 mov DWORD [12+esp],ebx
4654 vpxor xmm6,xmm6,xmm5
4655 xor ecx,ebx
4656 xor ebx,edi
4657 add edx,DWORD [8+esp]
4658 vpsrlq xmm7,xmm7,19
4659 shrd ecx,ecx,11
4660 and eax,ebx
4661 xor ecx,esi
4662 vpxor xmm6,xmm6,xmm7
4663 add edx,DWORD [52+esp]
4664 xor eax,edi
4665 shrd ecx,ecx,2
4666 vpshufd xmm7,xmm6,132
4667 add eax,edx
4668 add edx,DWORD [24+esp]
4669 add eax,ecx
4670 vpsrldq xmm7,xmm7,8
4671 mov ecx,edx
4672 shrd edx,edx,14
4673 mov esi,DWORD [28+esp]
4674 vpaddd xmm1,xmm1,xmm7
4675 xor edx,ecx
4676 mov edi,DWORD [esp]
4677 xor esi,edi
4678 vpshufd xmm7,xmm1,80
4679 shrd edx,edx,5
4680 and esi,ecx
4681 mov DWORD [24+esp],ecx
4682 vpsrld xmm6,xmm7,10
4683 xor edx,ecx
4684 xor edi,esi
4685 shrd edx,edx,6
4686 vpsrlq xmm5,xmm7,17
4687 mov ecx,eax
4688 add edx,edi
4689 mov edi,DWORD [12+esp]
4690 vpxor xmm6,xmm6,xmm5
4691 mov esi,eax
4692 shrd ecx,ecx,9
4693 mov DWORD [8+esp],eax
4694 vpsrlq xmm7,xmm7,19
4695 xor ecx,eax
4696 xor eax,edi
4697 add edx,DWORD [4+esp]
4698 vpxor xmm6,xmm6,xmm7
4699 shrd ecx,ecx,11
4700 and ebx,eax
4701 xor ecx,esi
4702 vpshufd xmm7,xmm6,232
4703 add edx,DWORD [56+esp]
4704 xor ebx,edi
4705 shrd ecx,ecx,2
4706 vpslldq xmm7,xmm7,8
4707 add ebx,edx
4708 add edx,DWORD [20+esp]
4709 add ebx,ecx
4710 vpaddd xmm1,xmm1,xmm7
4711 mov ecx,edx
4712 shrd edx,edx,14
4713 mov esi,DWORD [24+esp]
4714 vpaddd xmm6,xmm1,[16+ebp]
4715 xor edx,ecx
4716 mov edi,DWORD [28+esp]
4717 xor esi,edi
4718 shrd edx,edx,5
4719 and esi,ecx
4720 mov DWORD [20+esp],ecx
4721 xor edx,ecx
4722 xor edi,esi
4723 shrd edx,edx,6
4724 mov ecx,ebx
4725 add edx,edi
4726 mov edi,DWORD [8+esp]
4727 mov esi,ebx
4728 shrd ecx,ecx,9
4729 mov DWORD [4+esp],ebx
4730 xor ecx,ebx
4731 xor ebx,edi
4732 add edx,DWORD [esp]
4733 shrd ecx,ecx,11
4734 and eax,ebx
4735 xor ecx,esi
4736 add edx,DWORD [60+esp]
4737 xor eax,edi
4738 shrd ecx,ecx,2
4739 add eax,edx
4740 add edx,DWORD [16+esp]
4741 add eax,ecx
4742 vmovdqa [48+esp],xmm6
4743 vpalignr xmm4,xmm3,xmm2,4
4744 mov ecx,edx
4745 shrd edx,edx,14
4746 mov esi,DWORD [20+esp]
4747 vpalignr xmm7,xmm1,xmm0,4
4748 xor edx,ecx
4749 mov edi,DWORD [24+esp]
4750 xor esi,edi
4751 vpsrld xmm6,xmm4,7
4752 shrd edx,edx,5
4753 and esi,ecx
4754 mov DWORD [16+esp],ecx
4755 vpaddd xmm2,xmm2,xmm7
4756 xor edx,ecx
4757 xor edi,esi
4758 shrd edx,edx,6
4759 vpsrld xmm7,xmm4,3
4760 mov ecx,eax
4761 add edx,edi
4762 mov edi,DWORD [4+esp]
4763 vpslld xmm5,xmm4,14
4764 mov esi,eax
4765 shrd ecx,ecx,9
4766 mov DWORD [esp],eax
4767 vpxor xmm4,xmm7,xmm6
4768 xor ecx,eax
4769 xor eax,edi
4770 add edx,DWORD [28+esp]
4771 vpshufd xmm7,xmm1,250
4772 shrd ecx,ecx,11
4773 and ebx,eax
4774 xor ecx,esi
4775 vpsrld xmm6,xmm6,11
4776 add edx,DWORD [64+esp]
4777 xor ebx,edi
4778 shrd ecx,ecx,2
4779 vpxor xmm4,xmm4,xmm5
4780 add ebx,edx
4781 add edx,DWORD [12+esp]
4782 add ebx,ecx
4783 vpslld xmm5,xmm5,11
4784 mov ecx,edx
4785 shrd edx,edx,14
4786 mov esi,DWORD [16+esp]
4787 vpxor xmm4,xmm4,xmm6
4788 xor edx,ecx
4789 mov edi,DWORD [20+esp]
4790 xor esi,edi
4791 vpsrld xmm6,xmm7,10
4792 shrd edx,edx,5
4793 and esi,ecx
4794 mov DWORD [12+esp],ecx
4795 vpxor xmm4,xmm4,xmm5
4796 xor edx,ecx
4797 xor edi,esi
4798 shrd edx,edx,6
4799 vpsrlq xmm5,xmm7,17
4800 mov ecx,ebx
4801 add edx,edi
4802 mov edi,DWORD [esp]
4803 vpaddd xmm2,xmm2,xmm4
4804 mov esi,ebx
4805 shrd ecx,ecx,9
4806 mov DWORD [28+esp],ebx
4807 vpxor xmm6,xmm6,xmm5
4808 xor ecx,ebx
4809 xor ebx,edi
4810 add edx,DWORD [24+esp]
4811 vpsrlq xmm7,xmm7,19
4812 shrd ecx,ecx,11
4813 and eax,ebx
4814 xor ecx,esi
4815 vpxor xmm6,xmm6,xmm7
4816 add edx,DWORD [68+esp]
4817 xor eax,edi
4818 shrd ecx,ecx,2
4819 vpshufd xmm7,xmm6,132
4820 add eax,edx
4821 add edx,DWORD [8+esp]
4822 add eax,ecx
4823 vpsrldq xmm7,xmm7,8
4824 mov ecx,edx
4825 shrd edx,edx,14
4826 mov esi,DWORD [12+esp]
4827 vpaddd xmm2,xmm2,xmm7
4828 xor edx,ecx
4829 mov edi,DWORD [16+esp]
4830 xor esi,edi
4831 vpshufd xmm7,xmm2,80
4832 shrd edx,edx,5
4833 and esi,ecx
4834 mov DWORD [8+esp],ecx
4835 vpsrld xmm6,xmm7,10
4836 xor edx,ecx
4837 xor edi,esi
4838 shrd edx,edx,6
4839 vpsrlq xmm5,xmm7,17
4840 mov ecx,eax
4841 add edx,edi
4842 mov edi,DWORD [28+esp]
4843 vpxor xmm6,xmm6,xmm5
4844 mov esi,eax
4845 shrd ecx,ecx,9
4846 mov DWORD [24+esp],eax
4847 vpsrlq xmm7,xmm7,19
4848 xor ecx,eax
4849 xor eax,edi
4850 add edx,DWORD [20+esp]
4851 vpxor xmm6,xmm6,xmm7
4852 shrd ecx,ecx,11
4853 and ebx,eax
4854 xor ecx,esi
4855 vpshufd xmm7,xmm6,232
4856 add edx,DWORD [72+esp]
4857 xor ebx,edi
4858 shrd ecx,ecx,2
4859 vpslldq xmm7,xmm7,8
4860 add ebx,edx
4861 add edx,DWORD [4+esp]
4862 add ebx,ecx
4863 vpaddd xmm2,xmm2,xmm7
4864 mov ecx,edx
4865 shrd edx,edx,14
4866 mov esi,DWORD [8+esp]
4867 vpaddd xmm6,xmm2,[32+ebp]
4868 xor edx,ecx
4869 mov edi,DWORD [12+esp]
4870 xor esi,edi
4871 shrd edx,edx,5
4872 and esi,ecx
4873 mov DWORD [4+esp],ecx
4874 xor edx,ecx
4875 xor edi,esi
4876 shrd edx,edx,6
4877 mov ecx,ebx
4878 add edx,edi
4879 mov edi,DWORD [24+esp]
4880 mov esi,ebx
4881 shrd ecx,ecx,9
4882 mov DWORD [20+esp],ebx
4883 xor ecx,ebx
4884 xor ebx,edi
4885 add edx,DWORD [16+esp]
4886 shrd ecx,ecx,11
4887 and eax,ebx
4888 xor ecx,esi
4889 add edx,DWORD [76+esp]
4890 xor eax,edi
4891 shrd ecx,ecx,2
4892 add eax,edx
4893 add edx,DWORD [esp]
4894 add eax,ecx
4895 vmovdqa [64+esp],xmm6
4896 vpalignr xmm4,xmm0,xmm3,4
4897 mov ecx,edx
4898 shrd edx,edx,14
4899 mov esi,DWORD [4+esp]
4900 vpalignr xmm7,xmm2,xmm1,4
4901 xor edx,ecx
4902 mov edi,DWORD [8+esp]
4903 xor esi,edi
4904 vpsrld xmm6,xmm4,7
4905 shrd edx,edx,5
4906 and esi,ecx
4907 mov DWORD [esp],ecx
4908 vpaddd xmm3,xmm3,xmm7
4909 xor edx,ecx
4910 xor edi,esi
4911 shrd edx,edx,6
4912 vpsrld xmm7,xmm4,3
4913 mov ecx,eax
4914 add edx,edi
4915 mov edi,DWORD [20+esp]
4916 vpslld xmm5,xmm4,14
4917 mov esi,eax
4918 shrd ecx,ecx,9
4919 mov DWORD [16+esp],eax
4920 vpxor xmm4,xmm7,xmm6
4921 xor ecx,eax
4922 xor eax,edi
4923 add edx,DWORD [12+esp]
4924 vpshufd xmm7,xmm2,250
4925 shrd ecx,ecx,11
4926 and ebx,eax
4927 xor ecx,esi
4928 vpsrld xmm6,xmm6,11
4929 add edx,DWORD [80+esp]
4930 xor ebx,edi
4931 shrd ecx,ecx,2
4932 vpxor xmm4,xmm4,xmm5
4933 add ebx,edx
4934 add edx,DWORD [28+esp]
4935 add ebx,ecx
4936 vpslld xmm5,xmm5,11
4937 mov ecx,edx
4938 shrd edx,edx,14
4939 mov esi,DWORD [esp]
4940 vpxor xmm4,xmm4,xmm6
4941 xor edx,ecx
4942 mov edi,DWORD [4+esp]
4943 xor esi,edi
4944 vpsrld xmm6,xmm7,10
4945 shrd edx,edx,5
4946 and esi,ecx
4947 mov DWORD [28+esp],ecx
4948 vpxor xmm4,xmm4,xmm5
4949 xor edx,ecx
4950 xor edi,esi
4951 shrd edx,edx,6
4952 vpsrlq xmm5,xmm7,17
4953 mov ecx,ebx
4954 add edx,edi
4955 mov edi,DWORD [16+esp]
4956 vpaddd xmm3,xmm3,xmm4
4957 mov esi,ebx
4958 shrd ecx,ecx,9
4959 mov DWORD [12+esp],ebx
4960 vpxor xmm6,xmm6,xmm5
4961 xor ecx,ebx
4962 xor ebx,edi
4963 add edx,DWORD [8+esp]
4964 vpsrlq xmm7,xmm7,19
4965 shrd ecx,ecx,11
4966 and eax,ebx
4967 xor ecx,esi
4968 vpxor xmm6,xmm6,xmm7
4969 add edx,DWORD [84+esp]
4970 xor eax,edi
4971 shrd ecx,ecx,2
4972 vpshufd xmm7,xmm6,132
4973 add eax,edx
4974 add edx,DWORD [24+esp]
4975 add eax,ecx
4976 vpsrldq xmm7,xmm7,8
4977 mov ecx,edx
4978 shrd edx,edx,14
4979 mov esi,DWORD [28+esp]
4980 vpaddd xmm3,xmm3,xmm7
4981 xor edx,ecx
4982 mov edi,DWORD [esp]
4983 xor esi,edi
4984 vpshufd xmm7,xmm3,80
4985 shrd edx,edx,5
4986 and esi,ecx
4987 mov DWORD [24+esp],ecx
4988 vpsrld xmm6,xmm7,10
4989 xor edx,ecx
4990 xor edi,esi
4991 shrd edx,edx,6
4992 vpsrlq xmm5,xmm7,17
4993 mov ecx,eax
4994 add edx,edi
4995 mov edi,DWORD [12+esp]
4996 vpxor xmm6,xmm6,xmm5
4997 mov esi,eax
4998 shrd ecx,ecx,9
4999 mov DWORD [8+esp],eax
5000 vpsrlq xmm7,xmm7,19
5001 xor ecx,eax
5002 xor eax,edi
5003 add edx,DWORD [4+esp]
5004 vpxor xmm6,xmm6,xmm7
5005 shrd ecx,ecx,11
5006 and ebx,eax
5007 xor ecx,esi
5008 vpshufd xmm7,xmm6,232
5009 add edx,DWORD [88+esp]
5010 xor ebx,edi
5011 shrd ecx,ecx,2
5012 vpslldq xmm7,xmm7,8
5013 add ebx,edx
5014 add edx,DWORD [20+esp]
5015 add ebx,ecx
5016 vpaddd xmm3,xmm3,xmm7
5017 mov ecx,edx
5018 shrd edx,edx,14
5019 mov esi,DWORD [24+esp]
5020 vpaddd xmm6,xmm3,[48+ebp]
5021 xor edx,ecx
5022 mov edi,DWORD [28+esp]
5023 xor esi,edi
5024 shrd edx,edx,5
5025 and esi,ecx
5026 mov DWORD [20+esp],ecx
5027 xor edx,ecx
5028 xor edi,esi
5029 shrd edx,edx,6
5030 mov ecx,ebx
5031 add edx,edi
5032 mov edi,DWORD [8+esp]
5033 mov esi,ebx
5034 shrd ecx,ecx,9
5035 mov DWORD [4+esp],ebx
5036 xor ecx,ebx
5037 xor ebx,edi
5038 add edx,DWORD [esp]
5039 shrd ecx,ecx,11
5040 and eax,ebx
5041 xor ecx,esi
5042 add edx,DWORD [92+esp]
5043 xor eax,edi
5044 shrd ecx,ecx,2
5045 add eax,edx
5046 add edx,DWORD [16+esp]
5047 add eax,ecx
5048 vmovdqa [80+esp],xmm6
5049 cmp DWORD [64+ebp],66051
5050 jne NEAR L$013avx_00_47
5051 mov ecx,edx
5052 shrd edx,edx,14
5053 mov esi,DWORD [20+esp]
5054 xor edx,ecx
5055 mov edi,DWORD [24+esp]
5056 xor esi,edi
5057 shrd edx,edx,5
5058 and esi,ecx
5059 mov DWORD [16+esp],ecx
5060 xor edx,ecx
5061 xor edi,esi
5062 shrd edx,edx,6
5063 mov ecx,eax
5064 add edx,edi
5065 mov edi,DWORD [4+esp]
5066 mov esi,eax
5067 shrd ecx,ecx,9
5068 mov DWORD [esp],eax
5069 xor ecx,eax
5070 xor eax,edi
5071 add edx,DWORD [28+esp]
5072 shrd ecx,ecx,11
5073 and ebx,eax
5074 xor ecx,esi
5075 add edx,DWORD [32+esp]
5076 xor ebx,edi
5077 shrd ecx,ecx,2
5078 add ebx,edx
5079 add edx,DWORD [12+esp]
5080 add ebx,ecx
5081 mov ecx,edx
5082 shrd edx,edx,14
5083 mov esi,DWORD [16+esp]
5084 xor edx,ecx
5085 mov edi,DWORD [20+esp]
5086 xor esi,edi
5087 shrd edx,edx,5
5088 and esi,ecx
5089 mov DWORD [12+esp],ecx
5090 xor edx,ecx
5091 xor edi,esi
5092 shrd edx,edx,6
5093 mov ecx,ebx
5094 add edx,edi
5095 mov edi,DWORD [esp]
5096 mov esi,ebx
5097 shrd ecx,ecx,9
5098 mov DWORD [28+esp],ebx
5099 xor ecx,ebx
5100 xor ebx,edi
5101 add edx,DWORD [24+esp]
5102 shrd ecx,ecx,11
5103 and eax,ebx
5104 xor ecx,esi
5105 add edx,DWORD [36+esp]
5106 xor eax,edi
5107 shrd ecx,ecx,2
5108 add eax,edx
5109 add edx,DWORD [8+esp]
5110 add eax,ecx
5111 mov ecx,edx
5112 shrd edx,edx,14
5113 mov esi,DWORD [12+esp]
5114 xor edx,ecx
5115 mov edi,DWORD [16+esp]
5116 xor esi,edi
5117 shrd edx,edx,5
5118 and esi,ecx
5119 mov DWORD [8+esp],ecx
5120 xor edx,ecx
5121 xor edi,esi
5122 shrd edx,edx,6
5123 mov ecx,eax
5124 add edx,edi
5125 mov edi,DWORD [28+esp]
5126 mov esi,eax
5127 shrd ecx,ecx,9
5128 mov DWORD [24+esp],eax
5129 xor ecx,eax
5130 xor eax,edi
5131 add edx,DWORD [20+esp]
5132 shrd ecx,ecx,11
5133 and ebx,eax
5134 xor ecx,esi
5135 add edx,DWORD [40+esp]
5136 xor ebx,edi
5137 shrd ecx,ecx,2
5138 add ebx,edx
5139 add edx,DWORD [4+esp]
5140 add ebx,ecx
5141 mov ecx,edx
5142 shrd edx,edx,14
5143 mov esi,DWORD [8+esp]
5144 xor edx,ecx
5145 mov edi,DWORD [12+esp]
5146 xor esi,edi
5147 shrd edx,edx,5
5148 and esi,ecx
5149 mov DWORD [4+esp],ecx
5150 xor edx,ecx
5151 xor edi,esi
5152 shrd edx,edx,6
5153 mov ecx,ebx
5154 add edx,edi
5155 mov edi,DWORD [24+esp]
5156 mov esi,ebx
5157 shrd ecx,ecx,9
5158 mov DWORD [20+esp],ebx
5159 xor ecx,ebx
5160 xor ebx,edi
5161 add edx,DWORD [16+esp]
5162 shrd ecx,ecx,11
5163 and eax,ebx
5164 xor ecx,esi
5165 add edx,DWORD [44+esp]
5166 xor eax,edi
5167 shrd ecx,ecx,2
5168 add eax,edx
5169 add edx,DWORD [esp]
5170 add eax,ecx
5171 mov ecx,edx
5172 shrd edx,edx,14
5173 mov esi,DWORD [4+esp]
5174 xor edx,ecx
5175 mov edi,DWORD [8+esp]
5176 xor esi,edi
5177 shrd edx,edx,5
5178 and esi,ecx
5179 mov DWORD [esp],ecx
5180 xor edx,ecx
5181 xor edi,esi
5182 shrd edx,edx,6
5183 mov ecx,eax
5184 add edx,edi
5185 mov edi,DWORD [20+esp]
5186 mov esi,eax
5187 shrd ecx,ecx,9
5188 mov DWORD [16+esp],eax
5189 xor ecx,eax
5190 xor eax,edi
5191 add edx,DWORD [12+esp]
5192 shrd ecx,ecx,11
5193 and ebx,eax
5194 xor ecx,esi
5195 add edx,DWORD [48+esp]
5196 xor ebx,edi
5197 shrd ecx,ecx,2
5198 add ebx,edx
5199 add edx,DWORD [28+esp]
5200 add ebx,ecx
5201 mov ecx,edx
5202 shrd edx,edx,14
5203 mov esi,DWORD [esp]
5204 xor edx,ecx
5205 mov edi,DWORD [4+esp]
5206 xor esi,edi
5207 shrd edx,edx,5
5208 and esi,ecx
5209 mov DWORD [28+esp],ecx
5210 xor edx,ecx
5211 xor edi,esi
5212 shrd edx,edx,6
5213 mov ecx,ebx
5214 add edx,edi
5215 mov edi,DWORD [16+esp]
5216 mov esi,ebx
5217 shrd ecx,ecx,9
5218 mov DWORD [12+esp],ebx
5219 xor ecx,ebx
5220 xor ebx,edi
5221 add edx,DWORD [8+esp]
5222 shrd ecx,ecx,11
5223 and eax,ebx
5224 xor ecx,esi
5225 add edx,DWORD [52+esp]
5226 xor eax,edi
5227 shrd ecx,ecx,2
5228 add eax,edx
5229 add edx,DWORD [24+esp]
5230 add eax,ecx
5231 mov ecx,edx
5232 shrd edx,edx,14
5233 mov esi,DWORD [28+esp]
5234 xor edx,ecx
5235 mov edi,DWORD [esp]
5236 xor esi,edi
5237 shrd edx,edx,5
5238 and esi,ecx
5239 mov DWORD [24+esp],ecx
5240 xor edx,ecx
5241 xor edi,esi
5242 shrd edx,edx,6
5243 mov ecx,eax
5244 add edx,edi
5245 mov edi,DWORD [12+esp]
5246 mov esi,eax
5247 shrd ecx,ecx,9
5248 mov DWORD [8+esp],eax
5249 xor ecx,eax
5250 xor eax,edi
5251 add edx,DWORD [4+esp]
5252 shrd ecx,ecx,11
5253 and ebx,eax
5254 xor ecx,esi
5255 add edx,DWORD [56+esp]
5256 xor ebx,edi
5257 shrd ecx,ecx,2
5258 add ebx,edx
5259 add edx,DWORD [20+esp]
5260 add ebx,ecx
5261 mov ecx,edx
5262 shrd edx,edx,14
5263 mov esi,DWORD [24+esp]
5264 xor edx,ecx
5265 mov edi,DWORD [28+esp]
5266 xor esi,edi
5267 shrd edx,edx,5
5268 and esi,ecx
5269 mov DWORD [20+esp],ecx
5270 xor edx,ecx
5271 xor edi,esi
5272 shrd edx,edx,6
5273 mov ecx,ebx
5274 add edx,edi
5275 mov edi,DWORD [8+esp]
5276 mov esi,ebx
5277 shrd ecx,ecx,9
5278 mov DWORD [4+esp],ebx
5279 xor ecx,ebx
5280 xor ebx,edi
5281 add edx,DWORD [esp]
5282 shrd ecx,ecx,11
5283 and eax,ebx
5284 xor ecx,esi
5285 add edx,DWORD [60+esp]
5286 xor eax,edi
5287 shrd ecx,ecx,2
5288 add eax,edx
5289 add edx,DWORD [16+esp]
5290 add eax,ecx
5291 mov ecx,edx
5292 shrd edx,edx,14
5293 mov esi,DWORD [20+esp]
5294 xor edx,ecx
5295 mov edi,DWORD [24+esp]
5296 xor esi,edi
5297 shrd edx,edx,5
5298 and esi,ecx
5299 mov DWORD [16+esp],ecx
5300 xor edx,ecx
5301 xor edi,esi
5302 shrd edx,edx,6
5303 mov ecx,eax
5304 add edx,edi
5305 mov edi,DWORD [4+esp]
5306 mov esi,eax
5307 shrd ecx,ecx,9
5308 mov DWORD [esp],eax
5309 xor ecx,eax
5310 xor eax,edi
5311 add edx,DWORD [28+esp]
5312 shrd ecx,ecx,11
5313 and ebx,eax
5314 xor ecx,esi
5315 add edx,DWORD [64+esp]
5316 xor ebx,edi
5317 shrd ecx,ecx,2
5318 add ebx,edx
5319 add edx,DWORD [12+esp]
5320 add ebx,ecx
5321 mov ecx,edx
5322 shrd edx,edx,14
5323 mov esi,DWORD [16+esp]
5324 xor edx,ecx
5325 mov edi,DWORD [20+esp]
5326 xor esi,edi
5327 shrd edx,edx,5
5328 and esi,ecx
5329 mov DWORD [12+esp],ecx
5330 xor edx,ecx
5331 xor edi,esi
5332 shrd edx,edx,6
5333 mov ecx,ebx
5334 add edx,edi
5335 mov edi,DWORD [esp]
5336 mov esi,ebx
5337 shrd ecx,ecx,9
5338 mov DWORD [28+esp],ebx
5339 xor ecx,ebx
5340 xor ebx,edi
5341 add edx,DWORD [24+esp]
5342 shrd ecx,ecx,11
5343 and eax,ebx
5344 xor ecx,esi
5345 add edx,DWORD [68+esp]
5346 xor eax,edi
5347 shrd ecx,ecx,2
5348 add eax,edx
5349 add edx,DWORD [8+esp]
5350 add eax,ecx
5351 mov ecx,edx
5352 shrd edx,edx,14
5353 mov esi,DWORD [12+esp]
5354 xor edx,ecx
5355 mov edi,DWORD [16+esp]
5356 xor esi,edi
5357 shrd edx,edx,5
5358 and esi,ecx
5359 mov DWORD [8+esp],ecx
5360 xor edx,ecx
5361 xor edi,esi
5362 shrd edx,edx,6
5363 mov ecx,eax
5364 add edx,edi
5365 mov edi,DWORD [28+esp]
5366 mov esi,eax
5367 shrd ecx,ecx,9
5368 mov DWORD [24+esp],eax
5369 xor ecx,eax
5370 xor eax,edi
5371 add edx,DWORD [20+esp]
5372 shrd ecx,ecx,11
5373 and ebx,eax
5374 xor ecx,esi
5375 add edx,DWORD [72+esp]
5376 xor ebx,edi
5377 shrd ecx,ecx,2
5378 add ebx,edx
5379 add edx,DWORD [4+esp]
5380 add ebx,ecx
5381 mov ecx,edx
5382 shrd edx,edx,14
5383 mov esi,DWORD [8+esp]
5384 xor edx,ecx
5385 mov edi,DWORD [12+esp]
5386 xor esi,edi
5387 shrd edx,edx,5
5388 and esi,ecx
5389 mov DWORD [4+esp],ecx
5390 xor edx,ecx
5391 xor edi,esi
5392 shrd edx,edx,6
5393 mov ecx,ebx
5394 add edx,edi
5395 mov edi,DWORD [24+esp]
5396 mov esi,ebx
5397 shrd ecx,ecx,9
5398 mov DWORD [20+esp],ebx
5399 xor ecx,ebx
5400 xor ebx,edi
5401 add edx,DWORD [16+esp]
5402 shrd ecx,ecx,11
5403 and eax,ebx
5404 xor ecx,esi
5405 add edx,DWORD [76+esp]
5406 xor eax,edi
5407 shrd ecx,ecx,2
5408 add eax,edx
5409 add edx,DWORD [esp]
5410 add eax,ecx
5411 mov ecx,edx
5412 shrd edx,edx,14
5413 mov esi,DWORD [4+esp]
5414 xor edx,ecx
5415 mov edi,DWORD [8+esp]
5416 xor esi,edi
5417 shrd edx,edx,5
5418 and esi,ecx
5419 mov DWORD [esp],ecx
5420 xor edx,ecx
5421 xor edi,esi
5422 shrd edx,edx,6
5423 mov ecx,eax
5424 add edx,edi
5425 mov edi,DWORD [20+esp]
5426 mov esi,eax
5427 shrd ecx,ecx,9
5428 mov DWORD [16+esp],eax
5429 xor ecx,eax
5430 xor eax,edi
5431 add edx,DWORD [12+esp]
5432 shrd ecx,ecx,11
5433 and ebx,eax
5434 xor ecx,esi
5435 add edx,DWORD [80+esp]
5436 xor ebx,edi
5437 shrd ecx,ecx,2
5438 add ebx,edx
5439 add edx,DWORD [28+esp]
5440 add ebx,ecx
5441 mov ecx,edx
5442 shrd edx,edx,14
5443 mov esi,DWORD [esp]
5444 xor edx,ecx
5445 mov edi,DWORD [4+esp]
5446 xor esi,edi
5447 shrd edx,edx,5
5448 and esi,ecx
5449 mov DWORD [28+esp],ecx
5450 xor edx,ecx
5451 xor edi,esi
5452 shrd edx,edx,6
5453 mov ecx,ebx
5454 add edx,edi
5455 mov edi,DWORD [16+esp]
5456 mov esi,ebx
5457 shrd ecx,ecx,9
5458 mov DWORD [12+esp],ebx
5459 xor ecx,ebx
5460 xor ebx,edi
5461 add edx,DWORD [8+esp]
5462 shrd ecx,ecx,11
5463 and eax,ebx
5464 xor ecx,esi
5465 add edx,DWORD [84+esp]
5466 xor eax,edi
5467 shrd ecx,ecx,2
5468 add eax,edx
5469 add edx,DWORD [24+esp]
5470 add eax,ecx
5471 mov ecx,edx
5472 shrd edx,edx,14
5473 mov esi,DWORD [28+esp]
5474 xor edx,ecx
5475 mov edi,DWORD [esp]
5476 xor esi,edi
5477 shrd edx,edx,5
5478 and esi,ecx
5479 mov DWORD [24+esp],ecx
5480 xor edx,ecx
5481 xor edi,esi
5482 shrd edx,edx,6
5483 mov ecx,eax
5484 add edx,edi
5485 mov edi,DWORD [12+esp]
5486 mov esi,eax
5487 shrd ecx,ecx,9
5488 mov DWORD [8+esp],eax
5489 xor ecx,eax
5490 xor eax,edi
5491 add edx,DWORD [4+esp]
5492 shrd ecx,ecx,11
5493 and ebx,eax
5494 xor ecx,esi
5495 add edx,DWORD [88+esp]
5496 xor ebx,edi
5497 shrd ecx,ecx,2
5498 add ebx,edx
5499 add edx,DWORD [20+esp]
5500 add ebx,ecx
5501 mov ecx,edx
5502 shrd edx,edx,14
5503 mov esi,DWORD [24+esp]
5504 xor edx,ecx
5505 mov edi,DWORD [28+esp]
5506 xor esi,edi
5507 shrd edx,edx,5
5508 and esi,ecx
5509 mov DWORD [20+esp],ecx
5510 xor edx,ecx
5511 xor edi,esi
5512 shrd edx,edx,6
5513 mov ecx,ebx
5514 add edx,edi
5515 mov edi,DWORD [8+esp]
5516 mov esi,ebx
5517 shrd ecx,ecx,9
5518 mov DWORD [4+esp],ebx
5519 xor ecx,ebx
5520 xor ebx,edi
5521 add edx,DWORD [esp]
5522 shrd ecx,ecx,11
5523 and eax,ebx
5524 xor ecx,esi
5525 add edx,DWORD [92+esp]
5526 xor eax,edi
5527 shrd ecx,ecx,2
5528 add eax,edx
5529 add edx,DWORD [16+esp]
5530 add eax,ecx
5531 mov esi,DWORD [96+esp]
5532 xor ebx,edi
5533 mov ecx,DWORD [12+esp]
5534 add eax,DWORD [esi]
5535 add ebx,DWORD [4+esi]
5536 add edi,DWORD [8+esi]
5537 add ecx,DWORD [12+esi]
5538 mov DWORD [esi],eax
5539 mov DWORD [4+esi],ebx
5540 mov DWORD [8+esi],edi
5541 mov DWORD [12+esi],ecx
5542 mov DWORD [4+esp],ebx
5543 xor ebx,edi
5544 mov DWORD [8+esp],edi
5545 mov DWORD [12+esp],ecx
5546 mov edi,DWORD [20+esp]
5547 mov ecx,DWORD [24+esp]
5548 add edx,DWORD [16+esi]
5549 add edi,DWORD [20+esi]
5550 add ecx,DWORD [24+esi]
5551 mov DWORD [16+esi],edx
5552 mov DWORD [20+esi],edi
5553 mov DWORD [20+esp],edi
5554 mov edi,DWORD [28+esp]
5555 mov DWORD [24+esi],ecx
5556 add edi,DWORD [28+esi]
5557 mov DWORD [24+esp],ecx
5558 mov DWORD [28+esi],edi
5559 mov DWORD [28+esp],edi
5560 mov edi,DWORD [100+esp]
5561 vmovdqa xmm7,[64+ebp]
5562 sub ebp,192
5563 cmp edi,DWORD [104+esp]
5564 jb NEAR L$012grand_avx
5565 mov esp,DWORD [108+esp]
5566 vzeroall
5567 pop edi
5568 pop esi
5569 pop ebx
4588 pop ebp 5570 pop ebp
4589 ret 5571 ret
4590 segment .bss 5572 segment .bss
4591 common _OPENSSL_ia32cap_P 16 5573 common _OPENSSL_ia32cap_P 16
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698