2047 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_sse4127HIDDEN _blake3_hash_many_sse4128HIDDEN blake3_compress_in_place_sse4129HIDDEN _blake3_compress_in_place_sse4130HIDDEN blake3_compress_xof_sse4131HIDDEN _blake3_compress_xof_sse4132.global blake3_hash_many_sse4133.global _blake3_hash_many_sse4134.global blake3_compress_in_place_sse4135.global _blake3_compress_in_place_sse4136.global blake3_compress_xof_sse4137.global _blake3_compress_xof_sse4138#ifdef __APPLE__39.text40#else41.section .text42#endif43 .p2align 644_blake3_hash_many_sse41:45blake3_hash_many_sse41: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 movdqa xmm8, xmmword ptr [ROT16+rip]212 pshufb xmm12, xmm8213 pshufb xmm13, xmm8214 pshufb xmm14, xmm8215 pshufb xmm15, xmm8216 movdqa xmm8, xmmword ptr [BLAKE3_IV_0+rip]217 paddd xmm8, xmm12218 paddd xmm9, xmm13219 paddd xmm10, xmm14220 paddd xmm11, xmm15221 pxor xmm4, xmm8222 pxor xmm5, xmm9223 pxor xmm6, xmm10224 pxor xmm7, xmm11225 movdqa xmmword ptr [rsp+0x100], xmm8226 movdqa xmm8, xmm4227 psrld xmm8, 12228 pslld xmm4, 20229 por xmm4, xmm8230 movdqa xmm8, xmm5231 psrld xmm8, 12232 pslld xmm5, 20233 por xmm5, xmm8234 movdqa xmm8, xmm6235 psrld xmm8, 12236 pslld xmm6, 20237 por xmm6, xmm8238 movdqa xmm8, xmm7239 psrld xmm8, 12240 pslld xmm7, 20241 por xmm7, xmm8242 paddd xmm0, xmmword ptr [rsp+0x10]243 paddd xmm1, xmmword ptr [rsp+0x30]244 paddd xmm2, xmmword ptr [rsp+0x50]245 paddd xmm3, xmmword ptr [rsp+0x70]246 paddd xmm0, xmm4247 paddd xmm1, xmm5248 paddd xmm2, xmm6249 paddd xmm3, xmm7250 pxor xmm12, xmm0251 pxor xmm13, xmm1252 pxor xmm14, xmm2253 pxor xmm15, xmm3254 movdqa xmm8, xmmword ptr [ROT8+rip]255 pshufb xmm12, xmm8256 pshufb xmm13, xmm8257 pshufb xmm14, xmm8258 pshufb xmm15, xmm8259 movdqa xmm8, xmmword ptr [rsp+0x100]260 paddd xmm8, xmm12261 paddd xmm9, xmm13262 paddd xmm10, xmm14263 paddd xmm11, xmm15264 pxor xmm4, xmm8265 pxor xmm5, xmm9266 pxor xmm6, xmm10267 pxor xmm7, xmm11268 movdqa xmmword ptr [rsp+0x100], xmm8269 movdqa xmm8, xmm4270 psrld xmm8, 7271 pslld xmm4, 25272 por xmm4, xmm8273 movdqa xmm8, xmm5274 psrld xmm8, 7275 pslld xmm5, 25276 por xmm5, xmm8277 movdqa xmm8, xmm6278 psrld xmm8, 7279 pslld xmm6, 25280 por xmm6, xmm8281 movdqa xmm8, xmm7282 psrld xmm8, 7283 pslld xmm7, 25284 por xmm7, xmm8285 paddd xmm0, xmmword ptr [rsp+0x80]286 paddd xmm1, xmmword ptr [rsp+0xA0]287 paddd xmm2, xmmword ptr [rsp+0xC0]288 paddd xmm3, xmmword ptr [rsp+0xE0]289 paddd xmm0, xmm5290 paddd xmm1, xmm6291 paddd xmm2, xmm7292 paddd xmm3, xmm4293 pxor xmm15, xmm0294 pxor xmm12, xmm1295 pxor xmm13, xmm2296 pxor xmm14, xmm3297 movdqa xmm8, xmmword ptr [ROT16+rip]298 pshufb xmm15, xmm8299 pshufb xmm12, xmm8300 pshufb xmm13, xmm8301 pshufb xmm14, xmm8302 paddd xmm10, xmm15303 paddd xmm11, xmm12304 movdqa xmm8, xmmword ptr [rsp+0x100]305 paddd xmm8, xmm13306 paddd xmm9, xmm14307 pxor xmm5, xmm10308 pxor xmm6, xmm11309 pxor xmm7, xmm8310 pxor xmm4, xmm9311 movdqa xmmword ptr [rsp+0x100], xmm8312 movdqa xmm8, xmm5313 psrld xmm8, 12314 pslld xmm5, 20315 por xmm5, xmm8316 movdqa xmm8, xmm6317 psrld xmm8, 12318 pslld xmm6, 20319 por xmm6, xmm8320 movdqa xmm8, xmm7321 psrld xmm8, 12322 pslld xmm7, 20323 por xmm7, xmm8324 movdqa xmm8, xmm4325 psrld xmm8, 12326 pslld xmm4, 20327 por xmm4, xmm8328 paddd xmm0, xmmword ptr [rsp+0x90]329 paddd xmm1, xmmword ptr [rsp+0xB0]330 paddd xmm2, xmmword ptr [rsp+0xD0]331 paddd xmm3, xmmword ptr [rsp+0xF0]332 paddd xmm0, xmm5333 paddd xmm1, xmm6334 paddd xmm2, xmm7335 paddd xmm3, xmm4336 pxor xmm15, xmm0337 pxor xmm12, xmm1338 pxor xmm13, xmm2339 pxor xmm14, xmm3340 movdqa xmm8, xmmword ptr [ROT8+rip]341 pshufb xmm15, xmm8342 pshufb xmm12, xmm8343 pshufb xmm13, xmm8344 pshufb xmm14, xmm8345 paddd xmm10, xmm15346 paddd xmm11, xmm12347 movdqa xmm8, xmmword ptr [rsp+0x100]348 paddd xmm8, xmm13349 paddd xmm9, xmm14350 pxor xmm5, xmm10351 pxor xmm6, xmm11352 pxor xmm7, xmm8353 pxor xmm4, xmm9354 movdqa xmmword ptr [rsp+0x100], xmm8355 movdqa xmm8, xmm5356 psrld xmm8, 7357 pslld xmm5, 25358 por xmm5, xmm8359 movdqa xmm8, xmm6360 psrld xmm8, 7361 pslld xmm6, 25362 por xmm6, xmm8363 movdqa xmm8, xmm7364 psrld xmm8, 7365 pslld xmm7, 25366 por xmm7, xmm8367 movdqa xmm8, xmm4368 psrld xmm8, 7369 pslld xmm4, 25370 por xmm4, xmm8371 paddd xmm0, xmmword ptr [rsp+0x20]372 paddd xmm1, xmmword ptr [rsp+0x30]373 paddd xmm2, xmmword ptr [rsp+0x70]374 paddd xmm3, xmmword ptr [rsp+0x40]375 paddd xmm0, xmm4376 paddd xmm1, xmm5377 paddd xmm2, xmm6378 paddd xmm3, xmm7379 pxor xmm12, xmm0380 pxor xmm13, xmm1381 pxor xmm14, xmm2382 pxor xmm15, xmm3383 movdqa xmm8, xmmword ptr [ROT16+rip]384 pshufb xmm12, xmm8385 pshufb xmm13, xmm8386 pshufb xmm14, xmm8387 pshufb xmm15, xmm8388 movdqa xmm8, xmmword ptr [rsp+0x100]389 paddd xmm8, xmm12390 paddd xmm9, xmm13391 paddd xmm10, xmm14392 paddd xmm11, xmm15393 pxor xmm4, xmm8394 pxor xmm5, xmm9395 pxor xmm6, xmm10396 pxor xmm7, xmm11397 movdqa xmmword ptr [rsp+0x100], xmm8398 movdqa xmm8, xmm4399 psrld xmm8, 12400 pslld xmm4, 20401 por xmm4, xmm8402 movdqa xmm8, xmm5403 psrld xmm8, 12404 pslld xmm5, 20405 por xmm5, xmm8406 movdqa xmm8, xmm6407 psrld xmm8, 12408 pslld xmm6, 20409 por xmm6, xmm8410 movdqa xmm8, xmm7411 psrld xmm8, 12412 pslld xmm7, 20413 por xmm7, xmm8414 paddd xmm0, xmmword ptr [rsp+0x60]415 paddd xmm1, xmmword ptr [rsp+0xA0]416 paddd xmm2, xmmword ptr [rsp]417 paddd xmm3, xmmword ptr [rsp+0xD0]418 paddd xmm0, xmm4419 paddd xmm1, xmm5420 paddd xmm2, xmm6421 paddd xmm3, xmm7422 pxor xmm12, xmm0423 pxor xmm13, xmm1424 pxor xmm14, xmm2425 pxor xmm15, xmm3426 movdqa xmm8, xmmword ptr [ROT8+rip]427 pshufb xmm12, xmm8428 pshufb xmm13, xmm8429 pshufb xmm14, xmm8430 pshufb xmm15, xmm8431 movdqa xmm8, xmmword ptr [rsp+0x100]432 paddd xmm8, xmm12433 paddd xmm9, xmm13434 paddd xmm10, xmm14435 paddd xmm11, xmm15436 pxor xmm4, xmm8437 pxor xmm5, xmm9438 pxor xmm6, xmm10439 pxor xmm7, xmm11440 movdqa xmmword ptr [rsp+0x100], xmm8441 movdqa xmm8, xmm4442 psrld xmm8, 7443 pslld xmm4, 25444 por xmm4, xmm8445 movdqa xmm8, xmm5446 psrld xmm8, 7447 pslld xmm5, 25448 por xmm5, xmm8449 movdqa xmm8, xmm6450 psrld xmm8, 7451 pslld xmm6, 25452 por xmm6, xmm8453 movdqa xmm8, xmm7454 psrld xmm8, 7455 pslld xmm7, 25456 por xmm7, xmm8457 paddd xmm0, xmmword ptr [rsp+0x10]458 paddd xmm1, xmmword ptr [rsp+0xC0]459 paddd xmm2, xmmword ptr [rsp+0x90]460 paddd xmm3, xmmword ptr [rsp+0xF0]461 paddd xmm0, xmm5462 paddd xmm1, xmm6463 paddd xmm2, xmm7464 paddd xmm3, xmm4465 pxor xmm15, xmm0466 pxor xmm12, xmm1467 pxor xmm13, xmm2468 pxor xmm14, xmm3469 movdqa xmm8, xmmword ptr [ROT16+rip]470 pshufb xmm15, xmm8471 pshufb xmm12, xmm8472 pshufb xmm13, xmm8473 pshufb xmm14, xmm8474 paddd xmm10, xmm15475 paddd xmm11, xmm12476 movdqa xmm8, xmmword ptr [rsp+0x100]477 paddd xmm8, xmm13478 paddd xmm9, xmm14479 pxor xmm5, xmm10480 pxor xmm6, xmm11481 pxor xmm7, xmm8482 pxor xmm4, xmm9483 movdqa xmmword ptr [rsp+0x100], xmm8484 movdqa xmm8, xmm5485 psrld xmm8, 12486 pslld xmm5, 20487 por xmm5, xmm8488 movdqa xmm8, xmm6489 psrld xmm8, 12490 pslld xmm6, 20491 por xmm6, xmm8492 movdqa xmm8, xmm7493 psrld xmm8, 12494 pslld xmm7, 20495 por xmm7, xmm8496 movdqa xmm8, xmm4497 psrld xmm8, 12498 pslld xmm4, 20499 por xmm4, xmm8500 paddd xmm0, xmmword ptr [rsp+0xB0]501 paddd xmm1, xmmword ptr [rsp+0x50]502 paddd xmm2, xmmword ptr [rsp+0xE0]503 paddd xmm3, xmmword ptr [rsp+0x80]504 paddd xmm0, xmm5505 paddd xmm1, xmm6506 paddd xmm2, xmm7507 paddd xmm3, xmm4508 pxor xmm15, xmm0509 pxor xmm12, xmm1510 pxor xmm13, xmm2511 pxor xmm14, xmm3512 movdqa xmm8, xmmword ptr [ROT8+rip]513 pshufb xmm15, xmm8514 pshufb xmm12, xmm8515 pshufb xmm13, xmm8516 pshufb xmm14, xmm8517 paddd xmm10, xmm15518 paddd xmm11, xmm12519 movdqa xmm8, xmmword ptr [rsp+0x100]520 paddd xmm8, xmm13521 paddd xmm9, xmm14522 pxor xmm5, xmm10523 pxor xmm6, xmm11524 pxor xmm7, xmm8525 pxor xmm4, xmm9526 movdqa xmmword ptr [rsp+0x100], xmm8527 movdqa xmm8, xmm5528 psrld xmm8, 7529 pslld xmm5, 25530 por xmm5, xmm8531 movdqa xmm8, xmm6532 psrld xmm8, 7533 pslld xmm6, 25534 por xmm6, xmm8535 movdqa xmm8, xmm7536 psrld xmm8, 7537 pslld xmm7, 25538 por xmm7, xmm8539 movdqa xmm8, xmm4540 psrld xmm8, 7541 pslld xmm4, 25542 por xmm4, xmm8543 paddd xmm0, xmmword ptr [rsp+0x30]544 paddd xmm1, xmmword ptr [rsp+0xA0]545 paddd xmm2, xmmword ptr [rsp+0xD0]546 paddd xmm3, xmmword ptr [rsp+0x70]547 paddd xmm0, xmm4548 paddd xmm1, xmm5549 paddd xmm2, xmm6550 paddd xmm3, xmm7551 pxor xmm12, xmm0552 pxor xmm13, xmm1553 pxor xmm14, xmm2554 pxor xmm15, xmm3555 movdqa xmm8, xmmword ptr [ROT16+rip]556 pshufb xmm12, xmm8557 pshufb xmm13, xmm8558 pshufb xmm14, xmm8559 pshufb xmm15, xmm8560 movdqa xmm8, xmmword ptr [rsp+0x100]561 paddd xmm8, xmm12562 paddd xmm9, xmm13563 paddd xmm10, xmm14564 paddd xmm11, xmm15565 pxor xmm4, xmm8566 pxor xmm5, xmm9567 pxor xmm6, xmm10568 pxor xmm7, xmm11569 movdqa xmmword ptr [rsp+0x100], xmm8570 movdqa xmm8, xmm4571 psrld xmm8, 12572 pslld xmm4, 20573 por xmm4, xmm8574 movdqa xmm8, xmm5575 psrld xmm8, 12576 pslld xmm5, 20577 por xmm5, xmm8578 movdqa xmm8, xmm6579 psrld xmm8, 12580 pslld xmm6, 20581 por xmm6, xmm8582 movdqa xmm8, xmm7583 psrld xmm8, 12584 pslld xmm7, 20585 por xmm7, xmm8586 paddd xmm0, xmmword ptr [rsp+0x40]587 paddd xmm1, xmmword ptr [rsp+0xC0]588 paddd xmm2, xmmword ptr [rsp+0x20]589 paddd xmm3, xmmword ptr [rsp+0xE0]590 paddd xmm0, xmm4591 paddd xmm1, xmm5592 paddd xmm2, xmm6593 paddd xmm3, xmm7594 pxor xmm12, xmm0595 pxor xmm13, xmm1596 pxor xmm14, xmm2597 pxor xmm15, xmm3598 movdqa xmm8, xmmword ptr [ROT8+rip]599 pshufb xmm12, xmm8600 pshufb xmm13, xmm8601 pshufb xmm14, xmm8602 pshufb xmm15, xmm8603 movdqa xmm8, xmmword ptr [rsp+0x100]604 paddd xmm8, xmm12605 paddd xmm9, xmm13606 paddd xmm10, xmm14607 paddd xmm11, xmm15608 pxor xmm4, xmm8609 pxor xmm5, xmm9610 pxor xmm6, xmm10611 pxor xmm7, xmm11612 movdqa xmmword ptr [rsp+0x100], xmm8613 movdqa xmm8, xmm4614 psrld xmm8, 7615 pslld xmm4, 25616 por xmm4, xmm8617 movdqa xmm8, xmm5618 psrld xmm8, 7619 pslld xmm5, 25620 por xmm5, xmm8621 movdqa xmm8, xmm6622 psrld xmm8, 7623 pslld xmm6, 25624 por xmm6, xmm8625 movdqa xmm8, xmm7626 psrld xmm8, 7627 pslld xmm7, 25628 por xmm7, xmm8629 paddd xmm0, xmmword ptr [rsp+0x60]630 paddd xmm1, xmmword ptr [rsp+0x90]631 paddd xmm2, xmmword ptr [rsp+0xB0]632 paddd xmm3, xmmword ptr [rsp+0x80]633 paddd xmm0, xmm5634 paddd xmm1, xmm6635 paddd xmm2, xmm7636 paddd xmm3, xmm4637 pxor xmm15, xmm0638 pxor xmm12, xmm1639 pxor xmm13, xmm2640 pxor xmm14, xmm3641 movdqa xmm8, xmmword ptr [ROT16+rip]642 pshufb xmm15, xmm8643 pshufb xmm12, xmm8644 pshufb xmm13, xmm8645 pshufb xmm14, xmm8646 paddd xmm10, xmm15647 paddd xmm11, xmm12648 movdqa xmm8, xmmword ptr [rsp+0x100]649 paddd xmm8, xmm13650 paddd xmm9, xmm14651 pxor xmm5, xmm10652 pxor xmm6, xmm11653 pxor xmm7, xmm8654 pxor xmm4, xmm9655 movdqa xmmword ptr [rsp+0x100], xmm8656 movdqa xmm8, xmm5657 psrld xmm8, 12658 pslld xmm5, 20659 por xmm5, xmm8660 movdqa xmm8, xmm6661 psrld xmm8, 12662 pslld xmm6, 20663 por xmm6, xmm8664 movdqa xmm8, xmm7665 psrld xmm8, 12666 pslld xmm7, 20667 por xmm7, xmm8668 movdqa xmm8, xmm4669 psrld xmm8, 12670 pslld xmm4, 20671 por xmm4, xmm8672 paddd xmm0, xmmword ptr [rsp+0x50]673 paddd xmm1, xmmword ptr [rsp]674 paddd xmm2, xmmword ptr [rsp+0xF0]675 paddd xmm3, xmmword ptr [rsp+0x10]676 paddd xmm0, xmm5677 paddd xmm1, xmm6678 paddd xmm2, xmm7679 paddd xmm3, xmm4680 pxor xmm15, xmm0681 pxor xmm12, xmm1682 pxor xmm13, xmm2683 pxor xmm14, xmm3684 movdqa xmm8, xmmword ptr [ROT8+rip]685 pshufb xmm15, xmm8686 pshufb xmm12, xmm8687 pshufb xmm13, xmm8688 pshufb xmm14, xmm8689 paddd xmm10, xmm15690 paddd xmm11, xmm12691 movdqa xmm8, xmmword ptr [rsp+0x100]692 paddd xmm8, xmm13693 paddd xmm9, xmm14694 pxor xmm5, xmm10695 pxor xmm6, xmm11696 pxor xmm7, xmm8697 pxor xmm4, xmm9698 movdqa xmmword ptr [rsp+0x100], xmm8699 movdqa xmm8, xmm5700 psrld xmm8, 7701 pslld xmm5, 25702 por xmm5, xmm8703 movdqa xmm8, xmm6704 psrld xmm8, 7705 pslld xmm6, 25706 por xmm6, xmm8707 movdqa xmm8, xmm7708 psrld xmm8, 7709 pslld xmm7, 25710 por xmm7, xmm8711 movdqa xmm8, xmm4712 psrld xmm8, 7713 pslld xmm4, 25714 por xmm4, xmm8715 paddd xmm0, xmmword ptr [rsp+0xA0]716 paddd xmm1, xmmword ptr [rsp+0xC0]717 paddd xmm2, xmmword ptr [rsp+0xE0]718 paddd xmm3, xmmword ptr [rsp+0xD0]719 paddd xmm0, xmm4720 paddd xmm1, xmm5721 paddd xmm2, xmm6722 paddd xmm3, xmm7723 pxor xmm12, xmm0724 pxor xmm13, xmm1725 pxor xmm14, xmm2726 pxor xmm15, xmm3727 movdqa xmm8, xmmword ptr [ROT16+rip]728 pshufb xmm12, xmm8729 pshufb xmm13, xmm8730 pshufb xmm14, xmm8731 pshufb xmm15, xmm8732 movdqa xmm8, xmmword ptr [rsp+0x100]733 paddd xmm8, xmm12734 paddd xmm9, xmm13735 paddd xmm10, xmm14736 paddd xmm11, xmm15737 pxor xmm4, xmm8738 pxor xmm5, xmm9739 pxor xmm6, xmm10740 pxor xmm7, xmm11741 movdqa xmmword ptr [rsp+0x100], xmm8742 movdqa xmm8, xmm4743 psrld xmm8, 12744 pslld xmm4, 20745 por xmm4, xmm8746 movdqa xmm8, xmm5747 psrld xmm8, 12748 pslld xmm5, 20749 por xmm5, xmm8750 movdqa xmm8, xmm6751 psrld xmm8, 12752 pslld xmm6, 20753 por xmm6, xmm8754 movdqa xmm8, xmm7755 psrld xmm8, 12756 pslld xmm7, 20757 por xmm7, xmm8758 paddd xmm0, xmmword ptr [rsp+0x70]759 paddd xmm1, xmmword ptr [rsp+0x90]760 paddd xmm2, xmmword ptr [rsp+0x30]761 paddd xmm3, xmmword ptr [rsp+0xF0]762 paddd xmm0, xmm4763 paddd xmm1, xmm5764 paddd xmm2, xmm6765 paddd xmm3, xmm7766 pxor xmm12, xmm0767 pxor xmm13, xmm1768 pxor xmm14, xmm2769 pxor xmm15, xmm3770 movdqa xmm8, xmmword ptr [ROT8+rip]771 pshufb xmm12, xmm8772 pshufb xmm13, xmm8773 pshufb xmm14, xmm8774 pshufb xmm15, xmm8775 movdqa xmm8, xmmword ptr [rsp+0x100]776 paddd xmm8, xmm12777 paddd xmm9, xmm13778 paddd xmm10, xmm14779 paddd xmm11, xmm15780 pxor xmm4, xmm8781 pxor xmm5, xmm9782 pxor xmm6, xmm10783 pxor xmm7, xmm11784 movdqa xmmword ptr [rsp+0x100], xmm8785 movdqa xmm8, xmm4786 psrld xmm8, 7787 pslld xmm4, 25788 por xmm4, xmm8789 movdqa xmm8, xmm5790 psrld xmm8, 7791 pslld xmm5, 25792 por xmm5, xmm8793 movdqa xmm8, xmm6794 psrld xmm8, 7795 pslld xmm6, 25796 por xmm6, xmm8797 movdqa xmm8, xmm7798 psrld xmm8, 7799 pslld xmm7, 25800 por xmm7, xmm8801 paddd xmm0, xmmword ptr [rsp+0x40]802 paddd xmm1, xmmword ptr [rsp+0xB0]803 paddd xmm2, xmmword ptr [rsp+0x50]804 paddd xmm3, xmmword ptr [rsp+0x10]805 paddd xmm0, xmm5806 paddd xmm1, xmm6807 paddd xmm2, xmm7808 paddd xmm3, xmm4809 pxor xmm15, xmm0810 pxor xmm12, xmm1811 pxor xmm13, xmm2812 pxor xmm14, xmm3813 movdqa xmm8, xmmword ptr [ROT16+rip]814 pshufb xmm15, xmm8815 pshufb xmm12, xmm8816 pshufb xmm13, xmm8817 pshufb xmm14, xmm8818 paddd xmm10, xmm15819 paddd xmm11, xmm12820 movdqa xmm8, xmmword ptr [rsp+0x100]821 paddd xmm8, xmm13822 paddd xmm9, xmm14823 pxor xmm5, xmm10824 pxor xmm6, xmm11825 pxor xmm7, xmm8826 pxor xmm4, xmm9827 movdqa xmmword ptr [rsp+0x100], xmm8828 movdqa xmm8, xmm5829 psrld xmm8, 12830 pslld xmm5, 20831 por xmm5, xmm8832 movdqa xmm8, xmm6833 psrld xmm8, 12834 pslld xmm6, 20835 por xmm6, xmm8836 movdqa xmm8, xmm7837 psrld xmm8, 12838 pslld xmm7, 20839 por xmm7, xmm8840 movdqa xmm8, xmm4841 psrld xmm8, 12842 pslld xmm4, 20843 por xmm4, xmm8844 paddd xmm0, xmmword ptr [rsp]845 paddd xmm1, xmmword ptr [rsp+0x20]846 paddd xmm2, xmmword ptr [rsp+0x80]847 paddd xmm3, xmmword ptr [rsp+0x60]848 paddd xmm0, xmm5849 paddd xmm1, xmm6850 paddd xmm2, xmm7851 paddd xmm3, xmm4852 pxor xmm15, xmm0853 pxor xmm12, xmm1854 pxor xmm13, xmm2855 pxor xmm14, xmm3856 movdqa xmm8, xmmword ptr [ROT8+rip]857 pshufb xmm15, xmm8858 pshufb xmm12, xmm8859 pshufb xmm13, xmm8860 pshufb xmm14, xmm8861 paddd xmm10, xmm15862 paddd xmm11, xmm12863 movdqa xmm8, xmmword ptr [rsp+0x100]864 paddd xmm8, xmm13865 paddd xmm9, xmm14866 pxor xmm5, xmm10867 pxor xmm6, xmm11868 pxor xmm7, xmm8869 pxor xmm4, xmm9870 movdqa xmmword ptr [rsp+0x100], xmm8871 movdqa xmm8, xmm5872 psrld xmm8, 7873 pslld xmm5, 25874 por xmm5, xmm8875 movdqa xmm8, xmm6876 psrld xmm8, 7877 pslld xmm6, 25878 por xmm6, xmm8879 movdqa xmm8, xmm7880 psrld xmm8, 7881 pslld xmm7, 25882 por xmm7, xmm8883 movdqa xmm8, xmm4884 psrld xmm8, 7885 pslld xmm4, 25886 por xmm4, xmm8887 paddd xmm0, xmmword ptr [rsp+0xC0]888 paddd xmm1, xmmword ptr [rsp+0x90]889 paddd xmm2, xmmword ptr [rsp+0xF0]890 paddd xmm3, xmmword ptr [rsp+0xE0]891 paddd xmm0, xmm4892 paddd xmm1, xmm5893 paddd xmm2, xmm6894 paddd xmm3, xmm7895 pxor xmm12, xmm0896 pxor xmm13, xmm1897 pxor xmm14, xmm2898 pxor xmm15, xmm3899 movdqa xmm8, xmmword ptr [ROT16+rip]900 pshufb xmm12, xmm8901 pshufb xmm13, xmm8902 pshufb xmm14, xmm8903 pshufb xmm15, xmm8904 movdqa xmm8, xmmword ptr [rsp+0x100]905 paddd xmm8, xmm12906 paddd xmm9, xmm13907 paddd xmm10, xmm14908 paddd xmm11, xmm15909 pxor xmm4, xmm8910 pxor xmm5, xmm9911 pxor xmm6, xmm10912 pxor xmm7, xmm11913 movdqa xmmword ptr [rsp+0x100], xmm8914 movdqa xmm8, xmm4915 psrld xmm8, 12916 pslld xmm4, 20917 por xmm4, xmm8918 movdqa xmm8, xmm5919 psrld xmm8, 12920 pslld xmm5, 20921 por xmm5, xmm8922 movdqa xmm8, xmm6923 psrld xmm8, 12924 pslld xmm6, 20925 por xmm6, xmm8926 movdqa xmm8, xmm7927 psrld xmm8, 12928 pslld xmm7, 20929 por xmm7, xmm8930 paddd xmm0, xmmword ptr [rsp+0xD0]931 paddd xmm1, xmmword ptr [rsp+0xB0]932 paddd xmm2, xmmword ptr [rsp+0xA0]933 paddd xmm3, xmmword ptr [rsp+0x80]934 paddd xmm0, xmm4935 paddd xmm1, xmm5936 paddd xmm2, xmm6937 paddd xmm3, xmm7938 pxor xmm12, xmm0939 pxor xmm13, xmm1940 pxor xmm14, xmm2941 pxor xmm15, xmm3942 movdqa xmm8, xmmword ptr [ROT8+rip]943 pshufb xmm12, xmm8944 pshufb xmm13, xmm8945 pshufb xmm14, xmm8946 pshufb xmm15, xmm8947 movdqa xmm8, xmmword ptr [rsp+0x100]948 paddd xmm8, xmm12949 paddd xmm9, xmm13950 paddd xmm10, xmm14951 paddd xmm11, xmm15952 pxor xmm4, xmm8953 pxor xmm5, xmm9954 pxor xmm6, xmm10955 pxor xmm7, xmm11956 movdqa xmmword ptr [rsp+0x100], xmm8957 movdqa xmm8, xmm4958 psrld xmm8, 7959 pslld xmm4, 25960 por xmm4, xmm8961 movdqa xmm8, xmm5962 psrld xmm8, 7963 pslld xmm5, 25964 por xmm5, xmm8965 movdqa xmm8, xmm6966 psrld xmm8, 7967 pslld xmm6, 25968 por xmm6, xmm8969 movdqa xmm8, xmm7970 psrld xmm8, 7971 pslld xmm7, 25972 por xmm7, xmm8973 paddd xmm0, xmmword ptr [rsp+0x70]974 paddd xmm1, xmmword ptr [rsp+0x50]975 paddd xmm2, xmmword ptr [rsp]976 paddd xmm3, xmmword ptr [rsp+0x60]977 paddd xmm0, xmm5978 paddd xmm1, xmm6979 paddd xmm2, xmm7980 paddd xmm3, xmm4981 pxor xmm15, xmm0982 pxor xmm12, xmm1983 pxor xmm13, xmm2984 pxor xmm14, xmm3985 movdqa xmm8, xmmword ptr [ROT16+rip]986 pshufb xmm15, xmm8987 pshufb xmm12, xmm8988 pshufb xmm13, xmm8989 pshufb xmm14, xmm8990 paddd xmm10, xmm15991 paddd xmm11, xmm12992 movdqa xmm8, xmmword ptr [rsp+0x100]993 paddd xmm8, xmm13994 paddd xmm9, xmm14995 pxor xmm5, xmm10996 pxor xmm6, xmm11997 pxor xmm7, xmm8998 pxor xmm4, xmm9999 movdqa xmmword ptr [rsp+0x100], xmm81000 movdqa xmm8, xmm51001 psrld xmm8, 121002 pslld xmm5, 201003 por xmm5, xmm81004 movdqa xmm8, xmm61005 psrld xmm8, 121006 pslld xmm6, 201007 por xmm6, xmm81008 movdqa xmm8, xmm71009 psrld xmm8, 121010 pslld xmm7, 201011 por xmm7, xmm81012 movdqa xmm8, xmm41013 psrld xmm8, 121014 pslld xmm4, 201015 por xmm4, xmm81016 paddd xmm0, xmmword ptr [rsp+0x20]1017 paddd xmm1, xmmword ptr [rsp+0x30]1018 paddd xmm2, xmmword ptr [rsp+0x10]1019 paddd xmm3, xmmword ptr [rsp+0x40]1020 paddd xmm0, xmm51021 paddd xmm1, xmm61022 paddd xmm2, xmm71023 paddd xmm3, xmm41024 pxor xmm15, xmm01025 pxor xmm12, xmm11026 pxor xmm13, xmm21027 pxor xmm14, xmm31028 movdqa xmm8, xmmword ptr [ROT8+rip]1029 pshufb xmm15, xmm81030 pshufb xmm12, xmm81031 pshufb xmm13, xmm81032 pshufb xmm14, xmm81033 paddd xmm10, xmm151034 paddd xmm11, xmm121035 movdqa xmm8, xmmword ptr [rsp+0x100]1036 paddd xmm8, xmm131037 paddd xmm9, xmm141038 pxor xmm5, xmm101039 pxor xmm6, xmm111040 pxor xmm7, xmm81041 pxor xmm4, xmm91042 movdqa xmmword ptr [rsp+0x100], xmm81043 movdqa xmm8, xmm51044 psrld xmm8, 71045 pslld xmm5, 251046 por xmm5, xmm81047 movdqa xmm8, xmm61048 psrld xmm8, 71049 pslld xmm6, 251050 por xmm6, xmm81051 movdqa xmm8, xmm71052 psrld xmm8, 71053 pslld xmm7, 251054 por xmm7, xmm81055 movdqa xmm8, xmm41056 psrld xmm8, 71057 pslld xmm4, 251058 por xmm4, xmm81059 paddd xmm0, xmmword ptr [rsp+0x90]1060 paddd xmm1, xmmword ptr [rsp+0xB0]1061 paddd xmm2, xmmword ptr [rsp+0x80]1062 paddd xmm3, xmmword ptr [rsp+0xF0]1063 paddd xmm0, xmm41064 paddd xmm1, xmm51065 paddd xmm2, xmm61066 paddd xmm3, xmm71067 pxor xmm12, xmm01068 pxor xmm13, xmm11069 pxor xmm14, xmm21070 pxor xmm15, xmm31071 movdqa xmm8, xmmword ptr [ROT16+rip]1072 pshufb xmm12, xmm81073 pshufb xmm13, xmm81074 pshufb xmm14, xmm81075 pshufb xmm15, xmm81076 movdqa xmm8, xmmword ptr [rsp+0x100]1077 paddd xmm8, xmm121078 paddd xmm9, xmm131079 paddd xmm10, xmm141080 paddd xmm11, xmm151081 pxor xmm4, xmm81082 pxor xmm5, xmm91083 pxor xmm6, xmm101084 pxor xmm7, xmm111085 movdqa xmmword ptr [rsp+0x100], xmm81086 movdqa xmm8, xmm41087 psrld xmm8, 121088 pslld xmm4, 201089 por xmm4, xmm81090 movdqa xmm8, xmm51091 psrld xmm8, 121092 pslld xmm5, 201093 por xmm5, xmm81094 movdqa xmm8, xmm61095 psrld xmm8, 121096 pslld xmm6, 201097 por xmm6, xmm81098 movdqa xmm8, xmm71099 psrld xmm8, 121100 pslld xmm7, 201101 por xmm7, xmm81102 paddd xmm0, xmmword ptr [rsp+0xE0]1103 paddd xmm1, xmmword ptr [rsp+0x50]1104 paddd xmm2, xmmword ptr [rsp+0xC0]1105 paddd xmm3, xmmword ptr [rsp+0x10]1106 paddd xmm0, xmm41107 paddd xmm1, xmm51108 paddd xmm2, xmm61109 paddd xmm3, xmm71110 pxor xmm12, xmm01111 pxor xmm13, xmm11112 pxor xmm14, xmm21113 pxor xmm15, xmm31114 movdqa xmm8, xmmword ptr [ROT8+rip]1115 pshufb xmm12, xmm81116 pshufb xmm13, xmm81117 pshufb xmm14, xmm81118 pshufb xmm15, xmm81119 movdqa xmm8, xmmword ptr [rsp+0x100]1120 paddd xmm8, xmm121121 paddd xmm9, xmm131122 paddd xmm10, xmm141123 paddd xmm11, xmm151124 pxor xmm4, xmm81125 pxor xmm5, xmm91126 pxor xmm6, xmm101127 pxor xmm7, xmm111128 movdqa xmmword ptr [rsp+0x100], xmm81129 movdqa xmm8, xmm41130 psrld xmm8, 71131 pslld xmm4, 251132 por xmm4, xmm81133 movdqa xmm8, xmm51134 psrld xmm8, 71135 pslld xmm5, 251136 por xmm5, xmm81137 movdqa xmm8, xmm61138 psrld xmm8, 71139 pslld xmm6, 251140 por xmm6, xmm81141 movdqa xmm8, xmm71142 psrld xmm8, 71143 pslld xmm7, 251144 por xmm7, xmm81145 paddd xmm0, xmmword ptr [rsp+0xD0]1146 paddd xmm1, xmmword ptr [rsp]1147 paddd xmm2, xmmword ptr [rsp+0x20]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, xmmword ptr [ROT16+rip]1158 pshufb xmm15, xmm81159 pshufb xmm12, xmm81160 pshufb xmm13, xmm81161 pshufb xmm14, xmm81162 paddd xmm10, xmm151163 paddd xmm11, xmm121164 movdqa xmm8, xmmword ptr [rsp+0x100]1165 paddd xmm8, xmm131166 paddd xmm9, xmm141167 pxor xmm5, xmm101168 pxor xmm6, xmm111169 pxor xmm7, xmm81170 pxor xmm4, xmm91171 movdqa xmmword ptr [rsp+0x100], xmm81172 movdqa xmm8, xmm51173 psrld xmm8, 121174 pslld xmm5, 201175 por xmm5, xmm81176 movdqa xmm8, xmm61177 psrld xmm8, 121178 pslld xmm6, 201179 por xmm6, xmm81180 movdqa xmm8, xmm71181 psrld xmm8, 121182 pslld xmm7, 201183 por xmm7, xmm81184 movdqa xmm8, xmm41185 psrld xmm8, 121186 pslld xmm4, 201187 por xmm4, xmm81188 paddd xmm0, xmmword ptr [rsp+0x30]1189 paddd xmm1, xmmword ptr [rsp+0xA0]1190 paddd xmm2, xmmword ptr [rsp+0x60]1191 paddd xmm3, xmmword ptr [rsp+0x70]1192 paddd xmm0, xmm51193 paddd xmm1, xmm61194 paddd xmm2, xmm71195 paddd xmm3, xmm41196 pxor xmm15, xmm01197 pxor xmm12, xmm11198 pxor xmm13, xmm21199 pxor xmm14, xmm31200 movdqa xmm8, xmmword ptr [ROT8+rip]1201 pshufb xmm15, xmm81202 pshufb xmm12, xmm81203 pshufb xmm13, xmm81204 pshufb xmm14, xmm81205 paddd xmm10, xmm151206 paddd xmm11, xmm121207 movdqa xmm8, xmmword ptr [rsp+0x100]1208 paddd xmm8, xmm131209 paddd xmm9, xmm141210 pxor xmm5, xmm101211 pxor xmm6, xmm111212 pxor xmm7, xmm81213 pxor xmm4, xmm91214 movdqa xmmword ptr [rsp+0x100], xmm81215 movdqa xmm8, xmm51216 psrld xmm8, 71217 pslld xmm5, 251218 por xmm5, xmm81219 movdqa xmm8, xmm61220 psrld xmm8, 71221 pslld xmm6, 251222 por xmm6, xmm81223 movdqa xmm8, xmm71224 psrld xmm8, 71225 pslld xmm7, 251226 por xmm7, xmm81227 movdqa xmm8, xmm41228 psrld xmm8, 71229 pslld xmm4, 251230 por xmm4, xmm81231 paddd xmm0, xmmword ptr [rsp+0xB0]1232 paddd xmm1, xmmword ptr [rsp+0x50]1233 paddd xmm2, xmmword ptr [rsp+0x10]1234 paddd xmm3, xmmword ptr [rsp+0x80]1235 paddd xmm0, xmm41236 paddd xmm1, xmm51237 paddd xmm2, xmm61238 paddd xmm3, xmm71239 pxor xmm12, xmm01240 pxor xmm13, xmm11241 pxor xmm14, xmm21242 pxor xmm15, xmm31243 movdqa xmm8, xmmword ptr [ROT16+rip]1244 pshufb xmm12, xmm81245 pshufb xmm13, xmm81246 pshufb xmm14, xmm81247 pshufb xmm15, xmm81248 movdqa xmm8, xmmword ptr [rsp+0x100]1249 paddd xmm8, xmm121250 paddd xmm9, xmm131251 paddd xmm10, xmm141252 paddd xmm11, xmm151253 pxor xmm4, xmm81254 pxor xmm5, xmm91255 pxor xmm6, xmm101256 pxor xmm7, xmm111257 movdqa xmmword ptr [rsp+0x100], xmm81258 movdqa xmm8, xmm41259 psrld xmm8, 121260 pslld xmm4, 201261 por xmm4, xmm81262 movdqa xmm8, xmm51263 psrld xmm8, 121264 pslld xmm5, 201265 por xmm5, xmm81266 movdqa xmm8, xmm61267 psrld xmm8, 121268 pslld xmm6, 201269 por xmm6, xmm81270 movdqa xmm8, xmm71271 psrld xmm8, 121272 pslld xmm7, 201273 por xmm7, xmm81274 paddd xmm0, xmmword ptr [rsp+0xF0]1275 paddd xmm1, xmmword ptr [rsp]1276 paddd xmm2, xmmword ptr [rsp+0x90]1277 paddd xmm3, xmmword ptr [rsp+0x60]1278 paddd xmm0, xmm41279 paddd xmm1, xmm51280 paddd xmm2, xmm61281 paddd xmm3, xmm71282 pxor xmm12, xmm01283 pxor xmm13, xmm11284 pxor xmm14, xmm21285 pxor xmm15, xmm31286 movdqa xmm8, xmmword ptr [ROT8+rip]1287 pshufb xmm12, xmm81288 pshufb xmm13, xmm81289 pshufb xmm14, xmm81290 pshufb xmm15, xmm81291 movdqa xmm8, xmmword ptr [rsp+0x100]1292 paddd xmm8, xmm121293 paddd xmm9, xmm131294 paddd xmm10, xmm141295 paddd xmm11, xmm151296 pxor xmm4, xmm81297 pxor xmm5, xmm91298 pxor xmm6, xmm101299 pxor xmm7, xmm111300 movdqa xmmword ptr [rsp+0x100], xmm81301 movdqa xmm8, xmm41302 psrld xmm8, 71303 pslld xmm4, 251304 por xmm4, xmm81305 movdqa xmm8, xmm51306 psrld xmm8, 71307 pslld xmm5, 251308 por xmm5, xmm81309 movdqa xmm8, xmm61310 psrld xmm8, 71311 pslld xmm6, 251312 por xmm6, xmm81313 movdqa xmm8, xmm71314 psrld xmm8, 71315 pslld xmm7, 251316 por xmm7, xmm81317 paddd xmm0, xmmword ptr [rsp+0xE0]1318 paddd xmm1, xmmword ptr [rsp+0x20]1319 paddd xmm2, xmmword ptr [rsp+0x30]1320 paddd xmm3, xmmword ptr [rsp+0x70]1321 paddd xmm0, xmm51322 paddd xmm1, xmm61323 paddd xmm2, xmm71324 paddd xmm3, xmm41325 pxor xmm15, xmm01326 pxor xmm12, xmm11327 pxor xmm13, xmm21328 pxor xmm14, xmm31329 movdqa xmm8, xmmword ptr [ROT16+rip]1330 pshufb xmm15, xmm81331 pshufb xmm12, xmm81332 pshufb xmm13, xmm81333 pshufb xmm14, xmm81334 paddd xmm10, xmm151335 paddd xmm11, xmm121336 movdqa xmm8, xmmword ptr [rsp+0x100]1337 paddd xmm8, xmm131338 paddd xmm9, xmm141339 pxor xmm5, xmm101340 pxor xmm6, xmm111341 pxor xmm7, xmm81342 pxor xmm4, xmm91343 movdqa xmmword ptr [rsp+0x100], xmm81344 movdqa xmm8, xmm51345 psrld xmm8, 121346 pslld xmm5, 201347 por xmm5, xmm81348 movdqa xmm8, xmm61349 psrld xmm8, 121350 pslld xmm6, 201351 por xmm6, xmm81352 movdqa xmm8, xmm71353 psrld xmm8, 121354 pslld xmm7, 201355 por xmm7, xmm81356 movdqa xmm8, xmm41357 psrld xmm8, 121358 pslld xmm4, 201359 por xmm4, xmm81360 paddd xmm0, xmmword ptr [rsp+0xA0]1361 paddd xmm1, xmmword ptr [rsp+0xC0]1362 paddd xmm2, xmmword ptr [rsp+0x40]1363 paddd xmm3, xmmword ptr [rsp+0xD0]1364 paddd xmm0, xmm51365 paddd xmm1, xmm61366 paddd xmm2, xmm71367 paddd xmm3, xmm41368 pxor xmm15, xmm01369 pxor xmm12, xmm11370 pxor xmm13, xmm21371 pxor xmm14, xmm31372 movdqa xmm8, xmmword ptr [ROT8+rip]1373 pshufb xmm15, xmm81374 pshufb xmm12, xmm81375 pshufb xmm13, xmm81376 pshufb xmm14, xmm81377 paddd xmm10, xmm151378 paddd xmm11, xmm121379 movdqa xmm8, xmmword ptr [rsp+0x100]1380 paddd xmm8, xmm131381 paddd xmm9, xmm141382 pxor xmm5, xmm101383 pxor xmm6, xmm111384 pxor xmm7, xmm81385 pxor xmm4, xmm91386 pxor xmm0, xmm81387 pxor xmm1, xmm91388 pxor xmm2, xmm101389 pxor xmm3, xmm111390 movdqa xmm8, xmm51391 psrld xmm8, 71392 pslld xmm5, 251393 por xmm5, xmm81394 movdqa xmm8, xmm61395 psrld xmm8, 71396 pslld xmm6, 251397 por xmm6, xmm81398 movdqa xmm8, xmm71399 psrld xmm8, 71400 pslld xmm7, 251401 por xmm7, xmm81402 movdqa xmm8, xmm41403 psrld xmm8, 71404 pslld xmm4, 251405 por xmm4, xmm81406 pxor xmm4, xmm121407 pxor xmm5, xmm131408 pxor xmm6, xmm141409 pxor xmm7, xmm151410 mov eax, r13d1411 jne 9b1412 movdqa xmm9, xmm01413 punpckldq xmm0, xmm11414 punpckhdq xmm9, xmm11415 movdqa xmm11, xmm21416 punpckldq xmm2, xmm31417 punpckhdq xmm11, xmm31418 movdqa xmm1, xmm01419 punpcklqdq xmm0, xmm21420 punpckhqdq xmm1, xmm21421 movdqa xmm3, xmm91422 punpcklqdq xmm9, xmm111423 punpckhqdq xmm3, xmm111424 movdqu xmmword ptr [rbx], xmm01425 movdqu xmmword ptr [rbx+0x20], xmm11426 movdqu xmmword ptr [rbx+0x40], xmm91427 movdqu xmmword ptr [rbx+0x60], xmm31428 movdqa xmm9, xmm41429 punpckldq xmm4, xmm51430 punpckhdq xmm9, xmm51431 movdqa xmm11, xmm61432 punpckldq xmm6, xmm71433 punpckhdq xmm11, xmm71434 movdqa xmm5, xmm41435 punpcklqdq xmm4, xmm61436 punpckhqdq xmm5, xmm61437 movdqa xmm7, xmm91438 punpcklqdq xmm9, xmm111439 punpckhqdq xmm7, xmm111440 movdqu xmmword ptr [rbx+0x10], xmm41441 movdqu xmmword ptr [rbx+0x30], xmm51442 movdqu xmmword ptr [rbx+0x50], xmm91443 movdqu xmmword ptr [rbx+0x70], xmm71444 movdqa xmm1, xmmword ptr [rsp+0x110]1445 movdqa xmm0, xmm11446 paddd xmm1, xmmword ptr [rsp+0x150]1447 movdqa xmmword ptr [rsp+0x110], xmm11448 pxor xmm0, xmmword ptr [CMP_MSB_MASK+rip]1449 pxor xmm1, xmmword ptr [CMP_MSB_MASK+rip]1450 pcmpgtd xmm0, xmm11451 movdqa xmm1, xmmword ptr [rsp+0x120]1452 psubd xmm1, xmm01453 movdqa xmmword ptr [rsp+0x120], xmm11454 add rbx, 1281455 add rdi, 321456 sub rsi, 41457 cmp rsi, 41458 jnc 2b1459 test rsi, rsi1460 jnz 3f14614:1462 mov rsp, rbp1463 pop rbp1464 pop rbx1465 pop r121466 pop r131467 pop r141468 pop r151469 ret1470.p2align 514713:1472 test esi, 0x21473 je 3f1474 movups xmm0, xmmword ptr [rcx]1475 movups xmm1, xmmword ptr [rcx+0x10]1476 movaps xmm8, xmm01477 movaps xmm9, xmm11478 movd xmm13, dword ptr [rsp+0x110]1479 pinsrd xmm13, dword ptr [rsp+0x120], 11480 pinsrd xmm13, dword ptr [BLAKE3_BLOCK_LEN+rip], 21481 movaps xmmword ptr [rsp], xmm131482 movd xmm14, dword ptr [rsp+0x114]1483 pinsrd xmm14, dword ptr [rsp+0x124], 11484 pinsrd xmm14, dword ptr [BLAKE3_BLOCK_LEN+rip], 21485 movaps xmmword ptr [rsp+0x10], xmm141486 mov r8, qword ptr [rdi]1487 mov r9, qword ptr [rdi+0x8]1488 movzx eax, byte ptr [rbp+0x40]1489 or eax, r13d1490 xor edx, edx14912:1492 mov r14d, eax1493 or eax, r12d1494 add rdx, 641495 cmp rdx, r151496 cmovne eax, r14d1497 movaps xmm2, xmmword ptr [BLAKE3_IV+rip]1498 movaps xmm10, xmm21499 movups xmm4, xmmword ptr [r8+rdx-0x40]1500 movups xmm5, xmmword ptr [r8+rdx-0x30]1501 movaps xmm3, xmm41502 shufps xmm4, xmm5, 1361503 shufps xmm3, xmm5, 2211504 movaps xmm5, xmm31505 movups xmm6, xmmword ptr [r8+rdx-0x20]1506 movups xmm7, xmmword ptr [r8+rdx-0x10]1507 movaps xmm3, xmm61508 shufps xmm6, xmm7, 1361509 pshufd xmm6, xmm6, 0x931510 shufps xmm3, xmm7, 2211511 pshufd xmm7, xmm3, 0x931512 movups xmm12, xmmword ptr [r9+rdx-0x40]1513 movups xmm13, xmmword ptr [r9+rdx-0x30]1514 movaps xmm11, xmm121515 shufps xmm12, xmm13, 1361516 shufps xmm11, xmm13, 2211517 movaps xmm13, xmm111518 movups xmm14, xmmword ptr [r9+rdx-0x20]1519 movups xmm15, xmmword ptr [r9+rdx-0x10]1520 movaps xmm11, xmm141521 shufps xmm14, xmm15, 1361522 pshufd xmm14, xmm14, 0x931523 shufps xmm11, xmm15, 2211524 pshufd xmm15, xmm11, 0x931525 movaps xmm3, xmmword ptr [rsp]1526 movaps xmm11, xmmword ptr [rsp+0x10]1527 pinsrd xmm3, eax, 31528 pinsrd xmm11, eax, 31529 mov al, 715309:1531 paddd xmm0, xmm41532 paddd xmm8, xmm121533 movaps xmmword ptr [rsp+0x20], xmm41534 movaps xmmword ptr [rsp+0x30], xmm121535 paddd xmm0, xmm11536 paddd xmm8, xmm91537 pxor xmm3, xmm01538 pxor xmm11, xmm81539 movaps xmm12, xmmword ptr [ROT16+rip]1540 pshufb xmm3, xmm121541 pshufb xmm11, xmm121542 paddd xmm2, xmm31543 paddd xmm10, xmm111544 pxor xmm1, xmm21545 pxor xmm9, xmm101546 movdqa xmm4, xmm11547 pslld xmm1, 201548 psrld xmm4, 121549 por xmm1, xmm41550 movdqa xmm4, xmm91551 pslld xmm9, 201552 psrld xmm4, 121553 por xmm9, xmm41554 paddd xmm0, xmm51555 paddd xmm8, xmm131556 movaps xmmword ptr [rsp+0x40], xmm51557 movaps xmmword ptr [rsp+0x50], xmm131558 paddd xmm0, xmm11559 paddd xmm8, xmm91560 pxor xmm3, xmm01561 pxor xmm11, xmm81562 movaps xmm13, xmmword ptr [ROT8+rip]1563 pshufb xmm3, xmm131564 pshufb xmm11, xmm131565 paddd xmm2, xmm31566 paddd xmm10, xmm111567 pxor xmm1, xmm21568 pxor xmm9, xmm101569 movdqa xmm4, xmm11570 pslld xmm1, 251571 psrld xmm4, 71572 por xmm1, xmm41573 movdqa xmm4, xmm91574 pslld xmm9, 251575 psrld xmm4, 71576 por xmm9, xmm41577 pshufd xmm0, xmm0, 0x931578 pshufd xmm8, xmm8, 0x931579 pshufd xmm3, xmm3, 0x4E1580 pshufd xmm11, xmm11, 0x4E1581 pshufd xmm2, xmm2, 0x391582 pshufd xmm10, xmm10, 0x391583 paddd xmm0, xmm61584 paddd xmm8, xmm141585 paddd xmm0, xmm11586 paddd xmm8, xmm91587 pxor xmm3, xmm01588 pxor xmm11, xmm81589 pshufb xmm3, xmm121590 pshufb xmm11, xmm121591 paddd xmm2, xmm31592 paddd xmm10, xmm111593 pxor xmm1, xmm21594 pxor xmm9, xmm101595 movdqa xmm4, xmm11596 pslld xmm1, 201597 psrld xmm4, 121598 por xmm1, xmm41599 movdqa xmm4, xmm91600 pslld xmm9, 201601 psrld xmm4, 121602 por xmm9, xmm41603 paddd xmm0, xmm71604 paddd xmm8, xmm151605 paddd xmm0, xmm11606 paddd xmm8, xmm91607 pxor xmm3, xmm01608 pxor xmm11, xmm81609 pshufb xmm3, xmm131610 pshufb xmm11, xmm131611 paddd xmm2, xmm31612 paddd xmm10, xmm111613 pxor xmm1, xmm21614 pxor xmm9, xmm101615 movdqa xmm4, xmm11616 pslld xmm1, 251617 psrld xmm4, 71618 por xmm1, xmm41619 movdqa xmm4, xmm91620 pslld xmm9, 251621 psrld xmm4, 71622 por xmm9, xmm41623 pshufd xmm0, xmm0, 0x391624 pshufd xmm8, xmm8, 0x391625 pshufd xmm3, xmm3, 0x4E1626 pshufd xmm11, xmm11, 0x4E1627 pshufd xmm2, xmm2, 0x931628 pshufd xmm10, xmm10, 0x931629 dec al1630 je 9f1631 movdqa xmm12, xmmword ptr [rsp+0x20]1632 movdqa xmm5, xmmword ptr [rsp+0x40]1633 pshufd xmm13, xmm12, 0x0F1634 shufps xmm12, xmm5, 2141635 pshufd xmm4, xmm12, 0x391636 movdqa xmm12, xmm61637 shufps xmm12, xmm7, 2501638 pblendw xmm13, xmm12, 0xCC1639 movdqa xmm12, xmm71640 punpcklqdq xmm12, xmm51641 pblendw xmm12, xmm6, 0xC01642 pshufd xmm12, xmm12, 0x781643 punpckhdq xmm5, xmm71644 punpckldq xmm6, xmm51645 pshufd xmm7, xmm6, 0x1E1646 movdqa xmmword ptr [rsp+0x20], xmm131647 movdqa xmmword ptr [rsp+0x40], xmm121648 movdqa xmm5, xmmword ptr [rsp+0x30]1649 movdqa xmm13, xmmword ptr [rsp+0x50]1650 pshufd xmm6, xmm5, 0x0F1651 shufps xmm5, xmm13, 2141652 pshufd xmm12, xmm5, 0x391653 movdqa xmm5, xmm141654 shufps xmm5, xmm15, 2501655 pblendw xmm6, xmm5, 0xCC1656 movdqa xmm5, xmm151657 punpcklqdq xmm5, xmm131658 pblendw xmm5, xmm14, 0xC01659 pshufd xmm5, xmm5, 0x781660 punpckhdq xmm13, xmm151661 punpckldq xmm14, xmm131662 pshufd xmm15, xmm14, 0x1E1663 movdqa xmm13, xmm61664 movdqa xmm14, xmm51665 movdqa xmm5, xmmword ptr [rsp+0x20]1666 movdqa xmm6, xmmword ptr [rsp+0x40]1667 jmp 9b16689:1669 pxor xmm0, xmm21670 pxor xmm1, xmm31671 pxor xmm8, xmm101672 pxor xmm9, xmm111673 mov eax, r13d1674 cmp rdx, r151675 jne 2b1676 movups xmmword ptr [rbx], xmm01677 movups xmmword ptr [rbx+0x10], xmm11678 movups xmmword ptr [rbx+0x20], xmm81679 movups xmmword ptr [rbx+0x30], xmm91680 movdqa xmm0, xmmword ptr [rsp+0x130]1681 movdqa xmm1, xmmword ptr [rsp+0x110]1682 movdqa xmm2, xmmword ptr [rsp+0x120]1683 movdqu xmm3, xmmword ptr [rsp+0x118]1684 movdqu xmm4, xmmword ptr [rsp+0x128]1685 blendvps xmm1, xmm3, xmm01686 blendvps xmm2, xmm4, xmm01687 movdqa xmmword ptr [rsp+0x110], xmm11688 movdqa xmmword ptr [rsp+0x120], xmm21689 add rdi, 161690 add rbx, 641691 sub rsi, 216923:1693 test esi, 0x11694 je 4b1695 movups xmm0, xmmword ptr [rcx]1696 movups xmm1, xmmword ptr [rcx+0x10]1697 movd xmm13, dword ptr [rsp+0x110]1698 pinsrd xmm13, dword ptr [rsp+0x120], 11699 pinsrd xmm13, dword ptr [BLAKE3_BLOCK_LEN+rip], 21700 movaps xmm14, xmmword ptr [ROT8+rip]1701 movaps xmm15, xmmword ptr [ROT16+rip]1702 mov r8, qword ptr [rdi]1703 movzx eax, byte ptr [rbp+0x40]1704 or eax, r13d1705 xor edx, edx17062:1707 mov r14d, eax1708 or eax, r12d1709 add rdx, 641710 cmp rdx, r151711 cmovne eax, r14d1712 movaps xmm2, xmmword ptr [BLAKE3_IV+rip]1713 movaps xmm3, xmm131714 pinsrd xmm3, eax, 31715 movups xmm4, xmmword ptr [r8+rdx-0x40]1716 movups xmm5, xmmword ptr [r8+rdx-0x30]1717 movaps xmm8, xmm41718 shufps xmm4, xmm5, 1361719 shufps xmm8, xmm5, 2211720 movaps xmm5, xmm81721 movups xmm6, xmmword ptr [r8+rdx-0x20]1722 movups xmm7, xmmword ptr [r8+rdx-0x10]1723 movaps xmm8, xmm61724 shufps xmm6, xmm7, 1361725 pshufd xmm6, xmm6, 0x931726 shufps xmm8, xmm7, 2211727 pshufd xmm7, xmm8, 0x931728 mov al, 717299:1730 paddd xmm0, xmm41731 paddd xmm0, xmm11732 pxor xmm3, xmm01733 pshufb xmm3, xmm151734 paddd xmm2, xmm31735 pxor xmm1, xmm21736 movdqa xmm11, xmm11737 pslld xmm1, 201738 psrld xmm11, 121739 por xmm1, xmm111740 paddd xmm0, xmm51741 paddd xmm0, xmm11742 pxor xmm3, xmm01743 pshufb xmm3, xmm141744 paddd xmm2, xmm31745 pxor xmm1, xmm21746 movdqa xmm11, xmm11747 pslld xmm1, 251748 psrld xmm11, 71749 por xmm1, xmm111750 pshufd xmm0, xmm0, 0x931751 pshufd xmm3, xmm3, 0x4E1752 pshufd xmm2, xmm2, 0x391753 paddd xmm0, xmm61754 paddd xmm0, xmm11755 pxor xmm3, xmm01756 pshufb xmm3, xmm151757 paddd xmm2, xmm31758 pxor xmm1, xmm21759 movdqa xmm11, xmm11760 pslld xmm1, 201761 psrld xmm11, 121762 por xmm1, xmm111763 paddd xmm0, xmm71764 paddd xmm0, xmm11765 pxor xmm3, xmm01766 pshufb xmm3, xmm141767 paddd xmm2, xmm31768 pxor xmm1, xmm21769 movdqa xmm11, xmm11770 pslld xmm1, 251771 psrld xmm11, 71772 por xmm1, xmm111773 pshufd xmm0, xmm0, 0x391774 pshufd xmm3, xmm3, 0x4E1775 pshufd xmm2, xmm2, 0x931776 dec al1777 jz 9f1778 movdqa xmm8, xmm41779 shufps xmm8, xmm5, 2141780 pshufd xmm9, xmm4, 0x0F1781 pshufd xmm4, xmm8, 0x391782 movdqa xmm8, xmm61783 shufps xmm8, xmm7, 2501784 pblendw xmm9, xmm8, 0xCC1785 movdqa xmm8, xmm71786 punpcklqdq xmm8, xmm51787 pblendw xmm8, xmm6, 0xC01788 pshufd xmm8, xmm8, 0x781789 punpckhdq xmm5, xmm71790 punpckldq xmm6, xmm51791 pshufd xmm7, xmm6, 0x1E1792 movdqa xmm5, xmm91793 movdqa xmm6, xmm81794 jmp 9b17959:1796 pxor xmm0, xmm21797 pxor xmm1, xmm31798 mov eax, r13d1799 cmp rdx, r151800 jne 2b1801 movups xmmword ptr [rbx], xmm01802 movups xmmword ptr [rbx+0x10], xmm11803 jmp 4b1804 1805.p2align 61806blake3_compress_in_place_sse41:1807_blake3_compress_in_place_sse41:1808 _CET_ENDBR1809 movups xmm0, xmmword ptr [rdi]1810 movups xmm1, xmmword ptr [rdi+0x10]1811 movaps xmm2, xmmword ptr [BLAKE3_IV+rip]1812 shl r8, 321813 add rdx, r81814 movq xmm3, rcx1815 movq xmm4, rdx1816 punpcklqdq xmm3, xmm41817 movups xmm4, xmmword ptr [rsi]1818 movups xmm5, xmmword ptr [rsi+0x10]1819 movaps xmm8, xmm41820 shufps xmm4, xmm5, 1361821 shufps xmm8, xmm5, 2211822 movaps xmm5, xmm81823 movups xmm6, xmmword ptr [rsi+0x20]1824 movups xmm7, xmmword ptr [rsi+0x30]1825 movaps xmm8, xmm61826 shufps xmm6, xmm7, 1361827 pshufd xmm6, xmm6, 0x931828 shufps xmm8, xmm7, 2211829 pshufd xmm7, xmm8, 0x931830 movaps xmm14, xmmword ptr [ROT8+rip]1831 movaps xmm15, xmmword ptr [ROT16+rip]1832 mov al, 718339:1834 paddd xmm0, xmm41835 paddd xmm0, xmm11836 pxor xmm3, xmm01837 pshufb xmm3, xmm151838 paddd xmm2, xmm31839 pxor xmm1, xmm21840 movdqa xmm11, xmm11841 pslld xmm1, 201842 psrld xmm11, 121843 por xmm1, xmm111844 paddd xmm0, xmm51845 paddd xmm0, xmm11846 pxor xmm3, xmm01847 pshufb xmm3, xmm141848 paddd xmm2, xmm31849 pxor xmm1, xmm21850 movdqa xmm11, xmm11851 pslld xmm1, 251852 psrld xmm11, 71853 por xmm1, xmm111854 pshufd xmm0, xmm0, 0x931855 pshufd xmm3, xmm3, 0x4E1856 pshufd xmm2, xmm2, 0x391857 paddd xmm0, xmm61858 paddd xmm0, xmm11859 pxor xmm3, xmm01860 pshufb xmm3, xmm151861 paddd xmm2, xmm31862 pxor xmm1, xmm21863 movdqa xmm11, xmm11864 pslld xmm1, 201865 psrld xmm11, 121866 por xmm1, xmm111867 paddd xmm0, xmm71868 paddd xmm0, xmm11869 pxor xmm3, xmm01870 pshufb xmm3, xmm141871 paddd xmm2, xmm31872 pxor xmm1, xmm21873 movdqa xmm11, xmm11874 pslld xmm1, 251875 psrld xmm11, 71876 por xmm1, xmm111877 pshufd xmm0, xmm0, 0x391878 pshufd xmm3, xmm3, 0x4E1879 pshufd xmm2, xmm2, 0x931880 dec al1881 jz 9f1882 movdqa xmm8, xmm41883 shufps xmm8, xmm5, 2141884 pshufd xmm9, xmm4, 0x0F1885 pshufd xmm4, xmm8, 0x391886 movdqa xmm8, xmm61887 shufps xmm8, xmm7, 2501888 pblendw xmm9, xmm8, 0xCC1889 movdqa xmm8, xmm71890 punpcklqdq xmm8, xmm51891 pblendw xmm8, xmm6, 0xC01892 pshufd xmm8, xmm8, 0x781893 punpckhdq xmm5, xmm71894 punpckldq xmm6, xmm51895 pshufd xmm7, xmm6, 0x1E1896 movdqa xmm5, xmm91897 movdqa xmm6, xmm81898 jmp 9b18999:1900 pxor xmm0, xmm21901 pxor xmm1, xmm31902 movups xmmword ptr [rdi], xmm01903 movups xmmword ptr [rdi+0x10], xmm11904 ret1905 1906.p2align 61907blake3_compress_xof_sse41:1908_blake3_compress_xof_sse41:1909 _CET_ENDBR1910 movups xmm0, xmmword ptr [rdi]1911 movups xmm1, xmmword ptr [rdi+0x10]1912 movaps xmm2, xmmword ptr [BLAKE3_IV+rip]1913 movzx eax, r8b1914 movzx edx, dl1915 shl rax, 321916 add rdx, rax1917 movq xmm3, rcx1918 movq xmm4, rdx1919 punpcklqdq xmm3, xmm41920 movups xmm4, xmmword ptr [rsi]1921 movups xmm5, xmmword ptr [rsi+0x10]1922 movaps xmm8, xmm41923 shufps xmm4, xmm5, 1361924 shufps xmm8, xmm5, 2211925 movaps xmm5, xmm81926 movups xmm6, xmmword ptr [rsi+0x20]1927 movups xmm7, xmmword ptr [rsi+0x30]1928 movaps xmm8, xmm61929 shufps xmm6, xmm7, 1361930 pshufd xmm6, xmm6, 0x931931 shufps xmm8, xmm7, 2211932 pshufd xmm7, xmm8, 0x931933 movaps xmm14, xmmword ptr [ROT8+rip]1934 movaps xmm15, xmmword ptr [ROT16+rip]1935 mov al, 719369:1937 paddd xmm0, xmm41938 paddd xmm0, xmm11939 pxor xmm3, xmm01940 pshufb xmm3, xmm151941 paddd xmm2, xmm31942 pxor xmm1, xmm21943 movdqa xmm11, xmm11944 pslld xmm1, 201945 psrld xmm11, 121946 por xmm1, xmm111947 paddd xmm0, xmm51948 paddd xmm0, xmm11949 pxor xmm3, xmm01950 pshufb xmm3, xmm141951 paddd xmm2, xmm31952 pxor xmm1, xmm21953 movdqa xmm11, xmm11954 pslld xmm1, 251955 psrld xmm11, 71956 por xmm1, xmm111957 pshufd xmm0, xmm0, 0x931958 pshufd xmm3, xmm3, 0x4E1959 pshufd xmm2, xmm2, 0x391960 paddd xmm0, xmm61961 paddd xmm0, xmm11962 pxor xmm3, xmm01963 pshufb xmm3, xmm151964 paddd xmm2, xmm31965 pxor xmm1, xmm21966 movdqa xmm11, xmm11967 pslld xmm1, 201968 psrld xmm11, 121969 por xmm1, xmm111970 paddd xmm0, xmm71971 paddd xmm0, xmm11972 pxor xmm3, xmm01973 pshufb xmm3, xmm141974 paddd xmm2, xmm31975 pxor xmm1, xmm21976 movdqa xmm11, xmm11977 pslld xmm1, 251978 psrld xmm11, 71979 por xmm1, xmm111980 pshufd xmm0, xmm0, 0x391981 pshufd xmm3, xmm3, 0x4E1982 pshufd xmm2, xmm2, 0x931983 dec al1984 jz 9f1985 movdqa xmm8, xmm41986 shufps xmm8, xmm5, 2141987 pshufd xmm9, xmm4, 0x0F1988 pshufd xmm4, xmm8, 0x391989 movdqa xmm8, xmm61990 shufps xmm8, xmm7, 2501991 pblendw xmm9, xmm8, 0xCC1992 movdqa xmm8, xmm71993 punpcklqdq xmm8, xmm51994 pblendw xmm8, xmm6, 0xC01995 pshufd xmm8, xmm8, 0x781996 punpckhdq xmm5, xmm71997 punpckldq xmm6, xmm51998 pshufd xmm7, xmm6, 0x1E1999 movdqa xmm5, xmm92000 movdqa xmm6, xmm82001 jmp 9b20029:2003 movdqu xmm4, xmmword ptr [rdi]2004 movdqu xmm5, xmmword ptr [rdi+0x10]2005 pxor xmm0, xmm22006 pxor xmm1, xmm32007 pxor xmm2, xmm42008 pxor xmm3, xmm52009 movups xmmword ptr [r9], xmm02010 movups xmmword ptr [r9+0x10], xmm12011 movups xmmword ptr [r9+0x20], xmm22012 movups xmmword ptr [r9+0x30], xmm32013 ret2014 2015 2016#ifdef __APPLE__2017.static_data2018#else2019.section .rodata2020#endif2021.p2align 62022BLAKE3_IV:2023 .long 0x6A09E667, 0xBB67AE852024 .long 0x3C6EF372, 0xA54FF53A2025ROT16:2026 .byte 2, 3, 0, 1, 6, 7, 4, 5, 10, 11, 8, 9, 14, 15, 12, 132027ROT8:2028 .byte 1, 2, 3, 0, 5, 6, 7, 4, 9, 10, 11, 8, 13, 14, 15, 122029ADD0: 2030 .long 0, 1, 2, 32031ADD1:2032 .long 4, 4, 4, 42033BLAKE3_IV_0:2034 .long 0x6A09E667, 0x6A09E667, 0x6A09E667, 0x6A09E6672035BLAKE3_IV_1:2036 .long 0xBB67AE85, 0xBB67AE85, 0xBB67AE85, 0xBB67AE852037BLAKE3_IV_2:2038 .long 0x3C6EF372, 0x3C6EF372, 0x3C6EF372, 0x3C6EF3722039BLAKE3_IV_3:2040 .long 0xA54FF53A, 0xA54FF53A, 0xA54FF53A, 0xA54FF53A2041BLAKE3_BLOCK_LEN:2042 .long 64, 64, 64, 642043CMP_MSB_MASK:2044 .long 0x80000000, 0x80000000, 0x80000000, 0x800000002045 2046#endif2047