Function at 0x100475c0
Capabilities:
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
and esp, 0xffffffc0
sub esp, 0x74
push ebx
push esi
push edi
mov edi, ecx
cmp dword [edi + 0x14], 0
jne 0x10047630
mov eax, dword [ebp + 0xc]
mov edx, dword [edi + 0x10]
add edx, dword [edi + 0xc]
mov ecx, dword [edi]
mov dword [esp + 0x1c], eax
lea eax, [esp + 0x1c]
push eax
push dword [ebp + 8]
sub esp, 0xc
mov eax, esp
mov dword [eax], ecx
mov ecx, edi
mov dword [eax + 4], 0
mov dword [eax + 8], edx
lea eax, [esp + 0x3c]
push eax
call fcn.10046f60
mov eax, dword [esp + 0x28]
test eax, eax
je 0x10047614
mov eax, dword [eax]
jmp 0x10047616
xor eax, eax
mov ecx, dword [eax + 8]
mov eax, dword [eax + 4]
dec ecx
and ecx, dword [esp + 0x30]
mov eax, dword [eax + ecx*4]
mov dword [edi + 0x14], eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 8
movsd xmm2, qword [edi + 0x20]
xorps xmm0, xmm0
unpcklpd xmm2, xmm2
comisd xmm2, xmm0
jbe 0x100476bd
mov eax, dword [ebp + 8]
lea ecx, [esp + 0x38]
movsd qword [esp + 0x70], xmm0
sub esp, 0x10
mov dword [esp + 0x68], vtable.geos::index::kdtree::KdTree::BestMatchVisitor.0
movsd qword [esp + 0x70], xmm2
mov dword [esp + 0x78], 0
mov dword [esp + 0x88], eax
movsd xmm1, qword [eax]
movsd xmm0, qword [eax + 8]
unpcklpd xmm1, xmm1
unpcklpd xmm0, xmm0
movups xmmword [esp + 0x48], xmm1
movups xmmword [esp + 0x58], xmm0
movups xmmword [esp], xmm2
call fcn.10013290
lea eax, [esp + 0x58]
mov ecx, edi
push eax
push 1
lea eax, [esp + 0x40]
push eax
push dword [edi + 0x14]
call fcn.100478a0
mov eax, dword [esp + 0x68]
test eax, eax
je 0x100476bd
inc dword [eax + 0x24]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 8
mov esi, dword [edi + 0x14]
mov bh, 1
mov dword [esp + 0x1c], esi
mov bl, bh
test esi, esi
je 0x1004777d
mov eax, dword [ebp + 8]
movsd xmm1, qword [eax]
movsd xmm3, qword [eax + 8]
movsd qword [esp + 0x28], xmm1
movsd qword [esp + 0x20], xmm3
nop dword [eax + eax]
subsd xmm1, qword [esi]
movaps xmm0, xmm3
subsd xmm0, qword [esi + 8]
mulsd xmm1, xmm1
mulsd xmm0, xmm0
addsd xmm0, xmm1
xorps xmm1, xmm1
ucomisd xmm1, xmm0
ja 0x10047717
sqrtsd xmm0, xmm0
jmp 0x1004771c
call fcn.100731d0
movsd xmm1, qword [edi + 0x20]
comisd xmm1, xmm0
setae al
test al, al
jne 0x100477c0
mov eax, dword [ebp + 8]
test bh, bh
je 0x1004774b
movsd xmm0, qword [esi]
movsd xmm1, qword [eax]
movsd xmm3, qword [esp + 0x20]
comisd xmm0, xmm1
jmp 0x1004775f
movsd xmm0, qword [esi + 8]
movsd xmm3, qword [eax + 8]
movsd xmm1, qword [esp + 0x28]
comisd xmm0, xmm3
seta bl
mov dword [esp + 0x1c], esi
test bl, bl
je 0x1004776f
mov esi, dword [esi + 0x1c]
jmp 0x10047772
mov esi, dword [esi + 0x20]
xor bh, 1
test esi, esi
jne 0x100476f0
mov eax, dword [ebp + 0xc]
inc dword [edi + 0x18]
mov edx, dword [edi + 0x10]
add edx, dword [edi + 0xc]
mov ecx, dword [edi]
mov dword [esp + 0x20], eax
lea eax, [esp + 0x20]
push eax
push dword [ebp + 8]
sub esp, 0xc
mov eax, esp
mov dword [eax], ecx
mov ecx, edi
mov dword [eax + 4], 0
mov dword [eax + 8], edx
lea eax, [esp + 0x3c]
push eax
call fcn.10046f60
mov eax, dword [esp + 0x28]
test eax, eax
je 0x100477ce
mov eax, dword [eax]
jmp 0x100477d0
inc dword [esi + 0x24]
mov eax, esi
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 8
xor eax, eax
mov ecx, dword [eax + 8]
mov eax, dword [eax + 4]
dec ecx
and ecx, dword [esp + 0x30]
mov esi, dword [eax + ecx*4]
mov eax, dword [esp + 0x1c]
test bl, bl
je 0x100477f4
mov dword [eax + 0x1c], esi
mov eax, esi
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 8
mov dword [eax + 0x20], esi
mov eax, esi
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 8