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

Disassembly:
push r14
push rsi
push rdi
push rbx
sub rsp, 0x168
movaps xmmword [rsp + 0x150], xmm15
movaps xmmword [rsp + 0x140], xmm14
movaps xmmword [rsp + 0x130], xmm13
movaps xmmword [rsp + 0x120], xmm12
movaps xmmword [rsp + 0x110], xmm11
movaps xmmword [rsp + 0x100], xmm10
movaps xmmword [rsp + 0xf0], xmm9
movaps xmmword [rsp + 0xe0], xmm8
movaps xmmword [rsp + 0xd0], xmm7
movaps xmmword [rsp + 0xc0], xmm6
mov rsi, qword [0x1800d9a80]
mov rax, qword [rsi]
test rax, rax
je 0x180015a5d
and eax, 0x8000
xor r9d, r9d
or rax, r9
je 0x180015a83
movaps xmm6, xmmword [rsp + 0xc0]
movaps xmm7, xmmword [rsp + 0xd0]
movaps xmm8, xmmword [rsp + 0xe0]
movaps xmm9, xmmword [rsp + 0xf0]
movaps xmm10, xmmword [rsp + 0x100]
movaps xmm11, xmmword [rsp + 0x110]
movaps xmm12, xmmword [rsp + 0x120]
movaps xmm13, xmmword [rsp + 0x130]
movaps xmm14, xmmword [rsp + 0x140]
movaps xmm15, xmmword [rsp + 0x150]
add rsp, 0x168
pop rbx
pop rdi
pop rsi
pop r14
jmp 0x180016440
mov rdi, r8
mov r14, rcx
mov ebx, edx
call fcn.180055220
mov edx, ebx
mov rcx, r14
mov r8, rdi
and eax, 0x8000
xor r9d, r9d
or rax, r9
jne 0x1800159f4
mov rax, qword [rsi]
test rax, rax
je 0x180015b05
and eax, 0x4000
xor r9d, r9d
or rax, r9
je 0x180015b2b
movaps xmm6, xmmword [rsp + 0xc0]
movaps xmm7, xmmword [rsp + 0xd0]
movaps xmm8, xmmword [rsp + 0xe0]
movaps xmm9, xmmword [rsp + 0xf0]
movaps xmm10, xmmword [rsp + 0x100]
movaps xmm11, xmmword [rsp + 0x110]
movaps xmm12, xmmword [rsp + 0x120]
movaps xmm13, xmmword [rsp + 0x130]
movaps xmm14, xmmword [rsp + 0x140]
movaps xmm15, xmmword [rsp + 0x150]
add rsp, 0x168
pop rbx
pop rdi
pop rsi
pop r14
jmp 0x180016850
mov rdi, r8
mov r14, rcx
mov ebx, edx
call fcn.180055220
mov edx, ebx
mov rcx, r14
mov r8, rdi
and eax, 0x4000
xor r9d, r9d
or rax, r9
jne 0x180015a9c
mov rax, qword [rsi]
test rax, rax
je 0x180015bad
and eax, 0x400
xor r9d, r9d
or rax, r9
je 0x180015bd3
movaps xmm6, xmmword [rsp + 0xc0]
movaps xmm7, xmmword [rsp + 0xd0]
movaps xmm8, xmmword [rsp + 0xe0]
movaps xmm9, xmmword [rsp + 0xf0]
movaps xmm10, xmmword [rsp + 0x100]
movaps xmm11, xmmword [rsp + 0x110]
movaps xmm12, xmmword [rsp + 0x120]
movaps xmm13, xmmword [rsp + 0x130]
movaps xmm14, xmmword [rsp + 0x140]
movaps xmm15, xmmword [rsp + 0x150]
add rsp, 0x168
pop rbx
pop rdi
pop rsi
pop r14
jmp 0x180016f40
mov rdi, r8
mov r14, rcx
mov ebx, edx
call fcn.180055220
mov edx, ebx
mov rcx, r14
mov r8, rdi
and eax, 0x400
xor r9d, r9d
or rax, r9
jne 0x180015b44
mov rax, qword [rsi]
test rax, rax
je 0x180015c55
and eax, 0x200
xor r9d, r9d
or rax, r9
je 0x180015c7b
movaps xmm6, xmmword [rsp + 0xc0]
movaps xmm7, xmmword [rsp + 0xd0]
movaps xmm8, xmmword [rsp + 0xe0]
movaps xmm9, xmmword [rsp + 0xf0]
movaps xmm10, xmmword [rsp + 0x100]
movaps xmm11, xmmword [rsp + 0x110]
movaps xmm12, xmmword [rsp + 0x120]
movaps xmm13, xmmword [rsp + 0x130]
movaps xmm14, xmmword [rsp + 0x140]
movaps xmm15, xmmword [rsp + 0x150]
add rsp, 0x168
pop rbx
pop rdi
pop rsi
pop r14
jmp 0x1800176d0
mov rsi, r8
mov rbx, rcx
mov edi, edx
call fcn.180055220
mov edx, edi
mov rcx, rbx
mov r8, rsi
and eax, 0x200
xor r9d, r9d
or rax, r9
jne 0x180015bec
movdqa xmm2, xmmword [rcx]
movdqa xmm14, xmmword [rcx + 0x10]
movdqa xmm4, xmmword [rcx + 0x20]
mov rax, qword [rcx + 0x20]
lea r9, [rax + 1]
movd xmm5, r9d
shr r9, 0x20
movd xmm0, r9d
movdqa xmm12, xmm4
pslldq xmm12, 8
shufps xmm12, xmm4, 0xe8
por xmm0, xmm12
movdqa xmm1, xmm0
pslldq xmm1, 8
shufps xmm1, xmm0, 0xe8
por xmm5, xmm1
lea r9, [rax + 2]
movd xmm6, r9d
shr r9, 0x20
movd xmm0, r9d
pslldq xmm0, 8
shufps xmm0, xmm4, 0xe8
por xmm6, xmm0
lea r9, [rax + 3]
movd xmm7, r9d
shr r9, 0x20
movd xmm0, r9d
pslldq xmm0, 8
shufps xmm0, xmm4, 0xe8
por xmm7, xmm0
test edx, edx
movdqa xmmword [rsp + 0xb0], xmm2
movaps xmmword [rsp + 0xa0], xmm4
movdqa xmmword [rsp + 0x90], xmm5
movdqa xmmword [rsp + 0x80], xmm6
movdqa xmmword [rsp + 0x70], xmm7
je 0x180016280
movaps xmmword [rsp + 0x50], xmm12
movdqa xmm10, xmmword [str.expand_32_byte_k]
movdqa xmm9, xmm10
movdqa xmm8, xmm10
movdqa xmmword [rsp + 0x30], xmm10
movdqa xmm1, xmm2
movdqa xmm15, xmm2
movdqa xmm13, xmm2
movdqa xmm11, xmm2
movdqa xmm3, xmm14
movdqa xmm0, xmm14
movdqa xmmword [rsp + 0x20], xmm14
movdqa xmmword [rsp + 0x60], xmm14
movdqa xmmword [rsp + 0x40], xmm14
movdqa xmm2, xmm7
nop dword [rax + rax]
paddd xmm10, xmm1
paddd xmm9, xmm15
paddd xmm8, xmm13
movdqa xmm7, xmmword [rsp + 0x30]
paddd xmm7, xmm11
movdqa xmmword [rsp + 0x30], xmm7
pxor xmm4, xmm10
pxor xmm5, xmm9
pxor xmm6, xmm8
pxor xmm2, xmm7
pshuflw xmm4, xmm4, 0xb1
pshufhw xmm7, xmm4, 0xb1
pshuflw xmm4, xmm5, 0xb1
pshufhw xmm5, xmm4, 0xb1
pshuflw xmm4, xmm6, 0xb1
pshufhw xmm12, xmm4, 0xb1
pshuflw xmm2, xmm2, 0xb1
pshufhw xmm14, xmm2, 0xb1
paddd xmm3, xmm7
paddd xmm0, xmm5
movdqa xmm2, xmmword [rsp + 0x20]
paddd xmm2, xmm12
movdqa xmm6, xmm2
movdqa xmmword [rsp + 0x20], xmm2
movdqa xmm4, xmmword [rsp + 0x40]
paddd xmm4, xmm14
pxor xmm1, xmm3
movdqa xmm2, xmm1
psrld xmm2, 0x14
pslld xmm1, 0xc
por xmm1, xmm2
pxor xmm15, xmm0
movdqa xmm2, xmm15
psrld xmm2, 0x14
pslld xmm15, 0xc
por xmm15, xmm2
pxor xmm13, xmm6
movdqa xmm2, xmm13
psrld xmm2, 0x14
pslld xmm13, 0xc
por xmm13, xmm2
pxor xmm11, xmm4
movdqa xmm2, xmm11
psrld xmm2, 0x14
pslld xmm11, 0xc
por xmm11, xmm2
paddd xmm10, xmm1
paddd xmm9, xmm15
paddd xmm8, xmm13
movdqa xmm6, xmmword [rsp + 0x30]
paddd xmm6, xmm11
movdqa xmmword [rsp + 0x30], xmm6
pxor xmm7, xmm10
movdqa xmm2, xmm7
psrld xmm2, 0x18
pslld xmm7, 8
por xmm7, xmm2
pxor xmm5, xmm9
movdqa xmm2, xmm5
psrld xmm2, 0x18
pslld xmm5, 8
por xmm5, xmm2
pxor xmm12, xmm8
movdqa xmm2, xmm12
psrld xmm2, 0x18
pslld xmm12, 8
por xmm12, xmm2
pxor xmm14, xmm6
movdqa xmm2, xmm14
psrld xmm2, 0x18
pslld xmm14, 8
por xmm14, xmm2
paddd xmm3, xmm7
paddd xmm0, xmm5
movdqa xmm2, xmmword [rsp + 0x20]
paddd xmm2, xmm12
movdqa xmmword [rsp + 0x20], xmm2
paddd xmm4, xmm14
pxor xmm1, xmm3
pxor xmm15, xmm0
pxor xmm13, xmm2
pxor xmm11, xmm4
movdqa xmm2, xmm1
psrld xmm2, 0x19
pslld xmm1, 7
por xmm1, xmm2
movdqa xmm2, xmm15
psrld xmm2, 0x19
pslld xmm15, 7
por xmm15, xmm2
movdqa xmm2, xmm13
psrld xmm2, 0x19
pslld xmm13, 7
por xmm13, xmm2
movdqa xmm2, xmm11
psrld xmm2, 0x19
pslld xmm11, 7
por xmm11, xmm2
pshufd xmm1, xmm1, 0x39
pshufd xmm2, xmm15, 0x39
pshufd xmm6, xmm13, 0x39
pshufd xmm11, xmm11, 0x39
pshufd xmm3, xmm3, 0x4e
pshufd xmm0, xmm0, 0x4e
pshufd xmm13, xmmword [rsp + 0x20], 0x4e
movdqa xmmword [rsp + 0x20], xmm13
pshufd xmm4, xmm4, 0x4e
pshufd xmm7, xmm7, 0x93
pshufd xmm13, xmm5, 0x93
pshufd xmm5, xmm12, 0x93
movdqa xmmword [rsp + 0x40], xmm5
pshufd xmm14, xmm14, 0x93
paddd xmm10, xmm1
paddd xmm9, xmm2
paddd xmm8, xmm6
movdqa xmm15, xmmword [rsp + 0x30]
paddd xmm15, xmm11
pshuflw xmm5, xmm10, 0xb1
pshufhw xmm12, xmm5, 0xb1
pshuflw xmm5, xmm7, 0xb1
pshufhw xmm5, xmm5, 0xb1
pxor xmm5, xmm12
pshuflw xmm7, xmm9, 0xb1
pshufhw xmm7, xmm7, 0xb1
pshuflw xmm12, xmm13, 0xb1
pshufhw xmm12, xmm12, 0xb1
pxor xmm12, xmm7
pshuflw xmm7, xmm8, 0xb1
pshufhw xmm13, xmm7, 0xb1
pshuflw xmm7, xmmword [rsp + 0x40], 0xb1
pshufhw xmm7, xmm7, 0xb1
pxor xmm7, xmm13
pshuflw xmm13, xmm15, 0xb1
pshufhw xmm13, xmm13, 0xb1
pshuflw xmm14, xmm14, 0xb1
pshufhw xmm14, xmm14, 0xb1
pxor xmm14, xmm13
paddd xmm3, xmm5
paddd xmm0, xmm12
movdqa xmm13, xmmword [rsp + 0x20]
paddd xmm13, xmm7
movdqa xmmword [rsp + 0x20], xmm13
paddd xmm4, xmm14
pxor xmm1, xmm3
pxor xmm2, xmm0
pxor xmm6, xmm13
pxor xmm11, xmm4
movdqa xmm13, xmm1
psrld xmm13, 0x14
pslld xmm1, 0xc
por xmm1, xmm13
movdqa xmm13, xmm2
psrld xmm13, 0x14
pslld xmm2, 0xc
por xmm2, xmm13
movdqa xmm13, xmm6
psrld xmm13, 0x14
pslld xmm6, 0xc
por xmm6, xmm13
movdqa xmm13, xmm11
psrld xmm13, 0x14
pslld xmm11, 0xc
por xmm11, xmm13
paddd xmm10, xmm1
paddd xmm9, xmm2
paddd xmm8, xmm6
paddd xmm15, xmm11
pxor xmm5, xmm10
movdqa xmm13, xmm5
psrld xmm13, 0x18
pslld xmm5, 8
por xmm5, xmm13
pxor xmm12, xmm9
movdqa xmm13, xmm12
psrld xmm13, 0x18
pslld xmm12, 8
por xmm12, xmm13
pxor xmm7, xmm8
movdqa xmm13, xmm7
psrld xmm13, 0x18
pslld xmm7, 8
por xmm7, xmm13
movdqa xmmword [rsp + 0x30], xmm15
pxor xmm14, xmm15
movdqa xmm13, xmm14
psrld xmm13, 0x18
pslld xmm14, 8
por xmm14, xmm13
paddd xmm3, xmm5
paddd xmm0, xmm12
movdqa xmm13, xmmword [rsp + 0x20]
paddd xmm13, xmm7
movdqa xmmword [rsp + 0x20], xmm13
paddd xmm4, xmm14
pxor xmm1, xmm3
pxor xmm2, xmm0
pxor xmm6, xmm13
pxor xmm11, xmm4
movdqa xmm13, xmm1
psrld xmm13, 0x19
pslld xmm1, 7
por xmm1, xmm13
movdqa xmm13, xmm2
psrld xmm13, 0x19
pslld xmm2, 7
por xmm2, xmm13
movdqa xmm13, xmm6
psrld xmm13, 0x19
pslld xmm6, 7
por xmm6, xmm13
movdqa xmm13, xmm11
psrld xmm13, 0x19
pslld xmm11, 7
por xmm11, xmm13
pshufd xmm1, xmm1, 0x93
pshufd xmm15, xmm2, 0x93
pshufd xmm13, xmm6, 0x93
pshufd xmm11, xmm11, 0x93
pshufd xmm3, xmm3, 0x4e
pshufd xmm0, xmm0, 0x4e
pshufd xmm2, xmmword [rsp + 0x20], 0x4e
movdqa xmmword [rsp + 0x20], xmm2
pshufd xmm2, xmm4, 0x4e
movdqa xmmword [rsp + 0x40], xmm2
pshufd xmm4, xmm5, 0x39
pshufd xmm5, xmm12, 0x39
pshufd xmm6, xmm7, 0x39
pshufd xmm2, xmm14, 0x39
dec edx
jne 0x180015d90
movdqa xmm7, xmmword [str.expand_32_byte_k]
paddd xmm10, xmm7
paddd xmm9, xmm7
paddd xmm8, xmm7
movdqa xmm12, xmmword [rsp + 0x30]
paddd xmm12, xmm7
movdqa xmmword [rsp + 0x30], xmm12
movdqa xmm14, xmmword [rsp + 0x60]
movaps xmm12, xmmword [rsp + 0x50]
jmp 0x1800162c9
movdqa xmm10, xmmword [0x1800a98a0]
movdqa xmm11, xmm2
movdqa xmmword [rsp + 0x40], xmm14
movdqa xmm13, xmm2
movdqa xmmword [rsp + 0x20], xmm14
movdqa xmm15, xmm2
movdqa xmm0, xmm14
movdqa xmm1, xmm2
movdqa xmm3, xmm14
movdqa xmm2, xmm7
movdqa xmm8, xmm10
movdqa xmm9, xmm10
movdqa xmmword [rsp + 0x30], xmm10
add rax, 4
mov rdx, rax
shr rdx, 0x20
movd xmm7, edx
por xmm7, xmm12
movdqa xmm12, xmm7
pslldq xmm12, 8
shufps xmm12, xmm7, 0xe8
movd xmm7, eax
por xmm7, xmm12
movdqa xmmword [rcx + 0x20], xmm7
movdqu xmmword [r8], xmm10
movdqa xmm7, xmmword [rsp + 0xb0]
paddd xmm1, xmm7
movdqu xmmword [r8 + 0x10], xmm1
paddd xmm3, xmm14
movdqu xmmword [r8 + 0x20], xmm3
paddd xmm4, xmmword [rsp + 0xa0]
movdqu xmmword [r8 + 0x30], xmm4
movdqu xmmword [r8 + 0x40], xmm9
paddd xmm15, xmm7
movdqu xmmword [r8 + 0x50], xmm15
paddd xmm0, xmm14
movdqu xmmword [r8 + 0x60], xmm0
paddd xmm5, xmmword [rsp + 0x90]
movdqu xmmword [r8 + 0x70], xmm5
movdqu xmmword [r8 + 0x80], xmm8
paddd xmm13, xmm7
movdqu xmmword [r8 + 0x90], xmm13
movdqa xmm0, xmmword [rsp + 0x20]
paddd xmm0, xmm14
movdqu xmmword [r8 + 0xa0], xmm0
paddd xmm6, xmmword [rsp + 0x80]
movdqu xmmword [r8 + 0xb0], xmm6
movaps xmm0, xmmword [rsp + 0x30]
movups xmmword [r8 + 0xc0], xmm0
paddd xmm11, xmm7
movdqu xmmword [r8 + 0xd0], xmm11
movdqa xmm0, xmmword [rsp + 0x40]
paddd xmm0, xmm14
movdqu xmmword [r8 + 0xe0], xmm0
paddd xmm2, xmmword [rsp + 0x70]
movdqu xmmword [r8 + 0xf0], xmm2
movaps xmm6, xmmword [rsp + 0xc0]
movaps xmm7, xmmword [rsp + 0xd0]
movaps xmm8, xmmword [rsp + 0xe0]
movaps xmm9, xmmword [rsp + 0xf0]
movaps xmm10, xmmword [rsp + 0x100]
movaps xmm11, xmmword [rsp + 0x110]
movaps xmm12, xmmword [rsp + 0x120]
movaps xmm13, xmmword [rsp + 0x130]
movaps xmm14, xmmword [rsp + 0x140]
movaps xmm15, xmmword [rsp + 0x150]
add rsp, 0x168
pop rbx
pop rdi
pop rsi
pop r14
ret
sub rsp, 0xb8
vmovaps xmmword [rsp + 0xa0], xmm15
vmovdqa xmmword [rsp + 0x90], xmm14
vmovaps xmmword [rsp + 0x80], xmm13
vmovaps xmmword [rsp + 0x70], xmm12
vmovaps xmmword [rsp + 0x60], xmm11
vmovaps xmmword [rsp + 0x50], xmm10
vmovaps xmmword [rsp + 0x40], xmm9
vmovaps xmmword [rsp + 0x30], xmm8
vmovaps xmmword [rsp + 0x20], xmm7
vmovaps xmmword [rsp + 0x10], xmm6
vmovdqa xmm5, xmmword [rcx + 0x20]
mov rax, qword [rcx + 0x20]
lea r9, [rax + 1]
vpinsrd xmm0, xmm5, r9d, 0
shr r9, 0x20
vpinsrd xmm2, xmm0, r9d, 1
lea r9, [rax + 2]
vpinsrd xmm0, xmm5, r9d, 0
shr r9, 0x20
vpinsrd xmm1, xmm0, r9d, 1
lea r9, [rax + 3]
vpinsrd xmm0, xmm5, r9d, 0
shr r9, 0x20
vpinsrd xmm15, xmm0, r9d, 1
vmovdqu ymm4, ymmword [rcx]
vmovdqu ymm3, ymmword [rcx + 0x10]
vinserti128 ymm6, ymm4, xmm4, 1
vinserti128 ymm7, ymm3, xmm3, 1
vinserti128 ymm13, ymm5, xmm2, 1
vinserti128 ymm9, ymm1, xmm15, 1
test edx, edx
je 0x1800166dc
vmovdqa xmmword [rsp], xmm15
vbroadcasti128 ymm12, xmmword [str.expand_32_byte_k]
vbroadcasti128 ymm10, xmmword [0x1800a98e0]
vmovdqa ymm11, ymmword [0x1800a98c0]
vmovdqa ymm8, ymm12
vmovdqa ymm14, ymm6
vmovdqa ymm15, ymm7
nop word cs:[rax + rax]
vpaddd ymm12, ymm12, ymm6
vpaddd ymm8, ymm14, ymm8
vpxor ymm13, ymm13, ymm12
vpxor ymm9, ymm9, ymm8
vpshuflw ymm13, ymm13, 0xb1
vpshufhw ymm13, ymm13, 0xb1
vpshuflw ymm9, ymm9, 0xb1
vpshufhw ymm9, ymm9, 0xb1
vpaddd ymm7, ymm13, ymm7
vpaddd ymm15, ymm15, ymm9
vpxor ymm6, ymm7, ymm6
vpsrld ymm0, ymm6, 0x14
vpslld ymm6, ymm6, 0xc
vpor ymm0, ymm6, ymm0
vpxor ymm6, ymm15, ymm14
vpsrld ymm14, ymm6, 0x14
vpslld ymm6, ymm6, 0xc
vpor ymm6, ymm14, ymm6
vpaddd ymm12, ymm12, ymm0
vpaddd ymm8, ymm8, ymm6
vpshufb ymm14, ymm12, ymm10
vpshufb ymm13, ymm13, ymm10
vpxor ymm13, ymm13, ymm14
vpshufb ymm14, ymm8, ymm10
vpshufb ymm9, ymm9, ymm10
vpxor ymm9, ymm9, ymm14
vpaddd ymm7, ymm13, ymm7
vpaddd ymm14, ymm15, ymm9
vpxor ymm0, ymm7, ymm0
vpxor ymm6, ymm14, ymm6
vpsrld ymm15, ymm0, 0x19
vpslld ymm0, ymm0, 7
vpor ymm0, ymm15, ymm0
vpsrld ymm15, ymm6, 0x19
vpslld ymm6, ymm6, 7
vpor ymm6, ymm15, ymm6
vpshufd ymm0, ymm0, 0x39
vpshufd ymm6, ymm6, 0x39
vpshufd ymm7, ymm7, 0x4e
vpshufd ymm14, ymm14, 0x4e
vpaddd ymm12, ymm12, ymm0
vpaddd ymm8, ymm8, ymm6
vpshuflw ymm15, ymm12, 0xb1
vpshufhw ymm15, ymm15, 0xb1
vpshufb ymm13, ymm13, ymm11
vpxor ymm13, ymm13, ymm15
vpshuflw ymm15, ymm8, 0xb1
vpshufhw ymm15, ymm15, 0xb1
vpshufb ymm9, ymm9, ymm11
vpxor ymm9, ymm9, ymm15
vpaddd ymm7, ymm13, ymm7
vpaddd ymm14, ymm14, ymm9
vpxor ymm0, ymm7, ymm0
vpxor ymm6, ymm14, ymm6
vpsrld ymm15, ymm0, 0x14
vpslld ymm0, ymm0, 0xc
vpor ymm0, ymm15, ymm0
vpsrld ymm15, ymm6, 0x14
vpslld ymm6, ymm6, 0xc
vpor ymm6, ymm15, ymm6
vpaddd ymm12, ymm12, ymm0
vpaddd ymm8, ymm8, ymm6
vpxor ymm13, ymm13, ymm12
vpshufb ymm13, ymm13, ymm10
vpxor ymm9, ymm9, ymm8
vpshufb ymm9, ymm9, ymm10
vpaddd ymm7, ymm13, ymm7
vpaddd ymm15, ymm14, ymm9
vpxor ymm0, ymm7, ymm0
vpxor ymm6, ymm15, ymm6
vpsrld ymm14, ymm0, 0x19
vpslld ymm0, ymm0, 7
vpor ymm0, ymm14, ymm0
vpsrld ymm14, ymm6, 0x19
vpslld ymm6, ymm6, 7
vpor ymm14, ymm14, ymm6
vpshufd ymm6, ymm0, 0x93
vpshufd ymm14, ymm14, 0x93
vpshufd ymm7, ymm7, 0x4e
vpshufd ymm15, ymm15, 0x4e
vpshufd ymm13, ymm13, 0x39
vpshufd ymm9, ymm9, 0x39
dec edx
jne 0x180016530
vmovdqa ymm10, ymm7
vmovdqa ymm11, ymm6
vmovdqa ymm7, ymm15
vmovdqa ymm6, ymm14
vmovdqa xmm15, xmmword [rsp]
jmp 0x1800166f2
vbroadcasti128 ymm8, xmmword [str.expand_32_byte_k]
vmovdqa ymm10, ymm7
vmovdqa ymm11, ymm6
vmovdqa ymm12, ymm8
add rax, 4
mov rdx, rax
shr rdx, 0x20
vpinsrd xmm0, xmm5, eax, 0
vpinsrd xmm0, xmm0, edx, 1
vmovdqa xmmword [rcx + 0x20], xmm0
vmovdqa xmm14, xmmword [str.expand_32_byte_k]
vpaddd xmm0, xmm12, xmm14
vmovdqu xmmword [r8], xmm0
vpaddd xmm0, xmm11, xmm4
vmovdqu xmmword [r8 + 0x10], xmm0
vpaddd xmm0, xmm10, xmm3
vmovdqu xmmword [r8 + 0x20], xmm0
vpaddd xmm0, xmm13, xmm5
vmovdqu xmmword [r8 + 0x30], xmm0
vextracti128 xmm0, ymm13, 1
vextracti128 xmm5, ymm10, 1
vextracti128 xmm10, ymm12, 1
vpaddd xmm10, xmm10, xmm14
vextracti128 xmm11, ymm11, 1
vmovdqu xmmword [r8 + 0x40], xmm10
vpaddd xmm10, xmm11, xmm4
vmovdqu xmmword [r8 + 0x50], xmm10
vpaddd xmm5, xmm5, xmm3
vmovdqu xmmword [r8 + 0x60], xmm5
vpaddd xmm0, xmm2, xmm0
vmovdqu xmmword [r8 + 0x70], xmm0
vpaddd xmm0, xmm8, xmm14
vmovdqu xmmword [r8 + 0x80], xmm0
vpaddd xmm0, xmm6, xmm4
vmovdqu xmmword [r8 + 0x90], xmm0
vpaddd xmm0, xmm7, xmm3
vmovdqu xmmword [r8 + 0xa0], xmm0
vpaddd xmm0, xmm9, xmm1
vmovdqu xmmword [r8 + 0xb0], xmm0
vextracti128 xmm0, ymm9, 1
vextracti128 xmm1, ymm7, 1
vextracti128 xmm2, ymm8, 1
vpaddd xmm2, xmm14, xmm2
vextracti128 xmm5, ymm6, 1
vmovdqu xmmword [r8 + 0xc0], xmm2
vpaddd xmm2, xmm5, xmm4
vmovdqu xmmword [r8 + 0xd0], xmm2
vpaddd xmm1, xmm1, xmm3
vmovdqu xmmword [r8 + 0xe0], xmm1
vpaddd xmm0, xmm15, xmm0
vmovdqu xmmword [r8 + 0xf0], xmm0
vzeroupper
vmovaps xmm6, xmmword [rsp + 0x10]
vmovaps xmm7, xmmword [rsp + 0x20]
vmovaps xmm8, xmmword [rsp + 0x30]
vmovaps xmm9, xmmword [rsp + 0x40]
vmovaps xmm10, xmmword [rsp + 0x50]
vmovaps xmm11, xmmword [rsp + 0x60]
vmovaps xmm12, xmmword [rsp + 0x70]
vmovaps xmm13, xmmword [rsp + 0x80]
vmovaps xmm14, xmmword [rsp + 0x90]
vmovaps xmm15, xmmword [rsp + 0xa0]
add rsp, 0xb8
ret
sub rsp, 0x188
vmovaps xmmword [rsp + 0x170], xmm15
vmovaps xmmword [rsp + 0x160], xmm14
vmovaps xmmword [rsp + 0x150], xmm13
vmovaps xmmword [rsp + 0x140], xmm12
vmovdqa xmmword [rsp + 0x130], xmm11
vmovaps xmmword [rsp + 0x120], xmm10
vmovaps xmmword [rsp + 0x110], xmm9
vmovaps xmmword [rsp + 0x100], xmm8
vmovaps xmmword [rsp + 0xf0], xmm7
vmovdqa xmmword [rsp + 0xe0], xmm6
vmovdqa xmm3, xmmword [rcx]
vmovdqa xmm8, xmmword [rcx + 0x20]
mov rax, qword [rcx + 0x20]
lea r9, [rax + 1]
vpinsrd xmm0, xmm8, r9d, 0
shr r9, 0x20
vpinsrd xmm12, xmm0, r9d, 1
vmovdqa xmm4, xmmword [rcx + 0x10]
lea r9, [rax + 2]
vpinsrd xmm0, xmm8, r9d, 0
shr r9, 0x20
vpinsrd xmm1, xmm0, r9d, 1
lea r9, [rax + 3]
vpinsrd xmm0, xmm8, r9d, 0
shr r9, 0x20
vpinsrd xmm5, xmm0, r9d, 1
test edx, edx
je 0x180016da3
vmovdqa xmm7, xmmword [str.expand_32_byte_k]
vmovdqa xmm2, xmm7
vmovdqa xmm15, xmm7
vmovdqa xmmword [rsp], xmm7
vmovdqa xmm0, xmm3
vmovdqa xmm13, xmm3
vmovdqa xmmword [rsp + 0x10], xmm3
vmovdqa xmmword [rsp + 0xc0], xmm3
vmovdqa xmmword [rsp + 0x20], xmm3
vmovdqa xmm10, xmm4
vmovdqa xmmword [rsp + 0x40], xmm4
vmovdqa xmmword [rsp + 0x60], xmm4
vmovdqa xmmword [rsp + 0xb0], xmm4
vmovdqa xmmword [rsp + 0xa0], xmm8
vmovdqa xmm9, xmm8
vmovdqa xmm8, xmm4
vmovdqa xmmword [rsp + 0x90], xmm12
vmovdqa xmm14, xmm12
vmovdqa xmmword [rsp + 0x80], xmm1
vmovdqa xmm3, xmm1
vmovdqa xmmword [rsp + 0x70], xmm5
vmovdqa xmmword [rsp + 0x50], xmm5
nop dword [rax + rax]
vpaddd xmm11, xmm0, xmm7
vpxor xmm5, xmm9, xmm11
vpshuflw xmm5, xmm5, 0xb1
vpshufhw xmm12, xmm5, 0xb1
vpaddd xmm1, xmm10, xmm12
vmovdqa xmmword [rsp + 0xd0], xmm1
vpxor xmm0, xmm1, xmm0
vpsrld xmm1, xmm0, 0x14
vpslld xmm0, xmm0, 0xc
vpor xmm9, xmm0, xmm1
vpaddd xmm5, xmm13, xmm2
vpxor xmm0, xmm14, xmm5
vpshuflw xmm0, xmm0, 0xb1
vpshufhw xmm4, xmm0, 0xb1
vpaddd xmm0, xmm4, xmmword [rsp + 0x40]
vmovdqa xmmword [rsp + 0x30], xmm0
vpxor xmm0, xmm13, xmm0
vpsrld xmm2, xmm0, 0x14
vpslld xmm0, xmm0, 0xc
vpor xmm13, xmm0, xmm2
vmovdqa xmm1, xmmword [rsp + 0x10]
vpaddd xmm10, xmm15, xmm1
vpxor xmm0, xmm10, xmm3
vpshuflw xmm0, xmm0, 0xb1
vpshufhw xmm3, xmm0, 0xb1
vpaddd xmm14, xmm3, xmmword [rsp + 0x60]
vpxor xmm0, xmm14, xmm1
vpsrld xmm2, xmm0, 0x14
vpslld xmm0, xmm0, 0xc
vpor xmm15, xmm0, xmm2
vmovdqa xmm7, xmmword [rsp + 0x20]
vpaddd xmm6, xmm7, xmmword [rsp]
vpxor xmm2, xmm6, xmmword [rsp + 0x50]
vpshuflw xmm2, xmm2, 0xb1
vpshufhw xmm1, xmm2, 0xb1
vpaddd xmm8, xmm8, xmm1
vpxor xmm2, xmm8, xmm7
vpsrld xmm7, xmm2, 0x14
vpslld xmm2, xmm2, 0xc
vpor xmm2, xmm2, xmm7
vpaddd xmm7, xmm9, xmm11
vmovdqa xmm11, xmmword [0x1800a98e0]
vpshufb xmm0, xmm12, xmm11
vpshufb xmm12, xmm7, xmm11
vpxor xmm12, xmm12, xmm0
vpaddd xmm0, xmm13, xmm5
vmovdqa xmmword [rsp + 0x10], xmm0
vpshufb xmm4, xmm4, xmm11
vpshufb xmm5, xmm0, xmm11
vpxor xmm5, xmm4, xmm5
vpaddd xmm10, xmm15, xmm10
vpshufb xmm3, xmm3, xmm11
vpshufb xmm4, xmm10, xmm11
vpxor xmm4, xmm3, xmm4
vpaddd xmm3, xmm2, xmm6
vmovdqa xmmword [rsp + 0x20], xmm3
vpshufb xmm0, xmm1, xmm11
vpshufb xmm1, xmm3, xmm11
vpxor xmm11, xmm0, xmm1
vmovdqa xmmword [rsp], xmm11
vpaddd xmm0, xmm12, xmmword [rsp + 0xd0]
vmovdqa xmmword [rsp + 0x40], xmm0
vpxor xmm0, xmm9, xmm0
vpsrld xmm1, xmm0, 0x19
vpslld xmm0, xmm0, 7
vpor xmm0, xmm0, xmm1
vpaddd xmm9, xmm5, xmmword [rsp + 0x30]
vpxor xmm1, xmm9, xmm13
vpsrld xmm6, xmm1, 0x19
vpslld xmm1, xmm1, 7
vpor xmm3, xmm1, xmm6
vpaddd xmm14, xmm14, xmm4
vpxor xmm6, xmm14, xmm15
vpsrld xmm13, xmm6, 0x19
vpslld xmm6, xmm6, 7
vpor xmm15, xmm13, xmm6
vpaddd xmm1, xmm8, xmm11
vmovdqa xmmword [rsp + 0x50], xmm1
vpxor xmm2, xmm1, xmm2
vpsrld xmm6, xmm2, 0x19
vpslld xmm2, xmm2, 7
vpor xmm2, xmm2, xmm6
vpshufd xmm8, xmm0, 0x39
vpaddd xmm13, xmm8, xmm7
vpshuflw xmm6, xmm13, 0xb1
vpshufhw xmm6, xmm6, 0xb1
vmovdqa xmm0, xmmword [0x1800a98f0]
vpshufb xmm7, xmm12, xmm0
vpxor xmm6, xmm7, xmm6
vpshufd xmm7, xmm3, 0x39
vpaddd xmm3, xmm7, xmmword [rsp + 0x10]
vmovdqa xmmword [rsp + 0x60], xmm3
vpshuflw xmm12, xmm3, 0xb1
vpshufhw xmm12, xmm12, 0xb1
vpshufb xmm11, xmm5, xmm0
vpxor xmm1, xmm11, xmm12
vpshufd xmm12, xmm15, 0x39
vpaddd xmm3, xmm12, xmm10
vmovdqa xmmword [rsp + 0x10], xmm3
vpshuflw xmm10, xmm3, 0xb1
vpshufhw xmm10, xmm10, 0xb1
vpshufb xmm3, xmm4, xmm0
vpxor xmm3, xmm10, xmm3
vpshufd xmm2, xmm2, 0x39
vpaddd xmm4, xmm2, xmmword [rsp + 0x20]
vmovdqa xmmword [rsp + 0x20], xmm4
vpshuflw xmm10, xmm4, 0xb1
vpshufhw xmm10, xmm10, 0xb1
vmovdqa xmm4, xmmword [rsp]
vpshufb xmm4, xmm4, xmm0
vpxor xmm4, xmm10, xmm4
vmovdqa xmmword [rsp + 0x30], xmm4
vpshufd xmm5, xmmword [rsp + 0x40], 0x4e
vpaddd xmm15, xmm5, xmm6
vpxor xmm0, xmm15, xmm8
vpsrld xmm5, xmm0, 0x14
vpslld xmm0, xmm0, 0xc
vpor xmm5, xmm0, xmm5
vpshufd xmm0, xmm9, 0x4e
vpaddd xmm11, xmm0, xmm1
vpxor xmm0, xmm11, xmm7
vpsrld xmm7, xmm0, 0x14
vpslld xmm0, xmm0, 0xc
vpor xmm0, xmm0, xmm7
vpshufd xmm7, xmm14, 0x4e
vpaddd xmm9, xmm7, xmm3
vpxor xmm7, xmm9, xmm12
vpsrld xmm10, xmm7, 0x14
vpslld xmm7, xmm7, 0xc
vpor xmm12, xmm10, xmm7
vpshufd xmm7, xmmword [rsp + 0x50], 0x4e
vpaddd xmm8, xmm7, xmm4
vpxor xmm2, xmm8, xmm2
vpsrld xmm7, xmm2, 0x14
vpslld xmm2, xmm2, 0xc
vpor xmm10, xmm2, xmm7
vpaddd xmm7, xmm13, xmm5
vpxor xmm2, xmm6, xmm7
vmovdqa xmm4, xmmword [0x1800a98e0]
vpshufb xmm6, xmm2, xmm4
vpaddd xmm14, xmm15, xmm6
vpxor xmm2, xmm14, xmm5
vpsrld xmm5, xmm2, 0x19
vpslld xmm2, xmm2, 7
vpor xmm5, xmm2, xmm5
vpaddd xmm2, xmm0, xmmword [rsp + 0x60]
vpxor xmm1, xmm1, xmm2
vpshufb xmm1, xmm1, xmm4
vpaddd xmm11, xmm11, xmm1
vpxor xmm0, xmm11, xmm0
vpsrld xmm13, xmm0, 0x19
vpslld xmm0, xmm0, 7
vpor xmm13, xmm13, xmm0
vpaddd xmm15, xmm12, xmmword [rsp + 0x10]
vpxor xmm0, xmm15, xmm3
vpshufb xmm3, xmm0, xmm4
vpaddd xmm9, xmm9, xmm3
vpxor xmm0, xmm9, xmm12
vpsrld xmm12, xmm0, 0x19
vpslld xmm0, xmm0, 7
vpor xmm12, xmm12, xmm0
vpaddd xmm0, xmm10, xmmword [rsp + 0x20]
vmovdqa xmmword [rsp], xmm0
vpxor xmm0, xmm0, xmmword [rsp + 0x30]
vpshufb xmm4, xmm0, xmm4
vpaddd xmm8, xmm8, xmm4
vpxor xmm0, xmm8, xmm10
vpsrld xmm10, xmm0, 0x19
vpslld xmm0, xmm0, 7
vpor xmm10, xmm10, xmm0
vpshufd xmm0, xmm5, 0x93
vpshufd xmm13, xmm13, 0x93
vpshufd xmm5, xmm12, 0x93
vmovdqa xmmword [rsp + 0x10], xmm5
vpshufd xmm5, xmm10, 0x93
vmovdqa xmmword [rsp + 0x20], xmm5
vpshufd xmm10, xmm14, 0x4e
vpshufd xmm5, xmm11, 0x4e
vmovdqa xmmword [rsp + 0x40], xmm5
vpshufd xmm5, xmm9, 0x4e
vmovdqa xmmword [rsp + 0x60], xmm5
vpshufd xmm8, xmm8, 0x4e
vpshufd xmm9, xmm6, 0x39
vpshufd xmm14, xmm1, 0x39
vpshufd xmm3, xmm3, 0x39
vpshufd xmm1, xmm4, 0x39
vmovdqa xmmword [rsp + 0x50], xmm1
dec edx
jne 0x180016990
vmovdqa xmm12, xmmword [str.expand_32_byte_k]
vpaddd xmm11, xmm12, xmm7
vpaddd xmm6, xmm12, xmm2
vpaddd xmm1, xmm15, xmm12
vmovdqa xmmword [rsp + 0x30], xmm1
vpaddd xmm2, xmm12, xmmword [rsp]
vmovdqa xmm15, xmm3
vmovdqa xmm3, xmmword [rsp + 0xc0]
vmovdqa xmm4, xmmword [rsp + 0xb0]
vmovdqa xmmword [rsp], xmm8
vmovdqa xmm8, xmmword [rsp + 0xa0]
vmovdqa xmm12, xmmword [rsp + 0x90]
vmovdqa xmm7, xmmword [rsp + 0x80]
vmovdqa xmm5, xmmword [rsp + 0x70]
jmp 0x180016dfa
vmovdqa xmm2, xmmword [0x1800a98a0]
vmovdqa xmmword [rsp + 0x20], xmm3
vmovdqa xmmword [rsp], xmm4
vmovdqa xmmword [rsp + 0x10], xmm3
vmovdqa xmmword [rsp + 0x60], xmm4
vmovdqa xmm13, xmm3
vmovdqa xmmword [rsp + 0x40], xmm4
vmovdqa xmm0, xmm3
vmovdqa xmm10, xmm4
vmovdqa xmm9, xmm8
vmovdqa xmmword [rsp + 0x50], xmm5
vmovdqa xmm15, xmm1
vmovdqa xmm14, xmm12
vmovdqa xmmword [rsp + 0x30], xmm2
vmovdqa xmm6, xmm2
vmovdqa xmm11, xmm2
vmovdqa xmm7, xmm1
add rax, 4
mov rdx, rax
vpinsrd xmm1, xmm8, eax, 0
shr rdx, 0x20
vpinsrd xmm1, xmm1, edx, 1
vmovdqa xmmword [rcx + 0x20], xmm1
vmovdqu xmmword [r8], xmm11
vpaddd xmm0, xmm0, xmm3
vmovdqu xmmword [r8 + 0x10], xmm0
vpaddd xmm0, xmm10, xmm4
vmovdqu xmmword [r8 + 0x20], xmm0
vpaddd xmm0, xmm9, xmm8
vmovdqu xmmword [r8 + 0x30], xmm0
vmovdqu xmmword [r8 + 0x40], xmm6
vpaddd xmm0, xmm13, xmm3
vmovdqu xmmword [r8 + 0x50], xmm0
vpaddd xmm0, xmm4, xmmword [rsp + 0x40]
vmovdqu xmmword [r8 + 0x60], xmm0
vpaddd xmm0, xmm14, xmm12
vmovdqu xmmword [r8 + 0x70], xmm0
vmovaps xmm0, xmmword [rsp + 0x30]
vmovups xmmword [r8 + 0x80], xmm0
vpaddd xmm0, xmm3, xmmword [rsp + 0x10]
vmovdqu xmmword [r8 + 0x90], xmm0
vpaddd xmm0, xmm4, xmmword [rsp + 0x60]
vmovdqu xmmword [r8 + 0xa0], xmm0
vpaddd xmm0, xmm15, xmm7
vmovdqu xmmword [r8 + 0xb0], xmm0
vmovdqu xmmword [r8 + 0xc0], xmm2
vpaddd xmm0, xmm3, xmmword [rsp + 0x20]
vmovdqu xmmword [r8 + 0xd0], xmm0
vpaddd xmm0, xmm4, xmmword [rsp]
vmovdqu xmmword [r8 + 0xe0], xmm0
vpaddd xmm0, xmm5, xmmword [rsp + 0x50]
vmovdqu xmmword [r8 + 0xf0], xmm0
vzeroupper
vmovaps xmm6, xmmword [rsp + 0xe0]
vmovaps xmm7, xmmword [rsp + 0xf0]
vmovaps xmm8, xmmword [rsp + 0x100]
vmovaps xmm9, xmmword [rsp + 0x110]
vmovaps xmm10, xmmword [rsp + 0x120]
vmovaps xmm11, xmmword [rsp + 0x130]
vmovaps xmm12, xmmword [rsp + 0x140]
vmovaps xmm13, xmmword [rsp + 0x150]
vmovaps xmm14, xmmword [rsp + 0x160]
vmovaps xmm15, xmmword [rsp + 0x170]
add rsp, 0x188
ret
sub rsp, 0x148
movdqa xmmword [rsp + 0x130], xmm15
movaps xmmword [rsp + 0x120], xmm14
movaps xmmword [rsp + 0x110], xmm13
movaps xmmword [rsp + 0x100], xmm12
movaps xmmword [rsp + 0xf0], xmm11
movaps xmmword [rsp + 0xe0], xmm10
movaps xmmword [rsp + 0xd0], xmm9
movaps xmmword [rsp + 0xc0], xmm8
movaps xmmword [rsp + 0xb0], xmm7
movaps xmmword [rsp + 0xa0], xmm6
movdqa xmm3, xmmword [rcx]
movdqa xmm13, xmmword [rcx + 0x10]
movdqa xmm7, xmmword [rcx + 0x20]
mov rax, qword [rcx + 0x20]
lea r9, [rax + 1]
movdqa xmm4, xmm7
pinsrd xmm4, r9d, 0
shr r9, 0x20
pinsrd xmm4, r9d, 1
lea r9, [rax + 2]
movdqa xmm11, xmm7
pinsrd xmm11, r9d, 0
shr r9, 0x20
pinsrd xmm11, r9d, 1
lea r9, [rax + 3]
movdqa xmm10, xmm7
pinsrd xmm10, r9d, 0
shr r9, 0x20
pinsrd xmm10, r9d, 1
test edx, edx
movdqa xmmword [rsp + 0x90], xmm13
movdqa xmmword [rsp + 0x80], xmm4
movdqa xmmword [rsp + 0x70], xmm10
je 0x18001752d
movdqa xmm9, xmmword [str.expand_32_byte_k]
movdqa xmm8, xmm9
movdqa xmm6, xmm7
movdqa xmm7, xmm9
movdqa xmmword [rsp + 0x10], xmm9
movdqa xmm2, xmm3
movdqa xmm1, xmm3
movdqa xmm14, xmm3
movdqa xmmword [rsp + 0x60], xmm3
movdqa xmm12, xmm3
movdqa xmm5, xmm13
movdqa xmm0, xmm13
movdqa xmmword [rsp], xmm13
movdqa xmmword [rsp + 0x20], xmm13
movdqa xmmword [rsp + 0x40], xmm6
movdqa xmm3, xmm6
movdqa xmmword [rsp + 0x50], xmm11
nop word cs:[rax + rax]
paddd xmm9, xmm2
paddd xmm8, xmm1
paddd xmm7, xmm14
movdqa xmm6, xmmword [rsp + 0x10]
paddd xmm6, xmm12
movdqa xmmword [rsp + 0x10], xmm6
pxor xmm3, xmm9
pxor xmm4, xmm8
pxor xmm11, xmm7
pxor xmm10, xmm6
pshuflw xmm3, xmm3, 0xb1
pshufhw xmm3, xmm3, 0xb1
pshuflw xmm4, xmm4, 0xb1
pshufhw xmm4, xmm4, 0xb1
pshuflw xmm11, xmm11, 0xb1
pshufhw xmm11, xmm11, 0xb1
pshuflw xmm10, xmm10, 0xb1
pshufhw xmm10, xmm10, 0xb1
paddd xmm5, xmm3
paddd xmm0, xmm4
movdqa xmm15, xmmword [rsp]
paddd xmm15, xmm11
movdqa xmmword [rsp], xmm15
movdqa xmm6, xmm0
movdqa xmmword [rsp + 0x30], xmm0
movdqa xmm0, xmmword [rsp + 0x20]
paddd xmm0, xmm10
movdqa xmmword [rsp + 0x20], xmm0
pxor xmm2, xmm5
movdqa xmm13, xmm2
psrld xmm13, 0x14
pslld xmm2, 0xc
por xmm2, xmm13
pxor xmm1, xmm6
movdqa xmm13, xmm1
psrld xmm13, 0x14
pslld xmm1, 0xc
por xmm1, xmm13
pxor xmm14, xmm15
movdqa xmm13, xmm14
psrld xmm13, 0x14
pslld xmm14, 0xc
por xmm14, xmm13
pxor xmm12, xmm0
movdqa xmm13, xmm12
psrld xmm13, 0x14
pslld xmm12, 0xc
por xmm12, xmm13
paddd xmm9, xmm2
paddd xmm8, xmm1
paddd xmm7, xmm14
movdqa xmm6, xmmword [rsp + 0x10]
paddd xmm6, xmm12
movdqa xmm13, xmm9
movdqa xmm15, xmmword [0x1800a98e0]
pshufb xmm13, xmm15
pshufb xmm3, xmm15
pxor xmm3, xmm13
movdqa xmm13, xmm8
pshufb xmm13, xmm15
pshufb xmm4, xmm15
pxor xmm4, xmm13
movdqa xmm13, xmm7
pshufb xmm13, xmm15
pshufb xmm11, xmm15
pxor xmm11, xmm13
movdqa xmm13, xmm6
pshufb xmm13, xmm15
pshufb xmm10, xmm15
pxor xmm10, xmm13
paddd xmm5, xmm3
movdqa xmm0, xmmword [rsp + 0x30]
paddd xmm0, xmm4
movdqa xmmword [rsp + 0x30], xmm0
movdqa xmm13, xmmword [rsp]
paddd xmm13, xmm11
movdqa xmm15, xmm5
movdqa xmm5, xmmword [rsp + 0x20]
paddd xmm5, xmm10
pxor xmm2, xmm15
pxor xmm1, xmm0
pxor xmm14, xmm13
movdqa xmm0, xmm13
pxor xmm12, xmm5
movdqa xmm13, xmm2
psrld xmm13, 0x19
pslld xmm2, 7
por xmm2, xmm13
movdqa xmm13, xmm1
psrld xmm13, 0x19
pslld xmm1, 7
por xmm1, xmm13
movdqa xmm13, xmm14
psrld xmm13, 0x19
pslld xmm14, 7
por xmm14, xmm13
movdqa xmm13, xmm12
psrld xmm13, 0x19
pslld xmm12, 7
por xmm12, xmm13
pshufd xmm2, xmm2, 0x39
pshufd xmm1, xmm1, 0x39
pshufd xmm14, xmm14, 0x39
pshufd xmm12, xmm12, 0x39
pshufd xmm13, xmm15, 0x4e
movdqa xmmword [rsp + 0x10], xmm13
pshufd xmm13, xmmword [rsp + 0x30], 0x4e
movdqa xmmword [rsp], xmm13
pshufd xmm15, xmm0, 0x4e
pshufd xmm13, xmm5, 0x4e
paddd xmm9, xmm2
paddd xmm8, xmm1
paddd xmm7, xmm14
paddd xmm6, xmm12
pshuflw xmm0, xmm9, 0xb1
pshufhw xmm0, xmm0, 0xb1
movdqa xmm5, xmmword [0x1800a98f0]
pshufb xmm3, xmm5
pxor xmm3, xmm0
pshuflw xmm0, xmm8, 0xb1
pshufhw xmm0, xmm0, 0xb1
pshufb xmm4, xmm5
pxor xmm4, xmm0
pshuflw xmm0, xmm7, 0xb1
pshufhw xmm0, xmm0, 0xb1
pshufb xmm11, xmm5
pxor xmm11, xmm0
pshuflw xmm0, xmm6, 0xb1
pshufhw xmm0, xmm0, 0xb1
pshufb xmm10, xmm5
pxor xmm10, xmm0
movdqa xmm5, xmmword [rsp + 0x10]
paddd xmm5, xmm3
movdqa xmm0, xmmword [rsp]
paddd xmm0, xmm4
movdqa xmmword [rsp], xmm0
paddd xmm15, xmm11
paddd xmm13, xmm10
pxor xmm2, xmm5
pxor xmm1, xmm0
pxor xmm14, xmm15
pxor xmm12, xmm13
movdqa xmm0, xmm2
psrld xmm0, 0x14
pslld xmm2, 0xc
por xmm2, xmm0
movdqa xmm0, xmm1
psrld xmm0, 0x14
pslld xmm1, 0xc
por xmm1, xmm0
movdqa xmm0, xmm14
psrld xmm0, 0x14
pslld xmm14, 0xc
por xmm14, xmm0
movdqa xmm0, xmm12
psrld xmm0, 0x14
pslld xmm12, 0xc
por xmm12, xmm0
paddd xmm9, xmm2
paddd xmm8, xmm1
paddd xmm7, xmm14
paddd xmm6, xmm12
pxor xmm3, xmm9
movdqa xmm0, xmmword [0x1800a98e0]
pshufb xmm3, xmm0
pxor xmm4, xmm8
pshufb xmm4, xmm0
pxor xmm11, xmm7
pshufb xmm11, xmm0
movdqa xmmword [rsp + 0x10], xmm6
pxor xmm10, xmm6
pshufb xmm10, xmm0
paddd xmm5, xmm3
movdqa xmm0, xmmword [rsp]
paddd xmm0, xmm4
paddd xmm15, xmm11
paddd xmm13, xmm10
pxor xmm2, xmm5
pxor xmm1, xmm0
movdqa xmm6, xmm0
pxor xmm14, xmm15
pxor xmm12, xmm13
movdqa xmm0, xmm2
psrld xmm0, 0x19
pslld xmm2, 7
por xmm2, xmm0
movdqa xmm0, xmm1
psrld xmm0, 0x19
pslld xmm1, 7
por xmm1, xmm0
movdqa xmm0, xmm14
psrld xmm0, 0x19
pslld xmm14, 7
por xmm14, xmm0
movdqa xmm0, xmm12
psrld xmm0, 0x19
pslld xmm12, 7
por xmm12, xmm0
pshufd xmm2, xmm2, 0x93
pshufd xmm1, xmm1, 0x93
pshufd xmm14, xmm14, 0x93
pshufd xmm12, xmm12, 0x93
pshufd xmm5, xmm5, 0x4e
pshufd xmm0, xmm6, 0x4e
pshufd xmm15, xmm15, 0x4e
movdqa xmmword [rsp], xmm15
pshufd xmm6, xmm13, 0x4e
movdqa xmmword [rsp + 0x20], xmm6
pshufd xmm3, xmm3, 0x39
pshufd xmm4, xmm4, 0x39
pshufd xmm11, xmm11, 0x39
pshufd xmm10, xmm10, 0x39
dec edx
jne 0x180017090
movdqa xmm13, xmmword [str.expand_32_byte_k]
paddd xmm9, xmm13
paddd xmm8, xmm13
paddd xmm7, xmm13
movdqa xmm6, xmmword [rsp + 0x10]
paddd xmm6, xmm13
movdqa xmmword [rsp + 0x10], xmm6
movdqa xmm6, xmmword [rsp + 0x60]
movdqa xmm15, xmmword [rsp + 0x50]
movdqa xmm13, xmmword [rsp + 0x40]
jmp 0x180017582
movdqa xmm9, xmmword [0x1800a98a0]
movdqa xmm12, xmm3
movdqa xmmword [rsp + 0x20], xmm13
movdqa xmm14, xmm3
movdqa xmmword [rsp], xmm13
movdqa xmm1, xmm3
movdqa xmm0, xmm13
movdqa xmm2, xmm3
movdqa xmm5, xmm13
movdqa xmm6, xmm3
movdqa xmm3, xmm7
movdqa xmm15, xmm11
movdqa xmm13, xmm7
movdqa xmm7, xmm9
movdqa xmm8, xmm9
movdqa xmmword [rsp + 0x10], xmm9
add rax, 4
mov rdx, rax
shr rdx, 0x20
paddd xmm3, xmm13
pinsrd xmm13, eax, 0
pinsrd xmm13, edx, 1
movdqa xmmword [rcx + 0x20], xmm13
movdqu xmmword [r8], xmm9
paddd xmm2, xmm6
movdqu xmmword [r8 + 0x10], xmm2
movdqa xmm2, xmmword [rsp + 0x90]
paddd xmm5, xmm2
movdqu xmmword [r8 + 0x20], xmm5
movdqu xmmword [r8 + 0x30], xmm3
movdqu xmmword [r8 + 0x40], xmm8
paddd xmm1, xmm6
movdqu xmmword [r8 + 0x50], xmm1
paddd xmm0, xmm2
movdqu xmmword [r8 + 0x60], xmm0
paddd xmm4, xmmword [rsp + 0x80]
movdqu xmmword [r8 + 0x70], xmm4
movdqu xmmword [r8 + 0x80], xmm7
paddd xmm14, xmm6
movdqu xmmword [r8 + 0x90], xmm14
movdqa xmm0, xmmword [rsp]
paddd xmm0, xmm2
movdqu xmmword [r8 + 0xa0], xmm0
paddd xmm11, xmm15
movdqu xmmword [r8 + 0xb0], xmm11
movaps xmm0, xmmword [rsp + 0x10]
movups xmmword [r8 + 0xc0], xmm0
paddd xmm12, xmm6
movdqu xmmword [r8 + 0xd0], xmm12
movdqa xmm0, xmmword [rsp + 0x20]
paddd xmm0, xmm2
movdqu xmmword [r8 + 0xe0], xmm0
paddd xmm10, xmmword [rsp + 0x70]
movdqu xmmword [r8 + 0xf0], xmm10
movaps xmm6, xmmword [rsp + 0xa0]
movaps xmm7, xmmword [rsp + 0xb0]
movaps xmm8, xmmword [rsp + 0xc0]
movaps xmm9, xmmword [rsp + 0xd0]
movaps xmm10, xmmword [rsp + 0xe0]
movaps xmm11, xmmword [rsp + 0xf0]
movaps xmm12, xmmword [rsp + 0x100]
movaps xmm13, xmmword [rsp + 0x110]
movaps xmm14, xmmword [rsp + 0x120]
movaps xmm15, xmmword [rsp + 0x130]
add rsp, 0x148
ret
sub rsp, 0x158
movaps xmmword [rsp + 0x140], xmm15
movaps xmmword [rsp + 0x130], xmm14
movaps xmmword [rsp + 0x120], xmm13
movaps xmmword [rsp + 0x110], xmm12
movaps xmmword [rsp + 0x100], xmm11
movaps xmmword [rsp + 0xf0], xmm10
movaps xmmword [rsp + 0xe0], xmm9
movaps xmmword [rsp + 0xd0], xmm8
movaps xmmword [rsp + 0xc0], xmm7
movaps xmmword [rsp + 0xb0], xmm6
movdqa xmm3, xmmword [rcx]
movdqa xmm5, xmmword [rcx + 0x20]
mov rax, qword [rcx + 0x20]
lea r9, [rax + 1]
movd xmm4, r9d
shr r9, 0x20
movdqa xmm14, xmm5
pslldq xmm14, 8
shufps xmm14, xmm5, 0xe8
movd xmm0, r9d
por xmm0, xmm14
movdqa xmm1, xmm0
pslldq xmm1, 8
shufps xmm1, xmm0, 0xe8
por xmm4, xmm1
lea r9, [rax + 2]
movd xmm12, r9d
shr r9, 0x20
movd xmm0, r9d
por xmm0, xmm14
movdqa xmm1, xmm0
pslldq xmm1, 8
shufps xmm1, xmm0, 0xe8
por xmm12, xmm1
lea r9, [rax + 3]
movd xmm11, r9d
shr r9, 0x20
movd xmm0, r9d
por xmm0, xmm14
movdqa xmm1, xmm0
pslldq xmm1, 8
shufps xmm1, xmm0, 0xe8
movdqa xmm6, xmmword [rcx + 0x10]
por xmm11, xmm1
test edx, edx
movdqa xmmword [rsp + 0xa0], xmm3
movaps xmmword [rsp + 0x90], xmm5
movdqa xmmword [rsp + 0x80], xmm4
movdqa xmmword [rsp + 0x70], xmm12
movdqa xmmword [rsp + 0x60], xmm11
movdqa xmmword [rsp + 0x50], xmm6
je 0x180017cd2
movaps xmmword [rsp + 0x40], xmm14
movdqa xmm10, xmmword [str.expand_32_byte_k]
movdqa xmm9, xmm10
movdqa xmm8, xmm10
movdqa xmm7, xmm10
movdqa xmm2, xmm3
movdqa xmm0, xmm3
movdqa xmm15, xmm3
movdqa xmm13, xmm3
movdqa xmm3, xmm6
movdqa xmm1, xmm6
movdqa xmmword [rsp], xmm6
movdqa xmmword [rsp + 0x10], xmm6
movdqa xmm6, xmm5
nop dword [rax + rax]
paddd xmm10, xmm2
paddd xmm9, xmm0
paddd xmm8, xmm15
paddd xmm7, xmm13
pxor xmm6, xmm10
pxor xmm4, xmm9
pxor xmm12, xmm8
pxor xmm11, xmm7
pshuflw xmm5, xmm6, 0xb1
pshufhw xmm6, xmm5, 0xb1
movdqa xmmword [rsp + 0x20], xmm6
pshuflw xmm4, xmm4, 0xb1
pshufhw xmm5, xmm4, 0xb1
pshuflw xmm12, xmm12, 0xb1
pshufhw xmm12, xmm12, 0xb1
pshuflw xmm11, xmm11, 0xb1
pshufhw xmm11, xmm11, 0xb1
paddd xmm3, xmm6
paddd xmm1, xmm5
movdqa xmm6, xmmword [rsp]
paddd xmm6, xmm12
movdqa xmmword [rsp], xmm6
movdqa xmm4, xmm1
movdqa xmmword [rsp + 0x30], xmm1
movdqa xmm1, xmmword [rsp + 0x10]
paddd xmm1, xmm11
movdqa xmmword [rsp + 0x10], xmm1
pxor xmm2, xmm3
movdqa xmm14, xmm2
psrld xmm14, 0x14
pslld xmm2, 0xc
por xmm2, xmm14
pxor xmm0, xmm4
movdqa xmm14, xmm0
psrld xmm14, 0x14
pslld xmm0, 0xc
por xmm0, xmm14
pxor xmm15, xmm6
movdqa xmm14, xmm15
psrld xmm14, 0x14
pslld xmm15, 0xc
por xmm15, xmm14
pxor xmm13, xmm1
movdqa xmm14, xmm13
psrld xmm14, 0x14
pslld xmm13, 0xc
por xmm13, xmm14
paddd xmm10, xmm2
paddd xmm9, xmm0
paddd xmm8, xmm15
paddd xmm7, xmm13
movdqa xmm14, xmm10
movdqa xmm6, xmmword [0x1800a98e0]
pshufb xmm14, xmm6
movdqa xmm1, xmmword [rsp + 0x20]
pshufb xmm1, xmm6
pxor xmm1, xmm14
movdqa xmm4, xmm1
movdqa xmm14, xmm9
pshufb xmm14, xmm6
pshufb xmm5, xmm6
pxor xmm5, xmm14
movdqa xmm14, xmm8
pshufb xmm14, xmm6
pshufb xmm12, xmm6
pxor xmm12, xmm14
movdqa xmm14, xmm7
pshufb xmm14, xmm6
pshufb xmm11, xmm6
pxor xmm11, xmm14
paddd xmm3, xmm1
movdqa xmm1, xmmword [rsp + 0x30]
paddd xmm1, xmm5
movdqa xmmword [rsp + 0x30], xmm1
movdqa xmm6, xmmword [rsp]
paddd xmm6, xmm12
movdqa xmm14, xmmword [rsp + 0x10]
paddd xmm14, xmm11
pxor xmm2, xmm3
pxor xmm0, xmm1
pxor xmm15, xmm6
pxor xmm13, xmm14
movdqa xmm1, xmm14
movdqa xmm14, xmm2
psrld xmm14, 0x19
pslld xmm2, 7
por xmm2, xmm14
movdqa xmm14, xmm0
psrld xmm14, 0x19
pslld xmm0, 7
por xmm0, xmm14
movdqa xmm14, xmm15
psrld xmm14, 0x19
pslld xmm15, 7
por xmm15, xmm14
movdqa xmm14, xmm13
psrld xmm14, 0x19
pslld xmm13, 7
por xmm13, xmm14
pshufd xmm2, xmm2, 0x39
pshufd xmm0, xmm0, 0x39
pshufd xmm15, xmm15, 0x39
pshufd xmm13, xmm13, 0x39
pshufd xmm3, xmm3, 0x4e
movdqa xmmword [rsp + 0x10], xmm3
pshufd xmm3, xmmword [rsp + 0x30], 0x4e
movdqa xmmword [rsp], xmm3
pshufd xmm6, xmm6, 0x4e
pshufd xmm14, xmm1, 0x4e
paddd xmm10, xmm2
paddd xmm9, xmm0
paddd xmm8, xmm15
paddd xmm7, xmm13
pshuflw xmm1, xmm10, 0xb1
pshufhw xmm1, xmm1, 0xb1
movdqa xmm3, xmmword [0x1800a98f0]
pshufb xmm4, xmm3
pxor xmm4, xmm1
pshuflw xmm1, xmm9, 0xb1
pshufhw xmm1, xmm1, 0xb1
pshufb xmm5, xmm3
pxor xmm5, xmm1
pshuflw xmm1, xmm8, 0xb1
pshufhw xmm1, xmm1, 0xb1
pshufb xmm12, xmm3
pxor xmm12, xmm1
pshuflw xmm1, xmm7, 0xb1
pshufhw xmm1, xmm1, 0xb1
pshufb xmm11, xmm3
pxor xmm11, xmm1
movdqa xmm3, xmmword [rsp + 0x10]
paddd xmm3, xmm4
movdqa xmm1, xmmword [rsp]
paddd xmm1, xmm5
movdqa xmmword [rsp], xmm1
paddd xmm6, xmm12
paddd xmm14, xmm11
pxor xmm2, xmm3
pxor xmm0, xmm1
pxor xmm15, xmm6
pxor xmm13, xmm14
movdqa xmm1, xmm2
psrld xmm1, 0x14
pslld xmm2, 0xc
por xmm2, xmm1
movdqa xmm1, xmm0
psrld xmm1, 0x14
pslld xmm0, 0xc
por xmm0, xmm1
movdqa xmm1, xmm15
psrld xmm1, 0x14
pslld xmm15, 0xc
por xmm15, xmm1
movdqa xmm1, xmm13
psrld xmm1, 0x14
pslld xmm13, 0xc
por xmm13, xmm1
paddd xmm10, xmm2
paddd xmm9, xmm0
paddd xmm8, xmm15
paddd xmm7, xmm13
pxor xmm4, xmm10
movdqa xmm1, xmmword [0x1800a98e0]
pshufb xmm4, xmm1
movdqa xmmword [rsp + 0x20], xmm4
pxor xmm5, xmm9
pshufb xmm5, xmm1
pxor xmm12, xmm8
pshufb xmm12, xmm1
pxor xmm11, xmm7
pshufb xmm11, xmm1
paddd xmm3, xmm4
movdqa xmm1, xmmword [rsp]
paddd xmm1, xmm5
movdqa xmmword [rsp], xmm1
paddd xmm6, xmm12
paddd xmm14, xmm11
pxor xmm2, xmm3
pxor xmm0, xmm1
pxor xmm15, xmm6
pxor xmm13, xmm14
movdqa xmm1, xmm2
psrld xmm1, 0x19
pslld xmm2, 7
por xmm2, xmm1
movdqa xmm1, xmm0
psrld xmm1, 0x19
pslld xmm0, 7
por xmm0, xmm1
movdqa xmm1, xmm15
psrld xmm1, 0x19
pslld xmm15, 7
por xmm15, xmm1
movdqa xmm1, xmm13
psrld xmm1, 0x19
pslld xmm13, 7
por xmm13, xmm1
pshufd xmm2, xmm2, 0x93
pshufd xmm0, xmm0, 0x93
pshufd xmm15, xmm15, 0x93
pshufd xmm13, xmm13, 0x93
pshufd xmm4, xmm3, 0x4e
movdqa xmm3, xmm7
pshufd xmm7, xmmword [rsp], 0x4e
pshufd xmm6, xmm6, 0x4e
movdqa xmmword [rsp], xmm6
pshufd xmm1, xmm14, 0x4e
movdqa xmmword [rsp + 0x10], xmm1
movdqa xmm1, xmm7
movdqa xmm7, xmm3
movdqa xmm3, xmm4
pshufd xmm6, xmmword [rsp + 0x20], 0x39
pshufd xmm4, xmm5, 0x39
pshufd xmm12, xmm12, 0x39
pshufd xmm11, xmm11, 0x39
dec edx
jne 0x180017850
movdqa xmm5, xmmword [str.expand_32_byte_k]
paddd xmm10, xmm5
paddd xmm9, xmm5
paddd xmm8, xmm5
paddd xmm7, xmm5
movaps xmm14, xmmword [rsp + 0x40]
jmp 0x180017d12
movdqa xmm7, xmmword [0x1800a98a0]
movdqa xmm13, xmm3
movdqa xmmword [rsp + 0x10], xmm6
movdqa xmm15, xmm3
movdqa xmmword [rsp], xmm6
movdqa xmm0, xmm3
movdqa xmm1, xmm6
movdqa xmm2, xmm3
movdqa xmm3, xmm6
movdqa xmm6, xmm5
movdqa xmm8, xmm7
movdqa xmm9, xmm7
movdqa xmm10, xmm7
add rax, 4
mov rdx, rax
shr rdx, 0x20
movd xmm5, edx
por xmm5, xmm14
movdqa xmm14, xmm5
pslldq xmm14, 8
shufps xmm14, xmm5, 0xe8
movaps xmm5, xmm14
movd xmm14, eax
por xmm14, xmm5
movdqa xmmword [rcx + 0x20], xmm14
movdqu xmmword [r8], xmm10
movdqa xmm10, xmmword [rsp + 0xa0]
paddd xmm2, xmm10
movdqu xmmword [r8 + 0x10], xmm2
movdqa xmm2, xmmword [rsp + 0x50]
paddd xmm3, xmm2
movdqu xmmword [r8 + 0x20], xmm3
paddd xmm6, xmmword [rsp + 0x90]
movdqu xmmword [r8 + 0x30], xmm6
movdqu xmmword [r8 + 0x40], xmm9
paddd xmm0, xmm10
movdqu xmmword [r8 + 0x50], xmm0
paddd xmm1, xmm2
movdqu xmmword [r8 + 0x60], xmm1
paddd xmm4, xmmword [rsp + 0x80]
movdqu xmmword [r8 + 0x70], xmm4
movdqu xmmword [r8 + 0x80], xmm8
paddd xmm15, xmm10
movdqu xmmword [r8 + 0x90], xmm15
movdqa xmm0, xmmword [rsp]
paddd xmm0, xmm2
movdqu xmmword [r8 + 0xa0], xmm0
paddd xmm12, xmmword [rsp + 0x70]
movdqu xmmword [r8 + 0xb0], xmm12
movdqu xmmword [r8 + 0xc0], xmm7
paddd xmm13, xmm10
movdqu xmmword [r8 + 0xd0], xmm13
movdqa xmm0, xmmword [rsp + 0x10]
paddd xmm0, xmm2
movdqu xmmword [r8 + 0xe0], xmm0
paddd xmm11, xmmword [rsp + 0x60]
movdqu xmmword [r8 + 0xf0], xmm11
movaps xmm6, xmmword [rsp + 0xb0]
movaps xmm7, xmmword [rsp + 0xc0]
movaps xmm8, xmmword [rsp + 0xd0]
movaps xmm9, xmmword [rsp + 0xe0]
movaps xmm10, xmmword [rsp + 0xf0]
movaps xmm11, xmmword [rsp + 0x100]
movaps xmm12, xmmword [rsp + 0x110]
movaps xmm13, xmmword [rsp + 0x120]
movaps xmm14, xmmword [rsp + 0x130]
movaps xmm15, xmmword [rsp + 0x140]
add rsp, 0x158
ret