Function at 0x14003f560
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 0x14003f65b
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 0x14003f5b0
mov edx, ebp
mov rcx, rsi
test r12d, r12d
je 0x14003f5ee
call fcn.14003cf60
jmp 0x14003f5f3
call fcn.14003cd30
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 0x14003f600
mov edx, ebp
mov rcx, rbx
test r12d, r12d
je 0x14003f649
add rsp, 0x28
pop r15
pop r14
pop r12
pop rsi
pop rbp
pop rbx
jmp fcn.14003cf60
add rsp, 0x28
pop r15
pop r14
pop r12
pop rsi
pop rbp
pop rbx
jmp fcn.14003cd30
mov qword [rsp + 0x60], rdi
cmp ebx, 2
jne 0x14003f835
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 0x14003f680
mov edx, ebp
mov rcx, rsi
test r12d, r12d
je 0x14003f6be
call fcn.14003cf60
jmp 0x14003f6c3
call fcn.14003cd30
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 0x14003f6e0
mov edx, ebp
mov rcx, rbx
test r12d, r12d
je 0x14003f71e
call fcn.14003cf60
jmp 0x14003f723
call fcn.14003cd30
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 0x14003f740
mov edx, ebp
mov rcx, rsi
test r12d, r12d
je 0x14003f77e
call fcn.14003cf60
jmp 0x14003f783
call fcn.14003cd30
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 0x14003f790
mov edx, ebp
mov rcx, rdi
test r12d, r12d
je 0x14003f7ce
call fcn.14003cf60
jmp 0x14003f7d3
call fcn.14003cd30
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 0x14003f7e0
jmp 0x14003fa3b
mov qword [rsp + 0x20], r13
lea r13d, [r8 + r8]
xor edi, edi
test r13d, r13d
je 0x14003f971
nop dword [rax]
test edi, edi
je 0x14003f8a0
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 0x14003f871
jmp 0x14003f8ed
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 0x14003f8c0
mov eax, edi
mov edx, ebp
shl eax, 4
lea r14, [rax*4]
lea rbx, [r14 + rsi]
mov rcx, rbx
test r12d, r12d
je 0x14003f90f
call fcn.14003cf60
jmp 0x14003f914
call fcn.14003cd30
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 0x14003f930
inc edi
cmp edi, r13d
jb 0x14003f850
mov ebx, dword [rsp + 0x70]
mov r14, qword [rsp + 0x68]
mov r13, qword [rsp + 0x20]
test ebx, ebx
je 0x14003fa3b
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 0x14003f9a0
add r9, 0x40
sub r10, 0xffffffffffffff80
dec r11
jne 0x14003f990
test ebx, ebx
je 0x14003fa3b
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 0x14003fa01
add r9d, 0x10
sub r10, 0xffffffffffffff80
dec r11
jne 0x14003f9f0
mov rdi, qword [rsp + 0x60]
add rsp, 0x28
pop r15
pop r14
pop r12
pop rsi
pop rbp
pop rbx
ret