Function at 0x140003a20
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x58
mov r12, qword [r8]
mov rsi, qword [r8 + 8]
lea rax, [rsp + 0x40]
mov qword [rsp + 0xa0], rcx
mov rbp, rdx
mov rbx, r8
mov qword [rsp + 0x20], rax
mov qword [rsp + 0x30], rax
mov rax, r12
add rax, rsi
je 0x140003a65
test r12, r12
je 0x140003d4b
cmp rsi, 0xf
ja 0x140003cc0
cmp rsi, 1
je 0x140003bc0
test rsi, rsi
mov rax, qword [rsp + 0x20]
jne 0x140003d3a
mov qword [rsp + 0x38], rsi
mov byte [rax + rsi], 0
mov rsi, qword [rbx + 8]
mov rdx, qword [rbp + 8]
cmp rsi, rdx
jae 0x140003bf0
lea r15, [rbx + 0x10]
jmp 0x140003aeb
test r12, r12
je 0x140003ad1
lea rcx, [r9 + rsi]
cmp r12, 1
je 0x140003ca0
mov r8, r12
mov rdx, r14
call sub.msvcrt.dll_memcpy
mov r9, qword [rbx]
mov qword [rbx + 8], rdi
mov byte [r9 + rdi], 0
mov rsi, qword [rbx + 8]
mov rdx, qword [rbp + 8]
cmp rdx, rsi
jbe 0x140003bf0
mov r9, qword [rbx]
mov r12, qword [rsp + 0x38]
mov r14, qword [rsp + 0x30]
cmp r9, r15
lea rdi, [r12 + rsi]
je 0x140003bd8
mov r13, qword [rbx + 0x10]
cmp rdi, r13
jbe 0x140003ab0
test rdi, rdi
js 0x140003d3f
add r13, r13
cmp rdi, r13
jae 0x140003cb0
test r13, r13
js 0x140003d30
mov rcx, r13
add rcx, 1
js 0x140003d30
call fcn.1400bf690
test rsi, rsi
mov r9, rax
je 0x140003b61
cmp rsi, 1
mov rdx, qword [rbx]
je 0x140003d00
mov r8, rsi
mov rcx, rax
call sub.msvcrt.dll_memcpy
mov r9, rax
test r14, r14
je 0x140003b8e
test r12, r12
je 0x140003b8e
lea rcx, [r9 + rsi]
cmp r12, 1
je 0x140003d10
mov r8, r12
mov rdx, r14
mov qword [rsp + 0x28], r9
call sub.msvcrt.dll_memcpy
mov r9, qword [rsp + 0x28]
mov rcx, qword [rbx]
cmp r15, rcx
je 0x140003bad
mov rax, qword [rbx + 0x10]
mov qword [rsp + 0x28], r9
lea rdx, [rax + 1]
call fcn.1400bf650
mov r9, qword [rsp + 0x28]
mov qword [rbx], r9
mov qword [rbx + 0x10], r13
jmp 0x140003ad1
movzx eax, byte [r12]
mov byte [rsp + 0x40], al
mov rax, qword [rsp + 0x20]
jmp 0x140003a87
cmp rdi, 0xf
mov r13d, 0xf
jbe 0x140003ab0
jmp 0x140003b0e
test rdx, rdx
je 0x140003c1d
xor eax, eax
nop word [rax + rax]
mov rdx, qword [rbp]
mov rcx, qword [rbx]
add rdx, rax
movzx ecx, byte [rcx + rax]
add rax, 1
xor byte [rdx], cl
mov rdx, qword [rbp + 8]
cmp rax, rdx
jb 0x140003c00
mov rax, qword [rsp + 0xa0]
mov rdi, qword [rsp + 0xa0]
add rax, 0x10
mov qword [rdi], rax
mov rcx, qword [rbp]
lea rax, [rbp + 0x10]
cmp rcx, rax
je 0x140003d20
mov qword [rdi], rcx
mov rcx, qword [rbp + 0x10]
mov qword [rdi + 0x10], rcx
mov rcx, qword [rsp + 0x30]
mov qword [rdi + 8], rdx
cmp rcx, qword [rsp + 0x20]
mov qword [rbp], rax
mov qword [rbp + 8], 0
mov byte [rbp + 0x10], 0
je 0x140003c7e
mov rax, qword [rsp + 0x40]
lea rdx, [rax + 1]
call fcn.1400bf650
mov rax, qword [rsp + 0xa0]
add rsp, 0x58
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
movzx eax, byte [r14]
mov byte [rcx], al
mov r9, qword [rbx]
jmp 0x140003ad1
mov r13, rdi
jmp 0x140003b2c
test rsi, rsi
js 0x140003d57
mov rcx, rsi
add rcx, 1
js 0x140003d35
call fcn.1400bf690
mov qword [rsp + 0x40], rsi
mov rcx, rax
mov qword [rsp + 0x30], rax
mov r8, rsi
mov rdx, r12
call sub.msvcrt.dll_memcpy
mov rax, qword [rsp + 0x30]
jmp 0x140003a87
movzx eax, byte [rdx]
mov byte [r9], al
jmp 0x140003b61
movzx eax, byte [r14]
mov byte [rcx], al
jmp 0x140003b8e
movdqu xmm0, xmmword [rbp + 0x10]
movups xmmword [rdi + 0x10], xmm0
jmp 0x140003c50
call fcn.1400c0570
call fcn.1400c0570
mov rcx, rax
jmp 0x140003ce4
lea rcx, [0x1400c41aa]
call fcn.1400c0760
lea rcx, [0x1400c4180]
call fcn.1400c0670
lea rcx, [0x1400c41aa]
call fcn.1400c0760
mov rcx, qword [rsp + 0x30]
mov r12, rax
cmp rcx, qword [rsp + 0x20]
je 0x140003d80
mov rax, qword [rsp + 0x40]
lea rdx, [rax + 1]
call fcn.1400bf650
mov rcx, r12
call fcn.14001b780
nop
nop
nop word [rax + rax]
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x68
mov r13, qword [r8]
mov rbx, qword [r8 + 8]
mov rax, r13
mov r12, rcx
mov rsi, rdx
lea rdi, [rsp + 0x50]
add rax, rbx
mov qword [rsp + 0x40], rdi
je 0x140003dc4
test r13, r13
je 0x140003f35
cmp rbx, 0xf
ja 0x140003ea8
cmp rbx, 1
je 0x140003e90
test rbx, rbx
mov rax, rdi
jne 0x140003f58
mov qword [rsp + 0x48], rbx
lea rbp, [rsp + 0x30]
mov byte [rax + rbx], 0
mov r13, qword [rsi]
mov rbx, qword [rsi + 8]
mov qword [rsp + 0x20], rbp
mov rax, r13
add rax, rbx
je 0x140003e0f
test r13, r13
je 0x140003f78
cmp rbx, 0xf
ja 0x140003f00
cmp rbx, 1
jne 0x140003ee8
movzx eax, byte [r13]
mov byte [rsp + 0x30], al
mov rax, rbp
mov qword [rsp + 0x28], rbx
lea rdx, [rsp + 0x20]
mov rcx, r12
mov byte [rax + rbx], 0
lea r8, [rsp + 0x40]
call fcn.140003a20
mov rcx, qword [rsp + 0x20]
cmp rcx, rbp
je 0x140003e62
mov rax, qword [rsp + 0x30]
lea rdx, [rax + 1]
call fcn.1400bf650
mov rcx, qword [rsp + 0x40]
cmp rcx, rdi
je 0x140003e7a
mov rax, qword [rsp + 0x50]
lea rdx, [rax + 1]
call fcn.1400bf650
mov rax, r12
add rsp, 0x68
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
ret
movzx eax, byte [r13]
mov byte [rsp + 0x50], al
mov rax, rdi
jmp 0x140003de4
test rbx, rbx
js 0x140003f6c
mov rcx, rbx
add rcx, 1
js 0x140003f48
call fcn.1400bf690
mov qword [rsp + 0x50], rbx
mov rcx, rax
mov qword [rsp + 0x40], rax
mov r8, rbx
mov rdx, r13
call sub.msvcrt.dll_memcpy
mov rax, qword [rsp + 0x40]
jmp 0x140003de4
test rbx, rbx
mov rax, rbp
je 0x140003e2f
mov rcx, rbp
jmp 0x140003f20
test rbx, rbx
js 0x140003f60
mov rcx, rbx
add rcx, 1
js 0x140003f50
call fcn.1400bf690
mov rcx, rax
mov qword [rsp + 0x20], rax
mov qword [rsp + 0x30], rbx
mov r8, rbx
mov rdx, r13
call sub.msvcrt.dll_memcpy
mov rax, qword [rsp + 0x20]
jmp 0x140003e2f
lea rcx, [0x1400c4180]
call fcn.1400c0670
nop dword [rax]
call fcn.1400c0570
nop dword [rax]
call fcn.1400c0570
nop dword [rax]
mov rcx, rdi
jmp 0x140003ed0
lea rcx, [0x1400c41aa]
call fcn.1400c0760
lea rcx, [0x1400c41aa]
call fcn.1400c0760
lea rcx, [0x1400c4180]
call fcn.1400c0670
mov rcx, qword [rsp + 0x20]
mov r12, rax
cmp rcx, rbp
je 0x140003f9f
mov rax, qword [rsp + 0x30]
lea rdx, [rax + 1]
call fcn.1400bf650
mov rcx, qword [rsp + 0x40]
cmp rcx, rdi
je 0x140003fb7
mov rax, qword [rsp + 0x50]
lea rdx, [rax + 1]
call fcn.1400bf650
mov rcx, r12
call fcn.14001b780
mov r12, rax
jmp 0x140003f9f