Function at 0x14003fa05
Capabilities:
Encrypt data using salsa20 or chacha

Disassembly:
mov rax, qword [rcx + 0x38]
test rax, rax
jle 0x14003eafc
cmp qword [rcx + 0x40], 0
js 0x14003eafc
add rax, 0xffffffffffffff00
mov qword [rcx + 0x38], rax
jmp 0x14003ebbd
push rsi
push rdi
push rbx
sub rsp, 0xa0
mov rsi, rdx
mov rdi, rcx
xorps xmm0, xmm0
lea rcx, [rsp + 0x20]
movaps xmmword [rcx + 0x10], xmm0
movaps xmmword [rcx], xmm0
call fcn.1400410e3
test rax, rax
je 0x14003eb39
mov rcx, qword [0x140165ff0]
xor edx, edx
mov r8, rax
call qword [sym.imp.KERNEL32.dll_HeapFree]
jmp 0x14003eb72
movaps xmm0, xmmword [rsp + 0x20]
movaps xmm1, xmmword [rsp + 0x30]
lea rdx, [rsp + 0x40]
movups xmmword [rdx + 0x10], xmm1
movups xmmword [rdx], xmm0
lea rbx, [rsp + 0x70]
mov rcx, rbx
call fcn.140041019
movaps xmm0, xmmword [rbx]
movaps xmm1, xmmword [rbx + 0x10]
movaps xmm2, xmmword [rbx + 0x20]
movaps xmmword [rdi + 0x20], xmm2
movaps xmmword [rdi + 0x10], xmm1
movaps xmmword [rdi], xmm0
mov qword [rdi + 0x40], 0
mov rax, 0xffffffffffffff00
add rax, qword [rdi + 0x30]
mov qword [rdi + 0x38], rax
mov rcx, rdi
mov rdx, rsi
add rsp, 0xa0
pop rbx
pop rdi
pop rsi
jmp 0x14003ebbd
push rsi
push rdi
sub rsp, 0x288
movaps xmmword [rsp + 0x270], xmm15
movdqa xmmword [rsp + 0x260], xmm14
movaps xmmword [rsp + 0x250], xmm13
movaps xmmword [rsp + 0x240], xmm12
movaps xmmword [rsp + 0x230], xmm11
movaps xmmword [rsp + 0x220], xmm10
movaps xmmword [rsp + 0x210], xmm9
movaps xmmword [rsp + 0x200], xmm8
movaps xmmword [rsp + 0x1f0], xmm7
movaps xmmword [rsp + 0x1e0], xmm6
mov rsi, rdx
mov rdi, rcx
mov rax, qword [0x140166090]
test rax, rax
je 0x14003f5fe
test ax, ax
js 0x14003f44e
mov rax, qword [0x140166090]
test rax, rax
je 0x14003f608
bt eax, 0xe
jb 0x14003f4ba
mov rax, qword [0x140166090]
test rax, rax
je 0x14003f612
bt eax, 0xa
jb 0x14003f526
mov rax, qword [0x140166090]
test rax, rax
je 0x14003f61c
bt eax, 9
jb 0x14003f592
movdqa xmm12, xmmword [rdi]
movdqa xmm13, xmmword [rdi + 0x10]
movaps xmm3, xmmword [rdi + 0x20]
mov rax, qword [rdi + 0x20]
lea rcx, [rax + 3]
movd xmm15, ecx
shr rcx, 0x20
movd xmm0, ecx
pslldq xmm0, 8
shufps xmm0, xmm3, 0xe8
por xmm15, xmm0
lea rcx, [rax + 2]
movd xmm0, ecx
shr rcx, 0x20
movd xmm1, ecx
pslldq xmm1, 8
shufps xmm1, xmm3, 0xe8
por xmm0, xmm1
inc rax
movd xmm1, eax
shr rax, 0x20
movd xmm2, eax
pslldq xmm2, 8
movaps xmmword [rsp + 0x30], xmm3
shufps xmm2, xmm3, 0xe8
por xmm1, xmm2
movdqa xmm6, xmmword [str.expand_32_byte_k]
mov eax, 6
movdqa xmm3, xmm6
movdqa xmm4, xmm6
movdqa xmm5, xmm6
movdqa xmmword [rsp + 0x20], xmm13
movdqa xmm7, xmm13
movdqa xmm8, xmm13
movdqa xmm9, xmm12
movdqa xmm10, xmm12
movdqa xmm11, xmm12
movdqa xmmword [rsp + 0x90], xmm12
movdqa xmmword [rsp + 0x80], xmm13
paddd xmm6, xmm9
paddd xmm3, xmm10
paddd xmm4, xmm11
paddd xmm5, xmm12
movdqa xmm2, xmmword [rsp + 0x30]
pxor xmm2, xmm6
pxor xmm1, xmm3
pxor xmm0, xmm4
pxor xmm15, xmm5
pshuflw xmm2, xmm2, 0xb1
pshufhw xmm14, xmm2, 0xb1
pshuflw xmm1, xmm1, 0xb1
pshufhw xmm1, xmm1, 0xb1
pshuflw xmm0, xmm0, 0xb1
pshufhw xmm2, xmm0, 0xb1
pshuflw xmm0, xmm15, 0xb1
pshufhw xmm15, xmm0, 0xb1
paddd xmm13, xmm14
paddd xmm8, xmm1
paddd xmm7, xmm2
movdqa xmm0, xmmword [rsp + 0x20]
paddd xmm0, xmm15
movdqa xmmword [rsp + 0x20], xmm0
pxor xmm9, xmm13
pxor xmm10, xmm8
pxor xmm11, xmm7
pxor xmm12, xmm0
movdqa xmm0, xmm9
psrld xmm0, 0x14
pslld xmm9, 0xc
por xmm9, xmm0
movdqa xmm0, xmm10
psrld xmm0, 0x14
pslld xmm10, 0xc
por xmm10, xmm0
movdqa xmm0, xmm11
psrld xmm0, 0x14
pslld xmm11, 0xc
por xmm11, xmm0
movdqa xmm0, xmm12
psrld xmm0, 0x14
pslld xmm12, 0xc
por xmm12, xmm0
paddd xmm6, xmm9
paddd xmm3, xmm10
paddd xmm4, xmm11
paddd xmm5, xmm12
pxor xmm14, xmm6
movdqa xmm0, xmm14
psrld xmm0, 0x18
pslld xmm14, 8
por xmm14, xmm0
pxor xmm1, xmm3
movdqa xmm0, xmm1
psrld xmm0, 0x18
pslld xmm1, 8
por xmm1, xmm0
pxor xmm2, xmm4
movdqa xmm0, xmm2
psrld xmm0, 0x18
pslld xmm2, 8
por xmm2, xmm0
pxor xmm15, xmm5
movdqa xmm0, xmm15
psrld xmm0, 0x18
pslld xmm15, 8
por xmm15, xmm0
paddd xmm13, xmm14
paddd xmm8, xmm1
paddd xmm7, xmm2
movdqa xmm0, xmmword [rsp + 0x20]
paddd xmm0, xmm15
movdqa xmmword [rsp + 0x20], xmm0
pxor xmm9, xmm13
pxor xmm10, xmm8
pxor xmm11, xmm7
pxor xmm12, xmm0
movdqa xmm0, xmm9
psrld xmm0, 0x19
pslld xmm9, 7
por xmm9, xmm0
movdqa xmm0, xmm10
psrld xmm0, 0x19
pslld xmm10, 7
por xmm10, xmm0
movdqa xmm0, xmm11
psrld xmm0, 0x19
pslld xmm11, 7
por xmm11, xmm0
movdqa xmm0, xmm12
psrld xmm0, 0x19
pslld xmm12, 7
por xmm12, xmm0
pshufd xmm0, xmm9, 0x39
pshufd xmm10, xmm10, 0x39
pshufd xmm11, xmm11, 0x39
pshufd xmm12, xmm12, 0x39
pshufd xmm13, xmm13, 0x4e
pshufd xmm8, xmm8, 0x4e
pshufd xmm7, xmm7, 0x4e
pshufd xmm9, xmmword [rsp + 0x20], 0x4e
movdqa xmmword [rsp + 0x20], xmm9
pshufd xmm9, xmm14, 0x93
pshufd xmm14, xmm1, 0x93
pshufd xmm2, xmm2, 0x93
pshufd xmm1, xmm15, 0x93
movdqa xmmword [rsp + 0x30], xmm1
paddd xmm6, xmm0
paddd xmm3, xmm10
paddd xmm4, xmm11
paddd xmm5, xmm12
pshuflw xmm1, xmm6, 0xb1
pshufhw xmm15, xmm1, 0xb1
pshuflw xmm1, xmm9, 0xb1
pshufhw xmm1, xmm1, 0xb1
pxor xmm1, xmm15
pshuflw xmm9, xmm3, 0xb1
pshufhw xmm9, xmm9, 0xb1
pshuflw xmm14, xmm14, 0xb1
pshufhw xmm15, xmm14, 0xb1
pxor xmm15, xmm9
pshuflw xmm9, xmm4, 0xb1
pshufhw xmm9, xmm9, 0xb1
pshuflw xmm2, xmm2, 0xb1
pshufhw xmm14, xmm2, 0xb1
pxor xmm14, xmm9
pshuflw xmm2, xmm5, 0xb1
pshufhw xmm9, xmm2, 0xb1
pshuflw xmm2, xmmword [rsp + 0x30], 0xb1
pshufhw xmm2, xmm2, 0xb1
pxor xmm2, xmm9
paddd xmm13, xmm1
paddd xmm8, xmm15
paddd xmm7, xmm14
movdqa xmm9, xmmword [rsp + 0x20]
paddd xmm9, xmm2
movdqa xmmword [rsp + 0x20], xmm9
pxor xmm0, xmm13
pxor xmm10, xmm8
pxor xmm11, xmm7
pxor xmm12, xmm9
movdqa xmm9, xmm0
psrld xmm9, 0x14
pslld xmm0, 0xc
por xmm0, xmm9
movdqa xmm9, xmm10
psrld xmm9, 0x14
pslld xmm10, 0xc
por xmm10, xmm9
movdqa xmm9, xmm11
psrld xmm9, 0x14
pslld xmm11, 0xc
por xmm11, xmm9
movdqa xmm9, xmm12
psrld xmm9, 0x14
pslld xmm12, 0xc
por xmm12, xmm9
paddd xmm6, xmm0
paddd xmm3, xmm10
paddd xmm4, xmm11
paddd xmm5, xmm12
pxor xmm1, xmm6
movdqa xmm9, xmm1
psrld xmm9, 0x18
pslld xmm1, 8
por xmm1, xmm9
pxor xmm15, xmm3
movdqa xmm9, xmm15
psrld xmm9, 0x18
pslld xmm15, 8
por xmm15, xmm9
pxor xmm14, xmm4
movdqa xmm9, xmm14
psrld xmm9, 0x18
pslld xmm14, 8
por xmm14, xmm9
pxor xmm2, xmm5
movdqa xmm9, xmm2
psrld xmm9, 0x18
pslld xmm2, 8
por xmm2, xmm9
paddd xmm13, xmm1
paddd xmm8, xmm15
paddd xmm7, xmm14
movdqa xmm9, xmmword [rsp + 0x20]
paddd xmm9, xmm2
movdqa xmmword [rsp + 0x20], xmm9
pxor xmm0, xmm13
pxor xmm10, xmm8
pxor xmm11, xmm7
pxor xmm12, xmm9
movdqa xmm9, xmm0
psrld xmm9, 0x19
pslld xmm0, 7
por xmm0, xmm9
movdqa xmm9, xmm10
psrld xmm9, 0x19
pslld xmm10, 7
por xmm10, xmm9
movdqa xmm9, xmm11
psrld xmm9, 0x19
pslld xmm11, 7
por xmm11, xmm9
movdqa xmm9, xmm12
psrld xmm9, 0x19
pslld xmm12, 7
por xmm12, xmm9
pshufd xmm9, xmm0, 0x93
pshufd xmm10, xmm10, 0x93
pshufd xmm11, xmm11, 0x93
pshufd xmm12, xmm12, 0x93
pshufd xmm13, xmm13, 0x4e
pshufd xmm8, xmm8, 0x4e
pshufd xmm7, xmm7, 0x4e
pshufd xmm0, xmmword [rsp + 0x20], 0x4e
movdqa xmmword [rsp + 0x20], xmm0
pshufd xmm0, xmm1, 0x39
movdqa xmmword [rsp + 0x30], xmm0
pshufd xmm1, xmm15, 0x39
pshufd xmm0, xmm14, 0x39
pshufd xmm15, xmm2, 0x39
dec eax
jne 0x14003ed49
mov rax, qword [rdi + 0x20]
lea rcx, [rax + 1]
mov rdx, rcx
shr rdx, 0x20
movd xmm14, edx
pslldq xmm14, 8
movaps xmm2, xmmword [rdi + 0x20]
movaps xmmword [rsp + 0x40], xmm2
shufps xmm14, xmm2, 0xe8
movd xmm2, ecx
por xmm2, xmm14
movdqa xmmword [rsp + 0x70], xmm2
lea rcx, [rax + 2]
mov rdx, rcx
shr rdx, 0x20
movd xmm14, edx
pslldq xmm14, 8
shufps xmm14, xmmword [rsp + 0x40], 0xe8
movd xmm2, ecx
por xmm2, xmm14
movdqa xmmword [rsp + 0x60], xmm2
lea rcx, [rax + 3]
mov rdx, rcx
shr rdx, 0x20
movd xmm2, edx
pslldq xmm2, 8
shufps xmm2, xmmword [rsp + 0x40], 0xe8
movd xmm14, ecx
por xmm14, xmm2
movdqa xmmword [rsp + 0x50], xmm14
add rax, 4
mov rcx, rax
shr rcx, 0x20
movd xmm2, ecx
pslldq xmm2, 8
shufps xmm2, xmmword [rsp + 0x40], 0xe8
movd xmm14, eax
por xmm14, xmm2
movdqa xmmword [rsp + 0xa0], xmm6
movdqa xmmword [rsp + 0xb0], xmm3
movdqa xmmword [rsp + 0xc0], xmm4
movdqa xmmword [rsp + 0xd0], xmm5
movdqa xmmword [rsp + 0xe0], xmm9
movdqa xmmword [rsp + 0xf0], xmm10
movdqa xmmword [rsp + 0x100], xmm11
movdqa xmmword [rsp + 0x110], xmm12
movdqa xmmword [rsp + 0x120], xmm13
movdqa xmmword [rsp + 0x130], xmm8
movdqa xmmword [rsp + 0x140], xmm7
movaps xmm2, xmmword [rsp + 0x20]
movaps xmmword [rsp + 0x150], xmm2
movdqa xmm2, xmmword [rsp + 0x30]
movdqa xmmword [rsp + 0x160], xmm2
movdqa xmmword [rsp + 0x170], xmm1
movdqa xmmword [rsp + 0x180], xmm0
movdqa xmmword [rsp + 0x190], xmm15
movaps xmm0, xmmword [rsp + 0x40]
movaps xmmword [rsp + 0x1a0], xmm0
movaps xmm0, xmmword [rsp + 0x70]
movaps xmmword [rsp + 0x1b0], xmm0
movaps xmm0, xmmword [rsp + 0x60]
movaps xmmword [rsp + 0x1c0], xmm0
movaps xmm0, xmmword [rsp + 0x50]
movaps xmmword [rsp + 0x1d0], xmm0
movdqa xmmword [rdi + 0x20], xmm14
xor eax, eax
movdqa xmm0, xmmword [str.expand_32_byte_k]
movdqa xmm5, xmmword [rsp + 0x90]
movdqa xmm6, xmmword [rsp + 0x80]
movdqa xmm1, xmmword [rsp + rax + 0x160]
movdqa xmm2, xmmword [rsp + rax + 0xa0]
paddd xmm2, xmm0
movdqa xmm3, xmmword [rsp + rax + 0xe0]
paddd xmm3, xmm5
movdqa xmm4, xmmword [rsp + rax + 0x120]
paddd xmm4, xmm6
paddd xmm1, xmmword [rsp + rax + 0x1a0]
movdqu xmmword [rsi + rax*4], xmm2
movdqu xmmword [rsi + rax*4 + 0x10], xmm3
movdqu xmmword [rsi + rax*4 + 0x20], xmm4
movdqu xmmword [rsi + rax*4 + 0x30], xmm1
add rax, 0x10
cmp rax, 0x40
jne 0x14003f392
movaps xmm6, xmmword [rsp + 0x1e0]
movaps xmm7, xmmword [rsp + 0x1f0]
movaps xmm8, xmmword [rsp + 0x200]
movaps xmm9, xmmword [rsp + 0x210]
movaps xmm10, xmmword [rsp + 0x220]
movaps xmm11, xmmword [rsp + 0x230]
movaps xmm12, xmmword [rsp + 0x240]
movaps xmm13, xmmword [rsp + 0x250]
movaps xmm14, xmmword [rsp + 0x260]
movaps xmm15, xmmword [rsp + 0x270]
add rsp, 0x288
pop rdi
pop rsi
ret
mov rcx, rdi
mov rdx, rsi
movaps xmm6, xmmword [rsp + 0x1e0]
movaps xmm7, xmmword [rsp + 0x1f0]
movaps xmm8, xmmword [rsp + 0x200]
movaps xmm9, xmmword [rsp + 0x210]
movaps xmm10, xmmword [rsp + 0x220]
movaps xmm11, xmmword [rsp + 0x230]
movaps xmm12, xmmword [rsp + 0x240]
movaps xmm13, xmmword [rsp + 0x250]
movaps xmm14, xmmword [rsp + 0x260]
movaps xmm15, xmmword [rsp + 0x270]
add rsp, 0x288
pop rdi
pop rsi
jmp 0x14003f626
mov rcx, rdi
mov rdx, rsi
movaps xmm6, xmmword [rsp + 0x1e0]
movaps xmm7, xmmword [rsp + 0x1f0]
movaps xmm8, xmmword [rsp + 0x200]
movaps xmm9, xmmword [rsp + 0x210]
movaps xmm10, xmmword [rsp + 0x220]
movaps xmm11, xmmword [rsp + 0x230]
movaps xmm12, xmmword [rsp + 0x240]
movaps xmm13, xmmword [rsp + 0x250]
movaps xmm14, xmmword [rsp + 0x260]
movaps xmm15, xmmword [rsp + 0x270]
add rsp, 0x288
pop rdi
pop rsi
jmp 0x14003fa05
mov rcx, rdi
mov rdx, rsi
movaps xmm6, xmmword [rsp + 0x1e0]
movaps xmm7, xmmword [rsp + 0x1f0]
movaps xmm8, xmmword [rsp + 0x200]
movaps xmm9, xmmword [rsp + 0x210]
movaps xmm10, xmmword [rsp + 0x220]
movaps xmm11, xmmword [rsp + 0x230]
movaps xmm12, xmmword [rsp + 0x240]
movaps xmm13, xmmword [rsp + 0x250]
movaps xmm14, xmmword [rsp + 0x260]
movaps xmm15, xmmword [rsp + 0x270]
add rsp, 0x288
pop rdi
pop rsi
jmp 0x14004008a
mov rcx, rdi
mov rdx, rsi
movaps xmm6, xmmword [rsp + 0x1e0]
movaps xmm7, xmmword [rsp + 0x1f0]
movaps xmm8, xmmword [rsp + 0x200]
movaps xmm9, xmmword [rsp + 0x210]
movaps xmm10, xmmword [rsp + 0x220]
movaps xmm11, xmmword [rsp + 0x230]
movaps xmm12, xmmword [rsp + 0x240]
movaps xmm13, xmmword [rsp + 0x250]
movaps xmm14, xmmword [rsp + 0x260]
movaps xmm15, xmmword [rsp + 0x270]
add rsp, 0x288
pop rdi
pop rsi
jmp 0x14004081f
call fcn.140103a30
jmp 0x14003ec35
call fcn.140103a30
jmp 0x14003ec4e
call fcn.140103a30
jmp 0x14003ec68
call fcn.140103a30
jmp 0x14003ec82
sub rsp, 0x208
vmovaps xmmword [rsp + 0x1f0], xmm15
vmovaps xmmword [rsp + 0x1e0], xmm14
vmovaps xmmword [rsp + 0x1d0], xmm13
vmovaps xmmword [rsp + 0x1c0], xmm12
vmovaps xmmword [rsp + 0x1b0], xmm11
vmovaps xmmword [rsp + 0x1a0], xmm10
vmovaps xmmword [rsp + 0x190], xmm9
vmovaps xmmword [rsp + 0x180], xmm8
vmovaps xmmword [rsp + 0x170], xmm7
vmovaps xmmword [rsp + 0x160], xmm6
vmovdqa xmm0, xmmword [rcx + 0x20]
mov rax, qword [rcx + 0x20]
lea r8, [rax + 2]
vpinsrd xmm1, xmm0, r8d, 0
shr r8, 0x20
vpinsrd xmm2, xmm1, r8d, 1
lea r8, [rax + 3]
vpinsrd xmm1, xmm0, r8d, 0
shr r8, 0x20
vpinsrd xmm4, xmm1, r8d, 1
vmovdqu ymmword [rsp + 0x40], ymm2
vinserti128 ymm8, ymm2, xmm4, 1
lea r8, [rax + 1]
vpinsrd xmm1, xmm0, r8d, 0
shr r8, 0x20
vpinsrd xmm5, xmm1, r8d, 1
vbroadcasti128 ymm1, xmmword [rcx + 0x10]
vinserti128 ymm11, ymm0, xmm5, 1
vbroadcasti128 ymm2, xmmword [rcx]
vbroadcasti128 ymm9, xmmword [str.expand_32_byte_k]
mov r8d, 6
vbroadcasti128 ymm6, xmmword [0x1401058c0]
vmovdqa ymm7, ymmword [0x1401058a0]
vmovdqa ymm10, ymm9
vmovdqa ymm13, ymm1
vmovdqa ymm14, ymm1
vmovdqa ymm12, ymm2
vmovdqa ymm15, ymm2
vpaddd ymm10, ymm10, ymm15
vpaddd ymm9, ymm9, ymm12
vpxor ymm11, ymm11, ymm10
vpxor ymm8, ymm8, ymm9
vpshuflw ymm11, ymm11, 0xb1
vpshufhw ymm11, ymm11, 0xb1
vpshuflw ymm8, ymm8, 0xb1
vpshufhw ymm8, ymm8, 0xb1
vpaddd ymm14, ymm14, ymm11
vpaddd ymm13, ymm13, ymm8
vpxor ymm15, ymm14, ymm15
vpsrld ymm3, ymm15, 0x14
vpslld ymm15, ymm15, 0xc
vpor ymm3, ymm15, ymm3
vpxor ymm12, ymm13, ymm12
vpsrld ymm15, ymm12, 0x14
vpslld ymm12, ymm12, 0xc
vpor ymm12, ymm12, ymm15
vpaddd ymm10, ymm10, ymm3
vpaddd ymm9, ymm12, ymm9
vpshufb ymm15, ymm10, ymm6
vpshufb ymm11, ymm11, ymm6
vpxor ymm11, ymm11, ymm15
vpshufb ymm15, ymm9, ymm6
vpshufb ymm8, ymm8, ymm6
vpxor ymm8, ymm8, ymm15
vpaddd ymm14, ymm14, ymm11
vpaddd ymm13, ymm13, ymm8
vpxor ymm3, ymm14, ymm3
vpxor ymm12, ymm13, ymm12
vpsrld ymm15, ymm3, 0x19
vpslld ymm3, ymm3, 7
vpor ymm3, ymm15, ymm3
vpsrld ymm15, ymm12, 0x19
vpslld ymm12, ymm12, 7
vpor ymm12, ymm12, ymm15
vpshufd ymm3, ymm3, 0x39
vpshufd ymm12, ymm12, 0x39
vpshufd ymm14, ymm14, 0x4e
vpshufd ymm13, ymm13, 0x4e
vpaddd ymm10, ymm10, ymm3
vpaddd ymm9, ymm12, ymm9
vpshuflw ymm15, ymm10, 0xb1
vpshufhw ymm15, ymm15, 0xb1
vpshufb ymm11, ymm11, ymm7
vpxor ymm11, ymm11, ymm15
vpshuflw ymm15, ymm9, 0xb1
vpshufhw ymm15, ymm15, 0xb1
vpshufb ymm8, ymm8, ymm7
vpxor ymm8, ymm8, ymm15
vpaddd ymm14, ymm14, ymm11
vpaddd ymm13, ymm13, ymm8
vpxor ymm3, ymm14, ymm3
vpxor ymm12, ymm13, ymm12
vpsrld ymm15, ymm3, 0x14
vpslld ymm3, ymm3, 0xc
vpor ymm3, ymm15, ymm3
vpsrld ymm15, ymm12, 0x14
vpslld ymm12, ymm12, 0xc
vpor ymm12, ymm12, ymm15
vpaddd ymm10, ymm10, ymm3
vpaddd ymm9, ymm12, ymm9
vpxor ymm11, ymm11, ymm10
vpshufb ymm11, ymm11, ymm6
vpxor ymm8, ymm8, ymm9
vpshufb ymm8, ymm8, ymm6
vpaddd ymm14, ymm14, ymm11
vpaddd ymm13, ymm13, ymm8
vpxor ymm3, ymm14, ymm3
vpxor ymm12, ymm13, ymm12
vpsrld ymm15, ymm3, 0x19
vpslld ymm3, ymm3, 7
vpor ymm3, ymm15, ymm3
vpsrld ymm15, ymm12, 0x19
vpslld ymm12, ymm12, 7
vpor ymm12, ymm12, ymm15
vpshufd ymm15, ymm3, 0x93
vpshufd ymm12, ymm12, 0x93
vpshufd ymm14, ymm14, 0x4e
vpshufd ymm13, ymm13, 0x4e
vpshufd ymm11, ymm11, 0x39
vpshufd ymm8, ymm8, 0x39
dec r8d
jne 0x14003f71e
vmovdqa xmmword [rsp + 0x10], xmm5
vmovups ymm3, ymmword [rsp + 0x40]
vmovaps xmmword [rsp + 0x20], xmm3
vmovdqa xmmword [rsp + 0x30], xmm4
add rax, 4
mov r8, rax
shr r8, 0x20
vpinsrd xmm3, xmm0, eax, 0
vpinsrd xmm3, xmm3, r8d, 1
vmovdqu ymmword [rsp + 0x60], ymm10
vmovdqu ymmword [rsp + 0x80], ymm9
vmovdqu ymmword [rsp + 0xa0], ymm15
vmovdqu ymmword [rsp + 0xc0], ymm12
vmovdqu ymmword [rsp + 0xe0], ymm14
vmovdqu ymmword [rsp + 0x100], ymm13
vmovdqu ymmword [rsp + 0x120], ymm11
vmovdqu ymmword [rsp + 0x140], ymm8
vmovdqa xmmword [rsp], xmm0
vmovdqa xmmword [rcx + 0x20], xmm3
xor eax, eax
vmovdqa xmm0, xmmword [str.expand_32_byte_k]
vmovdqa xmm3, xmmword [rsp + rax + 0x120]
vpaddd xmm4, xmm0, xmmword [rsp + rax + 0x60]
vpaddd xmm5, xmm2, xmmword [rsp + rax + 0xa0]
vpaddd xmm6, xmm1, xmmword [rsp + rax + 0xe0]
vpaddd xmm3, xmm3, xmmword [rsp + rax]
vmovdqu xmmword [rdx + rax*4], xmm4
vmovdqu xmmword [rdx + rax*4 + 0x10], xmm5
vmovdqu xmmword [rdx + rax*4 + 0x20], xmm6
vmovdqu xmmword [rdx + rax*4 + 0x30], xmm3
add rax, 0x10
cmp rax, 0x40
jne 0x14003f959
vzeroupper
vmovaps xmm6, xmmword [rsp + 0x160]
vmovaps xmm7, xmmword [rsp + 0x170]
vmovaps xmm8, xmmword [rsp + 0x180]
vmovaps xmm9, xmmword [rsp + 0x190]
vmovaps xmm10, xmmword [rsp + 0x1a0]
vmovaps xmm11, xmmword [rsp + 0x1b0]
vmovaps xmm12, xmmword [rsp + 0x1c0]
vmovaps xmm13, xmmword [rsp + 0x1d0]
vmovaps xmm14, xmmword [rsp + 0x1e0]
vmovaps xmm15, xmmword [rsp + 0x1f0]
add rsp, 0x208
ret
sub rsp, 0x248
vmovdqa xmmword [rsp + 0x230], xmm15
vmovaps xmmword [rsp + 0x220], xmm14
vmovaps xmmword [rsp + 0x210], xmm13
vmovaps xmmword [rsp + 0x200], xmm12
vmovaps xmmword [rsp + 0x1f0], xmm11
vmovaps xmmword [rsp + 0x1e0], xmm10
vmovdqa xmmword [rsp + 0x1d0], xmm9
vmovaps xmmword [rsp + 0x1c0], xmm8
vmovaps xmmword [rsp + 0x1b0], xmm7
vmovaps xmmword [rsp + 0x1a0], xmm6
vmovdqa xmm7, xmmword [rcx + 0x20]
mov rax, qword [rcx + 0x20]
lea r8, [rax + 3]
vpinsrd xmm0, xmm7, r8d, 0
shr r8, 0x20
vpinsrd xmm3, xmm0, r8d, 1
lea r8, [rax + 2]
vpinsrd xmm0, xmm7, r8d, 0
vmovdqa xmm1, xmmword [rcx]
shr r8, 0x20
vpinsrd xmm11, xmm0, r8d, 1
vmovdqa xmm8, xmmword [rcx + 0x10]
inc rax
vpinsrd xmm0, xmm7, eax, 0
shr rax, 0x20
vpinsrd xmm4, xmm0, eax, 1
vmovdqa xmm2, xmmword [str.expand_32_byte_k]
mov eax, 6
vmovdqa xmm12, xmm2
vmovdqa xmmword [rsp + 0x40], xmm2
vmovdqa xmmword [rsp + 0x10], xmm2
vmovdqa xmm13, xmm8
vmovdqa xmm10, xmm8
vmovdqa xmm5, xmm1
vmovdqa xmm14, xmm1
vmovdqa xmmword [rsp], xmm1
vmovdqa xmm6, xmm8
vpaddd xmm0, xmm1, xmm2
vmovdqa xmmword [rsp + 0x30], xmm0
vpxor xmm7, xmm7, xmm0
vpshuflw xmm7, xmm7, 0xb1
vpshufhw xmm9, xmm7, 0xb1
vpaddd xmm0, xmm9, xmm6
vmovdqa xmmword [rsp + 0x20], xmm0
vpxor xmm1, xmm0, xmm1
vmovdqa xmm0, xmm3
vpsrld xmm3, xmm1, 0x14
vpslld xmm1, xmm1, 0xc
vpor xmm7, xmm1, xmm3
vpaddd xmm6, xmm12, xmm5
vpxor xmm3, xmm4, xmm6
vpshuflw xmm3, xmm3, 0xb1
vpshufhw xmm3, xmm3, 0xb1
vpaddd xmm1, xmm10, xmm3
vmovdqa xmmword [rsp + 0x50], xmm1
vpxor xmm4, xmm1, xmm5
vpsrld xmm5, xmm4, 0x14
vpslld xmm4, xmm4, 0xc
vpor xmm12, xmm4, xmm5
vpaddd xmm5, xmm14, xmmword [rsp + 0x40]
vpxor xmm4, xmm11, xmm5
vpshuflw xmm4, xmm4, 0xb1
vpshufhw xmm10, xmm4, 0xb1
vpaddd xmm15, xmm13, xmm10
vpxor xmm4, xmm15, xmm14
vpsrld xmm11, xmm4, 0x14
vpslld xmm4, xmm4, 0xc
vpor xmm14, xmm11, xmm4
vmovdqa xmm11, xmmword [rsp]
vpaddd xmm2, xmm11, xmmword [rsp + 0x10]
vpxor xmm4, xmm0, xmm2
vpshuflw xmm4, xmm4, 0xb1
vpshufhw xmm1, xmm4, 0xb1
vpaddd xmm13, xmm8, xmm1
vpxor xmm11, xmm13, xmm11
vpsrld xmm0, xmm11, 0x14
vpslld xmm11, xmm11, 0xc
vpor xmm4, xmm11, xmm0
vpaddd xmm0, xmm7, xmmword [rsp + 0x30]
vmovdqa xmmword [rsp + 0x10], xmm0
vmovdqa xmm8, xmmword [0x1401058c0]
vpshufb xmm9, xmm9, xmm8
vpshufb xmm11, xmm0, xmm8
vpxor xmm9, xmm11, xmm9
vpaddd xmm6, xmm12, xmm6
vpshufb xmm3, xmm3, xmm8
vpshufb xmm11, xmm6, xmm8
vpxor xmm3, xmm11, xmm3
vpaddd xmm5, xmm14, xmm5
vpshufb xmm10, xmm10, xmm8
vpshufb xmm11, xmm5, xmm8
vpxor xmm10, xmm11, xmm10
vpaddd xmm0, xmm4, xmm2
vmovdqa xmmword [rsp], xmm0
vpshufb xmm1, xmm1, xmm8
vpshufb xmm11, xmm0, xmm8
vpxor xmm1, xmm11, xmm1
vpaddd xmm0, xmm9, xmmword [rsp + 0x20]
vmovdqa xmmword [rsp + 0x30], xmm0
vpxor xmm7, xmm0, xmm7
vpsrld xmm11, xmm7, 0x19
vpslld xmm7, xmm7, 7
vpor xmm7, xmm11, xmm7
vpaddd xmm0, xmm3, xmmword [rsp + 0x50]
vmovdqa xmmword [rsp + 0x20], xmm0
vpxor xmm8, xmm12, xmm0
vpsrld xmm11, xmm8, 0x19
vpslld xmm8, xmm8, 7
vpor xmm8, xmm8, xmm11
vpaddd xmm0, xmm15, xmm10
vmovdqa xmmword [rsp + 0x40], xmm0
vpxor xmm11, xmm14, xmm0
vpsrld xmm12, xmm11, 0x19
vpslld xmm11, xmm11, 7
vpor xmm14, xmm11, xmm12
vpaddd xmm13, xmm13, xmm1
vmovdqa xmm15, xmm1
vpxor xmm2, xmm13, xmm4
vpsrld xmm4, xmm2, 0x19
vpslld xmm2, xmm2, 7
vpor xmm2, xmm2, xmm4
vpshufd xmm7, xmm7, 0x39
vpaddd xmm12, xmm7, xmmword [rsp + 0x10]
vpshuflw xmm4, xmm12, 0xb1
vpshufhw xmm4, xmm4, 0xb1
vmovdqa xmm0, xmmword [0x1401058d0]
vpshufb xmm9, xmm9, xmm0
vpxor xmm11, xmm9, xmm4
vpshufd xmm9, xmm8, 0x39
vpaddd xmm1, xmm9, xmm6
vmovdqa xmmword [rsp + 0x10], xmm1
vpshuflw xmm4, xmm1, 0xb1
vpshufhw xmm4, xmm4, 0xb1
vpshufb xmm3, xmm3, xmm0
vpxor xmm4, xmm3, xmm4
vpshufd xmm6, xmm14, 0x39
vpaddd xmm14, xmm6, xmm5
vpshuflw xmm3, xmm14, 0xb1
vpshufhw xmm3, xmm3, 0xb1
vpshufb xmm5, xmm10, xmm0
vpxor xmm5, xmm5, xmm3
vpshufd xmm2, xmm2, 0x39
vpaddd xmm3, xmm2, xmmword [rsp]
vpshuflw xmm10, xmm3, 0xb1
vpshufhw xmm10, xmm10, 0xb1
vpshufb xmm1, xmm15, xmm0
vpxor xmm1, xmm10, xmm1
vmovdqa xmmword [rsp], xmm1
vpshufd xmm10, xmmword [rsp + 0x30], 0x4e
vpaddd xmm0, xmm10, xmm11
vpxor xmm7, xmm0, xmm7
vpsrld xmm10, xmm7, 0x14
vpslld xmm7, xmm7, 0xc
vpor xmm7, xmm10, xmm7
vpshufd xmm10, xmmword [rsp + 0x20], 0x4e
vpaddd xmm10, xmm10, xmm4
vpxor xmm9, xmm10, xmm9
vpsrld xmm15, xmm9, 0x14
vpslld xmm9, xmm9, 0xc
vpor xmm15, xmm9, xmm15
vpshufd xmm8, xmmword [rsp + 0x40], 0x4e
vpaddd xmm8, xmm8, xmm5
vpxor xmm6, xmm8, xmm6
vpsrld xmm9, xmm6, 0x14
vpslld xmm6, xmm6, 0xc
vpor xmm6, xmm9, xmm6
vpshufd xmm9, xmm13, 0x4e
vpaddd xmm9, xmm9, xmm1
vpxor xmm2, xmm9, xmm2
vpsrld xmm13, xmm2, 0x14
vpslld xmm2, xmm2, 0xc
vpor xmm13, xmm13, xmm2
vpaddd xmm1, xmm12, xmm7
vmovdqa xmmword [rsp + 0x30], xmm1
vpxor xmm11, xmm11, xmm1
vmovdqa xmm1, xmmword [0x1401058c0]
vpshufb xmm2, xmm11, xmm1
vpaddd xmm0, xmm0, xmm2
vpxor xmm7, xmm0, xmm7
vpsrld xmm11, xmm7, 0x19
vpslld xmm7, xmm7, 7
vpor xmm7, xmm11, xmm7
vpaddd xmm12, xmm15, xmmword [rsp + 0x10]
vpxor xmm4, xmm12, xmm4
vpshufb xmm4, xmm4, xmm1
vpaddd xmm10, xmm10, xmm4
vpxor xmm15, xmm10, xmm15
vpsrld xmm11, xmm15, 0x19
vpslld xmm15, xmm15, 7
vpor xmm11, xmm15, xmm11
vpaddd xmm14, xmm14, xmm6
vmovdqa xmmword [rsp + 0x40], xmm14
vpxor xmm5, xmm14, xmm5
vmovdqa xmm14, xmm1
vpshufb xmm15, xmm5, xmm1
vpaddd xmm8, xmm8, xmm15
vpxor xmm5, xmm8, xmm6
vpsrld xmm6, xmm5, 0x19
vpslld xmm5, xmm5, 7
vpor xmm6, xmm5, xmm6
vpaddd xmm3, xmm13, xmm3
vmovdqa xmmword [rsp + 0x10], xmm3
vpxor xmm1, xmm3, xmmword [rsp]
vpshufb xmm3, xmm1, xmm14
vpaddd xmm9, xmm9, xmm3
vpxor xmm1, xmm9, xmm13
vpsrld xmm5, xmm1, 0x19
vpslld xmm1, xmm1, 7
vpor xmm13, xmm1, xmm5
vpshufd xmm1, xmm7, 0x93
vpshufd xmm5, xmm11, 0x93
vpshufd xmm14, xmm6, 0x93
vpshufd xmm6, xmm13, 0x93
vmovdqa xmmword [rsp], xmm6
vpshufd xmm6, xmm0, 0x4e
vpshufd xmm10, xmm10, 0x4e
vpshufd xmm13, xmm8, 0x4e
vpshufd xmm8, xmm9, 0x4e
vpshufd xmm7, xmm2, 0x39
vmovdqa xmm2, xmmword [rsp + 0x30]
vpshufd xmm4, xmm4, 0x39
vpshufd xmm11, xmm15, 0x39
vpshufd xmm3, xmm3, 0x39
dec eax
jne 0x14003faeb
mov rax, qword [rcx + 0x20]
lea r8, [rax + 1]
mov r9, r8
shr r9, 0x20
vmovdqa xmm15, xmmword [rcx + 0x20]
vpinsrd xmm0, xmm15, r8d, 0
vpinsrd xmm0, xmm0, r9d, 1
vmovdqa xmmword [rsp + 0x170], xmm0
lea r8, [rax + 2]
mov r9, r8
shr r9, 0x20
vpinsrd xmm0, xmm15, r8d, 0
vpinsrd xmm0, xmm0, r9d, 1
vmovdqa xmmword [rsp + 0x180], xmm0
lea r8, [rax + 3]
mov r9, r8
shr r9, 0x20
vpinsrd xmm0, xmm15, r8d, 0
vpinsrd xmm0, xmm0, r9d, 1
vmovdqa xmmword [rsp + 0x190], xmm0
add rax, 4
mov r8, rax
shr r8, 0x20
vpinsrd xmm0, xmm15, eax, 0
vpinsrd xmm9, xmm0, r8d, 1
vmovaps xmm0, xmmword [rcx]
vmovaps xmmword [rsp + 0x20], xmm0
vmovdqa xmm0, xmmword [rcx + 0x10]
vmovdqa xmmword [rcx + 0x20], xmm9
vmovdqa xmmword [rsp + 0x60], xmm2
vmovdqa xmmword [rsp + 0x70], xmm12
vmovaps xmm2, xmmword [rsp + 0x40]
vmovaps xmmword [rsp + 0x80], xmm2
vmovdqa xmm2, xmmword [rsp + 0x10]
vmovdqa xmmword [rsp + 0x90], xmm2
vmovdqa xmmword [rsp + 0xa0], xmm1
vmovdqa xmmword [rsp + 0xb0], xmm5
vmovdqa xmmword [rsp + 0xc0], xmm14
vmovaps xmm1, xmmword [rsp]
vmovaps xmmword [rsp + 0xd0], xmm1
vmovdqa xmmword [rsp + 0xe0], xmm6
vmovdqa xmm6, xmmword [rsp + 0x20]
vmovdqa xmmword [rsp + 0xf0], xmm10
vmovdqa xmmword [rsp + 0x100], xmm13
vmovdqa xmmword [rsp + 0x110], xmm8
vmovdqa xmmword [rsp + 0x120], xmm7
vmovdqa xmmword [rsp + 0x130], xmm4
vmovdqa xmmword [rsp + 0x140], xmm11
vmovdqa xmmword [rsp + 0x150], xmm3
vmovdqa xmmword [rsp + 0x160], xmm15
xor eax, eax
vmovdqa xmm1, xmmword [str.expand_32_byte_k]
vmovdqa xmm2, xmmword [rsp + rax + 0x120]
vpaddd xmm3, xmm1, xmmword [rsp + rax + 0x60]
vpaddd xmm4, xmm6, xmmword [rsp + rax + 0xa0]
vpaddd xmm5, xmm0, xmmword [rsp + rax + 0xe0]
vpaddd xmm2, xmm2, xmmword [rsp + rax + 0x160]
vmovdqu xmmword [rdx + rax*4], xmm3
vmovdqu xmmword [rdx + rax*4 + 0x10], xmm4
vmovdqu xmmword [rdx + rax*4 + 0x20], xmm5
vmovdqu xmmword [rdx + rax*4 + 0x30], xmm2
add rax, 0x10
cmp rax, 0x40
jne 0x14003ffda
vzeroupper
vmovaps xmm6, xmmword [rsp + 0x1a0]
vmovaps xmm7, xmmword [rsp + 0x1b0]
vmovaps xmm8, xmmword [rsp + 0x1c0]
vmovaps xmm9, xmmword [rsp + 0x1d0]
vmovaps xmm10, xmmword [rsp + 0x1e0]
vmovaps xmm11, xmmword [rsp + 0x1f0]
vmovaps xmm12, xmmword [rsp + 0x200]
vmovaps xmm13, xmmword [rsp + 0x210]
vmovaps xmm14, xmmword [rsp + 0x220]
vmovaps xmm15, xmmword [rsp + 0x230]
add rsp, 0x248
ret
sub rsp, 0x228
movaps xmmword [rsp + 0x210], xmm15
movaps xmmword [rsp + 0x200], xmm14
movaps xmmword [rsp + 0x1f0], xmm13
movaps xmmword [rsp + 0x1e0], xmm12
movaps xmmword [rsp + 0x1d0], xmm11
movaps xmmword [rsp + 0x1c0], xmm10
movaps xmmword [rsp + 0x1b0], xmm9
movaps xmmword [rsp + 0x1a0], xmm8
movaps xmmword [rsp + 0x190], xmm7
movaps xmmword [rsp + 0x180], xmm6
movdqa xmm8, xmmword [rcx + 0x20]
mov rax, qword [rcx + 0x20]
lea r8, [rax + 3]
movdqa xmm11, xmm8
pinsrd xmm11, r8d, 0
movdqa xmm5, xmmword [rcx]
shr r8, 0x20
pinsrd xmm11, r8d, 1
lea r8, [rax + 2]
movdqa xmm10, xmm8
pinsrd xmm10, r8d, 0
movdqa xmm4, xmmword [rcx + 0x10]
shr r8, 0x20
pinsrd xmm10, r8d, 1
inc rax
movdqa xmm9, xmm8
pinsrd xmm9, eax, 0
shr rax, 0x20
pinsrd xmm9, eax, 1
movdqa xmm0, xmmword [str.expand_32_byte_k]
mov eax, 6
movdqa xmm1, xmm0
movdqa xmm2, xmm0
movdqa xmm3, xmm0
movdqa xmm12, xmm4
movdqa xmm13, xmm4
movdqa xmm14, xmm5
movdqa xmm15, xmm5
movdqa xmm6, xmm5
movdqa xmm7, xmm4
paddd xmm0, xmm5
paddd xmm1, xmm14
paddd xmm2, xmm15
paddd xmm3, xmm6
pxor xmm8, xmm0
pxor xmm9, xmm1
pxor xmm10, xmm2
pxor xmm11, xmm3
pshuflw xmm8, xmm8, 0xb1
pshufhw xmm8, xmm8, 0xb1
movdqa xmmword [rsp + 0x10], xmm8
pshuflw xmm9, xmm9, 0xb1
pshufhw xmm9, xmm9, 0xb1
pshuflw xmm10, xmm10, 0xb1
pshufhw xmm10, xmm10, 0xb1
pshuflw xmm11, xmm11, 0xb1
pshufhw xmm11, xmm11, 0xb1
paddd xmm7, xmm8
paddd xmm13, xmm9
paddd xmm12, xmm10
movdqa xmmword [rsp + 0x30], xmm12
paddd xmm4, xmm11
movdqa xmmword [rsp], xmm4
pxor xmm5, xmm7
pxor xmm14, xmm13
pxor xmm15, xmm12
pxor xmm6, xmm4
movdqa xmm4, xmm5
psrld xmm4, 0x14
pslld xmm5, 0xc
por xmm5, xmm4
movdqa xmm4, xmm14
psrld xmm4, 0x14
pslld xmm14, 0xc
por xmm14, xmm4
movdqa xmm4, xmm15
psrld xmm4, 0x14
pslld xmm15, 0xc
por xmm15, xmm4
movdqa xmm4, xmm6
psrld xmm4, 0x14
pslld xmm6, 0xc
por xmm6, xmm4
paddd xmm0, xmm5
paddd xmm1, xmm14
paddd xmm2, xmm15
paddd xmm3, xmm6
movdqa xmm4, xmm0
movdqa xmm12, xmmword [0x1401058c0]
pshufb xmm4, xmm12
movdqa xmm8, xmmword [rsp + 0x10]
pshufb xmm8, xmm12
pxor xmm8, xmm4
movdqa xmmword [rsp + 0x10], xmm8
movdqa xmm4, xmm1
pshufb xmm4, xmm12
pshufb xmm9, xmm12
pxor xmm9, xmm4
movdqa xmm4, xmm2
pshufb xmm4, xmm12
pshufb xmm10, xmm12
pxor xmm10, xmm4
movdqa xmm4, xmm3
pshufb xmm4, xmm12
pshufb xmm11, xmm12
pxor xmm11, xmm4
paddd xmm7, xmm8
paddd xmm13, xmm9
movdqa xmm8, xmmword [rsp + 0x30]
paddd xmm8, xmm10
movdqa xmm4, xmmword [rsp]
paddd xmm4, xmm11
pxor xmm5, xmm7
pxor xmm14, xmm13
pxor xmm15, xmm8
movdqa xmm12, xmm8
pxor xmm6, xmm4
movdqa xmm8, xmm4
movdqa xmm4, xmm5
psrld xmm4, 0x19
pslld xmm5, 7
por xmm5, xmm4
movdqa xmm4, xmm14
psrld xmm4, 0x19
pslld xmm14, 7
por xmm14, xmm4
movdqa xmm4, xmm15
psrld xmm4, 0x19
pslld xmm15, 7
por xmm15, xmm4
movdqa xmm4, xmm6
psrld xmm4, 0x19
pslld xmm6, 7
por xmm6, xmm4
pshufd xmm5, xmm5, 0x39
pshufd xmm14, xmm14, 0x39
pshufd xmm15, xmm15, 0x39
pshufd xmm6, xmm6, 0x39
pshufd xmm4, xmm7, 0x4e
movdqa xmmword [rsp + 0x20], xmm4
pshufd xmm13, xmm13, 0x4e
pshufd xmm4, xmm12, 0x4e
movdqa xmmword [rsp + 0x30], xmm4
pshufd xmm4, xmm8, 0x4e
movdqa xmmword [rsp], xmm4
paddd xmm0, xmm5
paddd xmm1, xmm14
paddd xmm2, xmm15
paddd xmm3, xmm6
pshuflw xmm4, xmm0, 0xb1
pshufhw xmm4, xmm4, 0xb1
movdqa xmm12, xmmword [0x1401058d0]
movdqa xmm8, xmmword [rsp + 0x10]
pshufb xmm8, xmm12
pxor xmm8, xmm4
pshuflw xmm4, xmm1, 0xb1
pshufhw xmm4, xmm4, 0xb1
pshufb xmm9, xmm12
pxor xmm9, xmm4
pshuflw xmm4, xmm2, 0xb1
pshufhw xmm4, xmm4, 0xb1
pshufb xmm10, xmm12
pxor xmm10, xmm4
pshuflw xmm4, xmm3, 0xb1
pshufhw xmm4, xmm4, 0xb1
pshufb xmm11, xmm12
pxor xmm11, xmm4
movdqa xmm7, xmmword [rsp + 0x20]
paddd xmm7, xmm8
paddd xmm13, xmm9
movdqa xmm12, xmmword [rsp + 0x30]
paddd xmm12, xmm10
movdqa xmm4, xmmword [rsp]
paddd xmm4, xmm11
movdqa xmmword [rsp], xmm4
pxor xmm5, xmm7
pxor xmm14, xmm13
pxor xmm15, xmm12
pxor xmm6, xmm4
movdqa xmm4, xmm5
psrld xmm4, 0x14
pslld xmm5, 0xc
por xmm5, xmm4
movdqa xmm4, xmm14
psrld xmm4, 0x14
pslld xmm14, 0xc
por xmm14, xmm4
movdqa xmm4, xmm15
psrld xmm4, 0x14
pslld xmm15, 0xc
por xmm15, xmm4
movdqa xmm4, xmm6
psrld xmm4, 0x14
pslld xmm6, 0xc
por xmm6, xmm4
paddd xmm0, xmm5
paddd xmm1, xmm14
paddd xmm2, xmm15
paddd xmm3, xmm6
pxor xmm8, xmm0
pxor xmm9, xmm1
pxor xmm10, xmm2
pxor xmm11, xmm3
movdqa xmm4, xmmword [0x1401058c0]
pshufb xmm8, xmm4
movdqa xmmword [rsp + 0x10], xmm8
pshufb xmm9, xmm4
pshufb xmm10, xmm4
pshufb xmm11, xmm4
paddd xmm7, xmm8
paddd xmm13, xmm9
paddd xmm12, xmm10
movdqa xmm8, xmmword [rsp]
paddd xmm8, xmm11
pxor xmm5, xmm7
pxor xmm14, xmm13
pxor xmm15, xmm12
pxor xmm6, xmm8
movdqa xmm4, xmm5
psrld xmm4, 0x19
pslld xmm5, 7
por xmm5, xmm4
movdqa xmm4, xmm14
psrld xmm4, 0x19
pslld xmm14, 7
por xmm14, xmm4
movdqa xmm4, xmm15
psrld xmm4, 0x19
pslld xmm15, 7
por xmm15, xmm4
movdqa xmm4, xmm6
psrld xmm4, 0x19
pslld xmm6, 7
por xmm6, xmm4
pshufd xmm5, xmm5, 0x93
pshufd xmm14, xmm14, 0x93
pshufd xmm15, xmm15, 0x93
pshufd xmm6, xmm6, 0x93
pshufd xmm7, xmm7, 0x4e
pshufd xmm13, xmm13, 0x4e
pshufd xmm12, xmm12, 0x4e
pshufd xmm4, xmm8, 0x4e
pshufd xmm8, xmmword [rsp + 0x10], 0x39
pshufd xmm9, xmm9, 0x39
pshufd xmm10, xmm10, 0x39
pshufd xmm11, xmm11, 0x39
dec eax
jne 0x140040181
mov rax, qword [rcx + 0x20]
lea r8, [rax + 1]
movdqa xmmword [rsp + 0x30], xmm8
movaps xmm8, xmmword [rcx + 0x20]
movaps xmmword [rsp + 0x10], xmm8
movdqa xmm8, xmmword [rsp + 0x10]
pinsrd xmm8, r8d, 0
shr r8, 0x20
pinsrd xmm8, r8d, 1
movdqa xmmword [rsp + 0x150], xmm8
lea r8, [rax + 2]
movdqa xmm8, xmmword [rsp + 0x10]
pinsrd xmm8, r8d, 0
shr r8, 0x20
pinsrd xmm8, r8d, 1
movdqa xmmword [rsp + 0x20], xmm8
lea r8, [rax + 3]
movaps xmm8, xmmword [rsp + 0x10]
movaps xmmword [rsp], xmm8
movdqa xmm8, xmmword [rsp]
pinsrd xmm8, r8d, 0
movdqa xmmword [rsp], xmm8
shr r8, 0x20
movdqa xmm8, xmmword [rsp]
pinsrd xmm8, r8d, 1
movdqa xmmword [rsp], xmm8
movaps xmm8, xmmword [rsp + 0x20]
movaps xmmword [rsp + 0x160], xmm8
movaps xmm8, xmmword [rsp]
movaps xmmword [rsp + 0x170], xmm8
add rax, 4
movaps xmm8, xmmword [rsp + 0x10]
movaps xmmword [rsp + 0x140], xmm8
movdqa xmm8, xmmword [rsp + 0x10]
pinsrd xmm8, eax, 0
shr rax, 0x20
pinsrd xmm8, eax, 1
movdqa xmmword [rsp + 0x20], xmm8
movaps xmm8, xmmword [rcx]
movaps xmmword [rsp], xmm8
movaps xmm8, xmmword [rcx + 0x10]
movaps xmmword [rsp + 0x10], xmm8
movaps xmm8, xmmword [rsp + 0x20]
movaps xmmword [rcx + 0x20], xmm8
movdqa xmmword [rsp + 0x40], xmm0
movdqa xmmword [rsp + 0x50], xmm1
movdqa xmmword [rsp + 0x60], xmm2
movdqa xmmword [rsp + 0x70], xmm3
movdqa xmmword [rsp + 0x80], xmm5
movdqa xmm5, xmmword [rsp + 0x10]
movdqa xmmword [rsp + 0x90], xmm14
movdqa xmmword [rsp + 0xa0], xmm15
movdqa xmmword [rsp + 0xb0], xmm6
movdqa xmm6, xmmword [rsp]
movdqa xmmword [rsp + 0xc0], xmm7
movdqa xmmword [rsp + 0xd0], xmm13
movdqa xmmword [rsp + 0xe0], xmm12
movdqa xmmword [rsp + 0xf0], xmm4
movaps xmm0, xmmword [rsp + 0x30]
movaps xmmword [rsp + 0x100], xmm0
movdqa xmmword [rsp + 0x110], xmm9
movdqa xmmword [rsp + 0x120], xmm10
movdqa xmmword [rsp + 0x130], xmm11
xor eax, eax
movdqa xmm0, xmmword [str.expand_32_byte_k]
movdqa xmm1, xmmword [rsp + rax + 0x100]
movdqa xmm2, xmmword [rsp + rax + 0x40]
paddd xmm2, xmm0
movdqa xmm3, xmmword [rsp + rax + 0x80]
paddd xmm3, xmm6
movdqa xmm4, xmmword [rsp + rax + 0xc0]
paddd xmm4, xmm5
paddd xmm1, xmmword [rsp + rax + 0x140]
movdqu xmmword [rdx + rax*4], xmm2
movdqu xmmword [rdx + rax*4 + 0x10], xmm3
movdqu xmmword [rdx + rax*4 + 0x20], xmm4
movdqu xmmword [rdx + rax*4 + 0x30], xmm1
add rax, 0x10
cmp rax, 0x40
jne 0x140040768
movaps xmm6, xmmword [rsp + 0x180]
movaps xmm7, xmmword [rsp + 0x190]
movaps xmm8, xmmword [rsp + 0x1a0]
movaps xmm9, xmmword [rsp + 0x1b0]
movaps xmm10, xmmword [rsp + 0x1c0]
movaps xmm11, xmmword [rsp + 0x1d0]
movaps xmm12, xmmword [rsp + 0x1e0]
movaps xmm13, xmmword [rsp + 0x1f0]
movaps xmm14, xmmword [rsp + 0x200]
movaps xmm15, xmmword [rsp + 0x210]
add rsp, 0x228
ret
sub rsp, 0x258
movaps xmmword [rsp + 0x240], xmm15
movaps xmmword [rsp + 0x230], xmm14
movaps xmmword [rsp + 0x220], xmm13
movaps xmmword [rsp + 0x210], xmm12
movaps xmmword [rsp + 0x200], xmm11
movaps xmmword [rsp + 0x1f0], xmm10
movaps xmmword [rsp + 0x1e0], xmm9
movaps xmmword [rsp + 0x1d0], xmm8
movdqa xmmword [rsp + 0x1c0], xmm7
movaps xmmword [rsp + 0x1b0], xmm6
movdqa xmm6, xmmword [rcx]
movdqa xmm15, xmmword [rcx + 0x10]
movdqa xmm10, xmmword [rcx + 0x20]
mov rax, qword [rcx + 0x20]
lea r8, [rax + 3]
movd xmm4, r8d
shr r8, 0x20
movd xmm0, r8d
movdqa xmm1, xmm10
pslldq xmm1, 8
shufps xmm1, xmm10, 0xe8
por xmm0, xmm1
movdqa xmm2, xmm0
pslldq xmm2, 8
shufps xmm2, xmm0, 0xe8
por xmm4, xmm2
lea r8, [rax + 2]
movd xmm5, r8d
shr r8, 0x20
movd xmm0, r8d
por xmm0, xmm1
movdqa xmm2, xmm0
pslldq xmm2, 8
shufps xmm2, xmm0, 0xe8
por xmm5, xmm2
inc rax
movd xmm11, eax
shr rax, 0x20
movd xmm0, eax
por xmm0, xmm1
movdqa xmm1, xmm0
pslldq xmm1, 8
shufps xmm1, xmm0, 0xe8
por xmm11, xmm1
movdqa xmm0, xmmword [str.expand_32_byte_k]
mov eax, 6
movdqa xmm1, xmm0
movdqa xmm2, xmm0
movdqa xmm3, xmm0
movdqa xmm8, xmm15
movdqa xmm9, xmm15
movdqa xmm12, xmm6
movdqa xmm13, xmm6
movdqa xmm14, xmm6
movdqa xmmword [rsp], xmm15
paddd xmm0, xmm6
paddd xmm1, xmm12
paddd xmm2, xmm13
paddd xmm3, xmm14
pxor xmm10, xmm0
pxor xmm11, xmm1
pxor xmm5, xmm2
pxor xmm4, xmm3
pshuflw xmm10, xmm10, 0xb1
pshufhw xmm10, xmm10, 0xb1
pshuflw xmm11, xmm11, 0xb1
pshufhw xmm11, xmm11, 0xb1
pshuflw xmm5, xmm5, 0xb1
pshufhw xmm5, xmm5, 0xb1
pshuflw xmm4, xmm4, 0xb1
pshufhw xmm4, xmm4, 0xb1
paddd xmm15, xmm10
paddd xmm9, xmm11
paddd xmm8, xmm5
movdqa xmmword [rsp + 0x10], xmm8
movdqa xmm7, xmmword [rsp]
paddd xmm7, xmm4
movdqa xmmword [rsp], xmm7
pxor xmm6, xmm15
pxor xmm12, xmm9
pxor xmm13, xmm8
pxor xmm14, xmm7
movdqa xmm7, xmm6
psrld xmm7, 0x14
pslld xmm6, 0xc
por xmm6, xmm7
movdqa xmm7, xmm12
psrld xmm7, 0x14
pslld xmm12, 0xc
por xmm12, xmm7
movdqa xmm7, xmm13
psrld xmm7, 0x14
pslld xmm13, 0xc
por xmm13, xmm7
movdqa xmm7, xmm14
psrld xmm7, 0x14
pslld xmm14, 0xc
por xmm14, xmm7
paddd xmm0, xmm6
paddd xmm1, xmm12
paddd xmm2, xmm13
paddd xmm3, xmm14
movdqa xmm7, xmm0
movdqa xmm8, xmmword [0x1401058c0]
pshufb xmm7, xmm8
pshufb xmm10, xmm8
pxor xmm10, xmm7
movdqa xmm7, xmm1
pshufb xmm7, xmm8
pshufb xmm11, xmm8
pxor xmm11, xmm7
movdqa xmm7, xmm2
pshufb xmm7, xmm8
pshufb xmm5, xmm8
pxor xmm5, xmm7
movdqa xmm7, xmm3
pshufb xmm7, xmm8
pshufb xmm4, xmm8
pxor xmm4, xmm7
paddd xmm15, xmm10
paddd xmm9, xmm11
movdqa xmm8, xmmword [rsp + 0x10]
paddd xmm8, xmm5
movdqa xmmword [rsp + 0x10], xmm8
movdqa xmm7, xmmword [rsp]
paddd xmm7, xmm4
pxor xmm6, xmm15
pxor xmm12, xmm9
pxor xmm13, xmm8
pxor xmm14, xmm7
movdqa xmm8, xmm7
movdqa xmm7, xmm6
psrld xmm7, 0x19
pslld xmm6, 7
por xmm6, xmm7
movdqa xmm7, xmm12
psrld xmm7, 0x19
pslld xmm12, 7
por xmm12, xmm7
movdqa xmm7, xmm13
psrld xmm7, 0x19
pslld xmm13, 7
por xmm13, xmm7
movdqa xmm7, xmm14
psrld xmm7, 0x19
pslld xmm14, 7
por xmm14, xmm7
pshufd xmm7, xmm6, 0x39
pshufd xmm12, xmm12, 0x39
pshufd xmm13, xmm13, 0x39
pshufd xmm14, xmm14, 0x39
pshufd xmm15, xmm15, 0x4e
pshufd xmm9, xmm9, 0x4e
pshufd xmm6, xmmword [rsp + 0x10], 0x4e
movdqa xmmword [rsp + 0x10], xmm6
pshufd xmm6, xmm8, 0x4e
movdqa xmmword [rsp], xmm6
paddd xmm0, xmm7
paddd xmm1, xmm12
paddd xmm2, xmm13
paddd xmm3, xmm14
pshuflw xmm6, xmm0, 0xb1
pshufhw xmm6, xmm6, 0xb1
movdqa xmm8, xmmword [0x1401058d0]
pshufb xmm10, xmm8
pxor xmm10, xmm6
pshuflw xmm6, xmm1, 0xb1
pshufhw xmm6, xmm6, 0xb1
pshufb xmm11, xmm8
pxor xmm11, xmm6
pshuflw xmm6, xmm2, 0xb1
pshufhw xmm6, xmm6, 0xb1
pshufb xmm5, xmm8
pxor xmm5, xmm6
pshuflw xmm6, xmm3, 0xb1
pshufhw xmm6, xmm6, 0xb1
pshufb xmm4, xmm8
pxor xmm4, xmm6
paddd xmm15, xmm10
paddd xmm9, xmm11
movdqa xmm8, xmmword [rsp + 0x10]
paddd xmm8, xmm5
movdqa xmm6, xmmword [rsp]
paddd xmm6, xmm4
movdqa xmmword [rsp], xmm6
pxor xmm7, xmm15
pxor xmm12, xmm9
pxor xmm13, xmm8
pxor xmm14, xmm6
movdqa xmm6, xmm7
psrld xmm6, 0x14
pslld xmm7, 0xc
por xmm7, xmm6
movdqa xmm6, xmm12
psrld xmm6, 0x14
pslld xmm12, 0xc
por xmm12, xmm6
movdqa xmm6, xmm13
psrld xmm6, 0x14
pslld xmm13, 0xc
por xmm13, xmm6
movdqa xmm6, xmm14
psrld xmm6, 0x14
pslld xmm14, 0xc
por xmm14, xmm6
paddd xmm0, xmm7
paddd xmm1, xmm12
paddd xmm2, xmm13
paddd xmm3, xmm14
pxor xmm10, xmm0
pxor xmm11, xmm1
pxor xmm5, xmm2
pxor xmm4, xmm3
movdqa xmm6, xmmword [0x1401058c0]
pshufb xmm10, xmm6
pshufb xmm11, xmm6
pshufb xmm5, xmm6
pshufb xmm4, xmm6
paddd xmm15, xmm10
paddd xmm9, xmm11
paddd xmm8, xmm5
movdqa xmm6, xmmword [rsp]
paddd xmm6, xmm4
movdqa xmmword [rsp], xmm6
pxor xmm7, xmm15
pxor xmm12, xmm9
pxor xmm13, xmm8
pxor xmm14, xmm6
movdqa xmm6, xmm7
psrld xmm6, 0x19
pslld xmm7, 7
por xmm7, xmm6
movdqa xmm6, xmm12
psrld xmm6, 0x19
pslld xmm12, 7
por xmm12, xmm6
movdqa xmm6, xmm13
psrld xmm6, 0x19
pslld xmm13, 7
por xmm13, xmm6
movdqa xmm6, xmm14
psrld xmm6, 0x19
pslld xmm14, 7
por xmm14, xmm6
pshufd xmm6, xmm7, 0x93
pshufd xmm12, xmm12, 0x93
pshufd xmm13, xmm13, 0x93
pshufd xmm14, xmm14, 0x93
pshufd xmm15, xmm15, 0x4e
pshufd xmm9, xmm9, 0x4e
pshufd xmm8, xmm8, 0x4e
pshufd xmm7, xmmword [rsp], 0x4e
movdqa xmmword [rsp], xmm7
pshufd xmm10, xmm10, 0x39
pshufd xmm11, xmm11, 0x39
pshufd xmm5, xmm5, 0x39
pshufd xmm4, xmm4, 0x39
dec eax
jne 0x14004094e
mov rax, qword [rcx + 0x20]
movaps xmmword [rsp + 0x60], xmm10
movaps xmm10, xmmword [rcx + 0x20]
movaps xmmword [rsp + 0x10], xmm10
movdqa xmm7, xmmword [rsp + 0x10]
pslldq xmm7, 8
shufps xmm7, xmmword [rsp + 0x10], 0xe8
movaps xmmword [rsp + 0x20], xmm7
lea r8, [rax + 1]
mov r9, r8
shr r9, 0x20
movd xmm10, r9d
por xmm10, xmm7
movdqa xmm7, xmm10
pslldq xmm7, 8
shufps xmm7, xmm10, 0xe8
movaps xmm10, xmm7
movd xmm7, r8d
por xmm7, xmm10
movdqa xmmword [rsp + 0x50], xmm7
lea r8, [rax + 2]
mov r9, r8
shr r9, 0x20
movd xmm10, r9d
por xmm10, xmmword [rsp + 0x20]
movdqa xmm7, xmm10
pslldq xmm7, 8
shufps xmm7, xmm10, 0xe8
movaps xmm10, xmm7
movd xmm7, r8d
por xmm7, xmm10
movdqa xmmword [rsp + 0x40], xmm7
lea r8, [rax + 3]
mov r9, r8
shr r9, 0x20
movd xmm10, r9d
por xmm10, xmmword [rsp + 0x20]
movdqa xmm7, xmm10
pslldq xmm7, 8
shufps xmm7, xmm10, 0xe8
movaps xmm10, xmm7
movd xmm7, r8d
por xmm7, xmm10
movdqa xmmword [rsp + 0x30], xmm7
add rax, 4
mov r8, rax
shr r8, 0x20
movd xmm7, r8d
por xmm7, xmmword [rsp + 0x20]
movdqa xmm10, xmm7
pslldq xmm10, 8
shufps xmm10, xmm7, 0xe8
movaps xmm7, xmm10
movd xmm10, eax
por xmm10, xmm7
movdqa xmmword [rsp + 0x70], xmm0
movdqa xmmword [rsp + 0x80], xmm1
movdqa xmmword [rsp + 0x90], xmm2
movdqa xmmword [rsp + 0xa0], xmm3
movdqa xmmword [rsp + 0xb0], xmm6
movdqa xmmword [rsp + 0xc0], xmm12
movdqa xmmword [rsp + 0xd0], xmm13
movdqa xmmword [rsp + 0xe0], xmm14
movdqa xmmword [rsp + 0xf0], xmm15
movdqa xmmword [rsp + 0x100], xmm9
movdqa xmmword [rsp + 0x110], xmm8
movaps xmm0, xmmword [rsp]
movaps xmmword [rsp + 0x120], xmm0
movaps xmm0, xmmword [rsp + 0x60]
movaps xmmword [rsp + 0x130], xmm0
movdqa xmmword [rsp + 0x140], xmm11
movdqa xmmword [rsp + 0x150], xmm5
movdqa xmmword [rsp + 0x160], xmm4
movaps xmm0, xmmword [rsp + 0x10]
movaps xmmword [rsp + 0x170], xmm0
movaps xmm0, xmmword [rsp + 0x50]
movaps xmmword [rsp + 0x180], xmm0
movaps xmm0, xmmword [rsp + 0x40]
movaps xmmword [rsp + 0x190], xmm0
movdqa xmm0, xmmword [rcx]
movaps xmm1, xmmword [rsp + 0x30]
movaps xmmword [rsp + 0x1a0], xmm1
movdqa xmm1, xmmword [rcx + 0x10]
movdqa xmmword [rcx + 0x20], xmm10
xor eax, eax
movdqa xmm2, xmmword [str.expand_32_byte_k]
movdqa xmm3, xmmword [rsp + rax + 0x130]
movdqa xmm4, xmmword [rsp + rax + 0x70]
paddd xmm4, xmm2
movdqa xmm5, xmmword [rsp + rax + 0xb0]
paddd xmm5, xmm0
movdqa xmm6, xmmword [rsp + rax + 0xf0]
paddd xmm6, xmm1
paddd xmm3, xmmword [rsp + rax + 0x170]
movdqu xmmword [rdx + rax*4], xmm4
movdqu xmmword [rdx + rax*4 + 0x10], xmm5
movdqu xmmword [rdx + rax*4 + 0x20], xmm6
movdqu xmmword [rdx + rax*4 + 0x30], xmm3
add rax, 0x10
cmp rax, 0x40
jne 0x140040f62
movaps xmm6, xmmword [rsp + 0x1b0]
movaps xmm7, xmmword [rsp + 0x1c0]
movaps xmm8, xmmword [rsp + 0x1d0]
movaps xmm9, xmmword [rsp + 0x1e0]
movaps xmm10, xmmword [rsp + 0x1f0]
movaps xmm11, xmmword [rsp + 0x200]
movaps xmm12, xmmword [rsp + 0x210]
movaps xmm13, xmmword [rsp + 0x220]
movaps xmm14, xmmword [rsp + 0x230]
movaps xmm15, xmmword [rsp + 0x240]
add rsp, 0x258
ret