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

Disassembly:
push rbp
push r15
push r14
push rsi
push rdi
push rbx
sub rsp, 0x408
lea rbp, [rsp + 0x80]
vmovdqa xmmword [rbp + 0x370], xmm15
vmovdqa xmmword [rbp + 0x360], xmm14
vmovdqa xmmword [rbp + 0x350], xmm13
vmovdqa xmmword [rbp + 0x340], xmm12
vmovdqa xmmword [rbp + 0x330], xmm11
vmovdqa xmmword [rbp + 0x320], xmm10
vmovdqa xmmword [rbp + 0x310], xmm9
vmovdqa xmmword [rbp + 0x300], xmm8
vmovdqa xmmword [rbp + 0x2f0], xmm7
vmovdqa xmmword [rbp + 0x2e0], xmm6
and rsp, 0xffffffffffffffe0
mov dword [rsp + 0x1c], 0
mov dword [rsp + 0x14], 0xd8371712
lea rax, [rsp + 0x14]
mov qword [rsp + 8], rax
lea rax, [rcx + 0x20]
vbroadcastf128 ymm0, xmmword [0x140259060]
mov r8d, 0xe2255338
mov r9d, 0x2983c057
vpcmpeqd ymm1, ymm1, ymm1
vpbroadcastq ymm2, qword [0x140259120]
vbroadcasti128 ymm3, xmmword [0x1402589e0]
vpbroadcastd ymm4, dword [0x140259128]
vpbroadcastd ymm5, dword [0x140259160]
mov r10d, 0xb9f9be8e
mov r11d, 0x68d0f8bd
mov esi, 0xcb6740e7
jmp 0x14011c3a1
cmp dword [rsp + 0x1c], 0xab05b5a8
mov edi, 0x2983c057
cmove edi, r8d
mov rbx, qword [rsp + 8]
mov dword [rbx], edi
mov edi, dword [rsp + 0x14]
cmp edi, 0x156bab0d
jg 0x14011c3f0
cmp edi, 0xcb6740e6
jle 0x14011c550
cmp edi, 0xcb6740e7
je 0x14011c5ca
cmp edi, 0xd8371712
je 0x14011c389
cmp edi, 0xe2255338
jne 0x14011c3a1
mov rdi, qword [rsp + 8]
mov dword [rdi], 0x2983c057
jmp 0x14011c3a1
cmp edi, 0x2d13cc4d
jle 0x14011c580
cmp edi, 0x2d13cc4e
je 0x14011c64e
cmp edi, 0x3f6bdd9c
je 0x14011c6b2
cmp edi, 0x68d0f8bd
jne 0x14011c3a1
mov edi, dword [0x1415bd390]
mov ebx, dword [0x1415bd394]
mov r14d, edi
xor r14d, ebx
not r14d
or edi, ebx
and edi, r14d
or edi, 0x6c6d5f7c
add edi, 0x90f17503
or edi, 0x18028c7e
mov rbx, qword [rsp + 0x20]
vmovdqa xmm7, xmmword [rbx]
vmovq rbx, xmm7
lea r14, [rbx + 1]
vpinsrd xmm8, xmm7, r14d, 0
shr r14, 0x20
lea r15, [rbx + 2]
vpinsrd xmm8, xmm8, r14d, 1
vmovdqa xmmword [rsp + 0x50], xmm8
vpinsrd xmm8, xmm7, r15d, 0
shr r15, 0x20
mov r14d, ebx
and r14d, 3
or rbx, 3
add rbx, r14
vmovdqa xmmword [rsp + 0x60], xmm7
vmovq qword [rsp + 0x28], xmm7
vmovdqa xmmword [rsp + 0xd0], xmm7
vpinsrd xmm7, xmm7, ebx, 0
shr rbx, 0x20
vpinsrd xmm8, xmm8, r15d, 1
vpinsrd xmm7, xmm7, ebx, 1
vmovdqa xmmword [rsp + 0xc0], xmm8
vmovdqa xmmword [rsp + 0xb0], xmm7
vmovdqa xmmword [rsp + 0x300], xmm8
vmovdqa xmmword [rsp + 0x310], xmm7
vmovaps xmm7, xmmword [rsp + 0x60]
vmovaps xmm8, xmmword [rsp + 0x50]
vmovaps xmmword [rsp + 0x2e0], xmm7
vmovaps xmmword [rsp + 0x2f0], xmm8
vmovaps xmm7, xmmword [rcx + 0x10]
vmovaps xmmword [rsp + 0x40], xmm7
vbroadcasti128 ymm7, xmmword [rsp + 0x40]
vmovaps xmm8, xmmword [rcx]
vmovaps xmmword [rsp + 0x30], xmm8
vbroadcasti128 ymm8, xmmword [rsp + 0x30]
cmp edi, 0x19b2e08c
vmovdqa ymmword [rsp + 0x340], ymm8
vmovdqa ymmword [rsp + 0x320], ymm7
mov edi, 0x68d0f8bd
cmovne edi, esi
jmp 0x14011c39a
cmp edi, 0xc7d80e07
je 0x14011c6c2
cmp edi, 0xc8c839b9
jne 0x14011ca26
mov qword [rsp + 0x20], rax
mov rdi, qword [rsp + 8]
mov dword [rdi], 0x2d13cc4e
jmp 0x14011c3a1
cmp edi, 0x156bab0e
je 0x14011c6d2
cmp edi, 0x2983c057
jne 0x14011c3a1
mov edi, dword [0x1415bd380]
mov ebx, dword [0x1415bd384]
xor ebx, edi
not ebx
and ebx, edi
or ebx, 0xdc31b70b
add ebx, 0x8e05605a
cmp ebx, 0xb2d15a38
mov edi, 0x3f6bdd9c
cmovae edi, r9d
jmp 0x14011c39a
mov rdi, qword [rsp + 8]
mov dword [rdi], 0x156bab0e
vmovdqa ymm7, ymmword [rsp + 0x300]
vmovdqa ymm8, ymmword [rsp + 0x2e0]
vmovdqa ymm9, ymmword [rsp + 0x340]
vmovdqa ymm10, ymmword [rsp + 0x320]
mov dword [rsp + 0x18], 0
vmovaps ymmword [rsp + 0x2c0], ymm0
vmovaps ymmword [rsp + 0x2a0], ymm0
vmovdqa ymmword [rsp + 0x280], ymm10
vmovdqa ymmword [rsp + 0x260], ymm10
vmovdqa ymmword [rsp + 0x240], ymm9
vmovdqa ymmword [rsp + 0x220], ymm9
vmovdqa ymmword [rsp + 0x200], ymm7
vmovdqa ymmword [rsp + 0x1e0], ymm8
jmp 0x14011c3a1
mov edi, dword [0x1415bd388]
sub edi, dword [0x1415bd38c]
mov ebx, edi
not ebx
and ebx, 0xbaee4539
mov r14d, edi
and r14d, 0x4511bac6
imul r14d, ebx
mov ebx, edi
and ebx, 0xbaee4539
or edi, 0xbaee4539
imul edi, ebx
add edi, r14d
add edi, 0xd8418611
mov ebx, edi
not ebx
or edi, 0x21e28e88
or ebx, 0xde1d7177
and ebx, edi
cmp ebx, 0xe5773b13
mov edi, 0xc7d80e07
cmovb edi, r11d
jmp 0x14011c39a
mov rdi, qword [rsp + 8]
mov dword [rdi], 0xc8c839b9
jmp 0x14011c3a1
mov rdi, qword [rsp + 8]
mov dword [rdi], 0x68d0f8bd
jmp 0x14011c3a1
vmovdqa ymm7, ymmword [rsp + 0x1e0]
vmovdqa ymm8, ymmword [rsp + 0x220]
vmovdqa ymm9, ymmword [rsp + 0x240]
vpaddd ymm10, ymm8, ymmword [rsp + 0x2a0]
vpaddd ymm11, ymm9, ymmword [rsp + 0x2c0]
vmovdqa ymm12, ymmword [rsp + 0x200]
vpxor ymm13, ymm7, ymm1
vpxor ymm14, ymm10, ymm1
vpor ymm13, ymm13, ymm14
vpxor ymm13, ymm13, ymm1
vpandn ymm7, ymm7, ymm14
vpor ymm7, ymm13, ymm7
vpandn ymm13, ymm12, ymm2
vpandn ymm14, ymm11, ymm2
vpandn ymm12, ymm2, ymm12
vpor ymm12, ymm13, ymm12
vpandn ymm13, ymm2, ymm11
vpor ymm13, ymm14, ymm13
vpxor ymm12, ymm12, ymm13
vpshuflw ymm7, ymm7, 0xb1
vpshufhw ymm7, ymm7, 0xb1
vpxor ymm7, ymm7, ymm1
vpshuflw ymm12, ymm12, 0xb1
vpaddd ymm13, ymm7, ymmword [rsp + 0x260]
vpshufhw ymm12, ymm12, 0xb1
vpaddd ymm14, ymm12, ymmword [rsp + 0x280]
vpxor ymm8, ymm13, ymm8
vpsrld ymm15, ymm8, 0x14
vpslld ymm8, ymm8, 0xc
vpor ymm15, ymm8, ymm15
vpxor ymm8, ymm14, ymm9
vpsrld ymm9, ymm8, 0x14
vpslld ymm8, ymm8, 0xc
vpor ymm6, ymm8, ymm9
vpaddd ymm9, ymm15, ymm10
vpaddd ymm8, ymm11, ymm6
vpxor ymm7, ymm9, ymm7
vpshufb ymm10, ymm7, ymm3
vpshufb ymm7, ymm8, ymm3
vpshufb ymm11, ymm12, ymm3
vpxor ymm7, ymm11, ymm7
vpand ymm11, ymm13, ymm10
vpor ymm12, ymm13, ymm10
vpaddd ymm11, ymm11, ymm12
vpaddd ymm12, ymm14, ymm7
vpand ymm13, ymm11, ymm15
vpaddd ymm13, ymm13, ymm13
vpaddd ymm14, ymm11, ymm15
vpsubd ymm13, ymm14, ymm13
vpandn ymm14, ymm12, ymm4
vpandn ymm15, ymm4, ymm12
vpor ymm14, ymm14, ymm15
vpandn ymm15, ymm6, ymm4
vpandn ymm6, ymm4, ymm6
vpor ymm6, ymm15, ymm6
vpxor ymm6, ymm14, ymm6
vpsrld ymm14, ymm13, 0x19
vpslld ymm13, ymm13, 7
vpor ymm13, ymm13, ymm14
vpsrld ymm14, ymm6, 0x19
vpslld ymm6, ymm6, 7
vpor ymm6, ymm14, ymm6
vpshufd ymm13, ymm13, 0x39
vpshufd ymm6, ymm6, 0x39
vpshufd ymm11, ymm11, 0x4e
vpshufd ymm12, ymm12, 0x4e
vpshufd ymm10, ymm10, 0x93
vpaddd ymm9, ymm13, ymm9
vpand ymm14, ymm8, ymm6
vpor ymm8, ymm8, ymm6
vpaddd ymm8, ymm14, ymm8
vpand ymm14, ymm9, ymm10
vpaddd ymm14, ymm14, ymm14
vpaddd ymm10, ymm9, ymm10
vpsubd ymm10, ymm10, ymm14
vpshuflw ymm10, ymm10, 0xb1
vpshufhw ymm10, ymm10, 0xb1
vpshuflw ymm14, ymm8, 0xb1
vpshufhw ymm14, ymm14, 0xb1
vpshufb ymm7, ymm7, ymmword [0x140259140]
vpxor ymm14, ymm14, ymm7
vpaddd ymm11, ymm11, ymm10
vpaddd ymm12, ymm14, ymm12
vpand ymm7, ymm11, ymm13
vpor ymm13, ymm11, ymm13
vpxor ymm13, ymm13, ymm1
vpor ymm7, ymm13, ymm7
vpxor ymm7, ymm7, ymm1
vpand ymm13, ymm12, ymm6
vpor ymm6, ymm12, ymm6
vpandn ymm6, ymm13, ymm6
vpsrld ymm13, ymm7, 0x14
vpslld ymm7, ymm7, 0xc
vpor ymm13, ymm13, ymm7
vpsrld ymm7, ymm6, 0x14
vpslld ymm6, ymm6, 0xc
vpor ymm6, ymm6, ymm7
vpaddd ymm7, ymm13, ymm9
vpaddd ymm8, ymm8, ymm6
vpandn ymm9, ymm10, ymm7
vpandn ymm10, ymm7, ymm10
vpor ymm15, ymm9, ymm10
vpxor ymm9, ymm14, ymm8
vpshufb ymm9, ymm9, ymm3
vpand ymm10, ymm12, ymm9
vpaddd ymm10, ymm10, ymm10
vpxor ymm12, ymm12, ymm9
vpaddd ymm10, ymm12, ymm10
vpandn ymm12, ymm10, ymm5
vpandn ymm14, ymm5, ymm10
vpor ymm12, ymm12, ymm14
vpandn ymm14, ymm6, ymm5
vpandn ymm6, ymm5, ymm6
vpor ymm6, ymm14, ymm6
vpshufb ymm14, ymm15, ymm3
vpaddd ymm11, ymm14, ymm11
vpxor ymm13, ymm11, ymm13
vpxor ymm6, ymm12, ymm6
vpsrld ymm12, ymm13, 0x19
vpslld ymm13, ymm13, 7
vpor ymm12, ymm13, ymm12
vpsrld ymm13, ymm6, 0x19
vpslld ymm6, ymm6, 7
vpor ymm6, ymm13, ymm6
mov edi, dword [rsp + 0x18]
inc edi
cmp edi, 6
mov ebx, 0x156bab0e
cmove ebx, r10d
mov r14, qword [rsp + 8]
mov dword [r14], ebx
vmovdqa ymmword [rsp + 0x2a0], ymm7
vmovdqa ymmword [rsp + 0x1c0], ymm7
vmovdqa ymmword [rsp + 0x2c0], ymm8
vmovdqa ymmword [rsp + 0x1a0], ymm8
vpshufd ymm7, ymm12, 0x93
vmovdqa ymmword [rsp + 0x220], ymm7
vmovdqa ymmword [rsp + 0x180], ymm7
vpshufd ymm6, ymm6, 0x93
vmovdqa ymmword [rsp + 0x240], ymm6
vmovdqa ymmword [rsp + 0x160], ymm6
vpshufd ymm6, ymm11, 0x4e
vmovdqa ymmword [rsp + 0x260], ymm6
vmovdqa ymmword [rsp + 0x140], ymm6
vpshufd ymm6, ymm10, 0x4e
vmovdqa ymmword [rsp + 0x280], ymm6
vmovdqa ymmword [rsp + 0x120], ymm6
vpshufd ymm6, ymm14, 0x39
vmovdqa ymmword [rsp + 0x1e0], ymm6
vmovdqa ymmword [rsp + 0x100], ymm6
vpshufd ymm6, ymm9, 0x39
vmovdqa ymmword [rsp + 0x200], ymm6
vmovdqa ymmword [rsp + 0xe0], ymm6
mov dword [rsp + 0x18], edi
jmp 0x14011c3a1
cmp edi, 0xb9f9be8e
jne 0x14011c3a1
vmovdqa xmm3, xmmword [rsp + 0x60]
vmovdqa xmm0, xmmword [rsp + 0x40]
vmovdqa xmm6, xmmword [rsp + 0x30]
mov rax, qword [rsp + 0x28]
add rax, 4
vmovdqa xmm1, xmmword [rsp + 0xd0]
vpinsrd xmm1, xmm1, eax, 0
shr rax, 0x20
vpinsrd xmm8, xmm1, eax, 1
vmovdqa xmm9, xmmword [rsp + 0x1c0]
vmovdqa xmm10, xmmword [rsp + 0x1d0]
vmovdqa xmm4, xmmword [rsp + 0x1a0]
vmovdqa xmm5, xmmword [rsp + 0x1b0]
vmovdqa xmm11, xmmword [rsp + 0x150]
vmovdqa xmm12, xmmword [rsp + 0x100]
vmovdqa xmm13, xmmword [rsp + 0x110]
vmovaps xmm1, xmmword [rsp + 0xe0]
vmovaps xmmword [rsp + 0x90], xmm1
vmovaps xmm1, xmmword [rsp + 0xf0]
vmovaps xmmword [rsp + 0xa0], xmm1
mov rax, qword [rsp + 0x20]
vpaddd xmm14, xmm6, xmmword [rsp + 0x180]
vpaddd xmm15, xmm6, xmmword [rsp + 0x190]
vpaddd xmm7, xmm6, xmmword [rsp + 0x160]
vpaddd xmm1, xmm6, xmmword [rsp + 0x170]
vmovdqa xmmword [rsp + 0x80], xmm1
vpaddd xmm2, xmm0, xmmword [rsp + 0x140]
vpaddd xmm6, xmm0, xmmword [rsp + 0x120]
vpaddd xmm1, xmm0, xmmword [rsp + 0x130]
vmovdqa xmmword [rsp + 0x70], xmm1
vmovdqa xmmword [rax], xmm8
vmovdqa xmm8, xmmword [0x140259060]
vpand xmm1, xmm9, xmm8
vpor xmm9, xmm9, xmm8
vpaddd xmm1, xmm9, xmm1
vmovdqu xmmword [rdx], xmm1
vmovdqu xmmword [rdx + 0x10], xmm14
vmovdqu xmmword [rdx + 0x20], xmm2
vpand xmm1, xmm12, xmm3
vpxor xmm2, xmm12, xmm3
vpaddd xmm1, xmm1, xmm1
vpaddd xmm1, xmm2, xmm1
vmovdqu xmmword [rdx + 0x30], xmm1
vpsubd xmm1, xmm10, xmmword [0x140259080]
vmovdqu xmmword [rdx + 0x40], xmm1
vmovdqu xmmword [rdx + 0x50], xmm15
vpand xmm1, xmm11, xmm0
vpaddd xmm1, xmm1, xmm1
vpxor xmm0, xmm11, xmm0
vpaddd xmm0, xmm0, xmm1
vmovdqu xmmword [rdx + 0x60], xmm0
vpaddd xmm0, xmm13, xmmword [rsp + 0x50]
vmovdqu xmmword [rdx + 0x70], xmm0
vpand xmm0, xmm8, xmm4
vpor xmm1, xmm8, xmm4
vpaddd xmm0, xmm0, xmm1
vmovdqu xmmword [rdx + 0x80], xmm0
vmovdqu xmmword [rdx + 0x90], xmm7
vmovdqa xmm0, xmmword [rsp + 0x90]
vpaddd xmm0, xmm0, xmmword [rsp + 0xc0]
vmovdqu xmmword [rdx + 0xa0], xmm6
vmovdqu xmmword [rdx + 0xb0], xmm0
vpand xmm0, xmm8, xmm5
vpaddd xmm0, xmm0, xmm0
vpxor xmm1, xmm8, xmm5
vpaddd xmm0, xmm1, xmm0
vmovdqu xmmword [rdx + 0xc0], xmm0
vmovaps xmm0, xmmword [rsp + 0x80]
vmovups xmmword [rdx + 0xd0], xmm0
vmovaps xmm0, xmmword [rsp + 0x70]
vmovups xmmword [rdx + 0xe0], xmm0
vmovdqa xmm0, xmmword [rsp + 0xa0]
vpaddd xmm0, xmm0, xmmword [rsp + 0xb0]
vmovdqu xmmword [rdx + 0xf0], xmm0
vzeroupper
vmovaps xmm6, xmmword [rbp + 0x2e0]
vmovaps xmm7, xmmword [rbp + 0x2f0]
vmovaps xmm8, xmmword [rbp + 0x300]
vmovaps xmm9, xmmword [rbp + 0x310]
vmovaps xmm10, xmmword [rbp + 0x320]
vmovaps xmm11, xmmword [rbp + 0x330]
vmovaps xmm12, xmmword [rbp + 0x340]
vmovaps xmm13, xmmword [rbp + 0x350]
vmovaps xmm14, xmmword [rbp + 0x360]
vmovaps xmm15, xmmword [rbp + 0x370]
lea rsp, [rbp + 0x388]
pop rbx
pop rdi
pop rsi
pop r14
pop r15
pop rbp
ret