1e9ada863a7b3e81f5d2b1e3bdd2305da902a87f5Adam Langleydefault rel 2e9ada863a7b3e81f5d2b1e3bdd2305da902a87f5Adam Langley%define XMMWORD 3e9ada863a7b3e81f5d2b1e3bdd2305da902a87f5Adam Langley%define YMMWORD 4e9ada863a7b3e81f5d2b1e3bdd2305da902a87f5Adam Langley%define ZMMWORD 5e9ada863a7b3e81f5d2b1e3bdd2305da902a87f5Adam Langleysection .text code align=64 6d9e397b599b13d642138480a28c14db7a136bf0Adam Langley 7d9e397b599b13d642138480a28c14db7a136bf0Adam Langley 81c9db5392e4ec0845f9a934061677636f5400d14Robert Sloanglobal rsaz_1024_sqr_avx2 9e9ada863a7b3e81f5d2b1e3bdd2305da902a87f5Adam Langley 101c9db5392e4ec0845f9a934061677636f5400d14Robert SloanALIGN 64 111c9db5392e4ec0845f9a934061677636f5400d14Robert Sloanrsaz_1024_sqr_avx2: 121c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan mov QWORD[8+rsp],rdi ;WIN64 prologue 131c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan mov QWORD[16+rsp],rsi 141c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan mov rax,rsp 151c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan$L$SEH_begin_rsaz_1024_sqr_avx2: 161c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan mov rdi,rcx 171c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan mov rsi,rdx 181c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan mov rdx,r8 191c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan mov rcx,r9 201c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan mov r8,QWORD[40+rsp] 21d9e397b599b13d642138480a28c14db7a136bf0Adam Langley 22d9e397b599b13d642138480a28c14db7a136bf0Adam Langley 231c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan 241c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan lea rax,[rsp] 251c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan 261c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan push rbx 271c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan 281c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan push rbp 291c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan 301c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan push r12 311c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan 321c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan push r13 331c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan 341c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan push r14 351c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan 361c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan push r15 371c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan 381c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vzeroupper 391c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan lea rsp,[((-168))+rsp] 401c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vmovaps XMMWORD[(-216)+rax],xmm6 411c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vmovaps XMMWORD[(-200)+rax],xmm7 421c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vmovaps XMMWORD[(-184)+rax],xmm8 431c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vmovaps XMMWORD[(-168)+rax],xmm9 441c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vmovaps XMMWORD[(-152)+rax],xmm10 451c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vmovaps XMMWORD[(-136)+rax],xmm11 461c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vmovaps XMMWORD[(-120)+rax],xmm12 471c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vmovaps XMMWORD[(-104)+rax],xmm13 481c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vmovaps XMMWORD[(-88)+rax],xmm14 491c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vmovaps XMMWORD[(-72)+rax],xmm15 501c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan$L$sqr_1024_body: 511c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan mov rbp,rax 521c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan 531c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan mov r13,rdx 541c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan sub rsp,832 551c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan mov r15,r13 561c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan sub rdi,-128 571c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan sub rsi,-128 581c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan sub r13,-128 591c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan 601c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan and r15,4095 611c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan add r15,32*10 621c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan shr r15,12 631c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpxor ymm9,ymm9,ymm9 641c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan jz NEAR $L$sqr_1024_no_n_copy 651c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan 661c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan 671c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan 681c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan 691c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan 701c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan sub rsp,32*10 711c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vmovdqu ymm0,YMMWORD[((0-128))+r13] 721c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan and rsp,-2048 731c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vmovdqu ymm1,YMMWORD[((32-128))+r13] 741c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vmovdqu ymm2,YMMWORD[((64-128))+r13] 751c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vmovdqu ymm3,YMMWORD[((96-128))+r13] 761c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vmovdqu ymm4,YMMWORD[((128-128))+r13] 771c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vmovdqu ymm5,YMMWORD[((160-128))+r13] 781c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vmovdqu ymm6,YMMWORD[((192-128))+r13] 791c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vmovdqu ymm7,YMMWORD[((224-128))+r13] 801c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vmovdqu ymm8,YMMWORD[((256-128))+r13] 811c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan lea r13,[((832+128))+rsp] 821c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vmovdqu YMMWORD[(0-128)+r13],ymm0 831c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vmovdqu YMMWORD[(32-128)+r13],ymm1 841c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vmovdqu YMMWORD[(64-128)+r13],ymm2 851c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vmovdqu YMMWORD[(96-128)+r13],ymm3 861c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vmovdqu YMMWORD[(128-128)+r13],ymm4 871c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vmovdqu YMMWORD[(160-128)+r13],ymm5 881c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vmovdqu YMMWORD[(192-128)+r13],ymm6 891c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vmovdqu YMMWORD[(224-128)+r13],ymm7 901c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vmovdqu YMMWORD[(256-128)+r13],ymm8 911c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vmovdqu YMMWORD[(288-128)+r13],ymm9 921c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan 931c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan$L$sqr_1024_no_n_copy: 941c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan and rsp,-1024 951c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan 961c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vmovdqu ymm1,YMMWORD[((32-128))+rsi] 971c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vmovdqu ymm2,YMMWORD[((64-128))+rsi] 981c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vmovdqu ymm3,YMMWORD[((96-128))+rsi] 991c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vmovdqu ymm4,YMMWORD[((128-128))+rsi] 1001c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vmovdqu ymm5,YMMWORD[((160-128))+rsi] 1011c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vmovdqu ymm6,YMMWORD[((192-128))+rsi] 1021c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vmovdqu ymm7,YMMWORD[((224-128))+rsi] 1031c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vmovdqu ymm8,YMMWORD[((256-128))+rsi] 1041c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan 1051c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan lea rbx,[192+rsp] 1061c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpbroadcastq ymm15,QWORD[$L$and_mask] 1071c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan jmp NEAR $L$OOP_GRANDE_SQR_1024 1081c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan 1091c9db5392e4ec0845f9a934061677636f5400d14Robert SloanALIGN 32 1101c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan$L$OOP_GRANDE_SQR_1024: 1111c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan lea r9,[((576+128))+rsp] 1121c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan lea r12,[448+rsp] 1131c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan 1141c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan 1151c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan 1161c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan 1171c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpaddq ymm1,ymm1,ymm1 1181c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpbroadcastq ymm10,QWORD[((0-128))+rsi] 1191c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpaddq ymm2,ymm2,ymm2 1201c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vmovdqa YMMWORD[(0-128)+r9],ymm1 1211c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpaddq ymm3,ymm3,ymm3 1221c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vmovdqa YMMWORD[(32-128)+r9],ymm2 1231c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpaddq ymm4,ymm4,ymm4 1241c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vmovdqa YMMWORD[(64-128)+r9],ymm3 1251c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpaddq ymm5,ymm5,ymm5 1261c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vmovdqa YMMWORD[(96-128)+r9],ymm4 1271c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpaddq ymm6,ymm6,ymm6 1281c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vmovdqa YMMWORD[(128-128)+r9],ymm5 1291c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpaddq ymm7,ymm7,ymm7 1301c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vmovdqa YMMWORD[(160-128)+r9],ymm6 1311c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpaddq ymm8,ymm8,ymm8 1321c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vmovdqa YMMWORD[(192-128)+r9],ymm7 1331c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpxor ymm9,ymm9,ymm9 1341c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vmovdqa YMMWORD[(224-128)+r9],ymm8 1351c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan 1361c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpmuludq ymm0,ymm10,YMMWORD[((0-128))+rsi] 1371c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpbroadcastq ymm11,QWORD[((32-128))+rsi] 1381c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vmovdqu YMMWORD[(288-192)+rbx],ymm9 1391c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpmuludq ymm1,ymm1,ymm10 1401c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vmovdqu YMMWORD[(320-448)+r12],ymm9 1411c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpmuludq ymm2,ymm2,ymm10 1421c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vmovdqu YMMWORD[(352-448)+r12],ymm9 1431c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpmuludq ymm3,ymm3,ymm10 1441c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vmovdqu YMMWORD[(384-448)+r12],ymm9 1451c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpmuludq ymm4,ymm4,ymm10 1461c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vmovdqu YMMWORD[(416-448)+r12],ymm9 1471c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpmuludq ymm5,ymm5,ymm10 1481c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vmovdqu YMMWORD[(448-448)+r12],ymm9 1491c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpmuludq ymm6,ymm6,ymm10 1501c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vmovdqu YMMWORD[(480-448)+r12],ymm9 1511c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpmuludq ymm7,ymm7,ymm10 1521c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vmovdqu YMMWORD[(512-448)+r12],ymm9 1531c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpmuludq ymm8,ymm8,ymm10 1541c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpbroadcastq ymm10,QWORD[((64-128))+rsi] 1551c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vmovdqu YMMWORD[(544-448)+r12],ymm9 1561c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan 1571c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan mov r15,rsi 1581c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan mov r14d,4 1591c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan jmp NEAR $L$sqr_entry_1024 1601c9db5392e4ec0845f9a934061677636f5400d14Robert SloanALIGN 32 1611c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan$L$OOP_SQR_1024: 1621c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpbroadcastq ymm11,QWORD[((32-128))+r15] 1631c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpmuludq ymm0,ymm10,YMMWORD[((0-128))+rsi] 1641c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpaddq ymm0,ymm0,YMMWORD[((0-192))+rbx] 1651c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpmuludq ymm1,ymm10,YMMWORD[((0-128))+r9] 1661c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpaddq ymm1,ymm1,YMMWORD[((32-192))+rbx] 1671c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpmuludq ymm2,ymm10,YMMWORD[((32-128))+r9] 1681c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpaddq ymm2,ymm2,YMMWORD[((64-192))+rbx] 1691c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpmuludq ymm3,ymm10,YMMWORD[((64-128))+r9] 1701c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpaddq ymm3,ymm3,YMMWORD[((96-192))+rbx] 1711c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpmuludq ymm4,ymm10,YMMWORD[((96-128))+r9] 1721c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpaddq ymm4,ymm4,YMMWORD[((128-192))+rbx] 1731c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpmuludq ymm5,ymm10,YMMWORD[((128-128))+r9] 1741c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpaddq ymm5,ymm5,YMMWORD[((160-192))+rbx] 1751c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpmuludq ymm6,ymm10,YMMWORD[((160-128))+r9] 1761c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpaddq ymm6,ymm6,YMMWORD[((192-192))+rbx] 1771c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpmuludq ymm7,ymm10,YMMWORD[((192-128))+r9] 1781c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpaddq ymm7,ymm7,YMMWORD[((224-192))+rbx] 1791c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpmuludq ymm8,ymm10,YMMWORD[((224-128))+r9] 1801c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpbroadcastq ymm10,QWORD[((64-128))+r15] 1811c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpaddq ymm8,ymm8,YMMWORD[((256-192))+rbx] 1821c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan$L$sqr_entry_1024: 1831c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vmovdqu YMMWORD[(0-192)+rbx],ymm0 1841c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vmovdqu YMMWORD[(32-192)+rbx],ymm1 1851c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan 1861c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpmuludq ymm12,ymm11,YMMWORD[((32-128))+rsi] 1871c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpaddq ymm2,ymm2,ymm12 1881c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpmuludq ymm14,ymm11,YMMWORD[((32-128))+r9] 1891c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpaddq ymm3,ymm3,ymm14 1901c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpmuludq ymm13,ymm11,YMMWORD[((64-128))+r9] 1911c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpaddq ymm4,ymm4,ymm13 1921c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpmuludq ymm12,ymm11,YMMWORD[((96-128))+r9] 1931c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpaddq ymm5,ymm5,ymm12 1941c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpmuludq ymm14,ymm11,YMMWORD[((128-128))+r9] 1951c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpaddq ymm6,ymm6,ymm14 1961c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpmuludq ymm13,ymm11,YMMWORD[((160-128))+r9] 1971c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpaddq ymm7,ymm7,ymm13 1981c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpmuludq ymm12,ymm11,YMMWORD[((192-128))+r9] 1991c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpaddq ymm8,ymm8,ymm12 2001c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpmuludq ymm0,ymm11,YMMWORD[((224-128))+r9] 2011c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpbroadcastq ymm11,QWORD[((96-128))+r15] 2021c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpaddq ymm0,ymm0,YMMWORD[((288-192))+rbx] 2031c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan 2041c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vmovdqu YMMWORD[(64-192)+rbx],ymm2 2051c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vmovdqu YMMWORD[(96-192)+rbx],ymm3 2061c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan 2071c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpmuludq ymm13,ymm10,YMMWORD[((64-128))+rsi] 2081c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpaddq ymm4,ymm4,ymm13 2091c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpmuludq ymm12,ymm10,YMMWORD[((64-128))+r9] 2101c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpaddq ymm5,ymm5,ymm12 2111c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpmuludq ymm14,ymm10,YMMWORD[((96-128))+r9] 2121c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpaddq ymm6,ymm6,ymm14 2131c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpmuludq ymm13,ymm10,YMMWORD[((128-128))+r9] 2141c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpaddq ymm7,ymm7,ymm13 2151c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpmuludq ymm12,ymm10,YMMWORD[((160-128))+r9] 2161c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpaddq ymm8,ymm8,ymm12 2171c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpmuludq ymm14,ymm10,YMMWORD[((192-128))+r9] 2181c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpaddq ymm0,ymm0,ymm14 2191c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpmuludq ymm1,ymm10,YMMWORD[((224-128))+r9] 2201c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpbroadcastq ymm10,QWORD[((128-128))+r15] 2211c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpaddq ymm1,ymm1,YMMWORD[((320-448))+r12] 2221c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan 2231c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vmovdqu YMMWORD[(128-192)+rbx],ymm4 2241c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vmovdqu YMMWORD[(160-192)+rbx],ymm5 2251c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan 2261c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpmuludq ymm12,ymm11,YMMWORD[((96-128))+rsi] 2271c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpaddq ymm6,ymm6,ymm12 2281c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpmuludq ymm14,ymm11,YMMWORD[((96-128))+r9] 2291c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpaddq ymm7,ymm7,ymm14 2301c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpmuludq ymm13,ymm11,YMMWORD[((128-128))+r9] 2311c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpaddq ymm8,ymm8,ymm13 2321c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpmuludq ymm12,ymm11,YMMWORD[((160-128))+r9] 2331c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpaddq ymm0,ymm0,ymm12 2341c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpmuludq ymm14,ymm11,YMMWORD[((192-128))+r9] 2351c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpaddq ymm1,ymm1,ymm14 2361c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpmuludq ymm2,ymm11,YMMWORD[((224-128))+r9] 2371c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpbroadcastq ymm11,QWORD[((160-128))+r15] 2381c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpaddq ymm2,ymm2,YMMWORD[((352-448))+r12] 2391c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan 2401c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vmovdqu YMMWORD[(192-192)+rbx],ymm6 2411c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vmovdqu YMMWORD[(224-192)+rbx],ymm7 2421c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan 2431c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpmuludq ymm12,ymm10,YMMWORD[((128-128))+rsi] 2441c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpaddq ymm8,ymm8,ymm12 2451c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpmuludq ymm14,ymm10,YMMWORD[((128-128))+r9] 2461c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpaddq ymm0,ymm0,ymm14 2471c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpmuludq ymm13,ymm10,YMMWORD[((160-128))+r9] 2481c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpaddq ymm1,ymm1,ymm13 2491c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpmuludq ymm12,ymm10,YMMWORD[((192-128))+r9] 2501c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpaddq ymm2,ymm2,ymm12 2511c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpmuludq ymm3,ymm10,YMMWORD[((224-128))+r9] 2521c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpbroadcastq ymm10,QWORD[((192-128))+r15] 2531c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpaddq ymm3,ymm3,YMMWORD[((384-448))+r12] 2541c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan 2551c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vmovdqu YMMWORD[(256-192)+rbx],ymm8 2561c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vmovdqu YMMWORD[(288-192)+rbx],ymm0 2571c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan lea rbx,[8+rbx] 2581c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan 2591c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpmuludq ymm13,ymm11,YMMWORD[((160-128))+rsi] 2601c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpaddq ymm1,ymm1,ymm13 2611c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpmuludq ymm12,ymm11,YMMWORD[((160-128))+r9] 2621c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpaddq ymm2,ymm2,ymm12 2631c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpmuludq ymm14,ymm11,YMMWORD[((192-128))+r9] 2641c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpaddq ymm3,ymm3,ymm14 2651c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpmuludq ymm4,ymm11,YMMWORD[((224-128))+r9] 2661c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpbroadcastq ymm11,QWORD[((224-128))+r15] 2671c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpaddq ymm4,ymm4,YMMWORD[((416-448))+r12] 2681c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan 2691c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vmovdqu YMMWORD[(320-448)+r12],ymm1 2701c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vmovdqu YMMWORD[(352-448)+r12],ymm2 2711c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan 2721c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpmuludq ymm12,ymm10,YMMWORD[((192-128))+rsi] 2731c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpaddq ymm3,ymm3,ymm12 2741c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpmuludq ymm14,ymm10,YMMWORD[((192-128))+r9] 2751c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpbroadcastq ymm0,QWORD[((256-128))+r15] 2761c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpaddq ymm4,ymm4,ymm14 2771c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpmuludq ymm5,ymm10,YMMWORD[((224-128))+r9] 2781c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpbroadcastq ymm10,QWORD[((0+8-128))+r15] 2791c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpaddq ymm5,ymm5,YMMWORD[((448-448))+r12] 2801c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan 2811c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vmovdqu YMMWORD[(384-448)+r12],ymm3 2821c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vmovdqu YMMWORD[(416-448)+r12],ymm4 2831c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan lea r15,[8+r15] 2841c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan 2851c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpmuludq ymm12,ymm11,YMMWORD[((224-128))+rsi] 2861c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpaddq ymm5,ymm5,ymm12 2871c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpmuludq ymm6,ymm11,YMMWORD[((224-128))+r9] 2881c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpaddq ymm6,ymm6,YMMWORD[((480-448))+r12] 2891c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan 2901c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpmuludq ymm7,ymm0,YMMWORD[((256-128))+rsi] 2911c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vmovdqu YMMWORD[(448-448)+r12],ymm5 2921c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpaddq ymm7,ymm7,YMMWORD[((512-448))+r12] 2931c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vmovdqu YMMWORD[(480-448)+r12],ymm6 2941c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vmovdqu YMMWORD[(512-448)+r12],ymm7 2951c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan lea r12,[8+r12] 2961c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan 2971c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan dec r14d 2981c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan jnz NEAR $L$OOP_SQR_1024 2991c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan 3001c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vmovdqu ymm8,YMMWORD[256+rsp] 3011c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vmovdqu ymm1,YMMWORD[288+rsp] 3021c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vmovdqu ymm2,YMMWORD[320+rsp] 3031c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan lea rbx,[192+rsp] 3041c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan 3051c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpsrlq ymm14,ymm8,29 3061c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpand ymm8,ymm8,ymm15 3071c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpsrlq ymm11,ymm1,29 3081c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpand ymm1,ymm1,ymm15 3091c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan 3101c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpermq ymm14,ymm14,0x93 3111c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpxor ymm9,ymm9,ymm9 3121c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpermq ymm11,ymm11,0x93 3131c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan 3141c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpblendd ymm10,ymm14,ymm9,3 3151c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpblendd ymm14,ymm11,ymm14,3 3161c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpaddq ymm8,ymm8,ymm10 3171c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpblendd ymm11,ymm9,ymm11,3 3181c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpaddq ymm1,ymm1,ymm14 3191c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpaddq ymm2,ymm2,ymm11 3201c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vmovdqu YMMWORD[(288-192)+rbx],ymm1 3211c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vmovdqu YMMWORD[(320-192)+rbx],ymm2 3221c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan 3231c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan mov rax,QWORD[rsp] 3241c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan mov r10,QWORD[8+rsp] 3251c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan mov r11,QWORD[16+rsp] 3261c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan mov r12,QWORD[24+rsp] 3271c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vmovdqu ymm1,YMMWORD[32+rsp] 3281c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vmovdqu ymm2,YMMWORD[((64-192))+rbx] 3291c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vmovdqu ymm3,YMMWORD[((96-192))+rbx] 3301c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vmovdqu ymm4,YMMWORD[((128-192))+rbx] 3311c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vmovdqu ymm5,YMMWORD[((160-192))+rbx] 3321c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vmovdqu ymm6,YMMWORD[((192-192))+rbx] 3331c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vmovdqu ymm7,YMMWORD[((224-192))+rbx] 3341c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan 3351c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan mov r9,rax 3361c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan imul eax,ecx 3371c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan and eax,0x1fffffff 3381c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vmovd xmm12,eax 3391c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan 3401c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan mov rdx,rax 3411c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan imul rax,QWORD[((-128))+r13] 3421c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpbroadcastq ymm12,xmm12 3431c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan add r9,rax 3441c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan mov rax,rdx 3451c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan imul rax,QWORD[((8-128))+r13] 3461c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan shr r9,29 3471c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan add r10,rax 3481c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan mov rax,rdx 3491c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan imul rax,QWORD[((16-128))+r13] 3501c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan add r10,r9 3511c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan add r11,rax 3521c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan imul rdx,QWORD[((24-128))+r13] 3531c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan add r12,rdx 3541c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan 3551c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan mov rax,r10 3561c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan imul eax,ecx 3571c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan and eax,0x1fffffff 3581c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan 3591c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan mov r14d,9 3601c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan jmp NEAR $L$OOP_REDUCE_1024 3611c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan 3621c9db5392e4ec0845f9a934061677636f5400d14Robert SloanALIGN 32 3631c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan$L$OOP_REDUCE_1024: 3641c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vmovd xmm13,eax 3651c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpbroadcastq ymm13,xmm13 3661c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan 3671c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpmuludq ymm10,ymm12,YMMWORD[((32-128))+r13] 3681c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan mov rdx,rax 3691c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan imul rax,QWORD[((-128))+r13] 3701c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpaddq ymm1,ymm1,ymm10 3711c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan add r10,rax 3721c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpmuludq ymm14,ymm12,YMMWORD[((64-128))+r13] 3731c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan mov rax,rdx 3741c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan imul rax,QWORD[((8-128))+r13] 3751c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpaddq ymm2,ymm2,ymm14 3761c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpmuludq ymm11,ymm12,YMMWORD[((96-128))+r13] 3771c9db5392e4ec0845f9a934061677636f5400d14Robert SloanDB 0x67 3781c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan add r11,rax 3791c9db5392e4ec0845f9a934061677636f5400d14Robert SloanDB 0x67 3801c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan mov rax,rdx 3811c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan imul rax,QWORD[((16-128))+r13] 3821c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan shr r10,29 3831c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpaddq ymm3,ymm3,ymm11 3841c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpmuludq ymm10,ymm12,YMMWORD[((128-128))+r13] 3851c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan add r12,rax 3861c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan add r11,r10 3871c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpaddq ymm4,ymm4,ymm10 3881c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpmuludq ymm14,ymm12,YMMWORD[((160-128))+r13] 3891c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan mov rax,r11 3901c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan imul eax,ecx 3911c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpaddq ymm5,ymm5,ymm14 3921c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpmuludq ymm11,ymm12,YMMWORD[((192-128))+r13] 3931c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan and eax,0x1fffffff 3941c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpaddq ymm6,ymm6,ymm11 3951c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpmuludq ymm10,ymm12,YMMWORD[((224-128))+r13] 3961c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpaddq ymm7,ymm7,ymm10 3971c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpmuludq ymm14,ymm12,YMMWORD[((256-128))+r13] 3981c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vmovd xmm12,eax 3991c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan 4001c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpaddq ymm8,ymm8,ymm14 4011c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan 4021c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpbroadcastq ymm12,xmm12 4031c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan 4041c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpmuludq ymm11,ymm13,YMMWORD[((32-8-128))+r13] 4051c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vmovdqu ymm14,YMMWORD[((96-8-128))+r13] 4061c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan mov rdx,rax 4071c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan imul rax,QWORD[((-128))+r13] 4081c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpaddq ymm1,ymm1,ymm11 4091c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpmuludq ymm10,ymm13,YMMWORD[((64-8-128))+r13] 4101c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vmovdqu ymm11,YMMWORD[((128-8-128))+r13] 4111c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan add r11,rax 4121c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan mov rax,rdx 4131c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan imul rax,QWORD[((8-128))+r13] 4141c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpaddq ymm2,ymm2,ymm10 4151c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan add rax,r12 4161c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan shr r11,29 4171c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpmuludq ymm14,ymm14,ymm13 4181c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vmovdqu ymm10,YMMWORD[((160-8-128))+r13] 4191c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan add rax,r11 4201c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpaddq ymm3,ymm3,ymm14 4211c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpmuludq ymm11,ymm11,ymm13 4221c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vmovdqu ymm14,YMMWORD[((192-8-128))+r13] 4231c9db5392e4ec0845f9a934061677636f5400d14Robert SloanDB 0x67 4241c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan mov r12,rax 4251c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan imul eax,ecx 4261c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpaddq ymm4,ymm4,ymm11 4271c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpmuludq ymm10,ymm10,ymm13 4281c9db5392e4ec0845f9a934061677636f5400d14Robert SloanDB 0xc4,0x41,0x7e,0x6f,0x9d,0x58,0x00,0x00,0x00 4291c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan and eax,0x1fffffff 4301c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpaddq ymm5,ymm5,ymm10 4311c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpmuludq ymm14,ymm14,ymm13 4321c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vmovdqu ymm10,YMMWORD[((256-8-128))+r13] 4331c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpaddq ymm6,ymm6,ymm14 4341c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpmuludq ymm11,ymm11,ymm13 4351c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vmovdqu ymm9,YMMWORD[((288-8-128))+r13] 4361c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vmovd xmm0,eax 4371c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan imul rax,QWORD[((-128))+r13] 4381c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpaddq ymm7,ymm7,ymm11 4391c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpmuludq ymm10,ymm10,ymm13 4401c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vmovdqu ymm14,YMMWORD[((32-16-128))+r13] 4411c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpbroadcastq ymm0,xmm0 4421c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpaddq ymm8,ymm8,ymm10 4431c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpmuludq ymm9,ymm9,ymm13 4441c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vmovdqu ymm11,YMMWORD[((64-16-128))+r13] 4451c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan add r12,rax 4461c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan 4471c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vmovdqu ymm13,YMMWORD[((32-24-128))+r13] 4481c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpmuludq ymm14,ymm14,ymm12 4491c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vmovdqu ymm10,YMMWORD[((96-16-128))+r13] 4501c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpaddq ymm1,ymm1,ymm14 4511c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpmuludq ymm13,ymm13,ymm0 4521c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpmuludq ymm11,ymm11,ymm12 4531c9db5392e4ec0845f9a934061677636f5400d14Robert SloanDB 0xc4,0x41,0x7e,0x6f,0xb5,0xf0,0xff,0xff,0xff 4541c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpaddq ymm13,ymm13,ymm1 4551c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpaddq ymm2,ymm2,ymm11 4561c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpmuludq ymm10,ymm10,ymm12 4571c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vmovdqu ymm11,YMMWORD[((160-16-128))+r13] 4581c9db5392e4ec0845f9a934061677636f5400d14Robert SloanDB 0x67 4591c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vmovq rax,xmm13 4601c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vmovdqu YMMWORD[rsp],ymm13 4611c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpaddq ymm3,ymm3,ymm10 4621c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpmuludq ymm14,ymm14,ymm12 4631c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vmovdqu ymm10,YMMWORD[((192-16-128))+r13] 4641c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpaddq ymm4,ymm4,ymm14 4651c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpmuludq ymm11,ymm11,ymm12 4661c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vmovdqu ymm14,YMMWORD[((224-16-128))+r13] 4671c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpaddq ymm5,ymm5,ymm11 4681c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpmuludq ymm10,ymm10,ymm12 4691c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vmovdqu ymm11,YMMWORD[((256-16-128))+r13] 4701c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpaddq ymm6,ymm6,ymm10 4711c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpmuludq ymm14,ymm14,ymm12 4721c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan shr r12,29 4731c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vmovdqu ymm10,YMMWORD[((288-16-128))+r13] 4741c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan add rax,r12 4751c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpaddq ymm7,ymm7,ymm14 4761c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpmuludq ymm11,ymm11,ymm12 4771c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan 4781c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan mov r9,rax 4791c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan imul eax,ecx 4801c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpaddq ymm8,ymm8,ymm11 4811c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpmuludq ymm10,ymm10,ymm12 4821c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan and eax,0x1fffffff 4831c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vmovd xmm12,eax 4841c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vmovdqu ymm11,YMMWORD[((96-24-128))+r13] 4851c9db5392e4ec0845f9a934061677636f5400d14Robert SloanDB 0x67 4861c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpaddq ymm9,ymm9,ymm10 4871c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpbroadcastq ymm12,xmm12 4881c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan 4891c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpmuludq ymm14,ymm0,YMMWORD[((64-24-128))+r13] 4901c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vmovdqu ymm10,YMMWORD[((128-24-128))+r13] 4911c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan mov rdx,rax 4921c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan imul rax,QWORD[((-128))+r13] 4931c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan mov r10,QWORD[8+rsp] 4941c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpaddq ymm1,ymm2,ymm14 4951c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpmuludq ymm11,ymm11,ymm0 4961c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vmovdqu ymm14,YMMWORD[((160-24-128))+r13] 4971c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan add r9,rax 4981c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan mov rax,rdx 4991c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan imul rax,QWORD[((8-128))+r13] 5001c9db5392e4ec0845f9a934061677636f5400d14Robert SloanDB 0x67 5011c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan shr r9,29 5021c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan mov r11,QWORD[16+rsp] 5031c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpaddq ymm2,ymm3,ymm11 5041c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpmuludq ymm10,ymm10,ymm0 5051c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vmovdqu ymm11,YMMWORD[((192-24-128))+r13] 5061c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan add r10,rax 5071c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan mov rax,rdx 5081c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan imul rax,QWORD[((16-128))+r13] 5091c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpaddq ymm3,ymm4,ymm10 5101c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpmuludq ymm14,ymm14,ymm0 5111c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vmovdqu ymm10,YMMWORD[((224-24-128))+r13] 5121c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan imul rdx,QWORD[((24-128))+r13] 5131c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan add r11,rax 5141c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan lea rax,[r10*1+r9] 5151c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpaddq ymm4,ymm5,ymm14 5161c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpmuludq ymm11,ymm11,ymm0 5171c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vmovdqu ymm14,YMMWORD[((256-24-128))+r13] 5181c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan mov r10,rax 5191c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan imul eax,ecx 5201c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpmuludq ymm10,ymm10,ymm0 5211c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpaddq ymm5,ymm6,ymm11 5221c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vmovdqu ymm11,YMMWORD[((288-24-128))+r13] 5231c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan and eax,0x1fffffff 5241c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpaddq ymm6,ymm7,ymm10 5251c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpmuludq ymm14,ymm14,ymm0 5261c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan add rdx,QWORD[24+rsp] 5271c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpaddq ymm7,ymm8,ymm14 5281c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpmuludq ymm11,ymm11,ymm0 5291c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpaddq ymm8,ymm9,ymm11 5301c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vmovq xmm9,r12 5311c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan mov r12,rdx 5321c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan 5331c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan dec r14d 5341c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan jnz NEAR $L$OOP_REDUCE_1024 5351c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan lea r12,[448+rsp] 5361c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpaddq ymm0,ymm13,ymm9 5371c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpxor ymm9,ymm9,ymm9 5381c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan 5391c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpaddq ymm0,ymm0,YMMWORD[((288-192))+rbx] 5401c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpaddq ymm1,ymm1,YMMWORD[((320-448))+r12] 5411c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpaddq ymm2,ymm2,YMMWORD[((352-448))+r12] 5421c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpaddq ymm3,ymm3,YMMWORD[((384-448))+r12] 5431c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpaddq ymm4,ymm4,YMMWORD[((416-448))+r12] 5441c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpaddq ymm5,ymm5,YMMWORD[((448-448))+r12] 5451c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpaddq ymm6,ymm6,YMMWORD[((480-448))+r12] 5461c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpaddq ymm7,ymm7,YMMWORD[((512-448))+r12] 5471c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpaddq ymm8,ymm8,YMMWORD[((544-448))+r12] 5481c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan 5491c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpsrlq ymm14,ymm0,29 5501c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpand ymm0,ymm0,ymm15 5511c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpsrlq ymm11,ymm1,29 5521c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpand ymm1,ymm1,ymm15 5531c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpsrlq ymm12,ymm2,29 5541c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpermq ymm14,ymm14,0x93 5551c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpand ymm2,ymm2,ymm15 5561c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpsrlq ymm13,ymm3,29 5571c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpermq ymm11,ymm11,0x93 5581c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpand ymm3,ymm3,ymm15 5591c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpermq ymm12,ymm12,0x93 5601c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan 5611c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpblendd ymm10,ymm14,ymm9,3 5621c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpermq ymm13,ymm13,0x93 5631c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpblendd ymm14,ymm11,ymm14,3 5641c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpaddq ymm0,ymm0,ymm10 5651c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpblendd ymm11,ymm12,ymm11,3 5661c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpaddq ymm1,ymm1,ymm14 5671c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpblendd ymm12,ymm13,ymm12,3 5681c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpaddq ymm2,ymm2,ymm11 5691c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpblendd ymm13,ymm9,ymm13,3 5701c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpaddq ymm3,ymm3,ymm12 5711c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpaddq ymm4,ymm4,ymm13 5721c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan 5731c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpsrlq ymm14,ymm0,29 5741c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpand ymm0,ymm0,ymm15 5751c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpsrlq ymm11,ymm1,29 5761c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpand ymm1,ymm1,ymm15 5771c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpsrlq ymm12,ymm2,29 5781c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpermq ymm14,ymm14,0x93 5791c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpand ymm2,ymm2,ymm15 5801c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpsrlq ymm13,ymm3,29 5811c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpermq ymm11,ymm11,0x93 5821c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpand ymm3,ymm3,ymm15 5831c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpermq ymm12,ymm12,0x93 5841c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan 5851c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpblendd ymm10,ymm14,ymm9,3 5861c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpermq ymm13,ymm13,0x93 5871c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpblendd ymm14,ymm11,ymm14,3 5881c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpaddq ymm0,ymm0,ymm10 5891c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpblendd ymm11,ymm12,ymm11,3 5901c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpaddq ymm1,ymm1,ymm14 5911c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vmovdqu YMMWORD[(0-128)+rdi],ymm0 5921c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpblendd ymm12,ymm13,ymm12,3 5931c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpaddq ymm2,ymm2,ymm11 5941c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vmovdqu YMMWORD[(32-128)+rdi],ymm1 5951c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpblendd ymm13,ymm9,ymm13,3 5961c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpaddq ymm3,ymm3,ymm12 5971c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vmovdqu YMMWORD[(64-128)+rdi],ymm2 5981c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpaddq ymm4,ymm4,ymm13 5991c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vmovdqu YMMWORD[(96-128)+rdi],ymm3 6001c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpsrlq ymm14,ymm4,29 6011c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpand ymm4,ymm4,ymm15 6021c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpsrlq ymm11,ymm5,29 6031c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpand ymm5,ymm5,ymm15 6041c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpsrlq ymm12,ymm6,29 6051c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpermq ymm14,ymm14,0x93 6061c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpand ymm6,ymm6,ymm15 6071c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpsrlq ymm13,ymm7,29 6081c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpermq ymm11,ymm11,0x93 6091c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpand ymm7,ymm7,ymm15 6101c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpsrlq ymm0,ymm8,29 6111c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpermq ymm12,ymm12,0x93 6121c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpand ymm8,ymm8,ymm15 6131c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpermq ymm13,ymm13,0x93 6141c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan 6151c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpblendd ymm10,ymm14,ymm9,3 6161c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpermq ymm0,ymm0,0x93 6171c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpblendd ymm14,ymm11,ymm14,3 6181c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpaddq ymm4,ymm4,ymm10 6191c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpblendd ymm11,ymm12,ymm11,3 6201c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpaddq ymm5,ymm5,ymm14 6211c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpblendd ymm12,ymm13,ymm12,3 6221c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpaddq ymm6,ymm6,ymm11 6231c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpblendd ymm13,ymm0,ymm13,3 6241c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpaddq ymm7,ymm7,ymm12 6251c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpaddq ymm8,ymm8,ymm13 6261c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan 6271c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpsrlq ymm14,ymm4,29 6281c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpand ymm4,ymm4,ymm15 6291c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpsrlq ymm11,ymm5,29 6301c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpand ymm5,ymm5,ymm15 6311c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpsrlq ymm12,ymm6,29 6321c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpermq ymm14,ymm14,0x93 6331c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpand ymm6,ymm6,ymm15 6341c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpsrlq ymm13,ymm7,29 6351c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpermq ymm11,ymm11,0x93 6361c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpand ymm7,ymm7,ymm15 6371c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpsrlq ymm0,ymm8,29 6381c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpermq ymm12,ymm12,0x93 6391c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpand ymm8,ymm8,ymm15 6401c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpermq ymm13,ymm13,0x93 6411c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan 6421c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpblendd ymm10,ymm14,ymm9,3 6431c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpermq ymm0,ymm0,0x93 6441c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpblendd ymm14,ymm11,ymm14,3 6451c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpaddq ymm4,ymm4,ymm10 6461c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpblendd ymm11,ymm12,ymm11,3 6471c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpaddq ymm5,ymm5,ymm14 6481c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vmovdqu YMMWORD[(128-128)+rdi],ymm4 6491c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpblendd ymm12,ymm13,ymm12,3 6501c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpaddq ymm6,ymm6,ymm11 6511c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vmovdqu YMMWORD[(160-128)+rdi],ymm5 6521c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpblendd ymm13,ymm0,ymm13,3 6531c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpaddq ymm7,ymm7,ymm12 6541c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vmovdqu YMMWORD[(192-128)+rdi],ymm6 6551c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpaddq ymm8,ymm8,ymm13 6561c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vmovdqu YMMWORD[(224-128)+rdi],ymm7 6571c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vmovdqu YMMWORD[(256-128)+rdi],ymm8 6581c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan 6591c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan mov rsi,rdi 6601c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan dec r8d 6611c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan jne NEAR $L$OOP_GRANDE_SQR_1024 6621c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan 6631c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vzeroall 6641c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan mov rax,rbp 6651c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan 6661c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan$L$sqr_1024_in_tail: 6671c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan movaps xmm6,XMMWORD[((-216))+rax] 6681c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan movaps xmm7,XMMWORD[((-200))+rax] 6691c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan movaps xmm8,XMMWORD[((-184))+rax] 6701c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan movaps xmm9,XMMWORD[((-168))+rax] 6711c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan movaps xmm10,XMMWORD[((-152))+rax] 6721c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan movaps xmm11,XMMWORD[((-136))+rax] 6731c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan movaps xmm12,XMMWORD[((-120))+rax] 6741c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan movaps xmm13,XMMWORD[((-104))+rax] 6751c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan movaps xmm14,XMMWORD[((-88))+rax] 6761c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan movaps xmm15,XMMWORD[((-72))+rax] 6771c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan mov r15,QWORD[((-48))+rax] 6781c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan 6791c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan mov r14,QWORD[((-40))+rax] 6801c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan 6811c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan mov r13,QWORD[((-32))+rax] 6821c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan 6831c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan mov r12,QWORD[((-24))+rax] 6841c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan 6851c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan mov rbp,QWORD[((-16))+rax] 6861c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan 6871c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan mov rbx,QWORD[((-8))+rax] 6881c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan 6891c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan lea rsp,[rax] 6901c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan 6911c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan$L$sqr_1024_epilogue: 6921c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan mov rdi,QWORD[8+rsp] ;WIN64 epilogue 6931c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan mov rsi,QWORD[16+rsp] 6941c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan DB 0F3h,0C3h ;repret 6951c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan 6961c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan$L$SEH_end_rsaz_1024_sqr_avx2: 697e9ada863a7b3e81f5d2b1e3bdd2305da902a87f5Adam Langleyglobal rsaz_1024_mul_avx2 698e9ada863a7b3e81f5d2b1e3bdd2305da902a87f5Adam Langley 6991c9db5392e4ec0845f9a934061677636f5400d14Robert SloanALIGN 64 700e9ada863a7b3e81f5d2b1e3bdd2305da902a87f5Adam Langleyrsaz_1024_mul_avx2: 7011c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan mov QWORD[8+rsp],rdi ;WIN64 prologue 7021c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan mov QWORD[16+rsp],rsi 7031c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan mov rax,rsp 7041c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan$L$SEH_begin_rsaz_1024_mul_avx2: 7051c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan mov rdi,rcx 7061c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan mov rsi,rdx 7071c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan mov rdx,r8 7081c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan mov rcx,r9 7091c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan mov r8,QWORD[40+rsp] 7101c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan 7111c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan 7121c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan 7131c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan lea rax,[rsp] 7141c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan 7151c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan push rbx 7161c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan 7171c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan push rbp 7181c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan 7191c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan push r12 7201c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan 7211c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan push r13 7221c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan 7231c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan push r14 7241c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan 7251c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan push r15 7261c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan 7271c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vzeroupper 7281c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan lea rsp,[((-168))+rsp] 7291c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vmovaps XMMWORD[(-216)+rax],xmm6 7301c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vmovaps XMMWORD[(-200)+rax],xmm7 7311c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vmovaps XMMWORD[(-184)+rax],xmm8 7321c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vmovaps XMMWORD[(-168)+rax],xmm9 7331c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vmovaps XMMWORD[(-152)+rax],xmm10 7341c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vmovaps XMMWORD[(-136)+rax],xmm11 7351c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vmovaps XMMWORD[(-120)+rax],xmm12 7361c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vmovaps XMMWORD[(-104)+rax],xmm13 7371c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vmovaps XMMWORD[(-88)+rax],xmm14 7381c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vmovaps XMMWORD[(-72)+rax],xmm15 7391c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan$L$mul_1024_body: 7401c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan mov rbp,rax 7411c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan 7421c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vzeroall 7431c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan mov r13,rdx 7441c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan sub rsp,64 7451c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan 7461c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan 7471c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan 7481c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan 7491c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan 7501c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan 7511c9db5392e4ec0845f9a934061677636f5400d14Robert SloanDB 0x67,0x67 7521c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan mov r15,rsi 7531c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan and r15,4095 7541c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan add r15,32*10 7551c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan shr r15,12 7561c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan mov r15,rsi 7571c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan cmovnz rsi,r13 7581c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan cmovnz r13,r15 7591c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan 7601c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan mov r15,rcx 7611c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan sub rsi,-128 7621c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan sub rcx,-128 7631c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan sub rdi,-128 7641c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan 7651c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan and r15,4095 7661c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan add r15,32*10 7671c9db5392e4ec0845f9a934061677636f5400d14Robert SloanDB 0x67,0x67 7681c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan shr r15,12 7691c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan jz NEAR $L$mul_1024_no_n_copy 7701c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan 7711c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan 7721c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan 7731c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan 7741c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan 7751c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan sub rsp,32*10 7761c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vmovdqu ymm0,YMMWORD[((0-128))+rcx] 7771c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan and rsp,-512 7781c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vmovdqu ymm1,YMMWORD[((32-128))+rcx] 7791c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vmovdqu ymm2,YMMWORD[((64-128))+rcx] 7801c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vmovdqu ymm3,YMMWORD[((96-128))+rcx] 7811c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vmovdqu ymm4,YMMWORD[((128-128))+rcx] 7821c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vmovdqu ymm5,YMMWORD[((160-128))+rcx] 7831c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vmovdqu ymm6,YMMWORD[((192-128))+rcx] 7841c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vmovdqu ymm7,YMMWORD[((224-128))+rcx] 7851c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vmovdqu ymm8,YMMWORD[((256-128))+rcx] 7861c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan lea rcx,[((64+128))+rsp] 7871c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vmovdqu YMMWORD[(0-128)+rcx],ymm0 7881c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpxor ymm0,ymm0,ymm0 7891c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vmovdqu YMMWORD[(32-128)+rcx],ymm1 7901c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpxor ymm1,ymm1,ymm1 7911c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vmovdqu YMMWORD[(64-128)+rcx],ymm2 7921c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpxor ymm2,ymm2,ymm2 7931c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vmovdqu YMMWORD[(96-128)+rcx],ymm3 7941c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpxor ymm3,ymm3,ymm3 7951c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vmovdqu YMMWORD[(128-128)+rcx],ymm4 7961c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpxor ymm4,ymm4,ymm4 7971c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vmovdqu YMMWORD[(160-128)+rcx],ymm5 7981c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpxor ymm5,ymm5,ymm5 7991c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vmovdqu YMMWORD[(192-128)+rcx],ymm6 8001c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpxor ymm6,ymm6,ymm6 8011c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vmovdqu YMMWORD[(224-128)+rcx],ymm7 8021c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpxor ymm7,ymm7,ymm7 8031c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vmovdqu YMMWORD[(256-128)+rcx],ymm8 8041c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vmovdqa ymm8,ymm0 8051c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vmovdqu YMMWORD[(288-128)+rcx],ymm9 8061c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan$L$mul_1024_no_n_copy: 8071c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan and rsp,-64 8081c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan 8091c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan mov rbx,QWORD[r13] 8101c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpbroadcastq ymm10,QWORD[r13] 8111c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vmovdqu YMMWORD[rsp],ymm0 8121c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan xor r9,r9 8131c9db5392e4ec0845f9a934061677636f5400d14Robert SloanDB 0x67 8141c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan xor r10,r10 8151c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan xor r11,r11 8161c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan xor r12,r12 8171c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan 8181c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vmovdqu ymm15,YMMWORD[$L$and_mask] 8191c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan mov r14d,9 8201c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vmovdqu YMMWORD[(288-128)+rdi],ymm9 8211c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan jmp NEAR $L$oop_mul_1024 8221c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan 8231c9db5392e4ec0845f9a934061677636f5400d14Robert SloanALIGN 32 8241c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan$L$oop_mul_1024: 8251c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpsrlq ymm9,ymm3,29 8261c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan mov rax,rbx 8271c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan imul rax,QWORD[((-128))+rsi] 8281c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan add rax,r9 8291c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan mov r10,rbx 8301c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan imul r10,QWORD[((8-128))+rsi] 8311c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan add r10,QWORD[8+rsp] 8321c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan 8331c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan mov r9,rax 8341c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan imul eax,r8d 8351c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan and eax,0x1fffffff 8361c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan 8371c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan mov r11,rbx 8381c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan imul r11,QWORD[((16-128))+rsi] 8391c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan add r11,QWORD[16+rsp] 8401c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan 8411c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan mov r12,rbx 8421c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan imul r12,QWORD[((24-128))+rsi] 8431c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan add r12,QWORD[24+rsp] 8441c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpmuludq ymm0,ymm10,YMMWORD[((32-128))+rsi] 8451c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vmovd xmm11,eax 8461c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpaddq ymm1,ymm1,ymm0 8471c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpmuludq ymm12,ymm10,YMMWORD[((64-128))+rsi] 8481c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpbroadcastq ymm11,xmm11 8491c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpaddq ymm2,ymm2,ymm12 8501c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpmuludq ymm13,ymm10,YMMWORD[((96-128))+rsi] 8511c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpand ymm3,ymm3,ymm15 8521c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpaddq ymm3,ymm3,ymm13 8531c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpmuludq ymm0,ymm10,YMMWORD[((128-128))+rsi] 8541c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpaddq ymm4,ymm4,ymm0 8551c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpmuludq ymm12,ymm10,YMMWORD[((160-128))+rsi] 8561c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpaddq ymm5,ymm5,ymm12 8571c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpmuludq ymm13,ymm10,YMMWORD[((192-128))+rsi] 8581c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpaddq ymm6,ymm6,ymm13 8591c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpmuludq ymm0,ymm10,YMMWORD[((224-128))+rsi] 8601c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpermq ymm9,ymm9,0x93 8611c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpaddq ymm7,ymm7,ymm0 8621c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpmuludq ymm12,ymm10,YMMWORD[((256-128))+rsi] 8631c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpbroadcastq ymm10,QWORD[8+r13] 8641c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpaddq ymm8,ymm8,ymm12 8651c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan 8661c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan mov rdx,rax 8671c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan imul rax,QWORD[((-128))+rcx] 8681c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan add r9,rax 8691c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan mov rax,rdx 8701c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan imul rax,QWORD[((8-128))+rcx] 8711c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan add r10,rax 8721c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan mov rax,rdx 8731c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan imul rax,QWORD[((16-128))+rcx] 8741c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan add r11,rax 8751c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan shr r9,29 8761c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan imul rdx,QWORD[((24-128))+rcx] 8771c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan add r12,rdx 8781c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan add r10,r9 8791c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan 8801c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpmuludq ymm13,ymm11,YMMWORD[((32-128))+rcx] 8811c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vmovq rbx,xmm10 8821c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpaddq ymm1,ymm1,ymm13 8831c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpmuludq ymm0,ymm11,YMMWORD[((64-128))+rcx] 8841c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpaddq ymm2,ymm2,ymm0 8851c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpmuludq ymm12,ymm11,YMMWORD[((96-128))+rcx] 8861c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpaddq ymm3,ymm3,ymm12 8871c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpmuludq ymm13,ymm11,YMMWORD[((128-128))+rcx] 8881c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpaddq ymm4,ymm4,ymm13 8891c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpmuludq ymm0,ymm11,YMMWORD[((160-128))+rcx] 8901c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpaddq ymm5,ymm5,ymm0 8911c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpmuludq ymm12,ymm11,YMMWORD[((192-128))+rcx] 8921c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpaddq ymm6,ymm6,ymm12 8931c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpmuludq ymm13,ymm11,YMMWORD[((224-128))+rcx] 8941c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpblendd ymm9,ymm9,ymm14,3 8951c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpaddq ymm7,ymm7,ymm13 8961c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpmuludq ymm0,ymm11,YMMWORD[((256-128))+rcx] 8971c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpaddq ymm3,ymm3,ymm9 8981c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpaddq ymm8,ymm8,ymm0 8991c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan 9001c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan mov rax,rbx 9011c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan imul rax,QWORD[((-128))+rsi] 9021c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan add r10,rax 9031c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vmovdqu ymm12,YMMWORD[((-8+32-128))+rsi] 9041c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan mov rax,rbx 9051c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan imul rax,QWORD[((8-128))+rsi] 9061c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan add r11,rax 9071c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vmovdqu ymm13,YMMWORD[((-8+64-128))+rsi] 9081c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan 9091c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan mov rax,r10 9101c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan imul eax,r8d 9111c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan and eax,0x1fffffff 9121c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan 9131c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan imul rbx,QWORD[((16-128))+rsi] 9141c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan add r12,rbx 9151c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpmuludq ymm12,ymm12,ymm10 9161c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vmovd xmm11,eax 9171c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vmovdqu ymm0,YMMWORD[((-8+96-128))+rsi] 9181c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpaddq ymm1,ymm1,ymm12 9191c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpmuludq ymm13,ymm13,ymm10 9201c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpbroadcastq ymm11,xmm11 9211c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vmovdqu ymm12,YMMWORD[((-8+128-128))+rsi] 9221c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpaddq ymm2,ymm2,ymm13 9231c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpmuludq ymm0,ymm0,ymm10 9241c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vmovdqu ymm13,YMMWORD[((-8+160-128))+rsi] 9251c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpaddq ymm3,ymm3,ymm0 9261c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpmuludq ymm12,ymm12,ymm10 9271c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vmovdqu ymm0,YMMWORD[((-8+192-128))+rsi] 9281c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpaddq ymm4,ymm4,ymm12 9291c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpmuludq ymm13,ymm13,ymm10 9301c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vmovdqu ymm12,YMMWORD[((-8+224-128))+rsi] 9311c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpaddq ymm5,ymm5,ymm13 9321c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpmuludq ymm0,ymm0,ymm10 9331c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vmovdqu ymm13,YMMWORD[((-8+256-128))+rsi] 9341c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpaddq ymm6,ymm6,ymm0 9351c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpmuludq ymm12,ymm12,ymm10 9361c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vmovdqu ymm9,YMMWORD[((-8+288-128))+rsi] 9371c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpaddq ymm7,ymm7,ymm12 9381c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpmuludq ymm13,ymm13,ymm10 9391c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpaddq ymm8,ymm8,ymm13 9401c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpmuludq ymm9,ymm9,ymm10 9411c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpbroadcastq ymm10,QWORD[16+r13] 9421c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan 9431c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan mov rdx,rax 9441c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan imul rax,QWORD[((-128))+rcx] 9451c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan add r10,rax 9461c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vmovdqu ymm0,YMMWORD[((-8+32-128))+rcx] 9471c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan mov rax,rdx 9481c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan imul rax,QWORD[((8-128))+rcx] 9491c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan add r11,rax 9501c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vmovdqu ymm12,YMMWORD[((-8+64-128))+rcx] 9511c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan shr r10,29 9521c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan imul rdx,QWORD[((16-128))+rcx] 9531c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan add r12,rdx 9541c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan add r11,r10 9551c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan 9561c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpmuludq ymm0,ymm0,ymm11 9571c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vmovq rbx,xmm10 9581c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vmovdqu ymm13,YMMWORD[((-8+96-128))+rcx] 9591c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpaddq ymm1,ymm1,ymm0 9601c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpmuludq ymm12,ymm12,ymm11 9611c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vmovdqu ymm0,YMMWORD[((-8+128-128))+rcx] 9621c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpaddq ymm2,ymm2,ymm12 9631c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpmuludq ymm13,ymm13,ymm11 9641c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vmovdqu ymm12,YMMWORD[((-8+160-128))+rcx] 9651c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpaddq ymm3,ymm3,ymm13 9661c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpmuludq ymm0,ymm0,ymm11 9671c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vmovdqu ymm13,YMMWORD[((-8+192-128))+rcx] 9681c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpaddq ymm4,ymm4,ymm0 9691c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpmuludq ymm12,ymm12,ymm11 9701c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vmovdqu ymm0,YMMWORD[((-8+224-128))+rcx] 9711c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpaddq ymm5,ymm5,ymm12 9721c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpmuludq ymm13,ymm13,ymm11 9731c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vmovdqu ymm12,YMMWORD[((-8+256-128))+rcx] 9741c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpaddq ymm6,ymm6,ymm13 9751c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpmuludq ymm0,ymm0,ymm11 9761c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vmovdqu ymm13,YMMWORD[((-8+288-128))+rcx] 9771c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpaddq ymm7,ymm7,ymm0 9781c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpmuludq ymm12,ymm12,ymm11 9791c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpaddq ymm8,ymm8,ymm12 9801c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpmuludq ymm13,ymm13,ymm11 9811c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpaddq ymm9,ymm9,ymm13 9821c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan 9831c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vmovdqu ymm0,YMMWORD[((-16+32-128))+rsi] 9841c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan mov rax,rbx 9851c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan imul rax,QWORD[((-128))+rsi] 9861c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan add rax,r11 9871c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan 9881c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vmovdqu ymm12,YMMWORD[((-16+64-128))+rsi] 9891c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan mov r11,rax 9901c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan imul eax,r8d 9911c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan and eax,0x1fffffff 9921c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan 9931c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan imul rbx,QWORD[((8-128))+rsi] 9941c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan add r12,rbx 9951c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpmuludq ymm0,ymm0,ymm10 9961c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vmovd xmm11,eax 9971c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vmovdqu ymm13,YMMWORD[((-16+96-128))+rsi] 9981c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpaddq ymm1,ymm1,ymm0 9991c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpmuludq ymm12,ymm12,ymm10 10001c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpbroadcastq ymm11,xmm11 10011c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vmovdqu ymm0,YMMWORD[((-16+128-128))+rsi] 10021c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpaddq ymm2,ymm2,ymm12 10031c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpmuludq ymm13,ymm13,ymm10 10041c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vmovdqu ymm12,YMMWORD[((-16+160-128))+rsi] 10051c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpaddq ymm3,ymm3,ymm13 10061c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpmuludq ymm0,ymm0,ymm10 10071c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vmovdqu ymm13,YMMWORD[((-16+192-128))+rsi] 10081c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpaddq ymm4,ymm4,ymm0 10091c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpmuludq ymm12,ymm12,ymm10 10101c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vmovdqu ymm0,YMMWORD[((-16+224-128))+rsi] 10111c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpaddq ymm5,ymm5,ymm12 10121c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpmuludq ymm13,ymm13,ymm10 10131c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vmovdqu ymm12,YMMWORD[((-16+256-128))+rsi] 10141c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpaddq ymm6,ymm6,ymm13 10151c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpmuludq ymm0,ymm0,ymm10 10161c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vmovdqu ymm13,YMMWORD[((-16+288-128))+rsi] 10171c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpaddq ymm7,ymm7,ymm0 10181c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpmuludq ymm12,ymm12,ymm10 10191c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpaddq ymm8,ymm8,ymm12 10201c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpmuludq ymm13,ymm13,ymm10 10211c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpbroadcastq ymm10,QWORD[24+r13] 10221c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpaddq ymm9,ymm9,ymm13 10231c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan 10241c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vmovdqu ymm0,YMMWORD[((-16+32-128))+rcx] 10251c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan mov rdx,rax 10261c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan imul rax,QWORD[((-128))+rcx] 10271c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan add r11,rax 10281c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vmovdqu ymm12,YMMWORD[((-16+64-128))+rcx] 10291c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan imul rdx,QWORD[((8-128))+rcx] 10301c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan add r12,rdx 10311c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan shr r11,29 10321c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan 10331c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpmuludq ymm0,ymm0,ymm11 10341c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vmovq rbx,xmm10 10351c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vmovdqu ymm13,YMMWORD[((-16+96-128))+rcx] 10361c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpaddq ymm1,ymm1,ymm0 10371c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpmuludq ymm12,ymm12,ymm11 10381c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vmovdqu ymm0,YMMWORD[((-16+128-128))+rcx] 10391c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpaddq ymm2,ymm2,ymm12 10401c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpmuludq ymm13,ymm13,ymm11 10411c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vmovdqu ymm12,YMMWORD[((-16+160-128))+rcx] 10421c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpaddq ymm3,ymm3,ymm13 10431c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpmuludq ymm0,ymm0,ymm11 10441c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vmovdqu ymm13,YMMWORD[((-16+192-128))+rcx] 10451c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpaddq ymm4,ymm4,ymm0 10461c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpmuludq ymm12,ymm12,ymm11 10471c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vmovdqu ymm0,YMMWORD[((-16+224-128))+rcx] 10481c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpaddq ymm5,ymm5,ymm12 10491c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpmuludq ymm13,ymm13,ymm11 10501c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vmovdqu ymm12,YMMWORD[((-16+256-128))+rcx] 10511c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpaddq ymm6,ymm6,ymm13 10521c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpmuludq ymm0,ymm0,ymm11 10531c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vmovdqu ymm13,YMMWORD[((-16+288-128))+rcx] 10541c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpaddq ymm7,ymm7,ymm0 10551c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpmuludq ymm12,ymm12,ymm11 10561c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vmovdqu ymm0,YMMWORD[((-24+32-128))+rsi] 10571c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpaddq ymm8,ymm8,ymm12 10581c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpmuludq ymm13,ymm13,ymm11 10591c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vmovdqu ymm12,YMMWORD[((-24+64-128))+rsi] 10601c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpaddq ymm9,ymm9,ymm13 10611c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan 10621c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan add r12,r11 10631c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan imul rbx,QWORD[((-128))+rsi] 10641c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan add r12,rbx 10651c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan 10661c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan mov rax,r12 10671c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan imul eax,r8d 10681c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan and eax,0x1fffffff 10691c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan 10701c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpmuludq ymm0,ymm0,ymm10 10711c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vmovd xmm11,eax 10721c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vmovdqu ymm13,YMMWORD[((-24+96-128))+rsi] 10731c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpaddq ymm1,ymm1,ymm0 10741c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpmuludq ymm12,ymm12,ymm10 10751c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpbroadcastq ymm11,xmm11 10761c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vmovdqu ymm0,YMMWORD[((-24+128-128))+rsi] 10771c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpaddq ymm2,ymm2,ymm12 10781c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpmuludq ymm13,ymm13,ymm10 10791c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vmovdqu ymm12,YMMWORD[((-24+160-128))+rsi] 10801c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpaddq ymm3,ymm3,ymm13 10811c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpmuludq ymm0,ymm0,ymm10 10821c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vmovdqu ymm13,YMMWORD[((-24+192-128))+rsi] 10831c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpaddq ymm4,ymm4,ymm0 10841c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpmuludq ymm12,ymm12,ymm10 10851c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vmovdqu ymm0,YMMWORD[((-24+224-128))+rsi] 10861c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpaddq ymm5,ymm5,ymm12 10871c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpmuludq ymm13,ymm13,ymm10 10881c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vmovdqu ymm12,YMMWORD[((-24+256-128))+rsi] 10891c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpaddq ymm6,ymm6,ymm13 10901c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpmuludq ymm0,ymm0,ymm10 10911c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vmovdqu ymm13,YMMWORD[((-24+288-128))+rsi] 10921c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpaddq ymm7,ymm7,ymm0 10931c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpmuludq ymm12,ymm12,ymm10 10941c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpaddq ymm8,ymm8,ymm12 10951c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpmuludq ymm13,ymm13,ymm10 10961c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpbroadcastq ymm10,QWORD[32+r13] 10971c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpaddq ymm9,ymm9,ymm13 10981c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan add r13,32 10991c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan 11001c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vmovdqu ymm0,YMMWORD[((-24+32-128))+rcx] 11011c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan imul rax,QWORD[((-128))+rcx] 11021c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan add r12,rax 11031c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan shr r12,29 11041c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan 11051c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vmovdqu ymm12,YMMWORD[((-24+64-128))+rcx] 11061c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpmuludq ymm0,ymm0,ymm11 11071c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vmovq rbx,xmm10 11081c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vmovdqu ymm13,YMMWORD[((-24+96-128))+rcx] 11091c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpaddq ymm0,ymm1,ymm0 11101c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpmuludq ymm12,ymm12,ymm11 11111c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vmovdqu YMMWORD[rsp],ymm0 11121c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpaddq ymm1,ymm2,ymm12 11131c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vmovdqu ymm0,YMMWORD[((-24+128-128))+rcx] 11141c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpmuludq ymm13,ymm13,ymm11 11151c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vmovdqu ymm12,YMMWORD[((-24+160-128))+rcx] 11161c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpaddq ymm2,ymm3,ymm13 11171c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpmuludq ymm0,ymm0,ymm11 11181c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vmovdqu ymm13,YMMWORD[((-24+192-128))+rcx] 11191c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpaddq ymm3,ymm4,ymm0 11201c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpmuludq ymm12,ymm12,ymm11 11211c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vmovdqu ymm0,YMMWORD[((-24+224-128))+rcx] 11221c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpaddq ymm4,ymm5,ymm12 11231c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpmuludq ymm13,ymm13,ymm11 11241c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vmovdqu ymm12,YMMWORD[((-24+256-128))+rcx] 11251c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpaddq ymm5,ymm6,ymm13 11261c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpmuludq ymm0,ymm0,ymm11 11271c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vmovdqu ymm13,YMMWORD[((-24+288-128))+rcx] 11281c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan mov r9,r12 11291c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpaddq ymm6,ymm7,ymm0 11301c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpmuludq ymm12,ymm12,ymm11 11311c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan add r9,QWORD[rsp] 11321c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpaddq ymm7,ymm8,ymm12 11331c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpmuludq ymm13,ymm13,ymm11 11341c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vmovq xmm12,r12 11351c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpaddq ymm8,ymm9,ymm13 11361c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan 11371c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan dec r14d 11381c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan jnz NEAR $L$oop_mul_1024 11391c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpermq ymm15,ymm15,0 11401c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpaddq ymm0,ymm12,YMMWORD[rsp] 11411c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan 11421c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpsrlq ymm12,ymm0,29 11431c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpand ymm0,ymm0,ymm15 11441c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpsrlq ymm13,ymm1,29 11451c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpand ymm1,ymm1,ymm15 11461c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpsrlq ymm10,ymm2,29 11471c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpermq ymm12,ymm12,0x93 11481c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpand ymm2,ymm2,ymm15 11491c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpsrlq ymm11,ymm3,29 11501c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpermq ymm13,ymm13,0x93 11511c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpand ymm3,ymm3,ymm15 11521c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan 11531c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpblendd ymm9,ymm12,ymm14,3 11541c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpermq ymm10,ymm10,0x93 11551c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpblendd ymm12,ymm13,ymm12,3 11561c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpermq ymm11,ymm11,0x93 11571c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpaddq ymm0,ymm0,ymm9 11581c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpblendd ymm13,ymm10,ymm13,3 11591c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpaddq ymm1,ymm1,ymm12 11601c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpblendd ymm10,ymm11,ymm10,3 11611c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpaddq ymm2,ymm2,ymm13 11621c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpblendd ymm11,ymm14,ymm11,3 11631c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpaddq ymm3,ymm3,ymm10 11641c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpaddq ymm4,ymm4,ymm11 11651c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan 11661c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpsrlq ymm12,ymm0,29 11671c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpand ymm0,ymm0,ymm15 11681c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpsrlq ymm13,ymm1,29 11691c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpand ymm1,ymm1,ymm15 11701c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpsrlq ymm10,ymm2,29 11711c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpermq ymm12,ymm12,0x93 11721c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpand ymm2,ymm2,ymm15 11731c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpsrlq ymm11,ymm3,29 11741c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpermq ymm13,ymm13,0x93 11751c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpand ymm3,ymm3,ymm15 11761c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpermq ymm10,ymm10,0x93 11771c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan 11781c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpblendd ymm9,ymm12,ymm14,3 11791c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpermq ymm11,ymm11,0x93 11801c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpblendd ymm12,ymm13,ymm12,3 11811c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpaddq ymm0,ymm0,ymm9 11821c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpblendd ymm13,ymm10,ymm13,3 11831c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpaddq ymm1,ymm1,ymm12 11841c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpblendd ymm10,ymm11,ymm10,3 11851c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpaddq ymm2,ymm2,ymm13 11861c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpblendd ymm11,ymm14,ymm11,3 11871c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpaddq ymm3,ymm3,ymm10 11881c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpaddq ymm4,ymm4,ymm11 11891c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan 11901c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vmovdqu YMMWORD[(0-128)+rdi],ymm0 11911c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vmovdqu YMMWORD[(32-128)+rdi],ymm1 11921c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vmovdqu YMMWORD[(64-128)+rdi],ymm2 11931c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vmovdqu YMMWORD[(96-128)+rdi],ymm3 11941c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpsrlq ymm12,ymm4,29 11951c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpand ymm4,ymm4,ymm15 11961c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpsrlq ymm13,ymm5,29 11971c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpand ymm5,ymm5,ymm15 11981c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpsrlq ymm10,ymm6,29 11991c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpermq ymm12,ymm12,0x93 12001c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpand ymm6,ymm6,ymm15 12011c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpsrlq ymm11,ymm7,29 12021c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpermq ymm13,ymm13,0x93 12031c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpand ymm7,ymm7,ymm15 12041c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpsrlq ymm0,ymm8,29 12051c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpermq ymm10,ymm10,0x93 12061c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpand ymm8,ymm8,ymm15 12071c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpermq ymm11,ymm11,0x93 12081c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan 12091c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpblendd ymm9,ymm12,ymm14,3 12101c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpermq ymm0,ymm0,0x93 12111c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpblendd ymm12,ymm13,ymm12,3 12121c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpaddq ymm4,ymm4,ymm9 12131c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpblendd ymm13,ymm10,ymm13,3 12141c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpaddq ymm5,ymm5,ymm12 12151c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpblendd ymm10,ymm11,ymm10,3 12161c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpaddq ymm6,ymm6,ymm13 12171c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpblendd ymm11,ymm0,ymm11,3 12181c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpaddq ymm7,ymm7,ymm10 12191c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpaddq ymm8,ymm8,ymm11 12201c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan 12211c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpsrlq ymm12,ymm4,29 12221c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpand ymm4,ymm4,ymm15 12231c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpsrlq ymm13,ymm5,29 12241c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpand ymm5,ymm5,ymm15 12251c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpsrlq ymm10,ymm6,29 12261c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpermq ymm12,ymm12,0x93 12271c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpand ymm6,ymm6,ymm15 12281c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpsrlq ymm11,ymm7,29 12291c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpermq ymm13,ymm13,0x93 12301c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpand ymm7,ymm7,ymm15 12311c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpsrlq ymm0,ymm8,29 12321c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpermq ymm10,ymm10,0x93 12331c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpand ymm8,ymm8,ymm15 12341c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpermq ymm11,ymm11,0x93 12351c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan 12361c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpblendd ymm9,ymm12,ymm14,3 12371c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpermq ymm0,ymm0,0x93 12381c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpblendd ymm12,ymm13,ymm12,3 12391c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpaddq ymm4,ymm4,ymm9 12401c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpblendd ymm13,ymm10,ymm13,3 12411c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpaddq ymm5,ymm5,ymm12 12421c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpblendd ymm10,ymm11,ymm10,3 12431c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpaddq ymm6,ymm6,ymm13 12441c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpblendd ymm11,ymm0,ymm11,3 12451c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpaddq ymm7,ymm7,ymm10 12461c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpaddq ymm8,ymm8,ymm11 12471c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan 12481c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vmovdqu YMMWORD[(128-128)+rdi],ymm4 12491c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vmovdqu YMMWORD[(160-128)+rdi],ymm5 12501c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vmovdqu YMMWORD[(192-128)+rdi],ymm6 12511c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vmovdqu YMMWORD[(224-128)+rdi],ymm7 12521c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vmovdqu YMMWORD[(256-128)+rdi],ymm8 12531c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vzeroupper 12541c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan 12551c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan mov rax,rbp 12561c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan 12571c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan$L$mul_1024_in_tail: 12581c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan movaps xmm6,XMMWORD[((-216))+rax] 12591c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan movaps xmm7,XMMWORD[((-200))+rax] 12601c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan movaps xmm8,XMMWORD[((-184))+rax] 12611c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan movaps xmm9,XMMWORD[((-168))+rax] 12621c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan movaps xmm10,XMMWORD[((-152))+rax] 12631c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan movaps xmm11,XMMWORD[((-136))+rax] 12641c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan movaps xmm12,XMMWORD[((-120))+rax] 12651c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan movaps xmm13,XMMWORD[((-104))+rax] 12661c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan movaps xmm14,XMMWORD[((-88))+rax] 12671c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan movaps xmm15,XMMWORD[((-72))+rax] 12681c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan mov r15,QWORD[((-48))+rax] 12691c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan 12701c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan mov r14,QWORD[((-40))+rax] 12711c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan 12721c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan mov r13,QWORD[((-32))+rax] 12731c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan 12741c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan mov r12,QWORD[((-24))+rax] 12751c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan 12761c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan mov rbp,QWORD[((-16))+rax] 12771c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan 12781c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan mov rbx,QWORD[((-8))+rax] 12791c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan 12801c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan lea rsp,[rax] 12811c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan 12821c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan$L$mul_1024_epilogue: 12831c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan mov rdi,QWORD[8+rsp] ;WIN64 epilogue 12841c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan mov rsi,QWORD[16+rsp] 12851c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan DB 0F3h,0C3h ;repret 12861c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan 12871c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan$L$SEH_end_rsaz_1024_mul_avx2: 12881c9db5392e4ec0845f9a934061677636f5400d14Robert Sloanglobal rsaz_1024_red2norm_avx2 12891c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan 12901c9db5392e4ec0845f9a934061677636f5400d14Robert SloanALIGN 32 1291e9ada863a7b3e81f5d2b1e3bdd2305da902a87f5Adam Langleyrsaz_1024_red2norm_avx2: 12921c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan sub rdx,-128 12931c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan xor rax,rax 12941c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan mov r8,QWORD[((-128))+rdx] 12951c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan mov r9,QWORD[((-120))+rdx] 12961c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan mov r10,QWORD[((-112))+rdx] 12971c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan shl r8,0 12981c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan shl r9,29 12991c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan mov r11,r10 13001c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan shl r10,58 13011c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan shr r11,6 13021c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan add rax,r8 13031c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan add rax,r9 13041c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan add rax,r10 13051c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan adc r11,0 13061c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan mov QWORD[rcx],rax 13071c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan mov rax,r11 13081c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan mov r8,QWORD[((-104))+rdx] 13091c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan mov r9,QWORD[((-96))+rdx] 13101c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan shl r8,23 13111c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan mov r10,r9 13121c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan shl r9,52 13131c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan shr r10,12 13141c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan add rax,r8 13151c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan add rax,r9 13161c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan adc r10,0 13171c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan mov QWORD[8+rcx],rax 13181c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan mov rax,r10 13191c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan mov r11,QWORD[((-88))+rdx] 13201c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan mov r8,QWORD[((-80))+rdx] 13211c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan shl r11,17 13221c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan mov r9,r8 13231c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan shl r8,46 13241c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan shr r9,18 13251c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan add rax,r11 13261c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan add rax,r8 13271c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan adc r9,0 13281c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan mov QWORD[16+rcx],rax 13291c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan mov rax,r9 13301c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan mov r10,QWORD[((-72))+rdx] 13311c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan mov r11,QWORD[((-64))+rdx] 13321c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan shl r10,11 13331c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan mov r8,r11 13341c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan shl r11,40 13351c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan shr r8,24 13361c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan add rax,r10 13371c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan add rax,r11 13381c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan adc r8,0 13391c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan mov QWORD[24+rcx],rax 13401c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan mov rax,r8 13411c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan mov r9,QWORD[((-56))+rdx] 13421c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan mov r10,QWORD[((-48))+rdx] 13431c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan mov r11,QWORD[((-40))+rdx] 13441c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan shl r9,5 13451c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan shl r10,34 13461c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan mov r8,r11 13471c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan shl r11,63 13481c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan shr r8,1 13491c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan add rax,r9 13501c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan add rax,r10 13511c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan add rax,r11 13521c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan adc r8,0 13531c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan mov QWORD[32+rcx],rax 13541c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan mov rax,r8 13551c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan mov r9,QWORD[((-32))+rdx] 13561c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan mov r10,QWORD[((-24))+rdx] 13571c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan shl r9,28 13581c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan mov r11,r10 13591c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan shl r10,57 13601c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan shr r11,7 13611c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan add rax,r9 13621c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan add rax,r10 13631c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan adc r11,0 13641c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan mov QWORD[40+rcx],rax 13651c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan mov rax,r11 13661c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan mov r8,QWORD[((-16))+rdx] 13671c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan mov r9,QWORD[((-8))+rdx] 13681c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan shl r8,22 13691c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan mov r10,r9 13701c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan shl r9,51 13711c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan shr r10,13 13721c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan add rax,r8 13731c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan add rax,r9 13741c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan adc r10,0 13751c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan mov QWORD[48+rcx],rax 13761c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan mov rax,r10 13771c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan mov r11,QWORD[rdx] 13781c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan mov r8,QWORD[8+rdx] 13791c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan shl r11,16 13801c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan mov r9,r8 13811c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan shl r8,45 13821c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan shr r9,19 13831c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan add rax,r11 13841c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan add rax,r8 13851c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan adc r9,0 13861c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan mov QWORD[56+rcx],rax 13871c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan mov rax,r9 13881c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan mov r10,QWORD[16+rdx] 13891c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan mov r11,QWORD[24+rdx] 13901c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan shl r10,10 13911c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan mov r8,r11 13921c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan shl r11,39 13931c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan shr r8,25 13941c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan add rax,r10 13951c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan add rax,r11 13961c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan adc r8,0 13971c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan mov QWORD[64+rcx],rax 13981c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan mov rax,r8 13991c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan mov r9,QWORD[32+rdx] 14001c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan mov r10,QWORD[40+rdx] 14011c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan mov r11,QWORD[48+rdx] 14021c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan shl r9,4 14031c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan shl r10,33 14041c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan mov r8,r11 14051c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan shl r11,62 14061c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan shr r8,2 14071c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan add rax,r9 14081c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan add rax,r10 14091c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan add rax,r11 14101c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan adc r8,0 14111c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan mov QWORD[72+rcx],rax 14121c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan mov rax,r8 14131c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan mov r9,QWORD[56+rdx] 14141c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan mov r10,QWORD[64+rdx] 14151c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan shl r9,27 14161c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan mov r11,r10 14171c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan shl r10,56 14181c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan shr r11,8 14191c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan add rax,r9 14201c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan add rax,r10 14211c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan adc r11,0 14221c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan mov QWORD[80+rcx],rax 14231c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan mov rax,r11 14241c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan mov r8,QWORD[72+rdx] 14251c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan mov r9,QWORD[80+rdx] 14261c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan shl r8,21 14271c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan mov r10,r9 14281c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan shl r9,50 14291c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan shr r10,14 14301c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan add rax,r8 14311c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan add rax,r9 14321c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan adc r10,0 14331c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan mov QWORD[88+rcx],rax 14341c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan mov rax,r10 14351c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan mov r11,QWORD[88+rdx] 14361c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan mov r8,QWORD[96+rdx] 14371c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan shl r11,15 14381c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan mov r9,r8 14391c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan shl r8,44 14401c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan shr r9,20 14411c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan add rax,r11 14421c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan add rax,r8 14431c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan adc r9,0 14441c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan mov QWORD[96+rcx],rax 14451c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan mov rax,r9 14461c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan mov r10,QWORD[104+rdx] 14471c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan mov r11,QWORD[112+rdx] 14481c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan shl r10,9 14491c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan mov r8,r11 14501c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan shl r11,38 14511c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan shr r8,26 14521c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan add rax,r10 14531c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan add rax,r11 14541c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan adc r8,0 14551c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan mov QWORD[104+rcx],rax 14561c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan mov rax,r8 14571c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan mov r9,QWORD[120+rdx] 14581c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan mov r10,QWORD[128+rdx] 14591c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan mov r11,QWORD[136+rdx] 14601c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan shl r9,3 14611c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan shl r10,32 14621c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan mov r8,r11 14631c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan shl r11,61 14641c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan shr r8,3 14651c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan add rax,r9 14661c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan add rax,r10 14671c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan add rax,r11 14681c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan adc r8,0 14691c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan mov QWORD[112+rcx],rax 14701c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan mov rax,r8 14711c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan mov r9,QWORD[144+rdx] 14721c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan mov r10,QWORD[152+rdx] 14731c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan shl r9,26 14741c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan mov r11,r10 14751c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan shl r10,55 14761c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan shr r11,9 14771c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan add rax,r9 14781c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan add rax,r10 14791c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan adc r11,0 14801c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan mov QWORD[120+rcx],rax 14811c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan mov rax,r11 14821c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan DB 0F3h,0C3h ;repret 14831c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan 14841c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan 14851c9db5392e4ec0845f9a934061677636f5400d14Robert Sloanglobal rsaz_1024_norm2red_avx2 14861c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan 14871c9db5392e4ec0845f9a934061677636f5400d14Robert SloanALIGN 32 14881c9db5392e4ec0845f9a934061677636f5400d14Robert Sloanrsaz_1024_norm2red_avx2: 14891c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan sub rcx,-128 14901c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan mov r8,QWORD[rdx] 14911c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan mov eax,0x1fffffff 14921c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan mov r9,QWORD[8+rdx] 14931c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan mov r11,r8 14941c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan shr r11,0 14951c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan and r11,rax 14961c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan mov QWORD[((-128))+rcx],r11 14971c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan mov r10,r8 14981c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan shr r10,29 14991c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan and r10,rax 15001c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan mov QWORD[((-120))+rcx],r10 15011c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan shrd r8,r9,58 15021c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan and r8,rax 15031c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan mov QWORD[((-112))+rcx],r8 15041c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan mov r10,QWORD[16+rdx] 15051c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan mov r8,r9 15061c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan shr r8,23 15071c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan and r8,rax 15081c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan mov QWORD[((-104))+rcx],r8 15091c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan shrd r9,r10,52 15101c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan and r9,rax 15111c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan mov QWORD[((-96))+rcx],r9 15121c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan mov r11,QWORD[24+rdx] 15131c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan mov r9,r10 15141c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan shr r9,17 15151c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan and r9,rax 15161c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan mov QWORD[((-88))+rcx],r9 15171c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan shrd r10,r11,46 15181c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan and r10,rax 15191c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan mov QWORD[((-80))+rcx],r10 15201c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan mov r8,QWORD[32+rdx] 15211c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan mov r10,r11 15221c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan shr r10,11 15231c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan and r10,rax 15241c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan mov QWORD[((-72))+rcx],r10 15251c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan shrd r11,r8,40 15261c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan and r11,rax 15271c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan mov QWORD[((-64))+rcx],r11 15281c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan mov r9,QWORD[40+rdx] 15291c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan mov r11,r8 15301c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan shr r11,5 15311c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan and r11,rax 15321c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan mov QWORD[((-56))+rcx],r11 15331c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan mov r10,r8 15341c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan shr r10,34 15351c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan and r10,rax 15361c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan mov QWORD[((-48))+rcx],r10 15371c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan shrd r8,r9,63 15381c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan and r8,rax 15391c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan mov QWORD[((-40))+rcx],r8 15401c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan mov r10,QWORD[48+rdx] 15411c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan mov r8,r9 15421c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan shr r8,28 15431c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan and r8,rax 15441c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan mov QWORD[((-32))+rcx],r8 15451c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan shrd r9,r10,57 15461c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan and r9,rax 15471c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan mov QWORD[((-24))+rcx],r9 15481c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan mov r11,QWORD[56+rdx] 15491c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan mov r9,r10 15501c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan shr r9,22 15511c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan and r9,rax 15521c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan mov QWORD[((-16))+rcx],r9 15531c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan shrd r10,r11,51 15541c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan and r10,rax 15551c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan mov QWORD[((-8))+rcx],r10 15561c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan mov r8,QWORD[64+rdx] 15571c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan mov r10,r11 15581c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan shr r10,16 15591c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan and r10,rax 15601c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan mov QWORD[rcx],r10 15611c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan shrd r11,r8,45 15621c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan and r11,rax 15631c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan mov QWORD[8+rcx],r11 15641c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan mov r9,QWORD[72+rdx] 15651c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan mov r11,r8 15661c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan shr r11,10 15671c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan and r11,rax 15681c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan mov QWORD[16+rcx],r11 15691c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan shrd r8,r9,39 15701c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan and r8,rax 15711c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan mov QWORD[24+rcx],r8 15721c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan mov r10,QWORD[80+rdx] 15731c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan mov r8,r9 15741c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan shr r8,4 15751c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan and r8,rax 15761c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan mov QWORD[32+rcx],r8 15771c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan mov r11,r9 15781c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan shr r11,33 15791c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan and r11,rax 15801c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan mov QWORD[40+rcx],r11 15811c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan shrd r9,r10,62 15821c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan and r9,rax 15831c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan mov QWORD[48+rcx],r9 15841c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan mov r11,QWORD[88+rdx] 15851c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan mov r9,r10 15861c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan shr r9,27 15871c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan and r9,rax 15881c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan mov QWORD[56+rcx],r9 15891c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan shrd r10,r11,56 15901c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan and r10,rax 15911c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan mov QWORD[64+rcx],r10 15921c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan mov r8,QWORD[96+rdx] 15931c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan mov r10,r11 15941c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan shr r10,21 15951c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan and r10,rax 15961c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan mov QWORD[72+rcx],r10 15971c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan shrd r11,r8,50 15981c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan and r11,rax 15991c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan mov QWORD[80+rcx],r11 16001c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan mov r9,QWORD[104+rdx] 16011c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan mov r11,r8 16021c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan shr r11,15 16031c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan and r11,rax 16041c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan mov QWORD[88+rcx],r11 16051c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan shrd r8,r9,44 16061c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan and r8,rax 16071c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan mov QWORD[96+rcx],r8 16081c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan mov r10,QWORD[112+rdx] 16091c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan mov r8,r9 16101c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan shr r8,9 16111c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan and r8,rax 16121c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan mov QWORD[104+rcx],r8 16131c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan shrd r9,r10,38 16141c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan and r9,rax 16151c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan mov QWORD[112+rcx],r9 16161c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan mov r11,QWORD[120+rdx] 16171c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan mov r9,r10 16181c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan shr r9,3 16191c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan and r9,rax 16201c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan mov QWORD[120+rcx],r9 16211c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan mov r8,r10 16221c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan shr r8,32 16231c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan and r8,rax 16241c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan mov QWORD[128+rcx],r8 16251c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan shrd r10,r11,61 16261c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan and r10,rax 16271c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan mov QWORD[136+rcx],r10 16281c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan xor r8,r8 16291c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan mov r10,r11 16301c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan shr r10,26 16311c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan and r10,rax 16321c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan mov QWORD[144+rcx],r10 16331c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan shrd r11,r8,55 16341c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan and r11,rax 16351c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan mov QWORD[152+rcx],r11 16361c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan mov QWORD[160+rcx],r8 16371c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan mov QWORD[168+rcx],r8 16381c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan mov QWORD[176+rcx],r8 16391c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan mov QWORD[184+rcx],r8 16401c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan DB 0F3h,0C3h ;repret 16411c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan 16421c9db5392e4ec0845f9a934061677636f5400d14Robert Sloanglobal rsaz_1024_scatter5_avx2 16431c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan 16441c9db5392e4ec0845f9a934061677636f5400d14Robert SloanALIGN 32 1645e9ada863a7b3e81f5d2b1e3bdd2305da902a87f5Adam Langleyrsaz_1024_scatter5_avx2: 16461c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vzeroupper 16471c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vmovdqu ymm5,YMMWORD[$L$scatter_permd] 16481c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan shl r8d,4 16491c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan lea rcx,[r8*1+rcx] 16501c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan mov eax,9 16511c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan jmp NEAR $L$oop_scatter_1024 16521c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan 16531c9db5392e4ec0845f9a934061677636f5400d14Robert SloanALIGN 32 16541c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan$L$oop_scatter_1024: 16551c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vmovdqu ymm0,YMMWORD[rdx] 16561c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan lea rdx,[32+rdx] 16571c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpermd ymm0,ymm5,ymm0 16581c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vmovdqu XMMWORD[rcx],xmm0 16591c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan lea rcx,[512+rcx] 16601c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan dec eax 16611c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan jnz NEAR $L$oop_scatter_1024 16621c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan 16631c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vzeroupper 16641c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan DB 0F3h,0C3h ;repret 16651c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan 16661c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan 16671c9db5392e4ec0845f9a934061677636f5400d14Robert Sloanglobal rsaz_1024_gather5_avx2 16681c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan 16691c9db5392e4ec0845f9a934061677636f5400d14Robert SloanALIGN 32 1670e9ada863a7b3e81f5d2b1e3bdd2305da902a87f5Adam Langleyrsaz_1024_gather5_avx2: 16711c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan 16721c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vzeroupper 16731c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan mov r11,rsp 16741c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan 16751c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan lea rax,[((-136))+rsp] 16761c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan$L$SEH_begin_rsaz_1024_gather5: 16771c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan 16781c9db5392e4ec0845f9a934061677636f5400d14Robert SloanDB 0x48,0x8d,0x60,0xe0 16791c9db5392e4ec0845f9a934061677636f5400d14Robert SloanDB 0xc5,0xf8,0x29,0x70,0xe0 16801c9db5392e4ec0845f9a934061677636f5400d14Robert SloanDB 0xc5,0xf8,0x29,0x78,0xf0 16811c9db5392e4ec0845f9a934061677636f5400d14Robert SloanDB 0xc5,0x78,0x29,0x40,0x00 16821c9db5392e4ec0845f9a934061677636f5400d14Robert SloanDB 0xc5,0x78,0x29,0x48,0x10 16831c9db5392e4ec0845f9a934061677636f5400d14Robert SloanDB 0xc5,0x78,0x29,0x50,0x20 16841c9db5392e4ec0845f9a934061677636f5400d14Robert SloanDB 0xc5,0x78,0x29,0x58,0x30 16851c9db5392e4ec0845f9a934061677636f5400d14Robert SloanDB 0xc5,0x78,0x29,0x60,0x40 16861c9db5392e4ec0845f9a934061677636f5400d14Robert SloanDB 0xc5,0x78,0x29,0x68,0x50 16871c9db5392e4ec0845f9a934061677636f5400d14Robert SloanDB 0xc5,0x78,0x29,0x70,0x60 16881c9db5392e4ec0845f9a934061677636f5400d14Robert SloanDB 0xc5,0x78,0x29,0x78,0x70 16891c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan lea rsp,[((-256))+rsp] 16901c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan and rsp,-32 16911c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan lea r10,[$L$inc] 16921c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan lea rax,[((-128))+rsp] 16931c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan 16941c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vmovd xmm4,r8d 16951c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vmovdqa ymm0,YMMWORD[r10] 16961c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vmovdqa ymm1,YMMWORD[32+r10] 16971c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vmovdqa ymm5,YMMWORD[64+r10] 16981c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpbroadcastd ymm4,xmm4 16991c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan 17001c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpaddd ymm2,ymm0,ymm5 17011c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpcmpeqd ymm0,ymm0,ymm4 17021c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpaddd ymm3,ymm1,ymm5 17031c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpcmpeqd ymm1,ymm1,ymm4 17041c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vmovdqa YMMWORD[(0+128)+rax],ymm0 17051c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpaddd ymm0,ymm2,ymm5 17061c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpcmpeqd ymm2,ymm2,ymm4 17071c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vmovdqa YMMWORD[(32+128)+rax],ymm1 17081c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpaddd ymm1,ymm3,ymm5 17091c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpcmpeqd ymm3,ymm3,ymm4 17101c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vmovdqa YMMWORD[(64+128)+rax],ymm2 17111c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpaddd ymm2,ymm0,ymm5 17121c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpcmpeqd ymm0,ymm0,ymm4 17131c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vmovdqa YMMWORD[(96+128)+rax],ymm3 17141c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpaddd ymm3,ymm1,ymm5 17151c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpcmpeqd ymm1,ymm1,ymm4 17161c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vmovdqa YMMWORD[(128+128)+rax],ymm0 17171c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpaddd ymm8,ymm2,ymm5 17181c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpcmpeqd ymm2,ymm2,ymm4 17191c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vmovdqa YMMWORD[(160+128)+rax],ymm1 17201c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpaddd ymm9,ymm3,ymm5 17211c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpcmpeqd ymm3,ymm3,ymm4 17221c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vmovdqa YMMWORD[(192+128)+rax],ymm2 17231c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpaddd ymm10,ymm8,ymm5 17241c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpcmpeqd ymm8,ymm8,ymm4 17251c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vmovdqa YMMWORD[(224+128)+rax],ymm3 17261c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpaddd ymm11,ymm9,ymm5 17271c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpcmpeqd ymm9,ymm9,ymm4 17281c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpaddd ymm12,ymm10,ymm5 17291c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpcmpeqd ymm10,ymm10,ymm4 17301c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpaddd ymm13,ymm11,ymm5 17311c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpcmpeqd ymm11,ymm11,ymm4 17321c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpaddd ymm14,ymm12,ymm5 17331c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpcmpeqd ymm12,ymm12,ymm4 17341c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpaddd ymm15,ymm13,ymm5 17351c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpcmpeqd ymm13,ymm13,ymm4 17361c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpcmpeqd ymm14,ymm14,ymm4 17371c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpcmpeqd ymm15,ymm15,ymm4 17381c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan 17391c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vmovdqa ymm7,YMMWORD[((-32))+r10] 17401c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan lea rdx,[128+rdx] 17411c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan mov r8d,9 17421c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan 17431c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan$L$oop_gather_1024: 17441c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vmovdqa ymm0,YMMWORD[((0-128))+rdx] 17451c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vmovdqa ymm1,YMMWORD[((32-128))+rdx] 17461c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vmovdqa ymm2,YMMWORD[((64-128))+rdx] 17471c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vmovdqa ymm3,YMMWORD[((96-128))+rdx] 17481c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpand ymm0,ymm0,YMMWORD[((0+128))+rax] 17491c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpand ymm1,ymm1,YMMWORD[((32+128))+rax] 17501c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpand ymm2,ymm2,YMMWORD[((64+128))+rax] 17511c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpor ymm4,ymm1,ymm0 17521c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpand ymm3,ymm3,YMMWORD[((96+128))+rax] 17531c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vmovdqa ymm0,YMMWORD[((128-128))+rdx] 17541c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vmovdqa ymm1,YMMWORD[((160-128))+rdx] 17551c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpor ymm5,ymm3,ymm2 17561c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vmovdqa ymm2,YMMWORD[((192-128))+rdx] 17571c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vmovdqa ymm3,YMMWORD[((224-128))+rdx] 17581c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpand ymm0,ymm0,YMMWORD[((128+128))+rax] 17591c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpand ymm1,ymm1,YMMWORD[((160+128))+rax] 17601c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpand ymm2,ymm2,YMMWORD[((192+128))+rax] 17611c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpor ymm4,ymm4,ymm0 17621c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpand ymm3,ymm3,YMMWORD[((224+128))+rax] 17631c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpand ymm0,ymm8,YMMWORD[((256-128))+rdx] 17641c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpor ymm5,ymm5,ymm1 17651c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpand ymm1,ymm9,YMMWORD[((288-128))+rdx] 17661c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpor ymm4,ymm4,ymm2 17671c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpand ymm2,ymm10,YMMWORD[((320-128))+rdx] 17681c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpor ymm5,ymm5,ymm3 17691c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpand ymm3,ymm11,YMMWORD[((352-128))+rdx] 17701c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpor ymm4,ymm4,ymm0 17711c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpand ymm0,ymm12,YMMWORD[((384-128))+rdx] 17721c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpor ymm5,ymm5,ymm1 17731c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpand ymm1,ymm13,YMMWORD[((416-128))+rdx] 17741c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpor ymm4,ymm4,ymm2 17751c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpand ymm2,ymm14,YMMWORD[((448-128))+rdx] 17761c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpor ymm5,ymm5,ymm3 17771c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpand ymm3,ymm15,YMMWORD[((480-128))+rdx] 17781c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan lea rdx,[512+rdx] 17791c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpor ymm4,ymm4,ymm0 17801c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpor ymm5,ymm5,ymm1 17811c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpor ymm4,ymm4,ymm2 17821c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpor ymm5,ymm5,ymm3 17831c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan 17841c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpor ymm4,ymm4,ymm5 17851c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vextracti128 xmm5,ymm4,1 17861c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpor xmm5,xmm5,xmm4 17871c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpermd ymm5,ymm7,ymm5 17881c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vmovdqu YMMWORD[rcx],ymm5 17891c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan lea rcx,[32+rcx] 17901c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan dec r8d 17911c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan jnz NEAR $L$oop_gather_1024 17921c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan 17931c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vpxor ymm0,ymm0,ymm0 17941c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vmovdqu YMMWORD[rcx],ymm0 17951c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan vzeroupper 17961c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan movaps xmm6,XMMWORD[((-168))+r11] 17971c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan movaps xmm7,XMMWORD[((-152))+r11] 17981c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan movaps xmm8,XMMWORD[((-136))+r11] 17991c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan movaps xmm9,XMMWORD[((-120))+r11] 18001c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan movaps xmm10,XMMWORD[((-104))+r11] 18011c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan movaps xmm11,XMMWORD[((-88))+r11] 18021c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan movaps xmm12,XMMWORD[((-72))+r11] 18031c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan movaps xmm13,XMMWORD[((-56))+r11] 18041c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan movaps xmm14,XMMWORD[((-40))+r11] 18051c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan movaps xmm15,XMMWORD[((-24))+r11] 18061c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan lea rsp,[r11] 18071c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan 18081c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan DB 0F3h,0C3h ;repret 18091c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan 18101c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan$L$SEH_end_rsaz_1024_gather5: 18111c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan 18121c9db5392e4ec0845f9a934061677636f5400d14Robert SloanEXTERN OPENSSL_ia32cap_P 18131c9db5392e4ec0845f9a934061677636f5400d14Robert Sloanglobal rsaz_avx2_eligible 18141c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan 18151c9db5392e4ec0845f9a934061677636f5400d14Robert SloanALIGN 32 18161c9db5392e4ec0845f9a934061677636f5400d14Robert Sloanrsaz_avx2_eligible: 18171c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan mov eax,DWORD[((OPENSSL_ia32cap_P+8))] 18181c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan mov ecx,524544 18191c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan mov edx,0 18201c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan and ecx,eax 18211c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan cmp ecx,524544 18221c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan cmove eax,edx 18231c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan and eax,32 18241c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan shr eax,5 18251c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan DB 0F3h,0C3h ;repret 18261c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan 18271c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan 18281c9db5392e4ec0845f9a934061677636f5400d14Robert SloanALIGN 64 18291c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan$L$and_mask: 18301c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan DQ 0x1fffffff,0x1fffffff,0x1fffffff,-1 18311c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan$L$scatter_permd: 18321c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan DD 0,2,4,6,7,7,7,7 18331c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan$L$gather_permd: 18341c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan DD 0,7,1,7,2,7,3,7 18351c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan$L$inc: 18361c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan DD 0,0,0,0,1,1,1,1 18371c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan DD 2,2,2,2,3,3,3,3 18381c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan DD 4,4,4,4,4,4,4,4 18391c9db5392e4ec0845f9a934061677636f5400d14Robert SloanALIGN 64 18401c9db5392e4ec0845f9a934061677636f5400d14Robert SloanEXTERN __imp_RtlVirtualUnwind 18411c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan 18421c9db5392e4ec0845f9a934061677636f5400d14Robert SloanALIGN 16 18431c9db5392e4ec0845f9a934061677636f5400d14Robert Sloanrsaz_se_handler: 18441c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan push rsi 18451c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan push rdi 18461c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan push rbx 18471c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan push rbp 18481c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan push r12 18491c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan push r13 18501c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan push r14 18511c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan push r15 18521c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan pushfq 18531c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan sub rsp,64 18541c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan 18551c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan mov rax,QWORD[120+r8] 18561c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan mov rbx,QWORD[248+r8] 18571c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan 18581c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan mov rsi,QWORD[8+r9] 18591c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan mov r11,QWORD[56+r9] 18601c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan 18611c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan mov r10d,DWORD[r11] 18621c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan lea r10,[r10*1+rsi] 18631c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan cmp rbx,r10 18641c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan jb NEAR $L$common_seh_tail 18651c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan 18661c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan mov r10d,DWORD[4+r11] 18671c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan lea r10,[r10*1+rsi] 18681c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan cmp rbx,r10 18691c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan jae NEAR $L$common_seh_tail 18701c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan 18711c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan mov rbp,QWORD[160+r8] 18721c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan 18731c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan mov r10d,DWORD[8+r11] 18741c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan lea r10,[r10*1+rsi] 18751c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan cmp rbx,r10 18761c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan cmovc rax,rbp 18771c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan 18781c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan mov r15,QWORD[((-48))+rax] 18791c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan mov r14,QWORD[((-40))+rax] 18801c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan mov r13,QWORD[((-32))+rax] 18811c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan mov r12,QWORD[((-24))+rax] 18821c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan mov rbp,QWORD[((-16))+rax] 18831c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan mov rbx,QWORD[((-8))+rax] 18841c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan mov QWORD[240+r8],r15 18851c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan mov QWORD[232+r8],r14 18861c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan mov QWORD[224+r8],r13 18871c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan mov QWORD[216+r8],r12 18881c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan mov QWORD[160+r8],rbp 18891c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan mov QWORD[144+r8],rbx 18901c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan 18911c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan lea rsi,[((-216))+rax] 18921c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan lea rdi,[512+r8] 18931c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan mov ecx,20 18941c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan DD 0xa548f3fc 18951c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan 18961c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan$L$common_seh_tail: 18971c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan mov rdi,QWORD[8+rax] 18981c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan mov rsi,QWORD[16+rax] 18991c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan mov QWORD[152+r8],rax 19001c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan mov QWORD[168+r8],rsi 19011c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan mov QWORD[176+r8],rdi 19021c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan 19031c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan mov rdi,QWORD[40+r9] 19041c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan mov rsi,r8 19051c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan mov ecx,154 19061c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan DD 0xa548f3fc 19071c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan 19081c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan mov rsi,r9 19091c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan xor rcx,rcx 19101c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan mov rdx,QWORD[8+rsi] 19111c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan mov r8,QWORD[rsi] 19121c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan mov r9,QWORD[16+rsi] 19131c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan mov r10,QWORD[40+rsi] 19141c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan lea r11,[56+rsi] 19151c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan lea r12,[24+rsi] 19161c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan mov QWORD[32+rsp],r10 19171c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan mov QWORD[40+rsp],r11 19181c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan mov QWORD[48+rsp],r12 19191c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan mov QWORD[56+rsp],rcx 19201c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan call QWORD[__imp_RtlVirtualUnwind] 19211c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan 19221c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan mov eax,1 19231c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan add rsp,64 19241c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan popfq 19251c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan pop r15 19261c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan pop r14 19271c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan pop r13 19281c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan pop r12 19291c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan pop rbp 19301c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan pop rbx 19311c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan pop rdi 19321c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan pop rsi 1933d9e397b599b13d642138480a28c14db7a136bf0Adam Langley DB 0F3h,0C3h ;repret 1934d9e397b599b13d642138480a28c14db7a136bf0Adam Langley 19351c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan 19361c9db5392e4ec0845f9a934061677636f5400d14Robert Sloansection .pdata rdata align=4 19371c9db5392e4ec0845f9a934061677636f5400d14Robert SloanALIGN 4 19381c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan DD $L$SEH_begin_rsaz_1024_sqr_avx2 wrt ..imagebase 19391c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan DD $L$SEH_end_rsaz_1024_sqr_avx2 wrt ..imagebase 19401c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan DD $L$SEH_info_rsaz_1024_sqr_avx2 wrt ..imagebase 19411c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan 19421c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan DD $L$SEH_begin_rsaz_1024_mul_avx2 wrt ..imagebase 19431c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan DD $L$SEH_end_rsaz_1024_mul_avx2 wrt ..imagebase 19441c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan DD $L$SEH_info_rsaz_1024_mul_avx2 wrt ..imagebase 19451c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan 19461c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan DD $L$SEH_begin_rsaz_1024_gather5 wrt ..imagebase 19471c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan DD $L$SEH_end_rsaz_1024_gather5 wrt ..imagebase 19481c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan DD $L$SEH_info_rsaz_1024_gather5 wrt ..imagebase 19491c9db5392e4ec0845f9a934061677636f5400d14Robert Sloansection .xdata rdata align=8 19501c9db5392e4ec0845f9a934061677636f5400d14Robert SloanALIGN 8 19511c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan$L$SEH_info_rsaz_1024_sqr_avx2: 19521c9db5392e4ec0845f9a934061677636f5400d14Robert SloanDB 9,0,0,0 19531c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan DD rsaz_se_handler wrt ..imagebase 19541c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan DD $L$sqr_1024_body wrt ..imagebase,$L$sqr_1024_epilogue wrt ..imagebase,$L$sqr_1024_in_tail wrt ..imagebase 19551c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan DD 0 19561c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan$L$SEH_info_rsaz_1024_mul_avx2: 19571c9db5392e4ec0845f9a934061677636f5400d14Robert SloanDB 9,0,0,0 19581c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan DD rsaz_se_handler wrt ..imagebase 19591c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan DD $L$mul_1024_body wrt ..imagebase,$L$mul_1024_epilogue wrt ..imagebase,$L$mul_1024_in_tail wrt ..imagebase 19601c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan DD 0 19611c9db5392e4ec0845f9a934061677636f5400d14Robert Sloan$L$SEH_info_rsaz_1024_gather5: 19621c9db5392e4ec0845f9a934061677636f5400d14Robert SloanDB 0x01,0x36,0x17,0x0b 19631c9db5392e4ec0845f9a934061677636f5400d14Robert SloanDB 0x36,0xf8,0x09,0x00 19641c9db5392e4ec0845f9a934061677636f5400d14Robert SloanDB 0x31,0xe8,0x08,0x00 19651c9db5392e4ec0845f9a934061677636f5400d14Robert SloanDB 0x2c,0xd8,0x07,0x00 19661c9db5392e4ec0845f9a934061677636f5400d14Robert SloanDB 0x27,0xc8,0x06,0x00 19671c9db5392e4ec0845f9a934061677636f5400d14Robert SloanDB 0x22,0xb8,0x05,0x00 19681c9db5392e4ec0845f9a934061677636f5400d14Robert SloanDB 0x1d,0xa8,0x04,0x00 19691c9db5392e4ec0845f9a934061677636f5400d14Robert SloanDB 0x18,0x98,0x03,0x00 19701c9db5392e4ec0845f9a934061677636f5400d14Robert SloanDB 0x13,0x88,0x02,0x00 19711c9db5392e4ec0845f9a934061677636f5400d14Robert SloanDB 0x0e,0x78,0x01,0x00 19721c9db5392e4ec0845f9a934061677636f5400d14Robert SloanDB 0x09,0x68,0x00,0x00 19731c9db5392e4ec0845f9a934061677636f5400d14Robert SloanDB 0x04,0x01,0x15,0x00 19741c9db5392e4ec0845f9a934061677636f5400d14Robert SloanDB 0x00,0xb3,0x00,0x00 1975