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

Disassembly:
sub rsp, 0xb8
vmovaps xmmword [rsp + 0xa0], xmm15
vmovaps xmmword [rsp + 0x90], xmm14
vmovaps xmmword [rsp + 0x80], xmm13
vmovaps xmmword [rsp + 0x70], xmm12
vmovdqa xmmword [rsp + 0x60], xmm11
vmovdqa 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 xmm4, xmm0, r9d, 1
vmovdqa xmm0, xmmword [rcx]
lea r9, [rax + 2]
vpinsrd xmm1, xmm5, r9d, 0
shr r9, 0x20
vpinsrd xmm3, xmm1, r9d, 1
vmovdqa xmm1, xmmword [rcx + 0x10]
lea r9, [rax + 3]
vpinsrd xmm2, xmm5, r9d, 0
shr r9, 0x20
vpinsrd xmm2, xmm2, r9d, 1
vperm2i128 ymm6, ymm0, ymmword [rcx], 2
vperm2i128 ymm7, ymm1, ymmword [rcx + 0x10], 2
vinserti128 ymm12, ymm5, xmm4, 1
vmovdqa xmmword [rsp], xmm2
vinserti128 ymm9, ymm3, xmm2, 1
test edx, edx
je 0x4317e8
vmovdqa ymm13, ymmword [str.expand_32_byte_kexpand_32_byte_k]
vmovdqa ymm10, ymmword [0x005349a0]
vmovdqa ymm11, ymmword [0x005349c0]
vmovdqa ymm8, ymm13
vmovdqa ymm14, ymm6
vmovdqa ymm15, ymm7
nop word cs:[rax + rax]
vpaddd ymm13, ymm13, ymm14
vpaddd ymm8, ymm8, ymm6
vpxor ymm12, ymm12, ymm13
vpxor ymm9, ymm9, ymm8
vpshuflw ymm12, ymm12, 0xb1
vpshufhw ymm12, ymm12, 0xb1
vpshuflw ymm9, ymm9, 0xb1
vpshufhw ymm9, ymm9, 0xb1
vpaddd ymm15, ymm12, ymm15
vpaddd ymm7, ymm9, ymm7
vpxor ymm14, ymm15, ymm14
vpsrld ymm2, ymm14, 0x14
vpslld ymm14, ymm14, 0xc
vpor ymm2, ymm14, ymm2
vpxor ymm6, ymm7, ymm6
vpsrld ymm14, ymm6, 0x14
vpslld ymm6, ymm6, 0xc
vpor ymm6, ymm14, ymm6
vpaddd ymm13, ymm13, ymm2
vpaddd ymm8, ymm8, ymm6
vpshufb ymm14, ymm13, ymm10
vpshufb ymm12, ymm12, ymm10
vpxor ymm12, ymm12, ymm14
vpshufb ymm14, ymm8, ymm10
vpshufb ymm9, ymm9, ymm10
vpxor ymm9, ymm9, ymm14
vpaddd ymm14, ymm15, ymm12
vpaddd ymm7, ymm9, ymm7
vpxor ymm2, ymm14, ymm2
vpxor ymm6, ymm7, ymm6
vpsrld ymm15, ymm2, 0x19
vpslld ymm2, ymm2, 7
vpor ymm2, ymm15, ymm2
vpsrld ymm15, ymm6, 0x19
vpslld ymm6, ymm6, 7
vpor ymm6, ymm15, ymm6
vpshufd ymm14, ymm14, 0x4e
vpshufd ymm7, ymm7, 0x4e
vpshufd ymm2, ymm2, 0x39
vpaddd ymm13, ymm13, ymm2
vpshufd ymm6, ymm6, 0x39
vpaddd ymm8, ymm8, ymm6
vpshuflw ymm15, ymm13, 0xb1
vpshufhw ymm15, ymm15, 0xb1
vpshufb ymm12, ymm12, ymm11
vpxor ymm12, ymm12, ymm15
vpshuflw ymm15, ymm8, 0xb1
vpshufhw ymm15, ymm15, 0xb1
vpshufb ymm9, ymm9, ymm11
vpxor ymm9, ymm9, ymm15
vpaddd ymm14, ymm14, ymm12
vpaddd ymm7, ymm9, ymm7
vpxor ymm2, ymm14, ymm2
vpsrld ymm15, ymm2, 0x14
vpslld ymm2, ymm2, 0xc
vpor ymm2, ymm15, ymm2
vpxor ymm6, ymm7, ymm6
vpsrld ymm15, ymm6, 0x14
vpslld ymm6, ymm6, 0xc
vpor ymm6, ymm15, ymm6
vpaddd ymm13, ymm13, ymm2
vpaddd ymm8, ymm8, ymm6
vpxor ymm12, ymm12, ymm13
vpshufb ymm12, ymm12, ymm10
vpxor ymm9, ymm9, ymm8
vpshufb ymm9, ymm9, ymm10
vpaddd ymm15, ymm14, ymm12
vpaddd ymm7, ymm9, ymm7
vpxor ymm2, ymm15, ymm2
vpxor ymm6, ymm7, ymm6
vpsrld ymm14, ymm2, 0x19
vpslld ymm2, ymm2, 7
vpor ymm2, ymm14, ymm2
vpsrld ymm14, ymm6, 0x19
vpslld ymm6, ymm6, 7
vpor ymm6, ymm14, ymm6
vpshufd ymm14, ymm2, 0x93
vpshufd ymm6, ymm6, 0x93
vpshufd ymm15, ymm15, 0x4e
vpshufd ymm7, ymm7, 0x4e
vpshufd ymm12, ymm12, 0x39
vpshufd ymm9, ymm9, 0x39
dec edx
jne 0x431650
jmp 0x4317fd
vmovdqa ymm8, ymmword [str.expand_32_byte_kexpand_32_byte_k]
vmovdqa ymm15, ymm7
vmovdqa ymm14, ymm6
vmovdqa ymm13, ymm8
add rax, 4
mov rdx, rax
shr rdx, 0x20
vpinsrd xmm2, xmm5, eax, 0
vpinsrd xmm2, xmm2, edx, 1
vextracti128 xmm10, ymm13, 1
vmovdqa xmmword [rcx + 0x20], xmm2
vmovdqa xmm2, xmmword [0x005349e0]
vpaddd xmm11, xmm13, xmm2
vmovdqu xmmword [r8], xmm11
vpaddd xmm11, xmm14, xmm0
vmovdqu xmmword [r8 + 0x10], xmm11
vpaddd xmm11, xmm15, xmm1
vmovdqu xmmword [r8 + 0x20], xmm11
vextracti128 xmm11, ymm8, 1
vextracti128 xmm13, ymm14, 1
vpaddd xmm5, xmm12, xmm5
vmovdqu xmmword [r8 + 0x30], xmm5
vextracti128 xmm5, ymm6, 1
vextracti128 xmm14, ymm15, 1
vpaddd xmm10, xmm10, xmm2
vmovdqu xmmword [r8 + 0x40], xmm10
vextracti128 xmm10, ymm7, 1
vextracti128 xmm12, ymm12, 1
vpaddd xmm13, xmm13, xmm0
vmovdqu xmmword [r8 + 0x50], xmm13
vextracti128 xmm13, ymm9, 1
vpaddd xmm14, xmm14, xmm1
vmovdqu xmmword [r8 + 0x60], xmm14
vpaddd xmm4, xmm12, xmm4
vmovdqu xmmword [r8 + 0x70], xmm4
vpaddd xmm4, xmm8, xmm2
vmovdqu xmmword [r8 + 0x80], xmm4
vpaddd xmm4, xmm6, xmm0
vmovdqu xmmword [r8 + 0x90], xmm4
vpaddd xmm4, xmm7, xmm1
vmovdqu xmmword [r8 + 0xa0], xmm4
vpaddd xmm3, xmm9, xmm3
vmovdqu xmmword [r8 + 0xb0], xmm3
vpaddd xmm2, xmm11, xmm2
vmovdqu xmmword [r8 + 0xc0], xmm2
vpaddd xmm0, xmm5, xmm0
vmovdqu xmmword [r8 + 0xd0], xmm0
vpaddd xmm0, xmm10, xmm1
vmovdqu xmmword [r8 + 0xe0], xmm0
vpaddd xmm0, xmm13, xmmword [rsp]
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