git / moonbite-core / src/crypto/blake3/blake3_avx2_x86-64_windows_gnu.S · raw

.intel_syntax noprefix.global _blake3_hash_many_avx2.global blake3_hash_many_avx2.section .text        .p2align  6_blake3_hash_many_avx2:blake3_hash_many_avx2:        push    r15        push    r14        push    r13        push    r12        push    rsi        push    rdi        push    rbx        push    rbp        mov     rbp, rsp        sub     rsp, 880        and     rsp, 0xFFFFFFFFFFFFFFC0        vmovdqa xmmword ptr [rsp+0x2D0], xmm6        vmovdqa xmmword ptr [rsp+0x2E0], xmm7        vmovdqa xmmword ptr [rsp+0x2F0], xmm8        vmovdqa xmmword ptr [rsp+0x300], xmm9        vmovdqa xmmword ptr [rsp+0x310], xmm10        vmovdqa xmmword ptr [rsp+0x320], xmm11        vmovdqa xmmword ptr [rsp+0x330], xmm12        vmovdqa xmmword ptr [rsp+0x340], xmm13        vmovdqa xmmword ptr [rsp+0x350], xmm14        vmovdqa xmmword ptr [rsp+0x360], xmm15        mov     rdi, rcx        mov     rsi, rdx        mov     rdx, r8        mov     rcx, r9        mov     r8, qword ptr [rbp+0x68]        movzx   r9, byte ptr [rbp+0x70]        neg     r9d        vmovd   xmm0, r9d        vpbroadcastd ymm0, xmm0        vmovdqa ymmword ptr [rsp+0x260], ymm0        vpand   ymm1, ymm0, ymmword ptr [ADD0+rip]        vpand   ymm2, ymm0, ymmword ptr [ADD1+rip]        vmovdqa ymmword ptr [rsp+0x2A0], ymm2        vmovd   xmm2, r8d        vpbroadcastd ymm2, xmm2        vpaddd  ymm2, ymm2, ymm1        vmovdqa ymmword ptr [rsp+0x220], ymm2        vpxor   ymm1, ymm1, ymmword ptr [CMP_MSB_MASK+rip]        vpxor   ymm2, ymm2, ymmword ptr [CMP_MSB_MASK+rip]        vpcmpgtd ymm2, ymm1, ymm2        shr     r8, 32        vmovd   xmm3, r8d        vpbroadcastd ymm3, xmm3        vpsubd  ymm3, ymm3, ymm2        vmovdqa ymmword ptr [rsp+0x240], ymm3        shl     rdx, 6        mov     qword ptr [rsp+0x2C0], rdx        cmp     rsi, 8        jc      3f2:        vpbroadcastd ymm0, dword ptr [rcx]        vpbroadcastd ymm1, dword ptr [rcx+0x4]        vpbroadcastd ymm2, dword ptr [rcx+0x8]        vpbroadcastd ymm3, dword ptr [rcx+0xC]        vpbroadcastd ymm4, dword ptr [rcx+0x10]        vpbroadcastd ymm5, dword ptr [rcx+0x14]        vpbroadcastd ymm6, dword ptr [rcx+0x18]        vpbroadcastd ymm7, dword ptr [rcx+0x1C]        mov     r8, qword ptr [rdi]        mov     r9, qword ptr [rdi+0x8]        mov     r10, qword ptr [rdi+0x10]        mov     r11, qword ptr [rdi+0x18]        mov     r12, qword ptr [rdi+0x20]        mov     r13, qword ptr [rdi+0x28]        mov     r14, qword ptr [rdi+0x30]        mov     r15, qword ptr [rdi+0x38]        movzx   eax, byte ptr [rbp+0x78]        movzx   ebx, byte ptr [rbp+0x80]        or      eax, ebx        xor     edx, edx.p2align 59:        movzx   ebx, byte ptr [rbp+0x88]        or      ebx, eax        add     rdx, 64        cmp     rdx, qword ptr [rsp+0x2C0]        cmove   eax, ebx        mov     dword ptr [rsp+0x200], eax        vmovups xmm8, xmmword ptr [r8+rdx-0x40]        vinsertf128 ymm8, ymm8, xmmword ptr [r12+rdx-0x40], 0x01        vmovups xmm9, xmmword ptr [r9+rdx-0x40]        vinsertf128 ymm9, ymm9, xmmword ptr [r13+rdx-0x40], 0x01        vunpcklpd ymm12, ymm8, ymm9        vunpckhpd ymm13, ymm8, ymm9        vmovups xmm10, xmmword ptr [r10+rdx-0x40]        vinsertf128 ymm10, ymm10, xmmword ptr [r14+rdx-0x40], 0x01        vmovups xmm11, xmmword ptr [r11+rdx-0x40]        vinsertf128 ymm11, ymm11, xmmword ptr [r15+rdx-0x40], 0x01        vunpcklpd ymm14, ymm10, ymm11        vunpckhpd ymm15, ymm10, ymm11        vshufps ymm8, ymm12, ymm14, 136        vmovaps ymmword ptr [rsp], ymm8        vshufps ymm9, ymm12, ymm14, 221        vmovaps ymmword ptr [rsp+0x20], ymm9        vshufps ymm10, ymm13, ymm15, 136        vmovaps ymmword ptr [rsp+0x40], ymm10        vshufps ymm11, ymm13, ymm15, 221        vmovaps ymmword ptr [rsp+0x60], ymm11        vmovups xmm8, xmmword ptr [r8+rdx-0x30]        vinsertf128 ymm8, ymm8, xmmword ptr [r12+rdx-0x30], 0x01        vmovups xmm9, xmmword ptr [r9+rdx-0x30]        vinsertf128 ymm9, ymm9, xmmword ptr [r13+rdx-0x30], 0x01        vunpcklpd ymm12, ymm8, ymm9        vunpckhpd ymm13, ymm8, ymm9        vmovups xmm10, xmmword ptr [r10+rdx-0x30]        vinsertf128 ymm10, ymm10, xmmword ptr [r14+rdx-0x30], 0x01        vmovups xmm11, xmmword ptr [r11+rdx-0x30]        vinsertf128 ymm11, ymm11, xmmword ptr [r15+rdx-0x30], 0x01        vunpcklpd ymm14, ymm10, ymm11        vunpckhpd ymm15, ymm10, ymm11        vshufps ymm8, ymm12, ymm14, 136        vmovaps ymmword ptr [rsp+0x80], ymm8        vshufps ymm9, ymm12, ymm14, 221        vmovaps ymmword ptr [rsp+0xA0], ymm9        vshufps ymm10, ymm13, ymm15, 136        vmovaps ymmword ptr [rsp+0xC0], ymm10        vshufps ymm11, ymm13, ymm15, 221        vmovaps ymmword ptr [rsp+0xE0], ymm11        vmovups xmm8, xmmword ptr [r8+rdx-0x20]        vinsertf128 ymm8, ymm8, xmmword ptr [r12+rdx-0x20], 0x01        vmovups xmm9, xmmword ptr [r9+rdx-0x20]        vinsertf128 ymm9, ymm9, xmmword ptr [r13+rdx-0x20], 0x01        vunpcklpd ymm12, ymm8, ymm9        vunpckhpd ymm13, ymm8, ymm9        vmovups xmm10, xmmword ptr [r10+rdx-0x20]        vinsertf128 ymm10, ymm10, xmmword ptr [r14+rdx-0x20], 0x01        vmovups xmm11, xmmword ptr [r11+rdx-0x20]        vinsertf128 ymm11, ymm11, xmmword ptr [r15+rdx-0x20], 0x01        vunpcklpd ymm14, ymm10, ymm11        vunpckhpd ymm15, ymm10, ymm11        vshufps ymm8, ymm12, ymm14, 136        vmovaps ymmword ptr [rsp+0x100], ymm8        vshufps ymm9, ymm12, ymm14, 221        vmovaps ymmword ptr [rsp+0x120], ymm9        vshufps ymm10, ymm13, ymm15, 136        vmovaps ymmword ptr [rsp+0x140], ymm10        vshufps ymm11, ymm13, ymm15, 221        vmovaps ymmword ptr [rsp+0x160], ymm11        vmovups xmm8, xmmword ptr [r8+rdx-0x10]        vinsertf128 ymm8, ymm8, xmmword ptr [r12+rdx-0x10], 0x01        vmovups xmm9, xmmword ptr [r9+rdx-0x10]        vinsertf128 ymm9, ymm9, xmmword ptr [r13+rdx-0x10], 0x01        vunpcklpd ymm12, ymm8, ymm9        vunpckhpd ymm13, ymm8, ymm9        vmovups xmm10, xmmword ptr [r10+rdx-0x10]        vinsertf128 ymm10, ymm10, xmmword ptr [r14+rdx-0x10], 0x01        vmovups xmm11, xmmword ptr [r11+rdx-0x10]        vinsertf128 ymm11, ymm11, xmmword ptr [r15+rdx-0x10], 0x01        vunpcklpd ymm14, ymm10, ymm11        vunpckhpd ymm15, ymm10, ymm11        vshufps ymm8, ymm12, ymm14, 136        vmovaps ymmword ptr [rsp+0x180], ymm8        vshufps ymm9, ymm12, ymm14, 221        vmovaps ymmword ptr [rsp+0x1A0], ymm9        vshufps ymm10, ymm13, ymm15, 136        vmovaps ymmword ptr [rsp+0x1C0], ymm10        vshufps ymm11, ymm13, ymm15, 221        vmovaps ymmword ptr [rsp+0x1E0], ymm11        vpbroadcastd ymm15, dword ptr [rsp+0x200]        prefetcht0 [r8+rdx+0x80]        prefetcht0 [r12+rdx+0x80]        prefetcht0 [r9+rdx+0x80]        prefetcht0 [r13+rdx+0x80]        prefetcht0 [r10+rdx+0x80]        prefetcht0 [r14+rdx+0x80]        prefetcht0 [r11+rdx+0x80]        prefetcht0 [r15+rdx+0x80]        vpaddd  ymm0, ymm0, ymmword ptr [rsp]        vpaddd  ymm1, ymm1, ymmword ptr [rsp+0x40]        vpaddd  ymm2, ymm2, ymmword ptr [rsp+0x80]        vpaddd  ymm3, ymm3, ymmword ptr [rsp+0xC0]        vpaddd  ymm0, ymm0, ymm4        vpaddd  ymm1, ymm1, ymm5        vpaddd  ymm2, ymm2, ymm6        vpaddd  ymm3, ymm3, ymm7        vpxor   ymm12, ymm0, ymmword ptr [rsp+0x220]        vpxor   ymm13, ymm1, ymmword ptr [rsp+0x240]        vpxor   ymm14, ymm2, ymmword ptr [BLAKE3_BLOCK_LEN+rip]        vpxor   ymm15, ymm3, ymm15        vbroadcasti128 ymm8, xmmword ptr [ROT16+rip]        vpshufb ymm12, ymm12, ymm8        vpshufb ymm13, ymm13, ymm8        vpshufb ymm14, ymm14, ymm8        vpshufb ymm15, ymm15, ymm8        vpaddd  ymm8, ymm12, ymmword ptr [BLAKE3_IV_0+rip]        vpaddd  ymm9, ymm13, ymmword ptr [BLAKE3_IV_1+rip]        vpaddd  ymm10, ymm14, ymmword ptr [BLAKE3_IV_2+rip]        vpaddd  ymm11, ymm15, ymmword ptr [BLAKE3_IV_3+rip]        vpxor   ymm4, ymm4, ymm8        vpxor   ymm5, ymm5, ymm9        vpxor   ymm6, ymm6, ymm10        vpxor   ymm7, ymm7, ymm11        vmovdqa ymmword ptr [rsp+0x200], ymm8        vpsrld  ymm8, ymm4, 12        vpslld  ymm4, ymm4, 20        vpor    ymm4, ymm4, ymm8        vpsrld  ymm8, ymm5, 12        vpslld  ymm5, ymm5, 20        vpor    ymm5, ymm5, ymm8        vpsrld  ymm8, ymm6, 12        vpslld  ymm6, ymm6, 20        vpor    ymm6, ymm6, ymm8        vpsrld  ymm8, ymm7, 12        vpslld  ymm7, ymm7, 20        vpor    ymm7, ymm7, ymm8        vpaddd  ymm0, ymm0, ymmword ptr [rsp+0x20]        vpaddd  ymm1, ymm1, ymmword ptr [rsp+0x60]        vpaddd  ymm2, ymm2, ymmword ptr [rsp+0xA0]        vpaddd  ymm3, ymm3, ymmword ptr [rsp+0xE0]        vpaddd  ymm0, ymm0, ymm4        vpaddd  ymm1, ymm1, ymm5        vpaddd  ymm2, ymm2, ymm6        vpaddd  ymm3, ymm3, ymm7        vpxor   ymm12, ymm12, ymm0        vpxor   ymm13, ymm13, ymm1        vpxor   ymm14, ymm14, ymm2        vpxor   ymm15, ymm15, ymm3        vbroadcasti128 ymm8, xmmword ptr [ROT8+rip]        vpshufb ymm12, ymm12, ymm8        vpshufb ymm13, ymm13, ymm8        vpshufb ymm14, ymm14, ymm8        vpshufb ymm15, ymm15, ymm8        vpaddd  ymm8, ymm12, ymmword ptr [rsp+0x200]        vpaddd  ymm9, ymm9, ymm13        vpaddd  ymm10, ymm10, ymm14        vpaddd  ymm11, ymm11, ymm15        vpxor   ymm4, ymm4, ymm8        vpxor   ymm5, ymm5, ymm9        vpxor   ymm6, ymm6, ymm10        vpxor   ymm7, ymm7, ymm11        vmovdqa ymmword ptr [rsp+0x200], ymm8        vpsrld  ymm8, ymm4, 7        vpslld  ymm4, ymm4, 25        vpor    ymm4, ymm4, ymm8        vpsrld  ymm8, ymm5, 7        vpslld  ymm5, ymm5, 25        vpor    ymm5, ymm5, ymm8        vpsrld  ymm8, ymm6, 7        vpslld  ymm6, ymm6, 25        vpor    ymm6, ymm6, ymm8        vpsrld  ymm8, ymm7, 7        vpslld  ymm7, ymm7, 25        vpor    ymm7, ymm7, ymm8        vpaddd  ymm0, ymm0, ymmword ptr [rsp+0x100]        vpaddd  ymm1, ymm1, ymmword ptr [rsp+0x140]        vpaddd  ymm2, ymm2, ymmword ptr [rsp+0x180]        vpaddd  ymm3, ymm3, ymmword ptr [rsp+0x1C0]        vpaddd  ymm0, ymm0, ymm5        vpaddd  ymm1, ymm1, ymm6        vpaddd  ymm2, ymm2, ymm7        vpaddd  ymm3, ymm3, ymm4        vpxor   ymm15, ymm15, ymm0        vpxor   ymm12, ymm12, ymm1        vpxor   ymm13, ymm13, ymm2        vpxor   ymm14, ymm14, ymm3        vbroadcasti128 ymm8, xmmword ptr [ROT16+rip]        vpshufb ymm15, ymm15, ymm8        vpshufb ymm12, ymm12, ymm8        vpshufb ymm13, ymm13, ymm8        vpshufb ymm14, ymm14, ymm8        vpaddd  ymm10, ymm10, ymm15        vpaddd  ymm11, ymm11, ymm12        vpaddd  ymm8, ymm13, ymmword ptr [rsp+0x200]        vpaddd  ymm9, ymm9, ymm14        vpxor   ymm5, ymm5, ymm10        vpxor   ymm6, ymm6, ymm11        vpxor   ymm7, ymm7, ymm8        vpxor   ymm4, ymm4, ymm9        vmovdqa ymmword ptr [rsp+0x200], ymm8        vpsrld  ymm8, ymm5, 12        vpslld  ymm5, ymm5, 20        vpor    ymm5, ymm5, ymm8        vpsrld  ymm8, ymm6, 12        vpslld  ymm6, ymm6, 20        vpor    ymm6, ymm6, ymm8        vpsrld  ymm8, ymm7, 12        vpslld  ymm7, ymm7, 20        vpor    ymm7, ymm7, ymm8        vpsrld  ymm8, ymm4, 12        vpslld  ymm4, ymm4, 20        vpor    ymm4, ymm4, ymm8        vpaddd  ymm0, ymm0, ymmword ptr [rsp+0x120]        vpaddd  ymm1, ymm1, ymmword ptr [rsp+0x160]        vpaddd  ymm2, ymm2, ymmword ptr [rsp+0x1A0]        vpaddd  ymm3, ymm3, ymmword ptr [rsp+0x1E0]        vpaddd  ymm0, ymm0, ymm5        vpaddd  ymm1, ymm1, ymm6        vpaddd  ymm2, ymm2, ymm7        vpaddd  ymm3, ymm3, ymm4        vpxor   ymm15, ymm15, ymm0        vpxor   ymm12, ymm12, ymm1        vpxor   ymm13, ymm13, ymm2        vpxor   ymm14, ymm14, ymm3        vbroadcasti128 ymm8, xmmword ptr [ROT8+rip]        vpshufb ymm15, ymm15, ymm8        vpshufb ymm12, ymm12, ymm8        vpshufb ymm13, ymm13, ymm8        vpshufb ymm14, ymm14, ymm8        vpaddd  ymm10, ymm10, ymm15        vpaddd  ymm11, ymm11, ymm12        vpaddd  ymm8, ymm13, ymmword ptr [rsp+0x200]        vpaddd  ymm9, ymm9, ymm14        vpxor   ymm5, ymm5, ymm10        vpxor   ymm6, ymm6, ymm11        vpxor   ymm7, ymm7, ymm8        vpxor   ymm4, ymm4, ymm9        vmovdqa ymmword ptr [rsp+0x200], ymm8        vpsrld  ymm8, ymm5, 7        vpslld  ymm5, ymm5, 25        vpor    ymm5, ymm5, ymm8        vpsrld  ymm8, ymm6, 7        vpslld  ymm6, ymm6, 25        vpor    ymm6, ymm6, ymm8        vpsrld  ymm8, ymm7, 7        vpslld  ymm7, ymm7, 25        vpor    ymm7, ymm7, ymm8        vpsrld  ymm8, ymm4, 7        vpslld  ymm4, ymm4, 25        vpor    ymm4, ymm4, ymm8        vpaddd  ymm0, ymm0, ymmword ptr [rsp+0x40]        vpaddd  ymm1, ymm1, ymmword ptr [rsp+0x60]        vpaddd  ymm2, ymm2, ymmword ptr [rsp+0xE0]        vpaddd  ymm3, ymm3, ymmword ptr [rsp+0x80]        vpaddd  ymm0, ymm0, ymm4        vpaddd  ymm1, ymm1, ymm5        vpaddd  ymm2, ymm2, ymm6        vpaddd  ymm3, ymm3, ymm7        vpxor   ymm12, ymm12, ymm0        vpxor   ymm13, ymm13, ymm1        vpxor   ymm14, ymm14, ymm2        vpxor   ymm15, ymm15, ymm3        vbroadcasti128 ymm8, xmmword ptr [ROT16+rip]        vpshufb ymm12, ymm12, ymm8        vpshufb ymm13, ymm13, ymm8        vpshufb ymm14, ymm14, ymm8        vpshufb ymm15, ymm15, ymm8        vpaddd  ymm8, ymm12, ymmword ptr [rsp+0x200]        vpaddd  ymm9, ymm9, ymm13        vpaddd  ymm10, ymm10, ymm14        vpaddd  ymm11, ymm11, ymm15        vpxor   ymm4, ymm4, ymm8        vpxor   ymm5, ymm5, ymm9        vpxor   ymm6, ymm6, ymm10        vpxor   ymm7, ymm7, ymm11        vmovdqa ymmword ptr [rsp+0x200], ymm8        vpsrld  ymm8, ymm4, 12        vpslld  ymm4, ymm4, 20        vpor    ymm4, ymm4, ymm8        vpsrld  ymm8, ymm5, 12        vpslld  ymm5, ymm5, 20        vpor    ymm5, ymm5, ymm8        vpsrld  ymm8, ymm6, 12        vpslld  ymm6, ymm6, 20        vpor    ymm6, ymm6, ymm8        vpsrld  ymm8, ymm7, 12        vpslld  ymm7, ymm7, 20        vpor    ymm7, ymm7, ymm8        vpaddd  ymm0, ymm0, ymmword ptr [rsp+0xC0]        vpaddd  ymm1, ymm1, ymmword ptr [rsp+0x140]        vpaddd  ymm2, ymm2, ymmword ptr [rsp]        vpaddd  ymm3, ymm3, ymmword ptr [rsp+0x1A0]        vpaddd  ymm0, ymm0, ymm4        vpaddd  ymm1, ymm1, ymm5        vpaddd  ymm2, ymm2, ymm6        vpaddd  ymm3, ymm3, ymm7        vpxor   ymm12, ymm12, ymm0        vpxor   ymm13, ymm13, ymm1        vpxor   ymm14, ymm14, ymm2        vpxor   ymm15, ymm15, ymm3        vbroadcasti128 ymm8, xmmword ptr [ROT8+rip]        vpshufb ymm12, ymm12, ymm8        vpshufb ymm13, ymm13, ymm8        vpshufb ymm14, ymm14, ymm8        vpshufb ymm15, ymm15, ymm8        vpaddd  ymm8, ymm12, ymmword ptr [rsp+0x200]        vpaddd  ymm9, ymm9, ymm13        vpaddd  ymm10, ymm10, ymm14        vpaddd  ymm11, ymm11, ymm15        vpxor   ymm4, ymm4, ymm8        vpxor   ymm5, ymm5, ymm9        vpxor   ymm6, ymm6, ymm10        vpxor   ymm7, ymm7, ymm11        vmovdqa ymmword ptr [rsp+0x200], ymm8        vpsrld  ymm8, ymm4, 7        vpslld  ymm4, ymm4, 25        vpor    ymm4, ymm4, ymm8        vpsrld  ymm8, ymm5, 7        vpslld  ymm5, ymm5, 25        vpor    ymm5, ymm5, ymm8        vpsrld  ymm8, ymm6, 7        vpslld  ymm6, ymm6, 25        vpor    ymm6, ymm6, ymm8        vpsrld  ymm8, ymm7, 7        vpslld  ymm7, ymm7, 25        vpor    ymm7, ymm7, ymm8        vpaddd  ymm0, ymm0, ymmword ptr [rsp+0x20]        vpaddd  ymm1, ymm1, ymmword ptr [rsp+0x180]        vpaddd  ymm2, ymm2, ymmword ptr [rsp+0x120]        vpaddd  ymm3, ymm3, ymmword ptr [rsp+0x1E0]        vpaddd  ymm0, ymm0, ymm5        vpaddd  ymm1, ymm1, ymm6        vpaddd  ymm2, ymm2, ymm7        vpaddd  ymm3, ymm3, ymm4        vpxor   ymm15, ymm15, ymm0        vpxor   ymm12, ymm12, ymm1        vpxor   ymm13, ymm13, ymm2        vpxor   ymm14, ymm14, ymm3        vbroadcasti128 ymm8, xmmword ptr [ROT16+rip]        vpshufb ymm15, ymm15, ymm8        vpshufb ymm12, ymm12, ymm8        vpshufb ymm13, ymm13, ymm8        vpshufb ymm14, ymm14, ymm8        vpaddd  ymm10, ymm10, ymm15        vpaddd  ymm11, ymm11, ymm12        vpaddd  ymm8, ymm13, ymmword ptr [rsp+0x200]        vpaddd  ymm9, ymm9, ymm14        vpxor   ymm5, ymm5, ymm10        vpxor   ymm6, ymm6, ymm11        vpxor   ymm7, ymm7, ymm8        vpxor   ymm4, ymm4, ymm9        vmovdqa ymmword ptr [rsp+0x200], ymm8        vpsrld  ymm8, ymm5, 12        vpslld  ymm5, ymm5, 20        vpor    ymm5, ymm5, ymm8        vpsrld  ymm8, ymm6, 12        vpslld  ymm6, ymm6, 20        vpor    ymm6, ymm6, ymm8        vpsrld  ymm8, ymm7, 12        vpslld  ymm7, ymm7, 20        vpor    ymm7, ymm7, ymm8        vpsrld  ymm8, ymm4, 12        vpslld  ymm4, ymm4, 20        vpor    ymm4, ymm4, ymm8        vpaddd  ymm0, ymm0, ymmword ptr [rsp+0x160]        vpaddd  ymm1, ymm1, ymmword ptr [rsp+0xA0]        vpaddd  ymm2, ymm2, ymmword ptr [rsp+0x1C0]        vpaddd  ymm3, ymm3, ymmword ptr [rsp+0x100]        vpaddd  ymm0, ymm0, ymm5        vpaddd  ymm1, ymm1, ymm6        vpaddd  ymm2, ymm2, ymm7        vpaddd  ymm3, ymm3, ymm4        vpxor   ymm15, ymm15, ymm0        vpxor   ymm12, ymm12, ymm1        vpxor   ymm13, ymm13, ymm2        vpxor   ymm14, ymm14, ymm3        vbroadcasti128 ymm8, xmmword ptr [ROT8+rip]        vpshufb ymm15, ymm15, ymm8        vpshufb ymm12, ymm12, ymm8        vpshufb ymm13, ymm13, ymm8        vpshufb ymm14, ymm14, ymm8        vpaddd  ymm10, ymm10, ymm15        vpaddd  ymm11, ymm11, ymm12        vpaddd  ymm8, ymm13, ymmword ptr [rsp+0x200]        vpaddd  ymm9, ymm9, ymm14        vpxor   ymm5, ymm5, ymm10        vpxor   ymm6, ymm6, ymm11        vpxor   ymm7, ymm7, ymm8        vpxor   ymm4, ymm4, ymm9        vmovdqa ymmword ptr [rsp+0x200], ymm8        vpsrld  ymm8, ymm5, 7        vpslld  ymm5, ymm5, 25        vpor    ymm5, ymm5, ymm8        vpsrld  ymm8, ymm6, 7        vpslld  ymm6, ymm6, 25        vpor    ymm6, ymm6, ymm8        vpsrld  ymm8, ymm7, 7        vpslld  ymm7, ymm7, 25        vpor    ymm7, ymm7, ymm8        vpsrld  ymm8, ymm4, 7        vpslld  ymm4, ymm4, 25        vpor    ymm4, ymm4, ymm8        vpaddd  ymm0, ymm0, ymmword ptr [rsp+0x60]        vpaddd  ymm1, ymm1, ymmword ptr [rsp+0x140]        vpaddd  ymm2, ymm2, ymmword ptr [rsp+0x1A0]        vpaddd  ymm3, ymm3, ymmword ptr [rsp+0xE0]        vpaddd  ymm0, ymm0, ymm4        vpaddd  ymm1, ymm1, ymm5        vpaddd  ymm2, ymm2, ymm6        vpaddd  ymm3, ymm3, ymm7        vpxor   ymm12, ymm12, ymm0        vpxor   ymm13, ymm13, ymm1        vpxor   ymm14, ymm14, ymm2        vpxor   ymm15, ymm15, ymm3        vbroadcasti128 ymm8, xmmword ptr [ROT16+rip]        vpshufb ymm12, ymm12, ymm8        vpshufb ymm13, ymm13, ymm8        vpshufb ymm14, ymm14, ymm8        vpshufb ymm15, ymm15, ymm8        vpaddd  ymm8, ymm12, ymmword ptr [rsp+0x200]        vpaddd  ymm9, ymm9, ymm13        vpaddd  ymm10, ymm10, ymm14        vpaddd  ymm11, ymm11, ymm15        vpxor   ymm4, ymm4, ymm8        vpxor   ymm5, ymm5, ymm9        vpxor   ymm6, ymm6, ymm10        vpxor   ymm7, ymm7, ymm11        vmovdqa ymmword ptr [rsp+0x200], ymm8        vpsrld  ymm8, ymm4, 12        vpslld  ymm4, ymm4, 20        vpor    ymm4, ymm4, ymm8        vpsrld  ymm8, ymm5, 12        vpslld  ymm5, ymm5, 20        vpor    ymm5, ymm5, ymm8        vpsrld  ymm8, ymm6, 12        vpslld  ymm6, ymm6, 20        vpor    ymm6, ymm6, ymm8        vpsrld  ymm8, ymm7, 12        vpslld  ymm7, ymm7, 20        vpor    ymm7, ymm7, ymm8        vpaddd  ymm0, ymm0, ymmword ptr [rsp+0x80]        vpaddd  ymm1, ymm1, ymmword ptr [rsp+0x180]        vpaddd  ymm2, ymm2, ymmword ptr [rsp+0x40]        vpaddd  ymm3, ymm3, ymmword ptr [rsp+0x1C0]        vpaddd  ymm0, ymm0, ymm4        vpaddd  ymm1, ymm1, ymm5        vpaddd  ymm2, ymm2, ymm6        vpaddd  ymm3, ymm3, ymm7        vpxor   ymm12, ymm12, ymm0        vpxor   ymm13, ymm13, ymm1        vpxor   ymm14, ymm14, ymm2        vpxor   ymm15, ymm15, ymm3        vbroadcasti128 ymm8, xmmword ptr [ROT8+rip]        vpshufb ymm12, ymm12, ymm8        vpshufb ymm13, ymm13, ymm8        vpshufb ymm14, ymm14, ymm8        vpshufb ymm15, ymm15, ymm8        vpaddd  ymm8, ymm12, ymmword ptr [rsp+0x200]        vpaddd  ymm9, ymm9, ymm13        vpaddd  ymm10, ymm10, ymm14        vpaddd  ymm11, ymm11, ymm15        vpxor   ymm4, ymm4, ymm8        vpxor   ymm5, ymm5, ymm9        vpxor   ymm6, ymm6, ymm10        vpxor   ymm7, ymm7, ymm11        vmovdqa ymmword ptr [rsp+0x200], ymm8        vpsrld  ymm8, ymm4, 7        vpslld  ymm4, ymm4, 25        vpor    ymm4, ymm4, ymm8        vpsrld  ymm8, ymm5, 7        vpslld  ymm5, ymm5, 25        vpor    ymm5, ymm5, ymm8        vpsrld  ymm8, ymm6, 7        vpslld  ymm6, ymm6, 25        vpor    ymm6, ymm6, ymm8        vpsrld  ymm8, ymm7, 7        vpslld  ymm7, ymm7, 25        vpor    ymm7, ymm7, ymm8        vpaddd  ymm0, ymm0, ymmword ptr [rsp+0xC0]        vpaddd  ymm1, ymm1, ymmword ptr [rsp+0x120]        vpaddd  ymm2, ymm2, ymmword ptr [rsp+0x160]        vpaddd  ymm3, ymm3, ymmword ptr [rsp+0x100]        vpaddd  ymm0, ymm0, ymm5        vpaddd  ymm1, ymm1, ymm6        vpaddd  ymm2, ymm2, ymm7        vpaddd  ymm3, ymm3, ymm4        vpxor   ymm15, ymm15, ymm0        vpxor   ymm12, ymm12, ymm1        vpxor   ymm13, ymm13, ymm2        vpxor   ymm14, ymm14, ymm3        vbroadcasti128 ymm8, xmmword ptr [ROT16+rip]        vpshufb ymm15, ymm15, ymm8        vpshufb ymm12, ymm12, ymm8        vpshufb ymm13, ymm13, ymm8        vpshufb ymm14, ymm14, ymm8        vpaddd  ymm10, ymm10, ymm15        vpaddd  ymm11, ymm11, ymm12        vpaddd  ymm8, ymm13, ymmword ptr [rsp+0x200]        vpaddd  ymm9, ymm9, ymm14        vpxor   ymm5, ymm5, ymm10        vpxor   ymm6, ymm6, ymm11        vpxor   ymm7, ymm7, ymm8        vpxor   ymm4, ymm4, ymm9        vmovdqa ymmword ptr [rsp+0x200], ymm8        vpsrld  ymm8, ymm5, 12        vpslld  ymm5, ymm5, 20        vpor    ymm5, ymm5, ymm8        vpsrld  ymm8, ymm6, 12        vpslld  ymm6, ymm6, 20        vpor    ymm6, ymm6, ymm8        vpsrld  ymm8, ymm7, 12        vpslld  ymm7, ymm7, 20        vpor    ymm7, ymm7, ymm8        vpsrld  ymm8, ymm4, 12        vpslld  ymm4, ymm4, 20        vpor    ymm4, ymm4, ymm8        vpaddd  ymm0, ymm0, ymmword ptr [rsp+0xA0]        vpaddd  ymm1, ymm1, ymmword ptr [rsp]        vpaddd  ymm2, ymm2, ymmword ptr [rsp+0x1E0]        vpaddd  ymm3, ymm3, ymmword ptr [rsp+0x20]        vpaddd  ymm0, ymm0, ymm5        vpaddd  ymm1, ymm1, ymm6        vpaddd  ymm2, ymm2, ymm7        vpaddd  ymm3, ymm3, ymm4        vpxor   ymm15, ymm15, ymm0        vpxor   ymm12, ymm12, ymm1        vpxor   ymm13, ymm13, ymm2        vpxor   ymm14, ymm14, ymm3        vbroadcasti128 ymm8, xmmword ptr [ROT8+rip]        vpshufb ymm15, ymm15, ymm8        vpshufb ymm12, ymm12, ymm8        vpshufb ymm13, ymm13, ymm8        vpshufb ymm14, ymm14, ymm8        vpaddd  ymm10, ymm10, ymm15        vpaddd  ymm11, ymm11, ymm12        vpaddd  ymm8, ymm13, ymmword ptr [rsp+0x200]        vpaddd  ymm9, ymm9, ymm14        vpxor   ymm5, ymm5, ymm10        vpxor   ymm6, ymm6, ymm11        vpxor   ymm7, ymm7, ymm8        vpxor   ymm4, ymm4, ymm9        vmovdqa ymmword ptr [rsp+0x200], ymm8        vpsrld  ymm8, ymm5, 7        vpslld  ymm5, ymm5, 25        vpor    ymm5, ymm5, ymm8        vpsrld  ymm8, ymm6, 7        vpslld  ymm6, ymm6, 25        vpor    ymm6, ymm6, ymm8        vpsrld  ymm8, ymm7, 7        vpslld  ymm7, ymm7, 25        vpor    ymm7, ymm7, ymm8        vpsrld  ymm8, ymm4, 7        vpslld  ymm4, ymm4, 25        vpor    ymm4, ymm4, ymm8        vpaddd  ymm0, ymm0, ymmword ptr [rsp+0x140]        vpaddd  ymm1, ymm1, ymmword ptr [rsp+0x180]        vpaddd  ymm2, ymm2, ymmword ptr [rsp+0x1C0]        vpaddd  ymm3, ymm3, ymmword ptr [rsp+0x1A0]        vpaddd  ymm0, ymm0, ymm4        vpaddd  ymm1, ymm1, ymm5        vpaddd  ymm2, ymm2, ymm6        vpaddd  ymm3, ymm3, ymm7        vpxor   ymm12, ymm12, ymm0        vpxor   ymm13, ymm13, ymm1        vpxor   ymm14, ymm14, ymm2        vpxor   ymm15, ymm15, ymm3        vbroadcasti128 ymm8, xmmword ptr [ROT16+rip]        vpshufb ymm12, ymm12, ymm8        vpshufb ymm13, ymm13, ymm8        vpshufb ymm14, ymm14, ymm8        vpshufb ymm15, ymm15, ymm8        vpaddd  ymm8, ymm12, ymmword ptr [rsp+0x200]        vpaddd  ymm9, ymm9, ymm13        vpaddd  ymm10, ymm10, ymm14        vpaddd  ymm11, ymm11, ymm15        vpxor   ymm4, ymm4, ymm8        vpxor   ymm5, ymm5, ymm9        vpxor   ymm6, ymm6, ymm10        vpxor   ymm7, ymm7, ymm11        vmovdqa ymmword ptr [rsp+0x200], ymm8        vpsrld  ymm8, ymm4, 12        vpslld  ymm4, ymm4, 20        vpor    ymm4, ymm4, ymm8        vpsrld  ymm8, ymm5, 12        vpslld  ymm5, ymm5, 20        vpor    ymm5, ymm5, ymm8        vpsrld  ymm8, ymm6, 12        vpslld  ymm6, ymm6, 20        vpor    ymm6, ymm6, ymm8        vpsrld  ymm8, ymm7, 12        vpslld  ymm7, ymm7, 20        vpor    ymm7, ymm7, ymm8        vpaddd  ymm0, ymm0, ymmword ptr [rsp+0xE0]        vpaddd  ymm1, ymm1, ymmword ptr [rsp+0x120]        vpaddd  ymm2, ymm2, ymmword ptr [rsp+0x60]        vpaddd  ymm3, ymm3, ymmword ptr [rsp+0x1E0]        vpaddd  ymm0, ymm0, ymm4        vpaddd  ymm1, ymm1, ymm5        vpaddd  ymm2, ymm2, ymm6        vpaddd  ymm3, ymm3, ymm7        vpxor   ymm12, ymm12, ymm0        vpxor   ymm13, ymm13, ymm1        vpxor   ymm14, ymm14, ymm2        vpxor   ymm15, ymm15, ymm3        vbroadcasti128 ymm8, xmmword ptr [ROT8+rip]        vpshufb ymm12, ymm12, ymm8        vpshufb ymm13, ymm13, ymm8        vpshufb ymm14, ymm14, ymm8        vpshufb ymm15, ymm15, ymm8        vpaddd  ymm8, ymm12, ymmword ptr [rsp+0x200]        vpaddd  ymm9, ymm9, ymm13        vpaddd  ymm10, ymm10, ymm14        vpaddd  ymm11, ymm11, ymm15        vpxor   ymm4, ymm4, ymm8        vpxor   ymm5, ymm5, ymm9        vpxor   ymm6, ymm6, ymm10        vpxor   ymm7, ymm7, ymm11        vmovdqa ymmword ptr [rsp+0x200], ymm8        vpsrld  ymm8, ymm4, 7        vpslld  ymm4, ymm4, 25        vpor    ymm4, ymm4, ymm8        vpsrld  ymm8, ymm5, 7        vpslld  ymm5, ymm5, 25        vpor    ymm5, ymm5, ymm8        vpsrld  ymm8, ymm6, 7        vpslld  ymm6, ymm6, 25        vpor    ymm6, ymm6, ymm8        vpsrld  ymm8, ymm7, 7        vpslld  ymm7, ymm7, 25        vpor    ymm7, ymm7, ymm8        vpaddd  ymm0, ymm0, ymmword ptr [rsp+0x80]        vpaddd  ymm1, ymm1, ymmword ptr [rsp+0x160]        vpaddd  ymm2, ymm2, ymmword ptr [rsp+0xA0]        vpaddd  ymm3, ymm3, ymmword ptr [rsp+0x20]        vpaddd  ymm0, ymm0, ymm5        vpaddd  ymm1, ymm1, ymm6        vpaddd  ymm2, ymm2, ymm7        vpaddd  ymm3, ymm3, ymm4        vpxor   ymm15, ymm15, ymm0        vpxor   ymm12, ymm12, ymm1        vpxor   ymm13, ymm13, ymm2        vpxor   ymm14, ymm14, ymm3        vbroadcasti128 ymm8, xmmword ptr [ROT16+rip]        vpshufb ymm15, ymm15, ymm8        vpshufb ymm12, ymm12, ymm8        vpshufb ymm13, ymm13, ymm8        vpshufb ymm14, ymm14, ymm8        vpaddd  ymm10, ymm10, ymm15        vpaddd  ymm11, ymm11, ymm12        vpaddd  ymm8, ymm13, ymmword ptr [rsp+0x200]        vpaddd  ymm9, ymm9, ymm14        vpxor   ymm5, ymm5, ymm10        vpxor   ymm6, ymm6, ymm11        vpxor   ymm7, ymm7, ymm8        vpxor   ymm4, ymm4, ymm9        vmovdqa ymmword ptr [rsp+0x200], ymm8        vpsrld  ymm8, ymm5, 12        vpslld  ymm5, ymm5, 20        vpor    ymm5, ymm5, ymm8        vpsrld  ymm8, ymm6, 12        vpslld  ymm6, ymm6, 20        vpor    ymm6, ymm6, ymm8        vpsrld  ymm8, ymm7, 12        vpslld  ymm7, ymm7, 20        vpor    ymm7, ymm7, ymm8        vpsrld  ymm8, ymm4, 12        vpslld  ymm4, ymm4, 20        vpor    ymm4, ymm4, ymm8        vpaddd  ymm0, ymm0, ymmword ptr [rsp]        vpaddd  ymm1, ymm1, ymmword ptr [rsp+0x40]        vpaddd  ymm2, ymm2, ymmword ptr [rsp+0x100]        vpaddd  ymm3, ymm3, ymmword ptr [rsp+0xC0]        vpaddd  ymm0, ymm0, ymm5        vpaddd  ymm1, ymm1, ymm6        vpaddd  ymm2, ymm2, ymm7        vpaddd  ymm3, ymm3, ymm4        vpxor   ymm15, ymm15, ymm0        vpxor   ymm12, ymm12, ymm1        vpxor   ymm13, ymm13, ymm2        vpxor   ymm14, ymm14, ymm3        vbroadcasti128 ymm8, xmmword ptr [ROT8+rip]        vpshufb ymm15, ymm15, ymm8        vpshufb ymm12, ymm12, ymm8        vpshufb ymm13, ymm13, ymm8        vpshufb ymm14, ymm14, ymm8        vpaddd  ymm10, ymm10, ymm15        vpaddd  ymm11, ymm11, ymm12        vpaddd  ymm8, ymm13, ymmword ptr [rsp+0x200]        vpaddd  ymm9, ymm9, ymm14        vpxor   ymm5, ymm5, ymm10        vpxor   ymm6, ymm6, ymm11        vpxor   ymm7, ymm7, ymm8        vpxor   ymm4, ymm4, ymm9        vmovdqa ymmword ptr [rsp+0x200], ymm8        vpsrld  ymm8, ymm5, 7        vpslld  ymm5, ymm5, 25        vpor    ymm5, ymm5, ymm8        vpsrld  ymm8, ymm6, 7        vpslld  ymm6, ymm6, 25        vpor    ymm6, ymm6, ymm8        vpsrld  ymm8, ymm7, 7        vpslld  ymm7, ymm7, 25        vpor    ymm7, ymm7, ymm8        vpsrld  ymm8, ymm4, 7        vpslld  ymm4, ymm4, 25        vpor    ymm4, ymm4, ymm8        vpaddd  ymm0, ymm0, ymmword ptr [rsp+0x180]        vpaddd  ymm1, ymm1, ymmword ptr [rsp+0x120]        vpaddd  ymm2, ymm2, ymmword ptr [rsp+0x1E0]        vpaddd  ymm3, ymm3, ymmword ptr [rsp+0x1C0]        vpaddd  ymm0, ymm0, ymm4        vpaddd  ymm1, ymm1, ymm5        vpaddd  ymm2, ymm2, ymm6        vpaddd  ymm3, ymm3, ymm7        vpxor   ymm12, ymm12, ymm0        vpxor   ymm13, ymm13, ymm1        vpxor   ymm14, ymm14, ymm2        vpxor   ymm15, ymm15, ymm3        vbroadcasti128 ymm8, xmmword ptr [ROT16+rip]        vpshufb ymm12, ymm12, ymm8        vpshufb ymm13, ymm13, ymm8        vpshufb ymm14, ymm14, ymm8        vpshufb ymm15, ymm15, ymm8        vpaddd  ymm8, ymm12, ymmword ptr [rsp+0x200]        vpaddd  ymm9, ymm9, ymm13        vpaddd  ymm10, ymm10, ymm14        vpaddd  ymm11, ymm11, ymm15        vpxor   ymm4, ymm4, ymm8        vpxor   ymm5, ymm5, ymm9        vpxor   ymm6, ymm6, ymm10        vpxor   ymm7, ymm7, ymm11        vmovdqa ymmword ptr [rsp+0x200], ymm8        vpsrld  ymm8, ymm4, 12        vpslld  ymm4, ymm4, 20        vpor    ymm4, ymm4, ymm8        vpsrld  ymm8, ymm5, 12        vpslld  ymm5, ymm5, 20        vpor    ymm5, ymm5, ymm8        vpsrld  ymm8, ymm6, 12        vpslld  ymm6, ymm6, 20        vpor    ymm6, ymm6, ymm8        vpsrld  ymm8, ymm7, 12        vpslld  ymm7, ymm7, 20        vpor    ymm7, ymm7, ymm8        vpaddd  ymm0, ymm0, ymmword ptr [rsp+0x1A0]        vpaddd  ymm1, ymm1, ymmword ptr [rsp+0x160]        vpaddd  ymm2, ymm2, ymmword ptr [rsp+0x140]        vpaddd  ymm3, ymm3, ymmword ptr [rsp+0x100]        vpaddd  ymm0, ymm0, ymm4        vpaddd  ymm1, ymm1, ymm5        vpaddd  ymm2, ymm2, ymm6        vpaddd  ymm3, ymm3, ymm7        vpxor   ymm12, ymm12, ymm0        vpxor   ymm13, ymm13, ymm1        vpxor   ymm14, ymm14, ymm2        vpxor   ymm15, ymm15, ymm3        vbroadcasti128 ymm8, xmmword ptr [ROT8+rip]        vpshufb ymm12, ymm12, ymm8        vpshufb ymm13, ymm13, ymm8        vpshufb ymm14, ymm14, ymm8        vpshufb ymm15, ymm15, ymm8        vpaddd  ymm8, ymm12, ymmword ptr [rsp+0x200]        vpaddd  ymm9, ymm9, ymm13        vpaddd  ymm10, ymm10, ymm14        vpaddd  ymm11, ymm11, ymm15        vpxor   ymm4, ymm4, ymm8        vpxor   ymm5, ymm5, ymm9        vpxor   ymm6, ymm6, ymm10        vpxor   ymm7, ymm7, ymm11        vmovdqa ymmword ptr [rsp+0x200], ymm8        vpsrld  ymm8, ymm4, 7        vpslld  ymm4, ymm4, 25        vpor    ymm4, ymm4, ymm8        vpsrld  ymm8, ymm5, 7        vpslld  ymm5, ymm5, 25        vpor    ymm5, ymm5, ymm8        vpsrld  ymm8, ymm6, 7        vpslld  ymm6, ymm6, 25        vpor    ymm6, ymm6, ymm8        vpsrld  ymm8, ymm7, 7        vpslld  ymm7, ymm7, 25        vpor    ymm7, ymm7, ymm8        vpaddd  ymm0, ymm0, ymmword ptr [rsp+0xE0]        vpaddd  ymm1, ymm1, ymmword ptr [rsp+0xA0]        vpaddd  ymm2, ymm2, ymmword ptr [rsp]        vpaddd  ymm3, ymm3, ymmword ptr [rsp+0xC0]        vpaddd  ymm0, ymm0, ymm5        vpaddd  ymm1, ymm1, ymm6        vpaddd  ymm2, ymm2, ymm7        vpaddd  ymm3, ymm3, ymm4        vpxor   ymm15, ymm15, ymm0        vpxor   ymm12, ymm12, ymm1        vpxor   ymm13, ymm13, ymm2        vpxor   ymm14, ymm14, ymm3        vbroadcasti128 ymm8, xmmword ptr [ROT16+rip]        vpshufb ymm15, ymm15, ymm8        vpshufb ymm12, ymm12, ymm8        vpshufb ymm13, ymm13, ymm8        vpshufb ymm14, ymm14, ymm8        vpaddd  ymm10, ymm10, ymm15        vpaddd  ymm11, ymm11, ymm12        vpaddd  ymm8, ymm13, ymmword ptr [rsp+0x200]        vpaddd  ymm9, ymm9, ymm14        vpxor   ymm5, ymm5, ymm10        vpxor   ymm6, ymm6, ymm11        vpxor   ymm7, ymm7, ymm8        vpxor   ymm4, ymm4, ymm9        vmovdqa ymmword ptr [rsp+0x200], ymm8        vpsrld  ymm8, ymm5, 12        vpslld  ymm5, ymm5, 20        vpor    ymm5, ymm5, ymm8        vpsrld  ymm8, ymm6, 12        vpslld  ymm6, ymm6, 20        vpor    ymm6, ymm6, ymm8        vpsrld  ymm8, ymm7, 12        vpslld  ymm7, ymm7, 20        vpor    ymm7, ymm7, ymm8        vpsrld  ymm8, ymm4, 12        vpslld  ymm4, ymm4, 20        vpor    ymm4, ymm4, ymm8        vpaddd  ymm0, ymm0, ymmword ptr [rsp+0x40]        vpaddd  ymm1, ymm1, ymmword ptr [rsp+0x60]        vpaddd  ymm2, ymm2, ymmword ptr [rsp+0x20]        vpaddd  ymm3, ymm3, ymmword ptr [rsp+0x80]        vpaddd  ymm0, ymm0, ymm5        vpaddd  ymm1, ymm1, ymm6        vpaddd  ymm2, ymm2, ymm7        vpaddd  ymm3, ymm3, ymm4        vpxor   ymm15, ymm15, ymm0        vpxor   ymm12, ymm12, ymm1        vpxor   ymm13, ymm13, ymm2        vpxor   ymm14, ymm14, ymm3        vbroadcasti128 ymm8, xmmword ptr [ROT8+rip]        vpshufb ymm15, ymm15, ymm8        vpshufb ymm12, ymm12, ymm8        vpshufb ymm13, ymm13, ymm8        vpshufb ymm14, ymm14, ymm8        vpaddd  ymm10, ymm10, ymm15        vpaddd  ymm11, ymm11, ymm12        vpaddd  ymm8, ymm13, ymmword ptr [rsp+0x200]        vpaddd  ymm9, ymm9, ymm14        vpxor   ymm5, ymm5, ymm10        vpxor   ymm6, ymm6, ymm11        vpxor   ymm7, ymm7, ymm8        vpxor   ymm4, ymm4, ymm9        vmovdqa ymmword ptr [rsp+0x200], ymm8        vpsrld  ymm8, ymm5, 7        vpslld  ymm5, ymm5, 25        vpor    ymm5, ymm5, ymm8        vpsrld  ymm8, ymm6, 7        vpslld  ymm6, ymm6, 25        vpor    ymm6, ymm6, ymm8        vpsrld  ymm8, ymm7, 7        vpslld  ymm7, ymm7, 25        vpor    ymm7, ymm7, ymm8        vpsrld  ymm8, ymm4, 7        vpslld  ymm4, ymm4, 25        vpor    ymm4, ymm4, ymm8        vpaddd  ymm0, ymm0, ymmword ptr [rsp+0x120]        vpaddd  ymm1, ymm1, ymmword ptr [rsp+0x160]        vpaddd  ymm2, ymm2, ymmword ptr [rsp+0x100]        vpaddd  ymm3, ymm3, ymmword ptr [rsp+0x1E0]        vpaddd  ymm0, ymm0, ymm4        vpaddd  ymm1, ymm1, ymm5        vpaddd  ymm2, ymm2, ymm6        vpaddd  ymm3, ymm3, ymm7        vpxor   ymm12, ymm12, ymm0        vpxor   ymm13, ymm13, ymm1        vpxor   ymm14, ymm14, ymm2        vpxor   ymm15, ymm15, ymm3        vbroadcasti128 ymm8, xmmword ptr [ROT16+rip]        vpshufb ymm12, ymm12, ymm8        vpshufb ymm13, ymm13, ymm8        vpshufb ymm14, ymm14, ymm8        vpshufb ymm15, ymm15, ymm8        vpaddd  ymm8, ymm12, ymmword ptr [rsp+0x200]        vpaddd  ymm9, ymm9, ymm13        vpaddd  ymm10, ymm10, ymm14        vpaddd  ymm11, ymm11, ymm15        vpxor   ymm4, ymm4, ymm8        vpxor   ymm5, ymm5, ymm9        vpxor   ymm6, ymm6, ymm10        vpxor   ymm7, ymm7, ymm11        vmovdqa ymmword ptr [rsp+0x200], ymm8        vpsrld  ymm8, ymm4, 12        vpslld  ymm4, ymm4, 20        vpor    ymm4, ymm4, ymm8        vpsrld  ymm8, ymm5, 12        vpslld  ymm5, ymm5, 20        vpor    ymm5, ymm5, ymm8        vpsrld  ymm8, ymm6, 12        vpslld  ymm6, ymm6, 20        vpor    ymm6, ymm6, ymm8        vpsrld  ymm8, ymm7, 12        vpslld  ymm7, ymm7, 20        vpor    ymm7, ymm7, ymm8        vpaddd  ymm0, ymm0, ymmword ptr [rsp+0x1C0]        vpaddd  ymm1, ymm1, ymmword ptr [rsp+0xA0]        vpaddd  ymm2, ymm2, ymmword ptr [rsp+0x180]        vpaddd  ymm3, ymm3, ymmword ptr [rsp+0x20]        vpaddd  ymm0, ymm0, ymm4        vpaddd  ymm1, ymm1, ymm5        vpaddd  ymm2, ymm2, ymm6        vpaddd  ymm3, ymm3, ymm7        vpxor   ymm12, ymm12, ymm0        vpxor   ymm13, ymm13, ymm1        vpxor   ymm14, ymm14, ymm2        vpxor   ymm15, ymm15, ymm3        vbroadcasti128 ymm8, xmmword ptr [ROT8+rip]        vpshufb ymm12, ymm12, ymm8        vpshufb ymm13, ymm13, ymm8        vpshufb ymm14, ymm14, ymm8        vpshufb ymm15, ymm15, ymm8        vpaddd  ymm8, ymm12, ymmword ptr [rsp+0x200]        vpaddd  ymm9, ymm9, ymm13        vpaddd  ymm10, ymm10, ymm14        vpaddd  ymm11, ymm11, ymm15        vpxor   ymm4, ymm4, ymm8        vpxor   ymm5, ymm5, ymm9        vpxor   ymm6, ymm6, ymm10        vpxor   ymm7, ymm7, ymm11        vmovdqa ymmword ptr [rsp+0x200], ymm8        vpsrld  ymm8, ymm4, 7        vpslld  ymm4, ymm4, 25        vpor    ymm4, ymm4, ymm8        vpsrld  ymm8, ymm5, 7        vpslld  ymm5, ymm5, 25        vpor    ymm5, ymm5, ymm8        vpsrld  ymm8, ymm6, 7        vpslld  ymm6, ymm6, 25        vpor    ymm6, ymm6, ymm8        vpsrld  ymm8, ymm7, 7        vpslld  ymm7, ymm7, 25        vpor    ymm7, ymm7, ymm8        vpaddd  ymm0, ymm0, ymmword ptr [rsp+0x1A0]        vpaddd  ymm1, ymm1, ymmword ptr [rsp]        vpaddd  ymm2, ymm2, ymmword ptr [rsp+0x40]        vpaddd  ymm3, ymm3, ymmword ptr [rsp+0x80]        vpaddd  ymm0, ymm0, ymm5        vpaddd  ymm1, ymm1, ymm6        vpaddd  ymm2, ymm2, ymm7        vpaddd  ymm3, ymm3, ymm4        vpxor   ymm15, ymm15, ymm0        vpxor   ymm12, ymm12, ymm1        vpxor   ymm13, ymm13, ymm2        vpxor   ymm14, ymm14, ymm3        vbroadcasti128 ymm8, xmmword ptr [ROT16+rip]        vpshufb ymm15, ymm15, ymm8        vpshufb ymm12, ymm12, ymm8        vpshufb ymm13, ymm13, ymm8        vpshufb ymm14, ymm14, ymm8        vpaddd  ymm10, ymm10, ymm15        vpaddd  ymm11, ymm11, ymm12        vpaddd  ymm8, ymm13, ymmword ptr [rsp+0x200]        vpaddd  ymm9, ymm9, ymm14        vpxor   ymm5, ymm5, ymm10        vpxor   ymm6, ymm6, ymm11        vpxor   ymm7, ymm7, ymm8        vpxor   ymm4, ymm4, ymm9        vmovdqa ymmword ptr [rsp+0x200], ymm8        vpsrld  ymm8, ymm5, 12        vpslld  ymm5, ymm5, 20        vpor    ymm5, ymm5, ymm8        vpsrld  ymm8, ymm6, 12        vpslld  ymm6, ymm6, 20        vpor    ymm6, ymm6, ymm8        vpsrld  ymm8, ymm7, 12        vpslld  ymm7, ymm7, 20        vpor    ymm7, ymm7, ymm8        vpsrld  ymm8, ymm4, 12        vpslld  ymm4, ymm4, 20        vpor    ymm4, ymm4, ymm8        vpaddd  ymm0, ymm0, ymmword ptr [rsp+0x60]        vpaddd  ymm1, ymm1, ymmword ptr [rsp+0x140]        vpaddd  ymm2, ymm2, ymmword ptr [rsp+0xC0]        vpaddd  ymm3, ymm3, ymmword ptr [rsp+0xE0]        vpaddd  ymm0, ymm0, ymm5        vpaddd  ymm1, ymm1, ymm6        vpaddd  ymm2, ymm2, ymm7        vpaddd  ymm3, ymm3, ymm4        vpxor   ymm15, ymm15, ymm0        vpxor   ymm12, ymm12, ymm1        vpxor   ymm13, ymm13, ymm2        vpxor   ymm14, ymm14, ymm3        vbroadcasti128 ymm8, xmmword ptr [ROT8+rip]        vpshufb ymm15, ymm15, ymm8        vpshufb ymm12, ymm12, ymm8        vpshufb ymm13, ymm13, ymm8        vpshufb ymm14, ymm14, ymm8        vpaddd  ymm10, ymm10, ymm15        vpaddd  ymm11, ymm11, ymm12        vpaddd  ymm8, ymm13, ymmword ptr [rsp+0x200]        vpaddd  ymm9, ymm9, ymm14        vpxor   ymm5, ymm5, ymm10        vpxor   ymm6, ymm6, ymm11        vpxor   ymm7, ymm7, ymm8        vpxor   ymm4, ymm4, ymm9        vmovdqa ymmword ptr [rsp+0x200], ymm8        vpsrld  ymm8, ymm5, 7        vpslld  ymm5, ymm5, 25        vpor    ymm5, ymm5, ymm8        vpsrld  ymm8, ymm6, 7        vpslld  ymm6, ymm6, 25        vpor    ymm6, ymm6, ymm8        vpsrld  ymm8, ymm7, 7        vpslld  ymm7, ymm7, 25        vpor    ymm7, ymm7, ymm8        vpsrld  ymm8, ymm4, 7        vpslld  ymm4, ymm4, 25        vpor    ymm4, ymm4, ymm8        vpaddd  ymm0, ymm0, ymmword ptr [rsp+0x160]        vpaddd  ymm1, ymm1, ymmword ptr [rsp+0xA0]        vpaddd  ymm2, ymm2, ymmword ptr [rsp+0x20]        vpaddd  ymm3, ymm3, ymmword ptr [rsp+0x100]        vpaddd  ymm0, ymm0, ymm4        vpaddd  ymm1, ymm1, ymm5        vpaddd  ymm2, ymm2, ymm6        vpaddd  ymm3, ymm3, ymm7        vpxor   ymm12, ymm12, ymm0        vpxor   ymm13, ymm13, ymm1        vpxor   ymm14, ymm14, ymm2        vpxor   ymm15, ymm15, ymm3        vbroadcasti128 ymm8, xmmword ptr [ROT16+rip]        vpshufb ymm12, ymm12, ymm8        vpshufb ymm13, ymm13, ymm8        vpshufb ymm14, ymm14, ymm8        vpshufb ymm15, ymm15, ymm8        vpaddd  ymm8, ymm12, ymmword ptr [rsp+0x200]        vpaddd  ymm9, ymm9, ymm13        vpaddd  ymm10, ymm10, ymm14        vpaddd  ymm11, ymm11, ymm15        vpxor   ymm4, ymm4, ymm8        vpxor   ymm5, ymm5, ymm9        vpxor   ymm6, ymm6, ymm10        vpxor   ymm7, ymm7, ymm11        vmovdqa ymmword ptr [rsp+0x200], ymm8        vpsrld  ymm8, ymm4, 12        vpslld  ymm4, ymm4, 20        vpor    ymm4, ymm4, ymm8        vpsrld  ymm8, ymm5, 12        vpslld  ymm5, ymm5, 20        vpor    ymm5, ymm5, ymm8        vpsrld  ymm8, ymm6, 12        vpslld  ymm6, ymm6, 20        vpor    ymm6, ymm6, ymm8        vpsrld  ymm8, ymm7, 12        vpslld  ymm7, ymm7, 20        vpor    ymm7, ymm7, ymm8        vpaddd  ymm0, ymm0, ymmword ptr [rsp+0x1E0]        vpaddd  ymm1, ymm1, ymmword ptr [rsp]        vpaddd  ymm2, ymm2, ymmword ptr [rsp+0x120]        vpaddd  ymm3, ymm3, ymmword ptr [rsp+0xC0]        vpaddd  ymm0, ymm0, ymm4        vpaddd  ymm1, ymm1, ymm5        vpaddd  ymm2, ymm2, ymm6        vpaddd  ymm3, ymm3, ymm7        vpxor   ymm12, ymm12, ymm0        vpxor   ymm13, ymm13, ymm1        vpxor   ymm14, ymm14, ymm2        vpxor   ymm15, ymm15, ymm3        vbroadcasti128 ymm8, xmmword ptr [ROT8+rip]        vpshufb ymm12, ymm12, ymm8        vpshufb ymm13, ymm13, ymm8        vpshufb ymm14, ymm14, ymm8        vpshufb ymm15, ymm15, ymm8        vpaddd  ymm8, ymm12, ymmword ptr [rsp+0x200]        vpaddd  ymm9, ymm9, ymm13        vpaddd  ymm10, ymm10, ymm14        vpaddd  ymm11, ymm11, ymm15        vpxor   ymm4, ymm4, ymm8        vpxor   ymm5, ymm5, ymm9        vpxor   ymm6, ymm6, ymm10        vpxor   ymm7, ymm7, ymm11        vmovdqa ymmword ptr [rsp+0x200], ymm8        vpsrld  ymm8, ymm4, 7        vpslld  ymm4, ymm4, 25        vpor    ymm4, ymm4, ymm8        vpsrld  ymm8, ymm5, 7        vpslld  ymm5, ymm5, 25        vpor    ymm5, ymm5, ymm8        vpsrld  ymm8, ymm6, 7        vpslld  ymm6, ymm6, 25        vpor    ymm6, ymm6, ymm8        vpsrld  ymm8, ymm7, 7        vpslld  ymm7, ymm7, 25        vpor    ymm7, ymm7, ymm8        vpaddd  ymm0, ymm0, ymmword ptr [rsp+0x1C0]        vpaddd  ymm1, ymm1, ymmword ptr [rsp+0x40]        vpaddd  ymm2, ymm2, ymmword ptr [rsp+0x60]        vpaddd  ymm3, ymm3, ymmword ptr [rsp+0xE0]        vpaddd  ymm0, ymm0, ymm5        vpaddd  ymm1, ymm1, ymm6        vpaddd  ymm2, ymm2, ymm7        vpaddd  ymm3, ymm3, ymm4        vpxor   ymm15, ymm15, ymm0        vpxor   ymm12, ymm12, ymm1        vpxor   ymm13, ymm13, ymm2        vpxor   ymm14, ymm14, ymm3        vbroadcasti128 ymm8, xmmword ptr [ROT16+rip]        vpshufb ymm15, ymm15, ymm8        vpshufb ymm12, ymm12, ymm8        vpshufb ymm13, ymm13, ymm8        vpshufb ymm14, ymm14, ymm8        vpaddd  ymm10, ymm10, ymm15        vpaddd  ymm11, ymm11, ymm12        vpaddd  ymm8, ymm13, ymmword ptr [rsp+0x200]        vpaddd  ymm9, ymm9, ymm14        vpxor   ymm5, ymm5, ymm10        vpxor   ymm6, ymm6, ymm11        vpxor   ymm7, ymm7, ymm8        vpxor   ymm4, ymm4, ymm9        vmovdqa ymmword ptr [rsp+0x200], ymm8        vpsrld  ymm8, ymm5, 12        vpslld  ymm5, ymm5, 20        vpor    ymm5, ymm5, ymm8        vpsrld  ymm8, ymm6, 12        vpslld  ymm6, ymm6, 20        vpor    ymm6, ymm6, ymm8        vpsrld  ymm8, ymm7, 12        vpslld  ymm7, ymm7, 20        vpor    ymm7, ymm7, ymm8        vpsrld  ymm8, ymm4, 12        vpslld  ymm4, ymm4, 20        vpor    ymm4, ymm4, ymm8        vpaddd  ymm0, ymm0, ymmword ptr [rsp+0x140]        vpaddd  ymm1, ymm1, ymmword ptr [rsp+0x180]        vpaddd  ymm2, ymm2, ymmword ptr [rsp+0x80]        vpaddd  ymm3, ymm3, ymmword ptr [rsp+0x1A0]        vpaddd  ymm0, ymm0, ymm5        vpaddd  ymm1, ymm1, ymm6        vpaddd  ymm2, ymm2, ymm7        vpaddd  ymm3, ymm3, ymm4        vpxor   ymm15, ymm15, ymm0        vpxor   ymm12, ymm12, ymm1        vpxor   ymm13, ymm13, ymm2        vpxor   ymm14, ymm14, ymm3        vbroadcasti128 ymm8, xmmword ptr [ROT8+rip]        vpshufb ymm15, ymm15, ymm8        vpshufb ymm12, ymm12, ymm8        vpshufb ymm13, ymm13, ymm8        vpshufb ymm14, ymm14, ymm8        vpaddd  ymm10, ymm10, ymm15        vpaddd  ymm11, ymm11, ymm12        vpaddd  ymm8, ymm13, ymmword ptr [rsp+0x200]        vpaddd  ymm9, ymm9, ymm14        vpxor   ymm5, ymm5, ymm10        vpxor   ymm6, ymm6, ymm11        vpxor   ymm7, ymm7, ymm8        vpxor   ymm4, ymm4, ymm9        vpxor   ymm0, ymm0, ymm8        vpxor   ymm1, ymm1, ymm9        vpxor   ymm2, ymm2, ymm10        vpxor   ymm3, ymm3, ymm11        vpsrld  ymm8, ymm5, 7        vpslld  ymm5, ymm5, 25        vpor    ymm5, ymm5, ymm8        vpsrld  ymm8, ymm6, 7        vpslld  ymm6, ymm6, 25        vpor    ymm6, ymm6, ymm8        vpsrld  ymm8, ymm7, 7        vpslld  ymm7, ymm7, 25        vpor    ymm7, ymm7, ymm8        vpsrld  ymm8, ymm4, 7        vpslld  ymm4, ymm4, 25        vpor    ymm4, ymm4, ymm8        vpxor   ymm4, ymm4, ymm12        vpxor   ymm5, ymm5, ymm13        vpxor   ymm6, ymm6, ymm14        vpxor   ymm7, ymm7, ymm15        movzx   eax, byte ptr [rbp+0x78]        jne     9b        mov     rbx, qword ptr [rbp+0x90]        vunpcklps ymm8, ymm0, ymm1        vunpcklps ymm9, ymm2, ymm3        vunpckhps ymm10, ymm0, ymm1        vunpcklps ymm11, ymm4, ymm5        vunpcklps ymm0, ymm6, ymm7        vshufps ymm12, ymm8, ymm9, 78        vblendps ymm1, ymm8, ymm12, 0xCC        vshufps ymm8, ymm11, ymm0, 78        vunpckhps ymm13, ymm2, ymm3        vblendps ymm2, ymm11, ymm8, 0xCC        vblendps ymm3, ymm12, ymm9, 0xCC        vperm2f128 ymm12, ymm1, ymm2, 0x20        vmovups ymmword ptr [rbx], ymm12        vunpckhps ymm14, ymm4, ymm5        vblendps ymm4, ymm8, ymm0, 0xCC        vunpckhps ymm15, ymm6, ymm7        vperm2f128 ymm7, ymm3, ymm4, 0x20        vmovups ymmword ptr [rbx+0x20], ymm7        vshufps ymm5, ymm10, ymm13, 78        vblendps ymm6, ymm5, ymm13, 0xCC        vshufps ymm13, ymm14, ymm15, 78        vblendps ymm10, ymm10, ymm5, 0xCC        vblendps ymm14, ymm14, ymm13, 0xCC        vperm2f128 ymm8, ymm10, ymm14, 0x20        vmovups ymmword ptr [rbx+0x40], ymm8        vblendps ymm15, ymm13, ymm15, 0xCC        vperm2f128 ymm13, ymm6, ymm15, 0x20        vmovups ymmword ptr [rbx+0x60], ymm13        vperm2f128 ymm9, ymm1, ymm2, 0x31        vperm2f128 ymm11, ymm3, ymm4, 0x31        vmovups ymmword ptr [rbx+0x80], ymm9        vperm2f128 ymm14, ymm10, ymm14, 0x31        vperm2f128 ymm15, ymm6, ymm15, 0x31        vmovups ymmword ptr [rbx+0xA0], ymm11        vmovups ymmword ptr [rbx+0xC0], ymm14        vmovups ymmword ptr [rbx+0xE0], ymm15        vmovdqa ymm0, ymmword ptr [rsp+0x2A0]        vpaddd  ymm1, ymm0, ymmword ptr [rsp+0x220]        vmovdqa ymmword ptr [rsp+0x220], ymm1        vpxor   ymm0, ymm0, ymmword ptr [CMP_MSB_MASK+rip]        vpxor   ymm2, ymm1, ymmword ptr [CMP_MSB_MASK+rip]        vpcmpgtd ymm2, ymm0, ymm2        vmovdqa ymm0, ymmword ptr [rsp+0x240]        vpsubd  ymm2, ymm0, ymm2        vmovdqa ymmword ptr [rsp+0x240], ymm2        add     rdi, 64        add     rbx, 256        mov     qword ptr [rbp+0x90], rbx        sub     rsi, 8        cmp     rsi, 8        jnc     2b        test    rsi, rsi        jnz     3f4:        vzeroupper        vmovdqa xmm6, xmmword ptr [rsp+0x2D0]        vmovdqa xmm7, xmmword ptr [rsp+0x2E0]        vmovdqa xmm8, xmmword ptr [rsp+0x2F0]        vmovdqa xmm9, xmmword ptr [rsp+0x300]        vmovdqa xmm10, xmmword ptr [rsp+0x310]        vmovdqa xmm11, xmmword ptr [rsp+0x320]        vmovdqa xmm12, xmmword ptr [rsp+0x330]        vmovdqa xmm13, xmmword ptr [rsp+0x340]        vmovdqa xmm14, xmmword ptr [rsp+0x350]        vmovdqa xmm15, xmmword ptr [rsp+0x360]        mov     rsp, rbp        pop     rbp        pop     rbx        pop     rdi        pop     rsi        pop     r12        pop     r13        pop     r14        pop     r15        ret.p2align 53:        mov     rbx, qword ptr [rbp+0x90]        mov     r15, qword ptr [rsp+0x2C0]        movzx   r13d, byte ptr [rbp+0x78]        movzx   r12d, byte ptr [rbp+0x88]        test    rsi, 0x4        je      3f        vbroadcasti128 ymm0, xmmword ptr [rcx]        vbroadcasti128 ymm1, xmmword ptr [rcx+0x10]        vmovdqa ymm8, ymm0        vmovdqa ymm9, ymm1        vbroadcasti128 ymm12, xmmword ptr [rsp+0x220]        vbroadcasti128 ymm13, xmmword ptr [rsp+0x240]        vpunpckldq ymm14, ymm12, ymm13        vpunpckhdq ymm15, ymm12, ymm13        vpermq  ymm14, ymm14, 0x50        vpermq  ymm15, ymm15, 0x50        vbroadcasti128 ymm12, xmmword ptr [BLAKE3_BLOCK_LEN+rip]        vpblendd ymm14, ymm14, ymm12, 0x44        vpblendd ymm15, ymm15, ymm12, 0x44        vmovdqa ymmword ptr [rsp], ymm14        vmovdqa ymmword ptr [rsp+0x20], ymm15        mov     r8, qword ptr [rdi]        mov     r9, qword ptr [rdi+0x8]        mov     r10, qword ptr [rdi+0x10]        mov     r11, qword ptr [rdi+0x18]        movzx   eax, byte ptr [rbp+0x80]        or      eax, r13d        xor     edx, edx.p2align 52:        mov     r14d, eax        or      eax, r12d        add     rdx, 64        cmp     rdx, r15        cmovne  eax, r14d        mov     dword ptr [rsp+0x200], eax        vmovups ymm2, ymmword ptr [r8+rdx-0x40]        vinsertf128 ymm2, ymm2, xmmword ptr [r9+rdx-0x40], 0x01        vmovups ymm3, ymmword ptr [r8+rdx-0x30]        vinsertf128 ymm3, ymm3, xmmword ptr [r9+rdx-0x30], 0x01        vshufps ymm4, ymm2, ymm3, 136        vshufps ymm5, ymm2, ymm3, 221        vmovups ymm2, ymmword ptr [r8+rdx-0x20]        vinsertf128 ymm2, ymm2, xmmword ptr [r9+rdx-0x20], 0x01        vmovups ymm3, ymmword ptr [r8+rdx-0x10]        vinsertf128 ymm3, ymm3, xmmword ptr [r9+rdx-0x10], 0x01        vshufps ymm6, ymm2, ymm3, 136        vshufps ymm7, ymm2, ymm3, 221        vpshufd ymm6, ymm6, 0x93        vpshufd ymm7, ymm7, 0x93        vmovups ymm10, ymmword ptr [r10+rdx-0x40]        vinsertf128 ymm10, ymm10, xmmword ptr [r11+rdx-0x40], 0x01        vmovups ymm11, ymmword ptr [r10+rdx-0x30]        vinsertf128 ymm11, ymm11, xmmword ptr [r11+rdx-0x30], 0x01        vshufps ymm12, ymm10, ymm11, 136        vshufps ymm13, ymm10, ymm11, 221        vmovups ymm10, ymmword ptr [r10+rdx-0x20]        vinsertf128 ymm10, ymm10, xmmword ptr [r11+rdx-0x20], 0x01        vmovups ymm11, ymmword ptr [r10+rdx-0x10]        vinsertf128 ymm11, ymm11, xmmword ptr [r11+rdx-0x10], 0x01        vshufps ymm14, ymm10, ymm11, 136        vshufps ymm15, ymm10, ymm11, 221        vpshufd ymm14, ymm14, 0x93        vpshufd ymm15, ymm15, 0x93        vpbroadcastd ymm2, dword ptr [rsp+0x200]        vmovdqa ymm3, ymmword ptr [rsp]        vmovdqa ymm11, ymmword ptr [rsp+0x20]        vpblendd ymm3, ymm3, ymm2, 0x88        vpblendd ymm11, ymm11, ymm2, 0x88        vbroadcasti128 ymm2, xmmword ptr [BLAKE3_IV+rip]        vmovdqa ymm10, ymm2        mov     al, 79:        vpaddd  ymm0, ymm0, ymm4        vpaddd  ymm8, ymm8, ymm12        vmovdqa ymmword ptr [rsp+0x40], ymm4        nop        vmovdqa ymmword ptr [rsp+0x60], ymm12        nop        vpaddd  ymm0, ymm0, ymm1        vpaddd  ymm8, ymm8, ymm9        vpxor   ymm3, ymm3, ymm0        vpxor   ymm11, ymm11, ymm8        vbroadcasti128 ymm4, xmmword ptr [ROT16+rip]        vpshufb ymm3, ymm3, ymm4        vpshufb ymm11, ymm11, ymm4        vpaddd  ymm2, ymm2, ymm3        vpaddd  ymm10, ymm10, ymm11        vpxor   ymm1, ymm1, ymm2        vpxor   ymm9, ymm9, ymm10        vpsrld  ymm4, ymm1, 12        vpslld  ymm1, ymm1, 20        vpor    ymm1, ymm1, ymm4        vpsrld  ymm4, ymm9, 12        vpslld  ymm9, ymm9, 20        vpor    ymm9, ymm9, ymm4        vpaddd  ymm0, ymm0, ymm5        vpaddd  ymm8, ymm8, ymm13        vpaddd  ymm0, ymm0, ymm1        vpaddd  ymm8, ymm8, ymm9        vmovdqa ymmword ptr [rsp+0x80], ymm5        vmovdqa ymmword ptr [rsp+0xA0], ymm13        vpxor   ymm3, ymm3, ymm0        vpxor   ymm11, ymm11, ymm8        vbroadcasti128 ymm4, xmmword ptr [ROT8+rip]        vpshufb ymm3, ymm3, ymm4        vpshufb ymm11, ymm11, ymm4        vpaddd  ymm2, ymm2, ymm3        vpaddd  ymm10, ymm10, ymm11        vpxor   ymm1, ymm1, ymm2        vpxor   ymm9, ymm9, ymm10        vpsrld  ymm4, ymm1, 7        vpslld  ymm1, ymm1, 25        vpor    ymm1, ymm1, ymm4        vpsrld  ymm4, ymm9, 7        vpslld  ymm9, ymm9, 25        vpor    ymm9, ymm9, ymm4        vpshufd ymm0, ymm0, 0x93        vpshufd ymm8, ymm8, 0x93        vpshufd ymm3, ymm3, 0x4E        vpshufd ymm11, ymm11, 0x4E        vpshufd ymm2, ymm2, 0x39        vpshufd ymm10, ymm10, 0x39        vpaddd  ymm0, ymm0, ymm6        vpaddd  ymm8, ymm8, ymm14        vpaddd  ymm0, ymm0, ymm1        vpaddd  ymm8, ymm8, ymm9        vpxor   ymm3, ymm3, ymm0        vpxor   ymm11, ymm11, ymm8        vbroadcasti128 ymm4, xmmword ptr [ROT16+rip]        vpshufb ymm3, ymm3, ymm4        vpshufb ymm11, ymm11, ymm4        vpaddd  ymm2, ymm2, ymm3        vpaddd  ymm10, ymm10, ymm11        vpxor   ymm1, ymm1, ymm2        vpxor   ymm9, ymm9, ymm10        vpsrld  ymm4, ymm1, 12        vpslld  ymm1, ymm1, 20        vpor    ymm1, ymm1, ymm4        vpsrld  ymm4, ymm9, 12        vpslld  ymm9, ymm9, 20        vpor    ymm9, ymm9, ymm4        vpaddd  ymm0, ymm0, ymm7        vpaddd  ymm8, ymm8, ymm15        vpaddd  ymm0, ymm0, ymm1        vpaddd  ymm8, ymm8, ymm9        vpxor   ymm3, ymm3, ymm0        vpxor   ymm11, ymm11, ymm8        vbroadcasti128 ymm4, xmmword ptr [ROT8+rip]        vpshufb ymm3, ymm3, ymm4        vpshufb ymm11, ymm11, ymm4        vpaddd  ymm2, ymm2, ymm3        vpaddd  ymm10, ymm10, ymm11        vpxor   ymm1, ymm1, ymm2        vpxor   ymm9, ymm9, ymm10        vpsrld  ymm4, ymm1, 7        vpslld  ymm1, ymm1, 25        vpor    ymm1, ymm1, ymm4        vpsrld  ymm4, ymm9, 7        vpslld  ymm9, ymm9, 25        vpor    ymm9, ymm9, ymm4        vpshufd ymm0, ymm0, 0x39        vpshufd ymm8, ymm8, 0x39        vpshufd ymm3, ymm3, 0x4E        vpshufd ymm11, ymm11, 0x4E        vpshufd ymm2, ymm2, 0x93        vpshufd ymm10, ymm10, 0x93        dec     al        je      9f        vmovdqa ymm4, ymmword ptr [rsp+0x40]        vmovdqa ymm5, ymmword ptr [rsp+0x80]        vshufps ymm12, ymm4, ymm5, 214        vpshufd ymm13, ymm4, 0x0F        vpshufd ymm4, ymm12, 0x39        vshufps ymm12, ymm6, ymm7, 250        vpblendd ymm13, ymm13, ymm12, 0xAA        vpunpcklqdq ymm12, ymm7, ymm5        vpblendd ymm12, ymm12, ymm6, 0x88        vpshufd ymm12, ymm12, 0x78        vpunpckhdq ymm5, ymm5, ymm7        vpunpckldq ymm6, ymm6, ymm5        vpshufd ymm7, ymm6, 0x1E        vmovdqa ymmword ptr [rsp+0x40], ymm13        vmovdqa ymmword ptr [rsp+0x80], ymm12        vmovdqa ymm12, ymmword ptr [rsp+0x60]        vmovdqa ymm13, ymmword ptr [rsp+0xA0]        vshufps ymm5, ymm12, ymm13, 214        vpshufd ymm6, ymm12, 0x0F        vpshufd ymm12, ymm5, 0x39        vshufps ymm5, ymm14, ymm15, 250        vpblendd ymm6, ymm6, ymm5, 0xAA        vpunpcklqdq ymm5, ymm15, ymm13        vpblendd ymm5, ymm5, ymm14, 0x88        vpshufd ymm5, ymm5, 0x78        vpunpckhdq ymm13, ymm13, ymm15        vpunpckldq ymm14, ymm14, ymm13        vpshufd ymm15, ymm14, 0x1E        vmovdqa ymm13, ymm6        vmovdqa ymm14, ymm5        vmovdqa ymm5, ymmword ptr [rsp+0x40]        vmovdqa ymm6, ymmword ptr [rsp+0x80]        jmp     9b9:        vpxor   ymm0, ymm0, ymm2        vpxor   ymm1, ymm1, ymm3        vpxor   ymm8, ymm8, ymm10        vpxor   ymm9, ymm9, ymm11        mov     eax, r13d        cmp     rdx, r15        jne     2b        vmovdqu xmmword ptr [rbx], xmm0        vmovdqu xmmword ptr [rbx+0x10], xmm1        vextracti128 xmmword ptr [rbx+0x20], ymm0, 0x01        vextracti128 xmmword ptr [rbx+0x30], ymm1, 0x01        vmovdqu xmmword ptr [rbx+0x40], xmm8        vmovdqu xmmword ptr [rbx+0x50], xmm9        vextracti128 xmmword ptr [rbx+0x60], ymm8, 0x01        vextracti128 xmmword ptr [rbx+0x70], ymm9, 0x01        vmovaps xmm8, xmmword ptr [rsp+0x260]        vmovaps xmm0, xmmword ptr [rsp+0x220]        vmovaps xmm1, xmmword ptr [rsp+0x230]        vmovaps xmm2, xmmword ptr [rsp+0x240]        vmovaps xmm3, xmmword ptr [rsp+0x250]        vblendvps xmm0, xmm0, xmm1, xmm8        vblendvps xmm2, xmm2, xmm3, xmm8        vmovaps xmmword ptr [rsp+0x220], xmm0        vmovaps xmmword ptr [rsp+0x240], xmm2        add     rbx, 128        add     rdi, 32        sub     rsi, 43:        test    rsi, 0x2        je      3f        vbroadcasti128 ymm0, xmmword ptr [rcx]        vbroadcasti128 ymm1, xmmword ptr [rcx+0x10]        vmovd   xmm13, dword ptr [rsp+0x220]        vpinsrd xmm13, xmm13, dword ptr [rsp+0x240], 1        vpinsrd xmm13, xmm13, dword ptr [BLAKE3_BLOCK_LEN+rip], 2        vmovd   xmm14, dword ptr [rsp+0x224]        vpinsrd xmm14, xmm14, dword ptr [rsp+0x244], 1        vpinsrd xmm14, xmm14, dword ptr [BLAKE3_BLOCK_LEN+rip], 2        vinserti128 ymm13, ymm13, xmm14, 0x01        vbroadcasti128 ymm14, xmmword ptr [ROT16+rip]        vbroadcasti128 ymm15, xmmword ptr [ROT8+rip]        mov     r8, qword ptr [rdi]        mov     r9, qword ptr [rdi+0x8]        movzx   eax, byte ptr [rbp+0x80]        or      eax, r13d        xor     edx, edx.p2align 52:        mov     r14d, eax        or      eax, r12d        add     rdx, 64        cmp     rdx, r15        cmovne  eax, r14d        mov     dword ptr [rsp+0x200], eax        vbroadcasti128 ymm2, xmmword ptr [BLAKE3_IV+rip]        vpbroadcastd ymm8, dword ptr [rsp+0x200]        vpblendd ymm3, ymm13, ymm8, 0x88        vmovups ymm8, ymmword ptr [r8+rdx-0x40]        vinsertf128 ymm8, ymm8, xmmword ptr [r9+rdx-0x40], 0x01        vmovups ymm9, ymmword ptr [r8+rdx-0x30]        vinsertf128 ymm9, ymm9, xmmword ptr [r9+rdx-0x30], 0x01        vshufps ymm4, ymm8, ymm9, 136        vshufps ymm5, ymm8, ymm9, 221        vmovups ymm8, ymmword ptr [r8+rdx-0x20]        vinsertf128 ymm8, ymm8, xmmword ptr [r9+rdx-0x20], 0x01        vmovups ymm9, ymmword ptr [r8+rdx-0x10]        vinsertf128 ymm9, ymm9, xmmword ptr [r9+rdx-0x10], 0x01        vshufps ymm6, ymm8, ymm9, 136        vshufps ymm7, ymm8, ymm9, 221        vpshufd ymm6, ymm6, 0x93        vpshufd ymm7, ymm7, 0x93        mov     al, 79:        vpaddd  ymm0, ymm0, ymm4        vpaddd  ymm0, ymm0, ymm1        vpxor   ymm3, ymm3, ymm0        vpshufb ymm3, ymm3, ymm14        vpaddd  ymm2, ymm2, ymm3        vpxor   ymm1, ymm1, ymm2        vpsrld  ymm8, ymm1, 12        vpslld  ymm1, ymm1, 20        vpor    ymm1, ymm1, ymm8        vpaddd  ymm0, ymm0, ymm5        vpaddd  ymm0, ymm0, ymm1        vpxor   ymm3, ymm3, ymm0        vpshufb ymm3, ymm3, ymm15        vpaddd  ymm2, ymm2, ymm3        vpxor   ymm1, ymm1, ymm2        vpsrld  ymm8, ymm1, 7        vpslld  ymm1, ymm1, 25        vpor    ymm1, ymm1, ymm8        vpshufd ymm0, ymm0, 0x93        vpshufd ymm3, ymm3, 0x4E        vpshufd ymm2, ymm2, 0x39        vpaddd  ymm0, ymm0, ymm6        vpaddd  ymm0, ymm0, ymm1        vpxor   ymm3, ymm3, ymm0        vpshufb ymm3, ymm3, ymm14        vpaddd  ymm2, ymm2, ymm3        vpxor   ymm1, ymm1, ymm2        vpsrld  ymm8, ymm1, 12        vpslld  ymm1, ymm1, 20        vpor    ymm1, ymm1, ymm8        vpaddd  ymm0, ymm0, ymm7        vpaddd  ymm0, ymm0, ymm1        vpxor   ymm3, ymm3, ymm0        vpshufb ymm3, ymm3, ymm15        vpaddd  ymm2, ymm2, ymm3        vpxor   ymm1, ymm1, ymm2        vpsrld  ymm8, ymm1, 7        vpslld  ymm1, ymm1, 25        vpor    ymm1, ymm1, ymm8        vpshufd ymm0, ymm0, 0x39        vpshufd ymm3, ymm3, 0x4E        vpshufd ymm2, ymm2, 0x93        dec     al        jz      9f        vshufps ymm8, ymm4, ymm5, 214        vpshufd ymm9, ymm4, 0x0F        vpshufd ymm4, ymm8, 0x39        vshufps ymm8, ymm6, ymm7, 250        vpblendd ymm9, ymm9, ymm8, 0xAA        vpunpcklqdq ymm8, ymm7, ymm5        vpblendd ymm8, ymm8, ymm6, 0x88        vpshufd ymm8, ymm8, 0x78        vpunpckhdq ymm5, ymm5, ymm7        vpunpckldq ymm6, ymm6, ymm5        vpshufd ymm7, ymm6, 0x1E        vmovdqa ymm5, ymm9        vmovdqa ymm6, ymm8        jmp     9b9:        vpxor   ymm0, ymm0, ymm2        vpxor   ymm1, ymm1, ymm3        mov     eax, r13d        cmp     rdx, r15        jne     2b        vmovdqu xmmword ptr [rbx], xmm0        vmovdqu xmmword ptr [rbx+0x10], xmm1        vextracti128 xmmword ptr [rbx+0x20], ymm0, 0x01        vextracti128 xmmword ptr [rbx+0x30], ymm1, 0x01        vmovaps ymm8, ymmword ptr [rsp+0x260]        vmovaps ymm0, ymmword ptr [rsp+0x220]        vmovups ymm1, ymmword ptr [rsp+0x228]        vmovaps ymm2, ymmword ptr [rsp+0x240]        vmovups ymm3, ymmword ptr [rsp+0x248]        vblendvps ymm0, ymm0, ymm1, ymm8        vblendvps ymm2, ymm2, ymm3, ymm8        vmovaps ymmword ptr [rsp+0x220], ymm0        vmovaps ymmword ptr [rsp+0x240], ymm2        add     rbx, 64        add     rdi, 16        sub     rsi, 23:        test    rsi, 0x1        je      4b        vmovdqu xmm0, xmmword ptr [rcx]        vmovdqu xmm1, xmmword ptr [rcx+0x10]        vmovd   xmm3, dword ptr [rsp+0x220]        vpinsrd xmm3, xmm3, dword ptr [rsp+0x240], 1        vpinsrd xmm13, xmm3, dword ptr [BLAKE3_BLOCK_LEN+rip], 2        vmovdqa xmm14, xmmword ptr [ROT16+rip]        vmovdqa xmm15, xmmword ptr [ROT8+rip]        mov     r8, qword ptr [rdi]        movzx   eax, byte ptr [rbp+0x80]        or      eax, r13d        xor     edx, edx.p2align 52:        mov     r14d, eax        or      eax, r12d        add     rdx, 64        cmp     rdx, r15        cmovne  eax, r14d        vmovdqa xmm2, xmmword ptr [BLAKE3_IV+rip]        vmovdqa xmm3, xmm13        vpinsrd xmm3, xmm3, eax, 3        vmovups xmm8, xmmword ptr [r8+rdx-0x40]        vmovups xmm9, xmmword ptr [r8+rdx-0x30]        vshufps xmm4, xmm8, xmm9, 136        vshufps xmm5, xmm8, xmm9, 221        vmovups xmm8, xmmword ptr [r8+rdx-0x20]        vmovups xmm9, xmmword ptr [r8+rdx-0x10]        vshufps xmm6, xmm8, xmm9, 136        vshufps xmm7, xmm8, xmm9, 221        vpshufd xmm6, xmm6, 0x93        vpshufd xmm7, xmm7, 0x93        mov     al, 79:        vpaddd  xmm0, xmm0, xmm4        vpaddd  xmm0, xmm0, xmm1        vpxor   xmm3, xmm3, xmm0        vpshufb xmm3, xmm3, xmm14        vpaddd  xmm2, xmm2, xmm3        vpxor   xmm1, xmm1, xmm2        vpsrld  xmm8, xmm1, 12        vpslld  xmm1, xmm1, 20        vpor    xmm1, xmm1, xmm8        vpaddd  xmm0, xmm0, xmm5        vpaddd  xmm0, xmm0, xmm1        vpxor   xmm3, xmm3, xmm0        vpshufb xmm3, xmm3, xmm15        vpaddd  xmm2, xmm2, xmm3        vpxor   xmm1, xmm1, xmm2        vpsrld  xmm8, xmm1, 7        vpslld  xmm1, xmm1, 25        vpor    xmm1, xmm1, xmm8        vpshufd xmm0, xmm0, 0x93        vpshufd xmm3, xmm3, 0x4E        vpshufd xmm2, xmm2, 0x39        vpaddd  xmm0, xmm0, xmm6        vpaddd  xmm0, xmm0, xmm1        vpxor   xmm3, xmm3, xmm0        vpshufb xmm3, xmm3, xmm14        vpaddd  xmm2, xmm2, xmm3        vpxor   xmm1, xmm1, xmm2        vpsrld  xmm8, xmm1, 12        vpslld  xmm1, xmm1, 20        vpor    xmm1, xmm1, xmm8        vpaddd  xmm0, xmm0, xmm7        vpaddd  xmm0, xmm0, xmm1        vpxor   xmm3, xmm3, xmm0        vpshufb xmm3, xmm3, xmm15        vpaddd  xmm2, xmm2, xmm3        vpxor   xmm1, xmm1, xmm2        vpsrld  xmm8, xmm1, 7        vpslld  xmm1, xmm1, 25        vpor    xmm1, xmm1, xmm8        vpshufd xmm0, xmm0, 0x39        vpshufd xmm3, xmm3, 0x4E        vpshufd xmm2, xmm2, 0x93        dec     al        jz      9f        vshufps xmm8, xmm4, xmm5, 214        vpshufd xmm9, xmm4, 0x0F        vpshufd xmm4, xmm8, 0x39        vshufps xmm8, xmm6, xmm7, 250        vpblendd xmm9, xmm9, xmm8, 0xAA        vpunpcklqdq xmm8, xmm7, xmm5        vpblendd xmm8, xmm8, xmm6, 0x88        vpshufd xmm8, xmm8, 0x78        vpunpckhdq xmm5, xmm5, xmm7        vpunpckldq xmm6, xmm6, xmm5        vpshufd xmm7, xmm6, 0x1E        vmovdqa xmm5, xmm9        vmovdqa xmm6, xmm8        jmp     9b9:        vpxor   xmm0, xmm0, xmm2        vpxor   xmm1, xmm1, xmm3        mov     eax, r13d        cmp     rdx, r15        jne     2b        vmovdqu xmmword ptr [rbx], xmm0        vmovdqu xmmword ptr [rbx+0x10], xmm1        jmp     4b.section .rodata.p2align  6ADD0:        .long  0, 1, 2, 3, 4, 5, 6, 7ADD1:        .long  8, 8, 8, 8, 8, 8, 8, 8BLAKE3_IV_0:        .long  0x6A09E667, 0x6A09E667, 0x6A09E667, 0x6A09E667        .long  0x6A09E667, 0x6A09E667, 0x6A09E667, 0x6A09E667BLAKE3_IV_1:        .long  0xBB67AE85, 0xBB67AE85, 0xBB67AE85, 0xBB67AE85        .long  0xBB67AE85, 0xBB67AE85, 0xBB67AE85, 0xBB67AE85BLAKE3_IV_2:        .long  0x3C6EF372, 0x3C6EF372, 0x3C6EF372, 0x3C6EF372        .long  0x3C6EF372, 0x3C6EF372, 0x3C6EF372, 0x3C6EF372BLAKE3_IV_3:        .long  0xA54FF53A, 0xA54FF53A, 0xA54FF53A, 0xA54FF53A        .long  0xA54FF53A, 0xA54FF53A, 0xA54FF53A, 0xA54FF53ABLAKE3_BLOCK_LEN:        .long  0x00000040, 0x00000040, 0x00000040, 0x00000040        .long  0x00000040, 0x00000040, 0x00000040, 0x00000040ROT16:        .byte  2, 3, 0, 1, 6, 7, 4, 5, 10, 11, 8, 9, 14, 15, 12, 13ROT8:        .byte  1, 2, 3, 0, 5, 6, 7, 4, 9, 10, 11, 8, 13, 14, 15, 12CMP_MSB_MASK:        .long  0x80000000, 0x80000000, 0x80000000, 0x80000000        .long  0x80000000, 0x80000000, 0x80000000, 0x80000000BLAKE3_IV:        .long  0x6A09E667, 0xBB67AE85, 0x3C6EF372, 0xA54FF53A