Function at 0x1401a72b0
Capabilities:
Encode data using xor

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rbp
mov qword [rsp + 0x18], rsi
push rdi
sub rsp, 0x20
mov rsi, rcx
mov ecx, 0x38
call fcn.1401b81b8
xor ecx, ecx
mov rdi, rax
mov qword [rax], 1
mov qword [rax + 8], rcx
lea ebp, [rcx + 8]
mov qword [rax + 0x10], rcx
mov qword [rax + 0x18], rcx
mov qword [rax + 0x20], rcx
mov qword [rax + 0x28], rcx
mov qword [rax + 0x30], rcx
mov eax, dword [rsi + 0x20]
test eax, eax
jle 0x14019f15e
mov ebx, ebp
cmp eax, ebp
jle 0x14019f14b
add ebx, ebx
cmp ebx, eax
jl 0x14019f145
movsxd rdx, ebx
shl rdx, 2
call fcn.1401c977c
mov qword [rdi + 0x18], rax
mov dword [rdi + 0x24], ebx
mov edx, dword [rdi + 0x30]
add edx, dword [rsi + 0x30]
mov ebx, dword [rdi + 0x34]
cmp edx, ebx
jle 0x14019f191
test ebx, ebx
cmove ebx, ebp
cmp ebx, edx
jge 0x14019f17a
add ebx, ebx
cmp ebx, edx
jl 0x14019f174
mov rcx, qword [rdi + 0x28]
movsxd rdx, ebx
shl rdx, 4
call fcn.1401c977c
mov qword [rdi + 0x28], rax
mov dword [rdi + 0x34], ebx
movsxd r8, dword [rsi + 0x20]
mov rdx, qword [rsi + 0x18]
mov rcx, qword [rdi + 0x18]
shl r8, 2
call fcn.1401b00b0
movsxd r8, dword [rsi + 0x30]
mov rdx, qword [rsi + 0x28]
mov rcx, qword [rdi + 0x28]
shl r8, 4
call fcn.1401b00b0
mov ecx, dword [rsi + 0x20]
mov rax, rdi
mov rbx, qword [rsp + 0x30]
mov rbp, qword [rsp + 0x38]
mov dword [rdi + 0x20], ecx
mov ecx, dword [rsi + 0x30]
mov dword [rdi + 0x30], ecx
mov ecx, dword [rsi + 4]
mov dword [rdi + 4], ecx
movups xmm0, xmmword [rsi + 8]
mov rsi, qword [rsp + 0x40]
movups xmmword [rdi + 8], xmm0
add rsp, 0x20
pop rdi
ret
mov r11, rsp
push r13
sub rsp, 0xf0
mov r8, qword [rcx + 8]
mov r10, rdx
mov r13, rcx
test r8, r8
je 0x1401a766d
movsxd rax, dword [rcx + 0x10]
test eax, eax
je 0x1401a766d
mov qword [r11 + 0x10], rbx
mov qword [r11 - 0x10], rbp
mov ebp, 1
mov qword [r11 - 0x18], rsi
mov qword [r11 - 0x20], rdi
mov qword [r11 - 0x28], r12
mov qword [r11 - 0x30], r14
mov qword [r11 - 0x38], r15
xor r15d, r15d
movaps xmmword [rsp + 0x30], xmm14
movsd xmm14, qword [rcx]
comisd xmm14, xmmword [r8]
mov dword [rsp + 0x100], ebp
mov dword [rsp + 0x110], r15d
jb 0x1401a736b
mov r9, rax
xor edx, edx
nop word [rax + rax]
subsd xmm14, qword [r8 + rdx*8]
lea rcx, [rdx + 1]
xor ebp, 1
xor edx, edx
lea eax, [r15 + 1]
cmp rcx, r9
cmovne rdx, rcx
xor r15d, r15d
cmp rcx, r9
cmovne r15d, eax
comisd xmm14, xmmword [r8 + rdx*8]
jae 0x1401a7330
mov dword [rsp + 0x100], ebp
mov dword [rsp + 0x110], r15d
mov rcx, r10
call fcn.14019f1f0
mov rsi, rax
mov qword [rsp + 0x20], rax
call fcn.14019f450
mov rbx, rax
mov r14d, 8
mov r8d, dword [rax + 0x20]
add r8d, dword [rsi + 0x20]
mov edi, dword [rax + 0x24]
cmp r8d, edi
jle 0x1401a73c2
test edi, edi
cmove edi, r14d
cmp edi, r8d
jge 0x1401a73ab
add edi, edi
cmp edi, r8d
jl 0x1401a73a4
mov rcx, qword [rax + 0x18]
movsxd rdx, edi
shl rdx, 2
call fcn.1401c977c
mov qword [rbx + 0x18], rax
mov dword [rbx + 0x24], edi
mov edx, dword [rbx + 0x30]
add edx, dword [rsi + 0x30]
mov edi, dword [rbx + 0x34]
cmp edx, edi
jle 0x1401a73fd
test edi, edi
cmove edi, r14d
cmp edi, edx
jge 0x1401a73e6
nop dword [rax]
add edi, edi
cmp edi, edx
jl 0x1401a73e0
mov rcx, qword [rbx + 0x28]
movsxd rdx, edi
shl rdx, 4
call fcn.1401c977c
mov qword [rbx + 0x28], rax
mov dword [rbx + 0x34], edi
mov r14, qword [rsi + 0x18]
movsxd rax, dword [rsi + 0x20]
mov rsi, qword [rsi + 0x28]
lea r12, [r14 + rax*4]
cmp r14, r12
jae 0x1401a75fc
movaps xmmword [rsp + 0xb0], xmm6
movaps xmmword [rsp + 0xa0], xmm7
movaps xmmword [rsp + 0x90], xmm8
movaps xmmword [rsp + 0x80], xmm9
movaps xmmword [rsp + 0x70], xmm10
movaps xmmword [rsp + 0x60], xmm11
movaps xmmword [rsp + 0x50], xmm12
movsxd rax, r15d
movaps xmmword [rsp + 0x40], xmm13
xorps xmm13, xmm13
mov qword [rsp + 0x118], rax
nop
cmp dword [rsp + 0x100], 0
mov rdi, rax
movsd xmm9, qword [rsi]
movaps xmm8, xmm14
movsd xmm10, qword [rsi + 8]
je 0x1401a748c
movaps xmm2, xmm10
movaps xmm1, xmm9
mov rcx, rbx
call fcn.14019f6d0
add r14, 4
add rsi, 0x10
cmp r14, r12
jae 0x1401a75c2
nop dword [rax]
cmp dword [r14], 1
jne 0x1401a7651
movsd xmm11, qword [rsi]
movsd xmm12, qword [rsi + 8]
subsd xmm11, xmm9
subsd xmm12, xmm10
movaps xmm1, xmm11
mulsd xmm1, xmm11
movaps xmm0, xmm12
mulsd xmm0, xmm12
addsd xmm0, xmm1
call fcn.1401cdc58
mov rax, qword [r13 + 8]
movaps xmm2, xmm0
subsd xmm2, xmm13
movaps xmm7, xmm0
movaps xmm6, xmm13
movsd xmm1, qword [rax + rdi*8]
subsd xmm1, xmm8
comisd xmm2, xmm1
jbe 0x1401a7589
movsd xmm0, qword [rax + rdi*8]
mov rcx, rbx
subsd xmm0, xmm8
addsd xmm6, xmm0
movaps xmm2, xmm6
divsd xmm2, xmm7
movaps xmm1, xmm2
mulsd xmm2, xmm12
mulsd xmm1, xmm11
addsd xmm2, xmm10
addsd xmm1, xmm9
test ebp, ebp
je 0x1401a753b
call fcn.14019f5f0
jmp 0x1401a7540
call fcn.14019f6d0
xor eax, eax
lea edx, [r15 + 1]
test ebp, ebp
movaps xmm1, xmm7
subsd xmm1, xmm6
movaps xmm8, xmm13
sete al
mov ebp, eax
lea rax, [rdi + 1]
xor edi, edi
cmp edx, dword [r13 + 0x10]
cmovne rdi, rax
mov rax, qword [r13 + 8]
xor r15d, r15d
cmp edx, dword [r13 + 0x10]
movsd xmm0, qword [rax + rdi*8]
cmovne r15d, edx
subsd xmm0, xmm13
comisd xmm1, xmm0
ja 0x1401a7501
movsd xmm9, qword [rsi]
subsd xmm7, xmm6
movsd xmm10, qword [rsi + 8]
addsd xmm8, xmm7
test ebp, ebp
je 0x1401a75b1
movaps xmm2, xmm10
movaps xmm1, xmm9
mov rcx, rbx
call fcn.14019f5f0
add r14, 4
add rsi, 0x10
cmp r14, r12
jb 0x1401a74a0
movaps xmm12, xmmword [rsp + 0x50]
movaps xmm11, xmmword [rsp + 0x60]
movaps xmm10, xmmword [rsp + 0x70]
movaps xmm9, xmmword [rsp + 0x80]
movaps xmm8, xmmword [rsp + 0x90]
movaps xmm7, xmmword [rsp + 0xa0]
movaps xmm6, xmmword [rsp + 0xb0]
movaps xmm13, xmmword [rsp + 0x40]
mov rcx, qword [rsp + 0x20]
call fcn.14019f5b0
movaps xmm14, xmmword [rsp + 0x30]
mov rax, rbx
mov rbx, qword [rsp + 0x108]
mov r15, qword [rsp + 0xc0]
mov r14, qword [rsp + 0xc8]
mov r12, qword [rsp + 0xd0]
mov rdi, qword [rsp + 0xd8]
mov rsi, qword [rsp + 0xe0]
mov rbp, qword [rsp + 0xe8]
add rsp, 0xf0
pop r13
ret
mov r15d, dword [rsp + 0x110]
mov ebp, dword [rsp + 0x100]
mov rax, qword [rsp + 0x118]
jmp 0x1401a7460
mov rcx, r10
add rsp, 0xf0
pop r13
jmp 0x14019f0f0