Function at 0x14020bdb0
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 0x14020be60
cmp r15b, 2
je 0x14020c050
test r15b, r15b
je 0x14020bea8
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.1401460e0
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 0x14020c080
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 0x14020be24
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 0x14020be81
lea r15, [rsp + 0x60]
mov r8d, 2
mov rdx, r14
mov rcx, r15
call fcn.14004c4f0
mov r8d, dword [r14 + 0x24]
mov rdx, qword [rsp + 0x30]
mov rcx, r15
call fcn.14004c5f0
mov rcx, r15
call fcn.14004c4a0
mov r8d, dword [r14 + 0x28]
mov rdx, rsi
mov rcx, r15
call fcn.14004c5a0
mov r8d, 0xff
mov rdx, r14
mov rcx, r15
call fcn.14004c4f0
mov r8d, dword [r14 + 0x28]
mov rdx, rsi
mov rcx, r15
call fcn.14004c5f0
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.14004c5f0
mov rcx, r15
call fcn.14004c4a0
mov r8d, dword [rsp + 0x38]
mov rdx, rsi
mov rcx, r15
call fcn.14004c5a0
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 0x14020be24
mov r8d, 2
mov rdx, r14
mov rcx, r15
call fcn.14004c4f0
mov r8d, dword [r14 + 0x24]
mov rdx, rbx
mov rcx, r15
call fcn.14004c5f0
mov rcx, r15
call fcn.14004c4a0
mov r8d, dword [r14 + 0x28]
mov rdx, rsi
mov rcx, r15
call fcn.14004c5a0
mov r8d, 0xff
mov rdx, r14
mov rcx, r15
call fcn.14004c4f0
mov r8d, dword [r14 + 0x28]
mov rdx, rsi
mov rcx, r15
call fcn.14004c5f0
mov eax, dword [rsp + 0x38]
mov rdx, qword [rsp + 0x30]
mov r8d, 2
mov word [rsp + 0x5e], ax
mov rcx, r15
call fcn.14004c5f0
mov rcx, r15
call fcn.14004c4a0
mov r8d, dword [rsp + 0x38]
mov rdx, rsi
mov rcx, r15
call fcn.14004c5a0
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 0x14020be24
mov eax, dword [r14 + 0x14]
mov r9, qword [rdi]
mov r10, qword [rbx]
cmp eax, dword [r14 + 0x28]
jae 0x14020c218
mov rcx, qword [r13]
mov rdx, qword [rbx + 0x10]
mov r8d, dword [r14 + 0xc]
call sub.msvcrt.dll_memcpy
jmp 0x14020be24
lea r15, [rsp + 0x60]
mov r8d, 2
mov rdx, r14
mov rcx, r15
call fcn.14004c4f0
mov r8d, dword [r14 + 0x24]
mov rdx, qword [rsp + 0x30]
mov rcx, r15
call fcn.14004c5f0
mov rcx, r15
call fcn.14004c4a0
mov r8d, dword [r14 + 0x28]
mov rdx, rsi
mov rcx, r15
call fcn.14004c5a0
mov r8d, 0xff
mov rdx, r14
mov rcx, r15
call fcn.14004c4f0
mov r8d, dword [r14 + 0x28]
mov rdx, rsi
mov rcx, r15
call fcn.14004c5f0
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.14004c5f0
mov rcx, r15
call fcn.14004c4a0
mov r8d, dword [rsp + 0x38]
mov rdx, rsi
mov rcx, r15
call fcn.14004c5a0
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 0x14020be24
mov rdx, r14
mov rcx, r15
mov r8d, 2
call fcn.14004c4f0
mov r8d, dword [r14 + 0x24]
mov rdx, qword [rsp + 0x30]
mov rcx, r15
call fcn.14004c5f0
mov rcx, r15
call fcn.14004c4a0
mov r9, qword [rsp + 0x28]
mov r8d, dword [r14 + 0x28]
mov rcx, r15
mov rdx, r9
mov qword [rsp + 0x30], r9
call fcn.14004c5a0
mov rdx, r14
mov rcx, r15
mov r8d, 0xff
call fcn.14004c4f0
mov r8d, dword [r14 + 0x28]
mov rdx, qword [rsp + 0x30]
mov rcx, r15
call fcn.14004c5f0
mov eax, dword [rsp + 0x38]
mov rdx, qword [rsp + 0x20]
mov rcx, r15
mov r8d, 2
mov word [rsp + 0x5e], ax
call fcn.14004c5f0
mov rcx, r15
call fcn.14004c4a0
mov r8d, dword [rsp + 0x38]
mov rdx, qword [rsp + 0x30]
mov rcx, r15
call fcn.14004c5a0
mov rcx, qword [r12]
mov rdx, qword [rbx + 0x10]
mov r8d, dword [r14 + 0xc]
call sub.msvcrt.dll_memcpy
jmp 0x14020be24
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.14004c4f0
mov r8d, dword [r14 + 0x24]
mov rdx, qword [rsp + 0x30]
mov rcx, r15
call fcn.14004c5f0
mov rcx, r15
call fcn.14004c4a0
mov r8d, dword [r14 + 0x28]
mov rdx, qword [rsp + 0x38]
mov rcx, r15
call fcn.14004c5a0
mov r8d, 0xff
mov rdx, r14
mov rcx, r15
call fcn.14004c4f0
mov r9, qword [rsp + 0x38]
mov r8d, dword [r14 + 0x28]
mov rcx, r15
mov rdx, r9
mov qword [rsp + 0x30], r9
call fcn.14004c5f0
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.14004c5f0
mov rcx, r15
call fcn.14004c4a0
mov r8d, dword [rsp + 0x38]
mov rdx, qword [rsp + 0x30]
mov rcx, r15
call fcn.14004c5a0
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 0x14020be24
mov r8d, 2
mov rdx, r14
mov rcx, r15
call fcn.14004c4f0
mov r8d, dword [r14 + 0x24]
mov rdx, rbx
mov rcx, r15
call fcn.14004c5f0
mov rcx, r15
call fcn.14004c4a0
mov r8d, dword [r14 + 0x28]
mov rdx, rsi
mov rcx, r15
call fcn.14004c5a0
mov r8d, 0xff
mov rdx, r14
mov rcx, r15
call fcn.14004c4f0
mov r8d, dword [r14 + 0x28]
mov rdx, rsi
mov rcx, r15
call fcn.14004c5f0
mov eax, dword [rsp + 0x38]
mov rdx, qword [rsp + 0x28]
mov r8d, 2
mov word [rsp + 0x5e], ax
jmp 0x14020c007