Function at 0x140006810
Capabilities:
Encode data using xor

Disassembly:
mov rax, rsp
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x70
mov qword [rax - 0x78], 0xfffffffffffffffe
mov qword [rax + 8], rbx
mov qword [rax + 0x10], rbp
mov qword [rax + 0x18], rsi
mov r14, r8
mov r15d, edx
mov rbx, rcx
mov r13, qword [rsp + 0xc0]
cmp edx, 4
jae 0x140006851
xor al, al
jmp 0x140006a39
xor ecx, ecx
cmp dword [r9], ecx
jne 0x140006875
test edx, edx
je 0x140006875
nop dword [rax]
mov eax, dword [r8 + rcx*4]
cdq
xor eax, edx
sub eax, edx
inc dword [r9]
inc ecx
add ecx, eax
cmp ecx, r15d
jb 0x140006860
mov edi, dword [r9]
mov qword [rsp + 0x28], rdi
mov eax, 0x18
mul rdi
mov rcx, 0xffffffffffffffff
cmovo rax, rcx
mov rcx, rax
call qword [sym.imp.mfc140u.dll_operator_1]
mov rbp, rax
mov qword [rsp + 0x30], rax
test rax, rax
je 0x1400068c5
mov rsi, rax
test rdi, rdi
je 0x1400068c7
nop
mov rcx, rsi
call qword [sym.imp.AcGe21.dll_public:_void___cdecl_AcGeVector3d::constructor_void____ptr64]
add rsi, 0x18
sub rdi, 1
jne 0x1400068b0
jmp 0x1400068c7
xor ebp, ebp
mov qword [r13], rbp
xor r12d, r12d
xor esi, esi
test r15d, r15d
je 0x140006a37
xor ebp, ebp
nop dword [rax + rax]
mov r11d, esi
mov eax, dword [r14 + rsi*4]
cdq
mov edi, eax
xor edi, edx
sub edi, edx
xorps xmm0, xmm0
movups xmmword [rsp + 0x50], xmm0
xorps xmm3, xmm3
xor r10d, r10d
movsxd r8, edi
movsd xmm2, qword [rsp + 0x58]
movsd xmm1, qword [rsp + 0x50]
cmp r8, 4
jl 0x14000699d
lea r9, [r14 + 8]
lea r9, [r9 + rsi*4]
lea rdx, [r8 - 4]
shr rdx, 2
inc rdx
lea r10, [rdx*4]
movsxd rax, dword [r9 - 4]
lea rcx, [rax + rax*2]
addsd xmm1, qword [rbx + rcx*8]
addsd xmm2, qword [rbx + rcx*8 + 8]
addsd xmm3, qword [rbx + rcx*8 + 0x10]
movsxd rax, dword [r9]
lea rcx, [rax + rax*2]
addsd xmm1, qword [rbx + rcx*8]
addsd xmm2, qword [rbx + rcx*8 + 8]
addsd xmm3, qword [rbx + rcx*8 + 0x10]
movsxd rax, dword [r9 + 4]
lea rcx, [rax + rax*2]
addsd xmm1, qword [rbx + rcx*8]
addsd xmm2, qword [rbx + rcx*8 + 8]
addsd xmm3, qword [rbx + rcx*8 + 0x10]
movsxd rax, dword [r9 + 8]
lea rcx, [rax + rax*2]
addsd xmm1, qword [rbx + rcx*8]
addsd xmm2, qword [rbx + rcx*8 + 8]
addsd xmm3, qword [rbx + rcx*8 + 0x10]
add r9, 0x10
sub rdx, 1
jne 0x140006930
cmp r10, r8
jge 0x1400069d2
lea rdx, [r10 + 1]
add rdx, r11
lea rdx, [r14 + rdx*4]
sub r8, r10
movsxd rax, dword [rdx]
lea rcx, [rax + rax*2]
addsd xmm1, qword [rbx + rcx*8]
addsd xmm2, qword [rbx + rcx*8 + 8]
addsd xmm3, qword [rbx + rcx*8 + 0x10]
add rdx, 4
sub r8, 1
jne 0x1400069b0
movd xmm0, edi
cvtdq2pd xmm0, xmm0
divsd xmm1, xmm0
divsd xmm2, xmm0
divsd xmm3, xmm0
movsd qword [rsp + 0x48], xmm3
mov rax, qword [r13]
movaps xmm0, xmm1
unpcklpd xmm0, xmm2
movups xmmword [rax + rbp], xmm0
movsd xmm1, qword [rsp + 0x48]
movsd qword [rax + rbp + 0x10], xmm1
movsxd rax, r12d
lea rcx, [rax + rax*2]
mov rax, qword [r13]
lea rcx, [rax + rcx*8]
mov rdx, qword [sym.imp.AcGe21.dll_class_AcGeTol_AcGeContext::gTol]
call qword [sym.imp.AcGe21.dll_public:_class_AcGeVector3d____ptr64___cdecl_AcGeVector3d::normalize_class_AcGeTol_const____ptr64____ptr64]
inc r12d
add rbp, 0x18
inc esi
add esi, edi
cmp esi, r15d
jb 0x1400068e0
mov al, 1
lea r11, [rsp + 0x70]
mov rbx, qword [r11 + 0x30]
mov rbp, qword [r11 + 0x38]
mov rsi, qword [r11 + 0x40]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rdi
ret