Function at 0x14003a370
Capabilities:
Encode data using xor

Disassembly:
push rbp
push rbx
push rsi
push rdi
push r12
push r13
push r14
lea rbp, [rsp - 7]
sub rsp, 0xc0
mov rax, qword [0x140088040]
xor rax, rsp
mov qword [rbp - 9], rax
mov rax, qword [rbp + 0x7f]
mov r13, rdx
mov rbx, qword [rbp + 0x87]
mov r12, qword [rbp + 0x77]
mov qword [rbp - 0x59], r8
mov r8, rcx
mov qword [rbp - 0x69], rax
mov qword [rsp + 0x30], rbx
mov qword [rbp - 0x51], rcx
test rdx, rdx
je 0x14003a715
mov ecx, dword [rcx + 0x14c]
call fcn.140023c20
mov rsi, rax
test rax, rax
je 0x14003a715
movzx r14d, byte [rax + 0x10]
mov rdi, qword [r8 + 8]
lea eax, [r14 + r14]
mov qword [rbp - 0x61], rax
add rax, 2
add rax, r12
cmp rax, r12
jb 0x14003a715
cmp rdi, rax
jb 0x14003a715
mov r8, rdi
mov qword [rsp + 0x118], r15
xor edx, edx
mov rcx, rbx
call fcn.140065540
mov rcx, qword [rbp - 0x59]
mov r8d, r14d
mov byte [rbx], 0
inc rbx
mov rdx, rbx
mov r15, rbx
call r13
test eax, eax
je 0x14003a45f
add eax, 0xffffbb80
mov r15, qword [rsp + 0x118]
mov rcx, qword [rbp - 9]
xor rcx, rsp
call fcn.140042de0
add rsp, 0xc0
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbx
pop rbp
ret
add r15, r14
xor edx, edx
mov r8, r15
xor ecx, ecx
call qword [rsi + 0x30]
test eax, eax
jne 0x14003a439
mov rdx, qword [rbp - 0x69]
mov rax, r14
sub rax, qword [rbp - 0x61]
mov r8, r12
sub rax, r12
add rax, rdi
lea rcx, [rax - 1]
mov byte [r15 + rax - 2], 1
add rcx, r15
call fcn.140065900
xor eax, eax
mov qword [rsp + 0x38], rax
mov qword [rbp - 0x71], rax
call qword [rsi + 0x38]
mov r12, qword [rsp + 0x30]
mov qword [rbp - 0x79], rax
test rax, rax
jne 0x14003a4bc
mov esi, 0xffffae80
jmp 0x14003a6a1
lea rcx, [rsp + 0x38]
mov qword [rsp + 0x38], rsi
mov qword [rsp + 0x20], rcx
lea rax, [r12 + 1]
add rax, r14
sub rdi, r14
mov r9, r14
mov qword [rbp - 0x69], rax
mov r8, rbx
mov rcx, rax
lea r13, [rdi - 1]
mov rdx, r13
call fcn.14003a150
mov esi, eax
test eax, eax
jne 0x14003a69d
xorps xmm0, xmm0
mov dword [rsp + 0x30], eax
mov rax, qword [rsp + 0x38]
movups xmmword [rbp - 0x49], xmm0
movups xmmword [rbp - 0x39], xmm0
movups xmmword [rbp - 0x29], xmm0
movups xmmword [rbp - 0x19], xmm0
test rax, rax
jne 0x14003a51e
xor cl, cl
jmp 0x14003a522
movzx ecx, byte [rax + 0x10]
test r14, r14
je 0x14003a68a
movzx r15d, cl
nop
cmp r14, r15
mov rdi, r14
cmovae rdi, r15
test rax, rax
je 0x14003a685
mov rcx, qword [rbp - 0x79]
call qword [rax + 0x18]
mov esi, eax
test eax, eax
jne 0x14003a68a
mov rax, qword [rsp + 0x38]
test rax, rax
je 0x14003a685
mov rdx, qword [rbp - 0x69]
mov r8, r13
mov rcx, qword [rbp - 0x79]
call qword [rax + 0x20]
mov esi, eax
test eax, eax
jne 0x14003a68a
mov rax, qword [rsp + 0x38]
test rax, rax
je 0x14003a685
mov rcx, qword [rbp - 0x79]
lea r8d, [rsi + 4]
lea rdx, [rsp + 0x30]
call qword [rax + 0x20]
mov esi, eax
test eax, eax
jne 0x14003a68a
mov rax, qword [rsp + 0x38]
test rax, rax
je 0x14003a685
mov rcx, qword [rbp - 0x79]
lea rdx, [rbp - 0x49]
call qword [rax + 0x28]
mov esi, eax
test eax, eax
jne 0x14003a68a
xor ecx, ecx
test rdi, rdi
je 0x14003a672
cmp rdi, 0x40
jb 0x14003a660
lea rdx, [rbx - 1]
add rdx, rdi
lea rax, [rbp + rdi - 0x4a]
cmp rbx, rax
ja 0x14003a5f4
lea rax, [rbp - 0x49]
cmp rdx, rax
jae 0x14003a660
mov rax, rdi
and rax, 0xffffffffffffffc0
nop dword [rax + rax]
movdqu xmm0, xmmword [rbx]
movdqu xmm1, xmmword [rbp + rcx - 0x49]
xorps xmm1, xmm0
movdqu xmmword [rbx], xmm1
movdqu xmm0, xmmword [rbx + 0x10]
movdqu xmm1, xmmword [rbp + rcx - 0x39]
xorps xmm1, xmm0
movdqu xmmword [rbx + 0x10], xmm1
movdqu xmm0, xmmword [rbx + 0x20]
movdqu xmm1, xmmword [rbp + rcx - 0x29]
xorps xmm1, xmm0
movdqu xmmword [rbx + 0x20], xmm1
movdqu xmm0, xmmword [rbx + 0x30]
movdqu xmm1, xmmword [rbp + rcx - 0x19]
add rcx, 0x40
xorps xmm1, xmm0
movdqu xmmword [rbx + 0x30], xmm1
add rbx, 0x40
cmp rcx, rax
jb 0x14003a600
cmp rcx, rdi
jae 0x14003a672
nop dword [rax]
movzx eax, byte [rbp + rcx - 0x49]
inc rcx
xor byte [rbx], al
inc rbx
cmp rcx, rdi
jb 0x14003a660
inc byte [rsp + 0x33]
sub r14, rdi
je 0x14003a68a
mov rax, qword [rsp + 0x38]
jmp 0x14003a530
mov esi, 0xffffaf00
mov rax, qword [fcn.140065540]
lea rcx, [rbp - 0x49]
xor edx, edx
lea r8d, [rdx + 0x40]
call rax
mov rax, qword [rbp - 0x79]
mov rdx, qword [rsp + 0x38]
test rdx, rdx
je 0x14003a6f6
test rax, rax
je 0x14003a6bb
mov rcx, rax
call qword [rdx + 0x40]
mov rdx, qword [rsp + 0x38]
mov rcx, qword [rbp - 0x71]
test rcx, rcx
je 0x14003a6e2
mov eax, dword [rdx + 0x14]
add eax, eax
movsxd r8, eax
je 0x14003a6dd
mov rax, qword [fcn.140065540]
xor edx, edx
call rax
mov rcx, qword [rbp - 0x71]
call fcn.14004f190
mov rax, qword [fcn.140065540]
lea rcx, [rsp + 0x38]
xor edx, edx
lea r8d, [rdx + 0x18]
call rax
test esi, esi
je 0x14003a701
mov eax, esi
jmp 0x14003a439
mov rcx, qword [rbp - 0x51]
mov r8, r12
mov rdx, r12
call fcn.140038df0
jmp 0x14003a439
mov eax, 0xffffbf80
jmp 0x14003a441