2335 lines · plain
1#include "llvm_blake3_prefix.h"2 3.intel_syntax noprefix4.global blake3_hash_many_sse25.global _blake3_hash_many_sse26.global blake3_compress_in_place_sse27.global _blake3_compress_in_place_sse28.global blake3_compress_xof_sse29.global _blake3_compress_xof_sse210.section .text11 .p2align 612_blake3_hash_many_sse2:13blake3_hash_many_sse2:14 push r1515 push r1416 push r1317 push r1218 push rsi19 push rdi20 push rbx21 push rbp22 mov rbp, rsp23 sub rsp, 52824 and rsp, 0xFFFFFFFFFFFFFFC025 movdqa xmmword ptr [rsp+0x170], xmm626 movdqa xmmword ptr [rsp+0x180], xmm727 movdqa xmmword ptr [rsp+0x190], xmm828 movdqa xmmword ptr [rsp+0x1A0], xmm929 movdqa xmmword ptr [rsp+0x1B0], xmm1030 movdqa xmmword ptr [rsp+0x1C0], xmm1131 movdqa xmmword ptr [rsp+0x1D0], xmm1232 movdqa xmmword ptr [rsp+0x1E0], xmm1333 movdqa xmmword ptr [rsp+0x1F0], xmm1434 movdqa xmmword ptr [rsp+0x200], xmm1535 mov rdi, rcx36 mov rsi, rdx37 mov rdx, r838 mov rcx, r939 mov r8, qword ptr [rbp+0x68]40 movzx r9, byte ptr [rbp+0x70]41 neg r9d42 movd xmm0, r9d43 pshufd xmm0, xmm0, 0x0044 movdqa xmmword ptr [rsp+0x130], xmm045 movdqa xmm1, xmm046 pand xmm1, xmmword ptr [ADD0+rip]47 pand xmm0, xmmword ptr [ADD1+rip]48 movdqa xmmword ptr [rsp+0x150], xmm049 movd xmm0, r8d50 pshufd xmm0, xmm0, 0x0051 paddd xmm0, xmm152 movdqa xmmword ptr [rsp+0x110], xmm053 pxor xmm0, xmmword ptr [CMP_MSB_MASK+rip]54 pxor xmm1, xmmword ptr [CMP_MSB_MASK+rip]55 pcmpgtd xmm1, xmm056 shr r8, 3257 movd xmm2, r8d58 pshufd xmm2, xmm2, 0x0059 psubd xmm2, xmm160 movdqa xmmword ptr [rsp+0x120], xmm261 mov rbx, qword ptr [rbp+0x90]62 mov r15, rdx63 shl r15, 664 movzx r13d, byte ptr [rbp+0x78]65 movzx r12d, byte ptr [rbp+0x88]66 cmp rsi, 467 jc 3f682:69 movdqu xmm3, xmmword ptr [rcx]70 pshufd xmm0, xmm3, 0x0071 pshufd xmm1, xmm3, 0x5572 pshufd xmm2, xmm3, 0xAA73 pshufd xmm3, xmm3, 0xFF74 movdqu xmm7, xmmword ptr [rcx+0x10]75 pshufd xmm4, xmm7, 0x0076 pshufd xmm5, xmm7, 0x5577 pshufd xmm6, xmm7, 0xAA78 pshufd xmm7, xmm7, 0xFF79 mov r8, qword ptr [rdi]80 mov r9, qword ptr [rdi+0x8]81 mov r10, qword ptr [rdi+0x10]82 mov r11, qword ptr [rdi+0x18]83 movzx eax, byte ptr [rbp+0x80]84 or eax, r13d85 xor edx, edx869:87 mov r14d, eax88 or eax, r12d89 add rdx, 6490 cmp rdx, r1591 cmovne eax, r14d92 movdqu xmm8, xmmword ptr [r8+rdx-0x40]93 movdqu xmm9, xmmword ptr [r9+rdx-0x40]94 movdqu xmm10, xmmword ptr [r10+rdx-0x40]95 movdqu xmm11, xmmword ptr [r11+rdx-0x40]96 movdqa xmm12, xmm897 punpckldq xmm8, xmm998 punpckhdq xmm12, xmm999 movdqa xmm14, xmm10100 punpckldq xmm10, xmm11101 punpckhdq xmm14, xmm11102 movdqa xmm9, xmm8103 punpcklqdq xmm8, xmm10104 punpckhqdq xmm9, xmm10105 movdqa xmm13, xmm12106 punpcklqdq xmm12, xmm14107 punpckhqdq xmm13, xmm14108 movdqa xmmword ptr [rsp], xmm8109 movdqa xmmword ptr [rsp+0x10], xmm9110 movdqa xmmword ptr [rsp+0x20], xmm12111 movdqa xmmword ptr [rsp+0x30], xmm13112 movdqu xmm8, xmmword ptr [r8+rdx-0x30]113 movdqu xmm9, xmmword ptr [r9+rdx-0x30]114 movdqu xmm10, xmmword ptr [r10+rdx-0x30]115 movdqu xmm11, xmmword ptr [r11+rdx-0x30]116 movdqa xmm12, xmm8117 punpckldq xmm8, xmm9118 punpckhdq xmm12, xmm9119 movdqa xmm14, xmm10120 punpckldq xmm10, xmm11121 punpckhdq xmm14, xmm11122 movdqa xmm9, xmm8123 punpcklqdq xmm8, xmm10124 punpckhqdq xmm9, xmm10125 movdqa xmm13, xmm12126 punpcklqdq xmm12, xmm14127 punpckhqdq xmm13, xmm14128 movdqa xmmword ptr [rsp+0x40], xmm8129 movdqa xmmword ptr [rsp+0x50], xmm9130 movdqa xmmword ptr [rsp+0x60], xmm12131 movdqa xmmword ptr [rsp+0x70], xmm13132 movdqu xmm8, xmmword ptr [r8+rdx-0x20]133 movdqu xmm9, xmmword ptr [r9+rdx-0x20]134 movdqu xmm10, xmmword ptr [r10+rdx-0x20]135 movdqu xmm11, xmmword ptr [r11+rdx-0x20]136 movdqa xmm12, xmm8137 punpckldq xmm8, xmm9138 punpckhdq xmm12, xmm9139 movdqa xmm14, xmm10140 punpckldq xmm10, xmm11141 punpckhdq xmm14, xmm11142 movdqa xmm9, xmm8143 punpcklqdq xmm8, xmm10144 punpckhqdq xmm9, xmm10145 movdqa xmm13, xmm12146 punpcklqdq xmm12, xmm14147 punpckhqdq xmm13, xmm14148 movdqa xmmword ptr [rsp+0x80], xmm8149 movdqa xmmword ptr [rsp+0x90], xmm9150 movdqa xmmword ptr [rsp+0xA0], xmm12151 movdqa xmmword ptr [rsp+0xB0], xmm13152 movdqu xmm8, xmmword ptr [r8+rdx-0x10]153 movdqu xmm9, xmmword ptr [r9+rdx-0x10]154 movdqu xmm10, xmmword ptr [r10+rdx-0x10]155 movdqu xmm11, xmmword ptr [r11+rdx-0x10]156 movdqa xmm12, xmm8157 punpckldq xmm8, xmm9158 punpckhdq xmm12, xmm9159 movdqa xmm14, xmm10160 punpckldq xmm10, xmm11161 punpckhdq xmm14, xmm11162 movdqa xmm9, xmm8163 punpcklqdq xmm8, xmm10164 punpckhqdq xmm9, xmm10165 movdqa xmm13, xmm12166 punpcklqdq xmm12, xmm14167 punpckhqdq xmm13, xmm14168 movdqa xmmword ptr [rsp+0xC0], xmm8169 movdqa xmmword ptr [rsp+0xD0], xmm9170 movdqa xmmword ptr [rsp+0xE0], xmm12171 movdqa xmmword ptr [rsp+0xF0], xmm13172 movdqa xmm9, xmmword ptr [BLAKE3_IV_1+rip]173 movdqa xmm10, xmmword ptr [BLAKE3_IV_2+rip]174 movdqa xmm11, xmmword ptr [BLAKE3_IV_3+rip]175 movdqa xmm12, xmmword ptr [rsp+0x110]176 movdqa xmm13, xmmword ptr [rsp+0x120]177 movdqa xmm14, xmmword ptr [BLAKE3_BLOCK_LEN+rip]178 movd xmm15, eax179 pshufd xmm15, xmm15, 0x00180 prefetcht0 [r8+rdx+0x80]181 prefetcht0 [r9+rdx+0x80]182 prefetcht0 [r10+rdx+0x80]183 prefetcht0 [r11+rdx+0x80]184 paddd xmm0, xmmword ptr [rsp]185 paddd xmm1, xmmword ptr [rsp+0x20]186 paddd xmm2, xmmword ptr [rsp+0x40]187 paddd xmm3, xmmword ptr [rsp+0x60]188 paddd xmm0, xmm4189 paddd xmm1, xmm5190 paddd xmm2, xmm6191 paddd xmm3, xmm7192 pxor xmm12, xmm0193 pxor xmm13, xmm1194 pxor xmm14, xmm2195 pxor xmm15, xmm3196 pshuflw xmm12, xmm12, 0xB1197 pshufhw xmm12, xmm12, 0xB1198 pshuflw xmm13, xmm13, 0xB1199 pshufhw xmm13, xmm13, 0xB1200 pshuflw xmm14, xmm14, 0xB1201 pshufhw xmm14, xmm14, 0xB1202 pshuflw xmm15, xmm15, 0xB1203 pshufhw xmm15, xmm15, 0xB1204 movdqa xmm8, xmmword ptr [BLAKE3_IV_0+rip]205 paddd xmm8, xmm12206 paddd xmm9, xmm13207 paddd xmm10, xmm14208 paddd xmm11, xmm15209 pxor xmm4, xmm8210 pxor xmm5, xmm9211 pxor xmm6, xmm10212 pxor xmm7, xmm11213 movdqa xmmword ptr [rsp+0x100], xmm8214 movdqa xmm8, xmm4215 psrld xmm8, 12216 pslld xmm4, 20217 por xmm4, xmm8218 movdqa xmm8, xmm5219 psrld xmm8, 12220 pslld xmm5, 20221 por xmm5, xmm8222 movdqa xmm8, xmm6223 psrld xmm8, 12224 pslld xmm6, 20225 por xmm6, xmm8226 movdqa xmm8, xmm7227 psrld xmm8, 12228 pslld xmm7, 20229 por xmm7, xmm8230 paddd xmm0, xmmword ptr [rsp+0x10]231 paddd xmm1, xmmword ptr [rsp+0x30]232 paddd xmm2, xmmword ptr [rsp+0x50]233 paddd xmm3, xmmword ptr [rsp+0x70]234 paddd xmm0, xmm4235 paddd xmm1, xmm5236 paddd xmm2, xmm6237 paddd xmm3, xmm7238 pxor xmm12, xmm0239 pxor xmm13, xmm1240 pxor xmm14, xmm2241 pxor xmm15, xmm3242 movdqa xmm8, xmm12243 psrld xmm12, 8244 pslld xmm8, 24245 pxor xmm12, xmm8246 movdqa xmm8, xmm13247 psrld xmm13, 8248 pslld xmm8, 24249 pxor xmm13, xmm8250 movdqa xmm8, xmm14251 psrld xmm14, 8252 pslld xmm8, 24253 pxor xmm14, xmm8254 movdqa xmm8, xmm15255 psrld xmm15, 8256 pslld xmm8, 24257 pxor xmm15, xmm8258 movdqa xmm8, xmmword ptr [rsp+0x100]259 paddd xmm8, xmm12260 paddd xmm9, xmm13261 paddd xmm10, xmm14262 paddd xmm11, xmm15263 pxor xmm4, xmm8264 pxor xmm5, xmm9265 pxor xmm6, xmm10266 pxor xmm7, xmm11267 movdqa xmmword ptr [rsp+0x100], xmm8268 movdqa xmm8, xmm4269 psrld xmm8, 7270 pslld xmm4, 25271 por xmm4, xmm8272 movdqa xmm8, xmm5273 psrld xmm8, 7274 pslld xmm5, 25275 por xmm5, xmm8276 movdqa xmm8, xmm6277 psrld xmm8, 7278 pslld xmm6, 25279 por xmm6, xmm8280 movdqa xmm8, xmm7281 psrld xmm8, 7282 pslld xmm7, 25283 por xmm7, xmm8284 paddd xmm0, xmmword ptr [rsp+0x80]285 paddd xmm1, xmmword ptr [rsp+0xA0]286 paddd xmm2, xmmword ptr [rsp+0xC0]287 paddd xmm3, xmmword ptr [rsp+0xE0]288 paddd xmm0, xmm5289 paddd xmm1, xmm6290 paddd xmm2, xmm7291 paddd xmm3, xmm4292 pxor xmm15, xmm0293 pxor xmm12, xmm1294 pxor xmm13, xmm2295 pxor xmm14, xmm3296 pshuflw xmm15, xmm15, 0xB1297 pshufhw xmm15, xmm15, 0xB1298 pshuflw xmm12, xmm12, 0xB1299 pshufhw xmm12, xmm12, 0xB1300 pshuflw xmm13, xmm13, 0xB1301 pshufhw xmm13, xmm13, 0xB1302 pshuflw xmm14, xmm14, 0xB1303 pshufhw xmm14, xmm14, 0xB1304 paddd xmm10, xmm15305 paddd xmm11, xmm12306 movdqa xmm8, xmmword ptr [rsp+0x100]307 paddd xmm8, xmm13308 paddd xmm9, xmm14309 pxor xmm5, xmm10310 pxor xmm6, xmm11311 pxor xmm7, xmm8312 pxor xmm4, xmm9313 movdqa xmmword ptr [rsp+0x100], xmm8314 movdqa xmm8, xmm5315 psrld xmm8, 12316 pslld xmm5, 20317 por xmm5, xmm8318 movdqa xmm8, xmm6319 psrld xmm8, 12320 pslld xmm6, 20321 por xmm6, xmm8322 movdqa xmm8, xmm7323 psrld xmm8, 12324 pslld xmm7, 20325 por xmm7, xmm8326 movdqa xmm8, xmm4327 psrld xmm8, 12328 pslld xmm4, 20329 por xmm4, xmm8330 paddd xmm0, xmmword ptr [rsp+0x90]331 paddd xmm1, xmmword ptr [rsp+0xB0]332 paddd xmm2, xmmword ptr [rsp+0xD0]333 paddd xmm3, xmmword ptr [rsp+0xF0]334 paddd xmm0, xmm5335 paddd xmm1, xmm6336 paddd xmm2, xmm7337 paddd xmm3, xmm4338 pxor xmm15, xmm0339 pxor xmm12, xmm1340 pxor xmm13, xmm2341 pxor xmm14, xmm3342 movdqa xmm8, xmm15343 psrld xmm15, 8344 pslld xmm8, 24345 pxor xmm15, xmm8346 movdqa xmm8, xmm12347 psrld xmm12, 8348 pslld xmm8, 24349 pxor xmm12, xmm8350 movdqa xmm8, xmm13351 psrld xmm13, 8352 pslld xmm8, 24353 pxor xmm13, xmm8354 movdqa xmm8, xmm14355 psrld xmm14, 8356 pslld xmm8, 24357 pxor xmm14, xmm8358 paddd xmm10, xmm15359 paddd xmm11, xmm12360 movdqa xmm8, xmmword ptr [rsp+0x100]361 paddd xmm8, xmm13362 paddd xmm9, xmm14363 pxor xmm5, xmm10364 pxor xmm6, xmm11365 pxor xmm7, xmm8366 pxor xmm4, xmm9367 movdqa xmmword ptr [rsp+0x100], xmm8368 movdqa xmm8, xmm5369 psrld xmm8, 7370 pslld xmm5, 25371 por xmm5, xmm8372 movdqa xmm8, xmm6373 psrld xmm8, 7374 pslld xmm6, 25375 por xmm6, xmm8376 movdqa xmm8, xmm7377 psrld xmm8, 7378 pslld xmm7, 25379 por xmm7, xmm8380 movdqa xmm8, xmm4381 psrld xmm8, 7382 pslld xmm4, 25383 por xmm4, xmm8384 paddd xmm0, xmmword ptr [rsp+0x20]385 paddd xmm1, xmmword ptr [rsp+0x30]386 paddd xmm2, xmmword ptr [rsp+0x70]387 paddd xmm3, xmmword ptr [rsp+0x40]388 paddd xmm0, xmm4389 paddd xmm1, xmm5390 paddd xmm2, xmm6391 paddd xmm3, xmm7392 pxor xmm12, xmm0393 pxor xmm13, xmm1394 pxor xmm14, xmm2395 pxor xmm15, xmm3396 pshuflw xmm12, xmm12, 0xB1397 pshufhw xmm12, xmm12, 0xB1398 pshuflw xmm13, xmm13, 0xB1399 pshufhw xmm13, xmm13, 0xB1400 pshuflw xmm14, xmm14, 0xB1401 pshufhw xmm14, xmm14, 0xB1402 pshuflw xmm15, xmm15, 0xB1403 pshufhw xmm15, xmm15, 0xB1404 movdqa xmm8, xmmword ptr [rsp+0x100]405 paddd xmm8, xmm12406 paddd xmm9, xmm13407 paddd xmm10, xmm14408 paddd xmm11, xmm15409 pxor xmm4, xmm8410 pxor xmm5, xmm9411 pxor xmm6, xmm10412 pxor xmm7, xmm11413 movdqa xmmword ptr [rsp+0x100], xmm8414 movdqa xmm8, xmm4415 psrld xmm8, 12416 pslld xmm4, 20417 por xmm4, xmm8418 movdqa xmm8, xmm5419 psrld xmm8, 12420 pslld xmm5, 20421 por xmm5, xmm8422 movdqa xmm8, xmm6423 psrld xmm8, 12424 pslld xmm6, 20425 por xmm6, xmm8426 movdqa xmm8, xmm7427 psrld xmm8, 12428 pslld xmm7, 20429 por xmm7, xmm8430 paddd xmm0, xmmword ptr [rsp+0x60]431 paddd xmm1, xmmword ptr [rsp+0xA0]432 paddd xmm2, xmmword ptr [rsp]433 paddd xmm3, xmmword ptr [rsp+0xD0]434 paddd xmm0, xmm4435 paddd xmm1, xmm5436 paddd xmm2, xmm6437 paddd xmm3, xmm7438 pxor xmm12, xmm0439 pxor xmm13, xmm1440 pxor xmm14, xmm2441 pxor xmm15, xmm3442 movdqa xmm8, xmm12443 psrld xmm12, 8444 pslld xmm8, 24445 pxor xmm12, xmm8446 movdqa xmm8, xmm13447 psrld xmm13, 8448 pslld xmm8, 24449 pxor xmm13, xmm8450 movdqa xmm8, xmm14451 psrld xmm14, 8452 pslld xmm8, 24453 pxor xmm14, xmm8454 movdqa xmm8, xmm15455 psrld xmm15, 8456 pslld xmm8, 24457 pxor xmm15, xmm8458 movdqa xmm8, xmmword ptr [rsp+0x100]459 paddd xmm8, xmm12460 paddd xmm9, xmm13461 paddd xmm10, xmm14462 paddd xmm11, xmm15463 pxor xmm4, xmm8464 pxor xmm5, xmm9465 pxor xmm6, xmm10466 pxor xmm7, xmm11467 movdqa xmmword ptr [rsp+0x100], xmm8468 movdqa xmm8, xmm4469 psrld xmm8, 7470 pslld xmm4, 25471 por xmm4, xmm8472 movdqa xmm8, xmm5473 psrld xmm8, 7474 pslld xmm5, 25475 por xmm5, xmm8476 movdqa xmm8, xmm6477 psrld xmm8, 7478 pslld xmm6, 25479 por xmm6, xmm8480 movdqa xmm8, xmm7481 psrld xmm8, 7482 pslld xmm7, 25483 por xmm7, xmm8484 paddd xmm0, xmmword ptr [rsp+0x10]485 paddd xmm1, xmmword ptr [rsp+0xC0]486 paddd xmm2, xmmword ptr [rsp+0x90]487 paddd xmm3, xmmword ptr [rsp+0xF0]488 paddd xmm0, xmm5489 paddd xmm1, xmm6490 paddd xmm2, xmm7491 paddd xmm3, xmm4492 pxor xmm15, xmm0493 pxor xmm12, xmm1494 pxor xmm13, xmm2495 pxor xmm14, xmm3496 pshuflw xmm15, xmm15, 0xB1497 pshufhw xmm15, xmm15, 0xB1498 pshuflw xmm12, xmm12, 0xB1499 pshufhw xmm12, xmm12, 0xB1500 pshuflw xmm13, xmm13, 0xB1501 pshufhw xmm13, xmm13, 0xB1502 pshuflw xmm14, xmm14, 0xB1503 pshufhw xmm14, xmm14, 0xB1504 paddd xmm10, xmm15505 paddd xmm11, xmm12506 movdqa xmm8, xmmword ptr [rsp+0x100]507 paddd xmm8, xmm13508 paddd xmm9, xmm14509 pxor xmm5, xmm10510 pxor xmm6, xmm11511 pxor xmm7, xmm8512 pxor xmm4, xmm9513 movdqa xmmword ptr [rsp+0x100], xmm8514 movdqa xmm8, xmm5515 psrld xmm8, 12516 pslld xmm5, 20517 por xmm5, xmm8518 movdqa xmm8, xmm6519 psrld xmm8, 12520 pslld xmm6, 20521 por xmm6, xmm8522 movdqa xmm8, xmm7523 psrld xmm8, 12524 pslld xmm7, 20525 por xmm7, xmm8526 movdqa xmm8, xmm4527 psrld xmm8, 12528 pslld xmm4, 20529 por xmm4, xmm8530 paddd xmm0, xmmword ptr [rsp+0xB0]531 paddd xmm1, xmmword ptr [rsp+0x50]532 paddd xmm2, xmmword ptr [rsp+0xE0]533 paddd xmm3, xmmword ptr [rsp+0x80]534 paddd xmm0, xmm5535 paddd xmm1, xmm6536 paddd xmm2, xmm7537 paddd xmm3, xmm4538 pxor xmm15, xmm0539 pxor xmm12, xmm1540 pxor xmm13, xmm2541 pxor xmm14, xmm3542 movdqa xmm8, xmm15543 psrld xmm15, 8544 pslld xmm8, 24545 pxor xmm15, xmm8546 movdqa xmm8, xmm12547 psrld xmm12, 8548 pslld xmm8, 24549 pxor xmm12, xmm8550 movdqa xmm8, xmm13551 psrld xmm13, 8552 pslld xmm8, 24553 pxor xmm13, xmm8554 movdqa xmm8, xmm14555 psrld xmm14, 8556 pslld xmm8, 24557 pxor xmm14, xmm8558 paddd xmm10, xmm15559 paddd xmm11, xmm12560 movdqa xmm8, xmmword ptr [rsp+0x100]561 paddd xmm8, xmm13562 paddd xmm9, xmm14563 pxor xmm5, xmm10564 pxor xmm6, xmm11565 pxor xmm7, xmm8566 pxor xmm4, xmm9567 movdqa xmmword ptr [rsp+0x100], xmm8568 movdqa xmm8, xmm5569 psrld xmm8, 7570 pslld xmm5, 25571 por xmm5, xmm8572 movdqa xmm8, xmm6573 psrld xmm8, 7574 pslld xmm6, 25575 por xmm6, xmm8576 movdqa xmm8, xmm7577 psrld xmm8, 7578 pslld xmm7, 25579 por xmm7, xmm8580 movdqa xmm8, xmm4581 psrld xmm8, 7582 pslld xmm4, 25583 por xmm4, xmm8584 paddd xmm0, xmmword ptr [rsp+0x30]585 paddd xmm1, xmmword ptr [rsp+0xA0]586 paddd xmm2, xmmword ptr [rsp+0xD0]587 paddd xmm3, xmmword ptr [rsp+0x70]588 paddd xmm0, xmm4589 paddd xmm1, xmm5590 paddd xmm2, xmm6591 paddd xmm3, xmm7592 pxor xmm12, xmm0593 pxor xmm13, xmm1594 pxor xmm14, xmm2595 pxor xmm15, xmm3596 pshuflw xmm12, xmm12, 0xB1597 pshufhw xmm12, xmm12, 0xB1598 pshuflw xmm13, xmm13, 0xB1599 pshufhw xmm13, xmm13, 0xB1600 pshuflw xmm14, xmm14, 0xB1601 pshufhw xmm14, xmm14, 0xB1602 pshuflw xmm15, xmm15, 0xB1603 pshufhw xmm15, xmm15, 0xB1604 movdqa xmm8, xmmword ptr [rsp+0x100]605 paddd xmm8, xmm12606 paddd xmm9, xmm13607 paddd xmm10, xmm14608 paddd xmm11, xmm15609 pxor xmm4, xmm8610 pxor xmm5, xmm9611 pxor xmm6, xmm10612 pxor xmm7, xmm11613 movdqa xmmword ptr [rsp+0x100], xmm8614 movdqa xmm8, xmm4615 psrld xmm8, 12616 pslld xmm4, 20617 por xmm4, xmm8618 movdqa xmm8, xmm5619 psrld xmm8, 12620 pslld xmm5, 20621 por xmm5, xmm8622 movdqa xmm8, xmm6623 psrld xmm8, 12624 pslld xmm6, 20625 por xmm6, xmm8626 movdqa xmm8, xmm7627 psrld xmm8, 12628 pslld xmm7, 20629 por xmm7, xmm8630 paddd xmm0, xmmword ptr [rsp+0x40]631 paddd xmm1, xmmword ptr [rsp+0xC0]632 paddd xmm2, xmmword ptr [rsp+0x20]633 paddd xmm3, xmmword ptr [rsp+0xE0]634 paddd xmm0, xmm4635 paddd xmm1, xmm5636 paddd xmm2, xmm6637 paddd xmm3, xmm7638 pxor xmm12, xmm0639 pxor xmm13, xmm1640 pxor xmm14, xmm2641 pxor xmm15, xmm3642 movdqa xmm8, xmm12643 psrld xmm12, 8644 pslld xmm8, 24645 pxor xmm12, xmm8646 movdqa xmm8, xmm13647 psrld xmm13, 8648 pslld xmm8, 24649 pxor xmm13, xmm8650 movdqa xmm8, xmm14651 psrld xmm14, 8652 pslld xmm8, 24653 pxor xmm14, xmm8654 movdqa xmm8, xmm15655 psrld xmm15, 8656 pslld xmm8, 24657 pxor xmm15, xmm8658 movdqa xmm8, xmmword ptr [rsp+0x100]659 paddd xmm8, xmm12660 paddd xmm9, xmm13661 paddd xmm10, xmm14662 paddd xmm11, xmm15663 pxor xmm4, xmm8664 pxor xmm5, xmm9665 pxor xmm6, xmm10666 pxor xmm7, xmm11667 movdqa xmmword ptr [rsp+0x100], xmm8668 movdqa xmm8, xmm4669 psrld xmm8, 7670 pslld xmm4, 25671 por xmm4, xmm8672 movdqa xmm8, xmm5673 psrld xmm8, 7674 pslld xmm5, 25675 por xmm5, xmm8676 movdqa xmm8, xmm6677 psrld xmm8, 7678 pslld xmm6, 25679 por xmm6, xmm8680 movdqa xmm8, xmm7681 psrld xmm8, 7682 pslld xmm7, 25683 por xmm7, xmm8684 paddd xmm0, xmmword ptr [rsp+0x60]685 paddd xmm1, xmmword ptr [rsp+0x90]686 paddd xmm2, xmmword ptr [rsp+0xB0]687 paddd xmm3, xmmword ptr [rsp+0x80]688 paddd xmm0, xmm5689 paddd xmm1, xmm6690 paddd xmm2, xmm7691 paddd xmm3, xmm4692 pxor xmm15, xmm0693 pxor xmm12, xmm1694 pxor xmm13, xmm2695 pxor xmm14, xmm3696 pshuflw xmm15, xmm15, 0xB1697 pshufhw xmm15, xmm15, 0xB1698 pshuflw xmm12, xmm12, 0xB1699 pshufhw xmm12, xmm12, 0xB1700 pshuflw xmm13, xmm13, 0xB1701 pshufhw xmm13, xmm13, 0xB1702 pshuflw xmm14, xmm14, 0xB1703 pshufhw xmm14, xmm14, 0xB1704 paddd xmm10, xmm15705 paddd xmm11, xmm12706 movdqa xmm8, xmmword ptr [rsp+0x100]707 paddd xmm8, xmm13708 paddd xmm9, xmm14709 pxor xmm5, xmm10710 pxor xmm6, xmm11711 pxor xmm7, xmm8712 pxor xmm4, xmm9713 movdqa xmmword ptr [rsp+0x100], xmm8714 movdqa xmm8, xmm5715 psrld xmm8, 12716 pslld xmm5, 20717 por xmm5, xmm8718 movdqa xmm8, xmm6719 psrld xmm8, 12720 pslld xmm6, 20721 por xmm6, xmm8722 movdqa xmm8, xmm7723 psrld xmm8, 12724 pslld xmm7, 20725 por xmm7, xmm8726 movdqa xmm8, xmm4727 psrld xmm8, 12728 pslld xmm4, 20729 por xmm4, xmm8730 paddd xmm0, xmmword ptr [rsp+0x50]731 paddd xmm1, xmmword ptr [rsp]732 paddd xmm2, xmmword ptr [rsp+0xF0]733 paddd xmm3, xmmword ptr [rsp+0x10]734 paddd xmm0, xmm5735 paddd xmm1, xmm6736 paddd xmm2, xmm7737 paddd xmm3, xmm4738 pxor xmm15, xmm0739 pxor xmm12, xmm1740 pxor xmm13, xmm2741 pxor xmm14, xmm3742 movdqa xmm8, xmm15743 psrld xmm15, 8744 pslld xmm8, 24745 pxor xmm15, xmm8746 movdqa xmm8, xmm12747 psrld xmm12, 8748 pslld xmm8, 24749 pxor xmm12, xmm8750 movdqa xmm8, xmm13751 psrld xmm13, 8752 pslld xmm8, 24753 pxor xmm13, xmm8754 movdqa xmm8, xmm14755 psrld xmm14, 8756 pslld xmm8, 24757 pxor xmm14, xmm8758 paddd xmm10, xmm15759 paddd xmm11, xmm12760 movdqa xmm8, xmmword ptr [rsp+0x100]761 paddd xmm8, xmm13762 paddd xmm9, xmm14763 pxor xmm5, xmm10764 pxor xmm6, xmm11765 pxor xmm7, xmm8766 pxor xmm4, xmm9767 movdqa xmmword ptr [rsp+0x100], xmm8768 movdqa xmm8, xmm5769 psrld xmm8, 7770 pslld xmm5, 25771 por xmm5, xmm8772 movdqa xmm8, xmm6773 psrld xmm8, 7774 pslld xmm6, 25775 por xmm6, xmm8776 movdqa xmm8, xmm7777 psrld xmm8, 7778 pslld xmm7, 25779 por xmm7, xmm8780 movdqa xmm8, xmm4781 psrld xmm8, 7782 pslld xmm4, 25783 por xmm4, xmm8784 paddd xmm0, xmmword ptr [rsp+0xA0]785 paddd xmm1, xmmword ptr [rsp+0xC0]786 paddd xmm2, xmmword ptr [rsp+0xE0]787 paddd xmm3, xmmword ptr [rsp+0xD0]788 paddd xmm0, xmm4789 paddd xmm1, xmm5790 paddd xmm2, xmm6791 paddd xmm3, xmm7792 pxor xmm12, xmm0793 pxor xmm13, xmm1794 pxor xmm14, xmm2795 pxor xmm15, xmm3796 pshuflw xmm12, xmm12, 0xB1797 pshufhw xmm12, xmm12, 0xB1798 pshuflw xmm13, xmm13, 0xB1799 pshufhw xmm13, xmm13, 0xB1800 pshuflw xmm14, xmm14, 0xB1801 pshufhw xmm14, xmm14, 0xB1802 pshuflw xmm15, xmm15, 0xB1803 pshufhw xmm15, xmm15, 0xB1804 movdqa xmm8, xmmword ptr [rsp+0x100]805 paddd xmm8, xmm12806 paddd xmm9, xmm13807 paddd xmm10, xmm14808 paddd xmm11, xmm15809 pxor xmm4, xmm8810 pxor xmm5, xmm9811 pxor xmm6, xmm10812 pxor xmm7, xmm11813 movdqa xmmword ptr [rsp+0x100], xmm8814 movdqa xmm8, xmm4815 psrld xmm8, 12816 pslld xmm4, 20817 por xmm4, xmm8818 movdqa xmm8, xmm5819 psrld xmm8, 12820 pslld xmm5, 20821 por xmm5, xmm8822 movdqa xmm8, xmm6823 psrld xmm8, 12824 pslld xmm6, 20825 por xmm6, xmm8826 movdqa xmm8, xmm7827 psrld xmm8, 12828 pslld xmm7, 20829 por xmm7, xmm8830 paddd xmm0, xmmword ptr [rsp+0x70]831 paddd xmm1, xmmword ptr [rsp+0x90]832 paddd xmm2, xmmword ptr [rsp+0x30]833 paddd xmm3, xmmword ptr [rsp+0xF0]834 paddd xmm0, xmm4835 paddd xmm1, xmm5836 paddd xmm2, xmm6837 paddd xmm3, xmm7838 pxor xmm12, xmm0839 pxor xmm13, xmm1840 pxor xmm14, xmm2841 pxor xmm15, xmm3842 movdqa xmm8, xmm12843 psrld xmm12, 8844 pslld xmm8, 24845 pxor xmm12, xmm8846 movdqa xmm8, xmm13847 psrld xmm13, 8848 pslld xmm8, 24849 pxor xmm13, xmm8850 movdqa xmm8, xmm14851 psrld xmm14, 8852 pslld xmm8, 24853 pxor xmm14, xmm8854 movdqa xmm8, xmm15855 psrld xmm15, 8856 pslld xmm8, 24857 pxor xmm15, xmm8858 movdqa xmm8, xmmword ptr [rsp+0x100]859 paddd xmm8, xmm12860 paddd xmm9, xmm13861 paddd xmm10, xmm14862 paddd xmm11, xmm15863 pxor xmm4, xmm8864 pxor xmm5, xmm9865 pxor xmm6, xmm10866 pxor xmm7, xmm11867 movdqa xmmword ptr [rsp+0x100], xmm8868 movdqa xmm8, xmm4869 psrld xmm8, 7870 pslld xmm4, 25871 por xmm4, xmm8872 movdqa xmm8, xmm5873 psrld xmm8, 7874 pslld xmm5, 25875 por xmm5, xmm8876 movdqa xmm8, xmm6877 psrld xmm8, 7878 pslld xmm6, 25879 por xmm6, xmm8880 movdqa xmm8, xmm7881 psrld xmm8, 7882 pslld xmm7, 25883 por xmm7, xmm8884 paddd xmm0, xmmword ptr [rsp+0x40]885 paddd xmm1, xmmword ptr [rsp+0xB0]886 paddd xmm2, xmmword ptr [rsp+0x50]887 paddd xmm3, xmmword ptr [rsp+0x10]888 paddd xmm0, xmm5889 paddd xmm1, xmm6890 paddd xmm2, xmm7891 paddd xmm3, xmm4892 pxor xmm15, xmm0893 pxor xmm12, xmm1894 pxor xmm13, xmm2895 pxor xmm14, xmm3896 pshuflw xmm15, xmm15, 0xB1897 pshufhw xmm15, xmm15, 0xB1898 pshuflw xmm12, xmm12, 0xB1899 pshufhw xmm12, xmm12, 0xB1900 pshuflw xmm13, xmm13, 0xB1901 pshufhw xmm13, xmm13, 0xB1902 pshuflw xmm14, xmm14, 0xB1903 pshufhw xmm14, xmm14, 0xB1904 paddd xmm10, xmm15905 paddd xmm11, xmm12906 movdqa xmm8, xmmword ptr [rsp+0x100]907 paddd xmm8, xmm13908 paddd xmm9, xmm14909 pxor xmm5, xmm10910 pxor xmm6, xmm11911 pxor xmm7, xmm8912 pxor xmm4, xmm9913 movdqa xmmword ptr [rsp+0x100], xmm8914 movdqa xmm8, xmm5915 psrld xmm8, 12916 pslld xmm5, 20917 por xmm5, xmm8918 movdqa xmm8, xmm6919 psrld xmm8, 12920 pslld xmm6, 20921 por xmm6, xmm8922 movdqa xmm8, xmm7923 psrld xmm8, 12924 pslld xmm7, 20925 por xmm7, xmm8926 movdqa xmm8, xmm4927 psrld xmm8, 12928 pslld xmm4, 20929 por xmm4, xmm8930 paddd xmm0, xmmword ptr [rsp]931 paddd xmm1, xmmword ptr [rsp+0x20]932 paddd xmm2, xmmword ptr [rsp+0x80]933 paddd xmm3, xmmword ptr [rsp+0x60]934 paddd xmm0, xmm5935 paddd xmm1, xmm6936 paddd xmm2, xmm7937 paddd xmm3, xmm4938 pxor xmm15, xmm0939 pxor xmm12, xmm1940 pxor xmm13, xmm2941 pxor xmm14, xmm3942 movdqa xmm8, xmm15943 psrld xmm15, 8944 pslld xmm8, 24945 pxor xmm15, xmm8946 movdqa xmm8, xmm12947 psrld xmm12, 8948 pslld xmm8, 24949 pxor xmm12, xmm8950 movdqa xmm8, xmm13951 psrld xmm13, 8952 pslld xmm8, 24953 pxor xmm13, xmm8954 movdqa xmm8, xmm14955 psrld xmm14, 8956 pslld xmm8, 24957 pxor xmm14, xmm8958 paddd xmm10, xmm15959 paddd xmm11, xmm12960 movdqa xmm8, xmmword ptr [rsp+0x100]961 paddd xmm8, xmm13962 paddd xmm9, xmm14963 pxor xmm5, xmm10964 pxor xmm6, xmm11965 pxor xmm7, xmm8966 pxor xmm4, xmm9967 movdqa xmmword ptr [rsp+0x100], xmm8968 movdqa xmm8, xmm5969 psrld xmm8, 7970 pslld xmm5, 25971 por xmm5, xmm8972 movdqa xmm8, xmm6973 psrld xmm8, 7974 pslld xmm6, 25975 por xmm6, xmm8976 movdqa xmm8, xmm7977 psrld xmm8, 7978 pslld xmm7, 25979 por xmm7, xmm8980 movdqa xmm8, xmm4981 psrld xmm8, 7982 pslld xmm4, 25983 por xmm4, xmm8984 paddd xmm0, xmmword ptr [rsp+0xC0]985 paddd xmm1, xmmword ptr [rsp+0x90]986 paddd xmm2, xmmword ptr [rsp+0xF0]987 paddd xmm3, xmmword ptr [rsp+0xE0]988 paddd xmm0, xmm4989 paddd xmm1, xmm5990 paddd xmm2, xmm6991 paddd xmm3, xmm7992 pxor xmm12, xmm0993 pxor xmm13, xmm1994 pxor xmm14, xmm2995 pxor xmm15, xmm3996 pshuflw xmm12, xmm12, 0xB1997 pshufhw xmm12, xmm12, 0xB1998 pshuflw xmm13, xmm13, 0xB1999 pshufhw xmm13, xmm13, 0xB11000 pshuflw xmm14, xmm14, 0xB11001 pshufhw xmm14, xmm14, 0xB11002 pshuflw xmm15, xmm15, 0xB11003 pshufhw xmm15, xmm15, 0xB11004 movdqa xmm8, xmmword ptr [rsp+0x100]1005 paddd xmm8, xmm121006 paddd xmm9, xmm131007 paddd xmm10, xmm141008 paddd xmm11, xmm151009 pxor xmm4, xmm81010 pxor xmm5, xmm91011 pxor xmm6, xmm101012 pxor xmm7, xmm111013 movdqa xmmword ptr [rsp+0x100], xmm81014 movdqa xmm8, xmm41015 psrld xmm8, 121016 pslld xmm4, 201017 por xmm4, xmm81018 movdqa xmm8, xmm51019 psrld xmm8, 121020 pslld xmm5, 201021 por xmm5, xmm81022 movdqa xmm8, xmm61023 psrld xmm8, 121024 pslld xmm6, 201025 por xmm6, xmm81026 movdqa xmm8, xmm71027 psrld xmm8, 121028 pslld xmm7, 201029 por xmm7, xmm81030 paddd xmm0, xmmword ptr [rsp+0xD0]1031 paddd xmm1, xmmword ptr [rsp+0xB0]1032 paddd xmm2, xmmword ptr [rsp+0xA0]1033 paddd xmm3, xmmword ptr [rsp+0x80]1034 paddd xmm0, xmm41035 paddd xmm1, xmm51036 paddd xmm2, xmm61037 paddd xmm3, xmm71038 pxor xmm12, xmm01039 pxor xmm13, xmm11040 pxor xmm14, xmm21041 pxor xmm15, xmm31042 movdqa xmm8, xmm121043 psrld xmm12, 81044 pslld xmm8, 241045 pxor xmm12, xmm81046 movdqa xmm8, xmm131047 psrld xmm13, 81048 pslld xmm8, 241049 pxor xmm13, xmm81050 movdqa xmm8, xmm141051 psrld xmm14, 81052 pslld xmm8, 241053 pxor xmm14, xmm81054 movdqa xmm8, xmm151055 psrld xmm15, 81056 pslld xmm8, 241057 pxor xmm15, xmm81058 movdqa xmm8, xmmword ptr [rsp+0x100]1059 paddd xmm8, xmm121060 paddd xmm9, xmm131061 paddd xmm10, xmm141062 paddd xmm11, xmm151063 pxor xmm4, xmm81064 pxor xmm5, xmm91065 pxor xmm6, xmm101066 pxor xmm7, xmm111067 movdqa xmmword ptr [rsp+0x100], xmm81068 movdqa xmm8, xmm41069 psrld xmm8, 71070 pslld xmm4, 251071 por xmm4, xmm81072 movdqa xmm8, xmm51073 psrld xmm8, 71074 pslld xmm5, 251075 por xmm5, xmm81076 movdqa xmm8, xmm61077 psrld xmm8, 71078 pslld xmm6, 251079 por xmm6, xmm81080 movdqa xmm8, xmm71081 psrld xmm8, 71082 pslld xmm7, 251083 por xmm7, xmm81084 paddd xmm0, xmmword ptr [rsp+0x70]1085 paddd xmm1, xmmword ptr [rsp+0x50]1086 paddd xmm2, xmmword ptr [rsp]1087 paddd xmm3, xmmword ptr [rsp+0x60]1088 paddd xmm0, xmm51089 paddd xmm1, xmm61090 paddd xmm2, xmm71091 paddd xmm3, xmm41092 pxor xmm15, xmm01093 pxor xmm12, xmm11094 pxor xmm13, xmm21095 pxor xmm14, xmm31096 pshuflw xmm15, xmm15, 0xB11097 pshufhw xmm15, xmm15, 0xB11098 pshuflw xmm12, xmm12, 0xB11099 pshufhw xmm12, xmm12, 0xB11100 pshuflw xmm13, xmm13, 0xB11101 pshufhw xmm13, xmm13, 0xB11102 pshuflw xmm14, xmm14, 0xB11103 pshufhw xmm14, xmm14, 0xB11104 paddd xmm10, xmm151105 paddd xmm11, xmm121106 movdqa xmm8, xmmword ptr [rsp+0x100]1107 paddd xmm8, xmm131108 paddd xmm9, xmm141109 pxor xmm5, xmm101110 pxor xmm6, xmm111111 pxor xmm7, xmm81112 pxor xmm4, xmm91113 movdqa xmmword ptr [rsp+0x100], xmm81114 movdqa xmm8, xmm51115 psrld xmm8, 121116 pslld xmm5, 201117 por xmm5, xmm81118 movdqa xmm8, xmm61119 psrld xmm8, 121120 pslld xmm6, 201121 por xmm6, xmm81122 movdqa xmm8, xmm71123 psrld xmm8, 121124 pslld xmm7, 201125 por xmm7, xmm81126 movdqa xmm8, xmm41127 psrld xmm8, 121128 pslld xmm4, 201129 por xmm4, xmm81130 paddd xmm0, xmmword ptr [rsp+0x20]1131 paddd xmm1, xmmword ptr [rsp+0x30]1132 paddd xmm2, xmmword ptr [rsp+0x10]1133 paddd xmm3, xmmword ptr [rsp+0x40]1134 paddd xmm0, xmm51135 paddd xmm1, xmm61136 paddd xmm2, xmm71137 paddd xmm3, xmm41138 pxor xmm15, xmm01139 pxor xmm12, xmm11140 pxor xmm13, xmm21141 pxor xmm14, xmm31142 movdqa xmm8, xmm151143 psrld xmm15, 81144 pslld xmm8, 241145 pxor xmm15, xmm81146 movdqa xmm8, xmm121147 psrld xmm12, 81148 pslld xmm8, 241149 pxor xmm12, xmm81150 movdqa xmm8, xmm131151 psrld xmm13, 81152 pslld xmm8, 241153 pxor xmm13, xmm81154 movdqa xmm8, xmm141155 psrld xmm14, 81156 pslld xmm8, 241157 pxor xmm14, xmm81158 paddd xmm10, xmm151159 paddd xmm11, xmm121160 movdqa xmm8, xmmword ptr [rsp+0x100]1161 paddd xmm8, xmm131162 paddd xmm9, xmm141163 pxor xmm5, xmm101164 pxor xmm6, xmm111165 pxor xmm7, xmm81166 pxor xmm4, xmm91167 movdqa xmmword ptr [rsp+0x100], xmm81168 movdqa xmm8, xmm51169 psrld xmm8, 71170 pslld xmm5, 251171 por xmm5, xmm81172 movdqa xmm8, xmm61173 psrld xmm8, 71174 pslld xmm6, 251175 por xmm6, xmm81176 movdqa xmm8, xmm71177 psrld xmm8, 71178 pslld xmm7, 251179 por xmm7, xmm81180 movdqa xmm8, xmm41181 psrld xmm8, 71182 pslld xmm4, 251183 por xmm4, xmm81184 paddd xmm0, xmmword ptr [rsp+0x90]1185 paddd xmm1, xmmword ptr [rsp+0xB0]1186 paddd xmm2, xmmword ptr [rsp+0x80]1187 paddd xmm3, xmmword ptr [rsp+0xF0]1188 paddd xmm0, xmm41189 paddd xmm1, xmm51190 paddd xmm2, xmm61191 paddd xmm3, xmm71192 pxor xmm12, xmm01193 pxor xmm13, xmm11194 pxor xmm14, xmm21195 pxor xmm15, xmm31196 pshuflw xmm12, xmm12, 0xB11197 pshufhw xmm12, xmm12, 0xB11198 pshuflw xmm13, xmm13, 0xB11199 pshufhw xmm13, xmm13, 0xB11200 pshuflw xmm14, xmm14, 0xB11201 pshufhw xmm14, xmm14, 0xB11202 pshuflw xmm15, xmm15, 0xB11203 pshufhw xmm15, xmm15, 0xB11204 movdqa xmm8, xmmword ptr [rsp+0x100]1205 paddd xmm8, xmm121206 paddd xmm9, xmm131207 paddd xmm10, xmm141208 paddd xmm11, xmm151209 pxor xmm4, xmm81210 pxor xmm5, xmm91211 pxor xmm6, xmm101212 pxor xmm7, xmm111213 movdqa xmmword ptr [rsp+0x100], xmm81214 movdqa xmm8, xmm41215 psrld xmm8, 121216 pslld xmm4, 201217 por xmm4, xmm81218 movdqa xmm8, xmm51219 psrld xmm8, 121220 pslld xmm5, 201221 por xmm5, xmm81222 movdqa xmm8, xmm61223 psrld xmm8, 121224 pslld xmm6, 201225 por xmm6, xmm81226 movdqa xmm8, xmm71227 psrld xmm8, 121228 pslld xmm7, 201229 por xmm7, xmm81230 paddd xmm0, xmmword ptr [rsp+0xE0]1231 paddd xmm1, xmmword ptr [rsp+0x50]1232 paddd xmm2, xmmword ptr [rsp+0xC0]1233 paddd xmm3, xmmword ptr [rsp+0x10]1234 paddd xmm0, xmm41235 paddd xmm1, xmm51236 paddd xmm2, xmm61237 paddd xmm3, xmm71238 pxor xmm12, xmm01239 pxor xmm13, xmm11240 pxor xmm14, xmm21241 pxor xmm15, xmm31242 movdqa xmm8, xmm121243 psrld xmm12, 81244 pslld xmm8, 241245 pxor xmm12, xmm81246 movdqa xmm8, xmm131247 psrld xmm13, 81248 pslld xmm8, 241249 pxor xmm13, xmm81250 movdqa xmm8, xmm141251 psrld xmm14, 81252 pslld xmm8, 241253 pxor xmm14, xmm81254 movdqa xmm8, xmm151255 psrld xmm15, 81256 pslld xmm8, 241257 pxor xmm15, xmm81258 movdqa xmm8, xmmword ptr [rsp+0x100]1259 paddd xmm8, xmm121260 paddd xmm9, xmm131261 paddd xmm10, xmm141262 paddd xmm11, xmm151263 pxor xmm4, xmm81264 pxor xmm5, xmm91265 pxor xmm6, xmm101266 pxor xmm7, xmm111267 movdqa xmmword ptr [rsp+0x100], xmm81268 movdqa xmm8, xmm41269 psrld xmm8, 71270 pslld xmm4, 251271 por xmm4, xmm81272 movdqa xmm8, xmm51273 psrld xmm8, 71274 pslld xmm5, 251275 por xmm5, xmm81276 movdqa xmm8, xmm61277 psrld xmm8, 71278 pslld xmm6, 251279 por xmm6, xmm81280 movdqa xmm8, xmm71281 psrld xmm8, 71282 pslld xmm7, 251283 por xmm7, xmm81284 paddd xmm0, xmmword ptr [rsp+0xD0]1285 paddd xmm1, xmmword ptr [rsp]1286 paddd xmm2, xmmword ptr [rsp+0x20]1287 paddd xmm3, xmmword ptr [rsp+0x40]1288 paddd xmm0, xmm51289 paddd xmm1, xmm61290 paddd xmm2, xmm71291 paddd xmm3, xmm41292 pxor xmm15, xmm01293 pxor xmm12, xmm11294 pxor xmm13, xmm21295 pxor xmm14, xmm31296 pshuflw xmm15, xmm15, 0xB11297 pshufhw xmm15, xmm15, 0xB11298 pshuflw xmm12, xmm12, 0xB11299 pshufhw xmm12, xmm12, 0xB11300 pshuflw xmm13, xmm13, 0xB11301 pshufhw xmm13, xmm13, 0xB11302 pshuflw xmm14, xmm14, 0xB11303 pshufhw xmm14, xmm14, 0xB11304 paddd xmm10, xmm151305 paddd xmm11, xmm121306 movdqa xmm8, xmmword ptr [rsp+0x100]1307 paddd xmm8, xmm131308 paddd xmm9, xmm141309 pxor xmm5, xmm101310 pxor xmm6, xmm111311 pxor xmm7, xmm81312 pxor xmm4, xmm91313 movdqa xmmword ptr [rsp+0x100], xmm81314 movdqa xmm8, xmm51315 psrld xmm8, 121316 pslld xmm5, 201317 por xmm5, xmm81318 movdqa xmm8, xmm61319 psrld xmm8, 121320 pslld xmm6, 201321 por xmm6, xmm81322 movdqa xmm8, xmm71323 psrld xmm8, 121324 pslld xmm7, 201325 por xmm7, xmm81326 movdqa xmm8, xmm41327 psrld xmm8, 121328 pslld xmm4, 201329 por xmm4, xmm81330 paddd xmm0, xmmword ptr [rsp+0x30]1331 paddd xmm1, xmmword ptr [rsp+0xA0]1332 paddd xmm2, xmmword ptr [rsp+0x60]1333 paddd xmm3, xmmword ptr [rsp+0x70]1334 paddd xmm0, xmm51335 paddd xmm1, xmm61336 paddd xmm2, xmm71337 paddd xmm3, xmm41338 pxor xmm15, xmm01339 pxor xmm12, xmm11340 pxor xmm13, xmm21341 pxor xmm14, xmm31342 movdqa xmm8, xmm151343 psrld xmm15, 81344 pslld xmm8, 241345 pxor xmm15, xmm81346 movdqa xmm8, xmm121347 psrld xmm12, 81348 pslld xmm8, 241349 pxor xmm12, xmm81350 movdqa xmm8, xmm131351 psrld xmm13, 81352 pslld xmm8, 241353 pxor xmm13, xmm81354 movdqa xmm8, xmm141355 psrld xmm14, 81356 pslld xmm8, 241357 pxor xmm14, xmm81358 paddd xmm10, xmm151359 paddd xmm11, xmm121360 movdqa xmm8, xmmword ptr [rsp+0x100]1361 paddd xmm8, xmm131362 paddd xmm9, xmm141363 pxor xmm5, xmm101364 pxor xmm6, xmm111365 pxor xmm7, xmm81366 pxor xmm4, xmm91367 movdqa xmmword ptr [rsp+0x100], xmm81368 movdqa xmm8, xmm51369 psrld xmm8, 71370 pslld xmm5, 251371 por xmm5, xmm81372 movdqa xmm8, xmm61373 psrld xmm8, 71374 pslld xmm6, 251375 por xmm6, xmm81376 movdqa xmm8, xmm71377 psrld xmm8, 71378 pslld xmm7, 251379 por xmm7, xmm81380 movdqa xmm8, xmm41381 psrld xmm8, 71382 pslld xmm4, 251383 por xmm4, xmm81384 paddd xmm0, xmmword ptr [rsp+0xB0]1385 paddd xmm1, xmmword ptr [rsp+0x50]1386 paddd xmm2, xmmword ptr [rsp+0x10]1387 paddd xmm3, xmmword ptr [rsp+0x80]1388 paddd xmm0, xmm41389 paddd xmm1, xmm51390 paddd xmm2, xmm61391 paddd xmm3, xmm71392 pxor xmm12, xmm01393 pxor xmm13, xmm11394 pxor xmm14, xmm21395 pxor xmm15, xmm31396 pshuflw xmm12, xmm12, 0xB11397 pshufhw xmm12, xmm12, 0xB11398 pshuflw xmm13, xmm13, 0xB11399 pshufhw xmm13, xmm13, 0xB11400 pshuflw xmm14, xmm14, 0xB11401 pshufhw xmm14, xmm14, 0xB11402 pshuflw xmm15, xmm15, 0xB11403 pshufhw xmm15, xmm15, 0xB11404 movdqa xmm8, xmmword ptr [rsp+0x100]1405 paddd xmm8, xmm121406 paddd xmm9, xmm131407 paddd xmm10, xmm141408 paddd xmm11, xmm151409 pxor xmm4, xmm81410 pxor xmm5, xmm91411 pxor xmm6, xmm101412 pxor xmm7, xmm111413 movdqa xmmword ptr [rsp+0x100], xmm81414 movdqa xmm8, xmm41415 psrld xmm8, 121416 pslld xmm4, 201417 por xmm4, xmm81418 movdqa xmm8, xmm51419 psrld xmm8, 121420 pslld xmm5, 201421 por xmm5, xmm81422 movdqa xmm8, xmm61423 psrld xmm8, 121424 pslld xmm6, 201425 por xmm6, xmm81426 movdqa xmm8, xmm71427 psrld xmm8, 121428 pslld xmm7, 201429 por xmm7, xmm81430 paddd xmm0, xmmword ptr [rsp+0xF0]1431 paddd xmm1, xmmword ptr [rsp]1432 paddd xmm2, xmmword ptr [rsp+0x90]1433 paddd xmm3, xmmword ptr [rsp+0x60]1434 paddd xmm0, xmm41435 paddd xmm1, xmm51436 paddd xmm2, xmm61437 paddd xmm3, xmm71438 pxor xmm12, xmm01439 pxor xmm13, xmm11440 pxor xmm14, xmm21441 pxor xmm15, xmm31442 movdqa xmm8, xmm121443 psrld xmm12, 81444 pslld xmm8, 241445 pxor xmm12, xmm81446 movdqa xmm8, xmm131447 psrld xmm13, 81448 pslld xmm8, 241449 pxor xmm13, xmm81450 movdqa xmm8, xmm141451 psrld xmm14, 81452 pslld xmm8, 241453 pxor xmm14, xmm81454 movdqa xmm8, xmm151455 psrld xmm15, 81456 pslld xmm8, 241457 pxor xmm15, xmm81458 movdqa xmm8, xmmword ptr [rsp+0x100]1459 paddd xmm8, xmm121460 paddd xmm9, xmm131461 paddd xmm10, xmm141462 paddd xmm11, xmm151463 pxor xmm4, xmm81464 pxor xmm5, xmm91465 pxor xmm6, xmm101466 pxor xmm7, xmm111467 movdqa xmmword ptr [rsp+0x100], xmm81468 movdqa xmm8, xmm41469 psrld xmm8, 71470 pslld xmm4, 251471 por xmm4, xmm81472 movdqa xmm8, xmm51473 psrld xmm8, 71474 pslld xmm5, 251475 por xmm5, xmm81476 movdqa xmm8, xmm61477 psrld xmm8, 71478 pslld xmm6, 251479 por xmm6, xmm81480 movdqa xmm8, xmm71481 psrld xmm8, 71482 pslld xmm7, 251483 por xmm7, xmm81484 paddd xmm0, xmmword ptr [rsp+0xE0]1485 paddd xmm1, xmmword ptr [rsp+0x20]1486 paddd xmm2, xmmword ptr [rsp+0x30]1487 paddd xmm3, xmmword ptr [rsp+0x70]1488 paddd xmm0, xmm51489 paddd xmm1, xmm61490 paddd xmm2, xmm71491 paddd xmm3, xmm41492 pxor xmm15, xmm01493 pxor xmm12, xmm11494 pxor xmm13, xmm21495 pxor xmm14, xmm31496 pshuflw xmm15, xmm15, 0xB11497 pshufhw xmm15, xmm15, 0xB11498 pshuflw xmm12, xmm12, 0xB11499 pshufhw xmm12, xmm12, 0xB11500 pshuflw xmm13, xmm13, 0xB11501 pshufhw xmm13, xmm13, 0xB11502 pshuflw xmm14, xmm14, 0xB11503 pshufhw xmm14, xmm14, 0xB11504 paddd xmm10, xmm151505 paddd xmm11, xmm121506 movdqa xmm8, xmmword ptr [rsp+0x100]1507 paddd xmm8, xmm131508 paddd xmm9, xmm141509 pxor xmm5, xmm101510 pxor xmm6, xmm111511 pxor xmm7, xmm81512 pxor xmm4, xmm91513 movdqa xmmword ptr [rsp+0x100], xmm81514 movdqa xmm8, xmm51515 psrld xmm8, 121516 pslld xmm5, 201517 por xmm5, xmm81518 movdqa xmm8, xmm61519 psrld xmm8, 121520 pslld xmm6, 201521 por xmm6, xmm81522 movdqa xmm8, xmm71523 psrld xmm8, 121524 pslld xmm7, 201525 por xmm7, xmm81526 movdqa xmm8, xmm41527 psrld xmm8, 121528 pslld xmm4, 201529 por xmm4, xmm81530 paddd xmm0, xmmword ptr [rsp+0xA0]1531 paddd xmm1, xmmword ptr [rsp+0xC0]1532 paddd xmm2, xmmword ptr [rsp+0x40]1533 paddd xmm3, xmmword ptr [rsp+0xD0]1534 paddd xmm0, xmm51535 paddd xmm1, xmm61536 paddd xmm2, xmm71537 paddd xmm3, xmm41538 pxor xmm15, xmm01539 pxor xmm12, xmm11540 pxor xmm13, xmm21541 pxor xmm14, xmm31542 movdqa xmm8, xmm151543 psrld xmm15, 81544 pslld xmm8, 241545 pxor xmm15, xmm81546 movdqa xmm8, xmm121547 psrld xmm12, 81548 pslld xmm8, 241549 pxor xmm12, xmm81550 movdqa xmm8, xmm131551 psrld xmm13, 81552 pslld xmm8, 241553 pxor xmm13, xmm81554 movdqa xmm8, xmm141555 psrld xmm14, 81556 pslld xmm8, 241557 pxor xmm14, xmm81558 paddd xmm10, xmm151559 paddd xmm11, xmm121560 movdqa xmm8, xmmword ptr [rsp+0x100]1561 paddd xmm8, xmm131562 paddd xmm9, xmm141563 pxor xmm5, xmm101564 pxor xmm6, xmm111565 pxor xmm7, xmm81566 pxor xmm4, xmm91567 pxor xmm0, xmm81568 pxor xmm1, xmm91569 pxor xmm2, xmm101570 pxor xmm3, xmm111571 movdqa xmm8, xmm51572 psrld xmm8, 71573 pslld xmm5, 251574 por xmm5, xmm81575 movdqa xmm8, xmm61576 psrld xmm8, 71577 pslld xmm6, 251578 por xmm6, xmm81579 movdqa xmm8, xmm71580 psrld xmm8, 71581 pslld xmm7, 251582 por xmm7, xmm81583 movdqa xmm8, xmm41584 psrld xmm8, 71585 pslld xmm4, 251586 por xmm4, xmm81587 pxor xmm4, xmm121588 pxor xmm5, xmm131589 pxor xmm6, xmm141590 pxor xmm7, xmm151591 mov eax, r13d1592 jne 9b1593 movdqa xmm9, xmm01594 punpckldq xmm0, xmm11595 punpckhdq xmm9, xmm11596 movdqa xmm11, xmm21597 punpckldq xmm2, xmm31598 punpckhdq xmm11, xmm31599 movdqa xmm1, xmm01600 punpcklqdq xmm0, xmm21601 punpckhqdq xmm1, xmm21602 movdqa xmm3, xmm91603 punpcklqdq xmm9, xmm111604 punpckhqdq xmm3, xmm111605 movdqu xmmword ptr [rbx], xmm01606 movdqu xmmword ptr [rbx+0x20], xmm11607 movdqu xmmword ptr [rbx+0x40], xmm91608 movdqu xmmword ptr [rbx+0x60], xmm31609 movdqa xmm9, xmm41610 punpckldq xmm4, xmm51611 punpckhdq xmm9, xmm51612 movdqa xmm11, xmm61613 punpckldq xmm6, xmm71614 punpckhdq xmm11, xmm71615 movdqa xmm5, xmm41616 punpcklqdq xmm4, xmm61617 punpckhqdq xmm5, xmm61618 movdqa xmm7, xmm91619 punpcklqdq xmm9, xmm111620 punpckhqdq xmm7, xmm111621 movdqu xmmword ptr [rbx+0x10], xmm41622 movdqu xmmword ptr [rbx+0x30], xmm51623 movdqu xmmword ptr [rbx+0x50], xmm91624 movdqu xmmword ptr [rbx+0x70], xmm71625 movdqa xmm1, xmmword ptr [rsp+0x110]1626 movdqa xmm0, xmm11627 paddd xmm1, xmmword ptr [rsp+0x150]1628 movdqa xmmword ptr [rsp+0x110], xmm11629 pxor xmm0, xmmword ptr [CMP_MSB_MASK+rip]1630 pxor xmm1, xmmword ptr [CMP_MSB_MASK+rip]1631 pcmpgtd xmm0, xmm11632 movdqa xmm1, xmmword ptr [rsp+0x120]1633 psubd xmm1, xmm01634 movdqa xmmword ptr [rsp+0x120], xmm11635 add rbx, 1281636 add rdi, 321637 sub rsi, 41638 cmp rsi, 41639 jnc 2b1640 test rsi, rsi1641 jne 3f16424:1643 movdqa xmm6, xmmword ptr [rsp+0x170]1644 movdqa xmm7, xmmword ptr [rsp+0x180]1645 movdqa xmm8, xmmword ptr [rsp+0x190]1646 movdqa xmm9, xmmword ptr [rsp+0x1A0]1647 movdqa xmm10, xmmword ptr [rsp+0x1B0]1648 movdqa xmm11, xmmword ptr [rsp+0x1C0]1649 movdqa xmm12, xmmword ptr [rsp+0x1D0]1650 movdqa xmm13, xmmword ptr [rsp+0x1E0]1651 movdqa xmm14, xmmword ptr [rsp+0x1F0]1652 movdqa xmm15, xmmword ptr [rsp+0x200]1653 mov rsp, rbp1654 pop rbp1655 pop rbx1656 pop rdi1657 pop rsi1658 pop r121659 pop r131660 pop r141661 pop r151662 ret1663.p2align 516643:1665 test esi, 0x21666 je 3f1667 movups xmm0, xmmword ptr [rcx]1668 movups xmm1, xmmword ptr [rcx+0x10]1669 movaps xmm8, xmm01670 movaps xmm9, xmm11671 movd xmm13, dword ptr [rsp+0x110]1672 movd xmm14, dword ptr [rsp+0x120]1673 punpckldq xmm13, xmm141674 movaps xmmword ptr [rsp], xmm131675 movd xmm14, dword ptr [rsp+0x114]1676 movd xmm13, dword ptr [rsp+0x124]1677 punpckldq xmm14, xmm131678 movaps xmmword ptr [rsp+0x10], xmm141679 mov r8, qword ptr [rdi]1680 mov r9, qword ptr [rdi+0x8]1681 movzx eax, byte ptr [rbp+0x80]1682 or eax, r13d1683 xor edx, edx16842:1685 mov r14d, eax1686 or eax, r12d1687 add rdx, 641688 cmp rdx, r151689 cmovne eax, r14d1690 movaps xmm2, xmmword ptr [BLAKE3_IV+rip]1691 movaps xmm10, xmm21692 movups xmm4, xmmword ptr [r8+rdx-0x40]1693 movups xmm5, xmmword ptr [r8+rdx-0x30]1694 movaps xmm3, xmm41695 shufps xmm4, xmm5, 1361696 shufps xmm3, xmm5, 2211697 movaps xmm5, xmm31698 movups xmm6, xmmword ptr [r8+rdx-0x20]1699 movups xmm7, xmmword ptr [r8+rdx-0x10]1700 movaps xmm3, xmm61701 shufps xmm6, xmm7, 1361702 pshufd xmm6, xmm6, 0x931703 shufps xmm3, xmm7, 2211704 pshufd xmm7, xmm3, 0x931705 movups xmm12, xmmword ptr [r9+rdx-0x40]1706 movups xmm13, xmmword ptr [r9+rdx-0x30]1707 movaps xmm11, xmm121708 shufps xmm12, xmm13, 1361709 shufps xmm11, xmm13, 2211710 movaps xmm13, xmm111711 movups xmm14, xmmword ptr [r9+rdx-0x20]1712 movups xmm15, xmmword ptr [r9+rdx-0x10]1713 movaps xmm11, xmm141714 shufps xmm14, xmm15, 1361715 pshufd xmm14, xmm14, 0x931716 shufps xmm11, xmm15, 2211717 pshufd xmm15, xmm11, 0x931718 shl rax, 0x201719 or rax, 0x401720 movq xmm3, rax1721 movdqa xmmword ptr [rsp+0x20], xmm31722 movaps xmm3, xmmword ptr [rsp]1723 movaps xmm11, xmmword ptr [rsp+0x10]1724 punpcklqdq xmm3, xmmword ptr [rsp+0x20]1725 punpcklqdq xmm11, xmmword ptr [rsp+0x20]1726 mov al, 717279:1728 paddd xmm0, xmm41729 paddd xmm8, xmm121730 movaps xmmword ptr [rsp+0x20], xmm41731 movaps xmmword ptr [rsp+0x30], xmm121732 paddd xmm0, xmm11733 paddd xmm8, xmm91734 pxor xmm3, xmm01735 pxor xmm11, xmm81736 pshuflw xmm3, xmm3, 0xB11737 pshufhw xmm3, xmm3, 0xB11738 pshuflw xmm11, xmm11, 0xB11739 pshufhw xmm11, xmm11, 0xB11740 paddd xmm2, xmm31741 paddd xmm10, xmm111742 pxor xmm1, xmm21743 pxor xmm9, xmm101744 movdqa xmm4, xmm11745 pslld xmm1, 201746 psrld xmm4, 121747 por xmm1, xmm41748 movdqa xmm4, xmm91749 pslld xmm9, 201750 psrld xmm4, 121751 por xmm9, xmm41752 paddd xmm0, xmm51753 paddd xmm8, xmm131754 movaps xmmword ptr [rsp+0x40], xmm51755 movaps xmmword ptr [rsp+0x50], xmm131756 paddd xmm0, xmm11757 paddd xmm8, xmm91758 pxor xmm3, xmm01759 pxor xmm11, xmm81760 movdqa xmm13, xmm31761 psrld xmm3, 81762 pslld xmm13, 241763 pxor xmm3, xmm131764 movdqa xmm13, xmm111765 psrld xmm11, 81766 pslld xmm13, 241767 pxor xmm11, xmm131768 paddd xmm2, xmm31769 paddd xmm10, xmm111770 pxor xmm1, xmm21771 pxor xmm9, xmm101772 movdqa xmm4, xmm11773 pslld xmm1, 251774 psrld xmm4, 71775 por xmm1, xmm41776 movdqa xmm4, xmm91777 pslld xmm9, 251778 psrld xmm4, 71779 por xmm9, xmm41780 pshufd xmm0, xmm0, 0x931781 pshufd xmm8, xmm8, 0x931782 pshufd xmm3, xmm3, 0x4E1783 pshufd xmm11, xmm11, 0x4E1784 pshufd xmm2, xmm2, 0x391785 pshufd xmm10, xmm10, 0x391786 paddd xmm0, xmm61787 paddd xmm8, xmm141788 paddd xmm0, xmm11789 paddd xmm8, xmm91790 pxor xmm3, xmm01791 pxor xmm11, xmm81792 pshuflw xmm3, xmm3, 0xB11793 pshufhw xmm3, xmm3, 0xB11794 pshuflw xmm11, xmm11, 0xB11795 pshufhw xmm11, xmm11, 0xB11796 paddd xmm2, xmm31797 paddd xmm10, xmm111798 pxor xmm1, xmm21799 pxor xmm9, xmm101800 movdqa xmm4, xmm11801 pslld xmm1, 201802 psrld xmm4, 121803 por xmm1, xmm41804 movdqa xmm4, xmm91805 pslld xmm9, 201806 psrld xmm4, 121807 por xmm9, xmm41808 paddd xmm0, xmm71809 paddd xmm8, xmm151810 paddd xmm0, xmm11811 paddd xmm8, xmm91812 pxor xmm3, xmm01813 pxor xmm11, xmm81814 movdqa xmm13, xmm31815 psrld xmm3, 81816 pslld xmm13, 241817 pxor xmm3, xmm131818 movdqa xmm13, xmm111819 psrld xmm11, 81820 pslld xmm13, 241821 pxor xmm11, xmm131822 paddd xmm2, xmm31823 paddd xmm10, xmm111824 pxor xmm1, xmm21825 pxor xmm9, xmm101826 movdqa xmm4, xmm11827 pslld xmm1, 251828 psrld xmm4, 71829 por xmm1, xmm41830 movdqa xmm4, xmm91831 pslld xmm9, 251832 psrld xmm4, 71833 por xmm9, xmm41834 pshufd xmm0, xmm0, 0x391835 pshufd xmm8, xmm8, 0x391836 pshufd xmm3, xmm3, 0x4E1837 pshufd xmm11, xmm11, 0x4E1838 pshufd xmm2, xmm2, 0x931839 pshufd xmm10, xmm10, 0x931840 dec al1841 je 9f1842 movdqa xmm12, xmmword ptr [rsp+0x20]1843 movdqa xmm5, xmmword ptr [rsp+0x40]1844 pshufd xmm13, xmm12, 0x0F1845 shufps xmm12, xmm5, 2141846 pshufd xmm4, xmm12, 0x391847 movdqa xmm12, xmm61848 shufps xmm12, xmm7, 2501849 pand xmm13, xmmword ptr [PBLENDW_0x33_MASK+rip]1850 pand xmm12, xmmword ptr [PBLENDW_0xCC_MASK+rip]1851 por xmm13, xmm121852 movdqa xmmword ptr [rsp+0x20], xmm131853 movdqa xmm12, xmm71854 punpcklqdq xmm12, xmm51855 movdqa xmm13, xmm61856 pand xmm12, xmmword ptr [PBLENDW_0x3F_MASK+rip]1857 pand xmm13, xmmword ptr [PBLENDW_0xC0_MASK+rip]1858 por xmm12, xmm131859 pshufd xmm12, xmm12, 0x781860 punpckhdq xmm5, xmm71861 punpckldq xmm6, xmm51862 pshufd xmm7, xmm6, 0x1E1863 movdqa xmmword ptr [rsp+0x40], xmm121864 movdqa xmm5, xmmword ptr [rsp+0x30]1865 movdqa xmm13, xmmword ptr [rsp+0x50]1866 pshufd xmm6, xmm5, 0x0F1867 shufps xmm5, xmm13, 2141868 pshufd xmm12, xmm5, 0x391869 movdqa xmm5, xmm141870 shufps xmm5, xmm15, 2501871 pand xmm6, xmmword ptr [PBLENDW_0x33_MASK+rip]1872 pand xmm5, xmmword ptr [PBLENDW_0xCC_MASK+rip]1873 por xmm6, xmm51874 movdqa xmm5, xmm151875 punpcklqdq xmm5, xmm131876 movdqa xmmword ptr [rsp+0x30], xmm21877 movdqa xmm2, xmm141878 pand xmm5, xmmword ptr [PBLENDW_0x3F_MASK+rip]1879 pand xmm2, xmmword ptr [PBLENDW_0xC0_MASK+rip]1880 por xmm5, xmm21881 movdqa xmm2, xmmword ptr [rsp+0x30]1882 pshufd xmm5, xmm5, 0x781883 punpckhdq xmm13, xmm151884 punpckldq xmm14, xmm131885 pshufd xmm15, xmm14, 0x1E1886 movdqa xmm13, xmm61887 movdqa xmm14, xmm51888 movdqa xmm5, xmmword ptr [rsp+0x20]1889 movdqa xmm6, xmmword ptr [rsp+0x40]1890 jmp 9b18919:1892 pxor xmm0, xmm21893 pxor xmm1, xmm31894 pxor xmm8, xmm101895 pxor xmm9, xmm111896 mov eax, r13d1897 cmp rdx, r151898 jne 2b1899 movups xmmword ptr [rbx], xmm01900 movups xmmword ptr [rbx+0x10], xmm11901 movups xmmword ptr [rbx+0x20], xmm81902 movups xmmword ptr [rbx+0x30], xmm91903 mov eax, dword ptr [rsp+0x130]1904 neg eax1905 mov r10d, dword ptr [rsp+0x110+8*rax]1906 mov r11d, dword ptr [rsp+0x120+8*rax]1907 mov dword ptr [rsp+0x110], r10d1908 mov dword ptr [rsp+0x120], r11d1909 add rdi, 161910 add rbx, 641911 sub rsi, 219123:1913 test esi, 0x11914 je 4b1915 movups xmm0, xmmword ptr [rcx]1916 movups xmm1, xmmword ptr [rcx+0x10]1917 movd xmm13, dword ptr [rsp+0x110]1918 movd xmm14, dword ptr [rsp+0x120]1919 punpckldq xmm13, xmm141920 mov r8, qword ptr [rdi]1921 movzx eax, byte ptr [rbp+0x80]1922 or eax, r13d1923 xor edx, edx19242:1925 mov r14d, eax1926 or eax, r12d1927 add rdx, 641928 cmp rdx, r151929 cmovne eax, r14d1930 movaps xmm2, xmmword ptr [BLAKE3_IV+rip]1931 shl rax, 321932 or rax, 641933 movq xmm12, rax1934 movdqa xmm3, xmm131935 punpcklqdq xmm3, xmm121936 movups xmm4, xmmword ptr [r8+rdx-0x40]1937 movups xmm5, xmmword ptr [r8+rdx-0x30]1938 movaps xmm8, xmm41939 shufps xmm4, xmm5, 1361940 shufps xmm8, xmm5, 2211941 movaps xmm5, xmm81942 movups xmm6, xmmword ptr [r8+rdx-0x20]1943 movups xmm7, xmmword ptr [r8+rdx-0x10]1944 movaps xmm8, xmm61945 shufps xmm6, xmm7, 1361946 pshufd xmm6, xmm6, 0x931947 shufps xmm8, xmm7, 2211948 pshufd xmm7, xmm8, 0x931949 mov al, 719509:1951 paddd xmm0, xmm41952 paddd xmm0, xmm11953 pxor xmm3, xmm01954 pshuflw xmm3, xmm3, 0xB11955 pshufhw xmm3, xmm3, 0xB11956 paddd xmm2, xmm31957 pxor xmm1, xmm21958 movdqa xmm11, xmm11959 pslld xmm1, 201960 psrld xmm11, 121961 por xmm1, xmm111962 paddd xmm0, xmm51963 paddd xmm0, xmm11964 pxor xmm3, xmm01965 movdqa xmm14, xmm31966 psrld xmm3, 81967 pslld xmm14, 241968 pxor xmm3, xmm141969 paddd xmm2, xmm31970 pxor xmm1, xmm21971 movdqa xmm11, xmm11972 pslld xmm1, 251973 psrld xmm11, 71974 por xmm1, xmm111975 pshufd xmm0, xmm0, 0x931976 pshufd xmm3, xmm3, 0x4E1977 pshufd xmm2, xmm2, 0x391978 paddd xmm0, xmm61979 paddd xmm0, xmm11980 pxor xmm3, xmm01981 pshuflw xmm3, xmm3, 0xB11982 pshufhw xmm3, xmm3, 0xB11983 paddd xmm2, xmm31984 pxor xmm1, xmm21985 movdqa xmm11, xmm11986 pslld xmm1, 201987 psrld xmm11, 121988 por xmm1, xmm111989 paddd xmm0, xmm71990 paddd xmm0, xmm11991 pxor xmm3, xmm01992 movdqa xmm14, xmm31993 psrld xmm3, 81994 pslld xmm14, 241995 pxor xmm3, xmm141996 paddd xmm2, xmm31997 pxor xmm1, xmm21998 movdqa xmm11, xmm11999 pslld xmm1, 252000 psrld xmm11, 72001 por xmm1, xmm112002 pshufd xmm0, xmm0, 0x392003 pshufd xmm3, xmm3, 0x4E2004 pshufd xmm2, xmm2, 0x932005 dec al2006 jz 9f2007 movdqa xmm8, xmm42008 shufps xmm8, xmm5, 2142009 pshufd xmm9, xmm4, 0x0F2010 pshufd xmm4, xmm8, 0x392011 movdqa xmm8, xmm62012 shufps xmm8, xmm7, 2502013 pand xmm9, xmmword ptr [PBLENDW_0x33_MASK+rip]2014 pand xmm8, xmmword ptr [PBLENDW_0xCC_MASK+rip]2015 por xmm9, xmm82016 movdqa xmm8, xmm72017 punpcklqdq xmm8, xmm52018 movdqa xmm10, xmm62019 pand xmm8, xmmword ptr [PBLENDW_0x3F_MASK+rip]2020 pand xmm10, xmmword ptr [PBLENDW_0xC0_MASK+rip]2021 por xmm8, xmm102022 pshufd xmm8, xmm8, 0x782023 punpckhdq xmm5, xmm72024 punpckldq xmm6, xmm52025 pshufd xmm7, xmm6, 0x1E2026 movdqa xmm5, xmm92027 movdqa xmm6, xmm82028 jmp 9b20299:2030 pxor xmm0, xmm22031 pxor xmm1, xmm32032 mov eax, r13d2033 cmp rdx, r152034 jne 2b2035 movups xmmword ptr [rbx], xmm02036 movups xmmword ptr [rbx+0x10], xmm12037 jmp 4b2038 2039.p2align 62040blake3_compress_in_place_sse2:2041_blake3_compress_in_place_sse2:2042 sub rsp, 1202043 movdqa xmmword ptr [rsp], xmm62044 movdqa xmmword ptr [rsp+0x10], xmm72045 movdqa xmmword ptr [rsp+0x20], xmm82046 movdqa xmmword ptr [rsp+0x30], xmm92047 movdqa xmmword ptr [rsp+0x40], xmm112048 movdqa xmmword ptr [rsp+0x50], xmm142049 movdqa xmmword ptr [rsp+0x60], xmm152050 movups xmm0, xmmword ptr [rcx]2051 movups xmm1, xmmword ptr [rcx+0x10]2052 movaps xmm2, xmmword ptr [BLAKE3_IV+rip]2053 movzx eax, byte ptr [rsp+0xA0]2054 movzx r8d, r8b2055 shl rax, 322056 add r8, rax2057 movq xmm3, r92058 movq xmm4, r82059 punpcklqdq xmm3, xmm42060 movups xmm4, xmmword ptr [rdx]2061 movups xmm5, xmmword ptr [rdx+0x10]2062 movaps xmm8, xmm42063 shufps xmm4, xmm5, 1362064 shufps xmm8, xmm5, 2212065 movaps xmm5, xmm82066 movups xmm6, xmmword ptr [rdx+0x20]2067 movups xmm7, xmmword ptr [rdx+0x30]2068 movaps xmm8, xmm62069 shufps xmm6, xmm7, 1362070 pshufd xmm6, xmm6, 0x932071 shufps xmm8, xmm7, 2212072 pshufd xmm7, xmm8, 0x932073 mov al, 720749:2075 paddd xmm0, xmm42076 paddd xmm0, xmm12077 pxor xmm3, xmm02078 pshuflw xmm3, xmm3, 0xB12079 pshufhw xmm3, xmm3, 0xB12080 paddd xmm2, xmm32081 pxor xmm1, xmm22082 movdqa xmm11, xmm12083 pslld xmm1, 202084 psrld xmm11, 122085 por xmm1, xmm112086 paddd xmm0, xmm52087 paddd xmm0, xmm12088 pxor xmm3, xmm02089 movdqa xmm14, xmm32090 psrld xmm3, 82091 pslld xmm14, 242092 pxor xmm3, xmm142093 paddd xmm2, xmm32094 pxor xmm1, xmm22095 movdqa xmm11, xmm12096 pslld xmm1, 252097 psrld xmm11, 72098 por xmm1, xmm112099 pshufd xmm0, xmm0, 0x932100 pshufd xmm3, xmm3, 0x4E2101 pshufd xmm2, xmm2, 0x392102 paddd xmm0, xmm62103 paddd xmm0, xmm12104 pxor xmm3, xmm02105 pshuflw xmm3, xmm3, 0xB12106 pshufhw xmm3, xmm3, 0xB12107 paddd xmm2, xmm32108 pxor xmm1, xmm22109 movdqa xmm11, xmm12110 pslld xmm1, 202111 psrld xmm11, 122112 por xmm1, xmm112113 paddd xmm0, xmm72114 paddd xmm0, xmm12115 pxor xmm3, xmm02116 movdqa xmm14, xmm32117 psrld xmm3, 82118 pslld xmm14, 242119 pxor xmm3, xmm142120 paddd xmm2, xmm32121 pxor xmm1, xmm22122 movdqa xmm11, xmm12123 pslld xmm1, 252124 psrld xmm11, 72125 por xmm1, xmm112126 pshufd xmm0, xmm0, 0x392127 pshufd xmm3, xmm3, 0x4E2128 pshufd xmm2, xmm2, 0x932129 dec al2130 jz 9f2131 movdqa xmm8, xmm42132 shufps xmm8, xmm5, 2142133 pshufd xmm9, xmm4, 0x0F2134 pshufd xmm4, xmm8, 0x392135 movdqa xmm8, xmm62136 shufps xmm8, xmm7, 2502137 pand xmm9, xmmword ptr [PBLENDW_0x33_MASK+rip]2138 pand xmm8, xmmword ptr [PBLENDW_0xCC_MASK+rip]2139 por xmm9, xmm82140 movdqa xmm8, xmm72141 punpcklqdq xmm8, xmm52142 movdqa xmm14, xmm62143 pand xmm8, xmmword ptr [PBLENDW_0x3F_MASK+rip]2144 pand xmm14, xmmword ptr [PBLENDW_0xC0_MASK+rip]2145 por xmm8, xmm142146 pshufd xmm8, xmm8, 0x782147 punpckhdq xmm5, xmm72148 punpckldq xmm6, xmm52149 pshufd xmm7, xmm6, 0x1E2150 movdqa xmm5, xmm92151 movdqa xmm6, xmm82152 jmp 9b21539:2154 pxor xmm0, xmm22155 pxor xmm1, xmm32156 movups xmmword ptr [rcx], xmm02157 movups xmmword ptr [rcx+0x10], xmm12158 movdqa xmm6, xmmword ptr [rsp]2159 movdqa xmm7, xmmword ptr [rsp+0x10]2160 movdqa xmm8, xmmword ptr [rsp+0x20]2161 movdqa xmm9, xmmword ptr [rsp+0x30]2162 movdqa xmm11, xmmword ptr [rsp+0x40]2163 movdqa xmm14, xmmword ptr [rsp+0x50]2164 movdqa xmm15, xmmword ptr [rsp+0x60]2165 add rsp, 1202166 ret2167 2168 2169.p2align 62170_blake3_compress_xof_sse2:2171blake3_compress_xof_sse2:2172 sub rsp, 1202173 movdqa xmmword ptr [rsp], xmm62174 movdqa xmmword ptr [rsp+0x10], xmm72175 movdqa xmmword ptr [rsp+0x20], xmm82176 movdqa xmmword ptr [rsp+0x30], xmm92177 movdqa xmmword ptr [rsp+0x40], xmm112178 movdqa xmmword ptr [rsp+0x50], xmm142179 movdqa xmmword ptr [rsp+0x60], xmm152180 movups xmm0, xmmword ptr [rcx]2181 movups xmm1, xmmword ptr [rcx+0x10]2182 movaps xmm2, xmmword ptr [BLAKE3_IV+rip]2183 movzx eax, byte ptr [rsp+0xA0]2184 movzx r8d, r8b2185 mov r10, qword ptr [rsp+0xA8]2186 shl rax, 322187 add r8, rax2188 movq xmm3, r92189 movq xmm4, r82190 punpcklqdq xmm3, xmm42191 movups xmm4, xmmword ptr [rdx]2192 movups xmm5, xmmword ptr [rdx+0x10]2193 movaps xmm8, xmm42194 shufps xmm4, xmm5, 1362195 shufps xmm8, xmm5, 2212196 movaps xmm5, xmm82197 movups xmm6, xmmword ptr [rdx+0x20]2198 movups xmm7, xmmword ptr [rdx+0x30]2199 movaps xmm8, xmm62200 shufps xmm6, xmm7, 1362201 pshufd xmm6, xmm6, 0x932202 shufps xmm8, xmm7, 2212203 pshufd xmm7, xmm8, 0x932204 mov al, 722059:2206 paddd xmm0, xmm42207 paddd xmm0, xmm12208 pxor xmm3, xmm02209 pshuflw xmm3, xmm3, 0xB12210 pshufhw xmm3, xmm3, 0xB12211 paddd xmm2, xmm32212 pxor xmm1, xmm22213 movdqa xmm11, xmm12214 pslld xmm1, 202215 psrld xmm11, 122216 por xmm1, xmm112217 paddd xmm0, xmm52218 paddd xmm0, xmm12219 pxor xmm3, xmm02220 movdqa xmm14, xmm32221 psrld xmm3, 82222 pslld xmm14, 242223 pxor xmm3, xmm142224 paddd xmm2, xmm32225 pxor xmm1, xmm22226 movdqa xmm11, xmm12227 pslld xmm1, 252228 psrld xmm11, 72229 por xmm1, xmm112230 pshufd xmm0, xmm0, 0x932231 pshufd xmm3, xmm3, 0x4E2232 pshufd xmm2, xmm2, 0x392233 paddd xmm0, xmm62234 paddd xmm0, xmm12235 pxor xmm3, xmm02236 pshuflw xmm3, xmm3, 0xB12237 pshufhw xmm3, xmm3, 0xB12238 paddd xmm2, xmm32239 pxor xmm1, xmm22240 movdqa xmm11, xmm12241 pslld xmm1, 202242 psrld xmm11, 122243 por xmm1, xmm112244 paddd xmm0, xmm72245 paddd xmm0, xmm12246 pxor xmm3, xmm02247 movdqa xmm14, xmm32248 psrld xmm3, 82249 pslld xmm14, 242250 pxor xmm3, xmm142251 paddd xmm2, xmm32252 pxor xmm1, xmm22253 movdqa xmm11, xmm12254 pslld xmm1, 252255 psrld xmm11, 72256 por xmm1, xmm112257 pshufd xmm0, xmm0, 0x392258 pshufd xmm3, xmm3, 0x4E2259 pshufd xmm2, xmm2, 0x932260 dec al2261 jz 9f2262 movdqa xmm8, xmm42263 shufps xmm8, xmm5, 2142264 pshufd xmm9, xmm4, 0x0F2265 pshufd xmm4, xmm8, 0x392266 movdqa xmm8, xmm62267 shufps xmm8, xmm7, 2502268 pand xmm9, xmmword ptr [PBLENDW_0x33_MASK+rip]2269 pand xmm8, xmmword ptr [PBLENDW_0xCC_MASK+rip]2270 por xmm9, xmm82271 movdqa xmm8, xmm72272 punpcklqdq xmm8, xmm52273 movdqa xmm14, xmm62274 pand xmm8, xmmword ptr [PBLENDW_0x3F_MASK+rip]2275 pand xmm14, xmmword ptr [PBLENDW_0xC0_MASK+rip]2276 por xmm8, xmm142277 pshufd xmm8, xmm8, 0x782278 punpckhdq xmm5, xmm72279 punpckldq xmm6, xmm52280 pshufd xmm7, xmm6, 0x1E2281 movdqa xmm5, xmm92282 movdqa xmm6, xmm82283 jmp 9b22849:2285 movdqu xmm4, xmmword ptr [rcx]2286 movdqu xmm5, xmmword ptr [rcx+0x10]2287 pxor xmm0, xmm22288 pxor xmm1, xmm32289 pxor xmm2, xmm42290 pxor xmm3, xmm52291 movups xmmword ptr [r10], xmm02292 movups xmmword ptr [r10+0x10], xmm12293 movups xmmword ptr [r10+0x20], xmm22294 movups xmmword ptr [r10+0x30], xmm32295 movdqa xmm6, xmmword ptr [rsp]2296 movdqa xmm7, xmmword ptr [rsp+0x10]2297 movdqa xmm8, xmmword ptr [rsp+0x20]2298 movdqa xmm9, xmmword ptr [rsp+0x30]2299 movdqa xmm11, xmmword ptr [rsp+0x40]2300 movdqa xmm14, xmmword ptr [rsp+0x50]2301 movdqa xmm15, xmmword ptr [rsp+0x60]2302 add rsp, 1202303 ret2304 2305 2306.section .rdata2307.p2align 62308BLAKE3_IV:2309 .long 0x6A09E667, 0xBB67AE852310 .long 0x3C6EF372, 0xA54FF53A2311ADD0: 2312 .long 0, 1, 2, 32313ADD1:2314 .long 4, 4, 4, 42315BLAKE3_IV_0:2316 .long 0x6A09E667, 0x6A09E667, 0x6A09E667, 0x6A09E6672317BLAKE3_IV_1:2318 .long 0xBB67AE85, 0xBB67AE85, 0xBB67AE85, 0xBB67AE852319BLAKE3_IV_2:2320 .long 0x3C6EF372, 0x3C6EF372, 0x3C6EF372, 0x3C6EF3722321BLAKE3_IV_3:2322 .long 0xA54FF53A, 0xA54FF53A, 0xA54FF53A, 0xA54FF53A2323BLAKE3_BLOCK_LEN:2324 .long 64, 64, 64, 642325CMP_MSB_MASK:2326 .long 0x80000000, 0x80000000, 0x80000000, 0x800000002327PBLENDW_0x33_MASK:2328 .long 0xFFFFFFFF, 0x00000000, 0xFFFFFFFF, 0x000000002329PBLENDW_0xCC_MASK:2330 .long 0x00000000, 0xFFFFFFFF, 0x00000000, 0xFFFFFFFF2331PBLENDW_0x3F_MASK:2332 .long 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0x000000002333PBLENDW_0xC0_MASK:2334 .long 0x00000000, 0x00000000, 0x00000000, 0xFFFFFFFF2335