Function at 0x140280580
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.14028fd08
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 0x14027842e
mov ebx, ebp
cmp eax, ebp
jle 0x14027841b
add ebx, ebx
cmp ebx, eax
jl 0x140278415
movsxd rdx, ebx
shl rdx, 2
call fcn.1402a5948
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 0x140278461
test ebx, ebx
cmove ebx, ebp
cmp ebx, edx
jge 0x14027844a
add ebx, ebx
cmp ebx, edx
jl 0x140278444
mov rcx, qword [rdi + 0x28]
movsxd rdx, ebx
shl rdx, 4
call fcn.1402a5948
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.140289020
movsxd r8, dword [rsi + 0x30]
mov rdx, qword [rsi + 0x28]
mov rcx, qword [rdi + 0x28]
shl r8, 4
call fcn.140289020
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 0x14028093d
movsxd rax, dword [rcx + 0x10]
test eax, eax
je 0x14028093d
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 0x14028063b
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 0x140280600
mov dword [rsp + 0x100], ebp
mov dword [rsp + 0x110], r15d
mov rcx, r10
call fcn.1402784c0
mov rsi, rax
mov qword [rsp + 0x20], rax
call fcn.140278720
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 0x140280692
test edi, edi
cmove edi, r14d
cmp edi, r8d
jge 0x14028067b
add edi, edi
cmp edi, r8d
jl 0x140280674
mov rcx, qword [rax + 0x18]
movsxd rdx, edi
shl rdx, 2
call fcn.1402a5948
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 0x1402806cd
test edi, edi
cmove edi, r14d
cmp edi, edx
jge 0x1402806b6
nop dword [rax]
add edi, edi
cmp edi, edx
jl 0x1402806b0
mov rcx, qword [rbx + 0x28]
movsxd rdx, edi
shl rdx, 4
call fcn.1402a5948
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 0x1402808cc
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 0x14028075c
movaps xmm2, xmm10
movaps xmm1, xmm9
mov rcx, rbx
call fcn.1402789a0
add r14, 4
add rsi, 0x10
cmp r14, r12
jae 0x140280892
nop dword [rax]
cmp dword [r14], 1
jne 0x140280921
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.1402a7f80
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 0x140280859
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 0x14028080b
call fcn.1402788c0
jmp 0x140280810
call fcn.1402789a0
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 0x1402807d1
movsd xmm9, qword [rsi]
subsd xmm7, xmm6
movsd xmm10, qword [rsi + 8]
addsd xmm8, xmm7
test ebp, ebp
je 0x140280881
movaps xmm2, xmm10
movaps xmm1, xmm9
mov rcx, rbx
call fcn.1402788c0
add r14, 4
add rsi, 0x10
cmp r14, r12
jb 0x140280770
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.140278880
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 0x140280730
mov rcx, r10
add rsp, 0xf0
pop r13
jmp 0x1402783c0