Function at 0x14009a6f0
Capabilities:
Encode data using add xor sub operations
Encode data using xor

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rbp
mov qword [rsp + 0x18], rsi
mov qword [rsp + 0x20], rdi
push r12
push r14
push r15
sub rsp, 0x50
mov esi, 6
movaps xmmword [rsp + 0x40], xmm6
mov edi, esi
movaps xmmword [rsp + 0x30], xmm7
mov r14, rdx
lea rbx, [rcx + 8]
mov rbp, rcx
xor r12d, r12d
nop dword [rax]
lea rdx, [rbx - 8]
xorps xmm0, xmm0
lea rcx, [rsp + 0x20]
mov dword [rdx], r12d
movaps xmmword [rsp + 0x20], xmm0
mov qword [rbx - 4], 0x3f800000
mov dword [rbx + 4], r12d
call qword [sym.imp.Hedgine_x64.dll_float___cdecl_hedgine::dot_class_hedgine::vector3Df__class_hedgine::vector3Df_const____ptr64__class_hedgine::vector3Df_const____ptr64_]
movss dword [rbx + 8], xmm0
lea rbx, [rbx + 0x20]
sub rdi, 1
jne 0x14009a730
mov dword [rbp + 0xc0], 0xbf800000
mov rbx, rbp
mov dword [rbp + 0xc4], 0xbf800000
mov rdi, rbp
mov dword [rbp + 0xc8], 0xbf800000
mov dword [rbp + 0xcc], 0xbf800000
mov dword [rbp + 0xd0], 0x3f800000
mov dword [rbp + 0xd4], 0x3f800000
mov dword [rbp + 0xd8], 0x3f800000
mov dword [rbp + 0xdc], 0x3f800000
movss xmm0, dword [r14 + 0xc]
addss xmm0, dword [r14]
movss xmm6, dword [0x14028f730]
movss xmm7, dword [0x14028dcb4]
movss dword [rbp], xmm0
movss xmm0, dword [r14 + 0x10]
addss xmm0, dword [r14 + 0x1c]
movss dword [rbp + 4], xmm0
movss xmm0, dword [r14 + 0x2c]
addss xmm0, dword [r14 + 0x20]
movss dword [rbp + 8], xmm0
movss xmm0, dword [r14 + 0x30]
addss xmm0, dword [r14 + 0x3c]
movss dword [rbp + 0x10], xmm0
movss xmm1, dword [r14 + 0xc]
subss xmm1, dword [r14]
movss dword [rbp + 0x20], xmm1
movss xmm0, dword [r14 + 0x1c]
subss xmm0, dword [r14 + 0x10]
movss dword [rbp + 0x24], xmm0
movss xmm1, dword [r14 + 0x2c]
subss xmm1, dword [r14 + 0x20]
movss dword [rbp + 0x28], xmm1
movss xmm0, dword [r14 + 0x3c]
subss xmm0, dword [r14 + 0x30]
movss dword [rbp + 0x30], xmm0
movss xmm1, dword [r14 + 0xc]
subss xmm1, dword [r14 + 4]
movss dword [rbp + 0xa0], xmm1
movss xmm0, dword [r14 + 0x1c]
subss xmm0, dword [r14 + 0x14]
movss dword [rbp + 0xa4], xmm0
movss xmm1, dword [r14 + 0x2c]
subss xmm1, dword [r14 + 0x24]
movss dword [rbp + 0xa8], xmm1
movss xmm0, dword [r14 + 0x3c]
subss xmm0, dword [r14 + 0x34]
movss dword [rbp + 0xb0], xmm0
movss xmm1, dword [r14 + 4]
addss xmm1, dword [r14 + 0xc]
movss dword [rbp + 0x80], xmm1
movss xmm0, dword [r14 + 0x14]
addss xmm0, dword [r14 + 0x1c]
movss dword [rbp + 0x84], xmm0
movss xmm1, dword [r14 + 0x24]
addss xmm1, dword [r14 + 0x2c]
movss dword [rbp + 0x88], xmm1
movss xmm0, dword [r14 + 0x34]
addss xmm0, dword [r14 + 0x3c]
movss dword [rbp + 0x90], xmm0
movss xmm1, dword [r14 + 0xc]
subss xmm1, dword [r14 + 8]
movss dword [rbp + 0x40], xmm1
movss xmm0, dword [r14 + 0x1c]
subss xmm0, dword [r14 + 0x18]
movss dword [rbp + 0x44], xmm0
movss xmm1, dword [r14 + 0x2c]
subss xmm1, dword [r14 + 0x28]
movss dword [rbp + 0x48], xmm1
movss xmm0, dword [r14 + 0x3c]
subss xmm0, dword [r14 + 0x38]
movss dword [rbp + 0x50], xmm0
mov eax, dword [r14 + 8]
mov dword [rbp + 0x60], eax
mov eax, dword [r14 + 0x18]
mov dword [rbp + 0x64], eax
mov eax, dword [r14 + 0x28]
mov dword [rbp + 0x68], eax
mov eax, dword [r14 + 0x38]
mov dword [rbp + 0x70], eax
mov rcx, rdi
call qword [sym.imp.Hedgine_x64.dll_float___cdecl_hedgine::length_class_hedgine::vector3Df__class_hedgine::vector3Df_const____ptr64_]
movaps xmm1, xmm7
lea rbx, [rbx + 0x20]
divss xmm1, xmm0
add rdi, 0x20
xorps xmm1, xmm6
shufps xmm1, xmm1, 0
movaps xmmword [rsp + 0x20], xmm1
movaps xmm0, xmm1
mulps xmm0, xmmword [rbx - 0x20]
movups xmmword [rbx - 0x20], xmm0
mulss xmm1, dword [rbx - 0x10]
movss dword [rbx - 0x10], xmm1
sub rsi, 1
jne 0x14009a951
mov rcx, rbp
call fcn.14009a0c0
movaps xmm6, xmmword [rsp + 0x40]
lea r11, [rsp + 0x50]
mov rbx, qword [r11 + 0x20]
mov rax, rbp
mov rbp, qword [r11 + 0x28]
mov rsi, qword [r11 + 0x30]
mov rdi, qword [r11 + 0x38]
movaps xmm7, xmmword [rsp + 0x30]
mov rsp, r11
pop r15
pop r14
pop r12
ret