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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x224
mov eax, dword [0x623ec0]
xor eax, esp
mov dword [esp + 0x220], eax
mov eax, dword [0x9c25ac]
push ebx
push esi
push edi
mov esi, dword [eax + 0x21a74]
mov edi, ecx
push 0x2bf20
push 0
mov dword [esp + 0x14], edi
push dword [edi + 0x24]
mov dword [esp + 0x20], esi
call fcn.004abba0
mov ebx, eax
test ebx, ebx
je 0x58baac
push 0x6c
lea eax, [esp + 0x1bc]
push 0
push eax
call fcn.00468b40
movss xmm2, dword [edi + 0x28]
xorps xmm0, xmm0
subss xmm2, dword [esi + 0x48]
movss xmm1, dword [edi + 0x2c]
add esp, 0xc
subss xmm1, dword [esi + 0x50]
mulss xmm2, xmm2
mulss xmm1, xmm1
addss xmm2, xmm0
addss xmm2, xmm1
xorps xmm1, xmm1
cvtps2pd xmm0, xmm2
ucomisd xmm1, xmm0
ja 0x58b438
sqrtsd xmm0, xmm0
jmp 0x58b43d
call fcn.005befd0
mov edi, dword [0x9c25a4]
xorps xmm1, xmm1
cvtsd2ss xmm1, xmm0
movss xmm0, dword [edi + 0x136c]
addss xmm0, dword [ebx + 0x340]
comiss xmm1, xmm0
ja 0x58baac
mov esi, dword [esp + 0xc]
cmp dword [esi + 0x24], 3
movss xmm6, dword [esi + 0x30]
movss xmm5, dword [esi + 0x28]
movss xmm4, dword [esi + 0x2c]
movss dword [esp + 0x148], xmm5
movss dword [esp + 0x150], xmm4
movss dword [esp + 0x14c], xmm6
jne 0x58b5fa
movss xmm3, dword [ebx + 0x340]
movaps xmm1, xmm5
movss xmm2, dword [esi + 0x38]
movaps xmm0, xmm3
mulss xmm0, dword [ebx + 0x32c]
mulss xmm0, xmm2
subss xmm1, xmm0
movaps xmm0, xmm3
movss dword [esp + 0x19c], xmm1
movss dword [esp + 0x184], xmm1
movss dword [esp + 0x16c], xmm1
movss dword [esp + 0x154], xmm1
movaps xmm1, xmm6
mulss xmm0, dword [ebx + 0x32c]
mulss xmm0, xmm2
addss xmm0, xmm4
movss dword [esp + 0x198], xmm0
movss dword [esp + 0x18c], xmm0
movss dword [esp + 0x168], xmm0
movss dword [esp + 0x15c], xmm0
movaps xmm0, xmm3
mulss xmm0, dword [ebx + 0x330]
mulss xmm0, xmm2
subss xmm1, xmm0
movaps xmm0, xmm3
movss dword [esp + 0x17c], xmm1
movss dword [esp + 0x170], xmm1
movss dword [esp + 0x164], xmm1
movss dword [esp + 0x158], xmm1
mulss xmm0, dword [ebx + 0x32c]
mulss xmm0, xmm2
addss xmm0, xmm5
movss dword [esp + 0x1a8], xmm0
movss dword [esp + 0x190], xmm0
movss dword [esp + 0x178], xmm0
movss dword [esp + 0x160], xmm0
movaps xmm0, xmm3
mulss xmm0, dword [ebx + 0x32c]
mulss xmm0, xmm2
subss xmm4, xmm0
movss dword [esp + 0x1b0], xmm4
movss dword [esp + 0x1a4], xmm4
movss dword [esp + 0x180], xmm4
movss dword [esp + 0x174], xmm4
mulss xmm3, dword [ebx + 0x330]
mulss xmm3, xmm2
addss xmm3, xmm6
movss dword [esp + 0x1ac], xmm3
movss dword [esp + 0x1a0], xmm3
movss dword [esp + 0x194], xmm3
movss dword [esp + 0x188], xmm3
jmp 0x58b871
movaps xmm0, xmm5
lea eax, [esp + 0xc8]
addss xmm0, dword [ebx + 0x348]
push 0x40
push 0
push eax
movss dword [esp + 0x1a8], xmm0
movss dword [esp + 0x190], xmm0
movss dword [esp + 0x178], xmm0
movss dword [esp + 0x160], xmm0
movaps xmm0, xmm4
subss xmm0, dword [ebx + 0x350]
movss dword [esp + 0x1a4], xmm0
movss dword [esp + 0x198], xmm0
movss dword [esp + 0x174], xmm0
movss dword [esp + 0x168], xmm0
movaps xmm0, xmm6
addss xmm0, dword [ebx + 0x358]
movss dword [esp + 0x188], xmm0
movss dword [esp + 0x17c], xmm0
movss dword [esp + 0x170], xmm0
movss dword [esp + 0x164], xmm0
addss xmm5, dword [ebx + 0x344]
movss dword [esp + 0x1b4], xmm5
movss dword [esp + 0x19c], xmm5
movss dword [esp + 0x184], xmm5
movss dword [esp + 0x16c], xmm5
subss xmm4, dword [ebx + 0x34c]
movss dword [esp + 0x1bc], xmm4
movss dword [esp + 0x1b0], xmm4
movss dword [esp + 0x18c], xmm4
movss dword [esp + 0x180], xmm4
addss xmm6, dword [ebx + 0x354]
movss dword [esp + 0x1b8], xmm6
movss dword [esp + 0x1ac], xmm6
movss dword [esp + 0x1a0], xmm6
movss dword [esp + 0x194], xmm6
call fcn.00468b40
add esp, 0xc
lea eax, [esp + 0x108]
push 0x40
push 0
push eax
call fcn.00468b40
add esp, 0xc
lea eax, [esp + 0x38]
push 0x40
push 0
push eax
call fcn.00468b40
add esp, 0xc
lea eax, [esp + 0x78]
push 0x40
push 0
push eax
call fcn.00468b40
movss xmm0, dword [esi + 0x38]
lea eax, [esp + 0xd4]
movaps xmm1, xmm0
mulss xmm0, dword [ebx + 0x330]
mulss xmm1, dword [ebx + 0x32c]
movss dword [esp + 8], xmm1
movss dword [esp + 4], xmm0
movss dword [esp], xmm1
push eax
call fcn.00402907
movss xmm0, dword [esi + 0x34]
lea eax, [esp + 0x38]
sub esp, 0xc
mov dword [esp + 8], 0
mov dword [esp + 4], 0xbfc90fdb
movss dword [esp], xmm0
push eax
call fcn.00402e1b
lea eax, [esp + 0x38]
push eax
mov eax, dword [0x9c25a4]
add eax, 0x450
push eax
lea eax, [esp + 0x40]
push eax
call fcn.00402022
lea eax, [esp + 0xc8]
push eax
lea eax, [esp + 0x3c]
push eax
push eax
call fcn.00402022
lea esi, [esp + 0x14c]
mov edi, 9
nop dword [eax + eax]
movss xmm0, dword [esi + 4]
lea eax, [esp + 0x108]
sub esp, 0xc
movss dword [esp + 8], xmm0
movss xmm0, dword [esi]
movss dword [esp + 4], xmm0
movss xmm0, dword [esi - 4]
movss dword [esp], xmm0
push eax
call fcn.00402997
lea eax, [esp + 0x108]
push eax
lea eax, [esp + 0x3c]
push eax
lea eax, [esp + 0x80]
push eax
call fcn.00402022
movss xmm0, dword [esp + 0xa8]
lea esi, [esi + 0xc]
movss dword [esi - 0x10], xmm0
movss xmm0, dword [esp + 0xac]
movss dword [esi - 0xc], xmm0
movss xmm0, dword [esp + 0xb0]
movss dword [esi - 8], xmm0
sub edi, 1
jne 0x58b7f0
mov edi, dword [0x9c25a4]
xor eax, eax
xor esi, esi
mov dword [esp + 0x10], eax
nop dword [eax]
mov ecx, dword [esp + 0x14]
lea ebx, [esi + esi*2]
shl ebx, 2
lea eax, [esp + 0x148]
movss xmm2, dword [edi + 0x136c]
addss xmm2, dword [0x604f80]
movss xmm1, dword [eax + ebx]
movss xmm3, dword [eax + ebx + 4]
subss xmm3, dword [ecx + 0x4c]
subss xmm1, dword [ecx + 0x48]
movss xmm0, dword [eax + ebx + 8]
subss xmm0, dword [ecx + 0x50]
movss dword [esp + 0xc], xmm2
mulss xmm3, xmm3
mulss xmm1, xmm1
mulss xmm0, xmm0
addss xmm3, xmm1
xorps xmm1, xmm1
addss xmm3, xmm0
cvtps2pd xmm0, xmm3
ucomisd xmm1, xmm0
ja 0x58b8ed
sqrtsd xmm0, xmm0
jmp 0x58b8f2
call fcn.005befd0
movss xmm1, dword [esp + 0xc]
cvtsd2ss xmm0, xmm0
comiss xmm1, xmm0
jbe 0x58b9a4
lea eax, [edi + 0x450]
push eax
lea eax, [edi + 0x3d0]
push eax
lea eax, [edi + 0x390]
push eax
lea eax, [edi + 0x370]
push eax
lea eax, [esp + 0x158]
add eax, ebx
lea ecx, [esp + 0x1c8]
add ecx, ebx
push eax
push ecx
call fcn.004019c1
movss xmm0, dword [esp + ebx + 0x1c0]
comiss xmm0, dword [0x605338]
mov edi, dword [0x9c25a4]
movss xmm1, dword [0x604dc4]
jb 0x58b98d
comiss xmm1, xmm0
jbe 0x58b98d
cvttss2si eax, dword [esp + ebx + 0x1b8]
test eax, eax
jle 0x58b98d
cmp eax, dword [edi + 0x378]
jge 0x58b98d
cvttss2si eax, dword [esp + ebx + 0x1bc]
test eax, eax
jle 0x58b98d
cmp eax, dword [edi + 0x37c]
jl 0x58ba92
test esi, esi
jne 0x58b9a4
comiss xmm1, xmm0
jbe 0x58b9a4
mov dword [esp + 0x10], 1
inc esi
jmp 0x58b880
inc esi
cmp esi, 9
jl 0x58b880
cmp dword [esp + 0x10], 1
jne 0x58baac
cvttss2si ecx, dword [esp + 0x1bc]
mov esi, dword [sym.imp.USER32.dll_SetRect]
cvttss2si eax, dword [esp + 0x1b8]
push ecx
push eax
push ecx
push eax
lea eax, [esp + 0x28]
push eax
call esi
mov eax, dword [0x9c25a4]
push dword [eax + 0x37c]
push dword [eax + 0x378]
lea eax, [esp + 0x30]
push 0
push 0
push eax
call esi
mov edx, dword [esp + 0x24]
lea eax, [esp + 0x1c8]
mov esi, dword [esp + 0x20]
mov edi, dword [esp + 0x1c]
mov ebx, dword [esp + 0x18]
mov dword [esp + 0x10], eax
mov dword [esp + 0xc], 8
nop dword [eax + eax]
cvttss2si ecx, dword [eax - 4]
cvttss2si eax, dword [eax]
cmp ebx, ecx
cmovg ebx, ecx
cmp edi, eax
cmovg edi, eax
cmp esi, ecx
cmovl esi, ecx
cmp edx, eax
cmovl edx, eax
mov eax, dword [esp + 0x10]
add eax, 0xc
sub dword [esp + 0xc], 1
mov dword [esp + 0x10], eax
jne 0x58ba20
lea eax, [esp + 0x28]
mov dword [esp + 0x24], edx
push eax
lea eax, [esp + 0x1c]
mov dword [esp + 0x24], esi
push eax
lea eax, [esp + 0xc0]
mov dword [esp + 0x24], edi
push eax
mov dword [esp + 0x24], ebx
call dword [sym.imp.USER32.dll_IntersectRect]
dec eax
neg eax
sbb eax, eax
inc eax
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x220]
xor ecx, esp
call fcn.0046676f
mov esp, ebp
pop ebp
ret
mov eax, 1
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x220]
xor ecx, esp
call fcn.0046676f
mov esp, ebp
pop ebp
ret
mov ecx, dword [esp + 0x22c]
xor eax, eax
pop edi
pop esi
pop ebx
xor ecx, esp
call fcn.0046676f
mov esp, ebp
pop ebp
ret