Function at 0x140313bb0
Capabilities:
Encode data using xor

Disassembly:
mov rax, rsp
push rsi
push rdi
sub rsp, 0x98
mov rsi, rcx
mov rdi, r8
mov rcx, qword [rcx]
cmp dword [rcx + 4], 0
jne 0x14031409c
mov r8, qword [rsi + 8]
mov qword [rax + 0x10], rbx
movsxd rbx, dword [rcx]
movaps xmmword [rax - 0x48], xmm6
movaps xmmword [rax - 0x58], xmm7
movaps xmmword [rax - 0x68], xmm8
movaps xmmword [rax - 0x78], xmm9
call fcn.1403155f0
mov rdx, qword [rsi + 8]
xor eax, eax
movss xmm9, dword [0x140397840]
mov r11, rbx
movss xmm8, dword [0x14036ef74]
mov r10d, 1
mov qword [rsp + 0x20], rbx
movss xmm1, dword [rdx + 4]
movss xmm2, dword [rdx]
movaps xmm0, xmm1
addss xmm0, xmm2
subss xmm2, xmm1
movss dword [rdi], xmm0
movss dword [rdi + rbx*8], xmm2
mov dword [rdi + 4], eax
mov dword [rdi + rbx*8 + 4], eax
mov eax, ebx
cdq
sub eax, edx
sar eax, 1
movsxd rbx, eax
mov qword [rsp + 0xc8], rbx
cmp rbx, 4
jl 0x140313fb4
mov qword [rsp + 0x90], rbp
add r11, 0xfffffffffffffffe
mov qword [rsp + 0x88], r12
mov rbp, rbx
mov qword [rsp + 0x80], r13
mov r12, 0xfffffffffffffff8
mov qword [rsp + 0x78], r14
mov r13, 0xfffffffffffffff0
mov qword [rsp + 0x70], r15
lea rax, [rdi + r11*8]
mov r15d, 0x10
lea r11, [rdi + 0x10]
mov r14d, 8
sub r15, rdi
sub r13, rdi
sub r14, rdi
sub r12, rdi
mov rbx, rax
shr rbp, 2
lea r10, [rbp*4 + 1]
nop dword [rax]
mov rax, qword [rsi + 8]
lea r9, [r12 + r11]
lea r8, [r14 + rbx]
lea rdx, [r14 + r11]
movss xmm3, dword [rax + r9]
movss xmm4, dword [rax + r9 + 4]
movaps xmm7, xmm3
addss xmm7, dword [r8 + rax]
subss xmm3, dword [r8 + rax]
movss xmm1, dword [r8 + rax + 4]
movaps xmm6, xmm4
mov rax, qword [rsi + 0x10]
xorps xmm1, xmm9
subss xmm4, xmm1
addss xmm6, xmm1
movss xmm5, dword [rax + r9 - 4]
movss xmm1, dword [rax + r9 - 8]
movaps xmm0, xmm5
movaps xmm2, xmm1
mulss xmm0, xmm4
mulss xmm1, xmm4
mulss xmm5, xmm3
mulss xmm2, xmm3
addss xmm5, xmm1
subss xmm2, xmm0
movaps xmm1, xmm5
subss xmm5, xmm6
addss xmm1, xmm6
movaps xmm0, xmm2
addss xmm0, xmm7
subss xmm7, xmm2
mulss xmm5, xmm8
mulss xmm1, xmm8
mulss xmm0, xmm8
movss dword [r11 - 4], xmm1
mulss xmm7, xmm8
movss dword [r11 - 8], xmm0
movss dword [rbx + 0xc], xmm5
movss dword [rbx + 8], xmm7
mov rax, qword [rsi + 8]
movss xmm3, dword [rax + r9 + 8]
movss xmm4, dword [rax + r9 + 0xc]
movaps xmm7, xmm3
addss xmm7, dword [r8 + rax - 8]
subss xmm3, dword [r8 + rax - 8]
movss xmm1, dword [r8 + rax - 4]
movaps xmm6, xmm4
mov rax, qword [rsi + 0x10]
xorps xmm1, xmm9
subss xmm4, xmm1
addss xmm6, xmm1
movss xmm1, dword [rax + r9]
movss xmm5, dword [rax + r9 + 4]
movaps xmm2, xmm1
mulss xmm1, xmm4
lea rax, [r12 + rbx]
movaps xmm0, xmm5
mulss xmm2, xmm3
mulss xmm0, xmm4
mulss xmm5, xmm3
subss xmm2, xmm0
addss xmm5, xmm1
movaps xmm0, xmm2
addss xmm0, xmm7
movaps xmm1, xmm5
subss xmm7, xmm2
addss xmm1, xmm6
subss xmm5, xmm6
mulss xmm0, xmm8
mulss xmm1, xmm8
movss dword [r11], xmm0
mulss xmm7, xmm8
movss dword [r11 + 4], xmm1
mulss xmm5, xmm8
movss dword [rbx], xmm7
movss dword [rbx + 4], xmm5
mov rcx, qword [rsi + 8]
movss xmm1, dword [r8 + rcx - 0xc]
movss xmm3, dword [rdx + rcx]
xorps xmm1, xmm9
movss xmm4, dword [rdx + rcx + 4]
movaps xmm7, xmm3
movaps xmm6, xmm4
addss xmm7, dword [rax + rcx]
subss xmm3, dword [rax + rcx]
mov rax, qword [rsi + 0x10]
subss xmm4, xmm1
addss xmm6, xmm1
movss xmm5, dword [rax + r9 + 0xc]
movss xmm1, dword [rax + r9 + 8]
movaps xmm0, xmm5
movaps xmm2, xmm1
mulss xmm0, xmm4
mulss xmm1, xmm4
mulss xmm5, xmm3
mulss xmm2, xmm3
addss xmm5, xmm1
subss xmm2, xmm0
movaps xmm1, xmm5
subss xmm5, xmm6
addss xmm1, xmm6
movaps xmm0, xmm2
addss xmm0, xmm7
subss xmm7, xmm2
mulss xmm5, xmm8
mulss xmm1, xmm8
mulss xmm0, xmm8
movss dword [r11 + 0xc], xmm1
mulss xmm7, xmm8
movss dword [r11 + 8], xmm0
movss dword [rbx - 4], xmm5
movss dword [rbx - 8], xmm7
mov rcx, qword [rsi + 8]
movss xmm1, dword [r8 + rcx - 0x14]
lea rax, [r11 + rcx]
movss xmm3, dword [rax + r15]
xorps xmm1, xmm9
movss xmm4, dword [rax + r15 + 4]
movaps xmm7, xmm3
lea rax, [rbx + r13]
movaps xmm6, xmm4
addss xmm7, dword [rax + rcx]
subss xmm3, dword [rax + rcx]
mov rax, qword [rsi + 0x10]
subss xmm4, xmm1
addss xmm6, xmm1
movss xmm1, dword [rdx + rax]
movss xmm5, dword [rax + r9 + 0x14]
movaps xmm2, xmm1
movaps xmm0, xmm5
mulss xmm1, xmm4
mulss xmm0, xmm4
mulss xmm5, xmm3
mulss xmm2, xmm3
addss xmm5, xmm1
subss xmm2, xmm0
movaps xmm1, xmm5
subss xmm5, xmm6
addss xmm1, xmm6
movaps xmm0, xmm2
addss xmm0, xmm7
subss xmm7, xmm2
mulss xmm5, xmm8
mulss xmm1, xmm8
mulss xmm0, xmm8
movss dword [r11 + 0x14], xmm1
mulss xmm7, xmm8
movss dword [r11 + 0x10], xmm0
add r11, 0x20
movss dword [rbx - 0xc], xmm5
movss dword [rbx - 0x10], xmm7
sub rbx, 0x20
sub rbp, 1
jne 0x140313cc0
mov rbx, qword [rsp + 0xc8]
mov r15, qword [rsp + 0x70]
mov r14, qword [rsp + 0x78]
mov r13, qword [rsp + 0x80]
mov r12, qword [rsp + 0x88]
mov rbp, qword [rsp + 0x90]
mov r11, qword [rsp + 0x20]
cmp r10, rbx
jg 0x14031407e
jmp 0x140313fbd
cmp rbx, r10
jl 0x14031407e
sub r11, r10
shl r11, 3
mov rax, qword [rsi + 8]
movss xmm3, dword [rax + r10*8]
movss xmm4, dword [rax + r10*8 + 4]
movaps xmm7, xmm3
addss xmm7, dword [r11 + rax]
movss xmm1, dword [r11 + rax + 4]
movaps xmm6, xmm4
subss xmm3, dword [r11 + rax]
mov rax, qword [rsi + 0x10]
xorps xmm1, xmm9
subss xmm4, xmm1
addss xmm6, xmm1
movss xmm1, dword [rax + r10*8 - 8]
movss xmm5, dword [rax + r10*8 - 4]
movaps xmm2, xmm1
movaps xmm0, xmm5
mulss xmm1, xmm4
mulss xmm0, xmm4
mulss xmm5, xmm3
mulss xmm2, xmm3
addss xmm5, xmm1
movaps xmm1, xmm6
subss xmm2, xmm0
movaps xmm0, xmm7
addss xmm1, xmm5
subss xmm5, xmm6
addss xmm0, xmm2
subss xmm7, xmm2
mulss xmm1, xmm8
mulss xmm0, xmm8
movss dword [rdi + r10*8 + 4], xmm1
mulss xmm7, xmm8
movss dword [rdi + r10*8], xmm0
inc r10
mulss xmm5, xmm8
movss dword [r11 + rdi], xmm7
movss dword [r11 + rdi + 4], xmm5
sub r11, 8
cmp r10, rbx
jle 0x140313fc4
movaps xmm8, xmmword [rsp + 0x40]
movaps xmm7, xmmword [rsp + 0x50]
movaps xmm6, xmmword [rsp + 0x60]
mov rbx, qword [rsp + 0xb8]
movaps xmm9, xmmword [rsp + 0x30]
add rsp, 0x98
pop rdi
pop rsi
ret