VirtualBox

Ignore:
Timestamp:
Nov 2, 2022 7:49:19 AM (2 years ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
154373
Message:

libs/openssl-3.0.7: Recreate openssl nasm files to hopefully fix the windows build boxes, bugref:10317

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/libs/openssl-3.0.7/crypto/genasm-nasm/sha256-x86_64.S

    r97372 r97373  
    2727        test    r11d,536870912
    2828        jnz     NEAR _shaext_shortcut
    29         and     r11d,296
    30         cmp     r11d,296
    31         je      NEAR $L$avx2_shortcut
    32         and     r9d,1073741824
    33         and     r10d,268435968
    34         or      r10d,r9d
    35         cmp     r10d,1342177792
    36         je      NEAR $L$avx_shortcut
    3729        test    r10d,512
    3830        jnz     NEAR $L$ssse3_shortcut
     
    31583150
    31593151$L$SEH_end_sha256_block_data_order_ssse3:
    3160 
    3161 ALIGN   64
    3162 sha256_block_data_order_avx:
    3163         mov     QWORD[8+rsp],rdi        ;WIN64 prologue
    3164         mov     QWORD[16+rsp],rsi
    3165         mov     rax,rsp
    3166 $L$SEH_begin_sha256_block_data_order_avx:
    3167         mov     rdi,rcx
    3168         mov     rsi,rdx
    3169         mov     rdx,r8
    3170 
    3171 
    3172 
    3173 $L$avx_shortcut:
    3174         mov     rax,rsp
    3175 
    3176         push    rbx
    3177 
    3178         push    rbp
    3179 
    3180         push    r12
    3181 
    3182         push    r13
    3183 
    3184         push    r14
    3185 
    3186         push    r15
    3187 
    3188         shl     rdx,4
    3189         sub     rsp,160
    3190         lea     rdx,[rdx*4+rsi]
    3191         and     rsp,-64
    3192         mov     QWORD[((64+0))+rsp],rdi
    3193         mov     QWORD[((64+8))+rsp],rsi
    3194         mov     QWORD[((64+16))+rsp],rdx
    3195         mov     QWORD[88+rsp],rax
    3196 
    3197         movaps  XMMWORD[(64+32)+rsp],xmm6
    3198         movaps  XMMWORD[(64+48)+rsp],xmm7
    3199         movaps  XMMWORD[(64+64)+rsp],xmm8
    3200         movaps  XMMWORD[(64+80)+rsp],xmm9
    3201 $L$prologue_avx:
    3202 
    3203         vzeroupper
    3204         mov     eax,DWORD[rdi]
    3205         mov     ebx,DWORD[4+rdi]
    3206         mov     ecx,DWORD[8+rdi]
    3207         mov     edx,DWORD[12+rdi]
    3208         mov     r8d,DWORD[16+rdi]
    3209         mov     r9d,DWORD[20+rdi]
    3210         mov     r10d,DWORD[24+rdi]
    3211         mov     r11d,DWORD[28+rdi]
    3212         vmovdqa xmm8,XMMWORD[((K256+512+32))]
    3213         vmovdqa xmm9,XMMWORD[((K256+512+64))]
    3214         jmp     NEAR $L$loop_avx
    3215 ALIGN   16
    3216 $L$loop_avx:
    3217         vmovdqa xmm7,XMMWORD[((K256+512))]
    3218         vmovdqu xmm0,XMMWORD[rsi]
    3219         vmovdqu xmm1,XMMWORD[16+rsi]
    3220         vmovdqu xmm2,XMMWORD[32+rsi]
    3221         vmovdqu xmm3,XMMWORD[48+rsi]
    3222         vpshufb xmm0,xmm0,xmm7
    3223         lea     rbp,[K256]
    3224         vpshufb xmm1,xmm1,xmm7
    3225         vpshufb xmm2,xmm2,xmm7
    3226         vpaddd  xmm4,xmm0,XMMWORD[rbp]
    3227         vpshufb xmm3,xmm3,xmm7
    3228         vpaddd  xmm5,xmm1,XMMWORD[32+rbp]
    3229         vpaddd  xmm6,xmm2,XMMWORD[64+rbp]
    3230         vpaddd  xmm7,xmm3,XMMWORD[96+rbp]
    3231         vmovdqa XMMWORD[rsp],xmm4
    3232         mov     r14d,eax
    3233         vmovdqa XMMWORD[16+rsp],xmm5
    3234         mov     edi,ebx
    3235         vmovdqa XMMWORD[32+rsp],xmm6
    3236         xor     edi,ecx
    3237         vmovdqa XMMWORD[48+rsp],xmm7
    3238         mov     r13d,r8d
    3239         jmp     NEAR $L$avx_00_47
    3240 
    3241 ALIGN   16
    3242 $L$avx_00_47:
    3243         sub     rbp,-128
    3244         vpalignr        xmm4,xmm1,xmm0,4
    3245         shrd    r13d,r13d,14
    3246         mov     eax,r14d
    3247         mov     r12d,r9d
    3248         vpalignr        xmm7,xmm3,xmm2,4
    3249         shrd    r14d,r14d,9
    3250         xor     r13d,r8d
    3251         xor     r12d,r10d
    3252         vpsrld  xmm6,xmm4,7
    3253         shrd    r13d,r13d,5
    3254         xor     r14d,eax
    3255         and     r12d,r8d
    3256         vpaddd  xmm0,xmm0,xmm7
    3257         xor     r13d,r8d
    3258         add     r11d,DWORD[rsp]
    3259         mov     r15d,eax
    3260         vpsrld  xmm7,xmm4,3
    3261         xor     r12d,r10d
    3262         shrd    r14d,r14d,11
    3263         xor     r15d,ebx
    3264         vpslld  xmm5,xmm4,14
    3265         add     r11d,r12d
    3266         shrd    r13d,r13d,6
    3267         and     edi,r15d
    3268         vpxor   xmm4,xmm7,xmm6
    3269         xor     r14d,eax
    3270         add     r11d,r13d
    3271         xor     edi,ebx
    3272         vpshufd xmm7,xmm3,250
    3273         shrd    r14d,r14d,2
    3274         add     edx,r11d
    3275         add     r11d,edi
    3276         vpsrld  xmm6,xmm6,11
    3277         mov     r13d,edx
    3278         add     r14d,r11d
    3279         shrd    r13d,r13d,14
    3280         vpxor   xmm4,xmm4,xmm5
    3281         mov     r11d,r14d
    3282         mov     r12d,r8d
    3283         shrd    r14d,r14d,9
    3284         vpslld  xmm5,xmm5,11
    3285         xor     r13d,edx
    3286         xor     r12d,r9d
    3287         shrd    r13d,r13d,5
    3288         vpxor   xmm4,xmm4,xmm6
    3289         xor     r14d,r11d
    3290         and     r12d,edx
    3291         xor     r13d,edx
    3292         vpsrld  xmm6,xmm7,10
    3293         add     r10d,DWORD[4+rsp]
    3294         mov     edi,r11d
    3295         xor     r12d,r9d
    3296         vpxor   xmm4,xmm4,xmm5
    3297         shrd    r14d,r14d,11
    3298         xor     edi,eax
    3299         add     r10d,r12d
    3300         vpsrlq  xmm7,xmm7,17
    3301         shrd    r13d,r13d,6
    3302         and     r15d,edi
    3303         xor     r14d,r11d
    3304         vpaddd  xmm0,xmm0,xmm4
    3305         add     r10d,r13d
    3306         xor     r15d,eax
    3307         shrd    r14d,r14d,2
    3308         vpxor   xmm6,xmm6,xmm7
    3309         add     ecx,r10d
    3310         add     r10d,r15d
    3311         mov     r13d,ecx
    3312         vpsrlq  xmm7,xmm7,2
    3313         add     r14d,r10d
    3314         shrd    r13d,r13d,14
    3315         mov     r10d,r14d
    3316         vpxor   xmm6,xmm6,xmm7
    3317         mov     r12d,edx
    3318         shrd    r14d,r14d,9
    3319         xor     r13d,ecx
    3320         vpshufb xmm6,xmm6,xmm8
    3321         xor     r12d,r8d
    3322         shrd    r13d,r13d,5
    3323         xor     r14d,r10d
    3324         vpaddd  xmm0,xmm0,xmm6
    3325         and     r12d,ecx
    3326         xor     r13d,ecx
    3327         add     r9d,DWORD[8+rsp]
    3328         vpshufd xmm7,xmm0,80
    3329         mov     r15d,r10d
    3330         xor     r12d,r8d
    3331         shrd    r14d,r14d,11
    3332         vpsrld  xmm6,xmm7,10
    3333         xor     r15d,r11d
    3334         add     r9d,r12d
    3335         shrd    r13d,r13d,6
    3336         vpsrlq  xmm7,xmm7,17
    3337         and     edi,r15d
    3338         xor     r14d,r10d
    3339         add     r9d,r13d
    3340         vpxor   xmm6,xmm6,xmm7
    3341         xor     edi,r11d
    3342         shrd    r14d,r14d,2
    3343         add     ebx,r9d
    3344         vpsrlq  xmm7,xmm7,2
    3345         add     r9d,edi
    3346         mov     r13d,ebx
    3347         add     r14d,r9d
    3348         vpxor   xmm6,xmm6,xmm7
    3349         shrd    r13d,r13d,14
    3350         mov     r9d,r14d
    3351         mov     r12d,ecx
    3352         vpshufb xmm6,xmm6,xmm9
    3353         shrd    r14d,r14d,9
    3354         xor     r13d,ebx
    3355         xor     r12d,edx
    3356         vpaddd  xmm0,xmm0,xmm6
    3357         shrd    r13d,r13d,5
    3358         xor     r14d,r9d
    3359         and     r12d,ebx
    3360         vpaddd  xmm6,xmm0,XMMWORD[rbp]
    3361         xor     r13d,ebx
    3362         add     r8d,DWORD[12+rsp]
    3363         mov     edi,r9d
    3364         xor     r12d,edx
    3365         shrd    r14d,r14d,11
    3366         xor     edi,r10d
    3367         add     r8d,r12d
    3368         shrd    r13d,r13d,6
    3369         and     r15d,edi
    3370         xor     r14d,r9d
    3371         add     r8d,r13d
    3372         xor     r15d,r10d
    3373         shrd    r14d,r14d,2
    3374         add     eax,r8d
    3375         add     r8d,r15d
    3376         mov     r13d,eax
    3377         add     r14d,r8d
    3378         vmovdqa XMMWORD[rsp],xmm6
    3379         vpalignr        xmm4,xmm2,xmm1,4
    3380         shrd    r13d,r13d,14
    3381         mov     r8d,r14d
    3382         mov     r12d,ebx
    3383         vpalignr        xmm7,xmm0,xmm3,4
    3384         shrd    r14d,r14d,9
    3385         xor     r13d,eax
    3386         xor     r12d,ecx
    3387         vpsrld  xmm6,xmm4,7
    3388         shrd    r13d,r13d,5
    3389         xor     r14d,r8d
    3390         and     r12d,eax
    3391         vpaddd  xmm1,xmm1,xmm7
    3392         xor     r13d,eax
    3393         add     edx,DWORD[16+rsp]
    3394         mov     r15d,r8d
    3395         vpsrld  xmm7,xmm4,3
    3396         xor     r12d,ecx
    3397         shrd    r14d,r14d,11
    3398         xor     r15d,r9d
    3399         vpslld  xmm5,xmm4,14
    3400         add     edx,r12d
    3401         shrd    r13d,r13d,6
    3402         and     edi,r15d
    3403         vpxor   xmm4,xmm7,xmm6
    3404         xor     r14d,r8d
    3405         add     edx,r13d
    3406         xor     edi,r9d
    3407         vpshufd xmm7,xmm0,250
    3408         shrd    r14d,r14d,2
    3409         add     r11d,edx
    3410         add     edx,edi
    3411         vpsrld  xmm6,xmm6,11
    3412         mov     r13d,r11d
    3413         add     r14d,edx
    3414         shrd    r13d,r13d,14
    3415         vpxor   xmm4,xmm4,xmm5
    3416         mov     edx,r14d
    3417         mov     r12d,eax
    3418         shrd    r14d,r14d,9
    3419         vpslld  xmm5,xmm5,11
    3420         xor     r13d,r11d
    3421         xor     r12d,ebx
    3422         shrd    r13d,r13d,5
    3423         vpxor   xmm4,xmm4,xmm6
    3424         xor     r14d,edx
    3425         and     r12d,r11d
    3426         xor     r13d,r11d
    3427         vpsrld  xmm6,xmm7,10
    3428         add     ecx,DWORD[20+rsp]
    3429         mov     edi,edx
    3430         xor     r12d,ebx
    3431         vpxor   xmm4,xmm4,xmm5
    3432         shrd    r14d,r14d,11
    3433         xor     edi,r8d
    3434         add     ecx,r12d
    3435         vpsrlq  xmm7,xmm7,17
    3436         shrd    r13d,r13d,6
    3437         and     r15d,edi
    3438         xor     r14d,edx
    3439         vpaddd  xmm1,xmm1,xmm4
    3440         add     ecx,r13d
    3441         xor     r15d,r8d
    3442         shrd    r14d,r14d,2
    3443         vpxor   xmm6,xmm6,xmm7
    3444         add     r10d,ecx
    3445         add     ecx,r15d
    3446         mov     r13d,r10d
    3447         vpsrlq  xmm7,xmm7,2
    3448         add     r14d,ecx
    3449         shrd    r13d,r13d,14
    3450         mov     ecx,r14d
    3451         vpxor   xmm6,xmm6,xmm7
    3452         mov     r12d,r11d
    3453         shrd    r14d,r14d,9
    3454         xor     r13d,r10d
    3455         vpshufb xmm6,xmm6,xmm8
    3456         xor     r12d,eax
    3457         shrd    r13d,r13d,5
    3458         xor     r14d,ecx
    3459         vpaddd  xmm1,xmm1,xmm6
    3460         and     r12d,r10d
    3461         xor     r13d,r10d
    3462         add     ebx,DWORD[24+rsp]
    3463         vpshufd xmm7,xmm1,80
    3464         mov     r15d,ecx
    3465         xor     r12d,eax
    3466         shrd    r14d,r14d,11
    3467         vpsrld  xmm6,xmm7,10
    3468         xor     r15d,edx
    3469         add     ebx,r12d
    3470         shrd    r13d,r13d,6
    3471         vpsrlq  xmm7,xmm7,17
    3472         and     edi,r15d
    3473         xor     r14d,ecx
    3474         add     ebx,r13d
    3475         vpxor   xmm6,xmm6,xmm7
    3476         xor     edi,edx
    3477         shrd    r14d,r14d,2
    3478         add     r9d,ebx
    3479         vpsrlq  xmm7,xmm7,2
    3480         add     ebx,edi
    3481         mov     r13d,r9d
    3482         add     r14d,ebx
    3483         vpxor   xmm6,xmm6,xmm7
    3484         shrd    r13d,r13d,14
    3485         mov     ebx,r14d
    3486         mov     r12d,r10d
    3487         vpshufb xmm6,xmm6,xmm9
    3488         shrd    r14d,r14d,9
    3489         xor     r13d,r9d
    3490         xor     r12d,r11d
    3491         vpaddd  xmm1,xmm1,xmm6
    3492         shrd    r13d,r13d,5
    3493         xor     r14d,ebx
    3494         and     r12d,r9d
    3495         vpaddd  xmm6,xmm1,XMMWORD[32+rbp]
    3496         xor     r13d,r9d
    3497         add     eax,DWORD[28+rsp]
    3498         mov     edi,ebx
    3499         xor     r12d,r11d
    3500         shrd    r14d,r14d,11
    3501         xor     edi,ecx
    3502         add     eax,r12d
    3503         shrd    r13d,r13d,6
    3504         and     r15d,edi
    3505         xor     r14d,ebx
    3506         add     eax,r13d
    3507         xor     r15d,ecx
    3508         shrd    r14d,r14d,2
    3509         add     r8d,eax
    3510         add     eax,r15d
    3511         mov     r13d,r8d
    3512         add     r14d,eax
    3513         vmovdqa XMMWORD[16+rsp],xmm6
    3514         vpalignr        xmm4,xmm3,xmm2,4
    3515         shrd    r13d,r13d,14
    3516         mov     eax,r14d
    3517         mov     r12d,r9d
    3518         vpalignr        xmm7,xmm1,xmm0,4
    3519         shrd    r14d,r14d,9
    3520         xor     r13d,r8d
    3521         xor     r12d,r10d
    3522         vpsrld  xmm6,xmm4,7
    3523         shrd    r13d,r13d,5
    3524         xor     r14d,eax
    3525         and     r12d,r8d
    3526         vpaddd  xmm2,xmm2,xmm7
    3527         xor     r13d,r8d
    3528         add     r11d,DWORD[32+rsp]
    3529         mov     r15d,eax
    3530         vpsrld  xmm7,xmm4,3
    3531         xor     r12d,r10d
    3532         shrd    r14d,r14d,11
    3533         xor     r15d,ebx
    3534         vpslld  xmm5,xmm4,14
    3535         add     r11d,r12d
    3536         shrd    r13d,r13d,6
    3537         and     edi,r15d
    3538         vpxor   xmm4,xmm7,xmm6
    3539         xor     r14d,eax
    3540         add     r11d,r13d
    3541         xor     edi,ebx
    3542         vpshufd xmm7,xmm1,250
    3543         shrd    r14d,r14d,2
    3544         add     edx,r11d
    3545         add     r11d,edi
    3546         vpsrld  xmm6,xmm6,11
    3547         mov     r13d,edx
    3548         add     r14d,r11d
    3549         shrd    r13d,r13d,14
    3550         vpxor   xmm4,xmm4,xmm5
    3551         mov     r11d,r14d
    3552         mov     r12d,r8d
    3553         shrd    r14d,r14d,9
    3554         vpslld  xmm5,xmm5,11
    3555         xor     r13d,edx
    3556         xor     r12d,r9d
    3557         shrd    r13d,r13d,5
    3558         vpxor   xmm4,xmm4,xmm6
    3559         xor     r14d,r11d
    3560         and     r12d,edx
    3561         xor     r13d,edx
    3562         vpsrld  xmm6,xmm7,10
    3563         add     r10d,DWORD[36+rsp]
    3564         mov     edi,r11d
    3565         xor     r12d,r9d
    3566         vpxor   xmm4,xmm4,xmm5
    3567         shrd    r14d,r14d,11
    3568         xor     edi,eax
    3569         add     r10d,r12d
    3570         vpsrlq  xmm7,xmm7,17
    3571         shrd    r13d,r13d,6
    3572         and     r15d,edi
    3573         xor     r14d,r11d
    3574         vpaddd  xmm2,xmm2,xmm4
    3575         add     r10d,r13d
    3576         xor     r15d,eax
    3577         shrd    r14d,r14d,2
    3578         vpxor   xmm6,xmm6,xmm7
    3579         add     ecx,r10d
    3580         add     r10d,r15d
    3581         mov     r13d,ecx
    3582         vpsrlq  xmm7,xmm7,2
    3583         add     r14d,r10d
    3584         shrd    r13d,r13d,14
    3585         mov     r10d,r14d
    3586         vpxor   xmm6,xmm6,xmm7
    3587         mov     r12d,edx
    3588         shrd    r14d,r14d,9
    3589         xor     r13d,ecx
    3590         vpshufb xmm6,xmm6,xmm8
    3591         xor     r12d,r8d
    3592         shrd    r13d,r13d,5
    3593         xor     r14d,r10d
    3594         vpaddd  xmm2,xmm2,xmm6
    3595         and     r12d,ecx
    3596         xor     r13d,ecx
    3597         add     r9d,DWORD[40+rsp]
    3598         vpshufd xmm7,xmm2,80
    3599         mov     r15d,r10d
    3600         xor     r12d,r8d
    3601         shrd    r14d,r14d,11
    3602         vpsrld  xmm6,xmm7,10
    3603         xor     r15d,r11d
    3604         add     r9d,r12d
    3605         shrd    r13d,r13d,6
    3606         vpsrlq  xmm7,xmm7,17
    3607         and     edi,r15d
    3608         xor     r14d,r10d
    3609         add     r9d,r13d
    3610         vpxor   xmm6,xmm6,xmm7
    3611         xor     edi,r11d
    3612         shrd    r14d,r14d,2
    3613         add     ebx,r9d
    3614         vpsrlq  xmm7,xmm7,2
    3615         add     r9d,edi
    3616         mov     r13d,ebx
    3617         add     r14d,r9d
    3618         vpxor   xmm6,xmm6,xmm7
    3619         shrd    r13d,r13d,14
    3620         mov     r9d,r14d
    3621         mov     r12d,ecx
    3622         vpshufb xmm6,xmm6,xmm9
    3623         shrd    r14d,r14d,9
    3624         xor     r13d,ebx
    3625         xor     r12d,edx
    3626         vpaddd  xmm2,xmm2,xmm6
    3627         shrd    r13d,r13d,5
    3628         xor     r14d,r9d
    3629         and     r12d,ebx
    3630         vpaddd  xmm6,xmm2,XMMWORD[64+rbp]
    3631         xor     r13d,ebx
    3632         add     r8d,DWORD[44+rsp]
    3633         mov     edi,r9d
    3634         xor     r12d,edx
    3635         shrd    r14d,r14d,11
    3636         xor     edi,r10d
    3637         add     r8d,r12d
    3638         shrd    r13d,r13d,6
    3639         and     r15d,edi
    3640         xor     r14d,r9d
    3641         add     r8d,r13d
    3642         xor     r15d,r10d
    3643         shrd    r14d,r14d,2
    3644         add     eax,r8d
    3645         add     r8d,r15d
    3646         mov     r13d,eax
    3647         add     r14d,r8d
    3648         vmovdqa XMMWORD[32+rsp],xmm6
    3649         vpalignr        xmm4,xmm0,xmm3,4
    3650         shrd    r13d,r13d,14
    3651         mov     r8d,r14d
    3652         mov     r12d,ebx
    3653         vpalignr        xmm7,xmm2,xmm1,4
    3654         shrd    r14d,r14d,9
    3655         xor     r13d,eax
    3656         xor     r12d,ecx
    3657         vpsrld  xmm6,xmm4,7
    3658         shrd    r13d,r13d,5
    3659         xor     r14d,r8d
    3660         and     r12d,eax
    3661         vpaddd  xmm3,xmm3,xmm7
    3662         xor     r13d,eax
    3663         add     edx,DWORD[48+rsp]
    3664         mov     r15d,r8d
    3665         vpsrld  xmm7,xmm4,3
    3666         xor     r12d,ecx
    3667         shrd    r14d,r14d,11
    3668         xor     r15d,r9d
    3669         vpslld  xmm5,xmm4,14
    3670         add     edx,r12d
    3671         shrd    r13d,r13d,6
    3672         and     edi,r15d
    3673         vpxor   xmm4,xmm7,xmm6
    3674         xor     r14d,r8d
    3675         add     edx,r13d
    3676         xor     edi,r9d
    3677         vpshufd xmm7,xmm2,250
    3678         shrd    r14d,r14d,2
    3679         add     r11d,edx
    3680         add     edx,edi
    3681         vpsrld  xmm6,xmm6,11
    3682         mov     r13d,r11d
    3683         add     r14d,edx
    3684         shrd    r13d,r13d,14
    3685         vpxor   xmm4,xmm4,xmm5
    3686         mov     edx,r14d
    3687         mov     r12d,eax
    3688         shrd    r14d,r14d,9
    3689         vpslld  xmm5,xmm5,11
    3690         xor     r13d,r11d
    3691         xor     r12d,ebx
    3692         shrd    r13d,r13d,5
    3693         vpxor   xmm4,xmm4,xmm6
    3694         xor     r14d,edx
    3695         and     r12d,r11d
    3696         xor     r13d,r11d
    3697         vpsrld  xmm6,xmm7,10
    3698         add     ecx,DWORD[52+rsp]
    3699         mov     edi,edx
    3700         xor     r12d,ebx
    3701         vpxor   xmm4,xmm4,xmm5
    3702         shrd    r14d,r14d,11
    3703         xor     edi,r8d
    3704         add     ecx,r12d
    3705         vpsrlq  xmm7,xmm7,17
    3706         shrd    r13d,r13d,6
    3707         and     r15d,edi
    3708         xor     r14d,edx
    3709         vpaddd  xmm3,xmm3,xmm4
    3710         add     ecx,r13d
    3711         xor     r15d,r8d
    3712         shrd    r14d,r14d,2
    3713         vpxor   xmm6,xmm6,xmm7
    3714         add     r10d,ecx
    3715         add     ecx,r15d
    3716         mov     r13d,r10d
    3717         vpsrlq  xmm7,xmm7,2
    3718         add     r14d,ecx
    3719         shrd    r13d,r13d,14
    3720         mov     ecx,r14d
    3721         vpxor   xmm6,xmm6,xmm7
    3722         mov     r12d,r11d
    3723         shrd    r14d,r14d,9
    3724         xor     r13d,r10d
    3725         vpshufb xmm6,xmm6,xmm8
    3726         xor     r12d,eax
    3727         shrd    r13d,r13d,5
    3728         xor     r14d,ecx
    3729         vpaddd  xmm3,xmm3,xmm6
    3730         and     r12d,r10d
    3731         xor     r13d,r10d
    3732         add     ebx,DWORD[56+rsp]
    3733         vpshufd xmm7,xmm3,80
    3734         mov     r15d,ecx
    3735         xor     r12d,eax
    3736         shrd    r14d,r14d,11
    3737         vpsrld  xmm6,xmm7,10
    3738         xor     r15d,edx
    3739         add     ebx,r12d
    3740         shrd    r13d,r13d,6
    3741         vpsrlq  xmm7,xmm7,17
    3742         and     edi,r15d
    3743         xor     r14d,ecx
    3744         add     ebx,r13d
    3745         vpxor   xmm6,xmm6,xmm7
    3746         xor     edi,edx
    3747         shrd    r14d,r14d,2
    3748         add     r9d,ebx
    3749         vpsrlq  xmm7,xmm7,2
    3750         add     ebx,edi
    3751         mov     r13d,r9d
    3752         add     r14d,ebx
    3753         vpxor   xmm6,xmm6,xmm7
    3754         shrd    r13d,r13d,14
    3755         mov     ebx,r14d
    3756         mov     r12d,r10d
    3757         vpshufb xmm6,xmm6,xmm9
    3758         shrd    r14d,r14d,9
    3759         xor     r13d,r9d
    3760         xor     r12d,r11d
    3761         vpaddd  xmm3,xmm3,xmm6
    3762         shrd    r13d,r13d,5
    3763         xor     r14d,ebx
    3764         and     r12d,r9d
    3765         vpaddd  xmm6,xmm3,XMMWORD[96+rbp]
    3766         xor     r13d,r9d
    3767         add     eax,DWORD[60+rsp]
    3768         mov     edi,ebx
    3769         xor     r12d,r11d
    3770         shrd    r14d,r14d,11
    3771         xor     edi,ecx
    3772         add     eax,r12d
    3773         shrd    r13d,r13d,6
    3774         and     r15d,edi
    3775         xor     r14d,ebx
    3776         add     eax,r13d
    3777         xor     r15d,ecx
    3778         shrd    r14d,r14d,2
    3779         add     r8d,eax
    3780         add     eax,r15d
    3781         mov     r13d,r8d
    3782         add     r14d,eax
    3783         vmovdqa XMMWORD[48+rsp],xmm6
    3784         cmp     BYTE[131+rbp],0
    3785         jne     NEAR $L$avx_00_47
    3786         shrd    r13d,r13d,14
    3787         mov     eax,r14d
    3788         mov     r12d,r9d
    3789         shrd    r14d,r14d,9
    3790         xor     r13d,r8d
    3791         xor     r12d,r10d
    3792         shrd    r13d,r13d,5
    3793         xor     r14d,eax
    3794         and     r12d,r8d
    3795         xor     r13d,r8d
    3796         add     r11d,DWORD[rsp]
    3797         mov     r15d,eax
    3798         xor     r12d,r10d
    3799         shrd    r14d,r14d,11
    3800         xor     r15d,ebx
    3801         add     r11d,r12d
    3802         shrd    r13d,r13d,6
    3803         and     edi,r15d
    3804         xor     r14d,eax
    3805         add     r11d,r13d
    3806         xor     edi,ebx
    3807         shrd    r14d,r14d,2
    3808         add     edx,r11d
    3809         add     r11d,edi
    3810         mov     r13d,edx
    3811         add     r14d,r11d
    3812         shrd    r13d,r13d,14
    3813         mov     r11d,r14d
    3814         mov     r12d,r8d
    3815         shrd    r14d,r14d,9
    3816         xor     r13d,edx
    3817         xor     r12d,r9d
    3818         shrd    r13d,r13d,5
    3819         xor     r14d,r11d
    3820         and     r12d,edx
    3821         xor     r13d,edx
    3822         add     r10d,DWORD[4+rsp]
    3823         mov     edi,r11d
    3824         xor     r12d,r9d
    3825         shrd    r14d,r14d,11
    3826         xor     edi,eax
    3827         add     r10d,r12d
    3828         shrd    r13d,r13d,6
    3829         and     r15d,edi
    3830         xor     r14d,r11d
    3831         add     r10d,r13d
    3832         xor     r15d,eax
    3833         shrd    r14d,r14d,2
    3834         add     ecx,r10d
    3835         add     r10d,r15d
    3836         mov     r13d,ecx
    3837         add     r14d,r10d
    3838         shrd    r13d,r13d,14
    3839         mov     r10d,r14d
    3840         mov     r12d,edx
    3841         shrd    r14d,r14d,9
    3842         xor     r13d,ecx
    3843         xor     r12d,r8d
    3844         shrd    r13d,r13d,5
    3845         xor     r14d,r10d
    3846         and     r12d,ecx
    3847         xor     r13d,ecx
    3848         add     r9d,DWORD[8+rsp]
    3849         mov     r15d,r10d
    3850         xor     r12d,r8d
    3851         shrd    r14d,r14d,11
    3852         xor     r15d,r11d
    3853         add     r9d,r12d
    3854         shrd    r13d,r13d,6
    3855         and     edi,r15d
    3856         xor     r14d,r10d
    3857         add     r9d,r13d
    3858         xor     edi,r11d
    3859         shrd    r14d,r14d,2
    3860         add     ebx,r9d
    3861         add     r9d,edi
    3862         mov     r13d,ebx
    3863         add     r14d,r9d
    3864         shrd    r13d,r13d,14
    3865         mov     r9d,r14d
    3866         mov     r12d,ecx
    3867         shrd    r14d,r14d,9
    3868         xor     r13d,ebx
    3869         xor     r12d,edx
    3870         shrd    r13d,r13d,5
    3871         xor     r14d,r9d
    3872         and     r12d,ebx
    3873         xor     r13d,ebx
    3874         add     r8d,DWORD[12+rsp]
    3875         mov     edi,r9d
    3876         xor     r12d,edx
    3877         shrd    r14d,r14d,11
    3878         xor     edi,r10d
    3879         add     r8d,r12d
    3880         shrd    r13d,r13d,6
    3881         and     r15d,edi
    3882         xor     r14d,r9d
    3883         add     r8d,r13d
    3884         xor     r15d,r10d
    3885         shrd    r14d,r14d,2
    3886         add     eax,r8d
    3887         add     r8d,r15d
    3888         mov     r13d,eax
    3889         add     r14d,r8d
    3890         shrd    r13d,r13d,14
    3891         mov     r8d,r14d
    3892         mov     r12d,ebx
    3893         shrd    r14d,r14d,9
    3894         xor     r13d,eax
    3895         xor     r12d,ecx
    3896         shrd    r13d,r13d,5
    3897         xor     r14d,r8d
    3898         and     r12d,eax
    3899         xor     r13d,eax
    3900         add     edx,DWORD[16+rsp]
    3901         mov     r15d,r8d
    3902         xor     r12d,ecx
    3903         shrd    r14d,r14d,11
    3904         xor     r15d,r9d
    3905         add     edx,r12d
    3906         shrd    r13d,r13d,6
    3907         and     edi,r15d
    3908         xor     r14d,r8d
    3909         add     edx,r13d
    3910         xor     edi,r9d
    3911         shrd    r14d,r14d,2
    3912         add     r11d,edx
    3913         add     edx,edi
    3914         mov     r13d,r11d
    3915         add     r14d,edx
    3916         shrd    r13d,r13d,14
    3917         mov     edx,r14d
    3918         mov     r12d,eax
    3919         shrd    r14d,r14d,9
    3920         xor     r13d,r11d
    3921         xor     r12d,ebx
    3922         shrd    r13d,r13d,5
    3923         xor     r14d,edx
    3924         and     r12d,r11d
    3925         xor     r13d,r11d
    3926         add     ecx,DWORD[20+rsp]
    3927         mov     edi,edx
    3928         xor     r12d,ebx
    3929         shrd    r14d,r14d,11
    3930         xor     edi,r8d
    3931         add     ecx,r12d
    3932         shrd    r13d,r13d,6
    3933         and     r15d,edi
    3934         xor     r14d,edx
    3935         add     ecx,r13d
    3936         xor     r15d,r8d
    3937         shrd    r14d,r14d,2
    3938         add     r10d,ecx
    3939         add     ecx,r15d
    3940         mov     r13d,r10d
    3941         add     r14d,ecx
    3942         shrd    r13d,r13d,14
    3943         mov     ecx,r14d
    3944         mov     r12d,r11d
    3945         shrd    r14d,r14d,9
    3946         xor     r13d,r10d
    3947         xor     r12d,eax
    3948         shrd    r13d,r13d,5
    3949         xor     r14d,ecx
    3950         and     r12d,r10d
    3951         xor     r13d,r10d
    3952         add     ebx,DWORD[24+rsp]
    3953         mov     r15d,ecx
    3954         xor     r12d,eax
    3955         shrd    r14d,r14d,11
    3956         xor     r15d,edx
    3957         add     ebx,r12d
    3958         shrd    r13d,r13d,6
    3959         and     edi,r15d
    3960         xor     r14d,ecx
    3961         add     ebx,r13d
    3962         xor     edi,edx
    3963         shrd    r14d,r14d,2
    3964         add     r9d,ebx
    3965         add     ebx,edi
    3966         mov     r13d,r9d
    3967         add     r14d,ebx
    3968         shrd    r13d,r13d,14
    3969         mov     ebx,r14d
    3970         mov     r12d,r10d
    3971         shrd    r14d,r14d,9
    3972         xor     r13d,r9d
    3973         xor     r12d,r11d
    3974         shrd    r13d,r13d,5
    3975         xor     r14d,ebx
    3976         and     r12d,r9d
    3977         xor     r13d,r9d
    3978         add     eax,DWORD[28+rsp]
    3979         mov     edi,ebx
    3980         xor     r12d,r11d
    3981         shrd    r14d,r14d,11
    3982         xor     edi,ecx
    3983         add     eax,r12d
    3984         shrd    r13d,r13d,6
    3985         and     r15d,edi
    3986         xor     r14d,ebx
    3987         add     eax,r13d
    3988         xor     r15d,ecx
    3989         shrd    r14d,r14d,2
    3990         add     r8d,eax
    3991         add     eax,r15d
    3992         mov     r13d,r8d
    3993         add     r14d,eax
    3994         shrd    r13d,r13d,14
    3995         mov     eax,r14d
    3996         mov     r12d,r9d
    3997         shrd    r14d,r14d,9
    3998         xor     r13d,r8d
    3999         xor     r12d,r10d
    4000         shrd    r13d,r13d,5
    4001         xor     r14d,eax
    4002         and     r12d,r8d
    4003         xor     r13d,r8d
    4004         add     r11d,DWORD[32+rsp]
    4005         mov     r15d,eax
    4006         xor     r12d,r10d
    4007         shrd    r14d,r14d,11
    4008         xor     r15d,ebx
    4009         add     r11d,r12d
    4010         shrd    r13d,r13d,6
    4011         and     edi,r15d
    4012         xor     r14d,eax
    4013         add     r11d,r13d
    4014         xor     edi,ebx
    4015         shrd    r14d,r14d,2
    4016         add     edx,r11d
    4017         add     r11d,edi
    4018         mov     r13d,edx
    4019         add     r14d,r11d
    4020         shrd    r13d,r13d,14
    4021         mov     r11d,r14d
    4022         mov     r12d,r8d
    4023         shrd    r14d,r14d,9
    4024         xor     r13d,edx
    4025         xor     r12d,r9d
    4026         shrd    r13d,r13d,5
    4027         xor     r14d,r11d
    4028         and     r12d,edx
    4029         xor     r13d,edx
    4030         add     r10d,DWORD[36+rsp]
    4031         mov     edi,r11d
    4032         xor     r12d,r9d
    4033         shrd    r14d,r14d,11
    4034         xor     edi,eax
    4035         add     r10d,r12d
    4036         shrd    r13d,r13d,6
    4037         and     r15d,edi
    4038         xor     r14d,r11d
    4039         add     r10d,r13d
    4040         xor     r15d,eax
    4041         shrd    r14d,r14d,2
    4042         add     ecx,r10d
    4043         add     r10d,r15d
    4044         mov     r13d,ecx
    4045         add     r14d,r10d
    4046         shrd    r13d,r13d,14
    4047         mov     r10d,r14d
    4048         mov     r12d,edx
    4049         shrd    r14d,r14d,9
    4050         xor     r13d,ecx
    4051         xor     r12d,r8d
    4052         shrd    r13d,r13d,5
    4053         xor     r14d,r10d
    4054         and     r12d,ecx
    4055         xor     r13d,ecx
    4056         add     r9d,DWORD[40+rsp]
    4057         mov     r15d,r10d
    4058         xor     r12d,r8d
    4059         shrd    r14d,r14d,11
    4060         xor     r15d,r11d
    4061         add     r9d,r12d
    4062         shrd    r13d,r13d,6
    4063         and     edi,r15d
    4064         xor     r14d,r10d
    4065         add     r9d,r13d
    4066         xor     edi,r11d
    4067         shrd    r14d,r14d,2
    4068         add     ebx,r9d
    4069         add     r9d,edi
    4070         mov     r13d,ebx
    4071         add     r14d,r9d
    4072         shrd    r13d,r13d,14
    4073         mov     r9d,r14d
    4074         mov     r12d,ecx
    4075         shrd    r14d,r14d,9
    4076         xor     r13d,ebx
    4077         xor     r12d,edx
    4078         shrd    r13d,r13d,5
    4079         xor     r14d,r9d
    4080         and     r12d,ebx
    4081         xor     r13d,ebx
    4082         add     r8d,DWORD[44+rsp]
    4083         mov     edi,r9d
    4084         xor     r12d,edx
    4085         shrd    r14d,r14d,11
    4086         xor     edi,r10d
    4087         add     r8d,r12d
    4088         shrd    r13d,r13d,6
    4089         and     r15d,edi
    4090         xor     r14d,r9d
    4091         add     r8d,r13d
    4092         xor     r15d,r10d
    4093         shrd    r14d,r14d,2
    4094         add     eax,r8d
    4095         add     r8d,r15d
    4096         mov     r13d,eax
    4097         add     r14d,r8d
    4098         shrd    r13d,r13d,14
    4099         mov     r8d,r14d
    4100         mov     r12d,ebx
    4101         shrd    r14d,r14d,9
    4102         xor     r13d,eax
    4103         xor     r12d,ecx
    4104         shrd    r13d,r13d,5
    4105         xor     r14d,r8d
    4106         and     r12d,eax
    4107         xor     r13d,eax
    4108         add     edx,DWORD[48+rsp]
    4109         mov     r15d,r8d
    4110         xor     r12d,ecx
    4111         shrd    r14d,r14d,11
    4112         xor     r15d,r9d
    4113         add     edx,r12d
    4114         shrd    r13d,r13d,6
    4115         and     edi,r15d
    4116         xor     r14d,r8d
    4117         add     edx,r13d
    4118         xor     edi,r9d
    4119         shrd    r14d,r14d,2
    4120         add     r11d,edx
    4121         add     edx,edi
    4122         mov     r13d,r11d
    4123         add     r14d,edx
    4124         shrd    r13d,r13d,14
    4125         mov     edx,r14d
    4126         mov     r12d,eax
    4127         shrd    r14d,r14d,9
    4128         xor     r13d,r11d
    4129         xor     r12d,ebx
    4130         shrd    r13d,r13d,5
    4131         xor     r14d,edx
    4132         and     r12d,r11d
    4133         xor     r13d,r11d
    4134         add     ecx,DWORD[52+rsp]
    4135         mov     edi,edx
    4136         xor     r12d,ebx
    4137         shrd    r14d,r14d,11
    4138         xor     edi,r8d
    4139         add     ecx,r12d
    4140         shrd    r13d,r13d,6
    4141         and     r15d,edi
    4142         xor     r14d,edx
    4143         add     ecx,r13d
    4144         xor     r15d,r8d
    4145         shrd    r14d,r14d,2
    4146         add     r10d,ecx
    4147         add     ecx,r15d
    4148         mov     r13d,r10d
    4149         add     r14d,ecx
    4150         shrd    r13d,r13d,14
    4151         mov     ecx,r14d
    4152         mov     r12d,r11d
    4153         shrd    r14d,r14d,9
    4154         xor     r13d,r10d
    4155         xor     r12d,eax
    4156         shrd    r13d,r13d,5
    4157         xor     r14d,ecx
    4158         and     r12d,r10d
    4159         xor     r13d,r10d
    4160         add     ebx,DWORD[56+rsp]
    4161         mov     r15d,ecx
    4162         xor     r12d,eax
    4163         shrd    r14d,r14d,11
    4164         xor     r15d,edx
    4165         add     ebx,r12d
    4166         shrd    r13d,r13d,6
    4167         and     edi,r15d
    4168         xor     r14d,ecx
    4169         add     ebx,r13d
    4170         xor     edi,edx
    4171         shrd    r14d,r14d,2
    4172         add     r9d,ebx
    4173         add     ebx,edi
    4174         mov     r13d,r9d
    4175         add     r14d,ebx
    4176         shrd    r13d,r13d,14
    4177         mov     ebx,r14d
    4178         mov     r12d,r10d
    4179         shrd    r14d,r14d,9
    4180         xor     r13d,r9d
    4181         xor     r12d,r11d
    4182         shrd    r13d,r13d,5
    4183         xor     r14d,ebx
    4184         and     r12d,r9d
    4185         xor     r13d,r9d
    4186         add     eax,DWORD[60+rsp]
    4187         mov     edi,ebx
    4188         xor     r12d,r11d
    4189         shrd    r14d,r14d,11
    4190         xor     edi,ecx
    4191         add     eax,r12d
    4192         shrd    r13d,r13d,6
    4193         and     r15d,edi
    4194         xor     r14d,ebx
    4195         add     eax,r13d
    4196         xor     r15d,ecx
    4197         shrd    r14d,r14d,2
    4198         add     r8d,eax
    4199         add     eax,r15d
    4200         mov     r13d,r8d
    4201         add     r14d,eax
    4202         mov     rdi,QWORD[((64+0))+rsp]
    4203         mov     eax,r14d
    4204 
    4205         add     eax,DWORD[rdi]
    4206         lea     rsi,[64+rsi]
    4207         add     ebx,DWORD[4+rdi]
    4208         add     ecx,DWORD[8+rdi]
    4209         add     edx,DWORD[12+rdi]
    4210         add     r8d,DWORD[16+rdi]
    4211         add     r9d,DWORD[20+rdi]
    4212         add     r10d,DWORD[24+rdi]
    4213         add     r11d,DWORD[28+rdi]
    4214 
    4215         cmp     rsi,QWORD[((64+16))+rsp]
    4216 
    4217         mov     DWORD[rdi],eax
    4218         mov     DWORD[4+rdi],ebx
    4219         mov     DWORD[8+rdi],ecx
    4220         mov     DWORD[12+rdi],edx
    4221         mov     DWORD[16+rdi],r8d
    4222         mov     DWORD[20+rdi],r9d
    4223         mov     DWORD[24+rdi],r10d
    4224         mov     DWORD[28+rdi],r11d
    4225         jb      NEAR $L$loop_avx
    4226 
    4227         mov     rsi,QWORD[88+rsp]
    4228 
    4229         vzeroupper
    4230         movaps  xmm6,XMMWORD[((64+32))+rsp]
    4231         movaps  xmm7,XMMWORD[((64+48))+rsp]
    4232         movaps  xmm8,XMMWORD[((64+64))+rsp]
    4233         movaps  xmm9,XMMWORD[((64+80))+rsp]
    4234         mov     r15,QWORD[((-48))+rsi]
    4235 
    4236         mov     r14,QWORD[((-40))+rsi]
    4237 
    4238         mov     r13,QWORD[((-32))+rsi]
    4239 
    4240         mov     r12,QWORD[((-24))+rsi]
    4241 
    4242         mov     rbp,QWORD[((-16))+rsi]
    4243 
    4244         mov     rbx,QWORD[((-8))+rsi]
    4245 
    4246         lea     rsp,[rsi]
    4247 
    4248 $L$epilogue_avx:
    4249         mov     rdi,QWORD[8+rsp]        ;WIN64 epilogue
    4250         mov     rsi,QWORD[16+rsp]
    4251         DB      0F3h,0C3h               ;repret
    4252 
    4253 $L$SEH_end_sha256_block_data_order_avx:
    4254 
    4255 ALIGN   64
    4256 sha256_block_data_order_avx2:
    4257         mov     QWORD[8+rsp],rdi        ;WIN64 prologue
    4258         mov     QWORD[16+rsp],rsi
    4259         mov     rax,rsp
    4260 $L$SEH_begin_sha256_block_data_order_avx2:
    4261         mov     rdi,rcx
    4262         mov     rsi,rdx
    4263         mov     rdx,r8
    4264 
    4265 
    4266 
    4267 $L$avx2_shortcut:
    4268         mov     rax,rsp
    4269 
    4270         push    rbx
    4271 
    4272         push    rbp
    4273 
    4274         push    r12
    4275 
    4276         push    r13
    4277 
    4278         push    r14
    4279 
    4280         push    r15
    4281 
    4282         sub     rsp,608
    4283         shl     rdx,4
    4284         and     rsp,-256*4
    4285         lea     rdx,[rdx*4+rsi]
    4286         add     rsp,448
    4287         mov     QWORD[((64+0))+rsp],rdi
    4288         mov     QWORD[((64+8))+rsp],rsi
    4289         mov     QWORD[((64+16))+rsp],rdx
    4290         mov     QWORD[88+rsp],rax
    4291 
    4292         movaps  XMMWORD[(64+32)+rsp],xmm6
    4293         movaps  XMMWORD[(64+48)+rsp],xmm7
    4294         movaps  XMMWORD[(64+64)+rsp],xmm8
    4295         movaps  XMMWORD[(64+80)+rsp],xmm9
    4296 $L$prologue_avx2:
    4297 
    4298         vzeroupper
    4299         sub     rsi,-16*4
    4300         mov     eax,DWORD[rdi]
    4301         mov     r12,rsi
    4302         mov     ebx,DWORD[4+rdi]
    4303         cmp     rsi,rdx
    4304         mov     ecx,DWORD[8+rdi]
    4305         cmove   r12,rsp
    4306         mov     edx,DWORD[12+rdi]
    4307         mov     r8d,DWORD[16+rdi]
    4308         mov     r9d,DWORD[20+rdi]
    4309         mov     r10d,DWORD[24+rdi]
    4310         mov     r11d,DWORD[28+rdi]
    4311         vmovdqa ymm8,YMMWORD[((K256+512+32))]
    4312         vmovdqa ymm9,YMMWORD[((K256+512+64))]
    4313         jmp     NEAR $L$oop_avx2
    4314 ALIGN   16
    4315 $L$oop_avx2:
    4316         vmovdqa ymm7,YMMWORD[((K256+512))]
    4317         vmovdqu xmm0,XMMWORD[((-64+0))+rsi]
    4318         vmovdqu xmm1,XMMWORD[((-64+16))+rsi]
    4319         vmovdqu xmm2,XMMWORD[((-64+32))+rsi]
    4320         vmovdqu xmm3,XMMWORD[((-64+48))+rsi]
    4321 
    4322         vinserti128     ymm0,ymm0,XMMWORD[r12],1
    4323         vinserti128     ymm1,ymm1,XMMWORD[16+r12],1
    4324         vpshufb ymm0,ymm0,ymm7
    4325         vinserti128     ymm2,ymm2,XMMWORD[32+r12],1
    4326         vpshufb ymm1,ymm1,ymm7
    4327         vinserti128     ymm3,ymm3,XMMWORD[48+r12],1
    4328 
    4329         lea     rbp,[K256]
    4330         vpshufb ymm2,ymm2,ymm7
    4331         vpaddd  ymm4,ymm0,YMMWORD[rbp]
    4332         vpshufb ymm3,ymm3,ymm7
    4333         vpaddd  ymm5,ymm1,YMMWORD[32+rbp]
    4334         vpaddd  ymm6,ymm2,YMMWORD[64+rbp]
    4335         vpaddd  ymm7,ymm3,YMMWORD[96+rbp]
    4336         vmovdqa YMMWORD[rsp],ymm4
    4337         xor     r14d,r14d
    4338         vmovdqa YMMWORD[32+rsp],ymm5
    4339         lea     rsp,[((-64))+rsp]
    4340         mov     edi,ebx
    4341         vmovdqa YMMWORD[rsp],ymm6
    4342         xor     edi,ecx
    4343         vmovdqa YMMWORD[32+rsp],ymm7
    4344         mov     r12d,r9d
    4345         sub     rbp,-16*2*4
    4346         jmp     NEAR $L$avx2_00_47
    4347 
    4348 ALIGN   16
    4349 $L$avx2_00_47:
    4350         lea     rsp,[((-64))+rsp]
    4351         vpalignr        ymm4,ymm1,ymm0,4
    4352         add     r11d,DWORD[((0+128))+rsp]
    4353         and     r12d,r8d
    4354         rorx    r13d,r8d,25
    4355         vpalignr        ymm7,ymm3,ymm2,4
    4356         rorx    r15d,r8d,11
    4357         lea     eax,[r14*1+rax]
    4358         lea     r11d,[r12*1+r11]
    4359         vpsrld  ymm6,ymm4,7
    4360         andn    r12d,r8d,r10d
    4361         xor     r13d,r15d
    4362         rorx    r14d,r8d,6
    4363         vpaddd  ymm0,ymm0,ymm7
    4364         lea     r11d,[r12*1+r11]
    4365         xor     r13d,r14d
    4366         mov     r15d,eax
    4367         vpsrld  ymm7,ymm4,3
    4368         rorx    r12d,eax,22
    4369         lea     r11d,[r13*1+r11]
    4370         xor     r15d,ebx
    4371         vpslld  ymm5,ymm4,14
    4372         rorx    r14d,eax,13
    4373         rorx    r13d,eax,2
    4374         lea     edx,[r11*1+rdx]
    4375         vpxor   ymm4,ymm7,ymm6
    4376         and     edi,r15d
    4377         xor     r14d,r12d
    4378         xor     edi,ebx
    4379         vpshufd ymm7,ymm3,250
    4380         xor     r14d,r13d
    4381         lea     r11d,[rdi*1+r11]
    4382         mov     r12d,r8d
    4383         vpsrld  ymm6,ymm6,11
    4384         add     r10d,DWORD[((4+128))+rsp]
    4385         and     r12d,edx
    4386         rorx    r13d,edx,25
    4387         vpxor   ymm4,ymm4,ymm5
    4388         rorx    edi,edx,11
    4389         lea     r11d,[r14*1+r11]
    4390         lea     r10d,[r12*1+r10]
    4391         vpslld  ymm5,ymm5,11
    4392         andn    r12d,edx,r9d
    4393         xor     r13d,edi
    4394         rorx    r14d,edx,6
    4395         vpxor   ymm4,ymm4,ymm6
    4396         lea     r10d,[r12*1+r10]
    4397         xor     r13d,r14d
    4398         mov     edi,r11d
    4399         vpsrld  ymm6,ymm7,10
    4400         rorx    r12d,r11d,22
    4401         lea     r10d,[r13*1+r10]
    4402         xor     edi,eax
    4403         vpxor   ymm4,ymm4,ymm5
    4404         rorx    r14d,r11d,13
    4405         rorx    r13d,r11d,2
    4406         lea     ecx,[r10*1+rcx]
    4407         vpsrlq  ymm7,ymm7,17
    4408         and     r15d,edi
    4409         xor     r14d,r12d
    4410         xor     r15d,eax
    4411         vpaddd  ymm0,ymm0,ymm4
    4412         xor     r14d,r13d
    4413         lea     r10d,[r15*1+r10]
    4414         mov     r12d,edx
    4415         vpxor   ymm6,ymm6,ymm7
    4416         add     r9d,DWORD[((8+128))+rsp]
    4417         and     r12d,ecx
    4418         rorx    r13d,ecx,25
    4419         vpsrlq  ymm7,ymm7,2
    4420         rorx    r15d,ecx,11
    4421         lea     r10d,[r14*1+r10]
    4422         lea     r9d,[r12*1+r9]
    4423         vpxor   ymm6,ymm6,ymm7
    4424         andn    r12d,ecx,r8d
    4425         xor     r13d,r15d
    4426         rorx    r14d,ecx,6
    4427         vpshufb ymm6,ymm6,ymm8
    4428         lea     r9d,[r12*1+r9]
    4429         xor     r13d,r14d
    4430         mov     r15d,r10d
    4431         vpaddd  ymm0,ymm0,ymm6
    4432         rorx    r12d,r10d,22
    4433         lea     r9d,[r13*1+r9]
    4434         xor     r15d,r11d
    4435         vpshufd ymm7,ymm0,80
    4436         rorx    r14d,r10d,13
    4437         rorx    r13d,r10d,2
    4438         lea     ebx,[r9*1+rbx]
    4439         vpsrld  ymm6,ymm7,10
    4440         and     edi,r15d
    4441         xor     r14d,r12d
    4442         xor     edi,r11d
    4443         vpsrlq  ymm7,ymm7,17
    4444         xor     r14d,r13d
    4445         lea     r9d,[rdi*1+r9]
    4446         mov     r12d,ecx
    4447         vpxor   ymm6,ymm6,ymm7
    4448         add     r8d,DWORD[((12+128))+rsp]
    4449         and     r12d,ebx
    4450         rorx    r13d,ebx,25
    4451         vpsrlq  ymm7,ymm7,2
    4452         rorx    edi,ebx,11
    4453         lea     r9d,[r14*1+r9]
    4454         lea     r8d,[r12*1+r8]
    4455         vpxor   ymm6,ymm6,ymm7
    4456         andn    r12d,ebx,edx
    4457         xor     r13d,edi
    4458         rorx    r14d,ebx,6
    4459         vpshufb ymm6,ymm6,ymm9
    4460         lea     r8d,[r12*1+r8]
    4461         xor     r13d,r14d
    4462         mov     edi,r9d
    4463         vpaddd  ymm0,ymm0,ymm6
    4464         rorx    r12d,r9d,22
    4465         lea     r8d,[r13*1+r8]
    4466         xor     edi,r10d
    4467         vpaddd  ymm6,ymm0,YMMWORD[rbp]
    4468         rorx    r14d,r9d,13
    4469         rorx    r13d,r9d,2
    4470         lea     eax,[r8*1+rax]
    4471         and     r15d,edi
    4472         xor     r14d,r12d
    4473         xor     r15d,r10d
    4474         xor     r14d,r13d
    4475         lea     r8d,[r15*1+r8]
    4476         mov     r12d,ebx
    4477         vmovdqa YMMWORD[rsp],ymm6
    4478         vpalignr        ymm4,ymm2,ymm1,4
    4479         add     edx,DWORD[((32+128))+rsp]
    4480         and     r12d,eax
    4481         rorx    r13d,eax,25
    4482         vpalignr        ymm7,ymm0,ymm3,4
    4483         rorx    r15d,eax,11
    4484         lea     r8d,[r14*1+r8]
    4485         lea     edx,[r12*1+rdx]
    4486         vpsrld  ymm6,ymm4,7
    4487         andn    r12d,eax,ecx
    4488         xor     r13d,r15d
    4489         rorx    r14d,eax,6
    4490         vpaddd  ymm1,ymm1,ymm7
    4491         lea     edx,[r12*1+rdx]
    4492         xor     r13d,r14d
    4493         mov     r15d,r8d
    4494         vpsrld  ymm7,ymm4,3
    4495         rorx    r12d,r8d,22
    4496         lea     edx,[r13*1+rdx]
    4497         xor     r15d,r9d
    4498         vpslld  ymm5,ymm4,14
    4499         rorx    r14d,r8d,13
    4500         rorx    r13d,r8d,2
    4501         lea     r11d,[rdx*1+r11]
    4502         vpxor   ymm4,ymm7,ymm6
    4503         and     edi,r15d
    4504         xor     r14d,r12d
    4505         xor     edi,r9d
    4506         vpshufd ymm7,ymm0,250
    4507         xor     r14d,r13d
    4508         lea     edx,[rdi*1+rdx]
    4509         mov     r12d,eax
    4510         vpsrld  ymm6,ymm6,11
    4511         add     ecx,DWORD[((36+128))+rsp]
    4512         and     r12d,r11d
    4513         rorx    r13d,r11d,25
    4514         vpxor   ymm4,ymm4,ymm5
    4515         rorx    edi,r11d,11
    4516         lea     edx,[r14*1+rdx]
    4517         lea     ecx,[r12*1+rcx]
    4518         vpslld  ymm5,ymm5,11
    4519         andn    r12d,r11d,ebx
    4520         xor     r13d,edi
    4521         rorx    r14d,r11d,6
    4522         vpxor   ymm4,ymm4,ymm6
    4523         lea     ecx,[r12*1+rcx]
    4524         xor     r13d,r14d
    4525         mov     edi,edx
    4526         vpsrld  ymm6,ymm7,10
    4527         rorx    r12d,edx,22
    4528         lea     ecx,[r13*1+rcx]
    4529         xor     edi,r8d
    4530         vpxor   ymm4,ymm4,ymm5
    4531         rorx    r14d,edx,13
    4532         rorx    r13d,edx,2
    4533         lea     r10d,[rcx*1+r10]
    4534         vpsrlq  ymm7,ymm7,17
    4535         and     r15d,edi
    4536         xor     r14d,r12d
    4537         xor     r15d,r8d
    4538         vpaddd  ymm1,ymm1,ymm4
    4539         xor     r14d,r13d
    4540         lea     ecx,[r15*1+rcx]
    4541         mov     r12d,r11d
    4542         vpxor   ymm6,ymm6,ymm7
    4543         add     ebx,DWORD[((40+128))+rsp]
    4544         and     r12d,r10d
    4545         rorx    r13d,r10d,25
    4546         vpsrlq  ymm7,ymm7,2
    4547         rorx    r15d,r10d,11
    4548         lea     ecx,[r14*1+rcx]
    4549         lea     ebx,[r12*1+rbx]
    4550         vpxor   ymm6,ymm6,ymm7
    4551         andn    r12d,r10d,eax
    4552         xor     r13d,r15d
    4553         rorx    r14d,r10d,6
    4554         vpshufb ymm6,ymm6,ymm8
    4555         lea     ebx,[r12*1+rbx]
    4556         xor     r13d,r14d
    4557         mov     r15d,ecx
    4558         vpaddd  ymm1,ymm1,ymm6
    4559         rorx    r12d,ecx,22
    4560         lea     ebx,[r13*1+rbx]
    4561         xor     r15d,edx
    4562         vpshufd ymm7,ymm1,80
    4563         rorx    r14d,ecx,13
    4564         rorx    r13d,ecx,2
    4565         lea     r9d,[rbx*1+r9]
    4566         vpsrld  ymm6,ymm7,10
    4567         and     edi,r15d
    4568         xor     r14d,r12d
    4569         xor     edi,edx
    4570         vpsrlq  ymm7,ymm7,17
    4571         xor     r14d,r13d
    4572         lea     ebx,[rdi*1+rbx]
    4573         mov     r12d,r10d
    4574         vpxor   ymm6,ymm6,ymm7
    4575         add     eax,DWORD[((44+128))+rsp]
    4576         and     r12d,r9d
    4577         rorx    r13d,r9d,25
    4578         vpsrlq  ymm7,ymm7,2
    4579         rorx    edi,r9d,11
    4580         lea     ebx,[r14*1+rbx]
    4581         lea     eax,[r12*1+rax]
    4582         vpxor   ymm6,ymm6,ymm7
    4583         andn    r12d,r9d,r11d
    4584         xor     r13d,edi
    4585         rorx    r14d,r9d,6
    4586         vpshufb ymm6,ymm6,ymm9
    4587         lea     eax,[r12*1+rax]
    4588         xor     r13d,r14d
    4589         mov     edi,ebx
    4590         vpaddd  ymm1,ymm1,ymm6
    4591         rorx    r12d,ebx,22
    4592         lea     eax,[r13*1+rax]
    4593         xor     edi,ecx
    4594         vpaddd  ymm6,ymm1,YMMWORD[32+rbp]
    4595         rorx    r14d,ebx,13
    4596         rorx    r13d,ebx,2
    4597         lea     r8d,[rax*1+r8]
    4598         and     r15d,edi
    4599         xor     r14d,r12d
    4600         xor     r15d,ecx
    4601         xor     r14d,r13d
    4602         lea     eax,[r15*1+rax]
    4603         mov     r12d,r9d
    4604         vmovdqa YMMWORD[32+rsp],ymm6
    4605         lea     rsp,[((-64))+rsp]
    4606         vpalignr        ymm4,ymm3,ymm2,4
    4607         add     r11d,DWORD[((0+128))+rsp]
    4608         and     r12d,r8d
    4609         rorx    r13d,r8d,25
    4610         vpalignr        ymm7,ymm1,ymm0,4
    4611         rorx    r15d,r8d,11
    4612         lea     eax,[r14*1+rax]
    4613         lea     r11d,[r12*1+r11]
    4614         vpsrld  ymm6,ymm4,7
    4615         andn    r12d,r8d,r10d
    4616         xor     r13d,r15d
    4617         rorx    r14d,r8d,6
    4618         vpaddd  ymm2,ymm2,ymm7
    4619         lea     r11d,[r12*1+r11]
    4620         xor     r13d,r14d
    4621         mov     r15d,eax
    4622         vpsrld  ymm7,ymm4,3
    4623         rorx    r12d,eax,22
    4624         lea     r11d,[r13*1+r11]
    4625         xor     r15d,ebx
    4626         vpslld  ymm5,ymm4,14
    4627         rorx    r14d,eax,13
    4628         rorx    r13d,eax,2
    4629         lea     edx,[r11*1+rdx]
    4630         vpxor   ymm4,ymm7,ymm6
    4631         and     edi,r15d
    4632         xor     r14d,r12d
    4633         xor     edi,ebx
    4634         vpshufd ymm7,ymm1,250
    4635         xor     r14d,r13d
    4636         lea     r11d,[rdi*1+r11]
    4637         mov     r12d,r8d
    4638         vpsrld  ymm6,ymm6,11
    4639         add     r10d,DWORD[((4+128))+rsp]
    4640         and     r12d,edx
    4641         rorx    r13d,edx,25
    4642         vpxor   ymm4,ymm4,ymm5
    4643         rorx    edi,edx,11
    4644         lea     r11d,[r14*1+r11]
    4645         lea     r10d,[r12*1+r10]
    4646         vpslld  ymm5,ymm5,11
    4647         andn    r12d,edx,r9d
    4648         xor     r13d,edi
    4649         rorx    r14d,edx,6
    4650         vpxor   ymm4,ymm4,ymm6
    4651         lea     r10d,[r12*1+r10]
    4652         xor     r13d,r14d
    4653         mov     edi,r11d
    4654         vpsrld  ymm6,ymm7,10
    4655         rorx    r12d,r11d,22
    4656         lea     r10d,[r13*1+r10]
    4657         xor     edi,eax
    4658         vpxor   ymm4,ymm4,ymm5
    4659         rorx    r14d,r11d,13
    4660         rorx    r13d,r11d,2
    4661         lea     ecx,[r10*1+rcx]
    4662         vpsrlq  ymm7,ymm7,17
    4663         and     r15d,edi
    4664         xor     r14d,r12d
    4665         xor     r15d,eax
    4666         vpaddd  ymm2,ymm2,ymm4
    4667         xor     r14d,r13d
    4668         lea     r10d,[r15*1+r10]
    4669         mov     r12d,edx
    4670         vpxor   ymm6,ymm6,ymm7
    4671         add     r9d,DWORD[((8+128))+rsp]
    4672         and     r12d,ecx
    4673         rorx    r13d,ecx,25
    4674         vpsrlq  ymm7,ymm7,2
    4675         rorx    r15d,ecx,11
    4676         lea     r10d,[r14*1+r10]
    4677         lea     r9d,[r12*1+r9]
    4678         vpxor   ymm6,ymm6,ymm7
    4679         andn    r12d,ecx,r8d
    4680         xor     r13d,r15d
    4681         rorx    r14d,ecx,6
    4682         vpshufb ymm6,ymm6,ymm8
    4683         lea     r9d,[r12*1+r9]
    4684         xor     r13d,r14d
    4685         mov     r15d,r10d
    4686         vpaddd  ymm2,ymm2,ymm6
    4687         rorx    r12d,r10d,22
    4688         lea     r9d,[r13*1+r9]
    4689         xor     r15d,r11d
    4690         vpshufd ymm7,ymm2,80
    4691         rorx    r14d,r10d,13
    4692         rorx    r13d,r10d,2
    4693         lea     ebx,[r9*1+rbx]
    4694         vpsrld  ymm6,ymm7,10
    4695         and     edi,r15d
    4696         xor     r14d,r12d
    4697         xor     edi,r11d
    4698         vpsrlq  ymm7,ymm7,17
    4699         xor     r14d,r13d
    4700         lea     r9d,[rdi*1+r9]
    4701         mov     r12d,ecx
    4702         vpxor   ymm6,ymm6,ymm7
    4703         add     r8d,DWORD[((12+128))+rsp]
    4704         and     r12d,ebx
    4705         rorx    r13d,ebx,25
    4706         vpsrlq  ymm7,ymm7,2
    4707         rorx    edi,ebx,11
    4708         lea     r9d,[r14*1+r9]
    4709         lea     r8d,[r12*1+r8]
    4710         vpxor   ymm6,ymm6,ymm7
    4711         andn    r12d,ebx,edx
    4712         xor     r13d,edi
    4713         rorx    r14d,ebx,6
    4714         vpshufb ymm6,ymm6,ymm9
    4715         lea     r8d,[r12*1+r8]
    4716         xor     r13d,r14d
    4717         mov     edi,r9d
    4718         vpaddd  ymm2,ymm2,ymm6
    4719         rorx    r12d,r9d,22
    4720         lea     r8d,[r13*1+r8]
    4721         xor     edi,r10d
    4722         vpaddd  ymm6,ymm2,YMMWORD[64+rbp]
    4723         rorx    r14d,r9d,13
    4724         rorx    r13d,r9d,2
    4725         lea     eax,[r8*1+rax]
    4726         and     r15d,edi
    4727         xor     r14d,r12d
    4728         xor     r15d,r10d
    4729         xor     r14d,r13d
    4730         lea     r8d,[r15*1+r8]
    4731         mov     r12d,ebx
    4732         vmovdqa YMMWORD[rsp],ymm6
    4733         vpalignr        ymm4,ymm0,ymm3,4
    4734         add     edx,DWORD[((32+128))+rsp]
    4735         and     r12d,eax
    4736         rorx    r13d,eax,25
    4737         vpalignr        ymm7,ymm2,ymm1,4
    4738         rorx    r15d,eax,11
    4739         lea     r8d,[r14*1+r8]
    4740         lea     edx,[r12*1+rdx]
    4741         vpsrld  ymm6,ymm4,7
    4742         andn    r12d,eax,ecx
    4743         xor     r13d,r15d
    4744         rorx    r14d,eax,6
    4745         vpaddd  ymm3,ymm3,ymm7
    4746         lea     edx,[r12*1+rdx]
    4747         xor     r13d,r14d
    4748         mov     r15d,r8d
    4749         vpsrld  ymm7,ymm4,3
    4750         rorx    r12d,r8d,22
    4751         lea     edx,[r13*1+rdx]
    4752         xor     r15d,r9d
    4753         vpslld  ymm5,ymm4,14
    4754         rorx    r14d,r8d,13
    4755         rorx    r13d,r8d,2
    4756         lea     r11d,[rdx*1+r11]
    4757         vpxor   ymm4,ymm7,ymm6
    4758         and     edi,r15d
    4759         xor     r14d,r12d
    4760         xor     edi,r9d
    4761         vpshufd ymm7,ymm2,250
    4762         xor     r14d,r13d
    4763         lea     edx,[rdi*1+rdx]
    4764         mov     r12d,eax
    4765         vpsrld  ymm6,ymm6,11
    4766         add     ecx,DWORD[((36+128))+rsp]
    4767         and     r12d,r11d
    4768         rorx    r13d,r11d,25
    4769         vpxor   ymm4,ymm4,ymm5
    4770         rorx    edi,r11d,11
    4771         lea     edx,[r14*1+rdx]
    4772         lea     ecx,[r12*1+rcx]
    4773         vpslld  ymm5,ymm5,11
    4774         andn    r12d,r11d,ebx
    4775         xor     r13d,edi
    4776         rorx    r14d,r11d,6
    4777         vpxor   ymm4,ymm4,ymm6
    4778         lea     ecx,[r12*1+rcx]
    4779         xor     r13d,r14d
    4780         mov     edi,edx
    4781         vpsrld  ymm6,ymm7,10
    4782         rorx    r12d,edx,22
    4783         lea     ecx,[r13*1+rcx]
    4784         xor     edi,r8d
    4785         vpxor   ymm4,ymm4,ymm5
    4786         rorx    r14d,edx,13
    4787         rorx    r13d,edx,2
    4788         lea     r10d,[rcx*1+r10]
    4789         vpsrlq  ymm7,ymm7,17
    4790         and     r15d,edi
    4791         xor     r14d,r12d
    4792         xor     r15d,r8d
    4793         vpaddd  ymm3,ymm3,ymm4
    4794         xor     r14d,r13d
    4795         lea     ecx,[r15*1+rcx]
    4796         mov     r12d,r11d
    4797         vpxor   ymm6,ymm6,ymm7
    4798         add     ebx,DWORD[((40+128))+rsp]
    4799         and     r12d,r10d
    4800         rorx    r13d,r10d,25
    4801         vpsrlq  ymm7,ymm7,2
    4802         rorx    r15d,r10d,11
    4803         lea     ecx,[r14*1+rcx]
    4804         lea     ebx,[r12*1+rbx]
    4805         vpxor   ymm6,ymm6,ymm7
    4806         andn    r12d,r10d,eax
    4807         xor     r13d,r15d
    4808         rorx    r14d,r10d,6
    4809         vpshufb ymm6,ymm6,ymm8
    4810         lea     ebx,[r12*1+rbx]
    4811         xor     r13d,r14d
    4812         mov     r15d,ecx
    4813         vpaddd  ymm3,ymm3,ymm6
    4814         rorx    r12d,ecx,22
    4815         lea     ebx,[r13*1+rbx]
    4816         xor     r15d,edx
    4817         vpshufd ymm7,ymm3,80
    4818         rorx    r14d,ecx,13
    4819         rorx    r13d,ecx,2
    4820         lea     r9d,[rbx*1+r9]
    4821         vpsrld  ymm6,ymm7,10
    4822         and     edi,r15d
    4823         xor     r14d,r12d
    4824         xor     edi,edx
    4825         vpsrlq  ymm7,ymm7,17
    4826         xor     r14d,r13d
    4827         lea     ebx,[rdi*1+rbx]
    4828         mov     r12d,r10d
    4829         vpxor   ymm6,ymm6,ymm7
    4830         add     eax,DWORD[((44+128))+rsp]
    4831         and     r12d,r9d
    4832         rorx    r13d,r9d,25
    4833         vpsrlq  ymm7,ymm7,2
    4834         rorx    edi,r9d,11
    4835         lea     ebx,[r14*1+rbx]
    4836         lea     eax,[r12*1+rax]
    4837         vpxor   ymm6,ymm6,ymm7
    4838         andn    r12d,r9d,r11d
    4839         xor     r13d,edi
    4840         rorx    r14d,r9d,6
    4841         vpshufb ymm6,ymm6,ymm9
    4842         lea     eax,[r12*1+rax]
    4843         xor     r13d,r14d
    4844         mov     edi,ebx
    4845         vpaddd  ymm3,ymm3,ymm6
    4846         rorx    r12d,ebx,22
    4847         lea     eax,[r13*1+rax]
    4848         xor     edi,ecx
    4849         vpaddd  ymm6,ymm3,YMMWORD[96+rbp]
    4850         rorx    r14d,ebx,13
    4851         rorx    r13d,ebx,2
    4852         lea     r8d,[rax*1+r8]
    4853         and     r15d,edi
    4854         xor     r14d,r12d
    4855         xor     r15d,ecx
    4856         xor     r14d,r13d
    4857         lea     eax,[r15*1+rax]
    4858         mov     r12d,r9d
    4859         vmovdqa YMMWORD[32+rsp],ymm6
    4860         lea     rbp,[128+rbp]
    4861         cmp     BYTE[3+rbp],0
    4862         jne     NEAR $L$avx2_00_47
    4863         add     r11d,DWORD[((0+64))+rsp]
    4864         and     r12d,r8d
    4865         rorx    r13d,r8d,25
    4866         rorx    r15d,r8d,11
    4867         lea     eax,[r14*1+rax]
    4868         lea     r11d,[r12*1+r11]
    4869         andn    r12d,r8d,r10d
    4870         xor     r13d,r15d
    4871         rorx    r14d,r8d,6
    4872         lea     r11d,[r12*1+r11]
    4873         xor     r13d,r14d
    4874         mov     r15d,eax
    4875         rorx    r12d,eax,22
    4876         lea     r11d,[r13*1+r11]
    4877         xor     r15d,ebx
    4878         rorx    r14d,eax,13
    4879         rorx    r13d,eax,2
    4880         lea     edx,[r11*1+rdx]
    4881         and     edi,r15d
    4882         xor     r14d,r12d
    4883         xor     edi,ebx
    4884         xor     r14d,r13d
    4885         lea     r11d,[rdi*1+r11]
    4886         mov     r12d,r8d
    4887         add     r10d,DWORD[((4+64))+rsp]
    4888         and     r12d,edx
    4889         rorx    r13d,edx,25
    4890         rorx    edi,edx,11
    4891         lea     r11d,[r14*1+r11]
    4892         lea     r10d,[r12*1+r10]
    4893         andn    r12d,edx,r9d
    4894         xor     r13d,edi
    4895         rorx    r14d,edx,6
    4896         lea     r10d,[r12*1+r10]
    4897         xor     r13d,r14d
    4898         mov     edi,r11d
    4899         rorx    r12d,r11d,22
    4900         lea     r10d,[r13*1+r10]
    4901         xor     edi,eax
    4902         rorx    r14d,r11d,13
    4903         rorx    r13d,r11d,2
    4904         lea     ecx,[r10*1+rcx]
    4905         and     r15d,edi
    4906         xor     r14d,r12d
    4907         xor     r15d,eax
    4908         xor     r14d,r13d
    4909         lea     r10d,[r15*1+r10]
    4910         mov     r12d,edx
    4911         add     r9d,DWORD[((8+64))+rsp]
    4912         and     r12d,ecx
    4913         rorx    r13d,ecx,25
    4914         rorx    r15d,ecx,11
    4915         lea     r10d,[r14*1+r10]
    4916         lea     r9d,[r12*1+r9]
    4917         andn    r12d,ecx,r8d
    4918         xor     r13d,r15d
    4919         rorx    r14d,ecx,6
    4920         lea     r9d,[r12*1+r9]
    4921         xor     r13d,r14d
    4922         mov     r15d,r10d
    4923         rorx    r12d,r10d,22
    4924         lea     r9d,[r13*1+r9]
    4925         xor     r15d,r11d
    4926         rorx    r14d,r10d,13
    4927         rorx    r13d,r10d,2
    4928         lea     ebx,[r9*1+rbx]
    4929         and     edi,r15d
    4930         xor     r14d,r12d
    4931         xor     edi,r11d
    4932         xor     r14d,r13d
    4933         lea     r9d,[rdi*1+r9]
    4934         mov     r12d,ecx
    4935         add     r8d,DWORD[((12+64))+rsp]
    4936         and     r12d,ebx
    4937         rorx    r13d,ebx,25
    4938         rorx    edi,ebx,11
    4939         lea     r9d,[r14*1+r9]
    4940         lea     r8d,[r12*1+r8]
    4941         andn    r12d,ebx,edx
    4942         xor     r13d,edi
    4943         rorx    r14d,ebx,6
    4944         lea     r8d,[r12*1+r8]
    4945         xor     r13d,r14d
    4946         mov     edi,r9d
    4947         rorx    r12d,r9d,22
    4948         lea     r8d,[r13*1+r8]
    4949         xor     edi,r10d
    4950         rorx    r14d,r9d,13
    4951         rorx    r13d,r9d,2
    4952         lea     eax,[r8*1+rax]
    4953         and     r15d,edi
    4954         xor     r14d,r12d
    4955         xor     r15d,r10d
    4956         xor     r14d,r13d
    4957         lea     r8d,[r15*1+r8]
    4958         mov     r12d,ebx
    4959         add     edx,DWORD[((32+64))+rsp]
    4960         and     r12d,eax
    4961         rorx    r13d,eax,25
    4962         rorx    r15d,eax,11
    4963         lea     r8d,[r14*1+r8]
    4964         lea     edx,[r12*1+rdx]
    4965         andn    r12d,eax,ecx
    4966         xor     r13d,r15d
    4967         rorx    r14d,eax,6
    4968         lea     edx,[r12*1+rdx]
    4969         xor     r13d,r14d
    4970         mov     r15d,r8d
    4971         rorx    r12d,r8d,22
    4972         lea     edx,[r13*1+rdx]
    4973         xor     r15d,r9d
    4974         rorx    r14d,r8d,13
    4975         rorx    r13d,r8d,2
    4976         lea     r11d,[rdx*1+r11]
    4977         and     edi,r15d
    4978         xor     r14d,r12d
    4979         xor     edi,r9d
    4980         xor     r14d,r13d
    4981         lea     edx,[rdi*1+rdx]
    4982         mov     r12d,eax
    4983         add     ecx,DWORD[((36+64))+rsp]
    4984         and     r12d,r11d
    4985         rorx    r13d,r11d,25
    4986         rorx    edi,r11d,11
    4987         lea     edx,[r14*1+rdx]
    4988         lea     ecx,[r12*1+rcx]
    4989         andn    r12d,r11d,ebx
    4990         xor     r13d,edi
    4991         rorx    r14d,r11d,6
    4992         lea     ecx,[r12*1+rcx]
    4993         xor     r13d,r14d
    4994         mov     edi,edx
    4995         rorx    r12d,edx,22
    4996         lea     ecx,[r13*1+rcx]
    4997         xor     edi,r8d
    4998         rorx    r14d,edx,13
    4999         rorx    r13d,edx,2
    5000         lea     r10d,[rcx*1+r10]
    5001         and     r15d,edi
    5002         xor     r14d,r12d
    5003         xor     r15d,r8d
    5004         xor     r14d,r13d
    5005         lea     ecx,[r15*1+rcx]
    5006         mov     r12d,r11d
    5007         add     ebx,DWORD[((40+64))+rsp]
    5008         and     r12d,r10d
    5009         rorx    r13d,r10d,25
    5010         rorx    r15d,r10d,11
    5011         lea     ecx,[r14*1+rcx]
    5012         lea     ebx,[r12*1+rbx]
    5013         andn    r12d,r10d,eax
    5014         xor     r13d,r15d
    5015         rorx    r14d,r10d,6
    5016         lea     ebx,[r12*1+rbx]
    5017         xor     r13d,r14d
    5018         mov     r15d,ecx
    5019         rorx    r12d,ecx,22
    5020         lea     ebx,[r13*1+rbx]
    5021         xor     r15d,edx
    5022         rorx    r14d,ecx,13
    5023         rorx    r13d,ecx,2
    5024         lea     r9d,[rbx*1+r9]
    5025         and     edi,r15d
    5026         xor     r14d,r12d
    5027         xor     edi,edx
    5028         xor     r14d,r13d
    5029         lea     ebx,[rdi*1+rbx]
    5030         mov     r12d,r10d
    5031         add     eax,DWORD[((44+64))+rsp]
    5032         and     r12d,r9d
    5033         rorx    r13d,r9d,25
    5034         rorx    edi,r9d,11
    5035         lea     ebx,[r14*1+rbx]
    5036         lea     eax,[r12*1+rax]
    5037         andn    r12d,r9d,r11d
    5038         xor     r13d,edi
    5039         rorx    r14d,r9d,6
    5040         lea     eax,[r12*1+rax]
    5041         xor     r13d,r14d
    5042         mov     edi,ebx
    5043         rorx    r12d,ebx,22
    5044         lea     eax,[r13*1+rax]
    5045         xor     edi,ecx
    5046         rorx    r14d,ebx,13
    5047         rorx    r13d,ebx,2
    5048         lea     r8d,[rax*1+r8]
    5049         and     r15d,edi
    5050         xor     r14d,r12d
    5051         xor     r15d,ecx
    5052         xor     r14d,r13d
    5053         lea     eax,[r15*1+rax]
    5054         mov     r12d,r9d
    5055         add     r11d,DWORD[rsp]
    5056         and     r12d,r8d
    5057         rorx    r13d,r8d,25
    5058         rorx    r15d,r8d,11
    5059         lea     eax,[r14*1+rax]
    5060         lea     r11d,[r12*1+r11]
    5061         andn    r12d,r8d,r10d
    5062         xor     r13d,r15d
    5063         rorx    r14d,r8d,6
    5064         lea     r11d,[r12*1+r11]
    5065         xor     r13d,r14d
    5066         mov     r15d,eax
    5067         rorx    r12d,eax,22
    5068         lea     r11d,[r13*1+r11]
    5069         xor     r15d,ebx
    5070         rorx    r14d,eax,13
    5071         rorx    r13d,eax,2
    5072         lea     edx,[r11*1+rdx]
    5073         and     edi,r15d
    5074         xor     r14d,r12d
    5075         xor     edi,ebx
    5076         xor     r14d,r13d
    5077         lea     r11d,[rdi*1+r11]
    5078         mov     r12d,r8d
    5079         add     r10d,DWORD[4+rsp]
    5080         and     r12d,edx
    5081         rorx    r13d,edx,25
    5082         rorx    edi,edx,11
    5083         lea     r11d,[r14*1+r11]
    5084         lea     r10d,[r12*1+r10]
    5085         andn    r12d,edx,r9d
    5086         xor     r13d,edi
    5087         rorx    r14d,edx,6
    5088         lea     r10d,[r12*1+r10]
    5089         xor     r13d,r14d
    5090         mov     edi,r11d
    5091         rorx    r12d,r11d,22
    5092         lea     r10d,[r13*1+r10]
    5093         xor     edi,eax
    5094         rorx    r14d,r11d,13
    5095         rorx    r13d,r11d,2
    5096         lea     ecx,[r10*1+rcx]
    5097         and     r15d,edi
    5098         xor     r14d,r12d
    5099         xor     r15d,eax
    5100         xor     r14d,r13d
    5101         lea     r10d,[r15*1+r10]
    5102         mov     r12d,edx
    5103         add     r9d,DWORD[8+rsp]
    5104         and     r12d,ecx
    5105         rorx    r13d,ecx,25
    5106         rorx    r15d,ecx,11
    5107         lea     r10d,[r14*1+r10]
    5108         lea     r9d,[r12*1+r9]
    5109         andn    r12d,ecx,r8d
    5110         xor     r13d,r15d
    5111         rorx    r14d,ecx,6
    5112         lea     r9d,[r12*1+r9]
    5113         xor     r13d,r14d
    5114         mov     r15d,r10d
    5115         rorx    r12d,r10d,22
    5116         lea     r9d,[r13*1+r9]
    5117         xor     r15d,r11d
    5118         rorx    r14d,r10d,13
    5119         rorx    r13d,r10d,2
    5120         lea     ebx,[r9*1+rbx]
    5121         and     edi,r15d
    5122         xor     r14d,r12d
    5123         xor     edi,r11d
    5124         xor     r14d,r13d
    5125         lea     r9d,[rdi*1+r9]
    5126         mov     r12d,ecx
    5127         add     r8d,DWORD[12+rsp]
    5128         and     r12d,ebx
    5129         rorx    r13d,ebx,25
    5130         rorx    edi,ebx,11
    5131         lea     r9d,[r14*1+r9]
    5132         lea     r8d,[r12*1+r8]
    5133         andn    r12d,ebx,edx
    5134         xor     r13d,edi
    5135         rorx    r14d,ebx,6
    5136         lea     r8d,[r12*1+r8]
    5137         xor     r13d,r14d
    5138         mov     edi,r9d
    5139         rorx    r12d,r9d,22
    5140         lea     r8d,[r13*1+r8]
    5141         xor     edi,r10d
    5142         rorx    r14d,r9d,13
    5143         rorx    r13d,r9d,2
    5144         lea     eax,[r8*1+rax]
    5145         and     r15d,edi
    5146         xor     r14d,r12d
    5147         xor     r15d,r10d
    5148         xor     r14d,r13d
    5149         lea     r8d,[r15*1+r8]
    5150         mov     r12d,ebx
    5151         add     edx,DWORD[32+rsp]
    5152         and     r12d,eax
    5153         rorx    r13d,eax,25
    5154         rorx    r15d,eax,11
    5155         lea     r8d,[r14*1+r8]
    5156         lea     edx,[r12*1+rdx]
    5157         andn    r12d,eax,ecx
    5158         xor     r13d,r15d
    5159         rorx    r14d,eax,6
    5160         lea     edx,[r12*1+rdx]
    5161         xor     r13d,r14d
    5162         mov     r15d,r8d
    5163         rorx    r12d,r8d,22
    5164         lea     edx,[r13*1+rdx]
    5165         xor     r15d,r9d
    5166         rorx    r14d,r8d,13
    5167         rorx    r13d,r8d,2
    5168         lea     r11d,[rdx*1+r11]
    5169         and     edi,r15d
    5170         xor     r14d,r12d
    5171         xor     edi,r9d
    5172         xor     r14d,r13d
    5173         lea     edx,[rdi*1+rdx]
    5174         mov     r12d,eax
    5175         add     ecx,DWORD[36+rsp]
    5176         and     r12d,r11d
    5177         rorx    r13d,r11d,25
    5178         rorx    edi,r11d,11
    5179         lea     edx,[r14*1+rdx]
    5180         lea     ecx,[r12*1+rcx]
    5181         andn    r12d,r11d,ebx
    5182         xor     r13d,edi
    5183         rorx    r14d,r11d,6
    5184         lea     ecx,[r12*1+rcx]
    5185         xor     r13d,r14d
    5186         mov     edi,edx
    5187         rorx    r12d,edx,22
    5188         lea     ecx,[r13*1+rcx]
    5189         xor     edi,r8d
    5190         rorx    r14d,edx,13
    5191         rorx    r13d,edx,2
    5192         lea     r10d,[rcx*1+r10]
    5193         and     r15d,edi
    5194         xor     r14d,r12d
    5195         xor     r15d,r8d
    5196         xor     r14d,r13d
    5197         lea     ecx,[r15*1+rcx]
    5198         mov     r12d,r11d
    5199         add     ebx,DWORD[40+rsp]
    5200         and     r12d,r10d
    5201         rorx    r13d,r10d,25
    5202         rorx    r15d,r10d,11
    5203         lea     ecx,[r14*1+rcx]
    5204         lea     ebx,[r12*1+rbx]
    5205         andn    r12d,r10d,eax
    5206         xor     r13d,r15d
    5207         rorx    r14d,r10d,6
    5208         lea     ebx,[r12*1+rbx]
    5209         xor     r13d,r14d
    5210         mov     r15d,ecx
    5211         rorx    r12d,ecx,22
    5212         lea     ebx,[r13*1+rbx]
    5213         xor     r15d,edx
    5214         rorx    r14d,ecx,13
    5215         rorx    r13d,ecx,2
    5216         lea     r9d,[rbx*1+r9]
    5217         and     edi,r15d
    5218         xor     r14d,r12d
    5219         xor     edi,edx
    5220         xor     r14d,r13d
    5221         lea     ebx,[rdi*1+rbx]
    5222         mov     r12d,r10d
    5223         add     eax,DWORD[44+rsp]
    5224         and     r12d,r9d
    5225         rorx    r13d,r9d,25
    5226         rorx    edi,r9d,11
    5227         lea     ebx,[r14*1+rbx]
    5228         lea     eax,[r12*1+rax]
    5229         andn    r12d,r9d,r11d
    5230         xor     r13d,edi
    5231         rorx    r14d,r9d,6
    5232         lea     eax,[r12*1+rax]
    5233         xor     r13d,r14d
    5234         mov     edi,ebx
    5235         rorx    r12d,ebx,22
    5236         lea     eax,[r13*1+rax]
    5237         xor     edi,ecx
    5238         rorx    r14d,ebx,13
    5239         rorx    r13d,ebx,2
    5240         lea     r8d,[rax*1+r8]
    5241         and     r15d,edi
    5242         xor     r14d,r12d
    5243         xor     r15d,ecx
    5244         xor     r14d,r13d
    5245         lea     eax,[r15*1+rax]
    5246         mov     r12d,r9d
    5247         mov     rdi,QWORD[512+rsp]
    5248         add     eax,r14d
    5249 
    5250         lea     rbp,[448+rsp]
    5251 
    5252         add     eax,DWORD[rdi]
    5253         add     ebx,DWORD[4+rdi]
    5254         add     ecx,DWORD[8+rdi]
    5255         add     edx,DWORD[12+rdi]
    5256         add     r8d,DWORD[16+rdi]
    5257         add     r9d,DWORD[20+rdi]
    5258         add     r10d,DWORD[24+rdi]
    5259         add     r11d,DWORD[28+rdi]
    5260 
    5261         mov     DWORD[rdi],eax
    5262         mov     DWORD[4+rdi],ebx
    5263         mov     DWORD[8+rdi],ecx
    5264         mov     DWORD[12+rdi],edx
    5265         mov     DWORD[16+rdi],r8d
    5266         mov     DWORD[20+rdi],r9d
    5267         mov     DWORD[24+rdi],r10d
    5268         mov     DWORD[28+rdi],r11d
    5269 
    5270         cmp     rsi,QWORD[80+rbp]
    5271         je      NEAR $L$done_avx2
    5272 
    5273         xor     r14d,r14d
    5274         mov     edi,ebx
    5275         xor     edi,ecx
    5276         mov     r12d,r9d
    5277         jmp     NEAR $L$ower_avx2
    5278 ALIGN   16
    5279 $L$ower_avx2:
    5280         add     r11d,DWORD[((0+16))+rbp]
    5281         and     r12d,r8d
    5282         rorx    r13d,r8d,25
    5283         rorx    r15d,r8d,11
    5284         lea     eax,[r14*1+rax]
    5285         lea     r11d,[r12*1+r11]
    5286         andn    r12d,r8d,r10d
    5287         xor     r13d,r15d
    5288         rorx    r14d,r8d,6
    5289         lea     r11d,[r12*1+r11]
    5290         xor     r13d,r14d
    5291         mov     r15d,eax
    5292         rorx    r12d,eax,22
    5293         lea     r11d,[r13*1+r11]
    5294         xor     r15d,ebx
    5295         rorx    r14d,eax,13
    5296         rorx    r13d,eax,2
    5297         lea     edx,[r11*1+rdx]
    5298         and     edi,r15d
    5299         xor     r14d,r12d
    5300         xor     edi,ebx
    5301         xor     r14d,r13d
    5302         lea     r11d,[rdi*1+r11]
    5303         mov     r12d,r8d
    5304         add     r10d,DWORD[((4+16))+rbp]
    5305         and     r12d,edx
    5306         rorx    r13d,edx,25
    5307         rorx    edi,edx,11
    5308         lea     r11d,[r14*1+r11]
    5309         lea     r10d,[r12*1+r10]
    5310         andn    r12d,edx,r9d
    5311         xor     r13d,edi
    5312         rorx    r14d,edx,6
    5313         lea     r10d,[r12*1+r10]
    5314         xor     r13d,r14d
    5315         mov     edi,r11d
    5316         rorx    r12d,r11d,22
    5317         lea     r10d,[r13*1+r10]
    5318         xor     edi,eax
    5319         rorx    r14d,r11d,13
    5320         rorx    r13d,r11d,2
    5321         lea     ecx,[r10*1+rcx]
    5322         and     r15d,edi
    5323         xor     r14d,r12d
    5324         xor     r15d,eax
    5325         xor     r14d,r13d
    5326         lea     r10d,[r15*1+r10]
    5327         mov     r12d,edx
    5328         add     r9d,DWORD[((8+16))+rbp]
    5329         and     r12d,ecx
    5330         rorx    r13d,ecx,25
    5331         rorx    r15d,ecx,11
    5332         lea     r10d,[r14*1+r10]
    5333         lea     r9d,[r12*1+r9]
    5334         andn    r12d,ecx,r8d
    5335         xor     r13d,r15d
    5336         rorx    r14d,ecx,6
    5337         lea     r9d,[r12*1+r9]
    5338         xor     r13d,r14d
    5339         mov     r15d,r10d
    5340         rorx    r12d,r10d,22
    5341         lea     r9d,[r13*1+r9]
    5342         xor     r15d,r11d
    5343         rorx    r14d,r10d,13
    5344         rorx    r13d,r10d,2
    5345         lea     ebx,[r9*1+rbx]
    5346         and     edi,r15d
    5347         xor     r14d,r12d
    5348         xor     edi,r11d
    5349         xor     r14d,r13d
    5350         lea     r9d,[rdi*1+r9]
    5351         mov     r12d,ecx
    5352         add     r8d,DWORD[((12+16))+rbp]
    5353         and     r12d,ebx
    5354         rorx    r13d,ebx,25
    5355         rorx    edi,ebx,11
    5356         lea     r9d,[r14*1+r9]
    5357         lea     r8d,[r12*1+r8]
    5358         andn    r12d,ebx,edx
    5359         xor     r13d,edi
    5360         rorx    r14d,ebx,6
    5361         lea     r8d,[r12*1+r8]
    5362         xor     r13d,r14d
    5363         mov     edi,r9d
    5364         rorx    r12d,r9d,22
    5365         lea     r8d,[r13*1+r8]
    5366         xor     edi,r10d
    5367         rorx    r14d,r9d,13
    5368         rorx    r13d,r9d,2
    5369         lea     eax,[r8*1+rax]
    5370         and     r15d,edi
    5371         xor     r14d,r12d
    5372         xor     r15d,r10d
    5373         xor     r14d,r13d
    5374         lea     r8d,[r15*1+r8]
    5375         mov     r12d,ebx
    5376         add     edx,DWORD[((32+16))+rbp]
    5377         and     r12d,eax
    5378         rorx    r13d,eax,25
    5379         rorx    r15d,eax,11
    5380         lea     r8d,[r14*1+r8]
    5381         lea     edx,[r12*1+rdx]
    5382         andn    r12d,eax,ecx
    5383         xor     r13d,r15d
    5384         rorx    r14d,eax,6
    5385         lea     edx,[r12*1+rdx]
    5386         xor     r13d,r14d
    5387         mov     r15d,r8d
    5388         rorx    r12d,r8d,22
    5389         lea     edx,[r13*1+rdx]
    5390         xor     r15d,r9d
    5391         rorx    r14d,r8d,13
    5392         rorx    r13d,r8d,2
    5393         lea     r11d,[rdx*1+r11]
    5394         and     edi,r15d
    5395         xor     r14d,r12d
    5396         xor     edi,r9d
    5397         xor     r14d,r13d
    5398         lea     edx,[rdi*1+rdx]
    5399         mov     r12d,eax
    5400         add     ecx,DWORD[((36+16))+rbp]
    5401         and     r12d,r11d
    5402         rorx    r13d,r11d,25
    5403         rorx    edi,r11d,11
    5404         lea     edx,[r14*1+rdx]
    5405         lea     ecx,[r12*1+rcx]
    5406         andn    r12d,r11d,ebx
    5407         xor     r13d,edi
    5408         rorx    r14d,r11d,6
    5409         lea     ecx,[r12*1+rcx]
    5410         xor     r13d,r14d
    5411         mov     edi,edx
    5412         rorx    r12d,edx,22
    5413         lea     ecx,[r13*1+rcx]
    5414         xor     edi,r8d
    5415         rorx    r14d,edx,13
    5416         rorx    r13d,edx,2
    5417         lea     r10d,[rcx*1+r10]
    5418         and     r15d,edi
    5419         xor     r14d,r12d
    5420         xor     r15d,r8d
    5421         xor     r14d,r13d
    5422         lea     ecx,[r15*1+rcx]
    5423         mov     r12d,r11d
    5424         add     ebx,DWORD[((40+16))+rbp]
    5425         and     r12d,r10d
    5426         rorx    r13d,r10d,25
    5427         rorx    r15d,r10d,11
    5428         lea     ecx,[r14*1+rcx]
    5429         lea     ebx,[r12*1+rbx]
    5430         andn    r12d,r10d,eax
    5431         xor     r13d,r15d
    5432         rorx    r14d,r10d,6
    5433         lea     ebx,[r12*1+rbx]
    5434         xor     r13d,r14d
    5435         mov     r15d,ecx
    5436         rorx    r12d,ecx,22
    5437         lea     ebx,[r13*1+rbx]
    5438         xor     r15d,edx
    5439         rorx    r14d,ecx,13
    5440         rorx    r13d,ecx,2
    5441         lea     r9d,[rbx*1+r9]
    5442         and     edi,r15d
    5443         xor     r14d,r12d
    5444         xor     edi,edx
    5445         xor     r14d,r13d
    5446         lea     ebx,[rdi*1+rbx]
    5447         mov     r12d,r10d
    5448         add     eax,DWORD[((44+16))+rbp]
    5449         and     r12d,r9d
    5450         rorx    r13d,r9d,25
    5451         rorx    edi,r9d,11
    5452         lea     ebx,[r14*1+rbx]
    5453         lea     eax,[r12*1+rax]
    5454         andn    r12d,r9d,r11d
    5455         xor     r13d,edi
    5456         rorx    r14d,r9d,6
    5457         lea     eax,[r12*1+rax]
    5458         xor     r13d,r14d
    5459         mov     edi,ebx
    5460         rorx    r12d,ebx,22
    5461         lea     eax,[r13*1+rax]
    5462         xor     edi,ecx
    5463         rorx    r14d,ebx,13
    5464         rorx    r13d,ebx,2
    5465         lea     r8d,[rax*1+r8]
    5466         and     r15d,edi
    5467         xor     r14d,r12d
    5468         xor     r15d,ecx
    5469         xor     r14d,r13d
    5470         lea     eax,[r15*1+rax]
    5471         mov     r12d,r9d
    5472         lea     rbp,[((-64))+rbp]
    5473         cmp     rbp,rsp
    5474         jae     NEAR $L$ower_avx2
    5475 
    5476         mov     rdi,QWORD[512+rsp]
    5477         add     eax,r14d
    5478 
    5479         lea     rsp,[448+rsp]
    5480 
    5481 
    5482 
    5483         add     eax,DWORD[rdi]
    5484         add     ebx,DWORD[4+rdi]
    5485         add     ecx,DWORD[8+rdi]
    5486         add     edx,DWORD[12+rdi]
    5487         add     r8d,DWORD[16+rdi]
    5488         add     r9d,DWORD[20+rdi]
    5489         lea     rsi,[128+rsi]
    5490         add     r10d,DWORD[24+rdi]
    5491         mov     r12,rsi
    5492         add     r11d,DWORD[28+rdi]
    5493         cmp     rsi,QWORD[((64+16))+rsp]
    5494 
    5495         mov     DWORD[rdi],eax
    5496         cmove   r12,rsp
    5497         mov     DWORD[4+rdi],ebx
    5498         mov     DWORD[8+rdi],ecx
    5499         mov     DWORD[12+rdi],edx
    5500         mov     DWORD[16+rdi],r8d
    5501         mov     DWORD[20+rdi],r9d
    5502         mov     DWORD[24+rdi],r10d
    5503         mov     DWORD[28+rdi],r11d
    5504 
    5505         jbe     NEAR $L$oop_avx2
    5506         lea     rbp,[rsp]
    5507 
    5508 
    5509 
    5510 
    5511 $L$done_avx2:
    5512         mov     rsi,QWORD[88+rbp]
    5513 
    5514         vzeroupper
    5515         movaps  xmm6,XMMWORD[((64+32))+rbp]
    5516         movaps  xmm7,XMMWORD[((64+48))+rbp]
    5517         movaps  xmm8,XMMWORD[((64+64))+rbp]
    5518         movaps  xmm9,XMMWORD[((64+80))+rbp]
    5519         mov     r15,QWORD[((-48))+rsi]
    5520 
    5521         mov     r14,QWORD[((-40))+rsi]
    5522 
    5523         mov     r13,QWORD[((-32))+rsi]
    5524 
    5525         mov     r12,QWORD[((-24))+rsi]
    5526 
    5527         mov     rbp,QWORD[((-16))+rsi]
    5528 
    5529         mov     rbx,QWORD[((-8))+rsi]
    5530 
    5531         lea     rsp,[rsi]
    5532 
    5533 $L$epilogue_avx2:
    5534         mov     rdi,QWORD[8+rsp]        ;WIN64 epilogue
    5535         mov     rsi,QWORD[16+rsp]
    5536         DB      0F3h,0C3h               ;repret
    5537 
    5538 $L$SEH_end_sha256_block_data_order_avx2:
    55393152EXTERN  __imp_RtlVirtualUnwind
    55403153
     
    55693182        cmp     rbx,r10
    55703183        jae     NEAR $L$in_prologue
    5571         lea     r10,[$L$avx2_shortcut]
    5572         cmp     rbx,r10
    5573         jb      NEAR $L$not_in_avx2
    5574 
    5575         and     rax,-256*4
    5576         add     rax,448
    5577 $L$not_in_avx2:
    55783184        mov     rsi,rax
    55793185        mov     rax,QWORD[((64+24))+rax]
     
    56833289        DD      $L$SEH_end_sha256_block_data_order_ssse3 wrt ..imagebase
    56843290        DD      $L$SEH_info_sha256_block_data_order_ssse3 wrt ..imagebase
    5685         DD      $L$SEH_begin_sha256_block_data_order_avx wrt ..imagebase
    5686         DD      $L$SEH_end_sha256_block_data_order_avx wrt ..imagebase
    5687         DD      $L$SEH_info_sha256_block_data_order_avx wrt ..imagebase
    5688         DD      $L$SEH_begin_sha256_block_data_order_avx2 wrt ..imagebase
    5689         DD      $L$SEH_end_sha256_block_data_order_avx2 wrt ..imagebase
    5690         DD      $L$SEH_info_sha256_block_data_order_avx2 wrt ..imagebase
    56913291section .xdata rdata align=8
    56923292ALIGN   8
     
    57023302        DD      se_handler wrt ..imagebase
    57033303        DD      $L$prologue_ssse3 wrt ..imagebase,$L$epilogue_ssse3 wrt ..imagebase
    5704 $L$SEH_info_sha256_block_data_order_avx:
    5705 DB      9,0,0,0
    5706         DD      se_handler wrt ..imagebase
    5707         DD      $L$prologue_avx wrt ..imagebase,$L$epilogue_avx wrt ..imagebase
    5708 $L$SEH_info_sha256_block_data_order_avx2:
    5709 DB      9,0,0,0
    5710         DD      se_handler wrt ..imagebase
    5711         DD      $L$prologue_avx2 wrt ..imagebase,$L$epilogue_avx2 wrt ..imagebase
Note: See TracChangeset for help on using the changeset viewer.

© 2024 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette