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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff0
sub esp, 0x168
push esi
push edi
mov edi, ecx
mov ecx, dword [ebp + 0xc]
mov eax, dword [ecx]
cmp dword [eax + 4], 2
jle 0x6018f1
movsx edx, word [eax + 0x32]
jmp 0x6018f3
xor edx, edx
movsx eax, word [edi + 0x2c]
cmp eax, edx
jge 0x601e2d
movsx eax, word [edi + 0x30]
cmp eax, edx
jge 0x601e2d
mov eax, dword [edi + 0x34]
test eax, eax
je 0x601937
mov eax, dword [eax + 8]
test eax, eax
je 0x601937
cmp byte [edi + 0x79], 0
jne 0x60195a
mov edx, dword [edi + 0x54]
mov byte [edi + 0x78], 0
test edx, edx
je 0x601932
cmp edx, eax
je 0x601932
mov byte [edi + 0x7a], 1
mov dword [edi + 0x54], eax
jmp 0x60195a
cmp byte [edi + 0x52], 0
je 0x601941
mov byte [edi + 0x79], 1
mov al, byte [edi + 0x78]
cmp al, 1
jne 0x601952
cmp dword [edi + 0x54], 0
je 0x601e26
test al, al
jne 0x60195a
mov byte [edi + 0x78], 1
cmp dword [edi + 0x54], 0
je 0x601e26
mov eax, dword [ebp + 8]
mov eax, dword [eax]
mov eax, dword [eax + 0x2c]
mov esi, dword [eax + 0x14]
lea eax, [esp + 0x110]
push eax
movsx eax, word [edi + 0x2c]
push esi
push ecx
push eax
call fcn.005df500
lea eax, [esp + 0x150]
push eax
movsx eax, word [edi + 0x30]
push esi
mov esi, dword [ebp + 0xc]
push esi
push eax
call fcn.005df500
movaps xmm4, xmmword [esp + 0x160]
lea eax, [edi + 0x60]
movaps xmm1, xmmword [esp + 0x130]
add esp, 0x20
addps xmm1, xmm4
movss xmm5, dword [0x719760]
subps xmm4, xmmword [esp + 0x110]
mov ecx, dword [esi]
push eax
mulps xmm1, xmmword [0x786aa0]
movsx eax, word [ecx + 0x14]
movaps xmm3, xmm4
add eax, ecx
mulps xmm3, xmm4
lea ecx, [esp + 0x64]
push eax
movaps xmmword [esp + 0x78], xmm1
movaps xmm0, xmm3
shufps xmm0, xmm3, 0x55
addss xmm0, xmm3
shufps xmm3, xmm3, 0xaa
addss xmm3, xmm0
xorps xmm0, xmm0
movaps xmm6, xmm0
movss xmm0, dword [0x719764]
movaps xmm1, xmm0
movaps xmmword [esp + 0x28], xmm6
movaps xmm0, xmm5
movaps xmmword [esp + 0x48], xmm1
movaps xmmword [esp + 0x38], xmm0
shufps xmm3, xmm3, 0
movaps xmm2, xmm3
movaps xmm5, xmm3
rsqrtss xmm2, xmm2
mulss xmm3, xmm2
cmpeqss xmm5, xmm6
mulss xmm0, xmm2
mulss xmm3, xmm2
subss xmm1, xmm3
mulss xmm0, xmm1
andnps xmm5, xmm0
shufps xmm5, xmm5, 0
mulps xmm5, xmm4
movaps xmmword [esp + 0x98], xmm5
call fcn.0046eb90
mov eax, dword [edi + 0x34]
lea ecx, [esp + 0x50]
add eax, 0x30
push eax
mov eax, dword [edi + 0x54]
add eax, 0xf0
push eax
call fcn.0046e9f0
cmp byte [edi + 0x7a], 0
je 0x601b69
cmp byte [edi + 0x78], 0
movaps xmm7, xmmword [esp + 0x60]
movaps xmmword [esp + 0x10], xmm7
jne 0x601b80
movaps xmm1, xmmword [esp + 0x50]
movaps xmm6, xmm1
subps xmm6, xmm7
movaps xmm3, xmm6
mulps xmm3, xmm6
movaps xmm0, xmm3
movaps xmm4, xmm3
shufps xmm0, xmm3, 0x55
addss xmm0, xmm3
shufps xmm4, xmm3, 0xaa
addss xmm4, xmm0
movss xmm0, dword [0x718818]
sqrtss xmm4, xmm4
comiss xmm0, xmm4
jbe 0x601ad4
movaps xmmword [esp + 0x10], xmm1
mov byte [edi + 0x7a], 0
jmp 0x601b80
movaps xmm0, xmm3
movaps xmm1, xmmword [esp + 0x40]
shufps xmm0, xmm3, 0x55
addss xmm0, xmm3
shufps xmm3, xmm3, 0xaa
addss xmm3, xmm0
movaps xmm0, xmmword [esp + 0x30]
shufps xmm3, xmm3, 0
movaps xmm2, xmm3
movaps xmm5, xmm3
cmpeqss xmm5, dword [esp + 0x20]
rsqrtss xmm2, xmm2
mulss xmm3, xmm2
mulss xmm0, xmm2
mulss xmm3, xmm2
subss xmm1, xmm3
mulss xmm0, xmm1
andnps xmm5, xmm0
movss xmm0, dword [edi + 0x74]
mulss xmm0, dword [edi + 0x4c]
shufps xmm5, xmm5, 0
mulps xmm5, xmm6
comiss xmm4, xmm0
ja 0x601b36
movaps xmm0, xmm4
shufps xmm0, xmm0, 0
mulps xmm0, xmm5
addps xmm0, xmm7
movaps xmmword [esp + 0x10], xmm0
subps xmm0, xmmword [esp + 0x50]
andps xmm0, xmmword [0x719140]
cmpleps xmm0, xmmword [0x719d90]
movmskps eax, xmm0
and eax, 7
cmp al, 7
jne 0x601b80
mov byte [edi + 0x7a], 0
jmp 0x601b80
cmp byte [edi + 0x78], 0
jne 0x601b76
movaps xmm0, xmmword [esp + 0x50]
jmp 0x601b7b
movaps xmm0, xmmword [esp + 0x60]
movaps xmmword [esp + 0x10], xmm0
mov edx, dword [esi]
lea eax, [esp + 0x10]
push eax
lea ecx, [edi + 0x60]
movsx eax, word [edx + 0x14]
add eax, edx
push eax
call fcn.0046ec20
mov ecx, dword [esi]
lea eax, [esp + 0x10]
push eax
movsx eax, word [ecx + 0x14]
add eax, ecx
lea ecx, [esp + 0x84]
push eax
call fcn.0046ec20
cmp byte [edi + 0x51], 0
movaps xmm5, xmmword [esp + 0x80]
movaps xmm4, xmmword [esp + 0x70]
movaps xmm2, xmm5
subps xmm2, xmm4
movaps xmm6, xmmword [esp + 0x40]
movaps xmm1, xmm2
mulps xmm1, xmm2
movaps xmm0, xmm1
shufps xmm0, xmm1, 0x55
addss xmm0, xmm1
shufps xmm1, xmm1, 0xaa
addss xmm1, xmm0
shufps xmm1, xmm1, 0
movaps xmm0, xmm1
movaps xmm3, xmm1
cmpeqss xmm3, dword [esp + 0x20]
rsqrtss xmm0, xmm0
mulss xmm1, xmm0
mulss xmm1, xmm0
subss xmm6, xmm1
movaps xmm1, xmmword [esp + 0x30]
mulss xmm1, xmm0
mulss xmm1, xmm6
andnps xmm3, xmm1
shufps xmm3, xmm3, 0
mulps xmm3, xmm2
jne 0x601c52
movaps xmm2, xmm4
subps xmm2, xmm5
mulps xmm2, xmm2
movaps xmm0, xmm2
shufps xmm0, xmm2, 0x55
addss xmm0, xmm2
shufps xmm2, xmm2, 0xaa
addss xmm2, xmm0
movss xmm0, dword [edi + 0x3c]
sqrtss xmm2, xmm2
shufps xmm2, xmm2, 0
comiss xmm0, xmm2
ja 0x601c5b
movaps xmm2, xmm0
jmp 0x601c57
movss xmm2, dword [edi + 0x3c]
shufps xmm2, xmm2, 0
cmp byte [edi + 0x78], 0
movss xmm1, dword [edi + 0x38]
mulss xmm1, dword [0x719760]
mulps xmm2, xmm3
movaps xmm0, xmm1
movss dword [esp + 0x44], xmm1
xorps xmm0, xmmword [0x719730]
movss xmm1, dword [0x718824]
movaps xmmword [esp + 0x20], xmm2
movss dword [esp + 0x40], xmm0
jne 0x601cb7
movss xmm0, dword [edi + 0x40]
mulss xmm0, dword [edi + 0x74]
addss xmm0, dword [edi + 0x70]
comiss xmm1, xmm0
movss dword [edi + 0x70], xmm0
ja 0x601cb0
movaps xmm0, xmm1
movss dword [edi + 0x70], xmm0
jmp 0x601cdf
movss xmm0, dword [edi + 0x44]
mulss xmm0, dword [edi + 0x74]
movss xmm1, dword [edi + 0x70]
subss xmm1, xmm0
xorps xmm0, xmm0
comiss xmm1, xmm0
movss dword [edi + 0x70], xmm1
ja 0x601cda
movaps xmm1, xmm0
movss dword [edi + 0x70], xmm1
mov eax, dword [edi + 0x2c]
mov ecx, 0xd0
mov dword [esp + 0x30], eax
xor esi, esi
mov eax, dword [edi + 0x30]
mov dword [esp + 0x34], eax
mov dword [esp + 0xc], ecx
mov eax, dword [ebp + 0xc]
mov edx, dword [eax]
lea eax, [esi + 0xd]
cmp eax, dword [edx + 4]
jge 0x601dee
cmp byte [esp + esi*4 + 0x32], 0
je 0x601dee
movss xmm0, dword [esp + esi*4 + 0x40]
lea eax, [esp + 0xa0]
shufps xmm0, xmm0, 0
lea ecx, [esp + 0xb0]
mulps xmm0, xmmword [esp + 0x90]
push eax
addps xmm0, xmm2
addps xmm0, xmm4
movaps xmmword [esp + 0xa4], xmm0
movsx eax, word [edx + 0x14]
add eax, edx
push eax
call fcn.0046eb90
lea ecx, [esp + 0xc0]
call fcn.005ff760
mov eax, dword [ebp + 0xc]
movss xmm0, dword [edi + 0x70]
movaps xmm1, xmmword [esp + 0xb0]
movss dword [esp + 0xf4], xmm0
mov ecx, dword [eax]
lea eax, [esp + 0xc0]
movss xmm0, dword [edi + 0x48]
movss dword [esp + 0x100], xmm0
movaps xmm0, xmm1
push 0x50
push eax
mov eax, dword [esp + 0x14]
movss dword [esp + 0xc8], xmm1
shufps xmm0, xmm1, 0x55
movss xmm1, dword [esp + 0xc0]
movss dword [esp + 0xcc], xmm0
movss dword [esp + 0xd0], xmm1
mov dword [esp + 0xd4], 0x3f800000
movsx eax, word [eax + ecx + 0x14]
add eax, ecx
push eax
call fcn.0045d810
mov eax, dword [ebp + 0xc]
add esp, 0xc
mov ecx, dword [esp + 0xc]
movaps xmm4, xmmword [esp + 0x70]
mov eax, dword [eax]
mov dword [ecx + eax + 0x18], 0x3f800000
movaps xmm2, xmmword [esp + 0x20]
add ecx, 0x10
inc esi
mov dword [esp + 0xc], ecx
cmp ecx, 0xf0
jl 0x601cf8
cmp byte [edi + 0x78], 1
jne 0x601e26
movss xmm0, dword [edi + 0x70]
ucomiss xmm0, dword [0x718814]
lahf
test ah, 0x44
jp 0x601e26
mov dword [edi + 0x54], 0
mov dword [edi + 0x74], 0
pop edi
pop esi
mov esp, ebp
pop ebp
ret 8