Function at 0x14020c890
Capabilities:
Encode data using xor

Disassembly:
push r15
mov r15, rcx
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x58
mov rbx, qword [rsp + 0xc0]
mov qword [rsp + 0xa8], rdx
mov qword [rsp + 0xb0], r8
mov qword [rsp + 0xb8], r9
mov dword [rbx], 0x7fffd801
cmp rdx, 1
jbe 0x14020cada
mov rax, r8
lea rbp, [rbx + 4]
mov qword [rsp + 0xa0], rcx
mov r14d, 1
shl rax, 2
mov qword [rsp + 0x48], rax
lea rax, [0x1402cde6c]
mov qword [rsp + 0x38], rax
nop dword [rax]
mov rax, qword [rsp + 0x38]
mov edx, 2
lea r15, [r14*4]
mov esi, dword [rax]
mov r12d, dword [rax + 8]
mov eax, 2
sub eax, esi
mov ecx, esi
mov r11d, esi
mov r10, rsi
imul ecx, eax
sub edx, ecx
mov ecx, esi
imul eax, edx
mov edx, 2
imul ecx, eax
sub edx, ecx
mov ecx, esi
imul eax, edx
mov edx, 2
imul ecx, eax
sub edx, ecx
mov ecx, esi
imul eax, edx
imul r11d, eax
sub r11d, 2
imul r11d, eax
and r11d, 0x7fffffff
mov edx, r11d
call fcn.140144080
cmp qword [rsp + 0xb8], 0
je 0x14020ca8a
mov edi, r12d
mov qword [rsp + 0x40], rbp
mov r12, qword [rsp + 0x48]
xor r13d, r13d
mov qword [rsp + 0x28], rdi
mov edi, eax
lea rax, [r14 - 1]
mov r9, qword [rsp + 0xa0]
mov qword [rsp + 0x30], rax
nop dword [rax]
mov ebp, dword [r9 + r15]
mov r8, qword [rsp + 0x30]
xor eax, eax
nop dword [rax + rax]
imul rax, rdi
mov rdx, rax
imul rdx, r11
and edx, 0x7fffffff
imul rdx, rsi
add rax, rdx
mov edx, dword [r9 + r8*4]
shr rax, 0x1f
sub eax, r10d
sub edx, r10d
mov ecx, eax
sub eax, r10d
sar ecx, 0x1f
and ecx, r10d
add eax, ecx
add eax, edx
sar edx, 0x1f
and edx, r10d
add eax, edx
cdq
and edx, r10d
add eax, edx
sub r8, 1
jae 0x14020c9b8
sub ebp, eax
xor ecx, ecx
mov eax, ebp
sar eax, 0x1f
and eax, r10d
lea edx, [rbp + rax]
imul rdx, qword [rsp + 0x28]
mov rax, rdx
imul rax, r11
and eax, 0x7fffffff
imul rax, rsi
add rax, rdx
shr rax, 0x1f
sub eax, r10d
cdq
and edx, r10d
lea ebp, [rax + rdx]
xor edx, edx
nop word [rax + rax]
mov eax, dword [rbx + rdx*4]
mov r8d, dword [r9 + rdx*4]
imul rax, rbp
add rcx, r8
add rax, rcx
mov ecx, eax
shr rax, 0x1f
and ecx, 0x7fffffff
mov dword [r9 + rdx*4], ecx
add rdx, 1
mov ecx, eax
cmp rdx, r14
jne 0x14020ca40
mov dword [r9 + r15], eax
add r13, 1
add r9, r12
cmp r13, qword [rsp + 0xb8]
jne 0x14020c9a8
mov rbp, qword [rsp + 0x40]
mov rdx, rbx
xor ecx, ecx
nop
mov eax, dword [rdx]
add rdx, 4
imul rax, rsi
add rax, rcx
mov ecx, eax
shr rax, 0x1f
and ecx, 0x7fffffff
mov dword [rdx - 4], ecx
mov ecx, eax
cmp rbp, rdx
jne 0x14020ca90
mov dword [rbp], eax
add r14, 1
add rbp, 4
add qword [rsp + 0x38], 0xc
cmp r14, qword [rsp + 0xa8]
jne 0x14020c900
mov r15, qword [rsp + 0xa0]
mov rax, qword [rsp + 0xb0]
xor r10d, r10d
cmp qword [rsp + 0xb8], 0
mov rbp, qword [rsp + 0xb8]
lea rsi, [rax*4]
mov rax, qword [rsp + 0xa8]
lea r11, [rax - 1]
mov rdi, rax
je 0x14020cbb4
nop dword [rax + rax]
mov rdx, r11
xor r8d, r8d
xor ecx, ecx
test rdi, rdi
je 0x14020cba4
nop dword [rax]
mov r12d, dword [rbx + rdx*4]
shl ecx, 0x1e
mov eax, dword [r15 + rdx*4]
mov r9d, r12d
shr r9d, 1
or r9d, ecx
mov ecx, r12d
mov r12d, r9d
and ecx, 1
sub r12d, eax
sub eax, r9d
mov r9d, r8d
sar r12d, 0x1f
shr eax, 0x1f
and r9d, 1
or eax, r12d
sub r9d, 1
and eax, r9d
or r8d, eax
sub rdx, 1
jae 0x14020cb28
sar r8d, 0x1f
xor r9d, r9d
xor edx, edx
nop dword [rax]
mov ecx, dword [r15 + rdx*4]
mov eax, ecx
sub eax, r9d
sub eax, dword [rbx + rdx*4]
mov r9d, eax
and eax, 0x7fffffff
xor eax, ecx
shr r9d, 0x1f
and eax, r8d
xor ecx, eax
mov dword [r15 + rdx*4], ecx
add rdx, 1
cmp rdi, rdx
jne 0x14020cb78
add r10, 1
add r15, rsi
cmp rbp, r10
jne 0x14020cb18
add rsp, 0x58
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret