Function at 0x14003cbe0
Capabilities:
Encode data using xor

Disassembly:
mov qword [rsp + 8], rcx
push rsi
push rdi
push r14
sub rsp, 0x40
mov rsi, rcx
xor edi, edi
mov rcx, qword [rcx]
mov r14, rdx
mov dword [rsp + 0x78], edi
cmp dword [rsi + 0x14], edi
jle 0x14003d251
mov qword [rsp + 0x68], rbx
mov qword [rsp + 0x38], rbp
mov qword [rsp + 0x30], r12
mov qword [rsp + 0x28], r13
mov qword [rsp + 0x20], r15
nop
movsxd rax, dword [rsi + 0x1c]
mov r15, rcx
mov r13d, dword [r15]
lea rcx, [rcx + rax*4]
dec r13d
mov qword [rsp + 8], rcx
test r13d, r13d
jle 0x14003d229
mov rdx, qword [r14]
add r15, 4
mov r8d, dword [rsi + 0xc]
xor r10d, r10d
add r8d, edi
mov eax, dword [rdx + 0xc]
mov r11d, dword [r15]
imul eax, r8d
sub r8d, dword [r14 + 0x18]
movsxd rcx, eax
mov eax, r8d
add rcx, qword [rdx]
cdq
mov qword [r14 + 0x20], rcx
mov rcx, qword [r14 + 8]
idiv dword [rcx + 0x18]
imul edx, dword [rcx + 0xc]
movsxd rax, edx
add rax, qword [rcx]
sub r13d, 1
mov qword [r14 + 0x28], rax
js 0x14003d04e
nop dword [rax + rax]
mov r12d, dword [r15 + 8]
mov esi, r12d
mov ebp, dword [r15 + 4]
lea r15, [r15 + 8]
mov ecx, r11d
sar esi, 8
sar ecx, 8
mov dword [rsp], r12d
cmp esi, ecx
jne 0x14003ccc1
mov eax, r12d
sub eax, r11d
imul eax, ebp
add r10d, eax
jmp 0x14003d038
movzx eax, r11b
mov edx, 0x100
sub edx, eax
imul edx, ebp
add edx, r10d
sar edx, 8
test edx, edx
jle 0x14003ce87
mov rax, qword [r14]
mov r8, qword [r14 + 8]
mov eax, dword [rax + 0x10]
imul eax, ecx
movsxd rdi, eax
mov eax, ecx
sub eax, dword [r14 + 0x14]
add rdi, qword [r14 + 0x20]
cmp edx, 0xff
jl 0x14003cd94
mov r10d, dword [rdi]
cdq
idiv dword [r8 + 0x14]
imul edx, dword [r8 + 0x10]
movsxd r8, edx
mov edx, 0x100
add r8, qword [r14 + 0x28]
movzx ebx, byte [r8 + 1]
movzx r11d, byte [r8 + 2]
or ebx, 0xff0000
imul ebx, dword [r14 + 0x10]
shl r11d, 0x10
shr ebx, 8
and ebx, 0xff00ff
mov eax, ebx
shr eax, 0x10
sub edx, eax
movzx eax, byte [r8]
or r11d, eax
mov eax, r10d
imul r11d, dword [r14 + 0x10]
and eax, 0xff00ff
shr r10d, 8
and r10d, 0xff00ff
imul eax, edx
imul r10d, edx
shr r11d, 8
and r11d, 0xff00ff
shr eax, 8
and eax, 0xff00ff
shr r10d, 8
add r11d, eax
and r10d, 0xff00ff
add ebx, r10d
jmp 0x14003ce2a
mov r10d, dword [r14 + 0x10]
mov r9d, dword [rdi]
imul r10d, edx
cdq
idiv dword [r8 + 0x14]
sar r10d, 8
imul edx, dword [r8 + 0x10]
movsxd r8, edx
mov edx, 0x100
add r8, qword [r14 + 0x28]
movzx ebx, byte [r8 + 1]
movzx r11d, byte [r8 + 2]
or ebx, 0xff0000
shl r11d, 0x10
imul ebx, r10d
shr ebx, 8
and ebx, 0xff00ff
mov eax, ebx
shr eax, 0x10
sub edx, eax
movzx eax, byte [r8]
or r11d, eax
mov eax, r9d
shr r9d, 8
and eax, 0xff00ff
imul r11d, r10d
and r9d, 0xff00ff
imul eax, edx
imul r9d, edx
shr r11d, 8
shr eax, 8
and r11d, 0xff00ff
and eax, 0xff00ff
shr r9d, 8
add r11d, eax
and r9d, 0xff00ff
add ebx, r9d
mov eax, ebx
mov r8d, 0x100
shr eax, 8
mov edx, 0x100
and eax, 0xff00ff
sub r8d, eax
mov eax, ebx
shl eax, 8
shl r8d, 8
or r8d, eax
mov eax, r11d
shr eax, 8
and eax, 0xff00ff
sub edx, eax
mov eax, ebx
or edx, r11d
shr eax, 8
xor r8d, edx
shl ebx, 8
and eax, 0xff00ff
mov edx, 0x100
sub edx, eax
and r8d, 0xff00ff
shl edx, 8
or edx, ebx
xor r8d, edx
mov dword [rdi], r8d
test ebp, ebp
jle 0x14003d030
inc ecx
sub esi, ecx
test esi, esi
jle 0x14003d030
mov rax, qword [r14]
mov edi, dword [r14 + 0x10]
imul edi, ebp
movsxd rdx, dword [rax + 0x10]
mov eax, edx
imul eax, ecx
sub ecx, dword [r14 + 0x14]
sar edi, 8
movsxd rbx, eax
add rbx, qword [r14 + 0x20]
cmp edi, 0xfe
jge 0x14003cfdf
mov r12, rdx
nop dword [rax + rax]
mov r8, qword [r14 + 8]
mov eax, ecx
mov r9d, dword [rbx]
cdq
inc ecx
dec esi
idiv dword [r8 + 0x14]
mov eax, dword [r8 + 0x10]
mov r8d, 0x100
imul eax, edx
movsxd rdx, eax
add rdx, qword [r14 + 0x28]
movzx r11d, byte [rdx + 1]
movzx r10d, byte [rdx + 2]
or r11d, 0xff0000
shl r10d, 0x10
imul r11d, edi
shr r11d, 8
and r11d, 0xff00ff
mov eax, r11d
shr eax, 0x10
sub r8d, eax
movzx eax, byte [rdx]
or r10d, eax
mov edx, 0x100
mov eax, r9d
imul r10d, edi
and eax, 0xff00ff
shr r9d, 8
imul eax, r8d
and r9d, 0xff00ff
imul r9d, r8d
mov r8d, 0x100
shr r10d, 8
and r10d, 0xff00ff
shr eax, 8
and eax, 0xff00ff
shr r9d, 8
add r10d, eax
and r9d, 0xff00ff
add r11d, r9d
mov eax, r11d
shr eax, 8
and eax, 0xff00ff
sub r8d, eax
mov eax, r11d
shl eax, 8
shl r8d, 8
or r8d, eax
mov eax, r10d
shr eax, 8
and eax, 0xff00ff
sub edx, eax
mov eax, r11d
or edx, r10d
shr eax, 8
xor r8d, edx
shl r11d, 8
and eax, 0xff00ff
and r8d, 0xff00ff
mov edx, 0x100
sub edx, eax
shl edx, 8
or edx, r11d
xor r8d, edx
mov dword [rbx], r8d
add rbx, r12
test esi, esi
jg 0x14003ced0
mov r12d, dword [rsp]
jmp 0x14003d030
mov r9, rdx
mov r8, qword [r14 + 8]
mov eax, ecx
cdq
inc ecx
dec esi
idiv dword [r8 + 0x14]
mov eax, dword [r8 + 0x10]
imul eax, edx
movsxd r8, eax
add r8, qword [r14 + 0x28]
movzx eax, word [r8]
movzx edx, byte [r8 + 2]
shl edx, 8
mov word [rsp + 0x70], ax
movzx eax, byte [rsp + 0x71]
or edx, eax
movzx eax, byte [rsp + 0x70]
shl edx, 8
or edx, eax
or edx, 0xff000000
mov dword [rbx], edx
add rbx, r9
test esi, esi
jg 0x14003cfe2
movzx r10d, r12b
imul r10d, ebp
sub r13d, 1
mov r11d, r12d
jns 0x14003cc90
mov edi, dword [rsp + 0x78]
mov rsi, qword [rsp + 0x60]
sar r10d, 8
test r10d, r10d
jle 0x14003d224
mov rax, qword [r14]
sar r11d, 8
cmp r10d, 0xff
jl 0x14003d11a
mov ecx, dword [rax + 0x10]
imul ecx, r11d
sub r11d, dword [r14 + 0x14]
mov eax, r11d
cdq
movsxd rbx, ecx
mov rcx, qword [r14 + 8]
add rbx, qword [r14 + 0x20]
idiv dword [rcx + 0x14]
mov r9d, dword [rbx]
imul edx, dword [rcx + 0x10]
movsxd rcx, edx
mov edx, 0x100
add rcx, qword [r14 + 0x28]
movzx r11d, byte [rcx + 1]
movzx r10d, byte [rcx + 2]
or r11d, 0xff0000
imul r11d, dword [r14 + 0x10]
shl r10d, 0x10
shr r11d, 8
and r11d, 0xff00ff
mov eax, r11d
shr eax, 0x10
sub edx, eax
movzx eax, byte [rcx]
or r10d, eax
mov eax, r9d
imul r10d, dword [r14 + 0x10]
and eax, 0xff00ff
shr r9d, 8
and r9d, 0xff00ff
imul eax, edx
imul r9d, edx
shr r10d, 8
and r10d, 0xff00ff
shr eax, 8
and eax, 0xff00ff
shr r9d, 8
add r10d, eax
and r9d, 0xff00ff
add r11d, r9d
jmp 0x14003d1ca
mov eax, dword [rax + 0x10]
mov rcx, qword [r14 + 8]
mov r9d, dword [r14 + 0x10]
imul eax, r11d
sub r11d, dword [r14 + 0x14]
imul r9d, r10d
movsxd rbx, eax
mov eax, r11d
add rbx, qword [r14 + 0x20]
cdq
idiv dword [rcx + 0x14]
mov r8d, dword [rbx]
imul edx, dword [rcx + 0x10]
sar r9d, 8
movsxd rcx, edx
mov edx, 0x100
add rcx, qword [r14 + 0x28]
movzx r11d, byte [rcx + 1]
movzx r10d, byte [rcx + 2]
or r11d, 0xff0000
shl r10d, 0x10
imul r11d, r9d
shr r11d, 8
and r11d, 0xff00ff
mov eax, r11d
shr eax, 0x10
sub edx, eax
movzx eax, byte [rcx]
or r10d, eax
mov eax, r8d
shr r8d, 8
and eax, 0xff00ff
imul r10d, r9d
and r8d, 0xff00ff
imul eax, edx
imul r8d, edx
shr r10d, 8
shr eax, 8
and r10d, 0xff00ff
and eax, 0xff00ff
shr r8d, 8
add r10d, eax
and r8d, 0xff00ff
add r11d, r8d
mov eax, r11d
mov edx, 0x100
shr eax, 8
mov ecx, 0x100
and eax, 0xff00ff
sub edx, eax
mov eax, r11d
shl eax, 8
shl edx, 8
or edx, eax
mov eax, r10d
shr eax, 8
and eax, 0xff00ff
sub ecx, eax
mov eax, r11d
or ecx, r10d
shr eax, 8
xor edx, ecx
shl r11d, 8
and eax, 0xff00ff
mov ecx, 0x100
sub ecx, eax
and edx, 0xff00ff
shl ecx, 8
or ecx, r11d
xor edx, ecx
mov dword [rbx], edx
mov rcx, qword [rsp + 8]
inc edi
mov dword [rsp + 0x78], edi
cmp edi, dword [rsi + 0x14]
jl 0x14003cc20
mov r15, qword [rsp + 0x20]
mov r13, qword [rsp + 0x28]
mov r12, qword [rsp + 0x30]
mov rbp, qword [rsp + 0x38]
mov rbx, qword [rsp + 0x68]
add rsp, 0x40
pop r14
pop rdi
pop rsi
ret