1820 lines · plain
1#include "llvm_blake3_prefix.h"2 3.intel_syntax noprefix4.global _blake3_hash_many_avx25.global blake3_hash_many_avx26.section .text7 .p2align 68_blake3_hash_many_avx2:9blake3_hash_many_avx2:10 push r1511 push r1412 push r1313 push r1214 push rsi15 push rdi16 push rbx17 push rbp18 mov rbp, rsp19 sub rsp, 88020 and rsp, 0xFFFFFFFFFFFFFFC021 vmovdqa xmmword ptr [rsp+0x2D0], xmm622 vmovdqa xmmword ptr [rsp+0x2E0], xmm723 vmovdqa xmmword ptr [rsp+0x2F0], xmm824 vmovdqa xmmword ptr [rsp+0x300], xmm925 vmovdqa xmmword ptr [rsp+0x310], xmm1026 vmovdqa xmmword ptr [rsp+0x320], xmm1127 vmovdqa xmmword ptr [rsp+0x330], xmm1228 vmovdqa xmmword ptr [rsp+0x340], xmm1329 vmovdqa xmmword ptr [rsp+0x350], xmm1430 vmovdqa xmmword ptr [rsp+0x360], xmm1531 mov rdi, rcx32 mov rsi, rdx33 mov rdx, r834 mov rcx, r935 mov r8, qword ptr [rbp+0x68]36 movzx r9, byte ptr [rbp+0x70]37 neg r9d38 vmovd xmm0, r9d39 vpbroadcastd ymm0, xmm040 vmovdqa ymmword ptr [rsp+0x260], ymm041 vpand ymm1, ymm0, ymmword ptr [ADD0+rip]42 vpand ymm2, ymm0, ymmword ptr [ADD1+rip]43 vmovdqa ymmword ptr [rsp+0x2A0], ymm244 vmovd xmm2, r8d45 vpbroadcastd ymm2, xmm246 vpaddd ymm2, ymm2, ymm147 vmovdqa ymmword ptr [rsp+0x220], ymm248 vpxor ymm1, ymm1, ymmword ptr [CMP_MSB_MASK+rip]49 vpxor ymm2, ymm2, ymmword ptr [CMP_MSB_MASK+rip]50 vpcmpgtd ymm2, ymm1, ymm251 shr r8, 3252 vmovd xmm3, r8d53 vpbroadcastd ymm3, xmm354 vpsubd ymm3, ymm3, ymm255 vmovdqa ymmword ptr [rsp+0x240], ymm356 shl rdx, 657 mov qword ptr [rsp+0x2C0], rdx58 cmp rsi, 859 jc 3f602:61 vpbroadcastd ymm0, dword ptr [rcx]62 vpbroadcastd ymm1, dword ptr [rcx+0x4]63 vpbroadcastd ymm2, dword ptr [rcx+0x8]64 vpbroadcastd ymm3, dword ptr [rcx+0xC]65 vpbroadcastd ymm4, dword ptr [rcx+0x10]66 vpbroadcastd ymm5, dword ptr [rcx+0x14]67 vpbroadcastd ymm6, dword ptr [rcx+0x18]68 vpbroadcastd ymm7, dword ptr [rcx+0x1C]69 mov r8, qword ptr [rdi]70 mov r9, qword ptr [rdi+0x8]71 mov r10, qword ptr [rdi+0x10]72 mov r11, qword ptr [rdi+0x18]73 mov r12, qword ptr [rdi+0x20]74 mov r13, qword ptr [rdi+0x28]75 mov r14, qword ptr [rdi+0x30]76 mov r15, qword ptr [rdi+0x38]77 movzx eax, byte ptr [rbp+0x78]78 movzx ebx, byte ptr [rbp+0x80]79 or eax, ebx80 xor edx, edx81.p2align 5829:83 movzx ebx, byte ptr [rbp+0x88]84 or ebx, eax85 add rdx, 6486 cmp rdx, qword ptr [rsp+0x2C0]87 cmove eax, ebx88 mov dword ptr [rsp+0x200], eax89 vmovups xmm8, xmmword ptr [r8+rdx-0x40]90 vinsertf128 ymm8, ymm8, xmmword ptr [r12+rdx-0x40], 0x0191 vmovups xmm9, xmmword ptr [r9+rdx-0x40]92 vinsertf128 ymm9, ymm9, xmmword ptr [r13+rdx-0x40], 0x0193 vunpcklpd ymm12, ymm8, ymm994 vunpckhpd ymm13, ymm8, ymm995 vmovups xmm10, xmmword ptr [r10+rdx-0x40]96 vinsertf128 ymm10, ymm10, xmmword ptr [r14+rdx-0x40], 0x0197 vmovups xmm11, xmmword ptr [r11+rdx-0x40]98 vinsertf128 ymm11, ymm11, xmmword ptr [r15+rdx-0x40], 0x0199 vunpcklpd ymm14, ymm10, ymm11100 vunpckhpd ymm15, ymm10, ymm11101 vshufps ymm8, ymm12, ymm14, 136102 vmovaps ymmword ptr [rsp], ymm8103 vshufps ymm9, ymm12, ymm14, 221104 vmovaps ymmword ptr [rsp+0x20], ymm9105 vshufps ymm10, ymm13, ymm15, 136106 vmovaps ymmword ptr [rsp+0x40], ymm10107 vshufps ymm11, ymm13, ymm15, 221108 vmovaps ymmword ptr [rsp+0x60], ymm11109 vmovups xmm8, xmmword ptr [r8+rdx-0x30]110 vinsertf128 ymm8, ymm8, xmmword ptr [r12+rdx-0x30], 0x01111 vmovups xmm9, xmmword ptr [r9+rdx-0x30]112 vinsertf128 ymm9, ymm9, xmmword ptr [r13+rdx-0x30], 0x01113 vunpcklpd ymm12, ymm8, ymm9114 vunpckhpd ymm13, ymm8, ymm9115 vmovups xmm10, xmmword ptr [r10+rdx-0x30]116 vinsertf128 ymm10, ymm10, xmmword ptr [r14+rdx-0x30], 0x01117 vmovups xmm11, xmmword ptr [r11+rdx-0x30]118 vinsertf128 ymm11, ymm11, xmmword ptr [r15+rdx-0x30], 0x01119 vunpcklpd ymm14, ymm10, ymm11120 vunpckhpd ymm15, ymm10, ymm11121 vshufps ymm8, ymm12, ymm14, 136122 vmovaps ymmword ptr [rsp+0x80], ymm8123 vshufps ymm9, ymm12, ymm14, 221124 vmovaps ymmword ptr [rsp+0xA0], ymm9125 vshufps ymm10, ymm13, ymm15, 136126 vmovaps ymmword ptr [rsp+0xC0], ymm10127 vshufps ymm11, ymm13, ymm15, 221128 vmovaps ymmword ptr [rsp+0xE0], ymm11129 vmovups xmm8, xmmword ptr [r8+rdx-0x20]130 vinsertf128 ymm8, ymm8, xmmword ptr [r12+rdx-0x20], 0x01131 vmovups xmm9, xmmword ptr [r9+rdx-0x20]132 vinsertf128 ymm9, ymm9, xmmword ptr [r13+rdx-0x20], 0x01133 vunpcklpd ymm12, ymm8, ymm9134 vunpckhpd ymm13, ymm8, ymm9135 vmovups xmm10, xmmword ptr [r10+rdx-0x20]136 vinsertf128 ymm10, ymm10, xmmword ptr [r14+rdx-0x20], 0x01137 vmovups xmm11, xmmword ptr [r11+rdx-0x20]138 vinsertf128 ymm11, ymm11, xmmword ptr [r15+rdx-0x20], 0x01139 vunpcklpd ymm14, ymm10, ymm11140 vunpckhpd ymm15, ymm10, ymm11141 vshufps ymm8, ymm12, ymm14, 136142 vmovaps ymmword ptr [rsp+0x100], ymm8143 vshufps ymm9, ymm12, ymm14, 221144 vmovaps ymmword ptr [rsp+0x120], ymm9145 vshufps ymm10, ymm13, ymm15, 136146 vmovaps ymmword ptr [rsp+0x140], ymm10147 vshufps ymm11, ymm13, ymm15, 221148 vmovaps ymmword ptr [rsp+0x160], ymm11149 vmovups xmm8, xmmword ptr [r8+rdx-0x10]150 vinsertf128 ymm8, ymm8, xmmword ptr [r12+rdx-0x10], 0x01151 vmovups xmm9, xmmword ptr [r9+rdx-0x10]152 vinsertf128 ymm9, ymm9, xmmword ptr [r13+rdx-0x10], 0x01153 vunpcklpd ymm12, ymm8, ymm9154 vunpckhpd ymm13, ymm8, ymm9155 vmovups xmm10, xmmword ptr [r10+rdx-0x10]156 vinsertf128 ymm10, ymm10, xmmword ptr [r14+rdx-0x10], 0x01157 vmovups xmm11, xmmword ptr [r11+rdx-0x10]158 vinsertf128 ymm11, ymm11, xmmword ptr [r15+rdx-0x10], 0x01159 vunpcklpd ymm14, ymm10, ymm11160 vunpckhpd ymm15, ymm10, ymm11161 vshufps ymm8, ymm12, ymm14, 136162 vmovaps ymmword ptr [rsp+0x180], ymm8163 vshufps ymm9, ymm12, ymm14, 221164 vmovaps ymmword ptr [rsp+0x1A0], ymm9165 vshufps ymm10, ymm13, ymm15, 136166 vmovaps ymmword ptr [rsp+0x1C0], ymm10167 vshufps ymm11, ymm13, ymm15, 221168 vmovaps ymmword ptr [rsp+0x1E0], ymm11169 vpbroadcastd ymm15, dword ptr [rsp+0x200]170 prefetcht0 [r8+rdx+0x80]171 prefetcht0 [r12+rdx+0x80]172 prefetcht0 [r9+rdx+0x80]173 prefetcht0 [r13+rdx+0x80]174 prefetcht0 [r10+rdx+0x80]175 prefetcht0 [r14+rdx+0x80]176 prefetcht0 [r11+rdx+0x80]177 prefetcht0 [r15+rdx+0x80]178 vpaddd ymm0, ymm0, ymmword ptr [rsp]179 vpaddd ymm1, ymm1, ymmword ptr [rsp+0x40]180 vpaddd ymm2, ymm2, ymmword ptr [rsp+0x80]181 vpaddd ymm3, ymm3, ymmword ptr [rsp+0xC0]182 vpaddd ymm0, ymm0, ymm4183 vpaddd ymm1, ymm1, ymm5184 vpaddd ymm2, ymm2, ymm6185 vpaddd ymm3, ymm3, ymm7186 vpxor ymm12, ymm0, ymmword ptr [rsp+0x220]187 vpxor ymm13, ymm1, ymmword ptr [rsp+0x240]188 vpxor ymm14, ymm2, ymmword ptr [BLAKE3_BLOCK_LEN+rip]189 vpxor ymm15, ymm3, ymm15190 vbroadcasti128 ymm8, xmmword ptr [ROT16+rip]191 vpshufb ymm12, ymm12, ymm8192 vpshufb ymm13, ymm13, ymm8193 vpshufb ymm14, ymm14, ymm8194 vpshufb ymm15, ymm15, ymm8195 vpaddd ymm8, ymm12, ymmword ptr [BLAKE3_IV_0+rip]196 vpaddd ymm9, ymm13, ymmword ptr [BLAKE3_IV_1+rip]197 vpaddd ymm10, ymm14, ymmword ptr [BLAKE3_IV_2+rip]198 vpaddd ymm11, ymm15, ymmword ptr [BLAKE3_IV_3+rip]199 vpxor ymm4, ymm4, ymm8200 vpxor ymm5, ymm5, ymm9201 vpxor ymm6, ymm6, ymm10202 vpxor ymm7, ymm7, ymm11203 vmovdqa ymmword ptr [rsp+0x200], ymm8204 vpsrld ymm8, ymm4, 12205 vpslld ymm4, ymm4, 20206 vpor ymm4, ymm4, ymm8207 vpsrld ymm8, ymm5, 12208 vpslld ymm5, ymm5, 20209 vpor ymm5, ymm5, ymm8210 vpsrld ymm8, ymm6, 12211 vpslld ymm6, ymm6, 20212 vpor ymm6, ymm6, ymm8213 vpsrld ymm8, ymm7, 12214 vpslld ymm7, ymm7, 20215 vpor ymm7, ymm7, ymm8216 vpaddd ymm0, ymm0, ymmword ptr [rsp+0x20]217 vpaddd ymm1, ymm1, ymmword ptr [rsp+0x60]218 vpaddd ymm2, ymm2, ymmword ptr [rsp+0xA0]219 vpaddd ymm3, ymm3, ymmword ptr [rsp+0xE0]220 vpaddd ymm0, ymm0, ymm4221 vpaddd ymm1, ymm1, ymm5222 vpaddd ymm2, ymm2, ymm6223 vpaddd ymm3, ymm3, ymm7224 vpxor ymm12, ymm12, ymm0225 vpxor ymm13, ymm13, ymm1226 vpxor ymm14, ymm14, ymm2227 vpxor ymm15, ymm15, ymm3228 vbroadcasti128 ymm8, xmmword ptr [ROT8+rip]229 vpshufb ymm12, ymm12, ymm8230 vpshufb ymm13, ymm13, ymm8231 vpshufb ymm14, ymm14, ymm8232 vpshufb ymm15, ymm15, ymm8233 vpaddd ymm8, ymm12, ymmword ptr [rsp+0x200]234 vpaddd ymm9, ymm9, ymm13235 vpaddd ymm10, ymm10, ymm14236 vpaddd ymm11, ymm11, ymm15237 vpxor ymm4, ymm4, ymm8238 vpxor ymm5, ymm5, ymm9239 vpxor ymm6, ymm6, ymm10240 vpxor ymm7, ymm7, ymm11241 vmovdqa ymmword ptr [rsp+0x200], ymm8242 vpsrld ymm8, ymm4, 7243 vpslld ymm4, ymm4, 25244 vpor ymm4, ymm4, ymm8245 vpsrld ymm8, ymm5, 7246 vpslld ymm5, ymm5, 25247 vpor ymm5, ymm5, ymm8248 vpsrld ymm8, ymm6, 7249 vpslld ymm6, ymm6, 25250 vpor ymm6, ymm6, ymm8251 vpsrld ymm8, ymm7, 7252 vpslld ymm7, ymm7, 25253 vpor ymm7, ymm7, ymm8254 vpaddd ymm0, ymm0, ymmword ptr [rsp+0x100]255 vpaddd ymm1, ymm1, ymmword ptr [rsp+0x140]256 vpaddd ymm2, ymm2, ymmword ptr [rsp+0x180]257 vpaddd ymm3, ymm3, ymmword ptr [rsp+0x1C0]258 vpaddd ymm0, ymm0, ymm5259 vpaddd ymm1, ymm1, ymm6260 vpaddd ymm2, ymm2, ymm7261 vpaddd ymm3, ymm3, ymm4262 vpxor ymm15, ymm15, ymm0263 vpxor ymm12, ymm12, ymm1264 vpxor ymm13, ymm13, ymm2265 vpxor ymm14, ymm14, ymm3266 vbroadcasti128 ymm8, xmmword ptr [ROT16+rip]267 vpshufb ymm15, ymm15, ymm8268 vpshufb ymm12, ymm12, ymm8269 vpshufb ymm13, ymm13, ymm8270 vpshufb ymm14, ymm14, ymm8271 vpaddd ymm10, ymm10, ymm15272 vpaddd ymm11, ymm11, ymm12273 vpaddd ymm8, ymm13, ymmword ptr [rsp+0x200]274 vpaddd ymm9, ymm9, ymm14275 vpxor ymm5, ymm5, ymm10276 vpxor ymm6, ymm6, ymm11277 vpxor ymm7, ymm7, ymm8278 vpxor ymm4, ymm4, ymm9279 vmovdqa ymmword ptr [rsp+0x200], ymm8280 vpsrld ymm8, ymm5, 12281 vpslld ymm5, ymm5, 20282 vpor ymm5, ymm5, ymm8283 vpsrld ymm8, ymm6, 12284 vpslld ymm6, ymm6, 20285 vpor ymm6, ymm6, ymm8286 vpsrld ymm8, ymm7, 12287 vpslld ymm7, ymm7, 20288 vpor ymm7, ymm7, ymm8289 vpsrld ymm8, ymm4, 12290 vpslld ymm4, ymm4, 20291 vpor ymm4, ymm4, ymm8292 vpaddd ymm0, ymm0, ymmword ptr [rsp+0x120]293 vpaddd ymm1, ymm1, ymmword ptr [rsp+0x160]294 vpaddd ymm2, ymm2, ymmword ptr [rsp+0x1A0]295 vpaddd ymm3, ymm3, ymmword ptr [rsp+0x1E0]296 vpaddd ymm0, ymm0, ymm5297 vpaddd ymm1, ymm1, ymm6298 vpaddd ymm2, ymm2, ymm7299 vpaddd ymm3, ymm3, ymm4300 vpxor ymm15, ymm15, ymm0301 vpxor ymm12, ymm12, ymm1302 vpxor ymm13, ymm13, ymm2303 vpxor ymm14, ymm14, ymm3304 vbroadcasti128 ymm8, xmmword ptr [ROT8+rip]305 vpshufb ymm15, ymm15, ymm8306 vpshufb ymm12, ymm12, ymm8307 vpshufb ymm13, ymm13, ymm8308 vpshufb ymm14, ymm14, ymm8309 vpaddd ymm10, ymm10, ymm15310 vpaddd ymm11, ymm11, ymm12311 vpaddd ymm8, ymm13, ymmword ptr [rsp+0x200]312 vpaddd ymm9, ymm9, ymm14313 vpxor ymm5, ymm5, ymm10314 vpxor ymm6, ymm6, ymm11315 vpxor ymm7, ymm7, ymm8316 vpxor ymm4, ymm4, ymm9317 vmovdqa ymmword ptr [rsp+0x200], ymm8318 vpsrld ymm8, ymm5, 7319 vpslld ymm5, ymm5, 25320 vpor ymm5, ymm5, ymm8321 vpsrld ymm8, ymm6, 7322 vpslld ymm6, ymm6, 25323 vpor ymm6, ymm6, ymm8324 vpsrld ymm8, ymm7, 7325 vpslld ymm7, ymm7, 25326 vpor ymm7, ymm7, ymm8327 vpsrld ymm8, ymm4, 7328 vpslld ymm4, ymm4, 25329 vpor ymm4, ymm4, ymm8330 vpaddd ymm0, ymm0, ymmword ptr [rsp+0x40]331 vpaddd ymm1, ymm1, ymmword ptr [rsp+0x60]332 vpaddd ymm2, ymm2, ymmword ptr [rsp+0xE0]333 vpaddd ymm3, ymm3, ymmword ptr [rsp+0x80]334 vpaddd ymm0, ymm0, ymm4335 vpaddd ymm1, ymm1, ymm5336 vpaddd ymm2, ymm2, ymm6337 vpaddd ymm3, ymm3, ymm7338 vpxor ymm12, ymm12, ymm0339 vpxor ymm13, ymm13, ymm1340 vpxor ymm14, ymm14, ymm2341 vpxor ymm15, ymm15, ymm3342 vbroadcasti128 ymm8, xmmword ptr [ROT16+rip]343 vpshufb ymm12, ymm12, ymm8344 vpshufb ymm13, ymm13, ymm8345 vpshufb ymm14, ymm14, ymm8346 vpshufb ymm15, ymm15, ymm8347 vpaddd ymm8, ymm12, ymmword ptr [rsp+0x200]348 vpaddd ymm9, ymm9, ymm13349 vpaddd ymm10, ymm10, ymm14350 vpaddd ymm11, ymm11, ymm15351 vpxor ymm4, ymm4, ymm8352 vpxor ymm5, ymm5, ymm9353 vpxor ymm6, ymm6, ymm10354 vpxor ymm7, ymm7, ymm11355 vmovdqa ymmword ptr [rsp+0x200], ymm8356 vpsrld ymm8, ymm4, 12357 vpslld ymm4, ymm4, 20358 vpor ymm4, ymm4, ymm8359 vpsrld ymm8, ymm5, 12360 vpslld ymm5, ymm5, 20361 vpor ymm5, ymm5, ymm8362 vpsrld ymm8, ymm6, 12363 vpslld ymm6, ymm6, 20364 vpor ymm6, ymm6, ymm8365 vpsrld ymm8, ymm7, 12366 vpslld ymm7, ymm7, 20367 vpor ymm7, ymm7, ymm8368 vpaddd ymm0, ymm0, ymmword ptr [rsp+0xC0]369 vpaddd ymm1, ymm1, ymmword ptr [rsp+0x140]370 vpaddd ymm2, ymm2, ymmword ptr [rsp]371 vpaddd ymm3, ymm3, ymmword ptr [rsp+0x1A0]372 vpaddd ymm0, ymm0, ymm4373 vpaddd ymm1, ymm1, ymm5374 vpaddd ymm2, ymm2, ymm6375 vpaddd ymm3, ymm3, ymm7376 vpxor ymm12, ymm12, ymm0377 vpxor ymm13, ymm13, ymm1378 vpxor ymm14, ymm14, ymm2379 vpxor ymm15, ymm15, ymm3380 vbroadcasti128 ymm8, xmmword ptr [ROT8+rip]381 vpshufb ymm12, ymm12, ymm8382 vpshufb ymm13, ymm13, ymm8383 vpshufb ymm14, ymm14, ymm8384 vpshufb ymm15, ymm15, ymm8385 vpaddd ymm8, ymm12, ymmword ptr [rsp+0x200]386 vpaddd ymm9, ymm9, ymm13387 vpaddd ymm10, ymm10, ymm14388 vpaddd ymm11, ymm11, ymm15389 vpxor ymm4, ymm4, ymm8390 vpxor ymm5, ymm5, ymm9391 vpxor ymm6, ymm6, ymm10392 vpxor ymm7, ymm7, ymm11393 vmovdqa ymmword ptr [rsp+0x200], ymm8394 vpsrld ymm8, ymm4, 7395 vpslld ymm4, ymm4, 25396 vpor ymm4, ymm4, ymm8397 vpsrld ymm8, ymm5, 7398 vpslld ymm5, ymm5, 25399 vpor ymm5, ymm5, ymm8400 vpsrld ymm8, ymm6, 7401 vpslld ymm6, ymm6, 25402 vpor ymm6, ymm6, ymm8403 vpsrld ymm8, ymm7, 7404 vpslld ymm7, ymm7, 25405 vpor ymm7, ymm7, ymm8406 vpaddd ymm0, ymm0, ymmword ptr [rsp+0x20]407 vpaddd ymm1, ymm1, ymmword ptr [rsp+0x180]408 vpaddd ymm2, ymm2, ymmword ptr [rsp+0x120]409 vpaddd ymm3, ymm3, ymmword ptr [rsp+0x1E0]410 vpaddd ymm0, ymm0, ymm5411 vpaddd ymm1, ymm1, ymm6412 vpaddd ymm2, ymm2, ymm7413 vpaddd ymm3, ymm3, ymm4414 vpxor ymm15, ymm15, ymm0415 vpxor ymm12, ymm12, ymm1416 vpxor ymm13, ymm13, ymm2417 vpxor ymm14, ymm14, ymm3418 vbroadcasti128 ymm8, xmmword ptr [ROT16+rip]419 vpshufb ymm15, ymm15, ymm8420 vpshufb ymm12, ymm12, ymm8421 vpshufb ymm13, ymm13, ymm8422 vpshufb ymm14, ymm14, ymm8423 vpaddd ymm10, ymm10, ymm15424 vpaddd ymm11, ymm11, ymm12425 vpaddd ymm8, ymm13, ymmword ptr [rsp+0x200]426 vpaddd ymm9, ymm9, ymm14427 vpxor ymm5, ymm5, ymm10428 vpxor ymm6, ymm6, ymm11429 vpxor ymm7, ymm7, ymm8430 vpxor ymm4, ymm4, ymm9431 vmovdqa ymmword ptr [rsp+0x200], ymm8432 vpsrld ymm8, ymm5, 12433 vpslld ymm5, ymm5, 20434 vpor ymm5, ymm5, ymm8435 vpsrld ymm8, ymm6, 12436 vpslld ymm6, ymm6, 20437 vpor ymm6, ymm6, ymm8438 vpsrld ymm8, ymm7, 12439 vpslld ymm7, ymm7, 20440 vpor ymm7, ymm7, ymm8441 vpsrld ymm8, ymm4, 12442 vpslld ymm4, ymm4, 20443 vpor ymm4, ymm4, ymm8444 vpaddd ymm0, ymm0, ymmword ptr [rsp+0x160]445 vpaddd ymm1, ymm1, ymmword ptr [rsp+0xA0]446 vpaddd ymm2, ymm2, ymmword ptr [rsp+0x1C0]447 vpaddd ymm3, ymm3, ymmword ptr [rsp+0x100]448 vpaddd ymm0, ymm0, ymm5449 vpaddd ymm1, ymm1, ymm6450 vpaddd ymm2, ymm2, ymm7451 vpaddd ymm3, ymm3, ymm4452 vpxor ymm15, ymm15, ymm0453 vpxor ymm12, ymm12, ymm1454 vpxor ymm13, ymm13, ymm2455 vpxor ymm14, ymm14, ymm3456 vbroadcasti128 ymm8, xmmword ptr [ROT8+rip]457 vpshufb ymm15, ymm15, ymm8458 vpshufb ymm12, ymm12, ymm8459 vpshufb ymm13, ymm13, ymm8460 vpshufb ymm14, ymm14, ymm8461 vpaddd ymm10, ymm10, ymm15462 vpaddd ymm11, ymm11, ymm12463 vpaddd ymm8, ymm13, ymmword ptr [rsp+0x200]464 vpaddd ymm9, ymm9, ymm14465 vpxor ymm5, ymm5, ymm10466 vpxor ymm6, ymm6, ymm11467 vpxor ymm7, ymm7, ymm8468 vpxor ymm4, ymm4, ymm9469 vmovdqa ymmword ptr [rsp+0x200], ymm8470 vpsrld ymm8, ymm5, 7471 vpslld ymm5, ymm5, 25472 vpor ymm5, ymm5, ymm8473 vpsrld ymm8, ymm6, 7474 vpslld ymm6, ymm6, 25475 vpor ymm6, ymm6, ymm8476 vpsrld ymm8, ymm7, 7477 vpslld ymm7, ymm7, 25478 vpor ymm7, ymm7, ymm8479 vpsrld ymm8, ymm4, 7480 vpslld ymm4, ymm4, 25481 vpor ymm4, ymm4, ymm8482 vpaddd ymm0, ymm0, ymmword ptr [rsp+0x60]483 vpaddd ymm1, ymm1, ymmword ptr [rsp+0x140]484 vpaddd ymm2, ymm2, ymmword ptr [rsp+0x1A0]485 vpaddd ymm3, ymm3, ymmword ptr [rsp+0xE0]486 vpaddd ymm0, ymm0, ymm4487 vpaddd ymm1, ymm1, ymm5488 vpaddd ymm2, ymm2, ymm6489 vpaddd ymm3, ymm3, ymm7490 vpxor ymm12, ymm12, ymm0491 vpxor ymm13, ymm13, ymm1492 vpxor ymm14, ymm14, ymm2493 vpxor ymm15, ymm15, ymm3494 vbroadcasti128 ymm8, xmmword ptr [ROT16+rip]495 vpshufb ymm12, ymm12, ymm8496 vpshufb ymm13, ymm13, ymm8497 vpshufb ymm14, ymm14, ymm8498 vpshufb ymm15, ymm15, ymm8499 vpaddd ymm8, ymm12, ymmword ptr [rsp+0x200]500 vpaddd ymm9, ymm9, ymm13501 vpaddd ymm10, ymm10, ymm14502 vpaddd ymm11, ymm11, ymm15503 vpxor ymm4, ymm4, ymm8504 vpxor ymm5, ymm5, ymm9505 vpxor ymm6, ymm6, ymm10506 vpxor ymm7, ymm7, ymm11507 vmovdqa ymmword ptr [rsp+0x200], ymm8508 vpsrld ymm8, ymm4, 12509 vpslld ymm4, ymm4, 20510 vpor ymm4, ymm4, ymm8511 vpsrld ymm8, ymm5, 12512 vpslld ymm5, ymm5, 20513 vpor ymm5, ymm5, ymm8514 vpsrld ymm8, ymm6, 12515 vpslld ymm6, ymm6, 20516 vpor ymm6, ymm6, ymm8517 vpsrld ymm8, ymm7, 12518 vpslld ymm7, ymm7, 20519 vpor ymm7, ymm7, ymm8520 vpaddd ymm0, ymm0, ymmword ptr [rsp+0x80]521 vpaddd ymm1, ymm1, ymmword ptr [rsp+0x180]522 vpaddd ymm2, ymm2, ymmword ptr [rsp+0x40]523 vpaddd ymm3, ymm3, ymmword ptr [rsp+0x1C0]524 vpaddd ymm0, ymm0, ymm4525 vpaddd ymm1, ymm1, ymm5526 vpaddd ymm2, ymm2, ymm6527 vpaddd ymm3, ymm3, ymm7528 vpxor ymm12, ymm12, ymm0529 vpxor ymm13, ymm13, ymm1530 vpxor ymm14, ymm14, ymm2531 vpxor ymm15, ymm15, ymm3532 vbroadcasti128 ymm8, xmmword ptr [ROT8+rip]533 vpshufb ymm12, ymm12, ymm8534 vpshufb ymm13, ymm13, ymm8535 vpshufb ymm14, ymm14, ymm8536 vpshufb ymm15, ymm15, ymm8537 vpaddd ymm8, ymm12, ymmword ptr [rsp+0x200]538 vpaddd ymm9, ymm9, ymm13539 vpaddd ymm10, ymm10, ymm14540 vpaddd ymm11, ymm11, ymm15541 vpxor ymm4, ymm4, ymm8542 vpxor ymm5, ymm5, ymm9543 vpxor ymm6, ymm6, ymm10544 vpxor ymm7, ymm7, ymm11545 vmovdqa ymmword ptr [rsp+0x200], ymm8546 vpsrld ymm8, ymm4, 7547 vpslld ymm4, ymm4, 25548 vpor ymm4, ymm4, ymm8549 vpsrld ymm8, ymm5, 7550 vpslld ymm5, ymm5, 25551 vpor ymm5, ymm5, ymm8552 vpsrld ymm8, ymm6, 7553 vpslld ymm6, ymm6, 25554 vpor ymm6, ymm6, ymm8555 vpsrld ymm8, ymm7, 7556 vpslld ymm7, ymm7, 25557 vpor ymm7, ymm7, ymm8558 vpaddd ymm0, ymm0, ymmword ptr [rsp+0xC0]559 vpaddd ymm1, ymm1, ymmword ptr [rsp+0x120]560 vpaddd ymm2, ymm2, ymmword ptr [rsp+0x160]561 vpaddd ymm3, ymm3, ymmword ptr [rsp+0x100]562 vpaddd ymm0, ymm0, ymm5563 vpaddd ymm1, ymm1, ymm6564 vpaddd ymm2, ymm2, ymm7565 vpaddd ymm3, ymm3, ymm4566 vpxor ymm15, ymm15, ymm0567 vpxor ymm12, ymm12, ymm1568 vpxor ymm13, ymm13, ymm2569 vpxor ymm14, ymm14, ymm3570 vbroadcasti128 ymm8, xmmword ptr [ROT16+rip]571 vpshufb ymm15, ymm15, ymm8572 vpshufb ymm12, ymm12, ymm8573 vpshufb ymm13, ymm13, ymm8574 vpshufb ymm14, ymm14, ymm8575 vpaddd ymm10, ymm10, ymm15576 vpaddd ymm11, ymm11, ymm12577 vpaddd ymm8, ymm13, ymmword ptr [rsp+0x200]578 vpaddd ymm9, ymm9, ymm14579 vpxor ymm5, ymm5, ymm10580 vpxor ymm6, ymm6, ymm11581 vpxor ymm7, ymm7, ymm8582 vpxor ymm4, ymm4, ymm9583 vmovdqa ymmword ptr [rsp+0x200], ymm8584 vpsrld ymm8, ymm5, 12585 vpslld ymm5, ymm5, 20586 vpor ymm5, ymm5, ymm8587 vpsrld ymm8, ymm6, 12588 vpslld ymm6, ymm6, 20589 vpor ymm6, ymm6, ymm8590 vpsrld ymm8, ymm7, 12591 vpslld ymm7, ymm7, 20592 vpor ymm7, ymm7, ymm8593 vpsrld ymm8, ymm4, 12594 vpslld ymm4, ymm4, 20595 vpor ymm4, ymm4, ymm8596 vpaddd ymm0, ymm0, ymmword ptr [rsp+0xA0]597 vpaddd ymm1, ymm1, ymmword ptr [rsp]598 vpaddd ymm2, ymm2, ymmword ptr [rsp+0x1E0]599 vpaddd ymm3, ymm3, ymmword ptr [rsp+0x20]600 vpaddd ymm0, ymm0, ymm5601 vpaddd ymm1, ymm1, ymm6602 vpaddd ymm2, ymm2, ymm7603 vpaddd ymm3, ymm3, ymm4604 vpxor ymm15, ymm15, ymm0605 vpxor ymm12, ymm12, ymm1606 vpxor ymm13, ymm13, ymm2607 vpxor ymm14, ymm14, ymm3608 vbroadcasti128 ymm8, xmmword ptr [ROT8+rip]609 vpshufb ymm15, ymm15, ymm8610 vpshufb ymm12, ymm12, ymm8611 vpshufb ymm13, ymm13, ymm8612 vpshufb ymm14, ymm14, ymm8613 vpaddd ymm10, ymm10, ymm15614 vpaddd ymm11, ymm11, ymm12615 vpaddd ymm8, ymm13, ymmword ptr [rsp+0x200]616 vpaddd ymm9, ymm9, ymm14617 vpxor ymm5, ymm5, ymm10618 vpxor ymm6, ymm6, ymm11619 vpxor ymm7, ymm7, ymm8620 vpxor ymm4, ymm4, ymm9621 vmovdqa ymmword ptr [rsp+0x200], ymm8622 vpsrld ymm8, ymm5, 7623 vpslld ymm5, ymm5, 25624 vpor ymm5, ymm5, ymm8625 vpsrld ymm8, ymm6, 7626 vpslld ymm6, ymm6, 25627 vpor ymm6, ymm6, ymm8628 vpsrld ymm8, ymm7, 7629 vpslld ymm7, ymm7, 25630 vpor ymm7, ymm7, ymm8631 vpsrld ymm8, ymm4, 7632 vpslld ymm4, ymm4, 25633 vpor ymm4, ymm4, ymm8634 vpaddd ymm0, ymm0, ymmword ptr [rsp+0x140]635 vpaddd ymm1, ymm1, ymmword ptr [rsp+0x180]636 vpaddd ymm2, ymm2, ymmword ptr [rsp+0x1C0]637 vpaddd ymm3, ymm3, ymmword ptr [rsp+0x1A0]638 vpaddd ymm0, ymm0, ymm4639 vpaddd ymm1, ymm1, ymm5640 vpaddd ymm2, ymm2, ymm6641 vpaddd ymm3, ymm3, ymm7642 vpxor ymm12, ymm12, ymm0643 vpxor ymm13, ymm13, ymm1644 vpxor ymm14, ymm14, ymm2645 vpxor ymm15, ymm15, ymm3646 vbroadcasti128 ymm8, xmmword ptr [ROT16+rip]647 vpshufb ymm12, ymm12, ymm8648 vpshufb ymm13, ymm13, ymm8649 vpshufb ymm14, ymm14, ymm8650 vpshufb ymm15, ymm15, ymm8651 vpaddd ymm8, ymm12, ymmword ptr [rsp+0x200]652 vpaddd ymm9, ymm9, ymm13653 vpaddd ymm10, ymm10, ymm14654 vpaddd ymm11, ymm11, ymm15655 vpxor ymm4, ymm4, ymm8656 vpxor ymm5, ymm5, ymm9657 vpxor ymm6, ymm6, ymm10658 vpxor ymm7, ymm7, ymm11659 vmovdqa ymmword ptr [rsp+0x200], ymm8660 vpsrld ymm8, ymm4, 12661 vpslld ymm4, ymm4, 20662 vpor ymm4, ymm4, ymm8663 vpsrld ymm8, ymm5, 12664 vpslld ymm5, ymm5, 20665 vpor ymm5, ymm5, ymm8666 vpsrld ymm8, ymm6, 12667 vpslld ymm6, ymm6, 20668 vpor ymm6, ymm6, ymm8669 vpsrld ymm8, ymm7, 12670 vpslld ymm7, ymm7, 20671 vpor ymm7, ymm7, ymm8672 vpaddd ymm0, ymm0, ymmword ptr [rsp+0xE0]673 vpaddd ymm1, ymm1, ymmword ptr [rsp+0x120]674 vpaddd ymm2, ymm2, ymmword ptr [rsp+0x60]675 vpaddd ymm3, ymm3, ymmword ptr [rsp+0x1E0]676 vpaddd ymm0, ymm0, ymm4677 vpaddd ymm1, ymm1, ymm5678 vpaddd ymm2, ymm2, ymm6679 vpaddd ymm3, ymm3, ymm7680 vpxor ymm12, ymm12, ymm0681 vpxor ymm13, ymm13, ymm1682 vpxor ymm14, ymm14, ymm2683 vpxor ymm15, ymm15, ymm3684 vbroadcasti128 ymm8, xmmword ptr [ROT8+rip]685 vpshufb ymm12, ymm12, ymm8686 vpshufb ymm13, ymm13, ymm8687 vpshufb ymm14, ymm14, ymm8688 vpshufb ymm15, ymm15, ymm8689 vpaddd ymm8, ymm12, ymmword ptr [rsp+0x200]690 vpaddd ymm9, ymm9, ymm13691 vpaddd ymm10, ymm10, ymm14692 vpaddd ymm11, ymm11, ymm15693 vpxor ymm4, ymm4, ymm8694 vpxor ymm5, ymm5, ymm9695 vpxor ymm6, ymm6, ymm10696 vpxor ymm7, ymm7, ymm11697 vmovdqa ymmword ptr [rsp+0x200], ymm8698 vpsrld ymm8, ymm4, 7699 vpslld ymm4, ymm4, 25700 vpor ymm4, ymm4, ymm8701 vpsrld ymm8, ymm5, 7702 vpslld ymm5, ymm5, 25703 vpor ymm5, ymm5, ymm8704 vpsrld ymm8, ymm6, 7705 vpslld ymm6, ymm6, 25706 vpor ymm6, ymm6, ymm8707 vpsrld ymm8, ymm7, 7708 vpslld ymm7, ymm7, 25709 vpor ymm7, ymm7, ymm8710 vpaddd ymm0, ymm0, ymmword ptr [rsp+0x80]711 vpaddd ymm1, ymm1, ymmword ptr [rsp+0x160]712 vpaddd ymm2, ymm2, ymmword ptr [rsp+0xA0]713 vpaddd ymm3, ymm3, ymmword ptr [rsp+0x20]714 vpaddd ymm0, ymm0, ymm5715 vpaddd ymm1, ymm1, ymm6716 vpaddd ymm2, ymm2, ymm7717 vpaddd ymm3, ymm3, ymm4718 vpxor ymm15, ymm15, ymm0719 vpxor ymm12, ymm12, ymm1720 vpxor ymm13, ymm13, ymm2721 vpxor ymm14, ymm14, ymm3722 vbroadcasti128 ymm8, xmmword ptr [ROT16+rip]723 vpshufb ymm15, ymm15, ymm8724 vpshufb ymm12, ymm12, ymm8725 vpshufb ymm13, ymm13, ymm8726 vpshufb ymm14, ymm14, ymm8727 vpaddd ymm10, ymm10, ymm15728 vpaddd ymm11, ymm11, ymm12729 vpaddd ymm8, ymm13, ymmword ptr [rsp+0x200]730 vpaddd ymm9, ymm9, ymm14731 vpxor ymm5, ymm5, ymm10732 vpxor ymm6, ymm6, ymm11733 vpxor ymm7, ymm7, ymm8734 vpxor ymm4, ymm4, ymm9735 vmovdqa ymmword ptr [rsp+0x200], ymm8736 vpsrld ymm8, ymm5, 12737 vpslld ymm5, ymm5, 20738 vpor ymm5, ymm5, ymm8739 vpsrld ymm8, ymm6, 12740 vpslld ymm6, ymm6, 20741 vpor ymm6, ymm6, ymm8742 vpsrld ymm8, ymm7, 12743 vpslld ymm7, ymm7, 20744 vpor ymm7, ymm7, ymm8745 vpsrld ymm8, ymm4, 12746 vpslld ymm4, ymm4, 20747 vpor ymm4, ymm4, ymm8748 vpaddd ymm0, ymm0, ymmword ptr [rsp]749 vpaddd ymm1, ymm1, ymmword ptr [rsp+0x40]750 vpaddd ymm2, ymm2, ymmword ptr [rsp+0x100]751 vpaddd ymm3, ymm3, ymmword ptr [rsp+0xC0]752 vpaddd ymm0, ymm0, ymm5753 vpaddd ymm1, ymm1, ymm6754 vpaddd ymm2, ymm2, ymm7755 vpaddd ymm3, ymm3, ymm4756 vpxor ymm15, ymm15, ymm0757 vpxor ymm12, ymm12, ymm1758 vpxor ymm13, ymm13, ymm2759 vpxor ymm14, ymm14, ymm3760 vbroadcasti128 ymm8, xmmword ptr [ROT8+rip]761 vpshufb ymm15, ymm15, ymm8762 vpshufb ymm12, ymm12, ymm8763 vpshufb ymm13, ymm13, ymm8764 vpshufb ymm14, ymm14, ymm8765 vpaddd ymm10, ymm10, ymm15766 vpaddd ymm11, ymm11, ymm12767 vpaddd ymm8, ymm13, ymmword ptr [rsp+0x200]768 vpaddd ymm9, ymm9, ymm14769 vpxor ymm5, ymm5, ymm10770 vpxor ymm6, ymm6, ymm11771 vpxor ymm7, ymm7, ymm8772 vpxor ymm4, ymm4, ymm9773 vmovdqa ymmword ptr [rsp+0x200], ymm8774 vpsrld ymm8, ymm5, 7775 vpslld ymm5, ymm5, 25776 vpor ymm5, ymm5, ymm8777 vpsrld ymm8, ymm6, 7778 vpslld ymm6, ymm6, 25779 vpor ymm6, ymm6, ymm8780 vpsrld ymm8, ymm7, 7781 vpslld ymm7, ymm7, 25782 vpor ymm7, ymm7, ymm8783 vpsrld ymm8, ymm4, 7784 vpslld ymm4, ymm4, 25785 vpor ymm4, ymm4, ymm8786 vpaddd ymm0, ymm0, ymmword ptr [rsp+0x180]787 vpaddd ymm1, ymm1, ymmword ptr [rsp+0x120]788 vpaddd ymm2, ymm2, ymmword ptr [rsp+0x1E0]789 vpaddd ymm3, ymm3, ymmword ptr [rsp+0x1C0]790 vpaddd ymm0, ymm0, ymm4791 vpaddd ymm1, ymm1, ymm5792 vpaddd ymm2, ymm2, ymm6793 vpaddd ymm3, ymm3, ymm7794 vpxor ymm12, ymm12, ymm0795 vpxor ymm13, ymm13, ymm1796 vpxor ymm14, ymm14, ymm2797 vpxor ymm15, ymm15, ymm3798 vbroadcasti128 ymm8, xmmword ptr [ROT16+rip]799 vpshufb ymm12, ymm12, ymm8800 vpshufb ymm13, ymm13, ymm8801 vpshufb ymm14, ymm14, ymm8802 vpshufb ymm15, ymm15, ymm8803 vpaddd ymm8, ymm12, ymmword ptr [rsp+0x200]804 vpaddd ymm9, ymm9, ymm13805 vpaddd ymm10, ymm10, ymm14806 vpaddd ymm11, ymm11, ymm15807 vpxor ymm4, ymm4, ymm8808 vpxor ymm5, ymm5, ymm9809 vpxor ymm6, ymm6, ymm10810 vpxor ymm7, ymm7, ymm11811 vmovdqa ymmword ptr [rsp+0x200], ymm8812 vpsrld ymm8, ymm4, 12813 vpslld ymm4, ymm4, 20814 vpor ymm4, ymm4, ymm8815 vpsrld ymm8, ymm5, 12816 vpslld ymm5, ymm5, 20817 vpor ymm5, ymm5, ymm8818 vpsrld ymm8, ymm6, 12819 vpslld ymm6, ymm6, 20820 vpor ymm6, ymm6, ymm8821 vpsrld ymm8, ymm7, 12822 vpslld ymm7, ymm7, 20823 vpor ymm7, ymm7, ymm8824 vpaddd ymm0, ymm0, ymmword ptr [rsp+0x1A0]825 vpaddd ymm1, ymm1, ymmword ptr [rsp+0x160]826 vpaddd ymm2, ymm2, ymmword ptr [rsp+0x140]827 vpaddd ymm3, ymm3, ymmword ptr [rsp+0x100]828 vpaddd ymm0, ymm0, ymm4829 vpaddd ymm1, ymm1, ymm5830 vpaddd ymm2, ymm2, ymm6831 vpaddd ymm3, ymm3, ymm7832 vpxor ymm12, ymm12, ymm0833 vpxor ymm13, ymm13, ymm1834 vpxor ymm14, ymm14, ymm2835 vpxor ymm15, ymm15, ymm3836 vbroadcasti128 ymm8, xmmword ptr [ROT8+rip]837 vpshufb ymm12, ymm12, ymm8838 vpshufb ymm13, ymm13, ymm8839 vpshufb ymm14, ymm14, ymm8840 vpshufb ymm15, ymm15, ymm8841 vpaddd ymm8, ymm12, ymmword ptr [rsp+0x200]842 vpaddd ymm9, ymm9, ymm13843 vpaddd ymm10, ymm10, ymm14844 vpaddd ymm11, ymm11, ymm15845 vpxor ymm4, ymm4, ymm8846 vpxor ymm5, ymm5, ymm9847 vpxor ymm6, ymm6, ymm10848 vpxor ymm7, ymm7, ymm11849 vmovdqa ymmword ptr [rsp+0x200], ymm8850 vpsrld ymm8, ymm4, 7851 vpslld ymm4, ymm4, 25852 vpor ymm4, ymm4, ymm8853 vpsrld ymm8, ymm5, 7854 vpslld ymm5, ymm5, 25855 vpor ymm5, ymm5, ymm8856 vpsrld ymm8, ymm6, 7857 vpslld ymm6, ymm6, 25858 vpor ymm6, ymm6, ymm8859 vpsrld ymm8, ymm7, 7860 vpslld ymm7, ymm7, 25861 vpor ymm7, ymm7, ymm8862 vpaddd ymm0, ymm0, ymmword ptr [rsp+0xE0]863 vpaddd ymm1, ymm1, ymmword ptr [rsp+0xA0]864 vpaddd ymm2, ymm2, ymmword ptr [rsp]865 vpaddd ymm3, ymm3, ymmword ptr [rsp+0xC0]866 vpaddd ymm0, ymm0, ymm5867 vpaddd ymm1, ymm1, ymm6868 vpaddd ymm2, ymm2, ymm7869 vpaddd ymm3, ymm3, ymm4870 vpxor ymm15, ymm15, ymm0871 vpxor ymm12, ymm12, ymm1872 vpxor ymm13, ymm13, ymm2873 vpxor ymm14, ymm14, ymm3874 vbroadcasti128 ymm8, xmmword ptr [ROT16+rip]875 vpshufb ymm15, ymm15, ymm8876 vpshufb ymm12, ymm12, ymm8877 vpshufb ymm13, ymm13, ymm8878 vpshufb ymm14, ymm14, ymm8879 vpaddd ymm10, ymm10, ymm15880 vpaddd ymm11, ymm11, ymm12881 vpaddd ymm8, ymm13, ymmword ptr [rsp+0x200]882 vpaddd ymm9, ymm9, ymm14883 vpxor ymm5, ymm5, ymm10884 vpxor ymm6, ymm6, ymm11885 vpxor ymm7, ymm7, ymm8886 vpxor ymm4, ymm4, ymm9887 vmovdqa ymmword ptr [rsp+0x200], ymm8888 vpsrld ymm8, ymm5, 12889 vpslld ymm5, ymm5, 20890 vpor ymm5, ymm5, ymm8891 vpsrld ymm8, ymm6, 12892 vpslld ymm6, ymm6, 20893 vpor ymm6, ymm6, ymm8894 vpsrld ymm8, ymm7, 12895 vpslld ymm7, ymm7, 20896 vpor ymm7, ymm7, ymm8897 vpsrld ymm8, ymm4, 12898 vpslld ymm4, ymm4, 20899 vpor ymm4, ymm4, ymm8900 vpaddd ymm0, ymm0, ymmword ptr [rsp+0x40]901 vpaddd ymm1, ymm1, ymmword ptr [rsp+0x60]902 vpaddd ymm2, ymm2, ymmword ptr [rsp+0x20]903 vpaddd ymm3, ymm3, ymmword ptr [rsp+0x80]904 vpaddd ymm0, ymm0, ymm5905 vpaddd ymm1, ymm1, ymm6906 vpaddd ymm2, ymm2, ymm7907 vpaddd ymm3, ymm3, ymm4908 vpxor ymm15, ymm15, ymm0909 vpxor ymm12, ymm12, ymm1910 vpxor ymm13, ymm13, ymm2911 vpxor ymm14, ymm14, ymm3912 vbroadcasti128 ymm8, xmmword ptr [ROT8+rip]913 vpshufb ymm15, ymm15, ymm8914 vpshufb ymm12, ymm12, ymm8915 vpshufb ymm13, ymm13, ymm8916 vpshufb ymm14, ymm14, ymm8917 vpaddd ymm10, ymm10, ymm15918 vpaddd ymm11, ymm11, ymm12919 vpaddd ymm8, ymm13, ymmword ptr [rsp+0x200]920 vpaddd ymm9, ymm9, ymm14921 vpxor ymm5, ymm5, ymm10922 vpxor ymm6, ymm6, ymm11923 vpxor ymm7, ymm7, ymm8924 vpxor ymm4, ymm4, ymm9925 vmovdqa ymmword ptr [rsp+0x200], ymm8926 vpsrld ymm8, ymm5, 7927 vpslld ymm5, ymm5, 25928 vpor ymm5, ymm5, ymm8929 vpsrld ymm8, ymm6, 7930 vpslld ymm6, ymm6, 25931 vpor ymm6, ymm6, ymm8932 vpsrld ymm8, ymm7, 7933 vpslld ymm7, ymm7, 25934 vpor ymm7, ymm7, ymm8935 vpsrld ymm8, ymm4, 7936 vpslld ymm4, ymm4, 25937 vpor ymm4, ymm4, ymm8938 vpaddd ymm0, ymm0, ymmword ptr [rsp+0x120]939 vpaddd ymm1, ymm1, ymmword ptr [rsp+0x160]940 vpaddd ymm2, ymm2, ymmword ptr [rsp+0x100]941 vpaddd ymm3, ymm3, ymmword ptr [rsp+0x1E0]942 vpaddd ymm0, ymm0, ymm4943 vpaddd ymm1, ymm1, ymm5944 vpaddd ymm2, ymm2, ymm6945 vpaddd ymm3, ymm3, ymm7946 vpxor ymm12, ymm12, ymm0947 vpxor ymm13, ymm13, ymm1948 vpxor ymm14, ymm14, ymm2949 vpxor ymm15, ymm15, ymm3950 vbroadcasti128 ymm8, xmmword ptr [ROT16+rip]951 vpshufb ymm12, ymm12, ymm8952 vpshufb ymm13, ymm13, ymm8953 vpshufb ymm14, ymm14, ymm8954 vpshufb ymm15, ymm15, ymm8955 vpaddd ymm8, ymm12, ymmword ptr [rsp+0x200]956 vpaddd ymm9, ymm9, ymm13957 vpaddd ymm10, ymm10, ymm14958 vpaddd ymm11, ymm11, ymm15959 vpxor ymm4, ymm4, ymm8960 vpxor ymm5, ymm5, ymm9961 vpxor ymm6, ymm6, ymm10962 vpxor ymm7, ymm7, ymm11963 vmovdqa ymmword ptr [rsp+0x200], ymm8964 vpsrld ymm8, ymm4, 12965 vpslld ymm4, ymm4, 20966 vpor ymm4, ymm4, ymm8967 vpsrld ymm8, ymm5, 12968 vpslld ymm5, ymm5, 20969 vpor ymm5, ymm5, ymm8970 vpsrld ymm8, ymm6, 12971 vpslld ymm6, ymm6, 20972 vpor ymm6, ymm6, ymm8973 vpsrld ymm8, ymm7, 12974 vpslld ymm7, ymm7, 20975 vpor ymm7, ymm7, ymm8976 vpaddd ymm0, ymm0, ymmword ptr [rsp+0x1C0]977 vpaddd ymm1, ymm1, ymmword ptr [rsp+0xA0]978 vpaddd ymm2, ymm2, ymmword ptr [rsp+0x180]979 vpaddd ymm3, ymm3, ymmword ptr [rsp+0x20]980 vpaddd ymm0, ymm0, ymm4981 vpaddd ymm1, ymm1, ymm5982 vpaddd ymm2, ymm2, ymm6983 vpaddd ymm3, ymm3, ymm7984 vpxor ymm12, ymm12, ymm0985 vpxor ymm13, ymm13, ymm1986 vpxor ymm14, ymm14, ymm2987 vpxor ymm15, ymm15, ymm3988 vbroadcasti128 ymm8, xmmword ptr [ROT8+rip]989 vpshufb ymm12, ymm12, ymm8990 vpshufb ymm13, ymm13, ymm8991 vpshufb ymm14, ymm14, ymm8992 vpshufb ymm15, ymm15, ymm8993 vpaddd ymm8, ymm12, ymmword ptr [rsp+0x200]994 vpaddd ymm9, ymm9, ymm13995 vpaddd ymm10, ymm10, ymm14996 vpaddd ymm11, ymm11, ymm15997 vpxor ymm4, ymm4, ymm8998 vpxor ymm5, ymm5, ymm9999 vpxor ymm6, ymm6, ymm101000 vpxor ymm7, ymm7, ymm111001 vmovdqa ymmword ptr [rsp+0x200], ymm81002 vpsrld ymm8, ymm4, 71003 vpslld ymm4, ymm4, 251004 vpor ymm4, ymm4, ymm81005 vpsrld ymm8, ymm5, 71006 vpslld ymm5, ymm5, 251007 vpor ymm5, ymm5, ymm81008 vpsrld ymm8, ymm6, 71009 vpslld ymm6, ymm6, 251010 vpor ymm6, ymm6, ymm81011 vpsrld ymm8, ymm7, 71012 vpslld ymm7, ymm7, 251013 vpor ymm7, ymm7, ymm81014 vpaddd ymm0, ymm0, ymmword ptr [rsp+0x1A0]1015 vpaddd ymm1, ymm1, ymmword ptr [rsp]1016 vpaddd ymm2, ymm2, ymmword ptr [rsp+0x40]1017 vpaddd ymm3, ymm3, ymmword ptr [rsp+0x80]1018 vpaddd ymm0, ymm0, ymm51019 vpaddd ymm1, ymm1, ymm61020 vpaddd ymm2, ymm2, ymm71021 vpaddd ymm3, ymm3, ymm41022 vpxor ymm15, ymm15, ymm01023 vpxor ymm12, ymm12, ymm11024 vpxor ymm13, ymm13, ymm21025 vpxor ymm14, ymm14, ymm31026 vbroadcasti128 ymm8, xmmword ptr [ROT16+rip]1027 vpshufb ymm15, ymm15, ymm81028 vpshufb ymm12, ymm12, ymm81029 vpshufb ymm13, ymm13, ymm81030 vpshufb ymm14, ymm14, ymm81031 vpaddd ymm10, ymm10, ymm151032 vpaddd ymm11, ymm11, ymm121033 vpaddd ymm8, ymm13, ymmword ptr [rsp+0x200]1034 vpaddd ymm9, ymm9, ymm141035 vpxor ymm5, ymm5, ymm101036 vpxor ymm6, ymm6, ymm111037 vpxor ymm7, ymm7, ymm81038 vpxor ymm4, ymm4, ymm91039 vmovdqa ymmword ptr [rsp+0x200], ymm81040 vpsrld ymm8, ymm5, 121041 vpslld ymm5, ymm5, 201042 vpor ymm5, ymm5, ymm81043 vpsrld ymm8, ymm6, 121044 vpslld ymm6, ymm6, 201045 vpor ymm6, ymm6, ymm81046 vpsrld ymm8, ymm7, 121047 vpslld ymm7, ymm7, 201048 vpor ymm7, ymm7, ymm81049 vpsrld ymm8, ymm4, 121050 vpslld ymm4, ymm4, 201051 vpor ymm4, ymm4, ymm81052 vpaddd ymm0, ymm0, ymmword ptr [rsp+0x60]1053 vpaddd ymm1, ymm1, ymmword ptr [rsp+0x140]1054 vpaddd ymm2, ymm2, ymmword ptr [rsp+0xC0]1055 vpaddd ymm3, ymm3, ymmword ptr [rsp+0xE0]1056 vpaddd ymm0, ymm0, ymm51057 vpaddd ymm1, ymm1, ymm61058 vpaddd ymm2, ymm2, ymm71059 vpaddd ymm3, ymm3, ymm41060 vpxor ymm15, ymm15, ymm01061 vpxor ymm12, ymm12, ymm11062 vpxor ymm13, ymm13, ymm21063 vpxor ymm14, ymm14, ymm31064 vbroadcasti128 ymm8, xmmword ptr [ROT8+rip]1065 vpshufb ymm15, ymm15, ymm81066 vpshufb ymm12, ymm12, ymm81067 vpshufb ymm13, ymm13, ymm81068 vpshufb ymm14, ymm14, ymm81069 vpaddd ymm10, ymm10, ymm151070 vpaddd ymm11, ymm11, ymm121071 vpaddd ymm8, ymm13, ymmword ptr [rsp+0x200]1072 vpaddd ymm9, ymm9, ymm141073 vpxor ymm5, ymm5, ymm101074 vpxor ymm6, ymm6, ymm111075 vpxor ymm7, ymm7, ymm81076 vpxor ymm4, ymm4, ymm91077 vmovdqa ymmword ptr [rsp+0x200], ymm81078 vpsrld ymm8, ymm5, 71079 vpslld ymm5, ymm5, 251080 vpor ymm5, ymm5, ymm81081 vpsrld ymm8, ymm6, 71082 vpslld ymm6, ymm6, 251083 vpor ymm6, ymm6, ymm81084 vpsrld ymm8, ymm7, 71085 vpslld ymm7, ymm7, 251086 vpor ymm7, ymm7, ymm81087 vpsrld ymm8, ymm4, 71088 vpslld ymm4, ymm4, 251089 vpor ymm4, ymm4, ymm81090 vpaddd ymm0, ymm0, ymmword ptr [rsp+0x160]1091 vpaddd ymm1, ymm1, ymmword ptr [rsp+0xA0]1092 vpaddd ymm2, ymm2, ymmword ptr [rsp+0x20]1093 vpaddd ymm3, ymm3, ymmword ptr [rsp+0x100]1094 vpaddd ymm0, ymm0, ymm41095 vpaddd ymm1, ymm1, ymm51096 vpaddd ymm2, ymm2, ymm61097 vpaddd ymm3, ymm3, ymm71098 vpxor ymm12, ymm12, ymm01099 vpxor ymm13, ymm13, ymm11100 vpxor ymm14, ymm14, ymm21101 vpxor ymm15, ymm15, ymm31102 vbroadcasti128 ymm8, xmmword ptr [ROT16+rip]1103 vpshufb ymm12, ymm12, ymm81104 vpshufb ymm13, ymm13, ymm81105 vpshufb ymm14, ymm14, ymm81106 vpshufb ymm15, ymm15, ymm81107 vpaddd ymm8, ymm12, ymmword ptr [rsp+0x200]1108 vpaddd ymm9, ymm9, ymm131109 vpaddd ymm10, ymm10, ymm141110 vpaddd ymm11, ymm11, ymm151111 vpxor ymm4, ymm4, ymm81112 vpxor ymm5, ymm5, ymm91113 vpxor ymm6, ymm6, ymm101114 vpxor ymm7, ymm7, ymm111115 vmovdqa ymmword ptr [rsp+0x200], ymm81116 vpsrld ymm8, ymm4, 121117 vpslld ymm4, ymm4, 201118 vpor ymm4, ymm4, ymm81119 vpsrld ymm8, ymm5, 121120 vpslld ymm5, ymm5, 201121 vpor ymm5, ymm5, ymm81122 vpsrld ymm8, ymm6, 121123 vpslld ymm6, ymm6, 201124 vpor ymm6, ymm6, ymm81125 vpsrld ymm8, ymm7, 121126 vpslld ymm7, ymm7, 201127 vpor ymm7, ymm7, ymm81128 vpaddd ymm0, ymm0, ymmword ptr [rsp+0x1E0]1129 vpaddd ymm1, ymm1, ymmword ptr [rsp]1130 vpaddd ymm2, ymm2, ymmword ptr [rsp+0x120]1131 vpaddd ymm3, ymm3, ymmword ptr [rsp+0xC0]1132 vpaddd ymm0, ymm0, ymm41133 vpaddd ymm1, ymm1, ymm51134 vpaddd ymm2, ymm2, ymm61135 vpaddd ymm3, ymm3, ymm71136 vpxor ymm12, ymm12, ymm01137 vpxor ymm13, ymm13, ymm11138 vpxor ymm14, ymm14, ymm21139 vpxor ymm15, ymm15, ymm31140 vbroadcasti128 ymm8, xmmword ptr [ROT8+rip]1141 vpshufb ymm12, ymm12, ymm81142 vpshufb ymm13, ymm13, ymm81143 vpshufb ymm14, ymm14, ymm81144 vpshufb ymm15, ymm15, ymm81145 vpaddd ymm8, ymm12, ymmword ptr [rsp+0x200]1146 vpaddd ymm9, ymm9, ymm131147 vpaddd ymm10, ymm10, ymm141148 vpaddd ymm11, ymm11, ymm151149 vpxor ymm4, ymm4, ymm81150 vpxor ymm5, ymm5, ymm91151 vpxor ymm6, ymm6, ymm101152 vpxor ymm7, ymm7, ymm111153 vmovdqa ymmword ptr [rsp+0x200], ymm81154 vpsrld ymm8, ymm4, 71155 vpslld ymm4, ymm4, 251156 vpor ymm4, ymm4, ymm81157 vpsrld ymm8, ymm5, 71158 vpslld ymm5, ymm5, 251159 vpor ymm5, ymm5, ymm81160 vpsrld ymm8, ymm6, 71161 vpslld ymm6, ymm6, 251162 vpor ymm6, ymm6, ymm81163 vpsrld ymm8, ymm7, 71164 vpslld ymm7, ymm7, 251165 vpor ymm7, ymm7, ymm81166 vpaddd ymm0, ymm0, ymmword ptr [rsp+0x1C0]1167 vpaddd ymm1, ymm1, ymmword ptr [rsp+0x40]1168 vpaddd ymm2, ymm2, ymmword ptr [rsp+0x60]1169 vpaddd ymm3, ymm3, ymmword ptr [rsp+0xE0]1170 vpaddd ymm0, ymm0, ymm51171 vpaddd ymm1, ymm1, ymm61172 vpaddd ymm2, ymm2, ymm71173 vpaddd ymm3, ymm3, ymm41174 vpxor ymm15, ymm15, ymm01175 vpxor ymm12, ymm12, ymm11176 vpxor ymm13, ymm13, ymm21177 vpxor ymm14, ymm14, ymm31178 vbroadcasti128 ymm8, xmmword ptr [ROT16+rip]1179 vpshufb ymm15, ymm15, ymm81180 vpshufb ymm12, ymm12, ymm81181 vpshufb ymm13, ymm13, ymm81182 vpshufb ymm14, ymm14, ymm81183 vpaddd ymm10, ymm10, ymm151184 vpaddd ymm11, ymm11, ymm121185 vpaddd ymm8, ymm13, ymmword ptr [rsp+0x200]1186 vpaddd ymm9, ymm9, ymm141187 vpxor ymm5, ymm5, ymm101188 vpxor ymm6, ymm6, ymm111189 vpxor ymm7, ymm7, ymm81190 vpxor ymm4, ymm4, ymm91191 vmovdqa ymmword ptr [rsp+0x200], ymm81192 vpsrld ymm8, ymm5, 121193 vpslld ymm5, ymm5, 201194 vpor ymm5, ymm5, ymm81195 vpsrld ymm8, ymm6, 121196 vpslld ymm6, ymm6, 201197 vpor ymm6, ymm6, ymm81198 vpsrld ymm8, ymm7, 121199 vpslld ymm7, ymm7, 201200 vpor ymm7, ymm7, ymm81201 vpsrld ymm8, ymm4, 121202 vpslld ymm4, ymm4, 201203 vpor ymm4, ymm4, ymm81204 vpaddd ymm0, ymm0, ymmword ptr [rsp+0x140]1205 vpaddd ymm1, ymm1, ymmword ptr [rsp+0x180]1206 vpaddd ymm2, ymm2, ymmword ptr [rsp+0x80]1207 vpaddd ymm3, ymm3, ymmword ptr [rsp+0x1A0]1208 vpaddd ymm0, ymm0, ymm51209 vpaddd ymm1, ymm1, ymm61210 vpaddd ymm2, ymm2, ymm71211 vpaddd ymm3, ymm3, ymm41212 vpxor ymm15, ymm15, ymm01213 vpxor ymm12, ymm12, ymm11214 vpxor ymm13, ymm13, ymm21215 vpxor ymm14, ymm14, ymm31216 vbroadcasti128 ymm8, xmmword ptr [ROT8+rip]1217 vpshufb ymm15, ymm15, ymm81218 vpshufb ymm12, ymm12, ymm81219 vpshufb ymm13, ymm13, ymm81220 vpshufb ymm14, ymm14, ymm81221 vpaddd ymm10, ymm10, ymm151222 vpaddd ymm11, ymm11, ymm121223 vpaddd ymm8, ymm13, ymmword ptr [rsp+0x200]1224 vpaddd ymm9, ymm9, ymm141225 vpxor ymm5, ymm5, ymm101226 vpxor ymm6, ymm6, ymm111227 vpxor ymm7, ymm7, ymm81228 vpxor ymm4, ymm4, ymm91229 vpxor ymm0, ymm0, ymm81230 vpxor ymm1, ymm1, ymm91231 vpxor ymm2, ymm2, ymm101232 vpxor ymm3, ymm3, ymm111233 vpsrld ymm8, ymm5, 71234 vpslld ymm5, ymm5, 251235 vpor ymm5, ymm5, ymm81236 vpsrld ymm8, ymm6, 71237 vpslld ymm6, ymm6, 251238 vpor ymm6, ymm6, ymm81239 vpsrld ymm8, ymm7, 71240 vpslld ymm7, ymm7, 251241 vpor ymm7, ymm7, ymm81242 vpsrld ymm8, ymm4, 71243 vpslld ymm4, ymm4, 251244 vpor ymm4, ymm4, ymm81245 vpxor ymm4, ymm4, ymm121246 vpxor ymm5, ymm5, ymm131247 vpxor ymm6, ymm6, ymm141248 vpxor ymm7, ymm7, ymm151249 movzx eax, byte ptr [rbp+0x78]1250 jne 9b1251 mov rbx, qword ptr [rbp+0x90]1252 vunpcklps ymm8, ymm0, ymm11253 vunpcklps ymm9, ymm2, ymm31254 vunpckhps ymm10, ymm0, ymm11255 vunpcklps ymm11, ymm4, ymm51256 vunpcklps ymm0, ymm6, ymm71257 vshufps ymm12, ymm8, ymm9, 781258 vblendps ymm1, ymm8, ymm12, 0xCC1259 vshufps ymm8, ymm11, ymm0, 781260 vunpckhps ymm13, ymm2, ymm31261 vblendps ymm2, ymm11, ymm8, 0xCC1262 vblendps ymm3, ymm12, ymm9, 0xCC1263 vperm2f128 ymm12, ymm1, ymm2, 0x201264 vmovups ymmword ptr [rbx], ymm121265 vunpckhps ymm14, ymm4, ymm51266 vblendps ymm4, ymm8, ymm0, 0xCC1267 vunpckhps ymm15, ymm6, ymm71268 vperm2f128 ymm7, ymm3, ymm4, 0x201269 vmovups ymmword ptr [rbx+0x20], ymm71270 vshufps ymm5, ymm10, ymm13, 781271 vblendps ymm6, ymm5, ymm13, 0xCC1272 vshufps ymm13, ymm14, ymm15, 781273 vblendps ymm10, ymm10, ymm5, 0xCC1274 vblendps ymm14, ymm14, ymm13, 0xCC1275 vperm2f128 ymm8, ymm10, ymm14, 0x201276 vmovups ymmword ptr [rbx+0x40], ymm81277 vblendps ymm15, ymm13, ymm15, 0xCC1278 vperm2f128 ymm13, ymm6, ymm15, 0x201279 vmovups ymmword ptr [rbx+0x60], ymm131280 vperm2f128 ymm9, ymm1, ymm2, 0x311281 vperm2f128 ymm11, ymm3, ymm4, 0x311282 vmovups ymmword ptr [rbx+0x80], ymm91283 vperm2f128 ymm14, ymm10, ymm14, 0x311284 vperm2f128 ymm15, ymm6, ymm15, 0x311285 vmovups ymmword ptr [rbx+0xA0], ymm111286 vmovups ymmword ptr [rbx+0xC0], ymm141287 vmovups ymmword ptr [rbx+0xE0], ymm151288 vmovdqa ymm0, ymmword ptr [rsp+0x2A0]1289 vpaddd ymm1, ymm0, ymmword ptr [rsp+0x220]1290 vmovdqa ymmword ptr [rsp+0x220], ymm11291 vpxor ymm0, ymm0, ymmword ptr [CMP_MSB_MASK+rip]1292 vpxor ymm2, ymm1, ymmword ptr [CMP_MSB_MASK+rip]1293 vpcmpgtd ymm2, ymm0, ymm21294 vmovdqa ymm0, ymmword ptr [rsp+0x240]1295 vpsubd ymm2, ymm0, ymm21296 vmovdqa ymmword ptr [rsp+0x240], ymm21297 add rdi, 641298 add rbx, 2561299 mov qword ptr [rbp+0x90], rbx1300 sub rsi, 81301 cmp rsi, 81302 jnc 2b1303 test rsi, rsi1304 jnz 3f13054:1306 vzeroupper1307 vmovdqa xmm6, xmmword ptr [rsp+0x2D0]1308 vmovdqa xmm7, xmmword ptr [rsp+0x2E0]1309 vmovdqa xmm8, xmmword ptr [rsp+0x2F0]1310 vmovdqa xmm9, xmmword ptr [rsp+0x300]1311 vmovdqa xmm10, xmmword ptr [rsp+0x310]1312 vmovdqa xmm11, xmmword ptr [rsp+0x320]1313 vmovdqa xmm12, xmmword ptr [rsp+0x330]1314 vmovdqa xmm13, xmmword ptr [rsp+0x340]1315 vmovdqa xmm14, xmmword ptr [rsp+0x350]1316 vmovdqa xmm15, xmmword ptr [rsp+0x360]1317 mov rsp, rbp1318 pop rbp1319 pop rbx1320 pop rdi1321 pop rsi1322 pop r121323 pop r131324 pop r141325 pop r151326 ret1327.p2align 513283:1329 mov rbx, qword ptr [rbp+0x90]1330 mov r15, qword ptr [rsp+0x2C0]1331 movzx r13d, byte ptr [rbp+0x78]1332 movzx r12d, byte ptr [rbp+0x88]1333 test rsi, 0x41334 je 3f1335 vbroadcasti128 ymm0, xmmword ptr [rcx]1336 vbroadcasti128 ymm1, xmmword ptr [rcx+0x10]1337 vmovdqa ymm8, ymm01338 vmovdqa ymm9, ymm11339 vbroadcasti128 ymm12, xmmword ptr [rsp+0x220]1340 vbroadcasti128 ymm13, xmmword ptr [rsp+0x240]1341 vpunpckldq ymm14, ymm12, ymm131342 vpunpckhdq ymm15, ymm12, ymm131343 vpermq ymm14, ymm14, 0x501344 vpermq ymm15, ymm15, 0x501345 vbroadcasti128 ymm12, xmmword ptr [BLAKE3_BLOCK_LEN+rip]1346 vpblendd ymm14, ymm14, ymm12, 0x441347 vpblendd ymm15, ymm15, ymm12, 0x441348 vmovdqa ymmword ptr [rsp], ymm141349 vmovdqa ymmword ptr [rsp+0x20], ymm151350 mov r8, qword ptr [rdi]1351 mov r9, qword ptr [rdi+0x8]1352 mov r10, qword ptr [rdi+0x10]1353 mov r11, qword ptr [rdi+0x18]1354 movzx eax, byte ptr [rbp+0x80]1355 or eax, r13d1356 xor edx, edx1357.p2align 513582:1359 mov r14d, eax1360 or eax, r12d1361 add rdx, 641362 cmp rdx, r151363 cmovne eax, r14d1364 mov dword ptr [rsp+0x200], eax1365 vmovups ymm2, ymmword ptr [r8+rdx-0x40]1366 vinsertf128 ymm2, ymm2, xmmword ptr [r9+rdx-0x40], 0x011367 vmovups ymm3, ymmword ptr [r8+rdx-0x30]1368 vinsertf128 ymm3, ymm3, xmmword ptr [r9+rdx-0x30], 0x011369 vshufps ymm4, ymm2, ymm3, 1361370 vshufps ymm5, ymm2, ymm3, 2211371 vmovups ymm2, ymmword ptr [r8+rdx-0x20]1372 vinsertf128 ymm2, ymm2, xmmword ptr [r9+rdx-0x20], 0x011373 vmovups ymm3, ymmword ptr [r8+rdx-0x10]1374 vinsertf128 ymm3, ymm3, xmmword ptr [r9+rdx-0x10], 0x011375 vshufps ymm6, ymm2, ymm3, 1361376 vshufps ymm7, ymm2, ymm3, 2211377 vpshufd ymm6, ymm6, 0x931378 vpshufd ymm7, ymm7, 0x931379 vmovups ymm10, ymmword ptr [r10+rdx-0x40]1380 vinsertf128 ymm10, ymm10, xmmword ptr [r11+rdx-0x40], 0x011381 vmovups ymm11, ymmword ptr [r10+rdx-0x30]1382 vinsertf128 ymm11, ymm11, xmmword ptr [r11+rdx-0x30], 0x011383 vshufps ymm12, ymm10, ymm11, 1361384 vshufps ymm13, ymm10, ymm11, 2211385 vmovups ymm10, ymmword ptr [r10+rdx-0x20]1386 vinsertf128 ymm10, ymm10, xmmword ptr [r11+rdx-0x20], 0x011387 vmovups ymm11, ymmword ptr [r10+rdx-0x10]1388 vinsertf128 ymm11, ymm11, xmmword ptr [r11+rdx-0x10], 0x011389 vshufps ymm14, ymm10, ymm11, 1361390 vshufps ymm15, ymm10, ymm11, 2211391 vpshufd ymm14, ymm14, 0x931392 vpshufd ymm15, ymm15, 0x931393 vpbroadcastd ymm2, dword ptr [rsp+0x200]1394 vmovdqa ymm3, ymmword ptr [rsp]1395 vmovdqa ymm11, ymmword ptr [rsp+0x20]1396 vpblendd ymm3, ymm3, ymm2, 0x881397 vpblendd ymm11, ymm11, ymm2, 0x881398 vbroadcasti128 ymm2, xmmword ptr [BLAKE3_IV+rip]1399 vmovdqa ymm10, ymm21400 mov al, 714019:1402 vpaddd ymm0, ymm0, ymm41403 vpaddd ymm8, ymm8, ymm121404 vmovdqa ymmword ptr [rsp+0x40], ymm41405 nop1406 vmovdqa ymmword ptr [rsp+0x60], ymm121407 nop1408 vpaddd ymm0, ymm0, ymm11409 vpaddd ymm8, ymm8, ymm91410 vpxor ymm3, ymm3, ymm01411 vpxor ymm11, ymm11, ymm81412 vbroadcasti128 ymm4, xmmword ptr [ROT16+rip]1413 vpshufb ymm3, ymm3, ymm41414 vpshufb ymm11, ymm11, ymm41415 vpaddd ymm2, ymm2, ymm31416 vpaddd ymm10, ymm10, ymm111417 vpxor ymm1, ymm1, ymm21418 vpxor ymm9, ymm9, ymm101419 vpsrld ymm4, ymm1, 121420 vpslld ymm1, ymm1, 201421 vpor ymm1, ymm1, ymm41422 vpsrld ymm4, ymm9, 121423 vpslld ymm9, ymm9, 201424 vpor ymm9, ymm9, ymm41425 vpaddd ymm0, ymm0, ymm51426 vpaddd ymm8, ymm8, ymm131427 vpaddd ymm0, ymm0, ymm11428 vpaddd ymm8, ymm8, ymm91429 vmovdqa ymmword ptr [rsp+0x80], ymm51430 vmovdqa ymmword ptr [rsp+0xA0], ymm131431 vpxor ymm3, ymm3, ymm01432 vpxor ymm11, ymm11, ymm81433 vbroadcasti128 ymm4, xmmword ptr [ROT8+rip]1434 vpshufb ymm3, ymm3, ymm41435 vpshufb ymm11, ymm11, ymm41436 vpaddd ymm2, ymm2, ymm31437 vpaddd ymm10, ymm10, ymm111438 vpxor ymm1, ymm1, ymm21439 vpxor ymm9, ymm9, ymm101440 vpsrld ymm4, ymm1, 71441 vpslld ymm1, ymm1, 251442 vpor ymm1, ymm1, ymm41443 vpsrld ymm4, ymm9, 71444 vpslld ymm9, ymm9, 251445 vpor ymm9, ymm9, ymm41446 vpshufd ymm0, ymm0, 0x931447 vpshufd ymm8, ymm8, 0x931448 vpshufd ymm3, ymm3, 0x4E1449 vpshufd ymm11, ymm11, 0x4E1450 vpshufd ymm2, ymm2, 0x391451 vpshufd ymm10, ymm10, 0x391452 vpaddd ymm0, ymm0, ymm61453 vpaddd ymm8, ymm8, ymm141454 vpaddd ymm0, ymm0, ymm11455 vpaddd ymm8, ymm8, ymm91456 vpxor ymm3, ymm3, ymm01457 vpxor ymm11, ymm11, ymm81458 vbroadcasti128 ymm4, xmmword ptr [ROT16+rip]1459 vpshufb ymm3, ymm3, ymm41460 vpshufb ymm11, ymm11, ymm41461 vpaddd ymm2, ymm2, ymm31462 vpaddd ymm10, ymm10, ymm111463 vpxor ymm1, ymm1, ymm21464 vpxor ymm9, ymm9, ymm101465 vpsrld ymm4, ymm1, 121466 vpslld ymm1, ymm1, 201467 vpor ymm1, ymm1, ymm41468 vpsrld ymm4, ymm9, 121469 vpslld ymm9, ymm9, 201470 vpor ymm9, ymm9, ymm41471 vpaddd ymm0, ymm0, ymm71472 vpaddd ymm8, ymm8, ymm151473 vpaddd ymm0, ymm0, ymm11474 vpaddd ymm8, ymm8, ymm91475 vpxor ymm3, ymm3, ymm01476 vpxor ymm11, ymm11, ymm81477 vbroadcasti128 ymm4, xmmword ptr [ROT8+rip]1478 vpshufb ymm3, ymm3, ymm41479 vpshufb ymm11, ymm11, ymm41480 vpaddd ymm2, ymm2, ymm31481 vpaddd ymm10, ymm10, ymm111482 vpxor ymm1, ymm1, ymm21483 vpxor ymm9, ymm9, ymm101484 vpsrld ymm4, ymm1, 71485 vpslld ymm1, ymm1, 251486 vpor ymm1, ymm1, ymm41487 vpsrld ymm4, ymm9, 71488 vpslld ymm9, ymm9, 251489 vpor ymm9, ymm9, ymm41490 vpshufd ymm0, ymm0, 0x391491 vpshufd ymm8, ymm8, 0x391492 vpshufd ymm3, ymm3, 0x4E1493 vpshufd ymm11, ymm11, 0x4E1494 vpshufd ymm2, ymm2, 0x931495 vpshufd ymm10, ymm10, 0x931496 dec al1497 je 9f1498 vmovdqa ymm4, ymmword ptr [rsp+0x40]1499 vmovdqa ymm5, ymmword ptr [rsp+0x80]1500 vshufps ymm12, ymm4, ymm5, 2141501 vpshufd ymm13, ymm4, 0x0F1502 vpshufd ymm4, ymm12, 0x391503 vshufps ymm12, ymm6, ymm7, 2501504 vpblendd ymm13, ymm13, ymm12, 0xAA1505 vpunpcklqdq ymm12, ymm7, ymm51506 vpblendd ymm12, ymm12, ymm6, 0x881507 vpshufd ymm12, ymm12, 0x781508 vpunpckhdq ymm5, ymm5, ymm71509 vpunpckldq ymm6, ymm6, ymm51510 vpshufd ymm7, ymm6, 0x1E1511 vmovdqa ymmword ptr [rsp+0x40], ymm131512 vmovdqa ymmword ptr [rsp+0x80], ymm121513 vmovdqa ymm12, ymmword ptr [rsp+0x60]1514 vmovdqa ymm13, ymmword ptr [rsp+0xA0]1515 vshufps ymm5, ymm12, ymm13, 2141516 vpshufd ymm6, ymm12, 0x0F1517 vpshufd ymm12, ymm5, 0x391518 vshufps ymm5, ymm14, ymm15, 2501519 vpblendd ymm6, ymm6, ymm5, 0xAA1520 vpunpcklqdq ymm5, ymm15, ymm131521 vpblendd ymm5, ymm5, ymm14, 0x881522 vpshufd ymm5, ymm5, 0x781523 vpunpckhdq ymm13, ymm13, ymm151524 vpunpckldq ymm14, ymm14, ymm131525 vpshufd ymm15, ymm14, 0x1E1526 vmovdqa ymm13, ymm61527 vmovdqa ymm14, ymm51528 vmovdqa ymm5, ymmword ptr [rsp+0x40]1529 vmovdqa ymm6, ymmword ptr [rsp+0x80]1530 jmp 9b15319:1532 vpxor ymm0, ymm0, ymm21533 vpxor ymm1, ymm1, ymm31534 vpxor ymm8, ymm8, ymm101535 vpxor ymm9, ymm9, ymm111536 mov eax, r13d1537 cmp rdx, r151538 jne 2b1539 vmovdqu xmmword ptr [rbx], xmm01540 vmovdqu xmmword ptr [rbx+0x10], xmm11541 vextracti128 xmmword ptr [rbx+0x20], ymm0, 0x011542 vextracti128 xmmword ptr [rbx+0x30], ymm1, 0x011543 vmovdqu xmmword ptr [rbx+0x40], xmm81544 vmovdqu xmmword ptr [rbx+0x50], xmm91545 vextracti128 xmmword ptr [rbx+0x60], ymm8, 0x011546 vextracti128 xmmword ptr [rbx+0x70], ymm9, 0x011547 vmovaps xmm8, xmmword ptr [rsp+0x260]1548 vmovaps xmm0, xmmword ptr [rsp+0x220]1549 vmovaps xmm1, xmmword ptr [rsp+0x230]1550 vmovaps xmm2, xmmword ptr [rsp+0x240]1551 vmovaps xmm3, xmmword ptr [rsp+0x250]1552 vblendvps xmm0, xmm0, xmm1, xmm81553 vblendvps xmm2, xmm2, xmm3, xmm81554 vmovaps xmmword ptr [rsp+0x220], xmm01555 vmovaps xmmword ptr [rsp+0x240], xmm21556 add rbx, 1281557 add rdi, 321558 sub rsi, 415593:1560 test rsi, 0x21561 je 3f1562 vbroadcasti128 ymm0, xmmword ptr [rcx]1563 vbroadcasti128 ymm1, xmmword ptr [rcx+0x10]1564 vmovd xmm13, dword ptr [rsp+0x220]1565 vpinsrd xmm13, xmm13, dword ptr [rsp+0x240], 11566 vpinsrd xmm13, xmm13, dword ptr [BLAKE3_BLOCK_LEN+rip], 21567 vmovd xmm14, dword ptr [rsp+0x224]1568 vpinsrd xmm14, xmm14, dword ptr [rsp+0x244], 11569 vpinsrd xmm14, xmm14, dword ptr [BLAKE3_BLOCK_LEN+rip], 21570 vinserti128 ymm13, ymm13, xmm14, 0x011571 vbroadcasti128 ymm14, xmmword ptr [ROT16+rip]1572 vbroadcasti128 ymm15, xmmword ptr [ROT8+rip]1573 mov r8, qword ptr [rdi]1574 mov r9, qword ptr [rdi+0x8]1575 movzx eax, byte ptr [rbp+0x80]1576 or eax, r13d1577 xor edx, edx1578.p2align 515792:1580 mov r14d, eax1581 or eax, r12d1582 add rdx, 641583 cmp rdx, r151584 cmovne eax, r14d1585 mov dword ptr [rsp+0x200], eax1586 vbroadcasti128 ymm2, xmmword ptr [BLAKE3_IV+rip]1587 vpbroadcastd ymm8, dword ptr [rsp+0x200]1588 vpblendd ymm3, ymm13, ymm8, 0x881589 vmovups ymm8, ymmword ptr [r8+rdx-0x40]1590 vinsertf128 ymm8, ymm8, xmmword ptr [r9+rdx-0x40], 0x011591 vmovups ymm9, ymmword ptr [r8+rdx-0x30]1592 vinsertf128 ymm9, ymm9, xmmword ptr [r9+rdx-0x30], 0x011593 vshufps ymm4, ymm8, ymm9, 1361594 vshufps ymm5, ymm8, ymm9, 2211595 vmovups ymm8, ymmword ptr [r8+rdx-0x20]1596 vinsertf128 ymm8, ymm8, xmmword ptr [r9+rdx-0x20], 0x011597 vmovups ymm9, ymmword ptr [r8+rdx-0x10]1598 vinsertf128 ymm9, ymm9, xmmword ptr [r9+rdx-0x10], 0x011599 vshufps ymm6, ymm8, ymm9, 1361600 vshufps ymm7, ymm8, ymm9, 2211601 vpshufd ymm6, ymm6, 0x931602 vpshufd ymm7, ymm7, 0x931603 mov al, 716049:1605 vpaddd ymm0, ymm0, ymm41606 vpaddd ymm0, ymm0, ymm11607 vpxor ymm3, ymm3, ymm01608 vpshufb ymm3, ymm3, ymm141609 vpaddd ymm2, ymm2, ymm31610 vpxor ymm1, ymm1, ymm21611 vpsrld ymm8, ymm1, 121612 vpslld ymm1, ymm1, 201613 vpor ymm1, ymm1, ymm81614 vpaddd ymm0, ymm0, ymm51615 vpaddd ymm0, ymm0, ymm11616 vpxor ymm3, ymm3, ymm01617 vpshufb ymm3, ymm3, ymm151618 vpaddd ymm2, ymm2, ymm31619 vpxor ymm1, ymm1, ymm21620 vpsrld ymm8, ymm1, 71621 vpslld ymm1, ymm1, 251622 vpor ymm1, ymm1, ymm81623 vpshufd ymm0, ymm0, 0x931624 vpshufd ymm3, ymm3, 0x4E1625 vpshufd ymm2, ymm2, 0x391626 vpaddd ymm0, ymm0, ymm61627 vpaddd ymm0, ymm0, ymm11628 vpxor ymm3, ymm3, ymm01629 vpshufb ymm3, ymm3, ymm141630 vpaddd ymm2, ymm2, ymm31631 vpxor ymm1, ymm1, ymm21632 vpsrld ymm8, ymm1, 121633 vpslld ymm1, ymm1, 201634 vpor ymm1, ymm1, ymm81635 vpaddd ymm0, ymm0, ymm71636 vpaddd ymm0, ymm0, ymm11637 vpxor ymm3, ymm3, ymm01638 vpshufb ymm3, ymm3, ymm151639 vpaddd ymm2, ymm2, ymm31640 vpxor ymm1, ymm1, ymm21641 vpsrld ymm8, ymm1, 71642 vpslld ymm1, ymm1, 251643 vpor ymm1, ymm1, ymm81644 vpshufd ymm0, ymm0, 0x391645 vpshufd ymm3, ymm3, 0x4E1646 vpshufd ymm2, ymm2, 0x931647 dec al1648 jz 9f1649 vshufps ymm8, ymm4, ymm5, 2141650 vpshufd ymm9, ymm4, 0x0F1651 vpshufd ymm4, ymm8, 0x391652 vshufps ymm8, ymm6, ymm7, 2501653 vpblendd ymm9, ymm9, ymm8, 0xAA1654 vpunpcklqdq ymm8, ymm7, ymm51655 vpblendd ymm8, ymm8, ymm6, 0x881656 vpshufd ymm8, ymm8, 0x781657 vpunpckhdq ymm5, ymm5, ymm71658 vpunpckldq ymm6, ymm6, ymm51659 vpshufd ymm7, ymm6, 0x1E1660 vmovdqa ymm5, ymm91661 vmovdqa ymm6, ymm81662 jmp 9b16639:1664 vpxor ymm0, ymm0, ymm21665 vpxor ymm1, ymm1, ymm31666 mov eax, r13d1667 cmp rdx, r151668 jne 2b1669 vmovdqu xmmword ptr [rbx], xmm01670 vmovdqu xmmword ptr [rbx+0x10], xmm11671 vextracti128 xmmword ptr [rbx+0x20], ymm0, 0x011672 vextracti128 xmmword ptr [rbx+0x30], ymm1, 0x011673 vmovaps ymm8, ymmword ptr [rsp+0x260]1674 vmovaps ymm0, ymmword ptr [rsp+0x220]1675 vmovups ymm1, ymmword ptr [rsp+0x228]1676 vmovaps ymm2, ymmword ptr [rsp+0x240]1677 vmovups ymm3, ymmword ptr [rsp+0x248]1678 vblendvps ymm0, ymm0, ymm1, ymm81679 vblendvps ymm2, ymm2, ymm3, ymm81680 vmovaps ymmword ptr [rsp+0x220], ymm01681 vmovaps ymmword ptr [rsp+0x240], ymm21682 add rbx, 641683 add rdi, 161684 sub rsi, 216853:1686 test rsi, 0x11687 je 4b1688 vmovdqu xmm0, xmmword ptr [rcx]1689 vmovdqu xmm1, xmmword ptr [rcx+0x10]1690 vmovd xmm3, dword ptr [rsp+0x220]1691 vpinsrd xmm3, xmm3, dword ptr [rsp+0x240], 11692 vpinsrd xmm13, xmm3, dword ptr [BLAKE3_BLOCK_LEN+rip], 21693 vmovdqa xmm14, xmmword ptr [ROT16+rip]1694 vmovdqa xmm15, xmmword ptr [ROT8+rip]1695 mov r8, qword ptr [rdi]1696 movzx eax, byte ptr [rbp+0x80]1697 or eax, r13d1698 xor edx, edx1699.p2align 517002:1701 mov r14d, eax1702 or eax, r12d1703 add rdx, 641704 cmp rdx, r151705 cmovne eax, r14d1706 vmovdqa xmm2, xmmword ptr [BLAKE3_IV+rip]1707 vmovdqa xmm3, xmm131708 vpinsrd xmm3, xmm3, eax, 31709 vmovups xmm8, xmmword ptr [r8+rdx-0x40]1710 vmovups xmm9, xmmword ptr [r8+rdx-0x30]1711 vshufps xmm4, xmm8, xmm9, 1361712 vshufps xmm5, xmm8, xmm9, 2211713 vmovups xmm8, xmmword ptr [r8+rdx-0x20]1714 vmovups xmm9, xmmword ptr [r8+rdx-0x10]1715 vshufps xmm6, xmm8, xmm9, 1361716 vshufps xmm7, xmm8, xmm9, 2211717 vpshufd xmm6, xmm6, 0x931718 vpshufd xmm7, xmm7, 0x931719 mov al, 717209:1721 vpaddd xmm0, xmm0, xmm41722 vpaddd xmm0, xmm0, xmm11723 vpxor xmm3, xmm3, xmm01724 vpshufb xmm3, xmm3, xmm141725 vpaddd xmm2, xmm2, xmm31726 vpxor xmm1, xmm1, xmm21727 vpsrld xmm8, xmm1, 121728 vpslld xmm1, xmm1, 201729 vpor xmm1, xmm1, xmm81730 vpaddd xmm0, xmm0, xmm51731 vpaddd xmm0, xmm0, xmm11732 vpxor xmm3, xmm3, xmm01733 vpshufb xmm3, xmm3, xmm151734 vpaddd xmm2, xmm2, xmm31735 vpxor xmm1, xmm1, xmm21736 vpsrld xmm8, xmm1, 71737 vpslld xmm1, xmm1, 251738 vpor xmm1, xmm1, xmm81739 vpshufd xmm0, xmm0, 0x931740 vpshufd xmm3, xmm3, 0x4E1741 vpshufd xmm2, xmm2, 0x391742 vpaddd xmm0, xmm0, xmm61743 vpaddd xmm0, xmm0, xmm11744 vpxor xmm3, xmm3, xmm01745 vpshufb xmm3, xmm3, xmm141746 vpaddd xmm2, xmm2, xmm31747 vpxor xmm1, xmm1, xmm21748 vpsrld xmm8, xmm1, 121749 vpslld xmm1, xmm1, 201750 vpor xmm1, xmm1, xmm81751 vpaddd xmm0, xmm0, xmm71752 vpaddd xmm0, xmm0, xmm11753 vpxor xmm3, xmm3, xmm01754 vpshufb xmm3, xmm3, xmm151755 vpaddd xmm2, xmm2, xmm31756 vpxor xmm1, xmm1, xmm21757 vpsrld xmm8, xmm1, 71758 vpslld xmm1, xmm1, 251759 vpor xmm1, xmm1, xmm81760 vpshufd xmm0, xmm0, 0x391761 vpshufd xmm3, xmm3, 0x4E1762 vpshufd xmm2, xmm2, 0x931763 dec al1764 jz 9f1765 vshufps xmm8, xmm4, xmm5, 2141766 vpshufd xmm9, xmm4, 0x0F1767 vpshufd xmm4, xmm8, 0x391768 vshufps xmm8, xmm6, xmm7, 2501769 vpblendd xmm9, xmm9, xmm8, 0xAA1770 vpunpcklqdq xmm8, xmm7, xmm51771 vpblendd xmm8, xmm8, xmm6, 0x881772 vpshufd xmm8, xmm8, 0x781773 vpunpckhdq xmm5, xmm5, xmm71774 vpunpckldq xmm6, xmm6, xmm51775 vpshufd xmm7, xmm6, 0x1E1776 vmovdqa xmm5, xmm91777 vmovdqa xmm6, xmm81778 jmp 9b17799:1780 vpxor xmm0, xmm0, xmm21781 vpxor xmm1, xmm1, xmm31782 mov eax, r13d1783 cmp rdx, r151784 jne 2b1785 vmovdqu xmmword ptr [rbx], xmm01786 vmovdqu xmmword ptr [rbx+0x10], xmm11787 jmp 4b1788 1789.section .rdata1790.p2align 61791ADD0:1792 .long 0, 1, 2, 3, 4, 5, 6, 71793ADD1:1794 .long 8, 8, 8, 8, 8, 8, 8, 81795BLAKE3_IV_0:1796 .long 0x6A09E667, 0x6A09E667, 0x6A09E667, 0x6A09E6671797 .long 0x6A09E667, 0x6A09E667, 0x6A09E667, 0x6A09E6671798BLAKE3_IV_1:1799 .long 0xBB67AE85, 0xBB67AE85, 0xBB67AE85, 0xBB67AE851800 .long 0xBB67AE85, 0xBB67AE85, 0xBB67AE85, 0xBB67AE851801BLAKE3_IV_2:1802 .long 0x3C6EF372, 0x3C6EF372, 0x3C6EF372, 0x3C6EF3721803 .long 0x3C6EF372, 0x3C6EF372, 0x3C6EF372, 0x3C6EF3721804BLAKE3_IV_3:1805 .long 0xA54FF53A, 0xA54FF53A, 0xA54FF53A, 0xA54FF53A1806 .long 0xA54FF53A, 0xA54FF53A, 0xA54FF53A, 0xA54FF53A1807BLAKE3_BLOCK_LEN:1808 .long 0x00000040, 0x00000040, 0x00000040, 0x000000401809 .long 0x00000040, 0x00000040, 0x00000040, 0x000000401810ROT16:1811 .byte 2, 3, 0, 1, 6, 7, 4, 5, 10, 11, 8, 9, 14, 15, 12, 131812ROT8:1813 .byte 1, 2, 3, 0, 5, 6, 7, 4, 9, 10, 11, 8, 13, 14, 15, 121814CMP_MSB_MASK:1815 .long 0x80000000, 0x80000000, 0x80000000, 0x800000001816 .long 0x80000000, 0x80000000, 0x80000000, 0x800000001817BLAKE3_IV:1818 .long 0x6A09E667, 0xBB67AE85, 0x3C6EF372, 0xA54FF53A1819 1820