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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff0
sub esp, 0xc08
mov eax, dword [0x5601cc]
xor eax, esp
mov dword [esp + 0xc04], eax
mov ecx, dword [ebp + 0x10]
mov eax, dword [ebp + 8]
push esi
mov esi, dword [ebp + 0xc]
push edi
lea edi, [ecx + 0x598]
mov dword [esp + 0x14], ecx
mov ecx, dword [ecx + 4]
mov dword [esp + 0x3c], eax
mov eax, 0xa00
shl ecx, 2
sub eax, ecx
mov dword [esp + 0x1c], esi
push eax
lea eax, [ecx + edi]
push eax
push edi
call fcn.0050a9d2
mov ecx, dword [esp + 0x20]
mov ecx, dword [ecx + 4]
lea eax, [ecx*4]
push eax
mov eax, 0x280
sub eax, ecx
push esi
lea eax, [edi + eax*4]
push eax
call fcn.0050a9cc
mov eax, dword [esp + 0x2c]
mov ecx, 0x28
mov esi, dword [esp + 0x2c]
mov edx, dword [eax]
cmp edx, 0x1e
mov eax, 0x50
mov dword [esp + 0x50], edx
cmovne eax, ecx
mov dword [esp + 0x38], eax
movd xmm0, eax
xor eax, eax
cmp edx, 0x14
pshufd xmm0, xmm0, 0
movups xmmword [esp + 0x58], xmm0
setne al
xor ecx, ecx
add eax, 2
cmp edx, 0x14
mov dword [esp + 0x48], eax
mov eax, 4
cmove ecx, eax
add esi, 0xf98
lea eax, [ecx + 0x14]
push eax
mov eax, esi
sub eax, ecx
add eax, 0xc
push eax
push esi
call fcn.0050a9d2
cmp dword [esp + 0x5c], 0x14
mov edx, 0x588
mov eax, 0x448
cmove eax, edx
mov edx, 0x118
movups xmm0, xmmword [eax + edi]
movups xmmword [esp + 0x84], xmm0
movq xmm0, qword [eax + edi + 0x10]
lea eax, [esp + 0x95c]
push eax
lea eax, [esp + 0x88]
movq qword [esp + 0x98], xmm0
push eax
mov eax, 0x168
cmove eax, edx
mov edx, 0x5a0
push eax
mov eax, 0x460
cmove eax, edx
add eax, edi
push 0x561ec8
push eax
call fcn.005013c0
xor eax, eax
mov dword [esp + 0x60], 0
xor edx, edx
lea ecx, [esp + 0xa60]
add esp, 0x38
mov dword [esp + 0x18], edx
cmp dword [esp + 0x38], 0x14
xorps xmm5, xmm5
mov dword [esp + 0x34], ecx
sete al
lea eax, [eax*4 + 0x14]
add eax, esi
mov dword [esp + 0x10], eax
mov dword [esp + 0x2c], eax
mov edi, 0xa
lea eax, [ecx - 0x28]
movaps xmm4, xmm5
movaps xmm2, xmm5
lea ecx, [edi + 0x1e]
movss xmm1, dword [eax]
movss xmm0, dword [eax + 0x28]
add eax, 4
mulss xmm0, xmm1
mulss xmm1, xmm1
addss xmm4, xmm0
addss xmm2, xmm1
sub ecx, 1
jne 0x4ed0c3
comiss xmm4, xmm5
jbe 0x4ed0f3
mulss xmm4, xmm4
divss xmm4, xmm2
jmp 0x4ed0f6
movaps xmm4, xmm5
mov esi, 0xb
nop dword [eax + eax]
mov ecx, dword [esp + 0x34]
mov eax, edx
sub eax, esi
lea edx, [esp + 0xa28]
movaps xmm6, xmm4
movaps xmm2, xmm5
movaps xmm3, xmm5
lea edx, [edx + eax*4]
xor eax, eax
nop dword [eax]
movss xmm1, dword [edx + eax*4]
inc eax
movss xmm0, dword [ecx]
add ecx, 4
mulss xmm0, xmm1
mulss xmm1, xmm1
addss xmm2, xmm0
addss xmm3, xmm1
cmp eax, 0x28
jl 0x4ed120
comiss xmm2, xmm5
jbe 0x4ed151
mulss xmm2, xmm2
divss xmm2, xmm3
jmp 0x4ed154
movaps xmm2, xmm5
comiss xmm2, xmm4
jbe 0x4ed15c
movaps xmm4, xmm2
mov edx, dword [esp + 0x18]
mov eax, esi
comiss xmm2, xmm6
cmovbe eax, edi
inc esi
mov edi, eax
cmp esi, 0x3c
jl 0x4ed100
mov eax, dword [esp + 0x2c]
add edx, 0x28
mov esi, dword [esp + 0x28]
mov ecx, dword [esp + 0x34]
inc esi
movd xmm0, edi
add ecx, 0xa0
cvtdq2ps xmm0, xmm0
mov dword [esp + 0x24], edi
mov dword [esp + 0x28], esi
mov dword [esp + 0x18], edx
mov dword [esp + 0x34], ecx
addss xmm0, xmm0
movss dword [eax], xmm0
add eax, 4
mov dword [esp + 0x2c], eax
cmp esi, dword [esp + 0x30]
jl 0x4ed0b2
mov ecx, dword [esp + 0x14]
cmp dword [ecx + 0x84], 1
jne 0x4ed6a5
mov eax, dword [esp + 0x10]
movaps xmm4, xmm5
mov ecx, dword [esp + 0x1c]
movaps xmm2, xmm5
cvttss2si esi, dword [eax]
mov dword [esp + 0x30], esi
lea edi, [esi - 1]
mov esi, dword [esp + 0x20]
lea eax, [edi*4]
mov dword [esp + 0x24], edi
add ecx, eax
mov dword [esp + 0x10], eax
xor edx, edx
nop word [eax + eax]
movss xmm1, dword [ecx]
mov eax, ecx
sub eax, dword [esp + 0x10]
inc edx
add ecx, 4
movss xmm0, dword [eax]
mulss xmm0, xmm1
mulss xmm1, xmm1
addss xmm4, xmm0
addss xmm1, xmm2
movaps xmm2, xmm1
cmp edx, esi
jl 0x4ed200
comiss xmm4, xmm5
jbe 0x4ed238
mulss xmm4, xmm4
divss xmm4, xmm2
jmp 0x4ed23b
movaps xmm4, xmm5
mov esi, dword [esp + 0x30]
lea eax, [esi + 1]
mov dword [esp + 0x10], eax
cmp esi, eax
jg 0x4ed2b9
nop word [eax + eax]
mov edx, dword [esp + 0x1c]
xor ecx, ecx
movaps xmm6, xmm4
movaps xmm2, xmm5
movaps xmm3, xmm5
lea eax, [edx + esi*4]
sub edx, eax
movss xmm1, dword [eax]
inc ecx
movss xmm0, dword [eax + edx]
add eax, 4
mulss xmm0, xmm1
mulss xmm1, xmm1
addss xmm2, xmm0
addss xmm1, xmm3
movaps xmm3, xmm1
cmp ecx, dword [esp + 0x20]
jl 0x4ed264
comiss xmm2, xmm5
jbe 0x4ed299
mulss xmm2, xmm2
divss xmm2, xmm3
jmp 0x4ed29c
movaps xmm2, xmm5
comiss xmm2, xmm4
jbe 0x4ed2a4
movaps xmm4, xmm2
comiss xmm2, xmm6
mov eax, esi
cmovbe eax, edi
inc esi
mov edi, eax
cmp esi, dword [esp + 0x10]
jle 0x4ed250
mov dword [esp + 0x24], eax
mov ecx, dword [esp + 0x14]
xor eax, eax
cmp dword [esp + 0x38], 0x14
mov edx, dword [esp + 0x1c]
sete al
movd xmm0, edi
cvtdq2ps xmm0, xmm0
add edx, 0xfffffffc
lea eax, [eax*4 + 0x10]
lea edx, [edx + edi*4]
movss dword [eax + ecx + 0xf98], xmm0
mov eax, dword [esp + 0x20]
cmp edi, eax
mov esi, eax
cmovle esi, edi
lea ecx, [esp + eax*4 + 0x74]
cmp esi, 4
jl 0x4ed339
lea eax, [esi - 4]
shr eax, 2
inc eax
mov dword [esp + 0x10], eax
neg eax
lea esi, [esi + eax*4]
mov dword [esp + 0x30], esi
mov esi, dword [esp + 0x10]
mov eax, dword [edx]
mov dword [ecx], eax
mov eax, dword [edx - 4]
mov dword [ecx - 4], eax
mov eax, dword [edx - 8]
mov dword [ecx - 8], eax
mov eax, dword [edx - 0xc]
sub edx, 0x10
mov dword [ecx - 0xc], eax
sub ecx, 0x10
sub esi, 1
jne 0x4ed314
mov esi, dword [esp + 0x30]
test esi, esi
jle 0x4ed34d
sub edx, ecx
nop
mov eax, dword [edx + ecx]
dec esi
mov dword [ecx], eax
sub ecx, 4
test esi, esi
jg 0x4ed340
mov edx, dword [esp + 0x14]
mov eax, 0x27f
mov esi, dword [esp + 0x20]
sub eax, dword [edx + 4]
add edx, 0x598
lea eax, [edx + eax*4]
mov dword [esp + 0x28], eax
mov edx, eax
mov eax, esi
sub eax, edi
mov dword [esp + 0x10], eax
add eax, 0xffffffff
mov dword [esp + 0x18], eax
js 0x4ed3e1
cmp dword [esp + 0x10], 4
jl 0x4ed3c5
mov esi, dword [esp + 0x18]
lea edi, [eax + 1]
shr edi, 2
mov eax, edi
neg eax
lea esi, [esi + eax*4]
mov dword [esp + 0x18], esi
mov esi, dword [esp + 0x20]
nop dword [eax]
mov eax, dword [edx]
mov dword [ecx], eax
mov eax, dword [edx - 4]
mov dword [ecx - 4], eax
mov eax, dword [edx - 8]
mov dword [ecx - 8], eax
mov eax, dword [edx - 0xc]
sub edx, 0x10
mov dword [ecx - 0xc], eax
sub ecx, 0x10
sub edi, 1
jne 0x4ed3a0
mov eax, dword [esp + 0x18]
test eax, eax
js 0x4ed3e1
mov esi, dword [esp + 0x18]
sub edx, ecx
nop
sub esi, 1
mov eax, dword [edx + ecx]
mov dword [ecx], eax
lea ecx, [ecx - 4]
jns 0x4ed3d0
mov esi, dword [esp + 0x20]
mov ecx, dword [esp + 0x28]
movaps xmm1, xmm5
xor eax, eax
nop word [eax + eax]
movss xmm0, dword [ecx]
sub ecx, 4
mulss xmm0, xmm0
addss xmm1, xmm0
movss xmm0, dword [esp + eax*4 + 0x78]
mulss xmm0, xmm0
inc eax
addss xmm5, xmm0
cmp eax, esi
jl 0x4ed3f0
xorps xmm0, xmm0
movss dword [esp + 0x10], xmm1
cvtsi2ss xmm0, esi
divss xmm5, xmm0
cvtps2pd xmm0, xmm5
call fcn.0050ab2e
movss xmm1, dword [esp + 0x10]
cvtsd2ss xmm0, xmm0
movss dword [esp + 0x2c], xmm0
shufps xmm0, xmm0, 0
movaps xmmword [esp + 0x50], xmm0
xorps xmm0, xmm0
cvtsi2ss xmm0, esi
divss xmm1, xmm0
cvtps2pd xmm0, xmm1
call fcn.0050ab2e
movss xmm4, dword [esp + 0x2c]
xorps xmm3, xmm3
cvtsd2ss xmm3, xmm0
movaps xmm1, xmm3
addss xmm3, xmm3
shufps xmm1, xmm1, 0
comiss xmm4, xmm3
jbe 0x4ed64b
xorps xmm0, xmm0
comiss xmm4, xmm0
jbe 0x4ed64b
lea edx, [esi - 0xa]
xor ecx, ecx
mov eax, edx
and eax, 0x8000000f
jns 0x4ed497
dec eax
or eax, 0xfffffff0
inc eax
movaps xmm2, xmmword [0x547640]
mulps xmm2, xmm1
mov dword [esp + 0x1c], edx
sub dword [esp + 0x1c], eax
mov eax, dword [esp + 0x1c]
divps xmm2, xmmword [esp + 0x50]
movups xmm0, xmmword [esp + ecx*4 + 0x78]
movaps xmm1, xmm2
mulps xmm1, xmm0
movups xmmword [esp + ecx*4 + 0x78], xmm1
movups xmm0, xmmword [esp + ecx*4 + 0x88]
movaps xmm1, xmm2
mulps xmm1, xmm0
movups xmmword [esp + ecx*4 + 0x88], xmm1
movups xmm0, xmmword [esp + ecx*4 + 0x98]
movaps xmm1, xmm2
mulps xmm1, xmm0
movups xmmword [esp + ecx*4 + 0x98], xmm1
movups xmm0, xmmword [esp + ecx*4 + 0xa8]
movaps xmm1, xmm2
mulps xmm1, xmm0
movups xmmword [esp + ecx*4 + 0xa8], xmm1
add ecx, 0x10
cmp ecx, eax
jl 0x4ed4b2
cmp ecx, edx
jge 0x4ed565
mov eax, edx
sub eax, ecx
cmp eax, 4
jl 0x4ed544
movaps xmm1, xmm3
lea eax, [edx - 3]
divss xmm1, xmm4
shufps xmm1, xmm1, 0
nop word [eax + eax]
movups xmm0, xmmword [esp + ecx*4 + 0x78]
mulps xmm0, xmm1
movups xmmword [esp + ecx*4 + 0x78], xmm0
add ecx, 4
cmp ecx, eax
jl 0x4ed530
cmp ecx, edx
jge 0x4ed565
movaps xmm1, xmm3
divss xmm1, xmm4
nop
movss xmm0, dword [esp + ecx*4 + 0x78]
mulss xmm0, xmm1
movss dword [esp + ecx*4 + 0x78], xmm0
inc ecx
cmp ecx, edx
jl 0x4ed550
movaps xmm4, xmmword [0x546d60]
lea ecx, [esi - 2]
movaps xmm5, xmmword [0x5264f0]
subps xmm4, xmm2
movaps xmm6, xmmword [str._n_n_n_n]
lea eax, [edx + 4]
movaps xmm7, xmmword [0x547660]
nop word [eax + eax]
movd xmm0, edx
pshufd xmm0, xmm0, 0
paddd xmm0, xmm5
psubd xmm0, xmmword [esp + 0x40]
paddd xmm0, xmm6
cvtdq2ps xmm1, xmm0
movups xmm0, xmmword [esp + edx*4 + 0x78]
mulps xmm1, xmm4
divps xmm1, xmm7
addps xmm1, xmm2
mulps xmm1, xmm0
movd xmm0, eax
add eax, 8
pshufd xmm0, xmm0, 0
paddd xmm0, xmm5
psubd xmm0, xmmword [esp + 0x40]
movups xmmword [esp + edx*4 + 0x78], xmm1
paddd xmm0, xmm6
cvtdq2ps xmm1, xmm0
movups xmm0, xmmword [esp + edx*4 + 0x88]
mulps xmm1, xmm4
divps xmm1, xmm7
addps xmm1, xmm2
mulps xmm1, xmm0
movups xmmword [esp + edx*4 + 0x88], xmm1
add edx, 8
cmp edx, ecx
jl 0x4ed590
cmp edx, esi
jge 0x4ed64b
divss xmm3, dword [esp + 0x2c]
movss xmm1, dword [0x51cc74]
movss xmm2, dword [0x51cc78]
subss xmm1, xmm3
nop
mov eax, edx
sub eax, esi
add eax, 0xa
movd xmm0, eax
cvtdq2ps xmm0, xmm0
mulss xmm0, xmm1
divss xmm0, xmm2
addss xmm0, xmm3
mulss xmm0, dword [esp + edx*4 + 0x78]
movss dword [esp + edx*4 + 0x78], xmm0
inc edx
cmp edx, esi
jl 0x4ed620
mov edi, dword [esp + 0x28]
lea eax, [esi + 1]
movd xmm3, eax
xor edx, edx
cvtdq2ps xmm3, xmm3
nop dword [eax + eax]
lea ecx, [edx + 1]
movss xmm1, dword [0x51cc74]
movd xmm2, ecx
mov eax, esi
cvtdq2ps xmm2, xmm2
sub eax, edx
mov edx, ecx
movss xmm0, dword [edi]
divss xmm2, xmm3
subss xmm1, xmm2
mulss xmm0, xmm2
mulss xmm1, dword [esp + eax*4 + 0x74]
addss xmm1, xmm0
movss dword [edi], xmm1
sub edi, 4
cmp edx, esi
jl 0x4ed660
mov edi, dword [esp + 0x24]
mov ecx, dword [esp + 0x14]
mov eax, dword [ecx]
cmp eax, 0x14
jne 0x4ed710
mov edi, dword [esp + 0x3c]
mov esi, 0x1b8
push 3
push 8
push 0x5621d0
lea eax, [ecx + 0xf98]
push eax
push esi
lea eax, [ecx + 0x598]
push 0x280
push eax
lea eax, [esp + 0x94]
push eax
call fcn.004ed7a0
add esp, 0x1c
lea eax, [esp + 0x7c]
mov dword [esp], 0x3d4ccccd
push 3
push eax
push edi
call fcn.004ee040
mov ecx, dword [esp + 0x24]
add esi, 0x50
add esp, 0x10
add edi, 0x140
cmp esi, 0x258
jl 0x4ed6b5
jmp 0x4ed779
cmp eax, 0x1e
jne 0x4ed77d
mov edi, dword [esp + 0x3c]
mov esi, 0x140
nop
push 3
push 8
push 0x5621d0
lea eax, [ecx + 0xf98]
push eax
push esi
lea eax, [ecx + 0x598]
push 0x280
push eax
lea eax, [esp + 0x94]
push eax
call fcn.004ed7a0
add esp, 0x1c
lea eax, [esp + 0x7c]
mov dword [esp], 0x3d4ccccd
push 3
push eax
push edi
call fcn.004ee040
mov ecx, dword [esp + 0x24]
add esi, 0x50
add esp, 0x10
add edi, 0x140
cmp esi, 0x230
jl 0x4ed720
mov edi, dword [esp + 0x24]
mov ecx, dword [esp + 0xc0c]
lea eax, [edi + edi]
pop edi
pop esi
xor ecx, esp
call fcn.0043c187
mov esp, ebp
pop ebp
ret