Function at 0x14020c9a0
Capabilities:
Encode data using xor

Disassembly:
mov dword [rsp + 0x18], r8d
push rbx
push rsi
push rdi
push r12
push r14
push r15
sub rsp, 0x38
mov rax, qword [rdx + 0x20]
lea edi, [r8 + r9]
xor r14d, r14d
mov r12d, r8d
mov r15, rdx
mov rsi, rcx
mov ebx, r14d
test rax, rax
je 0x14020c9e5
xor r9d, r9d
xor r8d, r8d
mov edx, edi
mov rcx, r15
call rax
test eax, eax
je 0x14020c9f1
lea ebx, [r14 + 0x55]
jmp 0x14020c9f5
cmp edi, dword [rdx + 8]
jbe 0x14020c9f1
mov ebx, 0x55
jmp 0x14020c9f5
mov dword [r15 + 0xc], edi
test ebx, ebx
jne 0x14020cc19
mov ebx, dword [rsp + 0x90]
mov rcx, r15
mov edx, ebx
call fcn.140201380
test eax, eax
jne 0x14020cbf5
mov rdx, qword [r15 + 0x38]
lea r8, [rdx + rbx]
test ebx, ebx
je 0x14020cc07
cmp byte [rdx], r14b
jge 0x14020cc07
movsxd rdi, dword [rsi + 0x18]
mov rcx, rsi
mov qword [rsp + 0x70], rbp
mov rbp, qword [rsi + 0x28]
call fcn.14020c6e0
mov rcx, r15
mov ebx, eax
call fcn.1402014a0
test ebx, ebx
jne 0x14020cc03
mov ecx, dword [rsi + 0x18]
sub ecx, edi
movsxd rax, ecx
mov qword [rsp + 0x78], rax
test ecx, ecx
jle 0x14020cc03
lea rdi, [rdi + rdi*2]
mov qword [rsp + 0x30], r13
shl rdi, 3
nop dword [rax + rax]
mov rcx, qword [rsi + 0x20]
mov r8d, r12d
movsx rbx, word [rbp + 0x1a]
mov rdx, r15
mov eax, dword [rcx + rdi + 0x14]
mov r9d, dword [rcx + rdi + 0x10]
mov rcx, rsi
mov dword [rsp + 0x20], eax
call fcn.14020c9a0
mov r13d, eax
test eax, eax
jne 0x14020cbeb
mov r11, qword [rsi + 0x20]
movsx edx, word [rbp + 0x1a]
add r11, rdi
sub edx, ebx
cmp dword [r11], 0x10000
jne 0x14020cafc
cmp dword [r11 + 4], 0x10000
jne 0x14020cafc
mov rax, qword [rbp + 0x20]
lea rax, [rax + rbx*8]
test edx, edx
jle 0x14020cbd6
nop
mov ecx, dword [r11 + 8]
add dword [rax], ecx
lea rax, [rax + 8]
mov ecx, dword [r11 + 0xc]
add dword [rax - 4], ecx
sub rdx, 1
jne 0x14020cae0
jmp 0x14020cbd6
mov rax, qword [rbp + 0x20]
lea rbx, [rax + rbx*8]
test edx, edx
jle 0x14020cbd6
mov r12d, edx
nop
mov ecx, dword [rbx]
lea rbx, [rbx + 8]
mov r10d, dword [r11]
mov eax, ecx
neg eax
mov r9d, ecx
sar r9d, 0x1f
and r9d, 0xfffffffe
inc r9d
test ecx, ecx
cmovns eax, ecx
mov ecx, r9d
movsxd r8, eax
neg ecx
mov eax, r10d
cdq
xor eax, edx
sub eax, edx
cdqe
imul r8, rax
add r8, 0x8000
sar r8, 0x10
mov eax, r8d
test r10d, r10d
cmovns ecx, r9d
neg eax
test ecx, ecx
mov ecx, dword [rbx - 4]
mov r9d, ecx
cmovle r8d, eax
sar r9d, 0x1f
add r8d, dword [r11 + 8]
and r9d, 0xfffffffe
mov dword [rbx - 8], r8d
inc r9d
mov r10d, dword [r11 + 4]
mov eax, ecx
neg eax
test ecx, ecx
cmovns eax, ecx
mov ecx, r9d
movsxd r8, eax
neg ecx
mov eax, r10d
cdq
xor eax, edx
sub eax, edx
cdqe
imul r8, rax
add r8, 0x8000
sar r8, 0x10
test r10d, r10d
mov eax, r8d
cmovns ecx, r9d
neg eax
test ecx, ecx
cmovle r8d, eax
add r8d, dword [r11 + 0xc]
mov dword [rbx - 4], r8d
sub r12, 1
jne 0x14020cb10
mov r12d, dword [rsp + 0x80]
inc r14
add rdi, 0x18
cmp r14, qword [rsp + 0x78]
jl 0x14020ca80
mov eax, r13d
mov r13, qword [rsp + 0x30]
mov rbp, qword [rsp + 0x70]
add rsp, 0x38
pop r15
pop r14
pop r12
pop rdi
pop rsi
pop rbx
ret
mov eax, ebx
jmp 0x14020cbf0
mov rcx, rsi
call fcn.14020c100
mov rcx, r15
mov ebx, eax
call fcn.1402014a0
mov eax, ebx
add rsp, 0x38
pop r15
pop r14
pop r12
pop rdi
pop rsi
pop rbx
ret