2310 lines · plain
1#if defined(__x86_64__)2 3#include "llvm_blake3_prefix.h"4 5#if defined(__ELF__) && !(defined(__sun__) && defined(__svr4__))6.section .note.GNU-stack,"",%progbits7#endif8 9#if defined(__ELF__) && defined(__CET__) && defined(__has_include)10#if __has_include(<cet.h>)11#include <cet.h>12#endif13#endif14 15#if !defined(_CET_ENDBR)16#define _CET_ENDBR17#endif18 19#ifdef __APPLE__20#define HIDDEN .private_extern21#else22#define HIDDEN .hidden23#endif24 25.intel_syntax noprefix26HIDDEN blake3_hash_many_sse227HIDDEN _blake3_hash_many_sse228HIDDEN blake3_compress_in_place_sse229HIDDEN _blake3_compress_in_place_sse230HIDDEN blake3_compress_xof_sse231HIDDEN _blake3_compress_xof_sse232.global blake3_hash_many_sse233.global _blake3_hash_many_sse234.global blake3_compress_in_place_sse235.global _blake3_compress_in_place_sse236.global blake3_compress_xof_sse237.global _blake3_compress_xof_sse238#ifdef __APPLE__39.text40#else41.section .text42#endif43 .p2align 644_blake3_hash_many_sse2:45blake3_hash_many_sse2:46 _CET_ENDBR47 push r1548 push r1449 push r1350 push r1251 push rbx52 push rbp53 mov rbp, rsp54 sub rsp, 36055 and rsp, 0xFFFFFFFFFFFFFFC056 neg r9d57 movd xmm0, r9d58 pshufd xmm0, xmm0, 0x0059 movdqa xmmword ptr [rsp+0x130], xmm060 movdqa xmm1, xmm061 pand xmm1, xmmword ptr [ADD0+rip]62 pand xmm0, xmmword ptr [ADD1+rip]63 movdqa xmmword ptr [rsp+0x150], xmm064 movd xmm0, r8d65 pshufd xmm0, xmm0, 0x0066 paddd xmm0, xmm167 movdqa xmmword ptr [rsp+0x110], xmm068 pxor xmm0, xmmword ptr [CMP_MSB_MASK+rip]69 pxor xmm1, xmmword ptr [CMP_MSB_MASK+rip]70 pcmpgtd xmm1, xmm071 shr r8, 3272 movd xmm2, r8d73 pshufd xmm2, xmm2, 0x0074 psubd xmm2, xmm175 movdqa xmmword ptr [rsp+0x120], xmm276 mov rbx, qword ptr [rbp+0x50]77 mov r15, rdx78 shl r15, 679 movzx r13d, byte ptr [rbp+0x38]80 movzx r12d, byte ptr [rbp+0x48]81 cmp rsi, 482 jc 3f832:84 movdqu xmm3, xmmword ptr [rcx]85 pshufd xmm0, xmm3, 0x0086 pshufd xmm1, xmm3, 0x5587 pshufd xmm2, xmm3, 0xAA88 pshufd xmm3, xmm3, 0xFF89 movdqu xmm7, xmmword ptr [rcx+0x10]90 pshufd xmm4, xmm7, 0x0091 pshufd xmm5, xmm7, 0x5592 pshufd xmm6, xmm7, 0xAA93 pshufd xmm7, xmm7, 0xFF94 mov r8, qword ptr [rdi]95 mov r9, qword ptr [rdi+0x8]96 mov r10, qword ptr [rdi+0x10]97 mov r11, qword ptr [rdi+0x18]98 movzx eax, byte ptr [rbp+0x40]99 or eax, r13d100 xor edx, edx1019:102 mov r14d, eax103 or eax, r12d104 add rdx, 64105 cmp rdx, r15106 cmovne eax, r14d107 movdqu xmm8, xmmword ptr [r8+rdx-0x40]108 movdqu xmm9, xmmword ptr [r9+rdx-0x40]109 movdqu xmm10, xmmword ptr [r10+rdx-0x40]110 movdqu xmm11, xmmword ptr [r11+rdx-0x40]111 movdqa xmm12, xmm8112 punpckldq xmm8, xmm9113 punpckhdq xmm12, xmm9114 movdqa xmm14, xmm10115 punpckldq xmm10, xmm11116 punpckhdq xmm14, xmm11117 movdqa xmm9, xmm8118 punpcklqdq xmm8, xmm10119 punpckhqdq xmm9, xmm10120 movdqa xmm13, xmm12121 punpcklqdq xmm12, xmm14122 punpckhqdq xmm13, xmm14123 movdqa xmmword ptr [rsp], xmm8124 movdqa xmmword ptr [rsp+0x10], xmm9125 movdqa xmmword ptr [rsp+0x20], xmm12126 movdqa xmmword ptr [rsp+0x30], xmm13127 movdqu xmm8, xmmword ptr [r8+rdx-0x30]128 movdqu xmm9, xmmword ptr [r9+rdx-0x30]129 movdqu xmm10, xmmword ptr [r10+rdx-0x30]130 movdqu xmm11, xmmword ptr [r11+rdx-0x30]131 movdqa xmm12, xmm8132 punpckldq xmm8, xmm9133 punpckhdq xmm12, xmm9134 movdqa xmm14, xmm10135 punpckldq xmm10, xmm11136 punpckhdq xmm14, xmm11137 movdqa xmm9, xmm8138 punpcklqdq xmm8, xmm10139 punpckhqdq xmm9, xmm10140 movdqa xmm13, xmm12141 punpcklqdq xmm12, xmm14142 punpckhqdq xmm13, xmm14143 movdqa xmmword ptr [rsp+0x40], xmm8144 movdqa xmmword ptr [rsp+0x50], xmm9145 movdqa xmmword ptr [rsp+0x60], xmm12146 movdqa xmmword ptr [rsp+0x70], xmm13147 movdqu xmm8, xmmword ptr [r8+rdx-0x20]148 movdqu xmm9, xmmword ptr [r9+rdx-0x20]149 movdqu xmm10, xmmword ptr [r10+rdx-0x20]150 movdqu xmm11, xmmword ptr [r11+rdx-0x20]151 movdqa xmm12, xmm8152 punpckldq xmm8, xmm9153 punpckhdq xmm12, xmm9154 movdqa xmm14, xmm10155 punpckldq xmm10, xmm11156 punpckhdq xmm14, xmm11157 movdqa xmm9, xmm8158 punpcklqdq xmm8, xmm10159 punpckhqdq xmm9, xmm10160 movdqa xmm13, xmm12161 punpcklqdq xmm12, xmm14162 punpckhqdq xmm13, xmm14163 movdqa xmmword ptr [rsp+0x80], xmm8164 movdqa xmmword ptr [rsp+0x90], xmm9165 movdqa xmmword ptr [rsp+0xA0], xmm12166 movdqa xmmword ptr [rsp+0xB0], xmm13167 movdqu xmm8, xmmword ptr [r8+rdx-0x10]168 movdqu xmm9, xmmword ptr [r9+rdx-0x10]169 movdqu xmm10, xmmword ptr [r10+rdx-0x10]170 movdqu xmm11, xmmword ptr [r11+rdx-0x10]171 movdqa xmm12, xmm8172 punpckldq xmm8, xmm9173 punpckhdq xmm12, xmm9174 movdqa xmm14, xmm10175 punpckldq xmm10, xmm11176 punpckhdq xmm14, xmm11177 movdqa xmm9, xmm8178 punpcklqdq xmm8, xmm10179 punpckhqdq xmm9, xmm10180 movdqa xmm13, xmm12181 punpcklqdq xmm12, xmm14182 punpckhqdq xmm13, xmm14183 movdqa xmmword ptr [rsp+0xC0], xmm8184 movdqa xmmword ptr [rsp+0xD0], xmm9185 movdqa xmmword ptr [rsp+0xE0], xmm12186 movdqa xmmword ptr [rsp+0xF0], xmm13187 movdqa xmm9, xmmword ptr [BLAKE3_IV_1+rip]188 movdqa xmm10, xmmword ptr [BLAKE3_IV_2+rip]189 movdqa xmm11, xmmword ptr [BLAKE3_IV_3+rip]190 movdqa xmm12, xmmword ptr [rsp+0x110]191 movdqa xmm13, xmmword ptr [rsp+0x120]192 movdqa xmm14, xmmword ptr [BLAKE3_BLOCK_LEN+rip]193 movd xmm15, eax194 pshufd xmm15, xmm15, 0x00195 prefetcht0 [r8+rdx+0x80]196 prefetcht0 [r9+rdx+0x80]197 prefetcht0 [r10+rdx+0x80]198 prefetcht0 [r11+rdx+0x80]199 paddd xmm0, xmmword ptr [rsp]200 paddd xmm1, xmmword ptr [rsp+0x20]201 paddd xmm2, xmmword ptr [rsp+0x40]202 paddd xmm3, xmmword ptr [rsp+0x60]203 paddd xmm0, xmm4204 paddd xmm1, xmm5205 paddd xmm2, xmm6206 paddd xmm3, xmm7207 pxor xmm12, xmm0208 pxor xmm13, xmm1209 pxor xmm14, xmm2210 pxor xmm15, xmm3211 pshuflw xmm12, xmm12, 0xB1212 pshufhw xmm12, xmm12, 0xB1213 pshuflw xmm13, xmm13, 0xB1214 pshufhw xmm13, xmm13, 0xB1215 pshuflw xmm14, xmm14, 0xB1216 pshufhw xmm14, xmm14, 0xB1217 pshuflw xmm15, xmm15, 0xB1218 pshufhw xmm15, xmm15, 0xB1219 movdqa xmm8, xmmword ptr [BLAKE3_IV_0+rip]220 paddd xmm8, xmm12221 paddd xmm9, xmm13222 paddd xmm10, xmm14223 paddd xmm11, xmm15224 pxor xmm4, xmm8225 pxor xmm5, xmm9226 pxor xmm6, xmm10227 pxor xmm7, xmm11228 movdqa xmmword ptr [rsp+0x100], xmm8229 movdqa xmm8, xmm4230 psrld xmm8, 12231 pslld xmm4, 20232 por xmm4, xmm8233 movdqa xmm8, xmm5234 psrld xmm8, 12235 pslld xmm5, 20236 por xmm5, xmm8237 movdqa xmm8, xmm6238 psrld xmm8, 12239 pslld xmm6, 20240 por xmm6, xmm8241 movdqa xmm8, xmm7242 psrld xmm8, 12243 pslld xmm7, 20244 por xmm7, xmm8245 paddd xmm0, xmmword ptr [rsp+0x10]246 paddd xmm1, xmmword ptr [rsp+0x30]247 paddd xmm2, xmmword ptr [rsp+0x50]248 paddd xmm3, xmmword ptr [rsp+0x70]249 paddd xmm0, xmm4250 paddd xmm1, xmm5251 paddd xmm2, xmm6252 paddd xmm3, xmm7253 pxor xmm12, xmm0254 pxor xmm13, xmm1255 pxor xmm14, xmm2256 pxor xmm15, xmm3257 movdqa xmm8, xmm12258 psrld xmm12, 8259 pslld xmm8, 24260 pxor xmm12, xmm8261 movdqa xmm8, xmm13262 psrld xmm13, 8263 pslld xmm8, 24264 pxor xmm13, xmm8265 movdqa xmm8, xmm14266 psrld xmm14, 8267 pslld xmm8, 24268 pxor xmm14, xmm8269 movdqa xmm8, xmm15270 psrld xmm15, 8271 pslld xmm8, 24272 pxor xmm15, xmm8273 movdqa xmm8, xmmword ptr [rsp+0x100]274 paddd xmm8, xmm12275 paddd xmm9, xmm13276 paddd xmm10, xmm14277 paddd xmm11, xmm15278 pxor xmm4, xmm8279 pxor xmm5, xmm9280 pxor xmm6, xmm10281 pxor xmm7, xmm11282 movdqa xmmword ptr [rsp+0x100], xmm8283 movdqa xmm8, xmm4284 psrld xmm8, 7285 pslld xmm4, 25286 por xmm4, xmm8287 movdqa xmm8, xmm5288 psrld xmm8, 7289 pslld xmm5, 25290 por xmm5, xmm8291 movdqa xmm8, xmm6292 psrld xmm8, 7293 pslld xmm6, 25294 por xmm6, xmm8295 movdqa xmm8, xmm7296 psrld xmm8, 7297 pslld xmm7, 25298 por xmm7, xmm8299 paddd xmm0, xmmword ptr [rsp+0x80]300 paddd xmm1, xmmword ptr [rsp+0xA0]301 paddd xmm2, xmmword ptr [rsp+0xC0]302 paddd xmm3, xmmword ptr [rsp+0xE0]303 paddd xmm0, xmm5304 paddd xmm1, xmm6305 paddd xmm2, xmm7306 paddd xmm3, xmm4307 pxor xmm15, xmm0308 pxor xmm12, xmm1309 pxor xmm13, xmm2310 pxor xmm14, xmm3311 pshuflw xmm15, xmm15, 0xB1312 pshufhw xmm15, xmm15, 0xB1313 pshuflw xmm12, xmm12, 0xB1314 pshufhw xmm12, xmm12, 0xB1315 pshuflw xmm13, xmm13, 0xB1316 pshufhw xmm13, xmm13, 0xB1317 pshuflw xmm14, xmm14, 0xB1318 pshufhw xmm14, xmm14, 0xB1319 paddd xmm10, xmm15320 paddd xmm11, xmm12321 movdqa xmm8, xmmword ptr [rsp+0x100]322 paddd xmm8, xmm13323 paddd xmm9, xmm14324 pxor xmm5, xmm10325 pxor xmm6, xmm11326 pxor xmm7, xmm8327 pxor xmm4, xmm9328 movdqa xmmword ptr [rsp+0x100], xmm8329 movdqa xmm8, xmm5330 psrld xmm8, 12331 pslld xmm5, 20332 por xmm5, xmm8333 movdqa xmm8, xmm6334 psrld xmm8, 12335 pslld xmm6, 20336 por xmm6, xmm8337 movdqa xmm8, xmm7338 psrld xmm8, 12339 pslld xmm7, 20340 por xmm7, xmm8341 movdqa xmm8, xmm4342 psrld xmm8, 12343 pslld xmm4, 20344 por xmm4, xmm8345 paddd xmm0, xmmword ptr [rsp+0x90]346 paddd xmm1, xmmword ptr [rsp+0xB0]347 paddd xmm2, xmmword ptr [rsp+0xD0]348 paddd xmm3, xmmword ptr [rsp+0xF0]349 paddd xmm0, xmm5350 paddd xmm1, xmm6351 paddd xmm2, xmm7352 paddd xmm3, xmm4353 pxor xmm15, xmm0354 pxor xmm12, xmm1355 pxor xmm13, xmm2356 pxor xmm14, xmm3357 movdqa xmm8, xmm15358 psrld xmm15, 8359 pslld xmm8, 24360 pxor xmm15, xmm8361 movdqa xmm8, xmm12362 psrld xmm12, 8363 pslld xmm8, 24364 pxor xmm12, xmm8365 movdqa xmm8, xmm13366 psrld xmm13, 8367 pslld xmm8, 24368 pxor xmm13, xmm8369 movdqa xmm8, xmm14370 psrld xmm14, 8371 pslld xmm8, 24372 pxor xmm14, xmm8373 paddd xmm10, xmm15374 paddd xmm11, xmm12375 movdqa xmm8, xmmword ptr [rsp+0x100]376 paddd xmm8, xmm13377 paddd xmm9, xmm14378 pxor xmm5, xmm10379 pxor xmm6, xmm11380 pxor xmm7, xmm8381 pxor xmm4, xmm9382 movdqa xmmword ptr [rsp+0x100], xmm8383 movdqa xmm8, xmm5384 psrld xmm8, 7385 pslld xmm5, 25386 por xmm5, xmm8387 movdqa xmm8, xmm6388 psrld xmm8, 7389 pslld xmm6, 25390 por xmm6, xmm8391 movdqa xmm8, xmm7392 psrld xmm8, 7393 pslld xmm7, 25394 por xmm7, xmm8395 movdqa xmm8, xmm4396 psrld xmm8, 7397 pslld xmm4, 25398 por xmm4, xmm8399 paddd xmm0, xmmword ptr [rsp+0x20]400 paddd xmm1, xmmword ptr [rsp+0x30]401 paddd xmm2, xmmword ptr [rsp+0x70]402 paddd xmm3, xmmword ptr [rsp+0x40]403 paddd xmm0, xmm4404 paddd xmm1, xmm5405 paddd xmm2, xmm6406 paddd xmm3, xmm7407 pxor xmm12, xmm0408 pxor xmm13, xmm1409 pxor xmm14, xmm2410 pxor xmm15, xmm3411 pshuflw xmm12, xmm12, 0xB1412 pshufhw xmm12, xmm12, 0xB1413 pshuflw xmm13, xmm13, 0xB1414 pshufhw xmm13, xmm13, 0xB1415 pshuflw xmm14, xmm14, 0xB1416 pshufhw xmm14, xmm14, 0xB1417 pshuflw xmm15, xmm15, 0xB1418 pshufhw xmm15, xmm15, 0xB1419 movdqa xmm8, xmmword ptr [rsp+0x100]420 paddd xmm8, xmm12421 paddd xmm9, xmm13422 paddd xmm10, xmm14423 paddd xmm11, xmm15424 pxor xmm4, xmm8425 pxor xmm5, xmm9426 pxor xmm6, xmm10427 pxor xmm7, xmm11428 movdqa xmmword ptr [rsp+0x100], xmm8429 movdqa xmm8, xmm4430 psrld xmm8, 12431 pslld xmm4, 20432 por xmm4, xmm8433 movdqa xmm8, xmm5434 psrld xmm8, 12435 pslld xmm5, 20436 por xmm5, xmm8437 movdqa xmm8, xmm6438 psrld xmm8, 12439 pslld xmm6, 20440 por xmm6, xmm8441 movdqa xmm8, xmm7442 psrld xmm8, 12443 pslld xmm7, 20444 por xmm7, xmm8445 paddd xmm0, xmmword ptr [rsp+0x60]446 paddd xmm1, xmmword ptr [rsp+0xA0]447 paddd xmm2, xmmword ptr [rsp]448 paddd xmm3, xmmword ptr [rsp+0xD0]449 paddd xmm0, xmm4450 paddd xmm1, xmm5451 paddd xmm2, xmm6452 paddd xmm3, xmm7453 pxor xmm12, xmm0454 pxor xmm13, xmm1455 pxor xmm14, xmm2456 pxor xmm15, xmm3457 movdqa xmm8, xmm12458 psrld xmm12, 8459 pslld xmm8, 24460 pxor xmm12, xmm8461 movdqa xmm8, xmm13462 psrld xmm13, 8463 pslld xmm8, 24464 pxor xmm13, xmm8465 movdqa xmm8, xmm14466 psrld xmm14, 8467 pslld xmm8, 24468 pxor xmm14, xmm8469 movdqa xmm8, xmm15470 psrld xmm15, 8471 pslld xmm8, 24472 pxor xmm15, xmm8473 movdqa xmm8, xmmword ptr [rsp+0x100]474 paddd xmm8, xmm12475 paddd xmm9, xmm13476 paddd xmm10, xmm14477 paddd xmm11, xmm15478 pxor xmm4, xmm8479 pxor xmm5, xmm9480 pxor xmm6, xmm10481 pxor xmm7, xmm11482 movdqa xmmword ptr [rsp+0x100], xmm8483 movdqa xmm8, xmm4484 psrld xmm8, 7485 pslld xmm4, 25486 por xmm4, xmm8487 movdqa xmm8, xmm5488 psrld xmm8, 7489 pslld xmm5, 25490 por xmm5, xmm8491 movdqa xmm8, xmm6492 psrld xmm8, 7493 pslld xmm6, 25494 por xmm6, xmm8495 movdqa xmm8, xmm7496 psrld xmm8, 7497 pslld xmm7, 25498 por xmm7, xmm8499 paddd xmm0, xmmword ptr [rsp+0x10]500 paddd xmm1, xmmword ptr [rsp+0xC0]501 paddd xmm2, xmmword ptr [rsp+0x90]502 paddd xmm3, xmmword ptr [rsp+0xF0]503 paddd xmm0, xmm5504 paddd xmm1, xmm6505 paddd xmm2, xmm7506 paddd xmm3, xmm4507 pxor xmm15, xmm0508 pxor xmm12, xmm1509 pxor xmm13, xmm2510 pxor xmm14, xmm3511 pshuflw xmm15, xmm15, 0xB1512 pshufhw xmm15, xmm15, 0xB1513 pshuflw xmm12, xmm12, 0xB1514 pshufhw xmm12, xmm12, 0xB1515 pshuflw xmm13, xmm13, 0xB1516 pshufhw xmm13, xmm13, 0xB1517 pshuflw xmm14, xmm14, 0xB1518 pshufhw xmm14, xmm14, 0xB1519 paddd xmm10, xmm15520 paddd xmm11, xmm12521 movdqa xmm8, xmmword ptr [rsp+0x100]522 paddd xmm8, xmm13523 paddd xmm9, xmm14524 pxor xmm5, xmm10525 pxor xmm6, xmm11526 pxor xmm7, xmm8527 pxor xmm4, xmm9528 movdqa xmmword ptr [rsp+0x100], xmm8529 movdqa xmm8, xmm5530 psrld xmm8, 12531 pslld xmm5, 20532 por xmm5, xmm8533 movdqa xmm8, xmm6534 psrld xmm8, 12535 pslld xmm6, 20536 por xmm6, xmm8537 movdqa xmm8, xmm7538 psrld xmm8, 12539 pslld xmm7, 20540 por xmm7, xmm8541 movdqa xmm8, xmm4542 psrld xmm8, 12543 pslld xmm4, 20544 por xmm4, xmm8545 paddd xmm0, xmmword ptr [rsp+0xB0]546 paddd xmm1, xmmword ptr [rsp+0x50]547 paddd xmm2, xmmword ptr [rsp+0xE0]548 paddd xmm3, xmmword ptr [rsp+0x80]549 paddd xmm0, xmm5550 paddd xmm1, xmm6551 paddd xmm2, xmm7552 paddd xmm3, xmm4553 pxor xmm15, xmm0554 pxor xmm12, xmm1555 pxor xmm13, xmm2556 pxor xmm14, xmm3557 movdqa xmm8, xmm15558 psrld xmm15, 8559 pslld xmm8, 24560 pxor xmm15, xmm8561 movdqa xmm8, xmm12562 psrld xmm12, 8563 pslld xmm8, 24564 pxor xmm12, xmm8565 movdqa xmm8, xmm13566 psrld xmm13, 8567 pslld xmm8, 24568 pxor xmm13, xmm8569 movdqa xmm8, xmm14570 psrld xmm14, 8571 pslld xmm8, 24572 pxor xmm14, xmm8573 paddd xmm10, xmm15574 paddd xmm11, xmm12575 movdqa xmm8, xmmword ptr [rsp+0x100]576 paddd xmm8, xmm13577 paddd xmm9, xmm14578 pxor xmm5, xmm10579 pxor xmm6, xmm11580 pxor xmm7, xmm8581 pxor xmm4, xmm9582 movdqa xmmword ptr [rsp+0x100], xmm8583 movdqa xmm8, xmm5584 psrld xmm8, 7585 pslld xmm5, 25586 por xmm5, xmm8587 movdqa xmm8, xmm6588 psrld xmm8, 7589 pslld xmm6, 25590 por xmm6, xmm8591 movdqa xmm8, xmm7592 psrld xmm8, 7593 pslld xmm7, 25594 por xmm7, xmm8595 movdqa xmm8, xmm4596 psrld xmm8, 7597 pslld xmm4, 25598 por xmm4, xmm8599 paddd xmm0, xmmword ptr [rsp+0x30]600 paddd xmm1, xmmword ptr [rsp+0xA0]601 paddd xmm2, xmmword ptr [rsp+0xD0]602 paddd xmm3, xmmword ptr [rsp+0x70]603 paddd xmm0, xmm4604 paddd xmm1, xmm5605 paddd xmm2, xmm6606 paddd xmm3, xmm7607 pxor xmm12, xmm0608 pxor xmm13, xmm1609 pxor xmm14, xmm2610 pxor xmm15, xmm3611 pshuflw xmm12, xmm12, 0xB1612 pshufhw xmm12, xmm12, 0xB1613 pshuflw xmm13, xmm13, 0xB1614 pshufhw xmm13, xmm13, 0xB1615 pshuflw xmm14, xmm14, 0xB1616 pshufhw xmm14, xmm14, 0xB1617 pshuflw xmm15, xmm15, 0xB1618 pshufhw xmm15, xmm15, 0xB1619 movdqa xmm8, xmmword ptr [rsp+0x100]620 paddd xmm8, xmm12621 paddd xmm9, xmm13622 paddd xmm10, xmm14623 paddd xmm11, xmm15624 pxor xmm4, xmm8625 pxor xmm5, xmm9626 pxor xmm6, xmm10627 pxor xmm7, xmm11628 movdqa xmmword ptr [rsp+0x100], xmm8629 movdqa xmm8, xmm4630 psrld xmm8, 12631 pslld xmm4, 20632 por xmm4, xmm8633 movdqa xmm8, xmm5634 psrld xmm8, 12635 pslld xmm5, 20636 por xmm5, xmm8637 movdqa xmm8, xmm6638 psrld xmm8, 12639 pslld xmm6, 20640 por xmm6, xmm8641 movdqa xmm8, xmm7642 psrld xmm8, 12643 pslld xmm7, 20644 por xmm7, xmm8645 paddd xmm0, xmmword ptr [rsp+0x40]646 paddd xmm1, xmmword ptr [rsp+0xC0]647 paddd xmm2, xmmword ptr [rsp+0x20]648 paddd xmm3, xmmword ptr [rsp+0xE0]649 paddd xmm0, xmm4650 paddd xmm1, xmm5651 paddd xmm2, xmm6652 paddd xmm3, xmm7653 pxor xmm12, xmm0654 pxor xmm13, xmm1655 pxor xmm14, xmm2656 pxor xmm15, xmm3657 movdqa xmm8, xmm12658 psrld xmm12, 8659 pslld xmm8, 24660 pxor xmm12, xmm8661 movdqa xmm8, xmm13662 psrld xmm13, 8663 pslld xmm8, 24664 pxor xmm13, xmm8665 movdqa xmm8, xmm14666 psrld xmm14, 8667 pslld xmm8, 24668 pxor xmm14, xmm8669 movdqa xmm8, xmm15670 psrld xmm15, 8671 pslld xmm8, 24672 pxor xmm15, xmm8673 movdqa xmm8, xmmword ptr [rsp+0x100]674 paddd xmm8, xmm12675 paddd xmm9, xmm13676 paddd xmm10, xmm14677 paddd xmm11, xmm15678 pxor xmm4, xmm8679 pxor xmm5, xmm9680 pxor xmm6, xmm10681 pxor xmm7, xmm11682 movdqa xmmword ptr [rsp+0x100], xmm8683 movdqa xmm8, xmm4684 psrld xmm8, 7685 pslld xmm4, 25686 por xmm4, xmm8687 movdqa xmm8, xmm5688 psrld xmm8, 7689 pslld xmm5, 25690 por xmm5, xmm8691 movdqa xmm8, xmm6692 psrld xmm8, 7693 pslld xmm6, 25694 por xmm6, xmm8695 movdqa xmm8, xmm7696 psrld xmm8, 7697 pslld xmm7, 25698 por xmm7, xmm8699 paddd xmm0, xmmword ptr [rsp+0x60]700 paddd xmm1, xmmword ptr [rsp+0x90]701 paddd xmm2, xmmword ptr [rsp+0xB0]702 paddd xmm3, xmmword ptr [rsp+0x80]703 paddd xmm0, xmm5704 paddd xmm1, xmm6705 paddd xmm2, xmm7706 paddd xmm3, xmm4707 pxor xmm15, xmm0708 pxor xmm12, xmm1709 pxor xmm13, xmm2710 pxor xmm14, xmm3711 pshuflw xmm15, xmm15, 0xB1712 pshufhw xmm15, xmm15, 0xB1713 pshuflw xmm12, xmm12, 0xB1714 pshufhw xmm12, xmm12, 0xB1715 pshuflw xmm13, xmm13, 0xB1716 pshufhw xmm13, xmm13, 0xB1717 pshuflw xmm14, xmm14, 0xB1718 pshufhw xmm14, xmm14, 0xB1719 paddd xmm10, xmm15720 paddd xmm11, xmm12721 movdqa xmm8, xmmword ptr [rsp+0x100]722 paddd xmm8, xmm13723 paddd xmm9, xmm14724 pxor xmm5, xmm10725 pxor xmm6, xmm11726 pxor xmm7, xmm8727 pxor xmm4, xmm9728 movdqa xmmword ptr [rsp+0x100], xmm8729 movdqa xmm8, xmm5730 psrld xmm8, 12731 pslld xmm5, 20732 por xmm5, xmm8733 movdqa xmm8, xmm6734 psrld xmm8, 12735 pslld xmm6, 20736 por xmm6, xmm8737 movdqa xmm8, xmm7738 psrld xmm8, 12739 pslld xmm7, 20740 por xmm7, xmm8741 movdqa xmm8, xmm4742 psrld xmm8, 12743 pslld xmm4, 20744 por xmm4, xmm8745 paddd xmm0, xmmword ptr [rsp+0x50]746 paddd xmm1, xmmword ptr [rsp]747 paddd xmm2, xmmword ptr [rsp+0xF0]748 paddd xmm3, xmmword ptr [rsp+0x10]749 paddd xmm0, xmm5750 paddd xmm1, xmm6751 paddd xmm2, xmm7752 paddd xmm3, xmm4753 pxor xmm15, xmm0754 pxor xmm12, xmm1755 pxor xmm13, xmm2756 pxor xmm14, xmm3757 movdqa xmm8, xmm15758 psrld xmm15, 8759 pslld xmm8, 24760 pxor xmm15, xmm8761 movdqa xmm8, xmm12762 psrld xmm12, 8763 pslld xmm8, 24764 pxor xmm12, xmm8765 movdqa xmm8, xmm13766 psrld xmm13, 8767 pslld xmm8, 24768 pxor xmm13, xmm8769 movdqa xmm8, xmm14770 psrld xmm14, 8771 pslld xmm8, 24772 pxor xmm14, xmm8773 paddd xmm10, xmm15774 paddd xmm11, xmm12775 movdqa xmm8, xmmword ptr [rsp+0x100]776 paddd xmm8, xmm13777 paddd xmm9, xmm14778 pxor xmm5, xmm10779 pxor xmm6, xmm11780 pxor xmm7, xmm8781 pxor xmm4, xmm9782 movdqa xmmword ptr [rsp+0x100], xmm8783 movdqa xmm8, xmm5784 psrld xmm8, 7785 pslld xmm5, 25786 por xmm5, xmm8787 movdqa xmm8, xmm6788 psrld xmm8, 7789 pslld xmm6, 25790 por xmm6, xmm8791 movdqa xmm8, xmm7792 psrld xmm8, 7793 pslld xmm7, 25794 por xmm7, xmm8795 movdqa xmm8, xmm4796 psrld xmm8, 7797 pslld xmm4, 25798 por xmm4, xmm8799 paddd xmm0, xmmword ptr [rsp+0xA0]800 paddd xmm1, xmmword ptr [rsp+0xC0]801 paddd xmm2, xmmword ptr [rsp+0xE0]802 paddd xmm3, xmmword ptr [rsp+0xD0]803 paddd xmm0, xmm4804 paddd xmm1, xmm5805 paddd xmm2, xmm6806 paddd xmm3, xmm7807 pxor xmm12, xmm0808 pxor xmm13, xmm1809 pxor xmm14, xmm2810 pxor xmm15, xmm3811 pshuflw xmm12, xmm12, 0xB1812 pshufhw xmm12, xmm12, 0xB1813 pshuflw xmm13, xmm13, 0xB1814 pshufhw xmm13, xmm13, 0xB1815 pshuflw xmm14, xmm14, 0xB1816 pshufhw xmm14, xmm14, 0xB1817 pshuflw xmm15, xmm15, 0xB1818 pshufhw xmm15, xmm15, 0xB1819 movdqa xmm8, xmmword ptr [rsp+0x100]820 paddd xmm8, xmm12821 paddd xmm9, xmm13822 paddd xmm10, xmm14823 paddd xmm11, xmm15824 pxor xmm4, xmm8825 pxor xmm5, xmm9826 pxor xmm6, xmm10827 pxor xmm7, xmm11828 movdqa xmmword ptr [rsp+0x100], xmm8829 movdqa xmm8, xmm4830 psrld xmm8, 12831 pslld xmm4, 20832 por xmm4, xmm8833 movdqa xmm8, xmm5834 psrld xmm8, 12835 pslld xmm5, 20836 por xmm5, xmm8837 movdqa xmm8, xmm6838 psrld xmm8, 12839 pslld xmm6, 20840 por xmm6, xmm8841 movdqa xmm8, xmm7842 psrld xmm8, 12843 pslld xmm7, 20844 por xmm7, xmm8845 paddd xmm0, xmmword ptr [rsp+0x70]846 paddd xmm1, xmmword ptr [rsp+0x90]847 paddd xmm2, xmmword ptr [rsp+0x30]848 paddd xmm3, xmmword ptr [rsp+0xF0]849 paddd xmm0, xmm4850 paddd xmm1, xmm5851 paddd xmm2, xmm6852 paddd xmm3, xmm7853 pxor xmm12, xmm0854 pxor xmm13, xmm1855 pxor xmm14, xmm2856 pxor xmm15, xmm3857 movdqa xmm8, xmm12858 psrld xmm12, 8859 pslld xmm8, 24860 pxor xmm12, xmm8861 movdqa xmm8, xmm13862 psrld xmm13, 8863 pslld xmm8, 24864 pxor xmm13, xmm8865 movdqa xmm8, xmm14866 psrld xmm14, 8867 pslld xmm8, 24868 pxor xmm14, xmm8869 movdqa xmm8, xmm15870 psrld xmm15, 8871 pslld xmm8, 24872 pxor xmm15, xmm8873 movdqa xmm8, xmmword ptr [rsp+0x100]874 paddd xmm8, xmm12875 paddd xmm9, xmm13876 paddd xmm10, xmm14877 paddd xmm11, xmm15878 pxor xmm4, xmm8879 pxor xmm5, xmm9880 pxor xmm6, xmm10881 pxor xmm7, xmm11882 movdqa xmmword ptr [rsp+0x100], xmm8883 movdqa xmm8, xmm4884 psrld xmm8, 7885 pslld xmm4, 25886 por xmm4, xmm8887 movdqa xmm8, xmm5888 psrld xmm8, 7889 pslld xmm5, 25890 por xmm5, xmm8891 movdqa xmm8, xmm6892 psrld xmm8, 7893 pslld xmm6, 25894 por xmm6, xmm8895 movdqa xmm8, xmm7896 psrld xmm8, 7897 pslld xmm7, 25898 por xmm7, xmm8899 paddd xmm0, xmmword ptr [rsp+0x40]900 paddd xmm1, xmmword ptr [rsp+0xB0]901 paddd xmm2, xmmword ptr [rsp+0x50]902 paddd xmm3, xmmword ptr [rsp+0x10]903 paddd xmm0, xmm5904 paddd xmm1, xmm6905 paddd xmm2, xmm7906 paddd xmm3, xmm4907 pxor xmm15, xmm0908 pxor xmm12, xmm1909 pxor xmm13, xmm2910 pxor xmm14, xmm3911 pshuflw xmm15, xmm15, 0xB1912 pshufhw xmm15, xmm15, 0xB1913 pshuflw xmm12, xmm12, 0xB1914 pshufhw xmm12, xmm12, 0xB1915 pshuflw xmm13, xmm13, 0xB1916 pshufhw xmm13, xmm13, 0xB1917 pshuflw xmm14, xmm14, 0xB1918 pshufhw xmm14, xmm14, 0xB1919 paddd xmm10, xmm15920 paddd xmm11, xmm12921 movdqa xmm8, xmmword ptr [rsp+0x100]922 paddd xmm8, xmm13923 paddd xmm9, xmm14924 pxor xmm5, xmm10925 pxor xmm6, xmm11926 pxor xmm7, xmm8927 pxor xmm4, xmm9928 movdqa xmmword ptr [rsp+0x100], xmm8929 movdqa xmm8, xmm5930 psrld xmm8, 12931 pslld xmm5, 20932 por xmm5, xmm8933 movdqa xmm8, xmm6934 psrld xmm8, 12935 pslld xmm6, 20936 por xmm6, xmm8937 movdqa xmm8, xmm7938 psrld xmm8, 12939 pslld xmm7, 20940 por xmm7, xmm8941 movdqa xmm8, xmm4942 psrld xmm8, 12943 pslld xmm4, 20944 por xmm4, xmm8945 paddd xmm0, xmmword ptr [rsp]946 paddd xmm1, xmmword ptr [rsp+0x20]947 paddd xmm2, xmmword ptr [rsp+0x80]948 paddd xmm3, xmmword ptr [rsp+0x60]949 paddd xmm0, xmm5950 paddd xmm1, xmm6951 paddd xmm2, xmm7952 paddd xmm3, xmm4953 pxor xmm15, xmm0954 pxor xmm12, xmm1955 pxor xmm13, xmm2956 pxor xmm14, xmm3957 movdqa xmm8, xmm15958 psrld xmm15, 8959 pslld xmm8, 24960 pxor xmm15, xmm8961 movdqa xmm8, xmm12962 psrld xmm12, 8963 pslld xmm8, 24964 pxor xmm12, xmm8965 movdqa xmm8, xmm13966 psrld xmm13, 8967 pslld xmm8, 24968 pxor xmm13, xmm8969 movdqa xmm8, xmm14970 psrld xmm14, 8971 pslld xmm8, 24972 pxor xmm14, xmm8973 paddd xmm10, xmm15974 paddd xmm11, xmm12975 movdqa xmm8, xmmword ptr [rsp+0x100]976 paddd xmm8, xmm13977 paddd xmm9, xmm14978 pxor xmm5, xmm10979 pxor xmm6, xmm11980 pxor xmm7, xmm8981 pxor xmm4, xmm9982 movdqa xmmword ptr [rsp+0x100], xmm8983 movdqa xmm8, xmm5984 psrld xmm8, 7985 pslld xmm5, 25986 por xmm5, xmm8987 movdqa xmm8, xmm6988 psrld xmm8, 7989 pslld xmm6, 25990 por xmm6, xmm8991 movdqa xmm8, xmm7992 psrld xmm8, 7993 pslld xmm7, 25994 por xmm7, xmm8995 movdqa xmm8, xmm4996 psrld xmm8, 7997 pslld xmm4, 25998 por xmm4, xmm8999 paddd xmm0, xmmword ptr [rsp+0xC0]1000 paddd xmm1, xmmword ptr [rsp+0x90]1001 paddd xmm2, xmmword ptr [rsp+0xF0]1002 paddd xmm3, xmmword ptr [rsp+0xE0]1003 paddd xmm0, xmm41004 paddd xmm1, xmm51005 paddd xmm2, xmm61006 paddd xmm3, xmm71007 pxor xmm12, xmm01008 pxor xmm13, xmm11009 pxor xmm14, xmm21010 pxor xmm15, xmm31011 pshuflw xmm12, xmm12, 0xB11012 pshufhw xmm12, xmm12, 0xB11013 pshuflw xmm13, xmm13, 0xB11014 pshufhw xmm13, xmm13, 0xB11015 pshuflw xmm14, xmm14, 0xB11016 pshufhw xmm14, xmm14, 0xB11017 pshuflw xmm15, xmm15, 0xB11018 pshufhw xmm15, xmm15, 0xB11019 movdqa xmm8, xmmword ptr [rsp+0x100]1020 paddd xmm8, xmm121021 paddd xmm9, xmm131022 paddd xmm10, xmm141023 paddd xmm11, xmm151024 pxor xmm4, xmm81025 pxor xmm5, xmm91026 pxor xmm6, xmm101027 pxor xmm7, xmm111028 movdqa xmmword ptr [rsp+0x100], xmm81029 movdqa xmm8, xmm41030 psrld xmm8, 121031 pslld xmm4, 201032 por xmm4, xmm81033 movdqa xmm8, xmm51034 psrld xmm8, 121035 pslld xmm5, 201036 por xmm5, xmm81037 movdqa xmm8, xmm61038 psrld xmm8, 121039 pslld xmm6, 201040 por xmm6, xmm81041 movdqa xmm8, xmm71042 psrld xmm8, 121043 pslld xmm7, 201044 por xmm7, xmm81045 paddd xmm0, xmmword ptr [rsp+0xD0]1046 paddd xmm1, xmmword ptr [rsp+0xB0]1047 paddd xmm2, xmmword ptr [rsp+0xA0]1048 paddd xmm3, xmmword ptr [rsp+0x80]1049 paddd xmm0, xmm41050 paddd xmm1, xmm51051 paddd xmm2, xmm61052 paddd xmm3, xmm71053 pxor xmm12, xmm01054 pxor xmm13, xmm11055 pxor xmm14, xmm21056 pxor xmm15, xmm31057 movdqa xmm8, xmm121058 psrld xmm12, 81059 pslld xmm8, 241060 pxor xmm12, xmm81061 movdqa xmm8, xmm131062 psrld xmm13, 81063 pslld xmm8, 241064 pxor xmm13, xmm81065 movdqa xmm8, xmm141066 psrld xmm14, 81067 pslld xmm8, 241068 pxor xmm14, xmm81069 movdqa xmm8, xmm151070 psrld xmm15, 81071 pslld xmm8, 241072 pxor xmm15, xmm81073 movdqa xmm8, xmmword ptr [rsp+0x100]1074 paddd xmm8, xmm121075 paddd xmm9, xmm131076 paddd xmm10, xmm141077 paddd xmm11, xmm151078 pxor xmm4, xmm81079 pxor xmm5, xmm91080 pxor xmm6, xmm101081 pxor xmm7, xmm111082 movdqa xmmword ptr [rsp+0x100], xmm81083 movdqa xmm8, xmm41084 psrld xmm8, 71085 pslld xmm4, 251086 por xmm4, xmm81087 movdqa xmm8, xmm51088 psrld xmm8, 71089 pslld xmm5, 251090 por xmm5, xmm81091 movdqa xmm8, xmm61092 psrld xmm8, 71093 pslld xmm6, 251094 por xmm6, xmm81095 movdqa xmm8, xmm71096 psrld xmm8, 71097 pslld xmm7, 251098 por xmm7, xmm81099 paddd xmm0, xmmword ptr [rsp+0x70]1100 paddd xmm1, xmmword ptr [rsp+0x50]1101 paddd xmm2, xmmword ptr [rsp]1102 paddd xmm3, xmmword ptr [rsp+0x60]1103 paddd xmm0, xmm51104 paddd xmm1, xmm61105 paddd xmm2, xmm71106 paddd xmm3, xmm41107 pxor xmm15, xmm01108 pxor xmm12, xmm11109 pxor xmm13, xmm21110 pxor xmm14, xmm31111 pshuflw xmm15, xmm15, 0xB11112 pshufhw xmm15, xmm15, 0xB11113 pshuflw xmm12, xmm12, 0xB11114 pshufhw xmm12, xmm12, 0xB11115 pshuflw xmm13, xmm13, 0xB11116 pshufhw xmm13, xmm13, 0xB11117 pshuflw xmm14, xmm14, 0xB11118 pshufhw xmm14, xmm14, 0xB11119 paddd xmm10, xmm151120 paddd xmm11, xmm121121 movdqa xmm8, xmmword ptr [rsp+0x100]1122 paddd xmm8, xmm131123 paddd xmm9, xmm141124 pxor xmm5, xmm101125 pxor xmm6, xmm111126 pxor xmm7, xmm81127 pxor xmm4, xmm91128 movdqa xmmword ptr [rsp+0x100], xmm81129 movdqa xmm8, xmm51130 psrld xmm8, 121131 pslld xmm5, 201132 por xmm5, xmm81133 movdqa xmm8, xmm61134 psrld xmm8, 121135 pslld xmm6, 201136 por xmm6, xmm81137 movdqa xmm8, xmm71138 psrld xmm8, 121139 pslld xmm7, 201140 por xmm7, xmm81141 movdqa xmm8, xmm41142 psrld xmm8, 121143 pslld xmm4, 201144 por xmm4, xmm81145 paddd xmm0, xmmword ptr [rsp+0x20]1146 paddd xmm1, xmmword ptr [rsp+0x30]1147 paddd xmm2, xmmword ptr [rsp+0x10]1148 paddd xmm3, xmmword ptr [rsp+0x40]1149 paddd xmm0, xmm51150 paddd xmm1, xmm61151 paddd xmm2, xmm71152 paddd xmm3, xmm41153 pxor xmm15, xmm01154 pxor xmm12, xmm11155 pxor xmm13, xmm21156 pxor xmm14, xmm31157 movdqa xmm8, xmm151158 psrld xmm15, 81159 pslld xmm8, 241160 pxor xmm15, xmm81161 movdqa xmm8, xmm121162 psrld xmm12, 81163 pslld xmm8, 241164 pxor xmm12, xmm81165 movdqa xmm8, xmm131166 psrld xmm13, 81167 pslld xmm8, 241168 pxor xmm13, xmm81169 movdqa xmm8, xmm141170 psrld xmm14, 81171 pslld xmm8, 241172 pxor xmm14, xmm81173 paddd xmm10, xmm151174 paddd xmm11, xmm121175 movdqa xmm8, xmmword ptr [rsp+0x100]1176 paddd xmm8, xmm131177 paddd xmm9, xmm141178 pxor xmm5, xmm101179 pxor xmm6, xmm111180 pxor xmm7, xmm81181 pxor xmm4, xmm91182 movdqa xmmword ptr [rsp+0x100], xmm81183 movdqa xmm8, xmm51184 psrld xmm8, 71185 pslld xmm5, 251186 por xmm5, xmm81187 movdqa xmm8, xmm61188 psrld xmm8, 71189 pslld xmm6, 251190 por xmm6, xmm81191 movdqa xmm8, xmm71192 psrld xmm8, 71193 pslld xmm7, 251194 por xmm7, xmm81195 movdqa xmm8, xmm41196 psrld xmm8, 71197 pslld xmm4, 251198 por xmm4, xmm81199 paddd xmm0, xmmword ptr [rsp+0x90]1200 paddd xmm1, xmmword ptr [rsp+0xB0]1201 paddd xmm2, xmmword ptr [rsp+0x80]1202 paddd xmm3, xmmword ptr [rsp+0xF0]1203 paddd xmm0, xmm41204 paddd xmm1, xmm51205 paddd xmm2, xmm61206 paddd xmm3, xmm71207 pxor xmm12, xmm01208 pxor xmm13, xmm11209 pxor xmm14, xmm21210 pxor xmm15, xmm31211 pshuflw xmm12, xmm12, 0xB11212 pshufhw xmm12, xmm12, 0xB11213 pshuflw xmm13, xmm13, 0xB11214 pshufhw xmm13, xmm13, 0xB11215 pshuflw xmm14, xmm14, 0xB11216 pshufhw xmm14, xmm14, 0xB11217 pshuflw xmm15, xmm15, 0xB11218 pshufhw xmm15, xmm15, 0xB11219 movdqa xmm8, xmmword ptr [rsp+0x100]1220 paddd xmm8, xmm121221 paddd xmm9, xmm131222 paddd xmm10, xmm141223 paddd xmm11, xmm151224 pxor xmm4, xmm81225 pxor xmm5, xmm91226 pxor xmm6, xmm101227 pxor xmm7, xmm111228 movdqa xmmword ptr [rsp+0x100], xmm81229 movdqa xmm8, xmm41230 psrld xmm8, 121231 pslld xmm4, 201232 por xmm4, xmm81233 movdqa xmm8, xmm51234 psrld xmm8, 121235 pslld xmm5, 201236 por xmm5, xmm81237 movdqa xmm8, xmm61238 psrld xmm8, 121239 pslld xmm6, 201240 por xmm6, xmm81241 movdqa xmm8, xmm71242 psrld xmm8, 121243 pslld xmm7, 201244 por xmm7, xmm81245 paddd xmm0, xmmword ptr [rsp+0xE0]1246 paddd xmm1, xmmword ptr [rsp+0x50]1247 paddd xmm2, xmmword ptr [rsp+0xC0]1248 paddd xmm3, xmmword ptr [rsp+0x10]1249 paddd xmm0, xmm41250 paddd xmm1, xmm51251 paddd xmm2, xmm61252 paddd xmm3, xmm71253 pxor xmm12, xmm01254 pxor xmm13, xmm11255 pxor xmm14, xmm21256 pxor xmm15, xmm31257 movdqa xmm8, xmm121258 psrld xmm12, 81259 pslld xmm8, 241260 pxor xmm12, xmm81261 movdqa xmm8, xmm131262 psrld xmm13, 81263 pslld xmm8, 241264 pxor xmm13, xmm81265 movdqa xmm8, xmm141266 psrld xmm14, 81267 pslld xmm8, 241268 pxor xmm14, xmm81269 movdqa xmm8, xmm151270 psrld xmm15, 81271 pslld xmm8, 241272 pxor xmm15, xmm81273 movdqa xmm8, xmmword ptr [rsp+0x100]1274 paddd xmm8, xmm121275 paddd xmm9, xmm131276 paddd xmm10, xmm141277 paddd xmm11, xmm151278 pxor xmm4, xmm81279 pxor xmm5, xmm91280 pxor xmm6, xmm101281 pxor xmm7, xmm111282 movdqa xmmword ptr [rsp+0x100], xmm81283 movdqa xmm8, xmm41284 psrld xmm8, 71285 pslld xmm4, 251286 por xmm4, xmm81287 movdqa xmm8, xmm51288 psrld xmm8, 71289 pslld xmm5, 251290 por xmm5, xmm81291 movdqa xmm8, xmm61292 psrld xmm8, 71293 pslld xmm6, 251294 por xmm6, xmm81295 movdqa xmm8, xmm71296 psrld xmm8, 71297 pslld xmm7, 251298 por xmm7, xmm81299 paddd xmm0, xmmword ptr [rsp+0xD0]1300 paddd xmm1, xmmword ptr [rsp]1301 paddd xmm2, xmmword ptr [rsp+0x20]1302 paddd xmm3, xmmword ptr [rsp+0x40]1303 paddd xmm0, xmm51304 paddd xmm1, xmm61305 paddd xmm2, xmm71306 paddd xmm3, xmm41307 pxor xmm15, xmm01308 pxor xmm12, xmm11309 pxor xmm13, xmm21310 pxor xmm14, xmm31311 pshuflw xmm15, xmm15, 0xB11312 pshufhw xmm15, xmm15, 0xB11313 pshuflw xmm12, xmm12, 0xB11314 pshufhw xmm12, xmm12, 0xB11315 pshuflw xmm13, xmm13, 0xB11316 pshufhw xmm13, xmm13, 0xB11317 pshuflw xmm14, xmm14, 0xB11318 pshufhw xmm14, xmm14, 0xB11319 paddd xmm10, xmm151320 paddd xmm11, xmm121321 movdqa xmm8, xmmword ptr [rsp+0x100]1322 paddd xmm8, xmm131323 paddd xmm9, xmm141324 pxor xmm5, xmm101325 pxor xmm6, xmm111326 pxor xmm7, xmm81327 pxor xmm4, xmm91328 movdqa xmmword ptr [rsp+0x100], xmm81329 movdqa xmm8, xmm51330 psrld xmm8, 121331 pslld xmm5, 201332 por xmm5, xmm81333 movdqa xmm8, xmm61334 psrld xmm8, 121335 pslld xmm6, 201336 por xmm6, xmm81337 movdqa xmm8, xmm71338 psrld xmm8, 121339 pslld xmm7, 201340 por xmm7, xmm81341 movdqa xmm8, xmm41342 psrld xmm8, 121343 pslld xmm4, 201344 por xmm4, xmm81345 paddd xmm0, xmmword ptr [rsp+0x30]1346 paddd xmm1, xmmword ptr [rsp+0xA0]1347 paddd xmm2, xmmword ptr [rsp+0x60]1348 paddd xmm3, xmmword ptr [rsp+0x70]1349 paddd xmm0, xmm51350 paddd xmm1, xmm61351 paddd xmm2, xmm71352 paddd xmm3, xmm41353 pxor xmm15, xmm01354 pxor xmm12, xmm11355 pxor xmm13, xmm21356 pxor xmm14, xmm31357 movdqa xmm8, xmm151358 psrld xmm15, 81359 pslld xmm8, 241360 pxor xmm15, xmm81361 movdqa xmm8, xmm121362 psrld xmm12, 81363 pslld xmm8, 241364 pxor xmm12, xmm81365 movdqa xmm8, xmm131366 psrld xmm13, 81367 pslld xmm8, 241368 pxor xmm13, xmm81369 movdqa xmm8, xmm141370 psrld xmm14, 81371 pslld xmm8, 241372 pxor xmm14, xmm81373 paddd xmm10, xmm151374 paddd xmm11, xmm121375 movdqa xmm8, xmmword ptr [rsp+0x100]1376 paddd xmm8, xmm131377 paddd xmm9, xmm141378 pxor xmm5, xmm101379 pxor xmm6, xmm111380 pxor xmm7, xmm81381 pxor xmm4, xmm91382 movdqa xmmword ptr [rsp+0x100], xmm81383 movdqa xmm8, xmm51384 psrld xmm8, 71385 pslld xmm5, 251386 por xmm5, xmm81387 movdqa xmm8, xmm61388 psrld xmm8, 71389 pslld xmm6, 251390 por xmm6, xmm81391 movdqa xmm8, xmm71392 psrld xmm8, 71393 pslld xmm7, 251394 por xmm7, xmm81395 movdqa xmm8, xmm41396 psrld xmm8, 71397 pslld xmm4, 251398 por xmm4, xmm81399 paddd xmm0, xmmword ptr [rsp+0xB0]1400 paddd xmm1, xmmword ptr [rsp+0x50]1401 paddd xmm2, xmmword ptr [rsp+0x10]1402 paddd xmm3, xmmword ptr [rsp+0x80]1403 paddd xmm0, xmm41404 paddd xmm1, xmm51405 paddd xmm2, xmm61406 paddd xmm3, xmm71407 pxor xmm12, xmm01408 pxor xmm13, xmm11409 pxor xmm14, xmm21410 pxor xmm15, xmm31411 pshuflw xmm12, xmm12, 0xB11412 pshufhw xmm12, xmm12, 0xB11413 pshuflw xmm13, xmm13, 0xB11414 pshufhw xmm13, xmm13, 0xB11415 pshuflw xmm14, xmm14, 0xB11416 pshufhw xmm14, xmm14, 0xB11417 pshuflw xmm15, xmm15, 0xB11418 pshufhw xmm15, xmm15, 0xB11419 movdqa xmm8, xmmword ptr [rsp+0x100]1420 paddd xmm8, xmm121421 paddd xmm9, xmm131422 paddd xmm10, xmm141423 paddd xmm11, xmm151424 pxor xmm4, xmm81425 pxor xmm5, xmm91426 pxor xmm6, xmm101427 pxor xmm7, xmm111428 movdqa xmmword ptr [rsp+0x100], xmm81429 movdqa xmm8, xmm41430 psrld xmm8, 121431 pslld xmm4, 201432 por xmm4, xmm81433 movdqa xmm8, xmm51434 psrld xmm8, 121435 pslld xmm5, 201436 por xmm5, xmm81437 movdqa xmm8, xmm61438 psrld xmm8, 121439 pslld xmm6, 201440 por xmm6, xmm81441 movdqa xmm8, xmm71442 psrld xmm8, 121443 pslld xmm7, 201444 por xmm7, xmm81445 paddd xmm0, xmmword ptr [rsp+0xF0]1446 paddd xmm1, xmmword ptr [rsp]1447 paddd xmm2, xmmword ptr [rsp+0x90]1448 paddd xmm3, xmmword ptr [rsp+0x60]1449 paddd xmm0, xmm41450 paddd xmm1, xmm51451 paddd xmm2, xmm61452 paddd xmm3, xmm71453 pxor xmm12, xmm01454 pxor xmm13, xmm11455 pxor xmm14, xmm21456 pxor xmm15, xmm31457 movdqa xmm8, xmm121458 psrld xmm12, 81459 pslld xmm8, 241460 pxor xmm12, xmm81461 movdqa xmm8, xmm131462 psrld xmm13, 81463 pslld xmm8, 241464 pxor xmm13, xmm81465 movdqa xmm8, xmm141466 psrld xmm14, 81467 pslld xmm8, 241468 pxor xmm14, xmm81469 movdqa xmm8, xmm151470 psrld xmm15, 81471 pslld xmm8, 241472 pxor xmm15, xmm81473 movdqa xmm8, xmmword ptr [rsp+0x100]1474 paddd xmm8, xmm121475 paddd xmm9, xmm131476 paddd xmm10, xmm141477 paddd xmm11, xmm151478 pxor xmm4, xmm81479 pxor xmm5, xmm91480 pxor xmm6, xmm101481 pxor xmm7, xmm111482 movdqa xmmword ptr [rsp+0x100], xmm81483 movdqa xmm8, xmm41484 psrld xmm8, 71485 pslld xmm4, 251486 por xmm4, xmm81487 movdqa xmm8, xmm51488 psrld xmm8, 71489 pslld xmm5, 251490 por xmm5, xmm81491 movdqa xmm8, xmm61492 psrld xmm8, 71493 pslld xmm6, 251494 por xmm6, xmm81495 movdqa xmm8, xmm71496 psrld xmm8, 71497 pslld xmm7, 251498 por xmm7, xmm81499 paddd xmm0, xmmword ptr [rsp+0xE0]1500 paddd xmm1, xmmword ptr [rsp+0x20]1501 paddd xmm2, xmmword ptr [rsp+0x30]1502 paddd xmm3, xmmword ptr [rsp+0x70]1503 paddd xmm0, xmm51504 paddd xmm1, xmm61505 paddd xmm2, xmm71506 paddd xmm3, xmm41507 pxor xmm15, xmm01508 pxor xmm12, xmm11509 pxor xmm13, xmm21510 pxor xmm14, xmm31511 pshuflw xmm15, xmm15, 0xB11512 pshufhw xmm15, xmm15, 0xB11513 pshuflw xmm12, xmm12, 0xB11514 pshufhw xmm12, xmm12, 0xB11515 pshuflw xmm13, xmm13, 0xB11516 pshufhw xmm13, xmm13, 0xB11517 pshuflw xmm14, xmm14, 0xB11518 pshufhw xmm14, xmm14, 0xB11519 paddd xmm10, xmm151520 paddd xmm11, xmm121521 movdqa xmm8, xmmword ptr [rsp+0x100]1522 paddd xmm8, xmm131523 paddd xmm9, xmm141524 pxor xmm5, xmm101525 pxor xmm6, xmm111526 pxor xmm7, xmm81527 pxor xmm4, xmm91528 movdqa xmmword ptr [rsp+0x100], xmm81529 movdqa xmm8, xmm51530 psrld xmm8, 121531 pslld xmm5, 201532 por xmm5, xmm81533 movdqa xmm8, xmm61534 psrld xmm8, 121535 pslld xmm6, 201536 por xmm6, xmm81537 movdqa xmm8, xmm71538 psrld xmm8, 121539 pslld xmm7, 201540 por xmm7, xmm81541 movdqa xmm8, xmm41542 psrld xmm8, 121543 pslld xmm4, 201544 por xmm4, xmm81545 paddd xmm0, xmmword ptr [rsp+0xA0]1546 paddd xmm1, xmmword ptr [rsp+0xC0]1547 paddd xmm2, xmmword ptr [rsp+0x40]1548 paddd xmm3, xmmword ptr [rsp+0xD0]1549 paddd xmm0, xmm51550 paddd xmm1, xmm61551 paddd xmm2, xmm71552 paddd xmm3, xmm41553 pxor xmm15, xmm01554 pxor xmm12, xmm11555 pxor xmm13, xmm21556 pxor xmm14, xmm31557 movdqa xmm8, xmm151558 psrld xmm15, 81559 pslld xmm8, 241560 pxor xmm15, xmm81561 movdqa xmm8, xmm121562 psrld xmm12, 81563 pslld xmm8, 241564 pxor xmm12, xmm81565 movdqa xmm8, xmm131566 psrld xmm13, 81567 pslld xmm8, 241568 pxor xmm13, xmm81569 movdqa xmm8, xmm141570 psrld xmm14, 81571 pslld xmm8, 241572 pxor xmm14, xmm81573 paddd xmm10, xmm151574 paddd xmm11, xmm121575 movdqa xmm8, xmmword ptr [rsp+0x100]1576 paddd xmm8, xmm131577 paddd xmm9, xmm141578 pxor xmm5, xmm101579 pxor xmm6, xmm111580 pxor xmm7, xmm81581 pxor xmm4, xmm91582 pxor xmm0, xmm81583 pxor xmm1, xmm91584 pxor xmm2, xmm101585 pxor xmm3, xmm111586 movdqa xmm8, xmm51587 psrld xmm8, 71588 pslld xmm5, 251589 por xmm5, xmm81590 movdqa xmm8, xmm61591 psrld xmm8, 71592 pslld xmm6, 251593 por xmm6, xmm81594 movdqa xmm8, xmm71595 psrld xmm8, 71596 pslld xmm7, 251597 por xmm7, xmm81598 movdqa xmm8, xmm41599 psrld xmm8, 71600 pslld xmm4, 251601 por xmm4, xmm81602 pxor xmm4, xmm121603 pxor xmm5, xmm131604 pxor xmm6, xmm141605 pxor xmm7, xmm151606 mov eax, r13d1607 jne 9b1608 movdqa xmm9, xmm01609 punpckldq xmm0, xmm11610 punpckhdq xmm9, xmm11611 movdqa xmm11, xmm21612 punpckldq xmm2, xmm31613 punpckhdq xmm11, xmm31614 movdqa xmm1, xmm01615 punpcklqdq xmm0, xmm21616 punpckhqdq xmm1, xmm21617 movdqa xmm3, xmm91618 punpcklqdq xmm9, xmm111619 punpckhqdq xmm3, xmm111620 movdqu xmmword ptr [rbx], xmm01621 movdqu xmmword ptr [rbx+0x20], xmm11622 movdqu xmmword ptr [rbx+0x40], xmm91623 movdqu xmmword ptr [rbx+0x60], xmm31624 movdqa xmm9, xmm41625 punpckldq xmm4, xmm51626 punpckhdq xmm9, xmm51627 movdqa xmm11, xmm61628 punpckldq xmm6, xmm71629 punpckhdq xmm11, xmm71630 movdqa xmm5, xmm41631 punpcklqdq xmm4, xmm61632 punpckhqdq xmm5, xmm61633 movdqa xmm7, xmm91634 punpcklqdq xmm9, xmm111635 punpckhqdq xmm7, xmm111636 movdqu xmmword ptr [rbx+0x10], xmm41637 movdqu xmmword ptr [rbx+0x30], xmm51638 movdqu xmmword ptr [rbx+0x50], xmm91639 movdqu xmmword ptr [rbx+0x70], xmm71640 movdqa xmm1, xmmword ptr [rsp+0x110]1641 movdqa xmm0, xmm11642 paddd xmm1, xmmword ptr [rsp+0x150]1643 movdqa xmmword ptr [rsp+0x110], xmm11644 pxor xmm0, xmmword ptr [CMP_MSB_MASK+rip]1645 pxor xmm1, xmmword ptr [CMP_MSB_MASK+rip]1646 pcmpgtd xmm0, xmm11647 movdqa xmm1, xmmword ptr [rsp+0x120]1648 psubd xmm1, xmm01649 movdqa xmmword ptr [rsp+0x120], xmm11650 add rbx, 1281651 add rdi, 321652 sub rsi, 41653 cmp rsi, 41654 jnc 2b1655 test rsi, rsi1656 jnz 3f16574:1658 mov rsp, rbp1659 pop rbp1660 pop rbx1661 pop r121662 pop r131663 pop r141664 pop r151665 ret1666.p2align 516673:1668 test esi, 0x21669 je 3f1670 movups xmm0, xmmword ptr [rcx]1671 movups xmm1, xmmword ptr [rcx+0x10]1672 movaps xmm8, xmm01673 movaps xmm9, xmm11674 movd xmm13, dword ptr [rsp+0x110]1675 movd xmm14, dword ptr [rsp+0x120]1676 punpckldq xmm13, xmm141677 movaps xmmword ptr [rsp], xmm131678 movd xmm14, dword ptr [rsp+0x114]1679 movd xmm13, dword ptr [rsp+0x124]1680 punpckldq xmm14, xmm131681 movaps xmmword ptr [rsp+0x10], xmm141682 mov r8, qword ptr [rdi]1683 mov r9, qword ptr [rdi+0x8]1684 movzx eax, byte ptr [rbp+0x40]1685 or eax, r13d1686 xor edx, edx16872:1688 mov r14d, eax1689 or eax, r12d1690 add rdx, 641691 cmp rdx, r151692 cmovne eax, r14d1693 movaps xmm2, xmmword ptr [BLAKE3_IV+rip]1694 movaps xmm10, xmm21695 movups xmm4, xmmword ptr [r8+rdx-0x40]1696 movups xmm5, xmmword ptr [r8+rdx-0x30]1697 movaps xmm3, xmm41698 shufps xmm4, xmm5, 1361699 shufps xmm3, xmm5, 2211700 movaps xmm5, xmm31701 movups xmm6, xmmword ptr [r8+rdx-0x20]1702 movups xmm7, xmmword ptr [r8+rdx-0x10]1703 movaps xmm3, xmm61704 shufps xmm6, xmm7, 1361705 pshufd xmm6, xmm6, 0x931706 shufps xmm3, xmm7, 2211707 pshufd xmm7, xmm3, 0x931708 movups xmm12, xmmword ptr [r9+rdx-0x40]1709 movups xmm13, xmmword ptr [r9+rdx-0x30]1710 movaps xmm11, xmm121711 shufps xmm12, xmm13, 1361712 shufps xmm11, xmm13, 2211713 movaps xmm13, xmm111714 movups xmm14, xmmword ptr [r9+rdx-0x20]1715 movups xmm15, xmmword ptr [r9+rdx-0x10]1716 movaps xmm11, xmm141717 shufps xmm14, xmm15, 1361718 pshufd xmm14, xmm14, 0x931719 shufps xmm11, xmm15, 2211720 pshufd xmm15, xmm11, 0x931721 shl rax, 0x201722 or rax, 0x401723 movq xmm3, rax1724 movdqa xmmword ptr [rsp+0x20], xmm31725 movaps xmm3, xmmword ptr [rsp]1726 movaps xmm11, xmmword ptr [rsp+0x10]1727 punpcklqdq xmm3, xmmword ptr [rsp+0x20]1728 punpcklqdq xmm11, xmmword ptr [rsp+0x20]1729 mov al, 717309:1731 paddd xmm0, xmm41732 paddd xmm8, xmm121733 movaps xmmword ptr [rsp+0x20], xmm41734 movaps xmmword ptr [rsp+0x30], xmm121735 paddd xmm0, xmm11736 paddd xmm8, xmm91737 pxor xmm3, xmm01738 pxor xmm11, xmm81739 pshuflw xmm3, xmm3, 0xB11740 pshufhw xmm3, xmm3, 0xB11741 pshuflw xmm11, xmm11, 0xB11742 pshufhw xmm11, xmm11, 0xB11743 paddd xmm2, xmm31744 paddd xmm10, xmm111745 pxor xmm1, xmm21746 pxor xmm9, xmm101747 movdqa xmm4, xmm11748 pslld xmm1, 201749 psrld xmm4, 121750 por xmm1, xmm41751 movdqa xmm4, xmm91752 pslld xmm9, 201753 psrld xmm4, 121754 por xmm9, xmm41755 paddd xmm0, xmm51756 paddd xmm8, xmm131757 movaps xmmword ptr [rsp+0x40], xmm51758 movaps xmmword ptr [rsp+0x50], xmm131759 paddd xmm0, xmm11760 paddd xmm8, xmm91761 pxor xmm3, xmm01762 pxor xmm11, xmm81763 movdqa xmm13, xmm31764 psrld xmm3, 81765 pslld xmm13, 241766 pxor xmm3, xmm131767 movdqa xmm13, xmm111768 psrld xmm11, 81769 pslld xmm13, 241770 pxor xmm11, xmm131771 paddd xmm2, xmm31772 paddd xmm10, xmm111773 pxor xmm1, xmm21774 pxor xmm9, xmm101775 movdqa xmm4, xmm11776 pslld xmm1, 251777 psrld xmm4, 71778 por xmm1, xmm41779 movdqa xmm4, xmm91780 pslld xmm9, 251781 psrld xmm4, 71782 por xmm9, xmm41783 pshufd xmm0, xmm0, 0x931784 pshufd xmm8, xmm8, 0x931785 pshufd xmm3, xmm3, 0x4E1786 pshufd xmm11, xmm11, 0x4E1787 pshufd xmm2, xmm2, 0x391788 pshufd xmm10, xmm10, 0x391789 paddd xmm0, xmm61790 paddd xmm8, xmm141791 paddd xmm0, xmm11792 paddd xmm8, xmm91793 pxor xmm3, xmm01794 pxor xmm11, xmm81795 pshuflw xmm3, xmm3, 0xB11796 pshufhw xmm3, xmm3, 0xB11797 pshuflw xmm11, xmm11, 0xB11798 pshufhw xmm11, xmm11, 0xB11799 paddd xmm2, xmm31800 paddd xmm10, xmm111801 pxor xmm1, xmm21802 pxor xmm9, xmm101803 movdqa xmm4, xmm11804 pslld xmm1, 201805 psrld xmm4, 121806 por xmm1, xmm41807 movdqa xmm4, xmm91808 pslld xmm9, 201809 psrld xmm4, 121810 por xmm9, xmm41811 paddd xmm0, xmm71812 paddd xmm8, xmm151813 paddd xmm0, xmm11814 paddd xmm8, xmm91815 pxor xmm3, xmm01816 pxor xmm11, xmm81817 movdqa xmm13, xmm31818 psrld xmm3, 81819 pslld xmm13, 241820 pxor xmm3, xmm131821 movdqa xmm13, xmm111822 psrld xmm11, 81823 pslld xmm13, 241824 pxor xmm11, xmm131825 paddd xmm2, xmm31826 paddd xmm10, xmm111827 pxor xmm1, xmm21828 pxor xmm9, xmm101829 movdqa xmm4, xmm11830 pslld xmm1, 251831 psrld xmm4, 71832 por xmm1, xmm41833 movdqa xmm4, xmm91834 pslld xmm9, 251835 psrld xmm4, 71836 por xmm9, xmm41837 pshufd xmm0, xmm0, 0x391838 pshufd xmm8, xmm8, 0x391839 pshufd xmm3, xmm3, 0x4E1840 pshufd xmm11, xmm11, 0x4E1841 pshufd xmm2, xmm2, 0x931842 pshufd xmm10, xmm10, 0x931843 dec al1844 je 9f1845 movdqa xmm12, xmmword ptr [rsp+0x20]1846 movdqa xmm5, xmmword ptr [rsp+0x40]1847 pshufd xmm13, xmm12, 0x0F1848 shufps xmm12, xmm5, 2141849 pshufd xmm4, xmm12, 0x391850 movdqa xmm12, xmm61851 shufps xmm12, xmm7, 2501852 pand xmm13, xmmword ptr [PBLENDW_0x33_MASK+rip]1853 pand xmm12, xmmword ptr [PBLENDW_0xCC_MASK+rip]1854 por xmm13, xmm121855 movdqa xmmword ptr [rsp+0x20], xmm131856 movdqa xmm12, xmm71857 punpcklqdq xmm12, xmm51858 movdqa xmm13, xmm61859 pand xmm12, xmmword ptr [PBLENDW_0x3F_MASK+rip]1860 pand xmm13, xmmword ptr [PBLENDW_0xC0_MASK+rip]1861 por xmm12, xmm131862 pshufd xmm12, xmm12, 0x781863 punpckhdq xmm5, xmm71864 punpckldq xmm6, xmm51865 pshufd xmm7, xmm6, 0x1E1866 movdqa xmmword ptr [rsp+0x40], xmm121867 movdqa xmm5, xmmword ptr [rsp+0x30]1868 movdqa xmm13, xmmword ptr [rsp+0x50]1869 pshufd xmm6, xmm5, 0x0F1870 shufps xmm5, xmm13, 2141871 pshufd xmm12, xmm5, 0x391872 movdqa xmm5, xmm141873 shufps xmm5, xmm15, 2501874 pand xmm6, xmmword ptr [PBLENDW_0x33_MASK+rip]1875 pand xmm5, xmmword ptr [PBLENDW_0xCC_MASK+rip]1876 por xmm6, xmm51877 movdqa xmm5, xmm151878 punpcklqdq xmm5, xmm131879 movdqa xmmword ptr [rsp+0x30], xmm21880 movdqa xmm2, xmm141881 pand xmm5, xmmword ptr [PBLENDW_0x3F_MASK+rip]1882 pand xmm2, xmmword ptr [PBLENDW_0xC0_MASK+rip]1883 por xmm5, xmm21884 movdqa xmm2, xmmword ptr [rsp+0x30]1885 pshufd xmm5, xmm5, 0x781886 punpckhdq xmm13, xmm151887 punpckldq xmm14, xmm131888 pshufd xmm15, xmm14, 0x1E1889 movdqa xmm13, xmm61890 movdqa xmm14, xmm51891 movdqa xmm5, xmmword ptr [rsp+0x20]1892 movdqa xmm6, xmmword ptr [rsp+0x40]1893 jmp 9b18949:1895 pxor xmm0, xmm21896 pxor xmm1, xmm31897 pxor xmm8, xmm101898 pxor xmm9, xmm111899 mov eax, r13d1900 cmp rdx, r151901 jne 2b1902 movups xmmword ptr [rbx], xmm01903 movups xmmword ptr [rbx+0x10], xmm11904 movups xmmword ptr [rbx+0x20], xmm81905 movups xmmword ptr [rbx+0x30], xmm91906 mov eax, dword ptr [rsp+0x130]1907 neg eax1908 mov r10d, dword ptr [rsp+0x110+8*rax]1909 mov r11d, dword ptr [rsp+0x120+8*rax]1910 mov dword ptr [rsp+0x110], r10d1911 mov dword ptr [rsp+0x120], r11d1912 add rdi, 161913 add rbx, 641914 sub rsi, 219153:1916 test esi, 0x11917 je 4b1918 movups xmm0, xmmword ptr [rcx]1919 movups xmm1, xmmword ptr [rcx+0x10]1920 movd xmm13, dword ptr [rsp+0x110]1921 movd xmm14, dword ptr [rsp+0x120]1922 punpckldq xmm13, xmm141923 mov r8, qword ptr [rdi]1924 movzx eax, byte ptr [rbp+0x40]1925 or eax, r13d1926 xor edx, edx19272:1928 mov r14d, eax1929 or eax, r12d1930 add rdx, 641931 cmp rdx, r151932 cmovne eax, r14d1933 movaps xmm2, xmmword ptr [BLAKE3_IV+rip]1934 shl rax, 321935 or rax, 641936 movq xmm12, rax1937 movdqa xmm3, xmm131938 punpcklqdq xmm3, xmm121939 movups xmm4, xmmword ptr [r8+rdx-0x40]1940 movups xmm5, xmmword ptr [r8+rdx-0x30]1941 movaps xmm8, xmm41942 shufps xmm4, xmm5, 1361943 shufps xmm8, xmm5, 2211944 movaps xmm5, xmm81945 movups xmm6, xmmword ptr [r8+rdx-0x20]1946 movups xmm7, xmmword ptr [r8+rdx-0x10]1947 movaps xmm8, xmm61948 shufps xmm6, xmm7, 1361949 pshufd xmm6, xmm6, 0x931950 shufps xmm8, xmm7, 2211951 pshufd xmm7, xmm8, 0x931952 mov al, 719539:1954 paddd xmm0, xmm41955 paddd xmm0, xmm11956 pxor xmm3, xmm01957 pshuflw xmm3, xmm3, 0xB11958 pshufhw xmm3, xmm3, 0xB11959 paddd xmm2, xmm31960 pxor xmm1, xmm21961 movdqa xmm11, xmm11962 pslld xmm1, 201963 psrld xmm11, 121964 por xmm1, xmm111965 paddd xmm0, xmm51966 paddd xmm0, xmm11967 pxor xmm3, xmm01968 movdqa xmm14, xmm31969 psrld xmm3, 81970 pslld xmm14, 241971 pxor xmm3, xmm141972 paddd xmm2, xmm31973 pxor xmm1, xmm21974 movdqa xmm11, xmm11975 pslld xmm1, 251976 psrld xmm11, 71977 por xmm1, xmm111978 pshufd xmm0, xmm0, 0x931979 pshufd xmm3, xmm3, 0x4E1980 pshufd xmm2, xmm2, 0x391981 paddd xmm0, xmm61982 paddd xmm0, xmm11983 pxor xmm3, xmm01984 pshuflw xmm3, xmm3, 0xB11985 pshufhw xmm3, xmm3, 0xB11986 paddd xmm2, xmm31987 pxor xmm1, xmm21988 movdqa xmm11, xmm11989 pslld xmm1, 201990 psrld xmm11, 121991 por xmm1, xmm111992 paddd xmm0, xmm71993 paddd xmm0, xmm11994 pxor xmm3, xmm01995 movdqa xmm14, xmm31996 psrld xmm3, 81997 pslld xmm14, 241998 pxor xmm3, xmm141999 paddd xmm2, xmm32000 pxor xmm1, xmm22001 movdqa xmm11, xmm12002 pslld xmm1, 252003 psrld xmm11, 72004 por xmm1, xmm112005 pshufd xmm0, xmm0, 0x392006 pshufd xmm3, xmm3, 0x4E2007 pshufd xmm2, xmm2, 0x932008 dec al2009 jz 9f2010 movdqa xmm8, xmm42011 shufps xmm8, xmm5, 2142012 pshufd xmm9, xmm4, 0x0F2013 pshufd xmm4, xmm8, 0x392014 movdqa xmm8, xmm62015 shufps xmm8, xmm7, 2502016 pand xmm9, xmmword ptr [PBLENDW_0x33_MASK+rip]2017 pand xmm8, xmmword ptr [PBLENDW_0xCC_MASK+rip]2018 por xmm9, xmm82019 movdqa xmm8, xmm72020 punpcklqdq xmm8, xmm52021 movdqa xmm10, xmm62022 pand xmm8, xmmword ptr [PBLENDW_0x3F_MASK+rip]2023 pand xmm10, xmmword ptr [PBLENDW_0xC0_MASK+rip]2024 por xmm8, xmm102025 pshufd xmm8, xmm8, 0x782026 punpckhdq xmm5, xmm72027 punpckldq xmm6, xmm52028 pshufd xmm7, xmm6, 0x1E2029 movdqa xmm5, xmm92030 movdqa xmm6, xmm82031 jmp 9b20329:2033 pxor xmm0, xmm22034 pxor xmm1, xmm32035 mov eax, r13d2036 cmp rdx, r152037 jne 2b2038 movups xmmword ptr [rbx], xmm02039 movups xmmword ptr [rbx+0x10], xmm12040 jmp 4b2041 2042.p2align 62043blake3_compress_in_place_sse2:2044_blake3_compress_in_place_sse2:2045 _CET_ENDBR2046 movups xmm0, xmmword ptr [rdi]2047 movups xmm1, xmmword ptr [rdi+0x10]2048 movaps xmm2, xmmword ptr [BLAKE3_IV+rip]2049 shl r8, 322050 add rdx, r82051 movq xmm3, rcx2052 movq xmm4, rdx2053 punpcklqdq xmm3, xmm42054 movups xmm4, xmmword ptr [rsi]2055 movups xmm5, xmmword ptr [rsi+0x10]2056 movaps xmm8, xmm42057 shufps xmm4, xmm5, 1362058 shufps xmm8, xmm5, 2212059 movaps xmm5, xmm82060 movups xmm6, xmmword ptr [rsi+0x20]2061 movups xmm7, xmmword ptr [rsi+0x30]2062 movaps xmm8, xmm62063 shufps xmm6, xmm7, 1362064 pshufd xmm6, xmm6, 0x932065 shufps xmm8, xmm7, 2212066 pshufd xmm7, xmm8, 0x932067 mov al, 720689:2069 paddd xmm0, xmm42070 paddd xmm0, xmm12071 pxor xmm3, xmm02072 pshuflw xmm3, xmm3, 0xB12073 pshufhw xmm3, xmm3, 0xB12074 paddd xmm2, xmm32075 pxor xmm1, xmm22076 movdqa xmm11, xmm12077 pslld xmm1, 202078 psrld xmm11, 122079 por xmm1, xmm112080 paddd xmm0, xmm52081 paddd xmm0, xmm12082 pxor xmm3, xmm02083 movdqa xmm14, xmm32084 psrld xmm3, 82085 pslld xmm14, 242086 pxor xmm3, xmm142087 paddd xmm2, xmm32088 pxor xmm1, xmm22089 movdqa xmm11, xmm12090 pslld xmm1, 252091 psrld xmm11, 72092 por xmm1, xmm112093 pshufd xmm0, xmm0, 0x932094 pshufd xmm3, xmm3, 0x4E2095 pshufd xmm2, xmm2, 0x392096 paddd xmm0, xmm62097 paddd xmm0, xmm12098 pxor xmm3, xmm02099 pshuflw xmm3, xmm3, 0xB12100 pshufhw xmm3, xmm3, 0xB12101 paddd xmm2, xmm32102 pxor xmm1, xmm22103 movdqa xmm11, xmm12104 pslld xmm1, 202105 psrld xmm11, 122106 por xmm1, xmm112107 paddd xmm0, xmm72108 paddd xmm0, xmm12109 pxor xmm3, xmm02110 movdqa xmm14, xmm32111 psrld xmm3, 82112 pslld xmm14, 242113 pxor xmm3, xmm142114 paddd xmm2, xmm32115 pxor xmm1, xmm22116 movdqa xmm11, xmm12117 pslld xmm1, 252118 psrld xmm11, 72119 por xmm1, xmm112120 pshufd xmm0, xmm0, 0x392121 pshufd xmm3, xmm3, 0x4E2122 pshufd xmm2, xmm2, 0x932123 dec al2124 jz 9f2125 movdqa xmm8, xmm42126 shufps xmm8, xmm5, 2142127 pshufd xmm9, xmm4, 0x0F2128 pshufd xmm4, xmm8, 0x392129 movdqa xmm8, xmm62130 shufps xmm8, xmm7, 2502131 pand xmm9, xmmword ptr [PBLENDW_0x33_MASK+rip]2132 pand xmm8, xmmword ptr [PBLENDW_0xCC_MASK+rip]2133 por xmm9, xmm82134 movdqa xmm8, xmm72135 punpcklqdq xmm8, xmm52136 movdqa xmm10, xmm62137 pand xmm8, xmmword ptr [PBLENDW_0x3F_MASK+rip]2138 pand xmm10, xmmword ptr [PBLENDW_0xC0_MASK+rip]2139 por xmm8, xmm102140 pshufd xmm8, xmm8, 0x782141 punpckhdq xmm5, xmm72142 punpckldq xmm6, xmm52143 pshufd xmm7, xmm6, 0x1E2144 movdqa xmm5, xmm92145 movdqa xmm6, xmm82146 jmp 9b21479:2148 pxor xmm0, xmm22149 pxor xmm1, xmm32150 movups xmmword ptr [rdi], xmm02151 movups xmmword ptr [rdi+0x10], xmm12152 ret2153 2154.p2align 62155blake3_compress_xof_sse2:2156_blake3_compress_xof_sse2:2157 _CET_ENDBR2158 movups xmm0, xmmword ptr [rdi]2159 movups xmm1, xmmword ptr [rdi+0x10]2160 movaps xmm2, xmmword ptr [BLAKE3_IV+rip]2161 movzx eax, r8b2162 movzx edx, dl2163 shl rax, 322164 add rdx, rax2165 movq xmm3, rcx2166 movq xmm4, rdx2167 punpcklqdq xmm3, xmm42168 movups xmm4, xmmword ptr [rsi]2169 movups xmm5, xmmword ptr [rsi+0x10]2170 movaps xmm8, xmm42171 shufps xmm4, xmm5, 1362172 shufps xmm8, xmm5, 2212173 movaps xmm5, xmm82174 movups xmm6, xmmword ptr [rsi+0x20]2175 movups xmm7, xmmword ptr [rsi+0x30]2176 movaps xmm8, xmm62177 shufps xmm6, xmm7, 1362178 pshufd xmm6, xmm6, 0x932179 shufps xmm8, xmm7, 2212180 pshufd xmm7, xmm8, 0x932181 mov al, 721829:2183 paddd xmm0, xmm42184 paddd xmm0, xmm12185 pxor xmm3, xmm02186 pshuflw xmm3, xmm3, 0xB12187 pshufhw xmm3, xmm3, 0xB12188 paddd xmm2, xmm32189 pxor xmm1, xmm22190 movdqa xmm11, xmm12191 pslld xmm1, 202192 psrld xmm11, 122193 por xmm1, xmm112194 paddd xmm0, xmm52195 paddd xmm0, xmm12196 pxor xmm3, xmm02197 movdqa xmm14, xmm32198 psrld xmm3, 82199 pslld xmm14, 242200 pxor xmm3, xmm142201 paddd xmm2, xmm32202 pxor xmm1, xmm22203 movdqa xmm11, xmm12204 pslld xmm1, 252205 psrld xmm11, 72206 por xmm1, xmm112207 pshufd xmm0, xmm0, 0x932208 pshufd xmm3, xmm3, 0x4E2209 pshufd xmm2, xmm2, 0x392210 paddd xmm0, xmm62211 paddd xmm0, xmm12212 pxor xmm3, xmm02213 pshuflw xmm3, xmm3, 0xB12214 pshufhw xmm3, xmm3, 0xB12215 paddd xmm2, xmm32216 pxor xmm1, xmm22217 movdqa xmm11, xmm12218 pslld xmm1, 202219 psrld xmm11, 122220 por xmm1, xmm112221 paddd xmm0, xmm72222 paddd xmm0, xmm12223 pxor xmm3, xmm02224 movdqa xmm14, xmm32225 psrld xmm3, 82226 pslld xmm14, 242227 pxor xmm3, xmm142228 paddd xmm2, xmm32229 pxor xmm1, xmm22230 movdqa xmm11, xmm12231 pslld xmm1, 252232 psrld xmm11, 72233 por xmm1, xmm112234 pshufd xmm0, xmm0, 0x392235 pshufd xmm3, xmm3, 0x4E2236 pshufd xmm2, xmm2, 0x932237 dec al2238 jz 9f2239 movdqa xmm8, xmm42240 shufps xmm8, xmm5, 2142241 pshufd xmm9, xmm4, 0x0F2242 pshufd xmm4, xmm8, 0x392243 movdqa xmm8, xmm62244 shufps xmm8, xmm7, 2502245 pand xmm9, xmmword ptr [PBLENDW_0x33_MASK+rip]2246 pand xmm8, xmmword ptr [PBLENDW_0xCC_MASK+rip]2247 por xmm9, xmm82248 movdqa xmm8, xmm72249 punpcklqdq xmm8, xmm52250 movdqa xmm10, xmm62251 pand xmm8, xmmword ptr [PBLENDW_0x3F_MASK+rip]2252 pand xmm10, xmmword ptr [PBLENDW_0xC0_MASK+rip]2253 por xmm8, xmm102254 pshufd xmm8, xmm8, 0x782255 punpckhdq xmm5, xmm72256 punpckldq xmm6, xmm52257 pshufd xmm7, xmm6, 0x1E2258 movdqa xmm5, xmm92259 movdqa xmm6, xmm82260 jmp 9b22619:2262 movdqu xmm4, xmmword ptr [rdi]2263 movdqu xmm5, xmmword ptr [rdi+0x10]2264 pxor xmm0, xmm22265 pxor xmm1, xmm32266 pxor xmm2, xmm42267 pxor xmm3, xmm52268 movups xmmword ptr [r9], xmm02269 movups xmmword ptr [r9+0x10], xmm12270 movups xmmword ptr [r9+0x20], xmm22271 movups xmmword ptr [r9+0x30], xmm32272 ret2273 2274 2275#ifdef __APPLE__2276.static_data2277#else2278.section .rodata2279#endif2280.p2align 62281BLAKE3_IV:2282 .long 0x6A09E667, 0xBB67AE852283 .long 0x3C6EF372, 0xA54FF53A2284ADD0: 2285 .long 0, 1, 2, 32286ADD1:2287 .long 4, 4, 4, 42288BLAKE3_IV_0:2289 .long 0x6A09E667, 0x6A09E667, 0x6A09E667, 0x6A09E6672290BLAKE3_IV_1:2291 .long 0xBB67AE85, 0xBB67AE85, 0xBB67AE85, 0xBB67AE852292BLAKE3_IV_2:2293 .long 0x3C6EF372, 0x3C6EF372, 0x3C6EF372, 0x3C6EF3722294BLAKE3_IV_3:2295 .long 0xA54FF53A, 0xA54FF53A, 0xA54FF53A, 0xA54FF53A2296BLAKE3_BLOCK_LEN:2297 .long 64, 64, 64, 642298CMP_MSB_MASK:2299 .long 0x80000000, 0x80000000, 0x80000000, 0x800000002300PBLENDW_0x33_MASK:2301 .long 0xFFFFFFFF, 0x00000000, 0xFFFFFFFF, 0x000000002302PBLENDW_0xCC_MASK:2303 .long 0x00000000, 0xFFFFFFFF, 0x00000000, 0xFFFFFFFF2304PBLENDW_0x3F_MASK:2305 .long 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0x000000002306PBLENDW_0xC0_MASK:2307 .long 0x00000000, 0x00000000, 0x00000000, 0xFFFFFFFF2308 2309#endif2310