Function at 0x14003e350
Capabilities:
Encode data using xor

Disassembly:
mov dword [rsp + 0x18], r8d
mov qword [rsp + 0x10], rdx
push rbx
push rbp
push rsi
push r12
push r14
push r15
sub rsp, 0x28
mov r12d, r9d
mov ebx, r8d
mov r14, rdx
shr r12d, 8
mov rsi, rcx
movzx ebp, r9b
mov r15d, 2
cmp r8d, 1
jne 0x14003e44b
lea rbx, [rcx + 0x40]
lea rdx, [rcx + 8]
mov r8d, r15d
mov rcx, rbx
sub rcx, rsi
nop dword [rax]
mov rax, qword [rcx + rdx - 8]
lea rdx, [rdx + 0x20]
xor qword [rdx - 0x28], rax
mov rax, qword [rcx + rdx - 0x20]
xor qword [rdx - 0x20], rax
mov rax, qword [rcx + rdx - 0x18]
xor qword [rdx - 0x18], rax
mov rax, qword [rcx + rdx - 0x10]
xor qword [rdx - 0x10], rax
dec r8
jne 0x14003e3a0
mov edx, ebp
mov rcx, rsi
test r12d, r12d
je 0x14003e3de
call fcn.14003bce0
jmp 0x14003e3e3
call fcn.14003bab0
lea r8, [rbx + 8]
sub rsi, rbx
nop word [rax + rax]
mov rax, qword [rsi + r8 - 8]
lea r8, [r8 + 0x20]
xor qword [r8 - 0x28], rax
mov rax, qword [rsi + r8 - 0x20]
xor qword [r8 - 0x20], rax
mov rax, qword [rsi + r8 - 0x18]
xor qword [r8 - 0x18], rax
mov rax, qword [rsi + r8 - 0x10]
xor qword [r8 - 0x10], rax
dec r15
jne 0x14003e3f0
mov edx, ebp
mov rcx, rbx
test r12d, r12d
je 0x14003e439
add rsp, 0x28
pop r15
pop r14
pop r12
pop rsi
pop rbp
pop rbx
jmp fcn.14003bce0
add rsp, 0x28
pop r15
pop r14
pop r12
pop rsi
pop rbp
pop rbx
jmp fcn.14003bab0
mov qword [rsp + 0x60], rdi
cmp ebx, 2
jne 0x14003e625
lea rdi, [rcx + 0xc0]
add rcx, 8
mov r8, r15
mov rdx, rdi
sub rdx, rsi
nop dword [rax]
mov rax, qword [rdx + rcx - 8]
lea rcx, [rcx + 0x20]
xor qword [rcx - 0x28], rax
mov rax, qword [rdx + rcx - 0x20]
xor qword [rcx - 0x20], rax
mov rax, qword [rdx + rcx - 0x18]
xor qword [rcx - 0x18], rax
mov rax, qword [rdx + rcx - 0x10]
xor qword [rcx - 0x10], rax
dec r8
jne 0x14003e470
mov edx, ebp
mov rcx, rsi
test r12d, r12d
je 0x14003e4ae
call fcn.14003bce0
jmp 0x14003e4b3
call fcn.14003bab0
lea rbx, [rsi + 0x40]
mov rdx, rsi
mov r8, r15
lea rcx, [rbx + 8]
sub rdx, rbx
nop dword [rax]
nop dword [rax + rax]
mov rax, qword [rdx + rcx - 8]
lea rcx, [rcx + 0x20]
xor qword [rcx - 0x28], rax
mov rax, qword [rdx + rcx - 0x20]
xor qword [rcx - 0x20], rax
mov rax, qword [rdx + rcx - 0x18]
xor qword [rcx - 0x18], rax
mov rax, qword [rdx + rcx - 0x10]
xor qword [rcx - 0x10], rax
dec r8
jne 0x14003e4d0
mov edx, ebp
mov rcx, rbx
test r12d, r12d
je 0x14003e50e
call fcn.14003bce0
jmp 0x14003e513
call fcn.14003bab0
sub rsi, 0xffffffffffffff80
mov rdx, rbx
mov r8, r15
lea rcx, [rsi + 8]
sub rdx, rsi
nop dword [rax]
nop dword [rax + rax]
mov rax, qword [rdx + rcx - 8]
lea rcx, [rcx + 0x20]
xor qword [rcx - 0x28], rax
mov rax, qword [rdx + rcx - 0x20]
xor qword [rcx - 0x20], rax
mov rax, qword [rdx + rcx - 0x18]
xor qword [rcx - 0x18], rax
mov rax, qword [rdx + rcx - 0x10]
xor qword [rcx - 0x10], rax
dec r8
jne 0x14003e530
mov edx, ebp
mov rcx, rsi
test r12d, r12d
je 0x14003e56e
call fcn.14003bce0
jmp 0x14003e573
call fcn.14003bab0
mov r8, rsi
lea rdx, [rdi + 8]
mov r9, r15
sub r8, rdi
mov rax, qword [r8 + rdx - 8]
lea rdx, [rdx + 0x20]
xor qword [rdx - 0x28], rax
mov rax, qword [r8 + rdx - 0x20]
xor qword [rdx - 0x20], rax
mov rax, qword [r8 + rdx - 0x18]
xor qword [rdx - 0x18], rax
mov rax, qword [r8 + rdx - 0x10]
xor qword [rdx - 0x10], rax
dec r9
jne 0x14003e580
mov edx, ebp
mov rcx, rdi
test r12d, r12d
je 0x14003e5be
call fcn.14003bce0
jmp 0x14003e5c3
call fcn.14003bab0
lea r10, [rbx + 0x10]
sub rsi, rbx
nop word [rax + rax]
mov rax, qword [rsi + r10 - 0x10]
mov r9, qword [r10 - 0x10]
mov rdx, qword [r10 - 8]
mov r8, qword [r10]
mov rcx, qword [r10 + 8]
mov qword [r10 - 0x10], rax
mov rax, qword [rsi + r10 - 8]
lea r10, [r10 + 0x20]
mov qword [r10 - 0x28], rax
mov rax, qword [rsi + r10 - 0x20]
mov qword [r10 - 0x20], rax
mov rax, qword [rsi + r10 - 0x18]
mov qword [r10 - 0x18], rax
mov qword [rsi + r10 - 0x30], r9
mov qword [rsi + r10 - 0x28], rdx
mov qword [rsi + r10 - 0x20], r8
mov qword [rsi + r10 - 0x18], rcx
dec r15
jne 0x14003e5d0
jmp 0x14003e82b
mov qword [rsp + 0x20], r13
lea r13d, [r8 + r8]
xor edi, edi
test r13d, r13d
je 0x14003e761
nop dword [rax]
test edi, edi
je 0x14003e690
mov eax, edi
shl eax, 4
lea rcx, [rsi + rax*4]
lea eax, [rdi - 1]
shl eax, 4
lea rdx, [rcx + 8]
lea r8, [rsi + rax*4]
sub r8, rcx
mov rcx, r15
mov rax, qword [rdx + r8 - 8]
lea rdx, [rdx + 0x20]
xor qword [rdx - 0x28], rax
mov rax, qword [rdx + r8 - 0x20]
xor qword [rdx - 0x20], rax
mov rax, qword [rdx + r8 - 0x18]
xor qword [rdx - 0x18], rax
mov rax, qword [rdx + r8 - 0x10]
xor qword [rdx - 0x10], rax
dec rcx
jne 0x14003e661
jmp 0x14003e6dd
lea eax, [r13 - 1]
lea rcx, [rsi + 8]
mov r8, r15
shl eax, 4
lea rdx, [rsi + rax*4]
sub rdx, rsi
nop word [rax + rax]
mov rax, qword [rdx + rcx - 8]
lea rcx, [rcx + 0x20]
xor qword [rcx - 0x28], rax
mov rax, qword [rdx + rcx - 0x20]
xor qword [rcx - 0x20], rax
mov rax, qword [rdx + rcx - 0x18]
xor qword [rcx - 0x18], rax
mov rax, qword [rdx + rcx - 0x10]
xor qword [rcx - 0x10], rax
dec r8
jne 0x14003e6b0
mov eax, edi
mov edx, ebp
shl eax, 4
lea r14, [rax*4]
lea rbx, [r14 + rsi]
mov rcx, rbx
test r12d, r12d
je 0x14003e6ff
call fcn.14003bce0
jmp 0x14003e704
call fcn.14003bab0
mov rax, qword [rsp + 0x68]
mov rdx, r15
add rax, r14
sub rbx, rax
lea rcx, [rax + 8]
nop word [rax + rax]
mov rax, qword [rbx + rcx - 8]
lea rcx, [rcx + 0x20]
mov qword [rcx - 0x28], rax
mov rax, qword [rbx + rcx - 0x20]
mov qword [rcx - 0x20], rax
mov rax, qword [rbx + rcx - 0x18]
mov qword [rcx - 0x18], rax
mov rax, qword [rbx + rcx - 0x10]
mov qword [rcx - 0x10], rax
dec rdx
jne 0x14003e720
inc edi
cmp edi, r13d
jb 0x14003e640
mov ebx, dword [rsp + 0x70]
mov r14, qword [rsp + 0x68]
mov r13, qword [rsp + 0x20]
test ebx, ebx
je 0x14003e82b
mov r10, r14
mov r9, rsi
mov r11d, ebx
nop word [rax + rax]
mov rdx, r10
lea rcx, [r9 + 8]
mov r8, r15
sub rdx, r9
nop dword [rax]
mov rax, qword [rdx + rcx - 8]
lea rcx, [rcx + 0x20]
mov qword [rcx - 0x28], rax
mov rax, qword [rdx + rcx - 0x20]
mov qword [rcx - 0x20], rax
mov rax, qword [rdx + rcx - 0x18]
mov qword [rcx - 0x18], rax
mov rax, qword [rdx + rcx - 0x10]
mov qword [rcx - 0x10], rax
dec r8
jne 0x14003e790
add r9, 0x40
sub r10, 0xffffffffffffff80
dec r11
jne 0x14003e780
test ebx, ebx
je 0x14003e82b
mov r9d, ebx
lea r10, [r14 + 0x40]
mov r11d, ebx
shl r9d, 4
nop dword [rax]
lea rcx, [rsi + r9*4]
mov rdx, r10
mov r8, r15
lea rax, [rcx + 8]
sub rdx, rcx
mov rcx, qword [rax + rdx - 8]
lea rax, [rax + 0x20]
mov qword [rax - 0x28], rcx
mov rcx, qword [rax + rdx - 0x20]
mov qword [rax - 0x20], rcx
mov rcx, qword [rax + rdx - 0x18]
mov qword [rax - 0x18], rcx
mov rcx, qword [rax + rdx - 0x10]
mov qword [rax - 0x10], rcx
dec r8
jne 0x14003e7f1
add r9d, 0x10
sub r10, 0xffffffffffffff80
dec r11
jne 0x14003e7e0
mov rdi, qword [rsp + 0x60]
add rsp, 0x28
pop r15
pop r14
pop r12
pop rsi
pop rbp
pop rbx
ret