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

Disassembly:
push rsi
push rdi
sub rsp, 0x178
movaps xmmword [rsp + 0x160], xmm15
movaps xmmword [rsp + 0x150], xmm14
movaps xmmword [rsp + 0x140], xmm13
movaps xmmword [rsp + 0x130], xmm12
movaps xmmword [rsp + 0x120], xmm11
movaps xmmword [rsp + 0x110], xmm10
movaps xmmword [rsp + 0x100], xmm9
movaps xmmword [rsp + 0xf0], xmm8
movaps xmmword [rsp + 0xe0], xmm7
movaps xmmword [rsp + 0xd0], xmm6
mov rax, qword [0x1401822d8]
test rax, rax
je 0x14004ae5a
test ax, ax
js 0x14004ae74
mov rax, qword [0x1401822d8]
test rax, rax
je 0x14004aeda
test eax, 0x4000
jne 0x14004aef6
mov rax, qword [0x1401822d8]
test rax, rax
je 0x14004af5c
test eax, 0x400
jne 0x14004af78
mov rax, qword [0x1401822d8]
test rax, rax
je 0x14004afde
test eax, 0x200
jne 0x14004affa
movdqa xmm11, xmmword [rcx]
movdqa xmm2, xmmword [rcx + 0x10]
movdqa xmm8, xmmword [rcx + 0x20]
mov rax, qword [rcx + 0x20]
lea r8, [rax + 1]
movd xmm12, r8d
shr r8, 0x20
pshufd xmm0, xmm8, 0xf8
pslldq xmm0, 4
movdqa xmmword [rsp + 0x50], xmm0
movd xmm0, r8d
pslldq xmm0, 8
shufps xmm0, xmm8, 0xe8
por xmm12, xmm0
lea r8, [rax + 2]
movd xmm7, r8d
shr r8, 0x20
movd xmm0, r8d
pslldq xmm0, 8
shufps xmm0, xmm8, 0xe8
por xmm7, xmm0
lea r8, [rax + 3]
movd xmm5, r8d
shr r8, 0x20
movd xmm0, r8d
pslldq xmm0, 8
shufps xmm0, xmm8, 0xe8
por xmm5, xmm0
movdqa xmm10, xmmword [str.expand_32_byte_k]
mov r8d, 6
movdqa xmm9, xmm10
movdqa xmmword [rsp + 0x40], xmm10
movdqa xmmword [rsp + 0x30], xmm10
movdqa xmm1, xmm11
movdqa xmm15, xmm11
movdqa xmm13, xmm11
movdqa xmmword [rsp + 0xa0], xmm11
movdqa xmm6, xmm2
movdqa xmm0, xmm2
movdqa xmm14, xmm2
movdqa xmmword [rsp + 0xb0], xmm2
movdqa xmmword [rsp + 0x20], xmm2
movaps xmmword [rsp + 0x90], xmm8
movdqa xmmword [rsp + 0x80], xmm12
movdqa xmmword [rsp + 0x70], xmm7
movdqa xmmword [rsp + 0x60], xmm5
nop word [rax + rax]
mov rsi, rdx
mov rdi, rcx
call fcn.140110f30
mov rcx, rdi
mov rdx, rsi
test ax, ax
jns 0x14004a6aa
movaps xmm6, xmmword [rsp + 0xd0]
movaps xmm7, xmmword [rsp + 0xe0]
movaps xmm8, xmmword [rsp + 0xf0]
movaps xmm9, xmmword [rsp + 0x100]
movaps xmm10, xmmword [rsp + 0x110]
movaps xmm11, xmmword [rsp + 0x120]
movaps xmm12, xmmword [rsp + 0x130]
movaps xmm13, xmmword [rsp + 0x140]
movaps xmm14, xmmword [rsp + 0x150]
movaps xmm15, xmmword [rsp + 0x160]
add rsp, 0x178
pop rdi
pop rsi
jmp 0x14004b060
mov rsi, rdx
mov rdi, rcx
call fcn.140110f30
mov rcx, rdi
mov rdx, rsi
test eax, 0x4000
je 0x14004a6c5
movaps xmm6, xmmword [rsp + 0xd0]
movaps xmm7, xmmword [rsp + 0xe0]
movaps xmm8, xmmword [rsp + 0xf0]
movaps xmm9, xmmword [rsp + 0x100]
movaps xmm10, xmmword [rsp + 0x110]
movaps xmm11, xmmword [rsp + 0x120]
movaps xmm12, xmmword [rsp + 0x130]
movaps xmm13, xmmword [rsp + 0x140]
movaps xmm14, xmmword [rsp + 0x150]
movaps xmm15, xmmword [rsp + 0x160]
add rsp, 0x178
pop rdi
pop rsi
jmp 0x14004b450
mov rsi, rdx
mov rdi, rcx
call fcn.140110f30
mov rcx, rdi
mov rdx, rsi
test eax, 0x400
je 0x14004a6e0
movaps xmm6, xmmword [rsp + 0xd0]
movaps xmm7, xmmword [rsp + 0xe0]
movaps xmm8, xmmword [rsp + 0xf0]
movaps xmm9, xmmword [rsp + 0x100]
movaps xmm10, xmmword [rsp + 0x110]
movaps xmm11, xmmword [rsp + 0x120]
movaps xmm12, xmmword [rsp + 0x130]
movaps xmm13, xmmword [rsp + 0x140]
movaps xmm14, xmmword [rsp + 0x150]
movaps xmm15, xmmword [rsp + 0x160]
add rsp, 0x178
pop rdi
pop rsi
jmp 0x14004ba90
mov rsi, rdx
mov rdi, rcx
call fcn.140110f30
mov rcx, rdi
mov rdx, rsi
test eax, 0x200
je 0x14004a6fb
movaps xmm6, xmmword [rsp + 0xd0]
movaps xmm7, xmmword [rsp + 0xe0]
movaps xmm8, xmmword [rsp + 0xf0]
movaps xmm9, xmmword [rsp + 0x100]
movaps xmm10, xmmword [rsp + 0x110]
movaps xmm11, xmmword [rsp + 0x120]
movaps xmm12, xmmword [rsp + 0x130]
movaps xmm13, xmmword [rsp + 0x140]
movaps xmm14, xmmword [rsp + 0x150]
movaps xmm15, xmmword [rsp + 0x160]
add rsp, 0x178
pop rdi
pop rsi
jmp 0x14004c170
sub rsp, 0xb8
vmovaps xmmword [rsp + 0xa0], xmm15
vmovaps 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 r8, [rax + 1]
vpinsrd xmm0, xmm5, r8d, 0
shr r8, 0x20
vpinsrd xmm3, xmm0, r8d, 1
lea r8, [rax + 2]
vpinsrd xmm0, xmm5, r8d, 0
shr r8, 0x20
vpinsrd xmm1, xmm0, r8d, 1
lea r8, [rax + 3]
vpinsrd xmm0, xmm5, r8d, 0
shr r8, 0x20
vpinsrd xmm0, xmm0, r8d, 1
vmovdqu ymm4, ymmword [rcx]
vmovdqu ymm2, ymmword [rcx + 0x10]
vmovdqa xmmword [rsp], xmm0
vinserti128 ymm10, ymm1, xmm0, 1
vinserti128 ymm15, ymm5, xmm3, 1
vinserti128 ymm13, ymm4, xmm4, 1
vinserti128 ymm14, ymm2, xmm2, 1
vbroadcasti128 ymm12, xmmword [str.expand_32_byte_k]
mov r8d, 6
vbroadcasti128 ymm6, xmmword [0x1401139c0]
vmovdqa ymm7, ymmword [0x1401139a0]
vmovdqa ymm8, ymm12
vmovdqa ymm9, ymm13
vmovdqa ymm11, ymm14
nop word cs:[rax + rax]
sub rsp, 0x168
vmovaps xmmword [rsp + 0x150], xmm15
vmovaps xmmword [rsp + 0x140], xmm14
js 0x14004b48c
mov ah, 0x24
add dword [rax], eax
add ch, al
js 0x14004b495
lodsb al, byte [rsi]
and al, 0x30
add dword [rax], eax
add ch, al
js 0x14004b49e
movsb byte [rdi], byte [rsi]
and al, 0x20
add dword [rax], eax
add ch, al
js 0x14004b4a7
pushfq
and al, 0x10
add dword [rax], eax
add byte [rax], al
sub rsp, 0x148
movaps xmmword [rsp + 0x130], xmm15
movaps xmmword [rsp + 0x120], xmm14
sub rsp, 0x158
movaps xmmword [rsp + 0x140], xmm15
movaps xmmword [rsp + 0x140], xmm7