Function at 0x29e85c486b0
Capabilities:
Contain obfuscated stackstrings
Encode data using xor
Encrypt data using salsa20 or chacha

Disassembly:
mov qword [rsp + 0x18], rsi
push rbp
push rdi
push r14
lea rbp, [rsp - 0x37]
sub rsp, 0xb0
mov rax, qword [0x29e85cc0760]
xor rax, rsp
mov qword [rbp + 0x27], rax
mov rsi, rcx
movzx eax, byte [r9 + 2]
movzx r10d, byte [r9 + 3]
movzx ecx, byte [r9 + 7]
shl r10d, 8
mov r14, r8
shl ecx, 8
or r10d, eax
movzx eax, byte [r9 + 1]
shl r10d, 8
mov rdi, rdx
mov dword [rbp - 0x59], 0x61707865
or r10d, eax
movzx eax, byte [r9]
mov dword [rbp - 0x55], 0x3320646e
shl r10d, 8
mov dword [rbp - 0x51], 0x79622d32
mov dword [rbp - 0x4d], 0x6b206574
or r10d, eax
movzx eax, byte [r9 + 6]
or ecx, eax
movzx eax, byte [r9 + 5]
mov dword [rbp - 0x49], r10d
shl ecx, 8
or ecx, eax
movzx eax, byte [r9 + 4]
shl ecx, 8
or ecx, eax
movzx eax, byte [r9 + 0xa]
mov dword [rbp - 0x45], ecx
movzx ecx, byte [r9 + 0xb]
shl ecx, 8
or ecx, eax
movzx eax, byte [r9 + 9]
shl ecx, 8
or ecx, eax
movzx eax, byte [r9 + 8]
shl ecx, 8
or ecx, eax
movzx eax, byte [r9 + 0xe]
mov dword [rbp - 0x41], ecx
movzx ecx, byte [r9 + 0xf]
shl ecx, 8
or ecx, eax
movzx eax, byte [r9 + 0xd]
shl ecx, 8
or ecx, eax
movzx eax, byte [r9 + 0xc]
shl ecx, 8
or ecx, eax
movzx eax, byte [r9 + 0x12]
mov dword [rbp - 0x3d], ecx
movzx ecx, byte [r9 + 0x13]
shl ecx, 8
or ecx, eax
movzx eax, byte [r9 + 0x11]
shl ecx, 8
or ecx, eax
movzx eax, byte [r9 + 0x10]
shl ecx, 8
or ecx, eax
movzx eax, byte [r9 + 0x16]
mov dword [rbp - 0x39], ecx
movzx ecx, byte [r9 + 0x17]
shl ecx, 8
or ecx, eax
movzx eax, byte [r9 + 0x15]
shl ecx, 8
or ecx, eax
movzx eax, byte [r9 + 0x14]
shl ecx, 8
or ecx, eax
movzx eax, byte [r9 + 0x1a]
mov dword [rbp - 0x35], ecx
movzx ecx, byte [r9 + 0x1b]
shl ecx, 8
or ecx, eax
movzx eax, byte [r9 + 0x19]
shl ecx, 8
or ecx, eax
shl ecx, 8
mov rdx, qword [rbp + 0x77]
movzx eax, byte [r9 + 0x18]
or ecx, eax
movzx eax, byte [r9 + 0x1e]
mov dword [rbp - 0x31], ecx
movzx ecx, byte [r9 + 0x1f]
shl ecx, 8
or ecx, eax
movzx eax, byte [r9 + 0x1d]
shl ecx, 8
or ecx, eax
movzx eax, byte [r9 + 0x1c]
shl ecx, 8
or ecx, eax
mov rax, qword [rbp + 0x7f]
mov dword [rbp - 0x2d], ecx
movzx ecx, byte [rdx + 3]
mov dword [rbp - 0x29], eax
shl ecx, 8
shr rax, 0x20
mov dword [rbp - 0x25], eax
movzx eax, byte [rdx + 2]
or ecx, eax
movzx eax, byte [rdx + 1]
shl ecx, 8
or ecx, eax
movzx eax, byte [rdx]
shl ecx, 8
or ecx, eax
movzx eax, byte [rdx + 6]
mov dword [rbp - 0x21], ecx
movzx ecx, byte [rdx + 7]
shl ecx, 8
or ecx, eax
movzx eax, byte [rdx + 5]
shl ecx, 8
or ecx, eax
movzx eax, byte [rdx + 4]
shl ecx, 8
or ecx, eax
mov dword [rbp - 0x1d], ecx
test r8, r8
je 0x29e85c489bc
mov qword [rsp + 0xd8], rbx
nop dword [rax]
nop dword [rax + rax]
mov ebx, 0x40
lea rdx, [rbp - 0x59]
lea rcx, [rbp - 0x19]
cmp r14, rbx
cmovb rbx, r14
call fcn.29e85c489e0
xor eax, eax
test rbx, rbx
je 0x29e85c4899a
cmp rbx, 0x20
jb 0x29e85c4895b
lea rdx, [rsi - 1]
lea rcx, [rbp + rbx - 0x1a]
add rdx, rbx
cmp rsi, rcx
ja 0x29e85c488e8
lea rcx, [rbp - 0x19]
cmp rdx, rcx
jae 0x29e85c4895b
lea rcx, [rdi - 1]
add rcx, rbx
cmp rsi, rcx
ja 0x29e85c488f9
cmp rdx, rdi
jae 0x29e85c4895b
mov rcx, rbx
mov r9, rbx
lea r10, [rbp - 0x19]
and ecx, 0x1f
lea r11, [rbp - 9]
mov r8, rsi
sub r9, rcx
mov rcx, rdi
sub r8, rdi
neg rcx
mov rdx, rdi
add r10, rcx
add r11, rcx
movdqu xmm0, xmmword [rdx]
movdqu xmm1, xmmword [r10 + rdx]
add rax, 0x20
lea rdx, [rdx + 0x20]
pxor xmm1, xmm0
movdqu xmmword [r8 + rdx - 0x20], xmm1
movdqu xmm0, xmmword [rdx - 0x10]
movdqu xmm1, xmmword [r11 + rdx - 0x20]
pxor xmm1, xmm0
movdqu xmmword [r8 + rdx - 0x10], xmm1
cmp rax, r9
jb 0x29e85c48922
cmp rax, rbx
jae 0x29e85c4899a
lea rcx, [rbp - 0x19]
mov r8, rdi
mov r9, rsi
sub r8, rcx
lea rcx, [rbp - 0x19]
sub r9, rcx
nop dword [rax]
nop dword [rax + rax]
lea rdx, [rbp - 0x19]
add rdx, rax
inc rax
movzx ecx, byte [rdx + r8]
xor cl, byte [rdx]
mov byte [rdx + r9], cl
cmp rax, rbx
jb 0x29e85c48980
add rsi, rbx
add rdi, rbx
sub r14, rbx
inc dword [rbp - 0x29]
jne 0x29e85c489ab
inc dword [rbp - 0x25]
test r14, r14
jne 0x29e85c488a0
mov rbx, qword [rsp + 0xd8]
mov rcx, qword [rbp + 0x27]
xor rcx, rsp
call fcn.29e85b464e0
mov rsi, qword [rsp + 0xe0]
add rsp, 0xb0
pop r14
pop rdi
pop rbp
ret