VirtualBox

Ignore:
Timestamp:
Apr 11, 2023 10:16:56 AM (20 months ago)
Author:
vboxsync
Message:

openssl-3.1.0: After generating headers and asm (kmk recreate-headers recreate-headers)

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/libs/openssl-3.1.0/crypto/genasm-nasm/rsaz-avx2.S

    r97373 r99371  
    66
    77
     8global  rsaz_1024_sqr_avx2
     9
     10ALIGN   64
     11rsaz_1024_sqr_avx2:
     12        mov     QWORD[8+rsp],rdi        ;WIN64 prologue
     13        mov     QWORD[16+rsp],rsi
     14        mov     rax,rsp
     15$L$SEH_begin_rsaz_1024_sqr_avx2:
     16        mov     rdi,rcx
     17        mov     rsi,rdx
     18        mov     rdx,r8
     19        mov     rcx,r9
     20        mov     r8,QWORD[40+rsp]
     21
     22
     23
     24        lea     rax,[rsp]
     25
     26        push    rbx
     27
     28        push    rbp
     29
     30        push    r12
     31
     32        push    r13
     33
     34        push    r14
     35
     36        push    r15
     37
     38        vzeroupper
     39        lea     rsp,[((-168))+rsp]
     40        vmovaps XMMWORD[(-216)+rax],xmm6
     41        vmovaps XMMWORD[(-200)+rax],xmm7
     42        vmovaps XMMWORD[(-184)+rax],xmm8
     43        vmovaps XMMWORD[(-168)+rax],xmm9
     44        vmovaps XMMWORD[(-152)+rax],xmm10
     45        vmovaps XMMWORD[(-136)+rax],xmm11
     46        vmovaps XMMWORD[(-120)+rax],xmm12
     47        vmovaps XMMWORD[(-104)+rax],xmm13
     48        vmovaps XMMWORD[(-88)+rax],xmm14
     49        vmovaps XMMWORD[(-72)+rax],xmm15
     50$L$sqr_1024_body:
     51        mov     rbp,rax
     52
     53        mov     r13,rdx
     54        sub     rsp,832
     55        mov     r15,r13
     56        sub     rdi,-128
     57        sub     rsi,-128
     58        sub     r13,-128
     59
     60        and     r15,4095
     61        add     r15,32*10
     62        shr     r15,12
     63        vpxor   ymm9,ymm9,ymm9
     64        jz      NEAR $L$sqr_1024_no_n_copy
     65
     66
     67
     68
     69
     70        sub     rsp,32*10
     71        vmovdqu ymm0,YMMWORD[((0-128))+r13]
     72        and     rsp,-2048
     73        vmovdqu ymm1,YMMWORD[((32-128))+r13]
     74        vmovdqu ymm2,YMMWORD[((64-128))+r13]
     75        vmovdqu ymm3,YMMWORD[((96-128))+r13]
     76        vmovdqu ymm4,YMMWORD[((128-128))+r13]
     77        vmovdqu ymm5,YMMWORD[((160-128))+r13]
     78        vmovdqu ymm6,YMMWORD[((192-128))+r13]
     79        vmovdqu ymm7,YMMWORD[((224-128))+r13]
     80        vmovdqu ymm8,YMMWORD[((256-128))+r13]
     81        lea     r13,[((832+128))+rsp]
     82        vmovdqu YMMWORD[(0-128)+r13],ymm0
     83        vmovdqu YMMWORD[(32-128)+r13],ymm1
     84        vmovdqu YMMWORD[(64-128)+r13],ymm2
     85        vmovdqu YMMWORD[(96-128)+r13],ymm3
     86        vmovdqu YMMWORD[(128-128)+r13],ymm4
     87        vmovdqu YMMWORD[(160-128)+r13],ymm5
     88        vmovdqu YMMWORD[(192-128)+r13],ymm6
     89        vmovdqu YMMWORD[(224-128)+r13],ymm7
     90        vmovdqu YMMWORD[(256-128)+r13],ymm8
     91        vmovdqu YMMWORD[(288-128)+r13],ymm9
     92
     93$L$sqr_1024_no_n_copy:
     94        and     rsp,-1024
     95
     96        vmovdqu ymm1,YMMWORD[((32-128))+rsi]
     97        vmovdqu ymm2,YMMWORD[((64-128))+rsi]
     98        vmovdqu ymm3,YMMWORD[((96-128))+rsi]
     99        vmovdqu ymm4,YMMWORD[((128-128))+rsi]
     100        vmovdqu ymm5,YMMWORD[((160-128))+rsi]
     101        vmovdqu ymm6,YMMWORD[((192-128))+rsi]
     102        vmovdqu ymm7,YMMWORD[((224-128))+rsi]
     103        vmovdqu ymm8,YMMWORD[((256-128))+rsi]
     104
     105        lea     rbx,[192+rsp]
     106        vmovdqu ymm15,YMMWORD[$L$and_mask]
     107        jmp     NEAR $L$OOP_GRANDE_SQR_1024
     108
     109ALIGN   32
     110$L$OOP_GRANDE_SQR_1024:
     111        lea     r9,[((576+128))+rsp]
     112        lea     r12,[448+rsp]
     113
     114
     115
     116
     117        vpaddq  ymm1,ymm1,ymm1
     118        vpbroadcastq    ymm10,QWORD[((0-128))+rsi]
     119        vpaddq  ymm2,ymm2,ymm2
     120        vmovdqa YMMWORD[(0-128)+r9],ymm1
     121        vpaddq  ymm3,ymm3,ymm3
     122        vmovdqa YMMWORD[(32-128)+r9],ymm2
     123        vpaddq  ymm4,ymm4,ymm4
     124        vmovdqa YMMWORD[(64-128)+r9],ymm3
     125        vpaddq  ymm5,ymm5,ymm5
     126        vmovdqa YMMWORD[(96-128)+r9],ymm4
     127        vpaddq  ymm6,ymm6,ymm6
     128        vmovdqa YMMWORD[(128-128)+r9],ymm5
     129        vpaddq  ymm7,ymm7,ymm7
     130        vmovdqa YMMWORD[(160-128)+r9],ymm6
     131        vpaddq  ymm8,ymm8,ymm8
     132        vmovdqa YMMWORD[(192-128)+r9],ymm7
     133        vpxor   ymm9,ymm9,ymm9
     134        vmovdqa YMMWORD[(224-128)+r9],ymm8
     135
     136        vpmuludq        ymm0,ymm10,YMMWORD[((0-128))+rsi]
     137        vpbroadcastq    ymm11,QWORD[((32-128))+rsi]
     138        vmovdqu YMMWORD[(288-192)+rbx],ymm9
     139        vpmuludq        ymm1,ymm1,ymm10
     140        vmovdqu YMMWORD[(320-448)+r12],ymm9
     141        vpmuludq        ymm2,ymm2,ymm10
     142        vmovdqu YMMWORD[(352-448)+r12],ymm9
     143        vpmuludq        ymm3,ymm3,ymm10
     144        vmovdqu YMMWORD[(384-448)+r12],ymm9
     145        vpmuludq        ymm4,ymm4,ymm10
     146        vmovdqu YMMWORD[(416-448)+r12],ymm9
     147        vpmuludq        ymm5,ymm5,ymm10
     148        vmovdqu YMMWORD[(448-448)+r12],ymm9
     149        vpmuludq        ymm6,ymm6,ymm10
     150        vmovdqu YMMWORD[(480-448)+r12],ymm9
     151        vpmuludq        ymm7,ymm7,ymm10
     152        vmovdqu YMMWORD[(512-448)+r12],ymm9
     153        vpmuludq        ymm8,ymm8,ymm10
     154        vpbroadcastq    ymm10,QWORD[((64-128))+rsi]
     155        vmovdqu YMMWORD[(544-448)+r12],ymm9
     156
     157        mov     r15,rsi
     158        mov     r14d,4
     159        jmp     NEAR $L$sqr_entry_1024
     160ALIGN   32
     161$L$OOP_SQR_1024:
     162        vpbroadcastq    ymm11,QWORD[((32-128))+r15]
     163        vpmuludq        ymm0,ymm10,YMMWORD[((0-128))+rsi]
     164        vpaddq  ymm0,ymm0,YMMWORD[((0-192))+rbx]
     165        vpmuludq        ymm1,ymm10,YMMWORD[((0-128))+r9]
     166        vpaddq  ymm1,ymm1,YMMWORD[((32-192))+rbx]
     167        vpmuludq        ymm2,ymm10,YMMWORD[((32-128))+r9]
     168        vpaddq  ymm2,ymm2,YMMWORD[((64-192))+rbx]
     169        vpmuludq        ymm3,ymm10,YMMWORD[((64-128))+r9]
     170        vpaddq  ymm3,ymm3,YMMWORD[((96-192))+rbx]
     171        vpmuludq        ymm4,ymm10,YMMWORD[((96-128))+r9]
     172        vpaddq  ymm4,ymm4,YMMWORD[((128-192))+rbx]
     173        vpmuludq        ymm5,ymm10,YMMWORD[((128-128))+r9]
     174        vpaddq  ymm5,ymm5,YMMWORD[((160-192))+rbx]
     175        vpmuludq        ymm6,ymm10,YMMWORD[((160-128))+r9]
     176        vpaddq  ymm6,ymm6,YMMWORD[((192-192))+rbx]
     177        vpmuludq        ymm7,ymm10,YMMWORD[((192-128))+r9]
     178        vpaddq  ymm7,ymm7,YMMWORD[((224-192))+rbx]
     179        vpmuludq        ymm8,ymm10,YMMWORD[((224-128))+r9]
     180        vpbroadcastq    ymm10,QWORD[((64-128))+r15]
     181        vpaddq  ymm8,ymm8,YMMWORD[((256-192))+rbx]
     182$L$sqr_entry_1024:
     183        vmovdqu YMMWORD[(0-192)+rbx],ymm0
     184        vmovdqu YMMWORD[(32-192)+rbx],ymm1
     185
     186        vpmuludq        ymm12,ymm11,YMMWORD[((32-128))+rsi]
     187        vpaddq  ymm2,ymm2,ymm12
     188        vpmuludq        ymm14,ymm11,YMMWORD[((32-128))+r9]
     189        vpaddq  ymm3,ymm3,ymm14
     190        vpmuludq        ymm13,ymm11,YMMWORD[((64-128))+r9]
     191        vpaddq  ymm4,ymm4,ymm13
     192        vpmuludq        ymm12,ymm11,YMMWORD[((96-128))+r9]
     193        vpaddq  ymm5,ymm5,ymm12
     194        vpmuludq        ymm14,ymm11,YMMWORD[((128-128))+r9]
     195        vpaddq  ymm6,ymm6,ymm14
     196        vpmuludq        ymm13,ymm11,YMMWORD[((160-128))+r9]
     197        vpaddq  ymm7,ymm7,ymm13
     198        vpmuludq        ymm12,ymm11,YMMWORD[((192-128))+r9]
     199        vpaddq  ymm8,ymm8,ymm12
     200        vpmuludq        ymm0,ymm11,YMMWORD[((224-128))+r9]
     201        vpbroadcastq    ymm11,QWORD[((96-128))+r15]
     202        vpaddq  ymm0,ymm0,YMMWORD[((288-192))+rbx]
     203
     204        vmovdqu YMMWORD[(64-192)+rbx],ymm2
     205        vmovdqu YMMWORD[(96-192)+rbx],ymm3
     206
     207        vpmuludq        ymm13,ymm10,YMMWORD[((64-128))+rsi]
     208        vpaddq  ymm4,ymm4,ymm13
     209        vpmuludq        ymm12,ymm10,YMMWORD[((64-128))+r9]
     210        vpaddq  ymm5,ymm5,ymm12
     211        vpmuludq        ymm14,ymm10,YMMWORD[((96-128))+r9]
     212        vpaddq  ymm6,ymm6,ymm14
     213        vpmuludq        ymm13,ymm10,YMMWORD[((128-128))+r9]
     214        vpaddq  ymm7,ymm7,ymm13
     215        vpmuludq        ymm12,ymm10,YMMWORD[((160-128))+r9]
     216        vpaddq  ymm8,ymm8,ymm12
     217        vpmuludq        ymm14,ymm10,YMMWORD[((192-128))+r9]
     218        vpaddq  ymm0,ymm0,ymm14
     219        vpmuludq        ymm1,ymm10,YMMWORD[((224-128))+r9]
     220        vpbroadcastq    ymm10,QWORD[((128-128))+r15]
     221        vpaddq  ymm1,ymm1,YMMWORD[((320-448))+r12]
     222
     223        vmovdqu YMMWORD[(128-192)+rbx],ymm4
     224        vmovdqu YMMWORD[(160-192)+rbx],ymm5
     225
     226        vpmuludq        ymm12,ymm11,YMMWORD[((96-128))+rsi]
     227        vpaddq  ymm6,ymm6,ymm12
     228        vpmuludq        ymm14,ymm11,YMMWORD[((96-128))+r9]
     229        vpaddq  ymm7,ymm7,ymm14
     230        vpmuludq        ymm13,ymm11,YMMWORD[((128-128))+r9]
     231        vpaddq  ymm8,ymm8,ymm13
     232        vpmuludq        ymm12,ymm11,YMMWORD[((160-128))+r9]
     233        vpaddq  ymm0,ymm0,ymm12
     234        vpmuludq        ymm14,ymm11,YMMWORD[((192-128))+r9]
     235        vpaddq  ymm1,ymm1,ymm14
     236        vpmuludq        ymm2,ymm11,YMMWORD[((224-128))+r9]
     237        vpbroadcastq    ymm11,QWORD[((160-128))+r15]
     238        vpaddq  ymm2,ymm2,YMMWORD[((352-448))+r12]
     239
     240        vmovdqu YMMWORD[(192-192)+rbx],ymm6
     241        vmovdqu YMMWORD[(224-192)+rbx],ymm7
     242
     243        vpmuludq        ymm12,ymm10,YMMWORD[((128-128))+rsi]
     244        vpaddq  ymm8,ymm8,ymm12
     245        vpmuludq        ymm14,ymm10,YMMWORD[((128-128))+r9]
     246        vpaddq  ymm0,ymm0,ymm14
     247        vpmuludq        ymm13,ymm10,YMMWORD[((160-128))+r9]
     248        vpaddq  ymm1,ymm1,ymm13
     249        vpmuludq        ymm12,ymm10,YMMWORD[((192-128))+r9]
     250        vpaddq  ymm2,ymm2,ymm12
     251        vpmuludq        ymm3,ymm10,YMMWORD[((224-128))+r9]
     252        vpbroadcastq    ymm10,QWORD[((192-128))+r15]
     253        vpaddq  ymm3,ymm3,YMMWORD[((384-448))+r12]
     254
     255        vmovdqu YMMWORD[(256-192)+rbx],ymm8
     256        vmovdqu YMMWORD[(288-192)+rbx],ymm0
     257        lea     rbx,[8+rbx]
     258
     259        vpmuludq        ymm13,ymm11,YMMWORD[((160-128))+rsi]
     260        vpaddq  ymm1,ymm1,ymm13
     261        vpmuludq        ymm12,ymm11,YMMWORD[((160-128))+r9]
     262        vpaddq  ymm2,ymm2,ymm12
     263        vpmuludq        ymm14,ymm11,YMMWORD[((192-128))+r9]
     264        vpaddq  ymm3,ymm3,ymm14
     265        vpmuludq        ymm4,ymm11,YMMWORD[((224-128))+r9]
     266        vpbroadcastq    ymm11,QWORD[((224-128))+r15]
     267        vpaddq  ymm4,ymm4,YMMWORD[((416-448))+r12]
     268
     269        vmovdqu YMMWORD[(320-448)+r12],ymm1
     270        vmovdqu YMMWORD[(352-448)+r12],ymm2
     271
     272        vpmuludq        ymm12,ymm10,YMMWORD[((192-128))+rsi]
     273        vpaddq  ymm3,ymm3,ymm12
     274        vpmuludq        ymm14,ymm10,YMMWORD[((192-128))+r9]
     275        vpbroadcastq    ymm0,QWORD[((256-128))+r15]
     276        vpaddq  ymm4,ymm4,ymm14
     277        vpmuludq        ymm5,ymm10,YMMWORD[((224-128))+r9]
     278        vpbroadcastq    ymm10,QWORD[((0+8-128))+r15]
     279        vpaddq  ymm5,ymm5,YMMWORD[((448-448))+r12]
     280
     281        vmovdqu YMMWORD[(384-448)+r12],ymm3
     282        vmovdqu YMMWORD[(416-448)+r12],ymm4
     283        lea     r15,[8+r15]
     284
     285        vpmuludq        ymm12,ymm11,YMMWORD[((224-128))+rsi]
     286        vpaddq  ymm5,ymm5,ymm12
     287        vpmuludq        ymm6,ymm11,YMMWORD[((224-128))+r9]
     288        vpaddq  ymm6,ymm6,YMMWORD[((480-448))+r12]
     289
     290        vpmuludq        ymm7,ymm0,YMMWORD[((256-128))+rsi]
     291        vmovdqu YMMWORD[(448-448)+r12],ymm5
     292        vpaddq  ymm7,ymm7,YMMWORD[((512-448))+r12]
     293        vmovdqu YMMWORD[(480-448)+r12],ymm6
     294        vmovdqu YMMWORD[(512-448)+r12],ymm7
     295        lea     r12,[8+r12]
     296
     297        dec     r14d
     298        jnz     NEAR $L$OOP_SQR_1024
     299
     300        vmovdqu ymm8,YMMWORD[256+rsp]
     301        vmovdqu ymm1,YMMWORD[288+rsp]
     302        vmovdqu ymm2,YMMWORD[320+rsp]
     303        lea     rbx,[192+rsp]
     304
     305        vpsrlq  ymm14,ymm8,29
     306        vpand   ymm8,ymm8,ymm15
     307        vpsrlq  ymm11,ymm1,29
     308        vpand   ymm1,ymm1,ymm15
     309
     310        vpermq  ymm14,ymm14,0x93
     311        vpxor   ymm9,ymm9,ymm9
     312        vpermq  ymm11,ymm11,0x93
     313
     314        vpblendd        ymm10,ymm14,ymm9,3
     315        vpblendd        ymm14,ymm11,ymm14,3
     316        vpaddq  ymm8,ymm8,ymm10
     317        vpblendd        ymm11,ymm9,ymm11,3
     318        vpaddq  ymm1,ymm1,ymm14
     319        vpaddq  ymm2,ymm2,ymm11
     320        vmovdqu YMMWORD[(288-192)+rbx],ymm1
     321        vmovdqu YMMWORD[(320-192)+rbx],ymm2
     322
     323        mov     rax,QWORD[rsp]
     324        mov     r10,QWORD[8+rsp]
     325        mov     r11,QWORD[16+rsp]
     326        mov     r12,QWORD[24+rsp]
     327        vmovdqu ymm1,YMMWORD[32+rsp]
     328        vmovdqu ymm2,YMMWORD[((64-192))+rbx]
     329        vmovdqu ymm3,YMMWORD[((96-192))+rbx]
     330        vmovdqu ymm4,YMMWORD[((128-192))+rbx]
     331        vmovdqu ymm5,YMMWORD[((160-192))+rbx]
     332        vmovdqu ymm6,YMMWORD[((192-192))+rbx]
     333        vmovdqu ymm7,YMMWORD[((224-192))+rbx]
     334
     335        mov     r9,rax
     336        imul    eax,ecx
     337        and     eax,0x1fffffff
     338        vmovd   xmm12,eax
     339
     340        mov     rdx,rax
     341        imul    rax,QWORD[((-128))+r13]
     342        vpbroadcastq    ymm12,xmm12
     343        add     r9,rax
     344        mov     rax,rdx
     345        imul    rax,QWORD[((8-128))+r13]
     346        shr     r9,29
     347        add     r10,rax
     348        mov     rax,rdx
     349        imul    rax,QWORD[((16-128))+r13]
     350        add     r10,r9
     351        add     r11,rax
     352        imul    rdx,QWORD[((24-128))+r13]
     353        add     r12,rdx
     354
     355        mov     rax,r10
     356        imul    eax,ecx
     357        and     eax,0x1fffffff
     358
     359        mov     r14d,9
     360        jmp     NEAR $L$OOP_REDUCE_1024
     361
     362ALIGN   32
     363$L$OOP_REDUCE_1024:
     364        vmovd   xmm13,eax
     365        vpbroadcastq    ymm13,xmm13
     366
     367        vpmuludq        ymm10,ymm12,YMMWORD[((32-128))+r13]
     368        mov     rdx,rax
     369        imul    rax,QWORD[((-128))+r13]
     370        vpaddq  ymm1,ymm1,ymm10
     371        add     r10,rax
     372        vpmuludq        ymm14,ymm12,YMMWORD[((64-128))+r13]
     373        mov     rax,rdx
     374        imul    rax,QWORD[((8-128))+r13]
     375        vpaddq  ymm2,ymm2,ymm14
     376        vpmuludq        ymm11,ymm12,YMMWORD[((96-128))+r13]
     377DB      0x67
     378        add     r11,rax
     379DB      0x67
     380        mov     rax,rdx
     381        imul    rax,QWORD[((16-128))+r13]
     382        shr     r10,29
     383        vpaddq  ymm3,ymm3,ymm11
     384        vpmuludq        ymm10,ymm12,YMMWORD[((128-128))+r13]
     385        add     r12,rax
     386        add     r11,r10
     387        vpaddq  ymm4,ymm4,ymm10
     388        vpmuludq        ymm14,ymm12,YMMWORD[((160-128))+r13]
     389        mov     rax,r11
     390        imul    eax,ecx
     391        vpaddq  ymm5,ymm5,ymm14
     392        vpmuludq        ymm11,ymm12,YMMWORD[((192-128))+r13]
     393        and     eax,0x1fffffff
     394        vpaddq  ymm6,ymm6,ymm11
     395        vpmuludq        ymm10,ymm12,YMMWORD[((224-128))+r13]
     396        vpaddq  ymm7,ymm7,ymm10
     397        vpmuludq        ymm14,ymm12,YMMWORD[((256-128))+r13]
     398        vmovd   xmm12,eax
     399
     400        vpaddq  ymm8,ymm8,ymm14
     401
     402        vpbroadcastq    ymm12,xmm12
     403
     404        vpmuludq        ymm11,ymm13,YMMWORD[((32-8-128))+r13]
     405        vmovdqu ymm14,YMMWORD[((96-8-128))+r13]
     406        mov     rdx,rax
     407        imul    rax,QWORD[((-128))+r13]
     408        vpaddq  ymm1,ymm1,ymm11
     409        vpmuludq        ymm10,ymm13,YMMWORD[((64-8-128))+r13]
     410        vmovdqu ymm11,YMMWORD[((128-8-128))+r13]
     411        add     r11,rax
     412        mov     rax,rdx
     413        imul    rax,QWORD[((8-128))+r13]
     414        vpaddq  ymm2,ymm2,ymm10
     415        add     rax,r12
     416        shr     r11,29
     417        vpmuludq        ymm14,ymm14,ymm13
     418        vmovdqu ymm10,YMMWORD[((160-8-128))+r13]
     419        add     rax,r11
     420        vpaddq  ymm3,ymm3,ymm14
     421        vpmuludq        ymm11,ymm11,ymm13
     422        vmovdqu ymm14,YMMWORD[((192-8-128))+r13]
     423DB      0x67
     424        mov     r12,rax
     425        imul    eax,ecx
     426        vpaddq  ymm4,ymm4,ymm11
     427        vpmuludq        ymm10,ymm10,ymm13
     428DB      0xc4,0x41,0x7e,0x6f,0x9d,0x58,0x00,0x00,0x00
     429        and     eax,0x1fffffff
     430        vpaddq  ymm5,ymm5,ymm10
     431        vpmuludq        ymm14,ymm14,ymm13
     432        vmovdqu ymm10,YMMWORD[((256-8-128))+r13]
     433        vpaddq  ymm6,ymm6,ymm14
     434        vpmuludq        ymm11,ymm11,ymm13
     435        vmovdqu ymm9,YMMWORD[((288-8-128))+r13]
     436        vmovd   xmm0,eax
     437        imul    rax,QWORD[((-128))+r13]
     438        vpaddq  ymm7,ymm7,ymm11
     439        vpmuludq        ymm10,ymm10,ymm13
     440        vmovdqu ymm14,YMMWORD[((32-16-128))+r13]
     441        vpbroadcastq    ymm0,xmm0
     442        vpaddq  ymm8,ymm8,ymm10
     443        vpmuludq        ymm9,ymm9,ymm13
     444        vmovdqu ymm11,YMMWORD[((64-16-128))+r13]
     445        add     r12,rax
     446
     447        vmovdqu ymm13,YMMWORD[((32-24-128))+r13]
     448        vpmuludq        ymm14,ymm14,ymm12
     449        vmovdqu ymm10,YMMWORD[((96-16-128))+r13]
     450        vpaddq  ymm1,ymm1,ymm14
     451        vpmuludq        ymm13,ymm13,ymm0
     452        vpmuludq        ymm11,ymm11,ymm12
     453DB      0xc4,0x41,0x7e,0x6f,0xb5,0xf0,0xff,0xff,0xff
     454        vpaddq  ymm13,ymm13,ymm1
     455        vpaddq  ymm2,ymm2,ymm11
     456        vpmuludq        ymm10,ymm10,ymm12
     457        vmovdqu ymm11,YMMWORD[((160-16-128))+r13]
     458DB      0x67
     459        vmovq   rax,xmm13
     460        vmovdqu YMMWORD[rsp],ymm13
     461        vpaddq  ymm3,ymm3,ymm10
     462        vpmuludq        ymm14,ymm14,ymm12
     463        vmovdqu ymm10,YMMWORD[((192-16-128))+r13]
     464        vpaddq  ymm4,ymm4,ymm14
     465        vpmuludq        ymm11,ymm11,ymm12
     466        vmovdqu ymm14,YMMWORD[((224-16-128))+r13]
     467        vpaddq  ymm5,ymm5,ymm11
     468        vpmuludq        ymm10,ymm10,ymm12
     469        vmovdqu ymm11,YMMWORD[((256-16-128))+r13]
     470        vpaddq  ymm6,ymm6,ymm10
     471        vpmuludq        ymm14,ymm14,ymm12
     472        shr     r12,29
     473        vmovdqu ymm10,YMMWORD[((288-16-128))+r13]
     474        add     rax,r12
     475        vpaddq  ymm7,ymm7,ymm14
     476        vpmuludq        ymm11,ymm11,ymm12
     477
     478        mov     r9,rax
     479        imul    eax,ecx
     480        vpaddq  ymm8,ymm8,ymm11
     481        vpmuludq        ymm10,ymm10,ymm12
     482        and     eax,0x1fffffff
     483        vmovd   xmm12,eax
     484        vmovdqu ymm11,YMMWORD[((96-24-128))+r13]
     485DB      0x67
     486        vpaddq  ymm9,ymm9,ymm10
     487        vpbroadcastq    ymm12,xmm12
     488
     489        vpmuludq        ymm14,ymm0,YMMWORD[((64-24-128))+r13]
     490        vmovdqu ymm10,YMMWORD[((128-24-128))+r13]
     491        mov     rdx,rax
     492        imul    rax,QWORD[((-128))+r13]
     493        mov     r10,QWORD[8+rsp]
     494        vpaddq  ymm1,ymm2,ymm14
     495        vpmuludq        ymm11,ymm11,ymm0
     496        vmovdqu ymm14,YMMWORD[((160-24-128))+r13]
     497        add     r9,rax
     498        mov     rax,rdx
     499        imul    rax,QWORD[((8-128))+r13]
     500DB      0x67
     501        shr     r9,29
     502        mov     r11,QWORD[16+rsp]
     503        vpaddq  ymm2,ymm3,ymm11
     504        vpmuludq        ymm10,ymm10,ymm0
     505        vmovdqu ymm11,YMMWORD[((192-24-128))+r13]
     506        add     r10,rax
     507        mov     rax,rdx
     508        imul    rax,QWORD[((16-128))+r13]
     509        vpaddq  ymm3,ymm4,ymm10
     510        vpmuludq        ymm14,ymm14,ymm0
     511        vmovdqu ymm10,YMMWORD[((224-24-128))+r13]
     512        imul    rdx,QWORD[((24-128))+r13]
     513        add     r11,rax
     514        lea     rax,[r10*1+r9]
     515        vpaddq  ymm4,ymm5,ymm14
     516        vpmuludq        ymm11,ymm11,ymm0
     517        vmovdqu ymm14,YMMWORD[((256-24-128))+r13]
     518        mov     r10,rax
     519        imul    eax,ecx
     520        vpmuludq        ymm10,ymm10,ymm0
     521        vpaddq  ymm5,ymm6,ymm11
     522        vmovdqu ymm11,YMMWORD[((288-24-128))+r13]
     523        and     eax,0x1fffffff
     524        vpaddq  ymm6,ymm7,ymm10
     525        vpmuludq        ymm14,ymm14,ymm0
     526        add     rdx,QWORD[24+rsp]
     527        vpaddq  ymm7,ymm8,ymm14
     528        vpmuludq        ymm11,ymm11,ymm0
     529        vpaddq  ymm8,ymm9,ymm11
     530        vmovq   xmm9,r12
     531        mov     r12,rdx
     532
     533        dec     r14d
     534        jnz     NEAR $L$OOP_REDUCE_1024
     535        lea     r12,[448+rsp]
     536        vpaddq  ymm0,ymm13,ymm9
     537        vpxor   ymm9,ymm9,ymm9
     538
     539        vpaddq  ymm0,ymm0,YMMWORD[((288-192))+rbx]
     540        vpaddq  ymm1,ymm1,YMMWORD[((320-448))+r12]
     541        vpaddq  ymm2,ymm2,YMMWORD[((352-448))+r12]
     542        vpaddq  ymm3,ymm3,YMMWORD[((384-448))+r12]
     543        vpaddq  ymm4,ymm4,YMMWORD[((416-448))+r12]
     544        vpaddq  ymm5,ymm5,YMMWORD[((448-448))+r12]
     545        vpaddq  ymm6,ymm6,YMMWORD[((480-448))+r12]
     546        vpaddq  ymm7,ymm7,YMMWORD[((512-448))+r12]
     547        vpaddq  ymm8,ymm8,YMMWORD[((544-448))+r12]
     548
     549        vpsrlq  ymm14,ymm0,29
     550        vpand   ymm0,ymm0,ymm15
     551        vpsrlq  ymm11,ymm1,29
     552        vpand   ymm1,ymm1,ymm15
     553        vpsrlq  ymm12,ymm2,29
     554        vpermq  ymm14,ymm14,0x93
     555        vpand   ymm2,ymm2,ymm15
     556        vpsrlq  ymm13,ymm3,29
     557        vpermq  ymm11,ymm11,0x93
     558        vpand   ymm3,ymm3,ymm15
     559        vpermq  ymm12,ymm12,0x93
     560
     561        vpblendd        ymm10,ymm14,ymm9,3
     562        vpermq  ymm13,ymm13,0x93
     563        vpblendd        ymm14,ymm11,ymm14,3
     564        vpaddq  ymm0,ymm0,ymm10
     565        vpblendd        ymm11,ymm12,ymm11,3
     566        vpaddq  ymm1,ymm1,ymm14
     567        vpblendd        ymm12,ymm13,ymm12,3
     568        vpaddq  ymm2,ymm2,ymm11
     569        vpblendd        ymm13,ymm9,ymm13,3
     570        vpaddq  ymm3,ymm3,ymm12
     571        vpaddq  ymm4,ymm4,ymm13
     572
     573        vpsrlq  ymm14,ymm0,29
     574        vpand   ymm0,ymm0,ymm15
     575        vpsrlq  ymm11,ymm1,29
     576        vpand   ymm1,ymm1,ymm15
     577        vpsrlq  ymm12,ymm2,29
     578        vpermq  ymm14,ymm14,0x93
     579        vpand   ymm2,ymm2,ymm15
     580        vpsrlq  ymm13,ymm3,29
     581        vpermq  ymm11,ymm11,0x93
     582        vpand   ymm3,ymm3,ymm15
     583        vpermq  ymm12,ymm12,0x93
     584
     585        vpblendd        ymm10,ymm14,ymm9,3
     586        vpermq  ymm13,ymm13,0x93
     587        vpblendd        ymm14,ymm11,ymm14,3
     588        vpaddq  ymm0,ymm0,ymm10
     589        vpblendd        ymm11,ymm12,ymm11,3
     590        vpaddq  ymm1,ymm1,ymm14
     591        vmovdqu YMMWORD[(0-128)+rdi],ymm0
     592        vpblendd        ymm12,ymm13,ymm12,3
     593        vpaddq  ymm2,ymm2,ymm11
     594        vmovdqu YMMWORD[(32-128)+rdi],ymm1
     595        vpblendd        ymm13,ymm9,ymm13,3
     596        vpaddq  ymm3,ymm3,ymm12
     597        vmovdqu YMMWORD[(64-128)+rdi],ymm2
     598        vpaddq  ymm4,ymm4,ymm13
     599        vmovdqu YMMWORD[(96-128)+rdi],ymm3
     600        vpsrlq  ymm14,ymm4,29
     601        vpand   ymm4,ymm4,ymm15
     602        vpsrlq  ymm11,ymm5,29
     603        vpand   ymm5,ymm5,ymm15
     604        vpsrlq  ymm12,ymm6,29
     605        vpermq  ymm14,ymm14,0x93
     606        vpand   ymm6,ymm6,ymm15
     607        vpsrlq  ymm13,ymm7,29
     608        vpermq  ymm11,ymm11,0x93
     609        vpand   ymm7,ymm7,ymm15
     610        vpsrlq  ymm0,ymm8,29
     611        vpermq  ymm12,ymm12,0x93
     612        vpand   ymm8,ymm8,ymm15
     613        vpermq  ymm13,ymm13,0x93
     614
     615        vpblendd        ymm10,ymm14,ymm9,3
     616        vpermq  ymm0,ymm0,0x93
     617        vpblendd        ymm14,ymm11,ymm14,3
     618        vpaddq  ymm4,ymm4,ymm10
     619        vpblendd        ymm11,ymm12,ymm11,3
     620        vpaddq  ymm5,ymm5,ymm14
     621        vpblendd        ymm12,ymm13,ymm12,3
     622        vpaddq  ymm6,ymm6,ymm11
     623        vpblendd        ymm13,ymm0,ymm13,3
     624        vpaddq  ymm7,ymm7,ymm12
     625        vpaddq  ymm8,ymm8,ymm13
     626
     627        vpsrlq  ymm14,ymm4,29
     628        vpand   ymm4,ymm4,ymm15
     629        vpsrlq  ymm11,ymm5,29
     630        vpand   ymm5,ymm5,ymm15
     631        vpsrlq  ymm12,ymm6,29
     632        vpermq  ymm14,ymm14,0x93
     633        vpand   ymm6,ymm6,ymm15
     634        vpsrlq  ymm13,ymm7,29
     635        vpermq  ymm11,ymm11,0x93
     636        vpand   ymm7,ymm7,ymm15
     637        vpsrlq  ymm0,ymm8,29
     638        vpermq  ymm12,ymm12,0x93
     639        vpand   ymm8,ymm8,ymm15
     640        vpermq  ymm13,ymm13,0x93
     641
     642        vpblendd        ymm10,ymm14,ymm9,3
     643        vpermq  ymm0,ymm0,0x93
     644        vpblendd        ymm14,ymm11,ymm14,3
     645        vpaddq  ymm4,ymm4,ymm10
     646        vpblendd        ymm11,ymm12,ymm11,3
     647        vpaddq  ymm5,ymm5,ymm14
     648        vmovdqu YMMWORD[(128-128)+rdi],ymm4
     649        vpblendd        ymm12,ymm13,ymm12,3
     650        vpaddq  ymm6,ymm6,ymm11
     651        vmovdqu YMMWORD[(160-128)+rdi],ymm5
     652        vpblendd        ymm13,ymm0,ymm13,3
     653        vpaddq  ymm7,ymm7,ymm12
     654        vmovdqu YMMWORD[(192-128)+rdi],ymm6
     655        vpaddq  ymm8,ymm8,ymm13
     656        vmovdqu YMMWORD[(224-128)+rdi],ymm7
     657        vmovdqu YMMWORD[(256-128)+rdi],ymm8
     658
     659        mov     rsi,rdi
     660        dec     r8d
     661        jne     NEAR $L$OOP_GRANDE_SQR_1024
     662
     663        vzeroall
     664        mov     rax,rbp
     665
     666$L$sqr_1024_in_tail:
     667        movaps  xmm6,XMMWORD[((-216))+rax]
     668        movaps  xmm7,XMMWORD[((-200))+rax]
     669        movaps  xmm8,XMMWORD[((-184))+rax]
     670        movaps  xmm9,XMMWORD[((-168))+rax]
     671        movaps  xmm10,XMMWORD[((-152))+rax]
     672        movaps  xmm11,XMMWORD[((-136))+rax]
     673        movaps  xmm12,XMMWORD[((-120))+rax]
     674        movaps  xmm13,XMMWORD[((-104))+rax]
     675        movaps  xmm14,XMMWORD[((-88))+rax]
     676        movaps  xmm15,XMMWORD[((-72))+rax]
     677        mov     r15,QWORD[((-48))+rax]
     678
     679        mov     r14,QWORD[((-40))+rax]
     680
     681        mov     r13,QWORD[((-32))+rax]
     682
     683        mov     r12,QWORD[((-24))+rax]
     684
     685        mov     rbp,QWORD[((-16))+rax]
     686
     687        mov     rbx,QWORD[((-8))+rax]
     688
     689        lea     rsp,[rax]
     690
     691$L$sqr_1024_epilogue:
     692        mov     rdi,QWORD[8+rsp]        ;WIN64 epilogue
     693        mov     rsi,QWORD[16+rsp]
     694        DB      0F3h,0C3h               ;repret
     695
     696$L$SEH_end_rsaz_1024_sqr_avx2:
     697global  rsaz_1024_mul_avx2
     698
     699ALIGN   64
     700rsaz_1024_mul_avx2:
     701        mov     QWORD[8+rsp],rdi        ;WIN64 prologue
     702        mov     QWORD[16+rsp],rsi
     703        mov     rax,rsp
     704$L$SEH_begin_rsaz_1024_mul_avx2:
     705        mov     rdi,rcx
     706        mov     rsi,rdx
     707        mov     rdx,r8
     708        mov     rcx,r9
     709        mov     r8,QWORD[40+rsp]
     710
     711
     712
     713        lea     rax,[rsp]
     714
     715        push    rbx
     716
     717        push    rbp
     718
     719        push    r12
     720
     721        push    r13
     722
     723        push    r14
     724
     725        push    r15
     726
     727        vzeroupper
     728        lea     rsp,[((-168))+rsp]
     729        vmovaps XMMWORD[(-216)+rax],xmm6
     730        vmovaps XMMWORD[(-200)+rax],xmm7
     731        vmovaps XMMWORD[(-184)+rax],xmm8
     732        vmovaps XMMWORD[(-168)+rax],xmm9
     733        vmovaps XMMWORD[(-152)+rax],xmm10
     734        vmovaps XMMWORD[(-136)+rax],xmm11
     735        vmovaps XMMWORD[(-120)+rax],xmm12
     736        vmovaps XMMWORD[(-104)+rax],xmm13
     737        vmovaps XMMWORD[(-88)+rax],xmm14
     738        vmovaps XMMWORD[(-72)+rax],xmm15
     739$L$mul_1024_body:
     740        mov     rbp,rax
     741
     742        vzeroall
     743        mov     r13,rdx
     744        sub     rsp,64
     745
     746
     747
     748
     749
     750
     751DB      0x67,0x67
     752        mov     r15,rsi
     753        and     r15,4095
     754        add     r15,32*10
     755        shr     r15,12
     756        mov     r15,rsi
     757        cmovnz  rsi,r13
     758        cmovnz  r13,r15
     759
     760        mov     r15,rcx
     761        sub     rsi,-128
     762        sub     rcx,-128
     763        sub     rdi,-128
     764
     765        and     r15,4095
     766        add     r15,32*10
     767DB      0x67,0x67
     768        shr     r15,12
     769        jz      NEAR $L$mul_1024_no_n_copy
     770
     771
     772
     773
     774
     775        sub     rsp,32*10
     776        vmovdqu ymm0,YMMWORD[((0-128))+rcx]
     777        and     rsp,-512
     778        vmovdqu ymm1,YMMWORD[((32-128))+rcx]
     779        vmovdqu ymm2,YMMWORD[((64-128))+rcx]
     780        vmovdqu ymm3,YMMWORD[((96-128))+rcx]
     781        vmovdqu ymm4,YMMWORD[((128-128))+rcx]
     782        vmovdqu ymm5,YMMWORD[((160-128))+rcx]
     783        vmovdqu ymm6,YMMWORD[((192-128))+rcx]
     784        vmovdqu ymm7,YMMWORD[((224-128))+rcx]
     785        vmovdqu ymm8,YMMWORD[((256-128))+rcx]
     786        lea     rcx,[((64+128))+rsp]
     787        vmovdqu YMMWORD[(0-128)+rcx],ymm0
     788        vpxor   ymm0,ymm0,ymm0
     789        vmovdqu YMMWORD[(32-128)+rcx],ymm1
     790        vpxor   ymm1,ymm1,ymm1
     791        vmovdqu YMMWORD[(64-128)+rcx],ymm2
     792        vpxor   ymm2,ymm2,ymm2
     793        vmovdqu YMMWORD[(96-128)+rcx],ymm3
     794        vpxor   ymm3,ymm3,ymm3
     795        vmovdqu YMMWORD[(128-128)+rcx],ymm4
     796        vpxor   ymm4,ymm4,ymm4
     797        vmovdqu YMMWORD[(160-128)+rcx],ymm5
     798        vpxor   ymm5,ymm5,ymm5
     799        vmovdqu YMMWORD[(192-128)+rcx],ymm6
     800        vpxor   ymm6,ymm6,ymm6
     801        vmovdqu YMMWORD[(224-128)+rcx],ymm7
     802        vpxor   ymm7,ymm7,ymm7
     803        vmovdqu YMMWORD[(256-128)+rcx],ymm8
     804        vmovdqa ymm8,ymm0
     805        vmovdqu YMMWORD[(288-128)+rcx],ymm9
     806$L$mul_1024_no_n_copy:
     807        and     rsp,-64
     808
     809        mov     rbx,QWORD[r13]
     810        vpbroadcastq    ymm10,QWORD[r13]
     811        vmovdqu YMMWORD[rsp],ymm0
     812        xor     r9,r9
     813DB      0x67
     814        xor     r10,r10
     815        xor     r11,r11
     816        xor     r12,r12
     817
     818        vmovdqu ymm15,YMMWORD[$L$and_mask]
     819        mov     r14d,9
     820        vmovdqu YMMWORD[(288-128)+rdi],ymm9
     821        jmp     NEAR $L$oop_mul_1024
     822
     823ALIGN   32
     824$L$oop_mul_1024:
     825        vpsrlq  ymm9,ymm3,29
     826        mov     rax,rbx
     827        imul    rax,QWORD[((-128))+rsi]
     828        add     rax,r9
     829        mov     r10,rbx
     830        imul    r10,QWORD[((8-128))+rsi]
     831        add     r10,QWORD[8+rsp]
     832
     833        mov     r9,rax
     834        imul    eax,r8d
     835        and     eax,0x1fffffff
     836
     837        mov     r11,rbx
     838        imul    r11,QWORD[((16-128))+rsi]
     839        add     r11,QWORD[16+rsp]
     840
     841        mov     r12,rbx
     842        imul    r12,QWORD[((24-128))+rsi]
     843        add     r12,QWORD[24+rsp]
     844        vpmuludq        ymm0,ymm10,YMMWORD[((32-128))+rsi]
     845        vmovd   xmm11,eax
     846        vpaddq  ymm1,ymm1,ymm0
     847        vpmuludq        ymm12,ymm10,YMMWORD[((64-128))+rsi]
     848        vpbroadcastq    ymm11,xmm11
     849        vpaddq  ymm2,ymm2,ymm12
     850        vpmuludq        ymm13,ymm10,YMMWORD[((96-128))+rsi]
     851        vpand   ymm3,ymm3,ymm15
     852        vpaddq  ymm3,ymm3,ymm13
     853        vpmuludq        ymm0,ymm10,YMMWORD[((128-128))+rsi]
     854        vpaddq  ymm4,ymm4,ymm0
     855        vpmuludq        ymm12,ymm10,YMMWORD[((160-128))+rsi]
     856        vpaddq  ymm5,ymm5,ymm12
     857        vpmuludq        ymm13,ymm10,YMMWORD[((192-128))+rsi]
     858        vpaddq  ymm6,ymm6,ymm13
     859        vpmuludq        ymm0,ymm10,YMMWORD[((224-128))+rsi]
     860        vpermq  ymm9,ymm9,0x93
     861        vpaddq  ymm7,ymm7,ymm0
     862        vpmuludq        ymm12,ymm10,YMMWORD[((256-128))+rsi]
     863        vpbroadcastq    ymm10,QWORD[8+r13]
     864        vpaddq  ymm8,ymm8,ymm12
     865
     866        mov     rdx,rax
     867        imul    rax,QWORD[((-128))+rcx]
     868        add     r9,rax
     869        mov     rax,rdx
     870        imul    rax,QWORD[((8-128))+rcx]
     871        add     r10,rax
     872        mov     rax,rdx
     873        imul    rax,QWORD[((16-128))+rcx]
     874        add     r11,rax
     875        shr     r9,29
     876        imul    rdx,QWORD[((24-128))+rcx]
     877        add     r12,rdx
     878        add     r10,r9
     879
     880        vpmuludq        ymm13,ymm11,YMMWORD[((32-128))+rcx]
     881        vmovq   rbx,xmm10
     882        vpaddq  ymm1,ymm1,ymm13
     883        vpmuludq        ymm0,ymm11,YMMWORD[((64-128))+rcx]
     884        vpaddq  ymm2,ymm2,ymm0
     885        vpmuludq        ymm12,ymm11,YMMWORD[((96-128))+rcx]
     886        vpaddq  ymm3,ymm3,ymm12
     887        vpmuludq        ymm13,ymm11,YMMWORD[((128-128))+rcx]
     888        vpaddq  ymm4,ymm4,ymm13
     889        vpmuludq        ymm0,ymm11,YMMWORD[((160-128))+rcx]
     890        vpaddq  ymm5,ymm5,ymm0
     891        vpmuludq        ymm12,ymm11,YMMWORD[((192-128))+rcx]
     892        vpaddq  ymm6,ymm6,ymm12
     893        vpmuludq        ymm13,ymm11,YMMWORD[((224-128))+rcx]
     894        vpblendd        ymm12,ymm9,ymm14,3
     895        vpaddq  ymm7,ymm7,ymm13
     896        vpmuludq        ymm0,ymm11,YMMWORD[((256-128))+rcx]
     897        vpaddq  ymm3,ymm3,ymm12
     898        vpaddq  ymm8,ymm8,ymm0
     899
     900        mov     rax,rbx
     901        imul    rax,QWORD[((-128))+rsi]
     902        add     r10,rax
     903        vmovdqu ymm12,YMMWORD[((-8+32-128))+rsi]
     904        mov     rax,rbx
     905        imul    rax,QWORD[((8-128))+rsi]
     906        add     r11,rax
     907        vmovdqu ymm13,YMMWORD[((-8+64-128))+rsi]
     908
     909        mov     rax,r10
     910        vpblendd        ymm9,ymm9,ymm14,0xfc
     911        imul    eax,r8d
     912        vpaddq  ymm4,ymm4,ymm9
     913        and     eax,0x1fffffff
     914
     915        imul    rbx,QWORD[((16-128))+rsi]
     916        add     r12,rbx
     917        vpmuludq        ymm12,ymm12,ymm10
     918        vmovd   xmm11,eax
     919        vmovdqu ymm0,YMMWORD[((-8+96-128))+rsi]
     920        vpaddq  ymm1,ymm1,ymm12
     921        vpmuludq        ymm13,ymm13,ymm10
     922        vpbroadcastq    ymm11,xmm11
     923        vmovdqu ymm12,YMMWORD[((-8+128-128))+rsi]
     924        vpaddq  ymm2,ymm2,ymm13
     925        vpmuludq        ymm0,ymm0,ymm10
     926        vmovdqu ymm13,YMMWORD[((-8+160-128))+rsi]
     927        vpaddq  ymm3,ymm3,ymm0
     928        vpmuludq        ymm12,ymm12,ymm10
     929        vmovdqu ymm0,YMMWORD[((-8+192-128))+rsi]
     930        vpaddq  ymm4,ymm4,ymm12
     931        vpmuludq        ymm13,ymm13,ymm10
     932        vmovdqu ymm12,YMMWORD[((-8+224-128))+rsi]
     933        vpaddq  ymm5,ymm5,ymm13
     934        vpmuludq        ymm0,ymm0,ymm10
     935        vmovdqu ymm13,YMMWORD[((-8+256-128))+rsi]
     936        vpaddq  ymm6,ymm6,ymm0
     937        vpmuludq        ymm12,ymm12,ymm10
     938        vmovdqu ymm9,YMMWORD[((-8+288-128))+rsi]
     939        vpaddq  ymm7,ymm7,ymm12
     940        vpmuludq        ymm13,ymm13,ymm10
     941        vpaddq  ymm8,ymm8,ymm13
     942        vpmuludq        ymm9,ymm9,ymm10
     943        vpbroadcastq    ymm10,QWORD[16+r13]
     944
     945        mov     rdx,rax
     946        imul    rax,QWORD[((-128))+rcx]
     947        add     r10,rax
     948        vmovdqu ymm0,YMMWORD[((-8+32-128))+rcx]
     949        mov     rax,rdx
     950        imul    rax,QWORD[((8-128))+rcx]
     951        add     r11,rax
     952        vmovdqu ymm12,YMMWORD[((-8+64-128))+rcx]
     953        shr     r10,29
     954        imul    rdx,QWORD[((16-128))+rcx]
     955        add     r12,rdx
     956        add     r11,r10
     957
     958        vpmuludq        ymm0,ymm0,ymm11
     959        vmovq   rbx,xmm10
     960        vmovdqu ymm13,YMMWORD[((-8+96-128))+rcx]
     961        vpaddq  ymm1,ymm1,ymm0
     962        vpmuludq        ymm12,ymm12,ymm11
     963        vmovdqu ymm0,YMMWORD[((-8+128-128))+rcx]
     964        vpaddq  ymm2,ymm2,ymm12
     965        vpmuludq        ymm13,ymm13,ymm11
     966        vmovdqu ymm12,YMMWORD[((-8+160-128))+rcx]
     967        vpaddq  ymm3,ymm3,ymm13
     968        vpmuludq        ymm0,ymm0,ymm11
     969        vmovdqu ymm13,YMMWORD[((-8+192-128))+rcx]
     970        vpaddq  ymm4,ymm4,ymm0
     971        vpmuludq        ymm12,ymm12,ymm11
     972        vmovdqu ymm0,YMMWORD[((-8+224-128))+rcx]
     973        vpaddq  ymm5,ymm5,ymm12
     974        vpmuludq        ymm13,ymm13,ymm11
     975        vmovdqu ymm12,YMMWORD[((-8+256-128))+rcx]
     976        vpaddq  ymm6,ymm6,ymm13
     977        vpmuludq        ymm0,ymm0,ymm11
     978        vmovdqu ymm13,YMMWORD[((-8+288-128))+rcx]
     979        vpaddq  ymm7,ymm7,ymm0
     980        vpmuludq        ymm12,ymm12,ymm11
     981        vpaddq  ymm8,ymm8,ymm12
     982        vpmuludq        ymm13,ymm13,ymm11
     983        vpaddq  ymm9,ymm9,ymm13
     984
     985        vmovdqu ymm0,YMMWORD[((-16+32-128))+rsi]
     986        mov     rax,rbx
     987        imul    rax,QWORD[((-128))+rsi]
     988        add     rax,r11
     989
     990        vmovdqu ymm12,YMMWORD[((-16+64-128))+rsi]
     991        mov     r11,rax
     992        imul    eax,r8d
     993        and     eax,0x1fffffff
     994
     995        imul    rbx,QWORD[((8-128))+rsi]
     996        add     r12,rbx
     997        vpmuludq        ymm0,ymm0,ymm10
     998        vmovd   xmm11,eax
     999        vmovdqu ymm13,YMMWORD[((-16+96-128))+rsi]
     1000        vpaddq  ymm1,ymm1,ymm0
     1001        vpmuludq        ymm12,ymm12,ymm10
     1002        vpbroadcastq    ymm11,xmm11
     1003        vmovdqu ymm0,YMMWORD[((-16+128-128))+rsi]
     1004        vpaddq  ymm2,ymm2,ymm12
     1005        vpmuludq        ymm13,ymm13,ymm10
     1006        vmovdqu ymm12,YMMWORD[((-16+160-128))+rsi]
     1007        vpaddq  ymm3,ymm3,ymm13
     1008        vpmuludq        ymm0,ymm0,ymm10
     1009        vmovdqu ymm13,YMMWORD[((-16+192-128))+rsi]
     1010        vpaddq  ymm4,ymm4,ymm0
     1011        vpmuludq        ymm12,ymm12,ymm10
     1012        vmovdqu ymm0,YMMWORD[((-16+224-128))+rsi]
     1013        vpaddq  ymm5,ymm5,ymm12
     1014        vpmuludq        ymm13,ymm13,ymm10
     1015        vmovdqu ymm12,YMMWORD[((-16+256-128))+rsi]
     1016        vpaddq  ymm6,ymm6,ymm13
     1017        vpmuludq        ymm0,ymm0,ymm10
     1018        vmovdqu ymm13,YMMWORD[((-16+288-128))+rsi]
     1019        vpaddq  ymm7,ymm7,ymm0
     1020        vpmuludq        ymm12,ymm12,ymm10
     1021        vpaddq  ymm8,ymm8,ymm12
     1022        vpmuludq        ymm13,ymm13,ymm10
     1023        vpbroadcastq    ymm10,QWORD[24+r13]
     1024        vpaddq  ymm9,ymm9,ymm13
     1025
     1026        vmovdqu ymm0,YMMWORD[((-16+32-128))+rcx]
     1027        mov     rdx,rax
     1028        imul    rax,QWORD[((-128))+rcx]
     1029        add     r11,rax
     1030        vmovdqu ymm12,YMMWORD[((-16+64-128))+rcx]
     1031        imul    rdx,QWORD[((8-128))+rcx]
     1032        add     r12,rdx
     1033        shr     r11,29
     1034
     1035        vpmuludq        ymm0,ymm0,ymm11
     1036        vmovq   rbx,xmm10
     1037        vmovdqu ymm13,YMMWORD[((-16+96-128))+rcx]
     1038        vpaddq  ymm1,ymm1,ymm0
     1039        vpmuludq        ymm12,ymm12,ymm11
     1040        vmovdqu ymm0,YMMWORD[((-16+128-128))+rcx]
     1041        vpaddq  ymm2,ymm2,ymm12
     1042        vpmuludq        ymm13,ymm13,ymm11
     1043        vmovdqu ymm12,YMMWORD[((-16+160-128))+rcx]
     1044        vpaddq  ymm3,ymm3,ymm13
     1045        vpmuludq        ymm0,ymm0,ymm11
     1046        vmovdqu ymm13,YMMWORD[((-16+192-128))+rcx]
     1047        vpaddq  ymm4,ymm4,ymm0
     1048        vpmuludq        ymm12,ymm12,ymm11
     1049        vmovdqu ymm0,YMMWORD[((-16+224-128))+rcx]
     1050        vpaddq  ymm5,ymm5,ymm12
     1051        vpmuludq        ymm13,ymm13,ymm11
     1052        vmovdqu ymm12,YMMWORD[((-16+256-128))+rcx]
     1053        vpaddq  ymm6,ymm6,ymm13
     1054        vpmuludq        ymm0,ymm0,ymm11
     1055        vmovdqu ymm13,YMMWORD[((-16+288-128))+rcx]
     1056        vpaddq  ymm7,ymm7,ymm0
     1057        vpmuludq        ymm12,ymm12,ymm11
     1058        vmovdqu ymm0,YMMWORD[((-24+32-128))+rsi]
     1059        vpaddq  ymm8,ymm8,ymm12
     1060        vpmuludq        ymm13,ymm13,ymm11
     1061        vmovdqu ymm12,YMMWORD[((-24+64-128))+rsi]
     1062        vpaddq  ymm9,ymm9,ymm13
     1063
     1064        add     r12,r11
     1065        imul    rbx,QWORD[((-128))+rsi]
     1066        add     r12,rbx
     1067
     1068        mov     rax,r12
     1069        imul    eax,r8d
     1070        and     eax,0x1fffffff
     1071
     1072        vpmuludq        ymm0,ymm0,ymm10
     1073        vmovd   xmm11,eax
     1074        vmovdqu ymm13,YMMWORD[((-24+96-128))+rsi]
     1075        vpaddq  ymm1,ymm1,ymm0
     1076        vpmuludq        ymm12,ymm12,ymm10
     1077        vpbroadcastq    ymm11,xmm11
     1078        vmovdqu ymm0,YMMWORD[((-24+128-128))+rsi]
     1079        vpaddq  ymm2,ymm2,ymm12
     1080        vpmuludq        ymm13,ymm13,ymm10
     1081        vmovdqu ymm12,YMMWORD[((-24+160-128))+rsi]
     1082        vpaddq  ymm3,ymm3,ymm13
     1083        vpmuludq        ymm0,ymm0,ymm10
     1084        vmovdqu ymm13,YMMWORD[((-24+192-128))+rsi]
     1085        vpaddq  ymm4,ymm4,ymm0
     1086        vpmuludq        ymm12,ymm12,ymm10
     1087        vmovdqu ymm0,YMMWORD[((-24+224-128))+rsi]
     1088        vpaddq  ymm5,ymm5,ymm12
     1089        vpmuludq        ymm13,ymm13,ymm10
     1090        vmovdqu ymm12,YMMWORD[((-24+256-128))+rsi]
     1091        vpaddq  ymm6,ymm6,ymm13
     1092        vpmuludq        ymm0,ymm0,ymm10
     1093        vmovdqu ymm13,YMMWORD[((-24+288-128))+rsi]
     1094        vpaddq  ymm7,ymm7,ymm0
     1095        vpmuludq        ymm12,ymm12,ymm10
     1096        vpaddq  ymm8,ymm8,ymm12
     1097        vpmuludq        ymm13,ymm13,ymm10
     1098        vpbroadcastq    ymm10,QWORD[32+r13]
     1099        vpaddq  ymm9,ymm9,ymm13
     1100        add     r13,32
     1101
     1102        vmovdqu ymm0,YMMWORD[((-24+32-128))+rcx]
     1103        imul    rax,QWORD[((-128))+rcx]
     1104        add     r12,rax
     1105        shr     r12,29
     1106
     1107        vmovdqu ymm12,YMMWORD[((-24+64-128))+rcx]
     1108        vpmuludq        ymm0,ymm0,ymm11
     1109        vmovq   rbx,xmm10
     1110        vmovdqu ymm13,YMMWORD[((-24+96-128))+rcx]
     1111        vpaddq  ymm0,ymm1,ymm0
     1112        vpmuludq        ymm12,ymm12,ymm11
     1113        vmovdqu YMMWORD[rsp],ymm0
     1114        vpaddq  ymm1,ymm2,ymm12
     1115        vmovdqu ymm0,YMMWORD[((-24+128-128))+rcx]
     1116        vpmuludq        ymm13,ymm13,ymm11
     1117        vmovdqu ymm12,YMMWORD[((-24+160-128))+rcx]
     1118        vpaddq  ymm2,ymm3,ymm13
     1119        vpmuludq        ymm0,ymm0,ymm11
     1120        vmovdqu ymm13,YMMWORD[((-24+192-128))+rcx]
     1121        vpaddq  ymm3,ymm4,ymm0
     1122        vpmuludq        ymm12,ymm12,ymm11
     1123        vmovdqu ymm0,YMMWORD[((-24+224-128))+rcx]
     1124        vpaddq  ymm4,ymm5,ymm12
     1125        vpmuludq        ymm13,ymm13,ymm11
     1126        vmovdqu ymm12,YMMWORD[((-24+256-128))+rcx]
     1127        vpaddq  ymm5,ymm6,ymm13
     1128        vpmuludq        ymm0,ymm0,ymm11
     1129        vmovdqu ymm13,YMMWORD[((-24+288-128))+rcx]
     1130        mov     r9,r12
     1131        vpaddq  ymm6,ymm7,ymm0
     1132        vpmuludq        ymm12,ymm12,ymm11
     1133        add     r9,QWORD[rsp]
     1134        vpaddq  ymm7,ymm8,ymm12
     1135        vpmuludq        ymm13,ymm13,ymm11
     1136        vmovq   xmm12,r12
     1137        vpaddq  ymm8,ymm9,ymm13
     1138
     1139        dec     r14d
     1140        jnz     NEAR $L$oop_mul_1024
     1141        vpaddq  ymm0,ymm12,YMMWORD[rsp]
     1142
     1143        vpsrlq  ymm12,ymm0,29
     1144        vpand   ymm0,ymm0,ymm15
     1145        vpsrlq  ymm13,ymm1,29
     1146        vpand   ymm1,ymm1,ymm15
     1147        vpsrlq  ymm10,ymm2,29
     1148        vpermq  ymm12,ymm12,0x93
     1149        vpand   ymm2,ymm2,ymm15
     1150        vpsrlq  ymm11,ymm3,29
     1151        vpermq  ymm13,ymm13,0x93
     1152        vpand   ymm3,ymm3,ymm15
     1153
     1154        vpblendd        ymm9,ymm12,ymm14,3
     1155        vpermq  ymm10,ymm10,0x93
     1156        vpblendd        ymm12,ymm13,ymm12,3
     1157        vpermq  ymm11,ymm11,0x93
     1158        vpaddq  ymm0,ymm0,ymm9
     1159        vpblendd        ymm13,ymm10,ymm13,3
     1160        vpaddq  ymm1,ymm1,ymm12
     1161        vpblendd        ymm10,ymm11,ymm10,3
     1162        vpaddq  ymm2,ymm2,ymm13
     1163        vpblendd        ymm11,ymm14,ymm11,3
     1164        vpaddq  ymm3,ymm3,ymm10
     1165        vpaddq  ymm4,ymm4,ymm11
     1166
     1167        vpsrlq  ymm12,ymm0,29
     1168        vpand   ymm0,ymm0,ymm15
     1169        vpsrlq  ymm13,ymm1,29
     1170        vpand   ymm1,ymm1,ymm15
     1171        vpsrlq  ymm10,ymm2,29
     1172        vpermq  ymm12,ymm12,0x93
     1173        vpand   ymm2,ymm2,ymm15
     1174        vpsrlq  ymm11,ymm3,29
     1175        vpermq  ymm13,ymm13,0x93
     1176        vpand   ymm3,ymm3,ymm15
     1177        vpermq  ymm10,ymm10,0x93
     1178
     1179        vpblendd        ymm9,ymm12,ymm14,3
     1180        vpermq  ymm11,ymm11,0x93
     1181        vpblendd        ymm12,ymm13,ymm12,3
     1182        vpaddq  ymm0,ymm0,ymm9
     1183        vpblendd        ymm13,ymm10,ymm13,3
     1184        vpaddq  ymm1,ymm1,ymm12
     1185        vpblendd        ymm10,ymm11,ymm10,3
     1186        vpaddq  ymm2,ymm2,ymm13
     1187        vpblendd        ymm11,ymm14,ymm11,3
     1188        vpaddq  ymm3,ymm3,ymm10
     1189        vpaddq  ymm4,ymm4,ymm11
     1190
     1191        vmovdqu YMMWORD[(0-128)+rdi],ymm0
     1192        vmovdqu YMMWORD[(32-128)+rdi],ymm1
     1193        vmovdqu YMMWORD[(64-128)+rdi],ymm2
     1194        vmovdqu YMMWORD[(96-128)+rdi],ymm3
     1195        vpsrlq  ymm12,ymm4,29
     1196        vpand   ymm4,ymm4,ymm15
     1197        vpsrlq  ymm13,ymm5,29
     1198        vpand   ymm5,ymm5,ymm15
     1199        vpsrlq  ymm10,ymm6,29
     1200        vpermq  ymm12,ymm12,0x93
     1201        vpand   ymm6,ymm6,ymm15
     1202        vpsrlq  ymm11,ymm7,29
     1203        vpermq  ymm13,ymm13,0x93
     1204        vpand   ymm7,ymm7,ymm15
     1205        vpsrlq  ymm0,ymm8,29
     1206        vpermq  ymm10,ymm10,0x93
     1207        vpand   ymm8,ymm8,ymm15
     1208        vpermq  ymm11,ymm11,0x93
     1209
     1210        vpblendd        ymm9,ymm12,ymm14,3
     1211        vpermq  ymm0,ymm0,0x93
     1212        vpblendd        ymm12,ymm13,ymm12,3
     1213        vpaddq  ymm4,ymm4,ymm9
     1214        vpblendd        ymm13,ymm10,ymm13,3
     1215        vpaddq  ymm5,ymm5,ymm12
     1216        vpblendd        ymm10,ymm11,ymm10,3
     1217        vpaddq  ymm6,ymm6,ymm13
     1218        vpblendd        ymm11,ymm0,ymm11,3
     1219        vpaddq  ymm7,ymm7,ymm10
     1220        vpaddq  ymm8,ymm8,ymm11
     1221
     1222        vpsrlq  ymm12,ymm4,29
     1223        vpand   ymm4,ymm4,ymm15
     1224        vpsrlq  ymm13,ymm5,29
     1225        vpand   ymm5,ymm5,ymm15
     1226        vpsrlq  ymm10,ymm6,29
     1227        vpermq  ymm12,ymm12,0x93
     1228        vpand   ymm6,ymm6,ymm15
     1229        vpsrlq  ymm11,ymm7,29
     1230        vpermq  ymm13,ymm13,0x93
     1231        vpand   ymm7,ymm7,ymm15
     1232        vpsrlq  ymm0,ymm8,29
     1233        vpermq  ymm10,ymm10,0x93
     1234        vpand   ymm8,ymm8,ymm15
     1235        vpermq  ymm11,ymm11,0x93
     1236
     1237        vpblendd        ymm9,ymm12,ymm14,3
     1238        vpermq  ymm0,ymm0,0x93
     1239        vpblendd        ymm12,ymm13,ymm12,3
     1240        vpaddq  ymm4,ymm4,ymm9
     1241        vpblendd        ymm13,ymm10,ymm13,3
     1242        vpaddq  ymm5,ymm5,ymm12
     1243        vpblendd        ymm10,ymm11,ymm10,3
     1244        vpaddq  ymm6,ymm6,ymm13
     1245        vpblendd        ymm11,ymm0,ymm11,3
     1246        vpaddq  ymm7,ymm7,ymm10
     1247        vpaddq  ymm8,ymm8,ymm11
     1248
     1249        vmovdqu YMMWORD[(128-128)+rdi],ymm4
     1250        vmovdqu YMMWORD[(160-128)+rdi],ymm5
     1251        vmovdqu YMMWORD[(192-128)+rdi],ymm6
     1252        vmovdqu YMMWORD[(224-128)+rdi],ymm7
     1253        vmovdqu YMMWORD[(256-128)+rdi],ymm8
     1254        vzeroupper
     1255
     1256        mov     rax,rbp
     1257
     1258$L$mul_1024_in_tail:
     1259        movaps  xmm6,XMMWORD[((-216))+rax]
     1260        movaps  xmm7,XMMWORD[((-200))+rax]
     1261        movaps  xmm8,XMMWORD[((-184))+rax]
     1262        movaps  xmm9,XMMWORD[((-168))+rax]
     1263        movaps  xmm10,XMMWORD[((-152))+rax]
     1264        movaps  xmm11,XMMWORD[((-136))+rax]
     1265        movaps  xmm12,XMMWORD[((-120))+rax]
     1266        movaps  xmm13,XMMWORD[((-104))+rax]
     1267        movaps  xmm14,XMMWORD[((-88))+rax]
     1268        movaps  xmm15,XMMWORD[((-72))+rax]
     1269        mov     r15,QWORD[((-48))+rax]
     1270
     1271        mov     r14,QWORD[((-40))+rax]
     1272
     1273        mov     r13,QWORD[((-32))+rax]
     1274
     1275        mov     r12,QWORD[((-24))+rax]
     1276
     1277        mov     rbp,QWORD[((-16))+rax]
     1278
     1279        mov     rbx,QWORD[((-8))+rax]
     1280
     1281        lea     rsp,[rax]
     1282
     1283$L$mul_1024_epilogue:
     1284        mov     rdi,QWORD[8+rsp]        ;WIN64 epilogue
     1285        mov     rsi,QWORD[16+rsp]
     1286        DB      0F3h,0C3h               ;repret
     1287
     1288$L$SEH_end_rsaz_1024_mul_avx2:
     1289global  rsaz_1024_red2norm_avx2
     1290
     1291ALIGN   32
     1292rsaz_1024_red2norm_avx2:
     1293
     1294        sub     rdx,-128
     1295        xor     rax,rax
     1296        mov     r8,QWORD[((-128))+rdx]
     1297        mov     r9,QWORD[((-120))+rdx]
     1298        mov     r10,QWORD[((-112))+rdx]
     1299        shl     r8,0
     1300        shl     r9,29
     1301        mov     r11,r10
     1302        shl     r10,58
     1303        shr     r11,6
     1304        add     rax,r8
     1305        add     rax,r9
     1306        add     rax,r10
     1307        adc     r11,0
     1308        mov     QWORD[rcx],rax
     1309        mov     rax,r11
     1310        mov     r8,QWORD[((-104))+rdx]
     1311        mov     r9,QWORD[((-96))+rdx]
     1312        shl     r8,23
     1313        mov     r10,r9
     1314        shl     r9,52
     1315        shr     r10,12
     1316        add     rax,r8
     1317        add     rax,r9
     1318        adc     r10,0
     1319        mov     QWORD[8+rcx],rax
     1320        mov     rax,r10
     1321        mov     r11,QWORD[((-88))+rdx]
     1322        mov     r8,QWORD[((-80))+rdx]
     1323        shl     r11,17
     1324        mov     r9,r8
     1325        shl     r8,46
     1326        shr     r9,18
     1327        add     rax,r11
     1328        add     rax,r8
     1329        adc     r9,0
     1330        mov     QWORD[16+rcx],rax
     1331        mov     rax,r9
     1332        mov     r10,QWORD[((-72))+rdx]
     1333        mov     r11,QWORD[((-64))+rdx]
     1334        shl     r10,11
     1335        mov     r8,r11
     1336        shl     r11,40
     1337        shr     r8,24
     1338        add     rax,r10
     1339        add     rax,r11
     1340        adc     r8,0
     1341        mov     QWORD[24+rcx],rax
     1342        mov     rax,r8
     1343        mov     r9,QWORD[((-56))+rdx]
     1344        mov     r10,QWORD[((-48))+rdx]
     1345        mov     r11,QWORD[((-40))+rdx]
     1346        shl     r9,5
     1347        shl     r10,34
     1348        mov     r8,r11
     1349        shl     r11,63
     1350        shr     r8,1
     1351        add     rax,r9
     1352        add     rax,r10
     1353        add     rax,r11
     1354        adc     r8,0
     1355        mov     QWORD[32+rcx],rax
     1356        mov     rax,r8
     1357        mov     r9,QWORD[((-32))+rdx]
     1358        mov     r10,QWORD[((-24))+rdx]
     1359        shl     r9,28
     1360        mov     r11,r10
     1361        shl     r10,57
     1362        shr     r11,7
     1363        add     rax,r9
     1364        add     rax,r10
     1365        adc     r11,0
     1366        mov     QWORD[40+rcx],rax
     1367        mov     rax,r11
     1368        mov     r8,QWORD[((-16))+rdx]
     1369        mov     r9,QWORD[((-8))+rdx]
     1370        shl     r8,22
     1371        mov     r10,r9
     1372        shl     r9,51
     1373        shr     r10,13
     1374        add     rax,r8
     1375        add     rax,r9
     1376        adc     r10,0
     1377        mov     QWORD[48+rcx],rax
     1378        mov     rax,r10
     1379        mov     r11,QWORD[rdx]
     1380        mov     r8,QWORD[8+rdx]
     1381        shl     r11,16
     1382        mov     r9,r8
     1383        shl     r8,45
     1384        shr     r9,19
     1385        add     rax,r11
     1386        add     rax,r8
     1387        adc     r9,0
     1388        mov     QWORD[56+rcx],rax
     1389        mov     rax,r9
     1390        mov     r10,QWORD[16+rdx]
     1391        mov     r11,QWORD[24+rdx]
     1392        shl     r10,10
     1393        mov     r8,r11
     1394        shl     r11,39
     1395        shr     r8,25
     1396        add     rax,r10
     1397        add     rax,r11
     1398        adc     r8,0
     1399        mov     QWORD[64+rcx],rax
     1400        mov     rax,r8
     1401        mov     r9,QWORD[32+rdx]
     1402        mov     r10,QWORD[40+rdx]
     1403        mov     r11,QWORD[48+rdx]
     1404        shl     r9,4
     1405        shl     r10,33
     1406        mov     r8,r11
     1407        shl     r11,62
     1408        shr     r8,2
     1409        add     rax,r9
     1410        add     rax,r10
     1411        add     rax,r11
     1412        adc     r8,0
     1413        mov     QWORD[72+rcx],rax
     1414        mov     rax,r8
     1415        mov     r9,QWORD[56+rdx]
     1416        mov     r10,QWORD[64+rdx]
     1417        shl     r9,27
     1418        mov     r11,r10
     1419        shl     r10,56
     1420        shr     r11,8
     1421        add     rax,r9
     1422        add     rax,r10
     1423        adc     r11,0
     1424        mov     QWORD[80+rcx],rax
     1425        mov     rax,r11
     1426        mov     r8,QWORD[72+rdx]
     1427        mov     r9,QWORD[80+rdx]
     1428        shl     r8,21
     1429        mov     r10,r9
     1430        shl     r9,50
     1431        shr     r10,14
     1432        add     rax,r8
     1433        add     rax,r9
     1434        adc     r10,0
     1435        mov     QWORD[88+rcx],rax
     1436        mov     rax,r10
     1437        mov     r11,QWORD[88+rdx]
     1438        mov     r8,QWORD[96+rdx]
     1439        shl     r11,15
     1440        mov     r9,r8
     1441        shl     r8,44
     1442        shr     r9,20
     1443        add     rax,r11
     1444        add     rax,r8
     1445        adc     r9,0
     1446        mov     QWORD[96+rcx],rax
     1447        mov     rax,r9
     1448        mov     r10,QWORD[104+rdx]
     1449        mov     r11,QWORD[112+rdx]
     1450        shl     r10,9
     1451        mov     r8,r11
     1452        shl     r11,38
     1453        shr     r8,26
     1454        add     rax,r10
     1455        add     rax,r11
     1456        adc     r8,0
     1457        mov     QWORD[104+rcx],rax
     1458        mov     rax,r8
     1459        mov     r9,QWORD[120+rdx]
     1460        mov     r10,QWORD[128+rdx]
     1461        mov     r11,QWORD[136+rdx]
     1462        shl     r9,3
     1463        shl     r10,32
     1464        mov     r8,r11
     1465        shl     r11,61
     1466        shr     r8,3
     1467        add     rax,r9
     1468        add     rax,r10
     1469        add     rax,r11
     1470        adc     r8,0
     1471        mov     QWORD[112+rcx],rax
     1472        mov     rax,r8
     1473        mov     r9,QWORD[144+rdx]
     1474        mov     r10,QWORD[152+rdx]
     1475        shl     r9,26
     1476        mov     r11,r10
     1477        shl     r10,55
     1478        shr     r11,9
     1479        add     rax,r9
     1480        add     rax,r10
     1481        adc     r11,0
     1482        mov     QWORD[120+rcx],rax
     1483        mov     rax,r11
     1484        DB      0F3h,0C3h               ;repret
     1485
     1486
     1487
     1488global  rsaz_1024_norm2red_avx2
     1489
     1490ALIGN   32
     1491rsaz_1024_norm2red_avx2:
     1492
     1493        sub     rcx,-128
     1494        mov     r8,QWORD[rdx]
     1495        mov     eax,0x1fffffff
     1496        mov     r9,QWORD[8+rdx]
     1497        mov     r11,r8
     1498        shr     r11,0
     1499        and     r11,rax
     1500        mov     QWORD[((-128))+rcx],r11
     1501        mov     r10,r8
     1502        shr     r10,29
     1503        and     r10,rax
     1504        mov     QWORD[((-120))+rcx],r10
     1505        shrd    r8,r9,58
     1506        and     r8,rax
     1507        mov     QWORD[((-112))+rcx],r8
     1508        mov     r10,QWORD[16+rdx]
     1509        mov     r8,r9
     1510        shr     r8,23
     1511        and     r8,rax
     1512        mov     QWORD[((-104))+rcx],r8
     1513        shrd    r9,r10,52
     1514        and     r9,rax
     1515        mov     QWORD[((-96))+rcx],r9
     1516        mov     r11,QWORD[24+rdx]
     1517        mov     r9,r10
     1518        shr     r9,17
     1519        and     r9,rax
     1520        mov     QWORD[((-88))+rcx],r9
     1521        shrd    r10,r11,46
     1522        and     r10,rax
     1523        mov     QWORD[((-80))+rcx],r10
     1524        mov     r8,QWORD[32+rdx]
     1525        mov     r10,r11
     1526        shr     r10,11
     1527        and     r10,rax
     1528        mov     QWORD[((-72))+rcx],r10
     1529        shrd    r11,r8,40
     1530        and     r11,rax
     1531        mov     QWORD[((-64))+rcx],r11
     1532        mov     r9,QWORD[40+rdx]
     1533        mov     r11,r8
     1534        shr     r11,5
     1535        and     r11,rax
     1536        mov     QWORD[((-56))+rcx],r11
     1537        mov     r10,r8
     1538        shr     r10,34
     1539        and     r10,rax
     1540        mov     QWORD[((-48))+rcx],r10
     1541        shrd    r8,r9,63
     1542        and     r8,rax
     1543        mov     QWORD[((-40))+rcx],r8
     1544        mov     r10,QWORD[48+rdx]
     1545        mov     r8,r9
     1546        shr     r8,28
     1547        and     r8,rax
     1548        mov     QWORD[((-32))+rcx],r8
     1549        shrd    r9,r10,57
     1550        and     r9,rax
     1551        mov     QWORD[((-24))+rcx],r9
     1552        mov     r11,QWORD[56+rdx]
     1553        mov     r9,r10
     1554        shr     r9,22
     1555        and     r9,rax
     1556        mov     QWORD[((-16))+rcx],r9
     1557        shrd    r10,r11,51
     1558        and     r10,rax
     1559        mov     QWORD[((-8))+rcx],r10
     1560        mov     r8,QWORD[64+rdx]
     1561        mov     r10,r11
     1562        shr     r10,16
     1563        and     r10,rax
     1564        mov     QWORD[rcx],r10
     1565        shrd    r11,r8,45
     1566        and     r11,rax
     1567        mov     QWORD[8+rcx],r11
     1568        mov     r9,QWORD[72+rdx]
     1569        mov     r11,r8
     1570        shr     r11,10
     1571        and     r11,rax
     1572        mov     QWORD[16+rcx],r11
     1573        shrd    r8,r9,39
     1574        and     r8,rax
     1575        mov     QWORD[24+rcx],r8
     1576        mov     r10,QWORD[80+rdx]
     1577        mov     r8,r9
     1578        shr     r8,4
     1579        and     r8,rax
     1580        mov     QWORD[32+rcx],r8
     1581        mov     r11,r9
     1582        shr     r11,33
     1583        and     r11,rax
     1584        mov     QWORD[40+rcx],r11
     1585        shrd    r9,r10,62
     1586        and     r9,rax
     1587        mov     QWORD[48+rcx],r9
     1588        mov     r11,QWORD[88+rdx]
     1589        mov     r9,r10
     1590        shr     r9,27
     1591        and     r9,rax
     1592        mov     QWORD[56+rcx],r9
     1593        shrd    r10,r11,56
     1594        and     r10,rax
     1595        mov     QWORD[64+rcx],r10
     1596        mov     r8,QWORD[96+rdx]
     1597        mov     r10,r11
     1598        shr     r10,21
     1599        and     r10,rax
     1600        mov     QWORD[72+rcx],r10
     1601        shrd    r11,r8,50
     1602        and     r11,rax
     1603        mov     QWORD[80+rcx],r11
     1604        mov     r9,QWORD[104+rdx]
     1605        mov     r11,r8
     1606        shr     r11,15
     1607        and     r11,rax
     1608        mov     QWORD[88+rcx],r11
     1609        shrd    r8,r9,44
     1610        and     r8,rax
     1611        mov     QWORD[96+rcx],r8
     1612        mov     r10,QWORD[112+rdx]
     1613        mov     r8,r9
     1614        shr     r8,9
     1615        and     r8,rax
     1616        mov     QWORD[104+rcx],r8
     1617        shrd    r9,r10,38
     1618        and     r9,rax
     1619        mov     QWORD[112+rcx],r9
     1620        mov     r11,QWORD[120+rdx]
     1621        mov     r9,r10
     1622        shr     r9,3
     1623        and     r9,rax
     1624        mov     QWORD[120+rcx],r9
     1625        mov     r8,r10
     1626        shr     r8,32
     1627        and     r8,rax
     1628        mov     QWORD[128+rcx],r8
     1629        shrd    r10,r11,61
     1630        and     r10,rax
     1631        mov     QWORD[136+rcx],r10
     1632        xor     r8,r8
     1633        mov     r10,r11
     1634        shr     r10,26
     1635        and     r10,rax
     1636        mov     QWORD[144+rcx],r10
     1637        shrd    r11,r8,55
     1638        and     r11,rax
     1639        mov     QWORD[152+rcx],r11
     1640        mov     QWORD[160+rcx],r8
     1641        mov     QWORD[168+rcx],r8
     1642        mov     QWORD[176+rcx],r8
     1643        mov     QWORD[184+rcx],r8
     1644        DB      0F3h,0C3h               ;repret
     1645
     1646
     1647global  rsaz_1024_scatter5_avx2
     1648
     1649ALIGN   32
     1650rsaz_1024_scatter5_avx2:
     1651
     1652        vzeroupper
     1653        vmovdqu ymm5,YMMWORD[$L$scatter_permd]
     1654        shl     r8d,4
     1655        lea     rcx,[r8*1+rcx]
     1656        mov     eax,9
     1657        jmp     NEAR $L$oop_scatter_1024
     1658
     1659ALIGN   32
     1660$L$oop_scatter_1024:
     1661        vmovdqu ymm0,YMMWORD[rdx]
     1662        lea     rdx,[32+rdx]
     1663        vpermd  ymm0,ymm5,ymm0
     1664        vmovdqu XMMWORD[rcx],xmm0
     1665        lea     rcx,[512+rcx]
     1666        dec     eax
     1667        jnz     NEAR $L$oop_scatter_1024
     1668
     1669        vzeroupper
     1670        DB      0F3h,0C3h               ;repret
     1671
     1672
     1673
     1674global  rsaz_1024_gather5_avx2
     1675
     1676ALIGN   32
     1677rsaz_1024_gather5_avx2:
     1678
     1679        vzeroupper
     1680        mov     r11,rsp
     1681
     1682        lea     rax,[((-136))+rsp]
     1683$L$SEH_begin_rsaz_1024_gather5:
     1684
     1685DB      0x48,0x8d,0x60,0xe0
     1686DB      0xc5,0xf8,0x29,0x70,0xe0
     1687DB      0xc5,0xf8,0x29,0x78,0xf0
     1688DB      0xc5,0x78,0x29,0x40,0x00
     1689DB      0xc5,0x78,0x29,0x48,0x10
     1690DB      0xc5,0x78,0x29,0x50,0x20
     1691DB      0xc5,0x78,0x29,0x58,0x30
     1692DB      0xc5,0x78,0x29,0x60,0x40
     1693DB      0xc5,0x78,0x29,0x68,0x50
     1694DB      0xc5,0x78,0x29,0x70,0x60
     1695DB      0xc5,0x78,0x29,0x78,0x70
     1696        lea     rsp,[((-256))+rsp]
     1697        and     rsp,-32
     1698        lea     r10,[$L$inc]
     1699        lea     rax,[((-128))+rsp]
     1700
     1701        vmovd   xmm4,r8d
     1702        vmovdqa ymm0,YMMWORD[r10]
     1703        vmovdqa ymm1,YMMWORD[32+r10]
     1704        vmovdqa ymm5,YMMWORD[64+r10]
     1705        vpbroadcastd    ymm4,xmm4
     1706
     1707        vpaddd  ymm2,ymm0,ymm5
     1708        vpcmpeqd        ymm0,ymm0,ymm4
     1709        vpaddd  ymm3,ymm1,ymm5
     1710        vpcmpeqd        ymm1,ymm1,ymm4
     1711        vmovdqa YMMWORD[(0+128)+rax],ymm0
     1712        vpaddd  ymm0,ymm2,ymm5
     1713        vpcmpeqd        ymm2,ymm2,ymm4
     1714        vmovdqa YMMWORD[(32+128)+rax],ymm1
     1715        vpaddd  ymm1,ymm3,ymm5
     1716        vpcmpeqd        ymm3,ymm3,ymm4
     1717        vmovdqa YMMWORD[(64+128)+rax],ymm2
     1718        vpaddd  ymm2,ymm0,ymm5
     1719        vpcmpeqd        ymm0,ymm0,ymm4
     1720        vmovdqa YMMWORD[(96+128)+rax],ymm3
     1721        vpaddd  ymm3,ymm1,ymm5
     1722        vpcmpeqd        ymm1,ymm1,ymm4
     1723        vmovdqa YMMWORD[(128+128)+rax],ymm0
     1724        vpaddd  ymm8,ymm2,ymm5
     1725        vpcmpeqd        ymm2,ymm2,ymm4
     1726        vmovdqa YMMWORD[(160+128)+rax],ymm1
     1727        vpaddd  ymm9,ymm3,ymm5
     1728        vpcmpeqd        ymm3,ymm3,ymm4
     1729        vmovdqa YMMWORD[(192+128)+rax],ymm2
     1730        vpaddd  ymm10,ymm8,ymm5
     1731        vpcmpeqd        ymm8,ymm8,ymm4
     1732        vmovdqa YMMWORD[(224+128)+rax],ymm3
     1733        vpaddd  ymm11,ymm9,ymm5
     1734        vpcmpeqd        ymm9,ymm9,ymm4
     1735        vpaddd  ymm12,ymm10,ymm5
     1736        vpcmpeqd        ymm10,ymm10,ymm4
     1737        vpaddd  ymm13,ymm11,ymm5
     1738        vpcmpeqd        ymm11,ymm11,ymm4
     1739        vpaddd  ymm14,ymm12,ymm5
     1740        vpcmpeqd        ymm12,ymm12,ymm4
     1741        vpaddd  ymm15,ymm13,ymm5
     1742        vpcmpeqd        ymm13,ymm13,ymm4
     1743        vpcmpeqd        ymm14,ymm14,ymm4
     1744        vpcmpeqd        ymm15,ymm15,ymm4
     1745
     1746        vmovdqa ymm7,YMMWORD[((-32))+r10]
     1747        lea     rdx,[128+rdx]
     1748        mov     r8d,9
     1749
     1750$L$oop_gather_1024:
     1751        vmovdqa ymm0,YMMWORD[((0-128))+rdx]
     1752        vmovdqa ymm1,YMMWORD[((32-128))+rdx]
     1753        vmovdqa ymm2,YMMWORD[((64-128))+rdx]
     1754        vmovdqa ymm3,YMMWORD[((96-128))+rdx]
     1755        vpand   ymm0,ymm0,YMMWORD[((0+128))+rax]
     1756        vpand   ymm1,ymm1,YMMWORD[((32+128))+rax]
     1757        vpand   ymm2,ymm2,YMMWORD[((64+128))+rax]
     1758        vpor    ymm4,ymm1,ymm0
     1759        vpand   ymm3,ymm3,YMMWORD[((96+128))+rax]
     1760        vmovdqa ymm0,YMMWORD[((128-128))+rdx]
     1761        vmovdqa ymm1,YMMWORD[((160-128))+rdx]
     1762        vpor    ymm5,ymm3,ymm2
     1763        vmovdqa ymm2,YMMWORD[((192-128))+rdx]
     1764        vmovdqa ymm3,YMMWORD[((224-128))+rdx]
     1765        vpand   ymm0,ymm0,YMMWORD[((128+128))+rax]
     1766        vpand   ymm1,ymm1,YMMWORD[((160+128))+rax]
     1767        vpand   ymm2,ymm2,YMMWORD[((192+128))+rax]
     1768        vpor    ymm4,ymm4,ymm0
     1769        vpand   ymm3,ymm3,YMMWORD[((224+128))+rax]
     1770        vpand   ymm0,ymm8,YMMWORD[((256-128))+rdx]
     1771        vpor    ymm5,ymm5,ymm1
     1772        vpand   ymm1,ymm9,YMMWORD[((288-128))+rdx]
     1773        vpor    ymm4,ymm4,ymm2
     1774        vpand   ymm2,ymm10,YMMWORD[((320-128))+rdx]
     1775        vpor    ymm5,ymm5,ymm3
     1776        vpand   ymm3,ymm11,YMMWORD[((352-128))+rdx]
     1777        vpor    ymm4,ymm4,ymm0
     1778        vpand   ymm0,ymm12,YMMWORD[((384-128))+rdx]
     1779        vpor    ymm5,ymm5,ymm1
     1780        vpand   ymm1,ymm13,YMMWORD[((416-128))+rdx]
     1781        vpor    ymm4,ymm4,ymm2
     1782        vpand   ymm2,ymm14,YMMWORD[((448-128))+rdx]
     1783        vpor    ymm5,ymm5,ymm3
     1784        vpand   ymm3,ymm15,YMMWORD[((480-128))+rdx]
     1785        lea     rdx,[512+rdx]
     1786        vpor    ymm4,ymm4,ymm0
     1787        vpor    ymm5,ymm5,ymm1
     1788        vpor    ymm4,ymm4,ymm2
     1789        vpor    ymm5,ymm5,ymm3
     1790
     1791        vpor    ymm4,ymm4,ymm5
     1792        vextracti128    xmm5,ymm4,1
     1793        vpor    xmm5,xmm5,xmm4
     1794        vpermd  ymm5,ymm7,ymm5
     1795        vmovdqu YMMWORD[rcx],ymm5
     1796        lea     rcx,[32+rcx]
     1797        dec     r8d
     1798        jnz     NEAR $L$oop_gather_1024
     1799
     1800        vpxor   ymm0,ymm0,ymm0
     1801        vmovdqu YMMWORD[rcx],ymm0
     1802        vzeroupper
     1803        movaps  xmm6,XMMWORD[((-168))+r11]
     1804        movaps  xmm7,XMMWORD[((-152))+r11]
     1805        movaps  xmm8,XMMWORD[((-136))+r11]
     1806        movaps  xmm9,XMMWORD[((-120))+r11]
     1807        movaps  xmm10,XMMWORD[((-104))+r11]
     1808        movaps  xmm11,XMMWORD[((-88))+r11]
     1809        movaps  xmm12,XMMWORD[((-72))+r11]
     1810        movaps  xmm13,XMMWORD[((-56))+r11]
     1811        movaps  xmm14,XMMWORD[((-40))+r11]
     1812        movaps  xmm15,XMMWORD[((-24))+r11]
     1813        lea     rsp,[r11]
     1814
     1815        DB      0F3h,0C3h               ;repret
     1816
     1817$L$SEH_end_rsaz_1024_gather5:
     1818
     1819EXTERN  OPENSSL_ia32cap_P
    81820global  rsaz_avx2_eligible
    91821
     1822ALIGN   32
    101823rsaz_avx2_eligible:
    11         xor     eax,eax
     1824        mov     eax,DWORD[((OPENSSL_ia32cap_P+8))]
     1825        mov     ecx,524544
     1826        mov     edx,0
     1827        and     ecx,eax
     1828        cmp     ecx,524544
     1829        cmove   eax,edx
     1830        and     eax,32
     1831        shr     eax,5
    121832        DB      0F3h,0C3h               ;repret
    131833
    141834
    15 global  rsaz_1024_sqr_avx2
    16 global  rsaz_1024_mul_avx2
    17 global  rsaz_1024_norm2red_avx2
    18 global  rsaz_1024_red2norm_avx2
    19 global  rsaz_1024_scatter5_avx2
    20 global  rsaz_1024_gather5_avx2
    21 
    22 rsaz_1024_sqr_avx2:
    23 rsaz_1024_mul_avx2:
    24 rsaz_1024_norm2red_avx2:
    25 rsaz_1024_red2norm_avx2:
    26 rsaz_1024_scatter5_avx2:
    27 rsaz_1024_gather5_avx2:
    28 DB      0x0f,0x0b
     1835ALIGN   64
     1836$L$and_mask:
     1837        DQ      0x1fffffff,0x1fffffff,0x1fffffff,0x1fffffff
     1838$L$scatter_permd:
     1839        DD      0,2,4,6,7,7,7,7
     1840$L$gather_permd:
     1841        DD      0,7,1,7,2,7,3,7
     1842$L$inc:
     1843        DD      0,0,0,0,1,1,1,1
     1844        DD      2,2,2,2,3,3,3,3
     1845        DD      4,4,4,4,4,4,4,4
     1846ALIGN   64
     1847EXTERN  __imp_RtlVirtualUnwind
     1848
     1849ALIGN   16
     1850rsaz_se_handler:
     1851        push    rsi
     1852        push    rdi
     1853        push    rbx
     1854        push    rbp
     1855        push    r12
     1856        push    r13
     1857        push    r14
     1858        push    r15
     1859        pushfq
     1860        sub     rsp,64
     1861
     1862        mov     rax,QWORD[120+r8]
     1863        mov     rbx,QWORD[248+r8]
     1864
     1865        mov     rsi,QWORD[8+r9]
     1866        mov     r11,QWORD[56+r9]
     1867
     1868        mov     r10d,DWORD[r11]
     1869        lea     r10,[r10*1+rsi]
     1870        cmp     rbx,r10
     1871        jb      NEAR $L$common_seh_tail
     1872
     1873        mov     r10d,DWORD[4+r11]
     1874        lea     r10,[r10*1+rsi]
     1875        cmp     rbx,r10
     1876        jae     NEAR $L$common_seh_tail
     1877
     1878        mov     rbp,QWORD[160+r8]
     1879
     1880        mov     r10d,DWORD[8+r11]
     1881        lea     r10,[r10*1+rsi]
     1882        cmp     rbx,r10
     1883        cmovc   rax,rbp
     1884
     1885        mov     r15,QWORD[((-48))+rax]
     1886        mov     r14,QWORD[((-40))+rax]
     1887        mov     r13,QWORD[((-32))+rax]
     1888        mov     r12,QWORD[((-24))+rax]
     1889        mov     rbp,QWORD[((-16))+rax]
     1890        mov     rbx,QWORD[((-8))+rax]
     1891        mov     QWORD[240+r8],r15
     1892        mov     QWORD[232+r8],r14
     1893        mov     QWORD[224+r8],r13
     1894        mov     QWORD[216+r8],r12
     1895        mov     QWORD[160+r8],rbp
     1896        mov     QWORD[144+r8],rbx
     1897
     1898        lea     rsi,[((-216))+rax]
     1899        lea     rdi,[512+r8]
     1900        mov     ecx,20
     1901        DD      0xa548f3fc
     1902
     1903$L$common_seh_tail:
     1904        mov     rdi,QWORD[8+rax]
     1905        mov     rsi,QWORD[16+rax]
     1906        mov     QWORD[152+r8],rax
     1907        mov     QWORD[168+r8],rsi
     1908        mov     QWORD[176+r8],rdi
     1909
     1910        mov     rdi,QWORD[40+r9]
     1911        mov     rsi,r8
     1912        mov     ecx,154
     1913        DD      0xa548f3fc
     1914
     1915        mov     rsi,r9
     1916        xor     rcx,rcx
     1917        mov     rdx,QWORD[8+rsi]
     1918        mov     r8,QWORD[rsi]
     1919        mov     r9,QWORD[16+rsi]
     1920        mov     r10,QWORD[40+rsi]
     1921        lea     r11,[56+rsi]
     1922        lea     r12,[24+rsi]
     1923        mov     QWORD[32+rsp],r10
     1924        mov     QWORD[40+rsp],r11
     1925        mov     QWORD[48+rsp],r12
     1926        mov     QWORD[56+rsp],rcx
     1927        call    QWORD[__imp_RtlVirtualUnwind]
     1928
     1929        mov     eax,1
     1930        add     rsp,64
     1931        popfq
     1932        pop     r15
     1933        pop     r14
     1934        pop     r13
     1935        pop     r12
     1936        pop     rbp
     1937        pop     rbx
     1938        pop     rdi
     1939        pop     rsi
    291940        DB      0F3h,0C3h               ;repret
    301941
     1942
     1943section .pdata rdata align=4
     1944ALIGN   4
     1945        DD      $L$SEH_begin_rsaz_1024_sqr_avx2 wrt ..imagebase
     1946        DD      $L$SEH_end_rsaz_1024_sqr_avx2 wrt ..imagebase
     1947        DD      $L$SEH_info_rsaz_1024_sqr_avx2 wrt ..imagebase
     1948
     1949        DD      $L$SEH_begin_rsaz_1024_mul_avx2 wrt ..imagebase
     1950        DD      $L$SEH_end_rsaz_1024_mul_avx2 wrt ..imagebase
     1951        DD      $L$SEH_info_rsaz_1024_mul_avx2 wrt ..imagebase
     1952
     1953        DD      $L$SEH_begin_rsaz_1024_gather5 wrt ..imagebase
     1954        DD      $L$SEH_end_rsaz_1024_gather5 wrt ..imagebase
     1955        DD      $L$SEH_info_rsaz_1024_gather5 wrt ..imagebase
     1956section .xdata rdata align=8
     1957ALIGN   8
     1958$L$SEH_info_rsaz_1024_sqr_avx2:
     1959DB      9,0,0,0
     1960        DD      rsaz_se_handler wrt ..imagebase
     1961        DD      $L$sqr_1024_body wrt ..imagebase,$L$sqr_1024_epilogue wrt ..imagebase,$L$sqr_1024_in_tail wrt ..imagebase
     1962        DD      0
     1963$L$SEH_info_rsaz_1024_mul_avx2:
     1964DB      9,0,0,0
     1965        DD      rsaz_se_handler wrt ..imagebase
     1966        DD      $L$mul_1024_body wrt ..imagebase,$L$mul_1024_epilogue wrt ..imagebase,$L$mul_1024_in_tail wrt ..imagebase
     1967        DD      0
     1968$L$SEH_info_rsaz_1024_gather5:
     1969DB      0x01,0x36,0x17,0x0b
     1970DB      0x36,0xf8,0x09,0x00
     1971DB      0x31,0xe8,0x08,0x00
     1972DB      0x2c,0xd8,0x07,0x00
     1973DB      0x27,0xc8,0x06,0x00
     1974DB      0x22,0xb8,0x05,0x00
     1975DB      0x1d,0xa8,0x04,0x00
     1976DB      0x18,0x98,0x03,0x00
     1977DB      0x13,0x88,0x02,0x00
     1978DB      0x0e,0x78,0x01,0x00
     1979DB      0x09,0x68,0x00,0x00
     1980DB      0x04,0x01,0x15,0x00
     1981DB      0x00,0xb3,0x00,0x00
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