1829 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_avx227HIDDEN blake3_hash_many_avx228.global _blake3_hash_many_avx229.global blake3_hash_many_avx230#ifdef __APPLE__31.text32#else33.section .text34#endif35 .p2align 636_blake3_hash_many_avx2:37blake3_hash_many_avx2:38 _CET_ENDBR39 push r1540 push r1441 push r1342 push r1243 push rbx44 push rbp45 mov rbp, rsp46 sub rsp, 68047 and rsp, 0xFFFFFFFFFFFFFFC048 neg r9d49 vmovd xmm0, r9d50 vpbroadcastd ymm0, xmm051 vmovdqa ymmword ptr [rsp+0x280], ymm052 vpand ymm1, ymm0, ymmword ptr [ADD0+rip]53 vpand ymm2, ymm0, ymmword ptr [ADD1+rip]54 vmovdqa ymmword ptr [rsp+0x220], ymm255 vmovd xmm2, r8d56 vpbroadcastd ymm2, xmm257 vpaddd ymm2, ymm2, ymm158 vmovdqa ymmword ptr [rsp+0x240], ymm259 vpxor ymm1, ymm1, ymmword ptr [CMP_MSB_MASK+rip]60 vpxor ymm2, ymm2, ymmword ptr [CMP_MSB_MASK+rip]61 vpcmpgtd ymm2, ymm1, ymm262 shr r8, 3263 vmovd xmm3, r8d64 vpbroadcastd ymm3, xmm365 vpsubd ymm3, ymm3, ymm266 vmovdqa ymmword ptr [rsp+0x260], ymm367 shl rdx, 668 mov qword ptr [rsp+0x2A0], rdx69 cmp rsi, 870 jc 3f712:72 vpbroadcastd ymm0, dword ptr [rcx]73 vpbroadcastd ymm1, dword ptr [rcx+0x4]74 vpbroadcastd ymm2, dword ptr [rcx+0x8]75 vpbroadcastd ymm3, dword ptr [rcx+0xC]76 vpbroadcastd ymm4, dword ptr [rcx+0x10]77 vpbroadcastd ymm5, dword ptr [rcx+0x14]78 vpbroadcastd ymm6, dword ptr [rcx+0x18]79 vpbroadcastd ymm7, dword ptr [rcx+0x1C]80 mov r8, qword ptr [rdi]81 mov r9, qword ptr [rdi+0x8]82 mov r10, qword ptr [rdi+0x10]83 mov r11, qword ptr [rdi+0x18]84 mov r12, qword ptr [rdi+0x20]85 mov r13, qword ptr [rdi+0x28]86 mov r14, qword ptr [rdi+0x30]87 mov r15, qword ptr [rdi+0x38]88 movzx eax, byte ptr [rbp+0x38]89 movzx ebx, byte ptr [rbp+0x40]90 or eax, ebx91 xor edx, edx92.p2align 5939:94 movzx ebx, byte ptr [rbp+0x48]95 or ebx, eax96 add rdx, 6497 cmp rdx, qword ptr [rsp+0x2A0]98 cmove eax, ebx99 mov dword ptr [rsp+0x200], eax100 vmovups xmm8, xmmword ptr [r8+rdx-0x40]101 vinsertf128 ymm8, ymm8, xmmword ptr [r12+rdx-0x40], 0x01102 vmovups xmm9, xmmword ptr [r9+rdx-0x40]103 vinsertf128 ymm9, ymm9, xmmword ptr [r13+rdx-0x40], 0x01104 vunpcklpd ymm12, ymm8, ymm9105 vunpckhpd ymm13, ymm8, ymm9106 vmovups xmm10, xmmword ptr [r10+rdx-0x40]107 vinsertf128 ymm10, ymm10, xmmword ptr [r14+rdx-0x40], 0x01108 vmovups xmm11, xmmword ptr [r11+rdx-0x40]109 vinsertf128 ymm11, ymm11, xmmword ptr [r15+rdx-0x40], 0x01110 vunpcklpd ymm14, ymm10, ymm11111 vunpckhpd ymm15, ymm10, ymm11112 vshufps ymm8, ymm12, ymm14, 136113 vmovaps ymmword ptr [rsp], ymm8114 vshufps ymm9, ymm12, ymm14, 221115 vmovaps ymmword ptr [rsp+0x20], ymm9116 vshufps ymm10, ymm13, ymm15, 136117 vmovaps ymmword ptr [rsp+0x40], ymm10118 vshufps ymm11, ymm13, ymm15, 221119 vmovaps ymmword ptr [rsp+0x60], ymm11120 vmovups xmm8, xmmword ptr [r8+rdx-0x30]121 vinsertf128 ymm8, ymm8, xmmword ptr [r12+rdx-0x30], 0x01122 vmovups xmm9, xmmword ptr [r9+rdx-0x30]123 vinsertf128 ymm9, ymm9, xmmword ptr [r13+rdx-0x30], 0x01124 vunpcklpd ymm12, ymm8, ymm9125 vunpckhpd ymm13, ymm8, ymm9126 vmovups xmm10, xmmword ptr [r10+rdx-0x30]127 vinsertf128 ymm10, ymm10, xmmword ptr [r14+rdx-0x30], 0x01128 vmovups xmm11, xmmword ptr [r11+rdx-0x30]129 vinsertf128 ymm11, ymm11, xmmword ptr [r15+rdx-0x30], 0x01130 vunpcklpd ymm14, ymm10, ymm11131 vunpckhpd ymm15, ymm10, ymm11132 vshufps ymm8, ymm12, ymm14, 136133 vmovaps ymmword ptr [rsp+0x80], ymm8134 vshufps ymm9, ymm12, ymm14, 221135 vmovaps ymmword ptr [rsp+0xA0], ymm9136 vshufps ymm10, ymm13, ymm15, 136137 vmovaps ymmword ptr [rsp+0xC0], ymm10138 vshufps ymm11, ymm13, ymm15, 221139 vmovaps ymmword ptr [rsp+0xE0], ymm11140 vmovups xmm8, xmmword ptr [r8+rdx-0x20]141 vinsertf128 ymm8, ymm8, xmmword ptr [r12+rdx-0x20], 0x01142 vmovups xmm9, xmmword ptr [r9+rdx-0x20]143 vinsertf128 ymm9, ymm9, xmmword ptr [r13+rdx-0x20], 0x01144 vunpcklpd ymm12, ymm8, ymm9145 vunpckhpd ymm13, ymm8, ymm9146 vmovups xmm10, xmmword ptr [r10+rdx-0x20]147 vinsertf128 ymm10, ymm10, xmmword ptr [r14+rdx-0x20], 0x01148 vmovups xmm11, xmmword ptr [r11+rdx-0x20]149 vinsertf128 ymm11, ymm11, xmmword ptr [r15+rdx-0x20], 0x01150 vunpcklpd ymm14, ymm10, ymm11151 vunpckhpd ymm15, ymm10, ymm11152 vshufps ymm8, ymm12, ymm14, 136153 vmovaps ymmword ptr [rsp+0x100], ymm8154 vshufps ymm9, ymm12, ymm14, 221155 vmovaps ymmword ptr [rsp+0x120], ymm9156 vshufps ymm10, ymm13, ymm15, 136157 vmovaps ymmword ptr [rsp+0x140], ymm10158 vshufps ymm11, ymm13, ymm15, 221159 vmovaps ymmword ptr [rsp+0x160], ymm11160 vmovups xmm8, xmmword ptr [r8+rdx-0x10]161 vinsertf128 ymm8, ymm8, xmmword ptr [r12+rdx-0x10], 0x01162 vmovups xmm9, xmmword ptr [r9+rdx-0x10]163 vinsertf128 ymm9, ymm9, xmmword ptr [r13+rdx-0x10], 0x01164 vunpcklpd ymm12, ymm8, ymm9165 vunpckhpd ymm13, ymm8, ymm9166 vmovups xmm10, xmmword ptr [r10+rdx-0x10]167 vinsertf128 ymm10, ymm10, xmmword ptr [r14+rdx-0x10], 0x01168 vmovups xmm11, xmmword ptr [r11+rdx-0x10]169 vinsertf128 ymm11, ymm11, xmmword ptr [r15+rdx-0x10], 0x01170 vunpcklpd ymm14, ymm10, ymm11171 vunpckhpd ymm15, ymm10, ymm11172 vshufps ymm8, ymm12, ymm14, 136173 vmovaps ymmword ptr [rsp+0x180], ymm8174 vshufps ymm9, ymm12, ymm14, 221175 vmovaps ymmword ptr [rsp+0x1A0], ymm9176 vshufps ymm10, ymm13, ymm15, 136177 vmovaps ymmword ptr [rsp+0x1C0], ymm10178 vshufps ymm11, ymm13, ymm15, 221179 vmovaps ymmword ptr [rsp+0x1E0], ymm11180 vpbroadcastd ymm15, dword ptr [rsp+0x200]181 prefetcht0 [r8+rdx+0x80]182 prefetcht0 [r12+rdx+0x80]183 prefetcht0 [r9+rdx+0x80]184 prefetcht0 [r13+rdx+0x80]185 prefetcht0 [r10+rdx+0x80]186 prefetcht0 [r14+rdx+0x80]187 prefetcht0 [r11+rdx+0x80]188 prefetcht0 [r15+rdx+0x80]189 vpaddd ymm0, ymm0, ymmword ptr [rsp]190 vpaddd ymm1, ymm1, ymmword ptr [rsp+0x40]191 vpaddd ymm2, ymm2, ymmword ptr [rsp+0x80]192 vpaddd ymm3, ymm3, ymmword ptr [rsp+0xC0]193 vpaddd ymm0, ymm0, ymm4194 vpaddd ymm1, ymm1, ymm5195 vpaddd ymm2, ymm2, ymm6196 vpaddd ymm3, ymm3, ymm7197 vpxor ymm12, ymm0, ymmword ptr [rsp+0x240]198 vpxor ymm13, ymm1, ymmword ptr [rsp+0x260]199 vpxor ymm14, ymm2, ymmword ptr [BLAKE3_BLOCK_LEN+rip]200 vpxor ymm15, ymm3, ymm15201 vbroadcasti128 ymm8, xmmword ptr [ROT16+rip]202 vpshufb ymm12, ymm12, ymm8203 vpshufb ymm13, ymm13, ymm8204 vpshufb ymm14, ymm14, ymm8205 vpshufb ymm15, ymm15, ymm8206 vpaddd ymm8, ymm12, ymmword ptr [BLAKE3_IV_0+rip]207 vpaddd ymm9, ymm13, ymmword ptr [BLAKE3_IV_1+rip]208 vpaddd ymm10, ymm14, ymmword ptr [BLAKE3_IV_2+rip]209 vpaddd ymm11, ymm15, ymmword ptr [BLAKE3_IV_3+rip]210 vpxor ymm4, ymm4, ymm8211 vpxor ymm5, ymm5, ymm9212 vpxor ymm6, ymm6, ymm10213 vpxor ymm7, ymm7, ymm11214 vmovdqa ymmword ptr [rsp+0x200], ymm8215 vpsrld ymm8, ymm4, 12216 vpslld ymm4, ymm4, 20217 vpor ymm4, ymm4, ymm8218 vpsrld ymm8, ymm5, 12219 vpslld ymm5, ymm5, 20220 vpor ymm5, ymm5, ymm8221 vpsrld ymm8, ymm6, 12222 vpslld ymm6, ymm6, 20223 vpor ymm6, ymm6, ymm8224 vpsrld ymm8, ymm7, 12225 vpslld ymm7, ymm7, 20226 vpor ymm7, ymm7, ymm8227 vpaddd ymm0, ymm0, ymmword ptr [rsp+0x20]228 vpaddd ymm1, ymm1, ymmword ptr [rsp+0x60]229 vpaddd ymm2, ymm2, ymmword ptr [rsp+0xA0]230 vpaddd ymm3, ymm3, ymmword ptr [rsp+0xE0]231 vpaddd ymm0, ymm0, ymm4232 vpaddd ymm1, ymm1, ymm5233 vpaddd ymm2, ymm2, ymm6234 vpaddd ymm3, ymm3, ymm7235 vpxor ymm12, ymm12, ymm0236 vpxor ymm13, ymm13, ymm1237 vpxor ymm14, ymm14, ymm2238 vpxor ymm15, ymm15, ymm3239 vbroadcasti128 ymm8, xmmword ptr [ROT8+rip]240 vpshufb ymm12, ymm12, ymm8241 vpshufb ymm13, ymm13, ymm8242 vpshufb ymm14, ymm14, ymm8243 vpshufb ymm15, ymm15, ymm8244 vpaddd ymm8, ymm12, ymmword ptr [rsp+0x200]245 vpaddd ymm9, ymm9, ymm13246 vpaddd ymm10, ymm10, ymm14247 vpaddd ymm11, ymm11, ymm15248 vpxor ymm4, ymm4, ymm8249 vpxor ymm5, ymm5, ymm9250 vpxor ymm6, ymm6, ymm10251 vpxor ymm7, ymm7, ymm11252 vmovdqa ymmword ptr [rsp+0x200], ymm8253 vpsrld ymm8, ymm4, 7254 vpslld ymm4, ymm4, 25255 vpor ymm4, ymm4, ymm8256 vpsrld ymm8, ymm5, 7257 vpslld ymm5, ymm5, 25258 vpor ymm5, ymm5, ymm8259 vpsrld ymm8, ymm6, 7260 vpslld ymm6, ymm6, 25261 vpor ymm6, ymm6, ymm8262 vpsrld ymm8, ymm7, 7263 vpslld ymm7, ymm7, 25264 vpor ymm7, ymm7, ymm8265 vpaddd ymm0, ymm0, ymmword ptr [rsp+0x100]266 vpaddd ymm1, ymm1, ymmword ptr [rsp+0x140]267 vpaddd ymm2, ymm2, ymmword ptr [rsp+0x180]268 vpaddd ymm3, ymm3, ymmword ptr [rsp+0x1C0]269 vpaddd ymm0, ymm0, ymm5270 vpaddd ymm1, ymm1, ymm6271 vpaddd ymm2, ymm2, ymm7272 vpaddd ymm3, ymm3, ymm4273 vpxor ymm15, ymm15, ymm0274 vpxor ymm12, ymm12, ymm1275 vpxor ymm13, ymm13, ymm2276 vpxor ymm14, ymm14, ymm3277 vbroadcasti128 ymm8, xmmword ptr [ROT16+rip]278 vpshufb ymm15, ymm15, ymm8279 vpshufb ymm12, ymm12, ymm8280 vpshufb ymm13, ymm13, ymm8281 vpshufb ymm14, ymm14, ymm8282 vpaddd ymm10, ymm10, ymm15283 vpaddd ymm11, ymm11, ymm12284 vpaddd ymm8, ymm13, ymmword ptr [rsp+0x200]285 vpaddd ymm9, ymm9, ymm14286 vpxor ymm5, ymm5, ymm10287 vpxor ymm6, ymm6, ymm11288 vpxor ymm7, ymm7, ymm8289 vpxor ymm4, ymm4, ymm9290 vmovdqa ymmword ptr [rsp+0x200], ymm8291 vpsrld ymm8, ymm5, 12292 vpslld ymm5, ymm5, 20293 vpor ymm5, ymm5, ymm8294 vpsrld ymm8, ymm6, 12295 vpslld ymm6, ymm6, 20296 vpor ymm6, ymm6, ymm8297 vpsrld ymm8, ymm7, 12298 vpslld ymm7, ymm7, 20299 vpor ymm7, ymm7, ymm8300 vpsrld ymm8, ymm4, 12301 vpslld ymm4, ymm4, 20302 vpor ymm4, ymm4, ymm8303 vpaddd ymm0, ymm0, ymmword ptr [rsp+0x120]304 vpaddd ymm1, ymm1, ymmword ptr [rsp+0x160]305 vpaddd ymm2, ymm2, ymmword ptr [rsp+0x1A0]306 vpaddd ymm3, ymm3, ymmword ptr [rsp+0x1E0]307 vpaddd ymm0, ymm0, ymm5308 vpaddd ymm1, ymm1, ymm6309 vpaddd ymm2, ymm2, ymm7310 vpaddd ymm3, ymm3, ymm4311 vpxor ymm15, ymm15, ymm0312 vpxor ymm12, ymm12, ymm1313 vpxor ymm13, ymm13, ymm2314 vpxor ymm14, ymm14, ymm3315 vbroadcasti128 ymm8, xmmword ptr [ROT8+rip]316 vpshufb ymm15, ymm15, ymm8317 vpshufb ymm12, ymm12, ymm8318 vpshufb ymm13, ymm13, ymm8319 vpshufb ymm14, ymm14, ymm8320 vpaddd ymm10, ymm10, ymm15321 vpaddd ymm11, ymm11, ymm12322 vpaddd ymm8, ymm13, ymmword ptr [rsp+0x200]323 vpaddd ymm9, ymm9, ymm14324 vpxor ymm5, ymm5, ymm10325 vpxor ymm6, ymm6, ymm11326 vpxor ymm7, ymm7, ymm8327 vpxor ymm4, ymm4, ymm9328 vmovdqa ymmword ptr [rsp+0x200], ymm8329 vpsrld ymm8, ymm5, 7330 vpslld ymm5, ymm5, 25331 vpor ymm5, ymm5, ymm8332 vpsrld ymm8, ymm6, 7333 vpslld ymm6, ymm6, 25334 vpor ymm6, ymm6, ymm8335 vpsrld ymm8, ymm7, 7336 vpslld ymm7, ymm7, 25337 vpor ymm7, ymm7, ymm8338 vpsrld ymm8, ymm4, 7339 vpslld ymm4, ymm4, 25340 vpor ymm4, ymm4, ymm8341 vpaddd ymm0, ymm0, ymmword ptr [rsp+0x40]342 vpaddd ymm1, ymm1, ymmword ptr [rsp+0x60]343 vpaddd ymm2, ymm2, ymmword ptr [rsp+0xE0]344 vpaddd ymm3, ymm3, ymmword ptr [rsp+0x80]345 vpaddd ymm0, ymm0, ymm4346 vpaddd ymm1, ymm1, ymm5347 vpaddd ymm2, ymm2, ymm6348 vpaddd ymm3, ymm3, ymm7349 vpxor ymm12, ymm12, ymm0350 vpxor ymm13, ymm13, ymm1351 vpxor ymm14, ymm14, ymm2352 vpxor ymm15, ymm15, ymm3353 vbroadcasti128 ymm8, xmmword ptr [ROT16+rip]354 vpshufb ymm12, ymm12, ymm8355 vpshufb ymm13, ymm13, ymm8356 vpshufb ymm14, ymm14, ymm8357 vpshufb ymm15, ymm15, ymm8358 vpaddd ymm8, ymm12, ymmword ptr [rsp+0x200]359 vpaddd ymm9, ymm9, ymm13360 vpaddd ymm10, ymm10, ymm14361 vpaddd ymm11, ymm11, ymm15362 vpxor ymm4, ymm4, ymm8363 vpxor ymm5, ymm5, ymm9364 vpxor ymm6, ymm6, ymm10365 vpxor ymm7, ymm7, ymm11366 vmovdqa ymmword ptr [rsp+0x200], ymm8367 vpsrld ymm8, ymm4, 12368 vpslld ymm4, ymm4, 20369 vpor ymm4, ymm4, ymm8370 vpsrld ymm8, ymm5, 12371 vpslld ymm5, ymm5, 20372 vpor ymm5, ymm5, ymm8373 vpsrld ymm8, ymm6, 12374 vpslld ymm6, ymm6, 20375 vpor ymm6, ymm6, ymm8376 vpsrld ymm8, ymm7, 12377 vpslld ymm7, ymm7, 20378 vpor ymm7, ymm7, ymm8379 vpaddd ymm0, ymm0, ymmword ptr [rsp+0xC0]380 vpaddd ymm1, ymm1, ymmword ptr [rsp+0x140]381 vpaddd ymm2, ymm2, ymmword ptr [rsp]382 vpaddd ymm3, ymm3, ymmword ptr [rsp+0x1A0]383 vpaddd ymm0, ymm0, ymm4384 vpaddd ymm1, ymm1, ymm5385 vpaddd ymm2, ymm2, ymm6386 vpaddd ymm3, ymm3, ymm7387 vpxor ymm12, ymm12, ymm0388 vpxor ymm13, ymm13, ymm1389 vpxor ymm14, ymm14, ymm2390 vpxor ymm15, ymm15, ymm3391 vbroadcasti128 ymm8, xmmword ptr [ROT8+rip]392 vpshufb ymm12, ymm12, ymm8393 vpshufb ymm13, ymm13, ymm8394 vpshufb ymm14, ymm14, ymm8395 vpshufb ymm15, ymm15, ymm8396 vpaddd ymm8, ymm12, ymmword ptr [rsp+0x200]397 vpaddd ymm9, ymm9, ymm13398 vpaddd ymm10, ymm10, ymm14399 vpaddd ymm11, ymm11, ymm15400 vpxor ymm4, ymm4, ymm8401 vpxor ymm5, ymm5, ymm9402 vpxor ymm6, ymm6, ymm10403 vpxor ymm7, ymm7, ymm11404 vmovdqa ymmword ptr [rsp+0x200], ymm8405 vpsrld ymm8, ymm4, 7406 vpslld ymm4, ymm4, 25407 vpor ymm4, ymm4, ymm8408 vpsrld ymm8, ymm5, 7409 vpslld ymm5, ymm5, 25410 vpor ymm5, ymm5, ymm8411 vpsrld ymm8, ymm6, 7412 vpslld ymm6, ymm6, 25413 vpor ymm6, ymm6, ymm8414 vpsrld ymm8, ymm7, 7415 vpslld ymm7, ymm7, 25416 vpor ymm7, ymm7, ymm8417 vpaddd ymm0, ymm0, ymmword ptr [rsp+0x20]418 vpaddd ymm1, ymm1, ymmword ptr [rsp+0x180]419 vpaddd ymm2, ymm2, ymmword ptr [rsp+0x120]420 vpaddd ymm3, ymm3, ymmword ptr [rsp+0x1E0]421 vpaddd ymm0, ymm0, ymm5422 vpaddd ymm1, ymm1, ymm6423 vpaddd ymm2, ymm2, ymm7424 vpaddd ymm3, ymm3, ymm4425 vpxor ymm15, ymm15, ymm0426 vpxor ymm12, ymm12, ymm1427 vpxor ymm13, ymm13, ymm2428 vpxor ymm14, ymm14, ymm3429 vbroadcasti128 ymm8, xmmword ptr [ROT16+rip]430 vpshufb ymm15, ymm15, ymm8431 vpshufb ymm12, ymm12, ymm8432 vpshufb ymm13, ymm13, ymm8433 vpshufb ymm14, ymm14, ymm8434 vpaddd ymm10, ymm10, ymm15435 vpaddd ymm11, ymm11, ymm12436 vpaddd ymm8, ymm13, ymmword ptr [rsp+0x200]437 vpaddd ymm9, ymm9, ymm14438 vpxor ymm5, ymm5, ymm10439 vpxor ymm6, ymm6, ymm11440 vpxor ymm7, ymm7, ymm8441 vpxor ymm4, ymm4, ymm9442 vmovdqa ymmword ptr [rsp+0x200], ymm8443 vpsrld ymm8, ymm5, 12444 vpslld ymm5, ymm5, 20445 vpor ymm5, ymm5, ymm8446 vpsrld ymm8, ymm6, 12447 vpslld ymm6, ymm6, 20448 vpor ymm6, ymm6, ymm8449 vpsrld ymm8, ymm7, 12450 vpslld ymm7, ymm7, 20451 vpor ymm7, ymm7, ymm8452 vpsrld ymm8, ymm4, 12453 vpslld ymm4, ymm4, 20454 vpor ymm4, ymm4, ymm8455 vpaddd ymm0, ymm0, ymmword ptr [rsp+0x160]456 vpaddd ymm1, ymm1, ymmword ptr [rsp+0xA0]457 vpaddd ymm2, ymm2, ymmword ptr [rsp+0x1C0]458 vpaddd ymm3, ymm3, ymmword ptr [rsp+0x100]459 vpaddd ymm0, ymm0, ymm5460 vpaddd ymm1, ymm1, ymm6461 vpaddd ymm2, ymm2, ymm7462 vpaddd ymm3, ymm3, ymm4463 vpxor ymm15, ymm15, ymm0464 vpxor ymm12, ymm12, ymm1465 vpxor ymm13, ymm13, ymm2466 vpxor ymm14, ymm14, ymm3467 vbroadcasti128 ymm8, xmmword ptr [ROT8+rip]468 vpshufb ymm15, ymm15, ymm8469 vpshufb ymm12, ymm12, ymm8470 vpshufb ymm13, ymm13, ymm8471 vpshufb ymm14, ymm14, ymm8472 vpaddd ymm10, ymm10, ymm15473 vpaddd ymm11, ymm11, ymm12474 vpaddd ymm8, ymm13, ymmword ptr [rsp+0x200]475 vpaddd ymm9, ymm9, ymm14476 vpxor ymm5, ymm5, ymm10477 vpxor ymm6, ymm6, ymm11478 vpxor ymm7, ymm7, ymm8479 vpxor ymm4, ymm4, ymm9480 vmovdqa ymmword ptr [rsp+0x200], ymm8481 vpsrld ymm8, ymm5, 7482 vpslld ymm5, ymm5, 25483 vpor ymm5, ymm5, ymm8484 vpsrld ymm8, ymm6, 7485 vpslld ymm6, ymm6, 25486 vpor ymm6, ymm6, ymm8487 vpsrld ymm8, ymm7, 7488 vpslld ymm7, ymm7, 25489 vpor ymm7, ymm7, ymm8490 vpsrld ymm8, ymm4, 7491 vpslld ymm4, ymm4, 25492 vpor ymm4, ymm4, ymm8493 vpaddd ymm0, ymm0, ymmword ptr [rsp+0x60]494 vpaddd ymm1, ymm1, ymmword ptr [rsp+0x140]495 vpaddd ymm2, ymm2, ymmword ptr [rsp+0x1A0]496 vpaddd ymm3, ymm3, ymmword ptr [rsp+0xE0]497 vpaddd ymm0, ymm0, ymm4498 vpaddd ymm1, ymm1, ymm5499 vpaddd ymm2, ymm2, ymm6500 vpaddd ymm3, ymm3, ymm7501 vpxor ymm12, ymm12, ymm0502 vpxor ymm13, ymm13, ymm1503 vpxor ymm14, ymm14, ymm2504 vpxor ymm15, ymm15, ymm3505 vbroadcasti128 ymm8, xmmword ptr [ROT16+rip]506 vpshufb ymm12, ymm12, ymm8507 vpshufb ymm13, ymm13, ymm8508 vpshufb ymm14, ymm14, ymm8509 vpshufb ymm15, ymm15, ymm8510 vpaddd ymm8, ymm12, ymmword ptr [rsp+0x200]511 vpaddd ymm9, ymm9, ymm13512 vpaddd ymm10, ymm10, ymm14513 vpaddd ymm11, ymm11, ymm15514 vpxor ymm4, ymm4, ymm8515 vpxor ymm5, ymm5, ymm9516 vpxor ymm6, ymm6, ymm10517 vpxor ymm7, ymm7, ymm11518 vmovdqa ymmword ptr [rsp+0x200], ymm8519 vpsrld ymm8, ymm4, 12520 vpslld ymm4, ymm4, 20521 vpor ymm4, ymm4, ymm8522 vpsrld ymm8, ymm5, 12523 vpslld ymm5, ymm5, 20524 vpor ymm5, ymm5, ymm8525 vpsrld ymm8, ymm6, 12526 vpslld ymm6, ymm6, 20527 vpor ymm6, ymm6, ymm8528 vpsrld ymm8, ymm7, 12529 vpslld ymm7, ymm7, 20530 vpor ymm7, ymm7, ymm8531 vpaddd ymm0, ymm0, ymmword ptr [rsp+0x80]532 vpaddd ymm1, ymm1, ymmword ptr [rsp+0x180]533 vpaddd ymm2, ymm2, ymmword ptr [rsp+0x40]534 vpaddd ymm3, ymm3, ymmword ptr [rsp+0x1C0]535 vpaddd ymm0, ymm0, ymm4536 vpaddd ymm1, ymm1, ymm5537 vpaddd ymm2, ymm2, ymm6538 vpaddd ymm3, ymm3, ymm7539 vpxor ymm12, ymm12, ymm0540 vpxor ymm13, ymm13, ymm1541 vpxor ymm14, ymm14, ymm2542 vpxor ymm15, ymm15, ymm3543 vbroadcasti128 ymm8, xmmword ptr [ROT8+rip]544 vpshufb ymm12, ymm12, ymm8545 vpshufb ymm13, ymm13, ymm8546 vpshufb ymm14, ymm14, ymm8547 vpshufb ymm15, ymm15, ymm8548 vpaddd ymm8, ymm12, ymmword ptr [rsp+0x200]549 vpaddd ymm9, ymm9, ymm13550 vpaddd ymm10, ymm10, ymm14551 vpaddd ymm11, ymm11, ymm15552 vpxor ymm4, ymm4, ymm8553 vpxor ymm5, ymm5, ymm9554 vpxor ymm6, ymm6, ymm10555 vpxor ymm7, ymm7, ymm11556 vmovdqa ymmword ptr [rsp+0x200], ymm8557 vpsrld ymm8, ymm4, 7558 vpslld ymm4, ymm4, 25559 vpor ymm4, ymm4, ymm8560 vpsrld ymm8, ymm5, 7561 vpslld ymm5, ymm5, 25562 vpor ymm5, ymm5, ymm8563 vpsrld ymm8, ymm6, 7564 vpslld ymm6, ymm6, 25565 vpor ymm6, ymm6, ymm8566 vpsrld ymm8, ymm7, 7567 vpslld ymm7, ymm7, 25568 vpor ymm7, ymm7, ymm8569 vpaddd ymm0, ymm0, ymmword ptr [rsp+0xC0]570 vpaddd ymm1, ymm1, ymmword ptr [rsp+0x120]571 vpaddd ymm2, ymm2, ymmword ptr [rsp+0x160]572 vpaddd ymm3, ymm3, ymmword ptr [rsp+0x100]573 vpaddd ymm0, ymm0, ymm5574 vpaddd ymm1, ymm1, ymm6575 vpaddd ymm2, ymm2, ymm7576 vpaddd ymm3, ymm3, ymm4577 vpxor ymm15, ymm15, ymm0578 vpxor ymm12, ymm12, ymm1579 vpxor ymm13, ymm13, ymm2580 vpxor ymm14, ymm14, ymm3581 vbroadcasti128 ymm8, xmmword ptr [ROT16+rip]582 vpshufb ymm15, ymm15, ymm8583 vpshufb ymm12, ymm12, ymm8584 vpshufb ymm13, ymm13, ymm8585 vpshufb ymm14, ymm14, ymm8586 vpaddd ymm10, ymm10, ymm15587 vpaddd ymm11, ymm11, ymm12588 vpaddd ymm8, ymm13, ymmword ptr [rsp+0x200]589 vpaddd ymm9, ymm9, ymm14590 vpxor ymm5, ymm5, ymm10591 vpxor ymm6, ymm6, ymm11592 vpxor ymm7, ymm7, ymm8593 vpxor ymm4, ymm4, ymm9594 vmovdqa ymmword ptr [rsp+0x200], ymm8595 vpsrld ymm8, ymm5, 12596 vpslld ymm5, ymm5, 20597 vpor ymm5, ymm5, ymm8598 vpsrld ymm8, ymm6, 12599 vpslld ymm6, ymm6, 20600 vpor ymm6, ymm6, ymm8601 vpsrld ymm8, ymm7, 12602 vpslld ymm7, ymm7, 20603 vpor ymm7, ymm7, ymm8604 vpsrld ymm8, ymm4, 12605 vpslld ymm4, ymm4, 20606 vpor ymm4, ymm4, ymm8607 vpaddd ymm0, ymm0, ymmword ptr [rsp+0xA0]608 vpaddd ymm1, ymm1, ymmword ptr [rsp]609 vpaddd ymm2, ymm2, ymmword ptr [rsp+0x1E0]610 vpaddd ymm3, ymm3, ymmword ptr [rsp+0x20]611 vpaddd ymm0, ymm0, ymm5612 vpaddd ymm1, ymm1, ymm6613 vpaddd ymm2, ymm2, ymm7614 vpaddd ymm3, ymm3, ymm4615 vpxor ymm15, ymm15, ymm0616 vpxor ymm12, ymm12, ymm1617 vpxor ymm13, ymm13, ymm2618 vpxor ymm14, ymm14, ymm3619 vbroadcasti128 ymm8, xmmword ptr [ROT8+rip]620 vpshufb ymm15, ymm15, ymm8621 vpshufb ymm12, ymm12, ymm8622 vpshufb ymm13, ymm13, ymm8623 vpshufb ymm14, ymm14, ymm8624 vpaddd ymm10, ymm10, ymm15625 vpaddd ymm11, ymm11, ymm12626 vpaddd ymm8, ymm13, ymmword ptr [rsp+0x200]627 vpaddd ymm9, ymm9, ymm14628 vpxor ymm5, ymm5, ymm10629 vpxor ymm6, ymm6, ymm11630 vpxor ymm7, ymm7, ymm8631 vpxor ymm4, ymm4, ymm9632 vmovdqa ymmword ptr [rsp+0x200], ymm8633 vpsrld ymm8, ymm5, 7634 vpslld ymm5, ymm5, 25635 vpor ymm5, ymm5, ymm8636 vpsrld ymm8, ymm6, 7637 vpslld ymm6, ymm6, 25638 vpor ymm6, ymm6, ymm8639 vpsrld ymm8, ymm7, 7640 vpslld ymm7, ymm7, 25641 vpor ymm7, ymm7, ymm8642 vpsrld ymm8, ymm4, 7643 vpslld ymm4, ymm4, 25644 vpor ymm4, ymm4, ymm8645 vpaddd ymm0, ymm0, ymmword ptr [rsp+0x140]646 vpaddd ymm1, ymm1, ymmword ptr [rsp+0x180]647 vpaddd ymm2, ymm2, ymmword ptr [rsp+0x1C0]648 vpaddd ymm3, ymm3, ymmword ptr [rsp+0x1A0]649 vpaddd ymm0, ymm0, ymm4650 vpaddd ymm1, ymm1, ymm5651 vpaddd ymm2, ymm2, ymm6652 vpaddd ymm3, ymm3, ymm7653 vpxor ymm12, ymm12, ymm0654 vpxor ymm13, ymm13, ymm1655 vpxor ymm14, ymm14, ymm2656 vpxor ymm15, ymm15, ymm3657 vbroadcasti128 ymm8, xmmword ptr [ROT16+rip]658 vpshufb ymm12, ymm12, ymm8659 vpshufb ymm13, ymm13, ymm8660 vpshufb ymm14, ymm14, ymm8661 vpshufb ymm15, ymm15, ymm8662 vpaddd ymm8, ymm12, ymmword ptr [rsp+0x200]663 vpaddd ymm9, ymm9, ymm13664 vpaddd ymm10, ymm10, ymm14665 vpaddd ymm11, ymm11, ymm15666 vpxor ymm4, ymm4, ymm8667 vpxor ymm5, ymm5, ymm9668 vpxor ymm6, ymm6, ymm10669 vpxor ymm7, ymm7, ymm11670 vmovdqa ymmword ptr [rsp+0x200], ymm8671 vpsrld ymm8, ymm4, 12672 vpslld ymm4, ymm4, 20673 vpor ymm4, ymm4, ymm8674 vpsrld ymm8, ymm5, 12675 vpslld ymm5, ymm5, 20676 vpor ymm5, ymm5, ymm8677 vpsrld ymm8, ymm6, 12678 vpslld ymm6, ymm6, 20679 vpor ymm6, ymm6, ymm8680 vpsrld ymm8, ymm7, 12681 vpslld ymm7, ymm7, 20682 vpor ymm7, ymm7, ymm8683 vpaddd ymm0, ymm0, ymmword ptr [rsp+0xE0]684 vpaddd ymm1, ymm1, ymmword ptr [rsp+0x120]685 vpaddd ymm2, ymm2, ymmword ptr [rsp+0x60]686 vpaddd ymm3, ymm3, ymmword ptr [rsp+0x1E0]687 vpaddd ymm0, ymm0, ymm4688 vpaddd ymm1, ymm1, ymm5689 vpaddd ymm2, ymm2, ymm6690 vpaddd ymm3, ymm3, ymm7691 vpxor ymm12, ymm12, ymm0692 vpxor ymm13, ymm13, ymm1693 vpxor ymm14, ymm14, ymm2694 vpxor ymm15, ymm15, ymm3695 vbroadcasti128 ymm8, xmmword ptr [ROT8+rip]696 vpshufb ymm12, ymm12, ymm8697 vpshufb ymm13, ymm13, ymm8698 vpshufb ymm14, ymm14, ymm8699 vpshufb ymm15, ymm15, ymm8700 vpaddd ymm8, ymm12, ymmword ptr [rsp+0x200]701 vpaddd ymm9, ymm9, ymm13702 vpaddd ymm10, ymm10, ymm14703 vpaddd ymm11, ymm11, ymm15704 vpxor ymm4, ymm4, ymm8705 vpxor ymm5, ymm5, ymm9706 vpxor ymm6, ymm6, ymm10707 vpxor ymm7, ymm7, ymm11708 vmovdqa ymmword ptr [rsp+0x200], ymm8709 vpsrld ymm8, ymm4, 7710 vpslld ymm4, ymm4, 25711 vpor ymm4, ymm4, ymm8712 vpsrld ymm8, ymm5, 7713 vpslld ymm5, ymm5, 25714 vpor ymm5, ymm5, ymm8715 vpsrld ymm8, ymm6, 7716 vpslld ymm6, ymm6, 25717 vpor ymm6, ymm6, ymm8718 vpsrld ymm8, ymm7, 7719 vpslld ymm7, ymm7, 25720 vpor ymm7, ymm7, ymm8721 vpaddd ymm0, ymm0, ymmword ptr [rsp+0x80]722 vpaddd ymm1, ymm1, ymmword ptr [rsp+0x160]723 vpaddd ymm2, ymm2, ymmword ptr [rsp+0xA0]724 vpaddd ymm3, ymm3, ymmword ptr [rsp+0x20]725 vpaddd ymm0, ymm0, ymm5726 vpaddd ymm1, ymm1, ymm6727 vpaddd ymm2, ymm2, ymm7728 vpaddd ymm3, ymm3, ymm4729 vpxor ymm15, ymm15, ymm0730 vpxor ymm12, ymm12, ymm1731 vpxor ymm13, ymm13, ymm2732 vpxor ymm14, ymm14, ymm3733 vbroadcasti128 ymm8, xmmword ptr [ROT16+rip]734 vpshufb ymm15, ymm15, ymm8735 vpshufb ymm12, ymm12, ymm8736 vpshufb ymm13, ymm13, ymm8737 vpshufb ymm14, ymm14, ymm8738 vpaddd ymm10, ymm10, ymm15739 vpaddd ymm11, ymm11, ymm12740 vpaddd ymm8, ymm13, ymmword ptr [rsp+0x200]741 vpaddd ymm9, ymm9, ymm14742 vpxor ymm5, ymm5, ymm10743 vpxor ymm6, ymm6, ymm11744 vpxor ymm7, ymm7, ymm8745 vpxor ymm4, ymm4, ymm9746 vmovdqa ymmword ptr [rsp+0x200], ymm8747 vpsrld ymm8, ymm5, 12748 vpslld ymm5, ymm5, 20749 vpor ymm5, ymm5, ymm8750 vpsrld ymm8, ymm6, 12751 vpslld ymm6, ymm6, 20752 vpor ymm6, ymm6, ymm8753 vpsrld ymm8, ymm7, 12754 vpslld ymm7, ymm7, 20755 vpor ymm7, ymm7, ymm8756 vpsrld ymm8, ymm4, 12757 vpslld ymm4, ymm4, 20758 vpor ymm4, ymm4, ymm8759 vpaddd ymm0, ymm0, ymmword ptr [rsp]760 vpaddd ymm1, ymm1, ymmword ptr [rsp+0x40]761 vpaddd ymm2, ymm2, ymmword ptr [rsp+0x100]762 vpaddd ymm3, ymm3, ymmword ptr [rsp+0xC0]763 vpaddd ymm0, ymm0, ymm5764 vpaddd ymm1, ymm1, ymm6765 vpaddd ymm2, ymm2, ymm7766 vpaddd ymm3, ymm3, ymm4767 vpxor ymm15, ymm15, ymm0768 vpxor ymm12, ymm12, ymm1769 vpxor ymm13, ymm13, ymm2770 vpxor ymm14, ymm14, ymm3771 vbroadcasti128 ymm8, xmmword ptr [ROT8+rip]772 vpshufb ymm15, ymm15, ymm8773 vpshufb ymm12, ymm12, ymm8774 vpshufb ymm13, ymm13, ymm8775 vpshufb ymm14, ymm14, ymm8776 vpaddd ymm10, ymm10, ymm15777 vpaddd ymm11, ymm11, ymm12778 vpaddd ymm8, ymm13, ymmword ptr [rsp+0x200]779 vpaddd ymm9, ymm9, ymm14780 vpxor ymm5, ymm5, ymm10781 vpxor ymm6, ymm6, ymm11782 vpxor ymm7, ymm7, ymm8783 vpxor ymm4, ymm4, ymm9784 vmovdqa ymmword ptr [rsp+0x200], ymm8785 vpsrld ymm8, ymm5, 7786 vpslld ymm5, ymm5, 25787 vpor ymm5, ymm5, ymm8788 vpsrld ymm8, ymm6, 7789 vpslld ymm6, ymm6, 25790 vpor ymm6, ymm6, ymm8791 vpsrld ymm8, ymm7, 7792 vpslld ymm7, ymm7, 25793 vpor ymm7, ymm7, ymm8794 vpsrld ymm8, ymm4, 7795 vpslld ymm4, ymm4, 25796 vpor ymm4, ymm4, ymm8797 vpaddd ymm0, ymm0, ymmword ptr [rsp+0x180]798 vpaddd ymm1, ymm1, ymmword ptr [rsp+0x120]799 vpaddd ymm2, ymm2, ymmword ptr [rsp+0x1E0]800 vpaddd ymm3, ymm3, ymmword ptr [rsp+0x1C0]801 vpaddd ymm0, ymm0, ymm4802 vpaddd ymm1, ymm1, ymm5803 vpaddd ymm2, ymm2, ymm6804 vpaddd ymm3, ymm3, ymm7805 vpxor ymm12, ymm12, ymm0806 vpxor ymm13, ymm13, ymm1807 vpxor ymm14, ymm14, ymm2808 vpxor ymm15, ymm15, ymm3809 vbroadcasti128 ymm8, xmmword ptr [ROT16+rip]810 vpshufb ymm12, ymm12, ymm8811 vpshufb ymm13, ymm13, ymm8812 vpshufb ymm14, ymm14, ymm8813 vpshufb ymm15, ymm15, ymm8814 vpaddd ymm8, ymm12, ymmword ptr [rsp+0x200]815 vpaddd ymm9, ymm9, ymm13816 vpaddd ymm10, ymm10, ymm14817 vpaddd ymm11, ymm11, ymm15818 vpxor ymm4, ymm4, ymm8819 vpxor ymm5, ymm5, ymm9820 vpxor ymm6, ymm6, ymm10821 vpxor ymm7, ymm7, ymm11822 vmovdqa ymmword ptr [rsp+0x200], ymm8823 vpsrld ymm8, ymm4, 12824 vpslld ymm4, ymm4, 20825 vpor ymm4, ymm4, ymm8826 vpsrld ymm8, ymm5, 12827 vpslld ymm5, ymm5, 20828 vpor ymm5, ymm5, ymm8829 vpsrld ymm8, ymm6, 12830 vpslld ymm6, ymm6, 20831 vpor ymm6, ymm6, ymm8832 vpsrld ymm8, ymm7, 12833 vpslld ymm7, ymm7, 20834 vpor ymm7, ymm7, ymm8835 vpaddd ymm0, ymm0, ymmword ptr [rsp+0x1A0]836 vpaddd ymm1, ymm1, ymmword ptr [rsp+0x160]837 vpaddd ymm2, ymm2, ymmword ptr [rsp+0x140]838 vpaddd ymm3, ymm3, ymmword ptr [rsp+0x100]839 vpaddd ymm0, ymm0, ymm4840 vpaddd ymm1, ymm1, ymm5841 vpaddd ymm2, ymm2, ymm6842 vpaddd ymm3, ymm3, ymm7843 vpxor ymm12, ymm12, ymm0844 vpxor ymm13, ymm13, ymm1845 vpxor ymm14, ymm14, ymm2846 vpxor ymm15, ymm15, ymm3847 vbroadcasti128 ymm8, xmmword ptr [ROT8+rip]848 vpshufb ymm12, ymm12, ymm8849 vpshufb ymm13, ymm13, ymm8850 vpshufb ymm14, ymm14, ymm8851 vpshufb ymm15, ymm15, ymm8852 vpaddd ymm8, ymm12, ymmword ptr [rsp+0x200]853 vpaddd ymm9, ymm9, ymm13854 vpaddd ymm10, ymm10, ymm14855 vpaddd ymm11, ymm11, ymm15856 vpxor ymm4, ymm4, ymm8857 vpxor ymm5, ymm5, ymm9858 vpxor ymm6, ymm6, ymm10859 vpxor ymm7, ymm7, ymm11860 vmovdqa ymmword ptr [rsp+0x200], ymm8861 vpsrld ymm8, ymm4, 7862 vpslld ymm4, ymm4, 25863 vpor ymm4, ymm4, ymm8864 vpsrld ymm8, ymm5, 7865 vpslld ymm5, ymm5, 25866 vpor ymm5, ymm5, ymm8867 vpsrld ymm8, ymm6, 7868 vpslld ymm6, ymm6, 25869 vpor ymm6, ymm6, ymm8870 vpsrld ymm8, ymm7, 7871 vpslld ymm7, ymm7, 25872 vpor ymm7, ymm7, ymm8873 vpaddd ymm0, ymm0, ymmword ptr [rsp+0xE0]874 vpaddd ymm1, ymm1, ymmword ptr [rsp+0xA0]875 vpaddd ymm2, ymm2, ymmword ptr [rsp]876 vpaddd ymm3, ymm3, ymmword ptr [rsp+0xC0]877 vpaddd ymm0, ymm0, ymm5878 vpaddd ymm1, ymm1, ymm6879 vpaddd ymm2, ymm2, ymm7880 vpaddd ymm3, ymm3, ymm4881 vpxor ymm15, ymm15, ymm0882 vpxor ymm12, ymm12, ymm1883 vpxor ymm13, ymm13, ymm2884 vpxor ymm14, ymm14, ymm3885 vbroadcasti128 ymm8, xmmword ptr [ROT16+rip]886 vpshufb ymm15, ymm15, ymm8887 vpshufb ymm12, ymm12, ymm8888 vpshufb ymm13, ymm13, ymm8889 vpshufb ymm14, ymm14, ymm8890 vpaddd ymm10, ymm10, ymm15891 vpaddd ymm11, ymm11, ymm12892 vpaddd ymm8, ymm13, ymmword ptr [rsp+0x200]893 vpaddd ymm9, ymm9, ymm14894 vpxor ymm5, ymm5, ymm10895 vpxor ymm6, ymm6, ymm11896 vpxor ymm7, ymm7, ymm8897 vpxor ymm4, ymm4, ymm9898 vmovdqa ymmword ptr [rsp+0x200], ymm8899 vpsrld ymm8, ymm5, 12900 vpslld ymm5, ymm5, 20901 vpor ymm5, ymm5, ymm8902 vpsrld ymm8, ymm6, 12903 vpslld ymm6, ymm6, 20904 vpor ymm6, ymm6, ymm8905 vpsrld ymm8, ymm7, 12906 vpslld ymm7, ymm7, 20907 vpor ymm7, ymm7, ymm8908 vpsrld ymm8, ymm4, 12909 vpslld ymm4, ymm4, 20910 vpor ymm4, ymm4, ymm8911 vpaddd ymm0, ymm0, ymmword ptr [rsp+0x40]912 vpaddd ymm1, ymm1, ymmword ptr [rsp+0x60]913 vpaddd ymm2, ymm2, ymmword ptr [rsp+0x20]914 vpaddd ymm3, ymm3, ymmword ptr [rsp+0x80]915 vpaddd ymm0, ymm0, ymm5916 vpaddd ymm1, ymm1, ymm6917 vpaddd ymm2, ymm2, ymm7918 vpaddd ymm3, ymm3, ymm4919 vpxor ymm15, ymm15, ymm0920 vpxor ymm12, ymm12, ymm1921 vpxor ymm13, ymm13, ymm2922 vpxor ymm14, ymm14, ymm3923 vbroadcasti128 ymm8, xmmword ptr [ROT8+rip]924 vpshufb ymm15, ymm15, ymm8925 vpshufb ymm12, ymm12, ymm8926 vpshufb ymm13, ymm13, ymm8927 vpshufb ymm14, ymm14, ymm8928 vpaddd ymm10, ymm10, ymm15929 vpaddd ymm11, ymm11, ymm12930 vpaddd ymm8, ymm13, ymmword ptr [rsp+0x200]931 vpaddd ymm9, ymm9, ymm14932 vpxor ymm5, ymm5, ymm10933 vpxor ymm6, ymm6, ymm11934 vpxor ymm7, ymm7, ymm8935 vpxor ymm4, ymm4, ymm9936 vmovdqa ymmword ptr [rsp+0x200], ymm8937 vpsrld ymm8, ymm5, 7938 vpslld ymm5, ymm5, 25939 vpor ymm5, ymm5, ymm8940 vpsrld ymm8, ymm6, 7941 vpslld ymm6, ymm6, 25942 vpor ymm6, ymm6, ymm8943 vpsrld ymm8, ymm7, 7944 vpslld ymm7, ymm7, 25945 vpor ymm7, ymm7, ymm8946 vpsrld ymm8, ymm4, 7947 vpslld ymm4, ymm4, 25948 vpor ymm4, ymm4, ymm8949 vpaddd ymm0, ymm0, ymmword ptr [rsp+0x120]950 vpaddd ymm1, ymm1, ymmword ptr [rsp+0x160]951 vpaddd ymm2, ymm2, ymmword ptr [rsp+0x100]952 vpaddd ymm3, ymm3, ymmword ptr [rsp+0x1E0]953 vpaddd ymm0, ymm0, ymm4954 vpaddd ymm1, ymm1, ymm5955 vpaddd ymm2, ymm2, ymm6956 vpaddd ymm3, ymm3, ymm7957 vpxor ymm12, ymm12, ymm0958 vpxor ymm13, ymm13, ymm1959 vpxor ymm14, ymm14, ymm2960 vpxor ymm15, ymm15, ymm3961 vbroadcasti128 ymm8, xmmword ptr [ROT16+rip]962 vpshufb ymm12, ymm12, ymm8963 vpshufb ymm13, ymm13, ymm8964 vpshufb ymm14, ymm14, ymm8965 vpshufb ymm15, ymm15, ymm8966 vpaddd ymm8, ymm12, ymmword ptr [rsp+0x200]967 vpaddd ymm9, ymm9, ymm13968 vpaddd ymm10, ymm10, ymm14969 vpaddd ymm11, ymm11, ymm15970 vpxor ymm4, ymm4, ymm8971 vpxor ymm5, ymm5, ymm9972 vpxor ymm6, ymm6, ymm10973 vpxor ymm7, ymm7, ymm11974 vmovdqa ymmword ptr [rsp+0x200], ymm8975 vpsrld ymm8, ymm4, 12976 vpslld ymm4, ymm4, 20977 vpor ymm4, ymm4, ymm8978 vpsrld ymm8, ymm5, 12979 vpslld ymm5, ymm5, 20980 vpor ymm5, ymm5, ymm8981 vpsrld ymm8, ymm6, 12982 vpslld ymm6, ymm6, 20983 vpor ymm6, ymm6, ymm8984 vpsrld ymm8, ymm7, 12985 vpslld ymm7, ymm7, 20986 vpor ymm7, ymm7, ymm8987 vpaddd ymm0, ymm0, ymmword ptr [rsp+0x1C0]988 vpaddd ymm1, ymm1, ymmword ptr [rsp+0xA0]989 vpaddd ymm2, ymm2, ymmword ptr [rsp+0x180]990 vpaddd ymm3, ymm3, ymmword ptr [rsp+0x20]991 vpaddd ymm0, ymm0, ymm4992 vpaddd ymm1, ymm1, ymm5993 vpaddd ymm2, ymm2, ymm6994 vpaddd ymm3, ymm3, ymm7995 vpxor ymm12, ymm12, ymm0996 vpxor ymm13, ymm13, ymm1997 vpxor ymm14, ymm14, ymm2998 vpxor ymm15, ymm15, ymm3999 vbroadcasti128 ymm8, xmmword ptr [ROT8+rip]1000 vpshufb ymm12, ymm12, ymm81001 vpshufb ymm13, ymm13, ymm81002 vpshufb ymm14, ymm14, ymm81003 vpshufb ymm15, ymm15, ymm81004 vpaddd ymm8, ymm12, ymmword ptr [rsp+0x200]1005 vpaddd ymm9, ymm9, ymm131006 vpaddd ymm10, ymm10, ymm141007 vpaddd ymm11, ymm11, ymm151008 vpxor ymm4, ymm4, ymm81009 vpxor ymm5, ymm5, ymm91010 vpxor ymm6, ymm6, ymm101011 vpxor ymm7, ymm7, ymm111012 vmovdqa ymmword ptr [rsp+0x200], ymm81013 vpsrld ymm8, ymm4, 71014 vpslld ymm4, ymm4, 251015 vpor ymm4, ymm4, ymm81016 vpsrld ymm8, ymm5, 71017 vpslld ymm5, ymm5, 251018 vpor ymm5, ymm5, ymm81019 vpsrld ymm8, ymm6, 71020 vpslld ymm6, ymm6, 251021 vpor ymm6, ymm6, ymm81022 vpsrld ymm8, ymm7, 71023 vpslld ymm7, ymm7, 251024 vpor ymm7, ymm7, ymm81025 vpaddd ymm0, ymm0, ymmword ptr [rsp+0x1A0]1026 vpaddd ymm1, ymm1, ymmword ptr [rsp]1027 vpaddd ymm2, ymm2, ymmword ptr [rsp+0x40]1028 vpaddd ymm3, ymm3, ymmword ptr [rsp+0x80]1029 vpaddd ymm0, ymm0, ymm51030 vpaddd ymm1, ymm1, ymm61031 vpaddd ymm2, ymm2, ymm71032 vpaddd ymm3, ymm3, ymm41033 vpxor ymm15, ymm15, ymm01034 vpxor ymm12, ymm12, ymm11035 vpxor ymm13, ymm13, ymm21036 vpxor ymm14, ymm14, ymm31037 vbroadcasti128 ymm8, xmmword ptr [ROT16+rip]1038 vpshufb ymm15, ymm15, ymm81039 vpshufb ymm12, ymm12, ymm81040 vpshufb ymm13, ymm13, ymm81041 vpshufb ymm14, ymm14, ymm81042 vpaddd ymm10, ymm10, ymm151043 vpaddd ymm11, ymm11, ymm121044 vpaddd ymm8, ymm13, ymmword ptr [rsp+0x200]1045 vpaddd ymm9, ymm9, ymm141046 vpxor ymm5, ymm5, ymm101047 vpxor ymm6, ymm6, ymm111048 vpxor ymm7, ymm7, ymm81049 vpxor ymm4, ymm4, ymm91050 vmovdqa ymmword ptr [rsp+0x200], ymm81051 vpsrld ymm8, ymm5, 121052 vpslld ymm5, ymm5, 201053 vpor ymm5, ymm5, ymm81054 vpsrld ymm8, ymm6, 121055 vpslld ymm6, ymm6, 201056 vpor ymm6, ymm6, ymm81057 vpsrld ymm8, ymm7, 121058 vpslld ymm7, ymm7, 201059 vpor ymm7, ymm7, ymm81060 vpsrld ymm8, ymm4, 121061 vpslld ymm4, ymm4, 201062 vpor ymm4, ymm4, ymm81063 vpaddd ymm0, ymm0, ymmword ptr [rsp+0x60]1064 vpaddd ymm1, ymm1, ymmword ptr [rsp+0x140]1065 vpaddd ymm2, ymm2, ymmword ptr [rsp+0xC0]1066 vpaddd ymm3, ymm3, ymmword ptr [rsp+0xE0]1067 vpaddd ymm0, ymm0, ymm51068 vpaddd ymm1, ymm1, ymm61069 vpaddd ymm2, ymm2, ymm71070 vpaddd ymm3, ymm3, ymm41071 vpxor ymm15, ymm15, ymm01072 vpxor ymm12, ymm12, ymm11073 vpxor ymm13, ymm13, ymm21074 vpxor ymm14, ymm14, ymm31075 vbroadcasti128 ymm8, xmmword ptr [ROT8+rip]1076 vpshufb ymm15, ymm15, ymm81077 vpshufb ymm12, ymm12, ymm81078 vpshufb ymm13, ymm13, ymm81079 vpshufb ymm14, ymm14, ymm81080 vpaddd ymm10, ymm10, ymm151081 vpaddd ymm11, ymm11, ymm121082 vpaddd ymm8, ymm13, ymmword ptr [rsp+0x200]1083 vpaddd ymm9, ymm9, ymm141084 vpxor ymm5, ymm5, ymm101085 vpxor ymm6, ymm6, ymm111086 vpxor ymm7, ymm7, ymm81087 vpxor ymm4, ymm4, ymm91088 vmovdqa ymmword ptr [rsp+0x200], ymm81089 vpsrld ymm8, ymm5, 71090 vpslld ymm5, ymm5, 251091 vpor ymm5, ymm5, ymm81092 vpsrld ymm8, ymm6, 71093 vpslld ymm6, ymm6, 251094 vpor ymm6, ymm6, ymm81095 vpsrld ymm8, ymm7, 71096 vpslld ymm7, ymm7, 251097 vpor ymm7, ymm7, ymm81098 vpsrld ymm8, ymm4, 71099 vpslld ymm4, ymm4, 251100 vpor ymm4, ymm4, ymm81101 vpaddd ymm0, ymm0, ymmword ptr [rsp+0x160]1102 vpaddd ymm1, ymm1, ymmword ptr [rsp+0xA0]1103 vpaddd ymm2, ymm2, ymmword ptr [rsp+0x20]1104 vpaddd ymm3, ymm3, ymmword ptr [rsp+0x100]1105 vpaddd ymm0, ymm0, ymm41106 vpaddd ymm1, ymm1, ymm51107 vpaddd ymm2, ymm2, ymm61108 vpaddd ymm3, ymm3, ymm71109 vpxor ymm12, ymm12, ymm01110 vpxor ymm13, ymm13, ymm11111 vpxor ymm14, ymm14, ymm21112 vpxor ymm15, ymm15, ymm31113 vbroadcasti128 ymm8, xmmword ptr [ROT16+rip]1114 vpshufb ymm12, ymm12, ymm81115 vpshufb ymm13, ymm13, ymm81116 vpshufb ymm14, ymm14, ymm81117 vpshufb ymm15, ymm15, ymm81118 vpaddd ymm8, ymm12, ymmword ptr [rsp+0x200]1119 vpaddd ymm9, ymm9, ymm131120 vpaddd ymm10, ymm10, ymm141121 vpaddd ymm11, ymm11, ymm151122 vpxor ymm4, ymm4, ymm81123 vpxor ymm5, ymm5, ymm91124 vpxor ymm6, ymm6, ymm101125 vpxor ymm7, ymm7, ymm111126 vmovdqa ymmword ptr [rsp+0x200], ymm81127 vpsrld ymm8, ymm4, 121128 vpslld ymm4, ymm4, 201129 vpor ymm4, ymm4, ymm81130 vpsrld ymm8, ymm5, 121131 vpslld ymm5, ymm5, 201132 vpor ymm5, ymm5, ymm81133 vpsrld ymm8, ymm6, 121134 vpslld ymm6, ymm6, 201135 vpor ymm6, ymm6, ymm81136 vpsrld ymm8, ymm7, 121137 vpslld ymm7, ymm7, 201138 vpor ymm7, ymm7, ymm81139 vpaddd ymm0, ymm0, ymmword ptr [rsp+0x1E0]1140 vpaddd ymm1, ymm1, ymmword ptr [rsp]1141 vpaddd ymm2, ymm2, ymmword ptr [rsp+0x120]1142 vpaddd ymm3, ymm3, ymmword ptr [rsp+0xC0]1143 vpaddd ymm0, ymm0, ymm41144 vpaddd ymm1, ymm1, ymm51145 vpaddd ymm2, ymm2, ymm61146 vpaddd ymm3, ymm3, ymm71147 vpxor ymm12, ymm12, ymm01148 vpxor ymm13, ymm13, ymm11149 vpxor ymm14, ymm14, ymm21150 vpxor ymm15, ymm15, ymm31151 vbroadcasti128 ymm8, xmmword ptr [ROT8+rip]1152 vpshufb ymm12, ymm12, ymm81153 vpshufb ymm13, ymm13, ymm81154 vpshufb ymm14, ymm14, ymm81155 vpshufb ymm15, ymm15, ymm81156 vpaddd ymm8, ymm12, ymmword ptr [rsp+0x200]1157 vpaddd ymm9, ymm9, ymm131158 vpaddd ymm10, ymm10, ymm141159 vpaddd ymm11, ymm11, ymm151160 vpxor ymm4, ymm4, ymm81161 vpxor ymm5, ymm5, ymm91162 vpxor ymm6, ymm6, ymm101163 vpxor ymm7, ymm7, ymm111164 vmovdqa ymmword ptr [rsp+0x200], ymm81165 vpsrld ymm8, ymm4, 71166 vpslld ymm4, ymm4, 251167 vpor ymm4, ymm4, ymm81168 vpsrld ymm8, ymm5, 71169 vpslld ymm5, ymm5, 251170 vpor ymm5, ymm5, ymm81171 vpsrld ymm8, ymm6, 71172 vpslld ymm6, ymm6, 251173 vpor ymm6, ymm6, ymm81174 vpsrld ymm8, ymm7, 71175 vpslld ymm7, ymm7, 251176 vpor ymm7, ymm7, ymm81177 vpaddd ymm0, ymm0, ymmword ptr [rsp+0x1C0]1178 vpaddd ymm1, ymm1, ymmword ptr [rsp+0x40]1179 vpaddd ymm2, ymm2, ymmword ptr [rsp+0x60]1180 vpaddd ymm3, ymm3, ymmword ptr [rsp+0xE0]1181 vpaddd ymm0, ymm0, ymm51182 vpaddd ymm1, ymm1, ymm61183 vpaddd ymm2, ymm2, ymm71184 vpaddd ymm3, ymm3, ymm41185 vpxor ymm15, ymm15, ymm01186 vpxor ymm12, ymm12, ymm11187 vpxor ymm13, ymm13, ymm21188 vpxor ymm14, ymm14, ymm31189 vbroadcasti128 ymm8, xmmword ptr [ROT16+rip]1190 vpshufb ymm15, ymm15, ymm81191 vpshufb ymm12, ymm12, ymm81192 vpshufb ymm13, ymm13, ymm81193 vpshufb ymm14, ymm14, ymm81194 vpaddd ymm10, ymm10, ymm151195 vpaddd ymm11, ymm11, ymm121196 vpaddd ymm8, ymm13, ymmword ptr [rsp+0x200]1197 vpaddd ymm9, ymm9, ymm141198 vpxor ymm5, ymm5, ymm101199 vpxor ymm6, ymm6, ymm111200 vpxor ymm7, ymm7, ymm81201 vpxor ymm4, ymm4, ymm91202 vmovdqa ymmword ptr [rsp+0x200], ymm81203 vpsrld ymm8, ymm5, 121204 vpslld ymm5, ymm5, 201205 vpor ymm5, ymm5, ymm81206 vpsrld ymm8, ymm6, 121207 vpslld ymm6, ymm6, 201208 vpor ymm6, ymm6, ymm81209 vpsrld ymm8, ymm7, 121210 vpslld ymm7, ymm7, 201211 vpor ymm7, ymm7, ymm81212 vpsrld ymm8, ymm4, 121213 vpslld ymm4, ymm4, 201214 vpor ymm4, ymm4, ymm81215 vpaddd ymm0, ymm0, ymmword ptr [rsp+0x140]1216 vpaddd ymm1, ymm1, ymmword ptr [rsp+0x180]1217 vpaddd ymm2, ymm2, ymmword ptr [rsp+0x80]1218 vpaddd ymm3, ymm3, ymmword ptr [rsp+0x1A0]1219 vpaddd ymm0, ymm0, ymm51220 vpaddd ymm1, ymm1, ymm61221 vpaddd ymm2, ymm2, ymm71222 vpaddd ymm3, ymm3, ymm41223 vpxor ymm15, ymm15, ymm01224 vpxor ymm12, ymm12, ymm11225 vpxor ymm13, ymm13, ymm21226 vpxor ymm14, ymm14, ymm31227 vbroadcasti128 ymm8, xmmword ptr [ROT8+rip]1228 vpshufb ymm15, ymm15, ymm81229 vpshufb ymm12, ymm12, ymm81230 vpshufb ymm13, ymm13, ymm81231 vpshufb ymm14, ymm14, ymm81232 vpaddd ymm10, ymm10, ymm151233 vpaddd ymm11, ymm11, ymm121234 vpaddd ymm8, ymm13, ymmword ptr [rsp+0x200]1235 vpaddd ymm9, ymm9, ymm141236 vpxor ymm5, ymm5, ymm101237 vpxor ymm6, ymm6, ymm111238 vpxor ymm7, ymm7, ymm81239 vpxor ymm4, ymm4, ymm91240 vpxor ymm0, ymm0, ymm81241 vpxor ymm1, ymm1, ymm91242 vpxor ymm2, ymm2, ymm101243 vpxor ymm3, ymm3, ymm111244 vpsrld ymm8, ymm5, 71245 vpslld ymm5, ymm5, 251246 vpor ymm5, ymm5, ymm81247 vpsrld ymm8, ymm6, 71248 vpslld ymm6, ymm6, 251249 vpor ymm6, ymm6, ymm81250 vpsrld ymm8, ymm7, 71251 vpslld ymm7, ymm7, 251252 vpor ymm7, ymm7, ymm81253 vpsrld ymm8, ymm4, 71254 vpslld ymm4, ymm4, 251255 vpor ymm4, ymm4, ymm81256 vpxor ymm4, ymm4, ymm121257 vpxor ymm5, ymm5, ymm131258 vpxor ymm6, ymm6, ymm141259 vpxor ymm7, ymm7, ymm151260 movzx eax, byte ptr [rbp+0x38]1261 jne 9b1262 mov rbx, qword ptr [rbp+0x50]1263 vunpcklps ymm8, ymm0, ymm11264 vunpcklps ymm9, ymm2, ymm31265 vunpckhps ymm10, ymm0, ymm11266 vunpcklps ymm11, ymm4, ymm51267 vunpcklps ymm0, ymm6, ymm71268 vshufps ymm12, ymm8, ymm9, 781269 vblendps ymm1, ymm8, ymm12, 0xCC1270 vshufps ymm8, ymm11, ymm0, 781271 vunpckhps ymm13, ymm2, ymm31272 vblendps ymm2, ymm11, ymm8, 0xCC1273 vblendps ymm3, ymm12, ymm9, 0xCC1274 vperm2f128 ymm12, ymm1, ymm2, 0x201275 vmovups ymmword ptr [rbx], ymm121276 vunpckhps ymm14, ymm4, ymm51277 vblendps ymm4, ymm8, ymm0, 0xCC1278 vunpckhps ymm15, ymm6, ymm71279 vperm2f128 ymm7, ymm3, ymm4, 0x201280 vmovups ymmword ptr [rbx+0x20], ymm71281 vshufps ymm5, ymm10, ymm13, 781282 vblendps ymm6, ymm5, ymm13, 0xCC1283 vshufps ymm13, ymm14, ymm15, 781284 vblendps ymm10, ymm10, ymm5, 0xCC1285 vblendps ymm14, ymm14, ymm13, 0xCC1286 vperm2f128 ymm8, ymm10, ymm14, 0x201287 vmovups ymmword ptr [rbx+0x40], ymm81288 vblendps ymm15, ymm13, ymm15, 0xCC1289 vperm2f128 ymm13, ymm6, ymm15, 0x201290 vmovups ymmword ptr [rbx+0x60], ymm131291 vperm2f128 ymm9, ymm1, ymm2, 0x311292 vperm2f128 ymm11, ymm3, ymm4, 0x311293 vmovups ymmword ptr [rbx+0x80], ymm91294 vperm2f128 ymm14, ymm10, ymm14, 0x311295 vperm2f128 ymm15, ymm6, ymm15, 0x311296 vmovups ymmword ptr [rbx+0xA0], ymm111297 vmovups ymmword ptr [rbx+0xC0], ymm141298 vmovups ymmword ptr [rbx+0xE0], ymm151299 vmovdqa ymm0, ymmword ptr [rsp+0x220]1300 vpaddd ymm1, ymm0, ymmword ptr [rsp+0x240]1301 vmovdqa ymmword ptr [rsp+0x240], ymm11302 vpxor ymm0, ymm0, ymmword ptr [CMP_MSB_MASK+rip]1303 vpxor ymm2, ymm1, ymmword ptr [CMP_MSB_MASK+rip]1304 vpcmpgtd ymm2, ymm0, ymm21305 vmovdqa ymm0, ymmword ptr [rsp+0x260]1306 vpsubd ymm2, ymm0, ymm21307 vmovdqa ymmword ptr [rsp+0x260], ymm21308 add rdi, 641309 add rbx, 2561310 mov qword ptr [rbp+0x50], rbx1311 sub rsi, 81312 cmp rsi, 81313 jnc 2b1314 test rsi, rsi1315 jnz 3f13164:1317 vzeroupper1318 mov rsp, rbp1319 pop rbp1320 pop rbx1321 pop r121322 pop r131323 pop r141324 pop r151325 ret1326.p2align 513273:1328 mov rbx, qword ptr [rbp+0x50]1329 mov r15, qword ptr [rsp+0x2A0]1330 movzx r13d, byte ptr [rbp+0x38]1331 movzx r12d, byte ptr [rbp+0x48]1332 test rsi, 0x41333 je 3f1334 vbroadcasti128 ymm0, xmmword ptr [rcx]1335 vbroadcasti128 ymm1, xmmword ptr [rcx+0x10]1336 vmovdqa ymm8, ymm01337 vmovdqa ymm9, ymm11338 vbroadcasti128 ymm12, xmmword ptr [rsp+0x240]1339 vbroadcasti128 ymm13, xmmword ptr [rsp+0x260]1340 vpunpckldq ymm14, ymm12, ymm131341 vpunpckhdq ymm15, ymm12, ymm131342 vpermq ymm14, ymm14, 0x501343 vpermq ymm15, ymm15, 0x501344 vbroadcasti128 ymm12, xmmword ptr [BLAKE3_BLOCK_LEN+rip]1345 vpblendd ymm14, ymm14, ymm12, 0x441346 vpblendd ymm15, ymm15, ymm12, 0x441347 vmovdqa ymmword ptr [rsp], ymm141348 vmovdqa ymmword ptr [rsp+0x20], ymm151349 mov r8, qword ptr [rdi]1350 mov r9, qword ptr [rdi+0x8]1351 mov r10, qword ptr [rdi+0x10]1352 mov r11, qword ptr [rdi+0x18]1353 movzx eax, byte ptr [rbp+0x40]1354 or eax, r13d1355 xor edx, edx1356.p2align 513572:1358 mov r14d, eax1359 or eax, r12d1360 add rdx, 641361 cmp rdx, r151362 cmovne eax, r14d1363 mov dword ptr [rsp+0x200], eax1364 vmovups ymm2, ymmword ptr [r8+rdx-0x40]1365 vinsertf128 ymm2, ymm2, xmmword ptr [r9+rdx-0x40], 0x011366 vmovups ymm3, ymmword ptr [r8+rdx-0x30]1367 vinsertf128 ymm3, ymm3, xmmword ptr [r9+rdx-0x30], 0x011368 vshufps ymm4, ymm2, ymm3, 1361369 vshufps ymm5, ymm2, ymm3, 2211370 vmovups ymm2, ymmword ptr [r8+rdx-0x20]1371 vinsertf128 ymm2, ymm2, xmmword ptr [r9+rdx-0x20], 0x011372 vmovups ymm3, ymmword ptr [r8+rdx-0x10]1373 vinsertf128 ymm3, ymm3, xmmword ptr [r9+rdx-0x10], 0x011374 vshufps ymm6, ymm2, ymm3, 1361375 vshufps ymm7, ymm2, ymm3, 2211376 vpshufd ymm6, ymm6, 0x931377 vpshufd ymm7, ymm7, 0x931378 vmovups ymm10, ymmword ptr [r10+rdx-0x40]1379 vinsertf128 ymm10, ymm10, xmmword ptr [r11+rdx-0x40], 0x011380 vmovups ymm11, ymmword ptr [r10+rdx-0x30]1381 vinsertf128 ymm11, ymm11, xmmword ptr [r11+rdx-0x30], 0x011382 vshufps ymm12, ymm10, ymm11, 1361383 vshufps ymm13, ymm10, ymm11, 2211384 vmovups ymm10, ymmword ptr [r10+rdx-0x20]1385 vinsertf128 ymm10, ymm10, xmmword ptr [r11+rdx-0x20], 0x011386 vmovups ymm11, ymmword ptr [r10+rdx-0x10]1387 vinsertf128 ymm11, ymm11, xmmword ptr [r11+rdx-0x10], 0x011388 vshufps ymm14, ymm10, ymm11, 1361389 vshufps ymm15, ymm10, ymm11, 2211390 vpshufd ymm14, ymm14, 0x931391 vpshufd ymm15, ymm15, 0x931392 prefetcht0 [r8+rdx+0x80]1393 prefetcht0 [r9+rdx+0x80]1394 prefetcht0 [r10+rdx+0x80]1395 prefetcht0 [r11+rdx+0x80]1396 vpbroadcastd ymm2, dword ptr [rsp+0x200]1397 vmovdqa ymm3, ymmword ptr [rsp]1398 vmovdqa ymm11, ymmword ptr [rsp+0x20]1399 vpblendd ymm3, ymm3, ymm2, 0x881400 vpblendd ymm11, ymm11, ymm2, 0x881401 vbroadcasti128 ymm2, xmmword ptr [BLAKE3_IV+rip]1402 vmovdqa ymm10, ymm21403 mov al, 714049:1405 vpaddd ymm0, ymm0, ymm41406 vpaddd ymm8, ymm8, ymm121407 vmovdqa ymmword ptr [rsp+0x40], ymm41408 nop1409 vmovdqa ymmword ptr [rsp+0x60], ymm121410 nop1411 vpaddd ymm0, ymm0, ymm11412 vpaddd ymm8, ymm8, ymm91413 vpxor ymm3, ymm3, ymm01414 vpxor ymm11, ymm11, ymm81415 vbroadcasti128 ymm4, xmmword ptr [ROT16+rip]1416 vpshufb ymm3, ymm3, ymm41417 vpshufb ymm11, ymm11, ymm41418 vpaddd ymm2, ymm2, ymm31419 vpaddd ymm10, ymm10, ymm111420 vpxor ymm1, ymm1, ymm21421 vpxor ymm9, ymm9, ymm101422 vpsrld ymm4, ymm1, 121423 vpslld ymm1, ymm1, 201424 vpor ymm1, ymm1, ymm41425 vpsrld ymm4, ymm9, 121426 vpslld ymm9, ymm9, 201427 vpor ymm9, ymm9, ymm41428 vpaddd ymm0, ymm0, ymm51429 vpaddd ymm8, ymm8, ymm131430 vpaddd ymm0, ymm0, ymm11431 vpaddd ymm8, ymm8, ymm91432 vmovdqa ymmword ptr [rsp+0x80], ymm51433 vmovdqa ymmword ptr [rsp+0xA0], ymm131434 vpxor ymm3, ymm3, ymm01435 vpxor ymm11, ymm11, ymm81436 vbroadcasti128 ymm4, xmmword ptr [ROT8+rip]1437 vpshufb ymm3, ymm3, ymm41438 vpshufb ymm11, ymm11, ymm41439 vpaddd ymm2, ymm2, ymm31440 vpaddd ymm10, ymm10, ymm111441 vpxor ymm1, ymm1, ymm21442 vpxor ymm9, ymm9, ymm101443 vpsrld ymm4, ymm1, 71444 vpslld ymm1, ymm1, 251445 vpor ymm1, ymm1, ymm41446 vpsrld ymm4, ymm9, 71447 vpslld ymm9, ymm9, 251448 vpor ymm9, ymm9, ymm41449 vpshufd ymm0, ymm0, 0x931450 vpshufd ymm8, ymm8, 0x931451 vpshufd ymm3, ymm3, 0x4E1452 vpshufd ymm11, ymm11, 0x4E1453 vpshufd ymm2, ymm2, 0x391454 vpshufd ymm10, ymm10, 0x391455 vpaddd ymm0, ymm0, ymm61456 vpaddd ymm8, ymm8, ymm141457 vpaddd ymm0, ymm0, ymm11458 vpaddd ymm8, ymm8, ymm91459 vpxor ymm3, ymm3, ymm01460 vpxor ymm11, ymm11, ymm81461 vbroadcasti128 ymm4, xmmword ptr [ROT16+rip]1462 vpshufb ymm3, ymm3, ymm41463 vpshufb ymm11, ymm11, ymm41464 vpaddd ymm2, ymm2, ymm31465 vpaddd ymm10, ymm10, ymm111466 vpxor ymm1, ymm1, ymm21467 vpxor ymm9, ymm9, ymm101468 vpsrld ymm4, ymm1, 121469 vpslld ymm1, ymm1, 201470 vpor ymm1, ymm1, ymm41471 vpsrld ymm4, ymm9, 121472 vpslld ymm9, ymm9, 201473 vpor ymm9, ymm9, ymm41474 vpaddd ymm0, ymm0, ymm71475 vpaddd ymm8, ymm8, ymm151476 vpaddd ymm0, ymm0, ymm11477 vpaddd ymm8, ymm8, ymm91478 vpxor ymm3, ymm3, ymm01479 vpxor ymm11, ymm11, ymm81480 vbroadcasti128 ymm4, xmmword ptr [ROT8+rip]1481 vpshufb ymm3, ymm3, ymm41482 vpshufb ymm11, ymm11, ymm41483 vpaddd ymm2, ymm2, ymm31484 vpaddd ymm10, ymm10, ymm111485 vpxor ymm1, ymm1, ymm21486 vpxor ymm9, ymm9, ymm101487 vpsrld ymm4, ymm1, 71488 vpslld ymm1, ymm1, 251489 vpor ymm1, ymm1, ymm41490 vpsrld ymm4, ymm9, 71491 vpslld ymm9, ymm9, 251492 vpor ymm9, ymm9, ymm41493 vpshufd ymm0, ymm0, 0x391494 vpshufd ymm8, ymm8, 0x391495 vpshufd ymm3, ymm3, 0x4E1496 vpshufd ymm11, ymm11, 0x4E1497 vpshufd ymm2, ymm2, 0x931498 vpshufd ymm10, ymm10, 0x931499 dec al1500 je 9f1501 vmovdqa ymm4, ymmword ptr [rsp+0x40]1502 vmovdqa ymm5, ymmword ptr [rsp+0x80]1503 vshufps ymm12, ymm4, ymm5, 2141504 vpshufd ymm13, ymm4, 0x0F1505 vpshufd ymm4, ymm12, 0x391506 vshufps ymm12, ymm6, ymm7, 2501507 vpblendd ymm13, ymm13, ymm12, 0xAA1508 vpunpcklqdq ymm12, ymm7, ymm51509 vpblendd ymm12, ymm12, ymm6, 0x881510 vpshufd ymm12, ymm12, 0x781511 vpunpckhdq ymm5, ymm5, ymm71512 vpunpckldq ymm6, ymm6, ymm51513 vpshufd ymm7, ymm6, 0x1E1514 vmovdqa ymmword ptr [rsp+0x40], ymm131515 vmovdqa ymmword ptr [rsp+0x80], ymm121516 vmovdqa ymm12, ymmword ptr [rsp+0x60]1517 vmovdqa ymm13, ymmword ptr [rsp+0xA0]1518 vshufps ymm5, ymm12, ymm13, 2141519 vpshufd ymm6, ymm12, 0x0F1520 vpshufd ymm12, ymm5, 0x391521 vshufps ymm5, ymm14, ymm15, 2501522 vpblendd ymm6, ymm6, ymm5, 0xAA1523 vpunpcklqdq ymm5, ymm15, ymm131524 vpblendd ymm5, ymm5, ymm14, 0x881525 vpshufd ymm5, ymm5, 0x781526 vpunpckhdq ymm13, ymm13, ymm151527 vpunpckldq ymm14, ymm14, ymm131528 vpshufd ymm15, ymm14, 0x1E1529 vmovdqa ymm13, ymm61530 vmovdqa ymm14, ymm51531 vmovdqa ymm5, ymmword ptr [rsp+0x40]1532 vmovdqa ymm6, ymmword ptr [rsp+0x80]1533 jmp 9b15349:1535 vpxor ymm0, ymm0, ymm21536 vpxor ymm1, ymm1, ymm31537 vpxor ymm8, ymm8, ymm101538 vpxor ymm9, ymm9, ymm111539 mov eax, r13d1540 cmp rdx, r151541 jne 2b1542 vmovdqu xmmword ptr [rbx], xmm01543 vmovdqu xmmword ptr [rbx+0x10], xmm11544 vextracti128 xmmword ptr [rbx+0x20], ymm0, 0x011545 vextracti128 xmmword ptr [rbx+0x30], ymm1, 0x011546 vmovdqu xmmword ptr [rbx+0x40], xmm81547 vmovdqu xmmword ptr [rbx+0x50], xmm91548 vextracti128 xmmword ptr [rbx+0x60], ymm8, 0x011549 vextracti128 xmmword ptr [rbx+0x70], ymm9, 0x011550 vmovaps xmm8, xmmword ptr [rsp+0x280]1551 vmovaps xmm0, xmmword ptr [rsp+0x240]1552 vmovaps xmm1, xmmword ptr [rsp+0x250]1553 vmovaps xmm2, xmmword ptr [rsp+0x260]1554 vmovaps xmm3, xmmword ptr [rsp+0x270]1555 vblendvps xmm0, xmm0, xmm1, xmm81556 vblendvps xmm2, xmm2, xmm3, xmm81557 vmovaps xmmword ptr [rsp+0x240], xmm01558 vmovaps xmmword ptr [rsp+0x260], xmm21559 add rbx, 1281560 add rdi, 321561 sub rsi, 415623:1563 test rsi, 0x21564 je 3f1565 vbroadcasti128 ymm0, xmmword ptr [rcx]1566 vbroadcasti128 ymm1, xmmword ptr [rcx+0x10]1567 vmovd xmm13, dword ptr [rsp+0x240]1568 vpinsrd xmm13, xmm13, dword ptr [rsp+0x260], 11569 vpinsrd xmm13, xmm13, dword ptr [BLAKE3_BLOCK_LEN+rip], 21570 vmovd xmm14, dword ptr [rsp+0x244]1571 vpinsrd xmm14, xmm14, dword ptr [rsp+0x264], 11572 vpinsrd xmm14, xmm14, dword ptr [BLAKE3_BLOCK_LEN+rip], 21573 vinserti128 ymm13, ymm13, xmm14, 0x011574 vbroadcasti128 ymm14, xmmword ptr [ROT16+rip]1575 vbroadcasti128 ymm15, xmmword ptr [ROT8+rip]1576 mov r8, qword ptr [rdi]1577 mov r9, qword ptr [rdi+0x8]1578 movzx eax, byte ptr [rbp+0x40]1579 or eax, r13d1580 xor edx, edx1581.p2align 515822:1583 mov r14d, eax1584 or eax, r12d1585 add rdx, 641586 cmp rdx, r151587 cmovne eax, r14d1588 mov dword ptr [rsp+0x200], eax1589 vbroadcasti128 ymm2, xmmword ptr [BLAKE3_IV+rip]1590 vpbroadcastd ymm8, dword ptr [rsp+0x200]1591 vpblendd ymm3, ymm13, ymm8, 0x881592 vmovups ymm8, ymmword ptr [r8+rdx-0x40]1593 vinsertf128 ymm8, ymm8, xmmword ptr [r9+rdx-0x40], 0x011594 vmovups ymm9, ymmword ptr [r8+rdx-0x30]1595 vinsertf128 ymm9, ymm9, xmmword ptr [r9+rdx-0x30], 0x011596 vshufps ymm4, ymm8, ymm9, 1361597 vshufps ymm5, ymm8, ymm9, 2211598 vmovups ymm8, ymmword ptr [r8+rdx-0x20]1599 vinsertf128 ymm8, ymm8, xmmword ptr [r9+rdx-0x20], 0x011600 vmovups ymm9, ymmword ptr [r8+rdx-0x10]1601 vinsertf128 ymm9, ymm9, xmmword ptr [r9+rdx-0x10], 0x011602 vshufps ymm6, ymm8, ymm9, 1361603 vshufps ymm7, ymm8, ymm9, 2211604 vpshufd ymm6, ymm6, 0x931605 vpshufd ymm7, ymm7, 0x931606 mov al, 716079:1608 vpaddd ymm0, ymm0, ymm41609 vpaddd ymm0, ymm0, ymm11610 vpxor ymm3, ymm3, ymm01611 vpshufb ymm3, ymm3, ymm141612 vpaddd ymm2, ymm2, ymm31613 vpxor ymm1, ymm1, ymm21614 vpsrld ymm8, ymm1, 121615 vpslld ymm1, ymm1, 201616 vpor ymm1, ymm1, ymm81617 vpaddd ymm0, ymm0, ymm51618 vpaddd ymm0, ymm0, ymm11619 vpxor ymm3, ymm3, ymm01620 vpshufb ymm3, ymm3, ymm151621 vpaddd ymm2, ymm2, ymm31622 vpxor ymm1, ymm1, ymm21623 vpsrld ymm8, ymm1, 71624 vpslld ymm1, ymm1, 251625 vpor ymm1, ymm1, ymm81626 vpshufd ymm0, ymm0, 0x931627 vpshufd ymm3, ymm3, 0x4E1628 vpshufd ymm2, ymm2, 0x391629 vpaddd ymm0, ymm0, ymm61630 vpaddd ymm0, ymm0, ymm11631 vpxor ymm3, ymm3, ymm01632 vpshufb ymm3, ymm3, ymm141633 vpaddd ymm2, ymm2, ymm31634 vpxor ymm1, ymm1, ymm21635 vpsrld ymm8, ymm1, 121636 vpslld ymm1, ymm1, 201637 vpor ymm1, ymm1, ymm81638 vpaddd ymm0, ymm0, ymm71639 vpaddd ymm0, ymm0, ymm11640 vpxor ymm3, ymm3, ymm01641 vpshufb ymm3, ymm3, ymm151642 vpaddd ymm2, ymm2, ymm31643 vpxor ymm1, ymm1, ymm21644 vpsrld ymm8, ymm1, 71645 vpslld ymm1, ymm1, 251646 vpor ymm1, ymm1, ymm81647 vpshufd ymm0, ymm0, 0x391648 vpshufd ymm3, ymm3, 0x4E1649 vpshufd ymm2, ymm2, 0x931650 dec al1651 jz 9f1652 vshufps ymm8, ymm4, ymm5, 2141653 vpshufd ymm9, ymm4, 0x0F1654 vpshufd ymm4, ymm8, 0x391655 vshufps ymm8, ymm6, ymm7, 2501656 vpblendd ymm9, ymm9, ymm8, 0xAA1657 vpunpcklqdq ymm8, ymm7, ymm51658 vpblendd ymm8, ymm8, ymm6, 0x881659 vpshufd ymm8, ymm8, 0x781660 vpunpckhdq ymm5, ymm5, ymm71661 vpunpckldq ymm6, ymm6, ymm51662 vpshufd ymm7, ymm6, 0x1E1663 vmovdqa ymm5, ymm91664 vmovdqa ymm6, ymm81665 jmp 9b16669:1667 vpxor ymm0, ymm0, ymm21668 vpxor ymm1, ymm1, ymm31669 mov eax, r13d1670 cmp rdx, r151671 jne 2b1672 vmovdqu xmmword ptr [rbx], xmm01673 vmovdqu xmmword ptr [rbx+0x10], xmm11674 vextracti128 xmmword ptr [rbx+0x20], ymm0, 0x011675 vextracti128 xmmword ptr [rbx+0x30], ymm1, 0x011676 vmovaps ymm8, ymmword ptr [rsp+0x280]1677 vmovaps ymm0, ymmword ptr [rsp+0x240]1678 vmovups ymm1, ymmword ptr [rsp+0x248]1679 vmovaps ymm2, ymmword ptr [rsp+0x260]1680 vmovups ymm3, ymmword ptr [rsp+0x268]1681 vblendvps ymm0, ymm0, ymm1, ymm81682 vblendvps ymm2, ymm2, ymm3, ymm81683 vmovaps ymmword ptr [rsp+0x240], ymm01684 vmovaps ymmword ptr [rsp+0x260], ymm21685 add rbx, 641686 add rdi, 161687 sub rsi, 216883:1689 test rsi, 0x11690 je 4b1691 vmovdqu xmm0, xmmword ptr [rcx]1692 vmovdqu xmm1, xmmword ptr [rcx+0x10]1693 vmovd xmm3, dword ptr [rsp+0x240]1694 vpinsrd xmm3, xmm3, dword ptr [rsp+0x260], 11695 vpinsrd xmm13, xmm3, dword ptr [BLAKE3_BLOCK_LEN+rip], 21696 vmovdqa xmm14, xmmword ptr [ROT16+rip]1697 vmovdqa xmm15, xmmword ptr [ROT8+rip]1698 mov r8, qword ptr [rdi]1699 movzx eax, byte ptr [rbp+0x40]1700 or eax, r13d1701 xor edx, edx1702.p2align 517032:1704 mov r14d, eax1705 or eax, r12d1706 add rdx, 641707 cmp rdx, r151708 cmovne eax, r14d1709 vmovdqa xmm2, xmmword ptr [BLAKE3_IV+rip]1710 vmovdqa xmm3, xmm131711 vpinsrd xmm3, xmm3, eax, 31712 vmovups xmm8, xmmword ptr [r8+rdx-0x40]1713 vmovups xmm9, xmmword ptr [r8+rdx-0x30]1714 vshufps xmm4, xmm8, xmm9, 1361715 vshufps xmm5, xmm8, xmm9, 2211716 vmovups xmm8, xmmword ptr [r8+rdx-0x20]1717 vmovups xmm9, xmmword ptr [r8+rdx-0x10]1718 vshufps xmm6, xmm8, xmm9, 1361719 vshufps xmm7, xmm8, xmm9, 2211720 vpshufd xmm6, xmm6, 0x931721 vpshufd xmm7, xmm7, 0x931722 mov al, 717239:1724 vpaddd xmm0, xmm0, xmm41725 vpaddd xmm0, xmm0, xmm11726 vpxor xmm3, xmm3, xmm01727 vpshufb xmm3, xmm3, xmm141728 vpaddd xmm2, xmm2, xmm31729 vpxor xmm1, xmm1, xmm21730 vpsrld xmm8, xmm1, 121731 vpslld xmm1, xmm1, 201732 vpor xmm1, xmm1, xmm81733 vpaddd xmm0, xmm0, xmm51734 vpaddd xmm0, xmm0, xmm11735 vpxor xmm3, xmm3, xmm01736 vpshufb xmm3, xmm3, xmm151737 vpaddd xmm2, xmm2, xmm31738 vpxor xmm1, xmm1, xmm21739 vpsrld xmm8, xmm1, 71740 vpslld xmm1, xmm1, 251741 vpor xmm1, xmm1, xmm81742 vpshufd xmm0, xmm0, 0x931743 vpshufd xmm3, xmm3, 0x4E1744 vpshufd xmm2, xmm2, 0x391745 vpaddd xmm0, xmm0, xmm61746 vpaddd xmm0, xmm0, xmm11747 vpxor xmm3, xmm3, xmm01748 vpshufb xmm3, xmm3, xmm141749 vpaddd xmm2, xmm2, xmm31750 vpxor xmm1, xmm1, xmm21751 vpsrld xmm8, xmm1, 121752 vpslld xmm1, xmm1, 201753 vpor xmm1, xmm1, xmm81754 vpaddd xmm0, xmm0, xmm71755 vpaddd xmm0, xmm0, xmm11756 vpxor xmm3, xmm3, xmm01757 vpshufb xmm3, xmm3, xmm151758 vpaddd xmm2, xmm2, xmm31759 vpxor xmm1, xmm1, xmm21760 vpsrld xmm8, xmm1, 71761 vpslld xmm1, xmm1, 251762 vpor xmm1, xmm1, xmm81763 vpshufd xmm0, xmm0, 0x391764 vpshufd xmm3, xmm3, 0x4E1765 vpshufd xmm2, xmm2, 0x931766 dec al1767 jz 9f1768 vshufps xmm8, xmm4, xmm5, 2141769 vpshufd xmm9, xmm4, 0x0F1770 vpshufd xmm4, xmm8, 0x391771 vshufps xmm8, xmm6, xmm7, 2501772 vpblendd xmm9, xmm9, xmm8, 0xAA1773 vpunpcklqdq xmm8, xmm7, xmm51774 vpblendd xmm8, xmm8, xmm6, 0x881775 vpshufd xmm8, xmm8, 0x781776 vpunpckhdq xmm5, xmm5, xmm71777 vpunpckldq xmm6, xmm6, xmm51778 vpshufd xmm7, xmm6, 0x1E1779 vmovdqa xmm5, xmm91780 vmovdqa xmm6, xmm81781 jmp 9b17829:1783 vpxor xmm0, xmm0, xmm21784 vpxor xmm1, xmm1, xmm31785 mov eax, r13d1786 cmp rdx, r151787 jne 2b1788 vmovdqu xmmword ptr [rbx], xmm01789 vmovdqu xmmword ptr [rbx+0x10], xmm11790 jmp 4b1791 1792 1793#ifdef __APPLE__1794.static_data1795#else1796.section .rodata1797#endif1798.p2align 61799ADD0:1800 .long 0, 1, 2, 3, 4, 5, 6, 71801ADD1:1802 .long 8, 8, 8, 8, 8, 8, 8, 81803BLAKE3_IV_0:1804 .long 0x6A09E667, 0x6A09E667, 0x6A09E667, 0x6A09E6671805 .long 0x6A09E667, 0x6A09E667, 0x6A09E667, 0x6A09E6671806BLAKE3_IV_1:1807 .long 0xBB67AE85, 0xBB67AE85, 0xBB67AE85, 0xBB67AE851808 .long 0xBB67AE85, 0xBB67AE85, 0xBB67AE85, 0xBB67AE851809BLAKE3_IV_2:1810 .long 0x3C6EF372, 0x3C6EF372, 0x3C6EF372, 0x3C6EF3721811 .long 0x3C6EF372, 0x3C6EF372, 0x3C6EF372, 0x3C6EF3721812BLAKE3_IV_3:1813 .long 0xA54FF53A, 0xA54FF53A, 0xA54FF53A, 0xA54FF53A1814 .long 0xA54FF53A, 0xA54FF53A, 0xA54FF53A, 0xA54FF53A1815BLAKE3_BLOCK_LEN:1816 .long 0x00000040, 0x00000040, 0x00000040, 0x000000401817 .long 0x00000040, 0x00000040, 0x00000040, 0x000000401818ROT16:1819 .byte 2, 3, 0, 1, 6, 7, 4, 5, 10, 11, 8, 9, 14, 15, 12, 131820ROT8:1821 .byte 1, 2, 3, 0, 5, 6, 7, 4, 9, 10, 11, 8, 13, 14, 15, 121822CMP_MSB_MASK:1823 .long 0x80000000, 0x80000000, 0x80000000, 0x800000001824 .long 0x80000000, 0x80000000, 0x80000000, 0x800000001825BLAKE3_IV:1826 .long 0x6A09E667, 0xBB67AE85, 0x3C6EF372, 0xA54FF53A1827 1828#endif1829