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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x60
mov eax, dword [0x4ef400]
xor eax, esp
mov dword [esp + 0x5c], eax
mov eax, dword [ebp + 0xc]
push esi
mov esi, edx
mov dword [esp + 0x24], eax
mov eax, dword [ebp + 8]
mov edx, ecx
mov dword [esp + 0x2c], eax
push edi
mov edi, dword [0x4f0690]
mov eax, dword [edx + 8]
mov dword [esp + 0x14], esi
mov dword [esp + 0x2c], edx
mov dword [esp + 0x18], eax
test al, 0x20
jne 0x40e2ef
cmp dword [edi + 0x15c8], 0xffffffff
mov byte [esp + 0xb], 1
jne 0x40e2f4
mov byte [esp + 0xb], 0
mov eax, dword [edi + 0x1cd8]
mov dword [esp + 0x34], eax
or eax, 0x10
cmp dword [esp + 0x28], 0
mov dword [edi + 0x1cd8], eax
mov dword [edx + 0x150], 1
movss xmm1, dword [edi + 0x15dc]
movss xmm0, dword [edi + 0x19e4]
movaps xmm2, xmm1
movss xmm3, dword [esi + 8]
movss xmm4, dword [esi + 4]
movss dword [esp + 0x24], xmm1
movss dword [esp + 0x10], xmm2
movss dword [esp + 0xc], xmm0
mov dword [esp + 0x3c], 0
mov dword [esp + 0x38], 0
mov dword [esp + 0x20], 0
mov dword [esp + 0x1c], 0
je 0x40e396
addss xmm0, xmm2
movss dword [esp + 0x3c], xmm4
movaps xmm2, xmm0
movss dword [esp + 0x10], xmm0
movaps xmm0, xmm3
movaps xmm5, xmm2
subss xmm0, xmm2
subss xmm0, xmm1
movss dword [esp + 0x38], xmm0
movss xmm0, dword [esp + 0xc]
jmp 0x40e39d
movaps xmm5, xmm0
addss xmm5, xmm1
cmp byte [esp + 0xb], 0
movaps xmm6, xmm2
je 0x40e47f
mov eax, dword [edi + 0x15c8]
cmp eax, 1
jne 0x40e3d0
addss xmm2, xmm0
subss xmm3, xmm2
movss dword [esp + 0x10], xmm2
subss xmm3, xmm1
movss dword [esp + 0x1c], xmm3
jmp 0x40e3fa
movaps xmm2, xmm6
movss dword [esp + 0x10], xmm2
test eax, eax
jne 0x40e400
movaps xmm0, xmm1
movss dword [esp + 0x24], xmm5
addss xmm0, dword [esi]
movss dword [esp + 0x10], xmm6
subss xmm0, xmm1
movss dword [esp + 0x1c], xmm0
movss dword [esp + 0x20], xmm4
mov ecx, dword [edx + 0xf8]
mov eax, dword [edx + 0x100]
xor edx, edx
push dword [eax + ecx*4 - 4]
mov ecx, str.COLLAPSE
call fcn.00403960
mov esi, eax
add esp, 4
mov eax, dword [0x4f0690]
cmp dword [eax + 0x1c88], esi
jne 0x40e434
mov dword [eax + 0x1c8c], esi
cmp dword [eax + 0x1cc4], esi
jne 0x40e443
mov byte [eax + 0x1cc8], 1
cmp dword [eax + 0x1c70], esi
jne 0x40e460
push ecx
push str.COLLAPSE
mov edx, 0xb
mov ecx, esi
call fcn.00422df0
add esp, 8
push 0
lea edx, [esp + 0x20]
mov ecx, esi
call fcn.00439fa0
mov edx, dword [esp + 0x30]
add esp, 4
test al, al
je 0x40e47f
mov byte [edx + 0xc3], 1
cmp dword [esp + 0x28], 0
je 0x40e4fc
mov ecx, dword [edx + 0xf8]
mov eax, dword [edx + 0x100]
xor edx, edx
push dword [eax + ecx*4 - 4]
mov ecx, str.CLOSE
call fcn.00403960
mov esi, eax
add esp, 4
mov eax, dword [0x4f0690]
cmp dword [eax + 0x1c88], esi
jne 0x40e4ba
mov dword [eax + 0x1c8c], esi
cmp dword [eax + 0x1cc4], esi
jne 0x40e4c9
mov byte [eax + 0x1cc8], 1
cmp dword [eax + 0x1c70], esi
jne 0x40e4e6
push ecx
push str.CLOSE
mov edx, 0xb
mov ecx, esi
call fcn.00422df0
add esp, 8
lea edx, [esp + 0x38]
mov ecx, esi
call fcn.00439c20
test al, al
je 0x40e4fc
mov eax, dword [esp + 0x28]
mov byte [eax], 0
test dword [esp + 0x18], 0x100000
xorps xmm7, xmm7
mov esi, dword [esp + 0x2c]
mov eax, dword [esp + 0x34]
mov dword [esi + 0x150], 0
mov dword [edi + 0x1cd8], eax
je 0x40e537
movss xmm0, dword [esp + 0xc]
mulss xmm0, dword [0x4e6918]
movss dword [esp + 0xc], xmm0
jmp 0x40e53d
movss dword [esp + 0xc], xmm7
mov edx, dword [esp + 0x30]
mov ecx, edx
cmp edx, 0xffffffff
jae 0x40e562
mov dl, byte [ecx]
test dl, dl
je 0x40e55e
cmp dl, 0x23
jne 0x40e558
cmp byte [ecx + 1], dl
je 0x40e55e
inc ecx
cmp ecx, 0xffffffff
jb 0x40e548
mov edx, dword [esp + 0x30]
mov eax, dword [0x4f0690]
movss xmm0, dword [eax + 0x19e4]
cmp edx, ecx
jne 0x40e578
movaps xmm4, xmm7
jmp 0x40e5c7
movss xmm3, dword [0x4e6a84]
movaps xmm2, xmm0
push 0
push ecx
push edx
push ecx
lea ecx, [esp + 0x48]
mov dword [esp], 0xbf800000
push ecx
mov ecx, dword [eax + 0x19e0]
call fcn.00432980
movss xmm0, dword [esp + 0x38]
xorps xmm7, xmm7
addss xmm0, dword [0x4e692c]
cvttss2si eax, xmm0
movss xmm0, dword [esp + 0x3c]
movd xmm4, eax
cvtdq2ps xmm4, xmm4
movss dword [esp + 0x1c], xmm4
addss xmm4, dword [esp + 0xc]
movss xmm2, dword [esp + 0x24]
addss xmm0, xmm7
movss dword [esp + 0x1c], xmm4
movss dword [esp + 0x20], xmm0
movss xmm0, dword [edi + 0x15dc]
comiss xmm2, xmm0
jbe 0x40e5f8
addss xmm2, dword [edi + 0x15f4]
movss xmm3, dword [esp + 0x10]
comiss xmm3, xmm0
jbe 0x40e60b
addss xmm3, dword [edi + 0x15f4]
movss xmm6, dword [edi + 0x15c0]
comiss xmm6, xmm7
movss xmm5, dword [0x4e6934]
jbe 0x40e68a
comiss xmm5, xmm6
jbe 0x40e68a
movaps xmm0, xmm6
movaps xmm1, xmm5
subss xmm0, dword [0x4e68f0]
andps xmm0, xmmword [0x4e7210]
addss xmm0, xmm0
subss xmm1, xmm0
comiss xmm7, xmm1
jbe 0x40e64c
movaps xmm5, xmm7
jmp 0x40e650
minss xmm5, xmm1
mov eax, dword [esp + 0x14]
movaps xmm1, xmm2
maxss xmm1, xmm3
movss xmm0, dword [eax + 8]
subss xmm0, dword [eax]
subss xmm0, xmm2
subss xmm0, xmm3
subss xmm0, xmm4
minss xmm1, xmm0
mulss xmm1, xmm5
movss xmm5, dword [0x4e6934]
maxss xmm2, xmm1
maxss xmm3, xmm1
jmp 0x40e68e
mov eax, dword [esp + 0x14]
test dword [esp + 0x18], 0x100000
movss xmm7, dword [eax + 8]
addss xmm2, dword [eax]
movss xmm1, dword [eax + 4]
subss xmm7, xmm3
movss xmm3, dword [eax + 0xc]
movss dword [esp + 0x60], xmm3
movss dword [esp + 0x58], xmm1
movss dword [esp + 0x54], xmm2
movaps xmm3, xmm7
movss dword [esp + 0x5c], xmm7
addss xmm3, dword [edi + 0x15f4]
movss dword [esp + 0x44], xmm2
movss dword [esp + 0x48], xmm1
minss xmm3, dword [eax + 8]
movss dword [esp + 0x14], xmm3
movss dword [esp + 0x4c], xmm3
movss xmm3, dword [eax + 0xc]
movss dword [esp + 0x50], xmm3
je 0x40e7f0
movaps xmm0, xmm7
subss xmm0, xmm2
subss xmm0, xmm4
mulss xmm0, xmm6
addss xmm0, xmm2
addss xmm0, xmm4
comiss xmm2, xmm0
jbe 0x40e725
movaps xmm7, xmm2
movss dword [esp + 0x18], xmm2
jmp 0x40e72f
minss xmm7, xmm0
movss dword [esp + 0x18], xmm7
comiss xmm7, xmm2
addss xmm1, xmm3
mulss xmm1, dword [0x4e68f0]
movss dword [esp + 0x34], xmm1
jbe 0x40e7f0
movaps xmm1, xmm5
xor ecx, ecx
call fcn.00404de0
mov esi, dword [esi + 0x278]
movss xmm0, dword [esp + 0x34]
mov dword [esp + 0x24], eax
movss dword [esp + 0x38], xmm7
mov ecx, dword [esi + 0x2c]
movss dword [esp + 0x3c], xmm0
movss xmm2, dword [ecx + 0xc]
mulss xmm2, dword [0x4e68d8]
test eax, 0xff000000
je 0x40e7c3
xorps xmm3, xmm3
comiss xmm3, xmm2
jae 0x40e7c3
push 7
push ecx
lea eax, [esp + 0x40]
mov dword [esp], 0x40afede0
push eax
mov ecx, esi
call fcn.0042e040
push dword [esp + 0x24]
mov ecx, esi
push dword [esi + 0x54]
push dword [esi + 0x5c]
call fcn.0042d7d0
movss xmm7, dword [esp + 0x18]
mov dword [esi + 0x54], 0
movss xmm0, dword [esp + 0xc]
mulss xmm0, dword [0x4e68f0]
cvttss2si eax, xmm0
movd xmm0, eax
cvtdq2ps xmm0, xmm0
subss xmm7, xmm0
movss xmm0, dword [esp + 0x14]
minss xmm0, xmm7
movss dword [esp + 0x4c], xmm0
lea eax, [esp + 0x44]
push eax
lea eax, [edi + 0x15c0]
push eax
lea eax, [esp + 0x24]
push eax
mov eax, dword [esp + 0x3c]
lea edx, [esp + 0x68]
push ecx
push eax
lea ecx, [esp + 0x68]
call fcn.00405440
mov ecx, dword [esp + 0x78]
add esp, 0x14
pop edi
pop esi
xor ecx, esp
call fcn.004ca5c5
mov esp, ebp
pop ebp
ret