Function at 0x180008b40
Capabilities:
Encode data using xor

Disassembly:
mov r11, rsp
push rbp
push rsi
push rdi
push r12
push r13
push r15
lea rbp, [rsp - 0x58]
sub rsp, 0x158
mov rax, qword [section..data]
xor rax, rsp
mov qword [rbp - 0x48], rax
mov rcx, qword [r9 + 8]
mov r12, r9
mov rdi, qword [r9]
mov rax, rcx
mov rsi, qword [rbp + 0xb0]
sub rax, rdi
sar rax, 3
mov r13, r8
mov qword [rbp - 0x70], rdx
mov r15, rdx
cmp rax, 3
jb 0x180009249
test rdx, rdx
je 0x180009249
test r8, r8
je 0x180009249
xor eax, eax
mov qword [r11 + 8], rbx
mov qword [r11 - 0x38], r14
xorps xmm0, xmm0
mov qword [rsp + 0x78], rax
movabs r8, 0x2aaaaaaaaaaaaaab
movdqu xmmword [rsp + 0x68], xmm0
mov r14, qword [rsp + 0x70]
mov rbx, qword [rsp + 0x68]
cmp rdi, rcx
je 0x180008cb3
nop dword [rax]
mov r15, qword [rdi]
test byte [r15 + 0x10], 1
jne 0x180008ca0
add r15, 0x40
cmp r15, r14
jae 0x180008c57
cmp rbx, r15
ja 0x180008c57
sub r15, rbx
mov rax, r8
imul r15
mov r15, rdx
sar r15, 1
mov rax, r15
shr rax, 0x3f
add r15, rax
cmp r14, qword [rsp + 0x78]
jne 0x180008c3a
lea rcx, [rsp + 0x68]
call fcn.18000e030
mov r14, qword [rsp + 0x70]
movabs r8, 0x2aaaaaaaaaaaaaab
mov rbx, qword [rsp + 0x68]
test r14, r14
je 0x180008c97
lea rcx, [r15 + r15*2]
mov eax, dword [rbx + rcx*4]
mov dword [r14], eax
mov eax, dword [rbx + rcx*4 + 4]
mov dword [r14 + 4], eax
mov eax, dword [rbx + rcx*4 + 8]
jmp 0x180008c93
cmp r14, qword [rsp + 0x78]
jne 0x180008c7c
lea rcx, [rsp + 0x68]
call fcn.18000e030
mov r14, qword [rsp + 0x70]
movabs r8, 0x2aaaaaaaaaaaaaab
mov rbx, qword [rsp + 0x68]
test r14, r14
je 0x180008c97
mov eax, dword [r15]
mov dword [r14], eax
mov eax, dword [r15 + 4]
mov dword [r14 + 4], eax
mov eax, dword [r15 + 8]
mov dword [r14 + 8], eax
add r14, 0xc
mov qword [rsp + 0x70], r14
add rdi, 8
cmp rdi, qword [r12 + 8]
jne 0x180008be0
mov r15, qword [rbp - 0x70]
mov rcx, r14
mov rax, r8
sub rcx, rbx
imul rcx
mov rdi, rdx
sar rdi, 1
mov rax, rdi
shr rax, 0x3f
add rdi, rax
jne 0x180008cdb
mov edi, 1
jmp 0x18000920d
movaps xmmword [rsp + 0x140], xmm6
lea r9, [rbp - 0x80]
movaps xmmword [rsp + 0x130], xmm7
lea r8, [rsp + 0x48]
movaps xmmword [rsp + 0x120], xmm8
xorps xmm0, xmm0
movaps xmmword [rsp + 0x110], xmm9
mov rdx, r14
movaps xmmword [rsp + 0x100], xmm10
mov rcx, rbx
movaps xmmword [rsp + 0xf0], xmm11
movaps xmmword [rsp + 0xe0], xmm12
xorps xmm12, xmm12
movaps xmmword [rsp + 0xd0], xmm13
movaps xmmword [rsp + 0xc0], xmm14
movups xmmword [rsp + 0x48], xmm0
mov qword [rsp + 0x58], 0
mov qword [rbp - 0x80], 0
mov dword [rbp - 0x78], 0
call fcn.1800147c0
xor eax, eax
xorps xmm0, xmm0
mov qword [rbp - 0x50], rax
movaps xmm13, xmm12
movaps xmm14, xmm12
movdqu xmmword [rbp - 0x60], xmm0
cmp rbx, r14
je 0x180008e5b
movss xmm9, dword [0x18001e0a0]
lea r15, [0x18001d4a8]
movss xmm8, dword [rbx]
lea r9, [rsp + 0x54]
movss xmm7, dword [rbx + 4]
lea rdx, [rsp + 0x30]
movss xmm5, dword [rbx + 8]
movaps xmm0, xmm7
subss xmm0, dword [rsp + 0x4c]
movss xmm4, dword [rsp + 0x54]
movaps xmm1, xmm5
movss xmm3, dword [rsp + 0x58]
movaps xmm6, xmm8
subss xmm6, dword [rsp + 0x48]
movss xmm2, dword [rsp + 0x5c]
mov r8, rbx
subss xmm1, dword [rsp + 0x50]
mulss xmm0, xmm3
mov qword [rsp + 0x20], r15
mulss xmm6, xmm4
mulss xmm1, xmm2
addss xmm6, xmm0
addss xmm6, xmm1
xorps xmm6, xmm9
mulss xmm4, xmm6
mulss xmm3, xmm6
mulss xmm2, xmm6
addss xmm4, xmm8
addss xmm3, xmm7
addss xmm2, xmm5
movaps xmm0, xmm4
unpcklps xmm0, xmm3
movsd qword [rbx], xmm0
movss dword [rbp - 0x78], xmm2
mov eax, dword [rbp - 0x78]
mov dword [rbx + 8], eax
call fcn.180004a40
movsd xmm0, qword [rax]
movsd qword [rbx], xmm0
mov eax, dword [rax + 8]
mov dword [rbx + 8], eax
addss xmm12, dword [rbx]
addss xmm13, dword [rbx + 4]
addss xmm14, dword [rbx + 8]
add rbx, 0xc
cmp rbx, r14
jne 0x180008d91
mov r15, qword [rbp - 0x70]
xorps xmm0, xmm0
cvtsi2ss xmm0, rdi
test rdi, rdi
jns 0x180008e70
addss xmm0, dword [0x18001e054]
lea rdx, [rsp + 0x68]
lea rcx, [rbp - 0x60]
divss xmm12, xmm0
divss xmm13, xmm0
divss xmm14, xmm0
call fcn.18000cd40
mov rcx, r15
movss xmm9, dword [0x18001e01c]
movaps xmm11, xmm9
call qword [sym.imp.Model_1_3_x64_Release.dll_public:_class_pop::ToothID_const____ptr64___cdecl_pop::Tooth::GetToothID_void_const___ptr64]
cmp dword [rax + 8], 1
je 0x180008eb8
mov rcx, r13
call qword [sym.imp.Model_1_3_x64_Release.dll_public:_class_pop::ToothID_const____ptr64___cdecl_pop::Tooth::GetToothID_void_const___ptr64]
cmp dword [rax + 8], 1
jne 0x180008ec1
movss xmm11, dword [0x18001e024]
movss xmm8, dword [0x18001e030]
movss xmm6, dword [0x18001e05c]
movaps xmm7, xmm8
mov rcx, qword [rbp - 0x60]
movaps xmm10, xmm8
movaps xmm4, xmm6
movaps xmm5, xmm6
cmp rcx, qword [rbp - 0x58]
je 0x180008fd6
nop
comiss xmm10, xmm5
movss xmm1, dword [rcx]
movaps xmm0, xmm12
subss xmm0, xmm1
movaps xmm2, xmm13
subss xmm2, dword [rcx + 4]
movaps xmm3, xmm14
subss xmm3, dword [rcx + 8]
mulss xmm0, xmm11
mulss xmm2, xmm11
addss xmm1, xmm0
mulss xmm3, xmm11
movss dword [rcx], xmm1
addss xmm2, dword [rcx + 4]
addss xmm3, dword [rcx + 8]
movss dword [rcx + 4], xmm2
movss dword [rcx + 8], xmm3
ja 0x180008f83
comiss xmm7, xmm4
ja 0x180008f83
comiss xmm8, xmm6
ja 0x180008f83
movaps xmm0, xmm1
comiss xmm10, xmm0
jbe 0x180008f57
movaps xmm10, xmm1
comiss xmm7, xmm2
jbe 0x180008f5f
movaps xmm7, xmm2
comiss xmm8, xmm3
jbe 0x180008f69
movaps xmm8, xmm3
comiss xmm0, xmm5
jbe 0x180008f71
movaps xmm5, xmm0
comiss xmm2, xmm4
jbe 0x180008f79
movaps xmm4, xmm2
comiss xmm3, xmm6
jbe 0x180008fc4
movaps xmm6, xmm3
jmp 0x180008fc4
movsd xmm0, qword [rcx]
mov eax, dword [rcx + 8]
movsd qword [rsp + 0x30], xmm0
movss xmm7, dword [rsp + 0x34]
movss xmm10, dword [rsp + 0x30]
movsd qword [rsp + 0x3c], xmm0
movss xmm4, dword [rsp + 0x40]
movss xmm5, dword [rsp + 0x3c]
mov dword [rsp + 0x38], eax
movss xmm8, dword [rsp + 0x38]
mov dword [rsp + 0x44], eax
movss xmm6, dword [rsp + 0x44]
add rcx, 0xc
cmp rcx, qword [rbp - 0x58]
jne 0x180008ef0
mov rcx, qword [rbp - 0x60]
movaps xmm14, xmmword [rsp + 0xc0]
subss xmm5, xmm10
movaps xmm13, xmmword [rsp + 0xd0]
subss xmm4, xmm7
movaps xmm12, xmmword [rsp + 0xe0]
xor r15d, r15d
movaps xmm11, xmmword [rsp + 0xf0]
movaps xmm8, xmmword [rsp + 0x120]
divss xmm5, xmm9
divss xmm4, xmm9
cvttss2si r12d, xmm5
cvttss2si r14d, xmm4
test r12d, r12d
jle 0x180009178
movabs r13, 0x2aaaaaaaaaaaaaab
nop word [rax + rax]
xor edi, edi
test r14d, r14d
jle 0x18000916c
movd xmm6, r15d
cvtdq2ps xmm6, xmm6
mulss xmm6, xmm9
addss xmm6, xmm10
nop dword [rax]
movss xmm1, dword [rcx + 8]
lea rdx, [rbp - 0x60]
movd xmm0, edi
lea rcx, [rbp - 0x80]
cvtdq2ps xmm0, xmm0
movss dword [rbp - 0x80], xmm6
mulss xmm0, xmm9
movss dword [rbp - 0x78], xmm1
addss xmm0, xmm7
movss dword [rbp - 0x7c], xmm0
call qword [sym.imp.MeshUtils_1_3_x64_Release.dll_public:_static_bool___cdecl_pop::MeshUtil::PointInPolygon_class_pop::PointND_float__3_____ptr64__class_std::vector_class_pop::PointND_float__3___class_std::allocator_class_pop::PointND_float__3_______ptr64_]
test al, al
je 0x18000915d
lea rax, [rsp + 0x54]
lea r9, [0x18001d4a8]
mov qword [rsp + 0x20], rax
lea r8, [rbp - 0x80]
lea rdx, [rbp - 0x70]
call fcn.180004a40
mov r8, qword [rsi + 8]
lea rax, [rbp - 0x70]
cmp rax, r8
jae 0x180009124
mov rax, qword [rsi]
lea rcx, [rbp - 0x70]
cmp rax, rcx
ja 0x180009124
lea rcx, [rbp - 0x70]
sub rcx, rax
mov rax, r13
imul rcx
mov rbx, rdx
sar rbx, 1
mov rax, rbx
shr rax, 0x3f
add rbx, rax
cmp r8, qword [rsi + 0x10]
jne 0x1800090fc
mov rcx, rsi
call fcn.18000e030
mov r8, qword [rsi + 8]
test r8, r8
je 0x180009158
mov rcx, qword [rsi]
lea rdx, [rbx + rbx*2]
mov eax, dword [rcx + rdx*4]
mov dword [r8], eax
mov eax, dword [rcx + rdx*4 + 4]
mov dword [r8 + 4], eax
mov eax, dword [rcx + rdx*4 + 8]
mov dword [r8 + 8], eax
jmp 0x180009158
cmp r8, qword [rsi + 0x10]
jne 0x180009132
mov rcx, rsi
call fcn.18000e030
mov rax, qword [rsi + 8]
test rax, rax
je 0x180009158
movss xmm0, dword [rbp - 0x70]
movss xmm1, dword [rbp - 0x6c]
movss dword [rax], xmm0
movss xmm0, dword [rbp - 0x68]
movss dword [rax + 8], xmm0
movss dword [rax + 4], xmm1
add qword [rsi + 8], 0xc
mov rcx, qword [rbp - 0x60]
inc edi
cmp edi, r14d
jl 0x180009060
inc r15d
cmp r15d, r12d
jl 0x180009040
mov rdx, qword [rsi + 8]
movabs r8, 0x2aaaaaaaaaaaaaab
sub rdx, qword [rsi]
mov rax, r8
movaps xmm10, xmmword [rsp + 0x100]
movaps xmm9, xmmword [rsp + 0x110]
movaps xmm7, xmmword [rsp + 0x130]
movaps xmm6, xmmword [rsp + 0x140]
imul rdx
sar rdx, 1
mov rax, rdx
shr rax, 0x3f
add rdx, rax
cmp rdx, 3
sbb edi, edi
and edi, 2
test rcx, rcx
je 0x180009208
mov rdx, qword [rbp - 0x50]
mov rax, r8
sub rdx, rcx
imul rdx
sar rdx, 1
mov r8, rdx
shr r8, 0x3f
add r8, rdx
mov rdx, rcx
call fcn.18000d680
xorps xmm0, xmm0
mov qword [rbp - 0x50], 0
movdqu xmmword [rbp - 0x60], xmm0
movabs r8, 0x2aaaaaaaaaaaaaab
mov rbx, qword [rsp + 0x68]
mov r14, qword [rsp + 0x150]
test rbx, rbx
je 0x18000923d
mov rcx, qword [rsp + 0x78]
mov rax, r8
sub rcx, rbx
imul rcx
sar rdx, 1
mov r8, rdx
shr r8, 0x3f
add r8, rdx
mov rdx, rbx
call fcn.18000d680
mov rbx, qword [rsp + 0x190]
mov eax, edi
jmp 0x18000924e
mov eax, 1
mov rcx, qword [rbp - 0x48]
xor rcx, rsp
call fcn.18001a270
add rsp, 0x158
pop r15
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret