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

Disassembly:
sub esp, 0x88
mov eax, dword [0x67c3c0]
xor eax, esp
mov dword [esp + 0x84], eax
mov ecx, dword [esp + 0x90]
mov eax, dword [esp + 0x9c]
push ebx
push ebp
mov ebp, dword [0x682080]
push esi
push edi
mov edi, dword [esp + 0x9c]
mov dword [esp + 0x10], ecx
mov dword [esp + 0x8c], eax
cmp byte [edi + 0x8d], 0
movss xmm2, dword [edi + 0x44]
movss xmm1, dword [edi + 0x48]
mov ebx, dword [edi + 8]
mov byte [edi + 0x8f], 0
movss dword [esp + 0x14], xmm2
movss dword [esp + 0x1c], xmm1
je 0x4171d5
cmp byte [esp + 0xa4], 0
movss xmm0, dword [ebp + 0x155c]
movss dword [esp + 0x20], xmm0
movss dword [ebp + 0x155c], xmm1
je 0x416fe9
cmp byte [ebp + 0x1d4a], 0
mov eax, 0x174
je 0x416fee
mov eax, 0x184
mov esi, dword [0x682080]
push 0
push ecx
movss dword [esp], xmm2
movups xmm0, xmmword [eax + esi + 0x1518]
lea eax, [esp + 0x7c]
push eax
movups xmmword [esp + 0x80], xmm0
shufps xmm0, xmm0, 0xff
mulss xmm0, dword [esi + 0x1518]
movss dword [esp + 0x8c], xmm0
movss xmm0, dword [ecx + 8]
movss dword [esp + 0x98], xmm0
movss xmm0, dword [ecx + 0xc]
movss dword [esp + 0x9c], xmm0
movss xmm0, dword [ecx]
movss dword [esp + 0x90], xmm0
movss xmm0, dword [ecx + 4]
movss dword [esp + 0x94], xmm0
mov edi, dword [esi + 0x1b94]
call fcn.0040c080
mov ecx, dword [edi + 0x288]
add esp, 4
push eax
lea eax, [esp + 0x98]
push eax
lea eax, [esp + 0x94]
push eax
call fcn.0041e9e0
movss xmm2, dword [esi + 0x155c]
comiss xmm2, dword [0x5cbf98]
movss dword [esp + 0x10], xmm2
jbe 0x4171c2
mov eax, dword [0x682080]
movss xmm1, dword [0x5cbff0]
push ecx
movss dword [esp], xmm2
movups xmm0, xmmword [eax + 0x163c]
push 0
push ecx
movups xmmword [esp + 0x80], xmm0
shufps xmm0, xmm0, 0xff
mulss xmm0, dword [eax + 0x1518]
lea eax, [esp + 0x80]
movss dword [esp + 0x8c], xmm0
movss xmm0, dword [esp + 0x98]
addss xmm0, xmm1
movss dword [esp + 0x3c], xmm0
movss xmm0, dword [esp + 0x9c]
addss xmm0, xmm1
movss dword [esp + 0x40], xmm0
movss xmm0, dword [esp + 0x90]
addss xmm0, xmm1
movss dword [esp + 0x34], xmm0
movss xmm0, dword [esp + 0x94]
addss xmm0, xmm1
movss xmm1, dword [esp + 0x20]
movss dword [esp], xmm1
push eax
movss dword [esp + 0x3c], xmm0
call fcn.0040c080
mov ecx, dword [edi + 0x288]
add esp, 4
push eax
lea eax, [esp + 0x40]
push eax
lea eax, [esp + 0x3c]
push eax
call fcn.0041e8e0
mov eax, dword [0x682080]
push ecx
movups xmm0, xmmword [eax + 0x162c]
movups xmmword [esp + 0x78], xmm0
shufps xmm0, xmm0, 0xff
mulss xmm0, dword [eax + 0x1518]
lea eax, [esp + 0x78]
movss dword [esp + 0x84], xmm0
movss xmm0, dword [esp + 0x14]
movss dword [esp], xmm0
movss xmm0, dword [esp + 0x18]
push 0
push ecx
movss dword [esp], xmm0
push eax
call fcn.0040c080
mov ecx, dword [edi + 0x288]
add esp, 4
push eax
lea eax, [esp + 0x9c]
push eax
lea eax, [esp + 0x98]
push eax
call fcn.0041e8e0
movss xmm0, dword [esp + 0x20]
movss dword [ebp + 0x155c], xmm0
jmp 0x4178fe
test bl, bl
js 0x41732f
test ebx, 0x6000000
je 0x4171ec
mov eax, 0x104
jmp 0x4171fb
mov eax, ebx
and eax, 0x1000000
or eax, 0xe400000
shr eax, 0x14
mov ecx, dword [0x682080]
movups xmm0, xmmword [eax + ecx + 0x1518]
lea eax, [esp + 0x74]
push eax
movups xmmword [esp + 0x78], xmm0
shufps xmm0, xmm0, 0xff
mulss xmm0, dword [ecx + 0x1518]
movss dword [esp + 0x84], xmm0
call fcn.0040c080
add esp, 4
mov ecx, eax
test byte [ebp + 0x1c18], 0x40
xorps xmm2, xmm2
je 0x41727b
movss xmm1, dword [ebp + 0x1c6c]
comiss xmm2, xmm1
jbe 0x417250
xorps xmm0, xmm0
jmp 0x41725c
movss xmm0, dword [0x5cbff0]
minss xmm0, xmm1
mulss xmm0, dword [0x5cc048]
and ecx, 0xffffff
addss xmm0, dword [0x5cbfc4]
cvttss2si eax, xmm0
shl eax, 0x18
or ecx, eax
movss xmm3, dword [edi + 0xc]
mov esi, ebx
movss xmm4, dword [edi + 0x10]
movaps xmm0, xmm3
addss xmm0, dword [edi + 0x14]
movss dword [esp + 0x3c], xmm0
movaps xmm0, xmm4
addss xmm0, dword [edi + 0x18]
movss dword [esp + 0x40], xmm0
and esi, 1
je 0x4172ad
xorps xmm1, xmm1
jmp 0x4172e4
mov eax, dword [0x682080]
mov edx, dword [edi + 0x31c]
movss xmm0, dword [eax + 0x1934]
mulss xmm0, dword [edi + 0x280]
test edx, edx
je 0x4172d4
mulss xmm0, dword [edx + 0x280]
movss xmm1, dword [eax + 0x1554]
addss xmm1, xmm1
addss xmm1, xmm0
movss xmm0, dword [esp + 0x14]
addss xmm3, xmm2
xor edx, edx
addss xmm4, xmm1
test esi, esi
mov eax, 0xc0
cmovne eax, edx
push eax
push ecx
movss dword [esp], xmm0
lea eax, [esp + 0x44]
push ecx
mov ecx, dword [edi + 0x288]
push eax
lea eax, [esp + 0x54]
movss dword [esp + 0x54], xmm3
push eax
movss dword [esp + 0x5c], xmm4
call fcn.0041e9e0
movss xmm2, dword [esp + 0x14]
jmp 0x417334
mov esi, ebx
and esi, 1
test esi, esi
jne 0x417397
mov ecx, dword [0x682080]
movzx eax, byte [esp + 0xa4]
add eax, eax
push 0x30
push ecx
movss dword [esp], xmm2
movups xmm0, xmmword [ecx + eax*8 + 0x167c]
lea eax, [esp + 0x7c]
push eax
movups xmmword [esp + 0x80], xmm0
shufps xmm0, xmm0, 0xff
mulss xmm0, dword [ecx + 0x1518]
movss dword [esp + 0x8c], xmm0
call fcn.0040c080
mov ecx, dword [esp + 0x1c]
add esp, 4
push eax
lea eax, [ecx + 8]
push eax
push ecx
mov ecx, dword [edi + 0x288]
call fcn.0041e9e0
test ebx, 0x400
je 0x417597
mov edx, dword [edi + 8]
mov eax, dword [0x682080]
test dl, 1
je 0x4173b5
xorps xmm1, xmm1
jmp 0x4173e7
movss xmm0, dword [eax + 0x1934]
mov ecx, dword [edi + 0x31c]
mulss xmm0, dword [edi + 0x280]
test ecx, ecx
je 0x4173d7
mulss xmm0, dword [ecx + 0x280]
movss xmm1, dword [eax + 0x1554]
addss xmm1, xmm1
addss xmm1, xmm0
movss xmm4, dword [edi + 0x10]
xorps xmm2, xmm2
movaps xmm5, xmm4
addss xmm5, xmm1
test edx, 0x400
je 0x41743a
movss xmm1, dword [eax + 0x1934]
mov ecx, dword [edi + 0x31c]
mulss xmm1, dword [edi + 0x280]
test ecx, ecx
je 0x417420
mulss xmm1, dword [ecx + 0x280]
movss xmm0, dword [eax + 0x1554]
addss xmm1, dword [edi + 0x158]
addss xmm0, xmm0
addss xmm1, xmm0
jmp 0x41743d
xorps xmm1, xmm1
movss xmm0, dword [edi + 0xc]
movaps xmm7, xmm5
maxss xmm7, xmm4
movaps xmm6, xmm0
maxss xmm6, xmm0
movaps xmm3, xmm0
addss xmm1, xmm5
addss xmm3, dword [edi + 0x1c]
addss xmm0, dword [edi + 0x14]
addss xmm4, dword [edi + 0x18]
movss dword [esp + 0x10], xmm6
minss xmm3, xmm0
minss xmm1, xmm4
movss dword [esp + 0x7c], xmm3
movss dword [esp + 0x18], xmm1
movss dword [esp + 0x80], xmm1
test esi, esi
je 0x417495
movss xmm4, dword [esp + 0x14]
jmp 0x417498
xorps xmm4, xmm4
movups xmm0, xmmword [eax + 0x16ac]
push 0x30
subss xmm3, dword [esp + 0x20]
movups xmmword [esp + 0x68], xmm0
push ecx
shufps xmm0, xmm0, 0xff
addss xmm7, xmm2
mulss xmm0, dword [eax + 0x1518]
lea eax, [esp + 0x6c]
movss dword [esp], xmm4
push eax
movss dword [esp + 0x7c], xmm0
movaps xmm0, xmm1
subss xmm0, xmm2
movss dword [esp + 0x58], xmm3
movss dword [esp + 0x64], xmm7
movss dword [esp + 0x5c], xmm0
movaps xmm0, xmm6
addss xmm0, dword [esp + 0x28]
movss dword [esp + 0x60], xmm0
call fcn.0040c080
mov ecx, dword [edi + 0x288]
add esp, 4
push eax
lea eax, [esp + 0x58]
push eax
lea eax, [esp + 0x64]
push eax
call fcn.0041e9e0
movss xmm0, dword [ebp + 0x155c]
xorps xmm2, xmm2
comiss xmm0, xmm2
jbe 0x417597
movss xmm0, dword [edi + 0x10]
addss xmm0, dword [edi + 0x18]
comiss xmm0, dword [esp + 0x18]
jbe 0x417597
push ecx
mov dword [esp], 0x3f800000
push 5
call fcn.0040de90
movss xmm0, dword [esp + 0x18]
add esp, 4
mov ecx, dword [esp + 0x80]
mov edx, dword [esp + 0x84]
movss dword [esp + 0x68], xmm0
movss xmm0, dword [esp + 0x1c]
movss dword [esp + 0x6c], xmm0
movss xmm0, dword [ebp + 0x155c]
movss dword [esp], xmm0
push eax
lea eax, [esp + 0x64]
mov dword [esp + 0x64], ecx
mov ecx, dword [edi + 0x288]
push eax
lea eax, [esp + 0x70]
mov dword [esp + 0x6c], edx
push eax
call fcn.0041db90
cmp byte [edi + 0x88], 0
je 0x4175aa
push 0
call fcn.004384f0
add esp, 4
cmp byte [edi + 0x89], 0
je 0x4175bd
push 1
call fcn.004384f0
add esp, 4
test bl, 2
jne 0x4178f5
xor eax, eax
mov dword [esp + 0x18], eax
cmp dword [esp + 0xa8], eax
jle 0x4178f5
movss xmm4, dword [esp + 0x1c]
mov ebp, 0x668cf8
movaps xmm0, xmm4
addss xmm0, dword [esp + 0x14]
movss dword [esp + 0x84], xmm0
nop word [eax + eax]
movss xmm0, dword [edi + 0xc]
and eax, 1
movss xmm1, dword [edi + 0x10]
movaps xmm2, xmm0
addss xmm2, dword [edi + 0x14]
mov ebx, dword [edi + 0x288]
mov dword [esp + 0x24], eax
subss xmm2, xmm0
mulss xmm2, dword [ebp - 8]
addss xmm2, xmm0
movaps xmm0, xmm1
addss xmm0, dword [edi + 0x18]
movss dword [esp + 0x20], xmm2
subss xmm0, xmm1
mulss xmm0, dword [ebp - 4]
addss xmm0, xmm1
movss dword [esp + 0x10], xmm0
je 0x41765d
movss xmm3, dword [esp + 0xb0]
movaps xmm1, xmm4
jmp 0x417669
movss xmm1, dword [esp + 0xb0]
movaps xmm3, xmm4
mulss xmm1, dword [ebp]
mov esi, dword [ebx + 0x54]
mulss xmm3, dword [ebp + 4]
mov ecx, dword [ebx + 0x58]
addss xmm1, xmm2
addss xmm3, xmm0
movss dword [esp + 0x28], xmm1
movss dword [esp + 0x2c], xmm3
cmp esi, ecx
jne 0x41773b
inc esi
test ecx, ecx
je 0x4176a5
mov eax, ecx
cdq
sub eax, edx
sar eax, 1
add eax, ecx
jmp 0x4176aa
mov eax, 8
cmp eax, esi
cmovg esi, eax
cmp esi, ecx
jle 0x41773b
mov eax, dword [0x682080]
test eax, eax
je 0x4176c6
inc dword [eax + 0x370]
push dword [0x682088]
lea eax, [esi*8]
push eax
call dword [0x668ce8]
mov edx, dword [ebx + 0x5c]
add esp, 8
mov dword [esp + 0x38], eax
test edx, edx
je 0x417723
mov ecx, dword [ebx + 0x54]
shl ecx, 3
push ecx
push edx
push eax
call fcn.0059ce90
mov ecx, dword [ebx + 0x5c]
add esp, 0xc
test ecx, ecx
je 0x41770f
mov eax, dword [0x682080]
test eax, eax
je 0x41770f
dec dword [eax + 0x370]
push dword [0x682088]
push ecx
call dword [0x668cec]
mov eax, dword [esp + 0x40]
add esp, 8
movss xmm2, dword [esp + 0x20]
movss xmm0, dword [esp + 0x10]
movss xmm4, dword [esp + 0x1c]
mov dword [ebx + 0x5c], eax
mov dword [ebx + 0x58], esi
mov eax, dword [ebx + 0x54]
mov ecx, dword [ebx + 0x5c]
mov edx, dword [esp + 0x28]
mov esi, dword [esp + 0x2c]
mov dword [ecx + eax*8], edx
mov dword [ecx + eax*8 + 4], esi
inc dword [ebx + 0x54]
cmp dword [esp + 0x24], 0
mov ebx, dword [edi + 0x288]
je 0x41776e
movss xmm1, dword [esp + 0xb0]
movaps xmm3, xmm4
jmp 0x41777a
movss xmm3, dword [esp + 0xb0]
movaps xmm1, xmm4
mulss xmm1, dword [ebp]
mov esi, dword [ebx + 0x54]
mulss xmm3, dword [ebp + 4]
mov ecx, dword [ebx + 0x58]
addss xmm1, xmm2
addss xmm3, xmm0
movss dword [esp + 0x30], xmm1
movss dword [esp + 0x34], xmm3
cmp esi, ecx
jne 0x41783c
inc esi
test ecx, ecx
je 0x4177b6
mov eax, ecx
cdq
sub eax, edx
sar eax, 1
add eax, ecx
jmp 0x4177bb
mov eax, 8
cmp eax, esi
cmovg esi, eax
cmp esi, ecx
jle 0x41783c
mov eax, dword [0x682080]
test eax, eax
je 0x4177d3
inc dword [eax + 0x370]
push dword [0x682088]
lea eax, [esi*8]
push eax
call dword [0x668ce8]
mov edx, dword [ebx + 0x5c]
add esp, 8
mov dword [esp + 0x24], eax
test edx, edx
je 0x417830
mov ecx, dword [ebx + 0x54]
shl ecx, 3
push ecx
push edx
push eax
call fcn.0059ce90
mov ecx, dword [ebx + 0x5c]
add esp, 0xc
test ecx, ecx
je 0x41781c
mov eax, dword [0x682080]
test eax, eax
je 0x41781c
dec dword [eax + 0x370]
push dword [0x682088]
push ecx
call dword [0x668cec]
mov eax, dword [esp + 0x2c]
add esp, 8
movss xmm2, dword [esp + 0x20]
mov dword [ebx + 0x5c], eax
mov dword [ebx + 0x58], esi
mov ecx, dword [ebx + 0x5c]
mov eax, dword [ebx + 0x54]
mov edx, dword [esp + 0x30]
movss xmm0, dword [esp + 0x84]
mov esi, dword [esp + 0x34]
mov dword [ecx + eax*8], edx
mov dword [ecx + eax*8 + 4], esi
lea eax, [esp + 0x74]
inc dword [ebx + 0x54]
mulss xmm0, dword [ebp]
push dword [ebp + 0xc]
push dword [ebp + 8]
addss xmm0, xmm2
push ecx
mov ecx, dword [edi + 0x288]
movss dword [esp + 0x80], xmm0
movss xmm0, dword [esp + 0x90]
mulss xmm0, dword [ebp + 4]
addss xmm0, dword [esp + 0x1c]
movss dword [esp + 0x84], xmm0
movss xmm0, dword [esp + 0x20]
movss dword [esp], xmm0
push eax
call fcn.00420a90
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x8c]
mov esi, dword [edi + 0x288]
push dword [ecx + eax*4]
mov ecx, esi
push dword [esi + 0x54]
push dword [esi + 0x5c]
call fcn.0041cce0
mov eax, dword [esp + 0x18]
add ebp, 0x18
movss xmm4, dword [esp + 0x1c]
inc eax
mov dword [esi + 0x54], 0
mov dword [esp + 0x18], eax
cmp eax, dword [esp + 0xa8]
jl 0x417600
push edi
call fcn.00417920
add esp, 4
mov ecx, dword [esp + 0x94]
pop edi
pop esi
pop ebp
pop ebx
xor ecx, esp
call fcn.0059a5ad
add esp, 0x88
ret