Function at 0x70511f80
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0xb8
movaps xmmword [rsp + 0x20], xmm6
movaps xmmword [rsp + 0x30], xmm7
movaps xmmword [rsp + 0x40], xmm8
movaps xmmword [rsp + 0x50], xmm9
movaps xmmword [rsp + 0x60], xmm10
movaps xmmword [rsp + 0x70], xmm11
movaps xmmword [rsp + 0x80], xmm12
movaps xmmword [rsp + 0x90], xmm13
movaps xmmword [rsp + 0xa0], xmm14
test rcx, rcx
je 0x70512374
mov r12d, dword [rcx]
mov rdi, r8
mov rbp, rdx
mov r13, rcx
cmp r12d, 0x20
jle 0x705124a8
cmp qword [rcx + 0x10], 0
je 0x705123c5
mov rdx, qword [rcx + 8]
test rdx, rdx
je 0x705123c5
cmp qword [rcx + 0x18], 0
je 0x705123c5
mov r9d, r12d
sar r12d, 2
sar r9d, 1
movsxd r12, r12d
movsxd rcx, r9d
movsd xmm6, qword [0x705a6450]
lea rbx, [rcx*8]
add rcx, r12
shl r12, 3
lea rsi, [r8 + rcx*8]
lea r8, [rdx + r12]
lea rax, [rbp + rbx - 0x38]
mov r10, r8
mov rcx, rsi
nop dword [rax]
movsd xmm0, qword [rax + 0x10]
sub rcx, 0x20
sub rax, 0x40
movsd xmm1, qword [rax + 0x40]
add r10, 0x20
xorpd xmm0, xmm6
mulsd xmm1, qword [r10 - 0x10]
mulsd xmm0, qword [r10 - 8]
subsd xmm0, xmm1
movsd qword [rcx], xmm0
movsd xmm0, qword [rax + 0x40]
movsd xmm1, qword [rax + 0x50]
mulsd xmm0, qword [r10 - 8]
mulsd xmm1, qword [r10 - 0x10]
subsd xmm0, xmm1
movsd qword [rcx + 8], xmm0
movsd xmm0, qword [rax + 0x70]
movsd xmm1, qword [rax + 0x60]
xorpd xmm0, xmm6
mulsd xmm1, qword [r10 - 0x20]
mulsd xmm0, qword [r10 - 0x18]
subsd xmm0, xmm1
movsd qword [rcx + 0x10], xmm0
movsd xmm0, qword [rax + 0x60]
movsd xmm1, qword [rax + 0x70]
mulsd xmm0, qword [r10 - 0x18]
mulsd xmm1, qword [r10 - 0x20]
cmp rbp, rax
subsd xmm0, xmm1
movsd qword [rcx + 0x18], xmm0
jbe 0x70512050
lea rax, [rbp + rbx - 0x40]
mov rcx, rsi
sub r8, 0x20
movsd xmm0, qword [rax + 0x20]
movsd xmm1, qword [r8 + 0x18]
sub rax, 0x40
add rcx, 0x20
mulsd xmm1, xmm0
movsd xmm0, qword [rax + 0x70]
mulsd xmm0, qword [r8 + 0x10]
addsd xmm0, xmm1
movsd qword [rcx - 0x20], xmm0
movsd xmm0, qword [rax + 0x60]
movsd xmm1, qword [rax + 0x70]
mulsd xmm0, qword [r8 + 0x10]
mulsd xmm1, qword [r8 + 0x18]
subsd xmm0, xmm1
movsd qword [rcx - 0x18], xmm0
movsd xmm0, qword [rax + 0x40]
movsd xmm1, qword [r8 + 8]
mulsd xmm1, xmm0
movsd xmm0, qword [rax + 0x50]
mulsd xmm0, qword [r8]
addsd xmm0, xmm1
movsd qword [rcx - 0x10], xmm0
movsd xmm0, qword [rax + 0x40]
movsd xmm1, qword [rax + 0x50]
mulsd xmm0, qword [r8]
mulsd xmm1, qword [r8 + 8]
subsd xmm0, xmm1
movsd qword [rcx - 8], xmm0
cmp rbp, rax
jbe 0x705120f0
lea rbp, [rdi + rbx]
mov ecx, dword [r13 + 4]
mov r8, rbp
call fcn.70504250
mov rdx, rdi
mov rcx, r13
call fcn.70502b50
add rbx, qword [r13 + 8]
mov r8, rsi
mov rdx, rsi
mov rax, rdi
mov rcx, rbx
movsd xmm0, qword [rax]
sub rdx, 0x20
add rax, 0x40
movsd xmm1, qword [rax - 0x38]
add r8, 0x20
mulsd xmm0, qword [rcx + 8]
add rcx, 0x40
mulsd xmm1, qword [rcx - 0x40]
subsd xmm0, xmm1
movsd qword [rdx + 0x18], xmm0
movsd xmm0, qword [rax - 0x40]
movsd xmm1, qword [rcx - 0x40]
mulsd xmm1, xmm0
movsd xmm0, qword [rax - 0x38]
mulsd xmm0, qword [rcx - 0x38]
addsd xmm0, xmm1
xorpd xmm0, xmm6
movsd qword [r8 - 0x20], xmm0
movsd xmm0, qword [rax - 0x30]
movsd xmm1, qword [rax - 0x28]
mulsd xmm0, qword [rcx - 0x28]
mulsd xmm1, qword [rcx - 0x30]
subsd xmm0, xmm1
movsd qword [rdx + 0x10], xmm0
movsd xmm0, qword [rax - 0x30]
movsd xmm1, qword [rcx - 0x30]
mulsd xmm1, xmm0
movsd xmm0, qword [rax - 0x28]
mulsd xmm0, qword [rcx - 0x28]
addsd xmm0, xmm1
xorpd xmm0, xmm6
movsd qword [r8 - 0x18], xmm0
movsd xmm0, qword [rax - 0x20]
movsd xmm1, qword [rax - 0x18]
mulsd xmm0, qword [rcx - 0x18]
mulsd xmm1, qword [rcx - 0x20]
subsd xmm0, xmm1
movsd qword [rdx + 8], xmm0
movsd xmm0, qword [rax - 0x20]
movsd xmm1, qword [rcx - 0x20]
mulsd xmm1, xmm0
movsd xmm0, qword [rax - 0x18]
mulsd xmm0, qword [rcx - 0x18]
addsd xmm0, xmm1
xorpd xmm0, xmm6
movsd qword [r8 - 0x10], xmm0
movsd xmm0, qword [rax - 0x10]
movsd xmm1, qword [rax - 8]
mulsd xmm0, qword [rcx - 8]
mulsd xmm1, qword [rcx - 0x10]
subsd xmm0, xmm1
movsd qword [rdx], xmm0
movsd xmm0, qword [rax - 0x10]
movsd xmm1, qword [rcx - 0x10]
mulsd xmm1, xmm0
movsd xmm0, qword [rax - 8]
mulsd xmm0, qword [rcx - 8]
addsd xmm0, xmm1
xorpd xmm0, xmm6
movsd qword [r8 - 8], xmm0
cmp rdx, rax
ja 0x705121b2
add rdi, r12
mov rax, rsi
mov rdx, rdi
nop
sub rax, 0x20
movsd xmm0, qword [rax + 0x18]
sub rdi, 0x20
add rdx, 0x20
movsd qword [rdi + 0x18], xmm0
xorpd xmm0, xmm6
movsd qword [rdx - 0x20], xmm0
movsd xmm0, qword [rax + 0x10]
movsd qword [rdi + 0x10], xmm0
xorpd xmm0, xmm6
movsd qword [rdx - 0x18], xmm0
movsd xmm0, qword [rax + 8]
movsd qword [rdi + 8], xmm0
xorpd xmm0, xmm6
movsd qword [rdx - 0x10], xmm0
movsd xmm0, qword [rax]
movsd qword [rdi], xmm0
xorpd xmm0, xmm6
movsd qword [rdx - 8], xmm0
cmp rax, rdx
ja 0x705122e0
mov rax, rsi
nop
movsd xmm0, qword [rsi + 0x18]
sub rax, 0x20
add rsi, 0x20
movsd qword [rax], xmm0
movsd xmm0, qword [rsi - 0x10]
movsd qword [rax + 8], xmm0
movsd xmm0, qword [rsi - 0x18]
movsd qword [rax + 0x10], xmm0
movsd xmm0, qword [rsi - 0x20]
cmp rbp, rax
movsd qword [rax + 0x18], xmm0
jb 0x70512340
movaps xmm6, xmmword [rsp + 0x20]
movaps xmm7, xmmword [rsp + 0x30]
movaps xmm8, xmmword [rsp + 0x40]
movaps xmm9, xmmword [rsp + 0x50]
movaps xmm10, xmmword [rsp + 0x60]
movaps xmm11, xmmword [rsp + 0x70]
movaps xmm12, xmmword [rsp + 0x80]
movaps xmm13, xmmword [rsp + 0x90]
movaps xmm14, xmmword [rsp + 0xa0]
add rsp, 0xb8
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
pxor xmm10, xmm10
movsd xmm8, qword [0x705a6468]
movsd xmm9, qword [0x705a6470]
cvtsi2sd xmm10, r12d
divsd xmm8, xmm10
divsd xmm9, xmm10
mov r15d, r12d
xor r14d, r14d
sar r15d, 1
test r15d, r15d
lea r13d, [r15 + r15]
pxor xmm13, xmm13
movsd xmm7, qword [0x705a6478]
movsd xmm12, qword [0x705a6308]
movapd xmm11, xmm13
je 0x70512498
nop dword [rax]
pxor xmm6, xmm6
movapd xmm0, xmm10
movapd xmm14, xmm11
mov rsi, rbp
mulsd xmm0, xmm12
xor ebx, ebx
cvtsi2sd xmm6, r14d
addsd xmm6, xmm6
addsd xmm6, xmm7
addsd xmm6, xmm0
mulsd xmm6, xmm9
nop
pxor xmm0, xmm0
add rsi, 8
cvtsi2sd xmm0, ebx
add ebx, 2
addsd xmm0, xmm7
mulsd xmm0, xmm6
call fcn.70532510
mulsd xmm0, qword [rsi - 8]
cmp ebx, r13d
addsd xmm14, xmm0
jne 0x70512450
mulsd xmm14, xmm8
movsd qword [rdi + r14*8], xmm14
add r14, 1
cmp r12d, r14d
jle 0x70512374
test r15d, r15d
jne 0x70512420
mulsd xmm8, xmm13
movsd qword [rdi + r14*8], xmm8
jmp 0x70512374
pxor xmm10, xmm10
test r12d, r12d
movsd xmm8, qword [0x705a6468]
movsd xmm9, qword [0x705a6470]
cvtsi2sd xmm10, r12d
divsd xmm8, xmm10
divsd xmm9, xmm10
jg 0x705123eb
jmp 0x70512374