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

Disassembly:
push r15
push r14
push rsi
push rdi
push rbp
push rbx
sub rsp, 0xc8
vmovaps xmmword [rsp + 0xb0], xmm15
vmovdqa xmmword [rsp + 0xa0], xmm14
vmovdqa xmmword [rsp + 0x90], xmm13
vmovdqa xmmword [rsp + 0x80], xmm12
vmovdqa xmmword [rsp + 0x70], xmm11
vmovdqa xmmword [rsp + 0x60], xmm10
vmovdqa xmmword [rsp + 0x50], xmm9
vmovdqa xmmword [rsp + 0x40], xmm8
vmovdqa xmmword [rsp + 0x30], xmm7
vmovdqa xmmword [rsp + 0x20], xmm6
mov rsi, rdx
mov rdi, rcx
lea rbx, [rdx + 0x10]
lea r14, [rdx + 0x120]
mov rax, qword [rdx + 0x110]
mov r15d, 0x41
jmp 0x140001c57
shr rcx, 0x20
mov rdx, qword [rdi + r15*8 - 8]
mov r8, qword [rdi + rcx*8]
mov qword [rdi + r15*8 - 8], r8
lea r8, [r15 - 1]
mov qword [rdi + rcx*8], rdx
mov r15, r8
cmp r8, 1
jbe 0x140002020
xor ecx, ecx
lzcnt ecx, r15d
shlx ebp, r15d, ecx
dec ebp
jmp 0x140001c93
mov rcx, r14
mov rdx, rbx
call fcn.140001900
xor eax, eax
mov ecx, dword [rsi + rax*4 + 0x10]
inc rax
mov qword [rsi + 0x110], rax
imul rcx, r15
cmp ebp, ecx
jae 0x140001c30
cmp rax, 0x40
jb 0x140001c7d
mov rax, qword [rsi + 0x158]
test rax, rax
jle 0x140001c70
cmp qword [rsi + 0x160], 0
js 0x140001c70
add rax, 0xffffffffffffff00
mov qword [rsi + 0x158], rax
mov rax, qword [rsi + 0x140]
vmovdqa xmm0, xmmword [rsi + 0x140]
lea rcx, [rax + 1]
vpinsrd xmm1, xmm0, ecx, 0
shr rcx, 0x20
vpinsrd xmm3, xmm1, ecx, 1
lea rcx, [rax + 2]
vpinsrd xmm1, xmm0, ecx, 0
shr rcx, 0x20
vpinsrd xmm4, xmm1, ecx, 1
add rax, 3
vpinsrd xmm1, xmm0, eax, 0
shr rax, 0x20
vpinsrd xmm5, xmm1, eax, 1
vbroadcasti128 ymm1, xmmword [rsi + 0x120]
vbroadcasti128 ymm2, xmmword [rsi + 0x130]
vinserti128 ymm8, ymm0, xmm3, 1
vinserti128 ymm5, ymm4, xmm5, 1
mov eax, 6
vbroadcasti128 ymm3, xmmword [str.expand_32_byte_k]
vmovdqa ymm7, ymm3
vmovdqa ymm9, ymm1
vmovdqa ymm4, ymm1
vmovdqa ymm10, ymm2
vmovdqa ymm6, ymm2
vmovdqa ymm12, ymmword [0x1400303e0]
vbroadcasti128 ymm13, xmmword [0x140030430]
vmovdqa ymm14, ymmword [0x140030400]
vpaddd ymm7, ymm9, ymm7
vpaddd ymm3, ymm3, ymm4
vpxor ymm8, ymm8, ymm7
vpxor ymm5, ymm5, ymm3
vpshufb ymm8, ymm8, ymm12
vpshufb ymm5, ymm5, ymm12
vpaddd ymm10, ymm8, ymm10
vpaddd ymm6, ymm5, ymm6
vpxor ymm9, ymm10, ymm9
vpsrld ymm11, ymm9, 0x14
vpslld ymm9, ymm9, 0xc
vpor ymm9, ymm9, ymm11
vpxor ymm4, ymm6, ymm4
vpsrld ymm11, ymm4, 0x14
vpslld ymm4, ymm4, 0xc
vpor ymm4, ymm11, ymm4
vpaddd ymm7, ymm9, ymm7
vpaddd ymm3, ymm4, ymm3
vpxor ymm8, ymm8, ymm7
vpshufb ymm8, ymm8, ymm13
vpxor ymm5, ymm5, ymm3
vpshufb ymm5, ymm5, ymm13
vpaddd ymm10, ymm10, ymm8
vpaddd ymm6, ymm6, ymm5
vpxor ymm9, ymm10, ymm9
vpxor ymm4, ymm6, ymm4
vpsrld ymm11, ymm9, 0x19
vpslld ymm9, ymm9, 7
vpor ymm9, ymm9, ymm11
vpsrld ymm11, ymm4, 0x19
vpslld ymm4, ymm4, 7
vpor ymm4, ymm11, ymm4
vpshufd ymm9, ymm9, 0x39
vpshufd ymm4, ymm4, 0x39
vpshufd ymm10, ymm10, 0x4e
vpshufd ymm6, ymm6, 0x4e
vpaddd ymm7, ymm9, ymm7
vpaddd ymm3, ymm4, ymm3
vpshufb ymm11, ymm7, ymm12
vpshufb ymm8, ymm8, ymm14
vpxor ymm8, ymm11, ymm8
vpshufb ymm11, ymm3, ymm12
vpshufb ymm5, ymm5, ymm14
vpxor ymm5, ymm11, ymm5
vpaddd ymm10, ymm10, ymm8
vpaddd ymm6, ymm6, ymm5
vpxor ymm9, ymm10, ymm9
vpsrld ymm11, ymm9, 0x14
vpslld ymm9, ymm9, 0xc
vpor ymm9, ymm9, ymm11
vpxor ymm4, ymm6, ymm4
vpsrld ymm11, ymm4, 0x14
vpslld ymm4, ymm4, 0xc
vpor ymm4, ymm11, ymm4
vpaddd ymm7, ymm9, ymm7
vpaddd ymm3, ymm4, ymm3
vpxor ymm8, ymm8, ymm7
vpshufb ymm8, ymm8, ymm13
vpxor ymm5, ymm5, ymm3
vpshufb ymm5, ymm5, ymm13
vpaddd ymm10, ymm10, ymm8
vpaddd ymm6, ymm6, ymm5
vpxor ymm9, ymm10, ymm9
vpxor ymm4, ymm6, ymm4
vpsrld ymm11, ymm9, 0x19
vpslld ymm9, ymm9, 7
vpor ymm9, ymm9, ymm11
vpsrld ymm11, ymm4, 0x19
vpslld ymm4, ymm4, 7
vpor ymm4, ymm11, ymm4
vpshufd ymm8, ymm8, 0x39
vpshufd ymm5, ymm5, 0x39
vpshufd ymm9, ymm9, 0x93
vpshufd ymm4, ymm4, 0x93
vpshufd ymm10, ymm10, 0x4e
vpshufd ymm6, ymm6, 0x4e
dec eax
jne 0x140001d60
vmovq rax, xmm0
lea rcx, [rax + 1]
vpinsrd xmm11, xmm0, ecx, 0
shr rcx, 0x20
vpinsrd xmm12, xmm11, ecx, 1
lea rcx, [rax + 2]
vpinsrd xmm11, xmm0, ecx, 0
shr rcx, 0x20
vpinsrd xmm11, xmm11, ecx, 1
lea rcx, [rax + 4]
vpinsrd xmm13, xmm0, ecx, 0
shr rcx, 0x20
vpinsrd xmm13, xmm13, ecx, 1
vmovdqa xmmword [rsi + 0x140], xmm13
vextracti128 xmm13, ymm7, 1
vmovdqa xmm14, xmmword [str.expand_32_byte_k]
vpaddd xmm7, xmm14, xmm7
vmovdqu xmmword [rsi + 0x10], xmm7
vextracti128 xmm7, ymm9, 1
vpaddd xmm9, xmm9, xmm1
vmovdqu xmmword [rsi + 0x20], xmm9
vextracti128 xmm9, ymm10, 1
vpaddd xmm10, xmm10, xmm2
vmovdqu xmmword [rsi + 0x30], xmm10
vextracti128 xmm10, ymm8, 1
vpaddd xmm8, xmm8, xmm0
vmovdqu xmmword [rsi + 0x40], xmm8
vpaddd xmm8, xmm12, xmm10
vpaddd xmm10, xmm13, xmm14
vmovdqu xmmword [rsi + 0x50], xmm10
vpaddd xmm7, xmm7, xmm1
vmovdqu xmmword [rsi + 0x60], xmm7
vpaddd xmm7, xmm9, xmm2
vmovdqu xmmword [rsi + 0x70], xmm7
vmovdqu xmmword [rsi + 0x80], xmm8
vpaddd xmm7, xmm14, xmm3
vmovdqu xmmword [rsi + 0x90], xmm7
vpaddd xmm7, xmm4, xmm1
vmovdqu xmmword [rsi + 0xa0], xmm7
vpaddd xmm7, xmm6, xmm2
vmovdqu xmmword [rsi + 0xb0], xmm7
vpaddd xmm7, xmm11, xmm5
vmovdqu xmmword [rsi + 0xc0], xmm7
vextracti128 xmm5, ymm5, 1
vextracti128 xmm6, ymm6, 1
vextracti128 xmm4, ymm4, 1
add rax, 3
vpinsrd xmm0, xmm0, eax, 0
vextracti128 xmm3, ymm3, 1
shr rax, 0x20
vpinsrd xmm0, xmm0, eax, 1
vpaddd xmm0, xmm0, xmm5
vpaddd xmm3, xmm14, xmm3
vmovdqu xmmword [rsi + 0xd0], xmm3
vpaddd xmm1, xmm4, xmm1
vmovdqu xmmword [rsi + 0xe0], xmm1
vpaddd xmm1, xmm6, xmm2
vmovdqu xmmword [rsi + 0xf0], xmm1
vmovdqu xmmword [rsi + 0x100], xmm0
vzeroupper
jmp 0x140001c7b
vmovaps xmm6, xmmword [rsp + 0x20]
vmovaps xmm7, xmmword [rsp + 0x30]
vmovaps xmm8, xmmword [rsp + 0x40]
vmovaps xmm9, xmmword [rsp + 0x50]
vmovaps xmm10, xmmword [rsp + 0x60]
vmovaps xmm11, xmmword [rsp + 0x70]
vmovaps xmm12, xmmword [rsp + 0x80]
vmovaps xmm13, xmmword [rsp + 0x90]
vmovaps xmm14, xmmword [rsp + 0xa0]
vmovaps xmm15, xmmword [rsp + 0xb0]
add rsp, 0xc8
pop rbx
pop rbp
pop rdi
pop rsi
pop r14
pop r15
ret