Function at 0x14020d870
Capabilities:
Encode data using xor

Disassembly:
push rbp
mov rbp, rsp
push r15
mov r15d, r9d
push r14
push r13
mov r13, rdx
push r12
mov r12, r8
push rdi
push rsi
push rbx
mov rbx, rcx
and rsp, 0xfffffffffffffff0
sub rsp, 0x140
mov r14, qword [rbp + 0x48]
mov rax, qword [rbp + 0x38]
mov rcx, qword [r8 + 8]
mov rdx, qword [rbx + 0x18]
mov r8d, dword [r14 + 0x14]
mov rdi, qword [rbp + 0x40]
mov qword [rsp + 0x40], rax
mov rsi, qword [rbp + 0x30]
call sub.msvcrt.dll_memcpy
movzx eax, r15b
mov dword [rdi + 0x18], 0
mov dword [rsp + 0x4c], eax
cmp r15b, 1
je 0x14020d920
cmp r15b, 2
je 0x14020db10
test r15b, r15b
je 0x14020d968
mov eax, dword [rsp + 0x4c]
mov qword [rbp + 0x38], r14
mov r9, rsi
mov r8, rdi
mov rdx, r12
mov rcx, r13
mov dword [rbp + 0x40], eax
mov rax, qword [rsp + 0x40]
mov qword [rbp + 0x30], rax
lea rsp, [rbp - 0x38]
pop rbx
pop rsi
pop rdi
pop r12
pop r13
pop r14
pop r15
pop rbp
jmp fcn.140146f20
mov r8d, dword [r14 + 0xc]
mov eax, dword [r14 + 0x14]
mov r9, qword [rbx]
add eax, r8d
cmp eax, dword [r14 + 0x28]
mov qword [rsp + 0x30], r9
mov dword [rsp + 0x38], eax
jae 0x14020db40
mov rcx, qword [r13]
mov rdx, rsi
call sub.msvcrt.dll_memcpy
mov edx, dword [r14 + 0xc]
mov rcx, qword [rdi]
mov r8d, dword [r14 + 0x14]
add rdx, rsi
call sub.msvcrt.dll_memcpy
jmp 0x14020d8e4
mov r8d, dword [r14 + 0xc]
mov eax, dword [r14 + 0x14]
mov r9, qword [rbx]
add eax, r8d
cmp eax, dword [r14 + 0x28]
mov qword [rsp + 0x30], r9
mov dword [rsp + 0x38], eax
jb 0x14020d941
lea r15, [rsp + 0x60]
mov r8d, 2
mov rdx, r14
mov rcx, r15
call fcn.14004b780
mov r8d, dword [r14 + 0x24]
mov rdx, qword [rsp + 0x30]
mov rcx, r15
call fcn.14004b880
mov rcx, r15
call fcn.14004b730
mov r8d, dword [r14 + 0x28]
mov rdx, rsi
mov rcx, r15
call fcn.14004b830
mov r8d, 0xff
mov rdx, r14
mov rcx, r15
call fcn.14004b780
mov r8d, dword [r14 + 0x28]
mov rdx, rsi
mov rcx, r15
call fcn.14004b880
lea r9, [rsp + 0x5e]
mov eax, dword [rsp + 0x38]
mov rcx, r15
mov rdx, r9
mov r8d, 2
mov qword [rsp + 0x30], r9
mov word [rsp + 0x5e], ax
call fcn.14004b880
mov rcx, r15
call fcn.14004b730
mov r8d, dword [rsp + 0x38]
mov rdx, rsi
mov rcx, r15
call fcn.14004b830
mov rcx, qword [r13]
mov r8d, dword [r14 + 0xc]
mov rdx, rsi
call sub.msvcrt.dll_memcpy
mov edx, dword [r14 + 0xc]
mov rcx, qword [rdi]
mov r8d, dword [r14 + 0x14]
add rdx, rsi
call sub.msvcrt.dll_memcpy
mov eax, dword [r14 + 0x14]
add eax, dword [r14 + 0xc]
cmp eax, dword [r14 + 0x28]
mov rbx, qword [rbx + 8]
mov dword [rsp + 0x38], eax
jb 0x14020d8e4
mov r8d, 2
mov rdx, r14
mov rcx, r15
call fcn.14004b780
mov r8d, dword [r14 + 0x24]
mov rdx, rbx
mov rcx, r15
call fcn.14004b880
mov rcx, r15
call fcn.14004b730
mov r8d, dword [r14 + 0x28]
mov rdx, rsi
mov rcx, r15
call fcn.14004b830
mov r8d, 0xff
mov rdx, r14
mov rcx, r15
call fcn.14004b780
mov r8d, dword [r14 + 0x28]
mov rdx, rsi
mov rcx, r15
call fcn.14004b880
mov eax, dword [rsp + 0x38]
mov rdx, qword [rsp + 0x30]
mov r8d, 2
mov word [rsp + 0x5e], ax
mov rcx, r15
call fcn.14004b880
mov rcx, r15
call fcn.14004b730
mov r8d, dword [rsp + 0x38]
mov rdx, rsi
mov rcx, r15
call fcn.14004b830
mov rcx, qword [r12]
mov r8d, dword [r14 + 0xc]
mov rdx, rsi
call sub.msvcrt.dll_memcpy
mov edx, dword [r14 + 0xc]
mov rcx, qword [rdi + 8]
mov r8d, dword [r14 + 0x14]
add rdx, rsi
call sub.msvcrt.dll_memcpy
jmp 0x14020d8e4
mov eax, dword [r14 + 0x14]
mov r9, qword [rdi]
mov r10, qword [rbx]
cmp eax, dword [r14 + 0x28]
jae 0x14020dcd8
mov rcx, qword [r13]
mov rdx, qword [rbx + 0x10]
mov r8d, dword [r14 + 0xc]
call sub.msvcrt.dll_memcpy
jmp 0x14020d8e4
lea r15, [rsp + 0x60]
mov r8d, 2
mov rdx, r14
mov rcx, r15
call fcn.14004b780
mov r8d, dword [r14 + 0x24]
mov rdx, qword [rsp + 0x30]
mov rcx, r15
call fcn.14004b880
mov rcx, r15
call fcn.14004b730
mov r8d, dword [r14 + 0x28]
mov rdx, rsi
mov rcx, r15
call fcn.14004b830
mov r8d, 0xff
mov rdx, r14
mov rcx, r15
call fcn.14004b780
mov r8d, dword [r14 + 0x28]
mov rdx, rsi
mov rcx, r15
call fcn.14004b880
lea r10, [rsp + 0x5e]
mov eax, dword [rsp + 0x38]
mov rcx, r15
mov rdx, r10
mov r8d, 2
mov qword [rsp + 0x20], r10
mov word [rsp + 0x5e], ax
call fcn.14004b880
mov rcx, r15
call fcn.14004b730
mov r8d, dword [rsp + 0x38]
mov rdx, rsi
mov rcx, r15
call fcn.14004b830
mov rcx, qword [r13]
mov r8d, dword [r14 + 0xc]
mov rdx, rsi
call sub.msvcrt.dll_memcpy
mov edx, dword [r14 + 0xc]
mov rcx, qword [rdi]
mov r8d, dword [r14 + 0x14]
add rdx, rsi
call sub.msvcrt.dll_memcpy
mov eax, dword [r14 + 0x14]
mov r9, qword [rdi + 8]
mov r11, qword [rbx + 8]
cmp eax, dword [r14 + 0x28]
mov qword [rsp + 0x28], r9
mov qword [rsp + 0x30], r11
mov dword [rsp + 0x38], eax
jb 0x14020d8e4
mov rdx, r14
mov rcx, r15
mov r8d, 2
call fcn.14004b780
mov r8d, dword [r14 + 0x24]
mov rdx, qword [rsp + 0x30]
mov rcx, r15
call fcn.14004b880
mov rcx, r15
call fcn.14004b730
mov r9, qword [rsp + 0x28]
mov r8d, dword [r14 + 0x28]
mov rcx, r15
mov rdx, r9
mov qword [rsp + 0x30], r9
call fcn.14004b830
mov rdx, r14
mov rcx, r15
mov r8d, 0xff
call fcn.14004b780
mov r8d, dword [r14 + 0x28]
mov rdx, qword [rsp + 0x30]
mov rcx, r15
call fcn.14004b880
mov eax, dword [rsp + 0x38]
mov rdx, qword [rsp + 0x20]
mov rcx, r15
mov r8d, 2
mov word [rsp + 0x5e], ax
call fcn.14004b880
mov rcx, r15
call fcn.14004b730
mov r8d, dword [rsp + 0x38]
mov rdx, qword [rsp + 0x30]
mov rcx, r15
call fcn.14004b830
mov rcx, qword [r12]
mov rdx, qword [rbx + 0x10]
mov r8d, dword [r14 + 0xc]
call sub.msvcrt.dll_memcpy
jmp 0x14020d8e4
lea r15, [rsp + 0x60]
mov r8d, 2
mov rdx, r14
mov dword [rsp + 0x28], eax
mov rcx, r15
mov qword [rsp + 0x30], r10
mov qword [rsp + 0x38], r9
call fcn.14004b780
mov r8d, dword [r14 + 0x24]
mov rdx, qword [rsp + 0x30]
mov rcx, r15
call fcn.14004b880
mov rcx, r15
call fcn.14004b730
mov r8d, dword [r14 + 0x28]
mov rdx, qword [rsp + 0x38]
mov rcx, r15
call fcn.14004b830
mov r8d, 0xff
mov rdx, r14
mov rcx, r15
call fcn.14004b780
mov r9, qword [rsp + 0x38]
mov r8d, dword [r14 + 0x28]
mov rcx, r15
mov rdx, r9
mov qword [rsp + 0x30], r9
call fcn.14004b880
mov eax, dword [rsp + 0x28]
lea r10, [rsp + 0x5e]
mov rcx, r15
mov rdx, r10
mov r8d, 2
mov qword [rsp + 0x28], r10
mov word [rsp + 0x5e], ax
mov dword [rsp + 0x38], eax
call fcn.14004b880
mov rcx, r15
call fcn.14004b730
mov r8d, dword [rsp + 0x38]
mov rdx, qword [rsp + 0x30]
mov rcx, r15
call fcn.14004b830
mov rdx, qword [rbx + 0x10]
mov rcx, qword [r13]
mov r8d, dword [r14 + 0xc]
call sub.msvcrt.dll_memcpy
mov eax, dword [r14 + 0x14]
add eax, dword [r14 + 0xc]
cmp eax, dword [r14 + 0x28]
mov rbx, qword [rbx + 8]
mov dword [rsp + 0x38], eax
jb 0x14020d8e4
mov r8d, 2
mov rdx, r14
mov rcx, r15
call fcn.14004b780
mov r8d, dword [r14 + 0x24]
mov rdx, rbx
mov rcx, r15
call fcn.14004b880
mov rcx, r15
call fcn.14004b730
mov r8d, dword [r14 + 0x28]
mov rdx, rsi
mov rcx, r15
call fcn.14004b830
mov r8d, 0xff
mov rdx, r14
mov rcx, r15
call fcn.14004b780
mov r8d, dword [r14 + 0x28]
mov rdx, rsi
mov rcx, r15
call fcn.14004b880
mov eax, dword [rsp + 0x38]
mov rdx, qword [rsp + 0x28]
mov r8d, 2
mov word [rsp + 0x5e], ax
jmp 0x14020dac7