Function at 0x408540
Capabilities:
Print debug messages

Disassembly:
push ebx
mov ebx, esp
sub esp, 8
and esp, 0xfffffff8
add esp, 4
push ebp
mov ebp, dword [ebx + 4]
mov dword [esp + 4], ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x4c773d
mov eax, dword fs:[0]
push eax
push ebx
sub esp, 0x3a0
mov eax, dword [0x4fc00c]
xor eax, ebp
mov dword [ebp - 0x14], eax
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov edi, ecx
mov dword [ebp - 0x2f4], edi
mov edx, dword [ebx + 8]
xorps xmm0, xmm0
movlpd qword [ebp - 0x1c], xmm0
xor eax, eax
mov dword [ebp - 0x318], edx
mov dword [ebp - 0x1c], 0
mov dword [ebp - 0x18], eax
mov dword [ebp - 4], eax
movss xmm0, dword [edx]
movss xmm2, dword [0x4f4180]
comiss xmm2, xmm0
movss xmm3, dword [0x4f3e58]
ja 0x4085dc
comiss xmm0, dword [0x4f3f34]
ja 0x4085dc
subss xmm0, xmm2
divss xmm0, xmm3
cvttss2si eax, xmm0
movzx ecx, ax
jmp 0x4085df
or ecx, 0xffffffff
movss xmm1, dword [edx + 8]
movss xmm0, dword [0x4f4174]
comiss xmm0, xmm1
ja 0x408612
comiss xmm1, dword [0x4f3f30]
ja 0x408612
xorps xmm1, xmmword [0x4f4580]
subss xmm1, xmm2
divss xmm1, xmm3
cvttss2si eax, xmm1
movzx eax, ax
jmp 0x408615
or eax, 0xffffffff
mov word [ebp - 0x2ec], ax
lea eax, [ebp - 0x2f0]
mov word [ebp - 0x2ee], cx
lea ecx, [ebp - 0x1c]
push eax
mov byte [ebp - 0x2f0], 3
call fcn.0040c840
xor dl, dl
lea esi, [edi + 0x18]
mov byte [ebp - 0x2e1], dl
add edi, 0xc
nop word [eax + eax]
xor al, al
mov byte [ebp - 0x2e2], al
cmp byte [esi], al
jbe 0x4086a5
nop dword [eax]
mov ecx, dword [edi]
movzx eax, al
imul eax, eax, 0x5c
cmp byte [eax + ecx], 0
je 0x408693
mov eax, dword [eax + ecx + 0x50]
lea ecx, [ebp - 0x1c]
mov dword [ebp - 0x2ee], eax
lea eax, [ebp - 0x2f0]
push eax
mov byte [ebp - 0x2f0], dl
call fcn.0040c840
mov dl, byte [ebp - 0x2e1]
mov al, byte [ebp - 0x2e2]
inc al
mov byte [ebp - 0x2e2], al
cmp al, byte [esi]
jb 0x408660
inc dl
add edi, 4
inc esi
mov byte [ebp - 0x2e1], dl
cmp dl, 2
jb 0x408650
mov esi, dword [ebp - 0x2f4]
xor dl, dl
mov byte [ebp - 0x2e6], dl
lea eax, [ebp - 0x36c]
lea ecx, [ebp - 0x60]
push eax
cmp dl, 1
jne 0x4086dd
movss xmm2, dword [0x4f3c58]
jmp 0x4086e0
xorps xmm2, xmm2
call fcn.0044d4c0
mov dl, byte [ebp - 0x2e6]
xor al, al
movzx ecx, dl
mov byte [ebp - 0x2e1], al
mov dword [ebp - 0x304], ecx
cmp byte [ecx + esi + 0x18], al
jbe 0x408a0e
nop word [eax + eax]
movzx eax, al
imul esi, eax, 0x5c
mov eax, dword [ebp - 0x2f4]
add esi, dword [eax + ecx*4 + 0xc]
mov dword [ebp - 0x2f0], esi
cmp byte [esi], 0
jne 0x4089ea
push ecx
mov dword [esp], 0x40400000
lea edi, [esi + 4]
push edi
push dword [ebp - 0x2e6]
lea eax, [esi + 0x50]
push eax
lea eax, [ebp - 0x1c]
push eax
call fcn.00408390
test al, al
je 0x4089e4
movss xmm0, dword [0x4f3e08]
mov dword [ebp - 0x300], 0
mov dword [ebp - 0x32c], 0x41200000
mov dword [ebp - 0x328], 0xc1200000
call fcn.0044e190
movss dword [ebp - 0x324], xmm0
nop dword [eax]
mov ecx, dword [ebx + 0xc]
xor edx, edx
mov dword [ebp - 0x310], 0
mov dword [ebp - 0x30c], 0
mov dword [ebp - 0x308], 0
movzx eax, word [ecx + 0x2c]
mov byte [ebp - 0x2f8], 0
cmp dx, ax
jae 0x408872
mov esi, dword [ecx + 0x28]
lea edx, [ecx + 0x30]
mov dword [ebp - 0x314], edx
mov dword [ebp - 0x2fc], eax
nop dword [eax]
lea eax, [ebp - 0x32c]
mov ecx, edx
push eax
lea eax, [ebp - 0x310]
push eax
push edi
push esi
call fcn.0044e350
mov ecx, dword [ebp - 0x2f8]
test al, al
mov edx, dword [ebp - 0x314]
mov eax, 1
movzx ecx, cl
cmovne ecx, eax
add esi, 0x50
sub dword [ebp - 0x2fc], eax
mov dword [ebp - 0x2f8], ecx
jne 0x4087e0
test cl, cl
je 0x408872
movss xmm0, dword [ebp - 0x310]
addss xmm0, dword [edi]
mov ecx, dword [ebp - 0x300]
inc ecx
mov dword [ebp - 0x300], ecx
movss dword [edi], xmm0
movss xmm0, dword [ebp - 0x30c]
addss xmm0, dword [edi + 4]
movss dword [edi + 4], xmm0
movss xmm0, dword [ebp - 0x308]
addss xmm0, dword [edi + 8]
movss dword [edi + 8], xmm0
cmp ecx, 0x1f4
jl 0x408790
call fcn.00480a90
cdq
mov ecx, 0x168
idiv ecx
lea eax, [ebp - 0x36c]
push eax
lea ecx, [ebp - 0xa0]
movd xmm2, edx
cvtdq2ps xmm2, xmm2
mulss xmm2, dword [0x4f3bc8]
call fcn.0044d560
movss xmm0, dword [edi + 8]
lea eax, [ebp - 0x36c]
movss xmm3, dword [edi + 4]
movss xmm2, dword [edi]
push ecx
movss dword [esp], xmm0
lea ecx, [ebp - 0xe0]
push eax
call fcn.0044d3f0
lea eax, [ebp - 0x60]
push eax
lea edx, [ebp - 0xa0]
lea ecx, [ebp - 0x36c]
call fcn.0044d2c0
add esp, 4
lea eax, [ebp - 0xe0]
lea edx, [ebp - 0x36c]
lea ecx, [ebp - 0x3ac]
push eax
call fcn.0044d2c0
mov esi, dword [ebp - 0x2f0]
lea eax, [ebp - 0x2e0]
movups xmm0, xmmword [ebp - 0x3ac]
add esp, 4
movups xmmword [esi + 0x10], xmm0
mov byte [esi + 0x54], 0
movups xmm0, xmmword [ebp - 0x39c]
push 0x200
push 0
movups xmmword [esi + 0x20], xmm0
push eax
movups xmm0, xmmword [ebp - 0x38c]
mov dword [esi + 0x58], 0
mov byte [esi], 1
movups xmmword [esi + 0x30], xmm0
movups xmm0, xmmword [ebp - 0x37c]
movups xmmword [esi + 0x40], xmm0
call fcn.0047ebc0
mov eax, dword [ebp - 0x318]
movss xmm1, dword [eax]
movss xmm0, dword [eax + 8]
subss xmm1, dword [edi]
subss xmm0, dword [edi + 8]
mulss xmm1, xmm1
mulss xmm0, xmm0
addss xmm1, xmm0
cvtps2pd xmm0, xmm1
xorps xmm1, xmm1
ucomisd xmm1, xmm0
ja 0x408982
sqrtsd xmm0, xmm0
jmp 0x408987
call fcn.004c5db0
cvtsd2ss xmm0, xmm0
add esp, 4
mov ecx, edi
cvtss2sd xmm0, xmm0
movsd qword [esp], xmm0
call fcn.0044d270
push eax
lea eax, [ebp - 0x2e0]
push str.pop:__s____Distance:_f_n
push eax
call fcn.0044d1b0
add esp, 0x14
lea eax, [ebp - 0x2e0]
push eax
call dword [sym.imp.KERNEL32.dll_OutputDebugStringA]
mov al, byte [ebp - 0x2e6]
lea ecx, [ebp - 0x1c]
mov byte [ebp - 0x31e], al
mov eax, dword [esi + 0x50]
mov dword [ebp - 0x31c], eax
lea eax, [ebp - 0x31e]
push eax
call fcn.0040c840
mov ecx, dword [ebp - 0x304]
mov al, byte [ebp - 0x2e1]
mov esi, dword [ebp - 0x2f4]
inc al
mov byte [ebp - 0x2e1], al
cmp al, byte [ecx + esi + 0x18]
jb 0x408710
mov dl, byte [ebp - 0x2e6]
inc dl
mov byte [ebp - 0x2e6], dl
cmp dl, 2
jb 0x4086c4
mov eax, dword [ebp - 0x1c]
test eax, eax
je 0x408a2f
push eax
call fcn.0047d79d
add esp, 4
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
mov ecx, dword [ebp - 0x14]
xor ecx, ebp
call fcn.0047d312
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret 8