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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff0
sub esp, 0x68
mov eax, dword [0x4f0690]
movaps xmm5, xmm3
push esi
push edi
mov edi, dword [ebp + 0x10]
mov esi, edi
movss dword [esp + 0x28], xmm5
mov dword [esp + 0x14], edx
mov dword [esp + 0x18], ecx
mov dword [esp + 0x54], eax
mov dword [esp + 0x24], edi
cmp edi, 0xffffffff
jae 0x40550d
mov cl, byte [esi]
test cl, cl
je 0x405509
cmp cl, 0x23
jne 0x405503
cmp byte [esi + 1], cl
je 0x405509
inc esi
cmp esi, 0xffffffff
jb 0x4054f3
mov dword [esp + 0x24], esi
mov ecx, dword [ebp + 0x18]
test ecx, ecx
je 0x405523
mov eax, dword [ecx]
mov ecx, dword [ecx + 4]
mov dword [esp + 0x58], eax
mov dword [esp + 0x5c], ecx
jmp 0x40559e
mov ecx, dword [0x4f0690]
movss xmm2, dword [ecx + 0x19e4]
cmp edi, esi
jne 0x405545
mov dword [esp + 0x58], 0
movss dword [esp + 0x5c], xmm2
jmp 0x40559e
movss xmm3, dword [0x4e6a84]
lea eax, [esp + 0x4c]
push 0
push esi
push edi
push ecx
mov ecx, dword [ecx + 0x19e0]
mov dword [esp], 0
push eax
call fcn.00432980
movss xmm0, dword [esp + 0x4c]
addss xmm0, dword [0x4e692c]
movss xmm5, dword [esp + 0x28]
mov edx, dword [esp + 0x14]
cvttss2si eax, xmm0
movd xmm0, eax
cvtdq2ps xmm0, xmm0
movss dword [esp + 0x58], xmm0
movss xmm0, dword [esp + 0x50]
movss dword [esp + 0x5c], xmm0
movss xmm4, dword [edx]
lea eax, [esp + 0x58]
movss xmm2, dword [eax]
movss xmm1, dword [eax + 4]
mov dword [esp + 0x44], eax
mov eax, dword [ebp + 8]
movss xmm3, dword [eax]
movaps xmm0, xmm3
subss xmm0, xmm4
comiss xmm2, xmm0
jbe 0x405a8e
mov eax, dword [esp + 0x18]
mov dword [esp + 0x1c], 0xffff
mov dword [esp + 0x3c], 0
mov eax, dword [eax + 0x2c]
mov edx, dword [eax + 8]
movss xmm5, dword [eax + 0xc]
mov dword [esp + 0x2c], edx
movss dword [esp + 0x34], xmm5
movzx ecx, word [edx + 0x3c]
mov dword [esp + 0x30], ecx
movzx eax, cx
cmp cx, word [esp + 0x1c]
jne 0x40560d
movzx ecx, word [edx + 0x3e]
mov dword [esp + 0x30], ecx
xor ecx, ecx
cmp ax, word [esp + 0x1c]
mov eax, dword [esp + 0x30]
sete cl
lea ecx, [ecx*2 + 1]
mov dword [esp + 0x38], ecx
movzx ecx, ax
cmp ecx, dword [edx + 0x14]
jb 0x405633
mov eax, dword [edx + 0x2c]
jmp 0x40564f
mov eax, dword [edx + 0x1c]
movzx eax, word [eax + ecx*2]
cmp ax, word [esp + 0x1c]
jne 0x405646
mov eax, dword [edx + 0x2c]
jmp 0x40564f
lea ecx, [eax + eax*4]
mov eax, dword [edx + 0x28]
lea eax, [eax + ecx*8]
movss xmm2, dword [eax + 0x10]
movzx ecx, word [edx + 0x3c]
movaps xmm1, xmm2
movss dword [esp + 0x4c], xmm2
movss dword [esp + 0x48], xmm2
cmp cx, word [esp + 0x1c]
jne 0x40569c
subss xmm2, dword [eax + 8]
movaps xmm0, xmm5
movd xmm1, dword [esp + 0x38]
divss xmm0, dword [edx + 0x10]
cvtdq2ps xmm1, xmm1
addss xmm2, xmm0
mulss xmm1, xmm2
movss dword [esp + 0x4c], xmm2
subss xmm1, xmm0
movss dword [esp + 0x48], xmm1
maxss xmm3, dword [ebp + 0xc]
lea eax, [esp + 0x3c]
movaps xmm2, xmm5
push eax
push esi
push edi
subss xmm3, xmm1
push ecx
lea eax, [esp + 0x2c]
mov dword [esp], 0
push eax
mov ecx, edx
subss xmm3, xmm4
maxss xmm3, dword [0x4e6934]
call fcn.00432980
mov edi, dword [esp + 0x3c]
mov edx, dword [ebp + 0x10]
movss xmm0, dword [eax]
movss dword [esp + 0x1c], xmm0
cmp edi, edx
jne 0x40573b
cmp edi, esi
jae 0x405739
push esi
lea ecx, [esp + 0x40]
mov dword [esp + 0x40], 0
call fcn.00403c00
movss xmm3, dword [0x4e6a84]
add esp, 4
movss xmm2, dword [esp + 0x34]
mov edi, eax
mov eax, dword [ebp + 0x10]
add edi, eax
push 0
push edi
push eax
push ecx
mov ecx, dword [esp + 0x3c]
lea eax, [esp + 0x4c]
mov dword [esp], 0
push eax
call fcn.00432980
mov edx, dword [ebp + 0x10]
movss xmm0, dword [eax]
movss dword [esp + 0x1c], xmm0
cmp edi, edx
jbe 0x40579b
mov esi, dword [esp + 0x2c]
mov cl, byte [edi - 1]
lea eax, [edi - 1]
mov dword [esp + 0x3c], eax
cmp cl, 0x20
je 0x405755
cmp cl, 9
jne 0x405797
movss xmm3, dword [0x4e6a84]
mov edi, eax
movss xmm2, dword [esp + 0x34]
inc eax
push 0
push eax
push edi
push ecx
lea eax, [esp + 0x70]
mov dword [esp], 0
push eax
mov ecx, esi
call fcn.00432980
movss xmm0, dword [esp + 0x1c]
mov edx, dword [ebp + 0x10]
subss xmm0, dword [eax]
movss dword [esp + 0x1c], xmm0
cmp dword [esp + 0x3c], edx
ja 0x405741
mov esi, dword [esp + 0x24]
mov eax, dword [esp + 0x44]
mov ecx, dword [esp + 0x14]
movss xmm0, dword [eax]
addss xmm0, dword [ecx]
movss xmm1, dword [ecx + 4]
comiss xmm0, dword [esp + 0x28]
jae 0x405860
movss xmm0, dword [eax + 4]
mov eax, dword [ebp + 8]
addss xmm0, xmm1
comiss xmm0, dword [eax + 4]
jae 0x405860
movss xmm7, dword [0x4e6934]
xor ecx, ecx
movaps xmm1, xmm7
call fcn.00404de0
mov dword [esp + 0x44], eax
test eax, 0xff000000
je 0x405928
test edi, edi
jne 0x40580c
mov ecx, edx
lea edi, [ecx + 1]
nop dword [eax + eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x405800
sub ecx, edi
lea edi, [ecx + edx]
cmp edx, edi
je 0x405928
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x18]
push dword [ecx + 4]
movups xmm0, xmmword [edx + 0x60]
mov eax, dword [edx + 0x2c]
push dword [ecx]
movups xmmword [esp + 0x68], xmm0
push 0
push ecx
mov dword [esp], 0
lea ecx, [esp + 0x70]
push edi
mov edi, dword [ebp + 0x10]
push edi
push ecx
push dword [esp + 0x60]
push edx
movss xmm2, dword [eax + 0xc]
mov ecx, dword [eax + 8]
call fcn.00432ca0
movss xmm7, dword [0x4e6934]
jmp 0x40592b
movss xmm7, dword [0x4e6934]
xor ecx, ecx
movaps xmm1, xmm7
call fcn.00404de0
mov dword [esp + 0x44], eax
test eax, 0xff000000
je 0x405928
test edi, edi
jne 0x40589c
mov ecx, edx
lea edi, [ecx + 1]
nop word [eax + eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x405890
sub ecx, edi
lea edi, [ecx + edx]
cmp edx, edi
je 0x405928
mov ecx, dword [esp + 0x18]
mov edx, dword [ebp + 8]
movups xmm0, xmmword [ecx + 0x60]
mov eax, dword [ecx + 0x2c]
mov ecx, dword [esp + 0x14]
movaps xmmword [esp + 0x60], xmm0
maxss xmm0, dword [ecx]
push dword [ecx + 4]
push dword [ecx]
movss dword [esp + 0x68], xmm0
movss xmm0, dword [esp + 0x6c]
maxss xmm0, dword [ecx + 4]
push 1
push ecx
mov dword [esp], 0
lea ecx, [esp + 0x70]
push edi
mov edi, dword [ebp + 0x10]
movss dword [esp + 0x78], xmm0
movss xmm0, dword [esp + 0x7c]
minss xmm0, dword [esp + 0x3c]
push edi
push ecx
push dword [esp + 0x60]
push dword [esp + 0x38]
movss dword [esp + 0x8c], xmm0
movss xmm0, dword [esp + 0x90]
minss xmm0, dword [edx + 4]
movss dword [esp + 0x90], xmm0
jmp 0x405846
mov edi, dword [ebp + 0x10]
mov eax, dword [esp + 0x14]
movss xmm1, dword [esp + 0x1c]
movss xmm2, dword [ebp + 0xc]
addss xmm1, dword [eax]
movaps xmm0, xmm1
movss dword [esp + 0x1c], xmm1
addss xmm0, dword [esp + 0x48]
comiss xmm2, xmm0
jb 0x405bfb
movss xmm4, dword [0x4e6a50]
mov esi, eax
movss xmm5, dword [0x4e68f0]
mov edi, dword [esp + 0x2c]
nop dword [eax]
mov eax, dword [0x4f0690]
movss xmm0, dword [esi + 4]
movss dword [esp + 0x58], xmm1
xorps xmm1, xmm1
movss dword [esp + 0x5c], xmm0
movups xmm3, xmmword [eax + 0x1668]
comiss xmm1, xmm3
movaps xmm2, xmm3
movaps xmmword [esp + 0x60], xmm3
shufps xmm2, xmm3, 0xff
mulss xmm2, dword [eax + 0x15a0]
jbe 0x4059ae
xorps xmm0, xmm0
jmp 0x4059b5
movaps xmm0, xmm7
minss xmm0, xmm3
movss xmm3, dword [esp + 0x64]
comiss xmm1, xmm3
mulss xmm0, xmm4
addss xmm0, xmm5
cvttss2si ecx, xmm0
jbe 0x4059d1
xorps xmm0, xmm0
jmp 0x4059d8
movaps xmm0, xmm7
minss xmm0, xmm3
movss xmm3, dword [esp + 0x68]
mulss xmm0, xmm4
addss xmm0, xmm5
cvttss2si eax, xmm0
shl eax, 8
or ecx, eax
comiss xmm1, xmm3
jbe 0x4059f9
xorps xmm0, xmm0
jmp 0x405a00
movaps xmm0, xmm7
minss xmm0, xmm3
mulss xmm0, xmm4
addss xmm0, xmm5
cvttss2si eax, xmm0
shl eax, 0x10
or ecx, eax
comiss xmm1, xmm2
jbe 0x405a1b
xorps xmm0, xmm0
jmp 0x405a22
movaps xmm0, xmm7
minss xmm0, xmm2
push dword [esp + 0x5c]
movss xmm2, dword [esp + 0x38]
push dword [esp + 0x5c]
mulss xmm0, xmm4
push dword [esp + 0x38]
addss xmm0, xmm5
cvttss2si eax, xmm0
shl eax, 0x18
or eax, ecx
mov ecx, edi
push eax
push dword [esp + 0x28]
call fcn.00432b50
sub dword [esp + 0x38], 1
movss xmm1, dword [esp + 0x1c]
addss xmm1, dword [esp + 0x4c]
movss xmm4, dword [0x4e6a50]
movss xmm5, dword [0x4e68f0]
movss xmm7, dword [0x4e6934]
movss dword [esp + 0x1c], xmm1
jne 0x405970
mov edi, dword [ebp + 0x10]
jmp 0x405bf3
movss xmm7, dword [eax + 4]
addss xmm2, xmm4
movss xmm0, dword [edx + 4]
comiss xmm2, xmm5
jae 0x405b29
addss xmm1, xmm0
comiss xmm1, xmm7
jae 0x405b29
movss xmm1, dword [0x4e6934]
xor ecx, ecx
call fcn.00404de0
mov edx, eax
mov ecx, esi
test edx, 0xff000000
je 0x405bf7
test esi, esi
jne 0x405aed
mov ecx, edi
lea eax, [ecx + 1]
mov dword [esp + 0x4c], eax
nop word [eax + eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x405ae0
sub ecx, dword [esp + 0x4c]
add ecx, edi
cmp edi, ecx
je 0x405bf7
mov esi, dword [esp + 0x18]
movups xmm0, xmmword [esi + 0x60]
mov eax, dword [esi + 0x2c]
mov esi, dword [esp + 0x14]
movups xmmword [esp + 0x60], xmm0
push dword [esi + 4]
push dword [esi]
push 0
push ecx
mov dword [esp], 0
push ecx
push edi
lea ecx, [esp + 0x78]
push ecx
push edx
push dword [esp + 0x38]
jmp 0x405be6
movss xmm1, dword [0x4e6934]
xor ecx, ecx
call fcn.00404de0
mov dword [esp + 0x48], eax
mov ecx, esi
test eax, 0xff000000
je 0x405bf7
test esi, esi
jne 0x405b63
mov ecx, edi
lea eax, [ecx + 1]
mov dword [esp + 0x4c], eax
mov al, byte [ecx]
inc ecx
test al, al
jne 0x405b56
sub ecx, dword [esp + 0x4c]
add ecx, edi
cmp edi, ecx
je 0x405bf7
mov esi, dword [esp + 0x18]
push dword [edx + 4]
mov eax, dword [esp + 0x1c]
push dword [edx]
movups xmm0, xmmword [esi + 0x60]
push 1
mov eax, dword [eax + 0x2c]
movaps xmmword [esp + 0x6c], xmm0
maxss xmm0, dword [edx]
push ecx
mov dword [esp], 0
push ecx
push edi
movss dword [esp + 0x78], xmm0
lea ecx, [esp + 0x78]
movss xmm0, dword [esp + 0x7c]
maxss xmm0, dword [edx + 4]
push ecx
push dword [esp + 0x64]
push esi
movss dword [esp + 0x88], xmm0
movss xmm0, dword [esp + 0x8c]
minss xmm0, dword [esp + 0x4c]
movss dword [esp + 0x8c], xmm0
movss xmm0, dword [esp + 0x90]
minss xmm0, xmm7
movss dword [esp + 0x90], xmm0
movss xmm2, dword [eax + 0xc]
mov ecx, dword [eax + 8]
call fcn.00432ca0
mov esi, dword [esp + 0x24]
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x54]
cmp byte [ecx + 0x30e4], 0
je 0x405c15
push esi
mov edx, edi
mov ecx, eax
call fcn.00417f40
add esp, 4
pop edi
pop esi
mov esp, ebp
pop ebp
ret