Function at 0x140016520
Capabilities:
Encode data using xor

Disassembly:
mov qword [rsp + 0x18], rbx
mov qword [rsp + 0x20], rbp
push rsi
push rdi
push r12
push r14
push r15
sub rsp, 0x60
mov rax, qword [0x14018ef00]
xor rax, rsp
mov qword [rsp + 0x50], rax
movzx r15d, r8b
mov rsi, rdx
mov rdi, rcx
mov qword [rsp + 0x20], rcx
mov r12d, dword [rcx + 0x40c]
mov dword [rsp + 0x28], r12d
mov rax, qword [rdx + 0x28]
mov qword [rsp + 0x30], rax
add rcx, 0xe0
lea rdx, [rsp + 0x30]
call fcn.14001ea50
test rax, rax
je 0x140016589
movups xmm1, xmmword [rax]
movsd xmm0, qword [rax + 0x10]
jmp 0x1400165a0
mov qword [rsp + 0x30], rax
xorps xmm0, xmm0
movdqu xmmword [rsp + 0x38], xmm0
movups xmm1, xmmword [rsp + 0x30]
unpckhpd xmm0, xmm0
movsd qword [rsp + 0x40], xmm0
movd eax, xmm1
cmp eax, 3
jne 0x140016685
movaps xmm2, xmm1
unpckhpd xmm2, xmm1
comisd xmm2, xmmword [0x140174038]
jb 0x140016685
movsd xmm0, qword [0x140174068]
comisd xmm0, xmm2
jb 0x140016685
cvttsd2si ebp, xmm2
movd xmm0, ebp
cvtdq2pd xmm0, xmm0
ucomisd xmm0, xmm2
jp 0x140016685
jne 0x140016685
dec bpl
mov rdx, qword [rsi + 0x20]
mov rcx, rdi
call fcn.1400173a0
mov rcx, qword [rsi + 0x28]
cmp dword [rdi + 0xc], 1
jl 0x14001661d
mov rdx, qword [rdi]
mov ecx, dword [rcx + 0xc]
inc ecx
mov dword [rdx + 0x1b8], ecx
mov rbx, qword [rdi]
movzx ecx, bpl
shl ecx, 8
movzx eax, al
or ecx, eax
shl ecx, 8
or ecx, r15d
shl ecx, 8
or ecx, 0x11
mov dword [rsp + 0x30], ecx
mov rdx, qword [rbx + 0x30]
cmp rdx, qword [rbx + 0x38]
je 0x14001664f
mov dword [rdx], ecx
add qword [rbx + 0x30], 4
jmp 0x14001665d
lea r8, [rsp + 0x30]
lea rcx, [rbx + 0x28]
call fcn.14000e340
lea rcx, [rbx + 0x40]
lea r8, [rbx + 0x1b8]
mov rdx, qword [rbx + 0x48]
cmp rdx, qword [rbx + 0x50]
je 0x140016842
mov eax, dword [r8]
mov dword [rdx], eax
add qword [rbx + 0x48], 4
jmp 0x140016848
cmp eax, 5
jne 0x1400167ca
movdqa xmm0, xmm1
psrldq xmm0, 8
movq rbp, xmm0
psrldq xmm1, 4
movd ebx, xmm1
mov qword [rsp + 0x30], rbp
mov qword [rsp + 0x38], rbx
lea rdx, [rsp + 0x30]
mov rcx, qword [rdi]
call fcn.1400090b0
mov r14d, eax
test eax, eax
js 0x140016875
mov rdx, qword [rsi + 0x20]
mov rcx, rdi
call fcn.1400173a0
movzx r8d, al
mov rcx, qword [rsi + 0x28]
cmp dword [rdi + 0xc], 1
jl 0x1400166ef
mov rdx, qword [rdi]
mov ecx, dword [rcx + 0xc]
inc ecx
mov dword [rdx + 0x1b8], ecx
mov rsi, qword [rdi]
test rbx, rbx
je 0x14001671b
mov rdx, rbx
nop word [rax + rax]
movzx ecx, byte [rdx + rbp - 1]
mov eax, ebx
shl eax, 5
add ecx, eax
mov eax, ebx
shr eax, 2
add ecx, eax
xor ebx, ecx
sub rdx, 1
jne 0x140016700
movzx ecx, bl
shl ecx, 8
or ecx, r8d
shl ecx, 8
or ecx, r15d
shl ecx, 8
or ecx, 0xf
mov dword [rsp + 0x30], ecx
mov rdx, qword [rsi + 0x30]
cmp rdx, qword [rsi + 0x38]
je 0x140016747
mov dword [rdx], ecx
add qword [rsi + 0x30], 4
jmp 0x140016755
lea r8, [rsp + 0x30]
lea rcx, [rsi + 0x28]
call fcn.14000e340
lea rcx, [rsi + 0x40]
lea r8, [rsi + 0x1b8]
mov rdx, qword [rsi + 0x48]
cmp rdx, qword [rsi + 0x50]
je 0x140016776
mov eax, dword [r8]
mov dword [rdx], eax
add qword [rsi + 0x48], 4
jmp 0x14001677b
call fcn.14000e340
mov rbx, qword [rdi]
mov dword [rsp + 0x30], r14d
lea rcx, [rbx + 0x28]
mov rdx, qword [rbx + 0x30]
cmp rdx, qword [rbx + 0x38]
je 0x14001679b
mov dword [rdx], r14d
add qword [rbx + 0x30], 4
jmp 0x1400167a5
lea r8, [rsp + 0x30]
call fcn.14000e340
lea rcx, [rbx + 0x40]
lea r8, [rbx + 0x1b8]
mov rdx, qword [rbx + 0x48]
cmp rdx, qword [rbx + 0x50]
je 0x140016842
mov eax, dword [r8]
mov dword [rdx], eax
add qword [rbx + 0x48], 4
jmp 0x140016848
mov rdx, qword [rsi + 0x20]
mov rcx, rdi
call fcn.1400173a0
movzx ebx, al
mov rdx, qword [rsi + 0x28]
mov rcx, rdi
call fcn.1400173a0
mov rsi, qword [rdi]
movzx ecx, al
shl ecx, 8
or ecx, ebx
shl ecx, 8
or ecx, r15d
shl ecx, 8
or ecx, 0xd
mov dword [rsp + 0x30], ecx
mov rdx, qword [rsi + 0x30]
cmp rdx, qword [rsi + 0x38]
je 0x140016813
mov dword [rdx], ecx
add qword [rsi + 0x30], 4
jmp 0x140016821
lea r8, [rsp + 0x30]
lea rcx, [rsi + 0x28]
call fcn.14000e340
lea rcx, [rsi + 0x40]
lea r8, [rsi + 0x1b8]
mov rdx, qword [rsi + 0x48]
cmp rdx, qword [rsi + 0x50]
je 0x140016842
mov eax, dword [r8]
mov dword [rdx], eax
add qword [rsi + 0x48], 4
jmp 0x140016848
call fcn.14000e340
nop
mov dword [rdi + 0x40c], r12d
mov rcx, qword [rsp + 0x50]
xor rcx, rsp
call fcn.140139630
lea r11, [rsp + 0x60]
mov rbx, qword [r11 + 0x40]
mov rbp, qword [r11 + 0x48]
mov rsp, r11
pop r15
pop r14
pop r12
pop rdi
pop rsi
ret
lea rcx, [rsi + 0xc]
lea rdx, str.Exceeded_constant_limit__simplify_the_code_to_compile
call fcn.14000f210
int3